PT09IHJlbGVhc2UgMS4xNC40ID09PQoKMjAxOC0xMC0wMiAyMjo1MzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xNC40CgoyMDE4LTEwLTAyIDIyOjUzOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgoyMDE4LTA5LTE3IDIyOjEzOjIyICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBVc2UgYSBkaWZmZXJlbnQgcmF0ZSBpbiBhIHNlZ21lbnQgdGVzdC4KCSAgVXNpbmcgYSByYXRlIG9mIDEuMSBpbiB0aGUgdGVzdCBpcyBjYXVzaW5nIHRoZSB0ZXN0IHRvCgkgIGZhaWwgb24gMzItYml0IGJlY2F1c2UgY2VpbCgxLjEgKiAxMCkgY2FuIHJvdW5kIHRvIDEyLgoJICBJbnN0ZWFkIHVzZSBhIHJhdGUgMi4wIHRoYXQgY2FuIGJlIGV4cHJlc3NlZCBhcyBmbG9hdGluZwoJICBwb2ludCBudW1iZXIgYW5kIGRvZXNuJ3QgdHJpZ2dlciB0aGUgcHJvYmxlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NzE1NAoKPT09IHJlbGVhc2UgMS4xNC4zID09PQoKMjAxOC0wOS0xNiAxNjoxMzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xNC4zCgoyMDE4LTA5LTE2IDE2OjEzOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgoyMDE4LTA4LTI3IDIyOjMyOjAxICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEFkZCBjaGVjayBmb3IgZ3N0X3NlZ21lbnRfb2Zmc2V0X3J1bm5pbmdfdGltZSgpCgkgIEFkZCBhIGNoZWNrIGZvciBnc3Rfc2VnbWVudF9vZmZzZXRfcnVubmluZ190aW1lKCkgdGhhdCB2YWx1ZXMKCSAgYXJlIHRha2VuIGRpcmVjdGx5IGZyb20gdGhlIHNlZ21lbnQgYmFzZSBpZiBwb3NzaWJsZS4KCjIwMTgtMDgtMjMgMjI6MzQ6NDcgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogSGFuZGxlIHBvc2l0aW9ucyBiZWZvcmUgdGhlIHNlZ21lbnQgcHJvcGVybHkKCSAgRml4ZXMgZm9yIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fcnVubmluZ190aW1lX2Z1bGwoKSB3aGVuCgkgIGNvbnZlcnRpbmcgcnVubmluZ190aW1lcyB0aGF0IHByZWNlZGUgdGhlIHNlZ21lbnQgc3RhcnQgKG9yCgkgIHN0b3AgaW4gYSBuZWdhdGl2ZSByYXRlIHNlZ21lbnQpCgkgIFRoZSByZXR1cm4gdmFsdWUgd2FzIGluY29ycmVjdGx5IG5lZ2F0ZWQgaW4gdGhvc2UgY2FzZXMuCgkgIEFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0IGNoZWNrcyBmb3IgdGhvc2UgY2FzZXMsIGFuZCBlc3BlY2lhbGx5CgkgIGZvciBzZWdtZW50cyB3aXRoIG9mZnNldHMuCgoyMDE4LTA5LTA4IDEzOjA1OjEzICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEZpeCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBpbiBnc3RfYmluX2FkZCgpCgkgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgbWVzc2FnZSBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlCgkgIGl0cyByZWZjb3VudCB1bnRpbCB3ZSBubyBsb25nZXIgcmVxdWlyZSBhY2Nlc3MgdG8gaXRzIGRhdGEgKGNvbnRleHRfdHlwZSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwOTkKCjIwMTgtMDktMDMgMTI6MDY6MzUgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNldCBkZWZhdWx0IHZhbHVlcyBmb3IgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHF1ZXJ5IHJlc3VsdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NzA2NgoKMjAxOC0wOC0zMCAxNzo0NDowNyArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZnX2JpdHJhdGUgY2FsY3VsYXRpb24gY3JpdGljYWwgd2FybmluZyBmaXgKCSAgVGhlIGF2Z19iaXRyYXRlIGlzIGFuIHVuc2lnbmVkIGludCwgc28gdGhlIGdzdF91dGlsX3VpbjY0X3NjYWxlKCkgZnVuY3Rpb24gY2FuJ3QKCSAgYmUgdXNlZCBmb3IgaXQsIGFzIGl0IGV4cGVjdHMgc2lnbmVkIGludGVnZXJzIGZvciB0aGUgZnJhY3Rpb24gcGFydHMgYXJndW1lbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3MDU0CgoyMDE4LTA4LTMxIDEyOjE1OjE2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBCcmluZyBsYXRlbmN5IGhhbmRsaW5nIGluIHN5bmMgd2l0aCBHc3RQYWQgY29kZQoKMjAxOC0wOC0zMSAxMjoxMjoxMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IERvbid0IGRyb3AgTEFURU5DWSBxdWVyaWVzIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3OTQ5NDRmNzc5Zjk1NDM3NWZjNzRhM2ZmZmNjMjA2N2JiYTZhM2U1LgoJICBBY2N1bXVsYXRpbmcgbm9uLWxpdmUgbGF0ZW5jeSB2YWx1ZXMgZ2VuZXJhbGx5IG1ha2VzIG5vIHNlbnNlIGFuZCBvZnRlbgoJICBnaXZlcyBpbnZhbGlkIHJlc3VsdHMgd2l0aCBtaW4+bWF4CgoyMDE4LTA4LTMxIDEyOjEyOjA5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogQWNjdW11bGF0ZSBsaXZlL25vbi1saXZlIGxhdGVuY3kgdmFsdWVzIHNlcGFyYXRlbHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjU3ODNlMWNhY2IwOTg2N2Q4MWJhMDg5YjIyOWZhYTdkZDBlZGQwYy4KCjIwMTgtMDgtMzEgMTE6NDc6MDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEFwcGx5IEdzdFBhZCBkZWZhdWx0IGxhdGVuY3kgaGFuZGxlciBmaXhlcyBoZXJlIHRvbwoKMjAxOC0wOC0zMSAxMTo0MTo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBY2N1bXVsYXRlIGxpdmUvbm9uLWxpdmUgbGF0ZW5jeSB2YWx1ZXMgc2VwYXJhdGVseQoJICBBbmQgb25seSBldmVyIHVzZSB0aGUgbm9uLWxpdmUgdmFsdWVzIGlmIGFsbCBwYWRzIGFyZSBub24tbGl2ZSwKCSAgb3RoZXJ3aXNlIG9ubHkgdXNlIHRoZSByZXN1bHRzIG9mIGFsbCBsaXZlIHBhZHMuCgkgIEl0J3MgdW5jbGVhciB3aGF0IG9uZSB3b3VsZCB1c2UgdGhlIHZhbHVlcyBmb3IgaW4gdGhlIG5vbi1saXZlIGNhc2UsIGJ1dAoJICBieSB0aGlzIHdlIGF0IGxlYXN0IHBhc3MgdGhlbSB0aHJvdWdoIGNvcnJlY3RseSB0aGVuLgoJICBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciA3OTQ5NDRmNzc5Zjk1NDM3NWZjNzRhM2ZmZmNjMjA2N2JiYTZhM2U1LCB3aGljaAoJICBjYXVzZXMgd3JvbmcgbGF0ZW5jeSBjYWxjdWxhdGlvbnMgaWYgdGhlIGZpcnN0IHBhZCBpcyBub24tbGl2ZSBidXQgYQoJICBsYXRlciBwYWQgaXMgYWN0dWFsbHkgbGl2ZS4gSW4gdGhhdCBjYXNlIHRoZSBsaXZlIHZhbHVlcyB3b3VsZCBiZQoJICBhY2N1bXVsYXRlZCB0b2dldGhlciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIG5vbi1saXZlIGZpcnN0IHBhZCwKCSAgZ2VuZXJhbGx5IGNhdXNpbmcgd3JvbmcgbWluL21heCBsYXRlbmNpZXMgdG8gYmUgY2FsY3VsYXRlZC4KCjIwMTgtMDgtMDIgMTA6NTU6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBNYXJrIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZV9mdWxsKCkgYXMgU2luY2UgMS4xNC4zCgoyMDE4LTA3LTMwIDE4OjUxOjM1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEVuc3VyZSB0aGF0IHRoZSBwYWQgaXMgYmxvY2tlZCBmb3IgSURMRSBwcm9iZXMgaWYgdGhleSBhcmUgY2FsbGVkIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgdG9vCgkgIElETEUgcHJvYmVzIHRoYXQgYXJlIGRpcmVjdGx5IGNhbGxlZCB3aGVuIGJlaW5nIGFkZGVkIHdpbGwgaW5jcmVhc2UgLwoJICBkZWNyZWFzZSB0aGUgIm51bWJlciBvZiBJRExFIHByb2JlcyBydW5uaW5nIiBjb3VudGVyIGFyb3VuZCB0aGUgY2FsbCwKCSAgYnV0IHdoZW4gcnVubmluZyBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHRoaXMgd29uJ3QgaGFwcGVuLgoJICBUaGlzIGhhcyB0aGUgZWZmZWN0IHRoYXQgd2hlbiBydW5uaW5nIGZyb20gYSBzdHJlYW1pbmcgdGhyZWFkIGl0IGlzCgkgIHBvc3NpYmxlIHRvIHB1c2ggc2VyaWFsaXplZCBldmVudHMgb3IgZGF0YSBvdXQgb2YgdGhlIHBhZCB3aXRob3V0CgkgIHByb2JsZW1zLCBidXQgb3RoZXJ3aXNlIGl0IHdvdWxkIGRlYWRsb2NrIGJlY2F1c2Ugc2VyaWFsaXplZCBkYXRhIHdvdWxkCgkgIHdhaXQgZm9yIHRoZSBJRExFIHByb2JlIHRvIGZpbmlzaCBmaXJzdCAoaXQgaXMgYmxvY2tpbmcgYWZ0ZXIgYWxsISkuCgkgIFdpdGggdGhpcyBjaGFuZ2UgaXQgd2lsbCBub3cgYWx3YXlzIGNvbnNpc3RlbnRseSBkZWFkbG9jayBpbnN0ZWFkIG9mCgkgIGp1c3QgZXZlcnkgb25jZSBpbiBhIHdoaWxlLCB3aGljaCBzaG91bGQgbWFrZSBpdCBvYnZpb3VzIHdoeSB0aGlzCgkgIGhhcHBlbnMgYW5kIHByZXZlbnQgcmFjeSBkZWFkbG9ja3MgaW4gYXBwbGljYXRpb24gY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5Njg5NQoKMjAxOC0wNy0zMCAxODoxMDozMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHR5cGVmaW5kOiBBZGQgbmV3IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZV9mdWxsKCkgdGhhdCByZXR1cm5zIGZsb3cgcmV0dXJuCgkgIEFuZCBtYWtlIHVzZSBvZiBpdCBpbiB0aGUgdHlwZWZpbmQgZWxlbWVudC4gSXQncyB1c2VmdWwgdG8gZGlzdGluZ3Vpc2gKCSAgYmV0d2VlbiB0aGUgZGlmZmVyZW50IGVycm9ycyB3aHkgdHlwZWZpbmRpbmcgY2FuIGZhaWwsIGFuZCBlc3BlY2lhbGx5IHRvCgkgIG5vdCBjb25zaWRlciBHU1RfRkxPV19GTFVTSElORyBhcyBhbiBhY3R1YWwgZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTY4OTQKCjIwMTgtMDctMzEgMTY6NDY6MjUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogVXBkYXRlIHBhZCBvZmZzZXRzIG9uIHRoZSBjdXJyZW50IGV2ZW50IGlmIHRoZSBvZmZzZXQgY2hhbmdlZCBpbiBwYWQgcHJvYmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTY4OTgKCjIwMTgtMDctMzEgMTk6MjU6MDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRm9yd2FyZCBMQVRFTkNZIHF1ZXJ5IHRvIGFsbCBzaW5rcGFkcwoJICBPdGhlcndpc2UgZG93bnN0cmVhbSB3aWxsIGNvbnNpZGVyIHRoZSBwaXBlbGluZSBub3QgbGl2ZSBpZiB0aGUgYWN0aXZlCgkgIHBhZCBpcyBsaXZlLCBldmVuIHRob3VnaCBzb21lIGluYWN0aXZlIHBhZHMgbWlnaHQgYmUgbGl2ZSBhbmQgbWlnaHQKCSAgcmVxdWlyZSBhIG5vbi16ZXJvIGxhdGVuY3kgY29uZmlndXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjkwMQoKMjAxOC0wNy0yNyAyMzoyMjo0MiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYW5ub3RhdGUgR3N0QWdncmVnYXRvckNsYXNzOjp1cGRhdGVfc3JjX2NhcHMKCjIwMTgtMDctMjYgMDI6MzE6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgbGVhayBwZWVyIHBhZCBvZiBpbmFjdGl2ZSBwYWRzIHdoZW4gKG5vdCkgZm9yd2FyZGluZyBRb1MgZXZlbnRzIHRvIHRoZW0KCj09PSByZWxlYXNlIDEuMTQuMiA9PT0KCjIwMTgtMDctMjAgMDA6NDY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTQuMgoKMjAxOC0wNy0yMCAwMDo0Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJICBVcGRhdGUgZG9jcwoKMjAxOC0wNy0xOCAyMToxMzo1NyAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEbyBub3QgY2hlY2sgaWYgTlVMTCBpcyBhbiBlbXRweSBjYXBzCgkgIGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyBjYW4gcmV0dXJuIE5VTEwgaW4gdmFyaW91cyBjb25kaXRpb25zCgkgIHRodXMgd2Ugc2hvdWxkIG5vdCB0cmVhdCBpdHMgcmVzdWx0IGFzIHZhbGlkIGNhcHMuCgkgIEluIGFsbCBvdGhlciBwbGFjZXMgTlVMTCBpcyBwcm9wZXJseSBoYW5kbGVkLgoKMjAxOC0wNi0xOCAxNjoyOToxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogUHJvcGVybHkgZm9yd2FyZCB0aGUgU0VHTUVOVCBzZXFudW0KCjIwMTgtMDUtMjEgMDk6MTQ6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGdzdDogYWRkIHNvbWUgR0lSIGFycmF5IGFubm90YXRpb25zCgoyMDE4LTA1LTIwIDEzOjUzOjMxICswMjAwICBDaHJpc3RvcGggUmVpdGVyIDxyZWl0ZXIuY2hyaXN0b3BoQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlcl9ta2VudW0ucHk6CgkgIG1lc29uOiBGaXggZGV0ZWN0aW9uIG9mIGdsaWItbWtlbnVtcyB1bmRlciBNU1lTMgoJICBVbmRlciBNU1lTMiBnbGliLW1rZW51bXMgaXMgYW4gZXhlY3V0YWJsZSBhbmQgaGFzIGEgLmV4ZSBleHRlbnNpb24gYW5kCgkgIHRoZSBwYXRoIGRvZXMgbm90IGVuZCB3aXRoICJnbGliLW1rZW51bXMiLgoJICBNYWtlIHRoZSBzY3JpcHQgY29tcGFyZSB0aGUgcGF0aCB3aXRob3V0IHRoZSBmaWxlIGV4dGVuc2lvbiBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2MjczCgo9PT0gcmVsZWFzZSAxLjE0LjEgPT09CgoyMDE4LTA1LTE3IDEzOjE3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjE0LjEKCjIwMTgtMDUtMTcgMTM6MTc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3MKCjIwMTgtMDUtMTcgMTI6Mzc6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9oci5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxOC0wNS0xMCAwMDowNTo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmFjZSBjb25kaXRpb24gY2F1c2luZyB0aGUgc2FtZSBwcm9iZSB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMKCSAgUHJvYmVzIHdlcmUgcmVtZW1iZXJpbmcgYSBjb29raWUgdGhhdCB3YXMgdXNlZCB0byBjaGVjayBpZiB0aGUgcHJvYmUgd2FzCgkgIGFscmVhZHkgY2FsbGVkIHRoaXMgdGltZSBiZWZvcmUgdGhlIHByb2JlcyBsaXN0IGNoYW5nZWQuIEhvd2V2ZXIgdGhlCgkgIHNhbWUgcHJvYmVzIGNvdWxkJ3ZlIGJlZW4gY2FsbGVkIGJ5IGFub3RoZXIgdGhyZWFkIGluIGJldHdlZW4gYW5kIHRodXMKCSAgZ290dGVuIGEgbmV3IGNvb2tpZSwgYW5kIHdvdWxkIHRoZW4gYmUgY2FsbGVkIGEgc2Vjb25kIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU5ODcKCjIwMTgtMDUtMDQgMDk6Mjk6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBnc3Q6IFVzZSBtZW1jcHkoKSBpbnN0ZWFkIG9mIHN0cm5jcHkoKSB3aGVyZSBhcHByb3ByaWF0ZQoJICBzdHJuY3B5KCkgaXMgYXNzdW1lZCB0byBiZSBmb3Igc3RyaW5ncyBzbyB0aGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0CgkgIGl0IHdpbGwgbmVlZCBhbiBleHRyYSBieXRlIGZvciB0aGUgc3RyaW5nLXRlcm1pbmFuaW5nIE5VTEwuCgkgIEZvciBjYXNlcyB3aGVyZSB3ZSBrbm93IGl0J3MgYWN0dWFsbHkgImJpbmFyeSIgZGF0YSwganVzdCBjb3B5IGl0CgkgIHdpdGggbWVtY3B5LgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyB3aXRoIGdjYyA4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk1NzU2CgoyMDE4LTA1LTA1IDE2OjE2OjQ1ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGFib3J0IGR1ZSB0byB1bmRlcmZsb3cgd2hlbiBjcmVhdGluZyAwLXNpemVkIGxpc3QKCSAgZ3N0X2J1ZmZlcl9saXN0X25ld19zaXplZCgwKSB3aWxsIGNhdXNlIGFuIHVuZGVyZmxvdyBpbiBhIGNhbGN1bGF0aW9uCgkgIHdoaWNoIHRoZW4gbWFrZXMgaXQgdHJ5IHRvIGFsbG9jYXRlIGh1Z2UgYW1vdW50cyBvZiBtZW1vcnksIHdoaWNoCgkgIG1heSBsZWFkIHRvIGFib3J0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NTc1OAoKMjAxOC0wNS0wNSAxMTozMjoxMiArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFnZ3JlZ2F0b3I6IGZpeCBleHBvcnRzIGFuZCBzaW5jZSBtYXJrZXIgZm9yIG5ldyBBUEkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NTMzMgoKMjAxOC0wNC0yMyAxMTozNDoxOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogQWRkIEFQSSB0byBjaGVjayBpZiBhIHBhZCBoYXMgYSBuZXcgYnVmZmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTUzMzIKCjIwMTgtMDQtMjAgMTI6MzA6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBpbnZhbGlkIGtleXdvcmQgYXJndW1lbnQgd2FybmluZ3MKCSAgY2MuY29tcGlsZXMoKSBkb2Vzbid0IGhhdmUgYSAncHJlZml4JyBhcmd1bWVudCAoeWV0KSBhbmQgdGhlCgkgIHByZWZpeCBoYXMgYWxyZWFkeSBiZWVuIHByZXBlbmRlZCB0byB0aGUgc291cmNlIGNvZGUgc25pcHBldHMuCgkgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvbmJ1aWxkL21lc29uL2lzc3Vlcy8yMzY0CgoyMDE4LTA0LTE3IDExOjI0OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlLCBpbnB1dHNlbGVjdG9yOiBzaG93IHBhZCBwcm9wZXJ0aWVzIGluIGdzdC1pbnNwZWN0LTEuMAoKMjAxOC0wNC0xMyAyMDoxNTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIGJhc2U6IGZpeCBzb21lIEdJUiBhbm5vdGF0aW9ucwoJICBNb3N0bHkgcmVsYXRlZCB0byBvdXQgcGFyYW1ldGVycyBhbmQgdGhlaXIgdHJhbnNmZXIKCjIwMTgtMDMtMjkgMTg6NTk6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogYWRkIHNvbWUgR0lSIGFycmF5IGFubm90YXRpb25zCgoyMDE4LTA0LTExIDE5OjU2OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0ZGVidWc6IGZpeCBvY2Nhc2lvbmFsIGRlYWRsb2NrcyBvbiB3aW5kb3dzIHdoZW4gb3V0cHV0dGluZyBkZWJ1ZyBsb2dnaW5nCgkgIFdoZW4gb3V0cHV0dGluZyBkZWJ1ZyBsb2dzIG9uIFdpbmRvd3MsIHNvbWUgc2VjdGlvbnMgYXJlIHByb3RlY3RlZAoJICB3aXRoIGEgbm9uLXJlY3Vyc2l2ZSBsb2NrLiBUdXJucyBvdXQgdGhvdWdoIHRoYXQgZ3N0X2RlYnVnX21lc3NhZ2VfZ2V0KCkKCSAgbWlnaHQgaW5kaXJlY3RseSwgdmlhIG91ciBwcmludGYgZm9ybWF0IGV4dGVuc2lvbnMsIGNhbGwgY29kZSB3aGljaAoJICBpbiB0dXJuIHdvdWxkIHRyeSB0byBsb2cgc29tZXRoaW5nIHdoZW4gaXQgY2FuJ3QgaGFuZGxlIHNvbWV0aGluZy4gSWYKCSAgdGhhdCBoYXBwZW5zIHdlIGVuZCB1cCBpbiBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSBhZ2FpbiByZWN1cnNpdmVseSBhbmQKCSAgdHJ5IHRvIGFnYWluIHRha2UgdGhlIGxvY2sgdGhhdCdzIGFscmVhZHkgdGFrZW4sIHRodXMgZGVhZGxvY2tpbmcuCgkgIEZvcm1hdCB0aGUgZGVidWcgbWVzc2FnZSBzdHJpbmcgb3V0c2lkZSBvZiB0aGUgY3JpdGljYWwgc2VjdGlvbgoJICBpbnN0ZWFkIHRvIGF2b2lkIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQzODIKCjIwMTgtMDQtMDkgMTQ6MTk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIGdzdHVyaTogaW5jbHVkZSBnc3Rjb25maWcuaCBlYXJsaWVyIGZvciBHU1RfQVBJIGRlZmluZQoKMjAxOC0wMy0yNyAxMDoyNTo0NiArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBkZWJ1ZyBsZXZlbHMgYmVpbmcgYXBwbGllZCBpbiB0aGUgd3Jvbmcgb3JkZXIKCSAgUmVtb3ZlIHVubmVlZGVkIHJlYXBwbGljYXRpb24gb2YgcGF0dGVybnMuIEJlc2lkZXMgYmVpbmcKCSAgc3VwZXJmbHVvdXMgKGdzdF9kZWJ1Z19yZXNldF90aHJlc2hvbGQgYWxyZWFkeSBhcHBsaWVzCgkgIHBhdHRlcm5zKSBpdCB3YXMgYWxzbyB3cm9uZyBhbmQgZGlkbid0IHN0b3AgY2hlY2tpbmcgcGF0dGVybnMKCSAgYWZ0ZXIgdGhlIGZpcnN0IG1hdGNoIChicm9rZW4gaW4gNjdlOWQxMzkpLgoJICBBbHNvIGZpeCB1cCB1bml0IHRlc3Qgd2hpY2ggY2hlY2tlZCBmb3IgdGhlIHdyb25nIG9yZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0NzE3CgoyMDE4LTAzLTI5IDEyOjM2OjExICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRlZXAtZWxlbWVudC1hZGRlZCBzaWduYWwgZGVidWcgbG9nIG1lc3NhZ2UKCSAgQWRkaW5nIHRoZSBiaW4gdG8gdGhlIGNoaWxkIGVsZW1lbnQgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZS4KCjIwMTgtMDMtMjAgMTY6MTE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3Q6IEZpeCBjb21waWxhdGlvbiB3aXRoIGxhdGVzdCBHTGliCgkgIGdfb2JqZWN0X3JlZigpIGZvcndhcmRzIHRoZSB0eXBlIG9mIGl0cyBhcmd1bWVudCBub3dhZGF5cy4KCSAgLi9ncmFtbWFyLnk6NDA5OjE0OiBlcnJvcjogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCgkgIGdzdGNoaWxkcHJveHkuYzoyMTI6NzogZXJyb3I6IGFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQoKMjAxOC0wMy0yMSAxMDoyMDoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSAgbmV0OiBJbmNsdWRlIGdzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oIGluIG5ldC5oCgoyMDE4LTAzLTIxIDEwOjEzOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgcGFyYW1zcGVjczogU2V0IGctaSBhbm5vdGF0aW9uIHZhbHVlcyBmb3IgR1NUX1BBUkFNXyogY29uc3RhbnRzCgoyMDE4LTAzLTIxIDEwOjExOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RBQkxFIGhhZCBERUNSWVBUT1IgYWRkZWQsIHVwZGF0ZSBnLWkgYW5ub3RhdGlvbiB2YWx1ZQoKPT09IHJlbGVhc2UgMS4xNC4wID09PQoKMjAxOC0wMy0xOSAyMDowOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xNC4wCgoyMDE4LTAzLTE5IDIwOjA5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgo9PT0gcmVsZWFzZSAxLjEzLjkxID09PQoKMjAxOC0wMy0xMyAxOTowODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMy45MQoKMjAxOC0wMy0xMyAxOTowODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJICBVcGRhdGUgZG9jcwoKMjAxOC0wMy0xMyAxMTo1NDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBkb2NzOiB1cGRhdGUgYXBpIGRlY29yYXRvcnMgdG8gaWdub3JlCgoyMDE4LTAzLTEyIDIzOjEyOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBmaXh1cCBmb3IgbmV3IGxpYnMgQVBJIGV4cG9ydCBkZWNvcmF0b3JzCgoyMDE4LTAzLTEyIDIzOjAzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9uZXQtcHJlbHVkZS5oOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkgIG5ldDogR1NUX0VYUE9SVCAtPiBHU1RfTkVUX0FQSQoJICBXZSBuZWVkIGRpZmZlcmVudCBleHBvcnQgZGVjb3JhdG9ycyBmb3IgdGhlIGRpZmZlcmVudCBsaWJzLgoJICBGb3Igbm93IG5vIGFjdHVhbCBjaGFuZ2UgdGhvdWdoLCBqdXN0IHJlbmFtZSBiZWZvcmUgdGhlIHJlbGVhc2UsCgkgIGFuZCBhZGQgcHJlbHVkZSBoZWFkZXJzIHRvIGRlZmluZSB0aGUgbmV3IGRlY29yYXRvciB0byBHU1RfRVhQT1JULgoKMjAxOC0wMy0xMiAyMzowMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyLXByZWx1ZGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlcl9ta2VudW0ucHk6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJICBjb250cm9sbGVyOiBHU1RfRVhQT1JUIC0+IEdTVF9DT05UUk9MTEVSX0FQSQoJICBXZSBuZWVkIGRpZmZlcmVudCBleHBvcnQgZGVjb3JhdG9ycyBmb3IgdGhlIGRpZmZlcmVudCBsaWJzLgoJICBGb3Igbm93IG5vIGFjdHVhbCBjaGFuZ2UgdGhvdWdoLCBqdXN0IHJlbmFtZSBiZWZvcmUgdGhlIHJlbGVhc2UsCgkgIGFuZCBhZGQgcHJlbHVkZSBoZWFkZXJzIHRvIGRlZmluZSB0aGUgbmV3IGRlY29yYXRvciB0byBHU1RfRVhQT1JULgoKMjAxOC0wMy0xMiAyMzowMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay1wcmVsdWRlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSAgY2hlY2s6IEdTVF9FWFBPUlQgLT4gR1NUX0NIRUNLX0FQSQoJICBXZSBuZWVkIGRpZmZlcmVudCBleHBvcnQgZGVjb3JhdG9ycyBmb3IgdGhlIGRpZmZlcmVudCBsaWJzLgoJICBGb3Igbm93IG5vIGFjdHVhbCBjaGFuZ2UgdGhvdWdoLCBqdXN0IHJlbmFtZSBiZWZvcmUgdGhlIHJlbGVhc2UsCgkgIGFuZCBhZGQgcHJlbHVkZSBoZWFkZXJzIHRvIGRlZmluZSB0aGUgbmV3IGRlY29yYXRvciB0byBHU1RfRVhQT1JULgoKMjAxOC0wMy0xMiAyMzowMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS1wcmVsdWRlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSAgYmFzZTogR1NUX0VYUE9SVCAtPiBHU1RfQkFTRV9BUEkKCSAgV2UgbmVlZCBkaWZmZXJlbnQgZXhwb3J0IGRlY29yYXRvcnMgZm9yIHRoZSBkaWZmZXJlbnQgbGlicy4KCSAgRm9yIG5vdyBubyBhY3R1YWwgY2hhbmdlIHRob3VnaCwganVzdCByZW5hbWUgYmVmb3JlIHRoZSByZWxlYXNlLAoJICBhbmQgYWRkIHByZWx1ZGUgaGVhZGVycyB0byBkZWZpbmUgdGhlIG5ldyBkZWNvcmF0b3IgdG8gR1NUX0VYUE9SVC4KCjIwMTgtMDMtMTIgMjM6MDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZW51bXR5cGVzLmgudGVtcGxhdGU6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cHJvbWlzZS5oOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ3N0OiBHU1RfRVhQT1JUIC0+IEdTVF9BUEkKCSAgV2UgbmVlZCBkaWZmZXJlbnQgZXhwb3J0IGRlY29yYXRvcnMgZm9yIHRoZSBkaWZmZXJlbnQgbGlicy4KCSAgRm9yIG5vdyBubyBhY3R1YWwgY2hhbmdlIHRob3VnaCwganVzdCByZW5hbWUgYmVmb3JlIHRoZSByZWxlYXNlLAoJICBhbmQgYWRkIHByZWx1ZGUgaGVhZGVycyB0byBkZWZpbmUgdGhlIG5ldyBkZWNvcmF0b3IgdG8gR1NUX0VYUE9SVC4KCjIwMTgtMDMtMDggMTM6MzA6MzAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwcm9taXNlLmM6CgkgIHByb21pc2U6IGJlIG1vcmUgZXhwbGljaXQgaW4gZG9jcyBhYm91dCB3aG8vd2hlbiB0byB1c2UgcmVwbHkvaW50ZXJydXB0L2V4cGlyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0MTUzCgoyMDE4LTAzLTA3IDExOjE5OjI1IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogQmFsYW5jZSB1bmxvY2svdW5sb2NrX3N0b3AgaW4gX3NyY19zdG9wKCkKCSAgT3RoZXJ3aXNlIGl0J3MgcG9zc2libGUgdGhhdCB3ZSB3b24ndCBiZSBhYmxlIHRvIHN0YXJ0IGFnYWluCgkgIGRlcGVuZGluZyB0aGUgaW1wbGVtZW50YXRpb24uIFdlIGRvIHN0YXJ0L3N0b3AgaW4gbm9ybWFsIHVzZSBjYXNlcwoJICB3aGVuZXZlciBHU1RfUVVFUllfU0NIRURVTElORyBoYXBwZW5zIGJlZm9yZSB3ZSBhcmUgc3RhcnRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDE0OQoKMjAxOC0wMy0wNyAxMToxNjowMCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE5vIG5lZWQgdG8gc3RvcCBmbHVzaGluZyBpbiBzdGFydF9jb21wbGV0ZQoJICBUaGUgZmx1c2hpbmcgc3RhdGUgaXMgaGFuZGxlZCBhIGJpdCBkaWZmZXJlbnRseSwgdGhlcmUgaXMgbm8gbmVlZAoJICB0byBzdG9wIGZsdXNoaW5nIGluIHN0YXJ0X2NvbXBsZXRlLiBUaGlzIHdvdWxkIG90aGVyIHJlc3VsdCBpbgoJICB1bmxvY2tfc3RvcCBiZWluZyBjYWxsZWQgd2l0aG91dCB1bmxvY2tfc3RhcnQuCgkgIFVubGlrZSB3aGF0IHRoZSBvbGQgY29tbWVudCBzYXlzLCB0aGVyZSBpcyBubyBuZWVkIHRvIHRha2UgdGhlIGxpdmUKCSAgbG9jayBoZXJlLCB3ZSBhcmUgc3RpbGwgc2luZ2xlIHRocmVhZGVkIGF0IHRoaXMgcG9pbnQgKGFwcCB0aHJlYWQKCSAgb3IgdGhlIHN0YXRlIGNoYW5nZSB0aHJlYWQpLiBBbHNvLCB3ZSB3aWxsIHdhaXQgZm9yIHBsYXlpbmcgc3RhdGUKCSAgaW4gY3JlYXRlL2dldHJhbmdlLCBubyBuZWVkIHRvIGRvIHRoYXQgdHdpY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQxNDkKCjIwMTgtMDMtMDUgMTE6NTI6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBDaGFuZ2UgZG90LWZpbGUgZnVuY3Rpb25zIGRvY3VtZW50YXRpb24gdG8gcHJvcGVyIGd0ay1kb2MKCSAgVGhpcyB3YXkgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFsc28gcGlja3MgaXQgdXAgYW5kIGhhbmRsZXMgb3VyCgkgIGFubm90YXRpb25zLgoJICBTZWUgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dvYmplY3QtaW50cm9zcGVjdGlvbi9pc3N1ZXMvMTk0CgoyMDE4LTAzLTA0IDEwOjUzOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHF1ZXVlYXJyYXk6IEltcGxlbWVudCBwb3BfdGFpbF9zdHJ1Y3QoKSBmb3IgY29tcGxldGVuZXNzCgkgIEFsbCBvdGhlciB2YXJpYW50cyBvZiB7cGVlayxwb3B9X3toZWFkLHRhaWx9X3ssc3RydWN0fSB3ZXJlIGFscmVhZHkKCSAgaW1wbGVtZW50ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQwMzUKCjIwMTgtMDMtMDQgMTA6MjQ6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlICh0eXBlIGZpbGVuYW1lKSBhbm5vdGF0aW9ucwoKPT09IHJlbGVhc2UgMS4xMy45MCA9PT0KCjIwMTgtMDMtMDMgMjE6NTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTMuOTAKCjIwMTgtMDMtMDMgMjE6NTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3MKCjIwMTgtMDItMTMgMjI6MjA6MTggKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHBsdWdpbnM6IERvbid0IGZvcmNlIDY0LWJpdCBmaWxlL3NlZWsgZnVuY3Rpb25zIHZhcmlhbnRzIG9uIGFuZHJvaWQKCSAgTW9zdCBmdW5jdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgY2hvc2VuIGZyb20gdGhlIF9GSUxFX09GRlNFVF9CSVRTCgkgIGRlZmluZSwgdGhlIHJlbWFpbmluZyBvbmUgKGZzdGF0KSBpcyBvbmx5IGF2YWlsYWJsZSBvbiBBUEkgPj0gMjEgc28KCSAgY2hlY2sgZm9yIHRoYXQKCjIwMTgtMDMtMDEgMjI6MjE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgc3ltYm9sIHRvIGRvY3MgYW5kIC5kZWYgZmlsZQoJICBGaXhlcyBtYWtlIGNoZWNrCgoyMDE4LTAzLTAxIDE2OjE5OjA5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBJZ25vcmUgdGhyZXNob2xkcyBpZiBhIHF1ZXJ5IGlzIHF1ZXVlZAoJICBUaGUgcXVldWUgZ2V0cyBmaWxsZWQgYnkgdGhlIHRhaWwsIHNvIGEgcXVlcnkgd2lsbCBhbHdheXMgYmUgdGhlIHRhaWwKCSAgb2JqZWN0LCBub3QgdGhlIGhlYWQgb2JqZWN0LiBBbHNvIGFkZCBhIF9wZWVrX3RhaWxfc3RydWN0KCkgbWV0aG9kIHRvIHRoZQoJICBHc3RRdWV1ZUFycmF5IHRvIGVuYWJsZSBsb29raW5nIGF0IHRoZSB0YWlsLgoJICBXaXRoIHVuaXQgdGVzdCB0byBwcmV2ZW50IGZ1dHVyZSByZWdyZXNzaW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyODc1CgoyMDE4LTAzLTAxIDE4OjM4OjAxICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogLVdmb3JtYXQtKiByZXF1aXJlIC1XZm9ybWF0CgoyMDE4LTAzLTAxIDE3OjIwOjA2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGVuYWJsZSBtb3JlIHdhcm5pbmdzCgkgIE1vZGVsZWQgb24gdGhlIGF1dG90b29scyBidWlsZCwgLVcgZmxhZ3MgYXJlIG9ubHkKCSAgYWRkZWQgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5NTgKCjIwMTgtMDMtMDEgMDA6MzE6MTEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgZ3N0YWdncmVnYXRvcjogcGFkcyBtdXN0IGluaGVyaXQgZnJvbSAjR3N0QWdncmVnYXRvclBhZAoJICBEb2N1bWVudCB0aGlzLCBhbmQgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhhdCBmYWN0IHRvIHVzZQoJICBHc3RBZ2dyZWdhdG9yLnNyY3BhZC5zZWdtZW50IGluc3RlYWQgb2YgR3N0QWdncmVnYXRvci5zZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5NDIKCjIwMTgtMDMtMDEgMDE6MTU6MzQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgUmV2ZXJ0ICJnc3RhZ2dyZWdhdG9yOiBwYWRzIG11c3QgaW5oZXJpdCBmcm9tICNHc3RBZ2dyZWdhdG9yUGFkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk3NzRiMzc3NWQ4NDgzZTU2OTdmOTE5NmEyNmMxZTU4MzExMTNiZDYuCgkgIFB1c2hlZCBieSBtaXN0YWtlCgoyMDE4LTAzLTAxIDAxOjEyOjA3ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZW5zdXJlIHdlIGJ1aWxkIGEgZ2hvc3QgcGFkIC4uCgkgIFdoZW4gd2UgY29uc3RydWN0IGZyb20gYSBjdXN0b20gR1R5cGUKCjIwMTgtMDMtMDEgMDE6MDk6NDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBtaXhlZCBkZWNsYXJhdGlvbnMKCjIwMTgtMDMtMDEgMDA6MzE6MTEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgZ3N0YWdncmVnYXRvcjogcGFkcyBtdXN0IGluaGVyaXQgZnJvbSAjR3N0QWdncmVnYXRvclBhZAoJICBEb2N1bWVudCB0aGlzLCBhbmQgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhhdCBmYWN0IHRvIHVzZQoJICBHc3RBZ2dyZWdhdG9yLnNyY3BhZC5zZWdtZW50IGluc3RlYWQgb2YgR3N0QWdncmVnYXRvci5zZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5NDIKCjIwMTgtMDItMjggMTk6NTM6NDIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFsbG93IHNyYyBHc3RBZ2dyZWdhdG9yUGFkcwoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzkxNwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTM0CgoyMDE4LTAyLTI4IDE5OjUxOjQ0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWQsIGdob3N0cGFkOiB1c2UgdGhlIHRlbXBsYXRlIGd0eXBlIGlmIHNwZWNpZmllZAoJICBBbHNvIG1ha2Ugc3VyZSB0aGUgR1R5cGUgcGFzc2VkIHRvIHRoZSB3aXRoX2d0eXBlIHZlcnNpb25zCgkgIG9mIHRoZSB0ZW1wbGF0ZSBjb25zdHJ1Y3RvcnMgaXNfYSBHc3RQYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzkzMwoKMjAxOC0wMi0yMSAyMjoyNToyNSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggaW50ZWdlciBvdmVyZmxvdyBpbiBiaXRyYXRlIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyODQKCjIwMTgtMDItMjEgMjI6MDE6MzYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQXZvaWQgb3ZlcmZsb3cgaW4gdXBkYXRlX2ludGVydmFsIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyODQKCjIwMTgtMDItMjEgMjE6NDM6NTkgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGNoZWNrIGZvciB1cGRhdGVfaW50ZXJ2YWwKCSAgdXBkYXRlX2ludGVydmFsIG1heSBiZSAtMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjg0CgoyMDE4LTAyLTE5IDE1OjM5OjQ2ICswOTAwICBKdXN0aW4gS2ltIDxqdXN0aW4ua2ltQGNvbGxhYm9yYS5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSAuZHlsaWIgc3VmZml4IGlmIGRhcndpbgoJICBGb3IgTWFjIE9TLCBHU1RfRVhUUkFfTU9EVUxFX1NVRkZJWCBzaG91bGQgYmUgc2V0IGFzICcuZHlsaWInLgoJICBPdGhlcndpc2UsIEdTdHJlYW1lciBmYWlscyB0byBsb2FkIGl0cyBwbHVnaW5zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzNTg0CgoyMDE4LTAyLTAxIDE4OjI5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBxdWV1ZWFycmF5OiBhZGQgX3BlZWtfdGFpbCgpIGFuZCBfcG9wX3RhaWwoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wb3BfdGFpbCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BlZWtfdGFpbCgpCgkgIFRoZXNlIHdpbGwgYmUgbmVlZGVkIGxhdGVyIGZvciBhcHBzcmMuCgoyMDE4LTAyLTEzIDEyOjM4OjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdDogZml4IHNvbWUgR0lSIGFubm90YXRpb25zCgkgIE1vc3RseSByZWxhdGVkIHRvIG91dCBwYXJhbWV0ZXJzIGFuZCB0aGVpciB0cmFuc2ZlcgoKMjAxOC0wMS0xMCAwNDowODo1NyArMDEwMCAgQWxpY2lhIEJveWEgR2FyY8OtYSA8YWJveWFAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICBnc3RiYXNlc2luazogSW5jbHVkZSBzZWdtZW50Lm9mZnNldCBpbiB0aGUgY29tcHV0YXRpb24gb2YgcG9zaXRpb24KCSAgUG9zaXRpb24gcXVlcmllcyB3aXRoIEdTVF9GT1JNQVRfVElNRSBhcmUgc3VwcG9zZWQgdG8gcmV0dXJuIHN0cmVhbQoJICB0aW1lLgoJICBnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbigpIGVzdGltYXRlcyB0aGUgY3VycmVudCBzdHJlYW0gdGltZSBvbiBpdHMKCSAgb3duIGluc3RlYWQgb2YgdXNpbmcgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUoKSwgYnV0IHRoZSBhbGdvcml0aG0KCSAgdXNlZCB3YXMgbm90IHRha2luZyBzZWdtZW50Lm9mZnNldCBpbnRvIGFjY291bnQsIHJlc3VsdGluZyBpbiBpbnZhbGlkCgkgIHZhbHVlcyB3aGVuIHRoaXMgZmllbGQgd2FzIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyNDM0CgoyMDE4LTAyLTE1IDEyOjU4OjQzICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICB0cmFjZXJzOiBsYXRlbmN5OiBhbGxvdyBmb3Igbm9uIHBhcmVudGVkIHBhZHMgdG8gc2VuZCBsYXRlbmN5IHByb2JlcwoJICBTdWNoIGEgc2V0dXAgaXMgdXNlZCBpbiBydHNwc3JjIGZvciBpdHMgVENQIGNvbm5lY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzQ3OAoKMjAxOC0wMi0xNSAxOTo0NDoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkqIG1lc29uLmJ1aWxkOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEzLjEgPT09CgoyMDE4LTAyLTE1IDE2OjMxOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTkVXUzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjEzLjEKCjIwMTgtMDItMTUgMTM6MzY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IHBpcGVsaW5lOiB0cnkgdG8gbWFrZSB0ZXN0X3BpcGVsaW5lX3Jlc2V0X3N0YXJ0X3RpbWUgbW9yZSByZWxpYWJsZQoJICBPY2Nhc2lvbmFsbHkgdGhpcyB0ZXN0IHdvdWxkIGZhaWwsIGVzcGVjaWFsbHkgaWYgdGhlIHN5c3RlbSBpcyB1bmRlciBsb2FkLAoJICBiZWNhdXNlIHRoZSBwb3NpdGlvbiBxdWVyeSB3b3VsZCBwaWNrIHVwIHRoZSBsYXN0IHBvc2l0aW9uIGZyb20gdGhlCgkgIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCB3aGljaCBoYXMgYSBsb3dlciB0aW1lc3RhbXAgdGhhbiB3aGF0IHdlJ3JlCgkgIGxvb2tpbmcgZm9yLiBUaGUgc2xlZXAgaXMgbG9uZyBlbm91Z2gsIGhvd2V2ZXIuIEl0J3MgdW5jbGVhciB0byBtZSB3aHkKCSAgZXhhY3RseSB0aGlzIGhhcHBlbnMgYnV0IHRoZXJlIHNlZW1zIHRvIGJlIHNvbWUga2luZCBvZiBzY2hlZHVsaW5nCgkgIGlzc3VlIGdvaW5nIG9uIGFzIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGZsb29kcyB0aGUgc2luayB3aXRoIGJ1ZmZlcnMuCgkgIExldCdzIHRocm90dGxlIHRoZSBmYWtlc3JjIHRvIDEwMCBidWZmZXJzIHBlciBzZWNvbmQgYW5kIG1ha2UgdGhlIHNpbmsKCSAgc3luYyB0byB0aGUgY2xvY2sgdG8gcmVzdG9yZSBzb21lIHNhbml0eS4gSXQgc2hvdWxkIGJlIHRvdGFsbHkgc3VmZmljaWVudAoJICB0byB0ZXN0IHdoYXQgd2Ugd2FudCB0byB0ZXN0LCBhbmQgc2VlbXMgdG8gbWFrZSB0aGluZ3MgcmVsaWFibGUgaGVyZS4KCjIwMTgtMDItMTUgMTI6MDM6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHRlc3RzOiB1cmk6IGZpeCBidWlsZCB3aXRob3V0IC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBNdXN0IHVuZGVmaW5lIGl0IGJlZm9yZSBpbmNsdWRpbmcgZ3N0IGhlYWRlcnMsIHNpbmNlIHRoZSB0ZXN0CgkgIHRlc3RzIGRlcHJlY2F0ZWQgQVBJLgoKMjAxOC0wMi0xNSAxMjowOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IHdhbnQgZGVwcmVjYXRpb24gd2FybmluZ3MgaWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyAqc2V0KgoJICBGaXggaW52ZXJ0ZWQgbG9naWMuIElmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgdW5kZWZpbmVkLAoJICB3ZSBkb24ndCB3YW50IHdhcm5pbmdzIGFib3V0IGRlcHJlY2F0ZWQgQVBJLCBhbmQgaWYgaXQncwoJICBkZWZpbmVkIHdlIGRvIHdhbnQgd2FybmluZ3MuCgoyMDE4LTAyLTE1IDExOjI4OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxOC0wMi0xNCAxOTozNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBmbG93IGNvbWJpbmVyIHJlZi91bnJlZiB0byBkb2NzCgkgIFNvIG5ldy1pbi0xLjEyIGluZGV4IGFjdHVhbGx5IGhhcyBzb21lIGVudHJpZXMuCgoyMDE4LTAyLTE0IDE5OjEzOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGluZGV4IGZvciBuZXcgc3ltYm9scyBpbiAxLjE0CgoyMDE4LTAyLTE0IDE5OjEyOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGluZGV4IGZvciBuZXcgc3ltYm9scyBpbiAxLjEyCgoyMDE4LTAyLTA4IDE3OjIyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBtYWtlIHZlcnNpb24gbnVtYmVycyBpbnRzIGFuZCBmaXggaW50L3N0cmluZyBjb21wYXJpc29uCgkgIFdBUk5JTkc6IFRyeWluZyB0byBjb21wYXJlIHZhbHVlcyBvZiBkaWZmZXJlbnQgdHlwZXMgKHN0ciwgaW50KS4KCSAgVGhlIHJlc3VsdCBvZiB0aGlzIGlzIHVuZGVmaW5lZCBhbmQgd2lsbCBiZWNvbWUgYSBoYXJkIGVycm9yCgkgIGluIGEgZnV0dXJlIE1lc29uIHJlbGVhc2UuCgoyMDE4LTAyLTAzIDE3OjU2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJICBhdXRvdG9vbHM6IHVzZSAtZm5vLXN0cmljdC1hbGlhc2luZyB3aGVyZSBzdXBwb3J0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTE4MwoKMjAxOC0wMi0wMyAxNzo1NToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBmaXggZ3RrLWRvYyB3YXJuaW5nIHJlZ2FyZGluZyBfZ2V0X25fbWV0YSgpIGRlY2xhcmF0aW9uCgoyMDE4LTAyLTAyIDAwOjI0OjIwICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJvbWlzZS5jOgoJKiBnc3QvZ3N0cHJvbWlzZS5oOgoJICBnc3Rwcm9taXNlOiBhZGQgc2luY2UgMS4xNCBtYXJrZXJzCgoyMDE3LTEwLTE4IDIxOjI0OjE5ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgd2VicnRjIHRvIGxpYnJhcmllcwoKMjAxOC0wMS0zMSAxNDowMTozNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGdzdGJ1ZmZlci5oOiBtb3ZlIEZMQUdfTEFTVCBkb2N1bWVudGF0aW9uIGJhY2sgdG8gdGhlIGJvdHRvbQoKMjAxOC0wMS0zMSAxMzozNjoxNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogYW5ub3RhdGUgdmlydHVhbCBtZXRob2RzCgoyMDE4LTAxLTMwIDE2OjQxOjM5ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZ3N0YnVmZmVyOiBhZGQgR1NUX0JVRkZFUl9GTEFHX05PTl9EUk9QUEFCTEUKCSAgVGhpcyBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSBidWZmZXJzIGZvciB3aGljaCBhIGhpZ2hlciBwZXJjZW50YWdlCgkgIG9mIHJlZHVuZGFuY3kgc2hvdWxkIGJlIGFsbG9jYXRlZCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZCBlcnJvcgoJICBjb3JyZWN0aW9uLCBvciB0byBwcmV2ZW50IHN0aWxsIHZpZGVvIGZyYW1lcyBmcm9tIGJlaW5nIGRyb3BwZWQgYnkKCSAgZWxlbWVudHMgZHVlIHRvIFFvUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzAwOAoKMjAxOC0wMS0zMCAyMDozMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogdXNlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIGlmIHN1cHBvcnRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MTgzCgoyMDE3LTEyLTIzIDE2OjQ1OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBnc3RfYnVmZmVyX2dldF9uX21ldGEoKSBjb252ZW5pZW5jZSBmdW5jdGlvbgoJICBDb3VudHMgaG93IG1hbnkgbWV0YXMgdGhlcmUgYXJlIGZvciBhIGNlcnRhaW4gYXBpIHR5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE5MTgKCjIwMTctMTAtMjIgMTg6MDU6MzAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IEZpeCB1cCBhIGJ1bmNoIG9mIEdJUiBhbm5vdGF0aW9ucwoJICBUaGlzIGlzIG1vc3RseSBvbiBudWxsYWJsZSByZXR1cm4gdmFsdWVzLCBhbmQgc29tZSBvdGhlciBtaW5vciBvbmVzIHRoYXQKCSAgSSByYW4gYWNyb3NzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzE5CgoyMDE3LTA1LTI3IDA1OjE5OjIwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBSZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEZBTFNFCgkgIFNhbWUgZWZmZWN0LCBtZWFuaW5nIGlzIGNsZWFyZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzMTkKCjIwMTgtMDEtMjYgMTI6NDI6MjggKzAxMDAgIEZyYW7Dp29pcyBMYWlnbmVsIDxmZW5nYWxpbkBmcmVlLmZyPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IEFkZCBnc3RfbWVzc2FnZV93cml0YWJsZV9zdHJ1Y3R1cmUoKQoJICBBZGQgZ3N0X21lc3NhZ2Vfd3JpdGFibGVfc3RydWN0dXJlKCkgdG8gYmUgYWJsZSB0byBhZGQgZXh0cmEgZmllbGRzIHRvCgkgIG1lc3NhZ2VzIChhbmQgYmUgb24gcGFyIHdpdGggR3N0RXZlbnQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyOTI4CgoyMDE4LTAxLTIzIDIyOjQ5OjUyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkZWxlZ2F0ZSBidWZmZXIgc2tpcHBpbmcgdG8gdGhlIGFnZ3JlZ2F0ZSB0aHJlYWQKCSAgQXMgd2UgZG8gdGhhdCBmb3Igc2VyaWFsaXplZCBldmVudHMgYXMgd2VsbCwgYW5kIHRoZSBzdWJjbGFzcyB3aWxsCgkgIG1vc3QgbGlrZWx5IG5lZWQgdG8gYWNjZXNzIHBhZC0+c2VnbWVudCB0byBtYWtlIGl0cyBkZWNpc2lvbnMsCgkgIGRvaW5nIHRoYXQgZnJvbSB0aGUgc2lua3BhZCdzIHN0cmVhbWluZyB0aHJlYWRzIHdhcyByYWN5LgoKMjAxNy0xMi0yOCAxMjoxMjo0NSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIEFQSTogR3N0QWdncmVnYXRvclBhZC5za2lwX2J1ZmZlciB2aXJ0dWFsIG1ldGhvZAoJICBBbGxvd3Mgc3ViY2xhc3NlcyB0byBwcmV2ZW50IGJ1ZmZlcnMgZnJvbSBiZWluZyBxdWV1ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE5MjgKCjIwMTgtMDEtMjMgMjA6MDQ6MDIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IEFubm90YXRlIHNvbWUgb2YgdGhlIHZpcnR1YWwgbWV0aG9kcwoKMjAxOC0wMS0yMyAwODo1NjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWdncmVnYXRvcjogcmVuYW1lIF9nZXRfYnVmZmVyKCkgLT4gX3BlZWtfYnVmZmVyKCkgYW5kIF9zdGVhbCAtPiBfcG9wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEyMDQKCjIwMTgtMDEtMjAgMTU6MzA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBncmFjZWZ1bGx5IGhhbmRsZSBtZXRob2RzIGJlaW5nIE5VTEwKCSAgRG8gdGhpcyBmb3IgYWxsIG1ldGhvZCBpbnZva2UgZnVuY3Rpb25zIGZvciBjb25zaXN0ZW5jeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE1NAoKMjAxOC0wMS0xOCAxODoxMTo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoJICBGaXhlcyBjaGVjayArIGRpc3RjaGVjawoKMjAxNy0wOC0wMSAxMDo0MzozMiArMDIwMCAgTWljaGVsZSBEaW9uaXNpbyA8bWljaGVsZS5kaW9uaXNpb0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBmaXggYnVpbGQgZmFpbHVyZSB3aXRoICN1bmRlZiBVU0VfTUVBU1VSRU1FTlRfRklMVEVSSU5HCgkgICJMYWJlbCDigJhvdXTigJkgdXNlZCBidXQgbm90IGRlZmluZWQiLCBzaW5jZSBpdCdzIGFsc28gdXNlZCBieQoJICB0aGUgVVNFX01FRElBTl9QUkVfRklMVEVSSU5HIGJyYW5jaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTYzMQoKMjAxOC0wMS0xOCAxOToxNjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogQW5kIGFkZCBtaXNzaW5nIEdTVF9FWFBPUlQgdG8gZ3N0X3BhZF90ZW1wbGF0ZV9uZXdfd2l0aF9ndHlwZSgpCgoyMDE4LTAxLTE4IDE5OjE1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBBZGQgbWlzc2luZyBTaW5jZTogMS4xNCBtYXJrZXIgdG8gZ3N0X3BhZF90ZW1wbGF0ZV9uZXdfd2l0aF9ndHlwZSgpCgoyMDE4LTAxLTE4IDE5OjA4OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogQWRkIGdzdF9wYWRfdGVtcGxhdGVfbmV3X3dpdGhfZ3R5cGUoKQoJICBGb3IgYmVpbmcgYWJsZSB0byBjcmVhdGUgYSBwYWQgdGVtcGxhdGUgd2l0aCBHVHlwZSB3aXRob3V0IGhhdmluZyBhCgkgIHN0YXRpYyBwYWQgdGVtcGxhdGUuCgoyMDE4LTAxLTE4IDE5OjA3OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBBZGQgU2luY2U6IDEuMTQgbWFya2VyIHRvIGdzdF9wYWRfdGVtcGxhdGVfbmV3X2Zyb21fc3RhdGljX3BhZF90ZW1wbGF0ZV93aXRoX2d0eXBlKCkKCjIwMTgtMDEtMTYgMTA6MTc6NTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQXZvaWQgc3RyZWFtLWRlYWQtbG9jayBvbiBkZWFjdGl2YXRpb24KCSAgVGhlIGZvbGxvd2luZyBjYXNlIGNhbiBoYXBwZW4gd2hlbiB0d28gdGhyZWFkIHRyeSB0byBhY3RpdmF0ZSBhbmQKCSAgZGVhY3RpdmF0ZSBhIHBhZCBhdCB0aGUgc2FtZSB0aW1lOgoJICBUMTogc3RhcnRzIHRvIGRlYWN0aXZhdGUsIGNhbGxzIHByZV9hY3RpdmF0ZSgpLCBzZXRzIGluX2FjdGl2YXRpb24KCSAgdG8gVFJVRSBhbmQgY2FycmllcyBvbgoJICBUMjogc3RhcnRzIHRvIGFjdGl2YXRlLCBjYWxscyBwcmVfYWN0aXZhdGUoKSwgaW5fYWN0aXZhdGlvbiBpcyBUUlVFCgkgIHNvIGl0IHdhaXRzIG9uIHRoZSBHQ29uZAoJICBUMTogY2FsbHMgcG9zdF9hY3RpdmF0ZSgpLCB0cmllcyB0byBhY3F1aXJlIHRoZSBzdHJlYW1pbmcgbG9jayAuLgoJICBidXQgY2FuJ3QgYmVjYXVzZSBUMiBpcyBjdXJyZW50bHkgaG9sZGluZyBpdAoJICBXaXRoIHRoaXMgcGF0Y2gsIHRoZSBkZWFkbG9jayB3aWxsIG5vIGxvbmdlciBoYXBwZW4gYnV0IGRvZXMgbm90CgkgIHNvbHZlIHRoZSBwcm9ibGVtIHRoYXQ6CgkgIFQyOiB3aWxsIHJlc3VtZSBhY3RpdmF0aW9uIG9mIHRoZSBwYWQsIHNldCB0aGUgcGFkIG1vZGUgdG8gdGhlIHRhcmdldAoJICBvbmUgKFBVU0ggb3IgUFVMTCkgYW5kIGV2ZW50dWFsbHkgdGhlIHN0cmVhbWluZyBsb2NrIGdldHMgcmVsZWFzZWQuCgkgIFQxOiBpcyBhYmxlIHRvIGZpbmlzaCBjYWxsaW5nIHBvc3RfYWN0aXZhdGUoKSAuLi4gYnV0IC4uLiB0aGUgcGFkCgkgIHdhc24ndCBkZWFjdGl2YXRlZCAoVDIgd2FzIHRoZSBsYXN0IG9uZSB0byAiYWN0aXZhdGUiIHRoZSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIzNDEKCjIwMTgtMDEtMTUgMTg6MTM6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogUmVsZWFzZSBwZW5kaW5nIGdfY29uZF93YWl0KCkgd2hlbiBzdG9wcGluZy9wYXVzaW5nIHRhc2sKCSAgT3RoZXJ3aXNlIHdlIHdvdWxkIGRlYWRsb2NrIHdhaXRpbmcgZm9yZXZlciBmb3IgdGhlIHN0cmVhbWluZyBsb2NrCgkgIHRvIGJlIHJlbGVhc2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIzNDEKCjIwMTgtMDEtMTMgMTE6MDg6MDAgKzA4MDAgIEp1biBYaWUgPGp1bi54aWVAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBmaXggY29uZnVzaW5nIGRlYnVnIGxvZyBtZXNzYWdlCgkgIEluIGNhc2Ugb2YgYSBzaG9ydCBidWZmZXIsIHRoZSBkZWJ1ZyBsb2cgaXMgcXVpdGUgY29uZnVzaW5nLgoJICBEaXN0aW5ndWlzaCB0aGUgdHdvIHR5cGVzIG9mIGZhaWx1cmUgY2FzZXMgdG8gbWFrZSBpdCBjbGVhcmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyNDg2CgoyMDE4LTAxLTEyIDE4OjQ3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBleHBsaWNpdCByZWZlciB0byBHT2JqZWN0IGRvY3MgZm9yIGZsb2F0aW5nIHJlZnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODQ3NwoKMjAxOC0wMS0xMSAxOTo1Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzOiBmYWtlc2luazogbWFrZSBub3RpZnkgc3RyZXNzIHRlc3Qgd29yayBiZXR0ZXIgb24gV2luZG93cwoJICBTZXQgdXAgYWxsIHRlbiBwaXBlbGluZXMgYW5kIHByZXJvbGwgdGhlbSBmaXJzdCwgYW5kIG9ubHkgc2V0CgkgIHRoZW0gdG8gcGxheWluZyB0byBydW4gd2lsZCBhZnRlciB0aGV5J3JlIGFsbCBzZXQgdXAuIElmIHdlIHNldAoJICB0aGVtIHRvIFBMQVlJTkcgZGlyZWN0bHkgYW5kIGxldCB0aG9zZSB0aHJlYWRzIHJ1biB3aWxkLCB0aGVuCgkgIGl0IG1pZ2h0IHRha2UgYWdlcyAobWFueSBzZWNvbmRzKSBmb3IgdGhlIG90aGVyIHBpcGVsaW5lcyB0bwoJICBldmVuIGdldCB1cCBhbmQgcnVubmluZywgZXNwZWNpYWxseSBvbiBtYWNoaW5lcyB3aXRoIG9ubHkgb25lCgkgIG9yIHR3byBjb3JlcywgYW5kIG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgc3VjayBhdCBzY2hlZHVsaW5nLgoJICBOb3cgdGhlIGZha2VzaW5rIHRlc3QgdGFrZXMgMTkgc2VjcyBpbnN0ZWFkIG9mIDcxIHNlY3Mgb24gYQoJICBzaW5nbGUtY3B1IHdpbmRvd3MgbWFjaGluZS4KCjIwMTgtMDEtMTEgMTk6MzI6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBmaWxlc3JjOiBtb3JlIFdpbmRvd3MgZml4ZXMKCSAgRml4IHR5cG8gaW4gbmV3bHktYWRkZWQgd2luZG93cyB1cmkgdGVzdC4KCjIwMTgtMDEtMTEgMTg6NDQ6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBnX2dldF9tb25vdG9uaWNfdGltZSgpIGFzIGZhbGxiYWNrIGluIGdzdF91dGlsc19nZXRfdGltZXN0YW1wKCkKCSAgVGhpcyBpcyBhIGJldHRlciBmaXQgZ2l2ZW4gdGhhdCB0aGUgZnVuY3Rpb24gZG9jcyBzYXkgdGhpcwoJICBzaG91bGQgKG9ubHkpIGJlIHVzZWQgZm9yIGludGVydmFsIG1lYXN1cmVtZW50cywgYnV0IGFsc28KCSAgdGhpcyBzZWVtcyB0byBnaXZlIG11Y2ggYmV0dGVyIGdyYW51bGFyaXR5IG9uIFdpbmRvd3MKCSAgc3lzdGVtcywgd2hlcmUgYmVmb3JlIHRoaXMgY2hhbmdlIHRoZXJlIHdvdWxkIG9mdGVuIGJlCgkgIDEwLTIwIGxpbmVzIG9mIGRlYnVnIGxvZyB3aXRoIHRoZSBzYW1lIHRpbWVzdGFtcCB1cCBmcm9udC4KCjIwMTgtMDEtMTEgMTg6Mzk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgdGVzdHM6IHN5c3RlbWNsb2NrOiBzY2FsZSBzdHJlc3MgdGVzdCB0aHJlYWRzIGFjY29yZGluZyB0byBudW1iZXIgb2YgY3B1cwoJICBTY2FsZSB0aGUgbnVtYmVyIG9mIHRocmVhZHMgdXNlZCBpbiB0aGUgc3RyZXNzIHRlc3RzIGFjY29yZGluZyB0bwoJICB0aGUgbnVtYmVyIG9mIGNvcmVzL2NwdXMuIFdlIHdhbnQgc29tZSBjb250ZW50aW9uLCBidXQgd2UgYWxzbwoJICBkb24ndCB3YW50IHRvbyBtdWNoIGNvbnRlbnRpb24sIGFzIHNvbWUgb3BlcmF0aW5nIHN5c3RlbXMgYXJlCgkgIGJldHRlciBhdCBoYW5kbGluZyAxMDAgdGhyZWFkcyBydW5uaW5nIHdpbGQgb24gYSBzaW5nbGUgY29yZQoJICB0aGFuIG90aGVycy4KCjIwMTgtMDEtMTEgMTc6MTA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcGx1Z2luX2xvYWQoKSBtdXN0IHJldHVybiBhIHJlZiBldmVuIGlmIGl0IHdhcyBsb2FkZWQgYWxyZWFkeQoJICBGaXggcmVmY291bnRpbmcgaXNzdWUgd2hlbiBwbHVnaW4gd2FzIGxvYWRlZCBhbHJlYWR5LgoJICBnc3RfcGx1Z2luX2xvYWQoKSBpcyBzdXBwb3NlZCB0byByZXR1cm4gYSByZWYsIHNvIGl0CgkgIG11c3QgYWx3YXlzIHJldHVybiBhIHJlZi4KCSAgVGhpcyBhbHNvIGZpeGVzIHRoZSBnc3RwbHVnaW4gdW5pdCB0ZXN0IG9uIHdpbmRvd3Mgd2hlcmUKCSAgZm9yayBpcyBub3QgYXZhaWxhYmxlIGFuZCB3aGVyZSB0ZXN0X2xvYWRfY29yZWVsZW1lbnRzKCkKCSAgd291bGQgdW5yZWYgYSBwbHVnaW4gcmVmIGl0IGRpZG4ndCBnZXQgYW5kIHRoZW4gbWVzcyB1cAoJICB0aGUgaW50ZXJuYWwgcmVnaXN0cnkgcGx1Z2luIGxpc3Qgc3RhdGUgZm9yIHRoZSBuZXh0IHRlc3QsCgkgIGluIGNhc2Ugd2hlcmUgdGhlIHRlc3QgcmVnaXN0cnkgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxOC0wMS0xMSAxNDo1Njo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IGZpbGVzcmM6IGZpeCBmb3Igd2luZG93cwoJICBMb2NhdGlvbiBwYXRocyBoYXZlIGJhY2tzbGFzaGVzIG9uIHdpbmRvd3Mgd2hlbiBjb252ZXJ0ZWQgZnJvbSBVUkkuCgoyMDE4LTAxLTExIDEyOjI3OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgbGliczogY2hlY2s6IHByaW50IHN0YWNrdHJhY2Ugb24gdW5leHBlY3RlZCBjcml0aWNhbHMKCjIwMTgtMDEtMTEgMTI6MDI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NHcuaDoKCSAgdGVzdHM6IGFiaTogZml4IGFiaSB0ZXN0IG9uIDY0LWJpdCBXaW5kb3dzCgkgIEFkZCBoZWFkZXIgd2l0aCBzdHJ1Y3R1cmUgc2l6ZXMgZm9yIDY0LWJpdCB3aW5kb3dzIGFzIHdlbGwuCgkgIFRoZXkncmUgYWxtb3N0IHRoZSBzYW1lIGFzIG9uIExpbnV4LCBidXQgaXQgbG9va3MgbGlrZSB0aGluZ3MKCSAgbGlrZSBwYWRkaW5nIHVuaW9ucyBnZXQgYWxpZ25lZCBzbGlnaHRseSBkaWZmZXJlbnRseSBzbyB0aGVyZQoJICBhcmUgYSBoYW5kZnVsIG9mIGRpZmZlcmVuY2VzOgoJICBzaXplb2YoR3N0R2hvc3RQYWQpIGlzIDUyOCwgZXhwZWN0ZWQgNTM2CgkgIHNpemVvZihHc3RQYWQpIGlzIDUxMiwgZXhwZWN0ZWQgNTIwCgkgIHNpemVvZihHc3RQYWRQcm9iZUluZm8pIGlzIDY0LCBleHBlY3RlZCA3MgoJICBzaXplb2YoR3N0UHJveHlQYWQpIGlzIDUyMCwgZXhwZWN0ZWQgNTI4CgoyMDE4LTAxLTExIDExOjM4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGZpeCBwb3N0IGluaXQgY2F0IHJlZyB0ZXN0IG9uIHdpbmRvd3MgYW5kIHdpdGggQ0tfRk9SSz1ubwoJICBUaGUgdGVzdCBjaGVja3MgdGhhdCBjYXRlZ29yaWVzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBwYXR0ZXJuIGluIHRoZQoJICBHU1RfREVCVUcgc3RyaW5nIGhhdmUgZGVidWcgbGV2ZWwgR1NUX0xFVkVMX0RFRkFVTFQgc2V0LCBidXQgcHJldmlvdXMKCSAgdGVzdHMgbWVzcyB3aXRoIHRoZSBkZWZhdWx0IHRocmVzaG9sZCwgd2hpY2ggbWFkZSB0aGlzIHRlc3QgZmFpbCBvbgoJICBXaW5kb3dzIG9yIHdoZW4gcnVuIHdpdGggQ0tfRk9SSz1uby4gRml4IHRoaXMgYnkgcmVzZXR0aW5nIGV2ZXJ5dGhpbmcKCSAgYXQgdGhlIGJlZ2lubmluZywgYW5kIHRoZW4gYWxzbyBkbyBhIHNhbml0eSBjaGVjayBhZnRlcndhcmRzLgoKMjAxOC0wMS0xMSAxMTozNjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlc2V0IGRlZmF1bHQgdGhyZXNob2xkIHRvIExFVkVMX0RFRkFVTFQgbm90IDAKCSAgaW4gc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZygpLgoKMjAxNy0xMS0wOCAyMDowNTowMyArMDEwMCAgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9tZXNvbi5idWlsZDoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9tZXNvbi5idWlsZDoKCSAgbWVzb246IG1ha2UgY2hlY2sgYW5kIHRlc3RzIGJ1aWxkIG9uIFdpbmRvd3Mgd2l0aCBtc3ZjCgoyMDE4LTAxLTAyIDEwOjAyOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBnc3RoYXJuZXNzOiBSZW1vdmUgZG91YmxlIGZyZWUKCjIwMTctMTItMjYgMTg6MDg6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJICBzdHJlYW1zOiBHc3RTdHJlYW1UeXBlL0dzdFN0cmVhbSBhcmUgYXZhaWxhYmxlIHNpbmNlIDEuMTAKCSAgQW5ub3RhdGUgdGhlbSBhcyBzdWNoLgoKMjAxNy0xMi0yNiAxMzo0NjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogc2tpcCB0cmFuc2xhdGlvbnMgaWYgZ2V0dGV4dCBpcyBub3QgYXZhaWxhYmxlCgoyMDE3LTEyLTI2IDEyOjUxOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBERUJVR19GVU5DUFRSCgkgIFRoZSBuZXcgZ3N0X2VsZW1lbnRfZG9fZm9yZWFjaF9wYWQoKSBkb2VzIG5vdCBwcmludCB0aGUgZnVuY3Rpb25zIGFueW1vcmUuCgoyMDE3LTEyLTI2IDEyOjE3OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWRkIGNvbW1lbnQgZm9yIGhvdyB0byBpbXByb3ZlIHRyYWNlciBzdXBwb3J0CgoyMDE3LTEyLTI2IDExOjI5OjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWRkIGEgRklYTUUtMi4wIGZvciB0aGUgZm9ybWF0IHBhcmFtZXRlcnMKCSAgQ2FwdHVyZSB0aGUgc29tZXdoYXQgbm90IG9yZGluYXJ5IHVzZSBvZiB0aGUgZXh0cmEgZm9ybWF0IHBhcmFtZXRlciBpbiBhCgkgIGNvbW1lbnQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4OTc5CgoyMDE3LTEyLTI0IDE2OjIxOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZWluaXQuYzoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIFNraXAgZ3N0X2RlaW5pdCgpIGlmIGdzdHJlYW1lciB3YXMgbm90IGluaXRpYWxpemVkIHByb3Blcmx5CgkgIENhbiBoYXBwZW4gaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBvcHRpb24gcGFyc2luZywgZm9yIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE5MTQKCjIwMTctMTItMjMgMjM6NDM6MzMgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBSZXBsYWNlIGxhcmdlIHRlc3QgbWFjcm8gd2l0aCBmdW5jdGlvbgoJICBKdXN0IGEgYml0IG9mIGNsZWFudXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjcKCjIwMTctMTItMTUgMDk6NDM6NDAgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBDaGVjayB3ZSBnZXQgQ1JFQVRFK0VOVEVSIHN0cmVhbS1zdGF0dXNlcyB3aGVuIGFkZGluZyBwYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjcKCjIwMTctMTItMTUgMDk6MTQ6NTcgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3Qgc3RhcnQgbmV3IHBhZHMgdW50aWwgcGFyZW50ZWQKCSAgU3RhcnQgdGFzayBvbiBuZXcgc291cmNlIHBhZHMgYWRkZWQgYXQgcnVudGltZSBhZnRlciB0aGV5CgkgIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgZWxlbWVudCwgbm90IGR1cmluZyBhY3RpdmF0aW9uLgoJICBUaGlzIGVuc3VyZXMgdGhlIHBhZHMgY2FuIHBvc3QgdGhlaXIgQ1JFQVRFIHN0cmVhbS1zdGF0dXMKCSAgbWVzc2FnZXMgYW5kIHRoZSBhcHBsaWNhdGlvbiBjYW4gc2V0IHRocmVhZCBwcmlvcml0aWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY3CgoyMDE3LTEyLTE1IDA5OjE0OjA3ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFNwbGl0IHRhc2sgaGFuZGxpbmcgZnJvbSBnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjcKCjIwMTctMTItMjMgMjM6MjU6NTggKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQXZvaWQgYSBtYXliZS11bmluaXRpYWxpemVkIHdhcm5pbmcKCSAgQXJjaCBMaW51eCB4ODZfNjQsIGdjYyA3LjIuMS0yLCAtT2cgLWczCgoyMDE3LTEyLTIxIDEzOjQ3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogRG9uJ3QgaG9sZCB0aGUgbXV0ZXggd2hpbGUgcG9zaW50IHRoZSBkb3dubG9hZC1jb21wbGV0ZSBtZXNzYWdlCgkgIFNvbWV0aGluZyBtaWdodCBoYW5kbGUgaXQgZnJvbSBhIHN5bmMgbWVzc2FnZSBoYW5kbGVyIGFuZCBjYWxsIGJhY2sgaW50bwoJICBkb3dubG9hZGJ1ZmZlciwgY2F1c2luZyBhIGRlYWRsb2NrLgoKMjAxNy0xMi0yMCAxODo1NjoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogc2V0X2RlZmF1bHQoKSBjbG9jayBwYXJhbWV0ZXIgY2FuIGJlIE5VTEwKCjIwMTctMTItMjAgMTg6MTE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBbm5vdGF0ZSBzZXRfY2xvY2soKSBjbG9jayBwYXJhbWV0ZXIgd2l0aCBhbGxvdy1ub25lCgoyMDE3LTEyLTIwIDE4OjA5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQW5ub3RhdGUgc2V0X2J1cygpIGJ1cyBwYXJhbWV0ZXIgYXMgYWxsb3ctbm9uZQoJICBJdCdzIHBvc3NpYmxlIHRvIHJlcGxhY2UgdGhlIGJ1cyB3aXRoIE5VTEwvTm9uZQoKMjAxNy0xMi0xMCAyMjo1MDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHVwZGF0ZSBmb3IgZ2wgbGliIG1vdmUgZnJvbSBiYWQgdG8gYmFzZQoKMjAxNy0xMi0xMSAyMDo1ODoxNiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsbG93IGdvaW5nIHBhc3N0aHJvdWdoIGluc2lkZSBkZWNpZGVfYWxsb2NhdGlvbgoJICBTdWItY2xhc3MgbWF5IHdhbnQgdG8gZGVjaWRlIHRvIGdvIHBhc3N0aHJvdWdoL2luLXBsYWNlIGJ5IGluc3BlY3RpbmcKCSAgdGhlIHN1cHBvcnQgbWV0YSBBUElzLiBUaGlzIHBhdGNoIGR1cGxpY2F0ZXMgdGhlIGNoZWNrIGZvciB0aGlzIG1vZGUsCgkgIHNvIHdlIHN0aWxsIGRvbid0IGRvIHVuZWVkZWQgYWxsb2NhdGlvbiBxdWVyeSB3aGlsZSB3ZSBhbGxvdyBzdWItY2xhc3NlcwoJICB0byBzd2l0Y2ggdGhlIGJlaGF2aW91ciBkdXJpbmcgaXQncyBvd24gZGVjaWRlX2FsbG9jYXRpb24gY2FsbC4KCSAgTm90aWNlIHRoYXQgc3VjaCBzdWItY2xhc3MgbmVlZCB0byByZXNldCB0aGUgY2xhc3MgdG8gbm9uLXBhc3N0aHJvdWdoIGluCgkgIHNldF9jYXBzKCkgaW4gb3JkZXIgZm9yIGRlY2lkZV9hbGxvY2F0aW9uIHRvIGJlIGNhbGxlZCBhZ2Fpbi4gVGhpcyBpcwoJICBuZWVkZWQgb3RoZXJ3aXNlIHdlJ2QgYmUgZG9pbmcgYW4gYWxsb2NhdGlvbiBxdWVyeSBpbiBlbGVtZW50IGluIHdoaWNoCgkgIGl0IG1ha2Ugbm8gc2Vuc2UgKG5vdGFibHkgY2Fwc2ZpbHRlcikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE0NTMKCjIwMTctMTItMTcgMTQ6MTg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogQW5ub3RhdGUgYWRkX2RlcGVuZGVuY3koKSBhcmd1bWVudHMgYXMgTlVMTC10ZXJtaW5hdGVkIGFycmF5cwoKMjAxNy0xMi0xNCAwMDowMzowNCArMDUzMCAgVW1hbmcgSmFpbiA8bWFpbHVtYW5namFpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IEdzdEJ1czogUHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uIGZvciByZWYvdW5yZWYgZHVyaW5nIGJ1cyB3YXRjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTU4OAoKMjAxNy0xMi0xNCAxNjowNTowMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSB3aW4zMiBkZWZzIGZvciB0cmFjZXIgQVBJIGFkZGl0aW9uCgoyMDE3LTEyLTE0IDE0OjQ4OjQ3ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGU4YzdhNzEgdG8gM2ZhMmM5ZQoKMjAxNy0xMi0wNSAyMTozNjozNCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBkb2NzOiBpbmNsdWRlIHRyYWNlcnMgaW4gdGhlIGRvY3VtZW50YXRpb24KCSAgUmVxdWlyZXMgZXhwb3NpbmcgdGhlIHRyYWNlciBHVHlwZSBmcm9tIHRoZSBHc3RUcmFjZXJGYWN0b3J5IGluIG9yZGVyCgkgIHRvIGxpbmsgdGhlIHBsdWdpbiB3aXRoIHRoZSB0cmFjZXIgaW4gdGhlIGRvY3VtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEyNTMKCjIwMTctMTItMDUgMjA6NTY6MDkgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgY2hlY2svaGFybmVzczogZml4IHRyYW5zZmVyIGFubm90YXRpb25zIG9uIGJ1ZmZlciBwYXNzaW5nIGZ1bmN0aW9ucwoKMjAxNy0wOC0zMCAxMzowMzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogYWRkIGJ1ZmZlciBsaXN0IHN1cHBvcnQKCSAgQWRkIGEgZ3N0X2Jhc2Vfc3JjX3N1Ym1pdF9idWZmZXJfbGlzdCgpIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHN1YmNsYXNzZXMKCSAgdG8gcHJvZHVjZSBhIGJ1ZmZlcmxpc3QgY29udGFpbmluZyBtdWx0aXBsZSBidWZmZXJzIGluIHRoZSA6OmNyZWF0ZSgpCgkgIGZ1bmN0aW9uLiBUaGUgYnVmZmVycyBpbiB0aGUgYnVmZmVyIGxpc3Qgd2lsbCB0aGVuIGFsc28gYmUgcHVzaGVkIG91dAoJICBpbiBvbmUgZ28gYXMgYSBHc3RCdWZmZXJMaXN0LiBUaGlzIGNhbiByZWR1Y2UgcHVzaCBvdmVyaGVhZAoJICBzaWduaWZpY2FudGx5IGZvciBzb3VyY2VzIHdpdGggcGFja2V0aXNlZCBpbnB1dHMgKHN1Y2ggYXMgdWRwc3JjKQoJICBpbiBoaWdoLXRocm91Z2hwdXQgc2NlbmFyaW9zLgoJICBUaGUgX3N1Ym1pdF9idWZmZXJfbGlzdCgpIGFwcHJvYWNoIHdhcyBjaG9zZW4gYmVjYXVzZSBpdCBpcyBmYWlybHkKCSAgc3RyYWlnaHQtZm9yd2FyZCwgYmFja3dhcmRzLWNvbXBhdGlibGUsIGJpbmRpbmdzLWZyaWVuZGx5IChhcyBvcHBvc2VkCgkgIHRvIGUuZy4gbWFraW5nIHRoZSBjcmVhdGUgZnVuY3Rpb24gcmV0dXJuIGEgbWluaSBvYmplY3QgaW5zdGVhZCksCgkgIGFuZCBpdCBhbGxvd3MgdGhlIHN1YmNsYXNzIG1heGltdW0gY29udHJvbDogdGhlIHN1YmNsYXNzIGNhbiBkZWNpZGUKCSAgZHluYW1pY2FsbHkgYXQgcnVudGltZSB3aGV0aGVyIHRvIHJldHVybiBhIGxpc3Qgb3IgYSBzaW5nbGUgYnVmZmVyCgkgICh3aGljaCB3b3VsZCBiZSBtZXNzaWVyIGlmIHdlIGFkZGVkIGEgY3JlYXRlX2xpc3QgdmlydHVhbCBtZXRob2QpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMjQxCgoyMDE3LTA4LTMxIDAxOjE4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1pbm9yIGNvZGUgcmVhZGFiaWxpdHkgaW1wcm92ZW1lbnQKCjIwMTctMTItMDcgMTI6MDU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogRml4IGEgZmV3IGd0ay1kb2Mgd2FybmluZ3MKCSAgQnJva2VuIGxpbmtzIG1vc3RseS4KCjIwMTctMTItMDYgMjA6NTg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IGFnZ3JlZ2F0b3I6IGZpeCBjYXBzIGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE3LTEyLTA2IDE3OjA3OjI5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEhhbmRsZSBHU1RfUEFEX1BST0JFX0hBTkRMRUQgb24gc3RpY2t5IGV2ZW50IHB1c2gKCSAgV2hlbiBhY3R1YWxseSBwdXNoaW5nIGFuIGV2ZW50LCBpZiB3ZSBnZXQgR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMQoJICAod2hpY2ggaXMgdGhlIGNvbnZlcnNpb24gb2YgR1NUX1BBRF9QUk9CRV9IQU5ETEVEIHJldHVybiB2YWx1ZSksCgkgIGRvbid0IGNvbnNpZGVyIHRoZSBzdGljayBldmVudCBwdXNoIGFzIGlnbm9yZWQsIGJ1dCBhcyBoYW5kbGVkCgoyMDE3LTEyLTA2IDEzOjQwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBldmVudC9xdWVyeS9tZXNzYWdlOiBBbm5vdGF0ZSBnZXRfc3RydWN0dXJlKCkgcmV0dXJuIHZhbHVlIGFzIG51bGxhYmxlCgoyMDE3LTEyLTA2IDEzOjM2OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBBZGQgYW4gZW1wdHkgc3RydWN0dXJlIGluIHdyaXRhYmxlX3N0cnVjdHVyZSgpIGlmIHRoZXJlIGlzIG5vbmUgeWV0CgkgIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGhvdyBpdCB3b3JrcyBmb3IgR3N0RXZlbnQgYWxyZWFkeS4KCjIwMTctMTItMDUgMTg6MjE6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cHJvbWlzZS5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJICBkb2NzOiBNaXNjIGFkZGl0aW9uL2ZpeGVzCgkgIEFuZCBhbHNvIGFkZCB0aGUgIlNpbmNlIiBBUEkgc2VjdGlvbnMgZm9yIDEuMTIgYW5kIDEuMTQKCjIwMTctMTItMDUgMTg6MjA6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IEFkZCBkb2N1bWVudGF0aW9uIGZvciBHU1RfU0VRTlVNX0lOVkFMSUQKCSAgQW5kIGxpbmsgdG8gaXQKCjIwMTctMTItMDUgMTc6Mjg6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBOZXZlciByZXR1cm4gYSBncm91cF9pZCBvZiAwLCBhZGQgR1NUX0dST1VQX0lEX0lOVkFMSUQKCSAgVmFyaW91cyBwbHVnaW5zIHVzZSBzcGVjaWFsIHZhbHVlcyAoMCBvciBHX01BWFVJTlQzMikgYXMgYW4KCSAgaW52YWxpZC91bnNldCBncm91cF9pZCwgYnV0IG5vdGhpbmcgZ3VhcmFudGVlcyBhIGdyb3VwaWQgd29uJ3QgaGF2ZQoJICB0aGF0IHZhbHVlLgoJICBJbnN0ZWFkIGRlZmluZSBhIHZhbHVlIHdoaWNoIGdyb3VwX2lkIHdpbGwgbmV2ZXIgaGF2ZSBhbmQgbWFrZQoJICBnc3RfZ3JvdXBfaWRfbmV4dCgpIGFsd2F5cyByZXR1cm4gYSB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGF0LgoJICBBUEk6IEdTVF9HUk9VUF9JRF9JTlZBTElECgoyMDE3LTEyLTA1IDE2OjQyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtYWtlIGJpbmRpbmdzIHVzZSB0aGUgR0J5dGVzIHZhcmlhbnQgZm9yIF90YWtlX2FsbF9kYXRhKCkKCjIwMTYtMTEtMjMgMTM6MTI6MzYgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogdXNlIG5ldyB0YWtlX2FsbF9kYXRhKCkgZnVuY3Rpb24gaW4gX2R1bXBfdG9fZmlsZSgpLgoKMjAxNy0xMi0wNSAxNToyODo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGFkZCBnc3RfaGFybmVzc190YWtlX2FsbF9kYXRhKCkgKyBfdGFrZV9hbGxfZGF0YV9hc197Ynl0ZXMsYnVmZmVyfSgpCgkgIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGp1c3QgZ3JhYiBhbGwgcGVuZGluZyBkYXRhCgkgIGZyb20gdGhlIGhhcm5lc3MsIGUuZy4gaWYgd2UganVzdCB3YW50IHRvIGNoZWNrIGlmCgkgIGl0IG1hdGNoZXMgd2hhdCB3ZSBleHBlY3QgYW5kIHdlIGRvbid0IGNhcmUgYWJvdXQKCSAgdGhlIGNodW5raW5nIG9yIGJ1ZmZlciBtZXRhZGF0YS4KCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCjIwMTctMTItMDUgMTU6MTY6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZG9jdW1lbnQgdGhhdCBfZXh0cmFjdF9kdXAoKSB3aWxsIHJldHVybiBOVUxMIGZvciAwLXNpemVkIGJ1ZgoJICBBbmQgbWFrZSBpdCBleHBsaWNpdCwgYW5kIGRvbid0IGNhbGwgX2V4dHJhY3QoKSBvbiBOVUxMIGRhdGEgYnVmZmVyLgoKMjAxNy0xMi0wNSAxMjoyNzoxOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVc2UgYXJyYXkgc3ludGF4IGluc3RlYWQgb2YgLmdldCgpIGluIHRlc3RzCgoyMDE3LTExLTI0IDAyOjM5OjQzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVc2UgbmV3IGZpbmRfcHJvZ3JhbSBmYWxsYmFjayBzeW50YXgKCSAgV2UgdXNlIHRoaXMgc3ludGF4IGluIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQgYWxyZWFkeS4KCjIwMTctMTItMDQgMTg6MDg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3Q6IGdzdF9lbGVtZW50X3JlbW92ZV9wYWQoKSBpcyB0cmFuc2ZlciBub25lIGZvciB0aGUgcGFkCgkgIFdoaWxlIHRoZSByZWZjb3VudCBvZiB0aGUgcGFkIGlzIGRlY3JlYXNlZCwgaXQncyB0aGUgcmVmY291bnQgdGhhdCBpcwoJICBvd25lZCBieSB0aGUgcGFyZW50IChpLmUuIHRoZSBlbGVtZW50KSBhbmQgbm90IHRoZSBvbmUgcGFzc2VkIGluIGJ5IHRoZQoJICBjYWxsZXIuCgkgIEZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gYmluZGluZ3MuCgoyMDE3LTEyLTA0IDExOjI0OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgZmluaXNoX2J1ZmZlcigpIHZmdW5jCgkgIFNvIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoZSBmaW5pc2ggYmVoYXZpb3VyCgkgIGFuZC9vciBkZWNvcmF0ZSBvciBtb2RpZnkgYnVmZmVycyBiZWZvcmUgdGhleQoJICBnZXQgcHVzaGVkIG91dC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDk4MQoKMjAxNy0xMi0wNCAxMjoyOTowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkaXNhYmxlIHRhZyBtZXJnaW5nIGFuZCBmb3J3YXJkaW5nIGZvciBub3cKCSAgU3ViY2xhc3NlcyBzaG91bGQgaGFuZGxlIHRoaXMgZm9yIG5vdy4KCjIwMTctMTEtMDYgMjA6MjM6MTIgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBBdm9pZCBtYXliZS11bmluaXRpYWxpemVkIGNvbXBpbGVyIHdhcm5pbmcKCSAgT24gQXJjaCBMaW51eCB4ODZfNjQsIGdjYyA3LjIuMC0zLCAtT2cgLWczOgoJICBnc3RkZXZpY2Vtb25pdG9yLmM6IEluIGZ1bmN0aW9uIOKAmGJ1c19zeW5jX21lc3NhZ2XigJk6CgkgIGdzdGRldmljZW1vbml0b3IuYzoyNzY6ODogZXJyb3I6IOKAmG1hdGNoZXPigJkgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIFRoaXMgY29tbWl0IGFsc28gc2ltcGxpZmllcyB0aGUgY29kZSBhIGJpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTk4MwoKMjAxNy0xMi0wMyAxNDo0ODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGdzdDogQW5ub3RhdGUgdmFyaW91cyBzdHJpbmdzIGFzIHR5cGUgZmlsZW5hbWUgaWYgdGhleSByZXByZXNlbnQgYSBwYXRoL2ZpbGVuYW1lCgoyMDE3LTEyLTAyIDE1OjQ0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogaG9vayB1cCB0byBkb2NzCgoyMDE3LTEyLTAyIDE1OjI0OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZ2dyZWdhdG9yOiBob29rIHVwIHRvIGJ1aWxkIHN5c3RlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MDEwCgoyMDE3LTEyLTAyIDE1OjEyOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgTW92ZSBHc3RBZ2dyZWdhdG9yIGZyb20gLWJhZCB0byBjb3JlCgkgIE1lcmdlIGJyYW5jaCAnYWdncmVnYXRvci1tb3ZlJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MDEwCgoyMDE3LTExLTA2IDIxOjA3OjUxICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIGtsYXNzLT5zaW5rcGFkc190eXBlCgkgIFRoaXMgcG9zZWQgcHJvYmxlbXMgZm9yIHRoZSBweXRob24gYmluZGluZ3MgKGFuZCBwb3NzaWJseSBvdGhlcnMpLgoJICBJbnN0ZWFkLCBzdWJjbGFzc2VzIG5vdyB1c2UgYWRkX3BhZF90ZW1wbGF0ZV93aXRoX2d0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5OTg2CgoyMDE3LTExLTAyIDE4OjMyOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBkb2MgYmx1cmIgZm9yIGdzdF9hZ2dyZWdhdG9yX3BhZF9pc19lb3MoKQoKMjAxNy0xMS0wMiAxNjowNToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhbHNvIHJlbW92ZSBub3ctdW51c2VkIFBhZEZvcmVhY2hGdW5jIGRlY2xhcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU2NzkKCjIwMTctMDgtMDIgMTI6MDg6MjYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSBwYWQgaXRlcmF0b3IgZnVuY3Rpb24KCSAgVXNlIG5ldyBnc3RfZWxlbWVudF9mb3JlYWNoX3NpbmtfcGFkKCkgZnJvbSBjb3JlIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU2NzkKCjIwMTctMTEtMDIgMTI6NDY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogdXNlIG5ldyBnc3RfZWxlbWVudF9mb3JlYWNoX3NpbmtfcGFkKCkKCSAgSW5zdGVhZCBvZiBnc3RfYWdncmVnYXRvcl9pdGVyYXRlX3NpbmtwYWRzKCkgd2hpY2ggd2lsbAoJICBzb29uIGJlIHJlbW92ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU2NzkKCjIwMTctMTEtMDEgMTU6MTg6MDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIG1vcmUgY29tbWVudHMKCjIwMTctMTAtMjMgMTE6NTI6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IGNvbW1lbnQgYW5kIGxvZ2dpbmcgY2xlYW51cHMgZm9yIGF1ZGlvbWl4ZXIgYW5kIGFnZ3JlZ2F0b3IKCSAgUmVtb3ZlIHNvbWUgcmVmZXJlbmNlcyB0byAnY29sbGVjdHBhZHMnLiBMb2dzIHBhZHMgdGhyb3VnaCB0aGUgb2JqZWN0IHZhcmlhbnRzLgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLiBSZW1vdmUgYSBsZWZ0IG92ZXIgY29tbWVudC4KCjIwMTctMTAtMjIgMTk6NDM6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZml4IHR5cGUgZm9yIGxhdGVuY3kgcHJvcGVydHkgKGludDY0IC0+IEdTdENsb2NrVGltZSkKCSAgVGhlIHZhbHVlIGlzIHVzZWQgYXMgR3N0Q2xvY2tUaWVtIGluIHRoZSBjb2RlLiBBZGFwdCB0aGUgaGFja15IXkheSF5IY29kZQoJICBpbiBsaXZlLWFkZGVyLgoKMjAxNy0wNy0xMyAxOTowMzoxOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCB0YWtlIGZsdXNoIGxvY2sgZnJvbSBvdXRwdXQgdGhyZWFkCgkgIEluc3RlYWQganVzdCB0YWtlIGl0IGluIHRoZSBjaGFpbiBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDkxMQoKMjAxNy0wNy0xMyAxODozODozNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCBibG9jayBpZiBhZGRpbmcgdG8gdGhlIHRhaWwgb2YgdGhlIHF1ZXVlCgkgIElmIHdlJ3JlIGFkZGluZyB0byB0aGUgdGFpbCBvZiB0aGUgcXVldWUsIGl0J3MgYmVjYXVzZSB3ZSdyZSBjb252ZXJ0aW5nCgkgIGEgZ2FwIGV2ZW50LCBzbyBkb24ndCBibG9jayB0aGVyZSBpdCBtZWFucyB3ZSdyZSBjYWxsaW5nIGZyb20gdGhlIG91dHB1dAoJICB0aHJlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ5MTEKCjIwMTctMTAtMTcgMDg6MDM6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmV2aWV3IGNvZGUgcmVsYXRlZCB0byB0aW1lIGxldmVsCgkgIEFkZCBhIGNvbW1lbnQgZm9yIHdoZW4gdGhlIHN0YXRlIG1hdHRlcnMuIFVzZSBhIGxvY2FsIHZhciBmb3IgcHJpdiBpbgoJICB1cGRhdGVfdGltZV9sZXZlbCgpIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuIE1vdmUgdGhlIG91cl9sYXRlbmN5IGxvY2FsCgkgIHZhciBiZWxvdyB0aGUgcXVlcnkgcmVzdWx0cyBjaGVja3MuCgoyMDE3LTEwLTE3IDA3OjUxOjUxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGluaXQgbGF0ZW5jeSB2YWx1ZXMgd2l0aCAwIGluc3RlYWQgb2YgRkFMU0UKCjIwMTctMTAtMTUgMjA6NDY6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogY29kZSBjbGVhbnVwIGZvciBldmVudCBhbmQgcXVlcnkgZnVuYwoJICBPbmx5IGxvb2sgdXAga2xhc3MgZm9yIG5vbiBzZXJpYWxpemVkIGV2ZW50cy9xdWVyaWVzLiBGb3IgZXZlbnRzIHJlbW92ZQoJICBzdXBlcmZsdW91cyBhc3NpZ25tZW50IGZvciB0aGUgcmV0dXJuIHZhbHVlIGluIHRoZSBmbHVzaGluZyBjYXNlLgoKMjAxNy0xMC0xNSAxNzo0Njo0NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBzaW1wbGlmeSBwYWRfZXZlbnRfZnVuYyBmb3IgRkxVU0hfU1RPUCBldmVudHMKCSAgV2Ugd2FudCB0byBza2lwIHNlcmlhbGl6YXRpb24gZm9yIEZMVVNIX1NUT1AgZXZlbnRzIChhcHBhcmVudGx5KS4gV2UgY2FuCgkgIHNpbXBsaWZ5IHRoZSBjb2RlIHRvIGFkZCBpdCB0byB0aGUgdG9wLWxldmVsIGNvbmRpdGlvbnMuIFRoZXJlIHdhcyBub3RoaW5nCgkgIGRvbmUgaW4gdGhlIGZpcnN0IGNvZGUgcGF0aCBpZiB0aGUgZXZlbnQgd2FzIEZMVVNIX1NUT1AuCgoyMDE3LTEwLTE1IDE2OjU3OjEzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRyb3Agc3BlY2lhbCBjYXNpbmcgZm9yIGVvcwoJICBKdXN0IHF1ZXVlIGl0IGxpa2UgYW55IG90aGVyIHNlcmlhbGl6ZWQgZXZlbnQuIFRoaXMgd2F5IHdlIGRvbid0IG5lZWQgdG8KCSAgY2hlY2sgaWYgdGhlcmUgc3RpbGwgYXJlIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlLgoJICBWYWxpZGF0ZWQgd2l0aCB0aGUgdGVzdHMgYW5kIGdzdC1sYXVuY2gtMS4wIHBpcGVsaW5lcy4KCjIwMTctMTAtMTUgMTY6NTE6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGEgZG9jLWJsb2IgZm9yIHRoZSBldmVudF9mdW5jCgoyMDE3LTEwLTE1IDE2OjQ4OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbmFtZSBhIGxvY2FsIHZhcmlhYmxlCgkgIFRoZSB2YXJpYWJsZSB0cmFja3Mgd2hldGVyIHRoZSBxdWV1ZSBpcyBub3QgZW1wdHksIGJ1dCBudW1fYnVmZmVycz09MC4gVGhhdAoJICBtZWFucyB3ZSBoYXZlIGV2ZW50cyBvciBxdWVyaWVzIHRvIHByb2Nlc3MuIFJlbmFtZSBhY2NvcmRpbmdseS4KCjIwMTctMTAtMTUgMTI6MTc6NDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgkgIFRoZSBTRUdNRU5UX0RPTkUgZXZlbnQgZG9lcyBub3QgcmVxdWlyZSBhbnkgc3BlY2lhbCB0cmVhdG1lbnQuIFRoaXMgaXMKCSAgY29tbWVudGVkIG91dCBpbiA2ZWZjMTA2YTY3LgoKMjAxNy0xMC0xNSAxMjoxNDoyOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBtb3ZlIHRoZSBjb21tZW50IGZvciB0aGUgbG9ja3MgdG8gdGhlIGxvY2sgbWFjcm9zCgkgIExvb2tzIGxpa2Ugc29tZSBjb2RlIHdhcyBpbnNlcnRlZCBhZnRlcndhcmRzLgoKMjAxNy0xMC0xNSAxMDo0NDo0NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBpbXByb3ZlIHNlY3Rpb24gZG9jcwoJICBNZW50aW9uIGhvdyBkYXRhIGVuZHMgdXAgaW4gdGhlIHF1ZXVlcy4gRG9jdW1lbnQgdGhlIHJlbGF0aW9uIG9mIHRoZSBwYWQKCSAgZnVuY3Rpb25zIGFuZCB0aGUgY2xhc3Mgdm1ldGhvZHMgdG8gZ2V0IGV2ZW50cyBhbmQgcXVlcmllcy4KCjIwMTctMTAtMTQgMTg6MTg6NDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIHR3byBtb3JlIHRlc3RzIGZvciBhIHNlcXVlbmNlIG9mIGRhdGEKCSAgVGhpcyB2ZXJpZmllcyB0aGF0IHdlIGhhbmRsZSBldmVudHMgYW5kIHF1ZXJpZXMgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIGFuZAoJICB0aGVuIGJ1ZmZlcnMuCgoyMDE3LTEwLTE0IDEzOjI2OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlZmFjdG9yIHRoZSB0ZXN0IGhlbHBlcgoJICBNYWtlIHRoZSB0ZXN0IGhlbHBlcnMgdXNlIGEgcXVldWUuIFRoaXMgbGV0cyB1cyBhbHNvIHRlc3Qgc2VxdWVuY2VzIG9mIGV2ZW50cywKCSAgcXVlcmllcyBhbmQgZGF0YS4KCjIwMTctMTAtMTQgMTI6MDg6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogdGVzdCBjbGVhbnVwCgkgIFJlbW92ZSBnc3RfaW5pdCgpIGZyb20gYSBmZXcgdGVzdHMuIFVzZSBfT0JKRUNUIHZhcmlhbnRzIGluIGxvZ2dpbmcuIFJlbW92ZQoJICBhcmJpdHJhcnkgZXh0cmEgYmxhbmsgbGluZXMuIE1ha2UgcHVzaF9ldmVudCgpIG1vcmUgbGlrZSBwdXNoX2J1ZmZlcigpIC0gc2V0CgkgIHRoZSBldmVudCB0byBOVUxMIGFuZCBhZGQgY2xlYW51cCB0byBfY2hhaW5fZGF0YV9jbGVhcigpLgoKMjAxNy0xMC0wMyAxMjozNjoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBjbGVhbnVwIGV2ZW50IGZvcndhcmRpbmcKCSAgRG9uJ3QgY29weSB0aGUgd2hvbGUgZXZlbnQgc3RydWN0LiBTZXQgdGhlIGlucHV0IHBhcmFtcyB3aGVuIHdlIGNhbGwgdGhlCgkgIGZvcndhcmRpbmcgaGVscGVyLiBJbml0aWFsaXplIHRoZSBpbnRlcm5hbCBmaWVsZHMgYW5kIHJldHVybiB2YWx1ZXMgaW4gdGhlCgkgIGhlbHBlci4KCjIwMTctMTAtMDMgMTI6MDg6NDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogc2ltcGxpZnkgc3JjX2V2ZW50CgkgIEF2b2lkIGV4dHJhIHJlZi91bnJlZiwgd2UgaGF2ZSBhIHJlZiBhbmQgZG9fc2VlayB1bnJlZnMuIEp1c3QgcmV0dXJuIHRoZSByZXN1bHQKCSAgYXMgd2UgaGF2ZS4gVGhpcyBsZXRzIHVzIHJlbW92ZSB0aGUgbG9jYWwgdmFyIHBsdXMgdGhlIGxhYmVsLgoKMjAxNy0wOS0xNyAxMjozNzowMyAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZWdpc3RlciBmdW5jIGZvciBkb19ldmVudHNfYW5kX3F1ZXJpZXMKCSAgVGhpcyBmaXhlcyBsb2dnaW5nIHRoZSBmdW5jIHB0ciBmcm9tIF9pdGVyYXRlX3NpbmtwYWRzKCkuCgoyMDE3LTA5LTE3IDEyOjMwOjM3IC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IG9ubHkgc2V0IGNsaXBwZWRfYnVmZmVyIHRvIE5VTEwgaWYgbmVlZGVkCgoyMDE3LTA5LTE3IDEyOjI1OjM3IC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbmFtZSBjaGVja19ldmVudHMKCSAgVGhpcyBmdW5jdGlvbiBhbHNvIGhhbmRsZXMgcXVlcmllcy4gVXBkYXRlIHRoZSBjb2RlIHRvIGxvb3AgdW50aWwgYWxsIGV2ZW50cyBhbmQKCSAgcXVldXJpZXMgYXJlIGhhbmRsZWQuCgoyMDE3LTA5LTE3IDEyOjI0OjU0IC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBhIGZldyBtb3JlIGNvbW1lbnRzIHRvIFBhZFByaXZhdGUgc3RydWN0CgoyMDE3LTA5LTE3IDExOjM5OjEyIC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbmFtZSBidWZmZXJzIGZpZWxkIHRvIGRhdGEKCSAgVGhlIHF1ZXVlIHN0b3JlcyBidWZmZXJzLCBldmVudHMgYW5kIHF1ZXJpZXMuCgoyMDE3LTA5LTE3IDEwOjE4OjU2IC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBkb2N1bWVudGFpb24gZml4ZXMKCSAgRml4IHR5cG9zIGFuZCByZW1vdmUgcGFyYW1zIGRvY3MsIHdoZXJlIHRoZSBwYXJhbSB3YXMgbW92ZWQuCgoyMDE3LTA5LTA1IDE0OjI2OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGNoZWNrOiBGaXggdXNhZ2Ugb2YgZHVhbCBwcm9iZXMKCSAgVXNpbmcgdHdvIChvciBtb3JlKSBwcm9iZXMgb24gdGhlIHNhbWUgcGFkIHdoZXJlIG9uZSBvZiB0aGUgcHJvYmUKCSAgcmV0dXJucyBIQU5ETEVEIG9yIERST1AgaXMgdHJpY2t5IHNpbmNlIHRoZSBvdGhlciBwcm9iZXMgbWlnaHQKCSAgbm90IGJlIGNhbGxlZC4KCSAgSW5zdGVhZCB1c2UgcmVndWxhciBwcm9iZXMgYW5kIGEgcHJvcGVyIHBhZCAodGhlIHNpbmtwYWQgYWxyZWFkeSBleGlzdGVkLAoJICBpdCBvbmx5IHJlcXVpcmVkIHRvIGJlIGFjdGl2YXRlZCBhbmQgaGF2ZSBhIGR1bW15IGNoYWluIGZ1bmN0aW9uIGZvcgoJICB0aGUgZXZlbnRzL2J1ZmZlcnMgdG8gYmUgcmVjZWl2ZWQvaGFuZGxlZCBwcm9wZXJseSkKCjIwMTctMDctMzAgMTI6MTc6NTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogbG9nIGFsbCBldmVudHMKCSAgV2UgYWxyZWFkeSBsb2cgYSBmZXcgZXZlbnRzIGV4cGxpY2l0bHksIGp1c3QgbG9nIHRoZW0gYWxsIHdpdGggbW9yZSBkZXRhaWwuCgoyMDE3LTA3LTI5IDE2OjU0OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGZpeCBoZWFkZXIgZm9ybWF0dGluZwoKMjAxNy0wNy0yNCAxODozODo1NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgdGhlIEdBUCBldmVudCBmcm9tIHRoZSBxdWV1ZSBiZWZvcmUgcXVldWVpbmcgdXAgdGhlIEdBUCBidWZmZXIKCSAgT3RoZXJ3aXNlIGNoZWNrX2V2ZW50cygpIHdpbGwgbm90IHJlbW92ZSB0aGUgR0FQIGV2ZW50IChhcyB0aGUgcXVldWUKCSAgdGFpbCBpcyBub3QgdGhlIGV2ZW50IGFueW1vcmUgYnV0IHRoZSBHQVAgYnVmZmVyKSwgdGhlbiB0aGUgR0FQIGJ1ZmZlcgoJICBpcyBoYW5kbGVkLCB0aGVuIHRoZSBHQVAgZXZlbnQgaXMgaGFuZGxlZCBhZ2FpbiwgLi4uIGZvcmV2ZXIuCgoyMDE3LTA3LTE4IDAwOjMwOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG1hcmsgc3ltYm9scyBleHBsaWNpdGx5IGZvciBleHBvcnQgd2l0aCBHU1RfRVhQT1JUCgoyMDE3LTA3LTEzIDIyOjAwOjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBkdXBsaWNhdGVkIGNvZGUgZnJhZ21lbnQKCSAgVGhpcyBjb2RlIGFscmVhZHkgcnVucyBhYm92ZSB3aGVuIChldmVudCB8fCBxdWVyeSkuCgoyMDE3LTA3LTEzIDIxOjU1OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGNvZGUgY2xlYW51cHMKCSAgRml4IGNvbW1lbnQgdHlwb3MsIHNvbWUgY29weSduJ3Bhc3RlIGluIGxvZ2dpbmcuIEFkZCBtb3JlIGRvYyBjb21tZW50cy4KCjIwMTctMDQtMTMgMjI6MTE6NTUgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBJbnZhbGlkYXRlIHBhZCdzIHRhaWwgcG9zaXRpb24gLi4uCgkgIHdoZW4gZGVxdWV1aW5nIGEgc2VnbWVudCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDU5MwoKMjAxNy0wNy0wMSAyMDoyMzoyNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBmaXggIidhZ2djbGFzcycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIgoKMjAxNy0wNS0yMyAwMDo1Mzo1NyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcm9jZXNzIHNlcmlhbGl6ZWQgcXVlcmllcyB0aHJvdWdoIHRoZSBxdWV1ZQoJICBUaGlzIGVuc3VyZXMgdGhhdCB0aGV5IHJlYWxseSBnZXQgcHJvY2Vzc2VkIGluIG9yZGVyIHdpdGgKCSAgYnVmZmVycy4gSnVzdCB3YWl0aW5nIGZvciB0aGUgcXVldWUgdG8gYmUgZW1wdHkgaXMgc29tZXRpbWVzIG5vdAoJICBlbm91Z2ggYXMgdGhlIGJ1ZmZlcnMgYXJlIGRyb3BwZWQgZnJvbSB0aGUgcGFkIGJlZm9yZSB0aGUgcmVzdWx0IGlzCgkgIHB1c2hlZCB0byB0aGUgbmV4dCBlbGVtZW50LCBzb21ldGltZXMgcmVzdWx0aW5nIGluIHN1cnByaXNpbmcKCSAgcmUtb3JkZXJpbmcuCgoyMDE3LTA1LTIzIDAwOjUzOjIzICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFNldCBmbG93IHRvIEZMVVNISU5HIG9uIHBhZCBzdG9wCgkgIEZpeGVzIGEgcmFyZSByYWNlIHdoZXJlIHRoZSBwYWQgaXMgYmVpbmcgc3RvcHBlZCB3aGlsZSBkb2luZyBhIHF1ZXJ5LgoKMjAxNi0xMS0xOCAxNDo0NDoxNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgd2hpY2ggYXJlIG5vdCByZXF1ZXN0IHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTIwCgoyMDE2LTExLTE4IDE0OjQxOjU0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IHJlc3RyaWN0IHNpbmsgcGFkIG5hbWVzCgkgIFNpbmsgcGFkcyBjb3VsZCBoYXZlIG90aGVyIG5hbWVzIHRoYW4gc2lua18ldQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTIwCgoyMDE3LTA1LTIxIDE1OjE5OjE3ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBJbXBsZW1lbnQgcHJvcG9zZSBhbGxvY2F0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MTgKCjIwMTctMDUtMjEgMTQ6MzQ6MTMgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ2hlY2sgZm9yIHRoZSByZXN1bHQgb2YgY2FwcyBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkxOAoKMjAxNy0wNS0yMSAxNDoyODowMCArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDYXBzIGV2ZW50IGFsd2F5cyBnb2VzIHRvIHRoZSBhZ2dyZWdhdGUgdGhyZWFkCgkgIFNvIG5vIG5lZWQgdG8gY2hlY2sgaXQgaGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkxOAoKMjAxNy0wNS0yMCAxNjo1ODo1NCArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogQWRkIGRvd25zdHJlYW0gYWxsb2NhdGlvbiBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTI5CgoyMDE3LTA1LTIwIDE1OjU2OjE2ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSB1bnVzZWQgR1NUX0ZMT1dfTk9UX0hBTkRMRUQKCjIwMTctMDUtMjAgMTQ6MjQ6NTcgKzAyMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIHNpbXBsZSBzdXBwb3J0IGZvciBjYXBzIGhhbmRsaW5nCgkgIE1vZGVsbGVkIG9mZiB0aGUgdmlkZW9hZ2dyZWdhdG9yIGNhcHMgaGFuZGxpbmcgYXMgdGhhdCBzZWVtcyB0aGUgbW9zdAoJICBtYXR1cmUgYWdncmVndG9yLXVzaW5nIGltcGxlbWVudGF0aW9uIHRoYXQgaGFzIGNhcHMgaGFuZGxpbmcgdGhlcmUgaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY5MzEKCjIwMTctMDUtMjAgMTM6MTA6NTMgKzAyMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXNldCB1cHN0cmVhbSBsYXRlbmN5IG9uIGZpcnN0IGJ1ZmZlcgoJICBJbiB0aGUgY2FzZSBhbiBhZ2dyZWdhdG9yIGlzIGNyZWF0ZWQgYW5kIHBhZHMgYXJlIHJlcXVlc3RlZCBidXQgb25seQoJICBsaW5rZWQgbGF0ZXIsIHdlIGVuZCB1cCBuZXZlciB1cGRhdGluZyB0aGUgdXBzdHJlYW0gbGF0ZW5jeS4KCSAgVGhpcyB3YXMgYmVjYXVzZSBsYXRlbmN5IHF1ZXJpZXMgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkIHN1Y2NlZWQsCgkgIHNvIHdlIG5ldmVyIGRpZCBhIG5ldyBxdWVyeSBvbmNlIGEgbGl2ZSBzb3VyY2UgaGFzIGJlZW4gbGlua2VkLCBzbyB0aGUKCSAgdGhyZWFkIHdhcyBuZXZlciBzdGFydGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NTQ4CgoyMDE2LTA1LTE0IDE1OjUyOjM3ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFsd2F5cyBoYW5kbGUgc3luYydlZCBldmVudHMgb24gb3V0cHV0IHRocmVhZAoJICBIYXZpbmcgYWxsIHN5bmNocm9uaXplZCBldmVudHMgYWx3YXlzIGJlIGhhbmRsZWQgb24gdGhlIG91dHB1dAoJICB0aHJlYWQgc2hvdWxkIG1ha2Ugc3luY2hyb25pemF0aW9uIGVhc2llci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNi0wNy0wNiAxNjozOToxNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogRGVsYXkgY2xpcHBpbmcgdG8gb3V0cHV0IHRocmVhZAoJICBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN5bmNocm9uaXplZCBldmVudHMgbGlrZSBjYXBzIG9yIHNlZ21lbnRzCgkgIG1heSBvbmx5IGJlIHByb2Nlc3NlZCBvbiB0aGUgb3V0cHV0IHRocmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNi0wNy0wNyAxNjoxMzo1NyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBNYWtlIHBhZCBlb3MgYXMgc29vbiBhcyBhbGwgYnVmZmVycyBhcmUgcHJvY2Vzc2VkLCBkb250IHdheSBmb3IgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTYtMDctMDcgMTE6NDc6NDAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogT25seSBjb3VudCBidWZmZXJzIHdoZW4gZGVjbGFyaW5nIHF1ZXVlIGZ1bGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNi0wNy0wNiAxNjo0MTo0NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogU2ltcGxpZnkgY2xpcCBmdW5jdGlvbgoJICBUaGUgcmV0dXJuIHZhbHVlIHdhcyBpZ25vcmVkIGFueXdheQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE2LTA1LTE1IDE2OjA0OjU4ICswMzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE9ubHkgZGVjbGFyZSBmaXJzdCBidWZmZXIgb24gYWN0dWFsIGJ1ZmZlcgoJICBUaGUgZnVuY3Rpb24gbmVlZHMgdG8gYmUgdW5sb2NrZWQgaWYgYW55IGRhdGEgaXMgcmVjZWl2ZWQsIGJ1dCBvbmx5CgkgIGVuZCB0aGUgZmlyc3QgYnVmZmVyIHByb2Nlc3Npbmcgb24gYW4gYWN0dWFsIGJ1ZmZlciwgc3luY2hyb25pemVkIGV2ZW50cwoJICBkb24ndCBtYXR0ZXIgb24gdGhlIGZpcnN0IGJ1ZmZlciBwcm9jZXNzaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE3LTA1LTA5IDIwOjIwOjA3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFNldCBpbml0aWFsIHBvc2l0aW9uIG9uIGZpcnN0IGJ1ZmZlcgoJICBTZXQgdGhlIGluaXRpYWwgcG9zaXRpb24gb24gdGhlIGZpcnN0IGJ1ZmZlciwgb3RoZXJ3aXNlIHRoZSBxdWV1ZQoJICB3aWxsIGdyb3cgd2l0aG91dCBsaW1pdHMgYmVmb3JlIHRoZSBvdXRwdXQgdGhyZWFkIGlzIHN0YXJ0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTctMDUtMDkgMjA6MDY6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVzZXQgdGhlIHBhZCdzIGZpcnN0IGJ1ZmZlciBmbGFnIHdpdGggdGhlIHJlc3QKCSAgVGhlcmUgaXMgbm90IHJlYXNvbiB0byBoYXZlIHNlcGFyYXRlIGNvZGUgdG8gcmVzZXQgdGhpcyBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTctMDUtMDkgMjA6MDU6NTUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVzZXQgcGFkIG9uIGluaXQKCSAgRmFjdG9yIG91dCB0aGUgcGFkIHJlc2V0IGNvZGUgZnJvbSB0aGUgZmx1c2hpbmcgYW5kIHVzZSBpdCBvbiBpbml0IGFzIHdlbGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNy0wNS0wOSAyMDoxMzo1OCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggaW5kZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNy0wMy0wOCAxNTowMToxMyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgZG9jczogUG9ydCBhbGwgZG9jc3RyaW5nIHRvIGd0ay1kb2MgbWFya2Rvd24KCjIwMTctMDQtMTIgMTI6MDY6NTIgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IE1ha2UgaW5zdGFuY2UgdmFyIG5hbWUgbWF0Y2ggIGJldHdlZW4gLmMgYW5kIC5oCgkgIE1ha2luZyBHSSBoYXBweQoKMjAxNy0wNC0wNyAxMDoxOTo0MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgZ3N0YWdncmVnYXRvcjogZml4IGV2ZW50IHVzZSBhZnRlciBmcmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODEwMTcKCjIwMTYtMDktMDYgMTY6MDU6NTMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVzZSB0aGUgZXZlbnRfZnVsbCBmdW5jdGlvbiBmb3IgR3N0QWdncmVnYXRvclBhZHMKCSAgQWxsb3dpbmcgdXMgdG8gdGVsbCBHc3RQYWQgd2h5IHdlIGFyZSBmYWlsaW5nIGFuIGV2ZW50LCB3aGljaCBtaWdodAoJICBiZSBiZWNhdXNlIHdlIGFyZSAnZmx1c2hpbmcnIGV2ZW4gaWYgdGhlIHNpbmtwYWQgaXMgbm90IGluIGZsdXNoIHN0YXRlCgkgIGF0IHRoYXQgcG9pbnQuCgoyMDE2LTA1LTI1IDEzOjM4OjQ3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgUmV2ZXJ0ICJhZ2dyZWdhdG9yOiBTdGFydCB0aGUgdGFzayB3aGVuIGxpbmtlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMDI1ODBjMzgxNTEzNmQyOTQ3OWMzYThjYWU2MTFkNmUyZmYzNzA5LgoKMjAxNi0wNC0xMyAxNjozMDoyOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFN0YXJ0IHRoZSB0YXNrIHdoZW4gbGlua2VkCgkgIFVudGlsIG5vdyB3ZSB3b3VsZCBzdGFydCB0aGUgdGFzayB3aGVuIHRoZSBwYWQgaXMgYWN0aXZhdGVkLiBQYXJ0IG9mIHRoZQoJICBhY3RpdmlhdGlvbiBjb25jaXN0IG9mIHRlc3RpbmcgaWYgdGhlIHBpcGVsaW5lIGlzIGxpdmUgb3Igbm90LgoJICBVbmZvcnR1bmF0bHksIHRoaXMgaXMgb2Z0ZW4gdG9vIHNvb24sIGFzIGl0J3MgbGlrZWx5IHRoYXQgdGhlIHBhZCBnZXQKCSAgYWN0aXZhdGVkIGJlZm9yZSBpdCBpcyBmdWxseSBsaW5rZWQgaW4gZHluYW1pYyBwaXBlbGluZS4KCSAgSW5zdGVhZCwgc3RhcnQgdGhlIHRhc2sgd2hlbiB0aGUgZmlyc3Qgc2VyaWFsaXplZCBldmVudCBhcnJpdmUuIFRoaXMgaXMKCSAgYSBzYWZlIG1vbWVudCBhcyB3ZSBrbm93IHRoYXQgdGhlIHVwc3RyZWFtIGNoYWluIGlzIGNvbXBsZXRlIGFuZCBqdXN0CgkgIGxpa2UgdGhlIHBhZCBhY3RpdmF0aW9uLCB0aGUgcGFkcyBhcmUgbG9ja2VkLCBoZW5jZSBjYW5ub3QgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NTQ4CgoyMDE2LTA0LTIyIDEwOjE1OjM5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ2hlY2sgYWxsIHBhZHMgZm9yIGRhdGEgd2hlbiBsaXZlCgkgIFdoZW4gbGl2ZSwgd2Ugc3RpbGwgbmVlZCB0byBpbnNwZWN0IGFsbCBwYWRzIHF1ZXVlIGluIG9yZGVyIHRvIGRldGVybWluCgkgIGlmIHdlIGhhdmUgcmVjZWl2ZWQgdGhlIGZpcnN0IGJ1ZmZlciBvciBub3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU0MzEKCjIwMTYtMDQtMTUgMTY6NTE6MTcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggbG9ja2luZyB3aGVuIHVzaW5nIHRoZSBjbG9jawoJICBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZSB3ZSBjaGVjayBpZiB0aGVyZSBpcyBhIGNsb2NrLCB0aGVuIGl0IGdldAoJICByZW1vdmVkIGFuZCB3ZSBlbmR1cCBjYWxsaW5nIGdzdF9jbG9ja19uZXdfc2luZ2xlX3Nob3RfaWQoKSB3aXRoIGEgTlVMTAoJICBwb2ludGVyIGluc3RlYWQgb2YgYSB2YWxpZCBjbG9jayBhbmQgYWxzbyBjYWxsaW5nIGdzdF9vYmplY3RfdW5yZWYoKQoJICB3aXRoIGEgTlVMTCBwb2ludGVyIGxhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NTQ4CgoyMDE2LTA0LTAzIDE3OjU2OjA2ICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgZHVwbGljYXRlZCB0ZXN0IG9mIGZsb3dfcmV0dXJuIGluIHBhZF9jaGFpbl9pbnRlcm5hbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTQ5CgoyMDE2LTAzLTI4IDEzOjUyOjA3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBsZWFrIGluIHVuaXQgdGVzdAoJICBHU1RfUEFEX1BST0JFX0hBTkRMRUQgbWVhbnMgdGhhdCB3ZSBzaG91bGQndmUgdW5yZWZmZWQgdGhlIHByb2JlIGRhdGEsCgkgIGl0IHdhcyBoYW5kbGVkIGJ5IHVzIGluIG9uZSB3YXkgb3IgYW5vdGhlci4KCjIwMTYtMDMtMjcgMTk6MDY6NTAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggc3RyY21wIHRlc3QgZm9yIHNpbmsgdGVtcGxhdGUKCjIwMTYtMDMtMjcgMTg6NDE6MzAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCB0cnkgdG8gYmUgdG9vIHNtYXJ0IHdoaWxlIGFsbG9jYXRpbmcgcGFkIG5hbWVzCgkgIFByZXZpb3VzbHksIHdoaWxlIGFsbG9jYXRpbmcgdGhlIHBhZCBudW1iZXIgZm9yIGEgbmV3IHBhZCwgYWdncmVnYXRvciB3YXMKCSAgbWFpbnRhaW5pbmcgYW4gaW50ZXJlc3RpbmcgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIHBhZCBjb3VudCBhbmQgdGhlIHBhZAoJICBudW1iZXIuCgkgIElmIHlvdSByZXF1ZXN0ZWQgYSBzaW5rIHBhZCBjYWxsZWQgInNpbmtfNiIsIHBhZGNvdW50ICh3aGljaCBpcyBiYWRseSBuYW1lZCBhbmQKCSAgYWN0dWFsbHkgbWVhbnMgbnVtYmVyLW9mLXBhZHMtbWludXMtb25lKSB3b3VsZCBiZSBzZXQgdG8gNi4gV2hpY2ggbWVhbnMgdGhhdCBpZgoJICB5b3UgdGhlbiByZXF1ZXN0ZWQgYSBzaW5rIHBhZCBjYWxsZWQgInNpbmtfMCIsIGl0IHdvdWxkIGJlIGFzc2lnbmVkIHRoZSBuYW1lCgkgICJzaW5rXzYiIGFnYWluLCB3aGljaCBmYWlscyB0aGUgbm9uLXVuaXF1ZW5lc3MgdGVzdCBpbnNpZGUgZ3N0ZWxlbWVudC5jLgoJICBUaGlzIGNhbiBiZSBmaXhlZCBieSBpbnN0ZWFkIHNldHRpbmcgcGFkY291bnQgdG8gYmUgNyBpbiB0aGF0IGNhc2UsIGJ1dCB0aGlzCgkgIGJyZWFrcyBtYW51YWwgbWFuYWdlbWVudCBvZiBwYWQgbmFtZXMgYnkgdGhlIGFwcGxpY2F0aW9uIHNpbmNlIGl0IHRoZW4gYmVjb21lcwoJICBpbXBvc3NpYmxlIHRvIHJlcXVlc3QgYSBwYWQgY2FsbGVkICJzaW5rXzIiLiBJbnN0ZWFkLCB3ZSBmaXggdGhpcyBieSBhbHdheXMKCSAgZGlyZWN0bHkgdXNpbmcgdGhlIHJlcXVlc3RlZCBuYW1lIGFzIHRoZSBzaW5rIHBhZCBuYW1lLiBVbmlxdWVuZXNzIG9mIHRoZSBwYWQKCSAgbmFtZSBpcyB0ZXN0ZWQgc2VwYXJhdGVseSBpbnNpZGUgZ3N0cmVhbWVyIGNvcmUuIElmIG5vIG5hbWUgaXMgcmVxdWVzdGVkLCB3ZSB1c2UKCSAgdGhlIG5leHQgYXZhaWxhYmxlIHBhZCBudW1iZXIuCgkgIE5vdGUgdGhhdCB0aGlzIGlzIGltcG9ydGFudCBzaW5jZSB0aGUgc2lua3BhZCBudW1iZXJpbmcgaW4gYWdncmVnYXRvciBpcyBub3QKCSAgbWVhbmluZ2xlc3MuIFZpZGVvYWdncmVnYXRvciB1c2VzIGl0IHRvIGRlY2lkZSB0aGUgWi1vcmRlciBvZiB2aWRlbyBmcmFtZXMuCgoyMDE2LTAzLTA0IDE1OjUwOjI2ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGJhZDogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMwODEKCjIwMTUtMTEtMDkgMTY6MDg6MzAgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOmFnZ3JlZ2F0b3I6IGZpeCB0YyBmYWlsdXJlIGFuZCBjb3JyZWN0IGNoZWNrIHZhbHVlCgkgIEZhaWx1cmUgYnkgdGhpcyBjb21taXQgMmRmYTU0OGYzNjQ1ODQ0MDgyYzNkYjY1ZDk2ZDg3MjU1NzAxYjNhZCwgd2hpY2ggaXMKCSAgdG8gYXBwZW5kIGhvb2tzIGluc3RlYWQgb2YgcHJlcGVuZC4KCSAgQmVjYXVzZSBvZiB0aGlzIGNoYW5nZSwgYWdncmV0YXRlZF9jYiBpcyBub3QgY2FsbGVkIGFuZCBsZWFkcyB0byBmYWlsdXJlLgoJICBBbmQgY29ycmVjdCB0byBjaGVjayBmbHVzaCBzdG9wIHZhbHVlIGluc3RlYWQgb2YgZmx1c2ggc3RhcnQgdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzgwMQoKMjAxNS0xMS0wNSAxMjozNjo0OCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiB1c2UgR1NUX1NUSU1FX0ZPUk1BVCBmb3IgR3N0Q2xvY2tUaW1lRGlmZgoJICBObyBuZWVkIHRvIG1hbnVhbGx5IGhhbmRsZSBuZWdhdGl2ZSB2YWx1ZSBvZiBkZWFkbGluZSwgR1NUX1NUSU1FX0ZPUk1BVCBkb2VzCgkgIGV4YWN0bHkgdGhpcy4KCjIwMTUtMTEtMDMgMTk6MDk6MzMgLTA4MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZG9uJ3QgY29tcGFyZSB0ZW1wbCBpbnN0YW5jZSBwb2ludGVycwoJICBPbmUgY2FuIHBhc3MgdGhlIFBhZFRlbXBsYXRlIGZyb20gdGhlIGVsZW1lbnRfY2xhc3Mgb3IgdGhlIG9uZSBmcm9tIHRoZSBmYWN0b3J5LgoJICBXaGlsZSB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudCwgdGhlIGFkZHJlc3NlcyBhcmUgZGlmZmVyZW50LgoKMjAxNS0xMS0wMyAxNDo0MTo1NyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTZXQgdG8gcnVubmluZyBpbiBhIHNpbmdsZSBwbGFjZQoJICBPbmx5IHNldCB0byBydW5uaW5nIHdoZW4gdGhlIHRocmVhZCBpcyBhY3R1YWxseSBzdGFydGVkLgoKMjAxNS0xMS0wMyAxNDozNzoyNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCBtb3JlIGxvY2tpbmcKCjIwMTUtMTEtMDIgMjA6MTA6MzUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSG9sZCBvYmplY3QgbG9jayB3aGlsZSBtYW5pcHVsYXRpbmcgdGhlIHNlZ21lbnQKCSAgTWFrZSBzdXJlIHRoZSBvYmplY3QgbG9jayBpcyBoZWxkIHdoZW4gYWdncmVnYXRvci0+c2VnbWVudCBpcwoJICBtb2RpZmllZC4KCjIwMTUtMTEtMDIgMTk6MDU6MDEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIGRlYWQgY29kZQoJICBUaGlzIGNvZGUgd2lsbCBuZXZlciBiZSBjYWxsZWQgYXMgbWF4Pj1taW4gaW4gYWxsIGNhc2VzLiBJZiB0aGUgdXBzdHJlYW0KCSAgbGF0ZW5jeSBxdWVyeSByZXR1cm5lZCBtaW4+bWF4LCB0aGUgZnVuY3Rpb24gYWxyZWFkeSByZXR1cm5lZCBhbmQgYWxsCgkgIHZhbHVlcyB0aGF0IGFyZSBhZGRlZCB0byB0aG9zZSBoYXZlIG1heD49IG1pbi4KCjIwMTUtMTAtMjMgMTU6NDI6MjQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBjcmVhdGVfbmV3X3BhZCgpIHZmdW5jIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3VyCgkgIE5vdCBhbGwgYWdncmVnYXRvciBzdWJjbGFzc2VzIHdpbGwgaGF2ZSBhIHNpbmdsZSBwYWQgdGVtcGxhdGUgY2FsbGVkIHNpbmtfJXUKCSAgYW5kIG1pZ2h0IGRvIHNvbWV0aGluZyBzcGVjaWFsIGRlcGVuZGluZyBvbiB3aGF0IHRoZSBhcHBsaWNhdGlvbiByZXF1ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzAxOAoKMjAxNS0wOS0zMCAxOTowNTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDb252ZXJ0IEdTVF9FUlJPUl9PQkpFQ1QoKSBmb3Igc2VlayBldmVudHMgdG8gR1NUX0RFQlVHX09CSkVDVCgpCgoyMDE1LTA5LTMwIDE5OjAzOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZvciB0aGUgc3RhcnQgdGltZSBzZWxlY3Rpb24sIG9ubHkgc2V0IHRoZSBzZWdtZW50IHBvc2l0aW9uCgkgIHNlZ21lbnQudGltZSBhbmQgc2VnbWVudC5zdGFydCBjYW4gc3RheSB0aGUgc2FtZSwgYW5kIHdlcmUgYWx3YXlzIHRoZSBzYW1lCgkgIGJlZm9yZSBhbnl3YXkgYmVjYXVzZSBvZiBhIG1pc3Rha2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2MjMKCjIwMTUtMDgtMzEgMTY6MTI6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgZm9yd2FyZCBRT1MgZXZlbnRzIHRvIHNpbmtwYWRzIHRoYXQgaGFkIG5vIGJ1ZmZlciB5ZXQKCSAgT3RoZXJ3aXNlIHRoZXkgd2lsbCByZWNlaXZlIGEgUU9TIGV2ZW50IHRoYXQgaGFzIGVhcmxpZXN0X3RpbWU9MCAoYmVjYXVzZSB3ZQoJICBjYW4ndCBoYXZlIG5lZ2F0aXZlIHRpbWVzdGFtcHMpLCBhbmQgY29uc2lkZXIgdGhlaXIgYnVmZmVyIGFzIHRvbyBsYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQzNTYKCjIwMTUtMDktMTcgMTk6NDI6MzQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogS2VlcCBhdCBsZWFzdCB0d28gYnVmZmVycyBpbiB0aGUgcXVldWUgaW4gbGl2ZSBtb2RlCgkgIFdoZW4gaW4gbGl2ZSBtb2RlLCB0aGUgcXVldWUgbmVlZHMgdG8gaG9sZCB0aGUgY3VycmVudGx5IHByb2Nlc3NlZAoJICBidWZmZXIgYW5kIG9uZSBtb3JlIGF0IGxlYXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0ODUxCgoyMDE1LTA5LTExIDEyOjIxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IHRoYXQgZ2V0X25leHRfdGltZSgpIHNob3VsZCByZXR1cm4gcnVubmluZyB0aW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMxOTYKCjIwMTUtMDgtMjggMjM6MDU6MjAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWxzbyBpZ25vcmUgc3RhcnQtdGltZSBvbiBzZWVrIGZyb20gZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4MDYKCjIwMTUtMDctMDIgMTk6MzQ6NDMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IEFkZCB0ZXN0IGZvciBzZWVraW5nIGxpdmUgcGlwZWxpbmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU3NjgKCjIwMTUtMDctMDIgMTk6MTk6MzMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IE1ha2Ugc291cmNlIGxpdmUgdG8gcmUtZW5hYmxlIGFnZ3JlZ2F0b3IgdGltZW91dCB0ZXN0cwoJICBUaGUgbGl2ZSBtb2RlIGlzIG9ubHkgZW5hYmxlZCBpZiBvbmUgb2YgdGhlIHNvdXJjZXMgaWYgbGl2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTc2OAoKMjAxNS0wMy0wNiAxOTo1MDowOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUXVldWUgImxhdGVuY3kiIGJ1ZmZlcnMgYXQgZWFjaCBzaW5rIHBhZC4KCSAgSW4gdGhlIGNhc2Ugd2hlcmUgeW91IGhhdmUgYSBzb3VyY2UgZ2l2aW5nIHRoZSBHc3RBZ2dyZWdhdG9yIHNtYWxsZXIKCSAgYnVmZmVycyB0aGFuIGl0IHVzZXMsIHdoZW4gaXQgcmVhY2hlcyBhIHRpbWVvdXQsIGl0IHdpbGwgY29uc3VtZSB0aGUKCSAgZmlyc3QgYnVmZmVyLCB0aGVuIHRyeSB0byByZWFkIGFub3RoZXIgYnVmZmVyIGZvciB0aGUgcGFkLiBJZiB0aGUKCSAgcHJldmlvdXMgZWxlbWVudCBpcyBub3QgZmFzdCBlbm91Z2gsIGl0IG1heSBnZXQgdGhlIG5leHQgYnVmZmVyIGV2ZW4KCSAgdGhvdWdoIGl0IG1heSBiZSBxdWV1ZWQganVzdCBiZWZvcmUuIFRvIHByZXZlbnQgdGhhdCByYWNlLCB0aGUgZWFzaWVzdAoJICBzb2x1dGlvbiBpcyB0byBtb3ZlIHRoZSBxdWV1ZSBpbnNpZGUgdGhlIEdzdEFnZ3JlZ2F0b3JQYWQgaXRzZWxmLiBJdAoJICBhbHNvIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8gbmVlZCBmb3Igc3RyYW5nZSBjb2RlIGNhdXNlIGJ5IGluY3JlYXNpbmcKCSAgdGhlIG1pbiBsYXRlbmN5IHdpdGhvdXQgaW5jcmVhc2luZyB0aGUgbWF4IGxhdGVuY3kgcHJvcG9ydGlvbmFsbHkuCgkgIFRoaXMgYWxzbyBtZWFucyBxdWV1aW5nIHRoZSBzeW5jaHJvbml6ZWQgZXZlbnRzIGFuZCBwb3NzaWJseSBhY3RpbmcKCSAgb24gdGhlbSBvbiB0aGUgc3JjIHRhc2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU3NjgKCjIwMTUtMDctMjkgMjA6MDc6MDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRGVmYXVsdCB0byAiemVybyIgc3RhcnQgdGltZSBzZWxlY3Rpb24gbW9kZSBhcyBkb2N1bWVudGVkCgoyMDE1LTA3LTI5IDIwOjA2OjExIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IElnbm9yZSB0aGUgImZpcnN0IiBtb2RlIGlmIHRoZSBzZWdtZW50IG5vdCBhIHRpbWUgc2VnbWVudAoKMjAxNS0wNi0xNSAxODozMDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBZGQgcHJvcGVydHkgdG8gc2VsZWN0IGhvdyB0byBkZWNpZGUgb24gYSBzdGFydCB0aW1lCgkgIEJlZm9yZSBhZ2dyZWdhdG9yIGJhc2VkIGVsZW1lbnRzIGFsd2F5cyBzdGFydGVkIGF0IHJ1bm5pbmcgdGltZSAwLAoJICBub3cgaXQncyBwb3NzaWJsZSB0byBzZWxlY3QgdGhlIGZpcnN0IGlucHV0IGJ1ZmZlciBydW5uaW5nIHRpbWUgb3IKCSAgZXhwbGljaXRseSBzZXQgYSBzdGFydC10aW1lIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5OTY2CgoyMDE1LTA3LTI4IDIxOjE1OjQzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFF1ZXJ5IHRoZSBwZWVyIGxhdGVuY3kgYWdhaW4gb24gdGhlIG5leHQgb3Bwb3J0dW5pdHkgYWZ0ZXIgYSBwYWQgd2FzIGFkZGVkIG9yIHJlbW92ZWQKCSAgQWRkaW5nIGEgcGFkIHdpbGwgYWRkIGEgbmV3IHVwc3RyZWFtIHRoYXQgbWlnaHQgaGF2ZSBhIGJpZ2dlciBtaW5pbXVtIGxhdGVuY3ksCgkgIHNvIHdlIG1pZ2h0IGhhdmUgdG8gd2FpdCBsb25nZXIuIE9yIGl0IG1pZ2h0IGJlIHRoZSBmaXJzdCBsaXZlIHVwc3RyZWFtLCBpbgoJICB3aGljaCBjYXNlIHdlIHdpbGwgaGF2ZSB0byBzdGFydCBkZWFkbGluZSBiYXNlZCBhZ2dyZWdhdGlvbi4KCSAgUmVtb3ZpbmcgYSBwYWQgd2lsbCByZW1vdmUgYSBuZXcgdXBzdHJlYW0gdGhhdCBtaWdodCBoYXZlIGhhZCB0aGUgYmlnZ2VzdAoJICBsYXRlbmN5LCBzbyB3ZSBjYW4gbm93IHN0b3Agd2FpdGluZyBhIGJpdCBlYXJsaWVyLiBPciBpdCBtaWdodCBiZSB0aGUgbGFzdAoJICBsaXZlIHVwc3RyZWFtLCBpbiB3aGljaCBjYXNlIHdlIGNhbiBzdG9wIGRlYWRsaW5lIGJhc2VkIGFnZ3JlZ2F0aW9uLgoKMjAxNS0wNS0wNiAxMzowNzo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBhIGNvbnZlbmllbmNlIG1hY3JvIHRvIGdldCB0aGUgc291cmNlIHBhZAoJICBFYXNpZXIgdGhhbiBjYXN0aW5nIG9yIGFjZXNzaW5nIHRoZSBwYXJlbnQgZXZlcnl3aGVyZQoKMjAxNS0wNi0wMSAxODo1MDoxNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCB0aGF0IHRoZSBsYXRlbmN5IGlzIGluIG5zCgoyMDE1LTA1LTI4IDAwOjU5OjM5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQdXNoIEVPUyBvbiBlcnJvciByZXR1cm4uCgkgIEJlZm9yZSBzaHV0dGluZyBkb3duIHRoZSBzcmNwYWQgdGFzayBkdWUgdG8gYQoJICBkb3duc3RyZWFtIGVycm9yLCBwdXNoIGFuIEVPUyB0byBnaXZlIGRvd25zdHJlYW0KCSAgYSBjaGFuY2UgdG8gc2h1dCBkb3duIHNvbWV3aGF0IGNsZWFubHkuCgoyMDE1LTAzLTI5IDE3OjUzOjIzIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZG9jdW1lbnQgZ2FwIGhhbmRsaW5nIGJlaGF2aW9yCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYyNDkKCjIwMTUtMDMtMjcgMTk6MzY6NDIgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkcm9wIHN0YWxlIHdoaXRlIHNwYWNlIGF0IHdhcm5pbmcKCjIwMTUtMDMtMjcgMTk6Mjg6MDUgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBmaXggdHlwbyBpbiB0ZXN0IHN1aXRlCgoyMDE1LTAzLTI3IDE4OjMyOjI3IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGdhcCBldmVudCBoYW5kbGluZyB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjI0OQoKMjAxNS0wMy0xNyAyMjoxMzowNiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGltcGxlbWVudCBnYXAgaGFuZGxpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjI0OQoKMjAxNS0wNC0wMSAyMjoxMDoxMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVbmlmeSBkb3duc3RyZWFtIGZsb3cgcmV0dXJuIGFuZCBmbHVzaGluZwoJICBBbHNvIG1lYW5zIHRoYXQgaGF2aW5nIGEgbm9uLU9LIGRvd25zdHJlYW0gZmxvdyByZXR1cm4KCSAgd2FrZXMgdXAgdGhlIGNoYWluIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMAoKMjAxNS0wNC0wMSAyMTo0NTowMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGbHVzaGluZyBpcyBhbHdheXMgaW4gcGFkIGxvY2ssIG5vIG5lZWQgdG8gYXRvbWljcwoJICBUaGUgdXNhZ2Ugb2YgYXRvbWljcyB3YXMgYWx3YXlzIGRvdWJ0ZnVsIGFzIGl0IHdhcyB1c2VkIHRvIHJlbGVhc2UgYQoJICBHQ29uZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIwCgoyMDE1LTA0LTAxIDIxOjM4OjExIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlc2V0IHBlbmRpbmdfZW9zIG9uIHBhZCBmbHVzaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIwCgoyMDE1LTA0LTAxIDIxOjM3OjI1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVuaWZ5IGNvZGUgdG8gc2V0IGEgcGFkIGZsdXNoaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjAKCjIwMTUtMDMtMDYgMjE6MTI6NTIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFF1ZXJ5IGxhdGVuY3kgb24gZmlyc3QgaW5jb21pbmcgYnVmZmVyLgoJICBBbmQga2VlcCBvbiBxdWVyeWluZyB1cHN0cmVhbSB1bnRpbCB3ZSBnZXQgYSByZXBseS4KCSAgQWxzbywgdGhlIF9nZXRfbGF0ZW5jeV91bmxvY2tlZCgpIG1ldGhvZCByZXF1aXJlZCBiZWluZyBjYWxsZAoJICB3aXRoIGEgcHJpdmF0ZSBsb2NrLCBzbyByZW1vdmVkIHRoZSBfdW5sb2NrZWQoKSB2YXJpYW50IGZyb20gdGhlIEFQSS4KCSAgQW5kIGl0IG5vdyByZXR1cm5zIEdTVF9DTE9DS19USU1FX05PTkUgd2hlbiB0aGUgZWxlbWVudCBpcyBub3QgbGl2ZSBhcwoJICB3ZSB0aGluayB0aGF0IDAgdXBzdHJlYW0gbGF0ZW5jeSBpcyBwb3NzaWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTc2OAoKMjAxNS0wMy0wNiAyMToxMjoxMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBCZSBtb3JlIGFnZ3Jlc3NpdmUgd2l0aCBpbnZhbGlkIHJlcGxpZXMgdG8gb3VyIGxhdGVuY3kgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTc2OAoKMjAxNS0wMy0wOCAwMjowNDoxMSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3J5OiBkb24ndCByZWRlZmluZSBHU1RfRkxPV19DVVNUT01fU1VDQ0VTUwoKMjAxNS0wMi0yNyAwMDoyNjowMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVXNlIHN0YW5kYXJkIHVwc3RyZWFtIGxhdGVuY3kgcXVlcnlpbmcgbG9naWMKCSAgVGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBpcyBkdXBsaWNhdGVkIGluIHRoZSBkZWZhdWx0IGxhdGVuY3kgcXVlcnlpbmcKCSAgbm93LgoKMjAxNS0wMi0xOSAyMToyMTo1NiAtMDUwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVzZSBzcmNfbG9jayB0byBwcm90ZWN0IGxhdGVuY3kgcmVsYXRlZCBtZW1iZXJzCgkgIE9uZSBoYXMgdG8gdXNlIHRoZSBzcmNfbG9jayBhbnl3YXkgdG8gcHJvdGVjdCB0aGUgbWluL21heC9saXZlIHNvIHRoZXkKCSAgY2FuIGJlIG5vdGlmaWVkIGF0b21pY2FsbHkgdG8gdGhlIHNyYyB0aHJlYWQgdG8gd2FrZSBpdCB1cCBvbiBjaGFuZ2VzLAoJICBzdWNoIGFzIHByb3BlcnR5IGNoYW5nZXMuIFNvIG5vIHBvaW50IGluIGhhdmluZyBhIHNlY29uZCBsb2NrLgoJICBBbHNvLCB0aGUgb2JqZWN0IGxvY2sgd2FzIGJlaW5nIGhlbGQgYWNyb3NzIGEgY2FsbCB0bwoJICBHU1RfRUxFTUVOVF9XQVJOSU5HLCBndWFyYW50ZWVpbmcgYSBkZWFkbG9jay4KCjIwMTUtMDItMTkgMTg6NTM6MzIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIHVudHJ1ZSBjb21tZW50CgoyMDE1LTAyLTE5IDE4OjMwOjM1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IHRyeSB0byBwdXNoIHRhZ3Mgd2hpbGUgZmx1c2ggc2Vla2luZwoJICBUaGUgZG93bnN0cmVhbSBzZWdtZW50IGNvdWxkIGhhdmUgYmVlbiBmbHVzaGVkIGFscmVhZHksIHNvCgkgIG5lZWQgdG8gcmUtc2VuZCB0aGUgc2VnbWVudCBldmVudCBiZWZvcmUgcmUtc2VuZGluZyB0aGUgdGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMi0xOSAxMTowNDoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVc2UgdGhlIHNpbmtwYWRzIGl0ZXJhdG9yIGRpcmVjdGx5IHRvIHF1ZXJ5IHVwc3RyZWFtIGxhdGVuY2llcwoJICBXaGlsZSBnc3RfYWdncmVnYXRvcl9pdGVyYXRlX3NpbmtwYWRzKCkgbWFrZXMgc3VyZSB0aGF0IGV2ZXJ5IHBhZCBpcyBvbmx5CgkgIHZpc2l0ZWQgb25jZSwgZXZlbiB3aGVuIHRoZSBpdGVyYXRvciBoYXMgdG8gcmVzeW5jLCB0aGlzIGlzIG5vdCBhbGwgd2UgaGF2ZQoJICB0byBkbyBmb3IgcXVlcnlpbmcgdGhlIGxhdGVuY3kuIFdoZW4gdGhlIGl0ZXJhdG9yIHJlc3luY3Mgd2UgYWN0dWFsbHkgaGF2ZQoJICB0byBxdWVyeSBhbGwgcGFkcyBmb3IgdGhlIGxhdGVuY3kgYWdhaW4gYW5kIGZvcmdldCBvdXIgcHJldmlvdXMgcmVzdWx0cy4gSXQKCSAgbWlnaHQgaGF2ZSBoYXBwZW5lZCB0aGF0IGEgcGFkIHdhcyByZW1vdmVkLCB3aGljaCBpbmZsdWVuY2VkIHRoZSByZXN1bHQgb2YKCSAgdGhlIGxhdGVuY3kgcXVlcnkuCgoyMDE1LTAyLTE5IDEwOjU3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE1vdmUgZ3N0X2FnZ3JlZ2F0b3JfZ2V0X2xhdGVuY3lfdW5sb2NrZWQoKSBhIGJpdAoJICBJdCB3YXMgYmV0d2VlbiBhbm90aGVyIGZ1bmN0aW9uIGFuZCBpdHMgaGVscGVyIGZ1bmN0aW9uIGJlZm9yZSwgd2hpY2ggd2FzCgkgIGNvbmZ1c2luZyB3aGVuIHJlYWRpbmcgdGhlIGNvZGUgYXMgaXQgaGFkIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgb3RoZXIKCSAgZnVuY3Rpb25zLgoKMjAxNS0wMi0xOSAwMToyODowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGYWlsIHRoZSBsYXRlbmN5IHF1ZXJ5IGlmIG9uZSBvZiB0aGUgdXBzdHJlYW0gcXVlcmllcyBmYWlscwoKMjAxNS0wMi0xOCAxNTo1Mzo1MyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCBsb2NraW5nIG9yZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDItMTggMTU6MTE6MTQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVuYW1lIGNvbmZ1c2lubHkgbmFtZWQgU1JDX1NUUkVBTV9MT0NLIG1hY3JvcyB0byBTUkNfTE9DSwoJICBUaGlzIHdpbGwgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGxvY2sgaXRzZWxmLiBJdCBpcyBhbHNvIG5vdCBhIHN0cmVhbQoJICBsb2NrIGFzIGl0IG5vdCByZWN1cnNpdmUgYW5kIG5vdCBoZWxkIHdoaWxlIHB1c2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDItMTggMTU6MDY6MDEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVuYW1lIGNvbmZ1c2luZ2x5IG5hbWVkIHN0cmVhbSBsb2NrIHRvIGZsdXNoIGxvY2sKCSAgVGhpcyBsb2NrIGlzIG5vdCB3aGF0IGlzIGNvbW1vbmx5IGtub3duIGFzIGEgInN0cmVhbSBsb2NrIiBpbiBHU3RyZW1lciwKCSAgaXQncyBub3QgcmVjdXJzaXZlIGFuZCBpdCdzIHRha2VuIGZyb20gdGhlIG5vbi1zZXJpYWxpemVkIEZMVVNIX1NUQVJUIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAyLTE4IDE1OjA0OjA0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBtYWNybyBpbmRlbmRhdGlvbgoJICBDaGFuZ2VzIG5vIGNvZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMi0xMyAyMzo0NToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkcm9wIEdBUCBldmVudHMgdW50aWwgd2UgaGFuZGxlIHRoZW0gcHJvcGVybHkKCjIwMTUtMDItMTMgMTU6NTM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHVzZSBuZXcgZ3N0X2FnZ3JlZ2F0b3JfcGFkX2Ryb3BfYnVmZmVyKCkKCjIwMTUtMDItMTMgMTU6NDk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBnc3RfYWdncmVnYXRvcl9wYWRfZHJvcF9idWZmZXIoKQoJICBzdGVhbF9idWZmZXIoKSArIHVucmVmIHNlZW1zIHRvIGJlIGEgd2lkZS1zcHJlYWQgaWRpb20KCSAgKHdoaWNoIHBlcmhhcHMgaW5kaWNhdGVzIHRoYXQgc29tZXRoaW5nIGlzIG5vdCBxdWl0ZQoJICByaWdodCB3aXRoIHRoZSB3YXkgYWdncmVnYXRvciBwYWQgd29ya3MgY3VycmVudGx5KS4KCjIwMTUtMDItMTIgMTM6MzI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogb25seSBwb3N0IGxhdGVuY3kgbWVzc2FnZSBpZiBhbnl0aGluZyBjaGFuZ2VkCgkgIFBlcmhhcHMgd2Ugc2hvdWxkIGNoZWNrIGZvciBlbGVtZW50IHN0YXRlIGFzIHdlbGwgYW5kCgkgIG9ubHkgcG9zdCBpdCBpZiBpbiBQTEFZSU5HIHN0YXRlLgoKMjAxNS0wMi0xMSAxNDoxNjoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBJbXByb3ZlIGFuZCBmaXggTEFURU5DWSBxdWVyeSBoYW5kbGluZwoJICBUaGlzIG5vdyBmb2xsb3dzIHRoZSBkZXNpZ24gZG9jcyBldmVyeXdoZXJlLCBlc3BlY2lhbGx5IHRoZSBtYXhpbXVtIGxhdGVuY3kKCSAgaGFuZGxpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxMDYKCjIwMTUtMDItMTAgMTA6NDk6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUGF1c2Ugc3JjcGFkIHRhc2sgb24gZmxvdyBlcnJvcnMKCSAgT3RoZXJ3aXNlIHdlIHdpbGwgY2FsbCB0aGUgdGFzayBmdW5jdGlvbiBvdmVyIGFuZCBvdmVyIGFnYWluIHVudGlsCgkgIHVwc3RyZWFtIGZpbmFsbHkgaGFuZGxlZCB0aGUgZmxvdyByZXR1cm4gYW5kIHNodXRzIHVzIGRvd24uCgoyMDE1LTAyLTA2IDEwOjU5OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFN0cmVhbWxpbmUgbGF0ZW5jeSBjYWxjdWxhdGlvbnMKCSAgTWluIGxhdGVuY3kgY2FuIG5ldmVyIGJlIGludmFsaWQsIGxhdGVuY3kgcHJvcGVydHkgY2FuIG5ldmVyIGJlIGludmFsaWQKCSAgZWl0aGVyLiBTbyBubyBuZWVkIHRvIGNoZWNrIGZvciBhbGwgdGhlc2UgdGhpbmdzIGluIHZhcmlvdXMgcGxhY2VzLgoKMjAxNS0wMi0wNiAxMDozNjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBJZiB1cHN0cmVhbSBoYXMgbm8gbWF4IGxhdGVuY3kgYnV0IHRoZSBzdWJjbGFzcyBoYXMsIHRha2UgdGhlIHN1YmNsYXNzIG1heCBsYXRlbmN5CgoyMDE1LTAyLTA2IDEwOjMzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBtaW4+bWF4IGxhdGVuY3kgZXJyb3IgY2hlY2sKCSAgV2UgaGF2ZSB0byBpbmNsdWRlIHRoZSB1cHN0cmVhbSBsYXRlbmN5LCBvdXIgb3duIGxhdGVuY3kgYW5kIHRoZSBzdWJjbGFzcwoJICBsYXRlbmN5IGluIHRoZSBjYWxjdWxhdGlvbnMuCgkgIEZJWE1FOiBUaGlzIGlzIHN0aWxsIG5vdCBlbnRpcmVseSBjb3JyZWN0CgoyMDE1LTAyLTA2IDEwOjMwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IGFkZCB0aGUgbGF0ZW5jeSBwcm9wZXJ0eSB0byB0aGUgbWF4IGxhdGVuY3kKCSAgSXQgaGFzIG5vIG1lYW5pbmcgZm9yIHRoZSBtYXggbGF0ZW5jeSBhbmQgaXMgb25seSB1c2VkIHRvIGluY3JlYXNlIHRoZSBtaW4KCSAgbGF0ZW5jeS4KCjIwMTUtMDEtMjYgMTc6MDY6MjkgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDbGVhbnVwIGxvY2tpbmcgYXJvdW5kIEFnZ3JlZ2F0b3JQYWQgZmx1c2ggcmVsYXRlZCBmaWVsZHMKCSAgQW5kIGRvY3VtZW50IHRoZSBsb2NraW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjYgMTM6MTE6MDUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBrZWVwIGNoYWluIGZ1bmN0aW9ucyBhcyBkdW1iIGFzIHBvc3NpYmxlLgoJICArIEEgcGFkIGNoYWluIGZ1bmN0aW9uIGhhcyBubyBidXNpbmVzcyBjaGVja2luZyBvdGhlciBwYWRzLAoJICB0aGF0J3Mgd2hhdCB0aGUgYWdncmVnYXRlIHRocmVhZCBpcyBmb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjYgMTE6MzI6NDcgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBNb3JlIGZpeGVzIGFyb3VuZCBsb2NraW5nIHdoZW4gYWNjZXNzaW5nIHByb3RlY3RlZCBwcml2YXRlIGZpZWxkcwoJICBJbiBzb21lIG1vcmUgcGxhY2VzIHdlIHdlcmUgYWNjZXNzaW5nIEdzdEFnZ3JlZ2F0b3ItPnNlZ21lbnQKCSAgYW5kIEdzdEFnZ3JlZ2F0b3ItPnNlcW51bSB3aXRob3V0IGhvbGRpbmcgdGhlIEdTVF9PQkpFQ1RfTE9DSwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTI2IDExOjI5OjA4ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IE1ha2UgdGhlIFBBRF9MT0NLIHByaXZhdGUKCSAgSW5zdGVhZCBvZiB1c2luZyB0aGUgR1NUX09CSkVDVF9MT0NLIHdlIHNob3VsZCBoYXZlCgkgIGEgZGVkaWNhdGVkIG11dGV4IGZvciB0aGUgcGFkIGFzIGl0IGlzIGFsc28gYXNzb2NpYXRlZAoJICB3aXRoIHRoZSBtdXRleCBvbiB0aGUgRVZFTlRfTVVURVggb24gd2hpY2ggd2Ugd2FpdAoJICBpbiB0aGUgX2NoYWluIGZ1bmN0aW9uIG9mIHRoZSBwYWQuCgkgIFRoZSBHc3RBZ2dyZWdhdG9yUGFkLnNlZ21lbnQgaXMgc3RpbGwgcHJvdGVjdGVkIHdpdGggdGhlCgkgIEdTVF9PQkpFQ1RfTE9DSy4KCSAgUmVtb3ZlIHRoZSBnc3RfYWdncmVnYXRvcl9wYWRfcGVha191bmxvY2tlZCBtZXRob2QgYXMgaXQgZG9lcyBub3QgbWFrZQoJICBzZW5zZSBhbnltb3JlIHdpdGggYSBwcml2YXRlIGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjYgMTE6MjU6NTQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEhpZGUgR3N0QWdncmVnYXRvclBhZCBidWZmZXIgYW5kIEVPUyBmaWxlZHMKCSAgQW5kIGFkZCBhIGdldHRlciBmb3IgdGhlIEVPUy4KCSAgVGhlIHVzZXIgc2hvdWxkIGFsd2F5cyB1c2UgdGhlIHZhcmlvdXMgZ2V0dGVycyB0byBhY2Nlc3MKCSAgdGhvc2UgZmllbGRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTg6NDE6NDMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgbG9ja2luZyBvZiBHc3RBZ2dyZWdhdG9yUHJpdmF0ZSBtZW1iZXJzCgkgIE1vc3Qgb2YgdGhlbSBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBvYmplY3QgbG9jaywgc3BlY2lmeQoJICB3aGljaCBvbmVzIHVzZSBhIGRpZmZlcmVudCBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE4OjQ3OjA5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IGhvdyB0aGUgc2VnbWVudCBpcyBwcm90ZWN0ZWQKCSAgRG9jdW1lbnQgdGhhdCBpdCBjYW4gb25seSBiZSBhY2Nlc3NlZCB3aXRoIHRoZSBvYmplY3QgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxOTo0NDo1NyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcm90ZWN0IGFsbCBsYXRlbmN5IHJlbGF0ZWQgbWVtYmVycyB3aXRoIHRoZSBvYmplY3QgbG9jawoJICBUaGUgbG9ja2luZyB3YXMgbm90IGNvbnNpc3RlbnQsIG5vdyBjb25zaXN0ZW50bHkgdXNlIHRoZSBvYmplY3QgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxOTo0MzoxMiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgbG9ja2luZyBmb3IgZ3N0X2FnZ3JlZ2F0b3JfZ2V0X2xhdGVuY3lfdW5sb2NrZWQoKQoJICBSZW5hbWVkIGl0IHRvIF91bmxvY2tlZCgpIHRvIG1ha2UgaXQgY2xlYXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTk6MzU6MjUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJvdGVjdCB0aGUgc3JjcGFkIGNhcHMgbmVnb3RpYXRpb24gd2l0aCB0aGUgc3RyZWFtIGxvY2sKCSAgSW5zdGVhZCBvZiBhZGRpbmcgYW5vdGhlciBsb2NrLCB1c2UgdGhlIHNyY3BhZCBzdHJlYW0gbG9jaywgd2hpY2ggaXMgYWxyZWFkeQoJICB0YWtlbiBhbnl3YXkgdG8gcHVzaCBvdXQgdGhlIG5ldyBjYXBzIGlmIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxOTozMzoxOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcm90ZWN0IHRoZSB0YWdzIHdpdGggdGhlIG9iamVjdCBsb2NrCgkgIFRoZSB0YWdzIHJlbGF0ZWQgdmFyaWFibGVzIHdlcmUgc29tZXRpbWVzIHByb3RlY3RlZCwgc29tZXRpbWVzIG5vdCBhbmQKCSAgc29tZXRpbWVzIGF0b21pYy4gUHV0IHRoZW0gYWxsIHVuZGVyIHRoZSBvYmplY3QgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxODo1MzoyMCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDb25zaXN0ZW5seSBsb2NrIHRoZSBmbG93X3JldHVybiBzdGF0ZQoJICBVc2UgdGhlIG9iamVjdCdzIGxvY2sgdG8gcHJvdGVjdCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxODo0NTozNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDb25zaXN0ZW50bHkgbG9jayBzb21lIG1lbWJlcnMKCSAgU29tZSBtZW1iZXJzIHNvbWV0aW1lcyB1c2VkIGF0b21pYyBhY2Nlc3MsIHNvbWV0aW1lcyB3aGVyZSBub3QgbG9ja2VkIGF0CgkgIGFsbC4gSW5zdGVhZCBjb25zaXN0ZW50bHkgdXNlIGEgbXV0ZXggdG8gcHJvdGVjdCB0aGVtLCBhbHNvIGRvY3VtZW50CgkgIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMTQgMTQ6Mzg6MDkgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFByb3RlY3QgZXhwb3J0ZWQgcGFkIG1lbWJlcnMgd2l0aCB0aGUgcGFkJ3Mgb2JqZWN0IGxvY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0xNCAxNDozNToxNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUmVwbGFjZSBldmVudCBsb2NrIHdpdGggcGFkJ3Mgb2JqZWN0IGxvY2sKCSAgUmVkdWNlIHRoZSBudW1iZXIgb2YgbG9ja3Mgc2ltcGxpZnkgY29kZSwgd2hhdCBpcyBwcm90ZWN0cwoJICBpcyBleHBvc2VkLCBidXQgdGhlIGxvY2sgd2FzIG5vdC4KCSAgQWxzbyBtZWFucyBhZGRpbmcgYW4gX3VubG9ja2VkIHZlcnNpb24gb2YgZ3N0X2FnZ3JlZ2F0b3JfcGFkX3N0ZWFsX2J1ZmZlcigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTA5IDIyOjAxOjAwIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByb3RlY3QgZGF0YSB3aXRoIHRoZSBzYW1lIG11dGV4IGFzIEdDb25kCgkgIFdoZW5ldmVyIGEgR0NvbmQgaXMgdXNlZCwgdGhlIHNhZmVzdCBwYXJhZGlnbSBpcyB0byBwcm90ZWN0CgkgIHRoZSB2YXJpYWJsZSB3aGljaCBjaGFuZ2UgaXMgc2lnbmFsbGVkIGJ5IHRoZSBHQ29uZCB3aXRoIHRoZSBzYW1lCgkgIG11dGV4IHRoYXQgdGhlIEdDb25kIGRlcGVuZHMgb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMTQgMjM6NDc6MTkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBOaXRwaWNrIHNwYWNpbmcvcHVuY3R1YXRpb24gaW4gZGVidWcgbG9nZ2luZwoKMjAxNS0wMS0wOSAyMTo1MTo0MCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgcG9pbnRsZXNzIGF0b21pYwoJICBJdCBpcyBvbmx5IG1vZGlmaWVkIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQKCjIwMTUtMDEtMDkgMjE6MzA6MzYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IHF1ZXJ5IGxlYWsKCjIwMTUtMDEtMDkgMTY6NDM6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJpbnQgaml0dGVyIGZyb20gY2xvY2sgd2FpdGluZyBpbiB0aGUgZGVidWcgbG9ncwoKMjAxNS0wMS0wNCAxNzoxNTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkb24ndCB1c2UgaXRlcmF0b3Igd2hlbiBzZXR0aW5nIGZsdXNoIHBlbmRpbmcgb24gcGFkcwoKMjAxNS0wMS0wNCAxNjo1NzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBjaGVjayBpZiBwYWRzIGFyZSByZWFkeSBtb3JlIGVmZmljaWVudGx5CgkgIE5vIG5lZWQgdG8gdXNlIGFuIGl0ZXJhdG9yIGZvciB0aGlzIHdoaWNoIGNyZWF0ZXMgYSB0ZW1wb3JhcnkKCSAgc3RydWN0dXJlIGV2ZXJ5IHRpbWUgYW5kIGFsc28gaW52b2x2ZXMgdGFraW5nIGFuZCByZWxlYXNpbmcgdGhlCgkgIG9iamVjdCBsb2NrIG1hbnkgdGltZXMgaW4gdGhlIGNvdXJzZSBvZiBpdGVyYXRpbmcuIE5vdCB0byBtZW50aW9uCgkgIGFsbCB0aGF0IEdMaXN0IGhhbmRsaW5nIGluIGdzdF9hZ2dyZWdhdG9yX2l0ZXJhdGVfc2lua3BhZHMoKS4KCjIwMTUtMDEtMDQgMTI6NTk6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbmFtZSB2ZnVuYyBhcmd1bWVudHMgY29uc2lzdGVudGx5CgoyMDE1LTAxLTAxIDE1OjQ2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBnLWkgdHJhbnNmZXIgYW5kIHNjb3BlIGFubm90YXRpb25zCgoyMDE1LTAxLTAxIDE0OjEwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlZ2lzdGVyIG5hbWVzIG9mIGl0ZXJhdGVfc2lua3BhZHMgZnVuY3Rpb25zIHdpdGggZGVidWcgc3lzdGVtCgoyMDE1LTAxLTAxIDE0OjAzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlZHVjZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgdGFraW5nL3JlbGVhc2luZyBsb2dzIHRvIFRSQUNFIGxldmVsCgkgIERvbid0IHNwYW0gZGVidWcgbG9nIHdpdGggdGhpcyBzdHVmZi4KCjIwMTQtMTItMzEgMTg6MTY6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG1vdmUgcHJvcGVydHkgbWVtYmVyIGludG8gcHJpdmF0ZSBzdHJ1Y3R1cmUKCSAgT3VyIGxvY2tpbmcgKG9yIGxhY2sgdGhlcmVvZikgd2hpbGUgYWNjZXNzaW5nIHRoaXMgYWxzbwoJICBsb29rcyBnZW5lcmFsbHkgcXVpdGUgZG9kZ3kuCgoyMDE0LTEyLTMxIDE0OjUwOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBlbXB0eSBkaXNwb3NlIGZ1bmN0aW9uCgoyMDE0LTEyLTMwIDIzOjU4OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBnaXZlIHByaXZhdGUgZnVuY3Rpb25zIG5hbWVzcGFjZSBwcmVmaXgKCSAgRXNwZWNpYWxseSB0aGUgR1NUX0RFQlVHX0ZVTkNQVFIgb25lcy4KCjIwMTQtMTItMzEgMTI6MzU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogZml4IHVwIHNvbWUgZG9jcyBjb21tZW50cyBpbiBoZWFkZXIKCjIwMTQtMTItMzAgMjM6NDQ6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBub3ctdW51c2VkIHN5c3RlbSBjbG9jayBtZW1iZXIKCjIwMTQtMTItMzAgMTk6MjI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG1ha2UgR3N0QWdncmVnYXRvclBhZEZvcmVhY2hGdW5jIHRha2UgYW4gR3N0QWdncmVnYXRvclBhZAoKMjAxNC0xMi0zMCAxNzo1MDoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBicmluZyBzdGFydC9zdG9wIHZmdW5jIHNlbWFudGljcyBpbiBsaW5lIHdpdGggb3RoZXIgYmFzZWNsYXNzZXMKCSAgU3ViLWNsYXNzIHNob3VsZCBub3QgaGF2ZSB0byBjaGFpbiB1cCB0byBHc3RBZ2dyZWdhdG9yJ3Mgc3RhcnQvc3RvcAoJICB2ZnVuY3MsIHNhbWUgYXMgaW4gR3N0QmFzZVNyYywgR3N0QmFzZVNpbmssIEdzdEJhc2VUcmFuc2Zvcm0gZXRjLgoKMjAxNC0xMi0yOCAxODoyNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgcG9pbnRsZXNzIEdTVF9ERUJVR19GVU5DUFRSCgkgIE5vdCB1c2VmdWwgZm9yIEdPYmplY3QgdmZ1bmNzLgoKMjAxNC0xMi0yOCAxODoyNDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgZHVwbGljYXRlIHBhZCBwYXJlbnRfY2xhc3MgdmFyaWFibGUKCSAgR19ERUZJTkVfVFlQRSBhbHJlYWR5IHByb3ZpZGVzIG9uZSwganVzdCBuZWVkIHRvIHVzZSBpdC4KCjIwMTQtMTItMjggMTg6MjI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIF9DQVNUKCkgdmFyaWFudHMgZm9yIGNhc3QgbWFjcm9zCgoyMDE0LTEyLTI4IDAxOjEzOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG1ha2UgcGFkZGluZyBsYXJnZXIKCSAgRXNwLiB0aGUgY2xhc3Mgc3RydWN0dXJlcywgY2FuJ3QgaGF2ZSBlbm91Z2gKCSAgc3BhcmUgc3BhY2UgZm9yIHZpcnR1YWwgZnVuY3Rpb25zLgoKMjAxNC0xMi0yNyAxNjoxNTo0MSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IExvZyB0byB0aGUgcGFkIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQKCSAgTW9yZSBjb3JyZWN0IHdheSBvZiBkb2luZyB0aGUgc2FtZSB0aGluZyBhcyBiZWZvcmUKCjIwMTQtMTItMjcgMDk6NDk6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTWFrZSBzdXJlIHRoYXQgdGhlIG1pbmltdW0gbGF0ZW5jaWVzIGFyZSBuZXZlciBHU1RfQ0xPQ0tfVElNRV9OT05FCgoyMDE0LTEyLTI3IDA5OjQyOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFdhaXQgZm9yIHRoZSBtaW5pbXVtIGxhdGVuY3ksIG5vdCB0aGUgbWF4aW11bQoJICBUaGUgbWluaW11bSBsYXRlbmN5IGlzIHRoZSBsYXRlbmN5IHdlIGhhdmUgdG8gd2FpdCBhdCBsZWFzdAoJICB0byBndWFyYW50ZWUgdGhhdCBhbGwgdXBzdHJlYW1zIGhhdmUgcHJvZHVjZWQgZGF0YS4gVGhlIG1heGltdW0KCSAgbGF0ZW5jeSBoYXMgbm8gbWVhbmluZyBsaWtlIHRoYXQgYW5kIHNob3VsZG4ndCBiZSB1c2VkIGZvciB3YWl0aW5nLgoKMjAxNC0xMi0yNyAwNDoyMTozNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENsYW1wIHRoZSBtaW4gbGF0ZW5jeSBhdCB0aGUgbWF4IGlmIGl0J3MgZ3JlYXRlcgoKMjAxNC0xMi0yNyAwNDoyMToyNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByaW50IHRoZSBzaW5rcGFkIG5hbWUgd2hpbGUgbG9nZ2luZyBsYXRlbmN5IHF1ZXJpZXMKCSAgVmVyeSB1c2VmdWwgd2hpbGUgZGVidWdnaW5nLgoKMjAxNC0xMi0yNyAwNDoxOTo1MiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFRha2UgdGhlIHN0cmVhbSBsb2NrIHdoZW4gaXRlcmF0aW5nIHNpbmsgcGFkcwoJICBXaGVuIGl0ZXJhdGluZyBzaW5rIHBhZHMgdG8gY29sbGVjdCBzb21lIGRhdGEsIHdlIHNob3VsZCB0YWtlIHRoZSBzdHJlYW0gbG9jayBzbwoJICB3ZSBkb24ndCBnZXQgc3RhbGUgZGF0YSBhbmQgcG9zc2libHkgZGVhZGxvY2sgYmVjYXVzZSBvZiB0aGF0LiBUaGlzIGZpeGVzCgkgIGEgZGVmaW5pdGl2ZSBkZWFkbG9jayBpbiBfd2FpdF9hbmRfY2hlY2soKSB0aGF0IG1hbmlmZXN0cyB3aXRoIGhpZ2ggbWF4CgkgIGxhdGVuY2llcyBpbiBhIGxpdmUgcGlwZWxpbmUsIGFuZCBmaXhlcyBvdGhlciBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbnMuCgoyMDE0LTEyLTIzIDExOjQ1OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IGxlYWsgZmx1c2gtc3RhcnQgZXZlbnRzCgoyMDE0LTEyLTIzIDEwOjI0OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFsc28gY2hhbmdlIHRoZSBkZWZhdWx0IGxhdGVuY3kgdG8gMCwgbm90IGp1c3QgdGhlIG1pbmltdW0KCjIwMTQtMTItMjMgMDk6NTI6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IGRvY3MgYW5kIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGxhdGVuY3kgcHJvcGVydHkKCjIwMTQtMTItMjIgMjI6MTk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWxzbyBpbmNsdWRlIHRoZSBzdWJjbGFzcyBsYXRlbmN5IGluIHRoZSByZXN1bHQgb2YgdGhlIGxhdGVuY3kgcXVlcnkKCjIwMTQtMTItMjIgMTU6MjY6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUG9zdCBhIGxhdGVuY3kgbWVzc2FnZSBpZiB0aGUgdmFsdWUgb2YgdGhlIGxhdGVuY3kgcHJvcGVydHkgY2hhbmdlcwoKMjAxNC0xMi0yMiAxNTowMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBXYWtlIHVwIHRoZSBzcmMgdGhyZWFkIGFmdGVyIGhhbmRsaW5nIGEgbGF0ZW5jeSBxdWVyeQoJICBEdWUgdG8gY2hhbmdlZCBsYXRlbmNpZXMgb3IgY2hhbmdlZCBsaXZlLW5lc3Mgd2UgbWlnaHQgaGF2ZSB0bwoJICBhZGp1c3QgaWYgd2Ugd2FpdCBvbiBhIGRlYWRsaW5lIGF0IGFsbCBhbmQgaG93IGxvbmcuCgoyMDE0LTEyLTIyIDE1OjAwOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgd2UgbmVlZCB0byB3YWtlIHVwIGJ1dCBpbnN0ZWFkIGNoZWNrIGFsbCBjb25kaXRpb25zIGZvciB3YWl0aW5nIGFnYWluCgkgIFRoaXMgc2ltcGxpZmllcyB0aGUgY29kZSBhbmQgYWxzbyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QgZm9yZ2V0IHRvIGNoZWNrIGFsbAoJICBjb25kaXRpb25zIGZvciB3YWl0aW5nLgoJICBBbHNvIGZpeCBhIHBvdGVudGlhbCBkZWFkbG9jayBjYXVzZWQgYnkgbm90IGNoZWNraW5nIGlmIHdlJ3JlIGFjdHVhbGx5IHN0aWxsCgkgIHJ1bm5pbmcgYmVmb3JlIHN0YXJ0aW5nIHRvIHdhaXQuCgoyMDE0LTEyLTE3IDE5OjUxOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBBZGQgZnVuY3Rpb24gdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBzZXQgdGhlaXIgb3duIGxhdGVuY3kKCSAgRm9yIGF1ZGlvbWl4ZXIgdGhpcyBpcyBvbmUgYmxvY2tzaXplLCBmb3IgdmlkZW9hZ2dyZWdhdG9yIHRoaXMgc2hvdWxkCgkgIGJlIHRoZSBkdXJhdGlvbiBvZiBvbmUgb3V0cHV0IGZyYW1lLgoKMjAxNC0xMi0xNyAxNzo1NDowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBhIHRpbWVvdXQgcGFyYW1ldGVyIHRvIDo6YWdncmVnYXRlKCkKCSAgV2hlbiB0aGlzIGlzIFRSVUUsIHdlIHJlYWxseSBoYXZlIHRvIHByb2R1Y2Ugb3V0cHV0LiBUaGlzIGhhcHBlbnMKCSAgaW4gbGl2ZSBtaXhpbmcgbW9kZSB3aGVuIHdlIGhhdmUgdG8gb3V0cHV0IHNvbWV0aGluZyBmb3IgdGhlIGN1cnJlbnQKCSAgdGltZSwgbm8gbWF0dGVyIGlmIHdlIGhhdmUgZW5vdWdoIGlucHV0IG9yIG5vdC4KCjIwMTQtMTItMTYgMTk6NDk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IGZpeCBhZ2dyZWdhdG9yIHVuaXQgdGVzdCBhZnRlciBwcm9wZXJ0eSByZW5hbWluZwoKMjAxNC0xMi0xNiAxNzozMzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTb21lIG1pbm9yIGNsZWFudXAKCjIwMTQtMTItMDUgMTg6MTk6NTQgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbWFrZSB0aGUgc3JjIHBhZCB0YXNrIGRyaXZlIHRoZSBwaXBlbGluZSBmb3IgbGl2ZSBwaXBlbGluZXMKCSAgVGhpcyByZW1vdmVzIHRoZSB1c2VzIG9mIEdBc3luY1F1ZXVlIGFuZCByZXBsYWNlcyBpdCB3aXRoIGV4cGxpY2l0CgkgIEdNdXRleCwgR0NvbmQgYW5kIHdha2V1cCBjb3VudCB3aGljaCBpcyB1c2VkIGZvciB0aGUgbm9uLWxpdmUgY2FzZS4KCSAgRm9yIGxpdmUgcGlwZWxpbmVzLCB0aGUgYWdncmVnYXRvciB3YWl0cyBvbiB0aGUgY2xvY2sgdW50aWwgZWl0aGVyCgkgIGRhdGEgYXJyaXZlcyBvbiBhbGwgc2luayBwYWRzIG9yIHRoZSBleHBlY3RlZCBvdXRwdXQgYnVmZmVyIHRpbWUKCSAgYXJyaXZlcyBwbHVzIHRoZSB0aW1lb3V0L2xhdGVuY3kgYXQgd2hpY2ggdGltZSwgdGhlIHN1YmNsYXNzCgkgIHByb2R1Y2VzIGEgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMTQ2CgoyMDE0LTEyLTE0IDAxOjI5OjI2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHMvYWdncmVnYXRvcjogVXNlIGNvcnJlY3QgdHlwZSB3aGVuIHNldHRpbmcgcHJvcGVydHkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTQ5NQoKMjAxNC0xMS0xOSAxNzoxNzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVbmJsb2NrIGV2ZW50cy9xdWVyaWVzIGltbWVkaWF0ZWx5IGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDM3NgoKMjAxNC0xMS0xOSAxNzoxNTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEcm9wIHNlcmlhbGl6ZWQgZXZlbnRzL3F1ZXJpZXMgaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMzc2CgoyMDE0LTExLTE5IDE3OjAzOjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEJsb2NrIHNlcmlhbGl6ZWQgZXZlbnRzL3F1ZXJpZXMgdW50aWwgdGhlIHBhZCBoYXMgY29uc3VtZWQgYWxsIGJ1ZmZlcnMKCSAgT3RoZXJ3aXNlIHRoZSBjYXBzIG9mIHRoZSBwYWQgbWlnaHQgY2hhbmdlIHdoaWxlIHRoZSBzdWJjbGFzcyBzdGlsbCB3b3JrcyB3aXRoCgkgIGEgYnVmZmVyIG9mIHRoZSBvbGQgY2FwcywgYXNzdW1pbmcgdGhlIHRoZSBjdXJyZW50IHBhZCBjYXBzIGFwcGx5IHRvIHRoYXQKCSAgYnVmZmVyLiBXaGljaCB0aGVuIGxlYWRzIHRvIGNyYXNoZXMgYW5kIG90aGVyIG5pY2UgZWZmZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDM3NgoKMjAxNC0xMS0xOSAxNzowMzozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggdHlwbyBpbiBkZWJ1ZyBvdXRwdXQKCjIwMTQtMTEtMTcgMTQ6MDA6MTAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIF9nZXRfbGF0ZW5jeSgpIGZvciBzdWJjbGFzcyB1c2FnZQoJICBBUEk6IGdzdF9hZ2dyZWdhdG9yX2dldF9sYXRlbmN5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk5OTYKCjIwMTQtMTAtMjAgMTg6MjU6MDggKzA1MzAgIFZpbmVldGggVCBNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGF1ZGlvbWl4ZXI6IGNyaXRpY2FsIGVycm9yIGZvciBibG9ja3NpemUsIHRpbWVvdXQgbWluL21heCB2YWx1ZXMKCSAgQXVkaW9taXhlciBibG9ja3NpemUsIGNhbnQgYmUgMCwgaGVuY2UgYWRqdXN0aW5nIHRoZSBtaW5pbXVtIHZhbHVlIHRvIDEKCSAgdGltZW91dCB2YWx1ZSBvZiBhZ2dyZWdhdG9yIGlzIGRlZmluZWQgd2l0aCBNQVggb2YgTUFYSU5UNjQsCgkgIGJ1dCBpdCBjYW5ub3QgY3Jvc3MgR19NQVhMT05HICogR1NUX1NFQ09ORCAtIDEKCSAgSGVuY2UgY2hhbmdlZCB0aGUgbWF4IHZhbHVlIG9mIHRoZSBzYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg4NDUKCjIwMTQtMTAtMDcgMTY6NTc6MjcgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0cy9hZ2dyZWdhdG9yOiBhZGQgdGltZW91dCBoYW5kbGluZyB0ZXN0IGZvciB0aGUgdGltZW91dCBwYXJhbWV0ZXIKCjIwMTQtMTAtMDYgMjE6NDY6MjQgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgbGF0ZW5jeSBxdWVyeSBoYW5kbGluZwoKMjAxNC0xMC0wNiAxODoyMzowMyArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgYSB0aW1lb3V0IHByb3BlcnR5IGRldGVybWluaW5nIGJ1ZmZlciB3YWl0IHRpbWUKCSAgRGV0ZXJtaW5lcyB0aGUgYW1vdW50IG9mIHRpbWUgdGhhdCBhIHBhZCB3aWxsIHdhaXQgZm9yIGEgYnVmZmVyIGJlZm9yZQoJICBiZWluZyBtYXJrZWQgdW5yZXNwb25zaXZlLgoJICBOZXR3b3JrIHNvdXJjZXMgbWF5IGZhaWwgdG8gcHJvZHVjZSBidWZmZXJzIGZvciBhbiBleHRlbmRlZCBwZXJpb2Qgb2YgdGltZSwKCSAgY3VycmVudGx5IGNhdXNpbmcgdGhlIHBpcGVsaW5lIHRvIHN0YWxsIHBvc3NpYmx5IGluZGVmaW5pdGVseSwgd2FpdGluZyBmb3IKCSAgdGhlc2UgYnVmZmVycyB0byBhcHBlYXIuCgkgIFN1YmNsYXNzZXMgc2hvdWxkIHJlbmRlciB1bnJlc3BvbnNpdmUgcGFkcyB3aXRoIGVpdGhlciBzaWxlbmNlIChhdWRpbyksIHRoZQoJICBsYXN0ICh2aWRlbykgZnJhbWUgb3Igd2hhdCBtYWtlcyB0aGUgbW9zdCBzZW5zZSBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KCjIwMTQtMDktMTcgMTY6NDg6MDIgKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVwbGFjZSBHTWFpbkNvbnRleHQgd2l0aCBHQXN5bmNRdWV1ZSAodjIpCgkgIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBrZXB0IGFjY3VtdWxhdGluZyBHU291cmNlcywKCSAgc2xvd2luZyBkb3duIHRoZSBpdGVyYXRpb24gYW5kIGxlYWtpbmcgbWVtb3J5LgoJICBJbnN0ZWFkIG9mIHRyeWluZyB0byBmaXggdGhlIG1haW4gY29udGV4dCBmbHVzaGluZywgcmVwbGFjZQoJICBpdCB3aXRoIGEgR0FzeW5jUXVldWUgd2hpY2ggaXMgc2ltcGxlIHRvIGZsdXNoIGFuZCBoYXMKCSAgbGVzcyBvdmVyaGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjc4MgoKMjAxNC0wOC0wNSAxNTozNjozMCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFNldCBzZXFudW0gb25seSB3aGVuIHNlZ21lbnRzIGFyZSByZWNlaXZlZC4KCjIwMTQtMDgtMDIgMTg6MjU6MDEgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBZGQgYSBzdHJlYW1pbmcgbG9jayBzbyB0byBzZWN1cmUgZmx1c2ggc3RhcnQgYWN0aW9uCgkgIFdpdGhvdXQgYSBsb2NrIHRoYXQgaXMgdGFrZW4gaW4gRkxVU0hfU1RBUlQgd2UgaGFkIGEgcmFyZSByYWNlIHdoZXJlIHdlCgkgIGVuZCB1cCBhZ2dyZWdhdGluZyBhIGJ1ZmZlciB0aGF0IHdhcyBiZWZvcmUgdGhlIHdob2xlIEZMVVNIX1NUQVJUL1NUT1AKCSAgZGFuY2UuIFRoYXQgY291bGQgbGVhZCB0byB2ZXJ5IHdyb25nIGJlaGF2aW91ciBpbiBzdWJjbGFzc2VzLgoKMjAxNC0wNy0xOCAxMzo1ODo1NSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFF1ZXJ5IHNlZWtpbmcgd2hlbiBhIHNlZWsgZmFpbGVkIHRvIHNlZSBpZiBpdCB3YXMgZXhwZWN0ZWQKCSAgQW5kIGRvIG5vdCB3b3JyeSBpZiBzZWVraW5nIGZhaWxlZCBvbiBhIHN0cmVhbSB0aGF0IGlzIG5vdCBzZWVrYWJsZQoKMjAxNC0wNy0xOCAwMTo0MToyNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHNldCBmdXR1cmUgc2VxbnVtIGJlZm9yZSBwcm9wYWdhdGluZyB0aGUgc2VlayBldmVudC4KCSAgU28gdGhlIHNlcW51bSBpcyBwcm9wZXJseSBzZXQgZm9yIHRoZSBmb2xsb3dpbmcgZXZlbnRzLgoKMjAxNC0wNy0wOCAxNjoxNjo1NSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFN0b3JlIHNlZ21lbnQgd2hlbiBzZWVrZWQgaW4gUkVBRFkgZm9yIGxhdGVyIHVzZQoKMjAxNC0xMC0wNiAxMDoxMToyMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVbnJlZiB0aGUgdGFnbGlzdCBpbiBHc3RBZ2dyZWdhdG9yOjpzdG9wKCkKCjIwMTQtMTAtMDMgMTI6MzQ6MTUgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBUYWtlIGxvY2sgdG8gZW5zdXJlIHNldF9jYXBzIGlzIG5vdCBjYWxsZWQgY29uY3VyZW50bHkKCSAgQXZvaWRpbmcgdG8gYmUgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIHdoZXJlIHdlIGRvIG5vdCBoYXZlCgkgIGFjdHVhbCBuZWdvdGlhdGUgY2FwcyBzZXQgYXMgc3JjY2FwcyBhbmQgbGVhZGluZyB0byBwb2ludCB3aGVyZSB3ZQoJICB0cnkgdG8gdW5yZWYgLT5zcmNjYXBzIHdoZW4gdGhleSBoYXZlIGFscmVhZHkgYmVlbiBzZXQgdG8gTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTA0MgoKMjAxNC0wOC0xMSAyMzozODo0MCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPHlzdHJlZXQwMEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZml4IHVwIGRvYyBjb21tZW50IGZvciBzZXRfc3JjX2NhcHMKCSAgSXQgZG9lcyBub3Qgb2NjdXIgJ2xhdGVyJyBhbnltb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI2NjIKCjIwMTQtMDgtMDcgMTk6NTQ6MzYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDx5c3RyZWV0MDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIHZpZGVvYWdncmVnYXRvcjogcHVzaCB0aGUgY2FwcyBldmVudCBhcyBzb29uIGFzIHdlIHJlY2VpdmUgaXQKCSAgQWxvbmcgd2l0aCB0aGUgcmVxdWlyZWQgbWFuZGF0b3J5IGRlcGVuZGVudCBldmVudHMuCgkgIFNvbWUgZWxlbWVudHMgbmVlZCB0byBwZXJmb3JtIGFuIGFsbG9jYXRpb24gcXVlcnkgaW5zaWRlCgkgIDo6bmVnb3RpYXRlZF9jYXBzKCkuICBXaXRob3V0IHRoZSBjYXBzIGV2ZW50IGJlaW5nIHNlbnQgcHJpb3IsCgkgIGRvd25zdHJlYW0gZWxlbWVudHMgd2lsbCBiZSB1bmFibGUgdG8gYW5zd2VyIGFuZCB3aWxsIHJldHVybgoJICBhbiBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjY2MgoKMjAxNC0wNy0xNiAxNjo1NzozNSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlc2V0IGZsb3dfcmV0dXJuICphZnRlciogc3RvcHBpbmcgdGhlIHNyY3BhZCB0YXNrLgoJICBPdGhlcndpc2UgaXQgbWlnaHQgYmUgc2V0IGluIGFuIGFscmVhZHkgcnVubmluZyBhZ2dyZWdhdGUgZnVuY3Rpb24uCgoyMDE0LTA3LTEwIDEzOjE4OjIxICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRmx1c2ggc2lua3BhZHMgd2hlbiBzdG9wcGluZwoJICBBbGwgdmFsdWVzIGFyZSBtZWFuaW5nbGVzcyBpbiB0aGF0IGNhc2UsIHNvIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhhdAoJICB3ZSBjbGVhbiBldmVyeXRoaW5nCgoyMDE0LTA3LTEwIDEzOjE1OjU1ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG8gbm90IGZvcmdldCB0byByZXNldCB0aGUgZmxvdyByZXR1cm4gd2hlbiBzdG9waW5nCgkgIFNldHRpbmcgaXQgdG8gRkxVU0hJTkcgd2hlbiB0aGUgZWxlbWVudCBpcyBub3Qgc3RhcnRlZCwgYW5kIHRvIE9LCgkgIHdoZW4gaXQgc3RhcnRzLgoKMjAxNC0wNy0wOCAxNjo0ODowOCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEhhbmRsZSBldmVudCBzZXFudW0KCjIwMTQtMDctMDYgMTY6MTc6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZml4IGxvY2tpbmcKCSAgV2Ugd291bGQgdW5sb2NrIGEgbXV0ZXggd2UgbmV2ZXIgbG9ja2VkIG9uIFNFR01FTlQKCSAgZXZlbnRzLgoKMjAxNC0wNi0zMCAxMjoyMjowNyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBdm9pZCBkZXN0cm95aW5nIHNvdXJjZXMgd2UgZG8gbm90IG93bgoJICArIFVucmVmIHRoZSBtYWluY29udGV4dCBpbiBhIG5ldyBkaXNwb3NlIGZ1bmN0aW9uCgkgICsgTWFrZSBzdXJlIHRvIHJlbW92ZSBhbGwgc291cmNlcyBvbiBkaXNwb3NlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI0NDUKCjIwMTQtMDYtMjggMTE6MjA6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBhZ2dyZWdhdG9yOiBmaXggdmFyaW91cyBsZWFrcyBpbiB0aGUgdGVzdHMKCjIwMTQtMDYtMjggMDk6MzQ6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFsd2F5cyBzdG9yZSBvciB1bnJlZiB0aGUgYnVmZmVyIG9uIHRoZSBfY2hhaW4gZnVuY3Rpb24KCSAgT3RoZXJ3aXNlIGl0IGxlYWtzLCBhbmQgaXQgaXMgdmVyeSBjb21tb24gdG8gZ28gdG8gZmx1c2hpbmcgd2hlbiB0aGUKCSAgcGlwZWxpbmUgaXMgc3RvcHBpbmcsIGxlYWtpbmcgYSBidWZmZXIuCgoyMDE0LTA2LTI4IDA5OjMyOjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhbHdheXMgdW5yZWYgdGhlIGJ1ZmZlciBvbiBfZmluaXNoIGZ1bmN0aW9uCgkgIE90aGVyd2lzZSB0aGUgdXNlciBkb2Vzbid0IGtub3cgaWYgaXQgd2FzIHVucmVmJ2Qgb3Igbm90CgoyMDE0LTA2LTI4IDA5OjMxOjU1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgZGlzcG9zZS9maW5hbGl6ZSBmdW5jdGlvbnMKCSAgQWRkIGZ1bmN0aW9ucyB0byBiZSBhYmxlIHRvIGNsZWFudXAgdGhlIG11dGV4L2NvbmQgYW5kIHBlbmRpbmcgYnVmZmVycwoJICBvbiB0aGUgYWdncmVnYXRvciBhbmQgb24gaXRzIHBhZAoKMjAxNC0wNi0yNiAxMDo1MzoxNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPHlzdHJlZXQwMEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcGx1ZyBhIG1lbW9yeSBsZWFrIG9mIHRoZSBzcmNjYXBzCgoyMDE0LTA2LTIxIDE2OjUxOjAxICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgbGliczpiYXNlOiBQcm9wZXJseSBkZWNsYXJlIEFQSXMgYXMgVU5TVEFCTEUKCjIwMTQtMDYtMjEgMTM6NDU6MTMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggcmVxdWVzdGVkIHBhZCBuYW1lCgoyMDE0LTA1LTIyIDE5OjQ0OjM3ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBZGQgbmV3IEdzdEFnZ3JlZ2F0b3IgYmFzZSBjbGFzcwoJICBUaGlzIGJhc2UgY2xhc3MgaGFzIGJlZW4gYWRkZWQgdG8gYSBuZXdseSBjcmVhdGVkIGxpYmdzdGJhZGJhc2UgbGlicmFyeQoJICBDby1BdXRob3JlZCBieTogTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxOTE3CgoyMDE3LTEyLTAyIDEyOjAyOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGFkZCB0ZXN0IGZvciBwb3N0LWdzdF9pbml0KCkgY2F0ZWdvcnkgcmVnaXN0cmF0aW9uIHBlcmYKCSAgV2hlbiByZWdpc3RlcmluZyBjYXRlZ29yaWVzIGFmdGVyIGdzdF9pbml0KCkgd2Ugd291bGQgcmUtY2hlY2sgKmFsbCoKCSAgY2F0ZWdvcmllcyBhZ2FpbnN0IHRoZSBleGlzdGluZyBHU1RfREVCVUcgcGF0dGVybnMgYWdhaW4sIHdoZXJlYXMKCSAgaXQncyBlbm91Z2ggdG8ganVzdCBjaGVjayB0aGUgbmV3IGNhdGVnb3J5LiBNb3Jlb3Zlciwgd2Ugd291bGQgcGFyc2UKCSAgdGhlIEdTVF9ERUJVRyBwYXR0ZXJuIHN0cmluZyBhZ2FpbiBhbmQgcmUtYWRkIHRoYXQgdG8gdGhlIGV4aXN0aW5nCgkgIHBhdHRlcm4gbGlzdCBmb3IgZXZlcnkgbmV3bHktcmVnaXN0ZXJlZCBkZWJ1ZyBjYXRlZ29yeSwgYW5kIHRoZW4KCSAgY2hlY2sgdGhhdCBhZ2FpbnN0IGFsbCBjYXRlZ29yaWVzIG9mIGNvdXJzZS4gVGhpcyBtYWRlIHJlZ2lzdGVyaW5nCgkgIGNhdGVnb3JpZXMgYWZ0ZXIgZ3N0X2luaXQoKSB2ZXJ5IHZlcnkgc2xvdy4KCjIwMTctMTItMDIgMTI6Mjk6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbHdheXMgY2hlY2sgbWF0Y2ggcGF0dGVybnMgZm9yIG5ldyBkZWJ1ZyBjYXRlZ29yaWVzCgkgIE5vdCBvbmx5IGlmIGEgbWF0Y2ggcGF0dGVybiB3YXMgc2V0IG9yaWdpbmFsbHkgdmlhIEdTVF9ERUJVRy4KCSAgUGF0dGVybnMgbWlnaHQgYmUgc2V0IHByb2dyYW1tYXRpY2FsbHkgYXMgd2VsbCBhZnRlciBhbGwuCgoyMDE3LTEyLTAyIDEyOjIyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IHBlcmZvcm1hbmNlIGlzc3VlIHdpdGggcmVnaXN0ZXJpbmcgY2F0ZWdvcmllcyBhZnRlciBnc3RfaW5pdCgpCgkgIFdoZW4gcmVnaXN0ZXJpbmcgYSBuZXcgZGVidWcgY2F0ZWdvcnkgYWZ0ZXIgZ3N0X2luaXQoKSwgc2ltcGx5IGNoZWNrCgkgIHRoZSBleGlzdGluZyBwYXR0ZXJucyBhZ2FpbnN0IHRoYXQgbmV3IGNhdGVnb3J5LgoJICBObyBuZWVkIHRvIGl0ZXJhdGUgb3ZlciBhbGwgY2F0ZWdvcmllcyBhbmQgcmVjaGVjayB0aGVtIGFsbCBhZ2FpbnN0CgkgIHRoZSBleGlzdGluZyBwYXR0ZXJucy4KCSAgQWxzbywgbm8gbmVlZCB0byByZS1wYXJzZSB0aGUgZXhpc3RpbmcgcGF0dGVybiBzdHJpbmcgc2V0IHZpYSBHU1RfREVCVUcKCSAgYW5kIGFkZCB0aGUgc2FtZSBzZXQgb2YgbWF0Y2ggcGF0dGVybnMgYWxsIG92ZXIgYWdhaW4gdG8gdGhlIGV4aXN0aW5nCgkgIGxpc3Qgb2YgbWF0Y2ggcGF0dGVybnMgZXZlcnkgdGltZSB3ZSByZWdpc3RlciBhIG5ldyBkZWJ1ZyBjYXRlZ29yeS4KCSAgQ29tYmluZWQgd2l0aCBpdGVyYXRpbmcgYWxsIGRlYnVnIGNhdGVnb3JpZXMgb24gYSBjaGFuZ2UgdGhpcyB3b3VsZAoJICBtYWtlIGFkZGluZyBkZWJ1ZyBjYXRlZ29yaWVzIGFmdGVyIGdzdF9pbml0KCkgdmVyeSB2ZXJ5IHZlcnkgc2xvdy4KCjIwMTctMTItMDEgMTM6MzM6NDggLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luLXNjYW5uZXI6IE1lYXN1cmUgc3RyaW5nIGxlbmd0aCBpbiBieXRlcwoJICBnX3N0cm5kdXAoKSB3YW50cyBhIG51bWJlciBvZiBieXRlcyB0byBjb3B5LCBzbyB1c2Ugc3RybGVuIGludGVhZCBvZgoJICBVVEYtOCBzdHJsZW4gZnVuY3Rpb24uCgoyMDE3LTExLTMwIDE3OjQ5OjEwICswMTAwICBNaWNoYWVsIFRyZXR0ZXIgPG0udHJldHRlckBwZW5ndXRyb25peC5kZT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogZG8gbm90IHJlcXVpcmUgYSBuYW1lIHRvIGNyZWF0ZSBhIGNsb2NrCgkgIFRoZSBnc3RfcHRwX2Nsb2NrX25ldygpIGRvZXMgbm90IGFjdHVhbGx5IHJlcXVpcmUgYSBuYW1lLiBIb3dldmVyLCBmb3IKCSAgZXhhbXBsZSB0aGUgcnRwaml0dGVyYnVmZmVyIG1heSBjcmVhdGUgYSBjbG9jayB3aXRob3V0IGEgbmFtZSwgZmFpbCwgYW5kCgkgIGZhbGwgYmFjayB0byBub3QgdXNpbmcgdGhlIFBUUCBjbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTAzNAoKMjAxNy0xMS0yOCAyMzozNzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZml4IHJlYWRhYmxlIGZsYWcgcHJpbnRpbmcgZm9yIHBhZCBwcm9wZXJ0aWVzCgoyMDE3LTExLTI3IDIwOjA5OjQyICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNmNGFhOTYgdG8gZThjN2E3MQoKMjAxNy0xMS0yNiAxMzozMToyOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBSZXZlcnQgInByZXNldDogRG8gbm90IHNhdmUgZGVwcmVjYXRlZCBwcm9wZXJ0aWVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgxZTEwZjYxMjMxYWQ1NmNhNGFhMDcyNzg5OTNiODdjNmVjMGYwNTguCgkgIEEgbWlzdGFrZSBsZWFkIHRvIGNvbW1pdHRpbmcgaXQgdHdpY2UgaW4gYSB3ZWlyZCB3YXkuCgoyMDE3LTExLTAzIDEyOjIwOjQ3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBEbyBub3Qgc2F2ZSBkZXByZWNhdGVkIHByb3BlcnRpZXMKCSAgSXQgd2lsbCBnX3dhcm4gdXBvbiBkZXNlcmlhbGl6YXRpb24gYW5kIHdlIHNob3VsZCBub3QgdXNlCgkgIHRob3NlIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTg3MQoKMjAxNy0xMS0wOCAxMjo0Njo0NCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQXZvaWQgYXNzZXJ0aW9ucyB3aGVuIGdldHRpbmcgdGFnIG5pY2sgZnJvbSB1bnJlZ2lzdGVyIHRhZwoJICBXaXRoIHNlcmlhbGl6ZWQgR3N0RGlzY292ZXJlckluZm9zIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXNlCgkgIHRhZ3MgdGhhdCBoYXZlIG5vdCBiZWVuIHJlZ2lzdGVyZWQuCgoyMDE3LTExLTAzIDEyOjIzOjUwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogRG8gbm90IHNhdmUgZGVwcmVjYXRlZCBwcm9wZXJ0aWVzCgkgIEl0IHdpbGwgZ193YXJuIHVwb24gZGVzYXJpYWxpemF0aW9uIGFuZCB3ZSBzaG91bGQgbm90IHVzZQoJICB0aG9zZSBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk4NzEKCjIwMTctMTAtMTMgMDA6MjE6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyczogbG9nOiBubyBuZWVkIHRvIGxpbmsgdG8gb3VyIGludGVybmFsIHByaW50ZiBpbXBsZW1lbnRhdGlvbgoJICBUaGUgY2FsbCB0byBfX2dzdF92YXNwcmludGYoKSB3YXMgcmVtb3ZlZCBpbiBjb21taXQgMWEzZTIxOGI4LgoKMjAxNy0xMS0yNiAwMDoyMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZG9uJ3QgcHJpbnQgZWxlbWVudCBmbGFncyB3aGNoIGFyZSBhbHdheXMgJ25vbmUnCgkgIFdlIHByaW50IHRoZSBpbnRlcmVzdGluZyBmbGFncyBsaWtlIGNsb2NraW5nIGNhcGFiaWxpdGllcyBzZXBhcmF0ZWx5CgkgIGxhdGVyLCB0aGlzIGZ1bmN0aW9uIGp1c3QgYWx3YXlzIHByaW50cyAnbm9uZScsIHNvIHJlbW92ZSBpdC4KCjIwMTctMTEtMjUgMjM6NDM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBwcmludCBwYWQgcHJvcGVydGllcyB3aGVyZSB3ZSBrbm93IHRoZSBzdWJjbGFzcyB0eXBlCgoyMDE3LTExLTI1IDIyOjI3OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiByZWZhY3RvciB3YXkgaW5kZW50YXRpb24gaXMgZG9uZSBkdXJpbmcgcHJpbnRpbmcKCjIwMTctMTEtMjUgMTM6MDc6MTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBVc2UgZnJlZSBpbnN0ZWFkIG9mIGdfZnJlZQoJICBCZWNhdXNlCgoyMDE3LTExLTI1IDEyOjQ0OjExICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogRG9uJ3QgbGVhayBhcnJheSBvZiBzdHJpbmdzCgkgIFRoZSBhcnJheSBwcm92aWRlZCBieSBiYWNrdHJhY2Vfc3ltYm9scyBuZWVkcyB0byBiZSBmcmVlZC4KCjIwMTctMTEtMjQgMTI6MDg6MDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGNoZWNrL2J1ZmZlcjogUmVtb3ZlIHVzbGVzcyBtZW1jbXAgd2l0aCBlbXB0eSBzaXplCgkgIDEpIGNoZWNraW5nIG5vdGhpbmcgYWdhaW5zdCBub3RoaW5nIGlzIHBvaW50bGVzcwoJICAyKSBtZW1jbXAgbmVlZHMgdG8gYmUgcHJvdmlkZWQgbm9uLU5VTEwgYXJndW1lbnRzCgoyMDE3LTExLTI0IDEyOjA1OjI2ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBGaXggbGluZWFyIHJlZ3Jlc3Npb24gY29tcGFyaXNpb24KCSAgVGhlIGNoZWNrIGZvciBkcm9wcGluZyBwcmVjaXNpb24gd2FzIHdyb25nIHdoZW4gc3h4IGFuZCBzeXkgd2VyZSBuZWdhdGl2ZS4KCSAgaWYgdGhleSBhcmUgbmVnYXRpdmUgdGhlbiAiR19NQVhJTlQ2NCAtIHZhbCIgd291bGQgYWx3YXlzIG92ZXJmbG93CgkgIFRoZSBjaGVjayB3YXMgbWVhbnQgdG8gdXNlIEdfTUlOSU5UNjQgKGxpa2UgaW4gdGhlIGxvb3AgY29udGFpbmVkIGp1c3QKCSAgYWZ0ZXIpLgoKMjAxNy0xMS0yNCAxMzo1ODowMSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBhZGQgbWlzc2luZyBoYXJuZXNzIGZ1bmN0aW9uIHRvIHN5bWJvbCBleHBvcnQgbGlzdAoJICBGaXhlcyBpbiB1c2VyIGNvZGU6CgkgIHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdzdF9oYXJuZXNzX2FkZF9lbGVtZW50X3NpbmtfcGFkJwoJICBBbHNvIHJlb3JkZXIgaGFybmVzcyBmdW5jdGlvbiBsaXN0IHRvIGJlIHN0cmljdGx5IGluIGFscGhhYmV0aWNhbCBvcmRlciBhbmQKCSAgZG91YmxlIGNoZWNrIHRoZSBsaXN0IHdpdGg6CgkgIGF3ayAneyBpZiAoJDEgIX4gLyNkZWZpbmUvKSBpZiAoJDIgfiAvZ3N0X2hhcm5lc3NfLykgeyBwcmludCAkMiB9OyBpZiAoJDMgfiAvZ3N0X2hhcm5lc3NfLykgeyBwcmludCAkM30gfScgbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oIHwgc29ydAoKMjAxNy0xMS0yNCAxMzo0MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmludGYuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb21pc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJlYW0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0czogaW5jbHVkZSBjb25maWcuaCBhbmQgZG9uJ3QgaW5jbHVkZSB1bml4IGhlYWRlcnMKCSAgSW4gbWFueSBjYXNlcyB0aGUgdW5pc3RkLmggaW5jbHVkZXMgd2VyZW4ndCBhY3R1YWxseSBuZWVkZWQuCgkgIFByZXBhcmF0aW9uIGZvciBtYWtpbmcgdGVzdHMgd29yayBvbiBXaW5kb3dzIHdpdGggTVNWQy4KCjIwMTctMTEtMjQgMTM6MjE6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHRlc3RzOiBhZGQgbWlzc2luZyBsaWNlbnNlIGhlYWRlciB0byB0ZXN0X3RyYW5zZm9ybS5jCgoyMDE3LTExLTEwIDE2OjI2OjUwICswMTAwICBNaWtoYWlsIEZsdWRrb3YgPG1pc2hhQHBleGlwLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBnc3R0cmFjZXV0aWxzOiBhY3R1YWxseSBkaXNhYmxlIHRyYWNpbmcgc3lzdGVtIGhvb2tzIGlmIGNvbmZpZ3VyZWQKCSAgYC4vY29uZmlndXJlIC0tZGlzYWJsZS1nc3QtdHJhY2VyLWhvb2tzYCBkaWRuJ3QgZG8gYW55dGhpbmcsIGhvb2tzIHdlcmUKCSAgYWx3YXlzIGVuYWJsZWQgcmVnYXJkbGVzcyBvZiB0aGUgb3B0aW9uLiBJdCB3b3JrcyBjb3JyZWN0bHkgaW4gdGhlCgkgIE1lc29uIGJ1aWxkIHRob3VnaC4KCjIwMTctMTAtMjYgMTI6MDk6MDcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBhZGQgZ3N0X3V0aWxzX2R1bXBfYnVmZmVyKCkKCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgoyMDE3LTEwLTEwIDE1OjQ0OjUxICswMjAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJICBtZXNvbi5idWlsZDogdXNlIGpvaW5fcGF0aHMoKSBvbiBwcmVmaXgKCSAgU28gdGhhdCAiLyIgYXJlIGNvcnJlY3Qgb24gV2luZG93cyBhbmQgdGhlIHBhdGhzIGluCgkgIHRoZSAucGMgZmlsZXMgYXJlIGxpa2UgQzovc29tZS93aGVyZSBhbmQgbm90CgkgIEM6XHNvbWVcd2hlcmUuCgoyMDE3LTExLTI0IDA5OjQ5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBsaWJzOiBmaXggaW5kZW50YXRpb24KCjIwMTctMDgtMTggMTQ6MzA6MzIgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcGFkOiBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBhbHdheXMgc3VjY2VlZCBpZiBzYW1lIG1vZGUKCSAgQ2hlY2tpbmcgdGhhdCB0aGUgcGFkIGlzIGluIHRoZSBjb3JyZWN0IG1vZGUgYmVmb3JlIHRoZSBwYXJlbnQgaXMKCSAgY2hlY2tlZCBtYWtlcyB0aGUgY2FsbCBhbHdheXMgc3VjY2VlZCBpZiB0aGUgbW9kZSBpcyBvay4KCSAgVGhpcyBmaXhlcyBhIHJhY2Ugd2l0aCBnaG9zdHBhZCB3aGVyZSBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBjb3VsZAoJICB0cmlnZ2VyIGEgZ19jcml0aWNhbCgpIGlmIHRoZSBnaG9zdHBhZCBpcyB1bnBhcmVudGVkIHdoaWxlIHRoZQoJICBwcm94eXBhZCBpcyBkZWFjdGl2YXRpbmcsIGZvciBpbnN0YW5jZSBpZiB0aGUgZ2hvc3RwYWQgaXMgcmVsZWFzZWQuCgkgIE1vcmUgc3BlY2lmaWNhbGx5LCBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpJ3MKCSAgY2FsbCB0byBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSB3b3VsZCBmYWlsIGlmIGdob3N0cGFkIGRvZXNuJ3QgaGF2ZSBhCgkgIHBhcmVudC4gV2l0aCB0aGlzIHBhdGNoIGl0IHdpbGwgcmV0dXJuIHRydWUgb2YgbW9kZSBpcyBhbHJlYWR5CgkgIGNvcnJlY3QuCgoyMDE3LTAzLTMxIDE2OjM2OjA1ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSAgZ3N0YmFzZXRyYW5mb3JtOiByZXBsYWNlIEdTVF9CQVNFX1RSQU5TRk9STSB3aXRoIEdTVF9CQVNFX1RSQU5TRk9STV9DQVNUCgkgIFRvIGF2b2lkIGEgZ2xvYmFsIHR5cGUtbG9jayBvbiBjaGFpbiBldGMuCgoyMDE3LTExLTI0IDA5OjUzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZXR1cm4gVFJVRSBpZiB0YXJnZXQgcGFkIHdhcyBhbHJlYWR5IHNldAoJICBUaGUgc3RhdGUgaXMgYXMgaXQgc2hvdWxkIGJlLCBzbyBubyByZWFzb24gdG8gcmV0dXJuCgkgIEZBTFNFIHJlYWxseSwgZXZlcnl0aGluZydzIGdvb2QuCgoyMDE3LTExLTI0IDA5OjQwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhY2Nlc3MgaW50ZXJuYWwgcGFkIHdpdGggbG9jayBoZWxkCgoyMDE3LTAzLTMwIDA5OjE3OjA4ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggcmFjZS1jb25kaXRpb24gd2hpbGUgdGVhcmluZyBkb3duCgkgIEFuIHVwc3RyZWFtIHF1ZXJ5IHdpbGwgdGFrZSBhIHJlZiBvbiB0aGUgaW50ZXJuYWwgcHJveHlwYWQsIGFuZCBjYW4KCSAgaGVuY2UgZW5kIHVwIG93bmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhhdCBwYWQsIGNhdXNpbmcgYSBjcmFzaC4KCjIwMTMtMDMtMjMgMTM6NDQ6NTEgKzAxMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbi5zcG9yc2hlaW1AZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEFkZCB0ZXN0IHN1aXRlIHRpbWUgZWxhcHNlZCBvdXRwdXQKCjIwMTctMTEtMjMgMTU6Mjg6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBPbmx5IGNhbGN1bGF0ZSBsZXZlbCBpZiB3ZSBoYXZlIHZhbGlkIGxldmVscwoJICBEb2luZyBjYWxjdWxhdGlvbnMgd2l0aCBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSB3b3VsZCByZXN1bHQgaW4KCSAgY29tcGxldGVseSBib2d1cyBsZXZlbHMKCjIwMTctMTEtMjMgMTM6NTY6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFsbG9jYXRlIHNsaWdodGx5IGxhcmdlciB0aGFuIG5lZWRlZCB0YWJsZXMgYXQgc3RhcnR1cAoJICBJZiB3ZSBwcmUtYWxsb2NhdGUgb25seSAqZXhhY3RseSogYXMgbWFueSBub2RlcyBhcyB3ZSBuZWVkIGZvciB0aGUKCSAgY29yZSB0eXBlcywgd2UgYXJlIHByYWN0aWNhbGx5IGd1YXJhbnRlZWQgYSByZS1hbGxvYyB3aGVuIGV4dGVybmFsCgkgIGNvZGUgbGlrZSBHc3RWaWRlb1RpbWVDb2RlIG9yIEdzdEVuY29kaW5nUHJvZmlsZSByZWdpc3RlciB0aGVpcgoJICBvd24gR3N0VmFsdWUgdGhpbmdzLiBTbyBhbGxvY2F0ZSBhIGJpdCBtb3JlIHRoYW4gc3RyaWN0bHkgbmVlZGVkLgoKMjAxNy0xMS0wNiAyMToxMDo1NCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQgdGVtcGxhdGVzOiBBbGxvdyBzcGVjaWZ5aW5nIEdUeXBlCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk5ODYKCjIwMTctMTEtMjIgMTU6NTk6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBmb3IgbGF0ZXN0IHByb21pc2UgYXBpIGNoYW5nZXMKCjIwMTctMDQtMDMgMjI6MjA6NTEgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHByb21pc2UuYzoKCSogZ3N0L2dzdHByb21pc2UuaDoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm9taXNlLmM6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBhZGQgYSBwcm9taXNlIG9iamVjdAoJICBBbiBvYmplY3QgdGhhdCBjYW4gYmUgd2FpdGVkIG9uIGFuZCBhc2tlZCBmb3IgYXN5bmNocm9ub3VzIHZhbHVlcy4KCSAgSW4gbXVjaCB0aGUgc2FtZSB3YXkgYXMgcHJvbWlzZS9mdXR1cmVzIGluIGpzL2phdmEvZXRjCgkgIEEgY2FsbGJhY2sgY2FuIGJlIGluc3RhbGxlZCBmb3Igd2hlbiB0aGUgcHJvbWlzZSBjaGFuZ2VzIHN0YXRlLgoJICBPcmlnaW5hbCBpZGVhIGJ5CgkgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoJICBXaXRoIGNvbnRyaWJ1dGlvbnMgZnJvbQoJICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgkgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5ODQzCgoyMDE3LTExLTIwIDE3OjAxOjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBNYWtlIHN1cmUgd2UgdXNlIGFsaWduZWQgbWVtb3J5CgkgIFRoaXMgaXMgaW4gdGhlIHNhbWUgdmVpbiBhcyBmb3IgYWxsIG90aGVyIGZlYXR1cmVzLiBTb21lIHN5c3RlbXMKCSAgbWlnaHQgbm90IGFsbG93IHVuYWxpZ25lZCByZWFkLgoKMjAxNy0xMS0xNyAwMDoxNToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogc3RvcCBwcmludGluZyBlbGVtZW50IHN0YXRlX2NoYW5nZSBmdW5jdGlvbgoJICBUaGlzIGlzIHJlYWxseSBub3QgaW50ZXJlc3RpbmcgYXQgYWxsLCBub3Qgc3VyZSB3aHkgd2UgcHJpbnQgdGhpcy4KCjIwMTctMTEtMTcgMDA6MTQ6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGZpeCBkb3VibGUgZW1wdHkgbGluZSBhZnRlciBwYWQgdGVtcGxhdGVzCgoyMDE3LTExLTE2IDEwOjQ3OjQ2ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSAgZ3N0cGFkOiBNYWtlIHBhZCAoZGUpYWN0aXZhdGlvbiBhdG9taWMKCSAgVGhlIGZvbGxvd2luZyBjb3VsZCBoYXBwZW4gcHJldmlvdXNseToKCSAgKiBUMTogY2FsbHMgZ3N0X3BhZF9zZXRfYWN0aXZlKCkKCSAgKiBUMjogY3VycmVudGx5IChkZSlhY3RpdmF0aW5nIGl0CgkgICogVDE6IGdzdF9wYWRfc2V0X2FjdGl2ZSgpIHJldHVybnMsIGNhbGxlciBhc3N1bWVzIHRoYXQgdGhlIHBhZCBoYXMKCSAgY29tcGxldGVkIHRoZSByZXF1ZXN0ZWQgKGRlKWFjdGl2YXRpb24gLi4uIHdoZXJlYXMgaXQgaXMgbm90CgkgIHRoZSBjYXNlIHNpbmNlIHRoZSBhY3R1YWwgKGRlKWFjdGl2YXRpb24gaW4gVDIgbWlnaHQgc3RpbGwgYmUKCSAgZ29pbmcgb24uCgkgIFRvIGVuc3VyZSBhdG9taWNpdHkgb2YgcGFkIChkZSlhY3RpdmF0aW9uLCB3ZSB1c2UgYSBpbnRlcm5hbAoJICB2YXJpYWJsZSAoYW5kIGNvbmQpIHRvIGVuc3VyZSBvbmx5IG9uZSB0aHJlYWQgYXQgYSB0aW1lIGdvZXMgdGhyb3VnaAoJICB0aGUgYWN0dWFsIChkZSlhY3RpdmF0aW9uIGJsb2NrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTA0MzEKCjIwMTctMTEtMTYgMDg6MjY6MTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogTWFrZSBjYWxscyB0byBHc3RQYWRBY3RpdmF0ZUZ1bmN0aW9uIE1ULXNhZmUKCSAgY2hlY2tpbmcgd2hldGhlciB3ZSBhbHJlYWR5IHdlcmUgaW4gdGhlIHRhcmdldCBHc3RQYWRNb2RlIHdhcyBiZWluZwoJICBkb25lIHRvbyBlYXJseSBhbmQgdGhlcmUgd2FzIHRoZSByaXNrIHRoYXQgd2UgKndvdWxkKiBlbmQgdXAKCSAgKGRlKWFjdGl2YXRpbmcgYSBwYWQgbW9yZSB0aGFuIG9uY2UuCgkgIEluc3RlYWQsIHJlLWRvIHRoZSBjaGVjayBmb3IgcGFkIG1vZGUgd2hlbiBlbnRlcmluZyB0aGUgZmluYWwgcGFkCgkgIChkZSlhY3RpdmF0aW9uIGJsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwNDMxCgoyMDE3LTExLTEwIDEyOjA3OjI4IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWM6IE1vdmUgY29uZGl0aW9uIGNoZWNrIGluc2lkZSB0aGUgZ19yZXR1cm4KCSAgSXQncyBtb3N0bHkgYSBkZWJ1ZyBjaGVjayBhbmQgY3Jhc2ggYXZvaWRhbmNlLCBpdCdzIGJldHRlciB0bwoJICBrZWVwIGFsbCB0aGUgY29uZGl0aW9uIGluc2lkZSB0aGUgbWFjcm8uCgoyMDE3LTExLTEwIDEyOjAzOjAwIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWM6IEFkZCBtaXNzaW5nIHNpbmNlIGZvciBfc3BlY19hcnJheSgpCgoyMDE3LTExLTEwIDE0OjEwOjMxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBIYW5kbGUgc2luZ2xlLXBhZCB1c2UtY2FzZXMKCSAgV2hlbiBFT1MgcmVhY2hlcyBjb25jYXQsIGl0IHdpbGwgc3dpdGNoIHRvIHRoZSBuZXh0IGNhbmRpZGF0ZSBhcyBpdHMKCSAgYWN0aXZhdGUgcGFkLgoJICBUaGUgcHJvYmxlbSBhcmlzZXMgd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBzaW5rcGFkLCB0aGUgImFjdGl2ZSIgcGFkCgkgIGJlY29tZXMgTlVMTC4gVGhpcyByZXN1bHRzIGluIGNvbmNhdCBiZWNvbWluZyB1bnVzYWJsZSBhZnRlciBpdCByZWNlaXZlcwoJICBhICpzaW5nbGUqIEVPUyBvbiBpdHMgc2luZ2xlIHNpbmtwYWQuCgkgIElmIHdlIGRldGVjdCB0aGVyZSBpcyBhIHNpbmdsZSBzaW5rcGFkIGFuZCB0aGVyZSBpcyBubyBjdXJyZW50IGFjdGl2ZSBwYWQ6CgkgICogSWYgd2UgYXJlIHdhaXRpbmcgKGZyb20gc2VsZWN0ZWQgc2luayBldmVudC9idWZmZXIpLCBiZWNvbWUgdGhlIGN1cnJlbnQKCSAgYWN0aXZlIHBhZC4KCSAgKiBJZiB0aGVyZSBpcyBhIHNlZWsgcmVxdWVzdCwgc2VuZCBpdCB1cHN0cmVhbS4gV2UgZG9uJ3Qgc3dpdGNoIHRoZQoJICBhY3RpdmVfc2lua3BhZCBwcm9wZXJ0eSBhdCB0aGF0IHBvaW50IGluIHRpbWUsIHNpbmNlIHRoZSBzZWVrIGNvdWxkCgkgIGZhaWwuIElmIHRoZSBzZWVrIHN1Y2NlZWRzLCB0aGUgZm9sbG93aW5nIFNFR01FTlQgKG9yIFNUUkVBTV9TVEFSVCkKCSAgd2lsbCBjYXVzZSB0aGUgcGFkX3dhaXQoKSB0byBlbGVjdCB0aGF0IHBhZCBhcyB0aGUgbmV3IGFjdGl2ZSBvbmUuCgkgICogRmx1c2ggZXZlbnRzIGdldCBmb3J3YXJkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDE2NwoKMjAxNy0xMS0wOSAxNzozODoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogTWFrZSBRb1MgZm9yd2FyZCBNVC1zYWZlCgkgIEluIHRoZSBzYW1lIHdheSBpdCdzIGRvbmUgZm9yIG90aGVyIGV2ZW50IGZvcndhcmRpbmcuCgoyMDE3LTA0LTEzIDE2OjI4OjU0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIGxhdGVuY3kgdHJhY2VyOiBhZGQgdGltZXN0YW1wIHRvIHRyYWNlciByZWNvcmRzCgkgIEluY2x1ZGUgdGhlIHRpbWVzdGFtcCBvZiB0aGUgcmVjb3JkZWQgbG9nIGFzIGluIHRoZSAnc3RhdHMnIHRyYWNlci4KCSAgVGhpcyBjYW4gYmUgdXNlZnVsLCBmb3IgZXhhbXBsZSwgdG8gcGxvdCBhIGdyYXBoIHNob3dpbmcgdGhlIGxhdGVuY3kKCSAgb3ZlciB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMzE1CgoyMDE3LTExLTA0IDExOjQ1OjU0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogRml4IG92ZXJmbG93IHNvbWUgbW9yZQoJICBOb3RoaW5nIGd1YXJhbnRlZWQgdGhhdCBvZmYrc2l6ZSB3b3VsZG4ndCBleGNlZWQgYSAyKio2NCB2YWx1ZS4KCSAgSW5zdGVhZCB3ZSByZXZlcnNlIHRoZSBvcGVyYXRpb24gYW5kIHVzZSBhIHN1YnRyYWN0aW9uLgoKMjAxNy0xMS0wNCAxMDozNDoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IEZpeCBzaWduZWQgaW50ZWdlciBvdmVyZmxvdwoJICBNYWtlIHN1cmUgdGhlIHdob2xlIGNhbGN1bGF0aW9uIGlzIGRvbmUgd2l0aCA2NGJpdCB1bnNpZ25lZCB2YWx1ZXMKCSAgKFRvIGJlIHJlYWR5IGZvciBwZW9wbGUgd2FudCB0byB0eXBlZmluZCBleGFieXRlIGZpbGVzKS4KCjIwMTctMDgtMDEgMTE6MDY6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2ZvcmVhY2hfKnBhZCgpCgkgIEFkZCBjb252ZW5pZW5jZSBBUEkgdGhhdCBpdGVyYXRlcyBvdmVyIGFsbCBwYWRzLCBzaW5rIHBhZHMgb3IKCSAgc291cmNlIHBhZHMgYW5kIG1ha2VzIHN1cmUgdGhhdCB0aGUgZm9yZWFjaCBmdW5jdGlvbiBpcyBjYWxsZWQKCSAgZXhhY3RseSBvbmNlIGZvciBlYWNoIHBhZC4KCSAgVGhpcyBpcyBhIEtJU1MgaW1wbGVtZW50YXRpb24uIEl0IGRvZXNuJ3QgdXNlIEdzdEl0ZXJhdG9yIGFuZAoJICBkb2Vzbid0IHRyeSB0byBkbyBjbGV2ZXIgdGhpbmdzIGxpa2UgcmVzeW5jIGlmIHBhZHMgYXJlIGFkZGVkCgkgIG9yIHJlbW92ZWQgd2hpbGUgdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGluZy4gV2UgY2FuIHN0aWxsIGRvIHRoYXQKCSAgaW4gZnV0dXJlIGlmIHdlIHRoaW5rIGl0J3MgbmVlZGVkLCBidXQgaW4gcHJhY3RpY2UgaXQgd2lsbAoJICBsaWtlbHkgbWFrZSBhYnNvbHV0ZWx5IG5vIGRpZmZlcmVuY2Ugd2hhdHNvZXZlciwgc2luY2UgdGhlc2UKCSAgdGhpbmdzIHdpbGwgaGF2ZSB0byBiZSBoYW5kbGVkIHByb3Blcmx5IGVsc2V3aGVyZSBieSB0aGUgZWxlbWVudAoJICBhbnl3YXkgaWYgdGhleSdyZSBpbXBvcnRhbnQuCgkgIEFmdGVyIGFsbCwgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCBhIHBhZCBpcyBhZGRlZCBvciByZW1vdmVkCgkgIGp1c3QgYWZ0ZXIgdGhlIGl0ZXJhdG9yIGZpbmlzaGVzIGl0ZXJhdGluZywgYnV0IGJlZm9yZSB0aGUKCSAgZnVuY3Rpb24gcmV0dXJucy4KCSAgVGhpcyBpcyBhbHNvIGEgcmVwbGFjZW1lbnQgZm9yIGdzdF9hZ2dyZWdhdG9yX2l0ZXJhdGVfc2lua19wYWRzKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU2NzkKCjIwMTctMTAtMjcgMTQ6NTg6MjggKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIGdzdGxlYWtzLmM6IGFsd2F5cyBsb2cgbGVha3MgbGlzdGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5NTU2CgoyMDE3LTExLTAxIDEyOjI3OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJICBuZXQ6IEFkZCBuZXcgZmlsZSB0byB0aGUgbWVzb24uYnVpbGQKCjIwMTctMTEtMDEgMTE6MzE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9taXNjL25ldGNsb2NrLXJlcGxheS5jOgoJICBleGFtcGxlcy9uZXRjbG9jay1yZXBsYXk6IEZpeCBidWlsZAoKMjAxNy0xMC0zMCAxMDo0OTowNiArMDEwMCAgUm9iZXJ0IFJvc2VuZ3JlbiA8cm9iZXJ0ckBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHV0aWxzLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR1dGlscy5oOgoJICBuZXR1dGlsczogQWRkIHV0aWwgZm9yIHNldHRpbmcgc29ja2V0IERTQ1AKCSAgVXRpbCBmdW5jdGlvbiBmb3Igc2V0dGluZyBRb1MgRFNDUCBhZGRlZCwgdG8gcmVtb3ZlIGR1cGxpY2F0ZWQgY29kZSBpbgoJICBuZXRjbGllbnRjbG9jayBhbmQgbmV0dGltZXByb3ZpZGVyLiBGaXggYnVpbGQgZXJyb3IgaWYgbWlzc2luZyBJUF9UT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MzcKCjIwMTctMTAtMzEgMTE6Mzk6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ3N0dmFsdWU6IENhc3QgR1NUX01BS0VfRk9VUkNDIGFyZ3VtZW50cwoJICBUbyBtYWtlIGl0IGV4cGxpY2l0IHRoYXQgd2UgYXJlIGRlYWxpbmcgd2l0aCB1aW50MzIgdGFyZ2V0cwoJICBBdm9pZHMgZXJyb25lb3VzICBydW50aW1lIGVycm9yOiBsZWZ0IHNoaWZ0IG9mIG5lZ2F0aXZlIHZhbHVlIC0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk3MDAKCjIwMTctMTAtMTEgMTE6MDg6MTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIGxhdGVuY3ktdHJhY2VyOiBFeGNsdWRlIHN5bmNocm9uaXphdGlvbiB0aW1lCgkgIFRoZSBnb2FsIG9mIHRoaXMgdHJhY2VyIGlzIHRvIG1lYXN1cmUgdGhlIHByb2Nlc3NpbmcgbGF0ZW5jeSBiZXR3ZWVuIGEKCSAgc3JjIGFuZCBhIHNpbmsuIEluIHB1c2ggbW9kZSwgdGhlIHRpbWUgd2FzIHJlYWQgYWZ0ZXIgdGhlIGNoYWluIGZ1bmN0aW9uCgkgIGhhdmUgcmV0dXJuZWQuIEFzIHRoZSBhbW91bnQgb2YgdGltZSB3ZSB3YWl0IHRvIGdldCBzeW5jaGVkIGlzIHJldmVyc2UKCSAgdG8gdGhlIGFtb3VudCBvZiBsYXRlbmN5IHRoZSBzb3VyY2UgaW50cm9kdWNlZCwgdGhlIHJlc3VsdCB3YXMgcXVpdGUKCSAgc3VycHJpc2luZy4KCSAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgbGF0ZW5jeSBjYWxjdWxhdGlvbiBpbiB0aGUgcHJlLXB1c2ggaG9vay4gV2hlbgoJICB0aGVyZSBpcyBubyBwcm9jZXNzaW5nIGluIGEgYSBwaXBlbGluZSAoZS5nLiBmYWtlc3JjICEgZmFrZXNpbmspLCB0aGUKCSAgbGF0ZW5jeSB3aWxsIG5vdyBiZSAwIGFzIGl0J3Mgc3VwcG9zZWQgdG8uIEZvciBwdWxsIG1vZGUsIHRoZSBjb2RlIHdhcwoJICBhbHJlYWR5IGNvcnJlY3QuIFdoZW4gR3N0QmFzZVNpbmsgb3BlcmF0ZSBpbiBwdWxsIG1vZGUsIHRoZSBwcm9jZXNzaW5nCgkgIHRpbWUgaXMgZG9uZSBkdXJyaW5nIHRoZSBwdWxsLCBzbyBwdWxsLXBvc3QgaXMgdGhlIHJpZ2h0IGhvb2suIFRoZQoJICBzeW5jaHJvbml6YXRpb24gd2lsbCBoYXBwZW4gYWZ0ZXIgdGhlIHB1bGwgaGFzIGVuZGVkLiBOb3RlIHRoYXQKCSAgR3N0QmFzZVNpbmsgcmFyZWx5IG9wZXJhdGUgaW4gcHVsbCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NDMxCgoyMDE3LTEwLTI3IDA5OjUzOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBEb24ndCBhbGxvdyBpbnZhbGlkIFNFTEVDVF9TVFJFQU1TIGV2ZW50IGNyZWF0aW9uCgkgIEFza2luZyB0byBzZWxlY3Qgbm8gc3RyZWFtcyBtYWtlcyBubyBzZW5zZSBhbmQgY2FuIGNyZWF0ZSB2YXJpb3VzCgkgIGlzc3Vlcy4KCSAgSWYgb25lIGRvZXNuJ3Qgb25lIGFueSBzdHJlYW0gaXQgc2hvdWxkIGRlYWN0aXZhdGUgKG9yIG5vdCB1c2UpIHRoZQoJICBlbGVtZW50IGluIHF1ZXN0aW9uLgoKMjAxNy0xMC0yNSAxNzoxMDoxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggYnVpbGQgd2l0aCBvcHRpb24gcGFyc2luZyBkaXNhYmxlZAoKMjAxNy0xMC0yMCAxNzoyODoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHVwZGF0ZSB0aGUgdGVzdHMKCSAgQm95IHNjb3V0IHJ1bGUuIE1ha2UgaXMgYSBsaXR0bGUgbGVzcyBwYWluZnVsIHRvIGRlYnVnIHRoZSB0ZXN0cyBieSB1c2luZwoJICBmYWlsX3VubGVzc19lcXVhbHNfe3VpbnQ2NCxpbnQ2NCxmbG9hdH0gd2hlcmUgYXBwcm9wcmlhdGUuIElkZWFsbHkgdGhlIGxhcmdlCgkgIHRlc3RzIHdvdWxkIGJlIHNwbGl0dGVkIHRvIGF2b2lkIGd1ZXNzaW5nIGRhdGEgZGVwZW5kZW5jaWVzLgoKMjAxNy0xMC0yMCAxNjoxNTowMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGNsYXJpZnkgdGhlIHNlZ21lbnQgZG9jcyBmb3IgdGhlIGR1cmF0aW9uCgoyMDE3LTEwLTIwIDE2OjExOjQ0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgUmV2ZXJ0ICJzZWdtZW50OiBhbHNvIGludGlhbGl6ZSB0aGUgZHVyYXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjFiYWFhZTE3NTU3ZmE3NWE5YmNkOTQwYjk5NDU5NzcxNGJlMmY3NC4KCjIwMTctMTAtMjAgMTQ6MzA6NDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhbHNvIGludGlhbGl6ZSB0aGUgZHVyYXRpb24KCSAgSWYgc3RhcnQgYW5kIHN0b3AgYXJlIHNldCwgY2FsY3VsYXRlIHRoZSBkdXJhdGlvbiBhbmQgc2V0IGl0IHRvby4KCjIwMTctMTAtMjAgMTM6MDI6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgbW9yZSBkZXRhaWxzIGZvciB0eXBlZmluZCBhbmQgdHJhY2VyIGZlYXR1cmVzCgkgIFByaW50IGZ1bGwgZGV0YWlscyBmb3IgdHlwZWZpbmQgZmVhdHVyZXMuIFByaW50IHNvbWUgb2YgdGhlIGF2YWlsYWJsZSBmZWF0dXJlcwoJICBmb3IgdHJhY2VycyBhbmQgYWRkIHNvbWUgdG9kb3MgZm9yIHRoZSBvbmVzIHdlJ2QgbGlrZSB0byBzZWUuCgoyMDE3LTEwLTIwIDExOjE2OjQ2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHJlZHVjZSBjYXN0aW5nIGJhY2sgYW5kIGZvcnRoCgkgIFJlZmFjdG9yIHRoZSBwcmludF9lbGVtZW50X2luZm8oKSB0byB0YWtlIGEgR3N0UGx1Z2luRmVhdHVyZS4gUmVkdWNlcyB0aGUgbmVlZAoJICB0byBjYXN0IHRvIGFuZCBmcm9tIEdzdEVsZW1lbnRGYWN0b3J5LgoKMjAxNy0xMC0yMCAxMTowODoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBzaW1wbGlmeSB0aGUgY29kZSBmb3IgcHJpbnRpbmcgZmVhdHVyZSBpbmZvCgkgIFJlbmFtZSBwcmludF9lbGVtZW50X2ZlYXR1cmVzKCkgdG8gcHJpbnRfZmVhdHVyZV9pbmZvKCkgYW5kIG1vdmUgdGhlIGNvZGUgdGhhdAoJICBoYW5kbGVzIHRoZSBFbGVtZW50RmFjdG9yeSB0aGVyZS4gVGhpcyBzaW1wbGlmaWVzIHRoZSBjYWxsaW5nIGNvZGUgYW5kIGltcHJvdmVzCgkgIHJlYWRhYmlsaXR5LgoJICBBbHNvIGRvbid0IGxlYWsgdGhlIGZlYXR1cmVzIGZvciBvdGhlciBmYWN0b3JpZXMuCgoyMDE3LTA2LTAyIDE2OjI3OjI5ICswMjAwICBSb2JlcnQgUm9zZW5ncmVuIDxyb2JlcnRyQGF4aXMuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgcG9zc2liaWxpdHkgdG8gc2V0IFFvUyBEU0NQIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MzcKCjIwMTctMDYtMDEgMTU6NDg6MTYgKzAyMDAgIFJvYmVydCBSb3NlbmdyZW4gPHJvYmVydHJAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogQWRkIHBvc3NpYmlsaXR5IHRvIHNldCBRb1MgRFNDUCB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzM3CgoyMDE3LTEwLTE4IDAyOjMxOjEyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgc2VxbnVtOiBOZXZlciByZXR1cm4gYSBzZXFudW0gb2YgMCwgcmVzZXQgR1NUX1NFUU5VTV9JTlZBTElECgkgIFZhcmlvdXMgcGx1Z2lucyB1c2UgdGhlIHZhbHVlIG9mICcwJyBhcyBhbiBpbnZhbGlkIHNlcW51bSB2YWx1ZQoJICAocXRkZW11eCBmb3IgbWF0Y2hpbmcgZHVwbGljYXRlZCBzZWVrIGV2ZW50cywgZm9yIGV4YW1wbGUpLiBNYWtlCgkgIHRoYXQgYmVoYXZpb3VyIGV4cGxpY2l0LCBjcmVhdGUgYSBHU1RfU0VRTlVNX0lOVkFMSUQgdmFsdWUsCgkgIGFuZCBlbnN1cmUgZ3N0X3V0aWxfc2VxbnVtX25leHQgbmV2ZXIgcmV0dXJucyBpdC4KCjIwMTctMTAtMTYgMTY6MDY6MzcgKzA1MzAgIEFzaGlzaCBLdW1hciA8a3IuYXNoaXNoQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IEZpeCBmb3IgcG9zc2libGUgY3Jhc2hlcyBkdWUgdG8gbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODgzOAoKMjAxNy0xMC0xNSAxNTo1OToxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1lbnRpb24gdGhlIHF1ZXJ5IGZ1bmN0aW9uIGluIHRoZSBkb2NzIGFzIHdlbGwKCjIwMTctMTAtMDYgMjE6NTk6MDMgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBnc3RidWZmZXI6IGZpeCBtZXRhIHJlbW92YWwgaW4gZ3N0X2J1ZmZlcl9mb3JlYWNoX21ldGEKCSAgV2hlbiB1cGRhdGluZyB0aGUgbGlua2VkIGxpc3QsIHByZXYtPm5leHQgPSBuZXh0IGlzIGNvcnJlY3QKCSAgaWYgcHJldiBpcyBhY3R1YWxseSB1cGRhdGVkIGFmdGVyIGJlaW5nIHNldCB0byB0aGUgaGVhZAoJICBvZiB0aGUgbGlzdCBhdCB0aGUgc3RhcnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg2MTcKCjIwMTctMTAtMTAgMTU6NTM6MzggKzAyMDAgIGZlbmdhbGluIDxmZW5nYWxpbkBmcmVlLmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBGaXggdmVyc2lvbiBmb3IgcmVmIGFuZCB1bnJlZiBmdW5jdGlvbnMKCSAgVGhlIGZ1bmN0aW9ucyB3ZXJlIGludHJvZHVjZWQgaW4gdmVyc2lvbiAxLjEyLjEsIEdzdEZsb3dDb21iaW5lciB3YXMKCSAgaW50cm9kdWNlZCBpbiAxLjQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg3NzgKCjIwMTctMTAtMDUgMTM6MzU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbmV3IGdzdF9idWZmZXJfbGlzdF9jYWxjdWxhdGVfc2l6ZSgpIHV0aWxpdHkgZnVuY3Rpb24KCjIwMTctMTAtMDUgMTA6MjQ6MjQgKzA1MzAgIEFzaGlzaCBLdW1hciA8a3IuYXNoaXNoQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkgIGRldmljZS1wcm92aWRlcjogZ3N0X2RldmljZV9wcm92aWRlcl91bmhpZGVfcHJvdmlkZXIoKSBhbHdheXMgZmFpbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUyMAoKMjAxNy0xMC0wNCAxNDoxNjo0NiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogcmVtb3ZlIHZzX21vZHVsZV9kZWZzCgkgIFRoZSBHU1RfRVhQT1JUIHNob3VsZCBoYW5kbGUgaXQuCgoyMDE3LTEwLTAzIDEzOjU0OjI1IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIFVzZSBwcm9wZXIgR3RrRG9jIG5vdGF0aW9uIGZvciBOVUxML0ZBTFNFL1RSVUUKCjIwMTctMTAtMDIgMTc6NTk6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBpdGVyYXRlX3NvcnRlZDogRW5zdXJlIHNvdXJjZXMgYXJlIGFsd2F5cyByZXR1cm5lZCBsYXN0CgkgIEZvciBsaW5rZWQgZWxlbWVudHMsIHRoZSByZXN1bHRpbmcgZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCgpIHdpbGwKCSAgcHJvcGVybHkgcmV0dXJuIGVsZW1lbnRzIGZyb20gc2luayB0byBzb3VyY2VzLgoJICBJZiB3ZSBoYXZlIHNvbWUgZWxlbWVudHMgdGhhdCBhcmUgbm90IGxpbmtlZCwgd2UgKnN0aWxsKiB3YW50IHRvCgkgIGVuc3VyZSB0aGF0IHdlIHJldHVybjoKCSAgKiBJbiBwcmlvcml0eSBhbnkgc2lua3MKCSAgKiBMYXN0IG9mIGFsbCBhbnkgc291cmNlcwoJICAqIEFuZCBpbiBiZXR3ZWVuIGFueSBlbGVtZW50IHdoaWNoIGlzIG5laXRoZXIgc291cmNlIG5vciBzaW5rCgkgIEZvciB0aGlzIHRvIHdvcmssIHdoZW4gbG9va2luZyBmb3IgdGhlIG5leHQgY2FuZGlkYXRlIGVsZW1lbnQsCgkgIG5vdCBvbmx5IGNoZWNrIHRoZSBkZWdyZWUgb3JkZXIsIGJ1dCBpZiB0aGVyZSBhcmUgdHdvIGNhbmRpZGF0ZXMKCSAgd2l0aCB0aGUgc2FtZSBkZWdyZWUgb3JkZXIsIHByZWZlciB0aGUgbm9uLXNvdXJjZSBvbmUuCgkgIEFtb25nc3Qgb3RoZXIgdGhpbmdzLCB0aGlzIGZpeGVzIHRoZSBjYXNlIHdoZXJlIHdlIGFjdGl2YXRpbmcgYQoJICBiaW4gY29udGFpbmluZyB1bmxpbmtlZCBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cy4gV2l0aG91dCB0aGlzCgkgIHdlIGNvdWxkIGVuZCB1cCBhY3RpdmF0aW5nIHNvdXJjZXMgKHdoaWNoIG1pZ2h0IHN0YXJ0IGFkZGluZyBwYWRzCgkgIHRvIGJlIGxpbmtlZCkgYmVmb3JlIG90aGVyICh0byB3aGljaCB0aG9zZSBuZXcgc291cmNlIGVsZW1lbnQgcGFkcwoJICBtaWdodCBiZSBsaW5rZWQpIGFyZSBub3QgYWN0aXZhdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg0MzQKCjIwMTctMTAtMDIgMTQ6MTE6MTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWUtdGVzdDogVGVzdCBhIHJlYWwgdXNlIGNhc2UKCSAgVGhlIHJlYWwgdXNlIGNhc2UgaXMgd2hlbiBkb3duc3RyZWFtIGRpZG4ndCBzZXQgYSBwb29sIG9yCgkgIGFsbG9jYXRpb24gcGFyYW1zLCBpbiB3aGljaCBjYXNlIHdlIGV4cGVjdCB0aGUgdGVlIHRvIG5vdAoJICBjcmVhdGUgYSBwb29sIG9yIHBhcmFtIGZyb20gdGhpbiBhaXIuIERvd3N0cmVhbSBzZXR0aW5nCgkgIGFuIHBvb2wgd2l0aCBzaXplPTAgd2FzIGluIGZhY3QgdGVzdGluZyBhIGRvd25zdHJlYW0gZWxlbWVudAoJICBidWcuIFRoZSBmYWN0IHdlIGhhbmRsZSB0aGF0IGlzIGFjY2lkZW50YWwuCgoyMDE3LTEwLTAyIDE2OjI2OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogZG9uJ3QgY3JlYXRlIGEgcG9vbCBpZiBub25lIGlzIG5lZWRlZAoJICBJZiB0aGUgYWdncmVnYXRlZCBzaXplIGlzIDAgYW5kIHdlIGNyZWF0ZSBhIHBvb2wsIHRoZSBwb29sIHdvdWxkIHByb3ZpZGUKCSAgYnVmZmVycyB3aXRoIG5vIG1lbW9yeSBhc3NpZ25lZC4gSGFuZGxlIHRoYXQgY2FzZSBhbmQgc2tpcCB0aGUgcG9vbC4KCSAgVGhpcyB3YXMgdGhlIGJlaGF2aW91ciBiZWZvcmUgY2Y4MDNlYTlmNGUzZmRlOTJjMWRhODZlY2M0NzQ0NDAzNWY3YzBhNy4KCSAgQWRkIGEgdGVzdCBmb3IgdGhpcyBzY2VuYXJpby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0xMC0wMiAxMzozNTo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogUmUtZW5hYmxlZCBhbGxvYyBxdWVyeSArIGFsbG93LW5vdC1saW5rZWQgdGVzdAoJICBJbiB0aGUgdW5pdCB0ZXN0IHJlZmFjdG9yaW5nLCB0aGUgdW5saW5rZWQgcGFkIHJlcXVpcmVkIHRvIHRlc3QKCSAgdGhlIGRpZmZlcmVudCBiZWhhdmlvdXIgaW5kdWNlZCBieSAiYWxsb3ctbm90LWxpbmtlZCIgcHJvcGVydHkKCSAgd2FzIHJlbW92ZWQuCgkgIENvbW1pdCBlMzY0ZDc5NDRlY2JhYjg2ZGVhNzNjMGVlM2U2MzllNzY2OTM4ZDM2CgkgIE1vdmUgYWxsIHRoZSBjb2RlIGZvciB0aGlzIHRlc3QgaW4gdGhlIHByb3BlciBmdW5jdGlvbiwgYW5kIHJlLWFkZAoJICB0aGUgbWlzc2luZyB1bmxpbmtlZCBwYWQuIFRoaXMgbWFrZXMgdGhlIHRlc3QgdXNlZnVsIGFnYWluLgoKMjAxNy0xMC0wMiAxNjoyNTowMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IHNwbGl0IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHRlc3QKCSAgU3BsaXQgdGhlIGxhcmdlIGFsbG9jYXRpb25fcXVlcnkgdGVzdCBpbnRvIHNlcGVyYXRlIHRlc3RzLiBBZGQgYSBzZXR1cCBoZWxwZXIKCSAgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIEZpeCB0aGUgb3JpZ2luYWwgdGVzdCB0aGF0IHVzZWQgZmFpbF91bmxlc3MgaW5zdGVhZAoJICBvZiBja19hc3NlcnRfaW50X2VxIGFuZCBoYWQgaXQgYWNjaWRlbnRpYWxseSB3b3JraW5nLgoKMjAxNy0xMC0wMiAxNjoyMjowMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgYSB0b2RvIGNvbW1lbnQKCSAgUHJpbnRpbmcgTlVMTCBpcyBjb25mdXNpbmcgd2hlbiB0aGUgdHlwZSBpcyBlLmcuIGEgR0FycmF5IHRoYXQgaXMgbm90IGVtcHR5LgoKMjAxNy0xMC0wMiAxMzoxNDoyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZG9jIGNvbnNpc3RlbmN5CgkgIE1lbnRpb24gdGhhdCBpdCBpcyB0aGUgJ2J1ZmZlciBzaXplJywgbGlrZSB3ZSBkbyBlbHNld2hlcmUuCgoyMDE3LTA5LTI4IDEwOjE3OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmaWxlCgoyMDE3LTA5LTI3IDIwOjI5OjA2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3Q6IE1vZGlmeSBiZWhhdmlvdXIgb2YgZ3N0X2dldF9tYWluX2V4ZWN1dGFibGVfcGF0aAoJICBUbyBhY3R1YWxseSByZXR1cm4gdGhlIHBhdGggb2YgdGhlIGV4ZWN1dGFibGUsIG5vdCBpdHMKCSAgZGlyZWN0b3J5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjU2CgoyMDE3LTA5LTI2IDIxOjUxOjUzICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBUEk6IGdzdF9nZXRfbWFpbl9leGVjdXRhYmxlX3BhdGgoKQoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgcGx1Z2lucyB0aGF0IG5lZWQgdG8gaW5zcGVjdCB0aGUKCSAgZm9sZGVyIG9mIHRoZSBtYWluIGV4ZWN1dGFibGUgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZQoJICBzZXQgb2YgZmVhdHVyZXMgdGhleSB3aWxsIGV4cG9zZSwgZm9yIGV4YW1wbGU6CgkgIGh0dHBzOi8vZ2l0aHViLmNvbS9jZW50cmljdWxhci9nc3RyZWFtZXItdnN0MwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjE0CgoyMDE3LTA5LTI3IDEzOjA3OjI1ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBEbyBub3QgdHJ5IHRvIGRldGVybWluZSBleGVjdXRhYmxlIHBhdGggb24gaU9TLgoJICBUaGUgbWV0aG9kIHVzZWQgcmVsaWVzIG9uICJsaWJwcm9jLmgiLCB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZQoJICBvbiBPU1guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyMzQKCjIwMTctMDktMjcgMTM6MDE6MTMgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCB0eXBvIGluIHdpbmRvd3MgZnVuY3Rpb24gbmFtZS4KCSAgR2V0TW9kdWxlRmlsZW5hbWUgLT4gR2V0TW9kdWxlRmlsZU5hbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODIzNAoKMjAxNy0wOS0yNyAxMDowNjoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydCBmaWxlCgoyMDE3LTA5LTI2IDE1OjE1OjI3ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSAgcGx1Z2luIGRlcGVuZGVuY2llczogZml4IDZjZGRjZTc2NjNjYjRiNmVlMDYxOTUwZDIwMzY1ZjQyY2I3NTU4NTEKCSAgVGhlcmUgd2VyZSBhIGZldyBlcnJvcnM6CgkgICogVGhlIHBsdWdpbiBzY2FubmVyIG5vdyBhY2NlcHRzIGV4ZWN1dGFibGUgcGF0aCBhcyBhbiBhcmd1bWVudC4KCSAgSW4gY2FzZSBpdCBpcyBOVUxMLCBhcmdjID09IDIKCSAgKiBXZSBmaW5kIHRoZSBleGVjdXRhYmxlIHBhdGggaW4gaW5pdF9wcmUgaW5zdGVhZCBvZiBnc3RfaW5pdCwKCSAgYWxsb3dpbmcgdGhpcyB0byB3b3JrIHdoZW4gZ3N0IGlzIGluaXRpYWxpemVkIHRocm91Z2ggdGhlCgkgIG9wdGlvbiBncm91cCAoZWcgZ3N0LWluc3BlY3QpCgkgICogVGhlcmUgd2FzIGEgc2VtaS1jb2xvbiBtaXNzaW5nIGluIHRoZSBfX0FQUExFX18gI2lmZGVmCgoyMDE3LTA5LTI1IDIwOjM1OjU5ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IEFQSTogR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUEFUSFNfQVJFX1JFTEFUSVZFX1RPX0VYRQoJICBXaGVuIGEgcGx1Z2luIGRlY2xhcmVzIGEgZGVwZW5kZW5jeSB1c2luZyB0aGlzIGZsYWcsIGFsbCB0aGUKCSAgcmVsYXRpdmUgcGF0aHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHBhdGggb2YKCSAgdGhlIG1haW4gZXhlY3V0YWJsZS4KCSAgV2UgdHJ5IHRvIGRldGVybWluZSB0aGUgcGF0aCBvZiB0aGUgZXhlY3V0YWJsZSBwb3J0YWJseSwKCSAgd2l0aCBpbXBsZW1lbnRhdGlvbnMgcHJvdmlkZWQgZm9yIExpbnV4LCBXaW5kb3dzIGFuZCBNYWMuCgkgIElmIHJldHJpZXZhbCBvZiB0aGUgcGF0aCBmYWlscywgd2Ugd2lsbCBub3QgZGV0ZWN0IGNoYW5nZXMuCgkgIEluIG9yZGVyIGZvciB0aGUgbWFpbiBleGVjdXRhYmxlIHBhdGggdG8gYmUgdGhlIHNhbWUgd2hlbgoJICBzY2FubmluZyBhIHBsdWdpbiBpbiBhIGNoaWxkIHByb2Nlc3MsIGEgbmV3IHZhcmlhYmxlIGlzCgkgIGV4cG9zZWQgaW4gZ3N0X3ByaXZhdGUuaCwgX2dzdF9leGVjdXRhYmxlX3BhdGgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODE1MgoKMjAxNy0wOS0yMSAxNDoxMzo0NyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEFsc28gYnVpbGQgJEVYVFJBX01PRFVMRVMKCSAgRG9pbmcgYSBnaXQgcHVsbCBidXQgbm90IGF1dG9nZW4uc2ggLyBtYWtlIGlzIG5vdCBjb25zaXN0ZW50IGJlaGF2aW91ci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Nzk4MQoKMjAxNy0wOS0xOSAyMzo1ODoyNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUHJpbnQgR3N0VmFsdWVBcnJheSBwcm9wZXJ0aWVzIG5pY2VseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3OTI0CgoyMDE3LTA0LTAxIDA3OjE1OjIyICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgTXVsdGlxdWV1ZTogZG9uJ3QgYWxsb3cgZHJvcHBpbmcgU0VHTUVOVF9ET05FIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNzk1CgoyMDE3LTA5LTE3IDE4OjU1OjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogR3N0U3RhY2tUcmFjZUZsYWdzIHdlcmUgYWRkZWQgaW4gMS4xMgoKMjAxNy0wOC0zMSAxMzowNTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogdXNlIG5ldyBnc3RfYnVmZmVyX2xpc3RfY2FsY3VsYXRlX3NpemUoKQoKMjAxNy0wOC0zMSAxMjo1NDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZ3N0X2J1ZmZlcl9saXN0X2NhbGN1bGF0ZV9zaXplKCkKCSAgUmV0dXJucyBzaXplIGluIGJ5dGVzLgoKMjAxNy0wOC0zMCAxMzo1MDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZ3N0X2J1ZmZlcl9saXN0X2dldF93cml0YWJsZSgpCgkgIEVuc3VyZXMgYnVmZmVyIGlzIHdyaXRhYmxlLiBVc2VmdWwgaWYgd2Ugd2FudCB0byBjaGFuZ2UKCSAgbWV0YWRhdGEgb24gaXQgc3VjaCBhcyB0aW1lc3RhbXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMjQxCgoyMDE3LTA5LTEyIDE4OjMwOjAwICswMzAwICBNaWNoYWVsIFNoaWdvcmluIDxtaWtlQGFsdGxpbnV4Lm9yZz4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmguaW46IGluaXRpYWwgZTJrIGFyY2ggc3VwcG9ydAoJICBUaGlzIG1ha2VzIGdzdHJlYW1lciBidWlsZGFibGUgb24gRWxicnVzIDIwMDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc1ODcKCjIwMTctMDktMDkgMTY6MTQ6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBHc3REZWJ1Z0NvbG9yRmxhZ3MgYXJlIGZsYWdzLCBub3QgYW4gZW51bQoJICBBbm5vdGF0ZSBhcyBzdWNoLgoKMjAxNy0wOS0wNiAxMDowMTo1OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBBZGQgYSBkcm9wLWFsbG9jYXRpb24gcHJvcGVydHkKCSAgV2hlbiBlbmFibGVkLCB0aGlzIHByb3BlcnR5IHdpbGwgbWFrZSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBmYWlsLiBUaGlzIGlzCgkgIHRoZSBzYW1lIGFzIG9uZSBjb3VsZCBoYXZlIGRvbmUgdXNpbmcgYSB0ZWUgYmVmb3JlIHRoZSB0ZWUgc3RhcnRlZAoJICBpbXBsZW1lbnRpbmcgdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMDktMDUgMTU6NTc6NTEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFsbG9jYXRlIG9uZSBtb3JlIGJ1ZmZlciB3aGVuIG11bHRpLXBsZXhpbmcKCSAgVGhpcyBleHRyYSBidWZmZXIgZW5zdXJlIHRoYXQgdGhlIGRvd25zdHJlYW0gdGhyZWFkcyBhcmUgbm90IHN0YXJ2ZWQKCSAgd2hlbiBtdWx0aXBsZXhpbmcgYSBzdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMDktMDUgMTU6NDU6MzMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFkZCB0ZXN0IGZvciB0aGUgYWxsb2NhdGlvbiBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTA4LTA4IDE3OjM5OjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEltcGxlbWVudCBhbGxvY2F0aW9uIHF1ZXJ5IGFnZ3JlZ2F0aW9uCgkgIFRoaXMgd2lsbCBhZ2dyZWdhdGUgYWxsb2NhdGlvbiBwYXJhbXMsIHBvb2wgYW5kIHdpbGwga2VlcCBhbGwKCSAgbWV0YSB0aGF0IGhhcyBubyBwYXJhbWV0ZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTA4LTA4IDE3OjM1OjE5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IERlcHJlY2F0ZSBhbGxvYy1wYWQgcHJvcGVydHkKCSAgSXQgaGFzIG5vIGVmZmVjdCwgbm90IGltcGxlbWVudGVkLCBhbmQgd291bGQgbGVhZCB0byBiYWQgcmVuZGVyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTA5LTA0IDEyOjIwOjQzICswMjAwICBNaWd1ZWwgUGFyw61zIDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgdGVzdCB0byBjaGVjayBoYW5kbGVkIGFuZCBkcm9wIHByb2JlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3MjQzCgoyMDE3LTA5LTA0IDE0OjMzOjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGNhbGwgcmVtYWluaW5nIHByb2JlcyBhZnRlciB0aGV5IHJldHVybiBEUk9QUEVEfEhBTkRMRUQKCSAgSWYgbXVsdGlwbGUgcHJvYmVzIGFyZSBzZXQgb24gYSBwYWQgYW5kIG9uZSBwcm9iZSByZXR1cm5zIGVpdGhlcgoJICBHU1RfUEFEX1BST0JFX0hBTkRMRUQgb3IgR1NUX1BBRF9QUk9CRV9EUk9QUEVEIHdlIG5lZWQgdG8gc3RvcAoJICBjYWxsaW5nIHRoZSByZW1haW5pbmcgcHJvYmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3MjQzCgoyMDE3LTA4LTI2IDEzOjQ0OjM4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEhhbmRsZSBzZXJpYWxpemluZyBOVUxMIEdWYWx1ZUFycmF5CgkgIENvbmNpZGVyIHRoZW0gYXMgYW4gZW1wdHkgYXJyYXkgYW5kIGRvIG5vdCBzZWdmYXVsdC4uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2NjcwCgoyMDE3LTA4LTI0IDE2OjAwOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdGFnbGlzdCB1cGRhdGUgc3BhbQoJICBXZSB3b3VsZCBjb25zdGFudGx5IHJlLXBvc3QgdGhlIHRhZ2xpc3QgYmVjYXVzZQoJICBwb3N0ZWRfYXZnX3JhdGUgb25seSBnZXRzIHNldCB0byBhdmdfYml0cmF0ZSBpZgoJICBwYXJzZS0+cHJpdi0+cG9zdF9hdmdfYml0cmF0ZSBpcyB0cnVlLCBzbyBpZiBpdCdzCgkgIGZhbHNlIHRoZSBwb3N0ZWQgcmF0ZSB3aWxsIGFsd2F5cyBkaWZmZXIgZnJvbSB0aGUKCSAgY3VycmVudCBhdmVyYWdlIHJhdGUgYW5kIHdlJ2QgcXVldWUgYW4gdXBkYXRlLAoJICB3aGljaCBsZWFkcyB0byB1cyBzcGFtbWluZyBkb3duc3RyZWFtIGFuZCB0aGUKCSAgYXBwbGljYXRpb24gd2l0aCB0YWdsaXN0IHVwZGF0ZXMuCgkgIEZpeCB0aGlzIGJ5IG9ubHkgcXVldWluZyBhbiB1cGRhdGUgaWYgdGhlIGF2ZXJhZ2UKCSAgcmF0ZSB3aWxsIGFjdHVhbGx5IGJlIHBvc3RlZC4KCSAgVGhlc2UgdGFnbGlzdHMgdXBkYXRlcyBjb3VsZCBjYXVzZSBleHBlbnNpdmUKCSAgb3BlcmF0aW9ucyBvbiB0aGUgYXBwbGljYXRpb24gc2lkZSwgZS5nLiBpbiBUb3RlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjU2MQoKMjAxNy0wOC0xNyAxMjoyMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0OGE1ZDg1IHRvIDNmNGFhOTYKCjIwMTctMDgtMTcgMTQ6MTM6MzkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50L2RldmljZXByb3ZpZGVyOiBBZGQgaW5zdGFuY2UgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgY2xhc3MgcHJvcGVydGllcwoJICBUaGF0IGlzLCB0aGUgbWV0YWRhdGEgYW5kIHBhZCB0ZW1wbGF0ZXMuIFVzaW5nIGluc3RhbmNlIGdldHRlcnMgaXMKCSAgZWFzaWVyIHRvIGRlYWwgd2l0aCBmb3IgYmluZGluZ3MsIGVzcGVjaWFsbHkgYXV0b2dlbmVyYXRlZCBvbmVzLgoKMjAxNy0wOC0xNiAyMjo0NzozMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogUmV0dXJuIEZMVVNISU5HIGluc3RlYWQgb2YgRU9TIGFuZCBkb24ndCBzdGFydCB3YWl0aW5nIGZvciBhbnl0aGluZyBpZiBjdXJyZW50bHkgZmx1c2hpbmcKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHRyeSB1bnNjaGVkdWxpbmcgYSBjbG9jayBpZCAodGhhdCBkb2VzIG5vdCBleGlzdAoJICB5ZXQpLCB0aGVuIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdhaXRzIGZvciBpZCBhbmQgdGhlIHN0YXRlIGNoYW5nZSBuZXZlcgoJICBjb250aW51ZXMgYmVjYXVzZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBpcyBibG9ja2VkLgoJICBBbHNvIHNodXR0aW5nIGRvd24gYW5kIGZsdXNoaW5nIGFuZCBzaW1pbGFyIHNob3VsZCByZXR1cm4gRkxVU0hJTkcsIG5vdAoJICBFT1MuIFRoZSBzdHJlYW0gaXMgbm90IG92ZXIsIHdlJ3JlIGp1c3Qgbm90IGFjY2VwdGluZyBhbnkgYnVmZmVycwoJICBhbnltb3JlLgoKMjAxNy0wOC0xNCAxMTowMToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFsbG9jYXRvcjogSGlkZSBwcml2YXRlIHN5c21lbSBHVHlwZSBmdW5jCgkgIFdhcyBuZXZlciBleHBvc2VkIGluIGFueSBoZWFkZXIgZmlsZSwgb25seSBleHBvcnRlZAoJICBieSBhY2NpZGVudC4KCjIwMTctMDgtMTEgMjE6MTc6MDYgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBZGQgc3dpdGNoZXMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBsaWJkdyBhbmQgbGlidW53aW5kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzgxOTMKCjIwMTctMDgtMTMgMTA6NTA6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0Lmg6CgkgIGxpYmNoZWNrOiBmaXggYnVpbGQgZmFpbHVyZQoJICBOZWVkIHRvIGRlZmluZSBDS19ETExfRVhQIHRvIGV4dGVybiBhcyB3ZWxsIGluIGxpYmNvbXBhdC5oCgkgIHdoaWNoIGdldHMgaW5jbHVkZWQgYmVmb3JlIHRoZSBpbnRlcm5hbC1jaGVjay5oIHdoZXJlIHRoZQoJICBvdGhlciBmYWxsYmFjayBkZWZpbml0aW9uIGZvciBDS19ETExfRVhQIGlzLgoJICBkdXBsaWNhdGUgc3ltYm9sIF9jaGVja19taW5vcl92ZXJzaW9uIGluOgoJICBsaWJjaGVja2ludGVybmFsLmEobGliY2hlY2tpbnRlcm5hbF9sYS1jaGVjay5vKQoJICBsaWJjaGVja2ludGVybmFsLmEobGliY2hlY2tpbnRlcm5hbF9sYS1jaGVja19sb2cubykKCjIwMTctMDgtMTEgMTE6MTI6MDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBbGxvdyByZS11c2FiaWxpdHkgYWZ0ZXIgRU9TCgkgIEFmdGVyIEVPUywgaXQgaXMgcG9zc2libGUgZm9yIGEgcGFkIHRvIGJlIHJlc2V0dGVkIGJ5IHNlbmRpbmcKCSAgZWl0aGVyIGEgU1RSRUFNX1NUQVJUIG9yIFNFR01FTlQgZXZlbnQKCSAgTWltaWMgdGhlIHNhbWUgYmVoYXZpb3VyIHdoZW4gcmVjZWl2aW5nIFNUUkVBTV9TVEFSVC9TRUdNRU5UIGV2ZW50cwoJICBpbiBxdWV1ZSBpZiB3ZSBhcmUgRU9TJ2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA1NgoKMjAxNy0wOC0xMCAxMzozMjo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGhpZGUgc3ltYm9scyBieSBkZWZhdWx0IHVubGVzcyBleHBsaWNpdGx5IGV4cG9ydGVkCgoyMDE3LTA4LTEwIDExOjE1OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBsaWJzOiBjaGVjazogc3ByaW5rbGUgc29tZSBHU1RfRVhQT1JUCgkgIEhhdmUgdG8gbW9kaWZ5IGxpYmNoZWNrIGhlYWRlciBhIGJpdCB0byBhdm9pZCB3YXJuaW5ncwoJICBhYm91dCBkdXBsaWNhdGUgJ2V4dGVybiBleHRlcm4nLgoJICBBbHNvIG5lZWRzIHNvbWUgYWRkaXRpb25zIHRvIHRoZSBsaWJjaGVjayBtZXNvbi5idWlsZCBmaWxlCgkgIHRvIGRlZmluZSBDS19FWFBfRExMIHdoZW4gYnVpbGRpbmcgdGhlIHN0YXRpYyBsaWJjaGVjay4KCjIwMTctMDgtMDggMTI6NTY6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBnLWlyLXNjYW5uZXIgd2FybmluZyBhYm91dCBib2d1cyB0cmFuc2ZlciBhbm5vdGF0aW9ucwoJICBmb3IgdmFyYXJnIHBhcmFtZXRlcnMuIFZhcmFyZyBmdW5jdGlvbnMgYXJlIG5vdCBpbnRyb3NwZWN0YWJsZSBhbnl3YXksCgkgIHNvIG1pZ2h0IGp1c3QgYXMgd2VsbCBtYXJrIHRoZW0gYXMgJyhza2lwKScgd2hpbGUgd2UncmUgYXQgaXQuCgkgIGdzdHV0aWxzLmM6MjYxMTogV2FybmluZzogR3N0OiBpbnZhbGlkICJ0cmFuc2ZlciIgYW5ub3RhdGlvbiBmb3IgPHZhcmFyZ3M+OiBvbmx5IHZhbGlkIGZvciBvYmplY3QgYW5kIEdWYXJpYW50IHR5cGVzCgoyMDE3LTA4LTA5IDE2OjE1OjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBBbGxvdyByZS11c2FiaWxpdHkgYWZ0ZXIgRU9TCgkgIEFmdGVyIEVPUywgaXQgaXMgcG9zc2libGUgZm9yIGEgcGFkIHRvIGJlIHJlc2V0dGVkIGJ5IHNlbmRpbmcKCSAgZWl0aGVyIGEgU1RSRUFNX1NUQVJUIG9yIFNFR01FTlQgZXZlbnQKCSAgTWltaWMgdGhlIHNhbWUgYmVoYXZpb3VyIHdoZW4gcmVjZWl2aW5nIFNUUkVBTV9TVEFSVC9TRUdNRU5UIGV2ZW50cwoJICBpbiBxdWV1ZTIgaWYgd2UgYXJlIEVPUydkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODYwNTYKCjIwMTctMDgtMDkgMTA6NTE6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiAqcXVldWUqIGVsZW1lbnRzOiBIYW5kbGUgU1RSRUFNX1NUQVJUIGluIEVPUyBzaXR1YXRpb24KCSAgV2hlbiBxdWV1ZS1saWtlIGVsZW1lbnRzIGFyZSBpbiAiRU9TIiBzaXR1YXRpb24gKHJlY2VpdmVkIEdTVF9GTE9XX0VPUwoJICBmcm9tIGRvd25zdHJlYW0gb3IgRU9TIHdhcyBwdXNoZWQpLCB0aGV5IGRyYWluIGJ1ZmZlcnMvZXZlbnRzIHRoYXQKCSAgd291bGRuJ3QgYmUgcHJvY2Vzc2VkIGFueXdheSBhbmQgbGV0IHRocm91Z2ggZXZlbnRzIHRoYXQgbWlnaHQKCSAgbW9kaWZ5IHRoZSBFT1Mgc2l0dWF0aW9uLgoJICBQcmV2aW91c2x5IG9ubHkgR1NUX0VWRU5UX0VPUyBhbmQgR1NUX0VWRU5UX1NFR01FTlQgZXZlbnRzIHdlcmUgbGV0CgkgIHRocm91Z2gsIGJ1dCB3ZSBhbHNvIG5lZWQgdG8gYWxsb3cgR1NUX0VWRU5UX1NUUkVBTV9TVEFSVCB0byBnbwoJICB0aHJvdWdoIHNpbmNlIGl0IHJlc2V0cyB0aGUgRU9TIHN0YXRlIG9mIHBhZHMgc2luY2UgMS42CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODYwMzQKCjIwMTctMDgtMDggMjE6MTk6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNraXAgZ3N0X2NhbGN1bGF0ZV9saW5lYXJfcmVncmVzc2lvbigpIGluIGJpbmRpbmdzCgoyMDE3LTA4LTA3IDEyOjI0OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBIYW5kbGUgYnVmZmVyaW5nIGxldmVscyBvbiBOT1RfTElOS0VECgkgIFdoZW4gZG93bnN0cmVhbSByZXR1cm5zIE5PVF9MSU5LRUQsIHdlIHJldHVybiB0aGUgYnVmZmVyaW5nIGxldmVsCgkgIGFzIGJlaW5nIDEwMCUuCgkgIFNpbmNlIHRoZSBxdWV1ZSBpcyBubyBsb25nZXIgYmVpbmcgY29uc3VtZWQvdXNlZCBkb3duc3RyZWFtLCB3ZQoJICB3YW50IGFwcGxpY2F0aW9ucyB0byBlc3NlbnRpYWxseSAiaWdub3JlIiB0aGlzIHF1ZXVlIGZvciBidWZmZXJpbmcKCSAgcHVycG9zZXMuCgkgIElmIG90aGVyIHN0cmVhbXMgYXJlIHN0aWxsIGJlaW5nIHVzZWQsIHRob3NlIHN0cmVhbSBidWZmZXJpbmcgbGV2ZWxzCgkgIHdpbGwgYmUgdXNlZC4gSWYgbm9uZSBhcmUgdXNlZCwgdXBzdHJlYW0gd2lsbCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UKCSAgb24gdGhlIGJ1cyBpbmRpY2F0aW5nIG5vIHN0cmVhbXMgYXJlIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU3OTkKCjIwMTctMDgtMDcgMTE6MjM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9tZXNvbi5idWlsZDoKCSogZG9jcy9saWJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGd0ay1kb2MgaW52b2NhdGlvbgoJICBBcmd1bWVudCBpcyBjYWxsZWQgInNjYW5vYmpzX2FyZ3MiLCBhbmQgd2Ugd2VyZSBtaXNzaW5nIGEgcXVvdGUuCgoyMDE3LTA4LTA3IDExOjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBhIGZldyB3YXJuaW5ncwoKMjAxNy0wOC0wNyAxMDozMzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSAgbWVzb246IGFkZCAtbG0gdG8gZ3N0cmVhbWVyLWNoZWNrLTEuMCBwa2djb25maWcgZmlsZQoJICBGaXhlcyB3YXJuaW5nIHdpdGggbWVzb24gZnJvbSBnaXQgYWJvdXQgTElCTSBub3QgYmVpbmcKCSAgZGVmaW5lZCBpbiB0aGUgY29uZmlndXJhdGlvbl9kYXRhLgoKMjAxNy0wOC0wMiAyMTowMjozMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZWNoZWNrIHN0aWNreSBldmVudHMgYWZ0ZXIgbm9uLWJsb2NraW5nIGJ1ZmZlciBwcm9iZXMgYW5kIGJsb2NraW5nIGV2ZW50IHByb2JlcwoJICBXaXRob3V0IHRoZSBmb3JtZXIsIGV2ZW50IGNoYW5nZXMgKGUuZy4gc2V0dGluZyBhIHBhZCBvZmZzZXQpIGRvZXMgbm90CgkgIHRha2UgZWZmZWN0IGZvciB0aGUgY3VycmVudCBidWZmZXIgYnV0IG9ubHkgZm9yIHRoZSBuZXh0IG9uZS4gV2l0aG91dAoJICB0aGUgbGF0dGVyLCBub24tYmxvY2tpbmcgZXZlbnQgcHJvYmVzIHdvdWxkIG5vdCBzZWUgYW55IHVwZGF0ZWQgZXZlbnRzCgkgIHlldC4KCjIwMTctMDctMjkgMTA6Mjg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggYnVpbGQgd2l0aCBnc3QgZGVidWdnaW5nIGRpc2FibGVkCgoyMDE3LTA3LTE3IDIxOjAzOjExICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlYnVnOiBBZGQgYSBtZW1vcnkgcmluZ2J1ZmZlciBiYXNlZCBkZWJ1ZyBsb2dnZXIKCSAgVGhpcyBzdG9yZXMgZGVidWcgbG9ncyBpbiBtZW1vcnkgcGVyIHRocmVhZCBhbmQgdXNlcyB1cCB0byBhCgkgIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgYnl0ZXMgcGVyIHRocmVhZCBmb3IgdGhlIGxvZ3MuIEluYWN0aXZlIHRocmVhZHMKCSAgYXJlIHRpbWVkIG91dCBhZnRlciBhIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTAzNQoKMjAxNy0wNy0yOCAxNzoyNzoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEFkZCBtaXNzaW5nIG91dCBhbm5vdGF0aW9ucyBmb3IgdmFyaW91cyBwYXJhbWV0ZXJzCgoyMDE3LTA3LTI2IDE0OjE3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkgIGRvd25sb2FkYnVmZmVyOiByZW1vdmUgdW51c2VkIHN0cnVjdCBtZW1iZXIKCSAgVGhpcyB3YXMgdXNlZCBpbiBxdWV1ZTIgd2hlbiBoYW5kbGluZyBpbiBjb21pbmcgc2VyaWFsaXplZAoJICBxdWVyaWVzLCBidXQgZG93bmxvYWRidWZmZXIganVzdCByZWZ1c2VzIHNlcmlhbGl6ZWQgcXVlcmllcy4KCjIwMTUtMDMtMTAgMTY6NDI6NDQgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IGR1cGxpY2F0ZSBjb2RlIGJyYW5jaGVzCgkgIENJRCAjMTIyNjQ0NgoKMjAxNy0wNy0yNiAxMToxNTo1OCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvY3VtZW50IHRoYXQgZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUgbmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggdGhlIFNUQVRFX0xPQ0sKCSAgSXQgaW50ZXJuYWxseSBjYWxscyBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKSwgd2hpY2ggcmVxdWlyZXMgdGhlIFNUQVRFX0xPQ0sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTQzMQoKMjAxNy0wNy0yMCAxNzozMTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBTSUdIVVAgaGFuZGxlcnMgb24gd2luZG93cwoJICBGaXggdW51c2VkIHZhcmlhYmxlL2Z1bmN0aW9uIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHdpbmRvd3MuCgkgIFRoZSBTSUdIVVAgaGFuZGxpbmcgaXMgb25seSBhdmFpbGFibGUgdW5kZXIgdW5peC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzY2MQoKMjAxNy0wNy0yMCAxNDoxNzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggYWNjZXNzIHRvIE5VTEwgcG9pbnRlcgoJICBzcSBjYW4gYmUgTlVMTC4KCSAgQWxzbyBmaXggY29tbWl0IG1lc3NhZ2UgKGl0J3MgdGhlIHF1ZXVlIHdlIGFyZSBpdGVyYXRpbmcgb3ZlciB0aGF0IHdlCgkgIGFyZSBsb2dnaW5nLCBub3QgdGhlIG9uZSBwYXNzZWQgYXMgYXJndW1lbnQpLgoJICBDSUQgIzE0MTU1NjkKCjIwMTctMDctMDMgMTU6MTc6MzMgKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IENhbGN1bGF0ZSBpbnRlcmxlYXZlIG9ubHkgd2l0aGluIGVhY2ggc3RyZWFtaW5nIHRocmVhZAoJICAuLi4gYW5kIHVzZSB0aGUgYmlnZ2VzdCBpbnRlcmxlYXZlIHZhbHVlIGFtb25nIHN0cmVhbWluZyB0aHJlYWRzLgoJICBUaGlzIGlzIHRvIG9wdGltaXplIG11bHRpcXVldWUgc2l6ZSBhZGFwdGF0aW9uIG9uIGFkYXB0aXZlIHN0cmVhbWluZwoJICB1c2UgY2FzZSB3aXRoICJ1c2UtaW50ZXJsZWF2ZSIgcHJvcGVydHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ0NDgKCjIwMTctMDctMTUgMTI6NDA6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9tZXNvbi5idWlsZDoKCSAgbWVzb246IHBvOiB1c2UgZ2xpYiBwcmVzZXQgYW5kIHJlYWQgbGFuZ3VhZ2UgbGlzdCBmcm9tIExJTkdVQVMKCSAgU3VwcG9ydGVkIHNpbmNlIG1lc29uIDAuMzcsIHNvIHdlIGNhbiB1c2UgaXQgbm93LgoKMjAxNy0wNy0xNSAxMTo1NDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGRvbid0IG1vZGlmeSBtZW1vcnkgaWYgaXQncyBjbGVhcmx5IG5vdCBhIHZhbGlkIG1pbmlvYmplY3QKCSAgQWRkIGJhY2sgZnVuY3Rpb24gZ3VhcmQgdGhhdCBjaGVja3MgdGhlIHJlZmNvdW50IGluIGEgcmVhZC1vbmx5CgkgIG9wZXJhdGlvbiBmaXJzdCwgYW5kIGJhaWwgb3V0IHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBwYXNzZWQtaW4KCSAgbWVtb3J5IGlmIGl0J3MgY2xlYXJseSBub3QgYSB2YWxpZCBtaW5pIG9iamVjdC4gT3RoZXJ3aXNlIHdlCgkgIHByb2JhYmx5IGNhdXNlIG1vcmUgaGFybSB0aGFuIGdvb2QuIFdlIGtlZXAgdGhlIHNlY29uZCBzYW5pdHkKCSAgY2hlY2sgYmFzZWQgb24gdGhlICdyZWFsIHJlZmNvdW50JyBhdCB0aGUgdGltZSBvZiB0aGUgdW5yZWYKCSAgYXJvdW5kIGZvciBub3cgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MzgzCgoyMDE3LTA3LTE0IDE2OjU2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBkZXByZWNhdGUgbm9uLWZ1bmN0aW9uYWwgInR5cGVmaW5kIiBwcm9wZXJ0eQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NTY1CgoyMDE3LTA3LTEwIDE2OjUyOjM4ICswMjAwICBGcmFuY2lzY28gVmVsYXpxdWV6IDxmcmFuY2lzdkBpZmkudWlvLm5vPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5zY206CgkgIGJlbmNobWFyazogZml4IGNvbXBsZXhpdHkgYmVuY2htYXJrCgkgIE1ha2UgY29tcGxleGl0eSBiZW5jaG1hcmsgY29kZSB3b3JrIGZvciBjb21wbGV4aXR5ID4gMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzU0CgoyMDE3LTA3LTE0IDE2OjEyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIG1lc29uLmJ1aWxkOgoJICB3aW4zMjogZmluZCBwbHVnaW4gc2Nhbm5lciBpbiBsaWJleGVjZGlyIHN1YmRpciBhcyBjb25maWd1cmVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTUKCjIwMTctMDctMTMgMjE6NTI6MzQgKzA4MDAgIEphc29uIExpbiA8c2hhbmdjaGllaEByZWFsdGVrLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBidWZmZXIgbGVha3MgaWYgcHJlcm9sbCBmYWlsZWQKCSAgYnVmZmVyIGlzIG5vdCB1bnJlZmVyZW5lZCBpZiBwcmVyb2xsIGZhaWxlZAoJICA6RGV0YWlsZWQgTm90ZXM6CgkgIC0gUHJvYmxlbSA6IHZpZGVvIGZyZWV6ZSB3aGVuIHN3aXRjaGluZyBmcm9tIHBhdXNlIHRvIDEvMi1GRiByZXBlYXRlZGx5CgkgIC0gUm9vdENhdXNlIDogYnVmZmVyIGxlYWtzIGluIGJhc2VzaW5rCgkgIC0gU29sdXRpb24gOiB1bnJlZiB0aGUgYnVmZmVyIGlmIHByZXJvbGxlZCBmYWlsZWQKCSAgOlRlc3RpbmcgUHJlZm9ybWVkOgoJICBIb3cgdG8gVGVzdCA6CgkgIHBhdXNlIC0+IDEvMiBGRiAtPiByZXN1bWUgLT4gcGF1c2UgLT4gMS8yIEZGIC4uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0OTMyCgoyMDE3LTA2LTExIDE1OjE1OjEzICswMDAwICBHcmFoYW0gTGVnZ2V0dCA8bWluZnJpbkBzaGFycC5mbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLTEuMC4xOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEdlbmVyYXRlIGEgZ3N0cmVhbWVyIHBpcGVsaW5lIGRpYWdyYW0gb24gU0lHSFVQLgoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZyBhIHBpcGVsaW5lIHRoYXQgcmVmdXNlcyB0byBlbnRlciBhIGdpdmVuIHN0YXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNjYxCgoyMDE3LTA2LTI2IDExOjQ2OjM5ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZvcndhcmQgU0lOS19NRVNTQUdFIGV2ZW50cyBkb3duc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ1NTEKCjIwMTctMDctMTEgMTQ6NTY6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IGJhc2hjb21wIGluc3RhbGxhdGlvbgoJICBGb3Igc29tZSByZWFzb24gdGhlIGRvdWJsZSBxdW90ZXMgZW5kZWQgdXAgaW4gdGhlIHBhdGgsIGhlbmNlCgkgIHRoZSBoZWxwZXIgd2hlcmUgaW5zdGFsbGVkIGF0ICIuIi9zaGFyZS8uLi4KCjIwMTctMDctMTEgMTQ6NTU6NDIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL2VsZW1lbnRzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogVXNlIGpvaW5fcGF0aHMgYW5kIC5zZXRfcXVvdGVkIHdoZXJlIHBvc3NpYmxlCgoyMDE3LTA3LTExIDE2OjE1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJICBtZXNvbjogcGtnY29uZmlnOiBhZGQgbGlidW53aW5kL2xpYmR3IHRvIGdzdHJlYW1lci0xLjAgUmVxdWlyZXMucHJpdmF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0Nzk1CgoyMDE3LTA3LTExIDE1OjI5OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IEFkZCBwcml2YXRlIHJlcXVpcmVtZW50cwoJICBBZGQgbGlidW53aW5kIGFuZCBkdyB0byB0aGUgLnBjIFJlcXVpcmVzLnByaXZhdGUuIEZpeGVzIHN0YXRpYyBsaWJyYXJ5CgkgIGNvbXBpbGF0aW9uIGlmIGdzdHJlYW1lciB3YXMgY29tcGlsZWQgd2l0aCBvbmUgb2YgdGhvc2UgZGVwZW5kZW5jaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3OTUKCjIwMTctMDctMDkgMjE6MjA6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgR1NUX0NMT0NLX1RJTUUgbWFjcm9zIGZvciByZWFkYWJpbGl0eQoJICBSZXBsYWNlIHNvbWUgLTEgY29tcGFyaXNvbiB3aXRoIEdTVF9DTE9DS19USU1FIG1hY3Jvcy4KCjIwMTctMDctMDkgMjE6MTY6NDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBjb3JyZWN0IHNvbWUgY29tbWVudHMgYW5kIGFkZCBtb3JlIGxvZ2dpbmcKCSAgQWRkIG1vcmUgbG9nZ2luZyB0byBhbmFseXplIGV2ZW50IGhhbmRsaW5nIChlc3BlY2lhbGx5IGZhaWx1cmUgY2FzZXMpLgoKMjAxNy0wNS0wMSAxMzozNTowOSAtMDcwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgdG9vbHM6IGdzdC1zdGF0czogVXNlIHN0YW5kYXJkIGNoYXJhY3RlciBlc2NhcGVzCgkgIEhhdmluZyAnXGUnIGV4cGFuZCB0byAnXHgxYicgaXMgYSBnbnUgZXh0ZW5zaW9uLiBJIGRpZG4ndCBzZWUgYW55CgkgIGRvY3VtZW50IGRlc2NyaWJpbmcgdGhlIGJlaGF2aW9yLCBidXQgZ2NjIGFsc28gc2VlbXMgdG8gZXhwYW5kCgkgICdcWycgdG8gJ1snLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMDI4CgoyMDE3LTA3LTA3IDEyOjA2OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGZpbmQgcHl0aG9uMyB2aWEgcHl0aG9uMyBtb2R1bGUKCSAgQW5kIHJlbmFtZSBweXRob24zIHZhcmlhYmxlIGluIG1lc29uIGJ1aWxkIGZpbGVzIGZvciBjbGFyaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTk4CgoyMDE3LTA3LTA1IDEzOjIwOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSogcGx1Z2lucy9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBhZGQgb3B0aW9uIHRvIGRpc2FibGUgdHJhY2VyIGhvb2tzCgoyMDE3LTA3LTA1IDEzOjE5OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogbWVtb3J5OiBza2lwIHRlc3QgdGhhdCBkZXBlbmRzIG9uIGRlYnVnIHN5c3RlbSBpZiBpdCdzIGRpc2FibGVkCgoyMDE3LTA3LTA1IDEzOjE3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNpbmc6IGZpeCBidWlsZCB3aXRoIHRyYWNlciBob29rcyBkaXNhYmxlZAoKMjAxNy0wNy0wMyAwOTowMzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IG1ha2UgcmVmY291bnQgdHJhY2luZyBhbmQgZGVidWcgbG9nZ2luZyByZWxpYWJsZQoJICBUcmFjaW5nIG9mIHRoZSByZWZjb3VudHMgd2Fzbid0IHRocmVhZC1zYWZlLCBhbmQgbG9nIG91dHB1dCBvZgoJICB0aGUgcmVmY291bnQgdmFsdWVzIGJlZm9yZS9hZnRlciB3YXNuJ3QgcmVsaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQzODMKCjIwMTctMDctMDMgMjE6MDY6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogY2xhcmlmeSBjb2RlIHRoYXQgZGVkdWNlcyBwbHVnaW4gbmFtZSBmcm9tIGZpbGUgbmFtZQoJICBNYWtlIHRoZSBmaW5hbCBlbHNlIGJyYW5jaCBleHBsaWNpdCBmb3IgY2xhcml0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzMzMwoKMjAxNy0wNi0yNyAwNzo0NDoxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkgIGRvY3M6IGFkZCBhIG1pc3NpbmcgY29uc3QgaW4gYnl0ZXJlYWRlciBkb2NzCgkgIFRoaXMgc3luY3MgdGhlIHByb3RvdHlwZSB3aXRoIGdzdGJ5dGVyZWFkZXIuaAoKMjAxNy0wNi0yOSAxMDo1MDo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJlbW92ZWQgdW51c2VkIHByaXZhdGUgbWVtYmVyIHFvc19lbmFibGVkCgoyMDE3LTA2LTI2IDE0OjA5OjIwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgcmVhbGxvY2F0ZSBidWZmZXJzIHdoZW4gZmx1c2hpbmcKCSAgSW5zdGVhZCBvZiB1c2luZyBnc3RfYnVmZmVyX3Bvb2xfc2V0X2FjdGl2ZSgpIHdoZW4gZmx1c2hpbmcsIHVzZQoJICBnc3RfYnVmZmVyX3Bvb2xfc2V0X2ZsdXNoaW5nKCksIHRoaXMgYXZvaWRzIHVuZWVkZWQgcmVhbGxvY2F0aW9uIG9mIHRoZQoJICBidWZmZXJzLgoKMjAxNy0wNi0wMSAxMDozNjoyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IGhvbGQgTElWRV9MT0NLIGluIGNyZWF0ZS9hbGxvYy9maWxsCgkgIEhvbGRpbmcgdGhpcyBsb2NrIG9uIGxpdmUgc291cmNlIHByZXZlbnRzIHRoZSBzb3VyY2UgZnJvbSBjaGFuZ2luZwoJICB0aGUgY2FwcyBpbiA6OmNyZWF0ZSgpIHdpdGhvdXQgcmlza2luZyBhIGRlYWRsb2NrLiBUaGlzIGhhcyBjb25zZXF1ZW5jZXMKCSAgYXMgdGhlIExJVkVfTE9DSyB3YXMgcmVwbGFjaW5nIHRoZSBTVFJFQU1fTE9DSyBpbiBtYW55IHNpdHVhdGlvbi4gQXMgYQoJICBzaWRlIGVmZmVjdDoKCSAgLSBXZSBubyBsb25nZXIgbmVlZCB0byB1bmxvY2sgd2hlbiBkb2luZyBwbGF5L3BhdXNlIGFzIHRoZSBMSVZFX0xPQ0sKCSAgaXNuJ3QgaGVsZC4gV2UgdGhlbiBsZXQgdGhlIGNyZWF0ZSgpIGNhbGwgZmluaXNoLCBidXQgd2lsbCBibG9jayBpZgoJICB0aGUgc3RhdGUgaGF2ZSBjaGFuZ2VkIG1lYW53aGlsZS4gVGhpcyBoYXMgdGhlIGJlbmVmaXQgdGhhdAoJICB3YWl0X3ByZXJvbGwoKSBjYWxscyBpbiBzdWJjbGFzcyBpcyBubyBsb25nZXIgbmVlZGVkLgoJICAtIFdlIG5vIGxvbmdlciBuZWVkIHRvIGNoYW5nZSB0aGUgc3RhdGUgdG8gdW5sb2NrLCBzaW1wbGlmeWluZyB0aGUKCSAgc2V0X2ZsdXNoaW5nKCkgaW50ZXJmYWNlCgkgIC0gV2UgbmVlZCBkaWZmZXJlbnQgaGFuZGxpbmcgZm9yIEVPUyBkZXBlbmRpbmcgaWYgd2UgYXJlIGluIHB1c2ggb3IgcHVsbAoJICBtb2RlLgoJICBUaGlzIHBhdGNoIGFsc28gZG9jdW1lbnQgdGhlIGxvY2tpbmcgb2YgZWFjaCBwcml2YXRlIGNsYXNzIG1lbWJlciBhbmQKCSAgdGhlIGxvY2tpbmcgb3JkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMzMDEKCjIwMTctMDYtMDEgMTA6MDE6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQcm90ZWN0IGFjY2VzcyB0byBwb29sIGFuZCBhbGxvY2F0b3IKCSAgVGhpcyB3YXMgb25seSBwYXJ0bHkgcHJvdGVjdGVkIGJ5IHRoZSBvYmplY3QgbG9jay4gQWx3YXlzIHRha2UgdGhlCgkgIG9iamVjdCBsb2NrIHRvIGFjY2VzcyB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgcG9vbCBhbmQgYWxsb2NhdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMzAxCgoyMDE3LTA2LTI5IDA4OjMwOjUwICswOTAwICBKaW1teSBPaG4gPHlvbmdqaW4ub2huQGxnZS5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IG1lbW9yeSBsZWFrIGluIHByaW50X3BhZF90ZW1wbGF0ZXNfaW5mbwoJICBnc3Rfc3RhdGljX2NhcHNfZ2V0IGZ1bmN0aW9uIHJldHVybmVkIGFsbG9jYXRlZCBtZW1vcnkuCgkgIFNvLCBJdCBzaG91bGQgYmUgZnJlZSB1c2luZyBnc3RfY2Fwc191bnJlZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDMxMQoKMjAxNy0wNi0yOSAwOToxMDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogY2hlY2sgZm9yIHBwb2xsKCkgYXMgd2VsbAoKMjAxNy0wNi0yNyAwOTo1OTo1MiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiB0b29scy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBjb25maWdpbmMgYXMgaW5jbHVkZV9kaXJlY3RvcnkgaW4gdG9vbHMvCgkgIE90aGVyd2lzZSB3aGVuIHRoZSBnbGliIGlzIHVzZWQgYXMgYSBzdWJwcm9qZWN0IGNvbmZpZy5oIGlzIHRoZSBnbGliCgkgIG9uZSwgbm90IG91cnMuCgoyMDE3LTA2LTIzIDE1OjEzOjE2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogQWxsb3cgdXNpbmcgZ2xpYiBhcyBhIHN1YnByb2plY3QKCjIwMTctMDYtMjggMDk6NTQ6NTYgKzAyMDAgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByb3RlY3Rpb246IGFkZCBmdW5jdGlvbiB0byBmaWx0ZXIgc3lzdGVtIGlkcwoJICBnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycygpIHRha2VzIGFuIGFycmF5CgkgIG9mIHN0cmluZ3MgYW5kIHJldHVybnMgYSBuZXcgYXJyYXkgb2Ygc3RyaW5ncyBmaWx0ZXJlZCBieSB0aGUgYXZhaWxhYmxlCgkgIGRlY3J5cHRvcnMgZm9yIHRoZW0gc28gdGhlIG9uZXMgeW91IGdldCBhcmUgdGhlIG9uZXMgdGhhdCB5b3Ugc2hvdWxkIGJlCgkgIGFibGUgdG8gZGVjcnlwdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDEwNwoKMjAxNy0wNi0yMyAxMToxMTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IHdpdGgtcGFja2FnZS1uYW1lIG9wdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MDgyCgoyMDE3LTA2LTAyIDAwOjUyOjM3ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IHJlbW92ZSBnc3QgcHJlZml4IHdoZW4gbG9hZGluZyBwbHVnaW4gb24gTVNWQwoJICBXaGVuIGJ1aWxkaW5nIHdpdGggTWVzb24gYW5kIE1TVkMsIG91ciBwbHVnaW5zIGRvbid0IGhhdmUgYSAnbGliZ3N0JwoJICBzdWZmaXggYW5kIGFyZSBqdXN0ICdnc3Rmb28uZGxsJywgc28gbG9vayBmb3IgdGhhdCB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMzMzMKCjIwMTctMDYtMjEgMTA6NDg6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2lua2NhcHMgY2FuIGJlIE5VTEwgaW4gZGVmYXVsdCBjYXBzIG5lZ290aWF0aW9uCgkgIFRoaXMgd2FzIGNhdXNpbmcgaGFybWxlc3MgYXNzZXJ0aW9uIGFib3V0IHRoZSB1bnJlZmZlZCBjYXBzIG5vdCBiZWluZyBvZgoJICB0eXBlIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQwNDEKCjIwMTctMDYtMjAgMTE6MDU6NDEgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmaWxlCgoyMDE3LTA2LTE0IDE3OjEyOjMyIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCBhIGZ1bmN0aW9uIHRvIGdldCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBHc3RTdGF0ZUNoYW5nZQoJICBBUEk6CgkgIGdzdF9zdGF0ZV9jaGFuZ2VfZ2V0X25hbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzc5OAoKMjAxNy0wNi0xNSAxMDozODoyOSAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZWxlbWVudDogQWRkIG1pc3NpbmcgdmFsdWVzIGZvciAidG8gc2FtZSIgc3RhdGUgY2hhbmdlcwoJICBBbmQgaGFuZGxlIG5ld2x5IGFkZGVkIEdzdFN0YXRlQ2hhbmdlIHZhbHVlcyBpbiBHc3RQaXBlbGluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNzk4CgoyMDE3LTA2LTIwIDE1OjU3OjQ3ICswOTAwICBIZWVreW91bmcgU2VvIDxoZWVreW91bmcuc2VvQGxnZS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBsZWFrIGluIGZhaWxlZCBjYXNlIG9mIHJlZ3Jlc3Npb24gb3ZlcmZsb3cgY2hlY2tpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzk3OAoKMjAxNy0wNi0yMCAxNjoxMDowNyArMDkwMCAgSGVla3lvdW5nIFNlbyA8aGVla3lvdW5nLnNlb0BsZ2UuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bms6IEZpeCBsZWFrIGluIGZhaWxlZCBjYXNlIG9mIHJlYWRpbmcgcGx1Z2luIGRlcGVuZGVuY3kgc3RyaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM5NzgKCjIwMTctMDYtMjAgMTA6MDA6MTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiBFeHBvcnQgYm94ZWQgdHlwZSBjb3B5L2ZyZWUgZnVuY3Rpb25zIGZvciBHc3RDb250cm9sUG9pbnQKCjIwMTctMDYtMjAgMDk6NTc6MDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IEV4cG9ydCBib3hlZCB0eXBlIGNvcHkvZnJlZSBmdW5jdGlvbnMgZm9yIHRoZSByZW1haW5pbmcgdHlwZXMKCjIwMTctMDYtMTYgMTM6MzQ6MDAgKzAwMDAgIEFuZHJlanMgVmFzaWxqZXZzIDxhbmRyZWpzLnZhc2lsamV2c0B1Ym50LmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IFVucmVmIHRpbWVvdXQgR1NvdXJjZSBmb3IgZGVsYXkgcmVxdWVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzg2NAoKMjAxNy0wNi0xNSAxMDo1MTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IHRlc3RzIGJ1aWxkIHdpdGggLS13ZXJyb3IKCSAgTmVlZCB0byBwYXNzIC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRCB0byBhdm9pZCB3YXJuaW5ncyB3aGVuCgkgIHRlc3RpbmcgZGVwcmVjYXRlZCBBUEkgc3VjaCBhcyBnc3RfdXJpX2NvbnN0cnVjdCgpLgoJICBBbHNvIHJlbW92ZSAjaWZuZGVmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZ3VhcmQgZnJvbSBoZWFkZXIKCSAgZmlsZSwgd2UgZG9uJ3QgdXNlIHRob3NlIGFueSBtb3JlIGZvciBmdW5jdGlvbnMsIHRoZQoJICBHU1RfREVQUkVDQVRFRF9GT1IgbWFjcm8gaXMgZW5vdWdoLgoKMjAxNy0wNi0xNCAxNzozNjo1NyArMDIwMCAgRGltaXRyaW9zIEthdHNhcm9zIDxwYXRjaGVyd29ya0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IEZpeGVkIGluY29ycmVjdCBlc2NhcGluZyBvZiBwYXRoIGFzIGEgZ2VuZXJpYyBzdHJpbmcKCSAgVGhlIGdzdF91cmlfY29uc3RydWN0IGZ1bmN0aW9uIHdhcyBlc2NhcGluZyB0aGUgbG9jYXRpb24gc3RyaW5nCgkgIGFzIGEgZ2VuZXJpYyB1cmkgc3RyaW5nLiBUaGlzIGlzIGluY29ycmVjdCBzaW5jZSB0aGUgc2xhc2goJy8nKQoJICBjaGFyYWN0ZXJzIGFyZSByZXNlcnZlZCBmb3IgdXNlIGluIHRoaXMgZXhhY3QgY2FzZS4gVGhlIHBhdGNoCgkgIGNoYW5nZXMgdGhlIGVzY2FwZV9zdHJpbmcgZnVuY3Rpb24gbW9kZSB0byBoYW5kbGUgdGhlIHBhdGggY29ycmVjdGx5LgoJICBJIGhhdmUgZGVsZXRlZCB0aGUgZXNjYXBlX3N0cmluZyBmdW5jdGlvbiBzaW5jZSBpdCBpcyBubyBsb25nZXIgYmVpbmcKCSAgdXNlZCBhbmQgaGF2ZSBjcmVhdGVkIGEgdW5pdCB0ZXN0IGZvciB0aGUgZnVuY3Rpb24uIEkgaGF2ZSBhbHNvCgkgIGRlcHJlY2F0ZWQgdGhpcyBmdW5jdGlvbiBpbiBmYXZvdXIgb2YgdGhlIEdzdFVyaSBBUEkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3ODcKCjIwMTctMDYtMDcgMTE6NDI6MjggLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEbyBub3QgdXNlIHBhdGggc2VwYXJhdG9yIGluIHRlc3QgbmFtZXMKCSAgQXZvaWRpbmcgd2FybmluZ3MgbGlrZToKCSAgV0FSTklORzogVGFyZ2V0ICJlbGVtZW50cy9hdWRpb2FtcGxpZnkiIGhhcyBhIHBhdGggc2VwYXJhdG9yIGluIGl0cyBuYW1lLgoKMjAxNy0wNS0zMSAyMDo0MDowMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQdXQgY29ycmVjdCBhbm5vdGF0aW9ucyBvbiBnc3RfYmluX2FkZCgpIHRvbwoKMjAxNy0wNS0yMyAwMDo1MToxMiArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBIb2xkIG9iamVjdCBsb2NrIHdoaWxlIHVwZGF0aW5nIGxhdGVuY3kKCSAgT3RoZXJ3aXNlIGluIGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KCksIGl0IGVuZGVkIHVwCgkgIHNvbWV0aW1lcyB0aGlua2luZyBpdCB3YXNuJ3QgLTEgd2hlbiBpdCB3YXMgYWN0dWFsbHkuCgoyMDE3LTA1LTIyIDEyOjAxOjQxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEFkZCBtaXNzaW5nIGFubm90YXRpb25zIHRvIGdldF92YWx1ZV9hcnJheSgpIC8gZ2V0X3ZhbHVlX2dfYXJyYXkoKQoJICBTYW1lIGFzIGFscmVhZHkgdXNlZCBpbiBHc3RDb250cm9sQmluZGluZy4KCjIwMTctMDUtMjEgMTg6MTE6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSAgbWVzb246IGFjdHVhbGx5IHJlbW92ZSBjb25maWcuaC5tZXNvbiBhcyB3ZWxsCgoyMDE3LTA1LTIxIDE5OjE2OjU3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgcHJvdGVjdGlvbjogRml4IGFubm90YXRpb25zIGZvciBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtKCkKCjIwMTctMDUtMjEgMTc6MDQ6MTAgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogU3RvcCBwbHVnaW4gc3ltYm9sIG5hbWUgYXQgZmlyc3QgLgoJICBUaGlzIGlzIGJlY2F1c2UgdGhlIHB5dGhvbiBwbHVnaW4gZW5kcyB1cCBuYW1lZAoJICBsaWJnc3RweXRob24uY3B5dGhvbi0zNW0teDg2XzY0LWxpbnV4LWdudS5zbyBzbyB3ZSBuZWVkIHRvIHN0b3AKCSAgYXQgdGhlIGZpcnN0IGRvdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkyNAoKMjAxNy0wNS0yMSAxNDoyNjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZG9uJ3QgbmVlZCBjb25maWcuaC5tZXNvbiBhbnkgbW9yZQoJICBNZXNvbiBkb2VzIHRoZSBsYXJnZWZpbGUgc3VwcG9ydCBhdXRvbWF0aWNhbGx5IG5vd2FkYXlzLCBhbmQKCSAgY2FuIGdlbmVyYXRlIGEgY29uZmlnLmggZnJvbSBjb25maWd1cmF0aW9uX2RhdGEoKSB3aXRob3V0IGEKCSAgdGVtcGxhdGUgYXMgaW5wdXQuCgoyMDE3LTA1LTIxIDA5OjAyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJKiBtZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBtYWtlIEMrKyBjb21waWxlciBvcHRpb25hbAoJICBJdCdzIG9ubHkgdXNlZCB0byBidWlsZCB0ZXN0cyB0byBzZWUgaWYgb3VyIGhlYWRlcnMgYXJlIEMrKyBjbGVhbi4KCjIwMTctMDUtMjAgMTc6NTc6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IGNoZWNrOiBnZW5lcmF0ZSAuZ2lyIGZpbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjE3MwoKMjAxNy0wNS0yMCAxOTo0Mjo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhcnNlOiBNYWtlIGdzdF9wYXJzZV9jb250ZXh0X2NvcHkoKSBwdWJsaWMgZm9yIGJpbmRpbmdzCgoyMDE3LTA1LTIwIDE2OjQ0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIHRvb2xzOiBkaXN0IG5ldyBnc3Qtc3RhdHMgbWFuIHBhZ2UKCSAgRml4ZXMgbWVzb24gYnVpbGQgZnJvbSB0YXJiYWxsLgoKMjAxNy0wNS0yMCAxNjo0MzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIERpc3QgbWVzb24gcHRwIGhlbHBlciBpbnN0YWxsIHNjcmlwdAoJICBGaXhlcyBtZXNvbiBidWlsZCBmcm9tIHRhcmJhbGwuCgoyMDE3LTA1LTIwIDEzOjI0OjE4ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3M6IEhhbmRsZSBzdWJjbGFzc2VzIGluIGZpbHRlcnMgZXZlbiBmb3IgdW5oYW5kbGVkL2xhenkgbG9hZGVkIHR5cGVzCgkgIFVzaW5nIHR5cGVuYW1lIGluIHRoZSBzZXQgb2YgdW5oYW5kbGVkIHR5cGVzIGluc3RlYWQgb2YgdGhlIHF1YXJrIHNvCgkgIHRoYXQgd2UgYWxzbyBoYW5kbGUgc3ViY2xhc3NlcyBhcyB3aXRoIG90aGVyIGZpbHRlcnMuCgoyMDE3LTA1LTE5IDE5OjIyOjI3ICswMjAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhZGQgbWlzc2luZyBFIGNoYXJhY3RlciB0byB0aGUgbGVnZW5kCgkgIFRoZSBFIGNoYXJhY3RlciBvbiBwYWRzIGluZGljYXRlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIEVPUyBmbGFnLgoKMjAxNy0wNS0xNyAyMTo1MDoyNSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0LXBsdWdpbjogYWxsb3cgJy0nIGluIHBsdWdpbiBmaWxlIG5hbWUKCSAgJy0nIHdpbGwgYmUgdHJhbnNsYXRlZCB0byB1bmRlcnNjb3JlIHdoZW4gZGV0ZXJtaW5pbmcgc3ltYm9sIG5hbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mjc1NgoKMjAxNi0wNi0yMCAxNTo1ODo1OSArMDIwMCAgQ2hyaXN0b3BoIFJlaXRlciA8cmVpdGVyLmNocmlzdG9waEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBnc3Q6IHJlZl9zaW5rKCkgc29tZSBtb3JlIGZsb2F0aW5nIHJlZmVyZW5jZXMgcmV0dXJuZWQgYnkgZ19vYmplY3RfbmV3KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzA2MgoKMjAxNy0wNS0xNSAxODo1ODozOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZ3N0OiBDbGVhciBmbG9hdGluZyBmbGFnIGluIGNvbnN0cnVjdG9yIG9mIGFsbCBHc3RPYmplY3Qgc3ViY2xhc3NlcyB0aGF0IGFyZSBub3Qgb3duZWQgYnkgYW55IHBhcmVudAoJICBJLmUuIG1vc3Qgb2YgdGhlbSB1bmZvcnR1bmF0ZWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMDYyCgoyMDE3LTA1LTE1IDE0OjM0OjU3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IHJlZl9zaW5rKCkgdGhlIGdsb2JhbCBzeXNtZW0gYWxsb2NhdG9yIGFmdGVyIGNyZWF0aW9uCgkgIEl0J3Mgbm90IG93bmVkIGJ5IHRoZSBmaXJzdCBvbmUgdG8gYXNrIGZvciBpdCwgYnV0IGJ5IHRoaXMgdmVyeSBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMDYyCgoyMDE3LTA1LTE1IDE0OjMyOjQ4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgZ3N0OiBEb24ndCByZWZfc2luaygpIEdzdE9iamVjdCBzdWJjbGFzc2VzIGluIGluc3RhbmNlX2luaXQvY29uc3RydWN0b3IKCSAgVGhpcyBpcyBzb21ldGhpbmcgYmluZGluZ3MgY2FuJ3QgaGFuZGxlIGFuZCBpdCBjYXVzZXMgbGVha3MuIEluc3RlYWQKCSAgbW92ZSB0aGUgcmVmX3NpbmsoKSB0byB0aGUgZXhwbGljaXQsIG5ldygpIGNvbnN0cnVjdG9ycy4KCSAgVGhpcyBtZWFucyB0aGF0IGFic3RyYWN0IGNsYXNzZXMsIGFuZCBhbnl0aGluZyB0aGF0IGNhbiBoYXZlIHN1YmNsYXNzZXMsCgkgIHdpbGwgaGF2ZSB0byBkbyByZWZfc2luaygpIGluIHRoZWlyIG5ldygpIGZ1bmN0aW9uIG5vdy4gU3BlY2lmaWNhbGx5CgkgIHRoaXMgYWZmZWN0cyBHc3RDbG9jayBhbmQgR3N0Q29udHJvbFNvdXJjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzA2MgoKMjAxNy0wNS0xNSAxNDozMjowMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZ3N0OiBDb3JyZWN0bHkgYW5ub3RhdGUgZnVuY3Rpb25zIHRha2luZyBmbG9hdGluZyByZWZlcmVuY2UgcGFyYW1ldGVycyBhbmQgcmV0dXJuaW5nIGZsb2F0aW5nIHJlZmVyZW5jZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk2MAoKMjAxNy0wNS0xNSAxNDoyOTowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBIYW5kbGUgZmxvYXRpbmcgcmVmZXJlbmNlcyBjb25zaXN0ZW50bHkKCSAgSWYgYSBmdW5jdGlvbiB0YWtlcyBhIGZsb2F0aW5nIHJlZmVyZW5jZSBwYXJhbWV0ZXIsIGl0IHNob3VsZCBhbHNvIGJlCgkgIHNpbmtlZCBpbiBlcnJvciBjYXNlcy4gT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiBiZWhhdmVzIGRpZmZlcmVudGx5CgkgIGJldHdlZW4gZXJyb3IgYW5kIG5vcm1hbCBjYXNlcywgd2hpY2ggaXMgaW1wb3NzaWJsZSBmb3IgYmluZGluZ3MgdG8KCSAgaGFuZGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3OTkwCgoyMDE1LTA3LTEwIDE1OjM2OjU5ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdDogRml4IGZsb2F0aW5nIHJlZmVyZW5jZSBpbmNvbnNpc3RlbmNpZXMgaW4gZXJyb3IgY2FzZXMKCSAgSWYgYSBmdW5jdGlvbiB0YWtlcyBhIGZsb2F0aW5nIHJlZmVyZW5jZSBhbmQgc2lua3MgaXQsIGl0IHNob3VsZCBhbHNvIGRvCgkgIHRoYXQgaW4gZXJyb3IgY2FzZXMuIEkuZS4gY2FsbCByZWZfc2luaygpIGZvbGxvd2VkIGJ5IHVucmVmKCkuCgkgIE90aGVyd2lzZSB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIGJlaGF2aW91ciBvZiB0aGUgZnVuY3Rpb24gd2lsbCBiZQoJICBkaWZmZXJlbnQgYmV0d2VlbiB0aGUgZ29vZCBhbmQgdGhlIGVycm9yIGNhc2UsIGFuZCBzaW1wbHkgaW5jb25zaXN0ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3OTkwCgoyMDE3LTA1LTE2IDEzOjMxOjA2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIEFsc28gdXNlIGRlZmF1bHQgdmlzaWJpbGl0eSBmb3IgcGx1Z2lucyBzeW1ib2wKCjIwMTctMDUtMTYgMTM6Mjk6MzggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIHBsdWdpbiBzcGVjaWZpYyBzdGF0aWMgYnVpbGQgb3B0aW9uCgkgIFN0YXRpYyBhbmQgZHluYW1pYyBwbHVnaW5zIG5vdyBoYXZlIHRoZSBzYW1lIGludGVyZmFjZS4gVGhlIHN0YW5kYXJkCgkgIC0tZW5hYmxlLXN0YXRpYy8tLWVuYWJsZS1zaGFyZWQgdG9nZ2xlIGFyZSBzdWZmaWNpZW50LgoKMjAxNy0wNS0xNiAwMDowMjoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGdzdHByaW50ZiB0ZXN0IGxpbmtpbmcKCSAgTXVzdCBsaW5rIGFnYWluc3QgZ3N0cHJpbnQgaGVscGVyIGxpYiB0byB1c2UgcHJpdmF0ZSBzeW1ib2wuCgoyMDE3LTA1LTEwIDEzOjAzOjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogdXNlIGRlZmF1bHQgdmlzaWJpbGl0eSBmb3IgR1NUX0VYUE9SVCBmb3IgZ2NjL2NsYW5nIHRvbwoJICBUaGlzIHdpbGwgYmUgbmVlZGVkIGxhdGVyIHdoZW4gd2Ugc3dpdGNoIHRvIHVzaW5nIC1mdmlzaWJpbGl0eT1oaWRkZW4uCgoyMDE3LTA1LTEwIDEzOjA3OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgZ3N0OiBhZGQgR1NUX0RFUFJFQ0FURURfRk9SKCkgYW5kIGFsc28gZXhwb3J0IGRlcHJlY2F0ZWQgc3ltYm9scwoJICBDYW4ndCB1c2UgYSAjaWZuZGVmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZ3VhcmQgYXJvdW5kIGRlcHJlY2F0ZWQKCSAgZnVuY3Rpb25zIGFueSBtb3JlLCBhcyB0aGV5IHdvbid0IGdldCBleHBvcnRlZCB0aGVuLiBCZXNpZGVzLCB3ZQoJICBnZXQgYSBuaWNlciBlcnJvciBtZXNzYWdlIGZyb20gdGhlIGNvbXBpbGVyIHRlbGxpbmcgdXMgd2hhdCBmdW5jdGlvbgoJICB0byB1c2UgaW5zdGVhZCB0aGlzIHdheS4KCjIwMTctMDUtMTAgMTA6NTY6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZW51bXR5cGVzLmgudGVtcGxhdGU6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ3N0OiBtYXJrIHN5bWJvbHMgZXhwbGljaXRseSBmb3IgZXhwb3J0IHdpdGggR1NUX0VYUE9SVAoJICBPbmUgb21pc3Npb246IGdzdF9hbGxvY2F0b3Jfc3lzbWVtX2dldF90eXBlKCkgd2FzCgkgIGV4cG9ydGVkIGJ1dCBuZXZlciBpbiBhbnkgcHVibGljIGhlYWRlciBmaWxlLgoKMjAxNy0wNS0xMCAwMDoxMToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyX21rZW51bS5weToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkgIGxpYnM6IGNvbnRyb2xsZXI6IG1hcmsgc3ltYm9scyBleHBsaWNpdGx5IGZvciBleHBvcnQgd2l0aCBHU1RfRVhQT1JUCgoyMDE3LTA1LTA5IDE2OjE5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIGxpYnM6IGJhc2U6IG1hcmsgc3ltYm9scyBleHBsaWNpdGx5IGZvciBleHBvcnQgd2l0aCBHU1RfRVhQT1JUCgoyMDE3LTA1LTA5IDE2OjAxOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGxpYnM6IG5ldDogbWFyayBzeW1ib2xzIGV4cGxpY2l0bHkgZm9yIGV4cG9ydCB3aXRoIEdTVF9FWFBPUlQKCjIwMTctMDUtMTMgMTg6MzA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkgIG1lc29uOiBhZGQgb3B0aW9ucyB0byBzZXQgcGFja2FnZSBuYW1lIGFuZCBvcmlnaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjE3MgoKMjAxNy0wNS0xMyAxODoxOTowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogdXNlIHRoZSBmdWxsIHBhdGggdG8gaWdub3JlIGRpcnMKCjIwMTctMDUtMTIgMTc6NDk6MjUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGRvY3M6IHJlbW92ZSBzdHJheSAnLFwnIGZyb20gZG9jIGNvbW1lbnQKCjIwMTctMDItMjUgMTI6MTg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogQWRkIEdzdFJlZmVyZW5jZVRpbWVzdGFtcE1ldGEKCSAgVGhpcyBpcyBhIG1ldGEgdGhhdCBnZW5lcmljYWxseSBhbGxvd3MgdG8gYXR0YWNoIGFkZGl0aW9uYWwgcmVmZXJlbmNlCgkgIHRpbWVzdGFtcHMgdG8gYSBidWZmZXIsIHRoYXQgZG9uJ3QgaGF2ZSB0byByZWxhdGUgdG8gdGhlIHBpcGVsaW5lIGNsb2NrCgkgIGluIGFueSB3YXkuCgkgIEV4YW1wbGVzIG9mIHRoaXMgY291bGQgYmUgYW4gTlRQIHRpbWVzdGFtcCB3aGVuIHRoZSBtZWRpYSB3YXMgY2FwdHVyZWQsCgkgIGEgZnJhbWUgY291bnRlciBvbiB0aGUgY2FwdHVyZSBzaWRlIG9yIHRoZSAobG9jYWwpIFVOSVggdGltZXN0YW1wIHdoZW4KCSAgdGhlIG1lZGlhIHdhcyBjYXB0dXJlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTIxMwoKMjAxNy0wNS0wOSAxNjoyOToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogYnVtcCBtZXNvbiB2ZXJzaW9uIHJlcXVpcmVtZW50IHRvIDAuNDAuMQoKMjAxNi0xMi0xNSAxMjo0ODo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVzOiBBZGQgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGJ1cwoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgaW50ZWdyYXRpb24gd2l0aCBvdGhlciBldmVudCBsb29wcyB0aGF0IHdvcmsgYnkKCSAgcG9sbGluZyBmaWxlIGRlc2NyaXB0b3JzLiBHX0lPX0lOIHdpbGwgYWx3YXlzIGJlIHNldCB3aGVuZXZlciBhIG1lc3NhZ2UKCSAgaXMgYXZhaWxhYmxlIGN1cnJlbnRseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjEyNgoKMjAxNy0wMi0yNyAyMTozODoxMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IFVuaWZ5IHN0YXRpYyBhbmQgZHluYW1pYyBwbHVnaW4gaW50ZXJmYWNlCgkgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgZW50cnkgcG9pbnQgb2YgZWFjaCBwbHVnaW4gaW4gb3JkZXIgdG8gdW5pZnkgdGhlCgkgIGludGVyZmFjZSBmb3Igc3RhdGljIGFuZCBkeW5hbWljIHBsdWdpbi4gV2hhdCB3ZSBkbyBpcyByZXBsYWNlIHRoZQoJICBjdXJyZW50IHN0YXRpYyBwbHVnaW4gaW50ZXJmYWNlIGFuZCBleHRlbmQgdGhlIGR5bWFtaWMgb25lLiBUaGUgcGx1Z2luCgkgIGVudHJ5IHdhcyBhIEMgc3RydWN0dXJlLCBuYW1lICJnc3RfcGx1Z2luX2Rlc2MiLiBXaXRoIHRoaXMgcGF0Y2gsIHRoZQoJICBpbnRlcmZhY2UgaXMgbm93OgoJICBHc3RQcGx1Z2luRGVzYyAqZ3N0X3BsdWdpbl88bmFtZT5fZ2V0X2Rlc2Modm9pZCk7CgkgIFRoZSByZWFzb24gd2UgY2hhbmdlIHRoZSBDIHN0cnVjdHVyZSBpbnRvIGZ1bmN0aW9uLCBpcyB0aGF0IGl0IGlzCgkgIHBvdGVudGlhbGx5IG1vcmUgY29tbW9uIHRvIGhhdmUgZnVuY3Rpb24gcG9pbnRlcnMsIGF2b2lkaW5nIHBvc3NpYmxlCgkgIGJpbmRpbmcgbGFuZ3VhZ2UgbGltaXRhdGlvbi4gQWRkaXRpb25hbGx5IHRvIHRoYXQuIFRoaXMgY2hhbmdlIHByZXZlbnRzCgkgIHRoZSBzeW1ib2xzIGZyb20gY2xhc2hpbmcgYmV0d2VlbiBwbHVnaW5zLCBhbGxvd2luZyB0byBidWlsZCBvbmNlIHRoZQoJICBwbHVnaW4gKGFzc3VtaW5nIHlvdSBoYXZlIC1mUElDKS4KCSAgT24gdGhlIHBsdWdpbiBsb2FkZXIgc2lkZSwgd2Ugc3ltcGx5IGRlcml2ZSB0aGUgc2hhcmVkIG9iamVjdCBiYXNlbmFtZQoJICB0byBleHRyYWN0IHRoZSBwbHVnaW4gbmFtZS4gSWYgdGhpcyBzeW1ib2wgaXMgbm90IGZvdW5kLCB3ZSBmYWxsYmFjayB0bwoJICBnc3RfcGx1Z2luX2Rlc2MgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCgkgIFRoaXMgaGFzIG9uZSBzaWRlIGVmZmVjdCwgd2hpY2ggaXMgdGhhdCB0aGUgc2hhcmVkIG9iamVjdHMgbm93IG5lZWQgdG8KCSAgYmUgbmFtZWQgYWZ0ZXIgdGhlaXIgcGx1Z2luIG5hbWUuIFRoaXMgaXMgZ2VuZXJhbGx5IHRoZSBjYXNlIHdpdGggZmV3CgkgIGV4Y2VwdGlvbnMuIFRoZSBiZW5pZml0IG9mIHRoaXMgbGltaXRhdGlvbiBpcyB0aGF0IHlvdSBjYW4gY29udHJvbCB0aGUKCSAgZ3N0X3BsdWdpbl88bmFtZT5fZGVzYyBjbGFzaCBhdCBmaWxlIGxldmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzQ0CgoyMDE3LTA1LTA5IDA5OjI0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBzZWFyY2ggcGF0aCBmb3Igc2V0Y2FwCgoyMDE3LTA1LTA3IDExOjE3OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbWFrZSBsb2NhbCB2YXJpYWJsZSBzdGF0aWMKCjIwMTctMDUtMDUgMTI6MjM6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL3B0cF9oZWxwZXJfcG9zdF9pbnN0YWxsLnNoOgoJICBtZXNvbjogZmFpbCBzaWxlbnRseSBpbiBwdHAgaGVscGVyIHBvc3QgaW5zdGFsbCBzY3JpcHQKCSAgLi4gaW4gY2FzZSBwZXJtaXNzaW9ucy9jYXBhYmlsaXRpZXMgY291bGQgbm90IGJlIHNldC4KCjIwMTctMDUtMDUgMTI6MDI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogdXNlIGNjLmZpbmRfbGlicmFyeSgpCgkgIGZpbmRfbGlicmFyeSgpIHdhcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIGluIGxhdGVyIHZlcnNpb25zLgoKMjAxNy0wNS0wNSAxMTo0OTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvcHRwX2hlbHBlcl9wb3N0X2luc3RhbGwuc2g6CgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IGFkZCBnc3QtcHRwLWhlbHBlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NDE4CgoyMDE3LTA1LTA1IDA5OjEwOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggaW5kZW50YXRpb24KCSAgTm8gdGFicyBwbGVhc2UuCgoyMDE3LTA1LTA1IDAwOjQ1OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogcmVtb3ZlIG9sZCBjcnVmdCBmcm9tIENMRUFORklMRVMKCSAgVGhlc2UgZmlsZXMgYXJlIG5vIGxvbmdlciBidWlsdCwgc28gbm8gbmVlZCB0byBjbGVhbiB0aGVtLgoKMjAxNy0wNC0yOSAxMTozMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbWVzb24uYnVpbGQ6CgkgIGctaTogbm8gbmVlZCB0byBsb2FkIHJlZ2lzdHJ5IGluIGctaSBzY2FubmVyCgoyMDE3LTA1LTA0IDIxOjM3OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC1lbGVtZW50LWNoZWNrLTEuMC5tNDoKCSAgRG9uJ3QgZ2VuZXJhdGUgZ3N0LWVsZW1lbnQtY2hlY2stMS4wLm00IG9uIHRoZSBmbHkgYW5kIGZpeCBtZXNvbiBidWlsZAoJICBUaGlzIHdpbGwgaW50ZXJmZXJlIHdpdGggJ2dpdCBwdWxsJy4gWW91IHdpbGwgaGF2ZSB0byByZW1vdmUgdGhlCgkgIG9sZCBnZW5lcmF0ZWQgZ3N0LWVsZW1lbnQtY2hlY2stMS4wLm00IG1hbnVhbGx5IGlmIHlvdSdyZSBwdWxsaW5nCgkgIG9uIGEgZGlydHkgYnVpbGQgZGlyZWN0b3J5LCBzb3JyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjE3NAoKMjAxNy0wNS0wNCAyMTowNjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogaW5zdGFsbCBnc3QtZWxlbWVudC1jaGVjay0xLjAubTQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjE3NAoKMjAxNy0wNC0zMCAxMjoxMDo0OSArMDkwMCAgWWFzdXNoaSBTSE9KSSA8eWFzaGlAYXRtYXJrLXRlY2huby5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEFib3J0IHdoZW4gZmFpbGVkIHRvIGNvbnN0cnVjdCB0aGUgc3BlY2lmaWVkIHBpcGVsaW5lCgkgIGdzdF9oYXJuZXNzX25ld19wYXJzZSgpIHJldHVybnMgd2l0aG91dCBhbnkgZXJyb3IgZXZlbiBpZiBpdCBkb2Vzbid0CgkgIGZpbmQgdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgVGhlbiBhIHN1Y2NlZWRpbmcgY2FsbCB0bwoJICBnc3RfaGFybmVzc19zZXRfc2lua19jYXBzX3N0cigpIGNhdXNlcyBhbiBlcnJvciBsaWtlIHRoaXM6CgkgIFVuZXhwZWN0ZWQgY3JpdGljYWwvd2FybmluZzogZ3N0X3BhZF9wdXNoX2V2ZW50OiBhc3NlcnRpb24gJ0dTVF9JU19QQUQgKHBhZCknIGZhaWxlZAoJICBUaGlzIGlzIGEgYml0IGNyeXB0aWMgYW5kIGRvZXNuJ3QgZ2l2ZSB1c2VycyBhbnkgY2x1ZSB3aGF0IHdhcyBnb2luZwoJICBvbi4KCSAgZ3N0X2hhcm5lc3NfbmV3X3BhcnNlKCkgY2FsbHMgZ3N0X2hhcm5lc3NfYWRkX3BhcnNlKCkgd2l0aCBhIG5ld2x5CgkgIGNyZWF0ZWQgZW1wdHkgaGFybmVzcyBhbmQgdGhlIGdpdmVuIHBpcGVsaW5lIGRlc2NyaXB0aW9uIHN0cmluZywgYnV0CgkgIGdzdF9oYXJuZXNzX2FkZF9wYXJzZSgpIGRvZXMgbm90IGhhdmUgYSB3YXkgdG8gcHJvcGFnYXRlIHRoZSBlcnJvcgoJICBiYWNrIHRvIHRoZSBjYWxsZXIuICBTaW5jZSB0aGUgZnVuY3Rpb24sIGdzdF9oYXJuZXNzX2FkZF9wYXJzZSgpLCBpcyBhCgkgIHB1YmxpYyBBUEksIGl0J3Mgbm90IGEgZ29vZCBpZGVhIHRvIGNoYW5nZSBpdHMgc2lnbmF0dXJlLiAgVGhpcyBwYXRjaCwKCSAgaW5zdGVhZCwgbWFrZXMgdGhlIGZ1bmN0aW9uIHRvIGdfZXJyb3IoKSB3aGVuIGl0IGRpc2NvdmVycyBhbnkgZXJyb3IuCgkgIFdpdGggdGhpcyBjaGFuZ2UgdGhlIHNhbWUgZXJyb3IgcHJpbnRzOgoJICAqKiAobXllbGVtZW50LXRlc3Q6MjUzNDUpOiBFUlJPUiAqKjogVW5hYmxlIHRvIGNyZWF0ZSBwaXBlbGluZSAnYmluLiggbXllbGVtZW50ICknOiBubyBlbGVtZW50ICJteWVsZW1lbnQiCgkgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpIGRvZXNuJ3QgcmV0dXJuCgkgIHBhcnRpYWxseSBjb25zdHJ1Y3RlZCBwaXBlbGluZSB3aGVuIEdTVF9QQVJTRV9GTEFHX0ZBVEFMX0VSUk9SUyBpcwoJICBzcGVjaWZpZWQsIGhvd2V2ZXIsIHRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgY2hlY2sgZm9yIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxOTU4CgoyMDE3LTA1LTA0IDE4OjU5OjE0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtZXNvbi5idWlsZDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xMi4wID09PQoKMjAxNy0wNS0wNCAxNTozNjo1NSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTIuMAoKMjAxNy0wNS0wNCAxNTowMDoxNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hc3QucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZnVyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTA1LTAyIDE0OjM1OjUwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRG9uJ3QgcGFzcyBhIE5VTEwgZGVidWcgc3RyaW5nIHRvIGdfdXRmOF92YWxpZGF0ZSgpCgkgIGdfdXRmOF92YWxpZGF0ZSgpIGNyYXNoZXMgb24gTlVMTCwgYnV0IE5VTEwgaXMgdmFsaWQgZm9yIHRoZSBkZWJ1ZwoJICBzdHJpbmcgbm9uZXRoZWxlc3MuCgoyMDE3LTA1LTAyIDE0OjI3OjE0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IENoZWNrIGlmIG1ldGEgdHJhbnNmb3JtX2Z1bmMgaXMgTlVMTCBiZWZvcmUgdXNpbmcgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjA1MAoKMjAxNy0wNS0wMiAxMDozMjo1NCArMDIwMCAgRnLDqWTDqXJpYyBEYWxsZWF1IDxmcmVkZXJpYy5kYWxsZWF1QGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ2hlY2sgaWYgbWV0YSB0cmFuc2Zvcm1fZnVuYyBpcyBOVUxMIGJlZm9yZSB1c2luZyBpdAoJICBBbiB1bnRlc3RlZCBwb2ludGVyIHNlZ2ZhdWx0ZWQgaW4gd2Via2l0IHdoaWxlIHBsYXlpbmcgdmlkZW8KCSAgb24gaW14NiBzYWJyZWxpdGUuIEl0IHR1cm5lZCBvdXQgdGhhdCB0aGUgaW14IHBsdWdpbiBkaWRuJ3QKCSAgaW1wbGVtZW50IHRoZSBtZXRhIHRyYW5zZm9ybSBmdW5jdGlvbi4KCSAgVGhlIGZvbGxvd2luZyBHU1RfREVCVUcgdHJhY2Ugd2FzIHZpc2libGU6CgkgIGdzdGJhc2V0cmFuc2Zvcm0uYzoxNzc5OmZvcmVhY2hfbWV0YWRhdGE6PGNvbnYyPiBjb3B5IG1ldGFkYXRhCgkgIEdzdElteFZwdUJ1ZmZlck1ldGFBUEkKCSAgVGhyZWFkIDI2IHZxdWV1ZTpzcmMgcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KCSAgKGdkYikgYnQKCSAgMHgwMDAwMDAwMCBpbiA/PyAoKQoJICAweDczZjhkN2Q4IGluIGZvcmVhY2hfbWV0YWRhdGEgKGluYnVmPTB4YzliMDIwLCBtZXRhPTB4NDc0YjI0OTAsCgkgIHVzZXJfZGF0YT08b3B0aW1pemVkIG91dD4pIGF0IGdzdGJhc2V0cmFuc2Zvcm0uYzoxNzgxCgkgIDB4NzNlYjNlYTggaW4gZ3N0X2J1ZmZlcl9mb3JlYWNoX21ldGEgKGJ1ZmZlcj1idWZmZXJAZW50cnk9MHhjOWIwMjAsCgkgIGZ1bmM9MHg3M2Y4ZDcwNSA8Zm9yZWFjaF9tZXRhZGF0YT4sCgkgIHVzZXJfZGF0YT11c2VyX2RhdGFAZW50cnk9MHg0NzRiMjRkNCkKCSAgYXQgZ3N0YnVmZmVyLmM6MjIzNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMDUwCgoyMDE3LTA0LTI4IDE5OjQzOjQ5ICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBjaGVjayBub24tbnVsbCBiZWZvcmUgZGVyZWZlcmVuY2UKCSAgSXQgaXMgcG9zc2libGUgdG8gdXNlIGdzdF9kZWluaXQoKSB3aXRob3V0IHJlZ2lzdGVyaW5nIHRoZSBiYXNlCgkgIGNsYXNzZXMuIEZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBhbmQKCSAgY2FsbCB0aGUgcHJvZ3JhbSB3aXRoIGFuIGludmFsaWQgcGFyYW1ldGVyLiBJbiB0aGF0IGNhc2UsCgkgIGdzdF9kZWluaXQoKSB3aWxsIGxlYWQgdG8gYSBzZWdtZW50YXRpb24gZmF1bHQsIHNpbmNlIHRoZXJlIGlzIGEKCSAgZGVyZWZlcmVuY2UgdG8gYSBwb2ludGVyIHRoYXQgaXMgbnVsbC4KCSAgVGhpcyBwYXRjaCB2YWxpZGF0ZXMgaWYgdGhlIHR5cGUgaXMgbm9uLW51bGwgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCSAgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE5MTQKCjIwMTctMDQtMjggMTE6NTc6NDEgKzAyMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG9wZW5jdiB0byBiYWQgbGlicwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxODg5Cgo9PT0gcmVsZWFzZSAxLjExLjkxID09PQoKMjAxNy0wNC0yNyAxNzoyNDowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTEuOTEKCjIwMTctMDQtMjcgMTU6NDg6MzMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXN0LnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2Z1ci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wNC0yNyAxNToyMToyNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2FzdC5wbzoKCSogcG8vZnVyLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNy0wNC0yNCAyMDoyNzozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjBhZWVmNiB0byA0OGE1ZDg1CgoyMDE3LTA0LTIxIDE1OjA0OjMyICswMjAwICBLb29wIE1hc3QgPGt3bUByYWluYm93LXJ1bm5lci5ubD4KCgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBNZXNvbjogYWxzbyBidWlsZCBhbmQgaW5zdGFsbCBnc3Qtc3RhdHMtMS4wIGFuZCBpdCdzIG1hbiBwYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNTg1CgoyMDE3LTA0LTIxIDE1OjAzOjE4ICswMjAwICBLb29wIE1hc3QgPGt3bUByYWluYm93LXJ1bm5lci5ubD4KCgkqIHRvb2xzL2dzdC1zdGF0cy0xLjAuMToKCSAgQWRkIHZlcnkgc2ltcGxlIG1hbiBwYWdlIGZvciBnc3Qtc3RhdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE1ODUKCjIwMTctMDQtMjEgMTA6NTE6NTkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jOiBGaXggc29tZSBkb2N0c2luZyBtYWtpbmcgR0kgaGFwcHkKCjIwMTctMDQtMDYgMTc6NTE6MjkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jOiBGaXggR3N0Q2hhbmdlU3RhdGUgZG9jc3RyaW5nCgoyMDE3LTA0LTE5IDE3OjMxOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogTW92ZSBkZWJ1ZyBvdXRwdXQgaW4gZm9yX2VhY2hfdGhyZXNob2xkX2J5X2VudHJ5KCkgdG8gVFJBQ0UgbGV2ZWwKCSAgSXQncyBvdGhlcndpc2UgYXBwZWFyaW5nIG1hbnksIG1hbnkgdGltZXMgaW4gbG9ncyBhbmQgdXN1YWxseSBpcyBub3RoaW5nCgkgIHlvdSdyZSBpbnRlcmVzdGVkIGluLgoKMjAxNy0wMy0zMSAxMjoyMjowMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogZml4IG1lc3NhZ2UgbGVhayBpbiBzZWVrIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDc1NwoKMjAxNy0wMy0yOSAxOToyNjo1MyArMDkwMCAgWWFzdXNoaSBTSE9KSSA8eWFzaGlAYXRtYXJrLXRlY2huby5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHR5cG8gaW4gZGVidWcgbG9nIG91dHB1dAoJICBUaGlzIHVuYmFsYW5jZWQgY2xvc2luZyBwYXJlbnRoZXNpcyBpcyBsZWZ0b3ZlciBmcm9tIHRoZSBjb21taXQKCSAgOGI3MzlkOTFlNy4gSXQgdXNlZCB0byB3cmFwIHRoZSBjYXBzIGJ1dCB3ZSBkb24ndCBzZWVtIHRvIGRvIHRoYXQgaW4KCSAgdGhlIGN1cnJlbnQgY29kZS4KCSAgU28sIGp1c3QgcmVtb3ZlIGl0LiBObyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGNoYW5nZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE0ODQKCjIwMTctMDQtMTAgMTY6Mjg6NTcgKzAyMDAgIFJpY28gVHpzY2hpY2hob2x6IDxyaWNvdHpAdWJ1bnR1LmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogQSBjb3VwbGUgZm9yIEdJUi1nZW5lcmF0aW9uIGZpeGVzCgoyMDE3LTA0LTEyIDA5OjQ4OjUzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgY29udHJvbGxlciBlbnVtIGZpbGUgYXMgZ2VuZXJhdGVkIHNvdXJjZXMKCSAgQXZvaWRpbmcgYnVpbGQgZmFpbHVyZSBsaWtlCgkgIGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvdGhpYmxhaHV0ZS9nc3QtYnVpbGQtZ2U5bTUvYnVpbGQvMS4wLjI4NTcKCjIwMTctMDQtMTEgMjA6MTk6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgbWVzb246IGRpc3QgbmV3IG1lc29uIGJ1aWxkIHNjcmlwdAoKMjAxNy0wNC0xMSAyMDoxNjo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlci5oOgoJICBjb250cm9sbGVyOiBpbmNsdWRlIG5ldyBwcm94eWNvbnRyb2xiaW5kaW5nIGhlYWRlcgoJICBBbmQgZml4IGluY2x1ZGVzIGluIGRvY3MgdG8ganVzdCBpbmNsdWRlIHRoZSBtYWluIGhlYWRlciAodGhlCgkgIGluY2x1ZGUgZm9yIHRoZSBwcm94eWNvbnRyb2xiaW5kaW5nIHdhcyB3cm9uZyBpbiB0aGUgZG9jcykuCgoyMDE3LTA0LTExIDIwOjE2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIG1vcmUKCjIwMTctMDQtMTEgMTE6NTI6MjAgLTA0MDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSAgbWVzb246IE9ubHkgY2hlY2sgdGhlIGZpcnN0IHBhcmFtZXRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMTU1CgoyMDE3LTA0LTExIDEwOjE3OjQwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSAgbWVzb246IENoZWNrIGJpc29uIGFuZCBmbGV4IGFyZSByZWNlbnQgZW5vdWdoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODExNTUKCjIwMTctMDQtMTAgMjM6NDg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM5YWMyZjUgdG8gNjBhZWVmNgoKMjAxNy0wNC0xMCAxMjoyNDowNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFjY2VwdCBOVUxMIGFzIGEgc3RydWN0dXJlCgkgIFNvbWUgR3N0U3RydWN0dXJlIHByb3BlcnRpZXMgZGVmYXVsdCB0byBOVUxMLCBzbyBpdCBzaG91bGQKCSAgYmUgYSBzdXBwb3J0ZWQgdmFsdWUuCgkgIFdpdGggdW5pdCB0ZXN0LgoKMjAxNy0wNC0xMCAxNDoyNjo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IEZpeCBidWlsZCB3aXRoIHNyY2RpciE9YnVpbGRkaXIKCjIwMTctMDQtMTAgMTM6NTI6MTcgKzAzMDAgIFJpY28gVHpzY2hpY2hob2x6IDxyaWNvdHpAdC1vbmxpbmUuZGU+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiBBZGQgbWlzc2luZyBzb3VyY2VzL2hlYWRlcnMgdG8gdGhlIEdJUiBidWlsZAoKMjAxNy0wNC0wOSAxMjoxNjozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBbmQgYWN0dWFsbHkgbWFrZSB0aGUgY29udHJvbGxlciBta2VudW1zIHJ1bGVzIHdvcmsKCjIwMTctMDQtMDkgMTI6MDk6MzMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBjaGVjayBmb3IgZ2xpYi1ta2VudW1zCgoyMDE3LTA0LTA5IDEyOjAyOjQzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyX21rZW51bS5weToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSAgY29udHJvbGxlcjogR2VuZXJhdGUgR0xpYiBlbnVtcyBhdXRvbWF0aWNhbGx5CgoyMDE3LTA0LTA0IDE3OjUzOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIERvbid0IHVzZSBkZXByZWNhdGVkIGdfb2JqZWN0X25ld3YoKQoJICBVc2UgZ19vYmplY3RfbmV3KCkgaW5zdGVhZCB3aGljaCBub3dhZGF5cyBoYXMgYSBzaG9ydGN1dCBmb3IgdGhlCgkgIG5vLXByb3BlcnRpZXMgY2hlY2suIEl0IHN0aWxsIGRvZXMgYW4gZXh0cmEgR1R5cGUgY2hlY2sgaW4gdGhlCgkgIGZ1bmN0aW9uIGd1YXJkLCBidXQgdGhlcmUncyBhIHBlbmRpbmcgcGF0Y2ggdG8gcmVtb3ZlIHRoYXQKCSAgYW5kIGl0J3MgaGFyZGx5IGdvaW5nIHRvIGJlIGEgcGVyZm9ybWFuY2UgaXNzdWUgaW4gcHJhY3RpY2UsCgkgIGV2ZW4gbGVzcyBzbyBvbiBhIHN5c3RlbSB0aGF0J3MgY29tcGlsZWQgd2l0aG91dCBydW4tdGltZSBjaGVja3MuCgkgIEFsdGVybmF0aXZlIHdvdWxkIGJlIHRvIG1vdmUgdG8gdGhlIG5ldyBnX29iamVjdF9uZXdfcHJvcGVydGllcygpCgkgIHdpdGggYSBmYWxsYmFjayBkZWZpbmUgZm9yIG9sZGVyIGdsaWIgdmVyc2lvbnMsIGJ1dCBpdCBtYWtlcyB0aGUKCSAgY29kZSBsb29rIG1vcmUgdW53aWVsZHkgYW5kIGRvZXNuJ3Qgc2VlbSB3b3J0aCBpdC4KCSAgRml4ZXMgZGVwcmVjYXRpb24gd2FybmluZ3Mgd2hlbiBidWlsZGluZyBhZ2FpbnN0IG5ld2VyIEdMaWIgdmVyc2lvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA5MDMKCjIwMTctMDQtMDcgMTM6NDk6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3Q6IEFkZCB0ZXN0IGZvciBzZXJpYWxpemluZy9kZXNlcmlhbGl6aW5nIE5VTEwgc3RyaW5ncwoKPT09IHJlbGVhc2UgMS4xMS45MCA9PT0KCjIwMTctMDQtMDcgMTY6MzA6MzUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMS45MAoKMjAxNy0wNC0wNyAxNTowNDoxMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDMtMDggMTI6MDk6NDUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRG9uJ3QgcHJpbnQgd2FybmluZyBvbiBOVUxMIHN0cmluZ3Mgb3IgcG9pbnRlcnMKCSAgUHV0dGluZyBOVUxMIGZvciB0aG9zZSBpcyBhIHZhbGlkIHNlcmlhbGl6YXRpb24gZm9yIHRoZSBOVUxMIHZhbHVlLgoKMjAxNy0wNC0wNSAxNjozMjozOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3Q6IFVzZSBHc3RDbG9ja1RpbWVEaWZmIGluc3RlYWQgb2YgR3N0Q2xvY2tUaW1lIGFzIHR5cGUgZm9yIEdTVF9TRUNPTkQgYW5kIGZyaWVuZHMKCSAgVGhleSB3ZXJlIChzaWduZWQhKSBnaW50NjQgYmVmb3JlIGJlY2F1c2Ugb2YgR19HSU5UNjRfQ09OU1RBTlQoKSBhbHJlYWR5CgkgIGFuZCB0aGV5IGFyZSBhY3R1YWxseSB1c2VkIGluIHNpZ25lZCBjYWxjdWxhdGlvbnMuCgkgIFdpdGggdGhpcyBjaGFuZ2Ugd2UgYXQgbGVhc3QgZW5zdXJlIHRoYXQgYW4gaW50ZWdlciB0eXBlIG9mIHRoZSBjb3JyZWN0CgkgIHNpemUgaXMgdXNlZCBmb3IgR0kgKGl0IHdhcyB1c2luZyBnaW50IGJlZm9yZSkuCgoyMDE3LTA0LTA1IDE1OjQ2OjI2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGdzdDogVXBkYXRlIHNvbWUgbW9yZSB0eXBlcyBhbmQgdmFsdWVzIG9mIGNvbWJpbmVkLWZsYWdzIGNvbnN0YW50cwoKMjAxNy0wNC0wNSAxNDo0NTowMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBnc3Q6IENhc3QgY29tYmluZWQtZmxhZ3MgY29uc3RhbnRzIHRvIHRoZWlyIHJlc3BlY3RpdmUgdGFyZ2V0IHR5cGVzCgkgIFRoaXMgbWFrZXMgQysrIGNvbXBpbGVycyBhIGJpdCBtb3JlIGhhcHB5IHdpdGhvdXQgaGF2aW5nIHRoZSB1c2VyIG9mIHRoZQoJICBjb25zdGFudHMgY2FzdC4gSXQgYWxzbyBwcm92aWRlcyB0aGUgY29ycmVjdCB0eXBlIGluZm9ybWF0aW9uIHRvIEdJLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwOTIzCgoyMDE3LTA0LTA1IDE0OjQyOjE2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGdzdDogU2V0IHZhbHVlcyBhbmQgdHlwZXMgZm9yIGNvbWJpbmVkLWZsYWdzIGNvbnN0YW50cyBpbiBHSSBhbm5vdGF0aW9ucwoKMjAxNy0wNC0wNSAxNDoyNjozMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogUHJvcGVybHkgc2V0IHZhbHVlIGFuZCB0eXBlIGZvciBHU1RfRkxBR19TRVRfTUFTS19FWEFDVCBpbiBHSSBhbm5vdGF0aW9ucwoJICBTdG9yaW5nIGEgLTEgaW5zaWRlIGFuIHVuc2lnbmVkIGludGVnZXIgY29uZnVzZXMgR0lSIGJhc2VkIGJpbmRpbmdzCgkgIGdlbmVyYXRvcnMuCgoyMDE3LTA0LTA0IDE2OjI4OjQ1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9oZWxwZXJzL2dzdC5pbjoKCSAgY29tcGxldGlvbjogVHJ5IHRvIGF2b2lkIHBhcnNpbmcgc3VtbWFyeQoJICBJbiBHRVMsIHRoZSBzdW1tYXJ5IHJlZmVycyB0byBvcHRpb25zIHRoYXQgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gYnVpbHQKCSAgYWdhaW5zdCBnc3QtdmFsZGlhdGUuIFRob3NlIHdoZXJlIHBpY2tlZCBieSBvdXIgcmVnZXguIFRoaXMgcGF0Y2ggYWRkIGEKCSAgaW5pdGlhbCBncmVwIHRvIHRyeSBhbmQgZmlsdGVyLW91dCBhcyBiZXN0IGFzIHBvc3NpYmxlIHRoZSBjb250ZW50IHRvCgkgIHdoaWNoIHdlIHdpbGwgZXh0cmFjdCB0aGUgY29tbWFuZCBsaXN0LgoKMjAxNy0wNC0wNCAxNDoyNTo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vaGVscGVycy9tZXNvbi5idWlsZDoKCSogZGF0YS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgYmFzaCBjb21wbGV0aW9uIHN1cHBvcnQKCjIwMTctMDQtMDQgMTM6NDI6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZGF0YS9NYWtlZmlsZS5hbToKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vaGVscGVycy8uZ2l0aWdub3JlOgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9oZWxwZXJzL2dzdC5pbjoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBjb21wbGV0aW9uOiBQbGFjZSB0aGUgY29tcGxldGlvbiBoZWxwZXIgaW4gbGliZXhlYwoJICBUaGlzIHBhdGNoIHJlb3JnYW5pemUgdGhlIGJhc2ggY29tcGxldGlvbiBzY3JpcHRzIGluIG9yZGVyIHRvIGluc3RhbGwKCSAgdGhlIGJpbmFyeSBoZWxwZXIgKGdzdC1jb21wbGV0aW9uLWhlbHBlcikgaW4gbGliZXhlYyBwYXRoIHJhdGhlciB0aGVuCgkgIHNoYXJlIGZvbGRlci4gTW9zdCBMaW51eCBoaWVyYXJjaHkgY29tcGxpYW5jZSByZXF1aXJlcyB0aGF0IG5vIGJpbmFyeQoJICBleGVjdXRhYmxlIGFyZSBwbGFjZWQgaW4gc2hhcmUuIFdlIGFsc28gY2xlYW51cCB0aGUgdW51c2VkIC5wYyBlbnRyaWVzCgkgIGFuZCByZW1vdmUgY29weSBwYXN0ZWQgcGFydHMgb2YgdGhlIHNjcmlwdC4gTm90ZSB0aGF0IG90aGVyIHByb2plY3QKCSAgaW5jbHVkaW5nIHRoZSBjb21tb24gaGVscGVyLCBzaG91bGQgbm93IHVzZSAkX0dTVF9IRUxQRVIgdG8gcmVhZAoJICB0aGUgYmluYXJ5IGV4ZWN1dGFibGUgZ3N0LWNvbXBsZXRpb24taGVscGVyLiBUaGlzIGhlbHBlciBpcyBub3QgbG9uZ2VyCgkgIHZlcnNpb24sIGFzIGl0IGlzIHBsYWNlZCBpbiBhIHZlcnNpb25uZWQgc3ViZm9sZGVyCgkgIChsaWJleGVjL2dzdHJlYW1lci4xMCkganVzdCBsaWtlIHRoZSBvdGhlciBoZWxwZXJzIChzY2FubmVyIGFuZCBwdHApLgoKMjAxNy0wMy0zMSAxMToyMjo0OSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGZpeCBHc3RWYWx1ZSBsZWFrIGluIHN0cnVjdHVyZV9maWVsZF91bmlvbl9pbnRvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA3NTEKCjIwMTctMDMtMzEgMTA6Mzg6MTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSAgc3RyZWFtY29sbGVjdGlvbjogZml4IHJhY3kgdXNlci1hZnRlci1mcmVlCgkgIFRoZSBpc3N1ZSBoYXBwZW5zIHdoZW4gdGhlIHN0cnVjdHVyZSBpcyBwcmludGVkIGJ5IHRoZSBsb2dnaW5nCgkgIHN1YnN5c3RlbTogdGhlIG9iamVjdCBpcyBpbmNsdWRlZCBpbiB0aGUgbG9nLCBhbmQgdGhpcyB3aWxsIGNhdXNlIHRoZQoJICBmdWxsIG9iamVjdCBwcmludG91dCB0byBiZSBkb25lIHRoZXJlLiBIb3dldmVyLCBhZnRlciBkaXNwb3NlLCB0aGUgcXVldWUKCSAgd2FzIGFscmVhZHkgY2xlYXJlZCwgc28gdGhlIGFjY2VzcyB0byBpdCAodG8gcHJpbnQgdGhlIG9iamVjdCkgd291bGQKCSAgYXNzZXJ0LCBhcyB0aGUgcXVldWUgd2FzIGFscmVhZHkgZnJlZWQuIFRoZSBwYXRjaCBjaGFuZ2VzIGl0IHNvIHRoYXQgdGhlCgkgIHF1ZXVlIGlzIG1lcmVseSBlbXB0eSwgYW5kIG9ubHkgZnJlZWQgaW4gX2ZpbmFsaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MjkzCgoyMDE3LTAzLTI3IDE4OjMwOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWRkIHBhZCBFT1MgZmxhZyBpbiBwaXBlbGluZSBkb3QgZmlsZSBkdW1wcwoJICBCdXQgb25seSBpZiBzZXQuIEhlbHBzIGRlYnVnIGlzc3VlcyB3aXRoIEVPUyBwcm9wYWdhdGlvbi4KCjIwMTctMDMtMjcgMTg6Mjc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBwcmludCBzdHJ1Y3R1cmUgcHJvcGVydHkgbm90aWZpZXMgbmljZXIKCSAgT25lIGxlc3MgbGF5ZXIgb2YgZXNjYXBpbmcsIGJ1dCBzdGlsbCBsb3RzIG9mIHVnbHkgXC4KCjIwMTctMDMtMjQgMTQ6MzM6MTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBGaXggd2luMzIgbGliZ3N0cmVhbWVyLmRlZiBvcmRlcmluZwoJICBUaGlzIHNob3VsZCBmaXggbWFrZSBkaXN0Y2hlY2sKCjIwMTctMDMtMTUgMTc6MzE6MzkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlYzogRml4IGFycmF5IHZhbGlkYXRpb24gbG9naWMKCSAgQSBwYXJhbXNwZWMgdmFsaWRhdGlvbiBzaG91bGQgbW9kaWZ5IHRoZSBjb250ZW50IHRvIG1hdGNoIHdoYXQgdGhlIHNwZWMKCSAgcmVxdWlyZXMgYW5kIHJldHVybiBUVVJFIGlmIGEgbW9kaWZpY2F0aW9uIGhhcHBlbmVkLiBUaGlzIHByZXZpb3VzCgkgIGltcGxlbWVudGF0aW9uIHdvdWxkIG9ubHkgZml4IHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBhbmQgcmV0dXJuLgoJICBJdCB3YXMgYWxzbyByZXR1cm4gVFJVRSBmb3IgZW1wdHkgYXJyYXksIHdoaWxlIG5vIG1vZGlmaWNhdGlvbiB3YXMKCSAgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwMTExCgoyMDE3LTAzLTIyIDEzOjM1OjMyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBhcnJheS9mcmFjdGlvbjogSW4gcGFyYW0gdHlwZXMsIHVzZSBnZXRfdHlwZSgpIGZ1bmN0aW9uIGRpcmVjdGx5CgkgIFRoZSBHU1RfVFlQRSBtYWNybyBwb2ludHMgdG8gZ2xvYmFsIHZhcmlhYmxlcyBpbml0aWFsaXplZCBieSB0aGUKCSAgZmlyc3QgY2FsbCB0byBnZXRfdHlwZS4gVGhpcyBpcyBub3QgYW4gaXNzdWUgaWYgeW91IGNhbGwgZ3N0X2luaXQoKQoJICBidXQgdW5mb3J0dW5hdGx5IHB5Z2kgd2lsbCBuZWVkIHRvIGFjY2VzIHRoZSBwYXJhbSB0eXBlIGJlZm9yZQoJICBpbml0IGNhbiBiZSBjYWxsZWQuIFRoaXMgcmVtb3ZlcyBhbiBhc3NlcnRpb24uCgoyMDE3LTAzLTIyIDEzOjMzOjQ3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBmcmFjdGlvbi9hcnJheTogTWFrZSBnZXRfdHlwZSgpIHRocmVhZCBzYWZlCgkgIFRob3NlIGFyZW4ndCBzdXBwb3NlIHRvIGJlIGNhbGxlZCBmcm9tIG11bHRpcGxlIHRocmVhZCwgYnV0IGFsbAoJICBmdW5kYW1lbnRhbCBnZXRfdHlwZSgpIGZ1bmN0aW9uIGFyZSB0aHJlYWQgc2FmZS4gRml4IGl0IHRvCgkgIGJlIGNvbnNpc3RlbnQgYW5kIGl0IG1heSBoZWxwIGlmIHdlIGNoYW5nZSB0aGUgdHlwaW5nIG1lY2hhbmlzbQoJICBpbiBHU3RyZWFtZXIgY29tZSBkYXkuCgoyMDE3LTAzLTIwIDE2OjQ2OjMzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogQWRkIGhlbHBlcnMgdG8gZ2V0L3NldCBhcnJheSBwcm9wZXJ0aWVzCgkgIFRoaXMgaXMgdG8gaGVscCBiaW5kaW5ncyBhY2Nlc3MgcHJvcGVydGllcyBvZiB0eXBlIEdTVF9UWVBFX0FSUkFZLgoJICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0L3NldCB0aGUgcHJvcGVydHkgYW5kIGNvbnZlcnQgZm9ybS90bwoJICBHVmFsdWVBcnJheS4KCSAgTmV3IEFQSToKCSAgZ3N0X3V0aWxfc2V0X29iamVjdF9hcnJheQoJICBnc3RfdXRpbF9nZXRfb2JqZWN0X2FycmF5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM3NTQKCjIwMTctMDMtMjAgMTU6NTA6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ2V0L3NldF9hcnJheS9saXN0IHVzaW5nIEdWYWx1ZUFycmF5CgkgIFRoaXMgYWRkcyBhIGJpbmRpbmcgZnJpZW5kbHkgaW50ZXJmYWNlIHRvIGdldCBhbmQgc2V0IGFycmF5cwoJICBhbmQgbGlzdCBpbnRvIEdzdFN0cnVjdHVyZS4KCSAgTmV3IEFQSToKCSAgLSBnc3Rfc3RydWN0dXJlX3NldF9hcnJheQoJICAtIGdzdF9zdHJ1Y3R1cmVfc2V0X2xpc3QKCSAgLSBnc3Rfc3RydWN0dXJlX2dldF9hcnJheQoJICAtIGdzdF9zdHJ1Y3R1cmVfZ2V0X2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzc1NAoKMjAxNy0wMy0yMCAxNTo0MDoyNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHRyYW5zZm9ybWF0aW9uIHRvL2Zyb20gR1ZhbHVlQXJyYXkKCSAgVGhpcyBhbGxvdyB0cmFuc2Zvcm1pbmcgYSBHVmFsdWUgb2YgdHlwZSBHX1RZUEVfVkFMVUVfQVJSQVkgdG8KCSAgYW5kIGZyb20gR1NUX1RZUEVfQVJSQVkvTElTVC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzc1NAoKMjAxNy0wMy0yNCAxNDoyMTozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJICBxdWV1ZWFycmF5OiBBZGQgR19CRUdJTl9ERUNMUyBhbmQgR19FTkRfREVDTFMgdG8gbWFrZSBpdCB1c2FibGUgZnJvbSBDKysgY29kZQoKMjAxNy0wMy0yNCAxNzo1MzozMSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWNzOiBVc2UgZ3N0X3ZhbHVlX2FycmF5X2dldF90eXBlKCkgZm9yIEdzdFBhcmFtU3BlY0FycmF5IHR5cGUKCSAgV2hlbiByZWdpc3RlcmluZyBHc3RQYXJhbVNwZWNBcnJheSwgdXNlIHRoZSBnc3RfdmFsdWVfYXJyYXlfZ2V0X3R5cGUoKQoJICBmdW5jdGlvbiB0byBnZXQgdGhlIHR5cGUsIHJhdGhlciB0aGFuIHRoZSBHU1RfVFlQRV9BUlJBWSBtYWNybywgd2hpY2gKCSAgZ2V0cyBpdCBmcm9tIHRoZSBfZ3N0X3ZhbHVlX2FycmF5X3R5cGUsIHdoaWNoIGlzIGluIHR1cm4gb25seQoJICBpbml0aWFsaXNlZCBkdXJpbmcgZ3N0X2luaXQoKQoJICBGaXhlcyBjcml0aWNhbHMgd2l0aCAocHl0aG9uKSBiaW5kaW5ncyB0aGF0IGxvb2sgdXAgYWxsIHRoZQoJICB0eXBlcyBmcm9tIHRoZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW5mbyBhcyBzb29uIGFzIHRoZXkKCSAgYXJlIGltcG9ydGVkLgoJICAvdXNyL2xpYjY0L3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL2dpL21vZHVsZS5weToxNzg6IFdhcm5pbmc6IGdfcGFyYW1fdHlwZV9yZWdpc3Rlcl9zdGF0aWM6IGFzc2VydGlvbiAnZ190eXBlX25hbWUgKHBzcGVjX2luZm8tPnZhbHVlX3R5cGUpICE9IE5VTEwnIGZhaWxlZAoJICBnX3R5cGUgPSBpbmZvLmdldF9nX3R5cGUoKQoJICAvdXNyL2xpYjY0L3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL2dpL21vZHVsZS5weToyMTI6IFdhcm5pbmc6IGdfdHlwZV9nZXRfcWRhdGE6IGFzc2VydGlvbiAnbm9kZSAhPSBOVUxMJyBmYWlsZWQKCSAgdHlwZV8gPSBnX3R5cGUucHl0eXBlCgkgIC91c3IvbGliNjQvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvZ2kvbW9kdWxlLnB5OjIyNjogV2FybmluZzogZ190eXBlX2dldF9xZGF0YTogYXNzZXJ0aW9uICdub2RlICE9IE5VTEwnIGZhaWxlZAoJICBnX3R5cGUucHl0eXBlID0gd3JhcHBlcgoJICAvdXNyL2xpYjY0L3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL2dpL21vZHVsZS5weToyMjY6IFdhcm5pbmc6IGdfdHlwZV9zZXRfcWRhdGE6IGFzc2VydGlvbiAnbm9kZSAhPSBOVUxMJyBmYWlsZWQKCSAgZ190eXBlLnB5dHlwZSA9IHdyYXBwZXIKCjIwMTctMDMtMTcgMjI6MzI6MTkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBmb3JnZXQgZXJyb3IgcmV0dXJucyB3aGVuIHByb2Nlc3NpbmcgbW9yZQoJICBJZiBwYXJzaW5nIHJldHVybnMgYSBub24tT0sgZmxvdyByZXR1cm4gaW4gdGhlIG1pZGRsZQoJICBvZiBwcm9jZXNzaW5nIGFuIGlucHV0IGJ1ZmZlciwgZG9uJ3Qgb3ZlcndyaXRlIHRoYXQKCSAgaWYgYSBsYXRlciByZXR1cm4gaXMgT0sgYWdhaW4gLSB0aGUgc3ViY2xhc3MgbWlnaHQKCSAgcmV0dXJuIG5vdC1saW5rZWQgaW4gdGhlIG1pZGRsZSwgYW5kIHRoZW4gZGlzY2FyZAoJICBzdWJzZXF1ZW50IGRhdGEgd2l0aG91dCBwdXNoaW5nIHdoaWxlIHJldHVybmluZyBPSy4KCSAgQSBsYXRlciBzdWNjZXNzIGRvZXNuJ3QgaW52YWxpZGF0ZSB0aGUgZWFybGllciBmYWlsdXJlLAoJICBidXQgd2Ugc2hvdWxkIGNvbnRpbnVlIHByb2Nlc3NpbmcgYWZ0ZXIgbm90LWxpbmtlZCwgc28KCSAgYXMgdG8ga2VlcCBwYXJzZSBzdGF0ZSBjb25zaXN0ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5ODMxCgoyMDE3LTAzLTIwIDE2OjU0OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC0xLjAuMToKCSAgdG9vbHM6IHJlcGxhY2UgbWVudGlvbnMgb2YgJ21hZCcgb24gdGhlIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlCgkgIFRoZSAnbWFkJyBwbHVnaW4gaGFzIGJlZW4gcmVtb3ZlZC4gTWVudGlvbiBtcGcxMjNhdWRpb2RlYyBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MTQwCgoyMDE3LTAzLTEzIDExOjA4OjAxICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCB1bmlvbiBvZiBpbnQgcmFuZ2UgYW5kIGludCB3aGVuIGV4dGVuZGluZyBvbiBhIHNpZGUKCSAgVGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIHVzZXMgYm91bmRzIHNjYWxlZCBieSB0aGUgc3RlcAoJICBBZGQgdGVzdHMgdG8gY2F0Y2ggdGhvc2UgY2FzZXMKCjIwMTctMDMtMTQgMjI6MTg6MzYgLTA3MDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYXZvaWQgcmV0dXJuIGZsdXNoaW5nIGlmIHdlIGhhdmUgYSBub3QtbGlua2VkCgkgIFJldHVybiB0aGUgY29ycmVjdCBmbG93IHJldHVybiBpbnN0ZWFkIG9mIHJldHVybmluZyBhbHdheXMgZmx1c2hpbmcuCgkgIFRoaXMgd291bGQgY2F1c2UgcXVldWUgdG8gY29udmVydCBub3QtbGlua2VkIHRvIGZsdXNoaW5nIGFuZCBtYWtpbmcKCSAgdXBzdHJlYW0gZWxlbWVudHMgc3RvcC4KCSAgQmFzZWQgb24gdGhlIHByZXZpb3VzIHBhdGNoIGZvciBxdWV1ZTIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY5OTkKCjIwMTctMDEtMjIgMTE6MjY6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCByZXR1cm4gZmx1c2hpbmcgaWYgd2UgaGF2ZSBhIG5vdC1saW5rZWQKCSAgUmV0dXJuIHRoZSBjb3JyZWN0IGZsb3cgcmV0dXJuIGluc3RlYWQgb2YgcmV0dXJuaW5nIGFsd2F5cyBmbHVzaGluZy4KCSAgVGhpcyB3b3VsZCBjYXVzZSBxdWV1ZTIgdG8gY29udmVydCBub3QtbGlua2VkIHRvIGZsdXNoaW5nIGFuZCBtYWtpbmcKCSAgdXBzdHJlYW0gZWxlbWVudHMgc3RvcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Njk5OQoKMjAxNi0wOS0xOCAxMjowMjo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBiaW46IGFkZCBtb3JlIHRlc3RzIGZvciBzdXBwcmVzc2VkIGZsYWdzCgkgIEFkZCB0ZXN0cyB0byBjb25maXJtIGZsYWdzIGFyZSBwZXJzaXN0ZWQgZXZlbiBhZnRlciByZW1vdmluZwoJICBlbGVtZW50cyB0aGF0IGhhdmUgdGhvc2Ugc3VwcHJlc3NlZCBmbGFncwoKMjAxNy0wMy0xMCAxMDoxMzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgYnVmZmVyOiBoYW5kbGUgZ3N0X2J1ZmZlcl9tYXAgZmFpbHVyZXMKCjIwMTctMDMtMTAgMTA6MTI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogdW5sb2NrIG11dGV4IGluIGVycm9yIGNhc2UKCjIwMTctMDMtMDkgMTI6MDk6NTcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0dmFsdWU6IERvIG1vcmUgY2hlY2tzIHdoZW4gZ3Vlc3NpbmcgYXQgZmxhZ3NldCBzdHJpbmdzCgkgIElmIGd1ZXNzaW5nIHRoYXQgYSBzdHJpbmcgbWF0Y2hlcyBhIGZsYWdzZXQsIGJlIG1vcmUgdGhvcm91Z2gKCSAgYXQgY2hlY2tpbmcgdGhhdCB0aGUgc3RyaW5nIGZvbGxvd2luZyBhIHN0cmluZyBvZiBoZXg6aGV4OgoJICBhY3R1YWxseSBsb29rcyBsaWtlIGEgZmxhZyBzZXQgc3RyaW5nLiBBZGQgc29tZSB1bml0IHRlc3RzCgkgIHRvIGNhdGNoIG1vcmUgY2FzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk3NTUKCjIwMTctMDMtMDkgMTI6MDk6NTcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBNYWtlIG1pbi1pbnRlcmxlYXZlLXRpbWUgYSBjb25maWd1cmFibGUgcHJvcGVydHkKCSAgUmVtb3ZlIGEgRklYTUUgYWJvdXQgbWFraW5nIHRoZSBtaW5pbXVtIGludGVybGVhdmUKCSAgYnVmZmVyaW5nIGEgY29uZmlndXJhYmxlIHByb3BlcnR5CgoyMDE3LTAzLTA4IDE0OjUxOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBwcm9tb3RlIGZhY3Rvcnkgbm90IGZvdW5kIGxvZyBtZXNzYWdlIHRvIFdBUk5JTkcKCSAgSW4gbW9zdCBjYXNlcyBwZW9wbGUgcmVhbGx5IHdhbnQgdG8ga25vdyB3aGVuIGFuIGVsZW1lbnQKCSAgY291bGQgbm90IGJlIGNyZWF0ZWQuCgoyMDE3LTAzLTA3IDA4OjIxOjQ4ICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBBbHdheXMgcHJveHkgcG9zaXRpb24vZHVyYXRpb24gcXVlcnkKCSAgYWN0aXZlLXBhZCBzd2l0Y2ggY2F1c2VzIHJlY29uZmlndXJlIGV2ZW50IHdpdGggbG9jayB0YWtlbiwKCSAgYW5kIHVwc3RyZWFtIGVsZW1lbnQgbWlnaHQgcXVlcnkgdGhlIGN1cnJlbnQgcG9zaXRpb24gb3IgZHVyYXRpb24KCSAgYmVmb3JlIHJldHVybmluZyB0aGUgcmVjb25maWd1cmUgZXZlbnQuCgkgIE1lYW53aGlsZSwgZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9saW5rZWRfcGFkKCkgaXMgdXNlZCB0byBnZXQgc3JjcGFkCgkgIGluc2lkZSBvZiBkZWZhdWx0IHF1ZXJ5IGhhbmRsZSwgYW5kIGl0IHRha2VzIGFsc28gbG9jay4KCSAgU2luY2UgaW5wdXRzZWxlY3RvciBpcyBzdGlsbCBsb2NrZWQgYnkgYWN0aXZlLXBhZCBzd2l0Y2gsIGFuZCBzbyB0aGUgcXVlcnkKCSAgY2Fubm90IGJlIGhhbmRsZWQgZnVydGhlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTQ0NQoKMjAxNy0wMy0wMyAxMjo1MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGRvY3VtZW50IHRoYXQgbG9nZ2luZyBtYWNyb3MgZG9uJ3QgbmVlZCBuZXdsaW5lcyBhdCB0aGUgZW5kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk0NTkKCjIwMTctMDItMjQgMjE6MzU6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHNpbmNlIG1hcmtlciB0byBkb2NzIGZvciBuZXcgQVBJCgoyMDE3LTAyLTI0IDIxOjMzOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE3LTAyLTI0IDEwOjIzOjAxIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogT25seSBzY2FuIHBsdWdpbiBmaWxlcyB0aGF0IGVuZCB3aXRoIGFuIGV4dGVuc2lvbgoJICBOb3QgZmlsZSB0aGF0IHdvdWxkIGZvciBzb21lIHJlYXNvbiBlbmQgd2l0aCAnc28nIG9yICdkbGwnLCBldGMuLi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTE3NQoKMjAxNy0wMi0xNyAxNTo0ODoxNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgQVBJIHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIHRhc2sKCSAgQXZvaWRpbmcgdGhlIHVzZXIgdG8gbmVlZCB0byBkZWFsIHdpdGggdGhlIGxvY2tpbmcgaGltc2VsZiBldGMuCgkgIEFQSToKCSAgZ3N0X3BhZF90YXNrX2dldF9zdGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4ODMwCgoyMDE3LTAyLTEzIDE1OjE4OjU5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJICBtZXNvbjogQWRkIGFuIG9wdGlvbiB0byBkaXNhYmxlIHVzYWdlIG9mIGxpYnVud2luZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4MTkzCgoyMDE3LTAyLTI0IDE1OjU5OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVcGRhdGUgdmVyc2lvbgoKMjAxNy0wMi0yNCAxNTozNzozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xMS4yID09PQoKMjAxNy0wMi0yNCAxNTowNjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDEuMTEuMgoKMjAxNy0wMi0yNCAxMjo0NDoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDItMjMgMjA6NTI6MzkgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIGRlc2VyaWFsaXphdGlvbiBmb3IgYXJyYXlzL2xpc3RzIG91dHNpZGUgR3N0U3RydWN0dXJlcwoJICBUaGlzIGlzIG1vc3RseSB1c2VmdWwgZm9yIHByb3BlcnRpZXMgb2YgdGhvc2UgdHlwZXMgd2hlbiB1c2VkIGluCgkgIGdzdC1sYXVuY2ggb3Igc2ltaWxhci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzM3NQoKMjAxNy0wMi0yMyAyMDo1MDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIGEgdHlwZSBhYmJyZXZpYXRpb24gZm9yIEdzdEZsYWdTZXQgaW4gc2VyaWFsaXphdGlvbgoKMjAxNy0wMi0yMyAyMDo0NzozMCArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFsd2F5cyBhZGQgdGhlIHR5cGUgbmFtZSB0byBlbGVtZW50cyB3aGVuIHNlcmlhbGl6aW5nIGFycmF5cy9saXN0cwoJICBCdXQgb25seSB3aGVuIHNlcmlhbGl6aW5nIG91dHNpZGUgb2YgR3N0U3RydWN0dXJlcywgYmVjYXVzZSBpbiBjYXNlIG9mCgkgIEdzdFN0cnVjdHVyZSB0aGUgdHlwZSBpcyBhbHJlYWR5IHByZXByZW5kZWQgdG8gdGhlIGFycmF5L2xpc3QgYW5kIHRoZQoJICBHc3RTdHJ1Y3R1cmUgQVBJIG1ha2VzIHN1cmUgdGhhdCB0aGV5IGhhdmUgdGhlIHNhbWUgImdlbmVyaWMiIHR5cGUgc28KCSAgZGVzZXJpYWxpemF0aW9uIHdvcmtzIHByb3Blcmx5LgoJICBUaGlzIGtlZXBzIHNlcmlhbGl6YXRpb24gb2YgR3N0U3RydWN0dXJlcyB0aGUgc2FtZSBhcyBiZWZvcmUsIGFuZCB0aGUKCSAgR3N0Q2FwcyB1bml0IHRlc3RzIGFscmVhZHkgdGVzdCBmb3IgdGhhdC4gSG93ZXZlciB3aGVuIHNlcmlhbGl6aW5nCgkgIHN0YW5kYWxvbmUgYXJyYXlzL2xpc3RzIGdldCB0aGUgdHlwZXMgYWRkZWQgbm93LgoKMjAxNy0wMi0yMyAyMDoyMjowMyArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IE1vdmUgbGlzdC9hcnJheSBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMgZnJvbSBHc3RTdHJ1Y3R1cmUgdG8gR3N0VmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzM3NQoKMjAxNy0wMi0yMyAyMDoxNjoxNyArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFyYW1zcGVjczogQWRkIEdzdFBhcmFtU3BlY0FycmF5IGZvciBHU1RfVFlQRV9BUlJBWSB0eXBlZCBwcm9wZXJ0aWVzCgkgIFRoZXNlIGFyZSBtb3N0bHkgdXNlZnVsIHRvIGdldCBvdXIgYXV0b21hdGljCgkgIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uIGZyb20gc3RyaW5ncyBhbmQgc2ltcGxlIHVzYWdlIGZyb20KCSAgZ3N0LWxhdW5jaCBvciBzaW1pbGFyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3Mzc1CgoyMDE3LTAyLTIxIDIwOjIzOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBmaXggcGVlayB2YWx1ZSB3aGVuIHNjYW5uaW5nIGZvciAwMCAwMCAwMSB3aXRoIG5vbi0wIG9mZnNldAoJICBXZSB3b3VsZCBhZGQgdGhlIG9mZnNldCBhIHNlY29uZCB0aW1lIGluIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCkKCSAgd2hlbiB3ZSBmb3VuZCBhIHJlc3VsdCwgYnV0IGl0J3MgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHRoZSBkYXRhCgkgIHBvaW50ZXIgYXQgdGhlIGJlZ2lubmluZyBvZiBfbWFza2VkX3NjYW5fdWludDMyX3BlZWsoKSwgc28gdGhlCgkgIHBlZWtlZCB2YWx1ZSB3b3VsZCBiZSB3cm9uZyBpZiB0aGUgaW5pdGlhbCBvZmZzZXQgd2FzID4wLCBhbmQKCSAgd2Ugd291bGQgcG90ZW50aWFsbHkgcmVhZCBtZW1vcnkgb3V0LW9mLWJvdW5kcy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgYWxsIG9mIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzgzNjUKCjIwMTctMDItMjAgMTI6MTY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogcHV0ICgpIGFyb3VuZCBtYWNybyBhcmd1bWVudHMKCSAgUHV0IGJyYWNlcyBhcm91bmQgbWFjcm8gYXJndW1lbnRzIG9yIGVsc2Ugd2UgbWlnaHQgcnVuIGludG8gcHJvYmxlbXMKCSAgd2l0aCBvcGVyYXRlciBwcmVjZWRlbmNlLgoKMjAxNy0wMi0yMCAxMDo0NTo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogaWdub3JlIGVtcHR5IGNsYXNzZXMKCjIwMTctMDItMjAgMTA6MjU6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJICBkZXZpY2Vwcm92aWRlcmZhY3Rvcnk6IGNvbXBhcmUgY2xhc3MgYWdhaW5zdCBOVUxMCgkgIGdzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOjUwMToyMDogZXJyb3I6IGNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCB6ZXJvIGNoYXJhY3RlciBjb25zdGFudCBbLVdlcnJvcj1wb2ludGVyLWNvbXBhcmVdCgkgIGlmIChjbGFzc2VzWzBdID09ICdcMCcpCgoyMDE3LTAyLTE4IDE2OjQ5OjQwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggYnVpbGQgd2l0aCBsYXRlc3QgdXBzdHJlYW0gZ2l0CgkgIFRyaXZpYWwgaW5jb3JyZWN0IGluY2x1ZGVfZGlyZWN0b3JpZXMoKSBjYWxsCgoyMDE3LTAyLTE4IDEwOjAzOjI0ICswMTAwICBQZXRlciBLb3JzZ2FhcmQgPHBldGVyQGtvcnNnYWFyZC5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZzogRml4IHVuYWxpZ25lZCBhY2Nlc3Mgc3VwcG9ydCBmb3IgdGhlIG9wZW5yaXNjIGFyY2hpdGVjdHVyZQoJICBUZWFjaCBnc3Rjb25maWcuaC5pbiBhYm91dCB0aGUgb3BlbnJpc2MgKG9yMWspIGFyY2hpdGVjdHVyZS4gIEZpeGVzCgkgIGJ1aWxkcm9vdCBhdXRvYnVpbGQgZmFpbHVyZToKCSAgaHR0cDovL2F1dG9idWlsZC5idWlsZHJvb3QubmV0L3Jlc3VsdHMvNzE3LzcxN2Q3OGNlMDkzNTc0OWY0NzdiZGYzMTMzYjZmMjAwNTdhMjhjMDEvYnVpbGQtZW5kLmxvZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4ODY2CgoyMDE3LTAyLTE1IDIxOjM3OjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBnc3RiYXNlc2luazogeHJlZiBzeW1ib2wgaW4gZG9jcwoKMjAxNy0wMi0xNSAyMDo1ODo0OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZXZlcnQgdGhlIGNvbnRlbnQgY2hhbmdlcyBmcm9tIHByZXZpb3VzIGNvbW1pdAoJICBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgd2hlbiByZXR1cm5pbmcgR1NUX1BBRF9QUk9CRV9PSyBpcyB1bnJlbGF0ZWQgdG8KCSAgdGhlIG90aGVyIHJldHVybiBjb2RlLgoKMjAxNy0wMi0xNSAyMDozNzo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggZG9jcyBmb3IgR3N0UGFkUHJvYmVSZXR1cm4KCSAgVGhlcmUgaXMgbm8gJ2Jsb2NrJyB2YWx1ZSwgYnV0IHdlIGhhdmUgJ2Ryb3AnLiBBbHNvIGZpeCB0aGUgbWFya3VwOyBpdAoJICBpcyAnJScgdG8gbGluayB0byBjb25zdGFudHMgKGFuZCBlbnVtIHZhbHVlcykuCgoyMDE2LTEwLTI0IDIyOjQ3OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIG1lc29uOiBkaXN0IG1lc29uIGJ1aWxkIGZpbGVzCgkgIFNoaXAgbWVzb24gYnVpbGQgZmlsZXMgaW4gdGFyYmFsbHMsIHNvIHBlb3BsZSB3aG8gdXNlIHRhcmJhbGxzCgkgIGluIHRoZWlyIGJ1aWxkcyBjYW4gc3RhcnQgcGxheWluZyB3aXRoIG1lc29uIGFscmVhZHkuCgoyMDE3LTAxLTMxIDA5OjU1OjU5ICswMDAwICBKdWxpZW4gSXNvcmNlIDxqaXNvcmNlQG9ibG9uZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogYWRkIDIgdW5pdCB0ZXN0cyBmb3Igbm9uLWZsdXNoIHNlZWsgd2l0aCBnc3RiYXNlcGFyc2UKCSAgVGhlIHVuaXQgdGVzdCBkZWZpbmVzIGEgdGVzdCBwYXJzZSBlbGVtZW50IHRoYXQgaW5oZXJpdCBmcm9tIEdzdEJhc2VQYXJzZS4KCSAgVGhlIHRlc3QgcGlwZWxpbmUgaXM6IGZha2VzcmMgISB0ZXN0cGFyc2UgISBmYWtlc2luayBzeW5jPTEKCSAgQmVmb3JlIHRoZSBmaXggYjJjMDVjYWM4IHRoZSBmaXJzdCBuZXcgdGVzdCB3b3VsZCBoYXZlIGZhaWwgYmVjYXVzZSB0aGUKCSAgcGlwZWxpbmUgd291bGQgaGF2ZSB3YWl0IGRvaW5nIG5vdGhpbmcganVzdCBhZnRlciBwcm9jZWVkZWQgdGhlIHNlZWsgZXZlbnQuCgkgIFRoZSBzZWNvbmQgbmV3IHRlc3Qgd291bGQgaGF2ZSBmYWlsIGJlY2F1c2UgdGhlIHBpcGVsaW5lIHdvdWxkIGhhdmUKCSAgcGxheWVkIHRoZSBtZWRpYSBpbnN0YW50bHkganVzdCBhZnRlciBwcm9jZWVkZWQgdGhlIHNlZWsgZXZlbnQKCSAgKGxpa2UgaWYgc3luYyB3YXMgRkFMU0Ugb24gdGhlIHNpbmspLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NzgwCgoyMDE3LTAxLTMxIDIxOjE5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IERvbid0IHRyYW5zbGF0ZSB0aGUgImJpbiIgZWxlbWVudCBuYW1lCgkgIE90aGVyd2lzZSB3ZSB3b24ndCBiZSBhYmxlIHRvIGNyZWF0ZSBiaW5zLCB0aGVyZSBpcyBubyBlbGVtZW50IGNhbGxlZAoJICAiQmVow6RsdGVyIiBpZiB5b3UncmUgdXNpbmcgYSBHZXJtYW4gbG9jYWxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3OTk4CgoyMDE2LTA0LTE1IDIwOjU0OjQyICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IE1vZGlmaXkgaW5zaWRlIHNlZ21lbnQgY29uZGl0aW9uCgkgIFRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgc2VnbWVudF9zdGFydCA9PSBzZWdtZW50X3N0b3AgPT0gc3RhcnQuCgkgIEl0J3MgaW5zaWRlIG9mIHNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDcwNwoKMjAxNy0wMS0yNiAxNjozNToyNyArMDAwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBDaGVjayBsaWJ1bndpbmQgcmV0dXJuIGNvZGVzCgoyMDE3LTAxLTE4IDE4OjE2OjI2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSAgbWVzb246IGxpYnM6IEFkZCBnaXIgdG8gdGhlIHNvdXJjZSBsaXN0IG9mIHRoZSBkZXBlbmRlbmN5CgoyMDE3LTAxLTE2IDExOjI2OjE2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBQb3J0IGd0ay1kb2MgY29tbWVudHMgdG8gdGhlaXIgZXF1aXZhbGVudCBtYXJrZG93biBzeW50YXgKCSAgTW9kZXJuaXppbmcgb3VyIGRvY3VtZW50YXRpb24gYW5kIHByZXBhcmluZyBhIHBvc3NpYmxlIG1vdmUgdG8gaG90ZG9jLgoJICBUaGlzIGNvbW1pdHMgYWxzbyBhZGRzIG1pc3NpbmcgQHRpdGxlIG1ldGFkYXRhcyB0byBhbGwgU0VDVElPTnMKCjIwMTctMDEtMTEgMTc6MjU6MDggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBnc3Q6IEZpeCBpbmNsdWRlcyBzbyB0aGF0IGZpbGVzIGNhbiBiZSBidWlsdCBzZXBhcmF0ZWx5CgkgIEl0IHVzZWQgdG8gd29yayBidXQgaXQgaGFzIGJyb2tlIGluIHRoZSAxLjEwIGN5Y2xlLgoKMjAxNy0wMS0xOCAxMDo1NjozOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBFbmNvZGUgaW4gdXRmLTgKCjIwMTctMDEtMjYgMTU6MzI6MzEgLTA4MDAgIEJyZW5kYW4gU2hhbmtzIDxicmVuZGFuLnNoYW5rc0B0ZXJhZGVrLmNvbT4KCgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkgIEdzdFN0cmVhbS9Hc3RTdHJlYW1Db2xsZWN0aW9uOiBhZGQgZ19hdXRvcHRyKCkgc3VwcG9ydAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3ODEwCgoyMDE3LTAxLTI2IDE2OjUxOjIxICswMDAwICBKdWxpZW4gSXNvcmNlIDxqaXNvcmNlQG9ibG9uZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNvcnJlY3RseSBoYW5kbGUgbm9uLWZsdXNoIHNlZWsKCSAgT3RoZXJ3aXNlIHdoZW4gc2Vla2luZy9sb29waW5nIHRvIHRoZSBzdGFydCB3aGVuIHJlYWNoaW5nIHRoZSBlbmQsCgkgIHRoZSBzaW5rIHdhaXRzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHN0cmVhbS4gU28gdGhlIHVzZXIgaGVhcnMKCSAgbm90aGluZyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBzdHJlYW0gYmVmb3JlIGl0IGFjdHVhbGx5IGxvb3AgYWdhaW4uCgkgIFNlZSBleGFtcGxlIGF0dGFjaGVkIHRvIHRoZSBidWcgZm9yIHRoYXQuCgkgIEV4aXN0aW5nIHRlc3Q6CgkgIGdzdC1wbHVnaW5zLWdvb2QvdGVzdHMvaWNsZXMvdGVzdC1zZWdtZW50LXNlZWtzIGZvby5mbGFjCgkgIFdpdGhvdXQgdGhlIHBhdGNoIHRoZSB1c2VyIGhlYXJzIGEgY3JhY2svY3V0IGF0IGVhY2ggc2Vlay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Nzc4MAoKMjAxNi0wNS0yNCAxNDo1Nzo1NCArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBBUEkgdG8gZmlsdGVyIGdfd2FybmluZy9nX2NyaXRpY2FsIGV0YwoJICBOZXcgQVBJIGZ1bmN0aW9ucyB0byBmaWx0ZXIgbG9nIG1lc3NhZ2VzIGJlZm9yZSB0aGV5IGFyZSBwcm9jZXNzZWQgYnkKCSAgR3N0Q2hlY2suIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGlzY2FyZCBzcGVjaWZpYyBtZXNzYWdlcyB0aGF0IGFyZQoJICBhY2NlcHRlZCBieSB0aGUgdGVzdCBvciB0byBhZGQgY2FsbGJhY2tzIHRoYXQgdGVzdCBzcGVjaWZpYyBtZXNzYWdlcy4KCSAgRGVmYXVsdCBiZXZhdmlvciB3aGVuIG5vIGNhbGxiYWNrIGlzIGdpdmVuIHRvIGEgZmlsdGVyIGlzIHRvIGRpc2NhcmQgdGhlCgkgIG1lc3NhZ2UsIGJlY2F1c2UgaXQgZG9lcyBub3QgbWFrZXMgc2Vuc2UgdG8gaGF2ZSBhIGZpbHRlciB3aXRoIG5vCgkgIGNhbGxiYWNrIHdoaWNoIGRvZXMgbm90IGRpc2NhcmQ7IHRoYXQgd291bGQgYmUgYSBub29wLgoJICBEaXNjYXJkZWQgbWVzc2FnZXMgd2lsbCBpbiBhZGRpdGlvbiB0byBieXBhc3MgdGhlIEdzdENoZWNrIGhhbmRsaW5nIGFsc28KCSAgcmV0dXJuIHRvIEdMaWIgdGhhdCB0aGUgbWVzc2FnZSBpcyBub3QgZmF0YWwgaWYgaXQgb2NjdXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMDkxCgoyMDE3LTAxLTE4IDIyOjM5OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHVwZGF0ZSB0aGUgZG9jcyBmb3IgdGhlIGV2ZW50IGZvcndhcmRpbmcKCSAgRmlyc3QgdGhpcyBzZW5kcyB0aGUgZXZlbnRzIG5vdCBvbmx5IHRvIHRoZSBzb3VyY2VzIGFuZCAybmQgdGhpcyBpcyBub3Qgb25seQoJICBmb3Igc2VlayBldmVudHMuCgoyMDE3LTAxLTE4IDE1OjA3OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IERvbid0IGhvbGQgZWxlbWVudCdzIG9iamVjdCBsb2NrIHdoaWxlIHF1ZXJ5aW5nIGVsZW1lbnQgcGFkcycgY2FwcwoJICBUaGlzIGNhbiBlYXNpbHkgZGVhZGxvY2sgaWYgdGhlIGVsZW1lbnQgdXNlcyB0aGUgb2JqZWN0IGxvY2sgZm9yCgkgIHNvbWV0aGluZyBpbnRlcm5hbGx5LCBsaWtlIHBvc3RpbmcgYW4gZXJyb3IgbWVzc2FnZS4gVXNlIGFuIEdzdEl0ZXJhdG9yCgkgIGZvciBpdGVyYXRpbmcgb3ZlciB0aGUgcGFkcyBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDQ5CgoyMDE3LTAxLTE2IDA5OjQxOjE5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBRdWlldGVuIGEgbm9pc3kgRklYTUUgYWJvdXQgZHVyYXRpb24gY2FjaGluZwoJICBPbmx5IHByaW50IHRoaXMgRklYTUUgb25jZSBwZXIgcnVuLCBhdCBpdCdzIHByZXR0eSBhbm5veWluZyBpbgoJICBsb3RzIG9mIGxvZ3Mgb3RoZXJ3aXNlLgoKMjAxNS0wNy0xNCAxMzoxMToxMSArMDAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IEFkZCB0cy1vZmZzZXQgcHJvcGVydHkuCgkgIEFkZCBhIHByb3BlcnR5IHRvIGRlbGF5IG9yIGFkdmFuY2Ugc3luYyB0aW1lCgkgIHdoZW4gc3luYz10cnVlLCB3aXRoIHRoZSBzYW1lIGJlaGF2aW91ciBhcwoJICB0aGUgdHMtb2Zmc2V0IHByb3BlcnR5IGluIGJhc2VzaW5rCgoyMDE3LTAxLTE1IDExOjUyOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogZml4IHBvdGVudGlhbCBvdXQtb2YtYm91bmQgcmVhZCBvbiBtYWxmb3JtZWQgZGF0ZXRpbWUgc3RyaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzcyNjMKCjIwMTctMDEtMTMgMTI6MzQ6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGJ1bXAgdmVyc2lvbgoKMjAxNy0wMS0xMiAxNjozMjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xMS4xID09PQoKMjAxNy0wMS0xMiAxNToyOToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMS4xMS4xCgoyMDE3LTAxLTEyIDE0OjM1OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vaHIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDEtMTIgMTQ6MzQ6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9oci5wbzoKCSogcG8vaWQucG86CgkqIHBvL3BsLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTctMDEtMTIgMTQ6MjY6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTAxLTA1IDEzOjQ1OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC0xLjAuMToKCSAgdG9vbHM6IHVwZGF0ZSBnc3QtaW5zcGVjdCBtYW4gcGFnZQoKMjAxNy0wMS0wNSAxMDozMjowMyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEbyBub3QgZ2VuZXJhdGUgLnBjIGZpbGVzIGZvciBsaWJnc3RjaGVjayBvbiB3aW5kb3dzCgkgIFRoZSBsaWIgaXMgbm90IGJ1aWx0CgoyMDE3LTAxLTA0IDEyOjEwOjQ1ICswMTAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBnZW5lcmF0ZSBwa2ctY29uZmlnIC11bmluc3RhbGxlZCBwYyBmaWxlcwoJICBHZW5lcmF0aW5nIHRob3NlIGZpbGVzIGlzIHVzZWZ1bCBmb3IgdXNlcnMgYnVpbGRpbmcgdGhlIEdTdHJlYW1lciBzdGFjawoJICB1c2luZyBtZXNvbiBhbmQgaGF2aW5nIHRvIGxpbmsgaXQgdG8gYW5vdGhlciBwcm9qZWN0IHdoaWNoIGlzIHN0aWxsCgkgIHVzaW5nIHRoZSBhdXRvdG9vbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY4MTAKCjIwMTctMDEtMDMgMTI6MzA6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xhcmlmeSBkb2NzIGZvciBHU1RfUEFEX1BST0JFX0RST1AKCjIwMTctMDEtMDMgMDI6MTM6MzAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgZ2VuZXJhdGUgR1NUX0ZMT1dfRVJST1Igd2l0aG91dCBsb2dnaW5nCgkgIEF0IGxlYXN0IGxvZyBhIG1lc3NhZ2UgdG8gdGhlIGRlYnVnIGxvZyB3aGVuIGdlbmVyYXRpbmcKCSAgYSBHU1RfRkxPV19FUlJPUiwgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBmaW5kIHdoZXJlIGl0IGNhbWUgZnJvbS4KCjIwMTctMDEtMDMgMDI6MTI6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBGaXggbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIG9uIGludmFsaWQgc3RhdGljIGNhcHMKCSAgQSB0eXBvIGluIGEgc3RhdGljIGNhcHMgc3RyaW5nIG1heSByZXN1bHQgaW4gZmFpbHVyZSB0bwoJICBkZXNlcmlhbGlzZSBpdCwgc28gZG9uJ3QgZGVyZWZlcmVuY2UgdGhlIHJlc3VsdCB3aXRob3V0CgkgIGNoZWNraW5nLgoKMjAxNy0wMS0wMyAwMjoxMToyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIG9uIGludmFsaWQgc3RhdGljIGNhcHMKCSAgQSB0eXBvIGluIGEgc3RhdGljIGNhcHMgc3RyaW5nIG1heSByZXN1bHQgaW4gZmFpbHVyZSB0bwoJICBkZXNlcmlhbGlzZSBpdCwgc28gZG9uJ3QgZGVyZWZlcmVuY2UgdGhlIHJlc3VsdCB3aXRob3V0CgkgIGNoZWNraW5nLgoKMjAxNi0xMi0zMCAxOTo0Mjo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZXdvcmQgY29tbWVudCBmb3IgZ3N0X3N0cnVjdHVyZV9wYXJzZV9zdHJpbmcoKQoJICBUaGUgY29tbWVudCB3YXMgYSBiaXQgY29uZnVzaW5nLiBUdXJuIGl0IGludG8gZ3RrZG9jIHN0eWxlIGFuZCByZXdvcmQgaXQuCgoyMDE2LTEyLTI4IDIxOjQ3OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmUtZXZhbCBHU1RfREVCVUcgZW52IHZhciBmb3IgbGF0ZSBjYXRlZ29yaWVzCgkgIFdoZW4gcmVnaXN0ZXJpbmcgYSBuZXcgZGVidWcgY2F0ZWdvcnkgYWZ0ZXIgX2RlYnVnX2luaXQoKSwgd2UgbmVlZCB0bwoJICByZSBjaGVjayB0aGUgR1NUX0RFQlVHIGZpbHRlciBzZXR0aW5ncyBhZ2Fpbi4KCSAgSW4gYWRkaXRpb24gd2hlbiBwYXJzaW5nIHRoZSBmaWx0ZXIgc2V0dGluZywgd2UgbmVlZCB0byBhbHJlYWR5IGJ1bXAgdXAKCSAgdGhlIG1pbi1kZWJ1ZyBsZXZlbCB0byBub3Qgc3VwcHJlc3MgZGVidWcgbG9nIHN0YXRtZW50cyB0aGF0IGR5bmFtaWNhbGx5CgkgIHJlZ2lzdGVyIGEgY2F0ZWdvcnkuIFRoaXMgaGFwcGVucyBpbiBsaWJyYXJpZXMgdGhhdCB1c2UgYSBmdW5jdGlvbiB0bwoJICByZWdpc3RlciBhIGNhdGVnb3J5IG9uIGZpcnN0IHVzZS4KCjIwMTYtMTItMjkgMTc6MDQ6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBEZWZhdWx0IHRvIHB5dGhvbjMKCSAgSXQncyAyMDE2LCB1bmxlc3MgeW91J3ZlIHNwZWNpZmllZCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIHB5dGhvbiwKCSAgd2UnbGwgZGVmYXVsdCB0byBweXRob24zCgoyMDE2LTEyLTI4IDEzOjQ1OjU0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gdW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIGluIHJldmVyc2UgcGxheWJhY2sgZnJhZ21lbnRzCgoyMDE2LTEyLTIxIDIxOjU4OjUzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LTEuMC4xOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtbGF1bmNoOiBBZGQgYSAnLS10eXBlcycgb3B0aW9uIHRvIGZpbHRlciBlbGVtZW50cyBieSB0eXBlcyB0byBwcmludAoJICBUaGlzIHdheSB0aGUgdXNlciBjYW4gZWFzaWx5IGZpZ3VyZSBvdXQgd2hhdCBhcmUgdGhlIGF2YWlsYWJsZSBhdWRpbwoJICBlbmNvZGVyIGZvciBleGFtcGxlIGRvaW5nOgoJICBnc3QtaW5zcGVjdC0xLjAgLS10eXBlcyBFbmNvZGVyL0F1ZGlvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYzOTIKCjIwMTYtMTItMjIgMTg6NDU6MTAgKzAxMDAgIE5pY29sYXMgRGVjaGVzbmUgPG5pY29sYXMuZGVjaGVzbmVAbGluYXJvLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHNldCBHU1RfR0xfWElOSVRUSFJFQURTCgkgIFRoaXMgZW5zdXJlIHRoYXQgWEluaXRUaHJlYWRzIGlzIGNhbGxlZCBhbmQgc28gZ2wgY29udGV4dHMgYXJlIHByb3Blcmx5CgkgIGluaXRpYWxpemVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2NDAxCgoyMDE2LTEyLTIyIDE2OjEzOjIyIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgZ3N0cHJlc2V0OiBMb3dlciBzb21lIGRlYnVnIGxvZ3MgbGV2ZWwKCSAgQSBwcm9wZXJ0eSBub3QgZGVmaW5lZCBpbiBhIHByZXNldCBmaWxlIGNhbiBzaW1wbHkgbWVhbiB0aGF0IHRoZQoJICB1c2VyIHdhbnRzIGl0IHRvIGJlIHNldCBhcyBpdCBkZWZhdWx0IHZhbHVlLCBhbmQgd2Ugc2hvdWxkIG5vdCB3YXJuCgkgIGFib3V0IHRoYXQuCgkgIEEgbWlzc2luZyBwcmVzZXQgZmlsZSBpbiBhIGRpcmVjdG9yeSBjYW4gaGFwcGVuIGhhcyB0aGVyZSBhcmUgc2V2ZXJhbAoJICBkaXJlY3Rvcnkgd2hlcmUgYSBwcmVzZXQgY2FuIGJlIGZvdW5kIGluLgoKMjAxNi0xMi0yMiAyMzozOTozOSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IG9yZGVyIG9mIEMgc291cmNlIGFuZCBoZWFkZXIgaW4gbWtlbnVtcwoJICBPdGhlcndpc2UgZ3N0ZW51bV9oIGRlcGVuZGVuY2llcyBkb24ndCBnZXQgYWRkZWQgcHJvcGVybHkgdG8gZ3N0X2RlcCBhbmQKCSAgd2Ugc2VlIHJhY3kgYnVpbGQgZmFpbHVyZXMgZXZlcnl3aGVyZS4KCjIwMTYtMTItMTcgMTQ6MzU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvYnVpbGRfbWtlbnVtLnB5OgoJKiBnc3QvZ3N0ZW51bXR5cGVzLmMudGVtcGxhdGU6CgkqIGdzdC9nc3RlbnVtdHlwZXMuaC50ZW1wbGF0ZToKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogdXNlIGdub21lLm1rZW51bXMoKSB3aXRoIHRlbXBsYXRlIGZpbGVzIGZvciBlbnVtIGZpbGUgZ2VuCgkgIFNhdmVzIHVzIGEgY3VzdG9tIHNjcmlwdC4gVGVtcGxhdGUgZmlsZXMgYXJlIG5pY2VyIHRoYW4gcGFzc2luZwoJICBtdWx0aWxpbmUgdGVtcGxhdGluZyBzdHVmZiB0aHJvdWdoIHRvIGdsaWItbWtlbnVtcy4gQW5kIHdlIGNhbgoJICBnZXQgcmlkIG9mIG91ciBjdXN0b20gcHl0aG9uIHNjcmlwdC4KCjIwMTYtMTItMjIgMTI6MDU6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgZ3VhcmQgdG8gZ3N0X2VsZW1lbnRfcmVsZWFzZV9wYWQoKSB0byBlbnN1cmUgdGhlIHBhZCBiZWxvbmdzIHRvIHRoaXMgZWxlbWVudAoJICBJdCdzIGEgcHJvZ3JhbW1pbmcgZXJyb3IgdG8gcGFzcyBvdGhlciBwYWRzIGhlcmUsIGFuZCBpdCBlYXNpbHkgY2F1c2VzCgkgIGNyYXNoZXMgb3Igb3RoZXIgcHJvYmxlbWF0aWMgYmVoYXZpb3VyIGRvd24gdGhlIHJvYWQgYXMgc3ViY2xhc3NlcwoJICB1c3VhbGx5IGFzc3VtZSB0byBvbmx5IGdldCB0aGVpciBwYWRzLgoKMjAxNi0xMi0yMSAyMjoxODoxNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgZ3N0cnVzYWdlOiBleHBsaWNpdGx5IHJlZ2lzdGVyIHRvIGhvb2tzCgkgIFdlIHdlcmUgYXR0YWNoaW5nIHRvIGFueSBwcm9iZSBwb2ludCB0byB0YWtlIHJ1c2FnZSBzYW1wbGVzLiBUaGUgbmV3IHJlZmNvdW50CgkgIGhvb2tzIGFyZSBjYWxsZWQgd2F5IHRvbyBmcmVxdWVudGx5IHRob3VnaCB0byBtYWtlIHRoaXMgc3RpbGwgZmVhc2libGUuCgoyMDE2LTEyLTIxIDIzOjQ5OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBzZXZlcmFsIG1pc3NpbmcgZmVhdHVyZXMgZnJvbSBjb25maWd1cmUuYWMKCSAgKiAtV2wsLUJzeW1ib2xpYy1mdW5jdGlvbnMKCSAgKiBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUF9XSVRIT1VUX1RJRAoJICAqIEhBVkVfUE9TSVhfVElNRVJTCgkgICogSEFWRV9NT05PVE9OSUNfQ0xPQ0sKCSAgKiBIQVZFX1VJTlQxMjhfVAoJICAqIEhBVkVfTE9OR19MT05HCgkgICogSEFWRV9QUk9DRVNTX0gKCSAgKiBIQVZFX0dNUAoJICAqIEhBVkVfR1NMCgkgICogSEFWRV9ETEFERFIKCSAgQWxzbywgZG9uJ3QgdXNlIHByZWZpeCBmb3IgY2hlY2tpbmcgZnVuY3Rpb25zLCBhbmQgb25seSBjaGVjayBtc3ZjCgkgIGZ1bmN0aW9ucyBvbiBXaW5kb3dzLgoKMjAxNi0xMi0yMSAwOTozMzozOSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogbWVzb24uYnVpbGQ6CgkgIGJ1aWxkOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9ucwoJICBmZ2V0cG9zLCBmc2V0cG9zLCBtbWFwLCBwb3NpeF9tZW1hbGlnbi4gTm9uZSBvZiB0aGVzZSBhcmUgdXNlZCBhbnl3aGVyZQoJICBpbiB0aGUgY29kZWJhc2UuCgoyMDE2LTEyLTIxIDA5OjAwOjIyICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogRGVyaXZlIGRlZmluZXMgZnJvbSBoZWFkZXIvZnVuY3Rpb24gbmFtZXMKCSAgVGhpcyBpcyB3aGF0IEF1dG9jb25mIGFscmVhZHkgZG9lcyBmb3IgdXMsIHNvIGp1c3QgZG8gdGhpcy4gQXZvaWRzCgkgIHBlb3BsZSBtYWtpbmcgdHlwb3Mgd2hpbGUgYWRkaW5nIGhlYWRlciBvciBmdW5jdGlvbiBjaGVja3MuIEJlY2F1c2Ugd2UKCSAgdXNlIGEgY29uZmlnLmgubWVzb24sIHN1Y2ggdHlwb3Mgd29uJ3QgZXZlbiBiZSBub3RpY2VkLgoJICBBbHNvLCBzdGFydGluZyBmcm9tIE1lc29uIDAuMzYuMCwgdGhlIFhDb2RlIDggd29ya2Fyb3VuZCB0aGF0IHdlIHVzZSBmb3IKCSAgY2xvY2tfZ2V0dGltZSBpcyBubyBsb25nZXIgbmVlZGVkLgoKMjAxNi0xMi0yMSAxMDowMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBzaW1wbGlmeSB0ZXN0CgkgIFdlIGNhbiBjb21wYXJlIHN0cnVjdHVyZXMsIHRoYXQgaXMgd2hhdCB0aGUgY2FwcyBmdWNudGlvbiB0aGF0IHdhcyB1c2VkIGJlZm9yZQoJICB3b3VsZCBjYWxsIGFueXdheS4KCjIwMTYtMTItMjAgMjE6MDg6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkgIHRyYWNlcnJlY29yZDogaW1wcm92ZSB0aGUgdmFsdWVzIGZsYWdzIGRvY3MKCjIwMTYtMTItMjAgMjE6MDc6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICBsYXRlbmN5OiB0aGUgbGF0ZW5jeSBpcyBub3QgYW4gYWdncmVnYXRlZCB2YWx1ZQoJICBUaGUgbG9nZ2VkIGxhdGVuY2llcyBhcmUgaW5kaXZpZHVhbCBtZWFzc3VyZW1lbnRzLgoKMjAxNi0xMi0wMiAwODoyOToxMSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrczogQWxsb3cgdXNlciB0byBzZXQgdGhlIGZsYWdzIHRvIHVzZSB0byByZXRyaWV2ZSBzdGFjayB0cmFjZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0MQoKMjAxNi0xMi0wMSAxNzozNTo0NSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3M6IEFsbG93IHRyYWNpbmcgR3N0KE1pbmkpT2JqZWN0IHJlZmZpbmcgb3BlcmF0aW9ucwoJICBJdCBtYWtlcyBpdCBtdWNoIHNpbXBsZXIgdG8gbGF0ZXIgZGVidWcgcmVmY291bnQgaXNzdWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQxCgoyMDE2LTExLTMwIDE3OjA1OjU2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3M6IEFsbG93IHBhc3NpbmcgYSBHc3RTdHJ1Y3R1cmUgdG8gY29uZmlndXJlIHRoZSB0cmFjZXIKCSAgQnV0IGtlZXAgdW5kZXJzdGFuZGluZyB0aGUgc2ltcGxlIHN5bnRoYXggd2l0aCBhIGNvbW1hIHNlcGFyYXRlZAoJICBsaXN0IG9mIGZpbHRlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0MQoKMjAxNi0xMi0yMSAwMDo0MDoxMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3dpdGNoIHRvIG5vcm1hbCBtb2RlIGJlZm9yZSBoYXZlLXR5cGUKCSAgQmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSwgc3dpdGNoIHRvIE5PUk1BTAoJICBtb2RlLCBhcyBwYXJ0IG9mIHRoZSBoYXZlLXR5cGUgcHJvY2Vzc2luZyBzZW5kcwoJICB0aGUgY2FwcyBldmVudCBkb3duc3RyZWFtLCB3aGljaCBtaWdodCB0cmlnZ2VyCgkgIGFjdGlvbnMgbGlrZSBkb3duc3RyZWFtIGF1dG9wbHVnZ2luZyBvcgoJICBmbHVzaGluZyBzZWVrcyAtIGFuZCB0aGUgbGF0dGVyIGFyZSBvbmx5CgkgIHBhc3NlZCB1cHN0cmVhbSBpZiB3ZSd2ZSBzZXQgdHlwZWZpbmQgdG8gTk9STUFMCgkgIG1vZGUuCgoyMDE2LTEyLTEzIDIxOjEyOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFByb3RlY3QgYWdhaW5zdCBzcHVyaW91cyB3YWtldXBzIG9mIHRoZSBjb25kaXRpb24gdmFyaWFibGUKCjIwMTYtMTEtMzAgMjE6MTc6NTUgKzAxMDAgIEZhYnJpY2UgQmVsbGV0IDxmYWJyaWNlQGJlbGxldC5pbmZvPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGEgdXNlIGFmdGVyIGZyZWUgY2FzZQoJICBUaGUgZXZlbnQgbWF5IGJlIGRpc3Bvc2VkIHdoaWxlIGJlaW5nIHB1c2hlZCwgc28gd2UgbWFrZSBzdXJlIHRoZQoJICBkZWJ1ZyBpbmZyYXN0cnVjdHVyZSB3b24ndCB1c2UgaXQgYWZ0ZXIgdGhlIGdzdF9wYWRfcHVzaCgpLgoKMjAxNi0xMi0xNiAxODozMDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBmaXggdHlwbyBpbiBkb2NzCgoyMDE2LTEyLTE2IDIzOjQ1OjA4ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogRG9uJ3Qgc2VhcmNoIGZvciBweXRob24zIHR3aWNlCgoyMDE2LTEyLTE2IDE4OjE0OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBleHBvcnQgbmV3IGdsb2JhbCB2YXJpYWJsZQoKMjAxNi0xMi0xNiAxMzo1OTo1MSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEF2b2lkIHBvc3NpYmxlIGRvdWJsZSBmcmVlCgoyMDE2LTEyLTAyIDExOjU5OjQzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWxsb3cgbGlzdGluZyB1bml0IHRlc3RzIG5hbWVzCgkgIEFkZGluZyBvcHRpb25zIHdoaWxlIHJ1bm5pbmcgZ3N0X2NoZWNrX2luaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0MAoKMjAxNi0xMi0xNSAxNTozNzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgdHJhY2Vycy9zdGF0czogbG9nIG9wdGlvbmFsIGZpZWxkcyBpbnN0ZWFkIG9mIEdTVF9DTE9DS19USU1FX05PTkUKCSAgU2ltcGxpZnkgdGhlIHRyYWNlcyBhbmQgYXZvaWQgdHJhY2UgYW5hbHl6ZXIgdG8ga25vdyB0aGF0ICgoMTw8NjQpIC0gMSkgbWVhbnMKCSAgd2UgaGFkIG5vIHZhbHVlLgoKMjAxNi0xMi0xNiAxNTowNTo0NiArMDEwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogZHJvcCBhIGxlZnRvdmVyIGRvY2Jvb2sgcmVsYXRlZCBiaXQKCjIwMTYtMTItMDggMjE6MDE6NTIgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBzdHJ1Y3R1cmUgaW50ZXJzZWN0L3VuaW9uL2lzX3N1YnNldC9maXhhdGUgaW1wbGVtZW50YXRpb25zCgkgIEFsbG93cyBwcm9wZXIgdXNhZ2Ugb2Ygc3RydWN0dXJlcyBpbiBzdHJ1Y3R1cmVzIGluIGNhcHMuICBTdWJ0cmFjdGlvbgoJICBpcyBub3QgaW1wbGVtZW50ZWQgZHVlIHRvIGNvbXBsaWNhdGlvbnMgd2l0aCBlbXB0eSBmaWVsZHMgcmVwcmVzZW50aW5nCgkgIGFsbCBwb3NzaWJsZSB2YWx1ZXMuCgkgIFRoZSBvbmx5IGltcGxlbWVudGF0aW9uIHRoYXQgZG9lc24ndCBkZWxlZ2F0ZSB0byB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBHc3RTdHJ1Y3R1cmUgZnVuY3Rpb25zIGlzIHRoZSB1bmlvbiBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTc5NgoKMjAxNi0xMi0wOCAxNTo0MTo0MCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0cy9zdHJ1Y3R1cmU6IGFkZCBzb21lIG1vcmUgaXNfc3Vic2V0IGNoZWNrcwoJICBFeHBsaWNpdGx5IHRlc3RpbmcgZXh0cmEvbWlzc2luZyBmaWVsZHMgYW5kIG5hbWUgZGlmZmVyZW5jZXMKCjIwMTYtMTItMTQgMTg6MTk6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogbWV0YTogYWRkIHRlc3QgZm9yIGdzdF9idWZmZXJfaXRlcmF0ZV9tZXRhKigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3MjcKCjIwMTYtMTItMDMgMTM6MDU6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfaXRlcmF0ZV9tZXRhX2ZpbHRlcmVkKCkKCSAgRm9yIGNvbnZlbmllbmNlLiBQcmV0dHkgbXVjaCBldmVyeSB1c2VyIG9mCgkgIGdzdF9idWZmZXJfaXRlcmF0ZV9tZXRhKCkgZmlsdGVycyBmb3IgYSBzcGVjaWZpYwoJICBhcGkgdHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTcyNwoKMjAxNi0xMi0xNCAxNToyMjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBtYXJrIGdzdF9idWZmZXJfaXRlcmF0ZV9tZXRhKCkgYXMgJ3NraXAnIGZvciBiaW5kaW5ncwoJICBUaGUgcG9pbnRlciBzdGF0ZSBhcmcgd29uJ3Qgd29yayB3ZWxsLCBiaW5kaW5ncyBjYW4gdXNlCgkgIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3MjcKCjIwMTYtMTItMTQgMDY6NTY6NTUgKzAxMDAgIEnDsWFraSBHYXJjw61hIEV0eGViYXJyaWEgPGdhcmV0eGVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGctaTogRml4IGFubm90YXRpb25zIGZvciBnc3RfZXZlbnRfbmV3X3NlbGVjdF9zdHJlYW1zKCkgYW5kIGdzdF9ldmVudF9wYXJzZV9zZWxlY3Rfc3RyZWFtcygpCgkgIEEgZ2NoYXIgaXMgbm90IGEgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1OTQ0CgoyMDE2LTEyLTEzIDIzOjI1OjM5IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogb25seSB3YXJuIG9uIHBlcmZvcm1hbmNlIHBlbmFsdHkgaWYgbm90IHVzaW5nIHRoZSB0ZW1wbGF0ZSBjYXBzCgkgIEFmdGVyIGI3NmVjZmQ5OTJiMGQzYTQyM2NjOWFjZTU1MzllY2QyYmE1MDlkNDEgaW50cm9kdWNlZAoJICBHU1RfUEFEX0ZMQUdfQUNDRVBUX1RFTVBMQVRFLCB0aGUgcGVyZm9ybWFuY2UgcGVuYWx0eSB0aGlzCgkgIG1lc3NhZ2UgaXMgcmVmZXJpbmcgdG8gKHRoZSBjYXNjYWRpbmcgQUNDRVBUX0NBUFMgcXVlcnkpCgkgIG9ubHkgYXBwbGllcyB0byB0aGUgY2FzZXMgd2hlcmUgIUdTVF9QQURfSVNfQUNDRVBUX1RFTVBMQVRFCgoyMDE2LTEyLTEzIDIwOjUxOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlL3F1ZXVlMjogUHJvdGVjdCBhZ2FpbnN0IHNwdXJpb3VzIGNvbmRpdGlvbiB2YXJpYWJsZSB3YWtldXBzCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIG9ubHkgd2FrZSB1cCB3aGVuIHdlIGhhdmUgdG8gZmx1c2gsIG9yIHdoZW4gdGhpcwoJICBzcGVjaWZpYyBxdWVyeSB3YXMgaGFuZGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjAzOQoKMjAxNi0xMi0xMyAyMDowMDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyOiBFbnN1cmUgdGhhdCB0aGUgc3RyZWFtaW5nIHRocmVhZCBpcyB1bmxvY2tlZCBhZnRlciBkZWFjdGl2YXRpbmcgdGhlIHNyY3BhZAoJICBJdCBtaWdodCBoYXBwZW4gdGhhdCB0aGUgc3JjcGFkIHRhc2sgZnVuY3Rpb24gaXMgbmV2ZXIgY2FsbGVkIGF0IGFsbCwgaW4KCSAgd2hpY2ggY2FzZSB1bmxvY2tpbmcgZXZlcnl0aGluZyBmcm9tIHRoZXJlIHdpbGwgbmV2ZXIgaGFwcGVuLgoJICBNYWtlIHN1cmUgdG8gdW5sb2NrIGV2ZXJ5dGhpbmcgYW5vdGhlciB0aW1lIGFmdGVyIHRoZSB0YXNrIGZ1bmN0aW9uIGlzCgkgIGRlZmluaXRlbHkgc3RvcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjAzOQoKMjAxNi0xMi0xMiAyMjoxNDoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIHNlcmlhbGlzYXRpb24gZm9yIEdUeXBlcwoJICBXZSBuZWVkIHRoaXMgaW4gdGhlIEdzdFRyYWNlclJlY29yZC4gVGhpcyB3aWxsIHNlcmlhbGl6ZSBHVHlwZXMgdG8gdGhlIHR5cGVuYW1lCgkgIGFuZCB2aWNlIHZlcnNhLgoKMjAxNi0xMi0xMyAxMzoyMDowOSArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3Q6IEZpeCBidWlsZGluZyB3aXRoIG1zdmMKCjIwMTYtMTItMTIgMjA6NTU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCBuZXcgZmxhZ3MgdHlwZSBpbiBnc3RfaW5pdCgpCgkgIEZpeCAnbWFrZSBjaGVjaycgc29tZSBtb3JlLgoKMjAxNi0xMi0xMiAxOToyNToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNi0xMS0zMCAxNToxMDo0OCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSAgaW5mbzogQWRkIGEgJ2ZsYWdzJyBwYXJhbWV0dGVyIHRvIGdzdF9kZWJ1Z19nZXRfc3RhY2tfdHJhY2UKCSAgVGhpcyBpcyBhbiBBUEkgYnJlYWsgYnV0IHRoYXQgQVBJIGhhcyBub3QgYmVlbiByZWxlYXNlZCB5ZXQuCgkgIFdlIGFyZSBwYXNzaW5nIGEgZmxhZyByYXRoZXIgdGhhbiBhIHNpbXBsZSBib29sZWFuIGFzIHdlIGNhbiBpbWFnaW5lCgkgIHRvIGltcGxlbWVudCBtb3JlIGZlYXR1cmVzIGluIHRoZSBmdXR1cmUgZm9yIGV4YW1wbGUgdG8gcmV0cmlldmUgYQoJICBzdGFjayB0cmFjZSBmb3IgYWxsIHRoZSB0aHJlYWRzLCBldGMuLgoJICBSZXRyaWV2aW5nIHNvdXJjZSBmaWxlIGFuZCBsaW5lIG51bWJlcnMgaXMgcHJldHR5CgkgIGV4cGVuc2l2ZSB3aGlsZSBnZXR0aW5nIGEgc3RhY2sgdHJhY2UsIHRoaXMgbmV3IGFyZ3VtZW50CgkgIGFsbG93cyB0aGUgdXNlciB0byBkZWNpZGUgdG8gcmV0cmlldmUgYSBiYWNrdHJhY2UKCSAgd2l0aG91dCB0aG9zZSBpbmZvcyBpbnN0ZWFkIHdoaWNoIGlzIG11Y2ggZmFzdGVyLgoJICBGb3IgZXhhbXBsZSBydW5uaW5nICQgR1NUX0xFQUtTX1RSQUNFUl9TVEFDS19UUkFDRT0xIEdTVF9ERUJVRz1HU1RfVFJBQ0VSOjcgXAoJICBHU1RfVFJBQ0VSUz1sZWFrcyB0aW1lIGdzdC1sYXVuY2gtMS4wIHZpZGVvdGVzdHNyYyBudW0tYnVmZmVycz0xICEgZmFrZXNpbms6CgkgICogV2l0aCBzaW1wbGUgc3RhY2sgdHJhY2VzOgoJICAwLjA0cyB1c2VyIDAuMDJzIHN5c3RlbSA5OSUgY3B1IDAuMDYwIHRvdGFsCgkgICogV2l0aCBmdWxsIHN0YWNrIHRyYWNlczoKCSAgMC42NnMgdXNlciAwLjIzcyBzeXN0ZW0gOTYlIGNwdSAwLjkyNiB0b3RhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NDIzCgoyMDE2LTEyLTEyIDE2OjE5OjEzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IFNldCBHRXJyb3IgaW4gYW5vdGhlciBlcnJvciBjYXNlCgkgIFdoZW4gY2hhbmdpbmcgdGhlIGxvY2F0aW9uIHdoaWxlIG9wZW4sIHByb3Blcmx5IHNldCB0aGUgR0Vycm9yIHJlZ2FyZGluZwoJICB0aGUgZmFpbHVyZS4KCjIwMTYtMTItMTAgMTg6Mzg6MzIgKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBvdmVyZmxvdyBvbiBnZXRfYnVmZmVyaW5nX2xldmVsKCkKCSAgZ3VpbnQ2NCBkZW5vbWluYXRvciBmYWN0b3IgZm9yIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQoKSBjYW4gY2F1c2Ugb3ZlcmZsb3cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTkyMQoKMjAxNi0xMi0wOSAxOToyODoyMiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBidWlsZAoKMjAxNi0xMi0wOSAxNzo1NTozOSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBTdXBwb3J0IGJ1aWxkaW5nIHdpdGggR3N0IGRlYnVnIGRpc2FibGVkCgoyMDE2LTEyLTA5IDIyOjM5OjM2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvY2xvY2tfZ2V0dGltZS5jOgoJICBjaGVjazogRml4IG1hY3JvIGNoZWNrIGZvciBPUyBYCgkgIFRBUkdFVF9PU19NQUMgaXMgZGVmaW5lZCBvbiBhbGwgQXBwbGUgcGxhdGZvcm1zLiBZb3UgbmVlZCB0byBjaGVjayBmb3IKCSAgIVRBUkdFVF9PU19JUEhPTkUgdG8gZGV0ZWN0IE9TIFggKG5vdyBjYWxsZWQgbWFjT1MpLgoKMjAxNi0xMi0wOSAxODowMjoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBVc2UgZ3N0X3F1ZXJ5X2hhc19zY2hlZHVsaW5nX21vZGVfd2l0aF9mbGFncygpIGNvbnZlbmllbmNlIGZ1bmN0aW9uCgoyMDE2LTEyLTA5IDE4OjAxOjM1ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvY2xvY2tfZ2V0dGltZS5jOgoJICBjaGVjazogRG9uJ3QgdHJ5IHRvIGluY2x1ZGUgQ29yZVNlcnZpY2VzLmggb24gaU9TCgkgIE9uIGlPUywgd2UgaGF2ZSBNb2JpbGVDb3JlU2VydmljZXMuaCBidXQgaXQncyBub3QgcmVhbGx5IG5lZWRlZC4KCjIwMTYtMTItMDkgMTc6NTk6NTMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svUkVBRE1FLnR4dDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L21hbGxvYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvcmVhbGxvYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogRG9uJ3QgY2hlY2sgZm9yIG1hbGxvYy9yZWFsbG9jIGFuZCB0cnkgdG8gZmFsbGJhY2sKCSAgV2hlbiBtYWxsb2MgaXMgbm90IGF2YWlsYWJsZSwgdGhpcyB3aWxsIHNldCAjZGVmaW5lIG1hbGxvYyBycGxfbWFsbG9jCgkgIHdoaWNoIGlzIGltcGxlbWVudGVkIG9ubHkgaW5zaWRlIGxpYmNoZWNrLCBhbmQgbm90IGV2ZXJ5dGhpbmcgd2lsbCBsaW5rCgkgIHRvIGxpYmNoZWNrLgoJICBXZSBkb24ndCByZWFsbHkgbmVlZCB0byBjYXJlIHRvbyBtdWNoIGFib3V0IGhvdyBtYWxsb2MgaXMgaW1wbGVtZW50ZWQKCSAgYW5kIHdlIGRvbid0IGNhcmUgYWJvdXQgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgaW1wbGVtZW50IG1hbGxvYy4KCjIwMTYtMTItMDkgMTY6MDM6NDEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL1JFQURNRS50eHQ6CgkgIEFkZCBhIFJFQURNRS50eHQgd2l0aCBjb250ZXh0IGZvciBsaWJjaGVjawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODcwCgoyMDE2LTEyLTA5IDE1OjE4OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9hbGFybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvY2xvY2tfZ2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvZ2V0bGluZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvZ2V0dGltZW9mZGF5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbG9jYWx0aW1lX3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L21hbGxvYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvcmVhbGxvYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvc3RyZHVwLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9zdHJzaWduYWwuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX2NyZWF0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfZGVsZXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9zZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJKiBtZXNvbi5idWlsZDoKCSAgbGliY2hlY2s6IFVwZGF0ZSB0aGUgY29tcGF0aWJpbGl0eSBjb2RlIGFuZCBjaGVja3MKCSAgVGhpcyBicmluZ3MgdXMgdXAtdG8tc3BlZWQgd2l0aCB0aGUgbGF0ZXN0IGNvbXBhdGliaWxpdHkgY29kZSBmcm9tIHVwc3RyZWFtCgkgIGNoZWNrIGdpdC4gRm9yIGNvbXBsZXRlbmVzcywgd2UgZG8gYWxsIHRoZSBjaGVja3MgdGhhdCB1cHN0cmVhbSBjaGVjayBkb2VzLCBidXQKCSAgd2Ugc2tpcCB0aGUgc25wcmludGYvdnNucHJpbnRmIGNvZGUgYmVjYXVzZSBpdCdzIG5vdCBzdHJhaWdodGZvcndhcmQgKGludm9sdmVzCgkgIHJ1bm5pbmcgY29kZSBhbmQgdGhhdCBpcyBiYWQgZm9yIGNyb3NzLWNvbXBpbGF0aW9uKSBhbmQgbm90IG5lY2Vzc2FyeSBmb3IgdGhlCgkgIHBsYXRmb3JtcyB3ZSBzdXBwb3J0IGFueXdheS4KCSAgSWYgc29tZW9uZSByZWFsbHkgd2FudHMgdGhpcywgdGhleSBjYW4gdW5jb21tZW50IHRoaXMgYW5kIGNvcHkgdGhlIHJlbGV2YW50CgkgIGNoZWNrcyBmcm9tIHRoZSBjaGVjayBnaXQgcmVwb3NpdG9yeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg3MAoKMjAxNi0xMi0wOSAxNToxODoxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9hbGFybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvY2xvY2tfZ2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xvY2FsdGltZV9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9zdHJzaWduYWwuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX2NyZWF0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfZGVsZXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9zZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJICBsaWJjaGVjazogSnVzdCBtb3ZlIGxpYmNvbXBhdCBmaWxlcyB0byBhIHN1YmRpcgoJICBNYWtlcyBpdCBjbGVhcmVyIHdoaWNoIGZpbGVzIGFyZSBhY3R1YWxseSB1c2VkIGluIGxpYmNoZWNrIGFuZCB3aGljaCBhcmUgdXNlZAoJICBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGF0aWJpbGl0eS4gVGhpcyBpcyBnb2luZyB0byBiZSBlc3BlY2lhbGx5IHVzZWZ1bCB3aGVuIHdlCgkgIGFkZCBhbGwgdGhlIGxpYmNvbXBhdCBmYWxsYmFjayBjb2RlIHRoYXQgdXBzdHJlYW0gbGliY2hlY2sgaGFzIHdoaWNoIHdpbGwgYWRkCgkgIGFib3V0IDYgbmV3IGZpbGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODcwCgoyMDE2LTEyLTA5IDE1OjE4OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGxpYmNoZWNrOiBwb3J0IHRvIGxhdGVzdCBjaGVjayBnaXQKCSAgVXBzdHJlYW0gc2VlbXMgdG8gaGF2ZSBzdG9wcGVkIGRvaW5nIHJlbGVhc2VzLCBidXQgd2UgbmVlZCB0byB1cGRhdGUgZm9yIGJldHRlcgoJICBXaW5kb3dzIGFuZCBWaXN1YWwgU3R1ZGlvIHN1cHBvcnQuCgkgIFRoaXMgcGF0Y2ggb25seSB1cGRhdGVzIHRoZSBsaWJjaGVjayBzb3VyY2VzIGFuZCBpZ25vcmVzIHRoZSBjb21wYXRpYmlsaXR5CgkgIHNvdXJjZXMgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg3MAoKMjAxNi0xMi0wOCAyMjowMzoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2Vycy9sb2c6IGxvZyBtb3JlIGRldGFpbAoJICBMb2cgdGhlIG9iamVjdHMgbGlrZSB3ZSB3b3VsZCBpbiBHU1RfVFJBQ0VfT0JKRUNULiBBZGQgdGhlIGhvb2sgZnVuY3Rpb24gaW50bwoJICB0aGUgZnVjbnRpb24gZmllbGQuCgoyMDE2LTEyLTA4IDIyOjAyOjE3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXIvbG9nOiBmaXggaG9vayBwcm90b3R5cGUKCSAgcy9Hc3RFbGVtZW50L0dzdFBhZC8KCjIwMTYtMTItMDggMjA6MjA6MTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHRyYWNlcjogbW92ZSB0aGUgUEFEX0xJTksgdHJhY2VyIGhvb2sgdG8gX3BhZF9saW5rX2Z1bGwoKQoJICBUaGlzIGlzIHVsdGltYXRlbHkgZXhlY3V0aW5nIHRoZSBwYWRfbGluay4gSW4gdGhlIHByZXZpb3VzIHBvc2l0aW9uIHdlIG1pc3NlZAoJICBzb21lIGxpbmtzLCBub3RhYmx5IGdob3N0cGFkcy4KCjIwMTYtMTItMDcgMjE6NTM6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICB0cmFjZXIvbGF0ZW5jeTogY2xlYXIgcWRhdGEKCSAgV2hlbiByZWFkaW5nIHRoZSBxZGF0YSwgY2xlYXIgaXQgdG8gYXZvaWQgaXQgYmVpbmcgcmVhZCBhbmQgdW5yZWZmZWQgYWdhaW4uCgkgIEZpeGVzICM3NzQzMzIKCjIwMTYtMTItMDYgMjI6MzI6MzEgKzAxMDAgIFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnOiBGaXggdW5hbGlnbmVkIGFjY2VzcyBzdXBwb3J0IGZvciBhcmMgYW5kIG5pb3MyIGFyY2hpdGVjdHVyZXMKCSAgRml4ZXMgYnVpbGRyb290IGF1dG9idWlsZCBmYWlsdXJlcyAoWzFdLCBbMl0pLgoJICBbMV0gaHR0cDovL2F1dG9idWlsZC5idWlsZHJvb3QubmV0L3Jlc3VsdHMvZmJkL2ZiZGNkOTA2MzVkNWVjM2E2MmFkOThhN2ZmOTNiNzFiOGU1ZWNkZTQKCSAgWzJdIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm5ldC9yZXN1bHRzL2YzYy9mM2M5YjBlZDRmZmIxMTQyMjEwNTcyMzdjZTIyYzk5NWI2NzNhOThiCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3MjgKCjIwMTYtMTEtMjIgMTY6NTI6NDYgKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVyaTogQWRkIG5ldyB1cmkgQVBJIHRvIGdldCBtZWRpYSBmcmFnbWVudHMgVVJJIGFzIHRhYmxlCgkgIEFzIGFuIHVzZWNhc2Ugb2YgVVJJIGZyYWdtZW50LCBpdCBjYW4gaW5kaWNhdGUgdGVtcG9yYWwgb3Igc3BhdGlhbAoJICBkaW1lbnNpb24gb2YgYSBtZWRpYSBzdHJlYW0uIFRvIGVhc2lseSBwYXJzZSBrZXktdmFsdWUgcGFpciwKCSAgbmV3bHkgYWRkZWQgZ3N0X3VyaV9nZXRfbWVkaWFfZnJhZ21lbnRfdGFibGUgKCkgQVBJIHdpbGwgcHJvdmlkZQoJICB0aGUgdGFibGUgb2Yga2V5LXZhbHVlIHBhaXIgbGlrZXdpc2UgVVJJIHF1ZXJ5LgoJICBTZWUgYWxzbyBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWEtZnJhZ3MvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ4MzAKCjIwMTYtMTItMDYgMTY6Mjc6MjMgKzAxMDAgIFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3Q6CgkgIGhlbHBlcnMvZ3N0OiBHZXQgYmFzaCBjb21wbGV0aW9uIG9wdGlvbnMgZnJvbSBnc3QtbGF1bmNoCgkgIEl0IGlzIG1vcmUgbGlrZWx5IHRoYXQgZ3N0LWxhdW5jaCBpcyBpbnN0YWxsZWQgdGhhbiBnZXMtbGF1bmNoCgkgIFJlcG9ydGVkLWJ5OiBNYXJpYW5uYSBTbWlkdGggQnVzY2hsZSA8bXNiQHF0ZWMuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzE0CgoyMDE2LTEyLTA2IDE4OjA2OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVwZGF0ZSBmb3IgcmVtb3ZlZCBkb2NzL2Rlc2lnbiBkaXJlY3RvcnkKCjIwMTYtMTItMDUgMTg6MTY6MzQgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pbmlvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlcW51bXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc2VsZWN0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRvY3M6IFJlbW92ZSBkZXNpZ24gZG9jIGFzIHRoZXkgaGF2ZSBiZWVuIG1vdmVkIHRvIGdzdC1kb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU2NjcKCjIwMTYtMTEtMjkgMTc6MzQ6NDAgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFByb3Blcmx5IHN0YXJ0IGFuZCBlbmQgZHdmbCBzZXNzaW9ucyB3aGVuIGdldHRpbmcgc3RhY2sgdHJhY2VzCgkgIFdlIHdlcmUgY3JlYXRpbmcgYSBuZXcgc2Vzc2lvbiB0byByZXRyaXZlIGVhY2ggbGluZSBvZiBhIHN0YWNrIHRyYWNlCgkgIGFuZCB3ZSBhcmUgc3VwcG9zZWQgdG8gc3RhcnQgaXQgb25jZSBmb3IgYSB3aG9sZSBzdGFjayB0cmFjZS4KCSAgQW5kIHBhc3MgdGhlIHdob2xlIGZpbGUgdG8gZ3N0LWluZGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTM2NQoKMjAxNi0xMi0wMiAyMjo0NzozMiArMDEwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldDogc2V0IGNsb2NrIG5hbWUgaW4gdGhlIGNvbnN0cnVjdG9yCgkgIGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldygpIGFuZCBnc3RfbnRwX2Nsb2NrX25ldygpIGRpZG4ndCBzZXQgdGhlCgkgICJuYW1lIiBwcm9wZXJ0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTUzOAoKMjAxNi0xMi0wNSAyMTowOTo1MiArMDEwMCAgUGV0ZXIgU2VpZGVyZXIgPHBzLnJlcG9ydEBnbXgubmV0PgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWc6IEZpeCB1bmFsaWduZWQgYWNjZXNzIHN1cHBvcnQgZm9yIG1pY3JvYmxhemUgYW5kIHh0ZW5zYSBhcmNoaXRlY3R1cmVzCgkgIEZpeGVzIGJ1aWxkcm9vdCBhdXRvYnVpbGQgZmFpbHVyZXMsIGZvciBkZXRhaWxzIHNlZToKCSAgaHR0cDovL2xpc3RzLmJ1c3lib3gubmV0L3BpcGVybWFpbC9idWlsZHJvb3QvMjAxNi1EZWNlbWJlci8xNzg4OTUuaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NjYxCgoyMDE2LTEyLTAyIDE1OjMwOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIG1ldGE6IHJlbW92ZSB1bm5lY2Vzc2FyeSBwYWRkaW5nIGZvciBHc3RNZXRhSW5mbyBzdHJ1Y3QKCSAgVGhpcyBzdHJ1Y3R1cmUgaXMgYWx3YXlzIGFsbG9jYXRlZCBieSBHU3RyZWFtZXIsIGNhbid0IGJlCgkgIHN1YmNsYXNzZWQgb3IgZXh0ZW5kZWQsIGFuZCBpcyBuZXZlciBhbGxvY2F0ZWQgb3IgdXNlZCBvbgoJICB0aGUgc3RhY2ssIHNvIHdlIGRvbid0IG5lZWQgYW55IHBhZGRpbmcgYW5kIGNhbiBleHRlbmQgaXQKCSAgYXMgd2UgcGxlYXNlLgoKMjAxNi0wNi0yOSAxOTozNjowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzaW5rLCBpZGVudGl0eTogcHJpbnQgbWV0YXMgYXR0YWNoZWQgdG8gYnVmZmVyIGluIHNpbGVudD1mYWxzZSBtb2RlCgoyMDE2LTEyLTA1IDExOjAxOjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IEhhbmRsZSBHc3RJdGVyYXRvciBSRVNZTkMgcmV0dXJuIHZhbHVlIGNvcnJlY3RseSBpbiBnc3RfaXRlcmF0b3JfZm9yZWFjaCgpCgoyMDE2LTEyLTA0IDEyOjE1OjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXJzL2xvZzogbG9nIG1lc3NhZ2VzIGluIG1lc3NhZ2UgY2F0ZWdvcnkKCjIwMTYtMTItMDMgMDg6MTk6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBSRUFETUU6CgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjk4MGZkOSB0byAzOWFjMmY1CgoyMDE2LTEyLTAxIDE4OjIwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB0byByZXN5bmMgaXRlcmF0b3JzIGFuZCBoYW5kbGUgUkVTWU5DIGF0IGFsbCBpbiBnc3RfaXRlcmF0b3JfZm9yZWFjaCgpIGNhbGxzCgoyMDE2LTExLTI5IDE4OjE0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBGaXggb2Zmc2V0dGluZyBvZiB0aW1lc190ZW1wIHJlbGF0aXZlIHRvIHRoZSB0aW1lcyBhcnJheQoKMjAxNi0xMS0yOSAxMDozNDoxNCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBTZXQgZGVmYXVsdCBkZWJ1ZyBsZXZlbCB0byBFUlJPUiB3aGVuIHJ1bm5pbmcgZnJvbSBnaXQKCjIwMTYtMTEtMjggMTk6Mjg6MjcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy9lbGVtZW50cy9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgQXV0b3Rvb2xzIGNoYW5nZXMgdGhhdCB3ZXJlbid0IG1pcnJvcmVkCgkgIGNvbW1pdHM6CgkgIGE3ZDI4MmQyNzI1NmFkMWQxYTU1YWZjMzdkMWRiN2Y2MGIwNDAwODkKCSAgNmZkYjRkZjBmOGM4YTllMzlmN2Y3Y2I3M2FiNjUzMDZmYjA1MTdmNQoJICAxYWNlZWJkNjdmMDE2MTgwNmRjM2I0YjY4NDg4ZDU5OTI5MGYyODNlCgoyMDE2LTExLTI4IDE0OjExOjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGNoZWNrL3BpcGVsaW5lOiBNYWtlIGZhaWx1cmUgbWVzc2FnZSBtb3JlIGluZm9ybWF0aXZlCgkgIFRoaXMgd2lsbCBwcm92aWRlIG1heWJlIGEgYml0IG1vcmUgaW5zaWdodCB0aGUgbmV4dCB0aW1lIGl0IGZhaWxzCgoyMDE2LTExLTI4IDE0OjAwOjE4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBjaGVjay9tZW1vcnk6IERvbid0IGxlYWsgdGhlIGN1c3RvbSBhbGxvY2F0b3IKCjIwMTYtMTEtMjggMTM6NDg6MTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEZpeCBhIHBhZCBsZWFrCgkgIFdoZW4gcmVxdWVzdGluZyBhIHBhZCBmcm9tIGEgdGVtcGxhdGUgYW5kIGl0J3MgYWxyZWFkeSBsaW5rZWQsIHRoaXMKCSAgbWVhbnMgaXQgd2FzIGEgc3RhdGljIHBhZC4gU2luY2Ugd2Ugb25seSB3YW50IHRvIHJldHVybiBhbiAqYXZhaWxhYmxlKgoJICBwYWQsIHdlIG11c3QgcmV0dXJuIE5VTEwgLi4uIGJ1dCB3ZSBtdXN0IGFsc28gcmVtb3ZlIHRoZSByZWZlcmVuY2UKCSAgd2UgZ290IGZyb20gZ2V0dGluZyB0aGF0IHN0YXRpYyBwYWQuCgkgIFRoZSAiTm8gbmVlZCB0byB1bnJlZiIgbWVzc2FnZSAod2hpY2ggd2Fzbid0IHRydWUgZm9yIHF1aXRlIHNvbWUgdGltZSkKCSAgZGF0ZXMgYmFjayBmcm9tIHRoZSB2ZXJ5IHZlcnkgdmVyeSBmaXJzdCBjb21taXQgaW50cm9kdWNpbmcgdGhlIDAuMTAKCSAgZmVhdHVyZXMuCgoyMDE2LTExLTI4IDA5OjUwOjQwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIGNoZWNrOiBGaXggbGVhayBpbiBxdWV1ZTIgdGVzdAoKMjAxNi0xMS0yMyAxNTo0MToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEV4cG9ydCBsaW5lYXIgcmVncmVzc2lvbiBjYWxjdWxhdGlvbiBhcyBwdWJsaWMgZnVuY3Rpb24KCSAgSXQgaXMgdXNlZnVsIG91dHNpZGUgdGhlIEdzdENsb2NrIGNvZGUgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0OTE2CgoyMDE2LTExLTI4IDExOjU2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFJlbW92ZSBnZW5lcmF0ZWQgZ3N0cmVhbWVyLnNwZWMgZmlsZQoJICBMaWtlbHkgZXh0cmVtZWx5IGJpdHJvdHRlbiwgYW5kIHdlIHNob3VsZCBub3Qgc2hpcCB0aGlzIGFueXdheS4KCjIwMTYtMTEtMjggMTE6MDk6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCBkYXRhdXJpc3JjIHRvIGRvY3MgYW5kIHVwZGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTI3CgoyMDE2LTExLTI4IDExOjEwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogZmlsZXNyYzogaW5pdCBhbmQgY2xlYXIgR0NvbmQgYW5kIG11dGV4CgkgIE1pZ2h0IG90aGVyd2lzZSBsZWFrIG9uIG5vbi1MaW51eCBzeXN0ZW1zLgoKMjAxNi0xMS0yOCAxMTowODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIHRlc3RzOiByZXdyaXRlIGFuZCBlbmFibGUgZGF0YXVyaXNyYyB0ZXN0CgkgIENhbid0IHVzZSBwbGF5YmluIGZvciBjb3JlIHVuaXQgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MjcKCjIwMTYtMTEtMjggMTE6MDc6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBlbGVtZW50czogYWRkIGRhdGF1cmlzcmMgdG8gYnVpbGQKCSAgTW92ZWQgZnJvbSAtYmFkLgoKMjAxNi0xMS0yOCAxMDo0Mjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBmaXggc3RyaW5nIGxlYWsgaW4gcHJvcGVydHkgZ2V0dGVyCgoyMDE2LTExLTI4IDExOjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgTW92ZSBkYXRhdXJpc3JjIGVsZW1lbnQgZnJvbSAtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MjcKCjIwMTYtMTEtMjggMTI6Mjg6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBFbnN1cmUgdGhhdCB0aGUgImRlYnVnIiBmaWVsZCBvZiBlcnJvci93YXJuaW5nL2luZm8gbWVzc2FnZXMgaXMgdmFsaWQgVVRGLTgKCSAgVGhlIGNhbGxlciBtaWdodCBwYXNzIGFyYml0cmFyeSBkYXRhIGhlcmUgdGhhdCBjYXVzZWQgdGhlIGVycm9yLCBhbmQKCSAgdHJ5aW5nIHRvIHNldCBpbnZhbGlkIFVURi04IGluIGEgR3N0U3RydWN0dXJlIGNhdXNlcyBpdCB0byBiZSBub3Qgc2V0IGF0CgkgIGFsbC4gTGF0ZXIgd2hlbiB0cnlpbmcgdG8gcGFyc2UgaXQsIHRoZSBmaWVsZCB3aWxsIG5vdCBleGlzdCBhbmQgdGhlCgkgIHJldHVybiB2YWx1ZSB3aWxsIHBvaW50IHRvIGludmFsaWQgbWVtb3J5LiBQcmV2ZW50IHRoaXMgYnkgc3RvcmluZyBOVUxMCgkgIGluc3RlYWQuCgkgIEFsc28gcHJpbnQgYSBnX3dhcm5pbmcoKSwgdGhlIGNhbGxlciBzaG91bGQgbmV2ZXIgZXZlciBkbyB0aGlzIHRvIGJlZ2luCgkgIHdpdGguCgoyMDE2LTExLTI2IDExOjIwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdG1vZHVsZXM6CgkgIGNvbW1vbjogdXNlIGh0dHBzIHByb3RvY29sIGZvciBjb21tb24gc3VibW9kdWxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUxMTAKCjIwMTYtMTEtMjYgMTE6MDY6MjAgKzAwMDAgIEhhbm5vIEJvZWNrIDxoYW5ub0BoYm9lY2suZGU+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiB1c2UgaHR0cHMgcHJvdG9jb2wgdG8gY2xvbmUgcmVwb3MKCSAgVGhlIGdpdDovLyBwcm90b2NvbCBpcyBwcm9ibGVtYXRpYyBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUsIGFzCgkgIGl0IHByb3ZpZGVzIG5vIGF1dGhlbnRpY2l0eSBvZiBkYXRhLiBodHRwczovLyBhbHNvIHdvcmtzIGJldHRlciBpbgoJICBlbnZpcm9ubWVudHMgd2l0aCByZXN0cmljdGVkIG5ldHdvcmsgY29ubmVjdGl2aXR5LgoJICBBbHNvIGFkZCBDTE9ORV9PUFRTIHRvIGRvIHNoYWxsb3cgY2hlY2tvdXRzIG1vcmUgZWFzaWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1MTEwCgoyMDE2LTExLTE1IDAzOjAzOjIyICswODAwICBUaW5nLVdlaSBMYW4gPGxhbnR3QHNyYy5nbm9tZS5vcmc+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFN1cHBvcnQgZXhlY2luZm8uaCBvbiBGcmVlQlNEIGJ5IHVzaW5nIC1sZXhlY2luZm8KCSAgRnJlZUJTRCBzdXBwb3J0cyBleGVjaW5mby5oIGFuZCBiYWNrdHJhY2UqIGZ1bmN0aW9ucywgYnV0CgkgIHVzaW5nIHRoZW0gcmVxdWlyZXMgbGlua2luZyB3aXRoIC1sZXhlY2luZm8uCgkgIFJlcXVpcmVzIHN1ZmZpY2llbnRseS1uZXcgbWVzb24gd2l0aCAjMTA1MyBmaXhlZCAocG9zdC0wLjM2KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDQyNAoKMjAxNi0xMS0yMyAxODo1NjoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICB0b29sczogUmVtb3ZlIGZpbGVzIHRvIGJlIGNsZWFuZWQKCSAgbWFucGFnZXMgYXJlIG5vIGxvbmdlciBhdXRvLWdlbmVyYXRlZAoJICBjb3YtcmVsYXRlZCBmaWxlcyBzaG91bGQgbm90IGJlIHRoZXJlIChpZiBuZWVkZWQgd2UgY291bGQgdXNlIGdpdGlnbm9yZSkKCjIwMTYtMTEtMDQgMTg6NTQ6MTAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IERvY3VtZW50IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHVubG9jaygpIGFuZCB3YWl0X3ByZXJvbGwoKQoJICBUaGlzIHdhcyB0b3RhbGx5IG5vbi1vYnZpb3VzLCB0aGUga2luZCBvZiBiaWcgcHJvYmxlbSBpcyB0aGF0IHN1YmNsYXNzZXMgbXVzdAoJICBiZSBhYmxlIHRvIHVuYmxvY2sgdGhlaXIgc3RyZWFtaW5nIHRocmVhZCBhbmQgY29udGludWUgZXhhY3RseSB3aGVyZSB0aGV5IGxlZnQgb2ZmCgkgIG9uIHVucGF1c2UhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTIKCjIwMTYtMTEtMDQgMTg6NDY6NDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmRzaW5rOiBCbG9jayBpbiBwcmVyb2xsX3dhaXQgb24gdW5sb2NrCgkgIFRoZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBhbnl0aGluZyBzdHVjayBpbiB0aGUgLT5yZW5kZXIoKSBmdW5jdGlvbgoJICBiZXR3ZWVuIC0+dW5sb2NrKCkgYW5kIC0+dW5sb2NrX3N0b3AoKSBpcyB0byBjYWxsCgkgIGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKCkgYW5kIG9ubHkgcmV0dXJuIGFuIGVycm9yIGlmIHRoaXMgcmV0dXJucyBhbgoJICBlcnJvciwgb3RoZXJ3aXNlLCBpdCBtdXN0IGNvbnRpbnVlIHdoZXJlIGl0IGxlZnQgb2ZmIQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTEyCgoyMDE2LTExLTIzIDE4OjU3OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRG9uJ3QgaW5jcmVtZW50IE5VTEwgcG9pbnRlcnMKCSAgVHJpdmlhbCB3b3JrYXJvdW5kIGZvciBjb3Zlcml0eSBmYWxzZSB3YXJuaW5nLgoJICBDSUQgMTM5NDQ4OCwgMTM5NDQ4Ny4KCjIwMTYtMTEtMjMgMDk6NTg6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgdG9vbHM6IGZpeCBkaXN0Y2hlY2sgYW5kIC5naXRpZ25vcmUKCjIwMTYtMTEtMDMgMTA6MzA6NTMgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB0b29sczogaW5zdGFsbCB0aGUgbWFuIHBhZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMDMgMTA6MzA6NTMgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1pbnNwZWN0LTEuMC4xOgoJKiB0b29scy9nc3QtbGF1bmNoLTEuMC4xOgoJKiB0b29scy9nc3QtdHlwZWZpbmQtMS4wLjE6CgkgIHRvb2xzOiBzaGlwIHRoZSBmaW5hbCBtYW4gcGFnZXMgZGlyZWN0bHksIG5vIG1vcmUgbWFuIHBhZ2VzIHRlbXBsYXRlcwoJICBEb24ndCB1c2UgdGVtcGxhdGVzIGZvciB0aGUgbWFuIHBhZ2VzLCB0aGUgQVBJIHZlcnNpb24gY2hhbmdlIGlzIGEgcmFyZQoJICBldmVudCwgc28gaXQncyBub3QgcmVhbGx5IHdvcnRoIGtlZXBpbmcgaW4gcGxhY2UgdGhlICJzZWQiIGJvaWxlcnBsYXRlCgkgIHRvIGhhdmUgaXQgc2V0IGF0IGJ1aWxkIHRpbWUuCgkgIFNoaXBwaW5nIHRoZSBmaW5hbCBtYW4gcGFnZXMgZGlyZWN0bHkgYWxzbyBtYWtlcyBpdCBlYXNlciB0byBpbnN0YWxsIHRoZQoJICBtYW4gcGFnZXMgd2l0aCBtZXNvbiAoaW4gYSBmdXR1cmUgY29tbWl0KS4KCSAgTm90ZSB0aGF0IG5vdyBhbGwgdGhlIG9jY3VycmVuY2VzIG9mIHRoZSBwcm9ncmFtcyBuYW1lcyBoYXZlIHRoZSBBUEkKCSAgdmVyc2lvbiBhcyBhIHN1ZmZpeC4KCSAgVHJhZGl0aW9uYWxseSB0aGUgZXhhbXBsZSBjb21tYW5kIGxpbmVzIGxvb2tlZCBsaWtlOgoJICBnc3QtbGF1bmNoIC4uLgoJICBOb3cgdGhleSBsb29rIGxpa2U6CgkgIGdzdC1sYXVuY2gtMS4wIC4uLgoJICBUaGlzIHJlZmxlY3RzIHRoZSBhY3R1YWwgcHJvZ3JhbXMgbmFtZXMgYW5kIG1ha2VzIGl0IGVhc2llciB0byBjb3B5IGFuZAoJICBwYXN0ZSB0aGUgZXhhbXBsZSBjb21tYW5kcy4KCSAgQWxzbywgdGhlIC5naXRpZ25vcmUgZmlsZSBpcyBhZGp1c3RlZCBub3QgdG8gaWdub3JlIHRoZSBmaW5hbCBtYW4gcGFnZXMKCSAgYW55bW9yZS4KCSAgWW91IG1heSBuZWVkIHRvIGNsZWFuIHlvdXIgc3JjL2J1aWxkIGRpcmVjdG9yeSBiZWZvcmUgcHVsbGluZyBpbiB0aGlzCgkgIHBhdGNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTE4IDEzOjA5OjIxICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXJzOiBhZGQgbmV3IHByb3h5IGNvbnRyb2wgYmluZGluZwoJICBBbGxvd3MgcHJveHlpbmcgdGhlIGNvbnRyb2wgaW50ZXJmYWNlIGZyb20gb25lIHByb3BlcnR5IG9uIG9uZSBHc3RPYmplY3QKCSAgdG8gYW5vdGhlciBwcm9wZXJ0eSAob2YgdGhlIHNhbWUgdHlwZSkgaW4gYW5vdGhlciBHc3RPYmplY3QuCgkgIEUuZy4gaW4gYSBwYXJlbnQtY2hpbGQgcmVsYXRpb25zaGlwLCBvbmUgbWF5IG5lZWQgdG8KCSAgZ3N0X29iamVjdF9zeW5jX3ZhbHVlcygpIG9uIHRoZSBjaGlsZCBhbmQgaGF2ZSBhIGJpbmRpbmcgKHNldCBlbHNld2hlcmUpCgkgIG9uIHRoZSBwYXJlbnQgdXBkYXRlIHRoZSB2YWx1ZS4KCSAgTm90ZTogdGhhdCB0aGlzIGRvZXNuJ3Qgc29sdmUgR09iamVjdCBwcm9wZXJ0eSBmb3J3YXJkaW5nIGFuZCBtdXN0IGJlCgkgIHRha2VuIGNhcmUgb2YgYnkgdGhlIGltcGxlbWVudGF0aW9uIG1hbnVhbGx5IG9yIHVzaW5nIEdCaW5kaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NjU3CgoyMDE2LTEwLTA3IDExOjM5OjI2ICswMTAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGxvZyB3aXRoIEdTVF9JTkZPIGluc3RlYWQgR1NUX0VSUk9SIHdoZW4gc3ViY2xhc3MgbWFwIGZhaWxlZC4KCSAgQWRkIHVuaXQgdGVzdCB0byBlbnN1cmUgdGhhdC4KCSAgSXQgY2FuIGJlIGEgbm9ybWFsIGV4ZWN1dGlvbiBwYXRoIHRvIGRvIHNvbWUgbWFwIHRyaWFscyBhbmQgdGhlcmUgaXMKCSAgbm8gbmVlZCB0byB3b3JyeSB0aGUgdXNlciBpbiB0aGF0IGNhc2UuCgkgIFRoZSBhcHBsaWNhdGlvbiBoYXMgdG8gY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfbWVtb3J5X21hcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTYwMAoKMjAxNi0xMS0xNyAxNzozNzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBFbnN1cmUgdG8gc2V0IHRoZSBSRUNPTkZJR1VSRSBmbGFnIGFnYWluIGlmIHJlY29uZmlndXJhdGlvbiBmYWlsZWQKCSAgSXQgbWlnaHQndmUgZmFpbGVkIGp1c3QgYmVjYXVzZSBvZiBmbHVzaGluZyBvciBvdGhlciB0aGluZ3MsIGFuZCB3ZQoJICBzaG91bGQgcmV0cnkgYWdhaW4gb24gdGhlIG5leHQgcG9zc2liaWxpdHkgaWYgc29tZXRoaW5nIGV2ZXIgY2FsbHMgaW4KCSAgaGVyZSBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDYyMwoKMjAxNi0xMS0xNyAxNjozOTo1MiAtMDgwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGFkZF9nbG9iYWxfYXJndW1lbnRzIC0+IGFkZF9wcm9qZWN0X2FyZ3VtZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NjU2CgoyMDE2LTExLTE2IDIzOjE5OjI4ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIHN1cmUgbm90LWxpbmtlZCBzdHJlYW1zIGdldCB3b2tlbiB1cAoJICBXaGVuIHJ1bm5pbmcgaW4gc3luYy1ieS1ydW5uaW5nLXRpbWUgbW9kZSwgcGFkIGdyb3VwcwoJICB0aGF0IGhhdmUgZXhhY3RseSAxIHBhZCBhbmQgaXQncyBub3QtbGlua2VkIG1pZ2h0IG5ldmVyCgkgIHdha2UgdXAgYWZ0ZXIgY29tcHV0aW5nIGEgaGlnaCB0aW1lLCBhcyB0aGUgcGVyLXBhZC1ncm91cAoJICBoaWdoIHRpbWUgd2FzIG9ubHkgcmVjb21wdXRlZCB3aGVuIGEgcGFkIGluIHRoZSBncm91cAoJICBhZHZhbmNlcy4KCSAgV2FrZSB0aG9zZSB1cCB1c2luZyB0aGUgZ2xvYmFsIG11bHRpcXVldWUgaGlnaC10aW1lIGFjcm9zcwoJICBhbGwgb3RoZXIgZ3JvdXBzIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQzMjIKCjIwMTYtMTEtMTYgMTA6NTU6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBtaXNjIGZpeGVzCgoyMDE2LTExLTE2IDEwOjUxOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiB1c2UgdGVtcCB2YXIgaW4gZmFsbGJhY2sgR1NUX1dSSVRFXyooKSBtYWNyb3MKCSAgVG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyBvbmx5IGV4cGFuZGVkL3VzZWQgb25jZSwgaW4gY2FzZQoJICB0aGVyZSBhcmUgc2lkZSBlZmZlY3RzIHRvIGl0LCBhbmQgdG8gYXZvaWQgY2FsY3VsYXRpbmcgaXQKCSAgb3IgbG9va2luZyBpdCB1cCBtdWx0aXBsZSB0aW1lcyBpZiB0aGVyZSBpcyBhIGNhbGN1bGF0aW9uCgkgIG9yIGxvb2t1cCBpbnZvbHZlZC4KCjIwMTYtMTEtMTYgMDA6MzA6MjYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggcHJldmlvdXMgY29tbWl0CgkgIENoZWNrIHRoZSBjb3JyZWN0IHNlZ21lbnQgZm9ybWF0IHZhbHVlLgoJICBwYXJzZS0+c2VnbWVudC5mb3JtYXQgaXMgdGhlIGZvcm1hdCB3ZSdyZSBvdXRwdXR0aW5nIGluLAoJICBub3QgdGhlIHVwc3RyZWFtIGZvcm1hdC4gVXNlIHBhcnNlLT5wcml2LT51cHN0cmVhbV9mb3JtYXQgaW5zdGVhZCwKCSAgYW5kIG1ha2Ugc3VyZSBpdCdzIHNldCBpbiBwdWxsIG1vZGUuCgoyMDE2LTExLTE1IDIzOjUxOjA2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVzdHJpY3QgcXVlcnkvY29udmVydCByZXNwb25zZXMgd2hlbiBkZW11eGluZwoJICBJZiB0aGUgcGFyc2VyIGlzIG5vdCBwYXJzaW5nIGEgcmF3IGVsZW1lbnRhcnkgc3RyZWFtLCByZXN0cmljdAoJICB0aGUgcG9zaXRpb24sIGR1cmF0aW9uIGFuZCBjb252ZXJzaW9uIHF1ZXJ5IHJlcGxpZXMgdG8KCSAgdGhpbmdzIHdlIGNhbiBzZW5zaWJseSBhbnN3ZXIgYWJvdXQgLSBlc3BlY2lhbGx5IGRvbid0IGRvCgkgIHJhbmRvbSBjb252ZXJzaW9ucyB0by9mcm9tIGJ5dGVzLgoKMjAxNi0xMS0xNSAyMjozOTo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcXVldWVzOiBEb24ndCByZXR1cm4gbmVnYXRpdmUgcG9zaXRpb24gcXVlcmllcy4KCSAgV2hlbiBzdWJ0cmFjdGluZyBxdWV1ZWQgZGF0YSBzaXplcyBmcm9tIHVwc3RyZWFtIHF1ZXJpZXMKCSAgaW4gcXVldWUsIHF1ZXVlMiwgZG93bmxvYWRidWZmZXIgYW5kIHR5cGVmaW5kLCBjbGFtcCB0aGUKCSAgcmVzdWx0IHRvIG5vdCBnbyBuZWdhdGl2ZSwgaW4gY2FzZSB1cHN0cmVhbSByZXR1cm5lZAoJICBhIG5vbnNlbnNlIHZhbHVlIHRoYXQncyB0b28gc21hbGwgKGFzIGNvdWxkIGhhcHBlbiBpZgoJICB1cHN0cmVhbSBpcyBlc3RpbWF0aW5nLCBvciBqdXN0IGJyb2tlbikKCjIwMTYtMTEtMTQgMTE6Mjc6MDUgLTA4MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJICBDYXN0IGF3YXkgY29uc3QgZnJvbSBHc3RNZXRhSW5mbyBpbiAqX2dldF9tZXRhX2luZm8oKSBmdW5jdGlvbnMKCSAgTVNWQyB3YXJucyBhYm91dCB0aGUgY29uc3QgaW4gdGhlIGltcGxpY2l0IGFyZ3VtZW50IGNvbnZlcnNpb24gaW4gdGhlCgkgIGNhbGxzIHRvIGdfb25jZV9pbml0X3tlbnRlcixsZWF2ZX0uIEl0J3MgT0sgc28gZXhwbGljaXRseSBjYXN0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MjkzCgoyMDE2LTExLTE0IDExOjMyOjUxIC0wODAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IFVwZGF0ZSBwcm90b3R5cGUgb2YgaGVscGVyX2ZpbmRfc3VnZ2VzdCgpCgkgIGZvcndhcmQgZGVjbGFyYXRpb24gcHJvdG90eXBlIGlzIHVwZGF0ZWQgdG8gbWF0Y2ggdGhlIGNoYW5nZSBpbjoKCSAgNWE3MmMyMyBDaGFuZ2Ugc29tZSB0eXBlcyB0byBtYXRjaCB0aGVpciBwcm90b3R5cGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQyOTMKCjIwMTYtMTEtMTQgMjE6Mjg6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogcmVtb3ZlIGNvcGllcyBvZiBnZW5lcmF0ZWQgaGVhZGVycwoKMjAxNi0xMS0xNCAyMToxODoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkqIGRvY3MvaW1hZ2UtZXBzOgoJKiBkb2NzL2ltYWdlLXBkZjoKCSogZG9jcy9pbWFnZS1wbmc6CgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3Mvc2xpZGVzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3NsaWRlcy9SRUFETUU6CgkqIGRvY3Mvc2xpZGVzL2Fic3RyYWN0OgoJKiBkb2NzL3NsaWRlcy9hYnN0cmFjdC5zYXZlOgoJKiBkb2NzL3NsaWRlcy9vdXRsaW5lOgoJKiBkb2NzL3NsaWRlcy9zbGlkZXM6CgkqIGRvY3MvdXJsLmVudGl0aWVzOgoJKiBkb2NzL3hzbC9NYWtlZmlsZS5hbToKCSogZG9jcy94c2wvYWRtb24ueHNsOgoJKiBkb2NzL3hzbC9jc3MueHNsOgoJKiBkb2NzL3hzbC9maWxlZXh0LnhzbDoKCSogZG9jcy94c2wvZm8ueHNsOgoJKiBkb2NzL3hzbC9odG1sLnhzbDoKCSogZG9jcy94c2wva2V5Y29tYm8ueHNsOgoJKiBkb2NzL3hzbC91bGluay54c2w6CgkgIGRvY3M6IHJlbW92ZSBtb3JlIGRvY2Jvb2sgYnVpbGQgY3J1ZnQgdGhhdCdzIG5vIGxvbmdlciBuZWVkZWQKCjIwMTYtMTEtMTQgMjE6Mjk6NDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL1JFQURNRToKCSAgZG9jcy9SRUFETUU6IHJlbW92ZSBtb3JlIG91dGRhdGVkIHBpZWNlcyBvZiBpbmZvL2FkdmljZQoKMjAxNi0xMC0yMCAyMjozMjo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHNjcmlwdHMvZ3N0LXBsb3QtdHJhY2VzLnNoOgoJICBzY3JpcHRzL2dzdC1wbG90LXRyYWNlcy5zaDogbWFrZSBsb2cgcGFyc2luZyBhIGJpdCBtb3JlIHNvbGlkCgkgIFVzZSBncmVwIC1vIHRvIGdyYWIgdGhlIGxvZyBtZXNzYWdlIG9ubHkuIFRoaXMgbWFrZXMgaXQgd29yayB3aXRoIGNvbG9yZWQgbG9nCgkgIGZpbGVzIHRvby4gUHJlZmlsdGVyIHRoZSBsb2cgdG8gbm90IGNhdGNoIHRyYWNlciBjbGFzc2VzLgoJICBVcGRhdGUgdGhlIGNvbW1hbmRsaW5lIGZvciB0aGUgc2NyaXB0IGluIHRoZSBkb2NzLgoKMjAxNi0xMC0yMCAxNTozODo0NiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiByZXF1aXJlIG1lc29uIDAuMzYgYW5kIHVzZSBuZXcgYHBpY2AgYXJnIG9uIHN0YXRpYyBsaWJzCgkgIFJlbW92ZXMgYSBtZXNvbiB3YXJuaW5nIGFuZCBzb21lIHNwZWNpYWwgY2FzaW5nIHdlIGhhZC4KCjIwMTYtMTEtMTEgMTA6MzA6NDQgLTA4MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgQ2hhbmdlIHNvbWUgdHlwZXMgdG8gbWF0Y2ggdGhlaXIgcHJvdG90eXBlcwoJICBQYXJ0aWN1bGFybHkgbm90ZSB0aGF0IHRoZSB1bmRlcmx5aW5nIGludGVnZXIgdHlwZSBvZiB0aGUgZW51bQoJICBHc3RUeXBlRmluZFByb2JhYmlsaXR5IGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudCBhbmQgbWF5IG5vdCBtYXRjaAoJICBndWludC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDI5MwoKMjAxNi0xMS0xNCAxODowNDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxNi0xMS0xNCAxNzo0NjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL2ZhcS8uZ2l0aWdub3JlOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvYmFzZS5jc3M6CgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSogZG9jcy9mYXEvc3RhcnQueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBkb2NzOiByZW1vdmUgRkFRIHdoaWNoIHdhcyBtb3ZlZCBpbnRvIGdzdC1kb2NzIG1vZHVsZQoKMjAxNS0wNC0yOSAxMjozNDo0OSArMDIwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgR0lPX0VYVFJBX01PRFVMRVMKCSAgSW4gY2FzZSBnbGliIGlzIGluc3RhbGxlZCBpbnRvIGxvY2FsIHByZWZpeCBkaXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2MjYKCjIwMTYtMTEtMTIgMTI6MzY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IGZhc3RlciBHU1RfV1JJVEVfKiBtYWNyb3MgaWYgdW5hbGlnbmVkIGFjY2VzcyBpcyBwb3NzaWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk5NTQ2CgoyMDE2LTExLTExIDIwOjMxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGJldHRlciBlcnJvciBtZXNzYWdlIHdoZW4gbGlua2luZyB0d28gZWxlbWVudHMgd2l0aCBjYXBzZmlsdGVyIGZhaWxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1NTAKCjIwMTYtMTEtMTEgMTY6MTE6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wcmludCgpLCBnc3RfcHJpbnRsbigpLCBnc3RfcHJpbnRlcnIoKSwgZ3N0X3ByaW50ZXJybG4oKQoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjQ3MAoKMjAxNi0xMS0xMSAxMDoyMzoxNyAtMDgwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZW1vdmUgYHJldHVybiB2b2lkYCBpbiBnc3RfdGFnX3JlZ2lzdGVyCgkgIE1TVkMgd2FybnMgb24gdGhpcyBhbmQgdGhlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIHdhcm5pbmcgc2F5czoKCSAgPiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbHVlIG9mIHR5cGUgaW50CgkgIHdoaWNoIGlzIGEgbGl0dGxlIHNjYXJ5LCBzbyBsZXRzIGp1c3QgcmVtb3ZlIHRoZSB1bm5lY2Vzc2FyeSAncmV0dXJuJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MjkzCgoyMDE2LTA1LTA5IDE1OjMyOjQzICswMjAwICBOaWNvbGFzIEh1ZXQgPG5pY29sYXMuaHVldEBwYXJyb3QuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfYWRhcHRlcl9wcmV2X3B0c19hdF9vZmZzZXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjYyCgoyMDE2LTA0LTI3IDEwOjU3OjI5ICswMjAwICBOaWNvbGFzIEh1ZXQgPG5pY29sYXMuaHVldEBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBkaXN0YW5jZSB3aGVuIGdldHRpbmcgcHJldiBwdHMvZHRzIGF0IG9mZnNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjYyCgoyMDE2LTEwLTI2IDIyOjM4OjA3IC0wNzAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZG9uJ3QgYWRkX2dsb2JhbF9hcmd1bWVudHMgd2hlbiBiZWluZyBidWlsdCBhcyBhIHN1YnByb2plY3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzU2OAoKMjAxNi0wNy0yMSAxMDo1MjozMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHBvb2wgbGVhayB3aGVuIGVhcmx5IHJldHVybmluZyBpbiBkZWNpZGVfYWxsb2NhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MDIzCgoyMDE2LTA3LTI3IDEzOjM5OjUwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBHc3RTdHJlYW0gYW5kIEdzdFN0cmVhbUNvbGxlY3Rpb24gc3VwcG9ydCB0byBnc3RfZGVidWdfcHJpbnRfb2JqZWN0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTIyMAoKMjAxNi0wOC0xMiAwODowMzo0MSArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU3VwcG9ydCBQUk9URUNUSU9OIGV2ZW50IGZyb20gYXBwbGljYXRpb24KCSAgQXBwbGljYXRpb24gbWF5IHdhbnQgdG8gc2VuZCBQUk9URUNUSU9OIGV2ZW50IHRvIHRoZSBzcmMgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTc3NQoKMjAxNi0xMS0wMyAxMzozNDoxOCArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9tZXNvbi5idWlsZDoKCSAgbWVzb246IHRvb2xzOiBnZW5lcmF0ZSB0aGUgdGFyZ2V0cyBkeW5hbWljYWxseQoJICBUaGUgdGhyZWUgdGFyZ2V0cyBhcmUgdGhlIHNhbWUgZXhjZXB0IGZvciBpbnB1dCBhbmQgb3V0cHV0CgkgIGZpbGVzLCB1c2UgYSBsb29wIGFuZCBnZW5lcmF0ZSB0aGVtIGR5bmFtaWNhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTAzIDE1OjIxOjA1ICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICB0b29sczogZG9uJ3QgbWVudGlvbiBnc3QtZmVlZGJhY2sgaW4gbWFuIHBhZ2VzCgkgIGdzdC1mZWVkYmFjayBubyBsb25nZXIgZXhpc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTAzIDAwOjE4OjIxICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IHB1dCB0aGUgZXhhbXBsZXMgZGVzY3JpcHRpb25zIGJlZm9yZSB0aGUgY29tbWFuZHMgaW4gbWFuIHBhZ2UKCSAgUHV0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXhhbXBsZSBjb21tYW5kIGxpbmVzIGJlZm9yZSB0aGUgY29tbWFuZAoJICBpbnN0ZWFkIG9mIGFmdGVyIHRoZW0uIFRoZSBuZXcgd2F5IGlzIG1vcmUgaW50dWl0aXZlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTAyIDIyOjU2OjAxICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IGRvbid0IHN0YXJ0IGxpbmVzIHdpdGggc2luZ2xlIHF1b3RlcyBpbiBtYW4gcGFnZQoJICBXaGVuIGEgbGluZSBzdGFydHMgd2l0aCBhIHNpbmdsZSBxdW90ZSBpdCdzIHRyZWF0ZWQgaW4gYSBzcGVjaWFsIHdheSBieQoJICBtYW4sIHdoaWNoIG1heSByZXN1bHQgaW4gcGFyYWdyYXBocyBvZiB0aGUgbWFuIHBhZ2Ugbm90IHJlbmRlcmVkIGJ5IHRoZQoJICBtYW4gcGFnZXIsIHNvIGp1c3QgYXZvaWQgdGhhdC4KCSAgQSBwb3NzaWJsZSBzb2x1dGlvbiBjb3VsZCBoYXZlIGJlZW4gdG8gZXNjYXBlIHRoZSBzaW5nZSBxdW90ZSB3aXRoCgkgIGEgXChjcSBzZXF1ZW5jZSBidXQgdGhpcyBpcyByYXRoZXIgdW5yZWFkYWJsZSwgaW5zdGVhZCB0aGUgdGV4dCBoYXMgYmVlbgoJICByZWZvcm1hdHRlZCB0byBoYXZlIHRoZSBwcm9ibGVtYXRpYyBxdW90ZWQgJ3BwYycgc3RyaW5nIG9uIHRoZSBwcmV2aW91cwoJICBsaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTAyIDIyOjM2OjI3ICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgIHRvb2xzOiBlc2NhcGUgZGFzaGVzIGluIHRoZSBtYW4gcGFnZXMKCSAgVGhlIHBvcnRhYmxlIHdheSB0byBoYXZlIHRoZSBkYXNoZXMgdG8gYmUgcmVuZGVyZWQgYXMgQVNDSUkgbWludXNlcyBpcwoJICB0byB1c2UgdGhlIHNlcXVlbmNlIGJhY2tzbGFzaC1kYXNoLCB1c2UgdGhpcyBzdHlsZSBhdCBsZWFzdCBmb3IgdGV4dAoJICB0aGF0IGNhbiBiZSBjb3BpZWQgYW5kIHBhc3RlZCAoZS5nLiBjb21tYW5kIG5hbWVzLCBmaWxlIG5hbWVzLCBlbGVtZW50CgkgIG9wdGlvbnMpLgoJICBBbHNvIHVzZSBiYWNrc2xhc2gtZGFzaCBpbiB0aGUgTkFNRSBzZWN0aW9uIGFzIHN1Z2dlc3RlZCBieSBsZXhncm9nKDEpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTExIDA0OjQyOjMwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXIgZGVwZW5kZW5jaWVzIG9mIGdzdG5ldC0xLjAKCSAgSXQgZGVwZW5kcyBvbiBnc3RfYmFzZV9kZXAgd2hpY2ggd2lsbCBwdWxsIGluIGdzdF9kZXAKCjIwMTYtMTEtMTEgMDQ6NDE6MzkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgR3N0QmFzZS0xLjAuZ2lyIHRvIGdzdF9iYXNlX2RlcAoJICBXaXRob3V0IHRoaXMsIEdJUiBnZW5lcmF0b3JzIGNhbid0IGZpbmQgYW5kIHVzZSBpdAoKMjAxNi0xMS0xMCAxMzo0Mjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiBhZGQgc2luY2UgbWFya2VyIGZvciBuZXcgQVBJIHRvIGRvY3MgYW5kIGZpeCB3aW4zMiAuZGVmIGZpbGUKCjIwMTYtMTEtMTAgMTI6NDc6MzcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IGV4cG9zZSBnc3RfYmFzZV9wYXJzZV9kcmFpbgoKMjAxNi0xMS0wOSAxNDowNzoyOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZHZlcnRpc2UgZGVwZW5kZW5jeSBvbiBnc3RfZGVwIGdlbmVyYXRpbmcgZ2lycwoJICBBbmQgZG8gbm90IHNpbXBseSBsaW5rIHRvIGxpYmdzdCBhcyB0aGUgZ2lyIGluZm9ybWF0aW9uCgkgIGxvY2F0aW9uIG9ubHkgZXhpc3QgaW4gZGVjbGFyZV9kZXBlbmRlY3kKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDA0NAoKMjAxNi0xMS0wOCAxNzowOTo1MyArMDEwMCAgVmljdG9yIFRvc28gPG1lQHZpY3RvcnRvc28uY29tPgoKCSogdGVzdHMvbWlzYy9uZXRjbG9jay1yZXBsYXkuYzoKCSAgdGVzdHM6IEZpeCBjb21waWxlIHdhcm5pbmcgb24gbWluZ3c2NAoJICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOjM1OjAsCgkgIGZyb20gbmV0Y2xvY2stcmVwbGF5LmM6MjU6CgkgIC4uLy4uL2NvbmZpZy5oOjU0NjowOiBlcnJvcjogIl9fTVNWQ1JUX1ZFUlNJT05fXyIgcmVkZWZpbmVkIFstV2Vycm9yXQoJICAjZGVmaW5lIF9fTVNWQ1JUX1ZFUlNJT05fXyAweDA2MDEKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IveDg2XzY0LXc2NC1taW5ndzMyL3N5cy1yb290L21pbmd3L2luY2x1ZGUvY3J0ZGVmcy5oOjEwOjAsCgkgIGZyb20gL3Vzci94ODZfNjQtdzY0LW1pbmd3MzIvc3lzLXJvb3QvbWluZ3cvaW5jbHVkZS9zdGRpby5oOjksCgkgIGZyb20gbmV0Y2xvY2stcmVwbGF5LmM6MjE6CgkgIC91c3IveDg2XzY0LXc2NC1taW5ndzMyL3N5cy1yb290L21pbmd3L2luY2x1ZGUvX21pbmd3Lmg6MjIwOjA6IG5vdGU6CgkgIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcmV2aW91cyBkZWZpbml0aW9uCgkgICMgZGVmaW5lIF9fTVNWQ1JUX1ZFUlNJT05fXyAweDA3MDAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDEwOAoKMjAxNi0xMS0wOSAxMTozNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogTWFrZSBzdXJlIHRvIG9ubHkgbG9jayB0aGUgc3RyZWFtIGxvY2sgb25jZQoJICBXZSBhbHNvIG9ubHkgdW5sb2NrIGl0IG9uY2UsIGFuZCBvdGhlcndpc2UgaGF2ZSBpdCBsb2NrZWQgZm9yZXZlciBmcm9tCgkgIHRoaXMgdGhyZWFkLCBjYXVzaW5nIGRlYWRsb2NrcyBvbiBzaHV0ZG93biBsYXRlci4KCjIwMTYtMTEtMDggMTY6NTg6NTMgKzAxMDAgIFZpY3RvciBUb3NvIDxtZUB2aWN0b3J0b3NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvb2w6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uIG1pbmd3NjQKCSAgZ3N0cG9sbC5jOiBJbiBmdW5jdGlvbiAncmVsZWFzZV9ldmVudCc6CgkgIGdzdHBvbGwuYzoyMzk6MzogZXJyb3I6IHN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGFzc2lnbm1lbnQgdXNlZCBhcwoJICB0cnV0aCB2YWx1ZSBbLVdlcnJvcj1wYXJlbnRoZXNlc10KCSAgaWYgKHN0YXR1cyA9IFdhaXRGb3JTaW5nbGVPYmplY3QgKHNldC0+d2FrZXVwX2V2ZW50LCBJTkZJTklURSkpIHsKCSAgXn4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDEwOAoKMjAxNi0xMS0wNCAyMToxNTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBBUEkKCjIwMTYtMTEtMDQgMTA6MTk6MTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVbnNldCB0aGUgcGx1Z2luIHBhdGhzIHRvIGdlbmVyYXRlIHRoZSAuZ2lyIGZpbGVzCgkgIEF2b2lkaW5nIHByb2JsZW1zIHdoZW4gdXNpbmcgc3VicHJvamVjdDoKCSAgRmFpbGVkIHRvIGxvYWQgcGx1Z2luICdzb21ldGhpbmcuc286IGZpbGUgdG9vIHNob3J0CgoyMDE2LTEwLTEwIDE2OjQwOjIxICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRlYnVnOiBSZW1vdmUgdGhlIEdzdCBvbmx5IGJhc2VkIHN0YWNrIHRyYWNlIHByaW50aW5nIGltcGxlbWVudGF0aW9uCgkgIFdlIG5vdyBoYXZlIDIgb3RoZXIgaW1wbGVtZW50YXRpb25zIHRoYXQgc2hvdWxkIHdvcmsgYmV0dGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNTU1CgoyMDE2LTEwLTA3IDEyOjAyOjQ0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgdHJhY2VyczogbGVha3M6IFVzZSB0aGUgbmV3IGdzdF9kZWJ1Z19nZXRfc3RhY2tfdHJhY2UKCSAgQW5kIHJlbW92ZSB0aGUgbG9jYWwgaW1wbGVtZW50YXRpb24gb2YgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI1NTUKCjIwMTYtMTAtMDcgMTE6Mzg6MjcgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIGdzdDogVXNlIGxpYnVud2luZC9saWJkdyB0byBnZW5lcmF0ZSBiYWNrdHJhY2VzIGlmIGF2YWxhaWJsZQoJICBNYWtpbmcgdGhlIGdzdF9kZWJ1Z19wcmludF90cmFjZSBmdW5jdGlvbiBtb3JlIGdlbmVyYWxseSB1c2VmdWwuCgkgIEFQSToKCSAgKyBnc3RfZGVidWdfZ2V0X3RyYWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI1NTUKCjIwMTYtMTEtMDIgMTM6NTc6NTEgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZml4IG1pbm9yIG1lbW9yeSBsZWFrIHdoZW4gZmFpbGluZyB0byBwYXJzZSBvcHRpb25zCgkgIENvbW1pdCAyMTVjZmNmOTkzMzggKGdzdHJlYW1lcjogRml4IG1lbW9yeSBsZWFrcyB3aGVuIGNvbnRleHQgcGFyc2UKCSAgZmFpbHMpIGZpeGVzIHNvbWUgbWVtb3J5IGxlYWssIGJ1dCBpbiBvbmUgb2YgdGhlIG5ld2x5IGFkZGVkIGNhbGxzIHRvCgkgIGdfY2xlYXJfZXJyb3IoKSB0aGUgd3JvbmcgdmFyaWFibGUgd2FzIHBhc3NlZC4KCSAgV2hlbiBmYWlsaW5nIHRvIHBhcnNlIGNvbW1hbmQgbGluZSBvcHRpb25zLCBmcmVlIHRoZSAiZXJyIiB2YXJpYWJsZSwgbm90CgkgIHRoZSAiZXJyb3IiIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkwNwoKMjAxNi0xMS0wMyAxNToyMjozNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBzdXJlIHdlIG5ldmVyIGRyb3AgdGhlIHByZXJvbGwgYnVmZmVyCgkgIFRoaXMgaXMgY29zbWV0aWMgYXMgJ2xhdGUnIHNob3VsZCBuZXZlciBiZSBzZXQgZHVyaW5nIHByZXJvbGwgKGluIHBhdXNlKS4KCSAgVGhvdWdoIGNvZGUgbWF5IGV2b2x2ZSBpbiB0aGUgZnV0dXJlLCBzbyB0aGlzIGlzIGdvb2QgZm9yIHByZXZlbnRpbmcKCSAgcG90ZW50aWFsIGJ1Z3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI0NjgKCjIwMTYtMTAtMDUgMTQ6MjY6MTEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IG5lc3QgcHJlcGFyZS9yZW5kZXIgY2FsbHMKCSAgV2hlbiB0aGUgZmlyc3QgYnVmZmVyIGFycml2ZXMsIHdlIGVuZHVwIGNhbGxpbmc6CgkgIC0+cHJlcGFyZSgpCgkgIC0+cHJlcGFyZSgpCgkgIC0+cHJlcm9sbCgpCgkgIC0+cmVuZGVyKCkKCSAgVGhpcyB3aWxsIGxpa2VseSBjb25mdXNlIGFueSBlbGVtZW50IHVzaW5nIHRoaXMgbWV0aG9kLiBXaXRoIHRoaXMgcGF0Y2gsCgkgIHdlIGVuc3VyZSB0aGUgcHJlcm9sbCB0YWtlIHBsYWNlIGJlZm9yZSB0aGUgZmlyc3QgcmVuZGVyIHByZXBhcmUoKSBpcwoJICBjYWxsZWQuIFRoaXMgd2lsbCByZXN1bHQgaW46CgkgIC0+cHJlcGFyZSgpCgkgIC0+cHJlcm9sbCgpCgkgIC0+cHJlcGFyZSgpCgkgIC0+cmVuZGVyKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjQ2OAoKMjAxNi0xMS0wMiAxNjoyNzo1OCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB0eXBvIGluIGRvY3VtZW50YXRpb24KCSAgU21hbGwgdHlwbyBpbiB0aGUgZG9jdW1lbnRhdGluIG9mIGdzdF9iYXNlX3Npbmtfc2V0X2Ryb3Bfb3V0X29mX3NlZ21lbnQoKS4KCSAgRml4aW5nIGl0LgoKMjAxNi0xMS0wMiAxNjozNTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogRml4IGdzdF9iYXNlX3Npbmtfc2V0X2Ryb3Bfb3V0X29mX3NlZ21lbnQoKSBkb2N1bWVudGF0aW9uCgkgIEFsc28gc2lsZW5jZXMgYSBHSSB3YXJuaW5nLgoKMjAxNi0xMS0wMiAxNDoxMTo0MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJICBjbG9ja19nZXR0aW1lLmM6IFVzZSBfX0FQUExFX18gaW5zdGVhZCBvZiBfX01BQ0hfXwoJICBIdXJkIGFsc28gZGVmaW5lcyBfX01BQ0hfXywgYnV0IGl0IGRvZXMgbm90IGhhdmUgbWFjaF9hYnNvbHV0ZV90aW1lLiBVc2UKCSAgdGhlIG1vcmUgc3RyaWN0IF9fQVBQTEVfXyBpbnN0ZWFkLgoJICBIYXMgYWxzbyBiZWVuIHNlbnQgdXBzdHJlYW06IGh0dHBzOi8vZ2l0aHViLmNvbS9saWJjaGVjay9jaGVjay9wdWxsLzY1CgoyMDE2LTExLTAyIDE0OjAxOjM4ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGJ1aWxkOiBGaXggQU1fQ09ORElUSU9OQUwgY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUKCSAgSXQgd2FzIGFsd2F5cyBldmFsdWF0aW5nIHRvIGZhbHNlLCBzbyBjbG9ja19nZXR0aW1lLmMgd2FzIGFsd2F5cyBiZWluZwoJICBpbmNsdWRlZCBpbnRvIGxpYmNoZWNrLiBUaGlzIGJyZWFrcyBidWlsZGluZyBvbiBIdXJkIGFuZCBjYXVzZXMgdXMgdG8KCSAgYWx3YXlzIG92ZXJyaWRlIGNsb2NrX2dldHRpbWUoKSBldmVuIHdoZW4gaXQgaXMgYXZhaWxhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczODEzCgoyMDE2LTExLTAyIDEwOjEyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBnc3Q6IEFsc28gaW5jbHVkZSB0aGUgZ3N0ZHluYW1pY3R5cGVmYWN0b3J5LmMgc291cmNlIGZpbGUgaW4gdGhlIGJ1aWxkCgoyMDE2LTExLTAyIDEwOjA0OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIGdzdDogSW5zdGFsbCBnc3RkeW5hbWljdHlwZWZhY3RvcnkuaCBoZWFkZXIgZmlsZQoKMjAxNi0xMS0wMiAwOTozNTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBmaXggZHJhaW5pbmcgd2l0aCBsZXNzIGRhdGEgdGhhbiBtaW4gZnJhbWUgc2l6ZSBhdmFpbGFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmUyNzhhZWI3MTI4ZTg3MzJmNTMyNGFiOGM4YjIyYTQ3OTUwYzgwYS4KCSAgU29tZSBwYXJzZXJzLCBzcGVjaWZpY2FsbHkgYXVkaW8gcGFyc2VycywgYXNzdW1lIHRvIGdldCBhbGwgcmVtYWluaW5nCgkgIGRhdGEgb24gRU9TIGFuZCBqdXN0IHBhc3MgdGhlbSBvbndhcmRzLiBXaGlsZSB0aGUgaWRlYSBoZXJlIGlzIGNvcnJlY3QsCgkgIHdlIHdpbGwgcHJvYmFibHkgbmVlZCBhIHByb3BlcnR5IGZvciB0aGlzIG9uIGJhc2VwYXJzZSBmb3IgcGFyc2VycyB0bwoJICBvcHQtaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2NjYKCjIwMTUtMDYtMjYgMDM6Mjk6MjcgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgcGFyc2UtbGF1bmNoOiBTdXBwb3J0IGxpbmtpbmcgYWxsIHBhZHMgd2l0aCBuZXcgb3BlcmF0b3IKCSAgSW50cm9kdWNlIGEgbmV3IG9wZXJhdG9yICc6JyAtIGUuZy4gZWxlbWVudDEgJzonIGVsZW1lbnQyCgkgIEZvciBleGFtcGxlLCAndXJpZGVjb2RlYmluIDogZW5jb2RlYmluJyAtCgkgIGlmIHRoZSBlbmNvZGViaW4gaGFzIG11bHRpcGxlIHByb2ZpbGVzIGNvbXBhdGlibGUgd2l0aCB0aGUKCSAgZGVjb2RlYmluLCBtdWx0aXBsZSBsaW5rcyB3aWxsIGJlIGNyZWF0ZWQuCgkgIFdpdGggJyEnICwgYWZ0ZXIgb25lIGRlbGF5ZWQgbGluayBpcyBzdWNjZXNzZnVsbHkgZG9uZSwgdGhlCgkgIHBhZC1hZGRlZCBjYWxsYmFjayBpcyBkaXNjb25uZWN0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE0NTAKCjIwMTYtMTEtMDIgMTE6MzI6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXNpbmsgQVBJIHRvIGV4cG9ydHMgYW5kIFNpbmNlIG1hcmtlcnMKCSAgQWRkIFNpbmNlIG1hcmtlcnMgdG8gdGhlIG5ldyBiYXNlc2luayBBUEkgdG8gZHJvcAoJICBvdXQtb2Ytc2VnbWVudCBidWZmZXJzLCBhbmQgYWRkIHRoZW0gdG8gdGhlCgkgIHdpbjMyIGV4cG9ydHMKCjIwMTUtMDUtMTQgMDA6MjU6MjEgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5LmM6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkeW5hbWljIHR5cGVzOiBJbXBsZW1lbnQgZHluYW1pYyB0eXBlcyBpbiB0aGUgcmVnaXN0cnkKCSAgSW1wbGVtZW50IEdzdER5bmFtaWNUeXBlRmFjdG9yeSBhcyBhIG5ldyByZWdpc3RyeSBmZWF0dXJlLgoJICBHc3REeW5hbWljVHlwZUZhY3RvcnkgcHJvdmlkZXMgYSB3YXkgb2YgcmVnaXN0ZXJpbmcgYSBHVHlwZQoJICBpbnRvIHRoZSByZWdpc3RyeSwgc3VjaCB0aGF0IGl0IHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBhIGR5bmFtaWMKCSAgdHlwZSB3aGVuIHRoZSByZWdpc3RyeSBpcyBsb2FkZWQsIGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgbG9hZGVkCgkgIGlmIHRoZSB0eXBlIGlzIG5lZWRlZCBkdXJpbmcgY2FwcyBwYXJzaW5nLgoJICBUaGlzIGFsbG93cyB1c2luZyBub24tY29yZSB0eXBlcyBpbiBwYWQgdGVtcGxhdGVzLCBieSBsb2FkaW5nIGEKCSAgcmVnaXN0cnkgZmVhdHVyZSB0byBjcmVhdGUgdGhlIEdUeXBlIG9uIHRoZSBmbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwNzkKCjIwMTYtMDQtMjkgMDI6Mzg6NDkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IEFkZCBwcm9wZXJ0eSB0byBub3QgZHJvcCBvdXQtb2Ytc2VnbWVudCBidWZmZXJzCgkgIEltcGxlbWVudCBoYW5kbGluZyBpbiBiYXNlc2luayB0byBub3QgdW5jb25kaXRpb25hbGx5IGRpc2NhcmQKCSAgb3V0LW9mLXNlZ21lbnQgYnVmZmVycyBhbmQgZXhwb3NlIGl0IGFzIGEgbmV3IHByb3BlcnR5IG9uIGZha2VzaW5rCgkgIChub3QgdW5jb25kaXRpb25hbGx5IGluIGFsbCBiYXNlc2luayBiYXNlZCBzaW5rcykuCgkgIFRoZSBwcm9wZXJ0eSBkZWZhdWx0cyB0byBGQUxTRS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTczNAoKMjAxNi0xMS0wMSAyMzo1NDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogVXBkYXRlIEdzdFZhbHVlIHRhYmxlIHNpemUgZm9yIEdWYWx1ZUFycmF5CgoyMDE2LTA3LTA3IDE5OjQxOjQ5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBbHdheXMgcHVzaCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuZXZlciB3ZSBmb3J3YXJkIGEgc2VyaWFsaXplZCBldmVudAoJICBPdGhlcndpc2UgZG93bnN0cmVhbSB3aWxsIGhhdmUgYW4gaW5jb25zaXN0ZW50IHNldCBvZiBzdGlja3kgZXZlbnRzIGF0IHRoaXMKCSAgcG9pbnQsIGUuZy4gd2hlbiBhIFRBRyBldmVudCBpcyBwdXNoZWQgYW5kIGRvd25zdHJlYW0gd2FudHMgdG8gcmVsYXRlIGl0IHRvCgkgIHRoZSBzdHJlYW0gYnkgbG9va2luZyBhdCB0aGUgY3VycmVudCBTVFJFQU1fU1RBUlQgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1MjYKCjIwMTYtMDMtMjkgMTA6Mzg6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFNldCBHU1RfUEFEX0ZMQUdfUFJPWFlfQ0FQUyBiZWZvcmUgZm9yd2FyZGluZyBzdGlja3kgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIyMTMKCjIwMTYtMTAtMjkgMTE6MTc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBkcmFpbmluZyB3aXRoIGxlc3MgZGF0YSB0aGFuIG1pbiBmcmFtZSBzaXplIGF2YWlsYWJsZQoJICBiYXNlcGFyc2Ugd291bGQgcGFzcyB3aGF0ZXZlciBpcyBsZWZ0IGluIHRoZSBhZGFwdGVyIHRvIHRoZQoJICBzdWJjbGFzcyB3aGVuIGRyYWluaW5nLCBldmVuIGlmIGl0J3MgbGVzcyB0aGFuIHRoZSBtaW5pbXVtCgkgIGZyYW1lIHNpemUgcmVxdWlyZWQuIFRoaXMgaXMgYm9ndXMsIGJhc2VwYXJzZSBzaG91bGQganVzdAoJICBkaXNjYXJkIHRoYXQgZGF0YSB0aGVuLiBUaGUgb3JpZ2luYWwgaW50ZW50aW9uIG9mIHRoYXQgY29kZQoJICBzZWVtcyB0byBoYXZlIGJlZW4gdGhhdCBpZiB3ZSBoYXZlIG1vcmUgZGF0YSBhdmFpbGFibGUgdGhhbgoJICB0aGUgbWluaW11bSByZXF1aXJlZCB3ZSBzaG91bGQgcGFzcyBhbGwgb2YgdGhlIGRhdGEgYXZhaWxhYmxlCgkgIGFuZCBub3QganVzdCB0aGUgbWluaW11bSByZXF1aXJlZCwgd2hpY2ggZG9lcyBtYWtlIHNlbnNlLCBzbwoJICB3ZSdsbCBjb250aW51ZSB0byBkbyB0aGF0IGluIHRoZSBjYXNlIHRoYXQgbW9yZSBkYXRhIGlzIGF2YWlsYWJsZS4KCSAgRml4ZXMgYXNzZXJ0aW9ucyBpbiByYXd2aWRlb3BhcnNlIG9uIEVPUyBhZnRlciBub3QtbmVnb3RpYXRlZCB3aXRoCgkgIGZha2VzcmMgc2l6ZXR5cGU9cmFuZG9tICEgcXVldWUgISByYXd2aWRlb3BhcnNlIGZvcm1hdD1yZ2IgISBhcHBzaW5rIGNhcHM9dmlkZW8veC1yYXcsZm9ybWF0PUk0MjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzY2NgoKMjAxNS0xMC0yOSAyMjo1MToxOCArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBSZXBsYWNlICVwIGFuZCAlciBpbiBHU1RfREVCVUdfRklMRQoJICBJdCdzIHVzZWZ1bCB0byBiZSBhYmxlIHRvIHNldCBhIG5hbWUgcGF0dGVybiBmb3IgR1NUX0RFQlVHX0ZJTEUgc28gdGhhdAoJICB0aGUgc2FtZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzIGFuZAoJICBzdGlsbCB3cml0ZSB0byBkaWZmZXJlbnQgZmlsZXMuIEVzcGVjaWFsbHkgdXNlZnVsIGlmIHRoZXNlIHByb2Nlc3NlcwoJICBydW4gc2ltdWx0YW5lb3VzbHkuCgkgICVwOiBSZXBsYWNlZCB3aXRoIFBJRAoJICAlcjogUmVwbGFjZWQgd2l0aCByYW5kb20gbnVtYmVyCgkgICVwIGlzIG9idmlvdXNseSB1c2VmdWwuICVyIGlzIHVzZWZ1bCB3aGVuIGZvciBpbnN0YW5jZSBydW5uaW5nIHR3bwoJICBwcm9jZXNzZXMgd2l0aCBzYW1lIFBJRCBidXQgaW4gZGlmZmVyZW50IGNvbnRhaW5lcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwOTIKCjIwMTMtMDUtMDIgMTA6MDk6MjkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBzZXQgZW52IEdTVF9SRUdJU1RSWV9ESVNBQkxFPXllcyB0byBkaXNhYmxlIHJlZ2lzdHJ5CgkgIElmIEdTVF9SRUdJU1RSWV9ESVNBQkxFPXllcyB0aGUgcmVnaXN0cnkgaXMgZGlzYWJsZWQgc2ltaWxhciB0bwoJICBjb21waWxlIHRpbWUgc3dpdGNoIEdTVF9ESVNBQkxFX1JFR0lTVFJZLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMDg5CgoyMDE1LTExLTExIDE2OjQzOjQwICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogTWFrZSBHVmFsdWVBcnJheSBzZXJpYWxpemFibGUKCSAgRm9yIGluc3RhbmNlIHZlcnkgdXNlZnVsIGZvciBsb2dnaW5nIEdWYWx1ZUFycmF5IHdpdGggR1NUX1BUUl9GT1JNQVQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxOAoKMjAxNi0wNC0yOSAxNjoyNjo0OSArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBlbGVtZW50OiBBbGxvdyBtdWx0aXBsZSBjb252ZXJzaW9uIHNwZWNpZmllcnMgZm9yIHJlcXVlc3QgcGFkcwoJICBUaGlzIGFsbG93cyBwYWQgdGVtcGxhdGUgbmFtZXMgbGlrZSAic3JjXyV1XyV1IiwgYnV0IGl0IGRvZXMgbm90IGFsbG93CgkgIG11bHRpcGxlIHNwZWNpZmllcnMgb2Ygc3RyaW5nIHR5cGUgJXMgYXMgdGhhdCB3b3VsZCBsZWFkIHRvIGFtYmlndWl0aWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjI1CgoyMDE1LTExLTA1IDE3OjEzOjI1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbm8tcmVjb25maWd1cmUgbGluayBjaGVjawoJICBFbmFibGUgaXQgdG8gcHJldmVudCBzZW5kaW5nIHJlY29uZmlndXJlIHdoZW4gbGlua2luZyBlbGVtZW50cy4KCSAgVXNlZnVsIGZvciBhdXRvcGx1Z2dpbmcgd2hlbiB3ZSBrbm93IGNhcHMgb3IgYnVmZmVycG9vbHMgc2hvdWxkbid0IGNoYW5nZQoJICB0byBzYXZlIGRvaW5nIGNhcHMgcmVuZWdvdGlhdGlvbiB0byBlbmQgdXAgd2l0aCB0aGUgc2FtZSBmaW5hbCBzY2VuYXJpby4KCSAgVGhlIG5vLXJlY29uZmlndXJlIGlzIG5vdCBhIHByb3BlciBjaGVjaywgaXQgaXMgYSBmbGFnLiBJdCBpcyBpbXBsZW1lbnRlZAoJICBhcyBhIEdzdFBhZExpbmtDaGVjayB0byBhdm9pZCBjcmVhdGluZyBhbm90aGVyIGdzdF9wYWRfbGluayB2YXJpYW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NjUzCgoyMDE2LTExLTAxIDE4OjA4OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB1cGRhdGUgdmVyc2lvbgoKMjAxNi0xMS0wMSAxNzozNToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvLmdpdGlnbm9yZToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL1JFQURNRToKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jb21waWxpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2UuY3NzOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wbHVnaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QucG5nOgoJKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1ub2dob3N0LnBuZzoKCSogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQucG5nOgoJKiBkb2NzL21hbnVhbC9jbG9ja3MucG5nOgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtY2xvY2tzLnN2ZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLnBuZzoKCSogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQucG5nOgoJKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5wbmc6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJKiBkb2NzL21hbnVhbC9pbWFnZXMvLmdpdGlnbm9yZToKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMucG5nOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSogZG9jcy9tYW51YWwvb3V0bGluZS50eHQ6CgkqIGRvY3MvbWFudWFsL3NpbXBsZS1wbGF5ZXIucG5nOgoJKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQucG5nOgoJKiBkb2NzL21hbnVhbC9zcmMtZWxlbWVudC5wbmc6CgkqIGRvY3MvbWFudWFsL3N0YXRlLWRpYWdyYW0uc3ZnOgoJKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSogZG9jcy9tYW51YWwvdGhyZWFkLXN5bmNocm9uaXppbmcucG5nOgoJKiBkb2NzL21hbnVhbC90aXRsZXBhZ2UueG1sOgoJKiBkb2NzL3B3Zy8uZ2l0aWdub3JlOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXB5dGhvbi54bWw6CgkqIGRvY3MvcHdnL2Jhc2UuY3NzOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zaWduYWxzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItb25ldG9uLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc2luay54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgZG9jczogcmVtb3ZlIGFwcCBkZXYgbWFudWFsIGFuZCBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUKCSAgVGhleSBoYXZlIG1vdmVkIHRvIGdzdC1kb2NzIGFuZCB3aWxsIGJlIG1haW50YWluZWQgdGhlcmUgaW4gZnV0dXJlLgoKPT09IHJlbGVhc2UgMS4xMS4wID09PQoKMjAxNi0xMS0wMSAxODo1MzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xMC4wID09PQoKMjAxNi0xMS0wMSAxNzo1MDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMTAuMAoKMjAxNi0xMS0wMSAxNzo0MDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL25iLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTExLTAxIDE3OjM4OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vbmIucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTExLTAxIDE3OjM2OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0xMC0yNSAxMjoyMTowNyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJICBtZXNvbjogQWRkIGFuIG9wdGlvbiB0byBleHBsaWNpdGx5IGRpc2FibGUgZ3RrLWRvYwoJICBTaW1pbGFyIHRvIGhvdyBBdXRvdG9vbHMgcHJvdmlkZXMgYW4gb3B0aW9uLCBkZWZhdWx0IGlzICdlbmFibGVkJy4KCjIwMTYtMTAtMjQgMTE6NDU6MzggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgUmV2ZXJ0ICJjb2xsZWN0cGFkczogQXNzdW1lIFBUUyBpcyBlcXVhbCBEVFMgaWYgUFRTIGlzIG1pc3NpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWIwZDQyY2VlY2IzMTk4Mzk5ZDdlMDVlM2Q1ZjA4MGE3Y2EyN2NhOS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjIwNwoKMjAxNi0xMC0xOCAxMTo1OToyNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IE1hcmsgcmVnaXN0ZXJlZCBhbGxvY2F0b3IgZm9yIGxlYWsKCjIwMTYtMDYtMjEgMDg6MDA6MzAgLTA1MDAgIEFuZHJldyBFaWt1bSA8YWVpa3VtQGNvZGV3ZWF2ZXJzLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdG1lc3NhZ2UuaDogQXZvaWQgZ2NjIGJpdCBzaGlmdCBvdmVyZmxvdyBjb21waWxlciB3YXJuaW5nCgkgIEF2b2lkcyBiaXQgc2hpZnQgb3ZlcmZsb3cgd2FybmluZyB3aXRoIGdjYzYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4ODIgKGdsaWIpCgkgIGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTcxODAzIChnY2MpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4ODMKCjIwMTYtMTAtMjMgMjI6MTE6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IGVycm9uZW91cyB1c2Ugb2YgXygiIikKCSAgRml4ZXMgeGdldHRleHQgd2FybmluZ3Mgd2hlbiBkb2luZyAnbWFrZSB1cGRhdGUtcG8nOgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OjIxNzogd2FybmluZzogRW1wdHkgbXNnaWQuICBJdCBpcyByZXNlcnZlZCBieSBHTlUgZ2V0dGV4dDoKCSAgZ2V0dGV4dCgiIikgcmV0dXJucyB0aGUgaGVhZGVyIGVudHJ5IHdpdGgKCSAgbWV0YSBpbmZvcm1hdGlvbiwgbm90IHRoZSBlbXB0eSBzdHJpbmcuCgoyMDE2LTEwLTIyIDE3OjA1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGluZGV4IGZvciBBUEkgbmV3IGluIDEuMTAKCjIwMTYtMTAtMjIgMTc6MDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgaW5kZXggZm9yIEFQSSBuZXcgaW4gMS44CgoyMDE2LTEwLTIxIDE1OjQwOjQ3ICswMjAwICBKZXNwZXIgTGFyc2VuIDxrbm9yci5qZXNwZXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IEZpeCBtaXgtdXAgYmV0d2VlbiBEVFMgYW5kIFBUUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMzE5CgoyMDE2LTEwLTIxIDE1OjIyOjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgInF1ZXVlOiBGaXggcmFjZSB3aGVuIGNhbGN1bGF0aW5nIGN1cl9sZXZlbC50aW1lIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGQwM2JkNTQ3ODA5Zjg0OTQwNWEzZjcwNjkyMDA5MWQ5YjAzMTQ3YjAuCgkgIEl0IGJyZWFrcyB0aGUgdW5pdCB0ZXN0LCBhbHRob3VnaCBpdCBlbnN1cmVzIHRoYXQgb25seSBjb3JyZWN0IHZhbHVlcwoJICBhcmUgdXNlZCBmb3IgY2FsY3VsYXRpb25zLiBOZWVkcyB0byBiZSBmaXhlZCB1cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA5NgoKMjAxNi0xMC0yMCAxNzoxOToyNSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIFJldmVydCAibWVzb246IFVzZSB0aGUgbmV3IGBwaWNgIGFyZ3VtZW50IG9uIHN0YXRpYyBsaWJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGE1NzUyMjQwYTE3OGMyYzY1MWVkMTAxNjcwMjVmYWQ4YjljNGU3YmQuCgkgIHBpYyB3YXMgYWRkZWQgYWZ0ZXIgMC4zNSBhbmQgd2lsbCBiZSBwcmVzZW50IGluIDAuMzYgKG1lc29uCgkgIGRvY3VtZW50YXRpb24gd2FzIHdyb25nKS4KCjIwMTYtMTAtMjAgMTU6Mzg6NDYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogVXNlIHRoZSBuZXcgYHBpY2AgYXJndW1lbnQgb24gc3RhdGljIGxpYnMKCSAgV2UgZGVwZW5kIG9uIG1lc29uIDAuMzUgd2hpY2ggbWFrZXMgaXQgc2ltcGxlciB0byBoYW5kbGUKCSAgUmVtb3ZlcyBhIG1lc29uIHdhcm5pbmcKCjIwMTYtMDktMTQgMTQ6MjM6NTYgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRml4IHJhY2Ugd2hlbiBjYWxjdWxhdGluZyBjdXJfbGV2ZWwudGltZQoJICBPbiB0aGUgZmlyc3QgYnVmZmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgc2lua19zZWdtZW50IGlzIHNldCBidXQKCSAgc3JjX3NlZ21lbnQgaGFzIG5vdCBiZWVuIHNldCB5ZXQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIHdlIHNob3VsZCBub3QKCSAgY2FsY3VsYXRlIGN1cl9sZXZlbC50aW1lIHNpbmNlIHNpbmtfc2VnbWVudC5wb3NpdGlvbiBtYXkgYmUgbGFyZ2UgYW5kCgkgIHNyY19zZWdtZW50LnBvc2l0aW9uIGRlZmF1bHQgaXMgMCwgd2l0aCB0aGUgcmVzdWx0aW5nIGRpZmYgYmVpbmcgbGFyZ2VyCgkgIHRoYW4gbWF4LXNpemUtdGltZSwgY2F1c2luZyB0aGUgcXVldWUgdG8gc3RhcnQgbGVha2luZyAoaWYKCSAgbGVha3k9ZG93bnN0cmVhbSkuCgkgIE9uZSBwb3RlbnRpYWwgY29uc2VxdWVuY2Ugb2YgdGhpcyBpcyB0aGF0IHRoZSBzZWdtZW50IGV2ZW50IG1heSBiZQoJICBzdG9yZWQgb24gdGhlIHNyY3BhZCBiZWZvcmUgdGhlIGNhcHMgZXZlbnQgaXMgcHVzaGVkIGRvd25zdHJlYW0sIGNhdXNpbmcKCSAgYSBnX3dhcm5pbmcgKCJTdGlja3kgZXZlbnQgbWlzb3JkZXJpbmcsIGdvdCAnc2VnbWVudCcgYmVmb3JlICdjYXBzJyIpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMDk2CgoyMDE2LTA5LTI3IDAwOjAwOjMwICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1c2UgZ19zdHJjbXAwIGluIHNldF9jb250ZXh0CgkgIEl0J3MgTlVMTC1zYWZlIHdoaWxlIHRoZSBsaWJjIGltcGxlbWVudGF0aW9uIG1heSBub3QgYmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE3NzMKCjIwMTYtMDktMjYgMjM6NTk6MjkgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGNoZWNrIGZvciBpbnZhbGlkIGdzdGNvbnRleHQncyBiZWluZyBwcm92aWRlZCB0byBzZXRfY29udGV4dAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNzczCgoyMDE2LTEwLTE4IDA5OjM4OjA0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG1lc29uLmJ1aWxkOgoJICBidWlsZDogQXBwbHkgWENvZGUgOCB3b3JrYXJvdW5kIGZvciBpT1MgdG9vCgkgIGNsb2NrX2dldHRpbWUgd2FzIGFsc28gYWRkZWQgZm9yIGlPUyAxMC4wLCBzbyBkb24ndCB1c2UgaXQgaWYgd2UncmUKCSAgdGFyZ2V0dGluZyBhbiBvbGRlciB2ZXJzaW9uLiBUaGF0IHdvdWxkJ3ZlIGNhdXNlZCB0aGUgc3ltYm9sIHRvIG5vdCBiZQoJICBmb3VuZCBhdCBydW50aW1lIG9uIG9sZGVyIGRldmljZXMuCgoyMDE2LTEwLTE1IDIxOjQ5OjIxICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IERvbid0IHVzZSBjX3N0ZD1jOTkKCSAgSnVzdCB1c2UgdGhlIGRlZmF1bHQgY19zdGQgdXNlZCBieSB0aGUgY29tcGlsZXIuIFdpdGggR0NDIG9uIExpbnV4IHRoaXMKCSAgaXMgZ251ODkuCgkgIFRvbnMgb2YgZXJyb3JzIHJlbGF0ZWQgdG8gdGltZS5oLCBzaWduYWwuaCwgZXRjIHdoZW4gdXNpbmcgYzk5OgoJICBGQUlMRUQ6IGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YS9jaGVja19ydW4uYy5vCgkgIGNjICAnLUlsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEnICctZmRpYWdub3N0aWNzLWNvbG9yPWFsd2F5cycgJy1JLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2snICctSWxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrJyAnLUkuJyAnLUkuLi8uJyAnLUlsaWJzL2dzdC9jaGVjay9saWJjaGVjay8uLicgJy1JLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svLi4nICctcGlwZScgJy1XYWxsJyAnLVdpbnZhbGlkLXBjaCcgJy1zdGQ9Yzk5JyAnLURIQVZFX0NPTkZJR19IJyAnLWZQSUMnICctTzInICctZycgJy1mUElDJyAnLU1NRCcgJy1NUScgJ2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YS9jaGVja19ydW4uYy5vJyAnLU1GJyAnbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhL2NoZWNrX3J1bi5jLm8uZCcgLW8gJ2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YS9jaGVja19ydW4uYy5vJyAtYyAuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYwoJICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6MjE6MDoKCSAgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6MTY3OjE4OiB3YXJuaW5nOiDigJhzdHJ1Y3QgaXRpbWVyc3BlY+KAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbgoJICBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqbmV3X3ZhbHVlLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqb2xkX3ZhbHVlKTsKCSAgXn5+fn5+fn5+fgoJICAuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzo5ODoyNTogZXJyb3I6IGFycmF5IHR5cGUgaGFzIGluY29tcGxldGUgZWxlbWVudCB0eXBlIOKAmHN0cnVjdCBzaWdhY3Rpb27igJkKCSAgc3RhdGljIHN0cnVjdCBzaWdhY3Rpb24gb2xkX2FjdGlvblszXTsKCSAgXn5+fn5+fn5+fgoJICAuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzo5OToyNTogZXJyb3I6IGFycmF5IHR5cGUgaGFzIGluY29tcGxldGUgZWxlbWVudCB0eXBlIOKAmHN0cnVjdCBzaWdhY3Rpb27igJkKCSAgc3RhdGljIHN0cnVjdCBzaWdhY3Rpb24gbmV3X2FjdGlvblszXTsKCSAgXn5+fn5+fn5+fgoJICBbLi4uXQoJICBuaW5qYTogYnVpbGQgc3RvcHBlZDogc3ViY29tbWFuZCBmYWlsZWQuCgkgIFRoZSBjaGFuZ2Ugd2FzIG9yaWdpbmFsbHkgbWFkZSBiZWNhdXNlIGdudTk5IHdhcyBjYXVzaW5nIGlzc3VlcyBvbiBPUyBYLgoKMjAxNi0xMC0xNCAxMTo1OToyNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IEZpeCB3YXJuaW5nCgoyMDE2LTEwLTA0IDA5OjIwOjM3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IE1ha2UgdXNlIG9mIG5ldyBlbnZpcm9ubWVudCBvYmplY3QgYW5kIHNldCBwbHVnaW4gcGF0aCB0byBidWlsZGRpcgoJICAtIFByb3Blcmx5IHNldCB3aGVyZSB0byBmaW5kIGdzdC1wbHVnaW4tc2Nhbm5lcgoJICAtIFVzZSBHU1RfTE9BRElOR19XSElURUxJU1Qgc28gdGhhdCBvbmx5IGNvcmUgcGx1Z2lucyBhcmUgdXNlZAoJICBCdW1wIG1lc29uIHJlcXVpcmVtZW50IHRvIDAuMzUKCjIwMTYtMTAtMTMgMTg6MjA6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nOiBTdG9yZSBvYmplY3QgaW4gYSB0aHJlYWQtc2FmZSBHV2Vha1JlZgoJICBnX29iamVjdF93ZWFrX3JlZigpIGlzIG5vdCB0aHJlYWQtc2FmZS4KCjIwMTYtMTAtMTMgMTg6MDI6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJICBhcmdiY29udHJvbGJpbmRpbmc6IGdzdF9vYmplY3RfcmVwbGFjZSgpIGlzIHRyYW5zZmVyIG5vbmUKCjIwMTYtMTAtMTMgMTg6MDE6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRpcmVjdGNvbnRyb2xiaW5kaW5nOiBDbGFyaWZ5IGluIHRoZSBkb2N1bWVudGF0aW9uIHdoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhYnNvbHV0ZSBhbmQgbm90IGlzCgoyMDE2LTEwLTEzIDE3OjU1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogUmVtb3ZlIG1pc2xlYWRpbmcgc2VudGVuY2UgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbgoJICBjb250cm9sIHNvdXJjZXMgYXJlIG5vdCByZXF1aXJlZCB0byByZXR1cm4gdmFsdWVzIGJldHdlZW4gMC4wIGFuZCAxLjAuCgkgIFRoaXMgaXMgY29tcGxldGVseSB1cCB0byB0aGUgY29udHJvbCBiaW5kaW5nIHRoYXQgaXMgdXNlZC4KCjIwMTYtMTAtMTMgMTc6MjE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogRml4IGJyb2tlbiBzZW50ZW5jZSBzdHJ1Y3R1cmUgaW4gZG9jcwoKMjAxNi0xMC0xMyAxMjoxODoxMiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogZml4IHN0cnVjdHVyZSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI4NTEKCjIwMTYtMTAtMTMgMTI6MDM6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJICBzdHJlYW1zOiBFeHRlbmQgR3N0U3RyZWFtVHlwZSBkb2N1bWVudGF0aW9uCgkgIFVzZXJzIHNob3VsZG4ndCBhc3N1bWUgaXQgd2lsbCBiZSBhIHNpbmdsZSB2YWx1ZSBzaW5jZSBpdCdzIGEgZmxhZy4KCjIwMTYtMTAtMDMgMjA6MjI6NTMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJKiBtZXNvbi5idWlsZDoKCSAgYnVpbGQ6IEZpeCBjbG9ja19nZXR0aW1lIGNoZWNrIHdpdGggWENvZGUgOAoJICBXaXRoIFhDb2RlIDgsIGNsb2NrX2dldHRpbWUgd2lsbCBiZSBpbmNvcnJlY3RseSBkZXRlY3RlZCBhcyBiZWluZwoJICBhdmFpbGFibGUgcmVnYXJkbGVzcyBvZiB3aGF0IE9TIFggdmVyc2lvbiB3ZSdyZSB0YXJnZXR0aW5nIGJlY2F1c2UgdGhlCgkgIHN5bWJvbCBpcyBhdmFpbGFibGUgaW4gdGhlIC50YmQgbGlicmFyeSBhcyBhIHdlYWsgc3ltYm9sLgoJICBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9Ib21lYnJldy9ob21lYnJldy1jb3JlL2lzc3Vlcy8zNzI3I2lzc3VlLTE3MDA4NjI3MwoJICBJdCdzIG9ubHkgc3RhcnRpbmcgZnJvbSBtYWNPUyAxMC4xMiB0aGF0IGNsb2NrX2dldHRpbWUgaXMgYWN0dWFsbHkKCSAgYXZhaWxhYmxlLCBzbyB3ZSBjYW4gdW5jb25kaXRpb25hbGx5IGRpc2FibGUgaXQgd2hlbiB0YXJnZXR0aW5nIG9sZGVyCgkgIHZlcnNpb25zLiBXZSBjYW5ub3Qgc2ltcGx5IGRvIEFDX0NIRUNLX0ZVTkNTIHdpdGggLVdsLC1ub193ZWFrX2ltcG9ydHMKCSAgYmVjYXVzZSB0aGUgYXV0b2NvbmYgY2hlY2sgZG9lcyBpdHMgb3duIHByb3RvdHlwZSBkZWNsYXJhdGlvbiB0aGF0CgkgIGRvZXNuJ3QgdHJpZ2dlciB0aGF0IGNvbXBpbGVyIGZsYWcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI0NTEKCjIwMTYtMTAtMTEgMTI6MTI6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmg6CgkgIGJpbjogQWRkIGEgbmV3IEdTVF9CSU5fRkxBR19TVFJFQU1TX0FXQVJFIGZsYWcKCSAgVGhpcyBmbGFnIGlzIHRvIGluZGljYXRlIHRvIGNoaWxkIGVsZW1lbnRzIHRoYXQgdGhleSBjYW4gYWRkIGFuZAoJICByZW1vdmUgcGFkcyBhdCBhbnkgcG9pbnQgaW4gdGltZSB3aXRob3V0IHJlLWFkZGluZyBleGlzdGluZyBvbmVzLgoJICBFbGVtZW50cyBzaG91bGQgcG9zdCBiZWZvcmUtaGFuZCBhIEdTVF9NRVNTQUdFX1NUUkVBTV9DT0xMRUNUSU9OCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI3NDEKCjIwMTYtMTAtMTAgMTA6NTk6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogcGF0aHMgaW4gZW52IHZhcnMgYXJlIHNlcGFyYXRlZCBieSBzZW1pY29sb25zIG9uIHdpbmRvd3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjQzMQoKMjAxNi0xMC0wNyAxNzowMjo0NyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzOiBmaXggR1NUX0xFQUtTX1RSQUNFUl9TSUcgZG9jCgkgIFRoZSBkb2N1bWVudGF0aW9uIHdhc24ndCBtZW50aW9uaW5nIHRoZSBTSUdVU1IyIHNpZ25hbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjU3MQoKMjAxNi0xMC0wOCAxNzoyMzowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBGaXggaXRlcmF0b3IgcmVzeW5jJ2luZwoJICBXaGVuIHdlIGdldCBHU1RfSVRFUkFUT1JfUkVTWU5DLCB3ZSBuZWVkIHRvIGNhbGwgZ3N0X2l0ZXJhdG9yX3Jlc3luYygpCgkgIG90aGVyd2lzZSB3ZSB3aWxsIGFsd2F5cyBnZXQgR1NUX0lURVJBVE9SX1JFU1lOQyAoYW5kIHRoYXQgbG9vcCB3b3VsZAoJICBydW4gZm9yZXZlcikuCgoyMDE2LTEwLTA4IDEzOjU0OjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBJbXBsZW1lbnQgZ3N0X2V2ZW50X2Z1bGxfZnVuYyBoYW5kbGluZwoJICBTYW1lIGFzIHdlIGRvIGZvciBxdWV1ZQoKMjAxNi0xMC0wOCAxMzoyMDo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgdHJhY2VyL3J1c2FnZTogZml4IGZvcm1hdCBzdHJpbmcgYXJncwoJICBUaGUgZm9ybWF0IHN0cmluZyBjb250YWlucyBhIHByb2Nlc3MgaWQsIGJ1dCB3ZSBkaWQgbm90IHByb3ZpY2Ugb25lLiBUaGlzCgkgIGNhdXNlZCB1cyB0byBsb2cgZ2FyYmFnZSBzaW5jZSBhbGwgYXJncyBnb3Qgc2hpZnRlZC4KCjIwMTYtMTAtMDEgMTY6NDc6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBGaXggdHlwbyBpbiBnc3RfbWVzc2FnZV9uZXdfcHJvZ3Jlc3MoKSBkb2NzCgkgIHRlc3QgLT4gdGV4dAoKMjAxNi0wOS0zMCAwOTo1Nzo1NyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBob29rcy9wcmUtY29tbWl0Lmhvb2s6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogU2V0dXAgcHJlLWNvbW1pdCBob29rcyB3aGVuIGNvbmZpZ3VyaW5nCgoyMDE2LTA5LTMwIDExOjM4OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB1cGRhdGUgdmVyc2lvbgoKPT09IHJlbGVhc2UgMS45LjkwID09PQoKMjAxNi0wOS0zMCAxMzowMToxNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjkuOTAKCjIwMTYtMDktMzAgMTI6MDg6NTIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTA5LTMwIDExOjQxOjE0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGUucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTA5LTI3IDE4OjAwOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IHRyYWNlcnM6IHNpZ25hbCBhdmFpbGFiaWxpdHkgb2YgbGlidW53aW5kIGFuZCBiYWNrdHJhY2UoKSB0byBjb2RlCgkgIE5vdCBzZXR0aW5nIGNkYXRhIGhlcmUgb24gcHVycG9zZSBiZWNhdXNlIG9mIC4uIGNvbXBsaWNhdGlvbnMuCgoyMDE2LTA5LTI2IDE4OjIxOjE5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQnVpbGQgdHJhY2VycwoKMjAxNi0wOS0yMyAyMDo0MDozOSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9tZXNvbi5idWlsZDoKCSogZG9jcy9saWJzL21lc29uLmJ1aWxkOgoJKiBkb2NzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IGd0a2RvYyB1c2luZyBuZXcgbWVzb24gZmVhdHVyZXMKCjIwMTYtMDktMjYgMTI6MTQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgdmFsZ3JpbmQgc3R1ZmYKCSAgQ29kZSB3YXMgYWxzbyBjaGVja2luZyB0aGUgd3JvbmcgZGVmaW5lIGFueXdheS4KCjIwMTYtMDktMjYgMTI6MTI6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB0ZXN0czogcGFyc2UtbGF1bmNoOiBsb29rcyBjbGVhbiBub3dhZGF5cywgc28gcmUtZW5hYmxlIGZvciB2YWxncmluZAoJICBBbHNvLCB0aGUgdmFsZ3JpbmQgYml0cyB3ZXJlbid0IGhvb2tlZCB1cCBwcm9wZXJseSBhbnl3YXksCgkgIGNoZWNraW5nIHRoZSB3cm9uZyBkZWZpbmUuCgoyMDE2LTA5LTI0IDE4OjIyOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogcmVtb3ZlIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgY2hlY2sgZm9yIHB0cmRpZmZfdAoJICBOZWVkIHRvIGluY2x1ZGUgc3RkZGVmLmggZm9yIGl0LCBzbyB0aGlzIHdvdWxkJ3ZlIHdvcmtlZDoKCSAgaWYgY2MuaGFzX3R5cGUoJ3B0cmRpZmZfdCcsIHByZWZpeDogJyNpbmNsdWRlIDxzdGRkZWYuaD4nKQoKMjAxNi0wOS0yNCAxODowNjozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggaW50ZXJuYWwgcHJpbnRmIGZvciAlbGwgZm9ybWF0IG1vZGlmaWVyIG9uIDMyLWJpdCBzeXN0ZW1zCgkgIGdzdC9nc3RwcmludGYgdW5pdCB0ZXN0IHdvdWxkIGZhaWwgb24gMzItYml0IHg4NiB3aXRoOgoJICBnc3RwcmludGYuYzo4MzpwcmludGZfSTMyX0k2NDowOiAnc3RyJyAoNjQtYml0IHggdmFsdWUgPSBiNWE2OTc4ZikgaXMgbm90IGVxdWFsIHRvICciNjQtYml0IHggdmFsdWUgPSBmMWUyZDNjNGI1YTY5NzhmIicKCjIwMTYtMDktMjMgMDQ6MTk6NDcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgUmV2ZXJ0ICJtZXNvbjogRm9yY2UgZ3N0ZW51bV9oIHRvIGJlIGJ1aWx0IHdoZW4gdXNpbmcgZ3N0X2RlcCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjZmM1NjVlMmQ4OGE4ZTdkNjU2YjY4YzVjMmExYjdhY2IwOGNkYjdmLgoJICBUaGUgY29tbWl0IHdhcyByZWR1bmRhbnQgc2luY2UgZ3N0X2dlbl9zb3VyY2VzIGFscmVhZHkgY29udGFpbnMKCSAgZ3N0ZW51bV9oLiBXZSdyZSBzdGlsbCBpbnZlc3RpZ2F0aW5nIHdoeSBzb21lIHBlb3BsZSBhcmUgc3RpbGwgc2VlaW5nCgkgIGEgcmFjeSBidWlsZCBmYWlsdXJlLgoKMjAxNi0wOS0yMyAwMDoyODo1MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogRm9yY2UgZ3N0ZW51bV9oIHRvIGJlIGJ1aWx0IHdoZW4gdXNpbmcgZ3N0X2RlcAoJICBUaGlzIGZvcmNlcyBnc3RlbnVtdHlwZXMuaCB0byBiZSBidWlsdCB3aGVuZXZlciBzb21ldGhpbmcgdXNlcyBnc3RfZGVwCgkgIGFzIGEgc3VicHJvamVjdCBkZXBlbmRlbmN5LiBUaGlzIGlzIG5lZWRlZCBzaW5jZSBnc3QvZ3N0LmggaW5jbHVkZXMKCSAgZ3N0ZW51bXR5cGVzLmgKCSAgQ2xvc2VzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvbmJ1aWxkL21lc29uL2lzc3Vlcy83MTQgd2hpY2ggaXMgbm90CgkgIGFjdHVhbGx5IGEgTWVzb24gYnVnLgoKMjAxNi0wOS0xOSAxMDowNzo1MSAtMDQwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBZGQgZm9yZ290dGVuICJnaXQgY29tbWl0IC0tYW1lbmQiIGZvciBsYXN0IGNvbW1pdAoJICBOZWVkIHRvIGNhc3QgYXdheSB0aGUgY29uc3QgYXMgZ19xdWV1ZV9mb3JlYWNoKCkgdGFrZXMgYSBub24tY29uc3QgR1F1ZXVlKgoKMjAxNi0wOS0xOSAxMDowNDo1NSAtMDQwMCAgS291aGVpIFN1dG91IDxrb3VAY2xlYXItY29kZS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogV2hlbiBjb3B5aW5nIHRoZSBzb3J0IGl0ZXJhdG9yLCBhbHNvIGNvcHkgaXRzIGludGVybmFsIHF1ZXVlCgkgIE90aGVyd2lzZSBib3RoIGl0ZXJhdG9ycyBzaGFyZSB0aGUgc2FtZSByZWZlcmVuY2VzLCB0aGUgc2Vjb25kIG9uZQoJICB1c3VhbGx5IHJlc3VsdGluZyBpbiBhIGNyYXNoIHdoZW4gYmVpbmcgZnJlZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE2NDkKCjIwMTYtMDktMTEgMTU6Mjg6NDMgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCB3YXRlcm1hcmsgdGVzdAoJICBUaGlzIGNhcnJpZXMgb3ZlciBjb2RlIGZvciBhIHNpbWlsYXIgdGVzdCBmcm9tIG11bHRpcXVldWUgdG8gZW5zdXJlIGZ1bGwKCSAgY29udHJvbCBvdmVyIHRoZSBkYXRhZmxvdyB3aGlsZSB0ZXN0aW5nLiAoVGhlIHByZXZpb3VzIGF0dGVtcHQgd2FzIHJhY3kKCSAgc2luY2UgdGhlIGZpbGwgbGV2ZWwgY2hhbmdlZCB3aXRob3V0IGFueSB0aHJlYWQgc3luYyB3aXRoIHRoZSB0ZXN0IGNvZGUuKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMjEwCgoyMDE2LTA5LTExIDE1OjI2OjI2ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVwZGF0ZSBidWZmZXJpbmcgaWYgaXRzIGVuYWJsZWQgYW5kIGxvdy9oaWdoIHdhdGVybWFya3MgYXJlIGNoYW5nZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTIxMAoKMjAxNi0wOS0xNSAxNzozODo0OSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbigpCgkgIFNlZW1zIGxpa2UgdGhlcmUgd2FzIHNvbWUgZG9jdW1lbnRhdGlvbiBsZWZ0IG92ZXIgZnJvbSB3aGVuIHRoaXMgd2FzCgkgIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbigpLgoKMjAxNi0wOS0xMiAxNzo0MToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlbW92ZSB1bnVzZWQgZmllbGRzIGFuZCBhbHdheXMgdXNlIHRoZSBidWZmZXIgdGltZXN0YW1wIGRpZmZlcmVuY2UgZm9yIGNhbGN1bGF0aW5nIHRoZSBRb1MgcHJvcG9ydGlvbgoJICBUaGUgYnVmZmVyIHRpbWVzdGFtcHMgYXJlIG9ubHkgaGludHMgYW5kIG1vcmUgb2Z0ZW4gdGhhbiBub3QgaGF2ZQoJICBub3RoaW5nIHRvIGRvIHdpdGggcmVhbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTMwNgoKMjAxNi0wOS0wOCAxMjo1ODo1NCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIG1lc29uLmJ1aWxkOgoJICBnc3Rjb25maWc6IFVzZSBfX2RlY2xzcGVjIHdoZW4gYnVpbHQgd2l0aCBNaW5HVyBhbmQgbGlua2luZyB3aXRoIE1TVkMKCSAgRWFybGllciB3ZSB3ZXJlIG9ubHkgdXNpbmcgX19kZWNsc3BlYyhkbGxleHBvcnQvaW1wb3J0KSB3aGVuIHdlIHdlcmUKCSAgYnVpbHQgd2l0aCBNU1ZDIGJlY2F1c2Ugd2hlbiBidWlsdCB3aXRoIE1pbkdXIGFuZCBsaW5raW5nIHdpdGggTWluR1cgd2UKCSAgZG9uJ3QgbmVlZCBpdCAoYW5kIHdlIGdldCBsaW5rZXIgZXJyb3JzIGJlY2F1c2Ugb2YgaXQpLgoJICBIb3dldmVyLCB3aGVuIHdlJ3JlIGJ1aWx0IHdpdGggTWluR1cgYW5kIHNvbWVvbmUgd2FudHMgdG8gbGluayB0byB1cwoJICB3aXRoIE1TVkMsIHdlIHN0aWxsIG5lZWQgdGhlIHByb3RvdHlwZXMgdG8gaGF2ZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKCSAgc2luY2UgTVNWQyBjYW5ub3QgZG8gYXV0by1pbXBvcnQgbGlrZSBHQ0MgY2FuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMDI5CgoyMDE2LTA5LTEyIDE3OjA3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFsc28gZG9uJ3QgKnVuc2V0KiBlbGVtZW50IGZsYWdzIGlmIHRoZXkncmUgaW4gdGhlIHN1cHByZXNzZWQgZmxhZ3MKCSAgT3RoZXJ3aXNlIG91ciBiaW4gbWlnaHQgbG9zZSB2YXJpb3VzIGZsYWdzIHRoYXQgd2VyZSBleHBsaWNpdGx5IHNldCBvbgoJICBpdCBhdCBhcmJpdHJhcnkgdGltZXMuCgoyMDE2LTA5LTEwIDExOjU5OjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGdzdGJpbjogYWRkIHRlc3RzIGZvciBzdXBwcmVzc2VkIGZsYWdzCgkgIFNvbWUgc2ltcGxlIHRlc3RzIHRvIG1ha2Ugc3VyZSBpdCBrZWVwcyB3b3JraW5nCgoyMDE2LTA5LTAyIDE3OjM5OjE3ICswOTAwICBXb25jaHVsIExlZSA8d29uY2h1bC5sZWVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYmluOiBBZGQgc2V0dGVyIGFuZCBnZXR0ZXIgdG8gc3VwcHJlc3MgZWxlbWVudCBmbGFncwoJICBTdXBwcmVzcy1mbGFncyBpcyBmb3IgcHJldmVudGluZyBwcm9wYWdhdGlvbiBvZiBjaGlsZCBlbGVtZW50J3Mgc3BlY2lmaWMKCSAgZmxhZyB3aGVuIGl0IGlzIGFkZGVkIHRvIHRoZSBiaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjcKCjIwMTYtMDktMTAgMjA6NTA6NDggKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMThkODIwIHRvIGY5ODBmZDkKCjIwMTUtMTEtMTMgMTY6MDA6MDIgKzAwMDAgIEdyYWhhbSBMZWdnZXR0IDxtaW5mcmluQHNoYXJwLmZtPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEVuc3VyZSBnc3RfdmFsdWUgaXMgaW5pdGlhbGlzZWQgYmVmb3JlIGdzdF90YWcKCSAgT3RoZXJ3aXNlIEdTVF9UWVBFX0ZSQUNUSU9OIHdpbGwgd29yayBjb3JyZWN0bHkgaW4gdGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzkyMgoKMjAxNi0wOS0wOSAxMTo0NjoxMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBSZXNldCB0aGUgc3RvcCBwb3NpdGlvbiB0byBOT05FIGluIHNlZWtfc2ltcGxlKCkKCSAgV2hlbiB1c2luZyBzZWVrX3NpbXBsZSgpIGluIGNvbWJpbmF0aW9uIHdpdGggb3RoZXIga2luZHMgb2Ygc2Vla3MsIHRoaXMKCSAgYmVjb21lcyBwcm9ibGVtYXRpYy4gc2Vla19zaW1wbGUoKSBkb2VzIG5vdCByZXNldCB0aGUgc3RvcCBwb3NpdGlvbiB0bwoJICBHU1RfQ0xPQ0tfVElNRV9OT05FIGJ1dCBrZWVwcyB3aGF0ZXZlciBhIHByZXZpb3VzIHNlZWsgZGlkLiBTbyBmb3IgZXhhbXBsZQoJICB3aGVuIGRvaW5nIGEgc2Vla19zaW1wbGUoKSBhZnRlciBhIHJhdGU9LTEgc2Vlaywgd2Ugd291bGQgdXN1YWxseSBnZXQKCSAgYXNzZXJ0aW9ucyB0aGF0IHN0YXJ0PnN0b3AgKGFuZCBzdG9wIGJlaW5nIHRoZSBvbGQgc3RvcCBmcm9tIHRoZSByYXRlPTEgc2VlaykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzExMDQKCjIwMTYtMDktMTAgMDk6NTM6NDIgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmNDljNTVlIHRvIGIxOGQ4MjAKCjIwMTYtMDktMDkgMDk6MzY6NDAgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOnRlc3RzOiBCdW1wIHRpbWVvdXQgdG8gMyBtaW51dGVzCgkgIEJhc2ljYWxseSB3ZSBhbHJlYWR5IGhhdmUgZWFjaCB0ZXN0IHdpdGggYSAyMHNlYyB0aW1lb3V0LAoJICBhbmQgdGVzdHN1aXRlIGNhbiBsYXN0IG1vcmUgdGhhbiB0aGUgZGVmYXVsdCAzMHNlY3MgZnJvbQoJICBtZXNvbi4gMyBtaW51dGVzIGlzIGFub3RoZXIgYXJiaXRyYXJ5IHRpbWVvdXQgYnV0IHNob3VsZAoJICBiZSBnb29kIGVub3VnaC4KCjIwMTYtMDktMDggMTU6MTk6MzggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVc2UgdGhlIGF2ZXJhZ2UgZHVyYXRpb25zIGJhc2VkIG9uIHRpbWVzdGFtcHMgZm9yIHRoZSBRb1MgcHJvcG9ydGlvbiB3aGVuIGRvaW5nIHRyaWNrbW9kZXMKCSAgVGhlIGR1cmF0aW9ucyBvZiB0aGUgYnVmZmVycyBhcmUgKHVzdWFsbHkpIGFzc3VtaW5nIHRoYXQgbm8gZnJhbWVzIGFyZSBiZWluZwoJICBkcm9wcGVkIGFuZCBhcmUganVzdCB0aGUgZHVyYXRpb25zIGNvbWluZyBmcm9tIHRoZSBzdHJlYW0uIEhvd2V2ZXIgaWYgd2UgZG8KCSAgdHJpY2ttb2RlcywgZnJhbWVzIGFyZSBiZWluZyBkcm9wcGVkIHJlZ3VsYXJseSBlc3BlY2lhbGx5IGlmIG9ubHkga2V5IHVuaXRzCgkgIGFyZSBzdXBwb3NlZCB0byBiZSBwbGF5ZWQuCgkgIEZpeGVzIGNvbXBsZXRlbHkgYm9ndXMgUW9TIHByb3BvcnRpb24gdmFsdWVzIGluIHRoZSBhYm92ZSBjYXNlLgoKMjAxNi0wOS0wNSAxODowNzo0OSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBidWlsZGluZyB3aXRoIG1lc29uIDAuMzQKCjIwMTYtMDgtMjYgMjA6MDY6NTkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJICBtZXNvbjogQWxsb3cgb3RoZXJzIHRvIGJ1aWxkIEdJUiBmaWxlcyB3aGVuIHVzaW5nIEdTdHJlYW1lciBhcyBzdWJwcm9qZWN0CgkgIEFuZCBhZGQgYSB3YXkgdG8gZGlzYWJsZSB0aGUgaW50cm9zcGVjdGlvbiBhbmQgYnVtcCB2ZXJzaW9uIHRvIDEuOS4yCgoyMDE2LTA5LTA1IDExOjExOjI5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaC5pbjogQWRkIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgU0g0ICNkZWZpbmUgYW5kIFMzOTB4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA3MzEKCjIwMTYtMDktMDUgMDk6NTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBjb25maWc6IG5ld2VyIGdjYyBkb2Vzbid0IGtub3cgX19wcGNfXyBhbmQgX19wcGM2NF9fIGFueW1vcmUKCSAgX19wcGNfXyBhbmQgX19wcGM2NF9fIGFyZSBub24tc3RhbmRhcmQgZGVmaW5lcywgd2Ugc2hvdWxkIHVzZQoJICBfX3Bvd2VycGNfXyBhbmQgX19wb3dlcnBjNjRfXyBpbnN0ZWFkIGJlY2F1c2UgbmV3ZXIgZ2NjIGRvZXNuJ3Qga25vdwoJICB0aGVtIGFueW1vcmUuCgoyMDE2LTA5LTA0IDIwOjM5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBhZGQgKiBmb3IgcG9pbnRlciBzaWduYWwgYXJndW1lbnRzIHdoZXJlIG5lZWRlZAoJICBQcmludCBHT2JqZWN0IGFyZ3VtZW50IHByb3Blcmx5IHdpdGggcG9pbnRlciBtYXJrZXI6CgkgICJjbGllbnQtYWRkZWQiIDogIHZvaWQgdXNlcl9mdW5jdGlvbiAoR3N0RWxlbWVudCogb2JqZWN0LAoJICBHT2JqZWN0KiBhcmcwLAoJICBncG9pbnRlciB1c2VyX2RhdGEpOwoJICBpbnN0ZWFkIG9mCgkgICJjbGllbnQtYWRkZWQiIDogIHZvaWQgdXNlcl9mdW5jdGlvbiAoR3N0RWxlbWVudCogb2JqZWN0LAoJICBHT2JqZWN0IGFyZzAsCgkgIGdwb2ludGVyIHVzZXJfZGF0YSk7CgkgIGZvciBnc3QtaW5zcGVjdC0xLjAgdGNwc2VydmVyc2luay4KCjIwMTYtMDktMDIgMjM6MjI6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRvbid0IGJ1aWxkIG1pc2Mgc3ViZGlyIGlmIGJvdGggZXhhbXBsZXMgYW5kIGJlbmNobWFya3MgaGF2ZSBiZWVuIGRpc2FibGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA3NDAKCjIwMTYtMDktMDEgMTQ6MTM6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBjb25maWc6IHN1cHBvcnQgU3lzdGVtIHoKCjIwMTYtMDktMDEgMTI6MjU6MjMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuOS4yID09PQoKMjAxNi0wOS0wMSAxMjoyNDo0NSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjkuMgoKMjAxNi0wOS0wMSAxMToyMjo0NSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTA4LTMxIDA5OjQ5OjAzICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgaGlnaGVyLXJlc29sdXRpb24gbG93L2hpZ2gtd2F0ZXJtYXJrIHByb3BlcnRpZXMKCSAgbG93L2hpZ2gtd2F0ZXJtYXJrIGFyZSBvZiB0eXBlIGRvdWJsZSwgYW5kIGdpdmVuIGluIHJhbmdlIDAuMC0xLjAuIFRoaXMKCSAgbWFrZXMgaXQgcG9zc2libGUgdG8gc2V0IGxvdy9oaWdoIHdhdGVybWFya3Mgd2l0aCBncmVhdGVyIHJlc29sdXRpb24sCgkgIHdoaWNoIGlzIHVzZWZ1bCB3aXRoIGxhcmdlIG11bHRpcXVldWUgbWF4IHNpemVzIGFuZCB3YXRlcm1hcmtzIGxpa2UgMC41JS4KCSAgQWxzbyBhZGRpbmcgYSB0ZXN0IHRvIGNoZWNrIHRoZSBmaWxsIGFuZCB3YXRlcm1hcmsgbGV2ZWwgYmVoYXZpb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjgKCjIwMTYtMDgtMzEgMDk6NDg6NTMgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogRGlzdGluZ3Vpc2ggYmV0d2VlbiBidWZmZXJpbmcgcGVyY2VudGFnZSBhbmQgYnVmZmVyaW5nIGxldmVsCgkgIFRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlciwgYW5kIHRvIGZhY2lsaXRhdGUgZnV0dXJlIGltcHJvdmVtZW50cywgaW50cm9kdWNlCgkgIGEgZGlzdGluY3Rpb24gYmV0d2VlbiB0aGUgYnVmZmVyaW5nIGxldmVsIGFuZCB0aGUgYnVmZmVyaW5nIHBlcmNlbnRhZ2UuCgkgIEJ1ZmZlcmluZyBsZXZlbDogdGhlIHF1ZXVlJ3MgY3VycmVudCBmaWxsIGxldmVsLiBUaGUgbG93L2hpZ2ggd2F0ZXJtYXJrcwoJICBhcmUgaW4gdGhpcyByYW5nZS4KCSAgQnVmZmVyaW5nIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UgcmVsYXRpdmUgdG8gdGhlIGxvdy9oaWdoIHdhdGVybWFya3MKCSAgKDAlID0gbG93IHdhdGVybWFyaywgMTAwJSA9IGhpZ2ggd2F0ZXJtYXJrKS4KCSAgVG8gdGhhdCBlbmQsIGdldF9wZXJjZW50YWdlKCkgaXMgcmVuYW1lZCB0byBnZXRfYnVmZmVyaW5nX2xldmVsKCkuIEFsc28sCgkgIGxvdy9oaWdoX3BlcmNlbnQgYXJlIHJlbmFtZWQgdG8gbG93L2hpZ2hfd2F0ZXJtYXJrIHRvIGF2b2lkIGNvbmZ1c2lvbi4KCSAgbXEtPmJ1ZmZlcmluZ19wZXJjZW50IHZhbHVlcyBhcmUgbm93IG5vcm1hbGl6ZWQgaW4gdGhlIDAuLjEwMCByYW5nZSBmb3IKCSAgYnVmZmVyaW5nIG1lc3NhZ2VzIGluc2lkZSB1cGRhdGVfYnVmZmVyaW5nKCksIGFuZCBub3QganVzdCBiZWZvcmUgc2VuZGluZwoJICB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UuIEZpbmFsbHkgdGhlIGJ1ZmZlcmluZyBsZXZlbCByYW5nZSBpcyBwYXJhbWV0ZXJpemVkCgkgIGJ5IGFkZGluZyBhIG5ldyBjb25zdGFudCBjYWxsZWQgTUFYX0JVRkZFUklOR19MRVZFTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDYyOAoKMjAxNi0wOC0zMSAwOTo0ODozOCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBSZW5hbWUgcGVyY2VudC9wZXJjZW50X2NoYW5nZWQgdG8gYnVmZmVyaW5nX3BlcmNlbnQoX2NoYW5nZWQpCgkgIFRoaXMgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIHN1YnNlcXVlbnQgY29tbWl0cywgYW5kIG1ha2VzIHF1ZXVlMiBhbmQKCSAgbXVsdGlxdWV1ZSBjb2RlIGEgbGl0dGxlIG1vcmUgY29uc2lzdGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDYyOAoKMjAxNi0wOC0yMyAxNDo1NzozMyArMDkwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggaGlnaF90aW1lIHdha2V1cCBsb2dpYwoJICBXaGVuIGNhbGN1bGF0aW5nIHRoZSBoaWdoX3RpbWUsIGNhY2hlIHRoZSBncm91cCB2YWx1ZSBpbiBlYWNoIHNpbmdsZXF1ZXVlLgoJICBUaGlzIGZpeGVzIHRoZSBpc3N1ZSBieSB3aGljaCB3YWtlX3VwX25leHRfbm9uX2xpbmtlZCgpIHdvdWxkIHVzZSB0aGUgZ2xvYmFsCgkgIGhpZ2gtdGltZSB0byBkZWNpZGUgd2hldGhlciB0byB3YWtlLXVwIGEgd2FpdGluZyB0aHJlYWQsIGluc3RlYWQgb2YgdGhlIGdyb3VwCgkgIG9uZSwgcmVzdWx0aW5nIGluIHRob3NlIHRocmVhZHMgY29uc3RhbnRseSBzcGlubmluZy4KCSAgVGlkeSB1cCBhIGJpdCB0aGUgd2FpdGluZyBsb2dpYyB3aGlsZSB3ZSdyZSBhdCBpdC4KCSAgV2l0aCB0aGlzIHBhdGNoLCB3ZSBnbyBmcm9tIDIxMiUgcGxheWluZyBhIDggYXVkaW8gLyA4IHZpZGVvIGZpbGUgZG93biB0byBsZXNzCgkgIHRoYW4gMTAlIChtb3N0IG9mIGl0IGJlaW5nIHRoZSB2aWRlbyBkZWNvZGluZykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAyMjUKCjIwMTYtMDgtMjggMTY6MDI6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGRvbid0IHByaW50IGludGVybmFsIHBhZCByZXF1ZXN0IGZ1bmN0aW9uIG5hbWUKCSAgVGhpcyBqdXN0IGNvbmZ1c2VzIHBlb3BsZSwgdGhleSBsb29rIGF0IGl0IGFuZCB0cnkgdG8gY2FsbCBpdAoJICBkaXJlY3RseSBieSBuYW1lLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgR3N0RWxlbWVudCBBUEkuCgkgIEl0IHN0YW5kcyB0byByZWFzb24gdGhhdCBpdCBnb2VzIHdpdGhvdXQgc2F5aW5nIHRoYXQgd2hlbiBhbgoJICBlbGVtZW50IHByb3ZpZGVzIHJlcXVlc3QgcGFkcyB0aGF0IHRoZXkgY2FuIGFjdHVhbGx5IGJlCgkgIHJlcXVlc3RlZCB1c2luZyB0aGUgc3RhbmRhcmQgQVBJLCBhbmQgdGhlcmUncyBubyBwb2ludCBpbgoJICBwcmludGluZyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBlbGVtZW50LgoKMjAxNi0wOC0yMyAxMzoyNzo1OCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBNYWtlIHVzZSBvZiB0aGUgbmV3IEdTVF9FTEVNRU5UX0ZMT1dfRVJST1IgQVBJIGFsbCBhcm91bmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxNTgKCjIwMTYtMDgtMjMgMTM6Mjc6MjAgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFkZCBBUEkgdG8gbW9yZSBlYXNpbHkgcG9zdCBtZXNzYWdlcyBhYm91dCBmbG93aW5nIGlzc3VlcwoJICBJbiBtYW55IHBhcnRzIG9mIHRoZSBjb2RlIHdlIHJhaXNlIHN0cmVhbWluZyBlcnJvciB3aGVuIHRoZSBmbG93CgkgIGdvZXMgd3JvbmcsIGFuZCBlYWNoIHRpbWUgd2UgY3JlYXRlIG1vcmUgb3IgbGVzcyBzaW1pbGFyZSBlcnJvcgoJICBtZXNzYWdlLiBBbHNvIHRoYXQgbWVzc2FnZSBkb2VzIG5vdCBsZXQgdGhlIGFwcGxpY2F0aW9uIGtub3cgd2hhdAoJICBoYXMgYWN0dWFsbHkgZ29uZSB3cm9uZy4gSW4gdGhlIG5ldyBBUEkgd2UgYWRkIGEgImZsb3ctcmV0dXJuIiBkZXRhaWwKCSAgZmllbGQgaW5zaWRlIHRoZSBHc3RNZXNzYWdlIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGhhcyBhbGwgdGhlIGluZm9ybWF0aW9uCgkgIGlmIGl0IG5lZWRzIGl0LgoJICBBUEk6CgkgIEdTVF9FTEVNRU5UX0ZMT1dfRVJST1IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE1OAoKMjAxNi0wOC0yNiAxOToyNzoyMiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIG1lc29uLmJ1aWxkOgoJICBnc3Rjb25maWc6IERlY2lkZSBHU1RfRVhQT1JUIGRlY2xhcmF0aW9uIHN0eWxlIGF0IGJ1aWxkIHRpbWUKCSAgV2Ugb25seSB1c2UgR1NUX0VYUE9SVCBjb25zaXN0ZW50bHkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMgYnkgdXNpbmcgdGhlCgkgIHZpc3VhbCBzdHVkaW8gZGVmaW5pdGlvbnMgZmlsZXMgKHdpbjMyL2NvbW1vbi8qLmRlZiksIHNvIGFsd2F5cyBkaXNhYmxlCgkgIGl0IHdoZW4gYnVpbGRpbmcgd2l0aCBBdXRvdG9vbHMgYW5kIG9ubHkgZW5hYmxlIGl0IHdpdGggTWVzb24gd2hlbgoJICBidWlsZGluZyB3aXRoIE1TVkMuCgkgIFRoaXMgYWxsb3dzIHlvdSB0byB1c2UgTWluR1cgdG8gbGluayB0byBhIEdTdHJlYW1lciBidWlsdCB3aXRoIE1TVkMgYW5kCgkgIGdldCB0aGUgY29ycmVjdCBmdW5jdGlvbiBwcm90b3R5cGVzIHRvIGZpbmQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgaW4KCSAgRExMcy4KCjIwMTYtMDgtMjYgMTY6MjE6MzAgKzA5MDAgIFdvbmNodWwgTGVlIDx3b25jaHVsLmxlZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc2VsZWN0aW9uLnR4dDoKCSAgZG9jczogZml4IHR5cG8gaW4gc3RyZWFtIHNlbGVjdGlvbiBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNDI4CgoyMDE2LTA4LTI2IDEyOjU1OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IHJlbmFtZSBnc3RfZWxlbWVudF9tZXNzYWdlX25ld19kZXRhaWxzKCkgdG8gZ3N0X21ha2VfZWxlbWVudF9tZXNzYWdlX2RldGFpbHMoKQoJICBGaXhlcyBnLWkgd2FybmluZyAiR3N0OiBDb25zdHJ1Y3RvciByZXR1cm4gdHlwZSBtaXNtYXRjaAoJICBzeW1ib2w9J2dzdF9lbGVtZW50X21lc3NhZ2VfbmV3X2RldGFpbHMnIGNvbnN0cnVjdGVkPSdHc3QuRWxlbWVudCcKCSAgcmV0dXJuPSdHc3QuU3RydWN0dXJlJyIuCgkgIFRoaXMgaXMgYSBuZXdseS1hZGRlZCBmdW5jdGlvbiBpbiBnaXQgdGhhdCBoYXMgbm90IGJlZW4gaW4gYSBzdGFibGUKCSAgcmVsZWFzZSB5ZXQsIHNvIGl0J3MgZmluZSB0byByZW5hbWUgaXQuIEl0J3MgYWxzbyBvbmx5IHVzZWQgaW5kaXJlY3RseQoJICB2aWEgbWFjcm9zLgoKMjAxNi0wOC0yNiAxMjozNToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICBkb2NzOiBmaXggdmFyaW91cyBndGstZG9jIHdhcm5pbmdzCgkgIGUuZy4gIndhcm5pbmc6IG11bHRpLWxpbmUgc2luY2UgZG9jcyBmb3VuZCIKCjIwMTYtMDgtMjYgMTI6MDQ6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnLWk6IGluZm86IGFsbG93IHBhc3NpbmcgTlVMTCB0byBnc3RfZGVidWdfcmVtb3ZlX2xvZ19mdW5jdGlvbigpCgkgIFVzZWZ1bCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgaGFuZGxlciBmcm9tIGJpbmRpbmdzLgoKMjAxNi0wOC0yNSAxNTowNDowNiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBkb2M6IEZpeCBidWlsZGluZyBkb2N1bWVudGF0aW9uIHdoZW4gdXNpbmcgc3VicHJvamVjdHMKCSAgYW5kIGNoZWNrIHRoZSBwcmVzZW5jZSBvZiBndGstZG9jIGJlZm9yZSBidWlsZGluZyB0aGUgZG9jdW1lbnRhdGlvbgoKMjAxNi0wOC0yNiAwMzoxNzo0MSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBJbXBsZW1lbnQgY2FuX2ludGVyc2VjdCBmb3IgR3N0RmxhZ1NldCB0eXBlcwoJICBNYWtlIHN1cmUgdGhhdCBnc3RfdmFsdWVfY2FuX2ludGVyc2VjdCByZXR1cm5zIFRSVUUKCSAgZm9yIEdzdEZsYWdTZXQgY29tYmluYXRpb25zIHRoYXQgY2FuIHN1Y2Nlc3NmdWxseQoJICBpbnRlcnNlY3QKCjIwMTYtMDgtMDMgMTU6MjA6MjAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IEFkZCBoaWdoZXItcmVzb2x1dGlvbiBsb3cvaGlnaC13YXRlcm1hcmsgcHJvcGVydGllcwoJICBsb3cvaGlnaC13YXRlcm1hcmsgYXJlIG9mIHR5cGUgZG91YmxlLCBhbmQgZ2l2ZW4gaW4gcmFuZ2UgMC4wLTEuMC4gVGhpcwoJICBtYWtlcyBpdCBwb3NzaWJsZSB0byBzZXQgbG93L2hpZ2ggd2F0ZXJtYXJrcyB3aXRoIGdyZWF0ZXIgcmVzb2x1dGlvbiwKCSAgd2hpY2ggaXMgdXNlZnVsIHdpdGggbGFyZ2UgcXVldWUyIG1heCBzaXplcyBhbmQgd2F0ZXJtYXJrcyBsaWtlIDAuNSUuCgkgIEFsc28gYWRkaW5nIGEgdGVzdCB0byBjaGVjayB0aGUgZmlsbCBhbmQgd2F0ZXJtYXJrIGxldmVsIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NDQ5CgoyMDE2LTA4LTAzIDE1OjI3OjQwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IERpc3Rpbmd1aXNoIGJldHdlZW4gYnVmZmVyaW5nIHBlcmNlbnRhZ2UgYW5kIGJ1ZmZlcmluZyBsZXZlbAoJICBUbyBtYWtlIHRoZSBjb2RlIGNsZWFyZXIsIGFuZCB0byBmYWNpbGl0YXRlIGZ1dHVyZSBpbXByb3ZlbWVudHMsIGludHJvZHVjZQoJICBhIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGJ1ZmZlcmluZyBsZXZlbCBhbmQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50YWdlLgoJICBCdWZmZXJpbmcgbGV2ZWw6IHRoZSBxdWV1ZSdzIGN1cnJlbnQgZmlsbCBsZXZlbC4gVGhlIGxvdy9oaWdoIHdhdGVybWFya3MKCSAgYXJlIGluIHRoaXMgcmFuZ2UuCgkgIEJ1ZmZlcmluZyBwZXJjZW50YWdlOiBwZXJjZW50YWdlIHJlbGF0aXZlIHRvIHRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgICgwJSA9IGxvdyB3YXRlcm1hcmssIDEwMCUgPSBoaWdoIHdhdGVybWFyaykuCgkgIFRvIHRoYXQgZW5kLCBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKSBpcyByZW5hbWVkIHRvIGdldF9idWZmZXJpbmdfbGV2ZWwoKSwKCSAgYW5kIHRoZSBjb2RlIGF0IHRoZSBlbmQgdGhhdCB0cmFuc2Zvcm1zIHRvIHRoZSBidWZmZXJpbmcgcGVyY2VudGFnZSBpcwoJICBmYWN0b3JlZCBvdXQgaW50byBhIG5ldyBjb252ZXJ0X3RvX2J1ZmZlcmluZ19wZXJjZW50KCkgZnVuY3Rpb24uIEFsc28sCgkgIHRoZSBidWZmZXJpbmcgbGV2ZWwgcmFuZ2UgaXMgcGFyYW1ldGVyaXplZCBieSBhZGRpbmcgYSBuZXcgY29uc3RhbnQgY2FsbGVkCgkgIE1BWF9CVUZGRVJJTkdfTEVWRUwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njk0NDkKCjIwMTYtMDgtMjMgMTA6NTI6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiByZWxlYXNlOiBhZGQgdGFnIHNpZ25pbmcgY29tbWFuZAoKMjAxNi0wNy0wNyAwODowMToyNCArMDIwMCAgQXJqZW4gVmVlbmh1aXplbiA8YXJqZW4udmVlbmh1aXplbkB0bm8ubmw+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGV4cGxpY2l0IGdldHRlcnMgYW5kIHNldHRlcnMgZm9yIGJ1ZmZlciBmbGFncwoJICBUaGVzZSBjYW4gYmUgdXNlZCBmcm9tIGJpbmRpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MzAxCgoyMDE2LTA4LTIyIDAwOjAxOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBpbnN0YWxsIGxpYmdzdGNoZWNrLTEuMCBhbmQgYWRkIGFwaSB2ZXJzaW9uIHRvIG5hbWUKCjIwMTYtMDgtMjAgMDg6NTQ6MjcgKzA5MDAgIEhvb25oZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSAgc3RyZWFtczogdXBkYXRlIGFuZCBlbWl0IG5vdGlmeSBzaWduYWwgb25seSBpZiB0YWdsaXN0IGFjdHVhbGx5IGNoYW5nZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE2MQoKMjAxNi0wOC0xMiAyMDoyNToxNyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSogY29uZmlnLmgubWVzb246CgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbWVzb24uYnVpbGQ6CgkqIGdzdC9idWlsZF9ta2VudW0ucHk6CgkqIGdzdC9tZXNvbi5idWlsZDoKCSogZ3N0L3BhcnNlL2dlbl9ncmFtbWFyLnB5LmluOgoJKiBnc3QvcGFyc2UvZ2VuX2xleC5weS5pbjoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkqIGxpYnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL2VsZW1lbnRzL21lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL21lc29uLmJ1aWxkOgoJKiBwby9tZXNvbi5idWlsZDoKCSogdGVzdHMvYmVuY2htYXJrcy9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1pZGRlbXV4L21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9tZXNvbi5idWlsZDoKCSogdGVzdHMvbWlzYy9tZXNvbi5idWlsZDoKCSogdG9vbHMvbWVzb24uYnVpbGQ6CgkgIEFkZCBzdXBwb3J0IGZvciBNZXNvbiBhcyBhbHRlcm5hdGl2ZS9wYXJhbGxlbCBidWlsZCBzeXN0ZW0KCSAgaHR0cHM6Ly9naXRodWIuY29tL21lc29uYnVpbGQvbWVzb24KCSAgV2l0aCBjb250cmlidXRpb25zIGZyb206CgkgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgkgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCSAgSnVzc2kgUGFra2FuZW4gPGpwYWtrYW5lQGdtYWlsLmNvbT4gKG9yaWdpbmFsIHBvcnQpCgkgIEhpZ2hsaWdodHMgb2YgdGhlIGZlYXR1cmVzIHByb3ZpZGVkIGFyZToKCSAgKiBGYXN0ZXIgYnVpbGRzIG9uIExpbnV4ICh+NDAtNTAlIGZhc3RlcikKCSAgKiBUaGUgYWJpbGl0eSB0byBidWlsZCB3aXRoIE1TVkMgb24gV2luZG93cwoJICAqIEdlbmVyYXRlIFZpc3VhbCBTdHVkaW8gcHJvamVjdCBmaWxlcwoJICAqIEdlbmVyYXRlIFhDb2RlIHByb2plY3QgZmlsZXMKCSAgKiBNdWNoIGZhc3RlciBidWlsZHMgb24gV2luZG93cyAob24tcGFyIHdpdGggTGludXgpCgkgICogU2VyaW91c2x5IGZhc3QgY29uZmlndXJlIGFuZCBidWlsZGluZyBvbiBlbWJlZGRlZAoJICAuLi4gYW5kIG1hbnkgbW9yZS4gRm9yIG1vcmUgZGV0YWlscyBzZWU6CgkgIGh0dHA6Ly9ibG9nLm5pcmJoZWVrLmluLzIwMTYvMDUvZ3N0cmVhbWVyLWFuZC1tZXNvbi1uZXctaG9wZS5odG1sCgkgIGh0dHA6Ly9ibG9nLm5pcmJoZWVrLmluLzIwMTYvMDcvYnVpbGRpbmctYW5kLWRldmVsb3BpbmctZ3N0cmVhbWVyLXVzaW5nLmh0bWwKCSAgQnVpbGRpbmcgd2l0aCBNZXNvbiBzaG91bGQgd29yayBvbiBib3RoIExpbnV4IGFuZCBXaW5kb3dzLCBidXQgbWF5CgkgIG5lZWQgYSBmZXcgbW9yZSB0d2Vha3Mgb24gb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMuCgoyMDE2LTA4LTEzIDEzOjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBNb3ZlIGdzdGNvbmZpZy5oIGJhY2sgdG8gbm9ybWFsIGluY2x1ZGUgZGlyCgkgIE5vdyB0aGF0IGl0J3MgYXJjaC1pbmRlcGVuZGVudCBhZ2Fpbi4gV2lsbCBuZWVkIGZpeGVzIGluIGNlcmJlcm8gdG9vLgoKMjAxNi0wNi0yMSAxODo1OTo0OSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBEZXRlY3QgdW5hbGlnbmVkIGFjY2VzcyBzdXBwb3J0IGF0IGNvbXBpbGUtdGltZQoJICBUaGlzIG1ha2VzIGdzdGNvbmZpZy5oIGNvbXBsZXRlbHkgYXJjaC1pbmRlcGVuZGVudC4gU2hvdWxkIGNvdmVyIGFsbAoJICBjb21waWxlcnMgdGhhdCBnc3RyZWFtZXIgaXMga25vd24gdG8gYnVpbGQgb24sIGFuZCBhbGwgYXJjaGl0ZWN0dXJlcwoJICB0aGF0IEkgY291bGQgZmluZCBpbmZvcm1hdGlvbiBvbi4gUGVvcGxlIGFyZSBlbmNvdXJhZ2VkIHRvIGZpbGUgYnVncyBpZgoJICB0aGVpciBwbGF0Zm9ybS9hcmNoIGlzIG1pc3NpbmcuCgoyMDE2LTA4LTEzIDA5OjU1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBwby9QT1RGSUxFUy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBvbGQgYWxsb2MgdHJhY2luZyBjb2RlIG5vdyB0aGF0IHdlIGhhdmUgYSBHc3RUcmFjZXItYmFzZWQgcmVwbGFjZW1lbnQKCSAgSXQncyBiZWVuIGludGVybmFsIEFQSSBvbmx5IGluIDEueC4KCjIwMTYtMDgtMTIgMTY6MTU6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzIGVhcmxpZXIgaW4gcmluZ2J1ZmZlciBtb2RlCgkgIEluIHJpbmdidWZmZXIgbW9kZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlcyAqYmVmb3JlKgoJICBibG9ja2luZyB0byB3YWl0IGZvciBkYXRhIHRvIGJlIGRyYWluZWQuCgkgIFdpdGhvdXQgdGhpcywgd2Ugd291bGQgZW5kIHVwIGluIHNpdHVhdGlvbnMgbGlrZSB0aGlzOgoJICAqIHBpcGVsaW5lIGlzIHByZS1yb2xsaW5nCgkgICogRG93bnN0cmVhbSBkZW11eGVyL2RlY29kZXIgaGFzIHB1c2hlZCBkYXRhIHRvIGFsbCBzaW5rcywgYW5kIGRlbXV4ZXIgdGhyZWFkCgkgIGlzIGJsb2NraW5nIGRvd25zdHJlYW0gKGkuZS4gbm90IHB1bGxpbmcgZnJvbSB1cHN0cmVhbS9xdWV1ZTIpLgoJICAqIFRoZXJlZm9yZSBwaXBlbGluZSBoYXMgcHJlLXJvbGxlZCAuLi4KCSAgKiAuLi4gYnV0IHF1ZXVlMiBoYXNuJ3QgZmlsbGVkIHVwIHlldCwgdGhlcmVmb3JlIHRoZSBhcHBsaWNhdGlvbiB3YWl0cyBmb3IKCSAgdGhlIGJ1ZmZlcmluZyAxMDAlIG1lc3NhZ2VzIGJlZm9yZSBzZXR0aW5nIHRoZSBwaXBlbGluZSB0byBQTEFZSU5HCgkgICogQnV0IHF1ZXVlMiBjYW4ndCBwb3N0IHRoYXQgbWVzc2FnZSwgc2luY2UgdGhlIDEwMCUgbWVzc2FnZSB3aWxsIGJlIHBvc3RlZAoJICAqYWZ0ZXIqIHRoZXJlIGlzIHJvb20gYXZhaWxhYmxlIGZvciB0aGF0IGxhc3QgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5ODAyCgoyMDE2LTA4LTA4IDE2OjQyOjA2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcmVtb3ZlZCByZWR1bmRhbnQgY2FsbCB0byBnX3RocmVhZF9zZWxmCgkgIFJlbW92ZSBhbiB1bm5lZWRlZCBjYWxsIHRvIGdfdGhyZWFkX3NlbGYgYW5kIG1pbm9yIGNvZGluZyBzdHlsZSBmaXguCgoyMDE2LTAzLTE2IDE4OjAwOjE1ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIYW5kbGUgc3RyZWFtLWdyb3VwLWRvbmUKCSAgSGFuZGxlIHRoZSBuZXcgc3RyZWFtLWdyb3VwLWRvbmUgbWVzc2FnZSB0byB1bmJsb2NrIHBhZHMgd2hpY2gKCSAgYXJlIHdhaXRpbmcgZm9yIHRoZSBydW5uaW5nIHRpbWUgdG8gYWR2YW5jZSBvbiB0aGF0IGdyb3VwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTk1CgoyMDE2LTAzLTE0IDE0OjIwOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnRzOiBJbXBsZW1lbnQgdGhlIHN0cmVhbS1ncm91cC1kb25lIGV2ZW50CgkgIEEgbmV3IGV2ZW50IHdoaWNoIHByZWNlZGVzIEVPUyBpbiBzaXR1YXRpb25zIHdoZXJlIHdlCgkgIG5lZWQgZG93bnN0cmVhbSB0byB1bmJsb2NrIGFueSBwYWRzIHdhaXRpbmcgb24gYSBzdHJlYW0KCSAgYmVmb3JlIHdlIGNhbiBzZW5kIEVPUy4gRS5nLCBkZWNvZGViaW4gZHJhaW5pbmcgYSBjaGFpbgoJICBzbyBpdCBjYW4gc3dpdGNoIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg5OTUKCjIwMTYtMDctMjUgMTE6MjI6MzYgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IEFkZCByZWRpcmVjdCBtZXNzYWdlCgkgIFJlZGlyZWN0aW9uIG1lc3NhZ2VzIGFyZSBhbHJlYWR5IHVzZWQgaW4gZnJhZ21lbnRlZCBzb3VyY2VzIGFuZCBpbgoJICB1cmlkZWNvZGViaW4sIHNvIGl0IG1ha2VzIHNlbnNlIHRvIGludHJvZHVjZSB0aGVzZSBhcyBhbiBvZmZpY2lhbCBtZXNzYWdlCgkgIHR5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzE2NzMKCjIwMTYtMDctMjUgMTk6MTU6MTUgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFdha2Ugb3RoZXIgcGFkcyB3aGVuIHNlbGVjdGVkIGdvZXMgRU9TCgkgIE90aGVyIHBhZHMgdGhhdCBhcmUgd2FpdGluZyBmb3IgdGhlIHN0cmVhbSBvbiB0aGUgc2VsZWN0ZWQKCSAgcGFkIHRvIGFkdmFuY2UgYmVmb3JlIHRoZXkgZmluaXNoIHdhaXRpbmcgdGhlbXNlbHZlcwoJICBzaG91bGQgYmUgZ2l2ZW4gdGhlIGNoYW5jZSB0byBkbyBzbyB3aGVuIHRoZSBzZWxlY3RlZCBwYWQKCSAgZ29lcyBFT1MuIEZpeGVzIHByb2JsZW1zIHdoZXJlIGlucHV0IHN0cmVhbXMgY2FuIGVuZCB1cAoJICB3YWl0aW5nIGZvcmV2ZXIgaWYgdGhlIGFjdGl2ZSBzdHJlYW0gZ29lcyBFT1MgZWFybGllciB0aGFuCgkgIHRoZWlyIG93biBlbmQgdGltZS4KCjIwMTYtMDctMjQgMDE6MzU6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBmaXggR1NUX0VMRU1FTlRfRVJST1IoKSBlcnJvciBjb2RlIGV4cGFuc2lvbgoJICBJbiBzb21lIGNvcm5lciBjYXNlcywgdGhlIGVycm9yICdjb2RlJyBwYXJ0IHBhc3NlZCB0bwoJICBHU1RfRUxFTUVOVF9FUlJPUigpIGlzIGEgdmFsaWQgZGVmaW5lIGFzIHdlbGwsIGluIHdoaWNoCgkgIGNhc2UgaXQgd29uJ3Qgc3Vydml2ZSB0d28gbGV2ZWxzIG9mIG1hY3JvIGV4cGFuc2lvbiwgYnV0CgkgIG9ubHkgb25lLiBGaXhlczoKCSAgb3NzNC1zaW5rLmM6IEluIGZ1bmN0aW9uIOKAmGdzdF9vc3M0X3Npbmtfb3BlbuKAmToKCSAgZXJyb3I6IOKAmEdTVF9SRVNPVVJDRV9FUlJPUl8weDAwMDAwMDAy4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQoJICBHU1RfICMjIGRvbWFpbiAjIyBfRVJST1JfICMjIGNvZGUsIF9fdHh0LCBfX2RiZywgX19GSUxFX18sCgkgIHdoaWNoIGlzIGZyb20gR1NUX0VMRU1FTlRfRVJST1IoZWwsUkVTT1VSQ0UsT1BFTl9XUklURSwuLikKCSAgYW5kIE9QRU5fV1JJVEUgaGFwcGVucyB0byBiZSBkZWZpbmVkIHRvIDIgaGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjgwNgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MTE3CgoyMDE2LTA3LTIyIDE3OjMyOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IHNvbWUgbm9uc2Vuc2ljYWwgYW5ub3RhdGlvbnMKCjIwMTYtMDctMjIgMTU6MjU6MDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIEdTVF9FTEVNRU5UXypfV0lUSF9ERVRBSUxTIHRvIGRvYyBsaXN0CgoyMDE2LTA3LTIyIDE1OjA0OjU4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGxpc3QgbmV3IG1lc3NhZ2UgZGV0YWlscyBhcGlzIHdoZXJlIHRoZXkgc2VlbSB0byBiZWxvbmcKCjIwMTYtMDctMjIgMTQ6NTk6NTYgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGxpYmdzdHJlYW1lci5kZWY6IGZpeCBtZW50aW9ucyBvZiBuZXcgbWVzc2FnZSBkZXRhaWxzIGFwaQoJICBJIGhhZCBub3QgdXBkYXRlZCBpdCBhZnRlciB0aGUgcmV2aWV3IGNoYW5nZXMKCjIwMTYtMDMtMDIgMTE6MjI6MjMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IG5ldyBBUEkgZm9yIGFkZGl0aW9uYWwgY3VzdG9tIGRhdGEgdG8gZXJyb3IgbWVzc2FnZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjgwNgoKMjAxNi0wNy0yMCAxMjoyMjoxMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIHRyYWNlcnM6IGxlYWtzOiB1cGRhdGUgdHlwZSBmaWx0ZXIgbGF0ZXIgZm9yIHVua25vd24gdHlwZXMKCSAgVGhpcyBhbGxvdyB1cyB0byBmaWx0ZXIgdXNpbmcgYW4gb2JqZWN0IHR5cGUgd2hpY2ggaXMgaW1wbGVtZW50ZWQKCSAgYnkgYSBwbHVnaW4gbGlrZSwgc2F5LCBHc3RHdGtHTFNpbmsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg5ODkKCjIwMTYtMDctMTkgMTQ6NDU6NTMgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgZy1pIHRyYW5zZmVyIGFubm90YXRpb25zIHRvIHBlZWsvcG9wL3JlYWRfYnVmZmVyL3Rha2VfYnVmZmVyIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTQ4CgoyMDE2LTA3LTE5IDIzOjE4OjI0ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgdGVzdHM6IFVzZSBnc3RfY2xvY2tfd2FpdF9mb3Jfc3luYyAoKSBmb3IgbmV0IGNsaWVudCBjbG9jawoJICBJbnN0ZWFkIG9mIGxvb3BpbmcsIHVzZSB0aGUgZ3N0X2Nsb2NrX3dhaXRfZm9yX3N5bmMoKSBmdW5jdGlvbgoJICB0byBnaXZlIGNsb2NrcyB1cCB0byAxIHNlY29uZCB0byBzeW5jaHJvbmlzZQoKMjAxNi0wNy0xMyAxNTo0MzoyMSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggYW5ub3RhdGlvbiBvZiBwYXJzZV9zdHJlYW1fe2NvbGxlY3Rpb24sc3RyZWFtc19zZWxlY3RlZH0KCSAgZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKSByZXR1cm5zIGEgbmV3IHJlZmVyZW5jZSBzbyB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzCgkgIGFjdHVhbGx5ICh0cmFuc2ZlciBmdWxsKS4KCSAgVGhlIHVuaXQgdGVzdHMgd2FzIGFscmVhZHkgdW5yZWZmaW5nIHRoZSBvYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4Nzc2CgoyMDE2LTA3LTEzIDE1OjQzOjIxICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBhbm5vdGF0aW9uIG9mIHBhcnNlX2RldmljZV97YWRkZWQscmVtb3ZlZH0KCSAgZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKSByZXR1cm5zIGEgbmV3IHJlZmVyZW5jZSBzbyB0aGUgcmV0dXJuZWQgZGV2aWNlIGlzCgkgIGFjdHVhbGx5ICh0cmFuc2ZlciBmdWxsKS4KCSAgVGhlIGNvZGUgdXNpbmcgdGhpcyBBUEkgd2FzIGFscmVhZHkgY29ycmVjdCBidXQgdGhlIGNvZGUgZXhhbXBsZSBpbgoJICBjb21tZW50cyB3YXMgbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4Nzc2CgoyMDE2LTA3LTE0IDE2OjQwOjIyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgZy1pIHRyYW5zZmVyIGFubm90YXRhdGlvbiB0byBfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCSAgRm9yIGNsYXJpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg4MTAKCjIwMTYtMDctMTIgMTI6MzI6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IGF1dG9tYXRpYy1lb3M9ZmFsc2UgbW9kZSBpZiBhIHNlZ21lbnQuc3RvcCBpcyBnaXZlbgoJICBJZiBzZWdtZW50LnN0b3Agd2FzIGdpdmVuLCBhbmQgdGhlIHN1YmNsYXNzIHByb3ZpZGVzIGEgc2l6ZSB0aGF0IG1pZ2h0IGJlCgkgIHNtYWxsZXIgdGhhbiBzZWdtZW50LnN0b3AgYW5kIGFsc28gc21hbGxlciB0aGFuIHRoZSBhY3R1YWwgc2l6ZSwgd2Ugd291bGQKCSAgYWxyZWFkeSBzdG9wIHRoZXJlLgoJICBJbnN0ZWFkIHRyeSByZWFkaW5nIHVwIHRvIHNlZ21lbnQuc3RvcCwgdGhlIGdvYWwgaXMgdG8gaWdub3JlIHRoZSAocG9zc2libHkKCSAgaW5hY2N1cmF0ZSkgc2l6ZSB0aGUgc3ViY2xhc3MgZ2l2ZXMgYW5kIGZpbmlzaCB1bnRpbCBzZWdtZW50LnN0b3Agb3Igd2hlbiB0aGUKCSAgc3ViY2xhc3MgdGVsbHMgdXMgdG8gc3RvcC4KCjIwMTYtMDctMTEgMjE6MTM6MjggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzNjNiMzIgdG8gZjQ5YzU1ZQoKMjAxNi0wNy0xMSAxODo0NTo0OSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBGaXggcG90ZW50aWFsIHN0YWNrIGNvcnJ1cHRpb24gaW4gY2Fwc25lZ28gdGVzdAoJICBmbGF2b3VyX3N0ciBpcyBhIG5vbi1jb25zdCBwb2ludGVyIHRoYXQgd2lsbCBiZSB3cml0dGVuIHRvIGlmIHRoZSAtZgoJICBvcHRpb24gaXMgcGFzc2VkCgoyMDE2LTA3LTExIDExOjM0OjAyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICBsZWFrczogY2hlY2sgcmV0dXJuIHZhbHVlcyBvZiBsaWJ1bndpbmQgY2FsbHMKCjIwMTYtMDctMTEgMDk6NTg6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBhdmVyYWdlIGlucHV0IHJhdGUgY2FsY3VsYXRpb24gb24gc21hbGwgaW5wdXQgcmFuZ2UKCSAgV2hlbiBkZWFsaW5nIHdpdGggc21hbGwtaXNoIGlucHV0IGRhdGEgY29taW5nIGludG8gcXVldWUyLCBzdWNoIGFzCgkgIGFkYXB0aXZlZGVtdXggZnJhZ21lbnRzLCB3ZSB3b3VsZCBuZXZlciB0YWtlIGludG8gYWNjb3VudCB0aGUgbGFzdAoJICA8MjAwbXMgb2YgZGF0YSBjb21pbmcgaW4uCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdXN1YWxseSBvbiBUQ1AgY29ubmVjdGlvbiB0aGUgZG93bmxvYWQgcmF0ZQoJICBncmFkdWFsbHkgaW5jcmVhc2VzIChpLmUuIHRoZSByYXRlIGlzIGxvd2VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYQoJICBkb3dubG9hZCB0aGFuIGl0IGlzIGxhdGVyIG9uKS4gQ29tYmluZWQgd2l0aCBzbWFsbCBkb3dubG9hZCB0aW1lIChsZXNzCgkgIHRoYW4gYSBzZWNvbmQpIHdlIHdvdWxkIGVuZCB1cCB3aXRoIGEgY29tcHV0ZWQgYXZlcmFnZSBpbnB1dCByYXRlCgkgIHdoaWNoIHdhcyBzb21ldGltZXMgdXAgdG8gMzAtNTAlIG9mZiBmcm9tIHRoZSAqYWN0dWFsKiBhdmVyYWdlIGlucHV0CgkgIHJhdGUgZm9yIHRoYXQgZnJhZ21lbnQuCgkgIEluIG9yZGVyIHRvIGZpeCB0aGlzLCBmb3JjZSB0aGUgYXZlcmFnZSBpbnB1dCByYXRlIGNhbGN1bGF0aW9uIHdoZW4KCSAgd2UgcmVjZWl2ZSBhbiBFT1Mgc28gdGhhdCB3ZSB0YWtlIGludG8gYWNjb3VudCB0aGF0IGZpbmFsIHdpbmRvdwoJICBvZiBkYXRhLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NjQ5CgoyMDE2LTA3LTA4IDE2OjMxOjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHdlYWtfdW5yZWY6IGRpc3BsYXkgdGhlIHBvaW50ZXIgb2YgdGhlIG9iamVjdCBpZiBmYWlsaW5nCgkgIFRoYXQncyBnZW5lcmFsbHkgdGhlIG1vc3QgdXNlZnVsIGluZm9ybWF0aW9uIHRvIGhlbHAgZGVidWdnaW5nIHRoZQoJICBwcm9ibGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTc5CgoyMDE2LTA3LTA4IDE2OjI5OjM4ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBwcm9wZXJseSBkaXNwbGF5IHRoZSB0eXBlIG9mIHRoZSByZW1vdmVkIG1lc3NhZ2UKCSAgTWFrZXMgZGVidWdnaW5nIGVhc2llci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3OQoKMjAxNi0wNy0wOCAxNzo0NjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlLWNyZWF0ZSB0aHJlYWRwb29sIGFmdGVyIGNsZWFuaW5nIHVwIHRhc2tzCgkgIFdlIGRvbid0IGZyZWUgdGhpcyBmcm9tIGdzdF9kZWluaXQoKSBidXQgZnJvbSBnc3RfdGFza19jbGVhbnVwX2FsbCgpLAoJICBzbyBtb3JlIEdTdHJlYW1lciBBUEkgbWF5IGJlIGNhbGxlZC4gSW4gcGFydGljdWxhciBtYWtlcyB1bml0IHRlc3RzCgkgIHdvcmsgYWdhaW4gd2l0aCBDS19GT1JLPW5vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTc3CgoyMDE2LTA3LTA4IDE2OjUzOjUxICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3M6IHdhcm4gaWYgb2JqZWN0IGlzIGRlc3Ryb3llZCB3aGlsZSB0aGUgdHJhY2VyIGlzIGRpc3Bvc2luZwoJICBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGFuZCBnZW5lcmFsbHkgbWVhbnMgc29tZSB0aHJlYWQgaXMgc3RpbGwgcnVubmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3OAoKMjAxNi0wNy0wOCAxNjozNjowMSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZWxlbWVudDogY2xlYW4gdXAgdGhyZWFkIHBvb2wgZnJvbSBnc3RfdGFza19jbGVhbnVwX2FsbCgpCgkgIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCBhc3luYyBvcGVyYXRpb25zIChzdGFydGVkIGZyb20gZ3N0X2VsZW1lbnRfY2FsbF9hc3luYygpKQoJICBoYXZlIGJlZW4gY29tcGxldGVkIGFuZCBzbyB0aGVyZSBpcyBubyBleHRyYSB0aHJlYWQgcnVubmluZy4KCSAgRml4IHJhY2VzIHdoZW4gY2hlY2tpbmcgZm9yIGxlYWtzIG9uIHVuaXQgdGVzdHMgYXMgc29tZSBvZiB0aG9zZQoJICBvcGVyYXRpb25zIHdlcmUgc3RpbGwgcnVubmluZyB3aGVuIHRoZSBsZWFrcyB0cmFjZXIgd2FzIGNoZWNraW5nIGZvcgoJICBsZWFrZWQgb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3NwoKMjAxNi0wNy0wOCAxMToxNTowNiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICBsZWFrcyB0cmFjZXI6IHVzZSBHX09TX1VOSVggdG8gY2hlY2sgZm9yIHNpZ25hbCBzdXBwb3J0CgkgIENoZWNraW5nIGZvciBzaWduYWwuaCBpcyBub3QgZ29vZCBlbm91Z2ggYXMgaXQncyBwcmVzZW50IGluIFdpbmRvd3MuCgkgIFRob3NlIHNpZ25hbHMgYXJlIFVOSVggc3BlY2lmaWMgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODU3CgoyMDE2LTA2LTIyIDE2OjI1OjE2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzIHRyYWNlcjogYWRkIGNyZWF0aW9uIHN0YWNrIHRyYWNlIHN1cHBvcnQKCSAgVGhpcyBhbGxvdyB1cyB0byBwcm92aWRlIHRoZSB0cmFjZSBvZiBsZWFrZWQgb2JqZWN0cyBtYWtpbmcgaXQgZWFzaWVyCgkgIHRvIGRlYnVnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODYyCgoyMDE2LTA2LTAxIDExOjA4OjM5ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3MgdHJhY2VyOiBhZGQgY2hlY2twb2ludCBzdXBwb3J0IHVzaW5nIFNJR1VTUjIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg1NwoKMjAxNi0wNS0zMSAxNjo1NjoyNiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICBsZWFrcyB0cmFjZXI6IGxvZyBhbGl2ZSBvYmplY3RzIHdoZW4gcmVjZWl2aW5nIFNJR1VTUjEKCSAgV2UgZG9uJ3Qgd2FudCB0byBhdXRvbWF0aWNhbGx5IGNhdGNoIHNpZ25hbHMgc28gdXNlIGFuIGVudiB2YXJpYWJsZSB0bwoJICBlbmFibGUgdGhpcyBmZWF0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODU3CgoyMDE2LTA3LTA3IDEzOjE1OjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBPbmx5IGZvcndhcmQgc3RpY2t5IGV2ZW50cyBvbiBHQVAgZXZlbnRzIGlmIG5lZWRlZAoJICBUaGF0IGlzLCBpZiB0aGUgYWN0aXZlIHBhZCBjaGFuZ2VkIGFuZCBpZiBmb3J3YXJkaW5nIG9mIHN0aWNreSBldmVudHMgaXMKCSAgcmVxdWVzdGVkIGF0IGFsbC4gV2Ugb3RoZXJ3aXNlIGZvcndhcmQgZXZlbnRzIHRvbyBvZnRlbi4KCjIwMTYtMDctMDUgMTY6NTA6MTYgKzAyMDAgIE1pZ3VlbCBQYXLDrXMgRMOtYXogPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIHF1ZXJ5IGNhcHMgYW5zd2VyZWQgYW5kIGNhcHMgbm90IE5VTEwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODQ1MAoKMjAxNi0wNy0wNiAxMzo1MDo1NiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS45LjEgPT09CgoyMDE2LTA3LTA2IDEzOjA1OjAyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjkuMQoKMjAxNi0wNy0wNiAxMTozNzo1NiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDctMDYgMTA6MTc6MzcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kYS5wbzoKCSogcG8vaHIucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zay5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDctMDUgMTI6MTc6MTggKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGFkZCBjYWxjdWxhdGVkIGJpdHJhdGVzIHVudGlsIHRocmVzaG9sZAoJICBXYWl0aW5nIGJlZm9yZSBwb3N0aW5nIGNhbGN1bGF0ZWQgYml0cmF0ZXMgc2VlbXMgdG8gYmUgdGhlCgkgIGludGVudCBvZiB0aGUgY29kZSwgc28gYXZvaWQgYWRkaW5nIHRoZW0gdG8gdGhlIHRhZyBsaXN0CgkgIHB1c2hlZCB3aXRoIHRoZSBmaXJzdCBmcmFtZS4KCSAgV2hlbiB0aGUgdGhyZXNob2xkIGlzIHJlYWNoZWQsIGdzdF9iYXNlX3BhcnNlX3VwZGF0ZV9iaXRyYXRlcwoJICBzZXRzIHRhZ3NfY2hhbmdlZCwgc28gdGhpcyBwb3N0cyB0aGUgY2FsY3VsYXRlZCBvbmVzIHJpZ2h0CgkgIHRoYXQgbW9tZW50LgoJICBUaGlzIHByZXZlbnRzIGFuIGluc2FuZSBhdmVyYWdlIGNhbGN1bGF0ZWQgZnJvbSBqdXN0IHRoZQoJICBmaXJzdCAoa2V5KSBmcmFtZSBmcm9tIGdldHRpbmcgcG9zdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NDM5CgoyMDE2LTA3LTA0IDEwOjAwOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNYWtlIHN1cmUgdG8gbm90IGNyZWF0ZSBhbiBpbnZhbGlkIGV2ZW50IG9yZGVyIHdoZW4gZ2VuZXJhdGluZyB0aGUgZGVmYXVsdCBDQVBTIGV2ZW50IGJlY2F1c2Ugb2YgYSBHQVAgZXZlbnQKCSAgVGhlcmUgbXVzdCBiZSBhIFNFR01FTlQgZXZlbnQgYmVmb3JlIHRoZSBHQVAgZXZlbnQsIGFuZCBTRUdNRU5UIGV2ZW50cyBtdXN0CgkgIGNvbWUgYWZ0ZXIgYW55IENBUFMgZXZlbnQuIFdlIGhvd2V2ZXIgZGlkIG5vdCBwcm9kdWNlIGFueSBDQVBTIHlldCwgc28gd2UgbmVlZAoJICB0byBlbnN1cmUgdG8gaW5zZXJ0IHRoZSBDQVBTIGV2ZW50IGJlZm9yZSB0aGUgU0VHTUVOVCBldmVudCBpbnRvIHRoZSBwZW5kaW5nCgkgIGV2ZW50cyBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2OTcwCgoyMDE2LTA3LTAxIDIyOjM0OjU5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IEF2b2lkIGdjYyA2IHdhcm5pbmcgdGhhdCBicmVha3MgdGhlIHRlc3RzIGJ1aWxkCgkgIGdjYyA2IGhhcyBwcm9ibGVtcyBkZXRlY3RpbmcgYW5kIGF2b2lkaW5nIHRocm93aW5nCgkgIGEgd2FybmluZyBmb3IgdGF1dG9sb2dpY2FsIGNvbXBhcmVzIGluIG1hY3JvcyAodGhleQoJICBzaG91bGQgb25seSB0cmlnZ2VyIGZvciBjb21wYXJlcyBvdXRzaWRlIG1hY3JvcykuCgkgIEF2b2lkIHRoZW0gd2l0aCBhIG5hc3R5IGNhc3Qgb2Ygb25lIHBhcmFtZXRlciB0byB2b2lkICoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDUyNgoKMjAxNi0wNy0wMSAwOTo0NDoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggYmVoYXZpb3VyIHdpdGggbm90LWxpbmtlZCBhbmQgZW9zIHBhZHMKCSAgVGhpcyBpcyBhbiB1cGRhdGUgb24gYzliNjg0ODg4NWY0Njc1ZDQ0N2U4MjNjOGZiMTE3ZTI0NzY1ODI1MgoJICBtdWx0aXF1ZXVlOiBGaXggbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgYXQgRU9TCgkgIFdoaWxlIHRoYXQgY29tbWl0IGRpZCBmaXggdGhlIGJlaGF2aW91ciBpZiB1cHN0cmVhbSBzZW50IGEgR1NUX0VWRU5UX0VPUywKCSAgaXQgd291bGQgYnJlYWsgdGhlIHNhbWUgaXNzdWUgd2hlbiAqZG93bnN0cmVhbSogcmV0dXJucyBHU1RfRkxPV19FT1MKCSAgKHdoaWNoIGNhbiBoYXBwZW4gZm9yIGV4YW1wbGUgd2hlbiBkb3duc3RyZWFtIGRlY29kZXJzIHJlY2VpdmUgZGF0YQoJICBmcm9tIGFmdGVyIHRoZSBzZWdtZW50IHN0b3ApLgoJICBHU1RfUEFEX0lTX0VPUygpIGlzIG9ubHkgVFJVRSB3aGVuIGEgR1NUX0VWRU5UX0VPUyBoYXMgZmxvd24gdGhyb3VnaCBpdAoJICBhbmQgbm90IHdoZW4gYSBHU1RfRVZFTlRfRU9TIGhhcyBnb25lIHRocm91Z2ggaXQuCgkgIEluIG9yZGVyIHRvIGhhbmRsZSBib3RoIGNhc2VzLCBhbHNvIHRha2UgaW50byBhY2NvdW50IHRoZSBsYXN0IGZsb3cKCSAgcmV0dXJuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzcwCgoyMDE2LTA2LTMwIDE1OjA3OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgc3RyZWFtczogc3ByaW5rbGUgc29tZSBTaW5jZTogbWFya2VycyBmb3IgZG9jcwoKMjAxNi0wNi0zMCAxNDozNzoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhZGQgZ3RrLWRvYyBibHVyYiBmb3IgbmV3IHBhZCBwcm9wZXJ0eQoKMjAxNi0wMi0xMCAxMTo0MjowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogQWRkIGEgcGFkIHByb3BlcnR5IHRvICJncm91cCIgc3RyZWFtcwoJICBXaGVuIHN5bmNpbmcgYnkgcnVubmluZyB0aW1lLCBtdWx0aXF1ZXVlIHdpbGwgdGhyb3R0bGUgdW5saW5rZWQgc3RyZWFtcwoJICBiYXNlZCBvbiBhIGdsb2JhbCAiaGlnaC10aW1lIiBhbmQgdGhlIHBlbmRpbmcgIm5leHRfdGltZSIgb2YgYSBzdHJlYW0uCgkgIFRoZSBpZGVhIGlzIHRoYXQgd2UgZG9uJ3Qgd2FudCB1bmxpbmtlZCBzdHJlYW1zIHRvIGJlICJiZWhpbmQiIHRoZSBnbG9iYWwKCSAgcnVubmluZyB0aW1lIG9mIGxpbmtlZCBzdHJlYW1zLCBzbyB0aGF0IGlmL3doZW4gdGhleSBnZXQgbGlua2VkIChsaWtlIHdoZW4KCSAgc3dpdGNoaW5nIHRyYWNrcykgZGVjb2RpbmcvcGxheWJhY2sgY2FuIHJlc3VtZSBmcm9tIHRoZSBzYW1lIHBvc2l0aW9uIGFzCgkgIHRoZSBvdGhlciBzdHJlYW1zLgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGFzc3VtZXMgZWxlbWVudHMgZG93bnN0cmVhbSB3aWxsIGhhdmUgYSBtb3JlIG9yIGxlc3MKCSAgZXF1YWwgYnVmZmVyaW5nL2xhdGVuY3kgLi4uIHdoaWNoIGlzbid0IHRoZSBjYXNlIGZvciBzdHJlYW1zIG9mIGRpZmZlcmVudAoJICB0eXBlLiBWaWRlbyBkZWNvZGVycyB0ZW5kIHRvIGhhdmUgaGlnaGVyIGxhdGVuY3kgKGFuZCB0aGVyZWZvcmUgY29uc3VtZSBtb3JlCgkgIGZyb20gdXBzdHJlYW0gdG8gb3V0cHV0IGEgZ2l2ZW4gZGVjb2RlZCBmcmFtZSkgY29tcGFyZWQgdG8gYXVkaW8gb25lcywgcmVzdWx0aW5nCgkgIGluIHRoZSBjb21wdXRlZCAiaGlnaF90aW1lIiBiZWluZyBhdCB0aGUgcG9zaXRpb24gb2YgdGhlIHZpZGVvIHN0cmVhbSwKCSAgbXVjaCBmdXJ0aGVyIHRoYW4gdGhlIGF1ZGlvIHN0cmVhbXMuCgkgIFRoaXMgbWVhbnMgdGhlIHVubGlua2VkIGF1ZGlvIHN0cmVhbXMgZW5kIHVwIGJlaW5nIHF1aXRlIGEgYml0IGFmdGVyIHRoZSBsaW5rZWQKCSAgYXVkaW8gc3RyZWFtcywgcmVzdWx0aW5nIGluIGdhcHMgd2hlbiBzd2l0Y2hpbmcgc3RyZWFtcy4KCSAgSW4gb3JkZXIgdG8gbWl0aWdhdGUgdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBhZGRzIGEgbmV3ICJncm91cC1pZCIgcGFkIHByb3BlcnR5CgkgIHdoaWNoIGFsbG93cyB1c2VycyB0byAiZ3JvdXAiIHN0cmVhbXMgdG9nZXRoZXIuIENhbGN1bGF0aW5nIHRoZSBoaWdoLXRpbWUgd2lsbAoJICBub3cgYmUgZG9uZSBub3Qgb25seSBnbG9iYWxseSwgYnV0IGFsc28gcGVyIGdyb3VwLiBUaGlzIGVuc3VyZXMgdGhhdCB3aXRoaW4KCSAgYSBnaXZlbiBncm91cCB1bmxpbmtlZCBzdHJlYW1zIHdpbGwgYmUgdGhyb3R0bGVkIGJ5IHRoYXQgZ3JvdXAncyBoaWdoLXRpbWUKCSAgaW5zdGVhZC4KCSAgVGhpcyBmaXhlcyBnYXBzIHdoZW4gc3dpdGNoaW5nIGRvd25zdHJlYW0gZWxlbWVudHMgKGxpa2Ugc3dpdGNoaW5nIGF1ZGlvIHRyYWNrcykuCgoyMDE1LTA2LTEyIDEwOjUzOjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc2VsZWN0aW9uLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cmVhbS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RyZWFtLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IE5ldyBTdHJlYW0gbGlzdGluZy9zZWxlY3Rpb24gc3lzdGVtCgkgICogR3N0U3RyZWFtCgkgICogR3N0U3RyZWFtQ29sbGVjdGlvbgoJICAqIEdTVF9FVkVOVF9TRUxFQ1RfU1RSRUFNUwoJICAqIEdTVF9NRVNTQUdFX1NUUkVBTV9DT0xMRUNUSU9OCgoyMDE2LTA2LTI5IDIzOjI0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiAjZGVmaW5lIEVXT1VMREJMT0NLIHRvIEVBR0FJTiBpZiBpdCdzIG5vdCBkZWZpbmVkIG9uIFdpbmRvd3MKCjIwMTYtMDYtMjkgMTQ6MDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBGaXggaGFuZGxpbmcgb2YgdGhlIEdzdFBvbGwKCSAgRXNwZWNpYWxseSBpZiBtdWx0aXBsZSB0aHJlYWRzIGFyZSB3YWl0aW5nIGZvciBidWZmZXJzIHRvIGJlIGF2YWlsYWJsZSBhZ2FpbiwKCSAgdGhlIGN1cnJlbnQgY29kZSB3YXMgd3JvbmcuIEZpeCB0aGlzIGFuZCBkb2N1bWVudCBjbGVhcmx5IGhvdyB0aGUgR3N0UG9sbCBpcwoJICBzdXBwb3NlZCB0byBiZSB1c2VkLgoJICBBbHNvIGZpeCBzb21lIHBvdGVudGlhbCByYWNlcyB3aXRoIHJlYWRpbmcgZnJvbSB0aGUgR3N0UG9sbCBiZWZvcmUgd3JpdGluZwoJICBhY3R1YWxseSBoYXBwZW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzk3OQoKMjAxNi0wNi0yOSAxNDowMjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBNYWtlIHN1cmUgdG8gYWx3YXlzIHJlYWQgdGhlIGNvbnRyb2wgYWZ0ZXIgcG9wcGluZyBhIG1lc3NhZ2UKCSAgSXQgbWlnaHQgaGFwcGVuIHRoYXQgd2UgcG9wcGVkIHRoZSBtZXNzYWdlIGJlZm9yZSB3cml0aW5nIG9mIHRoZSBjb250cm9sCgkgIGhhcHBlbmVkLiBJbiB0aGlzIGNhc2Ugd2UganVzdCBoYXZlIHRvIHJldHJ5IGFnYWluIGEgYml0IGxhdGVyLCBhbmQgZmFpbHVyZSB0bwoJICBkbyBzbyB3aWxsIGNhdXNlIGFuIGFkZGl0aW9uYWwgYnl0ZSBpbiB0aGUgY29udHJvbCBhbmQgdGhlIEdTb3VyY2UgLwoJICBnc3RfcG9sbF93YWl0KCkgdG8gYWx3YXlzIHdha2UgdXAgYWdhaW4gaW1tZWRpYXRlbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTM6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEltcHJvdmUgR3N0UG9sbCBoYW5kbGluZyBhbmQgZG9uJ3QgY2hlY2sgZm9yIGltcG9zc2libGUgZXJybm8gdmFsdWVzCgkgIEFsc28ganVzdCByZWFkL3dyaXRlIGNvbnRyb2wgZXZlcnkgdGltZSwgR3N0UG9sbCBpcyBvcHRpbWl6ZWQgYnkgaXRzZWxmCgkgIGFscmVhZHkgdG8gb25seSBkbyBJL08gaWYgc3dpdGNoaW5nIGJldHdlZW4gZW1wdHkgYW5kIG9uZSBieXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDEzOjM1OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogQ2xhcmlmeSB3aGVuIEZBTFNFIGlzIHJldHVybmVkIGZyb20gcmVhZC93cml0ZV9jb250cm9sKCkKCSAgQW5kIGFsc28gbWVudGlvbiB3aGF0IHRoZSBleHBlY3RlZCB2YWx1ZXMgb2YgZXJybm8gYXJlIGdvaW5nIHRvIGJlLgoJICB3cml0ZV9jb250cm9sKCkgd2lsbCBvbmx5IGV2ZXIgcmV0dXJuIEZBTFNFIGlmIHRoZXJlIHdhcyBhIGNyaXRpY2FsIGVycm9yLiBJdAoJICB3aWxsIG5ldmVyIHJldHVybiBiZWNhdXNlIG9mIEVJTlRSLCBFQUdBSU4gb3IgRVdPVUxEQkxPQ0suCgkgIHJlYWRfY29udHJvbCgpIHdpbGwgcmV0dXJuIEZBTFNFIGlmIHRoZXJlIHdhcyBubyBieXRlIHRvIHJlYWQsIGluIHdoaWNoIGNhc2UKCSAgZXJybm8gd291bGQgYmUgRVdPVUxEQkxPQ0suCgkgIEluIGFsbCBvdGhlciBjYXNlcyB0aGVyZSB3YXMgYSBjcml0aWNhbCBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzoyNjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHNldF9jb250cm9sbGFibGUoKSwgcmVzdGFydCgpIGFuZCBzZXRfZmx1c2hpbmcoKSBhcmUgb25seSB2YWxpZCBmb3Igbm9uLXRpbWVyIEdzdFBvbGxzCgkgIE9uIHRpbWVyIEdzdFBvbGxzIGl0IHdpbGwgY2F1c2UgdGhlIGNvbnRyb2wgc29ja2V0IHN0YXRlIHRvIGJlY29tZQoJICBpbmNvbnNpc3RlbnQgYXMgbm93IG9uZSBsZXNzIHJlYWRfY29udHJvbCgpIHRoYW4gd3JpdGVfY29udHJvbCgpIGJlIHdvdWxkCgkgIG5lZWRlZC4KCSAgU2ltaWxhcmx5LCByZWFkX2NvbnRyb2woKSBhbmQgd3JpdGVfY29udHJvbCgpIGFyZSBvbmx5IHZhbGlkIG9uIHRpbWVyCgkgIEdzdFBvbGxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDEzOjExOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBvbGwuaDoKCSAgcG9sbDogV2FybiBpZiB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wb2xsX3JlYWRfY29udHJvbCgpIGlzIHVudXNlZAoJICBUaGlzIG1pZ2h0IGZhaWwgZXZlbiB1bmRlciBjb3JyZWN0IHVzYWdlLCBlLmcuIGlmIHJlYWRfY29udHJvbCgpIGlzIGNhbGxlZAoJICBmcm9tIGFub3RoZXIgdGhyZWFkIGJlZm9yZSB3cml0ZV9jb250cm9sKCkgZmluaXNoZWQgaW4gYW5vdGhlci4gSXQgaGFzIHRvIGJlCgkgIHJldHJpZWQgdGhlbiwgb3Igb3RoZXIgbWVhc3VyZXMgaGF2ZSB0byBiZSB0YWtlbiwgZGVwZW5kaW5nIG9uIGhvdyBpdCBpcyB1c2VkCgkgIGJ5IHRoZSBzdXJyb3VuZGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDE4OjU3OjQyICswMjAwICBNYXR0aGV3IEdydWVua2UgPG1ncnVlbmtlQHR5Y29pbnQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IHZhcmlvdXMgcmFjZSBjb25kaXRpb25zIHdpdGggcmVhZF9jb250cm9sKCkgYW5kIHdyaXRlX2NvbnRyb2woKQoJICBUaGlzIGFkZHJlc3NlcyBzbGlnaHRseSBkaWZmZXJlbnQgcmFjZSBjb25kaXRpb25zIG9uIExpbnV4IGFuZCBXaW5kb3dzLCBhbmQKCSAgZml4ZXMgZ3N0X3BvbGxfcmVhZF9jb250cm9sKCkgd2hlbiBjb250cm9sX3BlbmRpbmcgPT0gMC4KCSAgT24gTGludXgsIHRoZSBzb2NrZXRwYWlyKCkgdXNlZCBmb3IgY29udHJvbCBzaG91bGQgbm90IGJlIG1hZGUgT19OT05CTE9DSy4KCSAgSWYgdGhlcmUncyBhbnkgcHJvcGFnYXRpb24gZGVsYXkgYmV0d2VlbiBzZXQtPmNvbnRyb2xfd3JpdGVfZmQuZmQgYW5kCgkgIHNldC0+Y29udHJvbF9yZWFkX2ZkLmZkLCBldmVuIHRoZSBtdXRleCBub3cgaGVsZCB3aWxsIG5vdCBiZSBzdWZmaWNpZW50IHRvCgkgIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbi4gIFRoZXJlJ3Mgbm8gYmVuZWZpdCB0byB1c2luZyBPX05PTkJMT0NLLCBoZXJlLgoJICBPbmx5IGxpYWJpbGl0aWVzLgoJICBGb3IgV2luZG93cywgaXQncyBuZWNlc3NhcnkgdG8gZml4IHRoZSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRlc3RpbmcKCSAgc2V0LT5jb250cm9sX3BlbmRpbmcgYW5kIHBlcmZvcm1pbmcgV0FLRV9FVkVOVCgpL1JFTEVBU0VfRVZFTlQoKS4gIFRoaXMgaXMKCSAgYWNjb21wbGlzaGVkIGJ5IGFjcXVpcmluZyBhbmQgaG9sZGluZyBzZXQtPmxvY2ssIGZvciBib3RoIG9mIHRoZXNlIG9wZXJhdGlvbnMuCgkgIFdlIGNvdWxkIG9wdGltaXplIHRoZSBMaW51eCB2ZXJzaW9uIGJ5IG1ha2luZyB0aGlzIFdpbmRvd3Mtc3BlY2lmaWMuCgkgIEZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiwgV2luZG93cycgUkVMRUFTRV9FVkVOVCgpCgkgIGhhcyBhbHNvIGJlZW4gbWFkZSB0byBibG9jaywgYWx0aG91Z2ggaXQgc2hvdWxkIG5ldmVyIGhhcHBlbi4KCSAgQWxzbywgY2hhbmdlZCByZWxlYXNlX3dha2V1cCgpIHRvIHJldHVybiBUUlVFIGFuZCBkZWNyZW1lbnQgY29udHJvbF9wZW5kaW5nCgkgIG9ubHkgd2hlbiA+IDAuICBGdXJ0aGVybW9yZSwgUkVMRUFTRV9FVkVOVCgpIGlzIGNhbGxlZCBvbmx5IHdoZW4KCSAgY29udHJvbF9wZW5kaW5nID09IDEuCgkgIEZpbmFsbHksIGNoYW5nZWQgY29udHJvbF9wZW5kaW5nIHRvIHVzZSBub3JtYWwsIG5vbi1hdG9taWMgYXJpdGhtZXRpYwoJICBvcGVyYXRpb25zLCBzaW5jZSBpdCdzIG5vdyBwcm90ZWN0ZWQgYnkgc2V0LT5sb2NrLgoJICBOb3RlOiBldmVuIHRob3VnaCB0aGUgdW5kZXJseWluZyBzaWduYWxpbmcgbWVjaGFuaXNtcyBhcmUgYmxvY2tpbmcsCgkgIHJlbGVhc2Vfd2FrZXVwKCkgaXMgZWZmZWN0aXZlbHkgbm9uLWJsb2NraW5nLCBhcyBpdCB3aWxsIG9ubHkgYXR0ZW1wdCB0byByZWFkCgkgIGZyb20gY29udHJvbF9yZWFkX2ZkLmZkIGFmdGVyIGEgYnl0ZSBoYXMgYmVlbiB3cml0dGVuIHRvIGNvbnRyb2xfd3JpdGVfZmQuZmQKCSAgb3IgV2FpdEZvclNpbmdsZU9iamVjdCgpIGFmdGVyIGl0J3MgYmVlbiBzaWduYWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOCAxNTowMToxNyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogY2hhaW4gdXAgR09iamVjdDo6Y29uc3RydWN0ZWQoKSB0byB0aGUgcGFyZW50IGNsYXNzJyBpbXBsZW1lbnRhdGlvbgoJICBOZWVkZWQgc28gR3N0QnVzIGNhbiBiZSB0cmFja2VkIGJ5IHRoZSBsZWFrcyB0cmFjZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjgxNDEKCjIwMTYtMDYtMjQgMDU6MjY6MDkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IERvbid0IHVzZSBleHRlcm4gd2l0aCBkbGxleHBvcnQKCSAgR0NDIGVtaXRzIGFuIGVycm9yIGZvciB0aGlzIHdpdGggLVdlcnJvcjoKCSAgcGx1Z2luLmM6MjI6MTogZXJyb3I6ICdnc3RfcGx1Z2luX2Rlc2MnIGluaXRpYWxpemVkIGFuZCBkZWNsYXJlZCAnZXh0ZXJuJyBbLVdlcnJvcl0KCSAgVGhpcyBtYXRjaGVzIGhvdyBnbGliIGRvZXMgc3ltYm9sIGV4cG9ydGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzQ2MwoKMjAxNi0wNi0yMSAxOTo0OToxNSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIHdpbjMyOiBEb24ndCB1c2UgZGxsZXhwb3J0L2ltcG9ydCB3aGVuIG9ubHkgYnVpbGRpbmcgc3RhdGljYWxseQoJICBJZiB0aGUgcHJvdG90eXBlcyBpbiB0aGUgcHVibGljIEFQSSBoYXZlIGRsbGltcG9ydCBpbiB0aGVtIHdoZW4gYnVpbGRpbmcKCSAgc3RhdGljYWxseSBvbiBXaW5kb3dzLCB0aGUgY29tcGlsZXIgd2lsbCBsb29rIGZvciBzeW1ib2xzIHdpdGggc3ltYm9sCgkgIG1hbmdsaW5nIGFuZCBpbmRpcmVjdGlvbiBjb3JyZXNwb25kaW5nIHRvIGEgRExMLiBUaGlzIHdpbGwgY2F1c2UgYSBidWlsZAoJICBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIGxpbmsgdGVzdHMvZXhhbXBsZXMvZXRjLgoJICBFeHRlcm5hbCB1c2VycyBvZiBHU3RyZWFtZXIgYWxzbyBuZWVkIHRvIGRlZmluZSAtREdTVF9TVEFUSUNfQ09NUElMQVRJT04KCSAgaWYgdGhleSB3YW50IHRvIGxpbmsgdG8gc3RhdGljIGdzdHJlYW1lciBsaWJyYXJpZXMgb24gV2luZG93cy4KCSAgQSBzaW1pbGFyIHZlcnNpb24gb2YgdGhpcyBwYXRjaCBoYXMgYmVlbiBjb21taXR0ZWQgdG8gYWxsIGdzdHJlYW1lcgoJICByZXBvc2l0b3JpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc0NjMKCjIwMTYtMDYtMjEgMTE6NDU6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWMyZjY0NyB0byBmMzYzYjMyCgoyMDE2LTA2LTE1IDE2OjI0OjI3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogYWRkIGEgdGVzdCBmb3Igc21hbGwgcmluZyBidWZmZXIgc2l6ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzY4OAoKMjAxNi0wNi0xNSAxMzo0Mzo1OSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjcmFzaCBkZWxldGluZyBjdXJyZW50IHJlZ2lvbiBmb3Igc21hbGwgcmluZyBidWZmZXJzCgkgIEVuc3VyZSB3ZSBkbyBub3QgYXR0ZW1wdCB0byBkZXN0cm95IHRoZSBjdXJyZW50IHJhbmdlLiBEb2luZyBzbwoJICBjYXVzZXMgdGhlIGN1cnJlbnQgb25lIHRvIGJlIGxlZnQgZGFuZ2xpbmcsIGFuZCBpdCBtYXkgYmUgZGVyZWZlcmVuY2VkCgkgIGxhdGVyLCBsZWFkaW5nIHRvIGEgY3Jhc2guCgkgIFRoaXMgY2FuIGhhcHBlbiB3aXRoIGEgdmVyeSBzbWFsbCBxdWV1ZTIgcmluZyBidWZmZXIgKDEwMDAwIGJ5dGVzKQoJICBhbmQgNCBrQiBidWZmZXJzLgoJICByZXBybyBjYXNlOgoJICBnc3QtbGF1bmNoLTEuMCBmYWtlc3JjIHNpemV0eXBlPTIgc2l6ZW1heD00MDk2ICEgXAoJICBxdWV1ZTIgcmluZy1idWZmZXItbWF4LXNpemU9MTAwMCAhIGZha2VzaW5rIHN5bmM9dHJ1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3Njg4CgoyMDE2LTA2LTIwIDExOjM0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICB0ZXN0czogZ3N0b2JqZWN0OiBmaXggdHlwbyBpbiB0ZXN0IG5hbWUKCjIwMTYtMDYtMTYgMTQ6MDg6MDEgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZzogZml4IHJlZmVyZW5jZSB0byByZW5hbWVkIGZ1bmMKCjIwMTYtMDYtMDggMTI6MzQ6NTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogUHJvcGVybHkgaGFuZGxlIHJldHVybiB2YWx1ZSB3aGVuIG9ubHkgMSBwYWQKCSAgVGhpcyBwYXRjaCBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB5b3UgaGF2ZSAxIHBhZCAoc28gdGhlIGZhc3QgcGF0aCBpcwoJICBiZWluZyB1c2VkKSBidXQgdGhpcyBwYWQgaXMgcmVtb3ZlZC4gSWYgd2UgYXJlIGluIGFsbG93LW5vdC1saW5rZWQsIHdlCgkgIHNob3VsZCByZXR1cm4gR1NUX0ZMT1dfT0ssIG90aGVyd2lzZSwgd2Ugc2hvdWxkIHJldHVybiBHU1RfRkxPV19VTkxJTktFRAoJICBhbmQgaWdub3JlIHRoZSBtZWFuaW5nbGVzcyByZXR1cm4gdmFsdWUgb2J0YWluZWQgZnJvbSBwdXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3NDEzCgoyMDE2LTA2LTE2IDE1OjUyOjE2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc2NyaXB0cy9nc3QtcGxvdC10cmFjZXMuc2g6CgkgIGdzdC1wbG90LXRyYWNlcy5zaDogYWRkIGEgc2NyaXB0IHRvIHBsb3QgZ3N0LXRyYWNlciBncmFwaHMKCSAgVGhlIHNjcmlwdCBleHRyYWN0cyBjcHUtdXNhZ2UgZGF0YSBmcm9tIGEgdHJhY2Vsb2cgYW5kIHBsb3RzIGl0IHZpYSBnbnVwbG90LgoKMjAxNi0wNi0xNSAxNjoxMjoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBGaXggdHlwbwoJICBwYXJhbWF0ZXIgLT4gcGFyYW1ldGVyCgoyMDE2LTA2LTE0IDE5OjE2OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZmxlc2ggb3V0IEdTVF9QVFJfRk9STUFUIGRvY3MgYSBiaXQKCjIwMTYtMDYtMTMgMTg6MzM6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVcGRhdGUgc3RhcnQgdGltZSB3aGVuIGxvc2luZyBzdGF0ZSBvbmx5IGlmIHdlIHdlcmUgaW4gUExBWUlORwoJICBJZiB3ZSB3ZXJlIGluIFBBVVNFRCwgdGhlIGN1cnJlbnQgY2xvY2sgdGltZSBhbmQgYmFzZSB0aW1lIGRvbid0IGhhdmUgbXVjaCB0bwoJICBkbyB3aXRoIHRoZSBydW5uaW5nIHRpbWUgYW55bW9yZSBhcyB0aGUgY2xvY2sgbWlnaHQgaGF2ZSBhZHZhbmNlZCB3aGlsZSB3ZQoJICB3ZXJlIFBBVVNFRC4gVGhlIHN5c3RlbSBjbG9jayBkb2VzIHRoYXQgZm9yIGV4YW1wbGUsIGF1ZGlvIGNsb2NrcyBvZnRlbiBkb24ndC4KCSAgVXBkYXRpbmcgdGhlIHN0YXJ0IHRpbWUgaW4gUEFVU0VEIHdpbGwgY2F1c2UgYSkgdGhlIHdyb25nIHBvc2l0aW9uIHRvIGJlCgkgIHJlcG9ydGVkLCBiKSBzdGVwIGV2ZW50cyB0byBzdGVwIG5vdCBqdXN0IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGJ1dCB0aGUgYW1vdW50CgkgIG9mIHRpbWUgd2Ugc3BlbnQgaW4gUEFVU0VELiBUaGUgc3RhcnQgdGltZSBzaG91bGQgb25seSBldmVyIGJlIHVwZGF0ZWQgd2hlbgoJICBnb2luZyBmcm9tIFBMQVlJTkcgdG8gUEFVU0VEIHRvIHJlbWVtYmVyIHRoZSBjdXJyZW50IHJ1bm5pbmcgdGltZSAodG8gYmUgYWJsZQoJICB0byBjb21wZW5zYXRlIGxhdGVyIHdoZW4gZ29pbmcgdG8gUExBWUlORyBmb3IgdGhlIGNsb2NrIHRpbWUgYWR2YW5jaW5nIHdoaWxlCgkgIFBBVVNFRCksIG5vdCB3aGVuIHdlIGFyZSBhbHJlYWR5IGluIFBBVVNFRC4KCSAgQmFzZWQgb24gYSBwYXRjaCBieSBLaXNob3JlIEFyZXBhbGxpIDxraXNob3JlLmFyZXBhbGxpQGdtYWlsLmNvbT4KCSAgVGhlIHVwZGF0aW5nIG9mIHRoZSBzdGFydCB0aW1lIHdoZW4gdGhlIHN0YXRlIGlzIGxvc3Qgd2FzIGFkZGVkIGluIGNvbW1pdAoJICBiYTk0M2E4MmMwYmJmZDE3YzllZTlmNTA2OGQ0NGM5ZDkyNzRmZDEzIHRvIGZpeCB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIHdoZW4KCSAgdGhlIHN0YXRlIGlzIGxvc3QuIFRoaXMgc3RpbGwgd29ya3MgY29ycmVjdGx5IGFmdGVyIHRoaXMgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5Mjg5CgoyMDE2LTA2LTExIDIyOjE4OjA2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IExvZyBwYWQgb2Zmc2V0cyBhcyBzaWduZWQgdGltZXMKCjIwMTYtMDYtMTEgMjE6NTY6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWxzbyBjaGVjayB0aGUgbnVtYmVyIG9mIHNlZ21lbnQgZXZlbnRzIGFuZCBpZiBvdGhlciBzZXJpYWxpemVkIGV2ZW50cyBhbmQgcXVlcmllcyB0cmlnZ2VyIHNlZ21lbnQgdXBkYXRpbmcgdG9vCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNDkKCjIwMTYtMDYtMTEgMjE6Mzc6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHVuaXQgdGVzdCBmb3IgcGFkIG9mZnNldCBoYW5kbGluZyBvbiBzcmMgcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDQ5CgoyMDE2LTA2LTA3IDExOjMyOjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBSZW5hbWUgZnVuY3Rpb25zIGFuZCBpbXBsZW1lbnQgbmV3IGZ1bmN0aW9ucywgdXBkYXRlIHRlc3QKCSAgV2UgZG9uJ3QgZG8gY2FsY3VsYXRpb25zIHdpdGggZGlmZmVyZW50IHVuaXRzIChidWZmZXIgb2Zmc2V0cyBhbmQgYnl0ZXMpCgkgIGFueW1vcmUgYnV0IGhhdmUgZnVuY3Rpb25zIGZvcjoKCSAgMSkgZ2V0dGluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHNpbmNlIHRoZSBsYXN0IGRpc2NvbnQKCSAgMikgZ2V0dGluZyB0aGUgb2Zmc2V0IChhbmQgcHRzL2R0cykgYXQgdGhlIGxhc3QgZGlzY29udAoJICBhbmQgdGhlIHByZXZpb3VzbHkgYWRkZWQgZnVuY3Rpb24gdG8gZ2V0IHRoZSBsYXN0IG9mZnNldCBhbmQgaXRzIGRpc3RhbmNlIGZyb20KCSAgdGhlIGN1cnJlbnQgYWRhcHRlciBwb3NpdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjY0NwoKMjAxNi0wNS0xOSAxMDozMTowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRkIG1ldGhvZHMgdG8gcXVlcnkgY3VycmVudCBvZmZzZXQKCSAgQVBJOiBnc3RfYnVmZmVyX3ByZXZfb2Zmc2V0CgkgIEFQSTogZ3N0X2J1ZmZlcl9nZXRfb2Zmc2V0X2Zyb21fZGlzY29udAoJICBUaGUgZ3N0X2J1ZmZlcl9nZXRfb2Zmc2V0X2Zyb21fZGlzY29udCgpIG1ldGhvZCBhbGxvd3MgcmV0cmlldmluZyB0aGUgY3VycmVudAoJICBvZmZzZXQgYmFzZWQgb24gdGhlIEdTVF9CVUZGRVJfT0ZGU0VUIG9mIHRoZSBidWZmZXJzIHRoYXQgd2VyZSBwdXNoZWQgaW4uCgkgIFRoZSBvZmZzZXQgd2lsbCBiZSBzZXQgaW5pdGlhbGx5IGJ5IHRoZSBHU1RfQlVGRkVSX09GRlNFVCBvZgoJICBESVNDT05UIGJ1ZmZlcnMsIGFuZCB0aGVuIGluY3JlbWVudGVkIGJ5IHRoZSBzaXplcyBvZiB0aGUgZm9sbG93aW5nCgkgIGJ1ZmZlcnMuCgkgIFRoZSBnc3RfYnVmZmVyX3ByZXZfb2Zmc2V0KCkgbWV0aG9kIGFsbG93cyByZXRyaWV2ZW50IHRoZSBwcmV2aW91cwoJICBHU1RfQlVGRkVSX09GRlNFVCByZWdhcmRsZXNzIG9mIGZsYWdzLiBJdCB3b3JrcyBpbiB0aGUgc2FtZSB3YXkgYXMKCSAgdGhlIG90aGVyIGdzdF9idWZmZXJfcHJldl8qKCkgbWV0aG9kcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjY0NwoKMjAxNi0wNi0wOSAxNzo0MjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmguaW46IGluZGVudCAjaWYgI2Vsc2UganVuZ2xlIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCjIwMTYtMDYtMDggMTI6MTE6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF9wYWRfbGlua19tYXliZV9naG9zdGluZygpIGZvciBjb25zaXN0ZW5jeQoJICBXZSBhbHJlYWR5IGhhZCBhIF9mdWxsKCkgdmVyc2lvbiwgYnV0IGhhdmluZyB0aGF0IGFsb25lIHNlZW1zIGluY29uc2lzdGVudC4KCSAgQWRkIGEgbm9uLWZ1bGwgdmVyc2lvbiB0aGF0IG1pcnJvcnMgdGhlIGJlaGF2aW91ciBvZiBnc3RfcGFkX2xpbmsoKSB2cwoJICBnc3RfcGFkX2xpbmtfZnVsbCgpLgoKMjAxNi0wNS0yMiAxMzoxMDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTWFrZSBzdXJlIERJU0NPTlQgZmxhZ3MgYXJlIHByb3Blcmx5IHByb3BhZ2F0ZWQKCSAgSWYgd2UgZHJvcCBhIGZyYW1lIHRoYXQgY29udGFpbmVkIGEgZGlzY29udGludWl0eSwgd2UgbXVzdCByZW1lbWJlcgoJICB0aGF0IGZvciB0aGUgbmV4dCBmcmFtZSB0aGF0ICp3aWxsKiBiZSBwdXNoZWQgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njc5NQoKMjAxNi0wNi0wNCAxMzozMTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJICBkZXZpY2Vwcm92aWRlcjogcmVtb3ZlIGJhc2VfY2xhc3NfZmluYWxpemUgZnVuY3Rpb24KCSAgSXQncyBub3QgZ29pbmcgdG8gZ2V0IGNhbGxlZCBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU1NDAKCjIwMTYtMDYtMDQgMTM6MTE6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZW1vdmUgYmFzZV9jbGFzc19maW5hbGl6ZV9mdW5jIHdoaWNoIGlzIG5ldmVyIGNhbGxlZAoJICBXb24ndCBiZSBjYWxsZWQgZm9yIHN0YXRpYyB0eXBlcywgc28gbm8gcG9pbnQga2VlcGluZyBpdCBhcm91bmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU1NDAKCjIwMTYtMDYtMDMgMTM6NTU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgdHJhY2VyczogbGVha3M6IHNvbWUgbWljcm8tb3B0aW1pc2F0aW9ucwoJICAtIHdlIGtub3cgbnVtYmVyIG9mIGZpbHRlciBpdGVtcyBpcyBub3QgZ29pbmcgdG8gY2hhbmdlLAoJICBidXQgY29tcGlsZXIgZG9lc24ndAoJICAtIG9ubHkgZG8gR1NUX0lTX1RSQUNFUiBjaGVjayBmb3IgR09iamVjdHMsIG5vdCBtaW5pIG9iamVjdHMKCSAgLSB1c2Ugbm9uLXR5cGUgY2hlY2sgY2FzdCBtYWNyb3MgaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMKCjIwMTYtMDUtMTAgMDk6Mjk6MTIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IGFkZCBsZWFrcyB0cmFjZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0zMCAxMjoxMToxMyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIFVzZSBNQVlfQkVfTEVBS0VEX0ZMQUcKCSAgVGhpcyBoZWxwcyBoYXZpbmcgIm1ha2UgY2hlY2siIHBhc3Npbmcgd2l0aCB0aGUgbGVha3MgdHJhY2VyIGVuYWJsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYwMDgKCjIwMTYtMDUtMDkgMTY6MzE6MzYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNpbmc6IGFkZCBob29rcyB3aGVuIG9iamVjdHMgb3IgbWluaW9iamVjdHMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA1LTA5IDE2OjU2OjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0X2RlaW5pdDogbW92ZSBkb3duIHRyYWNlcnMgY2xlYW5pbmcKCSAgV2Ugd2FudCB0aGUgdHJhY2VyIGRldGVjdGluZyBsZWFrcyB0byBiZSBmaW5hbGl6ZWQgYXMgbGF0ZSBhcyBwb3NzaWJsZQoJICB0byBnaXZlIHRoZSBjaGFuY2UgdG8gb3RoZXIgZ3N0IGNvbXBvbmVudHMgdG8gYmUgcHJvcGVybHkgY2xlYW5lZCBmaXJzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0xMCAxMTowNjo0MiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiBwbHVnaW46IHJlbW92ZSBmZWF0dXJlIHJlZmNvdW50IGFzc2VydAoJICBUaGlzIGNoZWNrIGZhaWxzIGlmIG9uZSwgb3IgbW9yZSwgdHJhY2VycyBhcmUgbG9hZGVkIHdoaWxlIHJ1bm5pbmcgdGhlCgkgIHRlc3QuIFRoZSBuZXcgImxlYWtzIiB0cmFjZXIgd2lsbCBiZSBhYmxlIHRvIGNoZWNrIGZvciBsZWFrcyBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDQtMTQgMTI6MjU6NDMgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0cmFjZXJyZWNvcmQ6IGFsbG93IEdfVFlQRV9QT0lOVEVSIGZvciBmaWVsZCB0eXBlcwoJICBUcmFjZXJzIG1heSB3YW50IHRvIGRpc3BsYXkgdGhlIGFkZHJlc3Mgb2YgYW4gb2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA1LTMwIDEzOjQyOjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IHNwbGl0IHVwIG5hbWUgdGVzdHMKCSAgSXQgaXMgYmV0dGVyIHRvIGhhdmUgc2VwYXJhdGUgdGVzdHM6CgkgIDEpIHRoZSB0ZXN0IG5hbWUgd2lsbCB0ZWxsIHdoYXQgaXMgYnJvZWtuIHdoZW4gdGhlIHRlc3QgZmFpbHMKCSAgMikgd2Ugc3RpbGwgcnVuIHRoZSBvdGhlciB0ZXN0cyB3aGVuIG9uZSBhc3NlcnQgZmFpbHMKCSAgMykgdGhlIHRlc3RzIGFyZSBlYXNpZXIgdG8gdW5kZXJzdGFuZAoJICA0KSB3ZSBkb24ndCByZWx5IG9uIHNpZSBlZmZlY3Qgb2YgcHJldmlvdXMgYWN0aW9ucwoJICA1KSAuLi4KCSAgQWxzbyBpeCB0aGUgYXNzZXJ0aW9uIG1lc3NhZ2UgZm9yIHRoZSBuYW1lIGNoZWNrcyAoR3N0IC0+IGZha2VvYmplY3QpLgoKMjAxNi0wNS0zMCAwMjowNjowMSAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbiBkb2MKCSAgU29tZSBvZiB0aGUgYXBpIHdhcyByZW5hbWVkIGJlZm9yZSB0aGUgbWVyZ2UuCgoyMDE2LTA1LTMwIDAyOjA0OjE4IC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHhyZWYgdGhlIGZyZWUgZnVuY3Rpb24gYW5kIGV4cGFuZCBhbGxvY2F0aW9uIHF1ZXJ5IGRvY3MKCSAgQWRkIHhyZWZzIGZvciBob3cgdG8gcGFyc2UgcG9vbCBkZXRhaWxzIGZyb20gYW4gYWxsb2NhdGlvbiBxdWVyeS4KCjIwMTYtMDUtMjYgMTQ6NDM6MTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBBZGQgX3NldF9uYW1lKCkgdGVzdCBvbiBwYXJlbnRlZCBvYmplY3QKCSAgVGhpcyBpcyBub3QgYWxsb3dlZCwgYW5kIHNldF9uYW1lKCkgc2hvdWxkIGZhaWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY5MjMKCjIwMTYtMDUtMjYgMTQ6NDE6MzggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBDaGVjayB0aGF0IG5hbWUgY2hhbmdlIGFyZSBub3RpZmllZCBvbmNlCgkgIEdPYmplY3QgYWxsb3cgY2FsbGluZyBnX29iamVjdF9ub3RpZnkoKSB3aXRoaW4gc2V0X3Byb3BlcnR5KCkgYW5kCgkgIHdvbid0IG5vdGlmeSBpdCB0d2ljZS4gQXMgaXQgd2FzIHJhaXNlZCBkdXJpbmcgcmV2aWV3LCBhZGQgYSB1bml0IHRlc3QgdG8KCSAgbWFrZSBzdXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2OTIzCgoyMDE2LTA1LTI2IDEzOjE3OjM3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogTm90aWZ5IG5hbWUgY2hhbmdlIHdoZW4gdXNpbmcgX3NldF9uYW1lKCkKCSAgVGhlcmUgd2FzIGEgMC4xMSBGSVhNRSBhYm91dCBub3RpZnlpbmcgdGhlIG5hbWUgY2hhbmdlIG9yIHJlbW92aW5nIHRoYXQKCSAgZnVuY3Rpb24uIENsZWFybHkgd2UgY2FuJ3QgcmVtb3ZlIHRoaXMgZnVuY3Rpb24sIHNvIGxldCdzIG5vdGlmeSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjkyMwoKMjAxNi0wNS0yNSAxNTozMDoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogRml4IGdzdGNvbmZpZyBpbmNsdWRlCgkgIFNpbmNlIGl0J3MgYSBnZW5lcmF0ZWQgaGVhZGVyLCB3ZSBuZWVkIHRvIHNwZWNpZnkgdGhlIGdzdCBzdWJkaXIgc28KCSAgdGhhdCBpdCBnZXRzIHByb3Blcmx5IGluY2x1ZGVkIGluIG91dC1vZi1kaXIgY29tcGlsYXRpb24KCjIwMTYtMDUtMjUgMTA6NDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0OiBtYWtlIHN1cmUgdG8gaW5jbHVkZSBnc3Rjb25maWcuaCBhbHNvIGluIGdzdF9wcml2YXRlLmgKCSAgRm9yIEdTVF9FWFBPUlQgZGVmaW5lIGFuZCBhbHNvIHRoaW5ncyBsaWtlIEdTVF9ESVNBQkxFX1JFR0lTVFJZLgoJICBIb3BlZnVsbHkgZml4ZXMgdGhlIGZvbGxvd2luZyBidWlsZCBmYWlsdXJlIG9uIGNlcmJlcm8tY3Jvc3MtbWluZ3czMjoKCSAgaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzo1MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2ltcF9fX2dzdF9kaXNhYmxlX3JlZ2lzdHJ5X2NhY2hlJwoKMjAxNi0wNS0yNCAwMDo0MDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZy1pOiBwYXNzIGNvbXBpbGVyIGVudiB0byBnLWlyLXNjYW5uZXIKCSAgSXQncyB3aGF0IGludHJvc3BlY3Rpb24ubWFrIGRvZXMgYXMgd2VsbC4gU2hvdWxkCgkgIGZpeCBzcHVyaW91cyBidWlsZCBmYWlsdXJlcyBvbiBnbm9tZS1jb250aW51b3VzLgoKMjAxNi0wNS0yMyAyMToxNTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBnLWk6IHBhc3MgY29tcGlsZXIgd2l0aCBxdW90ZXMKCSAgU28gQ0M9ImNjYWNoZSBnY2MiIHdvcmtzIHByb3Blcmx5LgoKMjAxNi0wNS0yMyAyMTowNjo1MyArMDEwMCAgUmF5IFN0cm9kZSA8cnN0cm9kZUByZWRoYXQuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IGF0dGVtcHQgdG8gZml4L3RyYWNrLWRvd24gbXlzdGVyaW91cyBnbm9tZS1jb250aW51b3VzIGJ1aWxkIGZhaWx1cmVzCgoyMDE2LTA1LTIzIDE4OjAwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBvbmx5IHVuc2V0IEdWYWx1ZSBpZiBpdCB3YXMgaW5pdGVkCgkgIEFuZCBhZGQgc29tZSBmdW5jdGlvbiBndWFyZHMuIEZyb20gR0xpYiAyLjQ4IG9uIGl0IGlzCgkgIGFsbG93ZWQgdG8gcGFzcyBhbiB1bmluaXRpYWxpc2VkIEdWYWx1ZSB0byBnX3ZhbHVlX3Vuc2V0KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NjIKCjIwMTYtMDUtMjMgMTg6NDQ6MDEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgZ3N0L3BhcnNlOiBBbHNvIHBhc3MgLURHU1RfRVhQT1JUUyBoZXJlCgkgIFRoaXMgc3RhdGljIGxpYnJhcnkgZ2V0cyBpbmNsdWRlZCBkaXJlY3RseSBpbnRvIGxpYmdzdHJlYW1lci0xLjAuc28sIHNvIGl0IG5lZWRzCgkgIHRoZSBzYW1lIEdTVF9FWFBPUlRTIGRlZmluaXRpb24gYXMgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgdGhhdCdzIGNvbXBpbGVkIGludG8KCSAgdGhhdCBvdGhlcndpc2UgaXQgd2lsbCB0cnkgdG8gZmluZCB0aGUgY29uc3RhbnRzIGl0IHVzZXMgZnJvbSBnc3RpbmZvIHZpYSBETEwKCSAgaW1wb3J0aW5nIChfX2RlY2xzcGVjKGRsbGltcG9ydCkpLgoJICBGaXhlcyBodHRwczovL2NpLmdzdHJlYW1lci5uZXQvam9iL2NlcmJlcm8tY3Jvc3MtbWluZ3czMi80MzkzLwoKMjAxNi0wNS0yMCAwMDoyNDo1NCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogQWx3YXlzIHVzZSBkbGxleHBvcnQvaW1wb3J0IG9uIFdpbmRvd3MKCSAgX19kZWNsc3BlYyhkbGxleHBvcnQvaW1wb3J0KSBhcmUgc3VwcG9ydGVkIGJ5IEdDQyBhbmQgYXJlIG5lZWRlZCBmb3IKCSAgcHJvcGVybHkgZ2VuZXJhdGluZyBjb2RlIHRoYXQgZmV0Y2hlcyB0aGUgdmFsdWVzIG9mIGNvbnN0YW50cyBmcm9tIERMTHMKCSAgYnVpbHQgd2l0aCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkgd2hpY2ggaGFwcGVucyB3aGVuIGFueXRoaW5nIHVzaW5nCgkgIEdTVF9FWFBPUlQgaXMgYnVpbHQgd2l0aCBNU1ZDLgoJICBTZWU6IGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvNjE5dzE0ZHMuYXNweAoJICBFc3NlbnRpYWxseSwgaWYgeW91IGJ1aWx0IGdzdHJlYW1lciB3aXRoIE1TVkMgYW5kIHRoZW4gdHJpZWQgdG8gdXNlCgkgIGNvbnN0YW50cyBmcm9tIGl0IChzdWNoIGFzIEdTVF9UWVBFX0NBUFMpIGluIGEgcGx1Z2luLCBHQ0Mgd291bGQKCSAgcmV0cmlldmUgdGhlIGFkZHJlc3Mgb2YgdGhlIHZhbHVlIGluc3RlYWQgb2YgdGhlIHZhbHVlIGl0c2VsZi4KCjIwMTYtMDUtMTkgMTE6Mjc6MzYgLTAzMDAgIERhbmlsbyBDZXNhciBMZW1lcyBkZSBQYXVsYSA8ZGFuaWxvLmNlc2FyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogbWFrZSBnaXQtdXBkYXRlLnNoIGJ1aWxkIHdpdGggYWxsIGNvcmVzIGF2YWlsYWJsZQoJICBUaGUgZ2l0LXVwZGF0ZS5zaCBub3cgYnVpbGRzIHdpdGggYWxsIGNvcmVzIGF2YWlsYWJsZS4gSW4gY2FzZSBvZgoJICBmYWlsdXJlIGl0IGRlZmF1bHRzIHRvIDEKCSAgVGhlIGRldmVsb3BlciBjYW4gc3RpbGwgb3ZlcnJpZGUgdGhpcyBieSBzZXR0aW5nIC1qIHRvIHNvbWV0aGluZyBlbHNlCgkgIGluIE1BS0VGTEFHUywgYXMgc3RhdGVkIGJ5IDI5OTYwNWRmZTJmOTdmY2EzMzAxNjFmZjAxYTM5MmUxYTg1ZmU0MjIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NjYKCjIwMTYtMDUtMDQgMTM6NTM6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICAobWluaSlvYmplY3Q6IGFkZCBNQVlfQkVfTEVBS0VEIGZsYWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjAwOAoKMjAxNi0wNS0xNSAxNDoxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGVtaXQgZGVlcC1lbGVtZW50LXthZGRlZCxyZW1vdmVkfSBmb3IgY2hpbGRyZW4gb2YgbmV3bHktYWRkZWQvcmVtb3ZlZCBiaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3ODkzMwoKMjAxNi0wNS0xNCAxMDo1NTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogYWRkICJkZWVwLWVsZW1lbnQtYWRkZWQiIGFuZCAiZGVlcC1lbGVtZW50LXJlbW92ZWQiIHNpZ25hbHMKCSAgVGhpcyBtZWFucyBhcHBsaWNhdGlvbnMgYW5kIGJpbiBzdWItY2xhc3NlcyBjYW4gZWFzaWx5IHRyYWNrIHdoZW4KCSAgYSBuZXcgY2hpbGQgZWxlbWVudCBpcyBhZGRlZCB0byB0aGUgcGlwZWxpbmUgc3ViLWhpZXJhcmNoeSBvcgoJICByZW1vdmVkLgoJICBDdXJyZW50bHkgZG9lc24ndCBzaWduYWwgZGVlcCBhZGRlZC9yZW1vdmVkIGZvciBlbGVtZW50cyBpbnNpZGUKCSAgYSBiaW4gaWYgYSBiaW4gaXMgYWRkZWQvcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3ODkzMwoKMjAxNi0wNS0xNSAxNTowMjo0OSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBJbXByb3ZlIElETEUgcHJvYmUgZG9jcwoJICBNYWtlIGl0IGV4cGxpY2l0IHRoYXQgdGhlIHBhZCBpcyBvbmx5IGJsb2NrZWQgd2hpbGUgdGhlIGNhbGxiYWNrIGlzIHJ1bm5pbmcsCgkgIGFuZCB0aGUgcGFkIHdpbGwgYmUgdW5ibG9ja2VkIGFnYWluIG9uY2UgdGhlIGNhbGxiYWNrIHJldHVybmVkLgoJICBJZiBCTE9DSyBhbmQgSURMRSBiZWhhdmlvdXIgaXMgbmVlZGVkLCBib3RoIG5lZWQgdG8gYmUgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjAwMgoKMjAxNi0wNS0xNSAxMzoyOTo1NSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBVcGRhdGUgZm9yIGdpdCBtYXN0ZXIKCjIwMTYtMDMtMTEgMTY6MDQ6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiBPbmx5IHVuYmxvY2sgdXBzdHJlYW0gd2FpdGluZyBmb3IgdGhlIHF1ZXJ5IG9uY2UgZG93bnN0cmVhbSBpcyBmaW5pc2hlZAoJICAuLi4gd2hlbiBmbHVzaGluZyBhbmQgZGVhY3RpdmF0aW5nIHBhZHMuIE90aGVyd2lzZSBkb3duc3RyZWFtIG1pZ2h0IGhhdmUgYQoJICBxdWVyeSB0aGF0IHdhcyBhbHJlYWR5IHVucmVmZmVkIGJ5IHVwc3RyZWFtLCBjYXVzaW5nIGNyYXNoZXMgb3Igb3RoZXIKCSAgaW50ZXJlc3RpbmcgZWZmZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5NgoKMjAxNi0wNS0xNCAxNzozMTo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzaW5rL3NyYzogUG9zdCBhbiBlcnJvciBtZXNzYWdlIGlmIDo6c3RhcnQoKSBmYWlscwoJICBUaGUgc3ViY2xhc3Mgc2hvdWxkIGRvIHRoYXQgYWxyZWFkeSwgYnV0IGp1c3QgaW4gY2FzZSBkbyBpdCBvdXJzZWx2ZXMgdG9vIGFzIGEKCSAgZmFsbGJhY2suIFdpdGhvdXQgdGhpcywgZS5nLiBwbGF5YmluIHdpbGwganVzdCB3YWl0IGZvcmV2ZXIgaWYgdGhpcyBmYWlscwoJICBiZWNhdXNlIGl0IGlzIHRyaWdnZXJlZCBhcyBwYXJ0IG9mIGFuIEFTWU5DIHN0YXRlIGNoYW5nZS4KCjIwMTYtMDUtMTQgMjM6MzY6NDMgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEZpeCBFT1MgZm9yd2FyZGluZyBvbiBQTEFZSU5HLT5QTEFZSU5HCgkgIFdoZW4gZG9pbmcgYSB0cmFuc2l0aW9uIGZyb20gUExBWUlORyB0byBQTEFZSU5HLCB3ZSB3aWxsIGZhaWwKCSAgdG8gZm9yd2FyZCBhbiBFT1MgbWVzc2FnZSBvbiB0aGUgYnVzLCBhbmQgbm9vbmUgZWxzZSB3aWxsIGV2ZXIKCSAgc2VuZCBpdCBiZWNhdXNlIHRoZXJlJ2xsIGJlIG5vIGFjdHVhbCBzdGF0ZSBjaGFuZ2VkIG1lc3NhZ2UuCgkgIEFsbG93IEVPUyB0aHJvdWdoIGRpcmVjdGx5IGluIHRoYXQgY2FzZS4KCjIwMTYtMDUtMTMgMDk6NDM6MTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZHJvcCBMQVRFTkNZIHF1ZXJpZXMgd2l0aCBkZWZhdWx0IGltcGxlbWVudGF0aW9uCgkgIElmIHRoZXJlIGlzIG9ubHkgb25lIHBhZCBpbiB0aGUgaW50ZXJuYWwgcGFkcywgd2hlbiBmb2xkaW5nIGZvcgoJICBMQVRFTkNZIHF1ZXJpZXMgaXQgd2lsbCBqdXN0IGRyb3AgdGhlIHJlc3BvbnNlIGlmIGl0J3Mgbm90IGxpdmUuCgkgIFRoaXMgaXMgbWF5YmUgbm90IHRoZSBwcm9wZXIgZml4LCBidXQgaXQgd2lsbCBqdXN0IGFjY2VwdCB0aGUgZmlyc3QKCSAgcGVlciByZXNwb25zZXMsIGFuZCBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHBhZHMsIGl0IHdpbGwgb25seSB0YWtlCgkgIHRoZW0gaW50byBhY2NvdW50IGlmIHRoZSByZXNwb25zZSBpcyBsaXZlLgoJICBUaGlzICpzaG91bGQqIHByb3Blcmx5IGhhbmRsZSB0aGUgYWdncmVnYXRpb24vZm9sZGluZyBiZWhhdmlvdXIgb2YKCSAgbXVsdGlwbGUgbGl2ZSBwZWVyIHJlc3BvbnNlcywgd2hpbGUgYXQgdGhlIHNhbWUgdGltZSBoYW5kbGluZyB0aGUKCSAgc2ltcGxlIG9uZS1wYWQtb25seS1hbmQtZm9yd2FyZCB1c2UtY2FzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MzYwCgoyMDE2LTA0LTA3IDAwOjQ2OjIwICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgVXBkYXRlIHRoZSBleGFtcGxlcyBpbiB0aGUgZ3N0LWxhdW5jaC0xLjAgbWFucGFnZQoJICBSZXBsYWNlIGVsZW1lbnRzIHRoYXQgZG9uJ3QgZXhpc3QgYW55IG1vcmUgd2l0aCBvbmVzCgkgIHRoYXQgZG8sIGFuZCBpbnNlcnQgZWxlbWVudHMgbGlrZSBtcGVnYXVkaW9wYXJzZSB3aGVyZQoJICB0aGV5IGFyZSBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcxMDUKCjIwMTYtMDQtMDIgMDE6MDU6MzkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBkZWJ1ZzogSW5zdGFudGlhdGUgR1R5cGUgd2hlbiBkdW1waW5nIGRlYnVnIGNhdGVnb3JpZXMuCgkgIEEgbG90IG9mIGRlYnVnIGNhdGVnb3JpZXMgYXJlIGRlY2xhcmVkIGluIGVsZW1lbnQgY2xhc3NfaW5pdAoJICBmdW5jdGlvbnMsIHdoaWNoIGRvbid0IGdldCBydW4gdW50aWwgdGhlIGVsZW1lbnQgaXMgZmlyc3QgY3JlYXRlZAoJICAobm90IGp1c3QgcmVnaXN0ZXJlZCBpbiB0aGUgcGx1Z2luIGxvYWQgZnVuY3Rpb24pLiBUaGlzIG1lYW5zCgkgIHRoYXQgLS1nc3QtZGVidWctaGVscCBkb2Vzbid0IHByaW50IG91dCBhIGxvdCBvZiBjYXRlZ29yaWVzLgoJICBDcmVhdGluZyBhbiBpbnN0YW5jZSBvZiBlYWNoIGVsZW1lbnQgZnJvbSB0aGUgZWxlbWVudCBmYWN0b3J5CgkgIG1ha2VzIHRoZW0gdmlzaWJsZSwgYXQgc29tZSBleHRyYSBjb3N0IC0gMi0zIHRpbWVzIGxvbmdlciwgd2hpY2ggY2FuCgkgIGJlIGEgZnVsbCBzZWNvbmQgb3IgdHdvIG9mIGV4dHJhIHdhaXRpbmcuIFlpa2VzIQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMDAxCgoyMDE2LTA1LTExIDE1OjA2OjM5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBhIENBUFMgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgc2lua3BhZCBpcyBub3QgaW4gUFVMTCBtb2RlCgkgIFRoZSBvdGhlciBzaWduYWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0ZWQKCSAgdHlwZWZpbmQgaW4gUFVMTCBtb2RlIGFscmVhZHksIHB1c2hpbmcgYSBDQVBTIGV2ZW50IGF0IHRoYXQgcG9pbnQgd291bGQgY2F1c2UKCSAgZGVhZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQgYnkgZWxlbWVudHMgdGhhdCBhcmUgaW4gUFVMTCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTA2CgoyMDE2LTA1LTExIDEyOjE2OjA5ICswOTAwICBXb25jaHVsIExlZSA8d29uY2h1bC5sZWVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCB3YXJuaW5nIG9uIGVudW0gcHJvcGVydGllcyBwcmludGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MjUxCgoyMDE2LTA1LTEwIDE1OjAxOjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwYWQgc3RhdGUgd2hlbiBkZWFjdGl2YXRpbmcgZnJvbSBvbmUgbW9kZSBhbmQgdGhlbiB0cnlpbmcgdG8gYWN0aXZhdGUgYW5vdGhlciBhbmQgZmFpbGluZwoJICBXaGVuIGFjdGl2YXRpbmcgYSBwYWQgaW4gUFVMTCBtb2RlLCBpdCBtaWdodCBhbHJlYWR5IGJlIGluIFBVU0ggbW9kZS4gV2Ugbm93CgkgIGZpcnN0IHRyeSB0byBkZWFjdGl2YXRlIGl0IGZyb20gUFVTSCBtb2RlIGFuZCB0aGVuIHRyeSB0byBhY3RpdmF0ZSBpdCBpbiBQVUxMCgkgIG1vZGUuIElmIHRoZSBhY3RpdmF0aW9uIGZhaWxzLCB3ZSB3b3VsZCBzZXQgdGhlIHBhZCB0byBmbHVzaGluZyBhbmQgc2V0IGl0CgkgIGJhY2sgdG8gaXRzIG9sZCBtb2RlLiBIb3dldmVyIHRoZSBvbGQgbW9kZSBpcyB3cm9uZywgdGhlIHBhZCBpcyBub3QgaW4gUFVTSAoJICBtb2RlIGFueW1vcmUgYnV0IGluIE5PTkUgbW9kZS4KCSAgVGhpcyBmaXhlcyBlLmcuIHR5cGVmaW5kIGluIGRlY29kZWJpbiByZWFjdGl2YXRpbmcgUFVTSC9QVUxMIG1vZGUgaWYgdXBzdHJlYW0KCSAgYWN0dWFsbHkgZmFpbHMgdG8gZ28gaW50byBQVUxMIG1vZGUgYWZ0ZXIgZmlyc3QgUFVTSElORyBkYXRhIHRvIHR5cGVmaW5kLgoKMjAxNi0wMy0xMyAxMTowNToyOSAtMDQwMCAgQW50aG9ueSBHLiBCYXNpbGUgPGJsdWVuZXNzQGdlbnRvby5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9zdHJzaWduYWwuYzoKCSAgbGliY29tcGF0Lmg6IHN0cnNpZ25hbCgpIHNob3VsZCBiZSBub3QgYmUgZGVjbGVhcmVkIGNvbnN0CgkgIFBPU0lYIHN0YW5kYXJkcyByZXF1aXJlcyBzdHJzaWduYWwoKSB0byByZXR1cm4gYSBwb2ludGVyIHRvIGEgY2hhciwKCSAgbm90IGEgY29uc3QgcG9pbnRlciB0byBhIGNoYXIuIFsxXSAgT24gdUNsaWJjLCBhbmQgcG9zc2libHkgb3RoZXIKCSAgbGliYydzLCB0aGF0IGRvIG5vdCBIQVZFX0RFQ0xfU1RSU0lHTkFMLCBsaWJjb21wYXQuaCBkZWNsYXJlcwoJICBjb25zdCBjaGFyICpzdHJzaWduYWwgKGludCBzaWcpIHdoaWNoIGNhdXNlcyBhIHR5cGUgZXJyb3IuCgkgIFsxXSBtYW4gMyBzdHJzaWduYWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzU2NwoKMjAxNi0wNS0wNSAxODo1MDowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogYWRkIGRlYnVnIGNhdGVnb3J5CgkgIE5vdCB0aGF0IGl0IGxvZ3MgbXVjaC4KCjIwMTYtMDUtMDUgMTg6MDI6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGZpeCBkb2NzIGZvciBnc3RfZmxvd19jb21iaW5lcl9yZXNldCgpCgoyMDE2LTA1LTA0IDEwOjA0OjMwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2UtbGF1bmNoOiBmaXggZmFjdG9yeSBsZWFrIGluIHRlc3QKCSAgV2UgZ2V0IDIgcmVmZXJlbmNlcyBvbmUgZnJvbSBnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoKSBhbmQgdGhlIG90aGVyCgkgIGZyb20gZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTk3NgoKMjAxNi0wNS0wNCAxMzo0Njo0NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggcmVmIGNvdW50IGxlYWtzIGluIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NzgKCjIwMTYtMDUtMDQgMDk6NTM6MzIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdXRpbHM6IGZpeCBlbGVtZW50IGxlYWsgaW4gZmluZF9jb21tb25fcm9vdCgpCgkgIFRoZSByb290IGVsZW1lbnQgd2FzIG5vdCB1bnJlZmZlZCB3aGVuIGl0ZXJhdGluZyBvdmVyIGFuY2VzdG9ycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTk2MQoKMjAxNi0wNS0wMiAxNzozNToyOSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBmaXggZmVhdHVyZSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NTcKCjIwMTYtMDUtMDMgMTE6NDk6MDMgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHVucmVmIGluc3RlYWQgb2YgdXNpbmcgX2dzdF91cmlfZnJlZSgpIGRpcmVjdGx5CgkgIFRoaXMgY29uZnVzZXMgZ3N0X3RyYWNpbmcgYXMgd2Ugc2hvcnRjdXQgdGhlIG1pbmkgb2JqZWN0IHJlZmVyZW5jZQoJICBzeXN0ZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NTgKCjIwMTYtMDUtMDIgMDk6MzI6NDcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgcGlwZWxpbmU6IGZpeCBidXMgbGVhayBpbiBzZWVrIHRlc3QKCSAgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwoKSBrZWVwcyBhIHJlZiBvbiB0aGUgYnVzIHdoaWNoIHNob3VsZAoJICBiZSByZWxlYXNlZCB1c2luZyBnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2goKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwOToyOTozMSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zdHJlYW1pZGRlbXV4LmM6CgkgIHN0cmVhbWlkZGVtdXg6IGZpeCBsaXN0IGFuZCBldmVudCBsZWFrcyBpbiB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDg6NDM6MDQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IGZpeCBwYWQgbGVha3MgaW4gdGVzdHMKCSAgc2V0dXBfaW5wdXRfcGFkKCkgY3JlYXRlcyBhIG5ldyBwYWQgc28gd2Ugc2hvdWxkIHVucmVmIGl0IG9uY2Ugd2UncmUKCSAgZG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwODozMzo0MiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGVzcmM6IGZpeCBidWZmZXIgbGVha3MgaW4gdGVzdHMKCSAgZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKCkgaW50ZXJuYWxseSB1c2VzIGdzdF9jaGVja19jaGFpbl9mdW5jKCkgc28gd2UKCSAgc2hvdWxkIGNhbGwgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycygpIHdoZW4gdGVhcmluZyBkb3duIHRlc3RzIHRvIGZyZWUgdGhlCgkgIGJ1ZmZlcnMgd2hpY2ggaGF2ZSBiZWVuIGV4Y2hhbmdlZCB0aHJvdWdoIHRoZSBwaXBlbGluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwODoyOTowMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogZml4IHBpcGVsaW5lIGxlYWsgaW4gdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA3OjM1OjQ1ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGZhY3RvcnkgbGVhayBpbiB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMTY6MDA6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJICBkZXZpY2Vwcm92aWRlcmZhY3Rvcnk6IGZpeCBmYWN0b3J5IGxlYWsKCSAgVGhlIGNvZGUgcGF0aCB3aGVuIGVhcmx5IHJldHVybmluZyB3YXMgbGVha2luZyB0aGUgZXh0cmEgcmVmZXJlbmNlIG9uCgkgIHRoZSBmYWN0b3J5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTA0CgoyMDE2LTA0LTEwIDExOjQyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggY29tcGlsZXIgd2FybmluZwoJICBDNDE0NjogdW5hcnkgbWludXMgb3BlcmF0b3IgYXBwbGllZCB0byB1bnNpZ25lZCB0eXBlLCByZXN1bHQgc3RpbGwgdW5zaWduZWQKCjIwMTYtMDQtMjggMTQ6NTk6NTEgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBsZWFrcyBpbiB1bml0IHRlc3RzCgkgIFRoZSB0ZXN0IHJlbHkgb24gYnVzIGJlaW5nIGZsdXNoZWQgd2hlbiBzZXR0aW5nIHRoZSBiaW4gdG8gdGhlIE5VTEwgc3RhdGUgd2hpY2gKCSAgaXMgbm90IHRoZSBjYXNlLiBUaGlzIGFwcGx5IG9ubHkgd2hlbiBzZXR0aW5nIHRoZSBwaXBlbGluZSBzdGF0ZSB0bwoJICBOVUxMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NzIwCgoyMDE2LTA0LTI4IDE0OjU2OjE4ICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggYnVmZmVyIGxlYWtzIGluIHRlc3RzCgkgIFRoZSBidWZmZXIgcmVjZWl2ZWQgdGhyb3VnaCB0aGUgcGFkIGhhdmUgdG8gYmUgdW5yZWZmZWQgdXNpbmcKCSAgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NzE5CgoyMDE2LTA0LTMwIDE0OjE1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBGaXggc29tZSBub25zZW5zaWNhbCBnLWkgYW5ub3RhdGlvbnMKCjIwMTYtMDQtMjkgMTQ6NTU6MDIgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSWdub3JlIHRpbWUgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHNwYXJzZSBzdHJlYW0gbGltaXRzIGhhdmUgYmVlbiByZWFjaGVkCgkgIEJhc2ljYWxseSwgc3EtPm1heF9zaXplLnZpc2libGUgaXMgbmV2ZXIgaW5jcmVhc2VkIGZvciBzcGFyc2Ugc3RyZWFtcyBpbgoJICBvdmVycnVuY2Igd2hlbiBlbXB0eSBxdWV1ZSBoYXMgYmVlbiBmb3VuZDsKCSAgSWYgdGhlIHF1ZXVlIGlzIHNwYXJzZSBpdCBqdXN0IHNraXAgdGhlIGVudGlyZSBsb2dpYyBkZXRlcm1pbmluZyB3aGV0aGVyCgkgIG1heF9zaXplLnZpc2libGUgc2hvdWxkIGJlIGluY3JlYXNlZCwgZGVhZGxvY2tpbmcgdGhlIGRlbXV4ZXIuCgkgIFdoYXQgc2hvdWxkIGJlIGRvbmUgaW5zdGVhZCBpcyB0aGF0IHdoZW4gZGV0ZXJtaW5pbmcgaWYgbGltaXRzIGhhdmUgYmVlbgoJICByZWFjaGVkLCB0byBpZ25vcmUgdGltZSBmb3Igc3BhcnNlIHN0cmVhbXMsIGFzIHRoZSBidWZmZXIgbWF5IGJlIGZhciBpbiB0aGUKCSAgZnV0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NzM2CgoyMDE2LTAyLTI4IDEyOjA2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBBZGQgZ3N0X2VsZW1lbnRfY2FsbF9hc3luYygpCgkgIFRoaXMgY2FsbHMgYSBmdW5jdGlvbiBmcm9tIGFub3RoZXIgdGhyZWFkLCBhc3luY2hyb25vdXNseS4gVGhpcyBpcyB0byBiZQoJICB1c2VkIGZvciBjYXNlcyB3aGVuIGEgc3RhdGUgY2hhbmdlIGhhcyB0byBiZSBwZXJmb3JtZWQgZnJvbSBhIHN0cmVhbWluZwoJICB0aHJlYWQsIGRpcmVjdGx5IHZpYSBnc3RfZWxlbWVudF9zZXRfc3RhdGUoKSBvciBpbmRpcmVjdGx5IGUuZy4gdmlhIFNFRUsKCSAgZXZlbnRzLgoJICBDYWxsaW5nIHRob3NlIGZ1bmN0aW9ucyBkaXJlY3RseSBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdpbGwgY2F1c2UKCSAgZGVhZGxvY2tzIGluIG1hbnkgc2l0dWF0aW9ucywgYXMgdGhleSBtaWdodCBpbnZvbHZlIHdhaXRpbmcgZm9yIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkIHRvIHNodXQgZG93biBmcm9tIHRoaXMgdmVyeSBzdHJlYW1pbmcgdGhyZWFkLgoJICBUaGlzIGlzIG1vc3RseSBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGFyb3VuZCBhIEdUaHJlYWRQb29sIGFuZCBpcyBmb3IgZXhhbXBsZQoJICB1c2VkIGJ5IEdzdEJpbiB0byBjb250aW51ZSBhc3luY2hyb25vdXMgc3RhdGUgY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDUzMgoKMjAxNi0wNC0yNyAwOToyMTozMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBidWZmZXIgbWVtb3J5IGxlYWsgaW4gYXBwc3JjIGV4YW1wbGUKCSAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKCkgaXMgbm90IGxpa2UgZ3N0X2FwcF9zcmNfcHVzaF9idWZmZXIoKSBkdWUgdG8gcmVmZXJlbmNlCgkgIGNvdW50aW5nIGxpbWl0YXRpb25zIG9mIHNpZ25hbHMsIGl0IGRvZXMgKm5vdCogdGFrZSBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlci4KCjIwMTYtMDQtMjYgMTY6MDI6MTQgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGNsZWFudXAgcHJpdiBmdW5jdGlvbgoJICBUaG9zZSBhcmUgYWxsb2NhdGVkIGluIF9wcml2X2dzdF9jYXBzX2luaXRpYWxpemUoKSBzbyBpdCBtYWtlcwoJICBzZW5zZSB0byBoYXZlIGEgc3ltZXRyaWMgY2xlYW51cCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGdzdF9kZWluaXQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTYwNgoKMjAxNi0wNC0yNiAxNjowMjoxNCArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlOiBhZGQgY2xlYW51cCBwcml2IGZ1bmN0aW9uCgkgIFRob3NlIGFyZSBhbGxvY2F0ZWQgaW4gX3ByaXZfZ3N0X2NhcHNfZmVhdHVyZXNfaW5pdGlhbGl6ZSgpIHNvIGl0IG1ha2VzCgkgIHNlbnNlIHRvIGhhdmUgYSBzeW1ldHJpYyBjbGVhbnVwIGZ1bmN0aW9ucyBjYWxsZWQgYnkgZ3N0X2RlaW5pdCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjA2CgoyMDE2LTA0LTIxIDE0OjQ1OjM5ICswMTAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgY2xvY2stdHlwZSBwcm9wZXJ0eQoJICBUbyBhbGxvdyB0aGUgR3N0VGVzdENsb2NrIHRvIGJlIHVzZWQgYXMgYSBHc3RTeXN0ZW1DbG9jaywgaXQgaXMKCSAgdXNlZnVsIHRvIGltcGxlbWVudCB0aGUgY2xvY2stdHlwZSBwcm9wZXJ0eSB0aGF0IEdzdFN5c3RlbUNsb2NrCgkgIHByb3ZpZGVzLiBUaGlzIGFsbG93cyBHc3RUZXN0Q2xvY2sgdG8gYmUgdXNlZCBhcyB0aGUgc3lzdGVtIGNsb2NrCgkgIHdpdGggY29kZSB0aGF0IGV4cGVjdHMgYSBHc3RTeXN0ZW1DbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjE0NwoKMjAxNi0wNC0yMSAxMzo0OTozMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogU2FuaXR5IGNoZWNrIHllYXIsIG1vbnRoIGFuZCBkYXkgd2hlbiBwYXJzaW5nIElTTy04NjAxIHN0cmluZ3MKCSAgUGFzc2luZyB5ZWFycyA+IDk5OTksIG1vbnRocyA+IDEyIG9yIGRheXMgPiAzMSB0byBnc3RfZGF0ZV90aW1lX25ldygpIHdpbGwKCSAgY2F1c2UgYW4gYXNzZXJ0aW9uIGFuZCBnZW5lcmFsbHkgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlLiBJbnN0ZWFkIGNvbnNpZGVyIGl0CgkgIGFzIGEgcGFyc2luZyBlcnJvciBsaWtlIGhvdXJzID4gMjQgYW5kIHJldHVybiBOVUxMLgoKMjAxNi0wNC0yMCAxMTo0NjoxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtZW1iZXIgaWYgd2UgaW50ZXJwb2xhdGVkIERUUyBmcm9tIFBUUyBhbmQgcmVmcmVzaCBpdCB3aGVuZXZlciB3ZSB1cGRhdGUgdGhlIFBUUwoJICBPdGhlcndpc2UgUFRTIGFuZCBEVFMgd2lsbCBjb21lIG91dCBvZiBzeW5jIGlmIHVwc3RyZWFtIGNvbnRpbnVlcyB0byBwcm92aWRlCgkgIFBUUyBhbmQgbm90IERUUywgYW5kIHdlIGhhdmUgdG8gc2tpcCBzb21lIGRhdGEgZnJvbSB0aGUgc3RyZWFtIG9yIFBUUyBhcmUgbm90CgkgIGV4YWN0bHkgaW5jcmVhc2luZyB3aXRoIHRoZSBkdXJhdGlvbiBvZiBlYWNoIHBhY2tldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTI2MAoKMjAxNi0wNC0yMCAxMTo0NToyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IEZpeCBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZyBhYm91dCBpbnZhbGlkIHRyYW5zZmVyIGFubm90YXRpb24KCSAgZ3N0dHlwZWZpbmRoZWxwZXIuYzo0ODU6IFdhcm5pbmc6IEdzdEJhc2U6IGludmFsaWQgInRyYW5zZmVyIiBhbm5vdGF0aW9uIGZvciBnc2l6ZTogb25seSB2YWxpZCBmb3IgYXJyYXksIHN0cnVjdCwgdW5pb24sIGJveGVkLCBvYmplY3QgYW5kIGludGVyZmFjZSB0eXBlcwoKMjAxNi0wNC0xOCAxMzowNTo0MCArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogYWRkIGNsZWFudXAgbWV0aG9kCgkgIE1ha2UgdHJhY2tpbmcgbWVtb3J5IGxlYWtzIGVhc2llci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTIxMgoKMjAxNi0wMy0yNSAxNTo1NToxOCArMDEwMCAgRnJhbmNpc2NvIFZlbGF6cXVleiA8ZnJhbmNpc3ZAaWZpLnVpby5ubz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IHBsdWdpbjogaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQxOTkKCjIwMTYtMDQtMTQgMTE6NTQ6MzIgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlY2hlY2sgYnVmZmVyaW5nIHN0YXR1cyBhZnRlciBjaGFuZ2luZyBsb3cgdGhyZXNob2xkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NTcKCjIwMTYtMDQtMTQgMDA6MDk6NDQgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlY2FsY3VsYXRlIGZpbGwgbGV2ZWwgYWZ0ZXIgY2hhbmdpbmcgaGlnaC10aHJlc2hvbGQKCSAgVGhpcyBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgc3BlY2lhbCBjYXNlIGlzIGhhbmRsZWQgcHJvcGVybHk6CgkgIDEuIFF1ZXVlIGlzIGVtcHR5CgkgIDIuIERhdGEgaXMgcHVzaGVkLCBmaWxsIGxldmVsIGlzIGJlbG93IHRoZSBjdXJyZW50IGhpZ2gtdGhyZXNob2xkCgkgIDMuIGhpZ2gtdGhyZXNob2xkIGlzIHNldCB0byBhIGxldmVsIHRoYXQgaXMgYmVsb3cgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbAoJICBTaW5jZSBtcS0+cGVyY2VudCB3YXNuJ3QgYmVpbmcgcmVjYWxjdWxhdGVkIGluIHN0ZXAgIzMgcHJvcGVybHksIHRoaXMKCSAgY2F1c2VkIHRoZSBtdWx0aXF1ZXVlIHRvIHN3aXRjaCBvZmYgaXRzIGJ1ZmZlcmluZyBzdGF0ZSB3aGVuIG5ldyBkYXRhIGlzCgkgIHB1c2hlZCBpbiwgYW5kIG5ldmVyIHBvc3QgYSAxMDAlIGJ1ZmZlcmluZyBtZXNzYWdlLiBUaGUgYXBwbGljYXRpb24gd2lsbAoJICBoYXZlIHJlY2VpdmVkIGEgPDEwMCUgYnVmZmVyaW5nIG1lc3NhZ2UgZnJvbSBzdGVwICMyLCBidXQgd2lsbCBuZXZlciBzZWUKCSAgMTAwJS4KCSAgRml4IHRoaXMgYnkgcmVjYWxjdWxhdGluZyB0aGUgY3VycmVudCBmaWxsIGxldmVsIHBlcmNlbnRhZ2UgZHVyaW5nCgkgIGhpZ2gtdGhyZXNob2xkIHByb3BlcnR5IGNoYW5nZXMgaW4gdGhlIHNhbWUgbWFubmVyIGFzIGl0IGlzIGRvbmUgd2hlbgoJICB1c2UtYnVmZmVyaW5nIGlzIG1vZGlmaWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzU3CgoyMDE2LTA0LTE1IDEzOjUwOjMwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBXaGVuIGluaXRpYWxpemluZyBEVFMgZnJvbSBQVFMsIHJlbWVtYmVyIHRoYXQgd2UgZGlkIHNvCgkgIElmIHdlIGRvbid0IHN0b3JlIHRoZSB2YWx1ZSBpbiBwcmV2X2R0cywgd2Ugd291bGQgb3ZlciBhbmQgb3ZlciBhZ2FpbgoJICBpbml0aWFsaXplIHRoZSBEVFMgZnJvbSB0aGUgbGFzdCBrbm93biB1cHN0cmVhbSBQVFMuIElmIHVwc3RyZWFtIG9ubHkgcHJvdmlkZXMKCSAgUFRTIGV2ZXJ5IG5vdyBhbmQgdGhlbiwgdGhlbiB0aGlzIGNhdXNlcyBEVFMgdG8gYmUgcmF0aGVyIHN0YXRpYy4KCSAgRm9yIGV4YW1wbGUgaW4gYWRhcHRpdmUgc3RyZWFtaW5nIHNjZW5hcmlvcyB0aGlzIG1lYW5zIHRoYXQgYWxsIGJ1ZmZlcnMgaW4gYQoJICBmcmFnbWVudCB3aWxsIGhhdmUgZXhhY3RseSB0aGUgc2FtZSBEVFMgd2hpbGUgdGhlIFBUUyBpcyBwcm9wZXJseSB1cGRhdGVkLiBBcwoJICBvdXIgcXVldWVzIGFyZSBub3cgcHJlZmVycmluZyB0byBkbyBidWZmZXIgZmlsbCBsZXZlbCBjYWxjdWxhdGlvbnMgb24gRFRTLAoJICB0aGlzIGlzIGNhdXNpbmcgaHVnZSBwcm9ibGVtcyB0aGVyZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEjYzI3IHdoZXJlIHRoaXMgcGFydCBvZgoJICB0aGUgY29kZSB3YXMgaW50cm9kdWNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA5NgoKMjAxNi0wNC0xNCAwOTo1ODowNCArMDEwMCAgSnVsaWVuIElzb3JjZSA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmYyZDIwOSB0byBhYzJmNjQ3CgoyMDE2LTA0LTEzIDE2OjA4OjMwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjYXRjaCBlcnJvcnMgYW5kIGZsdXNoaW5nIGNhc2UgYWZ0ZXIgbG9jawoJICBUaGlzIGVuc3VyZXMgd2UgY2FuIG5vdCBnZXQgaW50byBhbiBpbmRlZmluaXRlIHdhaXQgb24gdGhlCgkgIGZvbGxvd2luZyBjb25kIHZhciB3YWl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTk5CgoyMDE2LTA0LTEzIDE2OjQwOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZml4IHVwIGNhcHMgcHJpbnRpbmcgaW4gdmVyYm9zZSBtb2RlCgkgIEFkZCBtaXNzaW5nICdlbHNlJyBhbmQgcHJpbnQgY2FwcyBhbmQgdGFnbGlzdHMgd2l0aG91dCB0aGUKCSAgYW5ub3lpbmcgZHVwbGljYXRlIHN0cmluZyBlc2NhcGluZywgbWFraW5nIGJvdGggbmljZXIgdG8gcmVhZC4KCSAgRml4ZXMgc3RyaW5nIGxlYWsgYW5kIGNvdmVyaXR5IENJRCAxMzU4NDkyLgoKMjAxNi0wNC0xMyAxMjozODowNSArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHJ1c2FnZTogcHJvcGVybHkgZnJlZSB0aGUgcXVldWUgbWVtb3J5CgkgIFRoZSBxdWV1ZSBpcyBhbGxvY2F0ZWQgYXMgcGFydCBvZiB0aGUgdHJhY2VyIHN0cnVjdCBzbyB3ZSBzaG91bGQgbm90CgkgIHVzZSBnX3F1ZXVlX2ZyZWUoKSB0byBmcmVlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTg1CgoyMDE2LTA0LTEzIDEwOjIxOjE1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBXYXJuIGlmIGEgbWV0YSBpbXBsZW1lbnRhdGlvbiBpcyByZWdpc3RlcmVkIHdpdGhvdXQgaW5pdCBmdW5jdGlvbgoJICBUaGlzIHByZXZpb3VzbHkgY2F1c2VkIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVubGVzcyBzb21ldGhpbmcgZWxzZSB3YXMKCSAgaW5pdGlhbGl6aW5nIGFsbCB0aGUgZmllbGRzIGV4cGxpY2l0bHkgdG8gc29tZXRoaW5nLgoJICBUbyBiZSBvbiB0aGUgc2FmZSBzaWRlLCB3ZSBhbHNvIGFsbG9jYXRlIG1ldGFzIHdpdGhvdXQgaW5pdCBmdW5jdGlvbiB0byBhbGwKCSAgemVyb2VzIG5vdyBhcyBpdCB3YXMgcmVsYXRpdmVseSBjb21tb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ5MDIKCjIwMTYtMDQtMTIgMTU6MTc6MzYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFJldmVydCAiYmFzZXNpbms6IFRha2UgUFJFUk9MTF9MT0NLIGluIHdhaXRfZXZlbnQoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MjhhNDYyN2RiMGNiNmE2NzA2Yjk2ZDliZTk3ZTVlNWM3ZDIyMjE1LgoJICBUaGUgbG9jayB3YXMgYWxyZWFkeSB0YWtlbiBlbHNld2hlcmUsIGluIGdzdF9iYXNlX3NpbmtfZXZlbnQoKS4KCjIwMTYtMDQtMTIgMTU6MTE6MzAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBUYWtlIFBSRVJPTExfTE9DSyBpbiB3YWl0X2V2ZW50KCkKCSAgSXQgaXMgY2FsbGluZyBkb19zeW5jKCksIHdoaWNoIHJlcXVpcmVzIHRoZSBTVFJFQU1fTE9DSyBhbmQgUFJFUk9MTF9MT0NLIHRvIGJlCgkgIHRha2VuLiBUaGUgU1RSRUFNX0xPQ0sgaXMgYWxyZWFkeSB0YWtlbiBpbiBhbGwgY2FsbGVycywgdGhlIFBSRVJPTExfTE9DSyBub3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ5MzkKCjIwMTYtMDItMTEgMDk6MzM6MjggKzAxMDAgIEp1bGllbiBJc29yY2UgPGouaXNvcmNlQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBhZGQgUFRIUkVBRF9DRkxBR1MgZm9yIG1ha2UgY2hlY2sgdG8gcGFzcyBvbiBPUyBYCgkgIEN1cnJlbnRseSAibWFrZSBjaGVjayIgZmFpbHMgd2l0aDoKCSAgImVycm9yOiBhcmd1bWVudCB1bnVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uOiAnLXB0aHJlYWQnIgoJICBQVEhSRUFEX0NGTEFHUyBub3cgY29udGFpbnMgLVF1bnVzZWQtYXJndW1lbnRzIHRvIGZpeCB0aGF0LgoJICBFeHBsYW5hdGlvbiBoZXJlOiBodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9wYXRjaC8/ODE4NiNjb21tZW50MjEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzk1NAoKMjAxNi0wNC0xMSAxMDo0NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IG1ha2Ugd29yayB3aXRoIENLX0ZPUks9bm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzQ2OQoKMjAxNi0wNC0xMSAxMDoyNzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMi5jOgoJICB0ZXN0czogdHJhbnNmb3JtMTogbWFrZSB0ZXN0IHdvcmsgd2l0aCBDS19GT1JLPW5vCgkgIFdlIG5lZWQgdG8gY2xlYXIgc29tZSBnbG9iYWwgc3RhdGUgYW5kIHJlZ2lzdGVyIGEgbmV3IHRlc3QKCSAgYmFzZXRyYW5zZm9ybSBzdWJjbGFzcyBmb3IgZWFjaCB0ZXN0IGJlY2F1c2Ugd2UgZG8gdGhpbmdzCgkgIGluIGNsYXNzX2luaXQgYmFzZSBvbiBnbG9iYWwgc3RhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0NjkKCjIwMTYtMDQtMTAgMjA6NDU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogZml4IGZvciBDS19GT1JLPW5vCgkgIFJlc2V0IGdsb2JhbCBzdGF0ZSB3aGVuIGRvbmUsIGFuZCB1bnJlZiBzaW5rIHBhZHMgdG9vCgkgIGluIHRlYXJkb3duIGZ1bmN0aW9uIHRvIG1ha2UgaXQgdmFsZ3JpbmQgY2xlYW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0NjkKCjIwMTYtMDQtMTAgMjA6MjU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zdHJlYW1pZGRlbXV4LmM6CgkgIHRlc3RzOiBzdHJlYW1pZGRlbXV4OiBmaXggd2l0aCBDS19GT1JLPW5vCgkgIENsZWFyIGdsb2JhbCBzdGF0ZSB3aGVuIGRvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0NjkKCjIwMTYtMDQtMTAgMjA6MDQ6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICB0ZXN0czogYnVmZmVycG9vbDogZml4IHdyb25nIGFzc3VtcHRpb25zIGFib3V0IHBvaW50ZXJzIGFuZCBvYmplY3QgbGlmZWN5Y2xlcwoJICBUaGUgdGVzdCBhc3N1bWVkIHRoYXQgaWYgYSBidWZmZXIgaGFzIHRoZSBzYW1lIHBvaW50ZXIgYWRkcmVzcyBhcwoJICBiZWZvcmUgaXQgaXMgaW4gZmFjdCB0aGUgc2FtZSBtaW5pIG9iamVjdCBhbmQgaGFzIGJlZW4gcmUtdXNlZCBieQoJICB0aGUgcG9vbC4gVGhpcyBzZWVtcyB0byBiZSBtb3N0bHkgdHJ1ZSwgYnV0IG5vdCBhbHdheXMuIFRoZSBidWZmZXIKCSAgbWlnaHQgYmUgZGVzdHJveWVkIGFuZCB3aGVuIGEgbmV3IGJ1ZmZlciBpcyBjcmVhdGVkIHRoZSBhbGxvY2F0b3IKCSAgbWlnaHQgcmV0dXJuIHRoZSBzYW1lIG1lbW9yeSB0aGF0IHdlIGp1c3QgZnJlZWQuCgkgIEluc3RlYWQgYXR0YWNoIGEgcWRhdGEgd2l0aCBkZXN0cm95IG5vdGlmeSBmdW5jdGlvbiB0byBidWZmZXIKCSAgaW5zdGFuY2VzIHdlIHdhbnQgdG8gdHJhY2sgdG8gbWFrZSBzdXJlIHRoZSBidWZmZXIgYWN0dWFsbHkKCSAgZ2V0cyBmaW5hbGl6ZWQgcmF0aGVyIHRoYW4gcmVzdXJyZWN0ZWQgYW5kIHB1dCBiYWNrIGludG8gdGhlIHBvb2wuCgoyMDE2LTA0LTEwIDE4OjM3OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogcHdnOiByZW1vdmUgYnJva2VuIHJlZmVyZW5jZXMgdG8gZXhhbXBsZSBjb2RlCgkgIFdlIHBvaW50IHRvIGdzdC10ZW1wbGF0ZSBhdCB0aGUgYmVnaW5uaW5nIHRoYXQgc2hvdWwgYmUKCSAgZW5vdWdoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNTc1CgoyMDE2LTA0LTA4IDEzOjI2OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkb24ndCBydW4gdHJhY2VycmVjb3JkIGluIHZhbGdyaW5kIGZvciBub3cKCSAgQmVjYXVzZSBvZiB0aGUgd2F5IHdlIGltcGxlbWVudCBsb2dnaW5nIGFuZCBhZGRpbmcvcmVtb3ZpbmcKCSAgbG9nIGZ1bmN0aW9ucyBjdXJyZW50bHkgKHdlIGxlYWsgYSBHTGlzdCBvbiBwdXJwb3NlKSB0aGlzCgkgIHRlc3QgbGVha3MuCgoyMDE2LTAzLTA1IDE3OjUxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogdXNlIG5ldyBhc3luYyBwcm9wZXJ0eSBjaGFuZ2Ugbm90aWZpY2F0aW9uIEFQSQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMTQyCgoyMDE2LTAzLTA1IDE0OjEyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIEFQSSB0byBnZXQgcHJvcGVydHkgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdmlhIG1lc3NhZ2VzCgkgIEJlIG5vdGlmaWVkIGluIHRoZSBhcHBsaWNhdGlvbiB0aHJlYWQgdmlhIGJ1cyBtZXNzYWdlcyBhYm91dAoJICBub3RpZnk6OiogYW5kIGRlZXAtbm90aWZ5OjoqIHByb3BlcnR5IGNoYW5nZXMsIGluc3RlYWQgb2YKCSAgaGF2aW5nIHRvIGRlYWwgd2l0aCBpdCBpbiBhIG5vbi1hcHBsaWNhdGlvbiB0aHJlYWQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfYWRkX3Byb3BlcnR5X25vdGlmeV93YXRjaCgpCgkgIEFQSTogZ3N0X2VsZW1lbnRfYWRkX3Byb3BlcnR5X2RlZXBfbm90aWZ5X3dhdGNoKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9yZW1vdmVfcHJvcGVydHlfbm90aWZ5X3dhdGNoKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfcHJvcGVydHlfbm90aWZ5KCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9wcm9wZXJ0eV9ub3RpZnkoKQoJICBBUEk6IEdTVF9NRVNTQUdFX1BST1BFUlRZX05PVElGWQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMTQyCgoyMDE2LTA0LTA3IDIwOjI5OjEwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogQWRkIEMrKyB0ZXN0cyBmb3IgdGhlIG90aGVyIElOSVQgbWFjcm9zIHdlIGhhdmUKCjIwMTYtMDQtMDYgMTc6MTk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJICB0ZXN0czogZ3N0Y3BwOiBmbGVzaCBvdXQgQysrIHRlc3Qgc28gd2UgY2FuIGFkZCBtb3JlIGJpdHMKCSAgTGlrZSBhIGNoZWNrIGZvciBHU1RfTUFQX0lORk9fSU5JVC4KCjIwMTYtMDQtMDYgMTY6NDg6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIHRlc3RzOiB1c2UgY2F0Y2gtYWxsIGluY2x1ZGVzIGZvciBjKysgZ3N0IGxpYnMgaW5jbHVkZSB0ZXN0CgkgIFNvIHdlIGdldCBhbnkgbmV3IGhlYWRlciBmaWxlcyBhcyB3ZWxsIGFzIHRoZXkncmUgYWRkZWQuCgoyMDE2LTA0LTA2IDE3OjIzOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGZpeCBDKysgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBHU1RfTUFQX0lORk9fSU5JVAoKMjAxNi0wNC0wNCAxMDoyODoxOCArMDAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogY2hlY2sgdGhlIGNvcnJlY3QgZWxlbWVudCdzIHN0YXRlIG9uIGdob3N0aW5nIHBhZHMKCSAgQ2hlY2tpbmcgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHN0YXRlIHdoZW4gd2UncmUgYWRkaW5nIHBhZHMgdG8KCSAgdGhlIHBhcmVudCBlbGVtZW50IGlzIGNoZWNraW5nIHRoZSB3cm9uZyB0aGluZy4KCSAgU2lsZW5jZXMgYSAnYXR0ZW1wdGluZyB0byBhZGQgYW4gaW5hY3RpdmUgcGFkIHRvIGEgcnVubmluZyBlbGVtZW50JwoJICB3YXJuaW5nIHdoZW4gYWRkaW5nIGEgZ2hvc3QgcGFkIHRvIGEgcnVubmluZyBwYXJlbnQgYmluIG9mIHRoZSBwYXJlbnQKCSAgYmluIG9mIHRoZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MTc2CgoyMDE2LTAzLTI1IDAxOjI4OjE4ICswMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogZXhwb3NlIHBhZF9saW5rX21heWJlX2dob3N0aW5nCgkgIFRoaXMgaXMgYSB1c2VmdWwgZnVuY3Rpb24gdG8gYXV0b21hdGljYWxseSBhZGQgZ2hvc3QgcGFkcyB3aGVuIGxpbmtpbmcKCSAgdHdvIGVsZW1lbnRzIGFjcm9zcyBiaW4gYm91bmRhcmllcyB3aXRob3V0IGtub3cgdGhlaXIgZXhhY3QgcGFyZW50YWdlLgoJICBlLmcuIHdoZW4gdXNpbmcgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uICh3aXRoIG9yIHdpdGhvdXQgaXQgZ2hvc3RpbmcgcGFkcyksCgkgIG9uZSBjYW4gc2ltcGx5IHJldHJlaXZlIHRoZSBzcmMvc2luayBwYWRzIGZyb20gdGhlIGJpbiB0byBsaW5rIHRvIGFub3RoZXIgcGFkLgoJICBTaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaXMgcHJvdmlkZWQgYnkgZ3N0X2VsZW1lbnRfbGlua19wYWRze19mdWxsfSgpIGhvd2V2ZXIgb25seQoJICBieSBwYWQgbmFtZSByYXRoZXIgdGhhbiBieSBhY3R1YWwgcGFkcy4KCSAgQVBJOiBnc3RfcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmdfZnVsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MTc2CgoyMDE2LTA0LTAzIDIzOjM1OjQ2IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogc3BlbGxpbmcgZml4CgoyMDE1LTA1LTE1IDEzOjM2OjA0ICswMTAwICBNYXJrIENvbWJlbGxhY2sgPGdub21lLWJ1Z3ppbGxhQGNvbWJlbGxhY2submV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEdTVF9SRUZDT1VOVElORzogQWRkIGxvZ2dpbmcgb2YgcG9pbnRlciBhZGRyZXNzIGZvciBkaXNwb3NlLCBmaW5hbGl6ZSwgZXRjIG1lc3NhZ2VzCgkgIFVwZGF0ZWQgdGhlIEdTVF9SRUZDT1VOVElORyBsb2dnaW5nIHNvIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHBvaW50ZXIKCSAgYWRkcmVzcyBvZiB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgZGlzcG9zZWQgb3IgZmluYWxpemVkLgoJICBXaXRoIHRoaXMgY2hhbmdlIGlzIGlzIHRoZW4gcG9zc2libGUgdG8gbWF0Y2ggdXAgR1NUX1JFRkNPVU5USU5HIGxvZyBtZXNzYWdlcwoJICBmb3Igb2JqZWN0IGFsbG9jYXRpb24vZGlzcG9zYWwvZmluYWxpemF0aW9uLiBUaGlzIGNhbiBoZWxwIHdpdGggZGlhZ25vc2luZwoJICAibWVtb3J5IGxlYWtzIiBpbiBhcHBsaWNhdGlvbnMgdGhhdCBoYXZlIG5vdCBjb3JyZWN0bHkgZGlzcG9zZWQgb2YgYWxsIHRoZQoJICBHU3RyZWFtZXIgb2JqZWN0cyBpdCBjcmVhdGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NDI3CgoyMDE2LTAzLTMxIDExOjQ2OjAzICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogb25seSBvcGVuIGxvZyBmaWxlIHdoZW4gYWRkaW5nIGl0IHRvIHRoZSBsb2cgZnVuY3Rpb24KCSAgVGhpcyBhdm9pZHMgdGhlIGxlYWsgb2Ygb3BlbmluZyBpdCBhbmQgdGhlbiBub3QgcGFzc2luZyBpdCBvciBjbG9zaW5nIGl0CgkgIGJlZm9yZSBpdCBnb2VzIG91dCBvZiBzY29wZS4KCjIwMTYtMDQtMDEgMjI6NDE6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IFJldHVybiBGQUxTRSBpbiBhbGwgcGF0aHMgdGhhdCBkb24ndCBzZXQgb3V0IHBhcmFtZXRlcnMgaW4gZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbl91bmFwcGxpZWQoKQoJICBJdCByZXR1cm5lZCBUUlVFIHdoZW4gcmVncmVzc2lvbiBmYWlsZWQsIHdoaWxlIG5vdCBzZXR0aW5nIGFueSBvZiB0aGUgb3V0CgkgIHBhcmFtZXRlcnMuIFRoaXMgY2F1c2VkIHVuaW5pdGlhbGl6ZWQgZGF0YSBmcm9tIHRoZSBzdGFjayB0byBiZSB1c2VkIGZvcgoJICBzZXR0aW5nIHRoZSBjbG9jayBjYWxpYnJhdGlvbi4KCjIwMTYtMDMtMjQgMTc6MzQ6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXdvcmsgcHJvYmUncyBob29rX21hcnNoYWxsIGZ1bmN0aW9uCgkgIFBVU0ggYW5kIFBVTEwgbW9kZSBoYXZlIG9wcG9zaXRlIHNjZW5hcmlvcyBmb3IgSURMRSBhbmQgQkxPQ0sKCSAgcHJvYmVzLgoJICBGb3IgUFVTSCBpdCB3aWxsIEJMT0NLIHdpdGggc29tZSBkYXRhIHR5cGUgYW5kIElETEUgd29uJ3QgaGF2ZSBhIHR5cGUuCgkgIEZvciBQVUxMIGl0IHdpbGwgQkxPQ0sgYmVmb3JlIGdldHRpbmcgc29tZSBkYXRhIGFuZCB3aWxsIGJlIElETEUgd2hlbgoJICBzb21lIGRhdGEgaXMgb2J0YWluZWQuCgkgIFRoZSBjaGVjayBpbiBob29rX21hcnNoYWxsIHdhcyBzcGVjaWZpYyBmb3IgUFVTSCBtb2RlIGFuZCB3b3VsZCBjYXVzZQoJICBQVUxMIHByb2JlcyB0byBmYWlsIHRvIGJlIGNhbGxlZC4gQWRkaW5nIGRpZmZlcmVudCBjaGVja3MgZm9yIHRoZSBtb2RlCgkgIHRvIGZpeCB0aGlzIGlzc3VlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAzLTI0IDE3OjM0OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGV4dHJhIHRlc3RzIGZvciBwYWQgcHVsbCBwcm9iZXMKCSAgRm9yIEJVRkZFUiBhbmQgSURMRSBwcm9iZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMS0yOCAxNjoyMjoxNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdGVzdCBmb3IgYmxvY2tpbmcgcHVsbCBwcm9iZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAzLTI0IDEyOjEzOjM5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY29uc2lkZXIgUFJPQkVfVFlQRV9FVkVOVF9GTFVTSCB3aGVuIHVzaW5nIFBST0JFX1RZUEVfQUxMX0JPVEgKCSAgV2hlbiBHU1RfUEFEX1BST0JFX0VWRU5UX0ZMVVNIIGlzIHVzZWQsIHRoZSBwcm9iZXMgYWxyZWFkeSBoYXZlCgkgIGEgZGF0YSB0eXBlIGFuZCBpdCBpcyBub3QgbmVlZGVkIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBkZWZhdWx0CgkgIHR5cGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMzMwCgoyMDE2LTAyLTE5IDE2OjE4OjEyICswMTAwICBMaW51cyBTdmVuc3NvbiA8bGludXNzbkBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkIHRlc3RzOiBBZGQgYSB0ZXN0IGZvciBmbHVzaCBldmVudCBvbmx5IHByb2JlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMzMwCgoyMDE2LTAzLTI2IDE3OjIxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGVudW0vZmxhZyBwcm9wZXJ0aWVzIHByaW50aW5nIGZvciBlbGVtZW50cwoJICBXZSB3YW50IHRvIHVzZSB0aGUgZmxhZy9lbnVtIG5pY2tzIGhlcmUsIG5vdCBvbmx5IGJlY2F1c2UgdGhleQoJICBhcmUgc2hvcnRlciBidXQgYWxzbyBiZWNhdXNlIGluIGNhc2Ugb2YgZWxlbWVudC1zcGVjaWZpYyBlbnVtcwoJICBhbmQgZmxhZ3Mgd2UgYWJ1c2UgdGhlIGVudW0vZmxhZyBuYW1lIGZpZWxkIGZvciB0aGUgZGVzY3JpcHRpb24sCgkgIGFuZCB3ZSBkb24ndCB3YW50IHRoYXQgcHJpbnRlZCBpbiB0aGUgZG90IGZpbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM4MTQKCjIwMTYtMDMtMjMgMTA6MzE6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgYWxsb2N0cmFjZTogcHJpbnQgc2l6ZSBhbmQgYWxsb2NhdG9yIGRldGFpbHMgZm9yIGJ1ZmZlcnMgYW5kIG1lbW9yaWVzCgoyMDE2LTAyLTI5IDE5OjA0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWFrZSBpdCBwb3NzaWJsZSB0byByZW1vdmUgZGVmYXVsdCBsb2cgaGFuZGxlciBiZWZvcmUgZ3N0X2luaXQoKQoJICBNYWtlIHN1cmUgaXQncyBub3QgZXZlbiBhZGRlZCB0aGVuLCBzbyB0aGF0IHdlIG5ldmVyIG91dHB1dAoJICBhbnl0aGluZyB2aWEgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIgdGhlbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTUzOAoKMjAxNi0wMy0wNSAxNDoyNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBtaW5pb2JqZWN0LCBtZW1vcnksIHVyaTogd2FybiBvbiB1bnVzZWQgcmV0dXJuIHZhbHVlIG9mIHNvbWUgZnVuY3MKCSAgTWFrZSBjb21waWxlciBpc3N1ZSBhIHdhcm5pbmcgZm9yIGNvbW1vbiBiZWdpbm5lciBtaXN0YWtlcyBzdWNoIGFzOgoJICAuLi4KCSAgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlIChidWYpOwoJICBnc3RfYnVmZmVyX21hcCAoYnVmLCAmbWFwLCBHU1RfTUFQX1dSSVRFKTsKCSAgLi4uCgkgIGFuZCBzaW1pbGFyLiBPbmx5IGRvIHRoaXMgZm9yIHNvbWUgZnVuY3Rpb25zIGZvciBub3cuCgoyMDE2LTAzLTI2IDExOjE3OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZSBuZXcgbmV0Y2xvY2stcmVwbGF5IHRlc3RpbmcgdG9vbCBiaW5hcnkKCjIwMTUtMTAtMTcgMTg6MDE6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFsbG93IHBsdWdpbiBhbmQgZmVhdHVyZSBmaWx0ZXIgZnVuY3MgdG8gY2FsbCByZWdpc3RyeSBBUEkKCSAgRG9uJ3Qga2VlcCB0aGUgcmVnaXN0cnkgbG9ja2VkIHdoaWxzdCBpdGVyYXRpbmcgb3ZlciB0aGUgcGx1Z2lucwoJICBvciBmZWF0dXJlcyB3aXRoIGEgZmlsdGVyIGZ1bmN0aW9uLiBUaGlzIHdvdWxkIGRlYWRsb2NrIGlmIHRoZQoJICBjYWxsYmFjayB0cmllZCB0byBhY2Nlc3MgdGhlIHJlZ2lzdHJ5IGZyb20gdGhlIGZ1bmN0aW9uLiBJbnN0ZWFkLAoJICBtYWtlIGEgY29weSBvZiB0aGUgZmVhdHVyZS9wbHVnaW4gbGlzdCBhbmQgdGhlbiBmaWx0ZXIgaXQgd2l0aG91dAoJICBob2xkaW5nIHRoZSByZWdpc3RyeSBsb2NrLiBUaGlzIGlzIHN0aWxsIGNvbnNpZGVyYWJseSBmYXN0ZXIgdGhhbgoJICB0aGUgYWx0ZXJuYXRpdmUgd2hpY2ggd291bGQgYmUgdG8gdXNlIGEgR3N0SXRlcmF0b3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY3MzgKCjIwMTYtMDMtMjUgMTI6NTk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIHVubmVlZGVkIHBhcmVudGhlc2lzIGZyb20gQUdfR1NUX0NIRUNLX0NIRUNLUwoKMjAxNi0wMy0yNSAxMjowNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBGaXggdW5pdCB0ZXN0IGJ5IHNlbmRpbmcgY2FwcyBiZWZvcmUgYnVmZmVycwoJICBVbmV4cGVjdGVkIGNyaXRpY2FsL3dhcm5pbmc6IGdzdHBhZC5jOjQ0MDA6Z3N0X3BhZF9wdXNoX2RhdGE6PCcnOnNyYz4gR290IGRhdGEgZmxvdyBiZWZvcmUgc2VnbWVudCBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzUzCgoyMDE2LTAzLTI1IDEwOjIzOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvbWlzYy9NYWtlZmlsZS5hbToKCSAgbmV0Y2xvY2s6IExpbmsgdGhlIHJlcGxheSBleGFtcGxlIHRvIEdJTwoKMjAxNi0wMy0wMyAyMTo0NTo1NCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9taXNjL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9taXNjL25ldGNsb2NrLXJlcGxheS5jOgoJICB0ZXN0czogQWRkIHNvbWUgY29kZSB0byByZXBsYXkgYW5kIGFuYWx5c2UgbmV0Y2xpZW50Y2xvY2sKCSAgVGhpcyB0YWtlcyByZWFkaW5ncyBpbiB0aGUgZm9ybSBvZiAuLi4KCSAgPGxvY2FsXzE+IDxyZW1vdGVfMT4gPHJlbW90ZV8yPiA8bG9jYWxfMj4KCSAgLi4uIHdpdGggb25lIG9ic2VydmF0aW9uIHBlciBsaW5lLCBhbmQgdGhlbiByZXBsYXlzIGl0IHVzaW5nIHRoZQoJICBuZXRjbGllbnRjbG9jayBjb2RlLgoJICBUaGUgb3V0cHV0IGlzIHRoZSBzdGF0aXN0aWNzIHN0cnVjdHVyZSBlbWl0dGVkIGJ5IHRoZSBuZXRjbGllbnRjbG9jaywKCSAgd2hpY2ggY2FuIHRoZW4gYmUgYW5hbHlzZWQgYW5kIHR1bmVkIG9uY2Ugd2UgZ2V0IHRob3NlIHJlYWRpbmdzIGZvcgoJICBwb3RlbnRpYWwgZWRnZS1jYXNlcy4KCSAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZpbmQgc29tZSBpbnB1dHMgd2l0aCAiYmFkIiBkYXRhIGFuZCBjb252ZXJ0CgkgIHRoaXMgaW50byBhIHVuaXQgdGVzdCBmb3IgZnV0dXJlIHR3ZWFrcyB0byBydW4gYWdhaW5zdC4KCjIwMTYtMDMtMDMgMjE6NDQ6MzUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBbHdheXMgZHVtcCBjbG9jayBvYnNlcnZhdGlvbnMgaW4gbG9ncwoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGV4YW1pbmUgd2hhdCB2YWx1ZXMgd2UgZ2V0IGluIGxvZ3MsIGFuZAoJICBwb3RlbnRpYWxseSB0dW5lIG91ciBmaWx0ZXJpbmcvZXh0cmFwb2xhdGlvbiBpbiB2YXJpb3VzIHNjZW5hcmlvcy4KCjIwMTYtMDMtMDQgMTU6NTA6MjYgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgYmFkOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzA4MQoKMjAxNi0wMy0xNiAxNToxMzozOSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogZG9uJ3Qgc2VuZCBzdGlja3kgZXZlbnRzIGFzIGEgZGlyZWN0IHJlc3BvbnNlIHRvIHVwc3RyZWFtIGV2ZW50cwoJICBBbHNvIHJlZmFjdG9yIHRoZSBleGlzdGluZyB2YWx2ZSB0ZXN0IHRvIGFjdHVhbGx5IHRlc3QgdGhlIHZhbHZlLAoJICBhbmQgbm90IGp1c3QgdGVzdCB0aGUgRU9TIG1lY2hhbmlzbSBvZiBhIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1MwoKMjAxNi0wMy0xMSAwOToyMzowNCArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IEFkZCBmbGFnIGZvciBwbGFjaW5nIGVsZW1lbnRzIGluIGEgYmluIGluc3RlYWQgb2YgYSBwaXBlbGluZQoJICBCeSBkZWZhdWx0LCBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKSBjcmVhdGVzIGEgR3N0UGlwZWxpbmUgaWYgdGhlcmUncyBtb3JlCgkgIHRoYW4gb25lIHRvcGxldmVsIGVsZW1lbnQuIEFkZCBhIGZsYWcgdG8gbGV0IGl0IHVzZSBhIEdzdEJpbiBpbnN0ZWFkLgoJICBBbHNvIGZpeCB0aGUgcGFyc2VyIHRvIGxldCBpdCB1c2UgdGhpcyBmbGFnIGZvciBHU1RfVFlQRV9FTEVNRU5UIHByb3BlcnR5CgkgIHZhbHVlcywgdG8gYXZvaWQgaGF2aW5nIEdzdFBpcGVsaW5lcyBpbnNpZGUgb3RoZXIgR3N0UGlwZWxpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDU3CgoyMDE2LTAzLTA4IDE5OjA4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBvcHRpbWlzYXRpb246IGF2b2lkIHVubmVjZXNzYXJ5IGdzdF9wYWRfaGFzX2N1cnJlbnRfY2FwcygpIGNoZWNrcwoJICBObyBuZWVkIHRvIGRvIHRoaXMgZm9yIGV2ZXJ5IGlucHV0IGJ1ZmZlciwgc2luY2UgaXQgaW52b2x2ZXMKCSAgbG9ja2luZyBhbmQgaXRlcmF0aW5nIG9mIHRoZSBzdGlja3kgZXZlbnRzIGFycmF5IGFuZCBzdWNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMzM3CgoyMDE2LTAzLTAzIDE0OjE1OjAwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIGdzdHJlYW1lcjogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMwMjAKCjIwMTYtMDMtMDIgMTc6NDc6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFVzZSBmdWxsIHJ1bm5pbmcgdGltZSBmb3IgbGV2ZWwgY2FsY3VsYXRpb24KCSAgRW5zdXJlcyB3ZSBoYXZlIHByb3BlciB0aW1lIGxldmVsIGVzdGltYXRpb24gZm9yIHRoZSBjYXNlcyB3aGVyZQoJICB0aGUgaW5jb21pbmcgYnVmZmVycyBoYXZlIFBUUy9EVFMgb3V0c2lkZSBvZiB0aGUgc2VnbWVudCBzdGFydC9zdG9wCgkgIHZhbHVlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjk5NQoKMjAxNi0wMS0yNyAxMTo0NjowNiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJhY2UgYmV0d2VlbiBnc3RfZWxlbWVudF9yZW1vdmVfcGFkIGFuZCBzdGF0ZSBjaGFuZ2UKCSAgV2hlbiBnb2luZyBmcm9tIFJFQURZIHRvIE5VTEwgYWxsIGVsZW1lbnQgcGFkcyBhcmUgZGVhY3RpdmF0ZWQuIElmCgkgIHNpbXVsdGFuZW91c2x5IHRoZSBwYWQgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBlbGVtZW50IHdpdGgKCSAgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCgpIGFuZCB0aGUgcGFkIGlzIHVucGFyZW50ZWQsIHRoZXJlIGlzIGEgcmFjZQoJICB3aGVyZSB0aGUgZGVhY3RpdmF0aW9uIHdpbGwgYXNzZXJ0IChnX2NyaXRpY2FsKSBpZiB0aGUgcGFyZW50IGlzIGxvc3QgYXQKCSAgdGhlIHdyb25nIHRpbWUuCgkgIFRoZSBwcm9wb3NlZCBmaXggd2lsbCBjaGVjayBwYXJlbnQgb25seSBvbmNlIGFuZCByZXRhaW4gaXQgdG8gYXZvaWQgdGhlCgkgIHJhY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTIKCjIwMTYtMDMtMDIgMjE6MTE6NTEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFzc3VtZSBQVFMgaXMgZXF1YWwgRFRTIGlmIFBUUyBpcyBtaXNzaW5nCgkgIFRoaXMgaXMgdGhlIGJlc3QgZ3Vlc3Mgd2UgY2FuIG1ha2UgaWYgc3VjaCBhIGJ1ZmZlciByZWFjaGVkIHRoZSBjb2xsZWN0CgkgIHBhZC4gVGhpcyBpcyB1bmNvbW1vbiwgd2UgZG8gZXhwZWN0IHBhcnNlcnMgdG8gaGF2ZSB0cmllZCBhbmQgZml4ZWQgdGhhdAoJICBpZiBwb3NzaWJsZSAob3IgbmVlZGVkKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjIwNwoKMjAxNi0wMy0yNCAxMzozMjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKMjAxNi0wMy0yNCAxMTo0OTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQKCSAgQ0lEIDEzNTcxNTgKCj09PSByZWxlYXNlIDEuOC4wID09PQoKMjAxNi0wMy0yNCAxMTo0OTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjguMAoKMjAxNi0wMy0yNCAxMTozNToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDMtMTMgMTE6MDU6MjkgLTA0MDAgIEFudGhvbnkgRy4gQmFzaWxlIDxibHVlbmVzc0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkgIGxpYmNvbXBhdC5oOiBzdHJzaWduYWwoKSBzaG91bGQgYmUgbm90IGJlIGRlY2xlYXJlZCBjb25zdAoJICBQT1NJWCBzdGFuZGFyZHMgcmVxdWlyZXMgc3Ryc2lnbmFsKCkgdG8gcmV0dXJuIGEgcG9pbnRlciB0byBhIGNoYXIsCgkgIG5vdCBhIGNvbnN0IHBvaW50ZXIgdG8gYSBjaGFyLiBbMV0gIE9uIHVDbGliYywgYW5kIHBvc3NpYmx5IG90aGVyCgkgIGxpYmMncywgdGhhdCBkbyBub3QgSEFWRV9ERUNMX1NUUlNJR05BTCwgbGliY29tcGF0LmggZGVjbGFyZXMKCSAgY29uc3QgY2hhciAqc3Ryc2lnbmFsIChpbnQgc2lnKSB3aGljaCBjYXVzZXMgYSB0eXBlIGVycm9yLgoJICBbMV0gbWFuIDMgc3Ryc2lnbmFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NjcKCjIwMTYtMDMtMjIgMTk6MDQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogVXNlIEdTVF9QUkVTRVRfUEFUSCBhcyBhbiBleHRlbnNpb24gb2YgdGhlIHN5c3RlbSBwYXRoLCBub3QgYSByZXBsYWNlbWVudCBvZiB0aGUgdXNlciBwYXRoCgkgIEZpcnN0IGxvYWQgYWxsIHN5c3RlbSBwcmVzZXRzLCB0aGVuIGFsbCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlbgoJICBmcm9tIHRoZSBhcHAgZGlyZWN0b3J5LCB0aGVuIGZyb20gdGhlIHVzZXIgZGlyZWN0b3J5LiBBbnkgb25lIGluIHRoZSBjaGFpbgoJICB3aXRoIHRoZSBoaWdoZXN0IHZlcnNpb24gY29tcGxldGVseSByZXBsYWNlcyBhbGwgcHJldmlvdXMgb25lcywgbGF0ZXIgb25lcwoJICB3aXRoIGxvd2VyIHZlcnNpb25zIGFyZSBtZXJnZWQgaW4gd2l0aG91dCByZXBsYWNpbmcgZXhpc3RpbmcgcHJlc2V0cy4KCSAgVGhpcyBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGJlZm9yZSwganVzdCB0aGF0IEdTVF9QUkVTRVRfUEFUSCBpcwoJICBpbnNlcnRlZCBhcyBhbm90aGVyIHNvdXJjZSBvZiBkaXJlY3RvcmllcyBiZXR3ZWVuIHRoZSBzeXN0ZW0gYW5kIGFwcCBwcmVzZXRzLgoJICBJdCB3YXMgYWRkZWQgaW4gY2EwOGFmMWYxN2QyY2UzNmI4Mzk5OGEwYmEzYTdiOGJjYWZkNzg3MiwgYnV0IHdhcwoJICBhY2NpZGVudGlhbGx5IG92ZXJyaWRpbmcgdGhlIHVzZXIgcHJlc2V0IHBhdGggdGhlcmUuIFdoaWNoIGNhdXNlZCBpbmNvbnNpc3RlbnQKCSAgYmVoYXZpb3VyIGFzIG5ldyBwcmVzZXRzIHdlcmUgc3RpbGwgc3RvcmVkIGluIHRoZSBzeXN0ZW0gcGF0aCwganVzdCBub3QgbG9hZGVkCgkgIGZyb20gdGhlcmUuIE1lYW5pbmcgeW91IGNvdWxkIHN0b3JlIGEgbmV3IHByZXNldCAoaW4gdGhlIHVzZXIgcGF0aCksIGp1c3QgZm9yCgkgIEdzdFByZXNldCB0byBub3QgZmluZCBpdCBhbnltb3JlIGxhdGVyIChiZWNhdXNlIGl0IG9ubHkgbG9va2VkIGluIHRoZQoJICBHU1RfUFJFU0VUX1BBVEggaW5zdGVhZCBvZiB0aGUgdXNlciBwYXRoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDAzNAoKMjAxNi0wMy0xOSAxMjo1NTowOSArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbiB0byBnc3RfcGFkX3BlZXJfcXVlcnlfY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTEyCgoyMDE2LTAzLTE5IDEyOjM5OjE4ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFuZCAnbnVsbGFibGUnIGFubm90YXRpb25zIHRvIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcwoJICBhbmQgYWxzbyBjaGFuZ2UgdGhlIGRlc2NyaXB0aW9uIGFjY29yZGluZ2x5IHNpbmNlIGZ1bmN0aW9uIHJldHVybnMgYW4KCSAgaW5jcmVtZW50ZWQgY2FwcyBvYmplY3Qgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBjYXBzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzkxMgoKMjAxNi0wMy0xOCAxNjowMjo0MyAtMDQwMCAgQmVuIElvZmVsIDxpb2ZlbGJlbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBnaXIgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM4OTUKCjIwMTYtMDMtMTcgMDE6NDI6NTUgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogQ2hlY2sgbXVsdGlxdWV1ZSBub3QtbGlua2VkIEVPUyBoYW5kbGluZwoJICBBZGQgYSB0ZXN0IHdoaWNoIGNoZWNrcyB0aGF0IG5vdC1saW5rZWQgcGFkcyBjb250aW51ZQoJICB0byBvdXRwdXQgZGF0YSBhZnRlciBsaW5rZWQgcGFkcyBoYXZlIGdvbmUgRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NzAKCjIwMTYtMDMtMTggMDM6MDg6MzkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBub3QtbGlua2VkIHBhZCBoYW5kbGluZyBhdCBFT1MKCSAgRW5zdXJlIHRoYXQgbm90LWxpbmtlZCBwYWRzIHdpbGwgZHJhaW4gb3V0IGF0IEVPUyBieQoJICBjb3JyZWN0bHkgZGV0ZWN0aW5nIHRoZSBFT1MgY29uZGl0aW9uIGJhc2VkIG9uIHRoZSBFT1MKCSAgcGFkIGZsYWcgKHdoaWNoIGluZGljYXRlcyB3ZSBhY3R1YWxseSBwdXNoZWQgYW4gRU9TKSwKCSAgYW5kIG1ha2Ugc3VyZSB0aGF0IG5vdC1saW5rZWQgcGFkcyBhcmUgd29rZW4gd2hlbiBkb2luZwoJICBFT1MgcHJvY2Vzc2luZyBvbiBsaW5rZWQgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wMy0xNSAxNjozNzozMyArMDEwMCAgUm9tYWluIFBpY2FyZCA8cm9tYWluLnBpY2FyZEBvYWtiaXRzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBbGxvdyBjYXBzIHF1ZXJ5IGluICJoYXZlLXR5cGUiIHNpZ25hbCBoYW5kbGVycwoJICBJZiBhbiBhcHBsaWNhdGlvbiBjYWxscyBnc3RfcGFkX3F1ZXJ5X2NhcHMgZnJvbSBpdHMgImhhdmUtdHlwZSIgc2lnbmFsIGhhbmRsZXIsCgkgIHRoZW4gdGhlIHF1ZXJ5IGZhaWxzIGJlY2F1c2UgdHlwZWZpbmQtPmNhcHMgaGFzIG5vdCBiZWVuIHNldCB5ZXQuCgkgIFRoaXMgcGF0Y2ggc2V0cyB0eXBlZmluZC0+Y2FwcyBpbiB0aGUgb2JqZWN0IG1ldGhvZCBoYW5kbGVyLCBiZWZvcmUgdGhlIHNpZ25hbAoJICBoYW5kbGVycyBhcmUgY2FsbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgo9PT0gcmVsZWFzZSAxLjcuOTEgPT09CgoyMDE2LTAzLTE1IDExOjU2OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy45MQoKMjAxNi0wMy0xNSAxMTo0NDowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby90ci5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDMtMTUgMTE6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMy0xMSAxNDoxNzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKMjAxNi0wMy0xMyAxMDozMzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVjaGVjayBhZnRlciBwcmVfcHVzaF9mcmFtZSgpIGlmIHRoZXJlIGFyZSB0YWdzIHBlbmRpbmcKCSAgTWFueSBwYXJzZXJzIGFyZSBzdG9yaW5nIHRhZ3Mgb25seSBpbiBwcmVfcHVzaF9mcmFtZSgpLCBpZiB3ZSB3b3VsZG4ndCBjaGVjawoJICBhZnRlcndhcmRzIHdlIHdvdWxkIHB1c2ggYnVmZmVycyBiZWZvcmUgdGhvc2UgdGFncyBhbmQgYSBsb3Qgb2YgY29kZSBhc3N1bWVzIHRoYXQKCSAgdGFncyBhcmUgYXZhaWxhYmxlIGJlZm9yZSBwcmVyb2xsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTUzCgoyMDE2LTAzLTE0IDExOjE1OjA3ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEZpeCBjb21tZW50IHR5cG8KCjIwMTYtMDMtMTIgMTI6NTY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZXZlcnQgInR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDgzNWMzZDY1NjlkZGUwZWM5ZTU1MjQ0MzYzNjdjNzY3OGNjNGE0YS4KCSAgSXQgY2F1c2VzIGRlYWRsb2NrcyBpbiBkZWNvZGViaW4sIHdoaWNoIGN1cnJlbnRseSB3b3VsZCBkZWFkbG9jayBpZiB0aGUgY2FwcwoJICBhcmUgYWxyZWFkeSBvbiB0aGUgcGFkIGluIGhhdmUtdHlwZSBhbmQgYXJlIGZvcndhcmRlZCB3aGlsZSBjb3B5aW5nIHRoZSBzdGlja3kKCSAgZXZlbnRzICh3aGlsZSBob2xkaW5nIHRoZSBkZWNvZGViaW4gbG9jaykuLi4gYXMgdGhhdCBtaWdodCBjYXVzZSB0aGUgbmV4dAoJICBlbGVtZW50IHRvIGV4cG9zZSBwYWRzLCB3aGljaCB0aGVuIGNhbGxzIGJhY2sgaW50byBkZWNvZGViaW4gYW5kIHRha2VzIHRoZQoJICBkZWNvZGViaW4gbG9jay4KCSAgVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDE2LTAzLTExIDE0OjE3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgoyMDE2LTAzLTEwIDEwOjM1OjQwICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGRvY3M6IEZsZXNoIG91dCBlbGVtZW50IGFuZCBvYmplY3QgbWFjcm8gYWNjZXNzb3IgZG9jcyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMjEzCgoyMDE2LTAzLTA5IDE2OjA2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBSZW1vdmUgc29tZSBvYnNvbGV0ZSBjb2RlIHRoYXQgY2FuIGNhdXNlIHdhcm5pbmdzCgoyMDE2LTAzLTA5IDEzOjQ0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEb24ndCByZXNldCBjYWxpYnJhdGlvbiBvZiBpbnRlcm5hbCBjbG9jayB3aGVuZXZlciBhIG5ldyBuZXRjbGllbnQgY2xvY2sgaXMgY3JlYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMzI1CgoyMDE2LTAzLTA0IDE4OjIzOjE4ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBHc3RQYXJlbnRCdWZmZXJNZXRhIEdUeXBlIG5hbWUKCSAgVGhlIGFsaWFzIGRlZmluZSBHU1RfVFlQRV9QQVJFTlRfQlVGRkVSX01FVEFfQVBJX1RZUEUgaXMgd3JvbmcgYW5kCgkgIGJyZWFrcyB0aGUgdXNhZ2Ugb2YgZ3N0X2J1ZmZlcl9nZXRfcGFyZW50X2J1ZmZlcl9tZXRhKCkuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIEdUeXBlIGFsaWFzIGFuZCBtYWtlIGFub3RoZXIgYWxpYXMgdG8ga2VlcCB0aGUgQVBJCgkgIGNvbXBhdGliaWxpdHkgZ3VhcmRlZCBieSBHU1RfRElTQUJMRV9ERVBSRUNBVEVELgoJICBBbHNvIGFkZGVkIGEgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMTEyCgoyMDE2LTAzLTAyIDEwOjM3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IFJlbW92ZSB1c2VsZXNzIE5VTEwgY2hlY2sgYW5kIGFkZCBhc3NlcnRpb24gZm9yIG1ha2luZyBhc3N1bXB0aW9ucyBleHBsaWNpdAoJICBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpIGlzIG5vdCByZXR1cm5pbmcgTlVMTCBpbiBhbnkgdmFsaWQgc2NlbmFyaW9zLAoJICBjaGVja2luZyBmb3IgTlVMTCBoZXJlIGlzIHVzZWxlc3MuIEVzcGVjaWFsbHkgYmVjYXVzZSB3ZSB3b3VsZCBkZXJlZmVyZW5jZSBhbnkKCSAgTlVMTCByaWdodCBhZnRlciB0aGUgTlVMTCBjaGVjayBhZ2Fpbi4KCSAgQ0lEIDEzNTIwMzcuCgkgIFdlIHByZXZpb3VzbHkgY2hlY2sgaWYgdGhlIHN0cmluZyBlbmRzIG9uIC5jbGFzcywgYXMgc3VjaCBzdHJyY2hyKCkgc2hvdWxkCgkgIHJldHVybiBzb21ldGhpbmcgbm9uLU5VTEwuIEFkZCBhbiBhc3NlcnRpb24gZm9yIHRoYXQuCgkgIENJRCAxMzQ5NjQyLgoKMjAxNi0wMy0wMSAxOTo1MDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1pbm9yIGRvY3MgZml4CgkgIE1ha2UgZ3RrLWRvYyBoYXBweS4KCj09PSByZWxlYXNlIDEuNy45MCA9PT0KCjIwMTYtMDMtMDEgMTg6MTQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjkwCgoyMDE2LTAzLTAxIDE2OjUyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDItMjkgMjM6MzM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBSZXZlcnQgImJ1czogY2hhbmdlIEdzdEJ1c1NvdXJjZSB0byBob2xkIGEgd2VhayByZWYgdG8gR3N0QnVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg5NGM2N2U2NDJjMGY4NThiNWIxODA5N2ZhN2M5OTViZjNjYzUwYzEuCgoyMDE2LTAyLTI5IDIzOjMyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwNTcwMGE3MDgyYzE0NTA1N2NjYzBiZTc2MzA2N2JjYzI2MzIzOWViLgoKMjAxNi0wMi0yOSAxNzowNjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IFJlbW92ZSBHU1RfU1RBVEVfTE9DS19GVUxMKCkgLyBVTkxPQ0tfRlVMTCgpCgkgIFRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgQVBJIGZvciB0aGF0IGluIEdMaWIgYW5kIG5vYm9keSBjb3VsZCd2ZSBldmVyIHVzZWQKCSAgdGhlc2UgbWFjcm9zIHdpdGhvdXQgY29tcGlsZXIgZXJyb3JzIGFueXdheS4KCjIwMTYtMDItMjkgMTA6MDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cwoJICBPdGhlcndpc2UgdGhlIEdTb3VyY2UgY2FuIGxvb2sgaW50byBvdXIgYWxyZWFkeSBkZXN0cm95ZWQgYnVzIHdoZXJlIHRoZQoJICBHUG9sbEZEIGlzIHN0b3JlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0OQoKMjAxNi0wMi0yOSAxMTowNjo1MCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogZ2hvc3RwYWQ6IEZpeCBtZW1vcnkgbGVha3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0NQoKMjAxNi0wMi0yOCAxMzo1OTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCBndWFyZCB0byBjaGVjayB3cml0YWJpbGl0eSB3aGVuIHJlbW92aW5nIHRhZ3MgZnJvbSBhIHRhZ2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc5MwoKMjAxNi0wMi0yNyAxNTozNjoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6Mjg6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgUHJldHR5IG11Y2ggZXZlcnkgc2luZ2xlIGVsZW1lbnQgZG9lcwoJICBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlIChlbGVtZW50X2NsYXNzLAoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgKCZzb21lX3RlbXBsKSk7CgkgIHdoaWNoIGlzIGJvdGggY29uZnVzaW5nIGFuZCB1bm5lY2Vzc2FyeS4gV2UgbWlnaHQganVzdAoJICBhcyB3ZWxsIGFkZCBhIGZ1bmN0aW9uIHRvIGRvIHRoYXQgaW4gb25lIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6MzI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTI2IDEyOjQwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNjRmMDNmIHRvIDZmMmQyMDkKCjIwMTYtMDItMjUgMjI6MzY6MTQgKzAwMDAgIEphbWVzIFN0ZXZlbnNvbiA8amFtZXNAc3Rldi5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUHJldmVudCBnc3RfYnVzX2FkZF93YXRjaF9mdWxsX3VubG9ja2VkIGZyb20gYSBzZWdmYXVsdCBpZiBwcml2LT5wb2xsID09IE5VTEwKCSAgVGhpcyBoYXBwZW5zIGlmIHRoZSBwcm9jZXNzIHJ1bnMgb3V0IG9mIGZpbGUgZGVzY3JpcHRvcnMuIEJldHRlciBwcmludAoJICBhIGNyaXRpY2FsIHdhcm5pbmcgaW5zdGVhZCBvZiBqdXN0IGNyYXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzAyCgoyMDE2LTAyLTI0IDEwOjU2OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBidXM6IGNoYW5nZSBHc3RCdXNTb3VyY2UgdG8gaG9sZCBhIHdlYWsgcmVmIHRvIEdzdEJ1cwoJICBXaGVuIGhvbGRpbmcgYSByZWd1bGFyIHJlZiBpdCB3aWxsIGNhdXNlIHRoZSBHc3RCdXMgdG8gbmV2ZXIKCSAgcmVhY2ggMCByZWZlcmVuY2VzIGFuZCBpdCB3b24ndCBiZSBkZXN0cm95ZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbgoJICBleHBsaWNpdGx5IGNhbGxzIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCgpLgoJICBTd2l0Y2hpbmcgdG8gd2Vha3JlZiB3aWxsIGFsbG93IHRoZSBHc3RCdXMgdG8gYmUgZGVzdHJveWVkLgoJICBUaGUgYXBwbGljYXRpb24gaXMgc3RpbGwgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgdGhlCgkgIEdTb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI1NTIKCjIwMTYtMDItMjUgMTQ6MTE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBBZGQgYSAiICIgYWZ0ZXIgcHRzOiBpbiB0aGUgc2lsZW50PWZhbHNlIG91dHB1dAoKMjAxNC0wNC0xNiAxMTo0MjoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggZXhhbXBsZXMgdG8gY2hlY2sgZm9yIGdzdF9idWZmZXJfbWFwIHJldHVybiB2YWx1ZXMKCSAgT3RoZXJ3aXNlIHBlb3BsZSByZWFkaW5nIHRoZSBtYW51YWwgd2lsbCBleHBlY3QgaXQgdG8gYWx3YXlzCgkgIHN1Y2NlZWQgOikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNC0wNC0xNiAxMTo0MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9idWZmZXJfbWFwCgkgIFdlIGNhbid0IGNoZWNrIGNvbnRlbnRzIGlmIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTQtMDQtMTYgMTE6Mzk6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBDaGVjayByZXR1cm4gdmFsdWVzIG9mIGdzdF9idWZmZXJfbWFwKCkKCSAgVGhleSBjYW4gZmFpbCBmb3IgdmFyaW91cyByZWFzb25zLgoJICBGb3Igbm9uLWZhdGFsIGNhc2VzIChzdWNoIGFzIHRoZSBkdW1wIGZlYXR1cmUgb2YgaWRlbnRpeSBhbmQgZmFrZXNpbmspLAoJICB3ZSBqdXN0IHNpbGVudGx5IHNraXAgaXQuCgkgIEZvciBvdGhlciBjYXNlcyBwb3N0IGFuIGVycm9yIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTYtMDItMjMgMTc6MjM6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9tZW1vcnlfbWFwKCkKCSAgT25seSBkbyBtZW1vcnkgb3BlcmF0aW9ucyBpZiB0aGUgbWVtb3J5IHdhcyBzdWNjZXNmdWxseSBtYXAnZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNi0wMi0yMyAxODoxNzo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBEb24ndCBhc3N1bWUgdGhhdCBnZXRfY3VycmVudF9jYXBzKCkgcmV0dXJucyBub24tTlVMTCBjYXBzIGFmdGVyIGhhc19jdXJyZW50X2NhcHMoKQoJICBSZW1vdmUgY2FsbHMgdG8gZ3N0X3BhZF9oYXNfY3VycmVudF9jYXBzKCkgd2hpY2ggdGhlbiBnbyBvbiB0byBjYWxsCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGFzIHRoZSBjYXBzIGNhbiBnbyB0byBOVUxMIGluIGJldHdlZW4uIEluc3RlYWQganVzdAoJICB1c2UgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgYW5kIGNoZWNrIGZvciBOVUxMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NTM5CgoyMDE1LTEyLTEwIDE1OjMyOjI3ICswMTAwICBBZGFtIE1pYXJ0dXMgPGFkYW0ubWlhcnR1c0BzdHJlYW11bmxpbWl0ZWQuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIEdTVF9UQUdfQ09ORFVDVE9SCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBtZXRhZGF0YSB3aGljaCBleHBsaWNpdGVseSBkaXN0aW5ndWlzaGVzCgkgIGJldHdlZW4gYXJ0aXN0L2NvbXBvc2VyIGFuZCBjb25kdWN0b3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI0NTAKCjIwMTYtMDItMjIgMTQ6MDk6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uIG9uIHN0cmVhbS1pZAoJICAuLi4gd2hlcmUgaXQgbWlnaHQgZW5kIHVwIGJlaW5nIHVzZWQgZm9yLgoKMjAxNi0wMS0yMiAxMToyNTozMCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogSW5pdGlhbGl6ZSBHc3RUcmFjZXIgX3ByaXZfdHJhY2VycyBhbmQgcXVhcmtzIHVuY29uZGl0aW9ubmFsbHkKCSAgU29tZSBwZW9wbGUgbWlnaHQgdXNlIHRyYWNlciBob29rcyBldmVuIGlmIEdTVF9UUkFDRVJfUExVR0lOUyBpcyBub3QKCSAgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwOTc5CgoyMDE2LTAyLTIwIDEwOjE4OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBtYW51YWw6IHJlbW92ZSBkZWFkIGxpbmsgZnJvbSBpbnRlZ3JhdGlvbiBwYWdlCgoyMDE2LTAyLTIwIDEwOjEzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIGRvY3M6IG1hbnVhbDogZml4IGZvcm1hdHRpbmcKCSAgYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6MTIxMDogZWxlbWVudCBsaXN0aXRlbTogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50CgkgIGxpc3RpdGVtIGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIGV4cGVjdGluZyAoLi4uKSwKCSAgZ290IChwYXJhIENEQVRBIHBhcmEgKQoJICA8L2xpc3RpdGVtPgoKMjAxNi0wMi0yMCAwMDo1NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjaGVjayBmb3IgZ2l0IGluIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaCBhcyB3ZWxsCgoyMDE2LTAyLTE5IDIwOjI2OjI2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVlay5jaGF1aGFuQGdtYWlsLmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgV2hlbmV2ZXIgd2UgaW5jbHVkZSB3aW5kb3dzLmgsIGFsc28gZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KCSAgVGhpcyByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygc3ltYm9scyBhbmQgY29kZSBwdWxsZWQgaW4gZHJhc3RpY2FsbHkKCjIwMTYtMDItMTMgMDY6NTM6MjQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJICBwcmludGY6IE9uIE1TVkMsIGFsc28gZGVmaW5lIEhBVkVfU1RESU5UX0hfV0lUSF9VSU5UTUFYCgkgIE1TVkMgcHJvdmlkZXMgc3RkaW50LmggYnV0IG5vdCBpbnR0eXBlcy5oLCBhbmQgd2UgbmVlZCB0byBpbmNsdWRlIHN0ZGludC5oIHRvCgkgIGdldCBpbnRtYXhfdAoKMjAxNi0wMi0xMyAwNjo0MjowNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBPbmx5IGluY2x1ZGUgdW5pc3RkLmggaWYgZm91bmQKCSAgdW5pc3RkLmggaXMgbm90IHByb3ZpZGVkIGJ5IHRoZSAgTWljcm9zb2Z0IFZpc3VhbCBDKysgY29tcGlsZXIuIEl0IGluc3RlYWQKCSAgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBkZWZpbmVzIHRocm91Z2ggaW8uaAoKMjAxNi0wMi0xMyAwNjoxOTo1MiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IE9ubHkgY2hlY2sgZm9yIFNfSUZCTEsgaWYgaXQgaXMgZGVmaW5lZAoJICBXaW5kb3dzIGRvZXMgbm90IGRlZmluZSBTX0lGQkxLIHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSBibG9jayBkZXZpY2VzCgoyMDE2LTAyLTE5IDIwOjE3OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL1JFQURNRS50eHQ6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzoKCSogd2luMzIvY29tbW9uL2RpcmVudC5oOgoJKiB3aW4zMi9jb21tb24vZ3RjaGFyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJKiB3aW4zMi92czEwL0NvbW1vbi5wcm9wczoKCSogd2luMzIvdnMxMC9MaWJyYXJ5LnByb3BzOgoJKiB3aW4zMi92czEwL1BsdWdpbi5wcm9wczoKCSogd2luMzIvdnMxMC9SZWFkTWUudHh0OgoJKiB3aW4zMi92czEwL1Rvb2wucHJvcHM6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdG5ldC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJKiB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajoKCSogd2luMzIvdnM4L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM4L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czgvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgd2luMzI6IHVwZGF0ZSBSRUFETUUgYW5kIHJlbW92ZSBvdXRkYXRlZCBidWlsZCBjcnVmdAoJICBUaGlzIGhhc24ndCBiZWVuIHRvdWNoZWQgZm9yIGdlbmVyYXRpb25zLCBkb2Vzbid0IHdvcmssCgkgIGFuZCBpcyBqdXN0IGNhdXNpbmcgY29uZnVzaW9uLiBXZSBhbHNvIGRvbid0IHdhbnQgdG8KCSAgbWFpbnRhaW4gdGhlc2UgZmlsZXMgbWFudWFsbHkuCgoyMDE2LTAyLTE5IDA4OjQzOjAwICswMDAwICBHZW9yZ2UgWXVuYWV2IDxneXVuYWV2QGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEV4cGxhaW4gd2hhdCBoYXBwZW5zIGlmIHVwc3RyZWFtIGVsZW1lbnRzIGFyZSByZW1vdmVkIGZyb20gdGhlIHBpcGVsaW5lIHdpdGhvdXQgZHJhaW5pbmcgdGhlbSBmaXJzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMzAyCgoyMDE2LTAyLTE5IDE0OjQxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIHRlc3RzOiBmaXggaW5kZW50YXRpb24KCjIwMTYtMDItMTkgMTI6Mzg6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNy4yID09PQoKMjAxNi0wMi0xOSAxMTo0Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy4yCgoyMDE2LTAyLTE5IDEwOjI5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDItMTggMTQ6MjA6MTcgKzAwMDAgIEp1bGllbiBJc29yY2UgPGouaXNvcmNlQHNhbXN1bmcuY29tPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICB1bmluc3RhbGxlZC5wYzogYWRkIHN1cHBvcnQgZm9yIG5vbiBsaWJ0b29sIGJ1aWxkIHN5c3RlbXMKCSAgQ3VycmVudGx5IHRoZSAubGEgcGF0aCBpcyBwcm92aWRlZCB3aGljaCByZXF1aXJlcyB0byB1c2UgbGlidG9vbCBhcwoJICBtZW50aW9uZWQgaW4gdGhlIEdTdHJlYW1lciBtYW51YWwgc2VjdGlvbi1oZWxsb3dvcmxkLWNvbXBpbGVydW4uaHRtbC4KCSAgSXQgaXMgZmluZSBhcyBsb25nIGFzIHRoZSBhcHBsaWNhdGlvbiBpcyBidWlsdCB1c2luZyBsaWJ0b29sLgoJICBTbyBjdXJyZW50bHkgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNvbXBpbGUgYSBHU3RyZWFtZXIgYXBwbGljYXRpb24KCSAgd2l0aGluIGdzdC11bmluc3RhbGxlZCB3aXRoIENNYWtlIG9yIG90aGVyIGJ1aWxkIHN5c3RlbSBkaWZmZXJlbnQKCSAgdGhhbiBhdXRvdG9vbHMuCgkgIFRoaXMgcGF0Y2ggYWxsb3dzIHRvIGRvIHRoZSBmb2xsb3dpbmcgaW4gZ3N0LXVuaW5zdGFsbGVkIGVudjoKCSAgZ2NjIHRlc3QuYyAtbyB0ZXN0ICQocGtnLWNvbmZpZyAtLWNmbGFncyAtLWxpYnMgZ3N0cmVhbWVyLTEuMCkKCSAgUHJldmlvdXNseSBpdCByZXF1aXJlZCB0byBwcmVwZW5kIGxpYnRvb2wgLS1tb2RlPWxpbmsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDc3OAoKMjAxNi0wMi0xOCAxMTo0MzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFBVTEwgcHJvYmVzIGFyZSBjYWxsZWQgd2l0aG91dCBhIGJ1ZmZlciBzbyBkb24ndCByZXF1aXJlIGFueSBvZiB0aGUgZGF0YSBmbGFncyB0byBiZSBzZXQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjg5ZmE0Nzg2YjNkZjZjYjc5ZjY2MmMwMzdkZWU3NGIzZjc0MjhkNi4KCSAgVGhlIGNoYW5nZXMgYnJlYWsgdmFyaW91cyB0ZXN0cy4KCjIwMTYtMDItMTggMTE6NDM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBBZGQgdGVzdCBmb3IgYmxvY2tpbmcgcHVsbCBwcm9iZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxN2QzMGU5NDRiZTA0MjVlYmI0ZmI2MDQ2ZjgyZDFmNjE3MDFmZThmLgoJICBUaGUgUFVMTCBwcm9iZSBjaGFuZ2VzIGJyZWFrIHZhcmlvdXMgdGVzdHMuCgoyMDE2LTAyLTE4IDExOjA5OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFByb3RlY3QgYWdhaW5zdCBmYWlsaW5nIHRvIG1hcCBpbnB1dCBtZW1vcnkgd2hlbiBtZXJnaW5nIG1lbW9yaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIyMzkKCjIwMTYtMDEtMjggMTY6MjI6MTcgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMi0xNyAxNjo1NzoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBQVUxMIHByb2JlcyBhcmUgY2FsbGVkIHdpdGhvdXQgYSBidWZmZXIgc28gZG9uJ3QgcmVxdWlyZSBhbnkgb2YgdGhlIGRhdGEgZmxhZ3MgdG8gYmUgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDItMTcgMTY6NDE6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IERvbid0IGhvbGQgc3RhdGUgbG9jayBhbGwgdGhlIHRpbWUgd2hpbGUgc2VuZGluZyBhbiBldmVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiNDI3OTk3MTE5YTJiNmFhY2JlYjU1MGY3Mjk5MzZmOGI5NjNlMjRiLgoJICBJdCBicmVha3MgdGhpbmdzIHRoYXQgdXNlZCB0byB3b3JrIGJlZm9yZSwgZXZlbiBpZiB0aGUgY2hhbmdlIGJ5IGl0c2VsZiBpcwoJICBjb3JyZWN0IGFuZCB0aGUgcHJldmlvdXMgY29kZSBpcyBqdXN0IHdvcmtpbmcgYXJvdW5kIGRlZXBlciBidWdzIGluIHRoZSBhc3luYwoJICBzdGF0ZSBjaGFuZ2UgY29kZS4gTGV0J3MgZ28gYmFjayB0byB3aGF0IHByZXZpb3VzbHkgd29ya2VkIGFuZCB0aGVuIGZpeCBhc3luYwoJICBzdGF0ZSBjaGFuZ2VzIGluIGdlbmVyYWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1MzIKCjIwMTYtMDItMTcgMTU6MjY6NDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnaG9zdHBhZDogRG8gbm90aGluZyBpbiBfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0IgoJICBUaGF0IGNvbW1pdCB3b3VsZCBicmVhayBzY2hlZHVsaW5nIHJlY29uZmlndXJhdGlvbiB3aXRoIGdob3N0cGFkcwoJICBUaGlzIHJldmVydHMgY29tbWl0IGFiNTVhZDdlYWFkNGZhMmMwYjE2Yzc4OTM1MGU4ODJjZjcwYTI3ZWQuCgoyMDE2LTAyLTE3IDE1OjI1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrOiBBZGQgdGVzdCBmb3IgY2hlY2tpbmcgc2NoZWR1bGluZyByZWNvbmZpZ3VyYXRpb24gd2l0aCBnaG9zdHBhZHMKCSAgU2hvd2Nhc2VzIHRoZSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgdGhpcyBjb21taXQ6CgkgIENvbW1pdDogYWI1NWFkN2VhYWQ0ZmEyYzBiMTZjNzg5MzUwZTg4MmNmNzBhMjdlZAoJICBBdXRob3I6IFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoJICBEYXRlOiAgIFdlZCBKYW4gMjcgMTM6MjA6MjMgMjAxNiArMDEwMAoJICBnaG9zdHBhZDogRG8gbm90aGluZyBpbiBfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgoyMDE2LTAyLTE3IDExOjAyOjM0ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGFkZCBzb21lIHRlc3RzIGZvciBhY3RpdmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTMKCjIwMTYtMDEtMjcgMTM6MjA6MjMgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEbyBub3RoaW5nIGluIF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCSAgV2hlbiBjYWxsaW5nIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIGEgZ2hvc3RwYWQKCSAgZ3N0X2dob3N0X3BhZF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSB3aWxsIGJlIGNhbGxlZC4gVGhpcyB3aWxsIGNhbGwKCSAgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gdGhlIHByb3h5cGFkICh3aGljaCBpcyBpbnRlcm5hbCBvZiB0aGUKCSAgZ2hvc3RwYWQpLCBjYWxsaW5nIGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCksIHdoaWNoCgkgIGFnYWluIHdpbGwgY2FsbCBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiB0aGUgb3JpZ2luYWwgZ2hvc3RwYWQuCgkgIEJ5IHNpbXBseSByZXR1cm5pbmcgVFJVRSBpbgoJICBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpIHRoZSByZWR1bmRhbnQgY2FsbCB0bwoJICBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSAoZm9yIHRoZSBzYW1lIHBhZCkgaXMgYXZvaWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMwoKMjAxNi0wMi0xNiAxNzo1MzoxMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiByZW1vdmUgdW51c2VkIG1hY3JvCgkgIG1hY3JvIHdhcyBhZGRlZCBpbiAyMDExIGFuZCBpc24ndCB1c2VkIGFueW1vcmUKCjIwMTYtMDItMTYgMTk6MTE6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTI6IGFkZCBvdmVycnVuIHNpZ25hbCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4YWU4YjI3MjNkMGNmMTc5YTRmMDliMmY2YzVmNzk3ZTJkOTcwMzRkLgoJICBJdCdzIG5vdCB1c2VkIGFueW1vcmUgYnkgYW55dGhpbmcgYW5kIHdhcyBjb25zaWRlcmVkIGEgYmFkIGlkZWEgaW4gZ2VuZXJhbC4KCjIwMTQtMDYtMDUgMTM6Mjc6MjggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGFubm90YXRlIEMgZXhhbXBsZXMgYXMgc3VjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMjkyCgoyMDE2LTAyLTE1IDExOjEzOjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJICBiZW5jaG1hcms6IHRyYWNlcnNlcmlhbGl6ZTogYWRkIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudAoJICB0cmFjZXJzZXJpYWxpemUuYzoxMTc6MTogZXJyb3I6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2YKCSAgbm9uLXZvaWQgZnVuY3Rpb24gWy1XZXJyb3I9cmV0dXJuLXR5cGVdCgoyMDE2LTAyLTE1IDEwOjA2OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBwcm90ZWN0aW9uL2hhcm5lc3Mvc3lzdGVtY2xvY2s6IG1vdmUgZGVjbGFyYXRpb24gb3V0IG9mIGZvciBsb29wIGluaXRpYWxpemF0aW9uCgkgIEM5MCBjb21waWxlcnMgY29tcGxhaW4gYWJvdXQgaXQKCSAgZXJyb3I6IOKAmGZvcuKAmSBsb29wIGluaXRpYWwgZGVjbGFyYXRpb25zIGFyZSBvbmx5IGFsbG93ZWQgaW4gQzk5IG9yIEMxMSBtb2RlCgkgIEFsc28gcnVuIGdzdC1pbmRlbnQgb24gc3lzdGVtY2xvY2sgdGVzdHMuCgoyMDE2LTAxLTI3IDE1OjE2OjAzICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGFsd2F5cyBzZXQgb3VyIHRlc3QtY2xvY2sgb24gdGhlIGhhcm5lc3NlZCBlbGVtZW50CgkgIFRoZSBpbnRlZ3JhdGlvbiBpcyBhbHJlYWR5IHNvIHRpZ2h0LCB0aGVyZSBpcyBubyByZWFzb24gdG8KCSAgbm90IGZ1cnRoZXIgZm9ybWFsaXplIGl0IQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE0CgoyMDE2LTAyLTEzIDE2OjEwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggY29tcGlsYXRpb24KCSAgV2FzIHN1cHBvc2VkIHRvIGJlIHNxdWFzaGVkIHdpdGggMzM2YzdiYjYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMAoKMjAxNi0wMi0xMyAxNjoxMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGluZGVudGF0aW9uCgoyMDE2LTAxLTIxIDEzOjMzOjE1ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCBNVCBpc3N1ZXMgd2hlbiBmb3J3YXJkaW5nIGV2ZW50L3F1ZXJ5IHRvIHNpbmsgaGFybmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEwCgoyMDE2LTAyLTEzIDEwOjA0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyAtYmFkIGxpYnJhcmllcyBhdWRpbywgcGxheWVyIGFuZCB3YXlsYW5kIHRvIHBhdGhzCgkgIEFuZCByZW1vdmUgZWdsIHdoaWNoIG5vIGxvbmdlciBleGlzdHMuCgoyMDE2LTAyLTEyIDExOjU3OjU1IC0wODAwICBNYXJ0aW4gS2VsbHkgPG1hcnRpbkBzdXJyb3VuZC5pbz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBwdXNoc3JjOiBmaXggbWlub3IgdHlwb3MgaW4gaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5NzAKCjIwMTYtMDEtMjEgMTM6Mjg6MjMgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBBZGQgZXZlbnQgc3RyZXNzIHRlc3QgZnVuY3Rpb25zIHdpdGggY2FsbGJhY2sKCSAgU2ltaWxhciB0byB0aGUgc3RyZXNzIHRlc3QgZnVuY3Rpb25zIGZvciBidWZmZXJzIHRoYXQgaGFzIGEgY2FsbGJhY2sgdG8KCSAgY3JlYXRlIHRoZSBidWZmZXIgdG8gYmUgcHVzaGVkLCBpdCdzIHVzZWZ1bCB0byBoYXZlIGZ1bmN0aW9ucyB0aGF0IHVzZSBhCgkgIGNhbGxiYWNrIHRvIGNyZWF0ZSB0aGUgZXZlbnQgdG8gYmUgcHVzaGVkLgoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19wdXNoX2V2ZW50X3dpdGhfY2Jfc3RhcnQoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19wdXNoX2V2ZW50X3dpdGhfY2Jfc3RhcnRfZnVsbCgpCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3NlbmRfdXBzdHJlYW1fZXZlbnRfd2l0aF9jYl9zdGFydCgpCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3B1c2hfdXBzdHJlYW1fZXZlbnRfd2l0aF9jYl9zdGFydF9mdWxsKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkzMgoKMjAxNi0wMS0xNCAyMTo1NDo0MiArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IGFkZCBjcmFuayBtZXRob2QKCSAgQW5kIHVzZSBpdCBpbnNpZGUgR3N0SGFybmVzcwoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2NyYW5rKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNgoKMjAxNS0xMi0wOSAxMzo0MzozOCArMTEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBlbmFibGUgZW1wdHkgaGFybmVzcyBjcmVhdGlvbiBhbmQgcmVmYWN0b3IgYXJvdW5kIHRoaXMKCSAgQWxzbyBtYWtlIHRoZSB0ZXN0Y2xvY2sgYSBtZW1iZXIgb2YgdGhlIGhhcm5lc3MsIGFsbG93aW5nIHNvbWUKCSAgbW9yZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgY2xvY2sgcHJpb3IgdG8gYWRkaW5nIGVsZW1lbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA1CgoyMDE2LTAyLTEyIDE1OjEyOjQzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBmaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlciB3YXJuaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTkKCjIwMTUtMDgtMDQgMTc6MDk6MzUgKzAyMDAgIE1pa2hhaWwgRmx1ZGtvdiA8bWlzaGFAcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggdGhlIHJhY2UgaW4gYmxvY2tpbmcgcHVzaCBtb2RlCgkgIERlcGVuZGluZyBvbiB3aGVuIGdzdF9oYXJuZXNzX3B1bGwgd2FzIGNhbGxlZCAtIGJlZm9yZSB0aGUgYnVmZmVyIHJlYWNoZWQKCSAgZ3N0X2hhcm5lc3NfY2hhaW4gb3IgYWZ0ZXIgd2UgY2FuIGdldCBkaWZmZXJlbnQgYmVoYXZpb3JzIG9mIHRoZSB0ZXN0CgkgIHdpdGggZW5hYmxlZCBibG9ja2luZyBwdXNoIG1vZGUuIFRoZSBmaXggbWFrZXMgdGhlIGJlaGF2aW9yIGFsd2F5cyB0aGUKCSAgc2FtZS4gSW4gcHVsbCBmdW5jdGlvbiB3ZSBnZXQgdGhlIGJ1ZmZlciBmaXJzdCwgdGh1cyBtYWtpbmcgc3VyZQoJICBnc3RfaGFybmVzc19jaGFpbiB3YWl0cyBmb3IgdGhlIHNpZ25hbCwgYW5kIGVtaXR0aW5nIHRoZSBzaWduYWwgYWZ0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MzEKCjIwMTYtMDItMDQgMTU6MTY6NDEgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCB0Y2FzZV9za2lwX2Jyb2tlbl9sb29wX3Rlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxNwoKMjAxNi0wMS0yMSAxMzoyNTo0MCArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCBkb2NzIGZvciBzdHJlc3MgdGVzdCBmdW5jdGlvbnMKCSAgbm90aWZ5IGlzIG5vdCBjYWxsZWQgcGVyIGJ1ZmZlciwgYnV0IHdoZW4gdGhlIHRocmVhZCBpcyBmcmVlZC4KCSAgQ29tbWVudCBhYm91dCBzZXJpYWxpemVkIGV2ZW50cyBhbmQgT09CIGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHVwc3RyZWFtCgkgIGV2ZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwOQoKMjAxNS0xMi0wOCAxNDoxODoyMSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IFVuc2V0IHNpbmtfZm9yd2FyZF9wYWQgYmVmb3JlIHRlYXJpbmcgZG93biBzaW5rX2hhcm5lc3MKCSAgU2V0IHRoZSBzaW5rX2ZvcndhcmRfcGFkIHRvIE5VTEwgYmVmb3JlIHRlYXJpbmcgZG93biBzaW5rX2hhcm5lc3MgdG8KCSAgYXZvaWQgdGhhdCB0aGUgaGFybmVzcyB0cmllcyB0byBmb3J3YXJkIGV2ZW50cy9xdWVyaWVzIHRvIGl0IHdoaWxlIGl0J3MKCSAgdGVhcmluZyBkb3duLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA0CgoyMDE1LTA5LTI5IDEyOjEyOjI0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCB1cCBkb2NzIHRvIHJlZmVyZW5jZSBmdW5jdGlvbnMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwMQoKMjAxNi0wMi0xMCAxNDowMTo1NCArMDEwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBwYXNzIGFjcXVpcmUgcGFyYW1zIHRvIGFsbG9jX2J1ZmZlcgoJICBXaGVuIGFsbG9jYXRpbmcgYSBuZXcgYnVmZmVyIGluIHRoZSBwb29sLCBib3RoIHRoZSBkb19hbGxvY19idWZmZXIoKSBhbmQgdGhlCgkgIHZtZXRob2QsIGFsbG9jX2J1ZmZlcigpLCByZWNlaXZlIHRoZSBwYXJhbWV0ZXIgR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMuCgkgIE5vbmV0aGVsZXNzLCB3aGVuIGRlZmF1bHRfYWNxdWlyZV9idWZmZXIoKSBjYWxscyB0aGUgZG9fYWxsb2NfYnVmZmVyKCkgaXQgZG9lcwoJICBub3QgcGFzcyB0aGUgcmVjZWl2ZWQgR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMsIHNvIHdoZW4gdGhlIHVzZXIgcGFzcyB0aG9zZQoJICBwYXJhbWV0ZXJzIHRoZXkgYXJlIGlnbm9yZWQgYnkgYWxsb2NfYnVmZmVyKCkgdm1ldGhvZC4KCSAgVGhpcyBvbmUtbGluZXIgcGF0Y2ggcGFzcyB0aGUgcmVjZWl2ZWQgYWNxdWlyZSBwYXJhbXMgdG8gZG9fYWxsb2NfYnVmZmVyKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE4MjQKCjIwMTYtMDItMTAgMDk6MDk6MjkgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogRml4IHdhaXQvdW5zY2hlZHVsZSByYWNlCgkgIEZpeGVzIGEgcmFjZSB3aGVyZSBhbiBlbnRyeSBpcyBzZXQgdG8gQlVTWSBpbgoJICBnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKCkgYW5kIGlzIFVOU0NIRURVTEVEIGJlZm9yZQoJICBnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKCkgc3RhcnRzIHByb2Nlc3NpbmcgaXQuIFRoZQoJICB3YWtldXAgYWRkZWQgYnkgZ3N0X3N5c3RlbV9jbG9ja19pZF91bnNjaGVkdWxlKCkgbXVzdCBiZSBjbGVhbmVkIHVwLgoJICBUd28gc3RyZXNzIHRlc3RzIGFyZSBhZGRlZC4gT25lIHRlc3QgdGhhdCB0cmlnZ2VycyB0aGUgc3BlY2lmaWMgaXNzdWUKCSAgZGVzY3JpYmVkIGFib3ZlLiBUaGUgc2Vjb25kIHN0cmVzc2VzIHRoZSBjb2RlIHBhdGggd2hlcmUgYSB3YWl0IGlzCgkgIHJlc2NoZWR1bGVkIGJlY2F1c2UgdGhlIHBvbGwgcmV0dXJuZWQgZWFybHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE1ODYKCjIwMTYtMDItMDUgMTU6MzQ6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogaGFuZGxlIHVuc2NoZWR1bGUgb2YgbGF0ZSBlbnRyaWVzCgkgIElmIHRoZSBjbG9ja2VudHJ5IGlzIHRvbyBsYXRlIGFuZCBpcyB1bnNjaGVkdWxlZCBiZWZvcmUgaXQgZ2V0cwoJICBhIGNoYW5nZSB0byBkZXRlY3QgaXRzIGxhdGVuZXNzIHRoZSB3YWtldXAgY291bnQgYW5kIHRoZSBwb2xsIGFyZQoJICB1c2VkIGJ1dCBuZXZlciBwcm9wZXJseSBjbGVhbmVkIHVwLiBUaGlzIGxlYXZlcyBpdCBpbiBhIGRpcnR5IHN0YXRlCgkgIHRoYXQgaXMgZ29pbmcgdG8gbWVzcyB3aXRoIHRoZSBuZXh0IGNsb2NrIGVudHJ5IHdhaXRpbmcgcmVxdWVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE1ODYKCjIwMTYtMDItMDUgMTk6MDg6MTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZXh0ZW5kIHRoZSBBTV9URVNUU19FTlZJUk9OTUVOVCBmcm9tIGNoZWNrLm1hawoJICBUbyBnZXQgdGhlIENLX0RFRkFVTFRfVElNRU9VVCBkZWZpbmVkIGZvciBhbGwgdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTQ3MgoKMjAxNi0wMi0wNSAxODowMTo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NmU0NjYzIHRvIGI2NGYwM2YKCjIwMTYtMDItMDQgMTA6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzdHJheSBkaXNjb250IGZsYWcgc2V0IG9uIG91dGdvaW5nIGJ1ZmZlcnMgaW4gcHVzaCBtb2RlCgkgIFdlIGhhdmUgbm8gZ3VhcmFudGVlcyBhYm91dCB3aGF0IGZsYWdzIGFyZSBzZXQgb24gYnVmZmVycyB3ZSB0YWtlCgkgIG91dCBvZiB0aGUgR3N0QWRhcHRlci4gSWYgd2UgcHVzaCBvdXQgbXVsdGlwbGUgYnVmZmVycyBmcm9tIHRoZQoJICBmaXJzdCBpbnB1dCBidWZmZXIgKHdoaWNoIHdpbGwgaGF2ZSBkaXNjb250IHNldCksIG9ubHkgdGhlIGZpcnN0CgkgIGJ1ZmZlciB3ZSBwdXNoIG91dCBzaG91bGQgYmUgZmxhZ2dlZCBhcyBkaXNjb250LCBub3QgYWxsIG9mIHRoZQoJICBidWZmZXJzIHByb2R1Y2VkIGZyb20gdGhhdCBmaXJzdCBpbml0aWFsIGlucHV0IGJ1ZmZlci4KCSAgRml4ZXMgaXNzdWUgd2hlcmUgdGhlIGZpcnN0IGZldyBtcDMgZnJhbWVzL3NlY29uZHMgb2YgZGF0YSBpbiBwdXNoCgkgIG1vZGUgd2VyZSBza2lwcGVkIG9yIGdhcmJsZWQgaW4gc29tZSBjYXNlcywgYW5kIHRoZSBkaXNjb250IGZsYWdzCgkgIHdvdWxkIGFsc28gdHJpcCB1cCBkZWNvZGVycyB3aGljaCB3ZXJlIGdldHRpbmcgZHJhaW5lZC9mbHVzaGVkIGZvcgoJICBldmVyeSBidWZmZXIuIFRoaXMgd2FzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGluIDEuNiBhcHBhcmVudGx5LgoKMjAxNi0wMi0wMiAxNjozNTozNCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBEbyBub3QgdW5zZXQgdW5pbml0aWFsbGl6ZWQgR1ZhbHVlCgkgIEluIGNhc2UgdGhlIHByb3BlcnR5IHdhcyBub3QgaW50ZXJwb2xsYWJsZSB3ZSBtaWdodCBuZXZlciBpbml0aWFsaXplCgkgIHRoZSBHVmFsdWUsIHdlIHNob3VsZCB0aHVzIG5ldmVyIHVuc2V0IGl0LgoKMjAxNi0wMi0wMiAxNjozNDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBkb2NzOiBwd2c6IGZpeCBtaXNzaW5nIGVuZCBvZiBsaW5lIHNlbWljb2xvbiBpbiBjdXN0b20gbWV0YSBleGFtcGxlCgoyMDE2LTAyLTAyIDEwOjU2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IGFkZCBndWFyZCB0byBtYWtlIHN1cmUgZ3N0cmVhbWVyIGlzIGluaXRpYWxpemVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE0NDgKCjIwMTYtMDItMDEgMTg6NDE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IHJ0c3Agc2VydmVyIHBsdWdpbiBsb2NhdGlvbiB0byBwbHVnaW5zIHBhdGgKCjIwMTYtMDEtMjUgMTY6MzA6MDQgKzA5MDAgIEhvb25IZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBUcnkgdG8gZ2VuZXJhdGUgY2FwcyBvbiB0aGUgc3JjcGFkIGJlZm9yZSBmb3J3YXJkaW5nIEdBUCBldmVudAoJICBUbyBjb25maWd1cmUgZG93bnN0cmVhbSBlbGVtZW50cyBhbmQgY29tcGxldGUgaW5pdGlhbCBwcmUtcm9sbGluZywKCSAgZW5zdXJlIHdlIGhhdmUgZGVmYXVsdCBvdXRwdXQgY2FwcyBiZWZvcmUgZm9yd2FyZGluZyBHQVAgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4OTkKCjIwMTYtMDEtMjggMjA6MTg6NTUgLTA3MDAgIEFsZXggSGVucmllIDxhbGV4aGVucmllMjRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBJbXByb3ZlIEVuZ2xpc2ggZ3JhbW1hcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjczCgoyMDE2LTAxLTI3IDEyOjQ1OjIwICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgZG9jczogZml4IGFuIG90aGVyIHR5cG8gaW4gY2xvY2sgY2hhcHRlcgoJICBTaG9ja2luZ2x5IEkgbWlzc2VkIHRoaXMgYmlnZ2VyIHR5cG8gaW4gdGhlIHByZXZpb3MgZml4CgoyMDE2LTAxLTI3IDEyOjI0OjU3ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gY2xvY2sgY2hhcHRlcgoKMjAxNi0wMS0yNSAxMjowOTo1NCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOmdzdGluZm86IEZpeCBzdHJpbmcgbWVtb3J5IGxlYWsKCSAgaW5mb19mb3VyY2MgdGVzdCBsZWFrcyBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEwNzEKCjIwMTYtMDEtMjMgMTY6MDA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogbWFrZSB3b3JrIHdpdGhvdXQgcmVnaXN0cnkKCjIwMTYtMDEtMjIgMTI6NTA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjaW5nLnNoOgoJICB0cmFjZXI6IHJlbmFtZSBHU1RfVFJBQ0VSX1BMVUdJTlMgZW52IHZhciB0byBHU1RfVFJBQ0VSUwoKMjAxNi0wMS0yMSAwODoxMjowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogZG9uJ3QgbGVhayB0aGUgc3BlYyBzdHJ1Y3R1cmVzCgkgIENoYW5nZSB0aGUgZ3N0X3RyYWNlcl9yZWNvcmRfbmV3KCkgYXBpIHRvIHRha2UgdGhlIHBhcmFtZXRlcnMgdGhlIG1ha2UgdGhlCgkgIHNwZWMgc3RydWN0dXJlIGRpcmVjdGx5LiBUaGlzIGFsbG93cyB1cyB0byBvd24gdGhlIHRvcC1sZXZlbCBzdHJ1Y3R1cmUgYW5kCgkgIGFsc28gY29sbGVjdCB0aGUgYXJncyBzbyB0aGF0IHdlIGNhbiB0YWtlIG93bmVyc2hpcCBvZiB0aGUgc3ViLXN0cnVjdHVyZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMjEgMTU6NDU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogZml4IGNvbXBhcmlzb24gaW4gX2hhc19jbGFzc2VzdigpCgkgIFdlJ3JlIGNvbXBhcmluZyBhIHBvaW50ZXIgdHlwZSB3aXRoICdcMCcgaGVyZSwgd2hpY2gKCSAgcHJvYmFibHkgaXNuJ3QgcmlnaHQsIGFuZCB0aGUgbG9vcCBjb25kaXRpb24gbWFkZSBzdXJlCgkgIHRoYXQgY2xhc3Nlc1swXSBpcyAhPSBOVUxMIGFscmVhZHksIHNvIGl0J3MgcG9pbnRsZXNzLgoJICBXYXMgcHJvYmFieSBtZWFudCB0byBjaGVjayBpZiB0aGUgc3RyaW5nIHBvaW50ZWQgdG8gaXMKCSAgbm90IGVtcHR5LCBzbyBtYWtlIGl0IGRvIHRoYXQgaW5zdGVhZC4KCjIwMTYtMDEtMjAgMjA6MzI6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRlc3QvdHJhY2VycmVjb3JkOiB1bnJlZiBvYmplY3RzIGFuZCBmcmVlIHN0cmluZwoKMjAxNi0wMS0xOCAyMjo0NTo1OCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHRlc3RzOiBhZGRlZCBzdHJlc3MgdGVzdCBmb3IgYXN5bmMgb3JkZXIKCSAgS2VlcCBpbnNlcnRpbmcgYWxhcm1zIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuIER1ZSB0bwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzU3CgkgIGFsYXJtIHRocmVhZCB3aWxsIGdldCBjb25mdXNlZCBhbmQgbm90IHNlcnZlIHRoZW0gaW4gb3JkZXIuCgoyMDE2LTAxLTE4IDE2OjI1OjIwICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4ZWQgcmFjZSBjb25kaXRpb24gaW4gaGFuZGxpbmcgYWxhcm1zCgkgIFdoZW4gY2hvb3NpbmcgdGhlIGZpcnN0IGVudHJ5IGZyb20gdGhlIGxpc3QsIGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkCgkgIG11c3Qgc2V0IHRoZSBlbnRyeSBzdGF0ZSB0byBidXN5IGJlZm9yZSByZWxlYXNpbmcgdGhlIGNsb2NrIGxvY2suIE90aGVyd2lzZQoJICBhIG5ldyBlbnRyeSBjb3VsZCBiZSBhZGRlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IGFuZAoJICBnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCB3aWxsIGJlIHVuYXdhcmUgYW5kIGtlZXAgd2FpdGluZyBvbiB0aGUgZW50cnkKCSAgaXQgaGFzIGFscmVhZHkgY2hvc2VuLgoJICBBbHNvIGltcHJvdmVkIG1lc3NhZ2VzIGFib3V0IGV4cGVjdGVkIHN0YXRlIGFuZCBidW1wZWQgdGhlbSB0byBFUlJPUiBsZXZlbAoJICB0byBkZXRlY3QgdW5leHBlY3RlZCBzdGF0ZSBjaGFuZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzU3CgoyMDE2LTAxLTIwIDExOjA3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZW1vdmUgZHVwbGljYXRlIGNoZWNrCgoyMDE2LTAxLTIwIDA5OjU3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHR3byBzbWFsbCBmaXhlcyBmb3Igd2hlbiBhbiBleGlzdGluZyBwYWQgaXMgcmVxdWVzdGVkCgkgIFVubG9jayB3aGVuIHJldHVybmluZyBOVUxMIGZyb20gZ3N0X3NpbmdsZV9xdWV1ZV9uZXcoKSwgYW5kIGRvbid0CgkgIGNyYXNoIHdpdGggZGVidWcgbG9nZ2luZyBlbmFibGVkIGlmIE5VTEwgaXMgcmV0dXJuZWQuCgkgIFNwb3R0ZWQgYnkgU3RldmVuIEhvdmluZy4KCjIwMTYtMDEtMjAgMTA6MDI6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlbW92ZSBhIGhhbGYgZmluaXNoZXNoIHNlbnRlbmNlIGluIHRoZSBkb2NzCgkgIE5vIGlkZWEgd2hhdCB3YXMgdGhlIGlkZWEgaGVyZS4gU08gbGV0cyBqdXN0IGRyb3AgaXQuCgoyMDE2LTAxLTE5IDE0OjM5OjA2ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IEZpeCBzZWxmLT5zcGVjIHN0cnVjdHVyZSBpbnZhbGlkIGZyZWUKCSAgc2VsZi0+c3BlYyBpcyBnb3QgdXNpbmcgZ192YWx1ZV9nZXRfYm94ZWQoKSwgd2hpY2ggaXMgYSB0cmFuc2ZlciBub25lIGZ1bmN0aW9uLgoJICBTbyB0aGUgc2FtZSBzaG91bGQgbm90IGJlIGZyZWVkLCB3aGljaCBpcyByZXN1bHRpbmcgaW4gd3JvbmcgYmVoYXZpb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMjAgMDk6MjU6NDQgKzAxMDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogSW5pdGlhbGlzZSBmbGFncyB0byBhdm9pZCB3cm9uZyBjb21wYXJpc2lvbgoJICBHc3RUcmFjZXJWYWx1ZUZsYWdzIGlzIG5vdCBiZWluZyBpbml0aWFsaXplZCBhbmQgdGhlIHNhbWUgY291bGQgcmVzdWx0IGluIHdyb25nCgkgIGNvbXBhcmlzaW9uIGFuZCBiZWhhdmlvci4gSGVuY2UgaW5pdGlhbGl6aW5nIGl0IHRvIEdTVF9UUkFDRVJfVkFMVUVfRkxBR1NfTk9ORS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0yMCAwOToxODowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzL2dzdC9pbmZvOiBGaXggbWVzc2FnZXMgZ2xpc3QgbWVtb3J5IGxlYWsKCjIwMTYtMDEtMTkgMTU6MDM6NTUgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRlc3RzOiB0cmFjZXJyZWNvcmQ6IEZpeCBtZXNzYWdlcyBnbGlzdCBtZW1vcnkgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTE4IDIxOjEyOjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHRyYWNlcjogYWRkIGFuIGludGVybmFsIHB0ciBmb3JtYXQgZm9yIHRyYWNlciBzZXJpYWxpc2F0aW9uCgkgIFdlIG5lZWQgdG8gYXBwbHkgdGhlIHN0cmluZyB3cmFwcGluZyB0aGF0IHZhbHVlIHNlcmlhbGlzYXRpb24gZG9lcyBhbHNvIGluIHRoZQoJICB0cmFjZXIgbG9nZ2luZywgb3RoZXJ3aXNlIHdlIGNhbid0IHBhcnNlIG5lc3RlZCBzdHJ1Y3R1cmVzLgoKMjAxNi0wMS0xOCAyMTowOTo0OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgdHJhY2VyL2dzdHN0YXRzOiBmaXggbWlzbWF0Y2ggYmV0d2VlbiAnLmNsYXNzJyBhbmQgdHJhY2VyIGFyZ3MKCSAgQ2xlYW4gdXAgZnJvbSB0aGUgcmVjZW50IGNoYW5nZXMuIFRoZSBsb2dnaW5nIGRlc2NyaXB0aW9ycyBkaWQgbm90IG1hdGNoIHdoYXQgd2UgbG9nZ2VkLgoKMjAxNS0xMS0xMiAwMToxNDozNCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCB1c2UtdGFncy1iaXRyYXRlIHByb3BlcnR5CgkgIFRoZSB1c2UtdGFncy1iaXRyYXRlIHByb3BlcnR5IG1ha2VzIHF1ZXVlMiBsb29rIGF0CgkgIHRhZyBldmVudHMgaW4gdGhlIHN0cmVhbSBhbmQgZXh0cmFjdCBhIGJpdHJhdGUgZm9yIHRoZQoJICBzdHJlYW0gdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgYSBkdXJhdGlvbiBmb3IgYnVmZmVycwoJICB0aGF0IGRvbid0IGhhdmUgb25lIGV4cGxpY2l0bHkgc2V0LgoJICBUaGlzIGxldHMgcXVldWUyIHNlbnNpYmx5IGJ1ZmZlciB0byBhIHRpbWUgdGhyZXNob2xkCgkgIGZvciBhbnkgYnl0ZXN0cmVhbSBmb3Igd2hpY2ggdGhlIGdlbmVyYWwgYml0cmF0ZSBpcyBrbm93bi4KCjIwMTYtMDEtMTkgMTI6MDQ6MTYgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogYXZvaWQgb3ZlcndyaXRpbmcgdmFsdWUKCSAgcmVzIHZhbHVlIGlzIG92ZXJ3cml0dGVuLCByZW1vdmUgdGhlIGFzc2lnbm1lbnQuCgkgIHByaXZfX2dzdF9zdHJ1Y3R1cmVfYXBwZW5kX3RlbXBsYXRlX3RvX2dzdHJpbmcgKCkgYWx3YXlzIHJldHVybnMgVFJVRQoJICBhbnl3YXkuCgkgIENJRCAxMzQ5NjQ1CgoyMDE2LTAxLTE5IDExOjExOjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSAgYmVuY2htYXJrczogRGlzYWJsZSB0cmFjZXJzZXJpYWxpemUgYmVuY2htYXJrIG9uIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBubyBnc3QtZGVidWdnaW5nID0+IG5vIHRyYWNlciBsb2dnaW5nIChhbmQgbm8gcG9ueSBlaXRoZXIpCgoyMDE2LTAxLTE5IDExOjEwOjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkgIHRyYWNlcnJlY29yZDogRGlzYWJsZSBsb2dnaW5nIGlmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBNYWtlIHRoZSBnc3RfdHJhY2VyX3JlY29yZF9sb2coKSBhIG5vLW9wIGlmIHRoZSBnc3QtZGVidWcgc3Vic3lzdGVtCgkgIGlzIGRpc2FibGVkLgoKMjAxNi0wMS0xOCAxOToxNzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZhaWwgZmxhZyBkZXNlcmlhbGl6YXRpb24gb24gaW52YWxpZCBmbGFnIG5hbWVzCgoyMDE2LTAxLTE4IDE5OjEwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogc3RydWN0dXJlOiBmaXggd3JvbmcgZmxhZyBuYW1lIGluIGRlc2VyaWFsaXphdGlvbiB0ZXN0CgkgIFRoZXJlIGlzIG5vIEdTVF9TRUVLX0ZMQUdTX05PTkUgb25seSBHU1RfU0VFS19GTEFHX05PTkUgKGJ1dAoJICB0aGUgZGVzZXJpYWxpemVyIHNpbGVudGx5IHNraXBzIGJhZCBmbGFnIG5hbWVzIGN1cnJlbnRseSkuCgoyMDE2LTAxLTE3IDIzOjQ5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRyYWNlcnM6IGZpeCB0aHJlYWQtaWQgY2FzdHMgdG8gNjQtYml0IGludHMgb24gMzItYml0IHN5c3RlbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc2MgoKMjAxNi0wMS0xOCAxMDoxMzowMiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYvdW5yZWYgbmV3IGVudW0gdHlwZXMgaW4gZ3N0X2luaXQvZGVpbml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NjcKCjIwMTYtMDEtMTcgMDA6MDg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZvciBuZXcgZmxhZ3MgZ2V0X3R5cGUoKQoKMjAxNi0wMS0xNiAyMjo0MzoyMyArMDEwMCAgUGhpbGlwIFZhbiBIb29mIDxwaGlsaXBAY29kZW1pbmRlZC5iZT4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXIuaDogZG9uJ3QgaW5jbHVkZSBwcml2YXRlIG5vaW5zdCBoZWFkZXIgZ3N0dHJhY2VydXRpbHMuaCBpbiBhIHB1YmxpYyBoZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDczMgoKMjAxNi0wMS0xNiAyMToyNDoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgYmVuY2htYXJrOiBpbXByb3ZlIHNjcmlwdAoJICBVc2UgYSB0ZW1wIGZpbGUgZm9yIHRoZSBsb2cgYW5kIGZpeCBvbmUgZW52LXZhci4KCjIwMTYtMDEtMTYgMjE6MjM6MTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyL3N0YXRzOiB1c2UgdGhlIHJpZ2h0IGxvZyB0ZW1wbGF0ZQoJICBXaGVuIHBvcnRpbmcgd2UgdXNlZCB0aGUgd3JvbmcgcmVjb3JkIChjb3B5IGFuZCBwYXN0ZSkuCgoyMDE2LTAxLTE2IDIxOjA0OjQ2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJICB0cmFjZXI6IHVwZGF0ZSB0aGUgZG9jcwoJICBBZGQgdGhlIG5ldyBlbnVtIGFuZCBmbGFncy4gUmVtb3ZlIHRoZSBHc3RUcmFjZXJSZWNvcmRQcml2YXRlLgoKMjAxNi0wMS0xNiAyMTowMjozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBnc3Qtc3RhdHM6IHVwZGF0ZSB0byBsYXRlc3QgdGFyY2VyIGFwaQoJICBUaGUgdGhyZWFkLWlkcyBhcmUgc2VyaWFsaXplZCBhcyB1aW50NjQuIFRoZSAnZWxlbS1peCcgZ290IGNoYW5nZWQgdG8KCSAgJ2VsZW1lbnQtaXgnLiBNYWtlIHRoZSBjb2RlIGEgYml0IG1vcmUgcm9idXN0LgoKMjAxNi0wMS0xNiAxODo1NTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiB1c2UgdGhlIG5ldyBmbGFncyB0byBjcmVhdGUgdGhlIG9wdGlvbmFsIGZpZWxkIGluIHRoZSBmb3JtYXQgc3RyaW5nCgkgIFRoaXMgc3BhcmVzIHVzIGV4cGxpY2l0bHkgbGlzdGluZyB0aGUgZmllbGQgaW4gdGhlIHNwZWMuIGFuZCB0aHVzIGhpZGUgdGhpcwoJICBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCgoyMDE2LTAxLTE2IDE4OjUyOjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGFkZCBhIEdzdFRyYWNlclZhbHVlRmxhZ3MgYW5kIHJlcGxhY2Ugc3RyaW5ncwoJICBUaGlzIGFsbG93cyB1cyB0byBkb2N1bWVudCB0aGUgZmxhZ3MgYW5kIG1ha2VzIHRoZSBsb2dzIGEgYml0IHNtYWxsZXIuCgoyMDE2LTAxLTE2IDE2OjAxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIGZ1bmN0aW9uIGd1YXJkIHRvIGdzdF9tZXNzYWdlX3NldF9idWZmZXJpbmdfc3RhdHMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzA0CgoyMDE2LTAxLTE2IDE0OjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnc3QuaDogRG9uJ3Qgc3BldyB3YXJuaW5ncyBpZiBHU1RfVVNFX1VOU1RBQkxFX0FQSSBpcyBub3QgZGVmaW5lZAoJICBPbmx5IGhpZGUgR3N0VHJhY2VyIGFuZCBHc3RUcmFjZXJSZWNvcmQgQVBJIGJlaGluZCBHU1RfVVNFX1VOU1RBQkxFX0FQSSwKCSAgYnV0IGRvbid0IHNwZXcgYW55IHdhcm5pbmdzLCBvdGhlcndpc2UgZXZlcnlvbmUgaGFzIHRvIGRlZmluZSB0aGlzCgkgIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBUaGlzIHJldmVydHMgcGFydHMgb2YgY29tbWl0IDg5ZWU1ZDk0OGRmZjU2MDIwNGU2ZWRkMjEwYzQ0ZWQyYjg2NTRiOGUuCgoyMDE2LTAxLTE2IDEzOjMwOjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjaW5nLnNoOgoJICBiZW5jaG1hcmtzOiB1cGRhdGUgdGhlIHRyYWNlciBiZW5jaG1hcmsgYW5kIGFkZCBhIHNoZWxsIGJlbmNobWFyawoKMjAxNi0wMS0xNiAxMzoyODozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRvY3MvZGVzaWduOiB1cGRhdGUgdHJhY2Vyc3BlYyBleGFtcGxlcwoKMjAxNi0wMS0xNiAxMzoyNzo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBkb2NzL2Rlc2lnbjogc3BlbGwgY2hlY2tpbmcKCjIwMTYtMDEtMTYgMTM6MjQ6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2VyOiBhZGQgYSBHRmxhZyBmb3IgdGhlIHRyYWNlciBzY29wZQoJICBQb3J0IGFsbCB0cmFjZXJzLiBBZGQgdGhlIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGZsYWcgdG8gdGhlIGludGVybmFsIENGTEFHUyBzbwoJICB0aGF0IHdlIGRvbid0IGhhdmUgdG8gc3BlY2lmeSB0aGlzIGZvciBnaXIsIGRvY3MsIG1rZW51bSwgLi4uCgoyMDE2LTAxLTE2IDEwOjQ4OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IE1ha2UgYWNjZXNzIHRvIHRoZSBhY3RpdmUgcGFkIGFuZCBsYXN0IGJ1ZmZlciB0aHJlYWQtc2FmZQoJICBCb3RoIGNhbiBiZSBtb2RpZmllZCBmcm9tIGRpZmZlcmVudCB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUuCgoyMDE2LTAxLTE2IDEwOjQ3OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IE5vdGlmeSB3aGVuIHRoZSBhY3RpdmUtcGFkIHByb3BlcnR5IGlzIGNoYW5naW5nCgoyMDE2LTAxLTEyIDE0OjU5OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZXJyZWNvcmQ6IGFkZCBhIGxvZyByZWNvcmQgY2xhc3MKCSAgV2UgdXNlIHRoaXMgY2xhc3MgdG8gcmVnaXN0ZXIgdHJhY2VyIGxvZyBlbnRyeSBtZXRhZGF0YSBhbmQgYnVpbGQgYSBsb2cKCSAgdGVtcGxhdGUuIFdpdGggdGhlIGxvZyB0ZW1wbGF0ZSB3ZSBjYW4gc2VyaWFsaXplIGxvZyBkYXRhIHZlcnkgZWZmaWNpZW50bHkuCgkgIFRoaXMgYWxzbyBzaW1wbGlmaWVzIHRoZSBsb2dnaW5nIGNvZGUsIHNpbmNlIHRoYXQgaXMgbm93IGEgc2ltcGxlIHZhcmFyZ3MKCSAgZnVuY3Rpb24gdGhhdCBpcyBub3QgZXhwb3NpbmcgdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCgkgIEFkZCBkb2NzIGZvciB0aGUgbmV3IGNsYXNzIGFuZCBiYXNpYyB0ZXN0cy4KCSAgUmVtb3ZlIHRoZSBwcmV2aW91cyBsb2cgaGFuZGxlci4KCSAgRml4ZXMgIzc2MDI2NwoKMjAxNi0wMS0xNSAwOTo0ODozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdfc29ja2V0X2Nsb3NlKCkKCSAgQ0lEIDEzNDg0NTIKCjIwMTYtMDEtMTUgMDk6MDI6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEZyZWUgZGF0YSBhZnRlciByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0CgkgIERvZXMgbm90IG1hdHRlciBoZXJlIGJ1dCBtYWtlcyBDb3Zlcml0eSBtb3JlIGhhcHB5LiBJdCBjYW4ndAoJICBrbm93IHRoYXQgZ19saXN0X3JlbW92ZSgpIG9ubHkgbG9va3MgYXQgdGhlIHBvaW50ZXIgdmFsdWUgYnV0CgkgIGRvZXMgbm90IGRlcmVmZXJlbmNlIGl0LgoJICBDSUQgMTM0ODQ1NAoKMjAxNi0wMS0xNSAwMDozMDo1OSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgR3N0RGV2aWNlTW9uaXRvcjogQ2xhcmlmeSB0aGUgYmVoYXZpb3VyIG9mIGdzdF9kZXZpY2VfbW9uaXRvcl9hZGRfZmlsdGVyCgoyMDE2LTAxLTE1IDAwOjI1OjA1ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBHc3REZXZpY2VNb25pdG9yOiBEb24ndCByZW1vdmUgdW5tYXRjaGVkIGNsYXNzIGZpbHRlcnMKCSAgSWYgbm8gcHJvdmlkZXJzIGZvciBhIHBhcnRpY3VsYXIgY2xhc3MgY291bGQgYmUgZm91bmQsIHRoZW4gcmVtb3ZpbmcgdW5tYXRjaGVkCgkgIGZpbHRlcnMgd291bGQgY2F1c2UgYWxsIGRldmljZXMgdG8gYmUgcmV0dXJuZWQgaW5zdGVhZCB3aGljaCBpcyBub3QgYXQgYWxsIHdoYXQKCSAgdGhlIHVzZXIgaW50ZW5kZWQuIFdlIHN0aWxsIHJldHVybiAwIGZvciB1bm1hdGNoZWQgZmlsdGVycy4KCjIwMTYtMDEtMTMgMjE6MzI6MjAgKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGaXggR0Vycm9yIG1lbW9yeSBsZWFrIGluIGhhbmRsaW5nIE5UUCByZXNwb25zZQoJICBFcnJvciB3YXMgbm90IHJlbGVhc2VkIGlmIGdzdF9udHBfcGFja2V0X3JlY2VpdmUgZmFpbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTk4CgoyMDE2LTAxLTEzIDEzOjEwOjEwICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZvciBBUEkgYWRkaXRpb25zCgoyMDE2LTAxLTExIDE2OjMxOjM5ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBleHBvc2UgZGVidWdnaW5nIHByaW50ZiBmdW5jdGlvbnMKCSAgT3RoZXIgZ3N0IGxpYnJhcmllcyBhbmQvb3IgZWxlbWVudHMgbWF5IHdhbnQgdG8gYWRkIHNvbWUgZGVidWcgbG9nZ2luZyB0byBhbgoJICBleHRlcm5hbCBkZWJ1ZyBzeXN0ZW0gb3IgaW1wbGVtZW50IGRlbGF5ZWQgZGVidWdnaW5nIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgoJICBFeHBvc2VzIHRoZSBpbnRlcm5hbCBfX2dzdF92YXNwcmludGYgYXMgZ3N0X2luZm9fdmFzcHJpbnRmIHdoaWNoIGhhcyBhIGZhbGxiYWNrCgkgIHRvIGdfdmFzcHJpbnRmIGlmIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgZGlzYWJsZWQuCgkgIEFQSTogZ3N0X2luZm9fdmFzcHJpbnRmCgkgIEFQSTogZ3N0X2luZm9fc3RyZHVwX3ZwcmludGYKCSAgQVBJOiBnc3RfaW5mb19zdHJkdXBfcHJpbnRmCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA0MjEKCjIwMTYtMDEtMTEgMjE6MTc6MjUgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IHNldCBkdXJhdGlvbi9wb3NpdGlvbiBxdWVyeSB2YWx1ZXMgaW4gY2FzZSBvZiBxdWVyeSBzdWNjZXNzCgkgIEN1cnJlbnRseSwgdGhlIHF1ZXJ5IHZhbHVlcyBhcmUgYmVpbmcgc2V0IGV2ZW4gaWYgdGhlIHF1ZXJ5IGl0c2VsZiB3YXMKCSAgZGV0ZXJtaW5lZCB0byBoYXZlIGZhaWxlZC4gRml4IHRoaXMgdG8gZW5zdXJlIHRoZSB2YWx1ZXMgYXJlIG9ubHkgc2V0IGluCgkgIGNhc2Ugb2YgYSBxdWVyeSBzdWNjZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNDc5CgoyMDE2LTAxLTEwIDE0OjMwOjA1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGNvZGUgY2xlYW4gdXBzCgkgIERyb3Agc29tZSB0cmFpbGluZyB3aGlsZXNwYWNlLiBNYWtlIGZpZWxkIG9yZGVyIGNvbnNpc3RlbnQuCgoyMDE2LTAxLTA4IDIzOjM1OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSAgYmVuY2htYXJrOiBmaXggY29weSduJ3Bhc3Qgb2YgdGhlIGZpbGUtZGVzY3JpcHRpb24gY29tbWVudAoKMjAxNi0wMS0wOCAyMzowNjo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSAgYmVuY2htYXJrOiBhZGQgYSBiZW5jaG1hcmsgZm9yIGJnby83NjAyNjcKCSAgQmlnIHN1cHJpc2UgLSBHc3RTdHJ1Y3R1cmUgaXMgZmFzdGVyIHRoYW4gR1ZhcmlhbnQuCgoyMDE1LTAzLTEwIDEzOjA3OjE4ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU5MzkKCjIwMTYtMDEtMDggMTk6MjU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgYnVmZmVyIGxpc3Qgc3VwcG9ydCB0byBHU1RfUFRSX0ZPUk1BVAoKMjAxNS0xMS0yNSAxNzozNjoyNSArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xzb3VyY2U6IGZpeCBHZXRWYWx1ZSBhbmQgR2V0VmFsdWVBcnJheSBkb2N1bWVudGF0aW9uCgkgIEdzdENvbnRyb2xTb3VyY2VHZXRWYWx1ZSgpIHZhbHVlIHBhcmFtYXRlciBpcyBhIGdkb3VibGUsIG5vdCBhIEdWYWx1ZQoJICBhbmQgR3N0Q29udHJvbFNvdXJjZUdldFZhbHVlQXJyYXkgZG9lc24ndCByZXR1cm4gYSBHc3RWYWx1ZUFycmF5IGJ1dAoJICBhbiBhcnJheSBvZiBkb3VibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg2NjgKCjIwMTYtMDEtMDcgMjM6MDM6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGhhcm1vbml6ZSB0aGUgcXVlcnkgaG9va3MKCSAgSW4gcG9zdCBob29rcyBhbHdheXMgcGFzcyB0aGUgcmV0dXJuIHZhbHVlIGFzIHRoZSBsYXN0IHBhcmFtLiBQYXNzIHRoZSBxdWVyeQoJICBhbHNvIHRvIHBvc3QgaG9va3Mgc2luY2UgaXQgaXMgc3RpbGwgYWxpdmUuCgoyMDE2LTAxLTA3IDIyOjQ3OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnMvc3RhdHM6IGFkZCBtaXNzaW5nIHBhcmFtZXRlcnMgdG8gY2FsbGJhY2sgZnVuY3Rpb25zCgoyMDE2LTAxLTA3IDIyOjQzOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcnV0aWxzOiB1cGRhdGUgI2VuZGlmIGNvbW1lbnQKCSAgV2UgY2hhbmdlZCB0aGUgZGVmaW5lLCBidXQgbGVmdCB0aGUgY29tbWVudCBpbmNvbnNpc3RlbnQuCgoyMDE2LTAxLTA3IDE5OjEzOjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXJ1dGlsczogZG9jdW1lbnQgdGhlIHRyYWNlciBob29rIGZ1bmN0aW9ucwoJICBEb2N1bWVudCBhbGwgdHJhY2VyIGhvb2sgZnVuY3Rpb24gcG9pbnRlciB0b2dldGhlciB3aXRoIHRoZSBkZXRhaWwgc3RyaW5nIHRoYXQKCSAgb25lIG5lZWRzIHRvIHVzZSB3aXRoIGdzdF90cmFjaW5nX3JlZ2lzdGVyX2hvb2soKS4KCjIwMTYtMDEtMDcgMTg6NDY6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VyOiBVc2UgR1NUX0RJU0FCTEVfR1NUX1RSQUNFUl9IT09LUyBpbnN0ZWFkIG9mIEdTVF9ESVNBQkxFX0dTVF9ERUJVRyBldmVyeXdoZXJlCgkgIFByZXZpb3VzbHkgd2UgdXNlZCB0aGUgbGF0dGVyIG9uZSBzdGlsbCBmb3IgdGhlIHRyYWNlciB1dGlsaXR5IGNvZGUsIGNhdXNpbmcKCSAgdW5kZWZpbmVkIHJlZmVyZW5jZXMgaW4gdGhlIHJlc3VsdGluZyBiaW5hcnkgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gd2FzCgkgIGRpc2FibGVkIGJ1dCB0aGUgdHJhY2VyIHN5c3RlbSBub3QuCgoyMDE2LTAxLTA3IDE4OjQxOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIGdzdDogUmVuYW1lIF9wcml2X2dzdF9pbmZvX3N0YXJ0X3RpbWUgdG8gX3ByaXZfZ3N0X3N0YXJ0X3RpbWUgYW5kIGluaXRpYWxpemUgaXQgY2VudHJhbGx5CgkgIEl0J3MgdXNlZCBieSB0aGUgZGVidWdnaW5nIGFuZCB0cmFjZXIgc3Vic3lzdGVtIGFuZCBpbiB2YXJpb3VzIGZpbGVzLCBtYWtlIGl0CgkgIGEgY2VudHJhbCB0aGluZyB0aGF0IGlzIGluaXRpYWxpemVkIGluZGVwZW5kIG9mIHRoZSBleGlzdGVuY2Ugb2YgdGhvc2UKCSAgc3Vic3lzdGVtcy4KCjIwMTYtMDEtMDYgMjE6NDI6MzAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSB3aW4zMiBleHBvcnRzCgkgIFJlbW92ZSB0aGUgX2hvb2tfaWQoKSBtZXRob2RzIHdlIG1hZGUgaW50ZXJuYWwgaW4gdGhlIHByZXYgY29tbWl0LgoKMjAxNi0wMS0wNiAyMToxNzoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBsb2cgYSB3YXJuaW5nIGlmIHdlIGNhbid0IHNlcmlhbGl6ZSBhIGZpZWxkCgkgIFRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyBUUlVFIHJpZ2h0IG5vdywgc28gYXRsZWFzdCBsb2cgc29tZXRoaW5nLgoKMjAxNS0xMC0wNiAxMjo0OTowMCArMDAwMCAgQWxla3NhbmRlciBXYWJpayA8YXdhYmlrQG9wZXJhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogcXVldWUyOiBhZGQgdGVzdCBmb3IgZmlsbCBsZXZlbCBhcml0aG1ldGljIG92ZXJmbG93CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU5NzEKCjIwMTYtMDEtMDYgMTk6NTE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIGNhbGN1bGF0aW5nIGZpbGwgbGV2ZWxzIG11bHRpcGxlIHRpbWVzCgkgIE1hY3JvIGV4cGFuc2lvbiBtZWFucyB3ZSBtaWdodCBjYWxjdWxhdGUgdGhlIGZpbGwgbGV2ZWwgb25jZQoJICBmb3IgdGhlIGNoZWNrIGFuZCB0aGVuIHBvc3NpYmx5IGFnYWluIGZvciB0aGUgcmV0dXJuIHZhbHVlLgoKMjAxNi0wMS0wNiAxOTo1MDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGZpbGwgbGV2ZWwgYXJpdGhtZXRpYyBvdmVyZmxvdyB3aXRoIGxhcmdlIHZhbHVlcwoJICBCYXNlZCBvbiBwYXRjaCBieTogQWxla3NhbmRlciBXYWJpayA8YXdhYmlrQG9wZXJhLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTk3MQoKMjAxNi0wMS0wNiAyMDo0MToyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgdHJhY2VyOiBtYWtlIGdzdF90cmFjaW5nX3JlZ2lzdGVyX2hvb2tfaWQgc3RhdGljCgkgIFdlIGRvbid0IG5lZWQgdG8gZXhwb3NlIHRoaXMgYXMgcHVibGljIEFQSS4gQ2hhbmdlIHRoZSBvbmx5IHBsdWdpbiB0aGF0IHdhcwoJICB1c2luZyBpdC4KCjIwMTYtMDEtMDYgMTg6NTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogZGVzaWduOiB1cGRhdGUgbGlzdCBvZiBkaXN0ZWQgZmlsZXMgYWZ0ZXIgZmlsZSByZW5hbWUKCjIwMTYtMDEtMDYgMTk6NDI6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEhpZGUgTlRQIHBhY2tldCBBUEkgYW5kIGFkZCBHU1RfUFRQX1NUQVRJU1RJQ1NfKiBkZWZpbmVzIHRvIHRoZSBkb2NzCgoyMDE2LTAxLTA2IDE4OjE3OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGRvY3M6IHJlbW92ZSBwYXJlbnQgZG9jcyBmb3IgR3N0UHRwQ2xvY2sKCSAgSW5zdGFuY2UgZG9jcyBkb24ndCBuZWVkIHRvIGRvY3VlbW50IHRoZSBwYXJlbnQgKGZpcnN0IG1lbWJlcikuCgoyMDE2LTAxLTA2IDE4OjE0OjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBjbGVhbnVwIC11bnVzZWQudHh0IHJlcG9ydCBmb3IgbGlicwoJICBUaGUgSUdOT1JFX0hfRklMRVMgY2FuIG9ubHkgY29udGFpbiBmaWxlcyBvciBkaXJzLgoKMjAxNi0wMS0wNiAxNzo1ODoxMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBtb3JlIGNvcmUgYXBpIHRvIHRoZSByaWdodCBzZWN0aW9ucwoJICBBZGQgbmV3IGFuZCBkb2N1bWVudGVkIGFwaSByZXBvcnRlZCBpbiAtdW51c2VkLnR4dCB0byAtc2VjdGlvbi50eHQuCgoyMDE2LTAxLTA2IDE3OjU0OjQ0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGV4Y2x1ZGUgbW9yZSBoZWFkZXIgZnJvbSBkb2Mtc2NhbgoJICBFeGNsdWRlIGdzdC9wcmludGYvKi5oIGFuZCBhIGZldyBnZW5lcmF0ZWQgLmggZmlsZXMgZnJvbSB0aGUgYXBpLXNjYW4uIFRoaXMKCSAgbWFrZXMgLXVudXNlZC50eHQgcmVwb3J0IGZpbGUgZnJvbSBndGtkb2MgdXNlZnVsIGFnYWluLgoKMjAxNi0wMS0wNiAxNjoyMTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogYWRqdXN0L3VuYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKSBoYXZlIGEgY2xvY2sgcGFyYW1ldGVyIGJ1dCBpdCdzIHVzZWxlc3MKCSAgRG9jdW1lbnQgdGhpcywgZm9yIDIuMCB3ZSBzaG91bGQganVzdCByZW1vdmUgdGhhdCBwYXJhbWV0ZXIuCgoyMDE2LTAxLTA2IDE2OjE5OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBnc3RfY2xvY2tfdW5hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpCgkgIFdlIGFscmVhZHkgaGF2ZSBnc3RfY2xvY2tfYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKSBhbmQKCSAgZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKCksIGhhdmluZyB0aGUgb3RoZXIgdmFyaWFudCBpcyB1c2VmdWwuCgoyMDE2LTAxLTA2IDEzOjMzOjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBwYWQtZXZlbnQgZnVuY3Rpb24gdG8gdGhlIGRvY3MKCjIwMTYtMDEtMDYgMTM6MjY6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBkb2NzOiBoaWRlIGludGVybmFsIHRyYWNlciBhcGkgZnJvbSBkb2NzCgkgIEFsc28gYWRkcmVzcyB3YXJuaWducyByZWdhcmRpbmcgdGhlIHVuc3RhYmxlIHRyYWNlciBhcGkuCgoyMDE2LTAxLTA2IDEyOjQ3OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIGRvY3M6IGFkZCB0aGUgdHJhY2VyIHRvIHRoZSBkb2NzCgkgIEFkZCBHc3RUcmFjZXIgYW5kIEdzdFRyYWNlckZhY3RvcnkgdG8gdGhlIGNvcmUgZG9jcy4KCjIwMTYtMDEtMDYgMTE6NTI6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzOiByZW5hbWUgdGhlIHRyYWNlciBkb2MgdG8gcGFydCBzaW5jZSBpdCBpcyBub3cgbWVyZ2VkCgoyMDE2LTAxLTA2IDExOjM1OjQ2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB0cmFjZXJ1dGlsczogbW92ZSBoZWFkZXIgdG8gbm9pbnN0IHNlY3Rpb24KCSAgVGhpcyBpcyBpbnRlcm5hbCBjb2RlLCB0aGF0IGlzIG9ubHkgdG8gYmUgdXNlZCBpbiBjb3JlLgoKMjAxNi0wMS0wNiAxMTozMToxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIGNvbmZpZ3VyZTogYWRkIGEgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHRoZSB0cmFjZXIgaG9va3MKCSAgVGhpcyB3YXMgcHJldmlvdXNseSBkb25lIHZpYSB7ZW5hYmxlLGRpc2FibGV9LWdzdC1kZWJ1Zy4gU2luY2UgYm90aCBzdWJzeXN0ZW1zCgkgIGFyZSBpbmRlcGVuZGVudCBoYXZpbmcgc2VwYXJhdGUgb3B0aW9ucyBpcyBiZXR0ZXIuCgoyMDE2LTAxLTA1IDE2OjQ0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBjbG9jazogRml4IHR5cG8KCSAgY2xvY2tlZCAtPiBjbG9jawoKMjAxNi0wMS0wNSAxNDo1OTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRGlzY29ubmVjdCB0aGUgInN5bmNlZCIgc2lnbmFsIGhhbmRsZXIgZnJvbSB0aGUgaW50ZXJuYWwgY2xvY2sKCSAgTm90IGZyb20gdGhlIGV4dGVybmFsIG9uZS4KCjIwMTYtMDEtMDUgMTM6NTc6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiByZW5hbWUgbmV3IGN1YmljIGludGVycG9sYXRpb24gbW9kZQoJICBEb24ndCBhYmJyZXZpYXRlIHRvICdtb25vJyBhbmQgdXNlICdtb25vdG9uaWMnIGluc3RlYWQuCgoyMDE2LTAxLTA1IDE0OjIzOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBEb24ndCBhbGxvdyBzZXR0aW5nIGFuIHVuc3luY2VkIGNsb2NrIGFzIG1hc3RlcgoKMjAxNi0wMS0wNSAxNDoyMTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogRG9uJ3QgdHJ5IHRvIHNsYXZlIHVuc3luY2VkIGNsb2NrcwoJICBUaGV5IHdpbGwgcmV0dXJuIHVzZWxlc3MgdmFsdWVzIGZyb20gZ2V0X3RpbWUoKS4KCjIwMTYtMDEtMDUgMTM6NDE6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbnRwOiBUaGUgY2xvY2sgaW5oZXJpdHMgZnJvbSBHc3ROZXRDbGllbnRDbG9jaywgbm90IGp1c3QgR3N0U3lzdGVtQ2xvY2sKCjIwMTYtMDEtMDQgMTc6MTg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERlc3Ryb3kgYSBjYWNoZWQgY2xvY2sgNjAgc2Vjb25kcyBhZnRlciBpdHMgbGFzdCB1c2UKCSAgVGhlcmUncyBub3QgbXVjaCBsb3N0IGJ5IGhhdmluZyB0aGUgY2xvY2sgaWRsZSBhcm91bmQgYSBiaXQgbG9uZ2VyIGJ1dCBpdCB3aWxsCgkgIHBvdGVudGlhbGx5IGFsbG93IGFueWJvZHkgd2FudGluZyB0byB1c2UgdGhlIHNhbWUgY2xvY2sgc2VydmVyIGFnYWluIHRvIHN5bmMKCSAgbXVjaCBmYXN0ZXIuCgoyMDE2LTAxLTA0IDE2OjMxOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBPbmx5IGV2ZXIgcnVuIG9uZSBjbG9jayBhZ2FpbnN0IGEgc3BlY2lmaWMgc2VydmVyCgkgIElmIG11bHRpcGxlIG5ldC9OVFAgY2xvY2tzIGFyZSBjcmVhdGVkIGZvciB0aGUgc2FtZSBzZXJ2ZXIsIHJldXNlIHRoZSBzYW1lCgkgIGludGVybmFsIGNsb2NrIGZvciBhbGwgb2YgdGhlbS4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QgZmxvb2QgdGhlIHNlcnZlcgoJICB3aXRoIHRvbyBtYW55IHJlcXVlc3RzIGFuZCBhbHNvIHBvc3NpYmx5IGFsbG93cyBmYXN0ZXIgc3luY2hyb25pemF0aW9uIGlmCgkgIHRoZXJlIGFscmVhZHkgd2FzIGFuIGVhcmxpZXIgc3luY2hyb25pemVkIGNsb2NrIHdoZW4gY3JlYXRpbmcgYSBuZXcgb25lLgoKMjAxNi0wMS0wNCAxMDozOToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBVc2UgR0luaXRhYmxlIGluc3RlYWQgb2YgaGF2aW5nIGEgbmV3KCkgZnVuY3Rpb24gdGhhdCBjYW4gcmV0dXJuIE5VTEwKCSAgQmluZGluZ3MgZG9uJ3QgbGlrZSB0aGF0IG11Y2ggYW5kIGFzIHdlJ3JlIHVzaW5nIEdJTyBoZXJlIGFueXdheSB3ZSBjYW4gYXMKCSAgd2VsbCB1c2UgR0luaXRhYmxlIGZvciBwb3NzaWJseSBmYWlsaW5nIGluaXRpYWxpemF0aW9uLgoKMjAxNi0wMS0wMyAxNDowNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBNYXJrIGFkZHJlc3MsIHBvcnQgYW5kIGNsb2NrIHByb3BlcnRpZXMgQ09OU1RSVUNUX09OTFkKCSAgVGhleSBjYW4ndCBzZW5zaWJseSBiZSBjaGFuZ2VkIGFmdGVyIGNvbnN0cnVjdGlvbi4KCjIwMTYtMDEtMDMgMjI6NTU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZV9sYXVuY2g6IG1ha2UgbmljZXIgbG9nIG1lc3NhZ2VzCgkgIEFkZCB0d28gbWFjcm9zIHRvIGJ1aWxkIG5pY2VyIGVsZW1lbnQvcGFkIG5hbWUgc3RyaW5ncy4gVGhlIG1hY3JvcyBhdm9pZAoJICBwcmludGluZyAiKE5VTEwpIiBhbmQgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBpbiBhZGRpdGlvbiB0byB0aGUgbmFtZS4KCjIwMTYtMDEtMDIgMTk6NDI6MTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiB3YXJuIHdoZW4gc3RpbGwgd2FpdGluZyB0byBwbHVnIHN1Yi1waXBlbGluZXMgYWZ0ZXIgbm8tbW9yZS1wYWRzCgkgIFRoZSBwYXJzZS1sYXVuY2ggQVBJIGF1dG9tYWdpY2FsbHkgaGFuZGxlcyBkeW5hbWljIHBhZHMgYW5kIHBlcmZvcm1zIGRlbGF5ZWQKCSAgbGlua2luZyBhcyBuZWVkZWQsIHdpdGhvdXQgYW55IGZlZWRiYWNrIGFib3V0IHdoZXRoZXIgdGhlIGxpbmtpbmcgc3VjY2VlZGVkIG9yCgkgIG5vdCBob3dldmVyLiBJZiBhIGRlbGF5ZWQgZHluYW1pYyBsaW5rIGNhbid0IGJlIGNvbXBsZXRlZCBmb3Igd2hhdGV2ZXIgcmVhc29uLAoJICBwYXJzZS1sYXVuY2ggd2lsbCBzaW1wbHkgd2FpdCBpbiBjYXNlIGEgc3VpdGFibGUgcGFkIGFwcGVhcnMgbGF0ZXIuIFRoaXMgbWF5CgkgIG5ldmVyIGhhcHBlbiB0aG91Z2gsIGluIHdoaWNoIGNhc2UgdGhlIHBpcGVsaW5lIG1heSBqdXN0IGhhbmcgZm9yZXZlci4KCSAgVHJ5IHRvIGltcHJvdmUgdGhpcyBieSBjb25uZWN0aW5nIHRvIHRoZSAibm8tbW9yZS1wYWRzIiBzaWduYWwgb2YgYW55IGVsZW1lbnQKCSAgd2l0aCBkeW5hbWljIHBhZHMgYW5kIHBvc3RpbmcgYSB3YXJuaW5nIG1lc3NhZ2UgZm9yIHRoZSByZWxhdGVkIG91dHN0YW5kaW5nCgkgIGR5bmFtaWMgbGlua3Mgd2hlbiAibm8tbW9yZS1wYWRzIiBpcyBlbWl0dGVkLgoJICBGaXhlcyAjNzYwMDAzCgoyMDE1LTEyLTMxIDE5OjI3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJICBkb2NzOiBmaXggc29tZSB3YXJuaW5ncyBhbmQgYWRkIHNvbWUgc2luY2UgbWFya2VycwoKMjAxNi0wMS0wMyAxMTozOToyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICB0cmFjaW5nOiBhZGQgc29tZSBwb2ludGVycyBhYm91dCBtZW1vcnkgdHJhY2luZwoKMjAxNi0wMS0wMyAxMTozNzo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdyYW1tYXIueTogcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTUtMTItMzEgMDA6MDQ6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IHZhbHVlOiB0ZXN0IGJ1ZmZlciBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBtb3JlIHRob3JvdWdobHkKCSAgVGVzdHMgZGF0YS9zdHJpbmdzIGFzIHdlbGwsIG5vdCBqdXN0IHRoYXQgd2UgcmVjZWl2ZWQKCSAgc29tZXRoaW5nIG5vbi1OVUxMIGJhY2suCgoyMDE1LTEyLTMxIDEwOjU3OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTUtMTItMzAgMTY6NTc6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEltcGxlbWVudCByZXNvbHZhbCBvZiBob3N0bmFtZXMKCSAgSnVzdCBhbGxvd2luZyBJUHMgaGVyZSBpcyBub3QgaWRlYWwgYW5kIGltcGxlbWVudGluZyBETlMgcmVzb2x2YWwgaXMgZWFzeS4KCjIwMTUtMTItMjkgMTY6Mjg6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEFkZCByZWFkLW9ubHkgcHJvcGVydGllcyB0byBnZXQgdGhlIG1hc3RlciBhbmQgZ3JhbmRtYXN0ZXIgY2xvY2sgaWRzCgoyMDE1LTEyLTI5IDE0OjMyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkICh0cmFuc2ZlciBmdWxsKSBhbm5vdGF0aW9uIHRvIHNpbXBsaWZ5KCkgYW5kIHN1YnRyYWN0KCkgcmV0dXJuIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk5NDgKCjIwMTUtMTItMjkgMTE6MDY6MzkgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb24gdG8gY2FwcyByZXR1cm5lZCBieSBpbnRlcnNlcmN0aW9uIGZ1bmN0aW9ucwoJICBUbyBtYWtlIGNsZWFyIGNhbGxlciBpcyByZXNwb25zaWJsZSB0byB1bnJlZiB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5OTQ4CgoyMDE1LTEyLTI4IDE5OjQxOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBuZXQ6IEFkZCBOVFAgYW5kIFBUUCBjbG9jayB0eXBlcyB0byB0aGUgZG9jcwoJICBUaGlzIGdpdmVzIHVzIHRoZSBwcm9wZXJ0eSBkb2N1bWVudGF0aW9uIGZvciBleGFtcGxlLgoKMjAxNS0xMi0yNyAxOTo0MjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBkb24ndCBtZW1jbXAgdHdpY2UKCSAgU2ltcGx5IGNhbGwgZmFpbCgpIGluIHRoZSBjb25kaXRpb24gYWZ0ZXIgdGhlIGZpcnN0IG1lbWNtcC4KCjIwMTUtMTItMjQgMTU6Mjc6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNy4xID09PQoKMjAxNS0xMi0yNCAxMzo1ODo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy4xCgoyMDE1LTEyLTI0IDEyOjUwOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0xMi0yNCAxMjoyMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTEyLTIxIDAwOjQzOjQ5ICswMTAwICBLb29wIE1hc3QgPGt3bUByYWluYm93LXJ1bm5lci5ubD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBNYWtlIC1Cc3ltYm9saWMgY2hlY2sgd29yayB3aXRoIGNsYW5nLgoJICBVcGRhdGUgdGhlIC1Cc3ltYm9saWMgY2hlY2sgd2l0aCB0aGUgdmVyc2lvbiBnbGliIGhhcy4gVGhpcyB2ZXJzaW9uCgkgIHdvcmtzIHdpdGggY2xhbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk3MTMKCjIwMTUtMTItMTYgMDk6MzU6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgdG8gZ2l0CgoyMDE1LTEyLTE0IDExOjA5OjQ2ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIHBsdWdpbnMtYmFkOiBGaXggZXhhbXBsZSBwaXBlbGluZXMKCSAgcmVuYW1lIGdzdC1sYXVuY2ggLS0+IGdzdC1sYXVuY2gtMS4wCgkgIHJlcGxhY2Ugb2xkIGVsZW1lbnRzIHdpdGggbmV3IGVsZW1lbnRzKGZmbXBlZ2NvbG9yc3BhY2UgLT4gdmlkZW9jb252ZXJ0LCBmZmVuY18qKiAtPiBhdmVuY18qKikKCSAgZml4IGNhcHMgaW4gZXhhbXBsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQzMgoKMjAxNS0xMS0xMCAxMjozODo1OSAtMDUwMCAgWGF2aWVyIENsYWVzc2VucyA8eGF2aWVyLmNsYWVzc2Vuc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgY29yZTogQWRkIGdfYXV0b3B0cigpIHN1cHBvcnQgdG8gYWxsIHR5cGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ0NjQKCjIwMTUtMTItMTQgMTM6MDY6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IENoZWNrIGlmIHBhcnNpbmcgdGhlIG5hbWUgdGVtcGxhdGUgd2l0aCBzc2NhbmYoKSB3YXMgc3VjY2Vzc2Z1bAoJICBJZiBub3QsIGdvIGJhY2sgdG8gdGhlIGF1dG9tYXRpYyBwYWQgbnVtYmVyaW5nLgoJICBDSUQgMTE5NTEyOQoKMjAxNS0xMi0xNCAxMToyMDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlL211bHRpcXVldWU6IERvbid0IHNwZWNpYWwtY2FzZSBDQVBTIGV2ZW50cyBpbiB0aGUgZXZlbnQgaGFuZGxlcnMKCSAgRm9yIENBUFMgZXZlbnRzIHdlIHdpbGwgbmV2ZXIgZXZlciBoYXZlIGEgRkFMU0UgcmV0dXJuIHZhbHVlIGhlcmUsIHNvIGp1c3QKCSAgcmVtb3ZlIHRoZSBkZWFkIGNvZGUgaW5zdGVhZCBvZiBjYXVzaW5nIGZ1dHVyZSBjb25mdXNpb24uCgoyMDE1LTEyLTE0IDExOjE2OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgInF1ZXVlOiBJbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mgb2Ygc2luayBldmVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3ODYxNGM1MDVhMmE3NjFjYjRkY2I3ZjRlNWYzZTlmOTdjOWE4ZTg4LgoJICBUaGUgY29kZSBpdCB3YXMgZml4aW5nIGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdCBhbnl3YXkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbgoJICB0aGUgbmV4dCBjb21taXQuCgoyMDE1LTEyLTE0IDEwOjMyOjE0ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogSWxsZWdhbCBtZW1vcnkgYWNjZXNzIG9mIHNpbmsgZXZlbnQKCSAgT25jZSBldmVudCBpcyBwdXNoZWQgdG8gcGFkLCB0aGVuIHF1ZXVlIHNob3VsZCBub3QgYWNjZXNzIHRoZSBldmVudC4KCSAgVGhpcyBpcyBsZWFkaW5nIHRvIGludmFsaWQgcmVhZCB2YWxncmluZCBlcnJvcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQzMAoKMjAxNS0xMi0xNCAxMDoxMDowNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFVucmVmIGV2ZW50IGlmIEdzdEVsZW1lbnQ6OnNlbmRfZXZlbnQoKSBpcyBub3QgaW1wbGVtZW50ZWQKCSAgT3RoZXJ3aXNlIHdlJ2xsIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBldmVudCBvbmx5IGlmIGl0J3MgaW1wbGVtZW50ZWQsIGFuZAoJICBsZWFrIHRoZSBldmVudCBpbiBhbGwgb3RoZXIgc2l0dWF0aW9ucy4KCjIwMTUtMTItMTQgMTA6MDQ6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggZHluYW1pYyBwaXBlbGluZSBleGFtcGxlCgkgIFVzZSBHU1RfUEFEX1BST0JFX1BBU1MgdG8gcGFzcyB0aHJvdWdoIGFsbCBldmVudHMgb3RoZXIgdGhhbiBFT1MgaW5zdGVhZCBvZgoJICBibG9ja2luZyBvbiB0aGUgZmlyc3Qgbm9uLUVPUyBldmVudCBmb3JldmVyLiBBbHNvIGZpeCBhIHR5cG8gaW4gYSBjb21tZW50IGluCgkgIHRoYXQgZnVuY3Rpb24uCgkgIFRoYW5rcyB0byBEYXZpZCBKYWdnYXJkIGZvciByZXBvcnRpbmcgdGhpcyBvbiB0aGUgbWFpbGluZyBsaXN0LgoKMjAxNS0xMi0xMyAwMDozNzozOSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6ICB0eXBvIGluIHRoZSBsb2NhdGlvbiBvZiBtYWtlX2VsZW1lbnQgdG9vbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MzUyCgoyMDE1LTEyLTEyIDAxOjEzOjU5IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBkcm9wIHVubmVlZGVkIG1hY3JvcyBmb3IgR19PU19XSU4zMgoKMjAxNS0xMi0xMiAwMTowOToyMCAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZHJvcCB1bm5lZWRlZCBtYWNyb3MgZm9yIEdfT1NfV0lOMzIKCjIwMTUtMTItMTIgMDE6MDY6NDMgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDIyOjE0OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDIwOjUyOjU3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBzb21lIHR5cG9zCgoyMDE1LTEyLTExIDIwOjQyOjA1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDE5OjExOjAxIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBmaXggc29tZSB0eXBvcwoKMjAxNS0xMi0xMSAxODo1OTozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMTQ6MzY6MjkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBkcm9wIGJvZ3VzIHJlZmVyZW5jZSB0byBmaWxlIGRlc2NyaXB0b3IKCSAgK2ZpeCB0eXBvIG9uIHJldHVybiB2YWx1ZSBjb21tZW50CgoyMDE1LTEyLTExIDE0OjA3OjI3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTAgMTQ6MzI6MjcgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1bnJlZiBtZXNzYWdlIGluIF9wb3N0X21lc3NhZ2Ugd2hlbiB0aGVyZSBpcyBubyBpbXBsZW1lbnRhdGlvbgoJICAnZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlJyB0YWtlcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBtZXNzYWdlLCBzbyBpdAoJICBzaGFsbCB1bnJlZiBpdCB3aGVuIHRoZXJlIGlzIG5vIHBvc3RfbWVzc2FnZSBpbXBsZW1lbnRhdGlvbi4gT3RoZXJ3aXNlCgkgIG1lc3NhZ2UgaXMgbGVha2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MzAwCgoyMDE1LTEyLTEwIDExOjM1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRG9uJ3QgaG9sZCBzdGF0ZSBsb2NrIGFsbCB0aGUgdGltZSB3aGlsZSBzZW5kaW5nIGFuIGV2ZW50CgkgIFRoaXMgbG9jayBzZWVtcyB0byBleGlzdCBvbmx5IHRvIHByZXZlbnQgZWxlbWVudHMgZnJvbSBjaGFuZ2luZyBzdGF0ZXMgd2hpbGUKCSAgZXZlbnRzIGFyZSBiZWluZyBwcm9jZXNzZWQuIEhvd2V2ZXIgZXZlbnRzIGFyZSBnb2luZyB0byBiZSBwcm9jZXNzZWQKCSAgbm9uZXRoZWxlc3MgaW4gdGhvc2UgZWxlbWVudHMgaWYgc2VudCBkaXJlY3RseSB2aWEgcGFkcywgc28gcHJvdGVjdGlvbiBtdXN0CgkgIGFscmVhZHkgYmUgaW1wbGVtZW50ZWQgaW5zaWRlIHRoZSBlbGVtZW50cyBmb3IgZXZlbnQgaGFuZGxpbmcgaWYgaXQgaXMgbmVlZGVkLgoJICBBcyBzdWNoIGhhdmluZyB0aGUgbG9jayBoZXJlIGlzIG5vdCB2ZXJ5IHVzZWZ1bCBhbmQgaXMgYWN0dWFsbHkgY2F1c2luZwoJICB2YXJpb3VzIGRlYWRsb2NrcyBpbiBkaWZmZXJlbnQgc2l0dWF0aW9ucyBhcyBkZXNjcmliZWQgaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDA0MAoKMjAxNS0xMi0wNyAyMDoyNzo0NSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTAzIDE1OjA0OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0wMyAxNTowMToyNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBpbmRlbnRhdGlvbiBmaXhlcwoKMjAxNS0xMi0wOSAxNzo0MDowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCB1c2UgcmFuZG9tIHNlZ21lbnQucG9zaXRpb24gZnJvbSB1cHN0cmVhbQoJICBzZWdtZW50LnBvc2l0aW9uIGlzIG1lYW50IGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5LCBidXQgdGhlIHZhcmlvdXMKCSAgR1NUX0VWRU5UX1NFR01FTlQgY3JlYXRpb25nL3BhcnNpbmcgZnVuY3Rpb25zIHdvbid0IGNsZWFyIHRoYXQgZmllbGQuCgkgIFVzZSB0aGUgYXBwcm9wcmlhdGUgc2VnbWVudCBib3VuZGFyeSBhcyBhbiBpbml0aWFsIHZhbHVlIGluc3RlYWQKCjIwMTUtMTItMDcgMTc6MjU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUG9zdCBhIExBVEVOQ1kgbWVzc2FnZSB3aXRoIGFzeW5jLWhhbmRsaW5nPVRSVUUgaWYgdGhlIFBMQVlJTkcgc3RhdGUgaXMgcmVhY2hlZAoJICBPdGhlcndpc2UgZWFjaCBiaW4gbWlnaHQgaGF2ZSBhIGRpZmZlcmVudCBsYXRlbmN5IGluIHRoZSBlbmQsIGNhdXNpbmcKCSAgc3luY2hyb25pemF0aW9uIHByb2JsZW1zLgoJICBUaGUgYmluIHdpbGwgc3RpbGwgZmlyc3QgaGFuZGxlIGxhdGVuY3kgaW50ZXJuYWxseSBhcyBiZWZvcmUsIGJ1dCBnaXZlcyB0aGUKCSAgb3ZlcmFsbCBwaXBlbGluZSB0aGUgb3Bwb3J0dW5pdHkgdG8gdXBkYXRlIHRoZSBsYXRlbmN5IG9mIHRoZSB3aG9sZSBwaXBlbGluZQoJICBhZnRlcndhcmRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MTI1CgoyMDE1LTEyLTA3IDE4OjIwOjM1ICswMjAwICBBdGhhbmFzaW9zIE9pa29ub21vdSA8YXRob2lrQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9zdCB0YWcgbGlzdCB3aGVuIGF2ZyBiaXRyYXRlIGNoYW5nZXMgYXQgbGVhc3QgMiUKCSAgV2F0Y2hpbmcgdmlkZW9zIHdpdGggdmFyaWFudCBiaXRyYXRlIGlzIGNvbW1vbiB0byBoYXZlIGRlbHRhCgkgIG1vcmUgdGhhbiAxMCBrYnBzLCByZXN1bHRpbmcgaW4gdGFnIGxpc3Qgc3BhbS4KCSAgSW5zdGVhZCBvZiByZWx5aW5nIG9uIGZpeGVkIDEwIGtwYnMgZGVsdGEsIGl0IGlzIGJldHRlciB0bwoJICBjYWxjdWxhbGUgdGhlIGRpZmZlcmVuY2UgaW4gcGVyY2VudGFnZSBhbmQgdXBkYXRlIHRhZyBsaXN0CgkgIG9ubHkgd2hlbiBiaXRyYXRlIGNoYW5nZXMgbW9yZSB0aGFuIDIlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDU1CgoyMDE1LTEyLTA3IDA5OjA4OjAxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjMxOTkwOSB0byA4NmU0NjYzCgoyMDE1LTEyLTA3IDEyOjU5OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2hlY2sgZm9yIGFuIGFjdGl2YXRlZCBwYWQgYmVmb3JlIGFkZGluZywgbm90IGEgbm9uLWZsdXNoaW5nIG9uZQoJICBUaGUgcGFkIGNvdWxkIGJlIGFjdGl2YXRlZCBidXQgZmx1c2hpbmcgYmVjYXVzZSBvZiBhIEZMVVNIX1NUQVJUIGV2ZW50LiBUaGF0J3MKCSAgbm90IHdoYXQgd2UncmUgbG9va2luZyBmb3IgaGVyZSwgd2Ugd2FudCB0byBjaGVjayBmb3IgYWN0aXZhdGVkIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5MjgKCjIwMTUtMTEtMTkgMTU6MzM6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogZnVubmVsOiByZW1vdmUgc3RhdGUgY2hhbmdlIGZyb20gc3RyZXNzIHRlc3RzCgkgIENoYW5naW5nIHN0YXRlcyB1cCBhbmQgZG93biB3aGlsZSBidWZmZXJzIGFyZSBiZWluZyBwdXNoZWQgaXMgbm90CgkgIGEgdmFsaWQgdXNlIGNhc2UuIElmIGEgcGFkIGlzIGRlYWN0aXZhdGVkIGFuZCByZWFjdGl2YXRlZCBkdXJpbmcKCSAgYSBidWZmZXIgcHVzaCBpdCBpcyByYWN5IHdpdGggdGhlIGNoZWNrIG9mIHB1c2hlZCBzdGlja3kgZXZlbnRzCgkgIGFuZCB0aGUgYWN0dWFsIGNoYWluZnVuY3Rpb24gY2FsbC4gQXMgaXQgbWlnaHQgY2FsbCB0aGUgY2hhaW4KCSAgd2l0aG91dCBub3RpY2luZyB0aGUgcGVlciBwYWQgbG9zdCBpdHMgcHJldmlvdXMgc3RpY2t5IGV2ZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODM0MAoKMjAxNS0xMi0wNCAxMDoyMjo1NiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeCBwcm9jZXNzIHJldHVybiB2YWx1ZSBvbiBlcnJvcgoJICBJbiBjYXNlIG9mIGEgcnVuLXRpbWUgZXJyb3IgbWVzc2FnZSwgdGhlIHByb2Nlc3MgcmV0dXJuIHZhbHVlIHdhcyBsZWZ0CgkgIHVuc2V0LiBUaGlzIHdvdWxkIGxlYWQgdG8gZXJyb3Igbm90IGJlaW5nIGNhdWdodCBhdCBzaGVsbCBsZXZlbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTAxOQoKMjAxNS0xMi0wNCAxMDo0NToyNSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IGdzdC1sYXVuY2g6IHJldHVybiBub24tMCBleGl0IGNvZGUgb24gYXN5bmMgZXJyb3IiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmVlNGNiYTI0ODVkN2YxNjQ2ZDQ4ZTQ1NTk0MjZhZWQ0YmE5OWM4NS4KCjIwMTUtMTItMDQgMTU6MDk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiByZXR1cm4gbm9uLTAgZXhpdCBjb2RlIG9uIGFzeW5jIGVycm9yCgkgIFdoZW4gYW4gZXJyb3IgaGFwcGVucyBpbiBwbGF5aW5nIHN0YXRlLCBzdGlsbCByZXR1cm4gYQoJICBub24tMCBleGl0IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwMTkKCjIwMTUtMTItMDQgMTQ6Mzk6MjkgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiByZWFsbHkgZml4IGluc3RhbGwgcmFjZQoJICBNeSBwcmV2aW91cyBmaXggZm9yICM3NTgwMjkgd2Fzbid0IHF1aXRlIHJpZ2h0IGFuZCBzaW1wbHkgbWFkZSB0aGUgcmFjZSByYXJlci4KCSAgU29tZSBvZiB0aGUgZmlsZXMgYXJlIGluc3RhbGxlZCBieSBpbnN0YWxsLWV4ZWMgYW5kIG90aGVycyBieSBpbnN0YWxsLWV4ZWMsIHNvCgkgIHRoZSBob29rcyBuZWVkIHRvIGJlIHNwbGl0IHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAyOQoKMjAxNS0xMi0wNCAxMTo1Njo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBkb2NzCgkgIFRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGhhcyBwYXJhbWV0ZXJzIHdpdGggdGhlIG1ldGEgQVBJLCBub3QgZmxhZ3MuCgoyMDE1LTEyLTAyIDE1OjAyOjI1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBEcm9wIHVzYWdlIG9mIGRlcHJlY2F0ZWQgZy1pci1zY2FubmVyIC0tc3RyaXAtcHJlZml4IGZsYWcKCjIwMTUtMTItMDIgMTY6Mjg6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IHNldC9nZXQgcHJvcGVydHkKCSAgQmxhbWUgaXQgb24gdGhlIHJlYmFzaW5nIDopCgoyMDE1LTExLTEyIDE3OjE1OjM3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IEltcGxlbWVudCBHc3RQYWRFdmVudEZ1bGxGdW5jdGlvbgoJICBBUEk6IEdzdFBhZEV2ZW50RnVsbEZ1bmN0aW9uCgkgIFJldHVybnMgYSBHc3RGbG93UmV0dXJuLCBhbGxvd3MgYXN5bmNocm9ub3VzIGVsZW1lbnRzIHRvIHByb3Blcmx5CgkgIHByb3BhZ2F0ZSBmbG93IHJldHVybnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzgyMQoKMjAxNS0xMS0zMCAxNzowOTo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogVXNlIHNpZ25lZCBjbG9jayB2YWx1ZXMgZm9yIHJ1bm5pbmcgdGltZSBjYWxjdWxhdGlvbgoJICBUaGlzIGltcHJvdmVzIHRoZSBhY2N1cmFjeSBvZiBxdWV1ZSBsZXZlbHMgYW5kIHdoZW4gdG8gcHVzaCBidWZmZXJzCgkgIGZvciBidWZmZXJzIGZhbGxpbmcgb3V0c2lkZSBvZiB0aGUgc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTkzCgoyMDE1LTExLTI3IDA5OjQ1OjI5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBBZGQgYW4gZXh0cmEgY2FjaGUgdGltZSBmb3IgdW5saW5rZWQgc3RyZWFtcwoJICBXaGVuIHN5bmNocm9uaXppbmcgdGhlIG91dHB1dCBieSB0aW1lLCB0aGVyZSBhcmUgc29tZSB1c2UtY2FzZXMgKGxpa2UKCSAgYWxsb3dpbmcgZ2FwbGVzcyBwbGF5YmFjayBkb3duc3RyZWFtKSB3aGVyZSB3ZSB3YW50IHRoZSB1bmxpbmtlZCBzdHJlYW1zCgkgIHRvIHN0YXkgc2xpZ2h0bHkgYmVoaW5kIHRoZSBsaW5rZWQgc3RyZWFtcy4KCSAgVGhlICJ1bmxpbmtlZC1jYWNoZS10aW1lIiBwcm9wZXJ0eSBhbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSBieSBob3cKCSAgbXVjaCB0aW1lIHRoZSB1bmxpbmtlZCBzdHJlYW1zIHNob3VsZCB3YWl0IGJlZm9yZSBwdXNoaW5nIGFnYWluLgoKMjAxNS0xMC0yNiAwODowNjowMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogT3B0aW1pemUgbXVsdGlxdWV1ZSBzaXplcyBiYXNlZCBvbiBpbnRlcmxlYXZlCgkgIE11bHRpcXVldWUgc2hvdWxkIG9ubHkgYmUgdXNlZCB0byBjb3BlIHdpdGg6CgkgICogZGVjb3VwbGluZyB1cHN0cmVhbSBhbmQgZG93c3RyZWFtIHRocmVhZGluZyAoaS5lLiBoYXZpbmcgc2VwYXJhdGUgdGhyZWFkcwoJICBmb3IgZWxlbWVudGFyeSBzdHJlYW1zKS4KCSAgKiBFbnN1cmluZyBpbmRpdmlkdWFsIHF1ZXVlcyBoYXZlIGVub3VnaCBzcGFjZSB0byBjb3BlIHdpdGggdXBzdHJlYW0gaW50ZXJsZWF2ZQoJICAoZGlzdGFuY2UgaW4gc3RyZWFtIHRpbWUgYmV0d2VlbiBjby1sb2NhdGVkIHNhbXBsZXMpLiBUaGlzIGlzIHRvIGd1YXJhbnRlZQoJICB0aGF0IHdlIGhhdmUgZW5vdWdoIHJvb20gaW4gZWFjaCBpbmRpdmlkdWFsIHF1ZXVlcyB0byBwcm92aWRlIG5ldyBkYXRhIGluCgkgIGVhY2gsIHdpdGhvdXQgYmVpbmcgYmxvY2tlZC4KCSAgKiBMaW1pdCB0aGUgcXVldWUgc2l6ZXMgdG8gdGhhdCBpbnRlcmxlYXZlIGRpc3RhbmNlIChhbmQgYW4gZXh0cmEgbWluaW1hbAoJICBidWZmZXJpbmcgc2l6ZSkuIFRoaXMgaXMgdG8gZW5zdXJlIHdlIGRvbid0IGNvbnN1bWUgdG9vIG11Y2ggbWVtb3J5LgoJICBCYXNlZCBvbiB0aGF0LCBtdWx0aXF1ZXVlIG5vdyBjb250aW51b3VzbHkgY2FsY3VsYXRlcyB0aGUgaW5wdXQgaW50ZXJsZWF2ZQoJICAocGVyIGluY29taW5nIHN0cmVhbWluZyB0aHJlYWQpLiBCYXNlZCBvbiB0aGF0LCBpdCBjYWxjdWxhdGVzIGEgdGFyZ2V0CgkgIGludGVybGVhdmUgKGN1cnJlbnRseSAxLjUgeCByZWFsX2ludGVybGVhdmUgKyAyNTBtcyBwYWRkaW5nKS4KCSAgSWYgdGhlIHRhcmdldCBpbnRlcmxlYXZlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBtYXhfc2l6ZS50aW1lLCBpdCB3aWxsCgkgIHVwZGF0ZSBpdCBhY2NvcmRpbmdseSAodG8gYWxsb3cgZW5vdWdoIG1hcmdpbiB0byBub3QgYmxvY2spLgoJICBJZiB0aGUgdGFyZ2V0IGludGVybGVhdmUgZ29lcyBkb3duIGJ5IG1vcmUgdGhhbiA1MCUsIHdlIHJlLWFkanVzdCBpdCBvbmNlCgkgIHdlIGtub3cgd2UgaGF2ZSBnb25lIHBhc3QgYSBzYWZlIGRpc3RhbmNlICgyIHggY3VycmVudCBtYXhfc2l6ZS50aW1lKS4KCSAgVGhpcyBtb2RlIGNhbiBvbmx5IGJlIHVzZWQgZm9yIGluY29taW5nIHN0cmVhbXMgdGhhdCBhcmUgZ3VhcmFudGVlZCB0byBiZQoJICBwcm9wZXJseSB0aW1lc3RhbXBlZC4KCSAgRnVydGhlcm1vcmUsIHdlIGlnbm9yZSBzcGFyc2Ugc3RyZWFtcyB3aGVuIGNhbGN1bGF0aW5nIGludGVybGVhdmUgYW5kIG1heGltdW0KCSAgc2l6ZSBvZiBxdWV1ZXMuCgkgIEZvciB0aGUgc2ltcGxlc3Qgb2YgdXNlLWNhc2VzIChzaW5nbGUgc3RyZWFtKSwgbXVsdGlxdWV1ZSBhY3RzIGFzIGEgc2luZ2xlCgkgIHF1ZXVlIHdpdGggYSB0aW1lIGxpbWl0IG9mIDI1MG1zLgoJICBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgaW5wdXRzLCBidXQgZWFjaCBjb21lIGZyb20gYSBkaWZmZXJlbnQgc3RyZWFtaW5nIHRocmVhZCwKCSAgdGhlIG1heGltdW0gdGltZSBsaW1pdCB3aWxsIGFsc28gZW5kIHVwIGJlaW5nIDI1MG1zLgoJICBPbiByZWd1bGFyIGZpbGVzIChtb3JlIHRoYW4gb25lIGlucHV0IHN0cmVhbSBmcm9tIHRoZSBzYW1lIHVwc3RyZWFtIHN0cmVhbWluZwoJICB0aHJlYWQpLCBpdCBjYW4gcmVkdWNlIHRoZSB0b3RhbCBtZW1vcnkgdXNlZCBhcyBtdWNoIGFzIDEweCwgZW5kaW5nIHVwIHdpdGgKCSAgbWF4X3NpemUudGltZSBhcm91bmQgNTAwbXMuCgkgIER1ZSB0byB0aGUgYWRhcHRpdmUgbmF0dXJlLCBpdCBjYW4gYWxzbyBjb3BlIHdpdGggY2hhbmdpbmcgaW50ZXJsZWF2ZSAod2hpY2gKCSAgY2FuIGhhcHBlbiBjb21tb25seSBvbiBzb21lIGZpbGVzIGF0IHN0YXJ0dXAvcHJlLXJvbGwgdGltZSkKCjIwMTMtMDEtMDggMjE6MTY6NDIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHVzZSBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50IHNwYXJzZSBmbGFnIHRvIGF2b2lkIG92ZXJyZWFkaW5nIHN1YnRpdGxlcwoJICBUaGlzIHdpbGwgbWVhbiBhIG11Y2ggbG93ZXIgZGVsYXkgYmVmb3JlIGEgc3VidGl0bGVzIHRyYWNrIGNoYW5nZXMgdGFrZQoJICBlZmZlY3QuIEFsc28gYXZvaWRzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2UgaW4gbWFueSBjYXNlcy4KCSAgVGhpcyB3aWxsIGFsc28gY29uc2lkZXIgc3BhcnNlIHN0cmVhbXMgYXMgKGluZGl2aWR1YWxseSkgbmV2ZXIgZnVsbCwgc28KCSAgYXMgdG8gYXZvaWQgYmxvY2tpbmcgYWxsIHBsYXliYWNrIGR1ZSB0byBvbmUgc3BhcnNlIHN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDY0OAoKMjAxNS0xMC0zMCAxMDoyMjoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggaGlnaF90aW1lIGNvbXB1dGF0aW9uCgkgICogQXZvaWQgdGhlIGNvbXB1dGF0aW9uIGNvbXBsZXRlbHkgaWYgd2Uga25vdyB3ZSBkb24ndCBuZWVkIGl0IChub3QgaW4KCSAgc3luYyB0aW1lIG1vZGUpCgkgICogTWFrZSBzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGhpZ2hlc3QgdGltZSB3aXRoIEdTVF9DTE9DS19USU1FX05PTkUgb24KCSAgdW5saW5rZWQgcGFkcwoJICAqIEVuc3VyZSB0aGUgaGlnaF90aW1lIGdldHMgcHJvcGVybHkgdXBkYXRlZCBpZiBhbGwgcGFkcyBhcmUgbm90IGxpbmtlZAoJICAqIEZpeCB0aGUgY29tcGFyaXNpb24gaW4gdGhlIGxvb3Agd2hldGhlciB0aGUgdGFyZ2V0IGhpZ2ggdGltZSBpcyB0aGUgc2FtZQoJICBhcyB0aGUgY3VycmVudCB0aW1lCgkgICogU3BsaXQgd2FrZV91cF9uZXh0X25vbl9saW5rZWQgbWV0aG9kIHRvIGF2b2lkIHVzZWxlc3MgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzM1MwoKMjAxNS0xMS0wNiAwMzowMjo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IERvbid0IHJlcG9ydCAwJSB1bmxlc3MgZW1wdHkKCSAgV2hlbiBwcmVwYXJpbmcgYSBidWZmZXJpbmcgbWVzc2FnZSwgZG9uJ3QgcmVwb3J0IDAlIGlmIHRoZXJlCgkgIGlzIGFueSBieXRlcyBsZWZ0IGluIHRoZSBxdWV1ZSBhdCBhbGwuIFdlIHN0aWxsIGhhdmUgc29tZXRoaW5nCgkgIHRvIHB1c2gsIHNvIGRvbid0IHRlbGwgdGhlIGFwcCB0byBzdGFydCBidWZmZXJpbmcgLSBtYXliZQoJICB3ZSdsbCBnZXQgbW9yZSBkYXRhIGJlZm9yZSBhY3R1YWxseSBydW5uaW5nIGRyeS4KCjIwMTUtMTEtMzAgMTc6MTE6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZ3N0Y2xvY2s6IEZpeCBHU1RfU1RJTUVfQVJHUwoJICBJdCB3YXNuJ3QgcHJvcGVybHkgaGFuZGxpbmcgR1NUX0NMT0NLX1NUSU1FX05PTkUgYW5kIGFsd2F5cyB1c2UgdGhlCgkgIHNpZ24gbWFya2VyICgrLy0pIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGlkZW50aWZ5IHNpZ25lZCB2YWx1ZXMgaW4KCSAgbG9ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4ODcwCgoyMDE1LTExLTMwIDIzOjA4OjUwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBBbm5vdGF0ZSBnZXRfdmFsdWVbX2FycmF5XSBhcyAobWV0aG9kKQoJICBBcyB0aGUgbmFtZXMgY2xhc2ggd2l0aCBnc3Rfb2JqZWN0X2dldF92YWx1ZVtfYXJyYXldCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY5NTAKCjIwMTUtMTEtMTMgMTc6MzI6NTcgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IEFkZCBwcmVmaXggc3VwcG9ydCB0byBkZXBlbmRlbmNpZXMKCSAgVGhpcyBhZGRzIGEgbmV3IGZsYWdzLCBHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19GSUxFX05BTUVfSVNfUFJFRklYLAoJICB3aGljaCBhbGxvdyB1c2luZyB0aGUgbmFtZXMgYXMgcHJlZml4IGZvciBwbHVnaW4gZGVwZW5jaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDgzCgoyMDE1LTExLTEzIDE2OjMyOjMxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogQWxsb3cgZGV2aWNlIG5vZGVzIGFzIGRlcGVuZGVuY3kKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGZlYXR1cmUgdGhhdCBhcmUgcHJvZHVjZWQgYWZ0ZXIgcHJvYmluZyBhIHNwZWNpZmljCgkgIG5vZGUuIFlvdSB3YW50IHRvIHJlbG9hZCB0aGlzIHBsdWdpbiBpZiB0aGUgc3BlY2lmaWMgbm9kZShzKSBoYXZlIGJlZW4KCSAgcmVtb3ZlZCwgYWRkZWQsIG9yIHJlbG9hZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDgwCgoyMDE1LTExLTEzIDE2OjIwOjQyIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogRG9uJ3QgZG8gbG9zc3kgc2hpZnQgb24gaGFzaAoJICBJbiBwbHVnaW4gaXMgcmVzcG9uc2libGUgZm9yIGNhbGN1bGF0aW5nIGEgaGFzaCBvZiB0aGUgZGVwZW5kZW5jaWVzCgkgIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgY2FjaGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIG9yIG5vdC4KCSAgQ3VycmVudGx5LCB0aGUgaGFzaCBjb21iaW5pbmcgbWV0aG9kIHJlbW92ZXMgYSBiaXQgb2YgdGhlIG9yaWdpbmFsCgkgIGhhdmUgYmVmb3JlIGNvbWJpbmluZyB3aXRoIGFuIGFkZGl0aW9uLiBBcyB3ZSB1c2UgMzJiaXRzIGZvciBvdXIgaGFzaAoJICBhbmQgc2hpZnQgMSBiaXQgZm9yIGVhY2ggZmlsZSBhbmQgZGlyZWN0b3J5LCB0aGF0IHJlc3VsdGluZyBoYXNoIG9ubHkKCSAgYWNjb3VudCBmb3IgdGhlIGxhc3QgMzIgZmlsZXMuIEFuZCBpcyBtb3JlIGFmZmVjdGVkIGJ5IHRoZSBsYXN0IGZpbGUuCgkgIFJvdGF0aW5nIHRlY2huaXF1ZSAoc2hpZnRpbmcsIGFuZCBhZGRpbmcgYmFjayB0aGUgZW5kaW5nIGJpdCksIGNhbiBiZQoJICB1c2UgdG8gbWFrZSB0aGUgYWRkaXRpb24gbm9uLWNvbW11dGF0aXZlLiBJbiBhIHdheSB0aGF0IGRpZmZlcmVudCBvcmRlcgoJICBnaXZlcyBkaWZmZXJlbnQgaGFzaGVzLiBJbiB0aGlzIGNhc2UsIEkgZG9uJ3QgcHJlc2VydmUgdGhpcyBiZWhhdmlvdXIKCSAgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGZpbGVzIGFyZSBwcm92aWRlZCBieSB0aGUgT1MgaXMKCSAgaXJyZWxldmFudC4KCSAgSW4gbW9zdCBjYXNlcywgdGhlIFhPUiBvcGVyYXRpb24gaXMgdXNlZCB0byBjb21iaW5lIGhhc2hlcy4gSW4gdGhpcwoJICBjb2RlIHdlIHVzZSB0aGUgYWRkaXRpb24uIEkgZGVjaWRlZCB0byBwcmVzZXJ2ZSB0aGUgYWRkaXRpb24gYmVjYXVzZQoJICB3ZSBtYWtlIHVzZSBvZiBub24tcmFuZG9tIGhhc2ggKChndWludCkgLTEpIGluIHRoZSBhbGdvcml0aG0gZm9yCgkgIG1hdGNoaW5nIGZpbGVzIHRoYXQgYXJlIG5vdCByZWFsbHkgcGFydCBvZiB0aGUgaGFzaCAoc3ltbGlua3MsIHNwZWNpYWwKCSAgZmlsZXMpLiBEb2luZyBzdWNjZXNzaXZlIFhPUiBvbiB0aGlzIHZhbHVlLCB3aWxsIHNpbXBseSBzd2l0Y2ggZnJvbQoJICBmdWxsIG9uZXMsIHRvIGZ1bGwgemVyby4gVGhlIFhPUiB1c2VkIHdpdGggd2hpdGVsaXN0IGhhcyBiZWVuIHByZXNlcnZlZAoJICBhcyBpdCdzIGJhc2VkIG9uIGEgZmFpcmx5IHJhbmRvbWl6ZWQgaGFzaCAoZ19zdHJfaGFzaCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwNzgKCjIwMTUtMTEtMjMgMjE6NDA6MzQgKzAwMDAgIEx1a2FzeiBGb3J5bnNraSA8bHVrYXN6LmZvcnluc2tpQHlvdXZpZXcuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCAtV3BlZGFudGljIGFuZCBnY2MgNQoJICBHc3RyZWFtZXIgY29tcGlsZWQgd2l0aCBnY2MgNS4yIGFuZCAtV3BlZGFudGljIHByb2R1Y2VzIHRoZQoJICBmb2xsb3dpbmcgd2FybmluZzoKCSAgJ0lTTyBDIGRvZXMgbm90IHN1cHBvcnQgJ19fRlVOQ1RJT05fXycgcHJlZGVmaW5lZCBpZGVudGlmaWVyIFstV3BlZGFudGljXQoJICBjb25zdCBjaGFyICpzID0gX19GVU5DVElPTl9fOycKCSAgU2luY2UgZ2NjIDUgZW5hYmxlcyBDOTkgYnkgZGVmYXVsdCwgdXNlIF9fZnVuY19fIGlmIGl0J3MgYXZhaWxhYmxlCgkgIGluc3RlYWQgb2YgdGhlIG5vbi1zdGFuZGFyZCBfX0ZVTkNUSU9OX18gKGFzIHN1Z2dlc3RlZCBpbiBbMl0pLgoJICBbMV06IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2NjLTUvY2hhbmdlcy5odG1sCgkgIFsyXTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9nY2MtNS9wb3J0aW5nX3RvLmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODU0MQoKMjAxNS0xMS0yMCAxOTo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIGNvbnRyb2xsZXI6IGZpeCBhbm5vdGF0aW9uIHRvIG1ha2UgZy1pci1zY2FubmVyIGhhcHB5CgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6NTk6IFdhcm5pbmc6IEdzdENvbnRyb2xsZXI6IG1pc3NpbmcgIjoiIGF0IGNvbHVtbiA1MToKCSAgKiBAR1NUX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQ19NT05POiAoU2luY2UgMS44KSBtb25vdG9uaWMgY3ViaWMgaW50ZXJwb2xhdGlvbiwgd2lsbCBub3QKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDo1OTogV2FybmluZzogR3N0Q29udHJvbGxlcjogdW5rbm93biBhbm5vdGF0aW9uOiBzaW5jZQoKMjAxNC0wOS0yOSAxNDowMzoxMyArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgR1NUX1RBR19QUklWQVRFX0RBVEEKCSAgQ2FuIGJlIHVzZWQgdG8gcmVwcmVzZW50IHByaXZhdGUgZGF0YSB0aGF0IG1heSBiZQoJICBjb250YWluZWQgaW4gdGFncywgc3VjaCBhcyBJRDN2MiBQUklWIGZyYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDkyNgoKMjAxNS0xMS0xOSAxNzoyNDo1MyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIGRvY3M6IHVwZGF0ZSBnc3QtbGF1bmNoLTAuMTAgbGluZXMKCSAgVXBkYXRlIHJlZmVyZW5jZXMgdG8gZ3N0LWxhdW5jaC0wLjEwIHRvIGdzdC1sYXVuY2gtMS4wCgoyMDE1LTExLTE5IDAwOjUxOjQ0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogZG8gbm90IG92ZXJ3cml0ZSBoZWFkZXIgYnVmZmVyIHRpbWVzdGFtcHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmM0NzVhMDM1NTQzZWZjMDIwMmVjZGM1MjA3MDI5NWE0MjFlZDRiNC4KCSAgVGhpcyBjYXVzZXMgaXNzdWVzIHdpdGggaDI2NHBhcnNlLiBJdCBicmVha3MgdGltZXN0YW1wcyBhcwoJICB0aGVyZSBhcmUgaGVhZGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdHJlYW0gYW5kIHRoaXMgcGF0Y2gKCSAgbWFrZXMgdGhlIHRpbWVzdGFtcHMgZm9yIHRob3NlIGRpZmZlciBmcm9tIHRoZSBvbmVzIHRoYXQKCSAgYXJlIGFkanVzdGVkLCBjcmVhdGluZyBhIGRpc2NvbnRpbnVpdHkgYW5kIGxlYWRpbmcgdG8gc3luYwoJICBpc3N1ZXMuCgoyMDE1LTExLTE3IDE4OjQ3OjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogc2ltcGxpZnkgY29kZSBhIGJpdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTg0ZjcxNTlhNzJjMmVlYmUwMTkwNWVlNTM3MTZlM2IyYWJjYjMwLgoKMjAxNS0xMS0xOCAxMTo0Njo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgcHJpbnQgY3JpdGljYWxzIHdoZW4gcmVjZWl2aW5nIGN1c3RvbSBldmVudHMgaW4gcmluZyBidWZmZXIgbW9kZQoJICBEb3duZ3JhZGUgZnJvbSBnX3dhcm5pbmcgdG8gR1NUX1dBUk5JTkcgbG9nIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNzYKCjIwMTUtMTEtMTggMDk6MjE6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IERpc2FibGUgbXVsdGljYXN0IGxvb3BiYWNrCgkgIFdlJ3JlIG5vdCByZWFsbHkgaW50ZXJlc3RlZCBpbiBvdXIgb3duIHBhY2tldHMgYW5kIGlnbm9yZSB0aGVtIGFueXdheS4KCjIwMTUtMTEtMTcgMDk6MTc6NTggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggc3RyaW5nIG1lbW9yeSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyMDcKCjIwMTUtMTEtMTYgMDg6MjI6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2ltcGxpZnkgY29kZSBhIGJpdAoJICBBdm9pZCByZXBlYXRlZCBjaGVja3MgZm9yIHRlc3RpbmcgaWYgYSBidWZmZXIgaXMgYSBoZWFkZXIKCjIwMTUtMTEtMTMgMjA6NDQ6NTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGhhbmRsZSBidWZmZXIgd2l0aCBkdHMtb25seSB3aGVuIG1hcHBpbmcgdG8gcnVubmluZyB0aW1lCgkgIE90aGVyd2lzZSB0aGUgYnVmZmVyIHdhcyBsZWZ0IHdpdGggdGhlIG9yaWdpbmFsIHZhbHVlcyBhbmQgbGF0ZXIgd291bGQKCSAgYmUgY29tcGFyZWQgd2l0aCBvdGhlciBidWZmZXJzIHRoYXQgd2VyZSBjb252ZXJ0ZWQgdG8gcnVubmlubiB0aW1lLAoJICBsZWFkaW5nIHRvIGJhZCBpbnRlcmxlYXZpbmcgb2YgbXVsdGlwbGUgc3RyZWFtcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzk2MQoKMjAxNS0xMS0xMyAxNjozMTowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3Qgb3ZlcndyaXRlIGhlYWRlciBidWZmZXIgdGltZXN0YW1wcwoJICBiYXNlcGFyc2UgdHJpZXMgdG8gcHJlc2VydmUgdGltZXN0YW1wcyBmcm9tIHVwc3RyZWFtIGlmCgkgIGl0IGlzIHJ1bm5pbmcgb24gYSB0aW1lIHNlZ21lbnQgYW5kIHdyaXRlIHRoYXQgdG8KCSAgb3V0cHV0IGJ1ZmZlcnMuIEl0IGFzc3VtZXMgdGhlIGZpcnN0IERUUyBpcyBnb2luZyB0byBiZQoJICBzZWdtZW50LnN0YXJ0IGFuZCBzZXRzIHRoYXQgdG8gdGhlIGZpcnN0IGJ1ZmZlcnMuIEluIGNhc2UKCSAgdGhlIGJ1ZmZlciBpcyBhIGhlYWRlciBidWZmZXIsIGl0IGhhZCBubyB0aW1lc3RhbXBzIGFuZAoJICB3aWxsIGhhdmUgb25seSB0aGUgRFRTIHNldCBkdWUgdG8gdGhpcyBtZWNoYW5pc20uCgkgIFRoaXMgcGF0Y2ggcHJldmVudHMgdGhpcyBieSBza2lwcGluZyB0aGlzIGJlaGF2aW9yIGZvcgoJICBoZWFkZXIgYnVmZmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzk2MQoKMjAxNS0wNi0xOCAxMzo1Njo1MyAtMDcwMCAgQWxlaXggQ29uY2hpbGxvIEZsYXF1w6kgPGFsZWl4QG9ibG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IGFkZCBkcm9wLWJ1ZmZlci1mbGFncyBwcm9wZXJ0eQoJICBOZXcgcHJvcGVydHkgZHJvcC1idWZmZXItZmxhZ3MgdGhhdCB3aWxsIGRpc2NhcmQgYnVmZmVycyB0aGF0IGhhdmUgdGhlCgkgIGdpdmVuIGZsYWdzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTE4MgoKMjAxNS0xMS0xMiAxOTo0Njo0NCArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IGZpeCBpbnN0YWxsIHJhY2UKCSAgVGhlIGluc3RhbGwgaG9vayBuZWVkcyB0byBiZSBhIGluc3RhbGwtZGF0YS1ob29rIG5vdCBhbiBpbnN0YWxsLWV4ZWMtaG9vayBhcyB0aGUKCSAgaGVscGVycyBhcmUgaW5zdGFsbGVkIGludG8gaGVscGVyZGlyIHdoaWNoIGlzIGNvbnNpZGVyZWQgZGF0YSAob25seSBwYXRoCgkgIHZhcmlhYmxlcyB3aXRoICJleGVjIiBpbiBhcmUgY29uc2lkZXJlZCBleGVjdXRhYmxlcykuCgkgIFRoZSBleHBsaWNpdCBkZXBlbmRlbmN5IG9uIGluc3RhbGwtaGVscGVyc1BST0dSQU1TIHdhcyBhbiBhdHRlbXB0IGF0IHNvbHZpbmcKCSAgdGhpcywgYnV0IHRoaXMgY2F1c2VzIG9jY2FzaW9uYWwgcmFjZXMgd2hlcmUgaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMgY2FuIHJ1bgoJICB0d2ljZSBpbiBwYXJhbGxlbCAob25jZSB2aWEgaW5zdGFsbC1hbGwsIG9uY2UgdmlhIHRoZSBob29rJ3MgZGVwZW5kZW5jeSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMjkKCjIwMTUtMTEtMTIgMTY6MTQ6MTggKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBBZGQgdGVzdCBmb3IgZ3N0X2Nsb2NrX2dldF9yZXNvbHV0aW9uCgkgIEluIGEgc2VyaWVzIG9mIHRpbWUgbWVhc3VyZW1lbnRzLCB0aGUgZGlmZiBiZXR3ZWVuIG5vdyBhbmQgcHJldmlvdXMKCSAgdGltZXN0YW1wcyBpcyBlaXRoZXIgMCBvciBhdCBsZWFzdCBhcyBsb25nIGFzIGdldF9yZXNvbHV0aW9uIHJldHVybmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDEyCgoyMDE1LTExLTEyIDExOjI2OjU2ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogVXNlIG1hY2hfdGltZSBvbiBBcHBsZSBwbGF0Zm9ybXMKCSAgT24gaU9TL09TWCBnX2dldF9jdXJyZW50X3RpbWUgd2FzIHVzZWQgYnkgZGVmYXVsdC4gSG93ZXZlciwgbWFjaF90aW1lIGlzCgkgIHRoZSBwcmVmZXJyZWQgaGlnaC1yZXNvbHV0aW9uIG1vbm90b25pYyBjbG9jayB0byBiZSB1c2VkIG9uIEFwcGxlCgkgIHBsYXRmb3Jtcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAxMgoKMjAxNS0xMS0xMSAxMToxMToyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXJzOiBsb2c6IGFkZCBtaXNzaW5nIGhvb2tzCgkgIExvZyBhbGwgcG9zc2libGUgaG9va3MKCjIwMTUtMTAtMjkgMDg6NDA6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBhZGQgZWxlbWVudC1jaGFuZ2Utc3RhdGUtcHJlL3Bvc3QgaG9vawoJICBIZWxwcyBjYXRjaGluZyB3aGVuIGEgc3RhdGUgY2hhbmdlIGlzIHN0YXJ0aW5nIGFuZCBlbmRpbmcuCgkgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdHJhY2sgdGhlIGVuZCBvZiBzdGF0ZSBjaGFuZ2VzIGJ5IGNoZWNraW5nIHRoZQoJICBhc3luYy1kb25lIG9yIHN0YXRlLWNoYW5nZSBtZXNzYWdlcy4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGZvciBlbGVtZW50cyB0aGF0IGRvIGFzeW5jIHN0YXRlIGNoYW5nZXMuCgoyMDE1LTExLTExIDE0OjMyOjQ0ICswMTAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiB0ZXN0IGZvciBjaGVja2luZyB0aGUgb3JkZXIgb2YgdGhlIHByb2JlIGNhbGxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTEtMTAgMTQ6NDE6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IGZpeCBzb21lIGNvcHkgYW5kIHBhc3RlIGxlZnRvdmVyIGluIGRvY3MKCjIwMTUtMTEtMTAgMTQ6Mzc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IGFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbgoJICBBZGQgYSBzaG9ydCBwYXJhZ3JhcGggb24gd2hhdCBtZWFucyBmb3IgYSBjb250ZXh0IHRvIGJlIHBlcnNpc3RlbnQKCjIwMTUtMTEtMDkgMTg6MDI6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHVzZSAnc3RhdGljIGlubGluZScgaW5zdGVhZCBvZiAnaW5saW5lIHN0YXRpYycgZm9yIGd0ay1kb2MKCSAgZ3RrLWRvYyBkb2Vzbid0IHNlZW0gdG8gcmVjb2duaXNlIHRoZSBmb3JtZXIgdmFyaWFudC4KCjIwMTUtMTEtMDkgMTc6NTk6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBkb2NzOiByZW1vdmUgZHVtbXkgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHdpdGggR19JTkxJTkVfRlVOQ1RJT04gZm9yIGd0ay1kb2MKCSAgZ3RrLWRvYyBjYW4gaGFuZGxlIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGp1c3QgZmluZSB0aGVzZSBkYXlzLAoJICB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoaXMgc3R1ZmYgYW55IG1vcmUuCgoyMDE1LTAyLTIzIDEzOjE2OjE5ICsxMDAwICBEdW5jYW4gUGFsbWVyIDxkcGFsbWVyQGRpZ2lzb2Z0LnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdGhlIGF2Zy1pbi1yYXRlIHByb3BlcnR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTU5CgoyMDE1LTExLTA0IDEyOjAyOjUxICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIG92ZXJydW4gc2lnbmFsCgkgIE5vdGlmaWVzIHRoYXQgdGhlIHF1ZXVlMiBpcyBmdWxsLCBzYW1lIGFzIHF1ZXVlIGRvZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk1OQoKMjAxNS0wOS0yOSAyMToxNDoxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRlc3RzIGZvciBhY2NlcHQtY2FwcyBoYW5kbGluZyB3aXRoIHByb3h5IHBhZHMKCSAgQWRkcyAzIG5ldyB0ZXN0cyBmb3IgdGVzdGluZyBhY2NlcHQtY2FwcyBiZWhhdmlvciB3aXRoCgkgIHByb3h5LWNhcHMgcGFkcy4KCSAgMSkgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBubyBwcm94eS4gVGhlIGNhcHMgc2hvdWxkIGJlIGNvbXBhcmVkIHRvIHRoZQoJICB0ZW1wbGF0ZSBjYXBzIG9mIHRoZSBwYWQKCSAgMikgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBhIGNvbXBhdGlibGUgcGFkLiBUaGUgY2FwcyBzaG91bGQgYmUgY29tcGFyZWQKCSAgdG8gdGhlIHByb3hpZWQgcGFkIGNhcHMgKGFuZCBhbHNvIHdpdGggdGhlIHRlbXBsYXRlKQoJICAzKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIGFuIGluY29tcGF0aWJsZSBwcm94eSBwYWQuIE5vIGNhcHMgc2hvdWxkIGJlCgkgIHBvc3NpYmxlIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0xMS0wNSAxNjoxNToyMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIHRlbXBsYXRlIGNhcHMgZm9yIHByb3h5IHBhZHMgaW4gYWNjZXB0LWNhcHMKCSAgVmFsaWRhdGUgdGhhdCB0aGUgcHJveHkgcGFkIGluZGVlZCBhY2NlcHRzIHRoZSBjYXBzIGJ5IGFsc28KCSAgY29tcGFyaW5nIHdpdGggdGhlIHBhZCB0ZW1wbGF0ZSBjYXBzLCBvdGhlcndpc2Ugd2hlbiB0aGUgcGFkCgkgIGhhZCBubyBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzIGl0IHdvdWxkIGFsd2F5cyByZXR1cm4gdHJ1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0xMS0wNiAxMjo1ODo0MiArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBGaXggYnVpbGQgd2l0aCAtV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWQKCjIwMTUtMTEtMDYgMTI6MDU6MTggKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHByZXNldDogQWRkIGEgR1NUX1BSRVNFVF9QQVRIIGVudiB2YXJpYWJsZSBmb3IgcHJlc2V0cyB0byBiZSB1c2FibGUgdW5pbnN0YWxsZWQKCSAgQW5kIHN0YXJ0IHNldHRpbmcgdGhlIHZhcmlvdXMgdW5pbnN0YWxsZWQgcHJlc2V0cyBwYXRocy4KCjIwMTUtMTEtMDUgMDg6NTY6NDMgKzAxMDAgIEFudG9uIEJvbmRhcmVua28gPGFudG9uYm9AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBjb250aW51ZSBlbGVtZW50IGNsZWFudXAgZXZlbiBpZiBmY2xvc2UgZmFpbHMKCSAgU29tZXRpbWVzIGZpbGVzaW5rIGNsZWFudXAgZHVyaW5nIHN0b3AgbWF5IGZhaWwgZHVlIHRvIGZjbG9zZSBlcnJvci4KCSAgSW4gdGhpcyBjYXNlIG9iamVjdCBsZWZ0IHBhcnRpYWwgY2xlYW51cCB3aXRoIG5vIGZpbGUgb3BlbmVkCgkgIGJ1dCBzdGlsbCBob2xkaW5nIG9sZCBmaWxlIGRlc2NyaXB0b3IuCgkgIEl0J3Mgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSBsb2NhdGlvbiBwcm9wZXJ0eSBpbiBhIHN1Y2ggc3RhdGUsCgkgIHNvIG5leHQgc3RhcnQgd2lsbCBjYXVzZSBvbGQgZmlsZSBvdmVyd3JpdGUgaWYgJ2FwcGVuZCcgZG9lcyBub3Qgc2V0LgoJICBBY2NvcmRpbmcgdG8gbWFuIHBhZ2UgYW5kIFBPU0lYIHN0YW5kYXJkIGFib3V0IGZjbG9zZSBiZWhhdmlvcihleHRyYWN0KToKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgIFRoZSBmY2xvc2UoKSBmdW5jdGlvbiBzaGFsbCBjYXVzZSB0aGUgc3RyZWFtIHBvaW50ZWQgdG8gYnkgc3RyZWFtCgkgIHRvIGJlIGZsdXNoZWQgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGUgdG8gYmUgY2xvc2VkLgoJICAuLi4KCSAgV2hldGhlciBvciBub3QgdGhlIGNhbGwgc3VjY2VlZHMsIHRoZSBzdHJlYW0gc2hhbGwgYmUgZGlzYXNzb2NpYXRlZAoJICBmcm9tIHRoZSBmaWxlIGFuZCBhbnkgYnVmZmVyIHNldCBieSB0aGUgc2V0YnVmKCkgb3Igc2V0dmJ1ZigpCgkgIGZ1bmN0aW9uIHNoYWxsIGJlIGRpc2Fzc29jaWF0ZWQgZnJvbSB0aGUgc3RyZWFtLgoJICAuLi4KCSAgVGhlIGZjbG9zZSgpIGZ1bmN0aW9uIHNoYWxsIHBlcmZvcm0gdGhlIGVxdWl2YWxlbnQgb2YgYSBjbG9zZSgpCgkgIG9uIHRoZSBmaWxlIGRlc2NyaXB0b3IgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHN0cmVhbQoJICBwb2ludGVkIHRvIGJ5IHN0cmVhbS4KCSAgQWZ0ZXIgdGhlIGNhbGwgdG8gZmNsb3NlKCksIGFueSB1c2Ugb2Ygc3RyZWFtIHJlc3VsdHMKCSAgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgU28gZmlsZSBpcyBpbiAnY2xvc2VkJyBzdGF0ZSBubyBtYXR0ZXIgaWYgZmNsb3NlIHN1Y2NlZWQgb3Igbm90LgoJICBBbmQgY2xlYW51cCBjb3VsZCBiZSBjb250aW51ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc1OTYKCjIwMTUtMTEtMDEgMDA6MDQ6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1hcmsgc3RpY2t5IGV2ZW50cyBhcyBzZW50IG9uIG5vdC1saW5rZWQKCSAgSW5zdGVhZCBvZiByZS1zZW5kaW5nIHN0aWNreSBldmVudHMgb3ZlciBhbmQgb3ZlciB0byBhIG5vdC1saW5rZWQKCSAgcGFkLCBtYXJrIHRoZW0gYXMgc2VudCB0aGUgZmlyc3QgdGltZS4gSWYgdGhlIG5vdC1saW5rZWQgY2FtZSBmcm9tCgkgIGRvd25zdHJlYW0sIGl0IGFscmVhZHkgcmVjZWl2ZWQgdGhlIGV2ZW50cy4gSWYgdGhlIHBhZCBpcyBhY3R1YWxseQoJICBub3QtbGlua2VkLCB0aGUgc3RpY2t5IGV2ZW50cyB3aWxsIGJlIHJlc2NoZWR1bGVkIHdoZW4gdGhlCgkgIHBhZCBpcyBsaW5rZWQgYW55d2F5LgoKMjAxNS0xMC0yOSAxODo1MzoyOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFsbG93IGRlYWN0aXZhdGlvbiB3aXRoIG5vIHBlZXIuCgkgIEFsbG93IGRlYWN0aXZhdGlvbiBpbiBwdWxsLW1vZGUsIHNpbmNlIHRoYXQgaW1wbGllcyB3ZQoJICBoYWQgYSBwZWVyLCBhY3RpdmF0ZWQgaW4gcHVsbCBtb2RlLCB0aGVuIHRoZSBwZWVyIGRpc2EtcGVlci1lZCA7KQoKMjAxNS0xMC0yOCAxNzozMTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnQ6IGVtaXQgdHJhY2VyJ3MgZWxlbWVudC1uZXcgaG9vayBmcm9tICdjb25zdHJ1Y3RlZCcKCSAgSXQgYWxsb3dzIHRvIHByb3Blcmx5IGVtaXR0aW5nIGl0IGZvciBhbGwgbmV3bHkgY3JlYXRlZCBlbGVtZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDQ1CgoyMDE1LTEwLTI4IDA2OjAzOjM5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGxvZyB0aGUgZWxlbWVudC1uZXcgaG9vayBwcm9wZXJseQoJICBUbyBiZSBhYmxlIHRvIGdldCB0aGUgdGltZSB0aGUgZWxlbWVudHMgd2VyZSBjcmVhdGVkIGluc3RlYWQgb2YKCSAganVzdCBsb2dnaW5nIHRoZW0gd2l0aG91dCBhIHRpbWUKCjIwMTUtMTAtMjggMTg6MDQ6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogVW5ibG9jayBibG9ja2luZyBwYWQgcHJvYmVzIHdoZW4gcmVjZWl2aW5nIEZMVVNIX1NUQVJUIGluIHNlbmRfZXZlbnQoKSB0b28KCSAgV2l0aG91dCB0aGlzLCBmbHVzaGluZyBtaWdodCBub3QgdW5ibG9jayB0aGUgc3RyZWFtaW5nIHRocmVhZCBhbmQgY2F1c2UgZGVhZGxvY2tzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MjU3CgoyMDE1LTEwLTI4IDEzOjA0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvY3VtZW50IHRoZSBvcmRlciBpbiB3aGljaCBwYWQgcHJvYmVzIGFyZSBjYWxsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMC0yNyAxODowNTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBcHBlbmQgaG9va3MgaW5zdGVhZCBvZiBwcmVwZW5kaW5nIHRvIGNhbGwgdGhlbSBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGFkZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTAtMjYgMTI6NTA6MTIgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgbmV0YWRkcmVzc21ldGE6IGdzdF9idWZmZXJfZ2V0X25ldF9hZGRyZXNzX21ldGEoKSBhcyBmdW5jdGlvbgoJICBJbXBsZW1lbnQgZ3N0X2J1ZmZlcl9nZXRfbmV0X2FkZHJlc3NfbWV0YSgpIGFzIGEgZnVuY3Rpb24gaW5zdGVhZAoJICBvZiBhIG1hY3JvIGluIG9yZGVyIHRvIGdldCBnb2JqZWN0LWludHJvc3BlY3Rpb24gdG8gd29yay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjkyMQoKMjAxNS0xMC0yNiAxODowNzoxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZsZXNoIG91dCBkb2NzIGZvciBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSBhIGxpdHRsZQoJICBUaGVyZSBpcyBhIHNpbWlsYXIgZXhwbGFuYXRpb24gaW4gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSwgYnV0IHRoZSBleGlzdGluZwoJICBkb2N1bWVudGF0aW9uIGNhbiBiZSBtaXNsZWFkaW5nIHNpbmNlIGl0IGRvZXMgbm90IGRlZmluZSB3aGF0ICdpcyBhbHJlYWR5CgkgIHdyaXRhYmxlJyBtZWFucy4KCSAgQWxzbyBub3RlIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSB1c2VkLgoKMjAxNS0xMC0yNiAxNzozNTozNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY2xhcmlmeSBkb2NzIGZvciBhIGZldyBmdW5jdGlvbnMgdGhhdCB0aGV5IGRvbid0IHVwZGF0ZSB0aGluZ3MgaW4tcGxhY2UKCSAgSXQgaXMgbm90IG5lY2Vzc2FyaWx5IGNsZWFyIGZyb20gdGhlIGV4aXN0aW5nIGludHJvc3BlY3Rpb24gdGFncyBhbmQKCSAgZG9jdW1lbnRhdGlvbiBhbG9uZS4KCjIwMTUtMTAtMjcgMDg6NDg6MDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlL3F1ZXVlMjogVXNlIEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBUaGUgaW5wdXQgb2YgcXVldWUvcXVldWUyIG1pZ2h0IGhhdmUgRFRTIHNldCwgaW4gd2hpY2ggY2FzIHdlIHdhbnQKCSAgdG8gdGFrZSB0aGF0IGludG8gYWNjb3VudCAoaW5zdGVhZCBvZiB0aGUgUFRTKSB0byBjYWxjdWxhdGUgcG9zaXRpb24KCSAgYW5kIHF1ZXVlIGxldmVscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjUwNwoKMjAxNS0xMC0xMyAxNzoyMDoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVc2UgYnVmZmVyIERUUyBpZiBwcmVzZW50LCBlbHNlIFBUUwoJICBJbiBvcmRlciB0byBhY2N1cmF0ZWx5IGRldGVybWluZSB0aGUgYW1vdW50IChpbiB0aW1lKSBvZiBkYXRhCgkgIHRyYXZlbGxpbmcgaW4gcXVldWVzLCB3ZSBzaG91bGQgdXNlIGFuIGluY3JlYXNpbmcgdmFsdWUuCgkgIElmIGJ1ZmZlcnMgYXJlIGVuY29kZWQgYW5kIHBvdGVudGlhbGx5IHJlb3JkZXJlZCwgd2Ugc2hvdWxkIGJlCgkgIHVzaW5nIHRoZWlyIERUUyAoaW5jcmVhc2luZykgYW5kIG5vdCBQVFMgKHJlb3JkZXJlZCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjUwNwoKMjAxNS0xMC0yNyAwODozMzo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgU2ltcGxpZmllcyBjb2RlIGEgYml0CgoyMDE1LTEwLTI2IDA3OjU5OjU0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IEFkZCBhIEdTVF9CVUZGRVJfRFRTX09SX1BUUyBtYWNybwoJICBBUEk6IEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBNYW55IHNjZW5hcmlvcy9lbGVtZW50cyByZXF1aXJlIGRlYWxpbmcgd2l0aCBzdHJlYW1zIG9mIGJ1ZmZlcnMgdGhhdAoJICBtaWdodCBoYXZlIERUUyBzZXQgKGkuZS4gZW5jb2RlZCBkYXRhLCBwb3RlbnRpYWxseSByZW9yZGVyZWQpCgkgIFRvIHNpbXBsaWZ5IGdldHRpbmcgdGhlIGluY3JlYXNpbmcgInRpbWVzdGFtcCIgb2YgdGhvc2UgYnVmZmVycywgY3JlYXRlCgkgIGEgbWFjcm8gdGhhdCB3aWxsIHJldHVybiB0aGUgRFRTIGlmIHZhbGlkLCBhbmQgaWYgbm90IHRoZSBQVFMKCjIwMTUtMTAtMDYgMTI6MjE6MDQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBhZGQgR1NUX3tQVFIsU0VHTUVOVH1fRk9STUFUCgkgIFZlcnkgdXNlZnVsIGZvcm1hdHMgaW4gZGVidWcgb3V0cHV0IHNvIGJlc3QgdG8gaGF2ZSB0aGVtIGluIHRoZQoJICBnZW5lcmF0ZWQgZG9jLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MTE1CgoyMDE1LTEwLTI2IDEwOjUzOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogUmV0dXJuIC0xIGlmIGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lX2Z1bGwoKSBjb25zaWRlcnMgdGhlIHBvc2l0aW9uIG5vdCBpbnNpZGUgdGhlIHNlZ21lbnQKCSAgRml4ZXMgR3N0UGlwZWxpbmUgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTY0CgoyMDE1LTEwLTI0IDE2OjUyOjQ0ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBmaXggYmVoYXZpb3VyIGZvciBtZXJnaW5nIHVyaXMgZW5kaW5nIGluIC4uIHdpdGhvdXQgZm9sbG93aW5nIC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA2NQoKMjAxNS0xMC0yNCAxNjo0Mzo1OSArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogdGVzdHM6IGFkZGVkIHVuaXQgdGVzdCBmb3Igc3RyZWFtcyBlbmRpbmcgaW4gLi4gd2l0aG91dCBmb2xsb3dpbmcgLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDY1CgoyMDE1LTA4LTI3IDEyOjQzOjI4ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1ZzogRHVtcCBwYWQgcHJvcGVydGllcyB2YWx1ZXMKCSAgQ3VycmVudGx5IHdlIG9ubHkgc2hvdyBlbGVtZW50IHByb3BlcnRpZXMgdmFsdWVzLCB3ZSBzaG91bGQgYWxzbyBzaG93CgkgIHBhZCBwcm9wZXJ0aWVzIHZhbHVlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTY2CgoyMDE1LTEwLTIzIDIwOjA0OjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogUmVtb3ZlIGxlZnRvdmVyIGRlYnVnIGdfcHJpbnQoKQoKMjAxNS0xMC0xNSAxNDo0OTozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBBZGQgX2Z1bGwgdmFyaWFudHMgb2YgYWxsIHN0cmVhbS9ydW5uaW5nX3RpbWUgZnJvbS90byBzZWdtZW50IHBvc2l0aW9uIGZ1bmN0aW9ucwoJICBTZWUgZm9ybXVsYSBjbGFyaWZpY2F0aW9ucyBpbiBkZXNpZ24gZG9jcyBmb3IgY2FsY3VsYXRpb24gZGV0YWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjU2NAoKMjAxNS0wOS0yNiAwMToyOTowNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGRlZCBlbnYgdmFyIGZvciB1bmluc3RhbGxlZCBQVFAgaGVscGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2NTEKCjIwMTUtMTAtMjIgMTI6MDA6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVuYW1lIGFyZ3VtZW50IG9mIFBSRVJPTExfe0NPTkQsTE9DS30gbWFjcm9zCgkgIFRoZXkgdGFrZSBhIEdzdEJhc2VTaW5rIGluc3RhbmNlIGFzIGFyZ3VtZW50IGF0IG5vdCBhIEdzdFBhZC4gUmVuYW1lIHRoZQoJICBhcmd1bWVudCB0byAnb2JqJyB3aGljaCBpcyBub3QgbWlzcyBsZWFkaW5nIGFuZCBpbiBsaW5lIHdpdGgKCSAgR1NUX0JBU0VfU0lOS19QQUQob2JqKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njk1NAoKMjAxNS0xMC0yMiAxMDowNToxNCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgZ3N0Y29udHJvbHNvdXJjZTogQWRkIG1pc3NpbmcgKG91dCkgYW5ub3RhdGlvbgoKMjAxNS0xMC0yMSAxNDozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjk5ODAwYSB0byBiMzE5OTA5CgoyMDE1LTEwLTIxIDE0OjQ5OjQ5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBkb2NzL2Fubm90YXRpb24gb2YgZ3N0X3BhZF9wcm9iZV9pbmZvX2dldF9idWZmZXJfbGlzdCgpCgkgIEl0J3Mgbm90IGdldF9idWZmZXJsaXN0KCkuIEJlY2F1c2Ugb2YgdGhhdCBpdCB3YXMgaWdub3JlZCBieSB0aGUgZG9jcyBhbmQKCSAgRy1JLCBsZWFkaW5nIHRvIGNyYXNoZXMgYmVjYXVzZSBvZiBicm9rZW4gb3duZXJzaGlwIHRyYW5zZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODk4CgoyMDE1LTEwLTIwIDE3OjI5OjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBVc2UgbmV3IEdTVF9FTkFCTEVfRVhUUkFfQ0hFQ0tTICNkZWZpbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg3MAoKMjAxNS0xMC0yMSAxNDoyNTo0MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5YWVkMWQ3IHRvIGI5OTgwMGEKCjIwMTUtMTAtMjAgMTM6NDY6MjQgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGFsd2F5cyBmcmVlIGxvZwoJICBXZSBhbHdheXMgd2FudCB0byBmcmVlIHRoZSBvcGVuIGZpbGUgbG9nIGlmIGZvcGVuKCkgc3VjY2VlZGVkLiBJbmRlcGVuZGVudGx5CgkgIG9mIGlmIGZnZXRzKCkgc3VjY2VlZHMgb3IgZmFpbHMuCgkgIENJRCAxMzI2MDU1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjQKCjIwMTUtMTAtMTkgMTY6NTA6NTEgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQ29ycmVjdCBzdHJlYW1fdGltZSBjYWxjIGZvciBuZWdhdGl2ZSBhcHBsaWVkIHJhdGUKCSAgVXBkYXRlZCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lIGFuZCBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSB0byByZWZsZWN0IGNvcnJlY3QgY2FsY3VsYXRpb25zIGZvciB0aGUgY2FzZSB3aGVuIHRoZSBhcHBsaWVkIHJhdGUgaXMgbmVnYXRpdmUuCgkgIFBhc3RpbmcgZnJvbSBkZXNpZ24gZG9jczoKCSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJICBTdHJlYW0gdGltZSBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBidWZmZXIgdGltZXMgYW5kIHRoZSBwcmVjZWRpbmcgU0VHTUVOVAoJICBldmVudCBhcyBmb2xsb3dzOgoJICBzdHJlYW1fdGltZSA9IChCLnRpbWVzdGFtcCAtIFMuc3RhcnQpICogQUJTIChTLmFwcGxpZWRfcmF0ZSkgKyBTLnRpbWUKCSAgRm9yIG5lZ2F0aXZlIHJhdGVzLCBCLnRpbWVzdGFtcCB3aWxsIGdvIGJhY2t3YXJkcyBmcm9tIFMuc3RvcCB0byBTLnN0YXJ0LAoJICBtYWtpbmcgdGhlIHN0cmVhbSB0aW1lIGdvIGJhY2t3YXJkcy4KCSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJICBUaGVyZWZvcmUsIHRoZSBjYWxjdWxhdGlvbiBmb3IgYXBwbGllZF9yYXRlIDwgMCBzaG91bGQgYmU6CgkgIHN0cmVhbV90aW1lID0gKFMuc3RvcCAtIEIudGltZXN0YW1wKSAqIEFCUyAoUy5hcHBsaWVkX3JhdGUpICsgUy50aW1lCgkgIGFuZCB0aGUgcmV2ZXJzZToKCSAgQi50aW1lc3RhbXAgPSBTLnN0b3AgLSAoc3RyZWFtX3RpbWUgLSBTLnRpbWUpIC8gQUJTIChTLmFwcGxpZWRfcmF0ZSkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjgxMAoKMjAxNS0xMC0xOSAyMTozOToxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VyOiByZW5hbWUgdGhlIGVudnZhciB0byBHU1RfVFJBQ0VSX1BMVUdJTlMKCSAgVGhlIHN1YnN5c3RlbSByZXVzZWQgdGhlIEdTVF9UUkFDRSB2YXIgdGhhdCBpcyBhbGxyZWFkeSBpbiB1c2UgYnkgdGhlIGFsbG9jIHRyYWNlci4KCSAgRml4ZXMgIzc1Njc2MAoKMjAxNS0xMC0xNSAxNjozMjo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbXByb3ZlIGluY29taW5nIFNFR01FTlQgaGFuZGxpbmcKCSAgUHJldmlvdXNseSB0aGlzIGNvZGUgd2FzIGp1c3QgYmxpbmRseSBzZXR0aW5nIHRoZSBjYWNoZWQgZmxvdyByZXR1cm4KCSAgb2YgZG93bnN0cmVhbSB0byBHU1RfRkxPV19PSyB3aGVuIHdlIGdldCBhIFNFR01FTlQuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyBjYW4gbm90IGJlIGRvbmUgYmxpbmRseS4gSWYgZG93bnN0cmVhbSB3YXMKCSAgbm90IGxpbmtlZCwgdGhlIGNvcnJlc3BvbmRpbmcgc2lucWxlcXVldWUgc291cmNlIHBhZCB0aHJlYWQgbWlnaHQgYmUKCSAgd2FpdGluZyBmb3IgdGhlIG5leHQgSUQgdG8gYmUgd29rZW4gdXAgdXBvbi4KCSAgQnkgYmxpbmRseSBzZXR0aW5nIHRoZSBjYWNoZWQgcmV0dXJuIHZhbHVlIHRvIEdTVF9GTE9XX09LLCBhbmQgaWYgdGhhdAoJICBzdHJlYW0gd2FzIHRoZSBvbmx5IG9uZSB0aGF0IHdhcyBOT1RfTElOS0VELCB0aGVuIHRoZSBuZXh0IHRpbWUgd2UKCSAgY2hlY2sgKGZyb20gYW55IG90aGVyIHRocmVhZCkgdG8gc2VlIGlmIHdlIG5lZWQgdG8gd2FrZSB1cCBhIHNvdXJjZSBwYWQKCSAgdGhyZWFkIC4uLiB3ZSB3b24ndCBldmVuIHRyeSwgYmVjYXVzZSBub25lIG9mIHRoZSBjYWNoZWQgZmxvdyByZXR1cm4KCSAgYXJlIGVxdWFsIHRvIEdTVF9GTE9XX05PVF9MSU5LRUQuCgkgIFRoaXMgd291bGQgcmVzdWx0IGluIHRoYXQgdGhyZWFkIG5ldmVyIGJlaW5nIHdva2VuIHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2NDUKCjIwMTUtMDktMjYgMTg6MTY6MDcgKzA4MDAgIFRpbmctV2VpIExhbiA8bGFudHdAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogRml4IGJ1aWxkIHdpdGggY2xhbmcgLVdlcnJvcj1jYXN0LWFsaWduCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2NTcKCjIwMTUtMTAtMTcgMjI6MTM6MDggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHRvIGZyZWUgYWxsIGNhY2hlZCBtZXNzYWdlcyB3aGVuIGdvaW5nIHRvIE5VTEwKCSAgQW4gQVNZTkMgUkVBRFktPlBBVVNFRCBtaWdodCBoYXZlIGZhaWxlZCB3aXRob3V0IHRoZSBiaW4gY29kZSBub3RpY2luZyBkdXJpbmcKCSAgdGhlIHN0YXRlIGNoYW5nZSwgaW4gd2hpY2ggY2FzZSB3ZSB3aWxsIG5ldmVyIGdldCBQQVVTRUQtPlJFQURZIGFuZCB3b3VsZCBsZWFrCgkgIG1lc3NhZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjExCgoyMDE1LTEwLTE2IDE1OjU5OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogbWVudGlvbiB4ZG90IHV0aWxpdHkgdG8gdmlldyAuZG90IGZpbGVzIGRpcmVjdGx5CgoyMDE1LTEwLTE2IDEyOjAwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGFsbG9jdHJhY2U6IHNob3cgZGV0YWlscyBvZiBldmVudHMgYW5kIG1lc3NhZ2VzIGxlYWtlZAoJICBTbyBpdCdzIGNsZWFyZXIgd2hhdCBsZWFrZWQuCgoyMDE1LTEwLTE2IDExOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBtYW51YWw6IGltcHJvdmUgYWR2YW5jZWQgbWV0YWRhdGEgZXhhbXBsZSBhIGJpdAoJICBBY2NlcHQgYm90aCBmaWxlbmFtZSBhbmQgYSBVUkkgYXMgYXJndW1lbnQsIGFuZCBwcmludAoJICB0aGUgZXJyb3IgZnJvbSB0aGUgZXJyb3IgbWVzc2FnZSBpZiB0aGVyZSdzIGFuIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjMwCgoyMDE1LTEwLTE1IDE5OjA1OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbgoJICBJdCBzaG91bGQgYmUgMS4yIHVubGVzcyB0aGlzIGlzIGEgZmxhZyBmcm9tIHRoZSBmdXR1cmUKCjIwMTUtMDktMTUgMTg6MDg6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWNjZXB0IFNUUkVBTV9TVEFSVCBhZnRlciBFT1MKCSAgSW4gdGhlIHNhbWUgd2F5IGNvcmUgbm93IGFsbG93cyBTVFJFQU1fU1RBUlQgdG8gcmVtb3ZlIHRoZSBmbHVzaGluZwoJICBzdGF0ZSBmcm9tIHBhZHMsIHdlIG5lZWQgdG8gZG8gdGhlIHNhbWUgdGhpbmcgaW4gbXVsdGlxdWV1ZQoKMjAxNS0xMC0xNCAxMTowMzoyMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IENvbnZlcnQgZnVuY3Rpb24gdG8gbWFjcm8gaW4gdW5pdCB0ZXN0IHRvIGdldCBwcm9wZXIgbGluZSBudW1iZXJzIG9uIGZhaWx1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMTYKCjIwMTUtMTAtMTIgMTc6Mjk6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVwZGF0ZSBpbnRlcm5hbCBwb3NpdGlvbiBldmVuIGlmIG5vdCBsaW5rZWQKCSAgT3VyIGN1cnJlbnQgcG9zaXRpb24gaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBiZWluZyBsaW5rZWQgb3Igbm90LgoJICBBdm9pZHMgaGF2aW5nIHN0cmF5IHNlZ21lbnQgdXBkYXRlcyBmaXJlZCBldmVyeSAycwoKMjAxNS0xMC0wNyAyMjo1NTo0NCArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IG1lbW9yeSBsZWFrIHdoZW4gc2VuZGluZyBldmVudHMgdG8gYW4gRU9TIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MjA4CgoyMDE1LTEwLTA3IDEyOjAxOjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJICB0cmFjZXJzOiBPbmx5IGxpbmsgYWdhaW5zdCBsaWJnc3RwcmludGYubGEgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZAoJICBJdCBkb2VzIG5vdCBleGlzdCBvdGhlcndpc2UgYW5kIGxpbmtpbmcgd2lsbCBmYWlsLgoKMjAxNS0xMC0wNyAxMToyNTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgZ3N0LXB0cC1oZWxwZXI6ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+IHRvIGZpeCBuZXQvaWYuaCBpbmNsdWRlIG9uIE9TWCAxMC42CgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSBnc3QtcHRwLWhlbHBlci5jOjQwOjA6CgkgIC91c3IvaW5jbHVkZS9uZXQvaWYuaDoyNjU6MTk6IGVycm9yOiBmaWVsZCAnaWZydV9hZGRyJyBoYXMgaW5jb21wbGV0ZSB0eXBlCgkgIHN0cnVjdCBzb2NrYWRkciBpZnJ1X2FkZHI7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYxMzYKCjIwMTUtMTAtMDcgMTI6MjI6MzQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBSZXZlcnQgInRyYWNlcnM6IE9ubHkgYnVpbGQgZ2V0cnVzYWdlKCkgdHJhY2VyIGlmIFJVU0FHRV9USFJFQUQgaXMgYXZhaWxhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhkZGJmNzY2MjZhNDg0MjAzMDY4NjlkYjFkMTcxZjg1NGNjMjUzMTAuCgoyMDE1LTEwLTA3IDEyOjIxOjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICB0cmFjZXJzL3J1c2FnZTogaWZkZWYgdGhlIFJVU0FHRV9USFJFQUQgdXNhZ2UKCSAgU29tZSB2ZXJzaW9ucyBvZiBhbmRvaWQgZG9uJ3Qgc2VlbSB0byBoYXZlIGl0LgoKMjAxNS0xMC0wNyAxMToxMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IE9ubHkgYnVpbGQgZ2V0cnVzYWdlKCkgdHJhY2VyIGlmIFJVU0FHRV9USFJFQUQgaXMgYXZhaWxhYmxlCgoyMDE1LTEwLTA2IDIxOjQ2OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiByZW1vdmUgZ3N0X3RyYWNlcl9xdWFya19pZF9nZXRfdHlwZQoJICBSZXZlcnQgYWRkaXRpb24gZnJvbSA3NzdiYmVlYTYwNTA1MWFlM2QyZmE3ZTAyYWQ4NTg5MDAxZTc4Y2UwLgoKMjAxNS0xMC0wNiAxODo1MjozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogbW92ZSBwcm90b3R5cGUgdG8gdGhlIHJpZ2h0IGhlYWRlcgoJICBGaXhlcyB0aGUgYnVpbGQgd2hlbiB0aGUgdHJhY2luZyBzdWJzeXN0ZW0gaXMgZGlzYWJsZWQuCgoyMDE1LTEwLTA2IDE4OjQ5OjQ2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBtYXJrIEdzdFRyYWNlclF1YXJrSWQgYXMgbm9uIEdFbnVtCgkgIFRoaXMgcmV2ZXJ0cyA3MmNhMDJiMWRlNDA2NmVlYWUzNWM4OTFlMjc1Mzg2NzcwMTE3Nzc4IGFuZCBtYXJrcyB0aGUgZW51bQoJICBhY2NvcmRpbmdseS4KCjIwMTUtMTAtMDYgMTg6NDY6MjQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IGRpc2FibGUgdGhlIGxvZyB0cmFjZXIgaWYgZGVidWcgbG9nZ2luZyBpcyBkaXNhYmxlZAoKMjAxNS0xMC0wNiAxODo0NTo0MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSAgbWFrZWZpbGUuYW06IFJlbW92ZSBvYnNvbGV0ZSBBbmRyb2lkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxNS0xMC0wNiAxNDowMTowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGZpeCB0aGUgYnVpbGQgd2l0aCBkZWJ1ZyAodHJhY2VyKSBkaXNhYmxlZAoJICBTeW5jIHRoZSBtYWNybyBkZWZpbml0aW9ucy4gVGhlIGR1bW15IGRlZmluZXMgaGFzIGFyZ3VtZW50IG1pc21hdGNoZXMuCgoyMDE1LTEwLTA2IDExOjM5OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogZml4IHRoZSBidWlsZCB3aXRoIGRlYnVnICh0cmFjZXIpIGRpc2FibGVkCgkgIFJlbW92ZSBjb21tYXMgYXQgdGhlIGVuZCBvZiB0aGUgbWFjcm9zLgoKMjAxNS0wOS0wMSAxNjozOTozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IHN0YXRzOiBhZGQgbWVzc2FnZSBzdHJ1Y3R1cmUgdG8gb3V0cHV0CgkgIFRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIGlzIG5vdCBlbm91Z2guIEZvciBleGFtcGxlLCBzdGF0ZS1jaGFuZ2UKCSAgaXMgbm90IGVub3VnaCB0byBrbm93IHRoZSB0cmFuc2l0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NDk2CgoyMDE1LTEwLTA1IDE5OjA1OjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkaW5nIHRyYWNlciBxdWFyayBpZCB0byBnc3QgaW5pdCBhbmQgZGVpbml0CgkgIEZpeGVzIGlzc3VlcyBhdCBtYWtlIGNoZWNrCgoyMDE1LTEwLTA1IDE4OjUwOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGxpYmdzdHJlYW1lcjogYWRkIHRyYWNlciBmdW5jdGlvbnMKCjIwMTUtMTAtMDUgMjE6Mjk6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiBmaXggdGhlIHRhZyB0ZXN0CgkgIFRoZSBwcmV2aW91cyBjaGFuZ2UgKHNlZSBiZ28gIzc1NjA2OSkgd2FzIGNhdXNpbmcgdXMgdG8gZnJlZSB0aGUgc2FtZSBwb2ludGVyCgkgIG11bHRpcGxlIHRpbWVzLiBJZiB3ZSBhY3R1YWxseSBnZXQgYSBzYW1wbGUgYmFjaywgdGhlIHRlc3QgZmFpbHMsIG5vIG5lZWQgdG8KCSAgZnJlZSBhbnl0aGluZyBpbiB0aGF0IGNhc2UuCgoyMDE1LTA2LTA0IDAxOjUwOjM0ICswMjAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogYWRkIG1pc3NpbmcgaG9va3MKCSAgQWRkIGZvbGxvd2luZyBob29rczogZWxlbWVudC1uZXcsIGVsZW1lbnQtYWRkLXBhZCwgZWxlbWVudC1yZW1vdmUtcGFkLAoJICBiaW4tYWRkLXByZSwgYmluLWFkZC1wb3N0LCBiaW4tcmVtb3ZlLXByZSwgYmluLXJlbW92ZS1wb3N0LCBwYWQtbGluay1wcmUsCgkgIHBhZC1saW5rLXBvc3QsIHBhZC11bmxpbmstcHJlLCBwYWQtdW5saW5rLXBvc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxODcKCjIwMTUtMDMtMTMgMTg6MzE6NDAgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGdzdHN0YXRzOiBhZGQgdGhyZWFkLWlkIHRvIGxvZyBsaW5lCgoyMDE1LTAzLTEzIDEzOjEwOjQyICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIHBhZCBxdWVyeSBob29rcwoKMjAxNS0wMS0xNSAwNjozMjo0OCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHN0cmR1cCB0aGUgcGFzc2VkIHBhcmFtZXRlcnMuCgoyMDE1LTAxLTEzIDIyOjExOjM0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogVXNlIEdTVF9USU1FX0FSR1Mgd2hlbiBwcmludGluZyB3aXRoIEdTVF9USU1FX0ZPUk1BVC4KCjIwMTQtMTAtMTYgMTA6NDI6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgdHJhY2luZzogdXBkYXRlIGRvY3MKCjIwMTQtMTAtMDIgMTk6NTI6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBUSU1FU1RBTVAgLT4gUFRTCgoyMDE0LTA5LTIyIDA5OjU1OjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjaW5nOiByZW5hbWUgdGhlIGdsb2JhbCBhcGkgdG8gZ3N0X3RyYWNpbmcKCSAgVGhpcyBtYWtlcyBpdCBtb3JlIG9idmlvdXMgd2hhdCBpcyB0aGUgYXBpIGZvciB0cmFjZXIgZWxlbWVudHMgYW5kIHdoYXQgaXMgYXBpCgkgIGZvciB0aGUgZ2xvYmFsIHN0YXRlLgoKMjAxNC0wOS0xOCAwODoyODo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogZml4IGNwdSBzdGF0cyBwcmludGluZwoJICBPbmx5IHByaW50IHRoZW0gaWYgd2UgaGF2ZSB0aGVtLiBBbHNvIHNjYWxlIHRoZW0gYnkgMTAuMCBhcyB0aGUgYXJlIGluCgkgIHBlci1taWxsZSBub3cuCgoyMDE0LTA5LTE4IDA4OjI2OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogZWxpbWluYXRlIHZhcl9hcmdzCgkgIFJlZ2lzdGVyIHRyYWNlciBob29rcyBhcyBHQ2FsbGJhY2suIFVzZSBtYWNyb3MgZm9yIGhvb2sgZGlzcGF0Y2ggYW5kIGNhc3QgdGhlCgkgIGhvb2sgZnVuY3Rpb25zIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUuCgoyMDE0LTA5LTE3IDA5OjQxOjQ2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBkb24ndCB3YXJuIG9uICIuY2xhc3MiIGxvZyBsaW5lcwoKMjAxNC0wOS0xNyAwODozODowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkgIHRyYWNlcnM6IGNvZGUgY2xlYW51cHMKCSAgTW92ZSBzdGF0aWMgdmFyaWFibGVzIHRvIGluc3RhbmNlIHZhcmlhYmxlcy4gQWRkIGZpbmFsaXplIG1ldGhvZHMuIFJlbW92ZSBjb2RlCgkgIHRoYXQgaXMgY29tbWVudGVkIG91dC4gQ2xlYW51cCBsb2NraW5nIGNvZGUuCgoyMDE0LTA5LTE1IDIyOjI3OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiB1c2UgR1F1YXJrIG9yIHN0cmluZ3MgZm9yIHRoZSBob29rIGlkCgkgIFRoaXMgd2F5IG9uZSBjYW4gZGVmaW5lIG5ldyB0cmFjaW5nIHByb2JlcyB3aXRob3V0IGNoYW5naW5nIHRoZSBjb3JlLiBXZSBhcmUKCSAgdXNpbmcgb3VyIG93biBxdWFyayB0YWJsZSwgYXMgMSkgd2Ugb25seSB3YW50IHRvIGluaXRpYWxpemUgdGhlbSBpZiB3ZSdyZQoJICB0cmFjaW5nLCAyKSB3ZSB3YW50IHRvIHNoYXJlIHRoZW0gd2l0aCB0aGUgdHJhY2Vycy4KCjIwMTQtMDktMTUgMTM6MTU6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogc2ltcGxpZnkgaG9vayBhcGkKCSAgSW5zdGVhZCBvZiBhIHNpbmdsZSBpbnZva2UoKSBmdW5jdGlvbiBhbmQgYSAnbWFzaycsIHJlZ2lzdGVyIHRvIGluZGl2aWR1YWwKCSAgaG9va3MuIFRoaXMgYXZvaWRzIG9uZSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBhbmQgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUKCSAgaG9vayBlbnVtcy4gVGhlIG1lc3NhZ2UgZW5tcyBhcmUgbm93IHJlbmFtZWQgdG8gaG9vayBlbnVtcy4KCjIwMTQtMDktMTIgMTg6NDM6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBkcm9wIHRoZSBIb29rSWQgaGlkIGZyb20gdGhlIGludm9rZSBtZXRob2QKCSAgVGhlIE1lc3NhZ2VJZCBpcyBtb3JlIGRldGFpbGVkIGFuZCBhbnl3YXkgbmVlZGVkIHRvIGludGVycHJldCB0aGUgdmFyYXJncy4KCjIwMTQtMDktMTIgMTE6MTc6NDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGZpeHVwIGRvYyBuYW1lIGFuZCByZW1vdmUgY29tbWVudGVkIGNvZGUKCjIwMTQtMDktMTIgMDg6NDA6MDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBhZGQgbWV0YWRhdGEgZm9yIHRoZSBsb2dnZWQgdmFsdWVzCgoyMDE0LTA5LTExIDEzOjAyOjUxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICBydXNhZ2U6IGltcHJvdmUgY3B1IGxvYWQgbWVhc3N1cmVtZW50cwoJICBHZXQgdGhlIG51bWJlciBvZiBjcHVzIGFuZCBzY2FsZSBwcm9jZXNzIGNwdS1sb2FkIGFjY29yZGluZ2x5LiBTd2l0Y2ggdGhlCgkgIGNwdWxvYWQgdG8gYmUgcGVyLW1pbGxlIHRvIGdldCBzbW9vdGhlciBncmFwaHMuIEFkZCBhIGJpdCBtb3JlIGxvZ2dpbmcgYW5kIHVzZQoJICB0aGUgX09CSkVDVCB2YXJpYW50LgoKMjAxNC0wOS0xMSAxMzowMDo1OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiByZW1vdmUgY29tbWVudGVkIGNvZGUKCjIwMTQtMDktMTAgMDg6MzM6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdHJhY2VyIGRlc2lnbgoJICBVcGRhdGUgdGhlIHRyYWNlciBldmVudCBjbGFzc2VzIHNlY3Rpb24uIEFkZCBhIHBlcmZvcm1hbmNlIHNlY3Rpb24uCgoyMDE0LTA5LTEwIDA4OjMyOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHVzZSBHU1RfUFRSX0ZPUk1BVCB0byBsb2cgdGhlIHN0cnVjdHVyZQoJICBUaGlzIHdheSB3ZSBvbmx5IGV4cGFuZCB0aGUgc3RydWN0dXJlIHdoZW4gd2UncmUgbG9nZ2luZy4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgbWVhc3N1cmUgdGhlIHB1cmUgdHJhY2luZyBzZXBlcmF0ZWx5IGZyb20gdGhlIGxvZ2dpbmcuCgkgIEFsc28gYWRkIHNvbWUgY29tbWVudHMgb24gZnVydGhlciBpbXByb3ZlbWVudHMuCgoyMDE0LTA5LTEwIDA3OjU1OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgcnVzYWdlOiBpbXBsZW1lbnQgd2luZG93aW5nIG9mIGNwdWxvYWQKCSAgQWRkIGEgbG9jYWwgaGVscCB0byB0aGUgcnVzYWdlIHBsdWdpbiB0aGF0IHN1cHBvcnRzIHdpbmRvd2luZyBvZiB2YWx1ZXMuIFdlIHdhbnQKCSAgdG8gZ2VuZXJhbGl6ZSB0aGlzIGZvciB1c2UgaW4gb3RoZXIgcGx1Z2lucy4KCjIwMTQtMDktMDQgMTA6MTE6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBydXNhZ2U6IGFubm91bmNlIHRoZSBkYXRhIGZvcm1hdAoJICBSdXNhZ2Ugd2lsbCBub3cgYW5ub3VuY2Ugd2hhdCBpcyBtZWFzc3VyZXMgYW5kIGhvdyBpdCBpcyBsb2dnZWQuIFVzZSB0aGUgbmV3IGZvcm1hdCBpbiBzdGF0cy4KCSAgQ2xlYW51cCB0aGUgdGhlIGNvZGUgYW5kIG5hbWluZy4KCjIwMTQtMDctMjggMjI6MDg6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogaW1wcm92ZSBjcHUgbG9hZCBtZWFzc3VyZW1lbnRzCgkgIFJlbmFtZSB2YXJpYWJsZXMgZm9yIGNsYXJpdHkuIEhhbmRsZSB0aGUgaW5pdGlhbCBkaXNwYXJpdHkgYmV0d2VlbiBkZWJ1ZyB0aW1lCgkgIGFuZCB0aGUgdGltZSBhbHJlYWR5IHNwZW50IGluIHRoZSBwcm9jIGFuZCBtYWluIHRocmVhZC4KCjIwMTQtMDctMTggMDg6MDk6MzIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdHJhY2VyIGRlc2lnbgoKMjAxNC0wNy0yOCAwODo0OTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcmtzOiByZXZlcnQgdGhlIHF1YXJrIGNoYW5nZXMsIHdlIG5vdCB1c2luZyB0aGVtIGFueW1vcmUKCjIwMTQtMDctMTggMDc6NDk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJICB0cmFjZXI6IHNwbGl0IGludG8gdHJhY2VyIGFuZCB0cmFjZXJ1dGlscwoJICBLZWVwIHRyYWNlciBiYXNlIGNsYXNzIGluIHRyYWNlciBhbmQgbW92ZSBjb3JlIHN1cHBvcnQgaW50byB0aGUgdXRpbHMgbW9kdWxlLgoJICBBZGQgYSB1bnN0YWJsZS1hcGkgZ3VhcmQgdG8gdGhlIHRyYWNlci5oIHNvIHRoYXQgZXh0ZXJuYWwgbW9kdWxlcyB3b3VsZCBuZWVkIHRvCgkgIGFja25vd2xlZGdlIHRoZSBzdGF0dXMgYnkgc2V0dGluZyBHU1RfVVNFX1VOU1RBQkxFX0FQSS4KCjIwMTQtMDctMTYgMTg6NDg6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgZG9jczogYWRkIGd0ay1kb2MgYmxvYnMKCjIwMTQtMDItMjAgMTE6MTU6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICBsYXRlbmN5OiB0YWtlIHN0b3AgdGltZSB3aGVuIGJ1ZmZlciBpcyBoYW5kbGVkCgkgIE5vdyB3ZSBtZWFzc3VyZSB0aW1lIGZyb20gJ2JlZm9yZSBidWZmZXIgdHJhbnNmZXIgb24gc3JjJyB0byB3aGVuIHRoZSAnYnVmZmVyIGlzIHByb2Nlc3NlZCBvbiBzaW5rJy4KCjIwMTQtMDctMTUgMDk6NDk6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogYWRkIGEgbG9nZ2luZyBoZWxwZXIgdG8gcmVtb3ZlIGlkZW50aWNhbCBjb3BpZXMgZnJvbSB0aGUgdHJhY2VycwoKMjAxNC0wMi0xOCAxNjoxNTo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiB0d2VhayB0aGUgZ2V0X3JlYWxfcGFkX3BhcmVudCgpCgkgIEJ5IHVzaW5nIHRoZSB3ZSBlbmRlZCB1cCBvbiB0aGUgYWN0dWFsIGVsZW1lbnQsIG5vdCB0aGUgcGFyZW50LgoKMjAxNC0wMi0xOCAxMTowNjoxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogYWRkIGEgbmV3IGxhdGVuY3kgdHJhY2VyCgkgIEFkZCBhIG5ldyB0cmFjZXIgd2l0aCBwdXNoZXMgZXh0cmEgZXZlbnRzIHRvIG1lYXNzdXJlIHNyYy10by1zaW5rIHByb2Nlc3NpbmcgbGF0ZW5jeS4KCjIwMTQtMDItMTcgMTg6MzA6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduIGRvY3MKCSAgQWRkIG5ldyB0cmFjZXIgaWRlYS4KCjIwMTMtMTEtMjIgMTk6MTA6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiB1c2UgdGhlIHJ1c2FnZSBzdGF0cwoJICBBZGQgY3B1bG9hZCBpbmZvIGZyb20gcnVzYWdlIHRyYWNlcy4KCjIwMTMtMTEtMjAgMDg6MjI6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHJ1c2FnZTogYWRkIGEgbmV3IHJ1c2FnZSB0cmFjZXIKCSAgVGhlIHRyYWNlciBob29rcyB1cCB0byBhbGwgcHJvYmVzIGFuZCBsb2dzIHJlc291cmNlIHVzYWdlIGZpZ3VyZXMuCgoyMDE0LTA3LTE1IDEwOjIwOjIyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogZmlsdGVyIGNvbXBsZXRlIHRocmVhZCBzZWN0aW9uIGlmIHdlIGhhdmUgbm8gcGFkcwoKMjAxMy0xMS0xOSAwODowNDozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGltcHJvdmUgdGhlIGhhbmRsaW5nIG9mIHBhcmVudGFnZQoJICBMb2cgbmV3IG9iamVjdCBhZnRlciB3ZSBkaWQgdGhlIGNoZWNrIGZvciBwYXJlbnRzLgoKMjAxMy0xMS0xNyAxMTozNzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogcHJpbnQgdGhyZWFkIGtleSBmb3Igc3RhdHMgYW5kIGZpbHRlciBlbXB0eSBwYWQtc2VjdGlvbnMKCjIwMTMtMTEtMTcgMTE6MTU6MzYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IHVwZGF0ZSBidWZmZXIgZmxhZ3MKCSAgUmVtb3ZlIHNvbWUgYnVmZmVyIGZsYWdzIHRoYXQgd2VyZSBsZWZ0b3ZlcnMgZnJvbSAwLjEwIGFuZCBoYW5kbGUgbmV3IDEuMCBidWZmZXIKCSAgZmxhZ3MuCgoyMDEzLTExLTA0IDIwOjExOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBhZGQgYSBzdGF0cyBmcm9udGVuZAoJICBQYXJzZSB0aGUgbG9nIGFuZCBjb2xsZWN0IGRhdGEgZnJvbSB0cmFjZXIgbWVzc2FnZXMuCgoyMDEzLTExLTE1IDA5OjM2OjIxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHVzZSB0aGUgc2FtZSB0aW1lYmFzZSBhcyB0aGUgbG9nZ2luZwoKMjAxNC0wNy0xNiAwOToyMjozNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24KCjIwMTQtMDctMTYgMDk6NDE6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGxvZzogYWRkIHF1ZXJ5IGxvZyBjYXRlZ29yeQoKMjAxMy0xMS0wMiAxODoyNDo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiBwYXJzZSBwYXJhbWV0ZXJzCgoyMDE0LTA3LTE2IDA5OjIyOjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgbW9yZSBob29rcyBhbmQgaGFuZGxlIGl0IGluIHRoZSBwbHVnaW5zCgoyMDEzLTEwLTMwIDA4OjE5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBoYW5kbGUgYnVmZmVyIGxpc3RzCgoyMDEzLTEwLTMwIDA4OjA0OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgbG9nOiBtYWtlIHRoZSBsb2cgdHJhY2VyIG1vcmUgdmVyYm9zZSBhZ2FpbgoJICBEZWZpbmUgbG9nIGZvcm1hdHMgcGVyIG1lc3NhZ2UgdHlwZSBhbmQgcHJpbnQgZGV0YWlscy4KCjIwMTMtMTAtMjggMjE6NTk6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiB1c2UgYSBtYWNyb3MgZm9yIHRoZSBlbmFibGVkIGNoZWNrCgkgIEF2b2lkIGEgZnVuY3Rpb24gY2FsbCBhbmQgY2hlY2sgdGhlIHZhcmlhYmxlcyBmcm9tIHRoZSBtYWNyby4KCjIwMTMtMTAtMjggMjE6Mzk6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiB1c2UgbWFjcm9zIGZvciBob29rcwoJICBXcmFwIHRoZSBob29rIHdpdGggYSBwcmUgYW5kIHBvc3QgbWFjcm8uIFRoaXMgbG9va3MgbGVzcyBpbnRydXNpdmUgdGhhbiB0aGUKCSAgcHJldmlvdXMgdmVyc2lvbiwgYWx0aG91Z2ggaXQgaXMgYSBsaXR0bGUgbGVzcyBvcHRpbWl6ZWQuCgoyMDEzLTEwLTI4IDIxOjI4OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogcGFzcyB0aGUgdGltZXN0YW1wIGRpcmVjdGx5CgkgIEF2b2lkIHRoZSBzdHJ1Y3R1cmUgbWFzaGFsbGluZyAoYW5kIHdlaXJkIGZpZWxkIG5hbWluZykuCgoyMDEzLTEwLTI4IDA4OjA4OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHN0YXRzOiBhZGQgYSB0cmFjZXIgdGhhdCBjb2xsZWN0cyBwaXBlbGluZSBzdGF0aXN0aWNzCgkgIFRoaXMgaXMgbW9yZSBvciBsZXNzIGVxdWl2IHRvIHRoZSB0aGUgc3RhdGlzdGljcyBpbiBnc3QtdHJhY2VsaWIuCgoyMDEzLTEwLTI4IDA4OjA3OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJICBsb2c6IGFkZCBjYXN0IG1hY3JvCgoyMDEzLTEwLTI3IDIwOjQzOjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBwYXNzIHRoZSBpbnN0YW5jZSB0byB0aGUgdm1ldGhvZAoKMjAxMy0xMC0yNyAxNzowNTo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGRlc2lnbjogbW9yZSBwbGFubmluZwoKMjAxMy0xMC0yNyAxNzowNDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiBzd2l0Y2ggdG8gcXVhcmtzIGFuZCBhZGQgYW5vdGhlciBob29rIGZvciBidWZmZXIgZmxvdwoJICBVc2UgcHJlLWRlZmluZXMgcXVhcmtzIGFzIHRoaXMgd2lsbCBiZSBjYWxsZWQgcXVpdGUgb2Z0ZW4uCgoyMDEzLTEwLTI3IDEyOjQ1OjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogYWRkIHRoZSBob29rLWlkIHRvIHRoZSBpbnZva2Ugc2lnbmF0dXJlCgkgIFRyYWNlcnMgdGhhdCBzdWJzY3JpYmUgdG8gbXVsdGlwbGUgaG9va3MgY2FuIGtub3cgd2hhdCBob29rIHdhcyB1c2VkLgoKMjAxMy0xMC0yNiAyMjowNToxMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGZhY3RvcnkKCSAgSGFuZGxlIHRyYWNlciBtb2R1bGVzLgoKMjAxMy0xMC0yNCAxNDo0Nzo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXI6IGluaXRpYWwgcHJvdG90eXBlIGZvciB0aGUgdHJhY2luZyBzdWJzeXN0ZW0KCjIwMTUtMTAtMDUgMTE6MTI6NDcgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdGVzdHMvZ3N0LWxhdW5jaDogRml4IHNhbXBsZSBtZW1vcnkgbGVhawoJICBXaGVuIHNhbXBsZSBpcyBnb3QgdXNpbmcgZ3N0X3RhZ19saXN0X2dldF9zYW1wbGVfaW5kZXgsIGl0IHNob3VsZAoJICBiZSBmcmVlJ2QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYwNjkKCjIwMTUtMTAtMDIgMjI6MTc6MDQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVXBkYXRlIEdMaWIgZGVwZW5kZW5jeSB0byAyLjQwLjAKCjIwMTUtMDgtMjAgMTY6MjE6NTkgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvcHRwLXByaW50LXRpbWVzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIGdzdHJlYW1lcjogRml4IG1lbW9yeSBsZWFrcyB3aGVuIGNvbnRleHQgcGFyc2UgZmFpbHMKCSAgV2hlbiBnX29wdGlvbl9jb250ZXh0X3BhcnNlIGZhaWxzLCBjb250ZXh0IGFuZCBlcnJvciB2YXJpYWJsZXMgYXJlIG5vdCBnZXR0aW5nIGZyZWUnZAoJICB3aGljaCByZXN1bHRzIGluIG1lbW9yeSBsZWFrcy4gRnJlZSdpbmcgdGhlIHNhbWUuCgkgIEFuZCByZXBsYWNpbmcgZ19lcnJvcl9mcmVlIHdpdGggZ19jbGVhcl9lcnJvciwgd2hpY2ggY2hlY2tzIGlmIHRoZSBlcnJvciBiZWluZyBwYXNzZWQKCSAgaXMgbm90IE5VTEwgYW5kIHNldHMgdGhlIHZhcmlhYmxlIHRvIE5VTEwgb24gZnJlZSdpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4NTEKCjIwMTUtMDktMjMgMjM6MDM6MjkgKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBVc2UgZ19zZXF1ZW5jZV9sb29rdXAgd2hlcmUgcG9zc2libGUKCSAgV2hlbiBsb29raW5nIGZvciBleGFjdCBtYXRjaGVzIGluIHRoZSBzZXF1ZW5jZSwgdGhpcyByZXN1bHRzCgkgIGluIG11Y2ggc2ltcGxlciBjb2RlIHRoYW4gd2hlbiB1c2luZyBnX3NlcXVlbmNlX3NlYXJjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTQ5OAoKMjAxNS0xMC0wMSAyMjowOTo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGZpeCB3cml0ZSBvdmVyIHRoZSBhcnJheSBzaXplCgkgIFRoZSAnKysnIGdvdCBpbmNpZGVudGlhbGx5IGFkZGVkIGR1cmluZyB0aGUgcmVmYWN0b3JpbmcgaW4KCSAgMmZlMzkzOWNlN2VhODRjNDVkZDkyMmU3ZjEwOTdkZDA3ZjExZmM1ZC4KCjIwMTUtMDktMzAgMTc6Mjk6MTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGNvbnRyb2xwb2ludDogY2hhbmdlIHRoZSBwYWRkaW5nIHRvIGJlIG9mIGFyY2gtaW5kZXBlbmRlbnQgc2l6ZQoJICBUaGUgZGVmYXVsdCBwYWRkaW5nIEkgaW50cm9kdWNlZCBpbiBkNGY4MWZiNGU2MmQzNGE0YzFkYWJjNjViMjNlZGU3Y2U3Njk0YzYzIGlzCgkgIGFjdHVhbGx5IG9ubHkgNCBwb2ludGVycyBhbmQgb24gMzJiaXQgcGxhdGZvcm1zIGFscmVhZHkgc21hbGxlciB0aGFuIHRoZSB1bmlvbi4KCSAgUmVwbGFjZSBpdCB3aXRoIGEgZml4ZWQgNjRieXRlIHBhZGRpbmcuIERvbid0IGFkZCB0aGUgbm9ybWFsIHBhZGRpbmcgZm9yIG5vdy4KCSAgRml4ZXMgIzc1NTgyMgoKMjAxNS0wOC0yMSAxNzo0Mjo1MiArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3RyZWFtZXItdW5pbnN0YWxsZWQ6IGFkZCBwYXRoIGZvciBPcGVuQ1YgaGFhciBjYXNjYWRlIGZpbGVzCgkgIFNvbWUgT3BlbkNWIHBsdWdpbnMgdXNlIGhhYXIgY2FzY2FkZSBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUKCSAgR1N0cmVhbWVyIHNvdXJjZXMuIFRvIGJlIGFibGUgdG8gdXNlIHRoZXNlIGZyb20gdW5pbnN0YWxsZWQsIHRoZXkgbmVlZAoJICB0byBiZSBmb3VuZCB0aHJvdWdoIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBBZGRpbmcgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBwb2ludGluZyB0byBoYWFyIGNhc2NhZGUgZmlsZXMgdG8KCSAgZ3N0LXVuaW5zdGFsbGVkLgoKMjAxNS0wOS0yOCAxNjowMTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBmaXggJ2Zvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwnIHdhcm5pbmcgd2l0aCBjbGFuZwoJICBCcm9rZSB0aGlzIHdoZW4gSSByZW1vdmVkIHRoZSBHX0dOVUNfUFJJTlRGIGluIGEgcHJldmlvdXMKCSAgY29tbWl0IHRvIGZpeCBpbmRlbnRhdGlvbiwgc2luY2UgaXQgd2FzIG5vdCByZWFsbHkgbmVlZGVkLgoJICBUdXJucyBvdXQgdW5saWtlIGdjYyBjbGFuZyB3YXJucyB0aG91Z2ggaWYgYSBub24tbGl0ZXJhbAoJICBmb3JtYXQgc3RyaW5nIGlzIHBhc3NlZCB0aGVuLiBGaXggaW5kZW50YXRpb24gZGlmZmVyZW50bHkuCgkgIGh0dHA6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0F0dHJpYnV0ZVJlZmVyZW5jZS5odG1sI2Zvcm1hdC1nbnUtZm9ybWF0CgoyMDE1LTA5LTI4IDE2OjQ1OjQ3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZml4IHRoZSBtYW51YWwgdGVzdHMgYnkgc2V0dGluZyB0aGUgcmlnaHQgZW52LXZhcnMKCjIwMTUtMDktMjggMTY6MjI6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGRpcmVjdGNvbnRyb2xiaW5kaW5nOiBmaXggZm9ybWF0dGluZwoKMjAxNS0wOS0yOCAxNjoyMTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSAgaW5kZXg6IG1hcmsgdHdvIHN0cnVjdHMgdGhhdCBkb24ndCBoYXZlIGFiaSBwYWRkaW5nCgoyMDE1LTA5LTI4IDE2OjE5OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBjb250cm9sbGVyOiBhZGQgdGhlIG1pc3NpbmcgYWJpIHBhZGRpbmcKCSAgV2hpbGUgdGhpcyB0ZWNobmljYWxseSBpcyBhbiBhYmkgYnJlYWssIHdlIGRlY2lkZWQgdG8gZG8gdGhpczoKCSAgMSkgdGhlIHN0cnVjdCBpcyBkb2N1bWVudGVkIHRvIGJlIGludGVybmFsCgkgIDIpIHRoZSBzdHJ1Y3QgaXMgYWxsb2NlZCBhbmQgZnJlZWQgaW5zaWRlIHRoZSBsaWJyYXJ5CgkgIDMpIHRoZXJlIGFyZSBubyBwdWJsaWMgbWV0aG9kcyB0aGF0IHJlY2VpdmUgb3IgcmV0dXJuIGluc3RhbmNlcwoJICA0KSB0aGUgb25seSBjb2RlIGtub3duIHRvIHVzZSB0aGlzIHN0cnVjdCBhcmUgY2xhc3NlcyBjb250YWluZCBoZXJlCgoyMDE1LTA5LTI0IDAwOjA0OjQ4ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IGltcGxlbWVudCBjb250ZXh0IHByb3BhZ2F0aW9uIHdoZW4gYWRkaW5nIGVsZW1lbnRzCgkgIFdoZW4gYWRkaW5nIGFuIGVsZW1lbnQgdG8gYSBiaW4gd2UgbmVlZCB0byBwcm9wYWdhdGUgdGhlIEdzdENvbnRleHQncwoJICB0by9mcm9tIHRoZSBlbGVtZW50LgoJICBUaGlzIG1vdmVzIHRoZSBHc3RDb250ZXh0IGxpc3QgZnJvbSBHc3RCaW4gdG8gR3N0RWxlbWVudCBhbmQgYWRkcwoJICBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gZ2V0IHRoZSBjdXJyZW50bHkgc2V0IGxpc3Qgb2YgR3N0Q29udGV4dCdzLgoJICBUaGlzIGRvZXMgbm90IGRlYWwgd2l0aCB0aGUgY29sbGVjdGlvbiBvZiBHc3RDb250ZXh0J3MgcHJvcGFnYXRlZAoJICB1c2luZyBHU1RfQ09OVEVYVF9RVUVSWS4gIEVsZW1lbnQgc3ViY2xhc3NlcyBhcmUgYWR2aXNlZCB0byBjYWxsCgkgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IGlmIHRoZXkgbmVlZCB0byBwcm9wYWdhdGUgR3N0Q29udGV4dCdzCgkgIHJlY2VpdmVkIGZyb20gdGhlIGNvbnRleHQgcXVlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NzkKCjIwMTUtMDktMDcgMDk6Mzk6MzIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogYWRkIGN1YmljX21vbm8gaW50ZXJwb2xhdGlvbgoJICBUaGlzIG5ldyBtb2RlIHdvbid0IG92ZXJzaG9vdCB0aGUgbWluL21heCB5IHZhbHVlcyBzZXQgYnkgdGhlIGNvbnRyb2wtcG9pbnRzLgoJICBGaXhlcyAjNzU0Njc4CgkgIEFQSTogR1NUX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQ19NT05PCgoyMDE1LTA5LTA3IDA5OjM3OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogcmVmYWN0b3IgY29kZQoJICBFeHRyYWN0IGNvbW1vbiBjb2RlIHRoYXQgbG9va3MgdXAgdGhlIGNvbnRyb2wtcG9pbnRzIGFyb3VuZCB0aGUgdGltZXN0YW1wLiBBZGQKCSAgc29tZSBjb21tZW50cyBmb3IgZnV0dXJlIGludmVzdGlnYXRpb24uCgoyMDE1LTA5LTA0IDE2OjM4OjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbGxlci1ncmFwaC5jOgoJICB0ZXN0cy9leGFtcGxlczogYWRkIGEgZGVtbyBmb3IgdGhlIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UgbW9kZXMKCSAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgbmV3IG1vZGVzIHRvIGJlIGFkZGVkLiBJbiBwYXJ0aWN1bGxhciBpdCBkZW1vbnN0cmF0ZXMKCSAgaG93IHRoZSBjdWJpYyBzcGxpbmVzIG92ZXJzaG9vdCB0aGUgcmFuZ2UuCgoyMDE1LTA5LTA5IDExOjU1OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogcmVtb3ZlIHByb3h5aW5nIG9mIGFjY2VwdC1jYXBzIGRvd25zdHJlYW0KCSAgVGhlIGRlc2lnbiBpcyB0byBvbmx5IGRvIGEgbG9jYWwgY2hlY2sKCjIwMTUtMDgtMjUgMTk6Mzc6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmYWxsYmFjayB0byBjYXBzIHF1ZXJpZXMgd2l0aCBwcm94eSBwYWRzCgkgIEEgcHJveHktcGFkIHNob3VsZCBhbHdheXMgcHJveHkgdGhlIGNhcHMgcmVsYXRlZCBxdWVyaWVzCgkgIGFuZCBldmVudHMgdG8gaXRzIGRvd24gb3IgdXBzdHJlYW0gcGVlcnMgb24gdGhlIG90aGVyIHNpZGUKCSAgb2YgdGhlIGVsZW1lbnQuIEZhbGxpbmcgYmFjayB0byBhIGNhcHMgcXVlcnkgc2VlbXMgd3JvbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMDktMjYgMTE6MDM6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1pbm9yIGRvYyBmaXhlcwoKMjAxNS0wOS0wMiAxNzo1ODozOCArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBSZXBsYWNlZCBnc3Rfc2VnbWVudF90b19wb3NpdGlvbiB3aXRoIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fcnVubmluZ190aW1lCgkgIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uIG1pZ2h0IGNhdXNlIGNvbmZ1c2lvbiwgZXNwZWNpYWxseSB3aXRoIHRoZSBhZGRpdGlvbiBvZgoJICBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lIC4gRGVwcmVjYXRlZCBnc3Rfc2VnbWVudF90b19wb3NpdGlvbgoJICBub3csIGFuZCByZXBsYWNlZCBpdCB3aXRoIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fcnVubmluZ190aW1lLgoJICBBbHNvIGFkZGVkIHVuaXQgdGVzdHMuCgoyMDE1LTA5LTAyIDE3OjM4OjI1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEFkZGVkIHVuaXQgdGVzdHMgZm9yIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUKCjIwMTUtMDktMjUgMTU6NTc6MTYgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWU6IFJlbmFtZWQgJ3Jlc3VsdCcgdG8gJ3N0cmVhbV90aW1lJwoJICBSZW5hbWVkIHRoZSAicmVzdWx0IiB2YXJpYWJsZSB0byAic3RyZWFtX3RpbWUiIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDE1LTA5LTI1IDE1OjU2OjQ1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBBZGRlZCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lKCkKCSAgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSgpIHdpbGwgY29udmVydCBzdHJlYW0gdGltZSBpbnRvIGEKCSAgcG9zaXRpb24gaW4gdGhlIHNlZ21lbnQgc28gdGhhdCBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSgpIHdpdGggdGhhdAoJICBwb3NpdGlvbiByZXR1cm5zIHRoZSBzYW1lIHN0cmVhbSB0aW1lLiBJdCB3aWxsIHJldHVybiAtMSBpZiB0aGUgc3RyZWFtIHRpbWUKCSAgZ2l2ZW4gaXMgbm90IGluc2lkZSB0aGUgc2VnbWVudC4KCjIwMTUtMDktMDIgMTY6MzY6MzUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBSZXdvcmRpbmcgb2Ygc3RydWN0IGZpZWxkIGRlc2NyaXB0aW9ucwoJICBUaGUgbmV3IHdvcmRpbmcgbWFrZXMgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgZXhhY3RseSB3aGF0IGVhY2ggZmllbGQgb2YgdGhlCgkgIEdzdFNlZ21lbnQgc3RydWN0IHJlcHJlc2VudHMuCgoyMDE1LTA4LTMxIDE1OjM1OjExICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBNYWtlIHN1cmUgdGhhdCB0aW1lc3RhbXAgKyBkaWZmIGluIFFvUyBldmVudHMgaXMgbmV2ZXIgc21hbGxlciB0aGFuIDAKCSAgV2hlbiBhIHJ1bm5pbmctdGltZS1vZmZzZXQgaXMgc3RvcmVkIGluIHRoZSBldmVudCwgaXQgY291bGQgYmVjb21lIHNtYWxsZXIKCSAgdGhhbiAwIGFsdGhvdWdoIHRoZSBldmVudCBpcyBvdGhlcndpc2UgY29ycmVjdC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gcGFkCgkgIG9mZnNldHMgYXJlIHVzZWQuCgkgIFRvIHByZXZlbnQgdGhpcywgd2Ugc2V0IHRoZSB0aW1lc3RhbXAgdG8gLWRpZmYsIHNvIHRoYXQgaW4gdGhlIGVuZCB0aGUgc3VtIG9mCgkgIGJvdGggaXMgZXhhY3RseSAwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MzU2CgoyMDE1LTA5LTE2IDIzOjQwOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCB0ZXN0IGZvciBjb3JyZWN0IGFic29sdXRlIFVSSSBoYW5kbGluZyBpbiBnc3RfdXJpX2Zyb21fc3RyaW5nX3dpdGhfYmFzZSgpCgkgIElmIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGFuIGFic29sdXRlIFVSSSwgdGhlIGJhc2Ugc2hvdWxkIGhhdmUgbm8gZWZmZWN0IGFuZAoJICB0aGUgc2Vjb25kIHBhcmFtZXRlciBzaG91bGQgYmUgcmV0dXJuZWQgYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUxMzQKCjIwMTUtMDktMjUgMjM6NTE6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNi4wID09PQoKMjAxNS0wOS0yNSAyMzoxNDozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjYuMAoKMjAxNS0wOS0yNSAyMjo0MToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDktMjUgMTA6MTg6MDcgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEZpeCBlcnJvciBsZWFrIGR1cmluZyBmYWlsdXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjA3CgoyMDE1LTA5LTIxIDEzOjU4OjUxICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCByYWN5IHN0YXRlIGNoYW5nZQoJICBJdGVyYXRvciBtYXkgbmVlZCB0byBiZSByZXN5bmNlZCwgZm9yIGluc3RhbmNlIGlmIHBhZHMgYXJlIHJlbGVhc2VkCgkgIGR1cmluZyBzdGF0ZSBjaGFuZ2UuCgkgIGdvdF9lb3Mgc2hvdWxkIGJlIHByb3RlY3RlZCBieSB0aGUgb2JqZWN0IGxvY2sgb2YgdGhlIGVsZW1lbnQsIG5vdCBvZgoJICB0aGUgcGFkLCBhcyBpcyB0aGUgY2FzZSB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoZSBmdW5uZWwgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTM0MwoKMjAxNS0wOS0yMSAxNToyMjoxOSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGJpbjogZWxlbWVudDogSWdub3JlIGFjdGl2YXRlIHJlc3VsdCBmb3IgcmVtb3ZlZCBwYWRzIG9uIHN0YXRlIGNoYW5nZQoJICBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZSBhIHN0YXRlIGNoYW5nZSBtYXkgcmV0dXJuIGZhaWx1cmUgaWYgaXQgaGFzCgkgIHJlcXVlc3QgcGFkcyB0aGF0IGFyZSBkZWFjdGl2YXRlZCBhbmQgcmVtb3ZlZCAoYW5kIHRodXMgaGF2ZSBubwoJICBwYXJlbnQpIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGVsZW1lbnQgY2hhbmdlcyBzdGF0ZSBhbmQgKGRlKWFjdGl2YXRlcwoJICBpdHMgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTM0MgoKMjAxNS0wOS0yNCAxMDoyMzoxNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgY3Jhc2ggd2hlbiBhZGRpbmcgYSBzaW5rLWhhcm5lc3Mgd2l0aG91dCBoLT5zaW5rcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU1MTEKCjIwMTUtMDktMjMgMjA6MzE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJpbnQgYnVmZmVyIFBUUyB3aGVuIHN1Ym1pdHRpbmcgYW4gaW5wdXQgYnVmZmVyCgoyMDE1LTA5LTIxIDE0OjU4OjQ2ICswOTAwICBFdW5oYWUgQ2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBidWZmZXIgbGVhayBpbiBzeW5jX3N0cmVhbXMgJiBjYWNoZV9idWZmZXJzIG1vZGUKCSAgQWZ0ZXIgZG9pbmcgZ3N0X3BhZF9wdXNoKCkgaW4gY2FzZSBvZiBzeW5jX3N0cmVhbXMgYW5kIGNhY2hlX2J1ZmZlcnMsCgkgIGlmIHRoZSBidWZmZXIgY2FuIG5vdCBiZSBrZXB0IGluIGNhY2hlLCBpdCBzaG91bGQgYmUgdW5yZWZmZWQgdG8gYXZvaWQKCSAgbWVtb3J5IGxlYWNrYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MTQxCgoyMDE1LTA5LTE5IDE2OjU3OjI2ICswNTMwICBWaWtyYW0gRnVncm8gPHZpa3JhbS5mdWdyb0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdDogRG9jdW1lbnRhdGlvbiB0eXBvIGZpeCBpbiBjYXBzICYgcGFkIEFQSXMKCSAgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpICYgR1NUX1BBRF9JU19BQ0NFUFRfSU5URVJTRUNUKCkKCSAgZG9jdW1lbnRhdGlvbiB0eXBvIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTI1NwoKPT09IHJlbGVhc2UgMS41LjkxID09PQoKMjAxNS0wOS0xOCAxOTowNzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuOTEKCjIwMTUtMDktMTggMTk6MDc6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA5LTE4IDExOjQ5OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA5LTE1IDEwOjU2OjQwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBkb3dubG9hZGJ1ZmZlciwgYmVuY2htYXJrczogZml4IGVycm9yIGxlYWtzIGluIGZhaWx1cmUgY29kZSBwYXRocwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MDE5CgoyMDE1LTA5LTE1IDEwOjUyOjU1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBpbmRlbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MDE5CgoyMDE1LTA5LTE1IDE4OjA1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogc3ByaW5rbGUgc29tZSBhbGxvdy1ub25lIGFuZCBvdXQgYW5ub3RhdGlvbnMgZm9yIGctaQoKMjAxNS0wOS0xNCAxMTowMToxMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggdHlwbyBpbiBsb2cgbWVzc2FnZSB3aGVuIHRocmVhZHBvb2wgYWxsb2MgZmFpbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDk3NQoKMjAxNS0wOS0xMSAxNzo1ODo0OCArMDMwMCAgSWdvciBSb25kYXJldiA8aWdvci5yb25kYXJldkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBDaGVjayBmb3Igc29ja2V0cGFpcigpIGluIC1sc29ja2V0IHRvbwoJICBPbiBlLmcuIFFOWCBpdCBpcyBpbiBhbiBleHRlcm5hbCBsaWJyYXJ5LCBub3QgbGliYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDg3NQoKMjAxNS0wOS0wOSAxMzoxMDowNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZXZlcnQgImRvY3M6IE1ha2Ugc3VyZSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgaXMgZG9jdW1lbnRlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwZGZmZWIwMzAxOGQxMmJlNTIyYzJkOTdhYWFmODEwMjE1M2JkN2MwLgoJICBUaGUgY29tbWl0IGlzIGVycm9uZW91cyBhbmQgZG9jdW1lbnRzIHRoZSBmdW5jdGlvbiB0d2ljZS4KCjIwMTUtMDctMjMgMTI6MTg6NTEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogTWFrZSBzdXJlIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBpcyBkb2N1bWVudGVkCgkgIFRoYW5rcyB0byBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+IGZvciBwb2ludGluZyB0aGlzCgkgIG91dC4KCjIwMTUtMDgtMDUgMTA6MDc6NTAgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IHJhY2UgZm9yIGdzdF9oYXJuZXNzX2VsZW1lbnRfcmVmCgkgIEluIG9yZGVyIGZvciBnc3RfaGFybmVzc19uZXdfZnVsbCB0byBiZSBNVC1zYWZlIHRoZSBpbmNyZWFzZSBhbmQKCSAgZGVjcmVhc2Ugb2YgSEFSTkVTU19SRUYgbXVzdCBiZSBNVC1zYWZlLiBUaGlzIGFsbG93cyBmb3IgY3JlYXRpbmcKCSAgbXVsdGlwbGUgaGFybmVzc2VzIGZyb20gZGlmZmVyZW50IHRocmVhZHMgd3JhcHBpbmcgdGhlIHNhbWUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDY2MQoKMjAxNS0wOC0wNSAwOTo1OTozOSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEFsbG93LW5vbmUgZm9yIGN1c3RvbSBzdHJlc3MgaW5pdCBmdW5jCgkgIEl0IHNob3VsZCBiZSBhbGxvd2VkIHRvIG5vdCBoYXZlIGEgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgdXNlciBkYXRhCgkgIHNpbmNlIGl0J3Mgb2Z0ZW4gbm90IG5lY2Vzc2FyeTsgaXQgbWF5IGFscmVhZHkgYmUgaW5pdGlhbGl6ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ2NjEKCjIwMTUtMDktMDYgMDk6NTg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSAgZG9jczogcmVtb3ZlIHNpZ25hbCB0aGF0IG5vIGxvbmdlciBleGlzdHMgZnJvbSBkb2NzCgoyMDE1LTA5LTA1IDExOjIwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgdHJhbnNsYXRlZCBzdHJpbmcgY2hhbmdlcwoKMjAxNS0wOS0wNSAxMToxODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGZpeCAtLWV4Y2x1ZGUgY29tbWFuZCBsaW5lIG9wdGlvbgoJICBUaGlzIGhhcyBub3Qgd29ya2VkIChhcyBpbjogY3Jhc2hlZCkgc2luY2UgMjAwNSwgc28KCSAgcGVyaGFwcyBpdCBzaG91bGQganVzdCBiZSByZW1vdmVkIGluc3RlYWQuCgoyMDE1LTA4LTMxIDEyOjA3OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTI6IFByb2Nlc3MgU0VFS0lORyBxdWVyeSIKCSAgVGhpcyBjYXVzZWQgcHJvYmxlbXMgd2l0aCBvZ2dkZW11eCB3aGVuIHF1ZXVlMiB3YXMKCSAgb3BlcmF0aW5nIGluIHF1ZXVlIG1vZGUgYW5kIHRoZSBzb3VwaHR0cHNyYyB1cHN0cmVhbQoJICBpcyBub3Qgc2Vla2FibGUgYmVjYXVzZSB0aGUgc2VydmVyIGRvZXNuJ3Qgc3VwcG9ydAoJICByYW5nZSByZXF1ZXN0cy4gSXQgd291bGQgdGhlbiBzdGlsbCBjbGFpbSBzZWVrYWJpbGl0eQoJICBhbmQgdGhlbiB0aGluZ3MgZ28gd3JvbmcgZnJvbSB0aGVyZS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3YjBiOTNkYWZlNGFjNTQ3NTUyY2RiNjZhZGU1ZDhhYTA0MDVlN2I0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODg3CgoyMDE1LTA4LTI5IDIwOjE0OjQ0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1pc2MgYnVnZml4ZXMKCSAgMS4gR2V0IGEgbGlzdCBvZiBwYWQgdGVtcGxhdGVzIGZyb20gdGhlIGVsZW1lbnQgY2xhc3MsIG5vdCB0aGUKCSAgZmFjdG9yeS4gVGhpcyBhbGxvd3MgdXMgdG8gaW50ZXJhY3Qgd2l0aCB0ZXN0LWVsZW1lbnRzIHRoYXQgZG9lcwoJICBub3QgaGF2ZSBhIGZhY3RvcnkuCgkgIDIuIFVzZSB0aGUgcGFkX3RlbXBsYXRlX2NhcHMgaW4gY2Fwcy1xdWVyaWVzIHdoZW4gY2FwcyBpcyBub3Qgc2V0CgkgIGV4cGxpY2l0bHkgb24gdGhlIHBhZC4gTm90IGRvaW5nIHNvIGlzIHNpbXBseSB3cm9uZywgYW5kIHByb2hpYml0cwoJICBpbnRlcmFjdGlvbnMgd2l0aCBzcGVjaWFsIHRlbXBsYXRlcyB1c2VkIGZvciB0ZXN0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTkzCgoyMDE1LTA4LTI2IDA5OjI5OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgdGVzdHM6IGV2ZW50OiBmaXggYnVpbGQgZmFpbHVyZQoJICBnc3QvZ3N0ZXZlbnQuYzoyNTA6NTogZXJyb3I6IOKAmGZvcuKAmSBsb29wIGluaXRpYWwgZGVjbGFyYXRpb25zIGFyZSBvbmx5CgkgIGFsbG93ZWQgaW4gQzk5IG9yIEMxMSBtb2RlCgoyMDE1LTA4LTI0IDIxOjA0OjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQvcmVtb3ZlIGEgYmluIHRvL2Zyb20gaXRzZWxmCgkgIERvaW5nIHNvIHdvdWxkIGRlYWRsb2NrIGZyb20gdHJ5aW5nIHRvIGFjcXVpcmUgdGhlIG9iamVjdCBsb2NrIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQwMzYKCjIwMTUtMDgtMjEgMTQ6Mjg6NDggLTA3MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWNvbmZpZ3VyZSBiZWZvcmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIFRoZXJlIGV4aXN0IGNhc2VzIHdoZXJlIGEgcmVjb25maWd1cmUgZXZlbnQgd2FzIHByb3BhZ2F0ZWQgZnJvbQoJICBkb3duc3RyZWFtLCBidXQgY2FwcyBkaWRuJ3QgY2hhbmdlLiBJbiB0aGlzIGNhc2UsIHdlIHdvdWxkCgkgIHJlY29uZmlndXJlIG9ubHkgd2hlbiB0aGUgbmV4dCBidWZmZXIgYXJyaXZlcy4gVGhlIHByb2JsZW0gaXMgdGhhdAoJICBkdWUgdG8gdGhlIGFsbG9jYXRpb24gcXVlcnkgYmVpbmcgY2FjaGVkLCB0aGUgcmV0dXJuIHF1ZXJ5IHBhcmFtZXRlcnMKCSAgZW5kdXAgb3V0ZGF0ZWQuCgkgIEluIHRoaXMgcGF0Y2ggd2UgcmVmYWN0b3IgdGhlIHJlY29uZmlndXJhdGluZyBjb2RlIGludG8gYSBmdW5jdGlvbiwgYW5kCgkgIGFsb25nIHdpdGggcmVjb25maWd1cmluZyB3aGVuIGEgbmV3IGJ1ZmZlciBjb21lcyBpbiwgd2UgYWxzbyByZWNvbmZpZ3VyZQoJICB3aGVuIGEgcXVlcnkgYWxsb2NhdGlvbiBhcnJpdmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODUwCgoyMDE1LTA4LTA3IDE1OjM5OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYy10ZXN0OiBGaXggcmFjZSB0ZXN0aW5nIHNlZ21lbnQgdXBkYXRlCgkgIEFzIHRoaXMgdGVzdCBpcyB1c2luZyBhIHNob3J0IHNsZWVwIChHU1RfVVNFQ09ORCwgd2hpY2ggaXMgMTBtcwoJICBpbiBtaWNyb3NlY29uZCksIHNvbWV0aW1lcyB0aGF0IEVPUyBldmVudCBpcyByZWNlaXZlZCBiZWZvcmUgdGhlCgkgIGxvb3AgaW4gYmFzZXNyYyBoYXZlIHJ1biBfZG9fc2VlaygpIGFuZCBwdXNoZWQgdGhlIHVwZGF0ZSBzZWdtZW50LgoJICBUbyBzb2x2ZSB0aGlzIGlzc3VlLCB3ZSB3YWl0IGZvciB0aGUgaW5pdGlhbCBzZWdtZW50IChhbmQgZmx1c2ggaXQpCgkgIHRoZW4gd2Ugd2FpdCBmb3IgdGhlIHNlY29uZCBzZWdtZW50IGJlZm9yZSBzZW5kaW5nIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzM2NQoKMjAxNS0wOC0xOSAxMTo0NjowNyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGJpbjogQWRkIE5MRSB0byBHU1RfUExVR0lOX1BBVEgKCj09PSByZWxlYXNlIDEuNS45MCA9PT0KCjIwMTUtMDgtMTkgMTI6NTA6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjkwCgoyMDE1LTA4LTE5IDEyOjMzOjQxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOC0xOSAxMToxNzoyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wOC0xOCAxNTo0NDowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgdGFnIGxpc3Qgc3BhbSBpZiB1cHN0cmVhbSBwcm92aWRlcyBiaXRyYXRlIHRhZ3MgYWxyZWFkeQoJICBFeHBsaWNpdGx5IGtlZXAgdHJhY2sgYWdhaW4gd2hldGhlciB1cHN0cmVhbSB0YWdzIG9yIHBhcnNlciB0YWdzCgkgIGFscmVhZHkgY29udGFpbiBiaXRyYXRlIGluZm9ybWF0aW9uLCBhbmQgb25seSBmb3JjZSBhIHRhZyB1cGRhdGUKCSAgZm9yIGEgYml0cmF0ZSBpZiB3ZSBhcmUgYWN0dWFsbHkgZ29pbmcgdG8gYWRkIHRoZSBiaXRyYXRlIHRvIHRoZQoJICB0YWdsaXN0IGxhdGVyLiBUaGlzIGZpeGVzIGNvbnN0YW50IHJlLXNlbmRpbmcgb2YgdGhlIHNhbWUgdGFnbGlzdCwKCSAgYmVjYXVzZSB1cHN0cmVhbSBwcm92aWRlZCBhIGJpdHJhdGUgYWxyZWFkeSBhbmQgd2UgZGlkbid0IGFkZCBpdCwKCSAgc28gd2UgZGlkbid0IHNhdmUgdGhlICdwb3N0ZWQnIGJpdHJhdGUsIHdoaWNoIHdvdWxkIHRoZW4gaW4gdHVybgoJICBhZ2FpbiB0cmlnZ2VyIHRoZSAnYml0cmF0ZSBoYXMgY2hhbmdlZCB0b28gbXVjaCwgdXBkYXRlIHRhZ3MnCgkgIGNvZGUgcGF0aC4gRml4ZXMgdGFnIHNwYW0gd2l0aCBtNGEgZmlsZXMgZm9yIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTcgMjI6MDY6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBicmluZyB0aGUgZG90IHN0eWxlIGEgYml0IGNsb3NlciB0byB3aGF0IHdlIHVzZSBpbiB0aGUgZG9jcwoJICBVc2Ugcm91bmQgY29ybmVycyBmb3IgYmlucyBhbmQgZWxlbWVudHMuIFB1dCBzaW5rIHBhZHMgb24gdGhlIGxlZnQgYW5kIHNyYyBwYWRzCgkgIG9uIHRoZSByaWdodCBvZiBlbGVtZW50cy4KCjIwMTUtMDgtMTUgMTg6MzA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB0YWcgaGFuZGxpbmcKCSAgSW4gMC4xMCB0aGVyZSB3ZXJlIG5vIHN0aWNreSBldmVudHMsIGFuZCBhbGwgdGFnIGV2ZW50cwoJICBzZW50IHdvdWxkIGp1c3QgYmUgbWVyZ2VkIHdpdGggdGhlIHByZXZpb3VzbHktcmVjZWl2ZWQKCSAgdGFncy4gSW4gMS54IHdlIGhhdmUgc3RpY2t5IGV2ZW50cywgYW5kIHRoZSB0YWdzIGluIHRoZQoJICB0YWcgZXZlbnQocykgc2hvdWxkIGF0IGFsbCB0aW1lcyBjYXJyeSB0aGUgY29tcGxldGUgdGFncywKCSAgc28gd2UgY2FuJ3QganVzdCBwdXNoIHNvbWUgdGFncyBhbmQgdGhlbiBqdXN0IHB1c2ggdGFncwoJICB3aXRoIGp1c3QgYml0cmF0ZXMgdG8gdXBkYXRlIHRoZSBiaXRyYXRlcywgZXRjLgoJICBJbnN0ZWFkIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgdXBzdHJlYW0gc3RyZWFtIHRhZ3MKCSAgcmVjZWl2ZWQsIG9mIHRoZSB0YWdzIHNldCBieSB0aGUgdmlkZW8gZGVjb2RlciBzdWJjbGFzcywKCSAgYW5kIHNlbmQgYW4gdXBkYXRlZCB0YWcgZXZlbnQgd2l0aCB0aGUgY29tYmluZWQgdGFncwoJICBpbmNsdWRpbmcgb3VyIG93biBiaXRyYXRlIHRhZ3MgKGlmIGFwcGxpY2FibGUpIHdoZW5ldmVyCgkgIHRoZSB1cHN0cmVhbSB0YWdzLCB0aGUgc3ViY2xhc3MgdGFncyBvciBhbnkgb2Ygb3VyIGJpdHJhdGVzCgkgIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNiAxMDoxNTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiBhZGQgQVBJIGZvciBzdWJjbGFzcyB0byBzZXQgdGFncwoJICBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IHdlIGNhbiBkbyBwcm9wZXIgdGFnIGhhbmRsaW5nCgkgIGFsbCBhcm91bmQsIGFuZCBjb21iaW5lIHRoZSB1cHN0cmVhbSB0YWdzIHdpdGggdGhlCgkgIHRhZ3Mgc2V0IGJ5IHRoZSBzdWJjbGFzcyBhbmQgYW55IGV4dHJhIHRhZ3MgdGhlCgkgIGJhc2UgY2xhc3MgbWF5IHdhbnQgdG8gYWRkLgoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX21lcmdlX3RhZ3MoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE1IDE2OjAxOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzYXZlIHVwc3RyZWFtIHN0cmVhbSB0YWdzCgkgIFdlJ2xsIG5lZWQgdGhvc2UgbGF0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTUgMTY6Mzk6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIGNvZGUgc2ltcGxpZmljYXRpb24KCSAgVXNlIGdzdF9wYWRfcGVlcl9xdWVyeV9kdXJhdGlvbigpIGFuZCByZW1vdmUgYSBmZXcKCSAgdW5uZWNlc3NhcnkgbGV2ZWxzIG9mIGluZGVudGF0aW9uLiBSZXN0IG9mIGNvZGUgbWlnaHQKCSAgbG9va3MgYSBiaXQgcXVlc3Rpb25hYmxlLCBidXQgbGVhdmUgaXQgYXMgaXMgZm9yIG5vdy4KCjIwMTUtMDgtMTUgMTc6NTk6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQnJlYWsgc3RpY2t5IGV2ZW50IGFycmF5IGl0ZXJhdGlvbnMgaWYgdGhlIHR5cGUgaXMgYmlnZ2VyIHRoYW4gdGhlIG9uZSB3ZSBsb29rIGZvcgoJICBNaWNyb29wdGltaXphdGlvbiB3ZSBjYW4gZG8gYmVjYXVzZSB0aGUgYXJyYXkgaXMgc29ydGVkIGJ5IHR5cGUuCgoyMDE1LTA0LTI5IDE1OjQ5OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBZGQgYSBuZXcgR1NUX1BST0JFX0hBTkRMRUQgcmV0dXJuIHZhbHVlIGZvciBwcm9iZXMKCSAgSW4gc29tZSBjYXNlcywgcHJvYmVzIG1pZ2h0IHdhbnQgdG8gaGFuZGxlIHRoZSBidWZmZXIvZXZlbnQvcXVlcnkKCSAgdGhlbXNlbHZlcyBhbmQgc3RvcCB0aGUgZGF0YSBmcm9tIHRyYXZlbGxpbmcgZnVydGhlciBkb3duc3RyZWFtLgoJICBXaGlsZSB0aGlzIHdhcyBzb21ld2hhdCBwb3NzaWJsZSB3aXRoIGJ1ZmZlci9ldmVudHMgYW5kIHVzaW5nCgkgIEdTVF9QUk9CRV9EUk9QLCBpdCB3YXMgbm90IGFwcGxpY2FibGUgdG8gcXVlcmllcywgYW5kIHdvdWxkIHJlc3VsdAoJICBpbiB0aGUgcXVlcnkgZmFpbGluZy4KCSAgV2l0aCB0aGlzIG5ldyBHU1RfUFJPQkVfSEFORExFRCB2YWx1ZSwgdGhlIGJ1ZmZlci9ldmVudC9xdWVyeSB3aWxsCgkgIGJlIGNvbnNpZGVyZWQgYXMgc3VjY2Vzc2Z1bGx5IGhhbmRsZWQsIHdpbGwgbm90IGJlIHB1c2hlZCBmdXJ0aGVyCgkgIGFuZCB0aGUgYXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlIChUUlVFIG9yIEdTVF9GTE9XX09LKSB3aWxsIGJlIHJldHVybmVkCgkgIFRoaXMgYWxzbyBhbGxvd3MgcHJvYmVzIHRvIHJldHVybiBhIG5vbi1kZWZhdWx0IEdzdEZsb3dSZXR1cm4gd2hlbiBkZWFsaW5nCgkgIHdpdGggYnVmZmVyIHB1c2guIFRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZyB0aGUKCSAgR1NUX1BBRF9QUk9CRV9JTkZPX0ZMT1dfUkVUVVJOKCkgZmllbGQgYWNjb3JkaW5nbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODY0MwoKMjAxNS0wOC0xNSAxMzoyNTozNSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgZ3N0dmVyc2lvbjogQWRkIG1pc3NpbmcgaW5jbHVkZSBpbiAuaW4gZmlsZS4KCjIwMTUtMDgtMTEgMDA6MzU6MjEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICBIZWFkZXJzOiBhZGQgbWlzc2luZyBpbmNsdWRlcy4KCjIwMTUtMDgtMTUgMDY6NDE6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCB0aGUgbmV3IHBhZCBhY2NlcHQtdGVtcGxhdGUgZmxhZyB0byB0aGUgZG9jcwoKMjAxNS0wOC0xNCAyMjo0NDo1MCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogc2VjdGlvbiBlbnRyeSBtaXNzaW5nIGZvciBnc3RfZGlyZWN0X2NvbnRyb2xfYmluZGluZ19uZXdfYWJzb2x1dGUKCjIwMTUtMDgtMTQgMDg6MTQ6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogdGVzdHMgZm9yIGFjY2VwdC1jYXBzIGRlZmF1bHQgaGFuZGxpbmcKCSAgQ2hlY2sgaWYgYWxsIHRoZSBkZWZhdWx0IDQgYWNjZXB0LWNhcHMgcG9zc2liaWxpdGllcyBhcmUgd29ya2luZzoKCSAgc3Vic2V0IG9yIGludGVyc2VjdCBjaGVjayBhbmQgcXVlcnktY2FwcyBvciB0ZW1wbGF0ZSBjYXBzIGNvbXBhcmlzb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNjIzCgoyMDE1LTA4LTE0IDA3OjUxOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgR1NUX1BBRF9GTEFHX0FDQ0VQVF9URU1QTEFURQoJICBJdCB3aWxsIG1ha2UgdGhlIGRlZmF1bHQgYWNjZXB0LWNhcHMgaGFuZGxlciB1c2UgdGhlIHBhZCB0ZW1wbGF0ZQoJICBjYXBzIGluc3RlYWQgb2YgdGhlIHF1ZXJ5LWNhcHMgcmVzdWx0IHRvIGNoZWNrIGlmIHRoZSBjYXBzIGlzCgkgIGFjY2VwdGFibGUuIFRoaXMgaXMgYWxpZ25lZCB3aXRoIHdoYXQgdGhlIGRlc2lnbiBkb2NzIHNheXMgdGhlCgkgIGFjY2VwdC1jYXBzIHNob3VsZCBkbyAoYmUgbm9uLXJlY3Vyc2l2ZSkgYW5kIHNob3VsZCBiZSBmYXN0ZXIuIEl0CgkgIGlzICpub3QqIGVuYWJsZWQgYnkgZGVmYXVsdCwgdGhvdWdoLgoJICBBUEk6IEdTVF9QQURfRkxBR19BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX0lTX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfU0VUX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfVU5TRVRfQUNDRVBUX1RFTVBMQVRFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM2MjMKCjIwMTUtMDgtMTQgMTE6MTA6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBjaGVjazogUmVuYW1lIHN0YXRlcyB1bml0IHRlc3QKCSAgTWFrZXMgaXQgZWFzaWVyIHRvIGRpZmZlcmVudGlhdGUgZnJvbSBvdGhlciBtb2R1bGVzIHN0YXRlcyB1bml0IHRlc3QKCjIwMTUtMDgtMTMgMTM6MDg6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZXdvcmsgYWNjZXB0LWNhcHMKCSAgQWNjb3JkaW5nIHRvIHRoZSBkZXNpZ24gZG9jczoKCSAgVGhlIEFDQ0VQVF9DQVBTIHF1ZXJ5IGlzIG5vdCByZXF1aXJlZCB0byB3b3JrIHJlY3Vyc2l2ZWx5LCBpdCBjYW4gc2ltcGx5CgkgIHJldHVybiBUUlVFIGlmIGEgc3Vic2VxdWVudCBDQVBTIGV2ZW50IHdpdGggdGhvc2UgY2FwcyB3b3VsZCByZXR1cm4KCSAgc3VjY2Vzcy4KCSAgU28gbWFrZSBpdCBhIHNoYWxsb3cgY2hlY2sgaW5zdGVhZCBvZiByZWN1cnNpdmVsbHkgY2hlY2sgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODYzNQoKMjAxNS0wOC0xMyAxMjo0NDoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIGRlYWQgY29kZQoJICBEb2Vzbid0IHNlZW0gbGlrZSBpdCBpcyBnb2luZyB0byBnZXQgYmFjayB0byBsaWZlIGFueXRpbWUgc29vbgoJICBBbHNvIHJlbW92ZXMgYSB7fSBibG9jayB0aGF0IHdhcyBsaWtlbHkgdXNlZCB0byBrZWVwIHRoZSBkZWFkCgkgIGNvZGUgYXJvdW5kLgoKMjAxNS0wOC0xMSAwODowNzo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlc3BlY3QgYWNjZXB0LWNhcHMgaW50ZXJzZWN0IGZsYWcKCSAgR3N0UGFkIGhhcyBhIGZsYWcgZm9yIHN1Z2dlc3RpbmcgaWYgdGhlIGFjY2VwdC1jYXBzCgkgIHF1ZXJ5IHNob3VsZCB1c2UgaW50ZXJzZWN0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKCSAgc3Vic2V0IGNhcHMgb3BlcmF0aW9uIHRvIHZlcmlmeSBpZiB0aGUgY2FwcyB3b3VsZCBiZQoJICBhY2NlcHRhYmxlLgoJICBiYXNldHJhbnNmb3JtIGN1cnJlbnRseSBhbHdheXMgdXNlcyB0aGUgc3Vic2V0IGNoZWNrIGFuZAoJICB0aGlzIHBhdGNoIG1ha2VzIGl0IGhvbm9yIHRoZSBmbGFnIGZvciB1c2luZyBpbnRlcnNlY3QKCSAgaWYgaXQgaXMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjM1CgoyMDE1LTA4LTEyIDEzOjEyOjM4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSB1bnJlYWNoYWJsZSByZXR1cm4gc3RhdGVtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM1MzgKCjIwMTUtMDgtMTEgMTE6MDk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IGhhcm5lc3MgdGVzdCBiaW5hcnkKCjIwMTUtMDgtMTAgMTU6MzE6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogYWNjZXB0IGp1c3QgYSB0aW1lIGFzIElTTyA4NjAxIHN0cmluZyBhbmQgdXNlIHRvZGF5J3MgZGF0ZSB0aGVuCgkgIElmIG5vIGRhdGUgYW5kIG9ubHkgYSB0aW1lIGlzIGdpdmVuIGluIGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21faXNvODYwMV9zdHJpbmcoKSwKCSAgYXNzdW1lIHRoYXQgaXQgaXMgInRvZGF5IiBhbmQgdHJ5IHRvIHBhcnNlIHRoZSB0aW1lLW9ubHkgc3RyaW5nLiAiVG9kYXkiIGlzCgkgIGFzc3VtZWQgdG8gYmUgaW4gdGhlIHRpbWV6b25lIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIChpZiBhbnkpLCBvdGhlcndpc2UgWiAtCgkgIGp1c3QgbGlrZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM0NTUKCjIwMTUtMDctMjQgMDA6NDE6NTcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhZGQgX3NldF9mb3J3YXJkaW5nIGZ1bmN0aW9uCgkgIFRvIGJlIGFibGUgdG8gZGlzYWJsZSB0aGUgc2xpZ2h0bHkgIm1hZ2ljIiBmb3J3YXJkaW5nIG9mIHRoZQoJICBuZWNlc3NhcnkgZXZlbnRzIGJldHdlZW4gdGhlIGhhcm5lc3Nlcy4KCSAgQWxzbyBpbnRyb2R1Y2UgYSBuZXcgdGVzdC1zdWl0ZSBmb3IgR3N0SGFybmVzcywgdGhhdCBkb2N1bWVudHMgdGhlCgkgIGZlYXR1cmUsIGFuZCBzaG91bGQgaG9wZWZ1bGx5IGV4cGFuZCBpbnRvIGRvY3VtZW50aW5nIG1vc3Qgb2YgdGhlCgkgIGZlYXR1cmVzIHRoZSBoYXJuZXNzIHBvc3Nlc3Nlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mjc0NgoKMjAxNS0wOC0wOCAxNzo1OTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBmaXggcHJvdmlkZXIgbGVhawoKMjAxNS0wOC0wOCAxNToyODoxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcHJldmlvdXMgY29tbWl0CgkgIFdlIHdhbnQgdG8gZ2V0IHRoZSBjYXBzIHF1ZXJ5ICpyZXN1bHQqCgoyMDE1LTA3LTE2IDE4OjU2OjAwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZXByb3ZpZGVyOiBBZGQgbWV0aG9kIHRvIGhpZGUgZGV2aWNlcyBmcm9tIGEgcHJvdmlkZXIKCSAgQWRkIG1ldGhvZHMgdG8gYWRkL3JlbW92ZSB0aGUgcHJvdmlkZXJzIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiBieSB0aGlzCgkgIHByb3ZpZGVyLiBBbHNvIG1ha2UgYSBtZXRob2QgdG8gZ2V0IGEgbGlzdCBvZiBoaWRkZW4gcHJvdmlkZXJzLgoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgc3lzdGVtcyBtb25pdG9yIHRoZSBzYW1lIGRldmljZXMKCSAgYW5kIHJlbW92ZSBkdXBsaWNhdGVzLgoJICBBZGQgYSBwcm9wZXJ0eSB0byBzZWUgYWxsIGRldmljZXMsIGV2ZW4gZHVwbGljYXRlIG9uZXMgZnJvbSBoaWRkZW4KCSAgcHJvdmlkZXJzLgoKMjAxNS0wOC0wOCAxNDo0Mjo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBnZXRfYWxsb3dlZF9jYXBzKCkgc2hvdWxkIGdvIHRocm91Z2ggYm90aCBwYWRzCgkgIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiB3YXMgZG9pbmcgYSBkaXJlY3QgY2FsbCB0byB0aGUgcGVlciBwYWQsCgkgIHdoaWNoIHJlc3VsdGVkIGluIHF1ZXJ5IHByb2JlcyBuZXZlciBiZWluZyBjYWxsZWQgb24gdGhlIG9yaWdpbmFsIHBhZC4KCSAgSW5zdGVhZCBvZiB0aGF0LCBnZXQgdGhlIHBlZXIgcGFkIGNhcHMgYnkgdXNpbmcgZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkKCSAgd2hpY2ggd2lsbCBjYWxsIHByb2JlcyBpbiB0aGUgZXhwZWN0ZWQgZmFzaGlvbi4KCjIwMTUtMDgtMDcgMTA6MDg6MjEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZyZWUgY2FwcyBkdXJpbmcgZmFpbHVyZQoJICBXaGlsZSBjYWxsaW5nIGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zYW1wbGUsIGlmIHRoZXJlIGlzIGEgZmFpbHVyZQoJICBhZnRlciBjYXBzIGlzIHJlZidlZCwgdGhlbiBjYXBzIGlzIGdldHRpbmcgbGVha2VkLiBIZW5jZSBjaGVja2luZyBmb3IKCSAgY2FwcyBpbiBmYWlsOiBnb3RvIGNvbmRpdGlvbiBhbmQgdW5yZWYnaW5nIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMzMzgKCjIwMTUtMDctMjEgMTM6MzU6MzMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogQWRkIHBsdWdpbnMgdG8gdGhlIHJlZ2lzdHJ5IHdlIGFyZSBsb2FkaW5nIGFuZCBub3QgZGVmYXVsdCBvbmUKCSAgV2hlbiBydW5uaW5nIGdzdF9yZWdpc3RyeV9zY2FuX3BsdWdpbl9maWxlIHdlIHdlcmUgbG9zaW5nIHRoZQoJICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVnaXN0cnkgYmVpbmcgbG9hZGVkIGFuZCBlbmRlZCB1cCBhZGRpbmcgdGhlCgkgIHBsdWdpbiB0byB0aGUgZGVmYXVsdCByZWdpc3RyeSB3aGljaCB3YXMgbm90IGNvcnJlY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2NjIKCjIwMTUtMDgtMDUgMTU6NTE6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgZHJvcCBidWZmZXIgaWYgdGhlaXIgUFRTIGlzIG91dCBvZiBzZWdtZW50CgkgIEFzIG9mIG5vdywgZXZlbiBmb3Igc3RyZWFtIGNvbXBsZXRseSBpbnNpZGUgc2VnbWVudCwgdGhlcmUgaXMgbm8KCSAgZ3VhcmFudGllZCB0aGF0IHRoZSBEVFMgd2lsbCBiZSBpbnNpZGUgdGhlIHNlZ21lbnQuIFNwZWNpZmljYWxseQoJICBmb3IgSC4yNjQgd2l0aCBCLUZyYW1lcywgdGhlIGZpcnN0IGZldyBmcmFtZXMgb2Z0ZW4gaGF2ZSBEVFMgdGhhdAoJICBhcmUgYmVmb3JlIHRoZSBzZWdtZW50LgoJICBJbnN0ZWFkIG9mIHVzaW5nIHRoZSBzeW5jIHRpbWVzdGFtcCB0byBjbGlwIG91dCBvZiBzZWdtZW50IGJ1ZmZlciwKCSAgdGFrZSB0aGUgZHVyYXRpb24gZnJvbSB0aGUgc3RhcnQvc3RvcCBwcm92aWRlZCBieSB0aGUgc3ViLWNsYXNzLCBhbmQKCSAgY2hlY2sgaWYgdGhlIHB0cyBhbmQgcHRzX2VuZCBpcyBvdXQgb2Ygc2VnbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mjc5MQoKMjAxNS0wOC0wNSAxNDowNToyNSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgcnVuIGNvZGUgaW5zaWRlIGdfYXNzZXJ0CgkgIEV2ZW4gdGhvdWdoIGFzc2VydHMgY2FuJ3QgYmUgZGlzYWJsZWQgaW4gR3N0SGFybmVzcywgQ292ZXJpdHkgc3RpbGwKCSAgY29tcGxhaW5zIGFib3V0IHJ1bm5pbmcgY29kZSBpbnNpZGUgdGhlbS4gTW92aW5nIHRoZSBjb2RlIHRvIG91dHNpZGUgdGhlCgkgIGdfYXNzZXJ0cygpLgoJICBDSUQgIzEzMTEzMjYsICMxMzExMzI3LCAjMTMxMTMyOAoKMjAxNS0wNy0xNyAxMDoxODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogZ2V0IGEgbGlzdCBvZiBjdXJyZW50bHkgbW9uaXRvcmVkIHByb3ZpZGVycwoJICBHZXQgYSBsaXN0IG9mIHRoZSBjdXJyZW50bHkgbW9uaXRvcmVkIHByb3ZpZGVycy4KCjIwMTUtMDgtMDIgMTc6Mzg6MTQgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGludmFsaWQgdW5yZWYgYWZ0ZXIgSURMRSBwcm9iZSBvbiBub24tT0sgZmxvdyByZXR1cm4KCSAgSW4gY2FzZSB0aGVyZSBpcyBhbiBJRExFIHByb2JlIGZpcmVkIGZyb20gZ3N0X3BhZF9wdXNoX2RhdGEgYW5kIGl0CgkgIGRvZXNuJ3QgcmV0dXJuIEdTVF9GTE9XX09LLCB0aGUgY29kZSBqdW1wcyB0byB0aGUgcHJvYmVfc3RvcHBlZAoJICBsYWJlbCB3aGljaCB0cmllcyB0byB1bnJlZiB0aGUgZGF0YSBvYmplY3QuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQKCSAgdGhlIGRhdGEgb2JqZWN0IGJlbG9uZ3MgZG93bnN0cmVhbSBhbmQgbXVzdCBub3QgYmUgdG91Y2hlZC4KCSAgQnkgc2V0dGluZyBkYXRhID0gTlVMTCwgdGhlIGNvZGUgc2tpcHMgdGhpcyB1bnJlZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NTMxNTEKCjIwMTUtMDgtMDQgMjA6MDg6MDQgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCB0aGUgbmFtZSBvZiB0aGUgcGFyZW50YnVmZmVybWV0YSBkZWJ1ZyBjYXRlZ29yeS4KCSAgRG9uJ3QgdXNlICdnbGJ1ZmZlcnJlZm1ldGEnIGFzIHRoZSBkZWJ1ZyBjYXRlZ29yeSBmb3IgdGhlCgkgIHBhcmVudCBidWZmZXIgbWV0YS4KCjIwMTUtMDgtMDQgMTM6NDU6MDkgKzA5MDAgIEV1bmhhZSBDaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG5vdCB1cGRhdGUgdXBzdHJlYW0gc2l6ZSB3aXRoIG5lZ2F0aXZlIHZhbHVlCgkgIHVwc3RyZWFtX3NpemUgY2FuIGJlIG5lZ2F0aXZlIGJ1dCBxdWV1ZS0+dXBzdHJlYW1fc2l6ZSBpcyB1bnNpZ25lZCB0eXBlLgoJICB0byBnZXQgYSBjaGFuY2UgdG8gdXBkYXRlIHF1ZXVlLT51cHN0cmVhbV9zaXplIGluIGdzdF9xdWV1ZTJfZ2V0X3JhbmdlKCkKCSAgaXQgc2hvdWxkIGtlZXAgdGhlIGRlZmF1bHQgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMwMTEKCjIwMTUtMDgtMDQgMTk6NTk6MjggKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBSZW1vdmUgZXh0cmEgZGVidWcgc3ltYm9sIGZyb20gZXhwb3J0cwoJICBEb24ndCBleHBvcnQgdGhlIGRlYnVnIHZhcmlhYmxlIGZvciB0aGUgcGFyZW50X2J1ZmZlcl9tZXRhLgoJICBUaGlzIHdhcyBhY2NpZGVudGFsbHkgZXhwb3J0ZWQgYW5kIHNob3VsZG4ndCBiZSBwdWJsaWMKCjIwMTUtMDgtMDQgMDA6MTE6MjQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2UgR1NUX0lORk9fT0JKRUNUIGZvciBtb3JlIGRldGFpbAoJICBIZWxwcyB0byBkaXN0aWd1aXNoIG11bHRpcGxlIGZpbGVzaW5rcy4KCjIwMTUtMDctMzAgMTc6Mjk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBpbmZvOiByZW1vdmUgMC44IHRlcm1pbm9sb2d5IGZyb20gbG9nIGxldmVsIGRlc2NyaXB0aW9uCgkgIFdlIGRvbid0ICJpdGVyYXRlIiBiaW5zIG9yIHBpcGVsaW5lcyBhbnkgbW9yZS4KCjIwMTUtMDctMzAgMTI6MTc6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBmaXggYnVmZmVyIGxlYWsgaW4gdW5pdCB0ZXN0CgkgIEZpeGVzIG1ha2UgY2hlY2stdmFsZ3JpbmQKCjIwMTUtMDctMjggMjE6MTQ6MjIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgZG9jL3NlZWtmbGFnczogRml4IGNyb3NzIHJlZmVyZW5jZXMKCSAgVGhpcyBmaXhlcyBtaXNzLXVzZSBvZiBAIGluc3RlYWQgb2YgJSB0byByZWZlciB0byBlbnVtZXJhdGlvbgoJICB2YWx1ZXMuCgoyMDE1LTA3LTI4IDIyOjMwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIGEgZmV3IG1vcmUgbmV3IHN5bWJvbHMgYW5kIGRlZmluZXMKCjIwMTUtMDctMjggMTY6NTc6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGRvYy9jYXBzZmlsdGVyOiBEb2N1bWVudCBmaWx0ZXJpbmcgbW9kZXMKCSAgVGhpcyBpcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxNjo1MDo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZG9jL2ZpbGVzaW5rOiBBZGQgQnVmZmVyTW9kZSBlbnVtZXJhdGlvbgoJICBUaGlzIGlzIHB1cmVseSBmb3IgZG9jdW1lbnRhdGlvbiBwdXJwb3NlLiBUaGlzIHdheSB0aGUgdmFsdWVzIHdpbGwKCSAgc2hvdyB1cCBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxNTo1MDo0MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGRvYy9nc3RoYXJkbmVzczogRml4IHR5cG8gaW4gR3N0QWxsb2NhdGlvblBhcmFtcwoJICBJdCdzIG5vdCBHc3RBbGxvY2F0b3JQYXJhbXMgYnV0IEdzdEFsbG9jYXRpb25QYXJhbXMuCgoyMDE1LTA3LTI4IDE1OjQ2OjA5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZG9jL2dzdGhhcm5lc3M6IFJlbW92ZSB1bmtub3duIHBhcmFtZXRlcgoJICBzaW5rX2VsZW5tZW50X25hbWUgaXMgbm90IGEgcGFyYW1ldGVyIG9mIGdzdF9oYXJuZXNzX2FkZF9zaW5rX2hhcm5lc3MoKQoJICBmdW5jdGlvbiwgYnV0IHN0aWxsIGl0IHNob3cgdXAgaW4gZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTI6MTk6MDQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IE9ubHkgcmVtZW1iZXIgcHJldmlvdXMgZmlsdGVyIGNhcHMgaWYgdGhleSB3ZXJlIGFjdHVhbGx5IHVzZWQgZm9yIHNvbWV0aGluZwoJICBJZiBub2JvZHkgZXZlciBzYXcgdGhlIHByZXZpb3VzIGZpbHRlciBjYXBzLCBub3RoaW5nIGNvdWxkJ3ZlIG5lZ290aWF0ZWQgd2l0aAoJICB0aGVtIGFuZCB3ZSBjYW4ganVzdCBwcmV0ZW5kIHRoZXkgbmV2ZXIgZXhpc3RlZCBhdCBhbGwuCgoyMDE1LTA3LTI4IDEyOjE2OjEyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFdoZW4gc3dpdGNoaW5nIGNhcHMgY2hhbmdlIG1vZGVzLCBmb3JnZXQgYWxsIHByZXZpb3VzIGNhcHMKCjIwMTUtMDctMjMgMTg6MTU6MDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0dXJuIEZMT1dfRkxVU0hJTkcgaWYgbmVnb3RpYXRpb24gZmFpbHMgZHVyaW5nIHNodXRkb3duCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI4MDAKCjIwMTUtMDctMjIgMTg6NTU6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCBpbmRlbmRhdGlvbgoKMjAxNS0wNy0yMSAxMzoxNDo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEF2b2lkIGluY3JlYXNpbmcgcXVlcnkgcmVmZXJlbmNlCgkgIGdzdF9xdWVyeV9maW5kX2FsbG9jYXRpb25fbWV0YSgpIHJlcXVpcmVzIHRoZSBxdWVyeSB0byBiZQoJICB3cml0YWJsZSB0byB3b3JrLiBUaGlzIHBhdGNoIGVuc3VyZSBhdm9pZHMgdGFraW5nIGEgcmVmZXJlbmNlCgkgIG9uIHRoZSBxdWVyeSwgc28gd2UgY2FuIG5vdyBjaGVjayBpZiBhIGNlcnRhaW4gYWxsb2NhdGlvbiBtZXRhCgkgIGlzIHByZXNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2NjEKCjIwMTUtMDctMjIgMTU6Mzg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IGZpeCBkZXNjcmlwdGlvbiBvZiBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkKCSAgTm8gR0J5dGVzIGludm9sdmVkLgoKMjAxNS0wNy0yMSAwMDoxNzoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBkb3Qgbm90IHJlc2V0IHBhZCBzdGF0ZXMgdG9vIGVhcmx5CgkgIFJlc2V0dGluZyB0aGUgZmx1c2hpbmcgc3RhdGUgb2YgdGhlIHBhZHMgYXQgdGhlIGVuZCBvZiB0aGUKCSAgUEFVU0VEX1RPX1JFQURZIHRyYW5zaXRpb24gd2lsbCBtYWtlIHBhZHMgaGFuZGxlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcyBhZ2FpbiB3aGljaCB3aWxsIHdhaXQgZm9yIG5vbi1hY3RpdmUgcGFkcyBhbmQgbWlnaHQKCSAgY2F1c2UgZGVhZGxvY2tzIHdoZW4gc3RvcHBpbmcgdGhlIHBpcGVsaW5lLgoJICBNb3ZlIHRoZSByZXNldCB0byB0aGUgUkVBRFlfVE9fUEFVU0VEIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI2MjMKCjIwMTUtMDctMjAgMTY6MTg6MDYgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogYWRkIGZ1bmN0aW9ucyBmb3IgYWRkaW5nIHN1Yi1oYXJuZXNzZXMgZGlyZWN0bHkKCSAgQnkgaW50cm9kdWNpbmcgZ3N0X2hhcm5lc3NfYWRkX3NyY19oYXJuZXNzIGFuZCBnc3RfaGFybmVzc19hZGRfc2lua19oYXJuZXNzCgkgIHdlIGNvbGxlY3QgYWxsIHN1Yi1oYXJuZXNzIHNldHVwIGluIG9uZSBmdW5jdGlvbiwgbWFraW5nIHRoZSBwcmV2aW91cwoJICBzdWItaGFybmVzcyBjcmVhdGlvbiBmdW5jdGlvbnMgbm93IGNhbGxzIHRoZXNlIGRpcmVjdGx5LCBhbmQgbWFraW5nIGl0CgkgIG11Y2ggZWFzaWVyIChhbmQgbGVzcyBlcnJvci1wcm9uZSkgdG8gYWRkIHlvdXIgb3duIHNyYyBvciBzaW5rLWhhcm5lc3MKCSAgdXNpbmcgdGhlIG1vcmUgZ2VuZXJpYyBoYXJuZXNzLWNyZWF0aW9uIGZ1bmN0aW9ucy4KCjIwMTUtMDctMTcgMTc6NDQ6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3Qgb3ZlcnJpZGUgZ3N0X3NlZ21lbnRfZG9fc2VlaygpCgkgIFRoaXMgbGluZSBoYXMgbm8gcHVycG9zZSwgY2xlYXJseSBnc3Rfc2VnbWVudF9kb19zZWVrKCkgaXMgZG9pbmcKCSAgdGhlIHJpZ2h0IGpvYiwgYWxzbywgaGF2aW5nIHRoZSBzdGFydCB0aW1lIChhIHRpbWVzdGFtcCkgYmUgdGhhdAoJICBzYW1lIGFzIHRpbWUgKHRoZSBzdHJlYW0gdGltZSkgaXMgcXVpdGUgb2RkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTE3IDE3OjQzOjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBleHRyYXBvbGF0aW9uIG9mIHNlZWtzZWdtZW50LnN0b3AKCSAgVGhlIHN0b3Agc2hhbGwgYmUgcmVsYXRpdmUgdG8gc3RhcnQgaWYgZXh0cmFwb2xhdGVkIGZyb20gdGhlCgkgIGR1cmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTE2IDE4OjQ3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGRvIHN0YXJ0IGFuZCBzdG9wIG91dHNpZGUgb2YgdGhlIGxvY2sKCSAgUmVsZWFzZSB0aGUgbW9uaXRvciBsb2NrIHdoZW4gY2FsbGluZyB0aGUgcHJvdmlkZXIgc3RhcnQvc3RvcCBtZXRob2RzLgoJICBCZWNhdXNlIHdlIHJlbGVhc2UgdGhlIGxvY2sgbm93LCBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBjaGVjayB0aGUKCSAgY29va2llIGFnYWluIGFuZCBrZWVwIHRyYWNrIG9mIHN0YXJ0ZWQgYW5kIHJlbW92ZWQgcHJvdmlkZXJzLgoKMjAxNS0wNy0xNiAxODo0MzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkgIGRldmljZXByb3ZpZGVyOiBzbWFsbCBjbGVhbnVwcwoJICBQcm90ZWN0IGFnYWluc3Qgd3JvbmcgYXJndW1lbnRzLgoJICBDbGVhbiB1cCB0aGUgaGVhZGVyIGZpbGUgaW5kZW50YXRpb24uCgoyMDE1LTA3LTE2IDE3OjI1OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGtlZXAgb3JkZXIgb2YgcHJvdmlkZXJzIGFuZCBkZXZpY2VzCgkgIFRoZSBkZXZpY2Vwcm92aWRlcnMgYXJlIGFkZGVkIHRvIHRoZSBhcnJheSBzb3J0ZWQgYnkgdGhlaXIgcmFuay4gTWFrZQoJICBzdXJlIHdlIGtlZXAgdGhpcyBvcmRlcmluZyB3aGVuIHJlbW92aW5nIGEgcHJvdmlkZXIuCgkgIFdlIHVzZSBfcHJlcGVuZCB0byBjb2xsZWN0IHRoZSBkZXZpY2VzLCB1c2UgZ19saXN0X3JldmVyc2UgdG8gZ2V0IHRoZQoJICBkZXZpY2VzIGluIHRoZSByaWdodCBvcmRlcjsgc29ydGVkIGJ5IHJhbmsgYW5kIGluIHRoZSBzYW1lIG9yZGVyIGFzCgkgIHJldHVybmVkIGJ5IHRoZSBwcm92aWRlci4KCjIwMTUtMDctMTYgMTc6NTA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNS0wNy0xNiAxNzo1MDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHBhZCB0ZW1wbGF0ZSBsZWFrCgoyMDE1LTA3LTE2IDE3OjEzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBkb2NzOiBkcm9wIHJlZmVyZW5jZSB0byBzb3VyY2Vmb3JnZSBtYWlsaW5nIGxpc3QgYWRyZXNzCgoyMDE1LTA3LTE2IDE3OjUzOjQwICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IHJlLWVzdGFibGlzaCB0aGUgaGFybmVzcyBzaW5rIGFuZCBzcmMgcGFkcwoJICBHaXZlbiB0aGF0IHRoZSBlbGVtZW50IGhhcyB0aGUgcG9zc2liaWxpdHkgdG8gaGF2ZSBvbmUsIHRoZXkgc2hvdWxkCgkgIGFscmVhZHkgYmUgdGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTgKCjIwMTUtMDctMTMgMTE6MDM6MTMgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IEltcHJvdmUgZGV0ZWN0aW9uIG9mIGVsZW1lbnQgdHlwZQoJICBUaGUgZWxlbWVudCBmbGFnIGRvZXMgbm90IGluZGljYXRlIHdldGhlciBhIGJpbiBzaG91bGQgYmUgdGVzdGVkIGFzIGEKCSAgc291cmNlIG9yIGFzIGEgc2luaywgZWcuIGEgYmluIHdpdGggdGhlIHNpbmsgZmxhZyBtYXkgc3RpbGwgaGF2ZSBhCgkgIHNvdXJjZSBwYWQgYW5kIGEgYmluIHdpdGggdGhlIHNvdXJjZSBmbGFnIG1heSBoYXZlIGEgc2luayBwYWQuIEluIHRoaXMKCSAgY2FzZSBpdCBpcyBiZXR0ZXIgdG8gZGV0ZXJtaW5lIHRoZSBlbGVtZW50IHR5cGUgYnkgbG9va2luZyBhdCB0aGUKCSAgYXZhaWxhYmxlIHBhZHMgYW5kIHBhZCB0ZW1wbGF0ZXMuCgkgIEFsc28gcmVuYW1lIHNyY3BhZCBhbmQgc2lua3BhZCB3aGVyZSBpdCBhY3R1YWxseSByZXByZXNlbnRzCgkgIGVsZW1lbnRfc3JjcGFkX25hbWUgYW5kIGVsZW1lbnRfc2lua3BhZF9uYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDkzCgoyMDE1LTA3LTEzIDExOjEwOjQ5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIHNpbmsgaGFybmVzcwoJICBGaXhlcyBpc3N1ZSB3aGVyZSBpZiBhIHNpbmsgaGFybmVzcyB3YXMgYWRkZWQgbGF0ZSB0aGUgc3RpY2t5IGV2ZW50cwoJICB3b3VsZCBub3QgYmUgZm9yd2FyZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTQKCjIwMTUtMDctMTYgMTI6MzY6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IG1ha2UgaGVhZGVyIG5pY2VyIHRvIHJlYWQKCjIwMTUtMDctMTYgMTA6MzY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGZ1bmN0aW9uIHRvIEFQSSBkb2NzCgoyMDE1LTA3LTE1IDE4OjIxOjEzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlOiBhZGQgZ2VuZXJpYyBzdHJ1Y3Qgd2l0aCBwcm9wZXJ0aWVzCgkgIEFkZCBhIGdlbmVyaWMgc3RydWN0dXJlIHRvIGhvbGQgYW55IGFkZGl0aW9uYWwgcHJvcGVydGllcyBhYm91dCB0aGUKCSAgZGV2aWNlLgoKMjAxNS0wNy0xNCAxMjo0NDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHR5cG8gaW4gYWxsb3ctbm90LWxpbmtlZCBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoKMjAxNS0wNy0xMyAxNDoyNDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogYnVzOiBtZW50aW9uIG1haW4gbG9vcCByZXF1aXJlbWVudCBpbiBnc3RfYnVzX2FkZF93YXRjaCgpIGRvY3MKCjIwMTUtMDMtMTggMTY6MDU6MzQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgZnVuY3Rpb24gZ3VhcmQgZm9yIF9zZXRfbG9jaygpIGFuZCBmaXggZ3VhcmQgZm9yIF9qb2luKCkKCSAgU2hvdWxkIG9ubHkgYWNjZXNzIHRoZSBvYmplY3Qgc3RydWN0dXJlIGFmdGVyIGNoZWNraW5nCgkgIGl0J3MgdmFsaWQgaW4gZ3N0X3Rhc2tfam9pbigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2Mzg1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzEKCjIwMTUtMDUtMTkgMTg6NTg6MTEgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBwcm90ZWN0aW9uOiBpbXBsZW1lbnQgbWV0YSB0cmFuc2Zvcm0gZnVuY3Rpb24KCSAgQ29weSB0aGUgR3N0TWV0YSBjb250ZW50cyBvdmVyIHRvIHRoZSBuZXcgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTkwCgoyMDE1LTA3LTEwIDA5OjEyOjE1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlc3RpbWF0ZSBkdXJhdGlvbiBvbiBFT1MKCSAgRm9yIGZpbGVzIHdoaWNoIGFyZSBzbWFsbGVyIHRoYW4gMS41IHNlY29uZHMsIHRoZSBkdXJhdGlvbgoJICBlc3RpbWF0aW9uIGRvZXMgbm90IGhhcHBlbi4gU28gdGhlIGR1cmF0aW9uIHdpbGwgYWx3YXlzIGJlCgkgIGRpc3BsYXllZCBhcyAwLiBVcGRhdGluZyB0aGUgZHVyYXRpb24gb24gRU9TIHdoZW4gdGhlIGVzdGltYXRpb24KCSAgaGFzIG5vdCBoYXBwZW5lZCBhbHJlYWR5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxMzEKCjIwMTUtMDctMTAgMTE6MDE6MjEgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGNoYW5nZSBsb2cgbWVzc2FnZSBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMTE2CgoyMDE1LTA3LTA5IDAwOjEyOjUxICswOTAwICBKdXN0aW4gSm95IDxqdXN0aW4uam95Ljl0bzVAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5oOgoJICBkb2NzOiBhZGQgU3RyZWFtaWREZW11eCB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk4NzMKCjIwMTUtMDctMDkgMDA6MjE6NDIgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCB0byBnZXQgdmFsaWQgKGJ1ZmZlcl8pbGlzdAoJICBnZXRfbGlzdC9nZXRfYnVmZmVyX2xpc3Qgc2hvdWxkIGJlIGRvbmUgd2l0aCBidWZmZXJzIGluIGFkYXB0ZXIgcmVtYWluaW5nCgkgIHdoaWxlIHRha2VfbGlzdC90YWtlX2J1ZmZlcl9saXN0IGZsdXNoZXMgZWFjaCBidWZmZXIgb25lIGJ5IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjExNgoKMjAxNS0wNy0wOCAyMDowNjoyNyArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdW5pdCB0ZXN0IGZvciBuZXcgZ2V0XyhidWZmZXJfKWxpc3QKCjIwMTUtMDctMDggMTI6MDA6NTYgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwdXQgYnVmZmVyIGluIGEgY29ycmVjdCBzdGF0ZSBhZnRlciBnc3RfYWRhcHRlcl9nZXRfYnVmZmVyIGNhbGwKCSAgV2UgbXVzdCBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgdG8gd3JpdGUgaXRzIFBUUyBhbmQgRFRTLCBhbmQgYWxzbwoJICByZXNldCBpdHMgZHVyYXRpb24uCgkgIFRoZSBiZWhhdmlvdXIgaXMgbm93IHRoZSBzYW1lIGFzIGJlZm9yZSBjb21taXQgYzNiY2JhZGQsIGV4Y2VwdCBtZXRhcwoJICBtaWdodCBzdGlsbCBiZSBhdHRhY2hlZCB0byB0aGUgYnVmZmVyIGV4dHJhY3RlZCBmcm9tIHRoZSBhZGFwdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMDkyCgoyMDE1LTA3LTA3IDE1OjAyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24gYW5kIHJlcGxhY2Ugc3RyZXNzIHRlc3QgZnVuY3Rpb24gbWFjcm9zCgkgIFRoZXNlIHNjcmV3IHdpdGggaW5kZW50YXRpb24gYW5kIHNlZW0gYSBiaXQgdHJpdmlhbC4gSnVzdCBjb3B5J24ncGFzdGUuCgoyMDE1LTA3LTA3IDEwOjQ2OjQ4ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogdHJhbnNmb3JtX2Z1bmM6IHJldHVybiBGQUxTRSBpZiBub3Qgc3VwcG9ydGVkIG9yIGZhaWxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzc4CgoyMDE1LTA3LTA3IDExOjUzOjA3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZWZhY3RvciBhbmQgYWRkIHRlc3RzIHVzaW5nIEdzdEhhcm5lc3MKCSAgV3JpdGluZyBhIHRlc3QgZm9yIHVuc2NoZWR1bGluZyB0aGUgZ3N0X2Nsb2NrX2lkX3dhaXQgaW5zaWRlIHRoZQoJICBpZGVudGl0eSBlbGVtZW50LCBmb3VuZCBhbiBpbnZhbGlkIHJlYWQsIGNhdXNlZCBieSByZW1vdmluZyB0aGUgY2xvY2staWQKCSAgd2hlbiBjYWxsaW5nIF91bnNjaGVkdWxlIGluc3RlYWQgb2YgbGV0dGluZyB0aGUgY29kZSBjYWxsaW5nIF93YWl0IHJlbW92ZQoJICB0aGUgY2xvY2staWQgYWZ0ZXIgYmVpbmcgdW5zY2hlZHVsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIwNTUKCjIwMTQtMDQtMTIgMTk6NDg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtYWtlIHN1cmUgZ19hc3NlcnQoKSBzdGF0ZW1lbnRzIGFyZSBhbHdheXMgYWN0aXZlCgkgIFdlIGhhdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyBpbnNpZGUgZ19hc3NlcnQoKXMsIHNvIG1ha2UKCSAgc3VyZSB0aG9zZSBhcmUgYWx3YXlzIGVuYWJsZWQgaGVyZSAodGhleSBtaWdodCBvdGhlcndpc2UKCSAgZ2V0IGRpc2FibGVkIGZvciByZWxlYXNlIGJ1aWxkcykuCgoyMDE1LTA3LTA3IDAwOjU2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IHJlbmFtZSBHc3RIYXJuZXNzUHJlcGFyZUJ1ZmZlciAtPiBHc3RIYXJuZXNzUHJlcGFyZUJ1ZmZlckZ1bmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxNS0wNy0wNyAwMDo1Mzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBkb2NzOiBhZGQgR3N0SGFybmVzcyB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTMtMTItMTYgMTA6NDc6NDcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgY2hlY2s6IEFkZCBHc3RIYXJuZXNzIGNvbnZlbmllbmNlIEFQSSBmb3IgdW5pdCB0ZXN0cwoJICBodHRwOi8vZ3N0Y29uZi51YmljYXN0LnR2L3ZpZGVvcy9nc3RoYXJuZXNzLWFnYWluLWEtZm9sbG93LXVwLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDE1LTA3LTA2IDA5OjI2OjU4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZQoJICByaWdodCBub3cgcmV2ZXJzZSBwbGF5YmFjayBpcyBkaXNhYmxlZCBpbiBwdWxsIG1vZGUuCgkgIGVuYWJsaW5nIHRoZSBjb2RlIGZvciB0aGUgc2FtZSBhbmQgY2hhbmdpbmcgYSBiaXQgb2YgbG9naWMKCSAgdG8gbWFrZSByZXZlcnNlIHBsYXliYWNrIHdvcmsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDYtMjAgMDg6MzM6MjYgKzA5MDAgIFZpbmVldGggVCBNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgcmV2ZXJzZSBwbGF5YmFjayB0ZXN0IGluIHB1bGwgbW9kZQoJICBhZGQgdGVzdCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUgYW5kIGNvbXBhcmUKCSAgdGhlIGJ1ZmZlcnMgYmVpbmcgcmVjZWl2ZWQgaW4gc2luayBjaGFpbiB0byBtYWtlIHN1cmUKCSAgdGhlIHBsYXliYWNrIGlzIGFsbHJpZ2h0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMDYgMTQ6MzE6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBSZXZlcnQgInNjcmlwdHM6IEFsbG93IHBhc3NpbmcgbWFrZSBmbGFncyB0byBnaXQtdXBkYXRlLnNoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGFiNWZkZDcyMTI5ZWE2MWU4ZGZmNTFjZGMwYWZjY2NhYzAzZWJjMmIuCgkgIFdlIGNhbiB1c2UgdGhlIE1BS0VGTEFHUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwYXNzIG9wdGlvbnMgdG8gbWFrZSwKCSAgc28gYXZvaWQgYWRkaW5nIGFub3RoZXIgbWVjaGFuaXNtIHRoYXQgY291bGQgYmUgY29uZnVzaW5nLgoKMjAxNS0wNy0wNiAxMToxNjoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQ2xhcmlmeSBwYWQgcHJvYmUgcmV0dXJuIHR5cGUgZG9jdW1lbnRhdGlvbgoKMjAxNS0wNy0wMiAxNDozMjoyMSArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFNob3VsZG4ndCBkcm9wIGJ1ZmZlciB3aGVuIHN5bmM9ZmFsc2UKCSAgU2hvdWxkbid0IGRyb3AgYnVmZmVyIHdoZW4gc3luYz1mYWxzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxODE5CgoyMDE1LTA3LTA2IDExOjI1OjUwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogQWxsb3cgcGFzc2luZyBtYWtlIGZsYWdzIHRvIGdpdC11cGRhdGUuc2gKCSAgTW9zdGx5IGFkZGluZyB0aGlzIGZvciBhZGQgYSAtak4gYXMgYXBwcm9wcmlhdGUgd2hpbGUgYnVpbGRpbmcuCgoyMDE1LTA1LTMwIDE0OjI3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYXZvaWQgc2xpY2UgYWxsb2NzL2ZyZWVzIGZvciBlYWNoIGl0ZW0KCSAgTWljcm9vcHRpbWlzYXRpb246IExldCBHc3RRdWV1ZUFycmF5IHN0b3JlIG91cgoJICBpdGVtIHN0cnVjdC4gVGhhdCB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBhbGxvYy9mcmVlCgkgIHRlbXBvcmFyeSBRdWV1ZUl0ZW0gc2xpY2VzIGZvciBldmVyeSBpdGVtIHdlIHdhbnQKCSAgdG8gcHV0IGludG8gdGhlIHF1ZXVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTQ5CgoyMDE1LTA1LTMwIDEzOjA3OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHF1ZXVlYXJyYXk6IGFsbG93IHN0b3Jpbmcgb2Ygc3RydWN0cyBpbiBhZGRpdGlvbiB0byBwb2ludGVycwoJICBUaGlzIHdheSB3ZSBkb24ndCBoYXZlIHRvIGFsbG9jYXRlL2ZyZWUgdGVtcG9yYXJ5IHN0cnVjdHMKCSAgZm9yIHN0b3JpbmcgdGhpbmdzIGluIHRoZSBxdWV1ZSBhcnJheS4KCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfbmV3X2Zvcl9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wdXNoX3RhaWxfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcGVla19oZWFkX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BvcF9oZWFkX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X2Ryb3Bfc3RydWN0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE0OQoKMjAxNS0wNy0wMyAyMTo1Nzo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjc0YjJkZiB0byA5YWVkMWQ3CgoyMDE1LTA2LTE5IDAwOjA1OjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHBhZDogRW5mb3JjZSBORUVEX1BBUkVOVCBmbGFnIGFsc28gZm9yIGNoYWluCgkgIFRoZSBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBwYXJlbnQgaW4gdGhlIHByZXNlbmNlIG9mCgkgIHRoZSBORUVEX1BBUkVOVCBmbGFnIHdhcyBtaXNzaW5nIGZvciB0aGUgY2hhaW4gZnVuY3Rpb24uIEFsc28ga2VlcAoJICBhIHJlZiBvbiB0aGUgcGFyZW50IGluIGNhc2UgdGhlIHBhZCBpcyByZW1vdmVkIG1pZC1jaGFpbi4KCjIwMTUtMDctMDMgMTU6NTU6MDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgdHdvIG1pc3NpbmcgZWxlbWVudHMKCSAgQ29uY2F0IHdhcyBub3QgbGlua2VkIGFuZCBzdHJlYW1pZGRlbXV4IHdhcyBtaXNzaW5nLgoKMjAxNS0wNy0wMyAxMjozNzo1NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGRvY3M6IGFub3RoZXIgc3dlZXAgY2Fub25pY2FsaXppbmcgdGhlIHBsdWdpbiBkb2NzIHNlY3Rpb25zIGZpbGUKCSAgVXNlIHVuZGVyc2NvcmVzIGZvciBjYXBzZmlsdGVyIG1hY3Jvcy4gQ29ycmVjdCB0aGUgdHlwZS1uYW1lIGZvciBmYWtlc3JjCgkgIGlmIHdlIGV2ZXIgaW1wbGVtZW50IHRoZSBlbnVtLgoKMjAxNS0wNy0wMyAxMTo0NToxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIGRvY3M6IG9yZGVyIGFuZCBjYW5vbmljYWxpemUgdGhlIC1zZWN0aW9ucy50eHQgZmlsZQoJICBIYXZlIGFsbCBzZWN0aW9ucyBpbiBhbHBoYWJldGljYWwgb3JkZXIuIEFsc28gbWFrZSB0aGUgbWFjcm8gb3JkZXIgY29uc2lzdGVudC4KCSAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBnZW5lcmF0aW5nIHRoZSBmaWxlLiBSZW1vdmUgR0VUX0NMQVNTIG1hY3JvIGZvcgoJICB0eXBlZmluZSBlbGVtZW50LCBzaW5jZSBpdCBpcyBub3QgdXNlZCBhbmQgdGhlIGhlYWRlciBpcyBub3QgaW5zdGFsbGVkLgoKMjAxMy0xMi0xNiAxMToyNDoxNyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG1pc3NpbmcgZmllbGQgaW5pdGlhbGl6ZXJzIHRvIEdzdE1hcEluZm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTg4MQoKMjAxNS0wNy0wMiAxNToxMDo0MyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgYWx3YXlzLXRydWUgY2hlY2sKCSAgZXZlbnQgY2FuJ3QgYmUgTlVMTCwgaXQgaGFzIGJlZW4gZGVyZWZlcmVuY2VkIGJ5IEdTVF9FVkVOVF9UWVBFICgpLCBhbmQgbm8KCSAgY2FzZSBmcmVlcyB0aGUgcG9pbnRlci4gUmVtb3ZlIHVubmVjZXNzYXJ5IGNoZWNrIHdoaWNoIHdpbGwgYWx3YXlzIGJlIFRydWUuCgkgIENJRCAjMTMwODk1NQoKMjAxNS0wNy0wMSAxMDo1MDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IEFsc28gY29weSBQT09MIG1ldGFzIGFuZCBtYWtlIHN1cmUgdG8gY29weSBvdmVyIG1ldGFzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycwoJICBQT09MIG1ldGEganVzdCBtZWFucyB0aGF0IHRoaXMgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgdGhlIG1ldGEgaXMgcmVsYXRlZCB0byBhCgkgIHBvb2wsIGEgY29weSBzaG91bGQgYmUgbWFkZSB3aGVuIHJlYXNvbmFibGUgYW5kIHRoZSBmbGFnIHNob3VsZCBqdXN0IG5vdCBiZQoJICBzZXQgaW4gdGhlIGNvcHkuCgoyMDE1LTA3LTAxIDEwOjQ1OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IEFsc28gY29weSBQT09MIG1ldGFzIGFuZCBtYWtlIHN1cmUgdG8gY29weSBvdmVyIG1ldGFzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycwoJICBQT09MIG1ldGEganVzdCBtZWFucyB0aGF0IHRoaXMgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgdGhlIG1ldGEgaXMgcmVsYXRlZCB0byBhCgkgIHBvb2wsIGEgY29weSBzaG91bGQgYmUgbWFkZSB3aGVuIHJlYXNvbmFibGUgYW5kIHRoZSBmbGFnIHNob3VsZCBqdXN0IG5vdCBiZQoJICBzZXQgaW4gdGhlIGNvcHkuCgoyMDE1LTA3LTAxIDEwOjM2OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvbid0IGNvcHkgIm1lbW9yeSIgbWV0YXMgdW5jb25kaXRpb25hbGx5CgkgIERvbid0IGNvcHkgbWVtb3J5IG1ldGFzIGlmIHdlIG9ubHkgY29waWVkIHBhcnQgb2YgdGhlIGJ1ZmZlciwgZGlkbid0CgkgIGNvcHkgbWVtb3JpZXMgb3IgbWVyZ2VkIG1lbW9yaWVzLiBJbiBhbGwgdGhlc2UgY2FzZXMgdGhlIG1lbW9yeQoJICBzdHJ1Y3R1cmUgaGFzIGNoYW5nZWQgYW5kIHRoZSBtZW1vcnkgbWV0YSBiZWNvbWVzIG1lYW5pbmdsZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzEyCgoyMDE1LTA3LTAxIDEwOjI1OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBSZXZlcnQgImJ1ZmZlcjogRG9uJ3QgY29weSBQT09MRUQgYW5kIG1lbW9yeSBtZXRhZGF0YSB1bmNvbmRpdGlvbmFsbHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2EwOGZhNWVjNDgwNGYxMDRlOWFhOWY0NTgzMjJmNmViNDlhN2U0OS4KCjIwMTUtMDYtMzAgMTM6Mzg6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9uJ3QgY29weSBQT09MRUQgYW5kIG1lbW9yeSBtZXRhZGF0YSB1bmNvbmRpdGlvbmFsbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTcxMgoKMjAxNS0wNi0zMCAxMToxODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXNlIG5ldyBnc3RfYWRhcHRlcl9nZXRfYnVmZmVyKCkgQVBJIGluc3RlYWQgb2YgZ3N0X2FkYXB0ZXJfbWFwKCkKCSAgVGhpcyBwcmVzZXJ2ZXMgR3N0TWV0YSBwcm9wZXJseSB1bmxlc3MgdGhlIHN1YmNsYXNzIGRvZXMgc3BlY2lhbCB0aGluZ3MuIEl0J3MKCSAgZW5vdWdoIHRvIG1ha2UgaDI2NHBhcnNlJ3Mgc3RyZWFtLWZvcm1hdC9hbGlnbm1lbnQgY29udmVyc2lvbiBwYXNzIHRocm91Z2gKCSAgbWV0YXMgYXMgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTMwIDExOjExOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBnZXQgdmFyaWFudHMgb2YgdGhlIGJ1ZmZlciBiYXNlZCB0YWtlIGZ1bmN0aW9ucwoJICBNYWluIGRpZmZlcmVuY2UgdG8gZ3N0X2FkYXB0ZXJfbWFwKCkgZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMgaXMgdGhhdAoJICBHc3RNZXRhIG9mIHRoZSBidWZmZXJzIHdpbGwgYmUgcHJlc2VydmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTI5IDE3OjAzOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IENvcHkgb3ZlciBHc3RNZXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlcnMgdG8gdGhlIG91dHB1dAoJICBBbGwgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgR3N0QnVmZmVyIG9yIGEgbGlzdCBvZiB0aGVtIHdpbGwgbm93IGNvcHkKCSAgYWxsIEdzdE1ldGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVycyBleGNlcHQgZm9yIG1ldGEgd2l0aCBHU1RfTUVUQV9GTEFHX1BPT0xFRAoJICBmbGFnIG9yICJtZW1vcnkiIHRhZy4KCSAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyBiZWhhdmlvdXIgdGhhdCB0aGUgY2FsbGVyIGNhbid0IGFzc3VtZQoJICBhbnl0aGluZyBhYm91dCB0aGUgYnVmZmVyIGZsYWdzLCB0aW1lc3RhbXBzIG9yIG90aGVyIG1ldGFkYXRhLiBBbmQgaXQncwoJICBhbHNvIHRoZSBzYW1lIHRoYXQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfZmFzdCgpIGRpZCBiZWZvcmUsIGFuZCB3aGF0CgkgIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgZGlkIGlmIHBhcnQgb2YgdGhlIGZpcnN0IGJ1ZmZlciBvciB0aGUgY29tcGxldGUKCSAgZmlyc3QgYnVmZmVyIHdhcyByZXF1ZXN0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMjkgMjA6Mjc6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBJbml0IGZ1bmN0aW9uIGNhbiB0YWtlIGEgTlVMTCBpbnRlcmZhY2VzIGFycmF5CgoyMDE1LTA2LTI5IDEzOjU3OjExICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IGZpeCB0ZXN0X2ludGVyc2VjdF9mbGFnc2V0IGZhaWx1cmUKCSAgdGVzdF9pbnRlcnNlY3RfZmxhZ3NldCBmYWlscyBiZWNhdXNlIHdoZW4gY2FwcyBpcyBiZWluZwoJICBjcmVhdGVkLCBmbGFncyBhbmQgbWFzayBhcmUgYmVpbmcgY2FzdCB0byB1aW50NjQgd2hpbGUKCSAgdGhleSBzaG91bGQgYmUgdWludC4gVGhpcyByZXN1bHRzIGluIGludmFsaWQgbWVtb3J5IGFjY2VzcwoJICBvciBhIHNlZ2ZhdWx0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjI4CgoyMDE1LTA2LTI5IDE0OjIyOjQ2ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogRml4IEdTVF9WQUxJREFURV9QTFVHSU5fUEFUSAoJICBJdCBtb3ZlZCByZWNlbnRseQoKMjAxNS0wNi0yOSAxMzo1ODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBGaXggdXAgZG9jdW1lbnRhdGlvbiBvZiB0cmFuc2Zvcm1fbWV0YSB2ZnVuYwoJICBCeSBkZWZhdWx0IHdlIGNvcHkgYWxsIG1ldGFzIHRoYXQgaGF2ZSBubyB0YWdzLgoKMjAxNS0wNi0yOSAxMDo0MToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogZml4IEFCSSBicmVhawoJICBTdHJ1Y3R1cmUgc2l6ZSB3YXMgaW5jcmVhc2VkIHdpdGhvdXQgYWRqdXN0bWVudCBvZiB0aGUgcGFkZGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTYyMgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTAyCgoyMDE1LTAzLTE5IDE1OjU1OjE0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZ3VhcmQgYWdhaW5zdCBOVUxMIHRhc2sgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzOQoKMjAxNS0wNS0xNCAxMTo0ODo0NSArMDIwMCAgTWlndWVsIFBhcsOtcyBEw61heiA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJICBmdW5uZWw6IGFkZCAiZm9yd2FyZC1zdGlja3ktZXZlbnRzIiBwcm9wZXJ0eQoJICBJdCBpcyB1c2VmdWwgdG8gYXZvaWQgc2VuZGluZyBzdGlja3kgZXZlbnQgb24gc3RyZWFtIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzMTUKCjIwMTUtMDYtMjUgMDA6MDQ6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNS4yID09PQoKMjAxNS0wNi0yNCAyMjo0OToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuMgoKMjAxNS0wNi0yNCAyMjo0NTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDYtMjIgMjM6Mzc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZ3N0dXRpbHM6IGZpeCB3cm9uZyBkZXNjcmlwdGlvbiBvZiB0ZXN0IGVsZW1lbnQKCSAgSXQgaXMgYSBmYWtlc2luayB3aXRoIHJlcXVlc3QgcGFkcywgbm90IGEgc291cmNlCgoyMDE1LTA2LTI0IDE1OjM1OjE2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEZpeGVkIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIHBvb2wgdmFyaWFibGUgd2FzIHVudXNlZCB3aGVuIGJ1aWRsaW5nIHdpdGggZGVidWcgZGlzYWJsZWQuCgoyMDE1LTA2LTI0IDExOjEzOjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9odS5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wNi0yNCAxMToxMjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNS0wNi0yNCAxNDoxOTowNCArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBuZWVkIHRvIGRlZXAtY29weSBsYXN0IGJ1ZmZlciBsaXN0IGluIGRyYWluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE0MjAKCjIwMTUtMDYtMjQgMTA6NTI6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBXYXJuIGlmIGNvcHlpbmcgYSBidWZmZXIgZmFpbHMgaW4gZ3N0X2J1ZmZlcl9saXN0X2NvcHlfZGVlcCgpCgoyMDE1LTA2LTI0IDE0OjE4OjQ3ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgbmV3IGFwaSBnc3RfYnVmZmVyX2xpc3RfY29weV9kZWVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE0MjAKCjIwMTUtMDYtMjMgMTY6NTg6NTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RjaGVjazogUHJpbnQgbmV3bGluZSBpbiBtZXNzYWdlIGhhbmRsZXIKCSAgVGhlIG1lc3NhZ2UgaGFuZGxlciBpcyBzdXBwb3NlZCB0byBwcmludCBhIG5ld2xpbmUgYWZ0ZXIgdGhlIG1lc3NhZ2UKCSAganVzdCBsaWtlIHRoZSBkZWZhdWx0IG1lc3NhZ2UgaGFuZGxlci4KCjIwMTUtMDYtMTIgMTY6NTQ6MzIgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSGFuZGxlIGRpZmZlcmVudCBkdXJhdGlvbiB0cmFjayBzZWxlY3Rpb24KCSAgU3VwcG9ydCB0cmFjayBzd2l0Y2ggZnJvbSBFT1MgdHJhY2sgdG8gbm9uLUVPUyBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3NjEKCjIwMTUtMDYtMTIgMTY6NTI6NDYgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2xlYXIgRU9TIGZsYWcgYWZ0ZXIgcmVjZWl2ZWQgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIENsZWFyIEVPUyBmbGFnIGFmdGVyIHJlY2VpdmVkIFNUUkVBTV9TVEFSVCBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzYxCgoyMDE1LTA2LTIyIDE0OjMwOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGdzdHV0aWxzOiBhZGQgdGVzdHMgZm9yIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZAoJICBBZGRzIHRlc3RzIGZvciBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQgZm9yIHdoZW4gaXQgaGFzIHRvCgkgIHJlcXVlc3QgcGFkcy4KCSAgTm90ZSB0aGF0IHRoZXNlIHRlc3RzIGRvbid0IGNvdmVyIHRoZSBjYXNlIHdoZW4gaXQgaGFzIHRvIHJlcXVlc3QKCSAgYSBwYWQgdGhhdCBhbHJlYWR5IGV4aXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTIzNQoKMjAxNS0wNi0xOSAxNTo0Njo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgY2FwcyB3aGVuIGdldHRpbmcgYSBjb21wYXRpYmxlIHBhZCBieSB0ZW1wbGF0ZQoJICBEbyBub3QgaWdub3JlIHRoZSBjYXBzIGFyZ3VtZW50IHdoZW4gcmVxdWVzdGluZyBhIHBhZCBieSB0ZW1wbGF0ZS4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaGFybWZ1bCB3aGVuIHRoZSBwYWQgY2FwcyBxdWVyeSBieSBkZWZhdWx0CgkgIHJldHVybnMgQU5ZIHNvIGl0IHdpbGwgbWF0Y2ggdGhlIGZpcnN0IHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlCgkgIG9uZSB0aGF0IGFjdHVhbGx5IGludGVyc2VjdHMgd2l0aCB0aGUgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTIzNQoKMjAxNS0wNi0yMyAwMDoxNDozMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIGdzdHNhbXBsZS5oOiBJbmNsdWRlIGdzdGJ1ZmZlcmxpc3QuaCBub3cgdGhhdCBpdCB1c2VzIEdzdEJ1ZmZlckxpc3QKCjIwMTUtMDYtMTcgMTY6MTI6MTMgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogd2hlbiByZWxlYXNpbmcgcGFkLCBzZW5kIEVPUyBhcHByb3ByaWF0ZWx5LgoJICBQcmV2aW91c2x5LCBjb25jYXQgc2VudCBhbiBFT1MgaWYgdGhlcmUgd2FzIGEgbmV4dCBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTExMDcKCjIwMTUtMDYtMTYgMTY6MTQ6MTggKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0Lmg6CgkgIGNvbmNhdDogQWRkIGFkanVzdC1iYXNlIHByb3BlcnR5CgkgIFRoaXMgZGlzYWJsZXMgdGhlIHNlZ21lbnQuYmFzZSBhZGp1c3RtZW50cywgd2hpY2ggaXMgdXNlZnVsIGlmIGRvd25zdHJlYW0KCSAgdGFrZXMgY2FyZSBvZiBiYXNlIGFkanVzdG1lbnRzIGFscmVhZHkgKGV4YW1wbGU6IGEgY29tYmluYXRpb24gb2YgY29uY2F0CgkgIGFuZCBzdHJlYW1zeW5jaHJvbml6ZXIpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwNDcKCjIwMTUtMDYtMjIgMTQ6MDQ6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVbnNldCB0aGUgbGFzdCBidWZmZXIgbGlzdCBpZiB3ZSBvbmx5IGdvdCBhIGJ1ZmZlcgoJICBBbHNvIHJlbWVtYmVyIGFueSBwcmVyb2xsIGJ1ZmZlciBsaXN0LgoKMjAxNS0wNi0yMiAxMzozMzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzYW1wbGU6IEFkZCBuZXcgQVBJIHRvIHRoZSBkb2NzCgoyMDE1LTA2LTIyIDIwOjAyOjU1ICswOTAwICBIeXVuanVuIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGVuYWJsZSB0byBnZXQgbGFzdCBzYW1wbGUgaW5jbHVkaW5nIGJ1ZmZlciBsaXN0IGlmIG5lZWRlZAoJICBJbiBjYXNlIG9mIGEgYnVmZmVyIGxpc3QgcmVuZGVyaW5nLCBsYXN0LXNhbXBsZSBpcyBub3QgdXBkYXRlZC4KCSAgSXQgbmVlZHMgdG8gYmUgdXBkYXRlZCBhbmQgZW5hYmxlIHRvIGdldCBidWZmZXIgbGlzdCBmcm9tIGxhc3Qtc2FtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDI2CgoyMDE1LTA2LTIyIDE5OjM1OjQwICswOTAwICBIeXVuanVuIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IGFkZCBnc3Rfc2FtcGxlX3NldC9nZXRfYnVmZmVyX2xpc3QgYXBpcwoJICBBbGxvd2VkIHRvIHNldC9nZXQgYnVmZmVyIGxpc3QgdG8gc2FtcGxlIGlmIG5lZWRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDI2CgoyMDE1LTA2LTE5IDEwOjUyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdC5weToKCSAgdGVzdC5weTogcmVtb3ZlIGFjY2lkZW50YWxseSBjb21taXR0ZWQgZmlsZQoKMjAxNS0wNi0xOCAxMTo1MTo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvYzogVW5pZnkgU2luY2UgbWFyayBmb3IgYXR0cmlidXRlIGFuZCBlbnVtCgkgIEFzIHRoaXMgc2hvdyB1cCBhcyBwcm9zZSBpbiB0aGUgZG9jLCBzaW1wbHkgbWFrZSBpdCBjb25zaXN0ZW50CgkgIGFuZCAiYXJndWFibGUiIG5pY2VyIHRvIHJlYWQuCgoyMDE1LTA2LTE4IDExOjQ4OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZG9jOiBSZW1vdmUgcGFyZW50aGVzaXMgYXJvdW5kIFNpbmNlOgoJICBUaGlzIGNvbmZ1c2UgdGhlIHBhcnNlciwgaGVuY2UgaXQgZG9lcyBub3QgZW5kdXAgaW4gdGhlIGRvYyBhbmQgdGhlCgkgIGluZGV4IHByb3Blcmx5LgoKMjAxNS0wNS0wNiAxNjo0NDo0OCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBHc3RQYXJlbnRCdWZmZXJNZXRhCgkgIEEgY29yZSBtZXRhIHdoaWNoIGhlbHBzIGltcGxlbWVudCB0aGUgb2xkIGNvbmNlcHQKCSAgb2Ygc3ViLWJ1ZmZlcmluZyBpbiBzb21lIHNpdHVhdGlvbnMsIGJ5IG1ha2luZyBpdAoJICBwb3NzaWJsZSBmb3IgYSBidWZmZXIgdG8ga2VlcCBhIHJlZiBvbiBhIGRpZmZlcmVudAoJICBwYXJlbnQgYnVmZmVyLiBUaGUgcGFyZW50IGJ1ZmZlciBpcyB1bnJlZmZlZCB3aGVuCgkgIHRoZSBNZXRhIGlzIGZyZWVkLgoJICBUaGlzIG1ldGEgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCBhIGJ1ZmZlciB3aG9zZQoJICBtZW1vcnkgaXMgYmVpbmcgc2hhcmVkIHRvIGEgY2hpbGQgYnVmZmVyIGlzbid0IGZyZWVkCgkgIGFuZCByZXR1cm5lZCB0byBhIGJ1ZmZlciBwb29sIHVudGlsIHRoZSBtZW1vcnkKCSAgaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwMzkKCjIwMTUtMDYtMTYgMTg6MDg6MjQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0ZXN0LnB5OgoJICBnaTogVXNlIElOVFJPU1BFQ1RJT05fSU5JVCBmb3IgLS1hZGQtaW5pdC1zZWN0aW9uCgkgIFRoaXMgbmV3IGRlZmluZSB3YXMgYWRkZWQgdG8gY29tbW9uLiBUaGUgbmV3IGluaXQgc2VjdGlvbiBmaXhlZAoJICBjb21waWxhdGlvbiB3YXJuaW5nIGZvdW5kIGluIHRoZSBpbml0IGxpbmUgdGhhdCB3YXMgc3ByZWFkIGFjcm9zcwoJICBhbGwgZmlsZXMuCgoyMDE1LTA2LTE2IDE3OjQ2OjQ0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjAxNWQyNiB0byBmNzRiMmRmCgoyMDE1LTA2LTE1IDEwOjA2OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogRml4IF9TVElNRV9GT1JNQVQgbWFjcm9zCgkgIFRoaXMgbWFjcm8gZGlkbid0IHdvcmsgd2VsbCBhcyBpdCByZWxpZWQgb24gdGhlIHNpZ24gb24gdGhlIGxhc3QKCSAgZGl2aWRlZCBudW1iZXIgKG51bWJlciBvZiBkYXlzKS4gVGhpcyB2YWx1ZSBpcyBtb3N0IG9mIHRoZSB0aW1lCgkgIHplcm8sIGFuZCB6ZXJvIGlzIGNvbnNpZGVyZWQgcG9zaXRpdmUgaW4gcHJpbnRmLiBJbnN0ZWFkLCBkZWFsIHdpdGgKCSAgdGhlIHNpZ24gbWFudWFsbHksIGFuZCByZXN1c2UgdGhlIG9yaWdpbmFsIG1hY3JvcyBmb3IgdGhlIHJlc3QuIFRoaXMKCSAgYWN0dWFsbHkgc2ltcGxpZnkgdGhlIG1hY3JvIGEgbG90LgoKMjAxNS0wNi0xNCAyMDo0ODoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVzZXQgc2VnbWVudCBvbmx5IG9uY2Ugc3RyZWFtaW5nIGhhcyBzdG9wcGVkCgkgIEZpeGVzIHRoZSBvY2Nhc2lvbmFsIGNyaXRpY2FscyBpbiB0aGUgZGlzY292ZXJlciB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNzMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDgyMwoKMjAxNS0wNi0xNCAxMToyMzoyMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scyBpbiBsaWItc2VjdGlvbnMudHh0CgkgIFRoZXNlIHdoZXJlIGNhdXNpbmcgYnJva2VuIGxpbmtzLgoKMjAxNS0wNi0xNCAxMToyMjo1NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSAgZG9jOiBGaXggcmVmZXJlbmNlIHRvIHVua25vd24gdHlwZSBHc3ROZXRBZGRyZXNzCgoyMDE1LTA2LTE0IDExOjIyOjM2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgZG9jOiBJbmNsdWRlIGFuZCBmaXggR3N0Q29udHJvbFBvaW50CgoyMDE1LTA2LTE0IDExOjIxOjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvYzogQWRkIEdzdE5ldENvbnRyb2xNZXNzYWdlTWV0YSB0byB0aGUgZG9jCgkgIFRoaXMgaXMgYmVpbmcgcmVmZXJlbmNlZCBlbHNld2hlcmUsIGJ1dCByZXN1bHRzIGluIGJyb2tlbiBsaW5rcy4KCSAgSXQgc2VlbXMgdG8gYmUgcHVibGljIEFQSSwgc28gSSB0aGluayBpdCBzaG91bGQgYmUgaW4gdGhlIGRvYy4KCjIwMTUtMDYtMTQgMTA6NTk6NTEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGRvYzogRG9jdW1lbnQgR3N0UHVzaFNyY0NsYXNzCgoyMDE1LTA2LTE0IDEwOjU4OjE4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgZG9jOiBCZXR0ZXIgZG9jdW1lbnQgbmV3IEdzdENvbGxlY3REYXRhLkFCSS5hYmkuZHRzCgkgIFRoZSBkb2MgZ2VuZXJhdG9yIGdldCBjb25mdXNlZCB3aXRoIHRoZSBpbmxpbmUgc3RydWN0dXJlLiBTbwoJICB3b3JrYXJvdW5kIGJ5IHdyYXBwaW5nIHRoZSBpbm5lciBvZiB0aGUgc3RydWN0dXJlIHdpdGgKCSAgcHVibGljL3ByaXZhdGUgbWFyaywgYW5kIGRvY3VtZW50IHRoYXQgR1NUX0NPTExFQ1RfUEFEU19EVFMgbWFjcm8KCSAgc2hhbGwgYmUgdXNlZCB0byBhY2Nlc3MgdGhpcy4KCjIwMTUtMDYtMTQgMTA6NTY6MjggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgZG9jOiBWYXJpb3VzIGRvYyBmaXhlcyBmb3IgbGliZ3N0cmVhbWVyLWJhc2UKCSAgKiBGaXggZnVuY3Rpb24gbmFtZSBpbiBzZWN0aW9ucy50eHQKCSAgKiBBZGQgZmV3IG1pc3Npbmcgb3IgZml4IG1pc3MtbmFtZWQKCSAgKiBXb3JrYXJvdW5kIGd0ay1kb2MgYmVpbmcgY29uZnVzZWQgd2l0aCBub24gdHlwZWRlZgoJICB0eXBlcyAobG9vc2UgdHJhY2sgb2YgcHVibGljL3ByaXZhdGUKCjIwMTUtMDYtMTQgMTA6MjU6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2M6IE1vcmUgZG9jIHdhcm5pbmcgZml4ZXMKCSAgU28gZnJvbSB0aGlzIHBvaW50LCB0aGUgcmVtYWluaW5nIHdhcm5pbmcgZm9yIGxpYmdzdHJlYW1lciBhcmUgYWJvdXQKCSAgcHJvdGVjdGVkIG1lbWJlciBub3Qgc2hvd2luZyBpbiB0aGUgZG9jLiBUaGlzIG1heSBuZWVkIHNvbWUgZGlzY3Vzc2lvbgoJICB3aXRoIHVwc3RyZWFtIGd0ay1kb2MgcGVvcGxlLgoJICAqIFJlbW92ZSAlIGluIGZyb20gb2Ygbm9uZSBtYWNybwoJICAqIEZpeGVkIEdTVF9UWVBFX0ZBR1MgLT4gR1NUX1RZUEVfRkFHX1NFVAoJICAqIE1pbm9yIHdvcmRpbmcgZml4CgkgICogQ2FuJ3QgbGluayB0byBHc3RVcmkucG9ydCwgc28gc3BsaXQgdGhlIC5wb3J0IHBhcnQKCjIwMTUtMDYtMTQgMDk6MTc6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2M6IEluIEdzdFVyaSB3ZSBtZWFudCBudWwtdGVybWluYXRlZCwgbm90ICVOVUxMCgkgICVOVUxMIHJlZmVycyB0byB0aGUgcG9pbnRlci4gSSd2ZSB3cml0dGVuIGl0IHRoaXMgd2F5IGluIG9uZQoJICB3b3JkIGFzIHRoaXMgaXMgd2hhdCBHTGliIHVzZXMuCgoyMDE1LTA2LTEzIDIxOjAyOjIwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jOiBDYW5ub3QgcmVmZXJlbmNlIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUKCSAgU28gc2ltcGx5IHJlbW92ZSB0aGUgJSBzaWduLgoKMjAxNS0wNi0xMyAyMDo1MjowMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jOiBGaXggdHlwbyBpbiByZWYgX2Nsb2NrX3dhaXRfZm9yX3N5bmMoKQoKMjAxNS0wNi0xMyAyMDozNzozNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvYzogRml4IEdzdFVyaSBkb2MgdHlwb3MKCSAgKiBVc2UgJnBlcmN0bjsgaW5zdGVhZCBvZiByZXNlcnZlZCBjaGFyYWN0ZXIgJQoJICAqIE5VTEwgdGFrZSB0d28gTAoKMjAxNS0wNi0xMyAyMDoxOTo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvYzogRml4IFNpbmNlOiBtYXJrcwoJICBUaGVyZSB3YXMgZmV3IFNpbmNlOiBtYXJrIG1pc3NpbmcgdGhlaXIgY29sdW1uLiBBbHNvIHVuaWZ5IHRoZSB3YXkKCSAgd2Ugc2V0IHRoZSBTaW5jZSBtYXJrIG9uIGVudW0gdmFsdWUgYW5kIHN0cnVjdHVyZSBtZW1iZXJzLiBUaGVzZQoJICBzYWRseSBkb24ndCBzaG93IHVwIGluIHRoZSBpbmRleC4KCjIwMTUtMDYtMTMgMjA6MDE6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2M6IEFkZCBnc3RfYnVmZmVyX2NvcHlfZGVlcCgpCgoyMDE1LTA2LTEzIDE5OjQ3OjQ1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBnaTogU2tpcCBnc3RfY29uc2l0ZW5jeV9jaGVja2VyX25ldwoJICBUaGlzIG5vbiBib3hlZCB0eXBlIGNhbm5vdCBiZSBhbGxvY2F0ZWQgc2FmZWx5LgoKMjAxNS0wNi0xMyAxOTo0NjoyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2M6IEFkZCBpbmRleGVzIG9mIGFkZGVkIEFQSXMKCSAgT25lIG9mIHRoZSBuaWNlIGZlYXR1cmUgaW4gR1RLIGRvYyBpcyB0aGF0IGl0IGdlbmVyYXRlIGluZGV4ZXMKCSAgb2YgYWRkZWQgQVBJcyBiYXNlIG9uIHRoZSBzaW5jZSBtYXJrZXIuIEluY2x1ZGUgdGhhdCBpbiBvdXIgZG9jCgkgIHdoaWxlIGZpeGluZyB0aGUgaXNzdWUgb2YgZHVwbGljYXRlIElEIChwcm9kdWNlIHhtbCBjb250YWlucyB0aGF0CgkgIGlkIGl0IHNlZW1zKQoKMjAxNS0wNi0xMyAxNToxMDo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvYzogTWFrZSAuLi5fc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9pdGVyIHRyYW5zZmVyIG5vbmUKCjIwMTUtMDYtMTMgMTQ6NDA6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBkb2M6IFNpbGVuY2Ugd2FybmluZyBhYm91dCB1bnVzZWQgZ3N0bnRwcGFja2V0IHNlY3Rpb24KCSAgVGhpcyBBUEkgaXMgaW50ZXJuYWwuCgoyMDE1LTA2LTEzIDE0OjM3OjQyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgUmV2ZXJ0ICJkb2M6IEFkZCBHc3ROdHBQYWNrZXQgdG8gdGhlIGRvYyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNGViODc2OTYxYWJhMTA5MmM0ODMxYThmZWFmNDhkN2JlMWUzOGFlLgoJICBPb3BzLCB0aGlzIGlzIG5vdCBhIHB1YmxpYyBBUEkKCjIwMTUtMDYtMTMgMTQ6MjE6NDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBkb2M6IEFkZCBHc3ROdHBQYWNrZXQgdG8gdGhlIGRvYwoKMjAxNS0wNi0xMyAxMzo1NToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIGRvYzogUmVtb3ZlIGdzdGluZGV4IGZyb20gZG9jIGNvbW1lbnQKCSAgTW92aW5nIHRoYXQgdG8gbm9ybWFsIGNvbW1lbnQgdG8gc2lsZW5jZSB0aGUgZ2VuZXJhdG9yLiBHc3RJbmRleAoJICBpcyBub3QgaW4gR1N0cmVhbWVyIGxpYnJhcnkgYXQgdGhlIG1vbWVudCAocmVtb3ZlZCBmcm9tIDAuMTApLgoKMjAxNS0wNi0xMyAxMzo0ODowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGdpOiBTZXQgY29sbGVjdHBhZHMgZnVuY3Rpb24gcGFyYW0gc2NvcGUKCjIwMTUtMDYtMTMgMTM6NDI6NTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBnaTogU2tpcCBhbGxvY2F0b3Igb2Ygbm9uLWJveGVkIHN0cnVjdHVyZQoJICBUaGVzZSBhcmUgbm90IHVzYWJsZSBhcyB0aGV5IGFyZSwgYW5kIGNhbiBlYXNpbHkgbGVhZCB0byBjcmFzaAoJICBvciBsZWFrcy4gVGhpcyBhbHNvIHNpbGVuY2Ugd2FybmluZyBmcm9tIHRoZSBzY2FubmVyLiBJZiB3ZSBtYW5hZ2UgdG8KCSAgbWFrZSB0aGlzIHVzYWJsZSwgd2UgY2FuIHRoZW4gcmVtb3ZlIHRoYXQgbWFyaywgaXQgd2lsbCByZXF1aXJlCgkgIHRvIG1ha2UgdGhpcyB0eXBlIGJveGVkLgoKMjAxNS0wNi0xMyAxMzoyNDoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEdpdmUgZ3N0Y29uZmlnIGEgbmljZSBuYW1lCgkgIEFzIGFsbCBvdGhlciBzZWN0aW9uIGRvIGhhdmUgYSBuaWNlIGNhbWUgY2FzZSBuYW1lLCBpdCBzZWVtcwoJICBtb3JlIGNvbnNpc3RlbnQuCgoyMDE1LTA2LTEzIDEzOjE5OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIG1pc3NpbmcgZ3N0X2V2ZW50X25ldy9wYXJzZV9wcm90ZWN0aW9uCgoyMDE1LTA2LTEzIDEzOjE5OjA1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogR2l2ZSBnc3Rwcm90ZWN0aW9uIHNlY3Rpb24gYSBuaWNlIHRpdGxlCgoyMDE1LTA2LTEzIDEzOjE0OjMwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2M6IFJlbW92ZSB1bmVlZGVkIHByb3RlY3Rpb25ldmVudCBzZWN0aW9uCgkgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcGFydCBvZiBnc3RldmVudCBzZWN0aW9uIGFscmVhZHkuIEtlZXAgdGhlIGRvYywKCSAgc2luY2UgaXQncyBnb29kLgoKMjAxNS0wNi0xMyAxMjozMjo0OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBBZGQgbWlzc2luZyBzY29wZSB0byBmdW5jIHBhcmFtCgkgIFRoaXMgdGVsbCBHSSBpZiB0aGlzIGZ1bmN0aW9uIGlzIGZvciBhY3Rpb25zIChjYWxsKSBvciBpcyB0aGUKCSAgYW5zd2VyIG9mIHRoaXMgbWV0aG9kIGJlaW5nIGFzeW5jaHJvbm91cyAoYXN5bmMpLiBJbiB0aGlzIGNhc2UKCSAgaXQncyBhIGNhbGwuIFRoaXMgYWxzbyBzaWxlbmNlIHdhcm5pbmcgZnJvbSB0aGUgR0kgc2Nhbm5lci4KCjIwMTUtMDYtMTMgMTI6Mjc6MzEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSAgZ3N0cHJvdGVjdGlvbjogQWRkIG1pc3NpbmcgU2luY2UgMS42IG1hcmsKCjIwMTUtMDYtMTMgMTI6MjY6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgZ3N0cHJlY3Rpb246IF9hZGRfcHJvdGVjdGlvbl9tZXRhKCkgaXMgdHJhbnNmZXIgbm9uZQoJICBKdXN0IGxpa2UgZ3N0X2J1ZmZlcl9hZGRfbWV0YSgpIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsc28gYmUKCSAgdHJhbnNmZXIgbm9uZS4gVGhpcyBhbHNvIHNpbGVuY2UgYSBnaSB3YXJuaW5nIGFib3V0IHJldHVybmluZwoJICBhIGNvcHkgb2YgYSBub24gYm94ZWQgYmFyZSBzdHJ1Y3R1cmUuCgoyMDE1LTA2LTEzIDEyOjI1OjE5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGdzdHByb3RlY3Rpb246IEFkZCBtaXNzaW5nIG5hbWVzcGFjZSB0byBtYWNybwoJICBHU1RfUFJPVEVDVElPTl9TWVNURU1fSURfQ0FQU19GSUVMRCB3YXMgbWlzc2luZyB0aGUgR1NUXyBuYW1lc3BhY2UuCgkgIEFkZCBpdCBiZWZvcmUgaXRzIHRvbyBsYXRlLgoKMjAxNS0wNi0xMyAxMTo1NToxMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBkb2M6IEtlZXAgU0VDVElPTjogYWZ0ZXIgdGhlIGlmZGVmCgkgIE90aGVyd2lzZSBHVEsgZG9jIHdpbGwgc2VlIGl0IGFzIG9mdGVuIGFzIHdlIGluY2x1ZGUgdGhhdCBmaWxlcwoJICBhbmQgd2FybiBhYm91dCBkdXBsaWNhdGVkIFNFQ1RJT046CgoyMDE1LTA2LTEzIDEwOjIzOjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGdpOiBTa2lwIG1pbmkgb2JqZWN0IG1ldGhvZCB0aGF0IHBsYXkgd2l0aCByZWZjb3VudGluZwoJICBJdCBtYWtlIG5vIHNlbnNlIHRvIGFsbG93IHVzaW5nIHRoYXQuIEFueSB1c2Ugd291bGQgbGVhZCB0byBsZWFrCgkgIG9mIGNyYXNoLiBOb3RlIHRoYXQgR01pbmlPYmplY3QgaXMgZW50aXJlbHkgdW51c2FibGUgYXMgeW91IGNhbm5vdAoJICBjYXN0IGZyb20gbGV0J3Mgc2F5IEdzdEJ1ZmZlciB0byBHc3RNaW5pT2JqZWN0LgoKMjAxNS0wNi0xMyAxNTowNTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIGxpYnM6IG1vcmUgZG9jIHNjYW5uZXIgZml4ZXMKCSAgZ3N0YmFzZXRyYW5zZm9ybS5oOjE5NjogV2FybmluZzogR3N0QmFzZTogIkBzdWJtaXRfaW5wdXRfYnVmZmVyIiBwYXJhbWV0ZXIgdW5leHBlY3RlZCBhdCB0aGlzIGxvY2F0aW9uOgoJICAqIEBzdWJtaXRfaW5wdXRfYnVmZmVyOiBGdW5jdGlvbiB3aGljaCBhY2NlcHRzIGEgbmV3IGlucHV0IGJ1ZmZlciBhbmQgcHJlLXByb2Nlc3NlcyBpdC4KCSAgZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6MTAzOiBXYXJuaW5nOiBHc3ROZXQ6IGdzdF9idWZmZXJfYWRkX25ldF9jb250cm9sX21lc3NhZ2VfbWV0YTogdW5rbm93biBwYXJhbWV0ZXIgJ21lc3NhZ2UnIGluIGRvY3VtZW50YXRpb24gY29tbWVudCwgc2hvdWxkIGJlICdhZGRyJwoKMjAxNS0wNi0xMyAwOTozNzo0NiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBkb2M6IEZpeCBhbm5vYXRpb24gZm9yIEdzdE1pbmlPYmplY3QKCSAgUmVwbGFjaW5nIHJlcHJlY2F0ZWQgIlJlZiBGdW5jOiIsICJVbnJlZiBGdW46IiBldGMuIGNvbW1lbnQgYmxvY2sKCSAgd2l0aCBhcHByb3ByaWF0ZSAocmVmLWZ1bmMgbmFtZSkgZXRjLiBhbm5vdGF0aW9uLgoKMjAxNS0wNi0xMyAwOTozNDowNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZG9jOiBGaXggdW5iYWxhbmNlZCBwYXJlbnRoZXNpcwoKMjAxNS0wNi0xMyAwOTozMDoyNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jOiBGaXggbW9yZSB0eXBvCgoyMDE1LTA2LTEzIDA5OjIyOjQxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2M6IEZpeCB0eXBlIGluIHByZXZpb3VzIGNvbW1pdAoJICBNYXJrZXIgaXMgKHZhbHVlIC4uIG5vdCAoYWx1ZS4KCjIwMTUtMDYtMTMgMDk6MTk6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBkb2M6IERvbid0IHVzZSBkZXByZWNhdGVkIFZhbHVlOiBhbmQgVHlwZTogY29tbWVudAoJICBJbnN0ZWFkIHVzZSBhcHByb3ByaWF0ZSBhbm5vdGF0aW9uLiBBbm5vdGF0aW9ucyBjYW4gYmUgYWRkZWQKCSAgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjb25zdGFudCBuYW1lIGluIGEgY29tbWVudCBibG9jay4KCjIwMTUtMDYtMTIgMTc6MDc6MzggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGNvbGxlY3RwYWRzOiBBZGQgbmV3IG1hY3JvIHRvIHRoZSBkb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMiAxNzowNzoyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgY2xvY2s6IEFkZCBuZXcgc2lnbmVkIHRpbWUgbWFjcm8gdG8gdGhlIGRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEwIDE0OjE3OjAxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBpbml0aWFsbHkgc2VuZCBhbiBpbnZhbGlkIERUUwoJICBTZW5kaW5nIGEgcG9zc2libHkgaW52YWxpZCBEVFMgbWF5IGNvbmZ1c2UgdGhlIG11eGVycywgd2hpY2ggd2lsbAoJICB0aGVuIHRoaW5rIHRoZSBEVFMgaXMgZ29pbmcgYmFja3dhcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDQtMDMgMTc6NTQ6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBBZGQgbmVnYXRpdmUgRFRTIHN1cHBvcnQKCSAgTWFrZSBnc3RfY29sbGVjdF9wYWRzX2NsaXBfcnVubmluZ190aW1lKCkgZnVuY3Rpb24gYWxzbyBzdG9yZSB0aGUKCSAgc2lnbmVkIERUUyBpbiB0aGUgQ29sbGVjdERhdGEuIFRoaXMgc2lnbmVkIERUUyB2YWx1ZSBjYW4gYmUgdXNlZCBieQoJICBtdXhlcnMgdG8gcHJvcGVybHkgaGFuZGxlIHN0cmVhbXMgd2hlcmUgRFRTIGNhbiBiZSBuZWdhdGl2ZSBpbml0aWFsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTIgMTI6MDY6MDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogQWRkIHNpZ25lZCB0aW1lIHV0aWxpdGllcwoJICBBZGQgdXRpbGl0eSB0byBwcmludCBzaWduZWQgdmFsdWUgb2YgdGltZS4gVGhpcyBpcyB1c2VmdWwgdG8KCSAgdHJhY2UgcnVubmluZyB0aW1lIHZhbHVlcyBpbiBnaW50NjQgb3IgR3N0Q2xvY2tUaW1lRGlmZiB2YWx1ZXMuCgkgIEFkZGl0aW9uYWxseSwgZGVmaW5lIEdTVF9DTE9DS19TVElNRV9OT05FIHRvIGluZGljYXRlIGFuIGludmFsaWQKCSAgc2lnbmVkIHRpbWUgdmFsdWUgYW5kIHZhbGlkYXRpb24gbWFjcm8uIE5ldyBtYWNyb3MgYXJlOgoJICBHU1RfQ0xPQ0tfU1RJTUVfTk9ORQoJICBHU1RfQ0xPQ0tfU1RJTUVfSVNfVkFMSUQKCSAgR1NUX1NUSU1FX0ZPUk1BVAoJICBHU1RfU1RJTUVfQVJHUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEwIDIwOjQ0OjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgYWxsb3ctbm9uZSB0byBnc3RfbWVzc2FnZV9uZXdfIGZ1bmN0aW9uCgkgIE5vIHJlc3RyaWN0aW9uIGZvciBjcmVhdGluZyBtZXNzYWdlcyB3aXRob3V0IGEgc291cmNlCgoyMDE1LTA2LTEyIDEzOjQ1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNS0wNS0yNyAxMjoyOTo0MSArMDMwMCAgTGF6YXIgQ2xhdWRpdSA8bGF6YXIuY2xhdWRpdS5mbG9yaW5AZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYWJzb2x1dGUtZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBBZGRlZCBhYnNvbHV0ZSBkaXJlY3QgY29udHJvbCBiaW5kaW5nLCBleGFtcGxlIGFuZCB0ZXN0CgkgIEZpeGVzOiA3NDA1MDIKCSAgQVBJOiBnc3RfZGlyZWN0X2NvbnRyb2xfYmluZGluZ19uZXdfYWJzb2x1dGUKCjIwMTUtMDYtMDQgMDA6MDM6MTYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogcHJvdmlkZSBhIG1lbV9tYXBfZnVsbCB0aGF0IHRha2VzIHRoZSBHc3RNYXBJbmZvCgkgIEZvbGxvdyB1cCBvZiA3MTMwMjMwZGRiMzQ5ZDBjYTc5NDJhYmRiYTI2Yjc1NThkZjA1NWQxCgkgIFByb3ZpZGUgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbiB0aGUgR3N0TWFwSW5mbyB0aGF0IHdpbGwgYmUgdXNlZCB0bwoJICBtYXAvdW5tYXAgdGhlIG1lbW9yeS4gIFRoaXMgYWxsb3dzIHRoZSBtZW1vcnkgaW1wbGVtZW50YXRpb24gdG8gdXNlCgkgIHNvbWUgc2NyYXRjaCBzcGFjZSBpbiBHc3RNYXBJbmZvIHRvIGUuZy4gdHJhY2sgZGlmZmVyZW50IG1hcC91bm1hcAoJICBiZWhhdmlvdXIgb3Igc3RvcmUgZXh0cmEgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBkYXRhIGFib3V0IHRoZSBtYXAKCSAgaW4gdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzE5CgoyMDE1LTA0LTA4IDE0OjIxOjQzIC0wNzAwICBBbGlzb24gQ2hhaWtlbiA8YWxpc29uX2NoYWlrZW5AbWVudG9yLmNvbT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgZG9jczogbWFudWFsOiBmaXggbmFtZSByZXZlcnNhbCBpbiBiYXNpY3MtcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NTMyCgoyMDE1LTA2LTExIDIzOjA2OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGdzdF93cml0ZXY6IGRlZmluZSBVSU9fTUFYSU9WIG9uIGlPUy9PU1gKCSAgQXBwYXJlbnRseSBpdCdzIG9ubHkgc2V0b24gaU9TL09TWCBpZiBkZWZpbmVkKEtFUk5FTCkuCgoyMDE1LTA2LTEyIDAxOjE1OjE5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBnc3Rfd3JpdGV2OiBSZXNwZWN0IFVJT19NQVhJT1YgbGltaXQgZm9yIHRoZSBpb3YgYXJyYXkKCSAgSWYgd2UgcmVjZWl2ZSBtb3JlIHRoYW4gVUlPX01BWElPViAoMTAyNCB0eXBpY2FsbHkpIGJ1ZmZlcnMKCSAgaW4gYSBzaW5nbGUgd3JpdGV2IGNhbGwsIGZhbGwgYmFjayB0byBjb25zb2xpZGF0aW5nIHRoZW0KCSAgaW50byBvbmUgb3V0cHV0IGJ1ZmZlciBvciBtdWx0aXBsZSB3cml0ZSBjYWxscy4KCSAgVGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUgb3B0aW1hbCwgYnV0IGxldCdzIHdhaXQgdW50aWwgaXQncwoJICBldmVyIGEgYm90dGxlbmVjayBmb3Igc29tZW9uZQoKMjAxNS0wNi0xMSAxMjozNDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBpcGVsaW5lOiBBZGQgZ3N0X3BpcGVsaW5lX3NldF9sYXRlbmN5KCksIGdldHRlciBhbmQgR09iamVjdCBwcm9wZXJ0eQoJICBUaGlzIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBsYXRlbmN5IGhhbmRsaW5nIGFuZCBjb25maWd1cmVzIHRoZSBzcGVjaWZpZWQKCSAgbGF0ZW5jeSBpbnN0ZWFkIG9mIHRoZSBtaW5pbXVtIGxhdGVuY3kgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgTEFURU5DWQoJICBxdWVyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MgoKMjAxNS0wNi0xMSAxMTozNzozMCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgYWN0aXZlLXBhZCBwcm9wZXJ0eQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2OTQ5CgoyMDE1LTA2LTExIDExOjA1OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBbHNvIHJlc2V0IHRoZSBjdXJyZW50IHN0YXJ0IG9mZnNldCB3aGVuIHJlY2VpdmluZyBhIEZMVVNIX1NUT1Agb24gdGhlIHNyY3BhZAoKMjAxNS0wNi0xMSAxMTowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIHNvbWUgbmV3bGluZXMgdG8gZXZlbnQgaGFuZGxpbmcgY29kZSB0byBtYWtlIHRoZSBjb2RlIGxvb2sgYSBiaXQgbGVzcyBkZW5zZQoKMjAxNS0wNi0xMSAxMDo1MzozMCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBSZXNldCBzZWdtZW50IGJhc2Ugb2Zmc2V0IGFmdGVyIEZMVVNIX1NUT1Agd2l0aCByZXNldF90aW1lID0gVFJVRQoJICBJZiB0aGUgcmVzZXRfdGltZSB2YWx1ZSBvZiBhIEZMVVNIX1NUT1AgZXZlbnQgaXMgc2V0IHRvIFRSVUUsIHRoZSBwaXBlbGluZQoJICB3aWxsIGhhdmUgdGhlIGJhc2VfdGltZSBvZiBpdHMgZWxlbWVudHMgcmVzZXQuIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29uY2F0CgkgIGVsZW1lbnQncyBjdXJyZW50X3N0YXJ0X29mZnNldCBoYXMgdG8gYmUgcmVzZXQgdG8gMCwgc2luY2UgaXQgd2FzCgkgIGNhbGN1bGF0ZWQgd2l0aCB0aGUgb2xkIGJhc2UtdGltZSBpbiBtaW5kLgoJICBPbmx5IEZMVVNIX1NUT1AgZXZlbnRzIGNvbWluZyBmcm9tIHRoZSBhY3RpdmUgcGFkIGFyZSBsb29rZWQgYXQuCgkgIFNpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCjIwMTUtMDMtMjggMTY6NDY6MzIgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogRm9yd2FyZCBGTFVTSF9TVEFSVCBhbmQgRkxVU0hfU1RPUCBldmVudHMKCSAgV2l0aG91dCB0aGlzLCBzZWVraW5nIGRlYWRsb2NrcyBpZiBwZXJmb3JtZWQgd2hpbGUgdGhlIHBpcGVsaW5lIGlzIHBhdXNlZC4KCSAgT25seSBmbHVzaCBldmVudHMgY29taW5nIGZyb20gdGhlIGFjdGl2ZSBwYWQgYXJlIGZvcndhcmRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTM2NgoKMjAxNS0wNi0wOSAxNDoyODozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJICBjcnVmdDogYWRkIHRoZSBvYnNvbGV0ZSB0bXBsIGRpciB0byBjcnVmdC1kaXJzCgoyMDE1LTA2LTA5IDExOjMwOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkOWEzMzUzIHRvIDYwMTVkMjYKCjIwMTUtMDYtMDkgMTE6MDE6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggZnN5bmMvX2NvbW1pdCB1c2FnZQoJICBfTVNDX1ZFUiB3aWxsIG9ubHkgYmUgZGVmaW5lZCB3aGVuIGJ1aWxkaW5nICpvbiogd2luZG93cyBhbmQgbm90IGp1c3QKCSAgKmZvciogd2luZG93cy4gSW5zdGVhZCwgdXNlIHRoZSBHX09TX1dJTjMyIGRlZmluZQoKMjAxNS0wNi0wOSAxMDo1OTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IENoZWNrIGZvciB0aGUgYWN0dWFsIEFQSSB3ZSB1c2UgaW5zdGVhZCBvZiBqdXN0IGxvb2tpbmcgZm9yIF9fQVBQTEVfXwoJICBTaG91bGQgZml4IHRoZSBidWlsZCBvbiBGcmVlQlNELCBEcmFnb25GbHkgYW5kIG90aGVyIEJTRHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1MzAKCjIwMTUtMDYtMDggMTc6MTA6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFVzZSB0aGUgbmV3IEdTVF9DTE9DS19GTEFHX05FRURTX1NUQVJUVVBfU1lOQyBmbGFnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1NzQKCjIwMTUtMDYtMDggMTc6MDQ6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE1ha2UgdGhlIGNsb2NrIGEgd3JhcHBlciBjbG9jayBhcm91bmQgYW4gaW50ZXJuYWwgY2xvY2sKCSAgVGhlIGludGVybmFsIGNsb2NrIGlzIG9ubHkgdXNlZCBmb3Igc2xhdmluZyBhZ2FpbnN0IHRoZSByZW1vdGUgY2xvY2ssIHdoaWxlCgkgIHRoZSB1c2VyLWZhY2luZyBHc3RDbG9jayBjYW4gYmUgYWRkaXRpb25hbGx5IHNsYXZlZCB0byBhbm90aGVyIGNsb2NrIGlmCgkgIGRlc2lyZWQuIEJ5IGRlZmF1bHQsIGlmIG5vIG1hc3RlciBjbG9jayBpcyBzZXQsIHRoaXMgaGFzIGV4YWN0bHkgdGhlIHNhbWUKCSAgYmVoYXZpb3VyIGFzIGJlZm9yZS4gSWYgYSBtYXN0ZXIgY2xvY2sgaXMgc2V0ICh3aGljaCB3YXMgbm90IGFsbG93ZWQgYmVmb3JlKSwKCSAgdGhlIHVzZXItZmFjaW5nIGNsb2NrIGlzIHJlcG9ydGluZyB0aGUgcmVtb3RlIGNsb2NrIGFzIGludGVybmFsIHRpbWUgYW5kCgkgIHNsYXZlcyB0aGlzIHRvIHRoZSBtYXN0ZXIgY2xvY2suCgkgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSB3ZWlyZG5lc3MgdGhhdCB0aGUgaW50ZXJuYWwgdGltZSBvZiB0aGUgbmV0Y2xpZW50Y2xvY2sKCSAgd2FzIGFsd2F5cyB0aGUgc3lzdGVtIGNsb2NrIHRpbWUsIGFuZCBub3QgdGhlIHJlbW90ZSBjbG9jayB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTc0CgoyMDE1LTA2LTA4IDIzOjA3OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkMzdhZjMyIHRvIGQ5YTMzNTMKCjIwMTUtMDYtMDggMjA6MDA6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0czogZmFrZXNpbms6IGZpeCBzdHJpbmcgbGVhayBpbiB1bml0IHRlc3QKCjIwMTUtMDYtMDkgMDA6NTI6MzQgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IFdpbmRvd3MgYnVpbGQgYnkgdXNpbmcgX2NvbW1pdCBpbnN0ZWFkIG9mIGZzeW5jLgoKMjAxNS0wNi0wOCAxMjoyMjo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IE1ha2Ugc3VyZSB0byBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgdmFyaWFibGVzIHdlIHB1dCBpbnRvIHRoZSBzdGF0aXN0aWNzIHN0cnVjdHVyZSBsYXRlcgoJICBDSUQgMTMwNDY3NiwgMTMwNDY3NywgMTMwNDY3OCwgMTMwNDY3OS4KCjIwMTUtMDYtMDggMTI6MDI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogRW5zdXJlIHRoYXQgbm90IHRvbyBtdWNoIGlzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRvIHN0cnVjdCBpZnJlcS5pZnJfbmFtZQoKMjAxNS0wNi0wOCAxOTozMzowMyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyB2ZnVuY3MKCSAgQWRkIFNpbmNlOiAxLjYgbWFya2VycyBmb3IgdGhlIG5ldyBzdWJtaXRfaW5wdXRfYnVmZmVyKCkgYW5kCgkgIGdlbmVyYXRlX291dHB1dCgpIHZmdW5jcwoKMjAxNS0wNS0yMyAwMTowODoyOSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0yLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFNwbGl0IGlucHV0IGJ1ZmZlciBwcm9jZXNzaW5nIGZyb20gb3V0cHV0IGdlbmVyYXRpb24KCSAgQWxsb3cgZm9yIHN1Yi1jbGFzc2VzIHdoaWNoIHdhbnQgdG8gY29sbGF0ZSBpbmNvbWluZyBidWZmZXJzIG9yCgkgIHNwbGl0IHRoZW0gaW50byBtdWx0aXBsZSBvdXRwdXQgYnVmZmVycyBieSBzZXBhcmF0aW5nIHRoZSBpbnB1dAoJICBidWZmZXIgc3VibWlzc2lvbiBmcm9tIG91dHB1dCBidWZmZXIgZ2VuZXJhdGlvbiBhbmQgYWxsb3dpbmcKCSAgZm9yIGxvb3Bpbmcgb2Ygb25lIG9mIHRoZSBwaGFzZXMgZGVwZW5kaW5nIG9uIHB1bGwgb3IgcHVzaCBtb2RlCgkgIG9wZXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDAzMwoKMjAxNS0wNC0xNiAxMDozMjowMiArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgQWRkIEdTVF9CVUZGRVJfRkxBR19TWU5DX0FGVEVSIGZsYWcsIGFuZCBpbXBsZW1lbnQgaW4gZmlsZXNpbmsuCgkgIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGdldCBmaWxlc2luayB0byBmc3luYygpIGFmdGVyIHJlbmRlcmluZwoJICBhIGJ1ZmZlci4KCjIwMTUtMDYtMDggMTA6NDY6MjQgKzAyMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogRml4IGJ1aWxkIG9uIFdpbmRvd3MsIGFuZCBpbiBnZW5lcmFsIHRoZSBHSSBidWlsZCB3aGVuIFBUUCBzdXBwb3J0IHdhcyBub3QgYXZhaWxhYmxlCgkgIEl0J3Mgbm90IGdvaW5nIHRvIHdvcmsgb24gV2luZG93cyBzdGlsbCwgdGhlIGhlbHBlciBwcm9jZXNzIG5lZWRzIHRvIGJlCgkgIHBvcnRlZC4KCjIwMTUtMDYtMDcgMjM6MDU6NTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIxYmEyZTUgdG8gZDM3YWYzMgoKMjAxNS0wNi0wNyAxNzozMTo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzQwODU4MyB0byAyMWJhMmU1CgoyMDE1LTA2LTA3IDE2OjU4OjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiByZW1vdmUgdmFyaWFibGVzIHRoYXQgd2UgZGVmaW5lIGluIHRoZSBzbmlwcGV0IGZyb20gY29tbW9uCgkgIFRoaXMgaXMgc3luY2luZyBvdXIgTWFrZWZpbGUuYW0gd2l0aCB1cHN0cmVhbSBndGtkb2MuCgoyMDE1LTA2LTA3IDE3OjE2OjA2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNjc2OTkzIHRvIGM0MDg1ODMKCjIwMTUtMDYtMDcgMTY6NDQ6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTUtMDYtMDcgMTA6NTI6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIG5ldGNsaWVudGNsb2NrOiBUaGUgTlRQIHBvbGwgaW50ZXJ2YWwgaXMgYSBzaWduZWQgaW50OCwgbm90IHVuc2lnbmVkCgo9PT0gcmVsZWFzZSAxLjUuMSA9PT0KCjIwMTUtMDYtMDcgMDk6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS4xCgoyMDE1LTA2LTA3IDA5OjMzOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vdHIucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA2LTA3IDA5OjMyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgU2luY2UgbWFya2VyIHRvIHRoZSBkb2NzIGZvciBnc3RfbnRwX2Nsb2NrX25ldygpCgoyMDE1LTA2LTA3IDA5OjMyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wNi0wNyAwOTowODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW4gdW5pdCB0ZXN0CgkgIGdzdC9nc3RtZW1vcnkuYzo1NzA6Mzg6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0TWFwRmxhZ3MnIHRvIGRpZmZlcmVudCBlbnVtZXJhdGlvbgoJICB0eXBlICdHc3RMb2NrRmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICBmYWlsX3VubGVzcyAoZ3N0X21lbW9yeV9sb2NrIChtZW0sIEdTVF9NQVBfV1JJVEUpKTsKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+fn5+fn5+fn5+fn5+CgoyMDE1LTA2LTA3IDA4OjU5OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgdGhlIGN1cnJlbnQgcGF0aCBkZWxheSBmb3IgY2FsY3VsYXRpb24gdGhlIGxvY2FsL3JlbW90ZSBjbG9jayB0aW1lcwoJICBUaGUgbWVhbiBtaWdodCBjdXJyZW50bHkgYmUgY2hhbmdpbmcsIGFuZCB0aGUgY3VycmVudCBwYXRoIGRlbGF5IGlzIHRoZQoJICBjbG9zZXN0IHdlIGNhbiBnZXQgdG8gdGhlIGFjdHVhbCBkZWxheSBhcm91bmQgdGhlIGN1cnJlbnQgU1lOQyBtZXNzYWdlLgoKMjAxNS0wNi0wNiAyMzowNTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWRkIHNvbWUgY29weXJpZ2h0IHN0dWZmCgoyMDE1LTA2LTA2IDIxOjQzOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBOVFB2NCBzdXBwb3J0CgkgIFRoaXMgdXNlcyBhbGwgb2YgdGhlIG5ldGNsaWVudGNsb2NrIGNvZGUsIGV4Y2VwdCBmb3IgdGhlIGdlbmVyYXRpb24gYW5kCgkgIHBhcnNpbmcgb2YgcGFja2V0cy4gVW5mb3J0dW5hdGVseSBzb21lIGNvZGUgZHVwbGljYXRpb24gd2FzIG5lY2Vzc2FyeQoJICBiZWNhdXNlIEdzdE5ldFRpbWVQYWNrZXQgaXMgcHVibGljIEFQSSBhbmQgY291bGRuJ3QgYmUgZXh0ZW5kZWQgZWFzaWx5CgkgIHRvIHN1cHBvcnQgTlRQdjQgcGFja2V0cyB3aXRob3V0IGJyZWFraW5nIEFQSS9BQkkuCgoyMDE1LTA2LTA2IDIwOjM5OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBQcmVwYXJhdGlvbiBmb3IgTlRQdjQgc3VwcG9ydAoJICBXZSBleHRlbmQgb3VyIGNhbGN1bGF0aW9ucyB0byB3b3JrIHdpdGggbG9jYWwgc2VuZCB0aW1lLCByZW1vdGUgcmVjZWl2ZSB0aW1lLAoJICByZW1vdGUgc2VuZCB0aW1lIGFuZCBsb2NhbCByZWNlaXZlIHRpbWUuIEZvciB0aGUgbmV0Y2xpZW50Y2xvY2sgcHJvdG9jb2wsCgkgIHJlbW90ZSByZWNlaXZlIGFuZCBzZW5kIHRpbWUgYXJlIGFzc3VtZWQgdG8gYmUgdGhlIHNhbWUgdmFsdWUuCgkgIEZvciB0aGUgcmVzdWx0cywgdGhpcyBtb2RpZmllZCBjYWxjdWxhdGlvbiBtYWtlcyBhYnNvbHV0ZWx5IG5vIGRpZmZlcmVuY2UKCSAgdW5sZXNzIHRoZSB0d28gcmVtb3RlIHRpbWVzIGFyZSBkaWZmZXJlbnQuCgoyMDE1LTA2LTA2IDE5OjAxOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrLiBGaXggbGFzdCBjb21taXQKCSAgQXBwYXJlbnRseSBJIGZhaWxlZCBhdCBnaXQgYWRkIC1pLgoKMjAxNS0wNi0wNiAxODo0MjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogTWFrZSBnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcoKSBhIHRoaW5nIHdyYXBwZXIgYXJvdW5kIGdfb2JqZWN0X25ldygpCgkgIEJpbmRpbmdzIHdpbGwgbGlrZSB0aGlzLCBhbmQgYWxzbyBpdCBmaXhlcyBhIEZJWE1FIGNvbW1lbnQuCgoyMDE1LTA2LTA2IDE0OjM0OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgI2RlZmluZSBldmVyeXdoZXJlIGluc3RlYWQgb2YgR19OX0VMRU1FTlRTKCkKCjIwMTUtMDYtMDYgMTQ6MzE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEZpbHRlciBSVFRzIGJhc2VkIG9uIHRoZSBtZWRpYW4gb2YgdGhlIGxhc3QgUlRUcyBiZWZvcmUgY29uc2lkZXJpbmcgdGhlbSBhdCBhbGwKCSAgVGhpcyBpbXByb3ZlcyBhY2N1cmFjeSBvbiB3aWZpIG9yIHNpbWlsYXIgbmV0d29ya3MsIHdoZXJlIHRoZSBSVFQgY2FuIGdvIHZlcnkKCSAgaGlnaCB1cCBmb3IgYSBzaW5nbGUgb2JzZXJ2YXRpb24gZXZlcnkgbm93IGFuZCB0aGVuLiBXaXRob3V0IGZpbHRlcmluZyB0aGVtCgkgIGF3YXkgY29tcGxldGVseSwgdGhleSB3b3VsZCBzdGlsbCBzdGlsbCBtb2RpZnkgdGhlIGF2ZXJhZ2UgUlRULCBhbmQgdGh1cyBhbGwKCSAgY2xvY2sgZXN0aW1hdGlvbnMuCgoyMDE1LTA2LTA2IDE0OjE5OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBVc2UgYSBzeXN0ZW0gY2xvY2sgZm9yIHRoZSB0aW1lIG9ic2VydmF0aW9ucyBpbnN0ZWFkIG9mIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKQoJICBUaGV5IGRvbid0IG5lY2Vzc2FyaWx5IHVzZSB0aGUgc2FtZSB1bmRlcmx5aW5nIGNsb2NrcyAoZS5nLiBvbiBXaW5kb3dzKSwgb3IKCSAgbWlnaHQgYmUgY29uZmlndXJlZCB0byBhIGRpZmZlcmVudCBjbG9jayB0eXBlIChtb25vdG9uaWMgdnMuIHJlYWwgdGltZSBjbG9jaykuCgkgIFdlIG5lZWQgdGhlIHZhbHVlcyBhIGNsZWFuIHN5c3RlbSBjbG9jayByZXR1cm5zLCBhcyB0aG9zZSBhcmUgdGhlIHZhbHVlcyB1c2VkCgkgIGJ5IHRoZSBpbnRlcm5hbCBjbG9ja3MuCgoyMDE1LTA2LTA2IDEyOjM1OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBGaXggZG9jdW1lbnRhdGlvbiBhIGJpdAoKMjAxNS0wNi0wNSAxOTozNToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzOiBmYWtlc2luazogdGVzdCBub3RpZnk6Omxhc3QtbWVzc2FnZSBhbmQgZGVlcC1ub3RpZnk6Omxhc3QtbWVzc2FnZQoJICBkZWVwLW5vdGlmeTo6bGFzdC1tZXNzYWdlIHNlZW1zIHRvIGNhdXNlIHNvbWUgcHJvYmxlbXMsIHNvIGRpc2FibGUgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY0MgoKMjAxNS0wNi0wNSAxMDowMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBQb3N0IGFuIGVycm9yIGlmIHdlIGNhbid0IHR5cGVmaW5kIHRoZSBkYXRhIHVudGlsIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNDM5CgoyMDE1LTA2LTA0IDE5OjA1OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBNYWtlIHN1cmUgdG8gdXNlIGdfcG9sbCgpIGZvciB0aGUgbWFpbiBjb250ZXh0CgkgIFRoZSBtb2RpZmllZCBtYWluIGNvbnRleHQgZnJvbSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMDU0CgkgIHNvbWVob3cgY2FsbHMgc2V0dWdpZCgpLCB3aGljaCBhYm9ydCgpcyBzZXR1aWQgcm9vdCBhcHBsaWNhdGlvbnMgb24gT1NYLgoKMjAxNS0wNi0wNCAxODozMjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogTWFrZSBzdXJlIHRoYXQgd2UgYXJlIHJ1bm5pbmcgc2V0dWlkIHJvb3QgaWYgY29uZmlndXJlZCB0aGF0IHdheQoKMjAxNS0wNi0wNCAxODowMDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogRml4IGludGVyZmFjZSBsaXN0aW5nIGFuZCBNQUMgcmV0cmlldmFsIG9uIE9TWAoKMjAxNS0wNi0wMyAxOTowNDoxNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBBZGQgc3VwcG9ydCBmb3IgZ2luZGVudCBhcyBleGVjdXRhYmxlIG5hbWUKCSAgZ3N0LWluZGVudCB1c2VkIHRvIHN1cHBvcnQgZ251aW5kZW50IGFuZCBpbmRlbnQgYXMgZXhlY3V0YWJsZSBuYW1lcy4KCSAgSG93ZXZlciwgb24gT1NYIG9uZSBjYW4gImJyZXcgaW5zdGFsbCBnbnUtaW5kZW50IiBhbmQgdGhlbiB0aGUKCSAgZXhlY3V0YWJsZSBuYW1lIHdpbGwgYmUgZ2luZGVudC4gQWRkZWQgc3VwcG9ydCBmb3IgdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM1MQoKMjAxNS0wNi0wMyAxNjo0Mjo1NyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBhZGQgbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlcgoKMjAxNS0wNi0wMyAxNjozNDo1OCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIHB0cDogaWdub3JlIHBlcm1pc3Npb24gZXJyb3JzIGluIE1ha2VmaWxlCgkgIFRvIHNhdGlzZnkgdGhlIGJ1aWxkc2xhdmVzIGlnbm9yZSBwZXJtaXNzaW9uIGVycm9ycyBpbiBjaG93biwgY2htb2QgYW5kIHNldGNhcAoKMjAxNS0wNi0wMyAxNzowNjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBEb24ndCB1c2UgU0lPQ0dJRkhXQUREUiBvbiBBcHBsZQoJICBKdXN0ICNpZmRlZiB0aGUgY29kZSBmb3Igbm93LCB0aGlzIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBhcm91bmQKCSAgSU9LaXQgbGF0ZXIgaW5zdGVhZCBvZiB1c2luZyBpb2N0bHMuCgoyMDE1LTA2LTAzIDE2OjI4OjQ0ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IG1ha2UgaW5zdGFsbC1leGVjLWhvb2tzIGRlcGVuZCBvbiBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUwoJICBUbyBhdm9pZCByYWNlIGNvbmRpdGlvbnMgd2hlcmUgbWFrZSB3b3VsZCB0cnkgdG8gY2hhbmdlIG93bmVyc2hpcCBhbmQKCSAgcGVybWlzc2lvbnMgb2YgdGhlIG5vdC15ZXQtaW5zdGFsbGVkIHB0cCBoZWxwZXIuCgoyMDE1LTA2LTAzIDE2OjA4OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogRml4IGRlYnVnIG91dHB1dCB0byBwcmludCB0aGUgZGlmZmVyZW5jZSBpbnN0ZWFkIG9mIGFic29sdXRlIHZhbHVlcwoKMjAxNS0wNi0wMyAxNToyMjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IGZpeCBjb21waWxhdGlvbgoJICBEb24ndCBwdXQgY29kZSBiZXR3ZWVuIGRlY2xhcmF0aW9ucy4KCSAgRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwoKMjAxNS0wNi0wMyAxMTowNDo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCBtZWRpYW4gYmFzZWQgcHJlLWZpbHRlcmluZyBvZiBkZWxheXMKCSAgSWYgdGhlIGRlbGF5IG1lYXN1cmVtZW50IGlzIHRvbyBmYXIgYXdheSBmcm9tIHRoZSBtZWRpYW4gb2YgdGhlIHdpbmRvdyBvZiBsYXN0CgkgIGRlbGF5IG1lYXN1cmVtZW50cywgd2UgZGlzY2FyZCBpdC4gVGhpcyBpbmNyZWFzZXMgYWNjdXJhY3kgb24gd2lmaSBhIGxvdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMiAxNToyNDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCAjZGVmaW5lIHRvIG9ubHkgdXNlIFNZTkMgbWVzc2FnZXMgZm9yIHdoaWNoIHdlIGNhbiBzZW5kIERFTEFZX1JFUQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA1LTE1IDE2OjU4OjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkICNkZWZpbmVzIHRvIGVuYWJsZS9kaXNhYmxlIGltcHJvdmVtZW50cyBmb3IgdW5yZWxpYWJsZSBuZXR3b3JrcwoJICBXZSBzaG91bGQgZG8gc29tZSBtb3JlIG1lYXN1cmVtZW50cyB3aXRoIGFsbCB0aGVzZSBhbmQgY2hlY2sgaG93IG11Y2ggc2Vuc2UKCSAgdGhleSBtYWtlIGZvciBQVFAuIEFsc28gZW5hYmxpbmcgdGhlbSBtZWFucyBub3QgZm9sbG93aW5nIElFRUUxNTg4LTIwMDggYnkgdGhlCgkgIGxldHRlciBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA1LTE0IDEyOjE4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdHB0cF9wcml2YXRlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSogbGlicy9nc3QvbmV0L25ldC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHRwLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHRwL3B0cC1wcmludC10aW1lcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgcHRwOiBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgUFRQIGNsb2NrCgkgIEdzdFB0cENsb2NrIGltcGxlbWVudHMgYSBQVFAgKElFRUUxNTg4OjIwMDgpIG9yZGluYXJ5IGNsb2NrIGluCgkgIHNsYXZlLW9ubHkgbW9kZSwgdGhhdCBhbGxvd3MgYSBHU3RyZWFtZXIgcGlwZWxpbmUgdG8gc3luY2hyb25pemUKCSAgdG8gYSBQVFAgbmV0d29yayBjbG9jayBpbiBzb21lIHNwZWNpZmljIGRvbWFpbi4KCSAgVGhlIFBUUCBzdWJzeXN0ZW0gY2FuIGJlIGluaXRpYWxpemVkIHdpdGggZ3N0X3B0cF9pbml0KCksIHdoaWNoIHRoZW4KCSAgc3RhcnRzIGEgaGVscGVyIHByb2Nlc3MgdG8gZG8gdGhlIGFjdHVhbCBjb21tdW5pY2F0aW9uIHZpYSB0aGUgUFRQCgkgIHBvcnRzLiBUaGlzIGlzIHJlcXVpcmVkIGFzIFBUUCBsaXN0ZW5zIG9uIHBvcnRzIDwgMTAyNCBhbmQgdGh1cwoJICByZXF1aXJlcyBzcGVjaWFsIHByaXZpbGVnZXMuIE9uY2UgdGhpcyBoZWxwZXIgcHJvY2VzcyBpcyBzdGFydGVkLCB0aGUKCSAgbWFpbiBwcm9jZXNzIHdpbGwgc3luY2hyb25pemUgdG8gYWxsIFBUUCBkb21haW5zIHRoYXQgYXJlIGRldGVjdGVkIG9uCgkgIHRoZSBzZWxlY3RlZCBpbnRlcmZhY2VzLgoJICBnc3RfcHRwX2Nsb2NrX25ldygpIHRoZW4gYWxsb3dzIHRvIGNyZWF0ZSBhIEdzdENsb2NrIHRoYXQgcHJvdmlkZXMgdGhlCgkgIFBUUCB0aW1lIGZyb20gYSBtYXN0ZXIgY2xvY2sgaW5zaWRlIGEgc3BlY2lmaWMgUFRQIGRvbWFpbi4gVGhpcyBjbG9jawoJICB3aWxsIG9ubHkgcmV0dXJuIHZhbGlkIHRpbWVzdGFtcHMgb25jZSB0aGUgdGltZXN0YW1wcyBpbiB0aGUgUFRQIGRvbWFpbgoJICBhcmUga25vd24uIFRvIGNoZWNrIHRoaXMsIHRoZSBHc3RQdHBDbG9jazo6aW50ZXJuYWwtY2xvY2sgcHJvcGVydHkgYW5kCgkgIHRoZSByZWxhdGVkIG5vdGlmeTo6Y2xvY2sgc2lnbmFsIGNhbiBiZSB1c2VkLiBPbmNlIHRoZSBpbnRlcm5hbCBjbG9jawoJICBpcyBub3QgTlVMTCwgdGhlIFBUUCBkb21haW4ncyB0aW1lIGlzIGtub3duLiBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gd2FpdAoJICBmb3IgdGhpcyB3aXRoIGdzdF9wdHBfY2xvY2tfd2FpdF9yZWFkeSgpLgoJICBUbyBnYXRoZXIgc3RhdGlzdGljcyBhYm91dCB0aGUgUFRQIGNsb2NrIHN5bmNocm9uaXphdGlvbiwKCSAgZ3N0X3B0cF9zdGF0aXN0aWNzX2NhbGxiYWNrX2FkZCgpIGNhbiBiZSB1c2VkLiBUaGlzIGdpdmVzIHRoZQoJICBhcHBsaWNhdGlvbiB0aGUgcG9zc2liaWxpdHkgdG8gY29sbGVjdCBhbGwga2luZHMgb2Ygc3RhdGlzdGljcwoJICBmcm9tIHRoZSBjbG9jayBzeW5jaHJvbml6YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDMgMTM6MTY6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIEdTVF9DTE9DS19GTEFHX05FRURTX1NUQVJUVVBfU1lOQyBhbmQgcmVsYXRlZCBBUEkKCSAgZ3N0X2Nsb2NrX3dhaXRfZm9yX3N5bmMoKSwgZ3N0X2Nsb2NrX2lzX3N5bmNlZCgpIGFuZCBnc3RfY2xvY2tfc2V0X3N5bmNlZCgpCgkgIHBsdXMgYSBzaWduYWwgdG8gYXN5bmNocm9ub3VzbHkgd2FpdCBmb3IgdGhlIGNsb2NrIHRvIGJlIHN5bmNlZC4KCSAgVGhpcyBjYW4gYmUgdXNlZCBieSBjbG9ja3MgdG8gc2lnbmFsIHRoYXQgdGhleSBuZWVkIGluaXRpYWwgc3luY2hyb25pemF0aW9uCgkgIGJlZm9yZSB0aGV5IGNhbiByZXBvcnQgYW55IHRpbWUsIGFuZCB0aGF0IHRoaXMgc3luY2hyb25pemF0aW9uIGNhbiBhbHNvIGdldAoJICBjb21wbGV0ZWx5IGxvc3QgYXQgc29tZSBwb2ludC4gTmV0d29yayBjbG9ja3MsIGxpa2UgdGhlIEdTdHJlYW1lcgoJICBuZXRjbGllbnRjbG9jaywgTlRQIG9yIFBUUCBjbG9ja3MgYXJlIGV4YW1wbGVzIGZvciBjbG9ja3Mgd2hlcmUgdGhpcyBpcyB1c2VmdWwKCSAgdG8gaGF2ZSBhcyB0aGV5IGNhbid0IHJlcG9ydCBhbnkgdGltZSBhdCBhbGwgYmVmb3JlIHRoZXkncmUgc3luY2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAzIDE4OjAzOjM2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHByb3ZpZGUgYSBtZW1fdW5tYXAgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgZmxhZ3MgdG8gdW5tYXAKCSAgVGhlcmUgYXJlIGdzdG1lbW9yeSdzIGF2YWlsYWJsZSB0aGF0IG9wZXJhdGUgaW4gdHdvIG1lbW9yeSBkb21haW5zCgkgIGFuZCBuZWVkIHRvIGVuc3VyZSBjb25zaXN0ZW50IGFjY2VzcyBiZXR3ZWVuIHRoZXNlIGRvbWFpbnMuCgkgIEltYWdpbmUgYSBzY2VuYXJpbyB3aGVyZSBlLmcuIHRoZSBHTE1lbW9yeSBpcyBtYXBwZWQgdHdpY2UgaW4gYm90aAoJICB0aGUgR1BVIGFuZCB0aGUgQ1BVIGRvbWFpbi4gIE9uIHVubWFwIG9yIGEgc3Vic2VxdWVudCBtYXAsIGl0IHdvdWxkCgkgIGxpa2UgdG8gZW5zdXJlIHRoYXQgdGhlIG1vc3QgcmVjZW50IGRhdGEgaXMgYXZhaWxhYmxlIGluIHRoZSBtZW1vcnkKCSAgZG9tYWluIHJlcXVlc3RlZC4gIEVpdGhlciBieSBmbHVzaGluZyB0aGUgd3JpdGVzIGFuZC9vciBpbml0aWF0aW5nIGEKCSAgRE1BIHRyYW5zZmVyLiAgV2l0aG91dCBrbm93aW5nIHdoaWNoIGRvbWFpbiBpcyBiZWluZyB1bm1hcHBlZCwgdGhlCgkgIG1lbW9yeSBkb2VzIG5vdCBrbm93IHdoZXJlIHRoZSBtb3N0IHJlY2VudCBkYXRhIGlzIHRvIHRyYW5zZmVyIHRvCgkgIHRoZSBvdGhlciBtZW1vcnkgZG9tYWluLgoJICBOb3RlOiB0aGlzIHN0aWxsIGRvZXMgbm90IGFsbG93IGRvd25ncmFkaW5nIGEgbWVtb3J5IG1hcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDMxOQoKMjAxNS0wNi0wMiAxNjoxNDo1MCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZ3N0X21lbW9yeV9zaGFyZSBtYXkgZmFpbCB0byBleGNsdXNpdmVseSBsb2NrIHRoZSBwYXJlbnQgbWVtb3J5CgkgIE5vdyB0aGF0IGxvY2tpbmcgZXhjbHVzaXZlbHkgZG93cyBub3QgYWx3YXlzIHN1Y2NlZWQsIHdlIG5lZWQgdG8gc2lnbmFsCgkgIHRoZSBmYWlsdXJlIGNhc2UgZnJvbSBnc3RfbWVtb3J5X2luaXQuCgkgIFJhdGhlciB0aGFuIGludHJvZHVjaW5nIGFuIEFQSSBvciBmdW5jaW9uYWxpdHkgY2hhbmdlIHRvIGdzdF9tZW1vcnlfaW5pdCwKCSAgd29ya2Fyb3VuZCBieSBjaGVja2luZyBleGNsdXNpdml0eSBpbiB0aGUgY2FsbGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA2LTAyIDAwOjIzOjM3ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBsb2NraW5nIG1lbW9yeSBleGNsdXNpdmVseSBtYXkgZmFpbAoJICBBdHRlbXB0IHRvIHJldHVybiBhIGNvcHkgb2YgdGhlIG1lbW9yeSBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA1LTMxIDIxOjI1OjIzICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1pbmlvYmplY3Q6IGRpc2FsbG93IGEgZG91YmxlIHdyaXRlL2V4Y2x1c2l2ZSBsb2NrCgkgIGdzdF9tZW1vcnlfbG9jayAobWVtLCBXUklURSB8IEVYQ0xVU0lWRSk7CgkgIGdzdF9tZW1vcnlfbG9jayAobWVtLCBXUklURSB8IEVYQ0xVU0lWRSk7CgkgIFN1Y2NlZWRzIHdoZW4gdGhlIHBhcnQtbWluaW9iamVjdC50eHQgZGVzaWduIGRvYyBzdWdnZXN0cyB0aGF0IHRoaXMgc2hvdWxkIGZhaWw6CgkgICJBIGdzdF9taW5pX29iamVjdF9sb2NrKCkgY2FuIGZhaWwgd2hlbiBhIFdSSVRFIGxvY2sgaXMgcmVxdWVzdGVkIGFuZAoJICB0aGUgZXhjbHVzaXZlIGNvdW50ZXIgaXMgPiAxLiBJbmRlZWQgYSBHc3RNaW5pT2JqZWN0IG9iamVjdCB3aXRoIGFuCgkgIGV4Y2x1c2l2ZSBjb3VudGVyIDEgaXMgbG9ja2VkIEVYQ0xVU0lWRUxZIGJ5IGF0IGxlYXN0IDIgb2JqZWN0cyBhbmQgaXMKCSAgdGhlcmVmb3JlIG5vdCB3cml0YWJsZS4iCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDYtMDIgMjA6MzI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogbWF0Y2ggcmV0dXJuIHR5cGUgb2YgZ2V0X3VyaV90eXBlKCkgaW1wbGVtZW50YXRpb24gdG8gZGVjbGFyYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDI5MgoKMjAxNS0wNi0wMyAwMDoxMjozNiArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIGEgbm90ZSBhYm91dCBtZXRhcyBuZWVkaW5nIHRvIGJlIGNvcGllZCBsYXN0CgoyMDE1LTA1LTI3IDIyOjIzOjAwICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEltcGxlbWVudCBnc3RfdmFsdWVfaXNfc3Vic2V0KCkgZm9yIGZsYWdzZXRzCgoyMDE1LTA2LTAyIDE2OjMzOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgY2hlY2s6IFVzZSBHU1RfQ0hFQ0tfTUFJTiBtYWNybwoKMjAxNS0wNS0yMCAyMToxODowOCArMDkwMCAgZXVuaGFlIGNob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHJlbGVhc2UgbG9jayBiZWZvcmUgcG9zdGluZyBtc2cKCSAgdG8gYXZvaWQgdGhlIGRlYWRsb2NrIGluIHBsYXliaW4yLAoJICBzZW5kIG1zZyBhZnRlciByZWxlYXNlIHRoZSBkb3dubG9hZCBidWZmZXIgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUzNQoKMjAxNS0wNS0zMSAyMDoyMTo0MiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBub3RlIGFib3V0IG1pc3NpbmcgZmllbGQgY3JlYXRpb24gb24gX3NldCgpCgoyMDE1LTA1LTMwIDEzOjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogZml4IHNvbWUgbGVha3MgaW4gbmV3IGZsYWdzZXQgY2hlY2tzCgoyMDE1LTA1LTMwIDEyOjM5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IHJlbW92ZSBkdXBsaWNhdGUgYXNzaWdubWVudAoJICBXZSd2ZSBhbHJlYWR5IGRvbmUgdGhpcyBlYXJsaWVyIGluIHRoZSBmdW5jdGlvbiwKCSAgYW5kIG5vdGhpbmcgaGFzIGNoYW5nZWQgc2luY2Ugd2UgZmlyc3QgcmVhZCBpdC4KCjIwMTUtMDUtMjcgMTc6MjI6MjggKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0L2dzdC5jOiBBZGQgYSB3YXJuaW5nIGFib3V0IERsbE1haW4gdG8gcHJldmVudCBtaXN1c2UKCSAgRGxsTWFpbiBzaG91bGQgbm90IGJlIHJlbGllZCBvbiBmb3IgYW55dGhpbmcgZXhjZXB0IHN0b3JpbmcgdGhlIERMTCBoYW5kbGUuCgkgIEl0IHNob3VsZCBhbHNvIG5vdCBiZSBkZWZpbmVkIGZvciBzdGF0aWMgYnVpbGRzLCBidXQgZG9pbmcgc28gaXMgbm90CgkgIHN0cmFpZ2h0Zm9yd2FyZCBhbmQgaXMgbW9zdGx5IGhhcm1sZXNzLCBzbyBsZXQncyBqdXN0IGFkZCBhIGNvbW1lbnQgYWJvdXQgdGhhdAoJICBmb3Igbm93LgoKMjAxNS0wNS0yNyAxMzo1NDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgYSBiaXQKCjIwMTUtMDUtMjYgMTQ6NDY6MTYgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGRyYWZ0LWtsYXNzLnR4dAoKMjAxNS0wNS0yNiAxNDowMzoyNSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvY29kZS1yZXZpZXdzL1JFQURNRToKCSogZG9jcy9jb2RlLXJldmlld3MvZ3N0YmluLmMtMS40MToKCSAgY29kZS1yZXZpZXdzOiByZW1vdmUgb2Jzb2xldGUgY29kZSByZXZpZXdzCgkgIFRoaXMgb2Jzb2xldGUgZm9sZGVyIGhhc24ndCBiZWVuIHRvdWNoZWQgc2luY2UgMjAwMSBhbmQgaGFzIG5vIHB1cnBvc2UuIEl0CgkgIGNvbmZ1c2VzIG5ldyBkZXZlbG9wZXJzLgoKMjAxNS0wNS0yNSAyMTowMjoyOCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIHRoZSBzbGlnaHRseSBtb3JlIGNvcnJlY3QgdGFrZV9zYW1wbGUgZm9yIGxhc3Qtc2FtcGxlCgkgIGdzdF92YWx1ZV90YWtlX2J1ZmZlcigpIGFuZCBnc3RfdmFsdWVfdGFrZV9zYW1wbGUoKSBib3RoIHJlc29sdmUgdG8KCSAgZ192YWx1ZV90YWtlX2JveGVkKCkuICBVc2UgdGhlIG1ldGhvZCB3aXRoIHRoZSBjb3JyZWN0IG5hbWUgaWYgd2UKCSAgZXZlciBjaGFuZ2UgdGhhdC4KCjIwMTUtMDUtMjUgMTY6MjM6MzMgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIEdzdEZsYWdTZXQgdHlwZQoJICBHc3RGbGFnU2V0IGlzIGEgbmV3IHR5cGUgZGVzaWduZWQgZm9yIG5lZ290aWF0aW5nIHNldHMKCSAgb2YgYm9vbGVhbiBjYXBhYmlsaXRpZXMgZmxhZ3MsIGNvbnNpc3Rpbmcgb2YgYSAzMi1iaXQKCSAgZmxhZ3MgYml0ZmllbGQgYW5kIDMyLWJpdCBtYXNrIGZpZWxkLiBUaGUgbWFzayBmaWVsZAoJICBpbmRpY2F0ZXMgd2hpY2ggb2YgdGhlIGZsYWdzIGJpdHMgYW4gZWxlbWVudCBuZWVkcyB0byBoYXZlCgkgIGFzIHNwZWNpZmljIHZhbHVlcywgYW5kIHdoaWNoIGl0IGRvZXNuJ3QgY2FyZSBhYm91dC4KCSAgVGhpcyBhbGxvd3MgZWZmaWNpZW50IG5lZ290aWF0aW9uIG9mIGFycmF5cyBvZiBib29sZWFuCgkgIGNhcGFiaWxpdGllcy4KCSAgVGhlIHN0YW5kYXJkIHNlcmlhbGlzYXRpb24gZm9ybWF0IGlzIEZMQUdTOk1BU0ssIHdpdGgKCSAgZmxhZ3MgYW5kIG1hc2sgZmllbGRzIGV4cHJlc3NlZCBpbiBoZXhhZGVjaW1hbCwgaG93ZXZlcgoJICBHc3RGbGFnU2V0IGhhcyBhIGdzdF9yZWdpc3Rlcl9mbGFnc2V0KCkgZnVuY3Rpb24sIHdoaWNoCgkgIGFzc29jaWF0ZXMgYSBuZXcgR3N0RmxhZ1NldCBkZXJpdmVkIHR5cGUgd2l0aCBhbiBleGlzdGluZwoJICBHRmxhZ3MgZ3R5cGUuIFdoZW4gc2VyaWFsaXppbmcgYSBHc3RGbGFnU2V0IHdpdGggYW4KCSAgYXNzb2NpYXRlZCBzZXQgb2YgR0ZsYWdzLCBpdCBhbHNvIHNlcmlhbGl6ZXMgYSBodW1hbi1yZWFkYWJsZQoJICBmb3JtIG9mIHRoZSBmbGFncyBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KCSAgSXQgaXMgcG9zc2libGUgdG8gcGFyc2UgYSBHRmxhZ3Mgc3R5bGUgc2VyaWFsaXNhdGlvbiBvZiBhCgkgIGZsYWdzZXQsIHdpdGhvdXQgdGhlIGhleCBwb3J0aW9uIG9uIHRoZSBmcm9udC4gaWUsCgkgICtmbGFnMS9mbGFnMi9mbGFnMytmbGFnNCwgdG8gaW5kaWNhdGUgdGhhdAoJICBmbGFnMSAmIGZsYWc0IG11c3QgYmUgc2V0LCBhbmQgZmxhZzIvZmxhZzMgbXVzdCBiZSB1bnNldCwKCSAgYW5kIGFueSBvdGhlciBmbGFncyBhcmUgZG9uJ3QtY2FyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjM3MwoKMjAxNS0wNS0yMCAyMDoxOToyOSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgYSBjb21wYXJpc2lvbiBmdW5jdGlvbiBmb3IgR3N0U3RydWN0dXJlcwoKMjAxNS0wNS0xOSAxNDozNDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDoga2VlcCBHQ2FuY2VsbGFibGUgZmQgYXJvdW5kIGluc3RlYWQgb2YgcmUtY3JlYXRpbmcgaXQgY29uc3RhbnRseQoJICBKdXN0IGNyZWF0ZSB0aGUgY2FuY2VsbGFibGUgZmQgb25jZSBhbmQga2VlcCBpdCBhcm91bmQgaW5zdGVhZAoJICBvZiBjcmVhdGluZy9jbG9zaW5nIGl0IGZvciBldmVyeSBzaW5nbGUgcGFja2V0LiBTaW5jZSB3ZSBzcGVuZAoJICBtb3N0IHRpbWUgd2FpdGluZyBmb3IgcGFja2V0cywgYW4gZmQgaXMgYWxsb2NlZCBhbmQgaW4gdXNlIHByZXR0eQoJICBtdWNoIGFsbCB0aGUgdGltZSBhbnl3YXkuCgoyMDE1LTA1LTE4IDEyOjUyOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBSZXZlcnQgImRvYzogV29ya2Fyb3VuZCBndGtkb2MgaXNzdWUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDYwYTdiZjY4MjkyZDA1N2M3N2U4NGQxZWE4NmI4ZTczZmMwODFmMy4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgYnkgdGhlIGd0ay1kb2MgMS4yMyByZWxlYXNlLgoJICA8cGFyYT4gY2Fubm90IGNvbnRhaW4gPHJlZnNlY3QyPjoKCSAgaHR0cDovL3d3dy5kb2Nib29rLm9yZy90ZGcvZW4vaHRtbC9wYXJhLmh0bWwKCSAgaHR0cDovL3d3dy5kb2Nib29rLm9yZy90ZGcvZW4vaHRtbC9yZWZzZWN0Mi5odG1sCgoyMDE1LTA1LTExIDEwOjUyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBzbWFsbCBjbGVhbnVwCgkgIFRoZSBlcnJvciBwYXRoIHVucmVmcyBmaWxlLT5maWxlIHNvIG1ha2Ugc3VyZSB3ZSBvbmx5IGdvIHRoZXJlIHdoZW4KCSAgdGhlcmUgaXMgYSBub24tTlVMTCBmaWxlLT5maWxlLgoKMjAxNS0wNS0xNiAyMzoyOTowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGRvYzogV29ya2Fyb3VuZCBndGtkb2MgaXNzdWUKCSAgV2l0aCBndGtkb2MgMS4yMiwgdGhlIFhNTCBnZW5lcmF0b3IgZmFpbHMgd2hlbiBhIGl0ZW1pemVkbGlzdCBpcwoJICBmb2xsb3dlZCBieSBhIHJlZnNlY3QyLiBXb3JrYXJvdW5kIHRoZSBpc3N1ZSBieSB3cmFwcGluZyB0aGUgcmVmc2VjdDIKCSAgaW50byBwYXJhLgoKMjAxNS0wNS0xMyAxMzoyODowNSAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0xNiAxMjo1NzoxMiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogQ2hlY2sgdGhhdCB0aGUgb25seSBpdGVyIGlzIHRoZSBlbmQgaXRlciBpbiB0aGUgR1NlcXVlbmNlCgkgIFByZXZpb3VzIHBhdGNoIHdhcyBhc3N1bWluZyB0aGF0IGlmIHRoZSByZXR1cm5lZCBpdGVyIHdhcyB0aGUgbGFzdCBpdGVyCgkgIHRoZSBHU2VxdWVuY2Ugd2FzIGVtcHR5LCB3aGljaCBpcyBvYnZpb3VzbHkgd3JvbmcuCgoyMDE1LTA1LTE2IDExOjE3OjQwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBGaXggcmVtb3ZpbmcgYWxsIGtleWZyYW1lcywgYW5kIGFkZGluZyBvbmUgYmFjawoJICBXZSB3ZXJlIHNlZ2ZhdWx0aW5nIGJlY2F1c2UgZ19zZXF1ZW5jZV9zZWFyY2ggd2FzIHJldHVybmluZyB0aGUgaXRlcl9lbmQsCgkgIGFuZCB0aGF0IGl0ZXJhdG9yIGRvZXMgbm90IGNvbnRhaW4gYW55dGhpbmcgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSB1c2VkCgkgIGRpcmVjdGx5CgoyMDE1LTA1LTE1IDIwOjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGZpeCBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoJICBXZSdyZSBlbnRlcnByaXNlIG5vdyBmb2xrcy4KCjIwMTUtMDUtMTUgMTQ6NTc6MTQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGJ1bXAgY2hhaW4gZnVuY3Rpb24gY2FsbCBsb2dzIGZyb20gTE9HIHRvIERFQlVHCgkgIFRoZXkncmUgcmVhbGx5IHVzZWZ1bCBjb21wYXJlZCB0byBvdGhlciBMT0cgc3R1ZmYgaW4gdGhlcmUsIHNvCgkgIHRoZXJlIGlzIHZhbHVlIGlzIGluY2x1ZGluZyB0aGVtIGFuZCBub3QgdGhlIHJlc3QuCgoyMDE1LTA1LTE1IDEzOjQzOjEyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogYWRkIGdzdF9vYmplY3RfaGFzX2FzX2FuY2VzdG9yIGFuZCBkZXByZWNhdGUgcHJldmlvdXMgZnVuY3Rpb24KCSAgVGhlIG9sZCBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvciB3aWxsIGNhbGwgdGhlIG5ldyBjb2RlLiBUaGlzIGVzdGFibGlzaGVzIHRoZQoJICBzeW1ldHJ5IHdpdGggdGhlIG5ldyBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfYXNfYW5jZXN0b3IoKQoKMjAxNS0wNS0xNSAwODowNTo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IHJlbmFtZSBnc3Rfb2JqZWN0X2hhc19wYXJlbnQgdG8gZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50CgkgIFRoaXMgYXZvaWQgY29uZnVzaW9uIHdpdGggYSBwb3RlbnRpYWwgcHVuY3Rpb24gdGhhdCBjaGVjayBpZiBhIGdzdG9iamVjdCBoYXMtYQoJICBwYXJlbnQuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50KCkKCjIwMTUtMDUtMTQgMTU6NDk6NDMgKzA4MDAgIEppYW4gPEppYW4uTGlAZnJlZXNjYWxlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEZpeCBRb1MvbGF0ZW5lc3MgY2hlY2tpbmcgaWYgc3ViY2xhc3MgaW1wbGVtZW50cyBwcmVwYXJlL3ByZXBhcmVfbGlzdCB2ZnVuY3MKCSAgSW4gYmFzZXNpbmsgZnVuY3Rpb25zIGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQoKSwgYmVsb3cgY29kZSBpcyB1c2VkIHRvCgkgIGNoZWNraW5nIGlmIGJ1ZmZlciBpcyBsYXRlIGJlZm9yZSBkb2luZyBwcmVwYXJlIGNhbGwgdG8gc2F2ZSBzb21lIGVmZm9ydDoKCSAgaWYgKHN5bmNhYmxlICYmIGRvX3N5bmMpCgkgIGxhdGUgPQoJICBnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlIChiYXNlc2luaywgb2JqLCByc3RhcnQsIHJzdG9wLAoJICBHU1RfQ0xPQ0tfRUFSTFksIDAsIEZBTFNFKTsKCSAgaWYgKEdfVU5MSUtFTFkgKGxhdGUpKQoJICBnb3RvIGRyb3BwZWQ7CgkgIEJ1dCB0aGlzIGNvZGUgaGFzIHByb2JsZW0sIGl0IHNob3VsZCBjYWxjdWxhdGUgaml0dGVyIGJhc2VkIG9uIGN1cnJlbnQgbWVkaWEKCSAgY2xvY2ssIHJhdGhlciB0aGFuIGp1c3QgcGFzc2luZyAwLiBJIGZvdW5kIGl0IHdpbGwgZHJvcCBhbGwgdGhlIGZyYW1lcyB3aGVuCgkgIHJld2luZCBpbiBzbG93IHNwZWVkLCBzdWNoIGFzIC0yWC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTI1OAoKMjAxNS0wNS0xMSAxNzoxNDo1MCArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBkb2NzOiBmaXggYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgkgIFVwZGF0ZSBleGFtcGxlIHRvIHVzZSBnc3QtbGF1bmNoLTEuMCBhbmQgZml4IGEgcGFyYWdyYXBoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjMzCgoyMDE1LTA1LTA5IDExOjUzOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIEFkZCByZW1vdmVkIGV4YW1wbGUgZGlyZWN0b3JpZXMgdG8gQ1JVRlRfRElSUwoKMjAxNS0wNS0wOCAxNDowODo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZG9jczogZ3N0LWxhdW5jaCAtPiBnc3QtbGF1bmNoLTEuMCBpbiBleGFtcGxlIHBpcGVsaW5lcwoJICBBbmQgc29tZSBzbWFsbCBleGFtcGxlIHBpcGVsaW5lIGZpeC11cHMuCgoyMDE1LTA1LTA5IDIyOjEwOjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTA5IDIyOjA0OjUyIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wOSAyMjowMTowNCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTAyIDE3OjE2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGVzIHRvIG1lbnRpb24gbmV3IGRldmljZSBwcm9iaW5nIEFQSQoKMjAxNS0wNS0wMSAyMDozNzoxOCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTAxIDE4OjMyOjI2ICswOTAwICBKaW1teSBPaG4gPHlvbmdqaW4ub2huQGxnZS5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHJlbW92ZSBkdXBsaWNhdGVkIGluY2x1ZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODczOQoKMjAxNS0wNC0yOCAxOTo1OTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIHRlc3RzOiByZW1vdmUgc29tZSBwb2ludGxlc3MgYW5jaWVudCBjb2RlIGV4YW1wbGVzCgoyMDE1LTA0LTI4IDE3OjU0OjUxICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggR1NUX0JBU0VfUEFSU0VfRkxBR19MT1NUX1NZTkMKCSAgU2luY2UgZnJhbWUtPnByaXYtPmRpc2NvbnQgd2FzIGNsZWFyZWQgZWFybGllciwKCSAgR1NUX0JBU0VfUEFSU0VfRkxBR19MT1NUX1NZTkMgd2FzIG5ldmVyIGJlaW5nIHNldC4KCSAgVGFrZSB0aGUgY2hhbmNlIHRvIHJlZmFjdG9yIHRoZSBmcmFtZSBjcmVhdGlvbiBhIGJpdCB0bwoJICBvcmdhbml6ZSB0aGUgZmxhZ3Mgc2V0dGluZyBhbmQgcmVzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMzcKCjIwMTUtMDMtMDkgMTk6MzE6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzcGVjdCBESVNDT05UIGZsYWcgb24gYnVmZmVycwoJICBEcmFpbiB0aGUgcGFyc2VyIHdoZW4gYSBESVNDT05UIGJ1ZmZlciBpcyByZWNlaXZlZCBhbmQgdGhlbiBtYXJrCgkgIHRoZSBuZXh0IGJ1ZmZlciB0byBiZSBwdXNoZWQgYXMgYSBESVNDT05UIG9uZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTI3CgoyMDE1LTA0LTI4IDE1OjUwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQ29weSB0aGUgdGFnIHNjb3BlIHRvbyB3aGVuIGNvcHlpbmcgdGFnIGxpc3RzCgoyMDE1LTA0LTIwIDIwOjAyOjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogQWxzbyBzeW5jaHJvbml6ZSBHQVAgZXZlbnRzIGluIHN5bmM9MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjMxOjM3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBXaXRoIHN5bmM9dHJ1ZSwgZG9uJ3QgcHJlLXJvbGwKCSAgVG8gYWN0IGxpa2UgYSByZWFsIGxpdmUgZWxlbWVudCwgYmxvY2sgdGhlIHN0cmVhbWluZyB3aGVuIHBhdXNlZCwgYW5kCgkgIHJldHVybiBOT19QUkVST0xMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjI0OjQ1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBUYWtlIHVwc3RyZWFtIGxhdGVuY3kgaW50byBhY2NvdW50IGZvciBzeW5jPTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOTowNzoyNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEhhbmRsZSBQVFMgYW5kIERUUyBzZXBhcmF0ZWx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjYgMTc6MDU6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBBbmRyb2lkLm1rOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBvYnNvbGV0ZSBBbmRyb2lkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxNS0wNC0yNCAxNjo1MToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHRyeSB0byBwdXNoIHRoZSBmaXJzdCBFT1MgcmVjZWl2ZWQKCSAgU3Vic2VxdWVudCBFT1Mgd2lsbCBwdXNoIG9uIHRoZSBzb3VyY2UgcGFkIHRoYXQgYWxyZWFkeSByZWNlaXZlZAoJICBFT1MgYW5kIHRoYXQgd2lsbCBtYWtlIHRoZSBldmVudCBmdW5jdGlvbiByZXR1cm4gRkFMU0UuIEl0IG5lZWRzCgkgIG9ubHkgdG8gcHVzaCB0aGUgZmlyc3Qgb25lIGFuZCBvbmx5IHJldHVybiBUUlVFIGZvciB0aGUgc3Vic2VxdWVudAoJICBvbmVzLgoKMjAxNS0wNC0yNCAxNToxOToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmludGYuYzoKCSAgdGVzdHM6IHByaW50ZjogYWRkIHVuaXQgdGVzdCBmb3IgJSUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQxNAoKMjAxNS0wNC0yNCAxNToxNjoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gY2FzZSBvZiAlJQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NDE0CgoyMDE1LTA0LTIzIDE1OjU1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkZWZpbmUgR1NUX0NIRUNLX1RFU1RfRU5WSVJPTk1FTlRfQkVBQ09OCgoyMDE1LTA0LTIzIDE1OjU0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IG9wdGlvbmFsbHkgY2hlY2sgZW52IHZhciBmb3IgdXMgdG8gbWFrZSBzdXJlIHRlc3QgZW52IGlzIHNldCB1cAoJICBJZiBHU1RfQ0hFQ0tfVEVTVF9FTlZJUk9OTUVOVF9CRUFDT04gaXMgZGVmaW5lZCwgY2hlY2sgaWYgdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlIGl0IGlzIGRlZmluZWQgdG8gaXMgc2V0IHVwIGF0IHRoZSBzdGFydAoJICBvZiBlYWNoIHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIzIDA5OjA2OjQyICswOTAwICBDaGFuZ2JvayBDaGVhIDxjaGFuZ2Jvay5jaGVhQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZW1vdmUgdW51c2VkIGFzc2lnbm1lbnQgaW4gcGVyZm9ybV9zZWVrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODM0NQoKMjAxNS0wNC0yMiAxMTo0NDowMCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdDogbWVtb3J5OiBBZGRlZCB0ZXN0IHRvIHZlcmlmeSB0aGUgYWxsb2NhdGlvbiBwYXJhbXMKCSAgTmV3IHRlc3QgYWRkZWQgdG8gdmVyaWZ5IHRoZSBhbGxvY2F0aW9uIHBhcmFtcyBmb3IgdGhlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4Mjc3CgoyMDE1LTA0LTIyIDExOjA0OjA2IC0wNjAwICBKYXNvbiBMaXR6aW5nZXIgPGpsaXR6aW5nZXJAY29udHJvbDQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGFkZCB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGluZmluaXRlIGxvb3AKCSAgZ3N0X2RlYnVnX3Vuc2V0X3RocmVzaG9sZF9mb3JfbmFtZSgpIHVzZWQgdG8gZ28gaW50byBhbgoJICBpbmZpbml0ZSBsb29wIHdoZW4gdGhlcmUgd2FzIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnkgaW4KCSAgdGhlIGxpc3QuICBUaGlzIHRlc3QgY2FwdHVyZXMgdGhlIHByb2JsZW0gYnkgZmFpbGluZwoJICB2aWEgdGltZW91dC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMyMQoKMjAxNS0wNC0yMiAxMjowMzozMyAtMDYwMCAgSmFzb24gTGl0emluZ2VyIDxqbGl0emluZ2VyQGNvbnRyb2w0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBpbmZpbml0ZSBsb29wIGluIGdzdF9kZWJ1Z191bnNldF90aHJlc2hvbGRfZm9yX25hbWUoKQoJICBFbnN1cmUgaXRlcmF0b3IgaXMgYWR2YW5jZWQuIFRoZSBjdXJyZW50IGxpc3QgaXRlcmF0aW9uIGNvZGUgb25seQoJICBhZHZhbmNlcyB0aGUgaXRlcmF0b3IgKHdhbGspIGlmIGEgbWF0Y2ggaXMgZm91bmQsIHdoaWNoIHJlc3VsdHMKCSAgaW4gYW4gaW5maW5pdGUgbG9vcCB3aGVuIG1vcmUgdGhhbiBvbmUgZW50cnkgZXhpc3RzIGluIHRoZSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzIxCgoyMDE1LTA0LTIyIDEwOjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogbWlzY2VsbGFuZW91cyBmaXhlcwoJICBFcnJvciBvdXQgaWYgcmVxdWlyZWQgYnVpbGQgdG9vbHMgKGZsZXgsIGJpc29uLCBwa2ctY29uZmlnKQoJICBhcmUgbm90IHByZXNlbnQsIGluc3RlYWQgb2YgcHJpbnRpbmcgYSBtZXNzYWdlIGFuZCB0aGVuCgkgIGNvbnRpbnVpbmcuCgkgIENoZWNrIG91dCBzdWJtb2R1bGVzIHdoZW4gZmV0Y2hpbmcgdGhlIHJlcG9zaXRvcmllcywgc28KCSAgdGhleSdyZSBhbHJlYWR5IHRoZXJlIGFuZCByZWFkeSBsYXRlci4KCSAgUmVtb3ZlIHNvbWUgMC4xMCBjcnVmdC4KCjIwMTUtMDQtMjIgMDk6NTk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICBBZGQgSU5TVEFMTCB0byAuZ2l0aWdub3JlCgoyMDE1LTA0LTIyIDA5OjU2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgdGVzdHM6IGVycm9yIG91dCBpZiB0ZXN0IGVudmlyb25tZW50IGlzIG5vdCBhY3R1YWxseSBzZXQgdXAgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjIgMDk6NTI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogY2FuIHVzZSBBTV9TSUxFTlRfUlVMRVMgdW5jb25kaXRpb25hbGx5IG5vdwoJICBodHRwczovL2F1dG90b29scy5pby9hdXRvbWFrZS9zaWxlbnQuaHRtbAoKMjAxNS0wNC0yMiAwOTo0NzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIGF1dG9tYWtlIHJlcXVpcmVtZW50IHRvIDEuMTQgYW5kIGF1dG9jb25mIHRvIDIuNjkKCSAgVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGZvciBidWlsZHMgZnJvbSBnaXQsIHBlb3BsZSBjYW4gc3RpbGwKCSAgYnVpbGQgdGFyYmFsbHMgaWYgdGhleSBvbmx5IGhhdmUgb2xkZXIgYXV0b3Rvb2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMiAxMDozMjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIElOU1RBTEw6CgkgIFJlbW92ZSBJTlNUQUxMIGZpbGUKCSAgYXV0b3Rvb2xzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgdGhpcywgYW5kIHdoZW4gdXNpbmcgZGlmZmVyZW50IHZlcnNpb25zCgkgIGZvciBhdXRvZ2VuLnNoIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGNoYW5nZXMgdG8gYSBmaWxlIHRyYWNrZWQgYnkgZ2l0LgoKMjAxNS0wNC0yMCAyMjowNzozNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdHJlYW1lci11bmluc3RhbGxlZDogVXBkYXRlIHBhdGggdG8gdGhlIEdzdFZhbGlkYXRlIHNjZW5hcmlvcwoKMjAxNS0wNC0yMCAwOToyMzo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgbWV0YSB0cmFuc2Zvcm0gZnVuY3Rpb24gaW4gZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKQoJICAuLi4gYnkgcHJpbnRpbmcgc29tZSBkZWJ1ZyBvdXRwdXQgd2hlbmV2ZXIgY29weWluZyBhIEdzdE1ldGEgZmFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgxMTkKCjIwMTUtMDQtMTggMTI6MzE6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGZpeCBoZWFkZXIgZm9ybWF0dGluZwoKMjAxNS0wNC0xOCAxMjoyODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIHRlc3RzOiBwcm90ZWN0aW9uOiBmaXggbGVhayBpbiB1bml0IHRlc3QKCjIwMTUtMDQtMTggMTI6Mjc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdC5oOiBpbmNsdWRlIHRoZSBuZXcgZ3N0cHJvdGVjdGlvbi5oIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTE1IDE1OjMzOjMxICswMTAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwcm90ZWN0aW9uOiBhZGQgR3N0UHJvdGVjdGlvbk1ldGEgdG8gc3VwcG9ydCBwcm90ZWN0ZWQgY29udGVudAoJICBJbiBvcmRlciB0byBzdXBwb3J0IHNvbWUgdHlwZXMgb2YgcHJvdGVjdGVkIHN0cmVhbXMgKHN1Y2ggYXMgdGhvc2UKCSAgcHJvdGVjdGVkIHVzaW5nIERBU0ggQ29tbW9uIEVuY3J5cHRpb24pIHNvbWUgcGVyLWJ1ZmZlciBpbmZvcm1hdGlvbgoJICBuZWVkcyB0byBiZSBwYXNzZWQgYmV0d2VlbiBlbGVtZW50cy4KCSAgVGhpcyBjb21taXQgYWRkcyBhIEdzdE1ldGEgdHlwZSBjYWxsZWQgR3N0UHJvdGVjdGlvbk1ldGEgdGhhdCBhbGxvd3MKCSAgcHJvdGVjdGlvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0byBiZSBhZGRlZCB0byBhIEdzdEJ1ZmZlci4gQW4gZXhhbXBsZQoJICBvZiBpdHMgdXNhZ2UgaXMgcXRkZW11eCBwcm92aWRpbmcgaW5mb3JtYXRpb24gdG8gZWFjaCBvdXRwdXQgc2FtcGxlCgkgIHRoYXQgZW5hYmxlcyBhIGRvd25zdHJlYW0gZWxlbWVudCB0byBkZWNyeXB0IGl0LgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBzZWxlY3QgYSBzdXBwb3J0ZWQgcHJvdGVjdGlvbgoJICBzeXN0ZW0gZnJvbSB0aGUgaW5zdGFsbGVkIERlY3J5cHRpb24gZWxlbWVudHMgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LgoJICBUaGUgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGFycmF5IG9mCgkgIGlkZW50aWZpZXJzIGFuZCBzZWFyY2hlcyB0aGUgcmVnaXN0cnkgZm9yIGEgZWxlbWVudCBvZiBrbGFzcyBEZWNyeXB0b3IgdGhhdAoJICBzdXBwb3J0cyBvbmUgb3IgbW9yZSBvZiB0aGUgc3VwcGxpZWQgaWRlbnRpZmllcnMuIElmIG11bHRpcGxlIGVsZW1lbnRzCgkgIGFyZSBmb3VuZCwgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgaXMgc2VsZWN0ZWQuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1bml0IHRlc3QgZm9yIHRoZSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtCgkgIGZ1bmN0aW9uIHRoYXQgYWRkcyBhIGZha2UgRGVjcnlwdG9yIGVsZW1lbnQgdG8gdGhlIHJlZ2lzdHJ5IGFuZCB0aGVuCgkgIGNoZWNrcyB0aGF0IGl0IGNhbiBjb3JyZWN0bHkgYmUgc2VsZWN0ZWQgYnkgdGhlIHV0aWxpdHkgZnVuY3Rpb24uCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1bml0IHRlc3QgZm9yIEdzdFByb3RlY3Rpb25NZXRhIHRoYXQgY3JlYXRlcwoJICBHc3RQcm90ZWN0aW9uTWV0YSBhbmQgYWRkcyAmIHJlbW92ZXMgaXQgZnJvbSBhIGJ1ZmZlciBhbmQgcGVyZm9ybXMgc29tZQoJICBzaW1wbGUgcmVmZXJlbmNlIGNvdW50IGNoZWNrcy4KCSAgQVBJOiBnc3RfYnVmZmVyX2FkZF9wcm90ZWN0aW9uX21ldGEoKQoJICBBUEk6IGdzdF9idWZmZXJfZ2V0X3Byb3RlY3Rpb25fbWV0YSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fbWV0YV9hcGlfZ2V0X3R5cGUoKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX21ldGFfZ2V0X2luZm8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTAzLTE2IDEyOjM1OjI3ICswMDAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBuZXcgR1NUX0VWRU5UX1BST1RFQ1RJT04KCSAgSW4gb3JkZXIgZm9yIGEgZGVjcnlwdGVyIGVsZW1lbnQgdG8gZGVjcnlwdCBtZWRpYSBwcm90ZWN0ZWQgdXNpbmcgYQoJICBzcGVjaWZpYyBwcm90ZWN0aW9uIHN5c3RlbSwgaXQgZmlyc3QgbmVlZHMgYWxsIHRoZSBwcm90ZWN0aW9uIHN5c3RlbQoJICBzcGVjaWZpYyAgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IChFLmcuIGluZm9ybWF0aW9uIG9uIGhvdyB0byBhY3F1aXJlCgkgIHRoZSBkZWNyeXB0aW9uIGtleXMpIGZvciB0aGF0IHN0cmVhbS4KCSAgVGhlIEdTVF9FVkVOVF9QUk9URUNUSU9OIGRlZmluZWQgaW4gdGhpcyBjb21taXQgZW5hYmxlcyB0aGlzIGluZm9ybWF0aW9uCgkgIHRvIGJlIHBhc3NlZCBmcm9tIGVsZW1lbnRzIHRoYXQgZXh0cmFjdCBpdCAoZS5nLiBxdGRlbXV4LCBkYXNoZGVtdXgpIHRvCgkgIGVsZW1lbnRzIHRoYXQgdXNlIGl0IChFLmcuIGEgZGVjcnlwdGVyIGVsZW1lbnQpLgoJICBBUEk6IEdTVF9FVkVOVF9QUk9URUNUSU9OCgkgIEFQSTogZ3N0X2V2ZW50X25ld19wcm90ZWN0aW9uKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTggMTE6NDI6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCB1c2Ugb2YgcG9zc2libHktZnJlZWQgcGFkIGluIGRlYnVnIHN0YXRlbWVudAoJICBUaGUgZ3N0X29iamVjdF91bnJlZigpIGluIHRoZSBibG9jayBhYm92ZSBtYXkgYmUgZHJvcHBpbmcKCSAgdGhlIGxhc3QgcmVmIHRvIHRoZSBwYWQgYW5kIGZyZWUgdGhlIHBhZC4gU2V0IHBhZCBwb2ludGVyCgkgIHRvIE5VTEwgaGVyZSwgc28gdGhhdCB3ZSBkb24ndCBhY2NpZGVudGFsbHkgdXNlIGEKCSAgcG9zc2libHktZnJlZWQgcGFkIHBvaW50ZXIgaW4gdGhlIGRlYnVnIGxvZyBzdGF0ZW1lbnRzCgkgIGZ1cnRoZXIgYmVsb3csIGFuZCBhbHNvIHVzZSB0aGUgdGVlIGVsZW1lbnQgYXMgbG9nIG9iamVjdAoJICBzaW5jZSB0aGF0J3MgbW9yZSBhcHByb3ByaWF0ZSBhbnl3YXkuCgkgIEZpeGVzIHZhbGdyaW5kIHdhcm5pbmdzIGFuZCBjcmFzaGVzIGluIHRlZSB0ZXN0X3N0cmVzcwoJICB1bml0IHRlc3Qgd2hlbiBkZWJ1ZyBsb2dnaW5nIGlzIGVuYWJsZWQuCgoyMDE1LTA0LTE4IDEyOjAwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IGZpeCB1bml0IHRlc3Qgd2hlbiBydW4gd2l0aCBHU1RfREVCVUc9Kjo5CgkgIE9ubHkgc2F2ZSB0aGUgbWVzc2FnZXMgd2UncmUgaW50ZXJlc3RlZCBpbiBhbmQgZXhwZWN0aW5nLgoJICBXaGVuIHJ1biB3aXRoICo6OSB3ZSBtaWdodCBnZXQgYWRkaXRpb25hbCBUUkFDRSBsZXZlbAoJICBtZXNzYWdlcyBmcm9tIG90aGVyIGNhdGVnb3JpZXMgYW5kIHRoZW4gd2UgZG9uJ3QgZW5kIHVwCgkgIHdpdGggdGhlIG51bWJlciBvZiBtZXNzYWdlcyB3ZSBleHBlY3QuCgoyMDE1LTA0LTE4IDExOjI1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBmaXggYnVmZmVyIGxlYWsgaW4gbmV3IGJsb2NraW5nX3dpdGhfcHJvYmVfdHlwZV9pZGxlIHRlc3QKCjIwMTUtMDQtMTggMTE6MTE6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gZGVidWcgbG9nIG1lc3NhZ2UKCSAgVGhlIHN0cmluZyB3ZSBwdXQgaW4gdGhlIGJ1ZmZlciBpcyBub3QgTlVMLXRlcm1pbmF0ZWQsIHNvCgkgIGRvbid0IHRyeSB0byBwcmludCB0aGF0IHZpYSAlcyBpbiBhIGRlYnVnIGxvZyBtZXNzYWdlLgoKMjAxNS0wNC0xNyAxNToxOTowNyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogb24gT1NYLCBNS0RJUl9QIGlzIGluc3RhbGwtc2ggLWMgLWQKCSAgU28gd2UgbmVlZCB0byBjYWxsIGl0IGJlZm9yZSBjZGluZyB0byB0aGUgYmluIGRpcmVjdG9yeS4KCjIwMTUtMDQtMTcgMTM6MDI6MTIgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IGluc3RhbGwgLUQgaXNuJ3QgcG9ydGFibGUsIHVzZSAkKE1LRElSX1ApIGluc3RlYWQuCgoyMDE1LTA0LTE0IDEwOjQ3OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IHRlc3QgdGhhdCBpZGxlIHByb2JlIHdpbGwgYmxvY2sKCSAgVGhpcyB0ZXN0cyBhZGQgYW4gaWRsZSBwcm9iZSBvbiBhbiBpZGxlIHBhZCBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkCgkgIHNvIHRoYXQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCBpbW1lZGlhdGVsbHkuIFRoaXMgY2FsbGJhY2sgd2lsbCBzaXQKCSAgc3RpbGwgYW5kIHRoZW4gd2UgdHJ5IHRvIHB1c2ggYSBidWZmZXIgb24gdGhpcyBzYW1lIHBhZC4gSXQgdmVyaWZpZXMKCSAgdGhhdCB0aGUgaWRsZSBwcm9iZSBibG9ja3MgZGF0YSBwYXNzaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc4NTIKCjIwMTUtMDQtMTQgMTc6MDY6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBibG9jayBkYXRhIGZsb3cgd2hlbiBpZGxlIHByb2JlIGlzIHJ1bm5pbmcKCSAgV2hlbiBpZGxlIHByb2JlIHJ1bnMgZGlyZWN0bHkgZnJvbSB0aGUgZ3N0X3BhZF9hZGRfcHJvYmUoKSBmdW5jdGlvbgoJICB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IG5vIGRhdGEgZmxvdyBoYXBwZW5zIGFzIGlkbGUgcHJvYmUKCSAgaXMgYSBibG9ja2luZyBwcm9iZS4gVGhlIGlkbGUgcHJvYmUgd2lsbCBwcmV2ZW50IHRoYXQgYW55CgkgIGJ1ZmZlciwgYnVmZmVybGlzdCBvciBzZXJpYWxpemVkIGV2ZW50cyBhbmQgcXVlcmllcyBhcmUgbm90CgkgIGZsb3dpbmcgd2hpbGUgaXQgaXMgcnVubmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzg1MgoKMjAxNS0wNC0xNiAxMzo0MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jczogY2xhcmlmeSB0aGF0IHJldHVybiB2YWx1ZSBvZiBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgbXVzdCBiZSBmcmVlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTA0CgoyMDE1LTA0LTE1IDExOjAyOjU0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgYmluOiB1bmRvIHVwd2FyZCBzdGF0ZSBjaGFuZ2VzIG9uIGNoaWxkcmVuIHdoZW4gYSBjaGlsZCBmYWlscwoJICBXaGVuIGEgYmluIGNoYW5nZXMgc3RhdGVzIHVwd2FyZHMsIGFuZCBhIGNoaWxkIGZhaWxzIHRvIGNoYW5nZSwKCSAgYW55IGNoaWxkIHRoYXQgd2FzIGFscmVhZHkgc3dpdGNoZWQgd2lsbCBub3QgYmUgcmVzZXQgdG8gaXRzCgkgIG9yaWdpbmFsIHN0YXRlLCBsZWF2aW5nIGl0cyBzdGF0ZSBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgYmluLAoJICB3aGljaCBkb2VzIG5vdCBjaGFuZ2Ugc3RhdGUgZHVlIHRvIHRoZSBmYWlsdXJlLgoJICBJZiB0aGUgc3RhdGUgY2hhbmdlIHdhcyBmcm9tIE5VTEwgdG8gUkVBRFksIGl0IG1lYW5zIHRoYXQgZGVsZXRpbmcKCSAgdGhpcyBiaW4gd2lsbCBjYXVzZSB0aG9zZSBjaGlsZHJlbiB0byBiZSBkZWxldGVkIHdoaWxlIG5vdCBpbgoJICBOVUxMIHN0YXRlLCB3aGljaCBpcyBhIEJhZCBUaGluZy4gRm9yIG90aGVyIHVwd2FyZCBjaGFuZ2VzLCBpdAoJICBpcyBsZXNzIG9mIGEgcHJvYmxlbSwgYXMgYSBzdWJzZXF1ZW50IHN3aXRjaCBiYWNrIHRvIE5VTEwgd2lsbAoJICBjYXVzZSBhbiBhY3R1YWwgZG93bndhcmRzIGNoYW5nZSBvbiB0aG9zZSBpbmNvbnNpc3RlbnQgZWxlbWVudHMsCgkgIGFsYmVpdCBmcm9tIHRoZSAid3JvbmciIHN0YXRlLgoJICBXZSBub3cgcmVzZXQgc3RhdGUgdG8gdGhlIG9yaWdpbmFsIG9uZSB3aGVuIGEgY2hpbGQgZmFpbHMuCgkgIEluY2x1ZGVzIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzYxMAoKMjAxNS0wNC0xNSAxNDo0NToyMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogdXNlICQoSU5TVEFMTCkgdG8gLi4uIGluc3RhbGwgdGhlIGhlbHBlci4KCSAgQXMgaXQgd2lsbCBjcmVhdGUgdGhlIGZvbGRlcnMgYW5kIHNldCBwZXJtaXNzaW9ucyBhcHByb3ByaWF0ZWx5LAoJICBiZXR0ZXIgdGhhbiBkb2luZyBpdCBtYW51YWxseS4KCjIwMTUtMDQtMTUgMTM6MDI6MzYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IEZpeCBNYWtlZmlsZS5hbSB0byBpbnN0YWxsIHRoZSBjb21wbGV0aW9uLWhlbHBlciBjb3JyZWN0bHkuCgkgICsgVGhlIHByb2dyYW0gaXMgaW5zdGFsbGVkIGF0IGluc3RhbGwtZXhlYyB0aW1lLCB3ZSB0aHVzIG5lZWQKCSAgdG8gbW92ZSBpdCBpbiBpbnN0YWxsLWV4ZWMtaG9vaywgbm90IGluc3RhbGwtZGF0YS1ob29rLgoKMjAxNS0wNC0xNSAxMTozODozNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmV2ZXJ0ICJiYXNlc3JjOiBmaXggcG9vbCBsZWFrIG9uIGFsbG9jYXRpb24gcXVlcnkgZXJyb3IgcGF0aCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NGZkZjUwYjJmOTg5NTFhMzJmYTE0ODAyYjYyNjIxZjExMDVjZDM1LgoJICBJdCBzZWVtcyB0aGUgYnVnIHdhcyBmaXhlZCBpbmRlcGVuZGVudGx5LCBhbmQgdGhlIG1lcmdlIHdhcwoJICBhdXRvbWFnaWMsIHlpZWxkaW5nIHR3byBleHRyYSBmcmVlIGNhbGxzLgoKMjAxNS0wNC0xNCAxMzo0Mjo1NSArMDkwMCAgU3Vod2FuZyBLaW0gPHN1aHdhbmcua2ltQGxnZS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IGNsb2NrOiBmaXggdGVzdCBjbG9jayBuYW1lCgkgIERvbid0IGNhbGwgdGhlIHNsYXZlIHRlc3QgY2xvY2sgIk1hc3RlciIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzAKCjIwMTUtMDQtMTQgMTc6NDc6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgRU5DUllQVE9SIGNsYXNzIGRlZmluZXMKCSAgdG8gZ28gd2l0aCBERUNSWVBUT1IuCgoyMDE1LTAzLTE2IDEzOjExOjU5ICswMDAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgREVDUllQVE9SIGNsYXNzIGRlZmluZXMKCSAgQW4gZWxlbWVudCB0aGF0IHBlcmZvcm1zIGRlY3J5cHRpb24gZG9lcyBub3QgbmF0dXJhbGx5IGZpdCB3aXRoaW4gYW55CgkgIG9mIHRoZSBleGlzdGluZyBlbGVtZW50IGZhY3RvcnkgY2xhc3MgdHlwZXMuIEl0IGlzIHVzZWZ1bCB0byBiZSBhYmxlCgkgIHRvIGVhc2lseSBnZXQgYSBsaXN0IG9mIGFsbCBlbGVtZW50cyB0aGF0IHN1cHBvcnQgZGVjcnlwdGlvbiBzbyB0aGF0CgkgIGEgdW5pb24gY2FuIGJlIGNvbXB1dGVkIGJldHdlZW4gdGhlIHByb3RlY3Rpb24gc3lzdGVtcyB0aGF0IGhhdmUgYQoJICBzdXBwb3J0ZWQgZGVjcnlwdG9yIGFuZCB0aGUgYWxsb3dlZCBwcm90ZWN0aW9uIHN5c3RlbXMgZm9yIGEgcGFydGljdWxhcgoJICBzdHJlYW0uCgkgIFRoaXMgY29tbWl0IGFkZHMgYSBuZXcgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ1JZUFRPUiBhbmQgaXRzCgkgIGFzc29jaWF0ZWQgc3RyaW5nIGlkZW50aWZpZXIgIkRlY3J5cHRvciIuIEl0IGFsc28gYWRkcwoJICBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9SIHRvIEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUKCSAgc28gdGhhdCB1cmlkZWNvZGViaW4gY2FuIGF1dG8tcGx1ZyBhIGRlY3J5cHRpb24gZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xMyAxNzowMTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogVXNlIGdzdF9ldmVudF91bnJlZigpIGluc3RlYWQgb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmKCkgKyBjYXN0aW5nCgoyMDE1LTA0LTEzIDE0OjQwOjIyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggbGVhayBpbiBnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KCkKCSAgZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCgpIGlzIHN1cHBvc2VkIHRvIGNvbnN1bWUgQGV2ZW50IGJ1dCB3YXNuJ3QKCSAgZG9pbmcgc28gd2hlbiBpdCB3YXMgaGFuZGxpbmcgdGhlIGV2ZW50IGl0c2VsZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzc3NQoJICBTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCjIwMTUtMDQtMTEgMjA6NDQ6MDIgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZXNldCBlcnJubyBiZWZvcmUgZ19hc2NpaV9zdHJ0b3VsbCBjYWxsCgkgICJlcnJubyIgYWxyZWFkeSBoYXMgbWVhbmluZ2xlc3MgdmFsdWUgYmVmb3JlIGdfYXNjaWlfc3RydG91bGwgY2FsbC4KCSAgVGhpcyBjYXVzZXMgaW52YWxpZCBlcnJvciBjaGVjayB3aXRob3V0IHJlc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjkwCgoyMDE1LTA0LTEyIDEzOjEzOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgc2V0IERUUyB0byBzZWdtZW50LnN0YXJ0IG9uIHRoZSBmaXJzdCBidWZmZXIgaWYgc3ViY2xhc3MgZGlkIG5vdCBwcm92aWRlIFBUUwoJICBPdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gc2V0IGEgcmF0aGVyIGFyYml0cmFyeSBEVFMgb2Ygc2VnbWVudC5zdGFydCAodXN1YWxseQoJICAwKSBmb3IgbGl2ZSBzb3VyY2VzLCB3aGljaCBjb25mdXNlcyBzeW5jaHJvbml6YXRpb24gaWYgdGhlIHNvdXJjZSBzdGFydGVkCgkgIGNhcHR1cmluZyBhdCBhIGxhdGVyIHRpbWUuIEFuZCBpdCdzIGVzcGVjaWFsbHkgd3JvbmcgZm9yIHJhdyBtZWRpYSwgZm9yIHdoaWNoCgkgIHdlIHNob3VsZCBub3Qgc2V0IGFueSBEVFMgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NzMxCgoyMDE0LTA5LTAyIDE3OjQwOjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJ1biB0aGUgZGVmYXVsdCBoYXZlLXR5cGUgaGFuZGxlciBhZnRlciBhbGwgYXBwbGljYXRpb24gaGFuZGxlcnMKCSAgT3RoZXJ3aXNlIHRoZSBDQVBTIGV2ZW50IHdpbGwgYWxyZWFkeSBiZSBmb3J3YXJkZWQgZG93bnN0cmVhbSBhbmQKCSAgdGhlIGFwcGxpY2F0aW9uIGhhcyBubyB3YXkgdG8gaW50ZXJ2ZW5lIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4OTYKCjIwMTUtMDMtMTAgMTI6NTc6NDQgKzEwMDAgIER1bmNhbiBQYWxtZXIgPGRwYWxtZXJAZGlnaXNvZnQudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgYXV0b21hdGljYWxseSBlbnRlciB0aGUgYnVmZmVyaW5nIHN0YXRlIHdoZW4gdXNlLWJ1ZmZlcmluZyBpcyBzZXQuCgkgIFRoZXJlIGlzIG5vIHJlYXNvbiBJIGNhbiBzZWUgdG8gc2V0IG1xLT5idWZmZXJpbmcgPSBUUlVFIHdoZW4KCSAgdXNlX2J1ZmZlcmluZyBpcyBzZXQ7IHRoZSBjb2RlIGhlcmUgYWxzbyBjYWxscyB1cGRhdGVfYnVmZmVyaW5nKCksIHdoaWNoCgkgIHdpbGwgc2V0IG1xLT5idWZmZXJpbmcgPSBUUlVFIGlmIHRoaXMgaXMgd2FycmFudGVkIGJlY2F1c2Ugb2YgbG93IGJ1ZmZlcgoJICBsZXZlbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU5MzcKCjIwMTUtMDQtMTAgMTI6MzI6MjcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjYWNoZWQgYnVmZmVyIGxlYWsgaW4gY2hhaW4gZnVuY3Rpb24KCSAgZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbigpIHdhcyBwb3BwaW5nIGNhY2hlZCBidWZmZXJzIG91dCBvZiB0aGUgcXVldWUgd2l0aG91dAoJICBmcmVlaW5nIHRob3NlLiBNYWtlIHN1cmUgd2UgZG9uJ3Qgc3RlYWwgdGhlIEdzdEJ1ZmZlciBhcyB0aGUgY2FjaGVkIGJ1ZmZlciByZWYKCSAgaGFzIGJlZW4gcGFzc2VkIHRvIHRoZSBwYWQgY2hhaW4gZnVuY3Rpb24uCgkgIFRoaXMgY2FuIGJlIHJlcHJvZHVjZWQgYnkgcnVubmluZyB0aGUKCSAgdmFsaWRhdGUuZmlsZS5wbGF5YmFjay5zd2l0Y2hfc3VidGl0bGVfdHJhY2tfd2hpbGVfcGF1c2VkLnRlc3Q1X21rdiBzY2VuYXJpbwoJICB3aXRoIFZhbGdyaW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjExCgkgIFNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKMjAxNS0wNC0wOCAxNjowNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IFVzZSBBTV9URVNUU19FTlZJUk9OTUVOVAoJICBOZWVkZWQgYnkgdGhlIG5ldyBhdXRvbWFrZSB0ZXN0IHJ1bm5lcgoKMjAxNS0wNC0wNyAxNTowMDo0NiArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG1ha2Ugc3VyZSBsaXN0IGlzIHdyaXRhYmxlIGJlZm9yZSBhZGRpbmcgb3IgcmVtb3ZpbmcgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDM5CgoyMDE1LTA0LTA3IDE0OjM0OjU4ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbWlub3IgZG9jcyBhZGRpdGlvbiBmb3IgZ3N0X2J1ZmZlcl9saXN0X2dldCgpCgkgIFJldHVybiBidWZmZXIgcmVtYWlucyB2YWxpZCBhcyBsb25nIGFzIGxpc3QgaXMgdmFsaWQKCSAgYW5kIGJ1ZmZlciBpcyBub3QgcmVtb3ZlZCBmcm9tIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MzgKCjIwMTUtMDQtMDcgMTE6Mzg6MzEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBwb29sIGxlYWsgb24gYWxsb2NhdGlvbiBxdWVyeSBlcnJvciBwYXRoCgkgIEl0IGNvdWxkIGJlIHRyaWdnZXJlZCBieToKCSAgZ3N0LWxhdW5jaC0xLjAgdmlkZW90ZXN0c3JjIG51bS1idWZmZXJzPTIwICEgdmlkZWNyb3AgYm90dG9tPTIxNDc0ODM2NCAhIHZpZGVvY29udmVydCAhIGF1dG92aWRlb3NpbmsKCSAgU3BvdHRlZCB3aGlsZSB0ZXN0aW5nOgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzOTEwCgoyMDE1LTA0LTA2IDE4OjQ1OjM3IC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGb3J3YXJkIFNFR01FTlRfRE9ORSBldmVudHMgaW1tZWRpYXRlbHkKCSAgVGhlcmUgbWlnaHQgYmUgbm8gbW9yZSBkYXRhIGNvbWluZyBhZnRlcndhcmRzLCBhbmQgd2UganVzdCBkcmFpbmVkIGV2ZXJ5dGhpbmcKCSAgdGhhdCB3YXMgbGVmdCB0byBiZSBwdXNoZWQgYW55d2F5LgoKMjAxNS0wNC0wNiAxODo1NjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRvY3M6IGZpeCBjcm9zcy1yZWZlcmVuY2UgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIEdzdEluZm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQxNgoKMjAxNS0wNC0wNiAxMDoxODoxNSArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgY2hlY2sgZm9yIHdyaXRhYmxpdHkgaW4gcmVzaXplCgkgIEFkZCBndWFyZCB0byBnc3RfbWVtb3J5X3Jlc2l6ZSgpIHRvIG1ha2Ugc3VyZSB0aGUKCSAgbWVtb3J5IHRvIGJlIHJlc2l6ZWQgaXMgYWN0dWFsbHkgd3JpdGFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDczOTIKCjIwMTUtMDQtMDUgMTY6NDc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBhZGQgdGVzdCB0byBtYWtlIHN1cmUgaW5pdGlhbCBldmVudHMgZ28gdGhyb3VnaCB3aXRob3V0IGJ1ZmZlcnMKCjIwMTUtMDQtMDUgMTY6MDY6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogcXVldWU6IGNoZWNrIHRoYXQgdGhlIGluaXRpYWwgZXZlbnRzIGFyZSBzZW50IG9uIGltbWVkaWF0ZWx5CgkgIEFkZCBhIGNoZWNrIHRoYXQgbWFrZXMgc3VyZSBzdHJlYW0tc3RhcnQsIGNhcHMsIGFuZCBzZWdtZW50IGV2ZW50cwoJICBhcmUgcGFzc2VkIG9uIGJ5IHF1ZXVlIHdpdGhvdXQgZGVsYXksIGkuZS4gZXZlbiBpZiBubyBidWZmZXIgaXMKCSAgc2VudC4KCjIwMTUtMDQtMDQgMTg6MzM6MTggLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUHJpbnQgZGVidWcgb3V0cHV0IGZyb20gZ3N0X3BhZF9saW5rX2Z1bGwoKSBpZiBwcmVwYXJpbmcgbGlua2luZyBmYWlsZWQKCSAgTWFrZXMgaXQgZWFzaWVyIHRvIGZpbmQgbGlua2luZyBmYWlsdXJlcyBpbiBkZWJ1ZyBsb2dzLgoKMjAxNS0wNC0wNCAxOToyOTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHNtYWxsIGRvY3MgYWRkaXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU2NAoKMjAxNS0wNC0wNCAxODoxODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogZGVzaWduOiBmaXggc29tZSAwLjEwLWlzbXMgaW4gR3N0U2VnbWVudCBkb2NzCgkgIDEpIHNlZ21lbnQuYWNjdW0gLT4gc2VnbWVudC5iYXNlCgkgIDIpIFJlZmVyIHRvIEdzdFNlZ21lbnQgbWVtYmVycyBhcyBTLmZvbyBpbnN0ZWFkIG9mCgkgIE5TLmZvbywgdGhlIGV2ZW50IGlzIG5vdyBjYWxsZWQgYSBzZWdtZW50IGV2ZW50CgkgIHJhdGhlciB0aGFuIG5ld3NlZ21lbnQgZXZlbnQuCgkgIDMpIFRoZXJlJ3Mgbm8gbW9yZSBhYnNfcmF0ZSBmaWVsZCBpbiBHc3RTZWdtZW50LAoJICBhbmQgdGhlcmUgbmV2ZXIgd2FzIGFuIGFic19hcHBsaWVkX3JhdGUgZmllbGQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NjQKCjIwMTUtMDQtMDQgMDQ6MTQ6NTAgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IGxlYWsgYnVmZmVyIHBvb2wgaW4gZXJyb3IgY2FzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MzIxCgoyMDE1LTA0LTAzIDE5OjEyOjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogU2lsZW5jZSBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhpcyBpcyBhIGZhbHNlIHBvc2l0aXZlIGZvciB1c2UgaW5pdGlhbGl6ZWQuIFRoZSB2YXJpYWJsZSBpcyBzZXQgYW5kCgkgIHVzZWQgZW5jbG9zZWQgaW4gdGhlIHNhZmUgaWYgY29uZGl0aW9uLgoKMjAxNS0wNC0wMyAxNjozMjoxNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwKCjIwMTUtMDQtMDMgMTM6MTk6MTMgLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IGRvY3VtZW50YXRpb24sIGJ1ZmZlciBwb29scyBhcmUgdW5yZWZmZWQgYW5kIG5vdCBmcmVlZAoKMjAxNS0wNC0wMyAyMDo0MzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIElOU1RBTEw6CgkgIFVwZGF0ZSBJTlNUQUxMIHRvIHRoZSBhdXRvbWFrZSAxLjE0IHZlcnNpb24KCjIwMTUtMDQtMDMgMTg6NTc6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJjNzZhOGIgdG8gYzhmYjM3MgoKMjAxNS0wNC0wMyAxNjoyNzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IGV4cG9ydHMKCjIwMTUtMDMtMTkgMTA6NDU6NTYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBnc3Rfc2VnbWVudF9pc19lcXVhbAoJICBJdCBiZWF0cyBtZW1jbXAgZHVlIHRvIHRoZSAncmVzZXJ2ZWQnIGZpZWxkcy4KCSAgQVBJOiBnc3Rfc2VnbWVudF9pc19lcXVhbCgpCgkgIEZvdW5kIHZpYSwgYnV0IHByb2JhYmx5IG5vdCBkaXJlY3RseSBsaW5rZWQgdG8sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMTYKCjIwMTUtMDQtMDMgMDA6MzY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gZXhwb3J0cwoKMjAxNC0wOC0wNiAxMDozMjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFsbG93IHByb2JlcyB0byByZW1vdmUgdGhlIGRhdGEgaXRlbSB3aGlsc3QgcmV0dXJuaW5nIFBST0JFX09LCgkgIFVzZSBjYXNlOiB3ZSB3YW50IHRvIGJsb2NrIHRoZSBzb3VyY2UgcGFkIG9mIGEgbGVha3kgcXVldWUgYW5kCgkgIGRyb3AgdGhlIGJ1ZmZlciB0aGF0IGNhdXNlcyB0aGUgYmxvY2suIElmIHdlIHJldHVybiBQUk9CRV9EUk9QCgkgIHRoZW4gdGhlIGJ1ZmZlciBnZXRzIGRyb3BwZWQsIGJ1dCB3ZSBnZXQgY2FsbGVkIGFnYWluLiBJZiB3ZQoJICByZXR1cm4gUFJPQkVfT0sgd2UgY2FuJ3QgZWFzaWx5IGRyb3AgdGhlIGJ1ZmZlci4gSWYgd2UganVzdAoJICByZXBsYWNlIHRoZSBpdGVtIGludG8gdGhlIEdzdFBhZFByb2JlSW5mbyBzdHJ1Y3R1cmUgd2l0aCBOVUxMLAoJICBHU3RyZWFtZXIgd2lsbCBwdXNoIGEgTlVMTCBidWZmZXIgdG8gdGhlIG5leHQgZWxlbWVudCB3aGVuIHdlCgkgIHVuYmxvY2sgdGhlIHBhZCBwcm9iZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGl0IGRvZXNuJ3QgZG8gdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDM0MgoKMjAxNS0wMi0xMiAxOTozOTo0NCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IERvY3VtZW50IHdoZW4gYSBjbG9jayBpcyBhdmFpbGFibGUgZnJvbSBnc3RfZWxlbWVudF9nZXRfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NDQyCgoyMDE1LTAyLTEyIDE5OjQwOjA2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBwaXBlbGluZTogQWRkIGJpbmRpbmcgZnJpZW5kbHkgZ3N0X3BpcGVsaW5lX2dldF9waXBlbGluZV9jbG9jaygpCgkgIEFsc28gc2tpcCBnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrKCkgYW5kIGdzdF9waXBlbGluZV9zZXRfY2xvY2soKSBmcm9tIHRoZQoJICBiaW5kaW5ncyBhcyB0aGV5IGFyZSBjb25mdXNlZCB3aXRoIGdzdF9lbGVtZW50XypfY2xvY2soKS4KCSAgQVBJOiBnc3RfcGlwZWxpbmVfZ2V0X3BpcGVsaW5lX2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDQ0MgoKMjAxNS0wNC0wMiAxNzozMjo0MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBTaW5jZSBtYXJrIGZvciBuZXcgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MjQKCjIwMTUtMDItMjAgMTc6NTA6NDggKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIGEgbWV0aG9kIHRvIGxldCBzdWJjbGFzc2VzIGNsZWFubHkgdXBkYXRlIHNyY3BhZCBjYXBzCgkgIEFQSToKCSAgZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9zcmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyNAoKMjAxNS0wNC0wMiAyMToxODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IG1pc3NpbmcgY29tbWEgYW5kIDAuMTAtaXNtIGluIGNvZGUgc2FtcGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyNjcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzI2NgoKMjAxNS0wNC0wMiAxOToyOTo0NiArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBpbXByb3ZlIGRvY3MgZm9yIF9jb3B5KCkgYW5kIF9zaGFyZSgpCgoyMDE1LTA0LTAyIDExOjQyOjIwICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdDogZmlsZXNpbms6IGFkZCB0ZXN0cyBmb3IgYnVmZmVycyB3aXRoIG11bHRpcGxlIG1lbW9yeSBibG9ja3MKCSAgVXBkYXRlIHRlc3Rfc2Vla2luZyB0ZXN0Y2FzZSB0byB2ZXJpZnkgdGhlIHJlbmRlciBhbmQgcmVuZGVyX2xpc3QKCSAgdmlydHVhbCBtZXRob2QgaGFuZGxlIGJ1ZmZlcnMgYW5kIGJ1ZmZlciBsaXN0IGNvbnRhaW5pbmcgbXVsdGlwbGUKCSAgbWVtb3J5IGJsb2NrcyBjb3JyZWN0bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjMKCjIwMTUtMDQtMDIgMDk6NDQ6MzMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFkZCBhIEZJWE1FIGZvciAyLjAgYWJvdXQgcmVxdWVzdF9uZXdfcGFkIFZTIHJlcXVlc3RfcGFkIG5hbWluZwoKMjAxNS0wNC0wMiAwOTozNDowMCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IHJlcXVlc3RfbmV3X3BhZCBpbnRyb3NwZWN0aW9uCgkgIE1hcmtpbmcgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQgYXMgdGhlIGNhbGxlciBvZiB0aGUgLT5yZXF1ZXN0X25ld19wYWQKCSAgdmlydHVhbCBtZXRob2QuCgoyMDE1LTA0LTAxIDA5OjIwOjI0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGZpbGVzaW5rOiBhZGQgY2hlY2sgZm9yIHJlbmRlcl9saXN0IHZpcnR1YWwgbWV0aG9kCgkgIEdzdEZpbGVTaW5rIGltcGxlbWVudHMgdGhlIHJlbmRlcl9saXN0IHZpcnR1YWwgbWV0aG9kIHRvIHJlbmRlcgoJICBhIGxpc3Qgb2YgYnVmZmVycy4gVXBkYXRlIHRoZSB0ZXN0X3NlZWtpbmcgdGVzdCBjYXNlIHRvIGFsc28KCSAgY2hlY2sgdGhlIHJlbmRlcl9saXN0IG1ldGhvZCBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzEwMAoKMjAxNS0wNC0wMSAxMjoxMzoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBuaWNlciBwcmludGluZyBvZiBjYXBzIGZlYXR1cmVzCgkgIE9ubHkgcHJpbnQgaW50ZXJlc3RpbmcgY2FwcyBmZWF0dXJlcywgZG9uJ3QKCSAgYXBwZW5kIChtZW1vcnk6U3lzdGVtTWVtb3J5KSB0byBhbGwgY2FwcywKCSAgd2hpY2ggbWFrZXMgdGhlbSBtdWNoIG1vcmUgdW53aWVsZHkgYW5kCgkgIGhhcmRlciB0byByZWFkLiBBbHNvIHVzZSBpbnRlcm5hbCBmdW5jdGlvbgoJICB0byBnZXQgY2FwcyBmZWF0dXJlcyBzbyB0aGF0IG91ciBwcmludGluZwoJICBoYXMgbm8gc2lkZSBlZmZlY3RzIG9uIHRoZSBjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODA5CgoyMDE1LTAzLTI2IDEzOjA1OjU3ICswMTAwICBMdWJvc3ogU2FybmVja2kgPGx1Ym9zei5zYXJuZWNraUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBwbG90IGNhcHMgZmVhdHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjgwOQoKMjAxNS0wMy0zMSAyMzo0ODoyMiArMDkwMCAgV29uY2h1bCBMZWUgPGNodWwwODEyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggYSB0eXBvIGluIGEgZG9jc3RyaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMTkKCjIwMTUtMDMtMzEgMTE6MTU6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IERvbid0IHVzZSBnLWlyLXNjYW5uZXIgY2FjaGUgYXQgY29tcGlsZSB0aW1lCgkgIEl0IHBvbGx1dGVzIHVzZXIgZGlyZWN0b3JpZXMgYW5kIHdlIGRvbid0IG5lZWQgdG8gY2FjaGUgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzA5NQoKMjAxNS0wMy0yOCAxNDo0NTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggb3V0ZGF0ZWQgZGVidWcgbWVzc2FnZQoJICBCdWZmZXIgbGlzdHMgZG9uJ3QgaGF2ZSBncm91cHMgYW55IG1vcmUgaW4gMS4wCgoyMDE1LTAzLTI3IDE4OjIwOjM3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRmx1c2gtc3RvcCBzdGFydHMgbGl2ZSB0YXNrIGluIHBhdXNlZAoJICBUaGUgZmx1c2gtc3RvcCBldmVudCBzaG91bGQgbm90IHJlc3RhcnQgdGhlIHRhc2sgZm9yIGxpdmUgc291cmNlcyB1bmxlc3MKCSAgdGhlIGVsZW1lbnQgaXMgcGxheWluZy4gVGhpcyB3YXMgYnJlYWtpbmcgc2Vla3MgaW4gcGF1c2Ugd2l0aCB0aGUgcnRwc3JjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1NzAxCgoyMDE1LTAzLTI3IDE2OjIzOjQwICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGNoZWNrIGxvY2F0aW9uIGlzbid0IHRydW5jYXRlZAoJICBUZXN0IGNvdmVyaW5nIHRoZSByZWNlbnQgY29tbWl0IHdoZXJlIGxvY2F0aW9uPSciLmFiYycgd29uJ3QgZ2V0IHRydW5jYXRlZAoJICB0byAnLmFiJyBhbnltb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjYgMTc6MDE6MDYgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBvbmx5IHVud3JhcCBzdHJpbmcgZGVsaW1pdGVkIHdpdGggIgoJICBEb24ndCB1bndyYXAgc3RyaW5ncyB0aGF0IHN0YXJ0IGJ1dCBkb24ndCBmaW5pc2ggd2l0aCBhIGRvdWJsZSBxdW90ZS4gSWYgYQoJICBzdHJpbmcgaXMgZGVsaW1pdGVkIGJ5IHR3byBxdW90ZXMgd2UgdW5lc2NhcGUgdGhlbSBhbmQgYW55IHNwZWNpYWwgY2hhcmFjdGVycwoJICBpbiB0aGUgbWlkZGxlIChsaWtlIFwiIG9yIFxcKS4gSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvciB0aGUgbGFzdCBjaGFyYWN0ZXIKCSAgYXJlbid0IGEgcXVvdGUgd2UgYXNzdW1lIGl0J3MgcGFydCBvZiBhbiB1bmVzY2FwZWQgc3RyaW5nLgoJICBNb3ZlZCBzb21lIGRlc2VyaWFsaXplX3N0cmluZyB1bml0IHRlc3RzIGJlY2F1c2Ugd2UgZG9uJ3QgdHJ5IHRvIHVud3JhcCBzdHJpbmdzCgkgIG1pc3NpbmcgdGhhdCBzZWNvbmQgcXVvdGUgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNyAxNzoxNjowMyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBjaGVjayBiZWZvcmUgdHJ1bmNhdGluZyBzdHJpbmdzCgkgIERvbid0IHRydW5jYXRlIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIHN0cmluZyBpZiBpdCBpc24ndCBuZWNlc3NhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjcgMTA6MTU6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgYXJndW1lbnRzIHRvIHNldF9mbHVzaGluZygpIGFuZCBwb2xsKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Njg3MQoKMjAxNS0wMy0yNSAxMDo0OTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBvbmx5IHBvc3QgJ25vIHZhbGlkIGZyYW1lcycgZXJyb3IgaWYgYnVmZmVycyB3ZXJlIHJlY2VpdmVkCgkgIE90aGVyd2lzZSBiYXNlcGFyc2Ugd2lsbCBjb25zaWRlciBlbXB0eSBzdHJlYW1zIHRvIGJlIGFuIGVycm9yIHdoaWxlCgkgIGFuIGVtcHR5IHN0cmVhbSBpcyBhIHZhbGlkIHNjZW5hcmlvLiBXaXRoIHRoaXMgcGF0Y2gsIGVycm9ycyB3b3VsZAoJICBvbmx5IGJlIGVtaXR0ZWQgaWYgdGhlIHBhcnNlciByZWNlaXZlZCBkYXRhIGJ1dCB3YXNuJ3QgYWJsZSB0bwoJICBwcm9kdWNlIGFueSBvdXRwdXQgZnJvbSBpdC4KCSAgVGhpcyBjaGFuZ2UgaXMgb25seSBmb3IgcHVzaC1tb2RlIG9wZXJhdGlvbiBhcyBpbiBwdWxsIG1vZGUgYW4KCSAgZW1wdHkgZmlsZSBjYW4gYmUgY29uc2lkZXJlZCBhbiBlcnJvciBmb3IgdGhlIG9uZSBkcml2aW5nIHRoZQoJICBwaXBlbGluZQoJICBJbmNsdWRlcyBhIHVuaXQgdGVzdCBmb3IgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE3MQoKMjAxNS0wMy0xOSAxMDozNjoxMSArMDEwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFkZCBhbGxvdy1ub3QtbGlua2VkIHByb3BlcnR5CgkgIFRoaXMgcHJvcGVydHkgYXZvaWRzIG5vdCBsaW5rZWQgZXJyb3Igd2hlbiBhbGwgdGhlIHBhZHMgYXJlIHVubGlua2VkCgkgIG9yIHdoZW4gdGhlcmUgYXJlIG5vIHNvdXJjZSBwYWRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBkeW5hbWljIHBpcGVsaW5lcwoJICB3aGVyZSBpdCBjYW4gaGFwcGVuIHRoYXQgZm9yIGEgc2hvcnQgdGltZSB0aGVyZSBhcmUgbm8gcGFkcyBhdCBhbGwgb3IKCSAgYWxsIGRvd25zdHJlYW0gcGFkcyBhcmUgbm90IGxpbmtlZCB5ZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzYKCjIwMTUtMDMtMjEgMTc6MTM6MTggLTA1MDAgIE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBGaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjU4NQoKMjAxNS0wMy0yMSAxNTo0Njo1MCAtMDUwMCAgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTg1CgoyMDE1LTAzLTI0IDE2OjA0OjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogYWRkIGRyYWluIGhhbmRsaW5nCgkgIFJlbGVhc2UgdGhlIGxhdGVzdCBidWZmZXIsIGlmIGFueSwgYW5kIHRoZW4ganVzdCBsZXQKCSAgdGhlIGRyYWluIGJlIHB1c2hlZCBkb3duc3RyZWFtCgoyMDE1LTAzLTI0IDE5OjMyOjQ5ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgUmV2ZXJ0ICJGaXggZGlzdGNoZWNrIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU2ZGQyZDg5YzRlYWM0NjBjYmMzN2UyYTUxYzFkZDllNzkyOTk5ZTguCgkgIEluc3RhbGxpbmcgY29tcGxldGlvbnMgdG8gYSBjdXN0b20gcHJlZml4IGlzIG5vdyBmaXhlZC4KCjIwMTUtMDMtMjQgMTk6MzA6NTIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlbW92ZSBjb21wbGV0aW9uLWhlbHBlciBvbiB1bmluc3RhbGwKCSAgKyBBbmQgYWRkIGl0IHRvIENMRUFORklMRVMKCjIwMTUtMDMtMTggMTk6Mzg6MTUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdDoKCSAgY29tcGxldGlvbnM6IHJlbW92ZSBsYXN0IHVubmFtZXNwYWNlZCBzeW1ib2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE1LTAzLTE4IDE0OjQ0OjIxICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSAgY29tcGxldGlvbnM6IHJlbW92ZSBkZXByZWNhdGVkIHNoZWxsIHN5bnRheC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMTggMTQ6Mzc6MTEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJICBjb21wbGV0aW9uczogcHJlZml4IHNoZWxsIGZ1bmN0aW9ucyB3aXRoIF9nc3QKCSAgKyBUbyBtYWtlIGl0IG1vcmUgZGlmZmljdWx0IGZvciB0aGVtIHRvIGNvbmZsaWN0IGluIHRoZQoJICBnbG9iYWwgbmFtZXNwYWNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0yNCAxMzoxMzoyOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhc2gtY29tcGxldGlvbjogUmVzcGVjdCB0aGUgcHJlZml4CgkgIERvbid0IHRyeSBhbmQgaW5zdGFsbCB0aGUgYmFzaCBoZWxwZXJzIG91dHNpZGUgdGhlIGRlZmluZWQgcHJlZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE0LTExLTE5IDEzOjA4OjQ1ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVuYW1lIF9hY3RpdmF0ZV9zaW5rcGFkIHRvIF9nZXRfYWN0aXZlX3NpbmtwYWQKCSAgUmVtb3ZlcyB0aGUgbm93IHVudXNlZCAncGFkJyBwYXJhbWV0ZXIgYW5kIHJlbmFtZXMgdGhlIGZ1bmN0aW9uCgkgIHRvIHNvbWV0aGluZyBtb3JlIGFwcHJvcHJpYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE0LTExLTE5IDEzOjAzOjIxICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIHBhZCdzICdhY3RpdmUnIGZpZWxkCgkgIFRoaXMgaXMgbm93IG5ldmVyIHJlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTQtMTEtMTkgMTI6NTk6MTIgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBVc2Ugc2VnbWVudC1wcmVzZW5jZSBmb3IgcnVubmluZ190aW1lIGNoZWNrCgkgIFdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciB0aGUgcnVubmluZ190aW1lIG9mIGEgcGFkIGNhbiBiZQoJICBjYWxjdWxhdGVkLCBjaGVjayBpZiB0aGUgc2VnbWVudCBpcyBpbiBUSU1FIGZvcm1hdCBpbnN0ZWFkCgkgIG9mIHVzaW5nIHRoZSAnYWN0aXZlJyBmaWVsZC4KCSAgU2luY2UgdGhlIGxhdHRlciBpcyBzZXQgdGhyb3VnaCAqYW55KiBhY3Rpdml0eSwgaXQncyBub3QgYQoJICByZWxpYWJsZSBpbmRpY2F0b3Igb2Ygc2VnbWVudCBwcmVzZW5jZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNS0wMy0yMyAxMzoyMDozNCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgJ2Jsb2NrZWQnIGZsYWcKCSAgV2l0aCB0aGUgZGlzYXBwZWFyYW5jZSBvZiB0aGUgJ2Jsb2NrJyBzaWduYWwsIHRoaXMKCSAgZmxhZyBjYW5ub3QgYmUgc2V0IHRvIFRSVUUuCgkgIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IGRpc2FwcGVhcnMgYXMgaXQgbmV2ZXIgd2FpdHMKCSAgYW5kIGp1c3QgcmV0dXJucyBzZWxmLT5mbHVzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg5MQoKMjAxNS0wMy0yMyAxMjoxMjo1MSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgb2Jzb2xldGUgJ2Jsb2NrJyBzaWduYWwKCSAgVGhpcyBzaWduYWwgYmxvY2tzIHRoZSBpbnB1dC1zZWxlY3RvciB3aXRoIG5vIG1lYW5zIG9mIHVuYmxvY2tpbmcKCSAgb3RoZXIgdGhhbiBhIHN0YXRlIGNoYW5nZSBiYWNrIHRvIFJFQURZLiBJdCBzZWVtcyB0aGlzIHNpZ25hbCB3YXMKCSAgcGFydCBvZiBhbiBvbGQgd2F5IG9mIHN5bmNocm9ub3VzbHkgc3dpdGNoaW5nIHRoZSBzZWxlY3RvciwKCSAgdG9nZXRoZXIgd2l0aCB0aGUgYWxyZWFkeS1yZW1vdmVkICdzd2l0Y2gnIHNpZ25hbC4KCSAgUmVtb3ZpbmcgdGhlIHNpZ25hbCBpcyBzYWZlLCBhcyBhdHRlbXB0aW5nIHRvIHVzZSBpdCBjb3VsZCBvbmx5CgkgIGVuZCBpbiBkZWFkbG9ja3MuIEF0dGVtcHRpbmcgdG8gZW1pdCBhbiB1bmtub3duIHNpZ25hbCBqdXN0IGNhdXNlcwoJICBnX2NyaXRpY2Fscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg5MQoKMjAxNS0wMy0yMyAxMzowNTozMCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZpeCB3YWl0aW5nIG9uIEVPUwoJICBUaGlzIGFwcGFyZW50bHkgZ290IGJyb2tlbiBieSBiYzFlYzRlLiBTaW5jZSBzZWxmLT5ibG9ja2VkIGlzIGFsd2F5cwoJICBGQUxTRSwgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgbmV2ZXIgYWN0dWFsbHkgd2FpdHMuCgkgIFVzaW5nICghc2VsZi0+ZW9zIHx8IHNlbGYtPmJsb2NrZWQpICYmIC4uLiBhcyB0aGUgbG9vcCBjb25kaXRpb24gd291bGQKCSAgYmUgaW5jb3JyZWN0IGFzIHdlbGwsIGJlY2F1c2UgdGhlbiB0aGUgb3RoZXIgY2FsbCB0byB0aGUgZnVuY3Rpb24gaW4KCSAgX2NoYWluIHdvdWxkIGJsb2NrIHVudGlsIEVPUywgc28gdGhlIGZ1bmN0aW9ucyBjYW5ub3QgYmUgbWVyZ2VkIHRyaXZpYWxseS4KCSAgU2luY2UgYmxvY2tpbmcgaXMgb2Jzb2xldGUsIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IHdpbGwgZ2V0IHJlbW92ZWQgYW55d2F5LgoJICBBcyBzdWNoLCBqdXN0IGlubGluZSB0aGUgbG9vcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNS0wMy0yMCAwNzoyMzo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGlucHV0LXNlbGVjdG9yOiBuZXcgdGVzdHMgZm9yIEVPUyBoYW5kbGluZwoJICAzIG5ldyB0ZXN0czoKCSAgMSkgVGVzdHMgdGhhdCBhIHN0cmVhbSB0aGF0IGlzIGVtcHR5IChqdXN0IGFuIEVPUyBldmVudCkKCSAgb24gaW5hY3RpdmUgcGFkIGRvZXNuJ3QgZ2V0IHRocm91Z2ggYW5kIHRhbXBlcgoJICB3aXRoIHRoZSBhY3RpdmUgcGFkIHRoYXQgc3RpbGwgaGFzIGRhdGEKCSAgMikgVGVzdHMgdGhhdCBhIHN0cmVhbSB0aGF0IGlzIHNob3J0ZXIgdGhhbiB0aGUgYWN0aXZlIG9uZQoJICAocHVzaGVzIEVPUyBlYXJsaWVyKSBkb2Vzbid0IGhhcyBpdHMgRU9TIHB1c2hlZAoJICAzKSBUZXN0cyB0aGF0IHN3aXRjaGluZyB0byBhbiBpbmFjdGl2ZSBzdHJlYW0gdGhhdCBoYXMgcmVjZWl2ZWQKCSAgRU9TIHdpbGwgbWFrZSBpbnB1dC1zZWxlY3RvciBwdXNoIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE1LTAzLTE5IDEyOjExOjE5ICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogc2VsZWN0b3I6IHJlbW92ZSB3ZWlyZCBzZW1pY29sb25zIGF0IHRoZSBlbmQgb2YgdGVzdCBmdW5jdGlvbnMKCSAgRXZlbiB0aG91Z2ggaXQgd29ya3MsIGl0IGlzIG5vdCBuZWVkZWQgYW5kIHNlZW1zIG1vcmUgbmF0dXJhbAoJICB0byBub3QgaGF2ZSBzZW1pY29sb25zIGF0IHRoZSBlbmQgb2YgZnVuY3Rpb24gZGVjbGFyYXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTQtMDctMTcgMTY6MzM6MjkgKzAyMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFByb2Nlc3MgU0VFS0lORyBxdWVyeQoJICBBZGQgUVVFUllfU0VFS0lORyBoYW5kbGluZyB0byBxdWV1ZTIsIHNvIFJUTVAgbGl2ZSBzdHJlYW1zIGJlY29tZQoJICBzZWVrYWJsZSB3aGVuIGEgcXVldWUyIGluIGRvd25sb2FkIG9yIHJpbmdidWZmZXIgbW9kZSBpcyBpbnNlcnRlZDoKCSAgcnRtcHNyYyAhIHF1ZXVlMiAhIGZsdmRlbXV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMzNTEKCjIwMTUtMDMtMjEgMTk6Mzc6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBnY2MKCSAgY2hlY2tfcnVuLmM6IEluIGZ1bmN0aW9uICdzaWdfaGFuZGxlcic6CgkgIGNoZWNrX3J1bi5jOjEyNzoxMzogd2FybmluZzogJ2NoaWxkX3NpZycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIGtpbGxwZyhncm91cF9waWQsIGNoaWxkX3NpZyk7CgkgIF4KCSAgY2hlY2tfcnVuLmM6MTMwOjMxOiB3YXJuaW5nOiAnaWR4JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5YmUtdW5pbml0aWFsaXplZF0KCSAgc2lnYWN0aW9uKHNpZ19uciwgJm9sZF9hY3Rpb25baWR4XSwgTlVMTCk7CgkgIF4KCjIwMTUtMDMtMjEgMTU6MTk6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IENhdGNoIFNJR1RFUk0gYW5kIFNJR0lOVCBpbiB0aGUgdGVzdCBydW5uZXIgYW5kIGtpbGwgYWxsIGN1cnJlbnRseSBydW5uaW5nIHRlc3RzCgkgIE90aGVyd2lzZSBlLmcuIGN0cmwrYyBpbiB0aGUgdGVzdCBydW5uZXIgZXhpdHMgdGhlIHRlc3QgcnVubmVyLCB3aGlsZSB0aGUgdGVzdAoJICBpdHNlbGYgaXMgc3RpbGwgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZCwgdXNlcyBDUFUgYW5kIG1lbW9yeSBhbmQgcG90ZW50aWFsbHkKCSAgbmV2ZXIgZXhpdHMgKGUuZy4gaWYgdGhlIHRlc3QgcmFuIGludG8gYSBkZWFkbG9jayBvciBpbmZpbml0ZSBsb29wKS4KCSAgVGhlIHJlYXNvbiB3aHkgd2UgaGF2ZSB0byBtYW51YWxseSBraWxsIHRoZSBhY3R1YWwgdGVzdHMgaXMgdGhhdCBhZnRlcgoJICBmb3JraW5nIHRoZXkgd2lsbCBiZSBtb3ZlZCB0byB0aGVpciBvd24gcHJvY2VzcyBncm91cCwgYW5kIGFzIHN1Y2ggYXJlCgkgIG5vdCByZWNlaXZpbmcgYW55IHNpZ25hbHMgc2VudCB0byB0aGUgdGVzdCBydW5uZXIgYW55bW9yZS4gVGhpcyBpcyBzdXBwb3NlZAoJICB0byBiZSBkb25lIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGtpbGwgYSB0ZXN0LCB3aGljaCBpdCBvbmx5IHJlYWxseSBkb2VzIGlmCgkgIHRoZSB0ZXN0IGl0c2VsZiBpcyBmb3JraW5nIG9mZiBuZXcgcHJvY2Vzc2VzLgoJICBUaGlzIGZpeCBpcyBub3QgY29tcGxldGUgdGhvdWdoLiBTSUdLSUxMIGNhbid0IGJlIGNhdWdodCBhdCBhbGwsIGFuZCBlcnJvcgoJICBzaWduYWxzIGxpa2UgU0lHU0VHViwgU0lHRlBFIGFyZSBjdXJyZW50bHkgbm90IGNhdWdodC4gVGhlIGxhdHRlciB3aWxsIG9ubHkKCSAgaGFwcGVuIGlmIHRoZXJlIGlzIGEgYnVnIGluIHRoZSB0ZXN0IHJ1bm5lciBpdHNlbGYsIGFuZCBhcyBzdWNoIHNlZW0gbGVzcwoJICBpbXBvcnRhbnQuCgoyMDE1LTAzLTE5IDEzOjUxOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRG9uJ3QgZHJvcCBub24tc2VyaWFsaXplZCBxdWVyaWVzIHdoZW4gdGhlIHZhbHZlIGlzIGRyb3BwaW5nCgkgIE90aGVyd2lzZSB3ZSBlbmQgdXAgZHJvcHBpbmcgZS5nLiBDQVBTIHF1ZXJpZXMsIGFuZCB0aGVuIHVwc3RyZWFtIGp1c3QKCSAgbmVnb3RpYXRlcyB0byB3aGF0ZXZlciBmb3JtYXQgaXQgd2FudHMgdG8uIE9uY2UgdGhlIHZhbHZlIGlzIG5vdC1kcm9wcGluZwoJICBhbnltb3JlIHRoaXMgY2FuIGVhc2lseSByZXN1bHQgaW4gbmVnb3RpYXRpb24gZmFpbGluZyBjb21wbGV0ZWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDQ4CgoyMDE1LTAzLTIwIDA5OjAwOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IHJlbW92ZSB0aGUgYm91bmRzIGNoZWNrIGZyb20gX3RvX3J1bm5pbmdfdGltZV9mdWxsKCkKCSAgRG8gbm90IGRvIGFueSBjaGVja3MgZm9yIHRoZSBzdGFydC9zdG9wIGluIHRoZSBuZXcKCSAgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKSBtZXRob2QsIHdlIGNhbiBsZXQgdGhpcyBiZSBkb25lIGJ5CgkgIHRoZSBtb3JlIGNhcGFibGUgZ3N0X3NlZ21lbnRfY2xpcCgpIG1ldGhvZC4gVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZQoJICBlbnVtIG9mIHJlc3VsdHMgYW5kIG9ubHkgcmV0dXJuIHRoZSBzaWduIG9mIHRoZSBjYWxjdWxhdGVkIHJ1bm5pbmctdGltZS4KCSAgV2UgbmVlZCB0byBwdXQgdGhlIG9sZCBjbGlwcGluZyBjaGVja3MgaW4gdGhlIG9sZAoJICBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBzdGlsbCBiZWNhdXNlIHRoZXkgd29yayBzbGlnaHRseQoJICBkaWZmZXJlbnRseSB0aGFuIHRoZSBfY2xpcCBtZXRob2RzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOSAxNzozNjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhZGQgb3B0aW9uIHRvIGRpc2FibGUgY2xpcHBpbmcKCSAgQWRkIGEgY2xpcCBhcmd1bWVudCB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpIHRvIGRpc2FibGUKCSAgdGhlIGNoZWNrcyBhZ2FpbnN0IHRoZSBzZWdtZW50IGJvdW5kYXJpZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8KCSAgZ2VuZXJhdGUgYW4gZXh0cmFwb2xhdGVkIHJ1bm5pbmctdGltZSBmb3IgdGltZXN0YW1wcyBvdXRzaWRlIG9mIHRoZQoJICBzZWdtZW50LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOCAxNjoyNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYvdW5yZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC9kZWluaXQoKQoKMjAxNS0wMy0xOCAxNDoxNjo0OCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHM6IHJlbW92ZSBvdXRkYXRlZCBjb21wbGV0aW9uIHNjcmlwdAoJICArIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTE4IDExOjMxOjUxICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgaGVscGVyIHRvIGdldCBuZWdhdGl2ZSBydW5uaW5nLXRpbWUKCSAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBnZXQgYSBydW5uaW5nLXRpbWUgd2l0aCBhIGxpdHRsZSBtb3JlIGZlYXR1cmVzCgkgIHN1Y2ggYXMgZGV0ZWN0aW5nIGlmIHRoZSB2YWx1ZSB3YXMgYmVmb3JlIG9yIGFmdGVyIHRoZSBzZWdtZW50IGFuZAoJICBuZWdhdGl2ZSBydW5uaW5nLXRpbWUuCgkgIEFQSTogZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE4IDEwOjUzOjMwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGZpeCBvZmZzZXQgaGFuZGxpbmcgd2l0aCBub24gMCBzdGFydAoJICBUaGUgcG9zaXRpb24gaW4gdGhlIHNlZ21lbnQgaXMgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IGJ1dCB0aGUgb2Zmc2V0CgkgIGlzbid0LCBzbyBzdWJ0cmFjdCB0aGUgc3RhcnQgZnJvbSB0aGUgcG9zaXRpb24gd2hlbiBzZXR0aW5nIHRoZSBvZmZzZXQuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMgYXMgd2VsbC4KCjIwMTUtMDMtMTggMDk6MzY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCjIwMTMtMTEtMjkgMTY6Mjg6NDEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkdXBsaWNhdGUgY29kZQoJICBUaGVzZSBhcmUgYWxyZWFkeSBmcmVlZCBieSBnc3RfYmFzZV9wYXJzZV9jbGVhcl9xdWV1ZXMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTAzLTE3IDE1OjQxOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCBpbmRlbnRpb24KCjIwMTUtMDMtMTMgMTE6MDg6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBza2lwIG9uIHNlZ21lbnRzIGFuZCBkaXNjb250aW51aXRpZXMKCSAgTGFyZ2Ugc2NhbGUgc2tpcCBpcyBhbiBvcHRpbWl6YXRpb24sIGFuZCB0aHVzIGl0IGlzIHNhZmVyIHRvCgkgIHN0b3Agc2tpcHBpbmcgdGhhbiB0byBjb250aW51ZS4gQ2xlYXIgc2tpcCBvbiBzZWdtZW50cyBhbmQKCSAgZGlzY29udGludWl0aWVzLCBhcyB0aGVzZSBhcmUgcG9pbnRzIHdoZXJlIGl0IGlzIHBvc3NpYmxlIHRoYXQKCSAgdGhlIG9yaWdpbmFsIGlkZWEgb2YgImJ5dGVzIHRvIHNraXAiIGNoYW5nZXMuCgoyMDE1LTAzLTE1IDE0OjE5OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGdyb3cgcXVldWUgaW5maW5pdGVseSBpZiBvbmx5IG9uZSBwYWQgaXMgbGlua2VkCgkgIFRoaXMgd2FzIGludHJvZHVjZWQgYnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTg5MwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODkxCgkgIGJ1dCBpdCBkb2Vzbid0IG1ha2UgYW55IHNlbnNlIGF0IGFsbCBhbmQgY2F1c2VzIGh1Z2UgbWVtb3J5IGxlYWtzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjUzCgoyMDE1LTAzLTE0IDIxOjA3OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIGVtcHR5IGJ1ZmZlciBsaXN0IG1vcmUgZ3JhY2VmdWxseQoJICBEb24ndCBhYm9ydCwganVzdCBpZ25vcmUgaXQuIEl0J3MgbGlrZSBhIGJ1ZmZlcgoJICB3aXRob3V0IG1lbW9yaWVzLgoKMjAxNS0wMy0xNCAxNzozOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtaW5vciBvcHRpbWlzYXRpb24gZm9yIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoJICBUcnkgdG8gYWxsb2NhdGUgYnVmZmVyIGxpc3Qgd2l0aCBhIHN1aXRhYmxlIHNpemUgZnJvbSB0aGUKCSAgYmVnaW5uaW5nIHRvIGF2b2lkIGhhdmluZyB0byByZS1hbGxvYyB0aGUgYnVmZmVyIGxpc3QgYXJyYXkuCgoyMDE1LTAzLTE0IDE3OjIzOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCjIwMTUtMDMtMTQgMTc6MjA6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoJICBBUEk6IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoKMjAxNS0wMy0xNCAxNjowNTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIEFkZCBuZXcgc3RyZWFtaWRkZW11eCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDE1LTAzLTE0IDE2OjAwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYXZvaWQgbXVsdGlwbGUgY2FsbHMgdG8gZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIGluIG1hY3JvCgoyMDE1LTAzLTE0IDE1OjU4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIG11bHRpcGxlIGNhbGxzIHRvIGdzdF9idWZmZXJfZ2V0X3NpemUoKSBpbiBtYWNybwoKMjAxNS0wMy0xMyAxODoyMjowMSArMDAwMCAgUmFtaXJvIFBvbGxhIDxyYW1pcm8ucG9sbGFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcHJvcGVybHkgZXNjYXBlIHBlcmNlbnQgc2lnbiBpbiBkb2N1bWVudGF0aW9uCgoyMDE1LTAzLTE0IDEzOjM3OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVzZSB0aGUgY29ycmVjdCBlbnVtIHR5cGUgdG8gZml4IGEgY29tcGlsZXIgd2FybmluZwoJICBnc3RidWZmZXIuYzo1MjI6NTg6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyRmxhZ3MnIHRvCgkgIGRpZmZlcmVudCBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJDb3B5RmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICBpZiAoIWdzdF9idWZmZXJfY29weV9pbnRvIChjb3B5LCAoR3N0QnVmZmVyICopIGJ1ZmZlciwgZmxhZ3MsIDAsIC0xKSkKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgoJICBnc3RidWZmZXIuYzo1MzQ6NDY6IGVycm9yOiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyQ29weUZsYWdzJyB0bwoJICBkaWZmZXJlbnQgZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyRmxhZ3MnIFstV2Vycm9yLC1XZW51bS1jb252ZXJzaW9uXQoJICByZXR1cm4gZ3N0X2J1ZmZlcl9jb3B5X3dpdGhfZmxhZ3MgKGJ1ZmZlciwgR1NUX0JVRkZFUl9DT1BZX0FMTCk7CgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgLi9nc3RidWZmZXIuaDo0MzM6MzE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0dTVF9CVUZGRVJfQ09QWV9BTEwnCgkgIC4uLigoR3N0QnVmZmVyQ29weUZsYWdzKShHU1RfQlVGRkVSX0NPUFlfTUVUQURBVEEgfCBHU1RfQlVGRkVSX0NPUFlfTUVNT1JZKSkKCSAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCjIwMTUtMDMtMTQgMTQ6MDY6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDE0LTEwLTMwIDE1OjM5OjIxICswMDAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkgIG1ldGE6IEFkZCBgR3N0TmV0Q29udHJvbE1lc3NhZ2VNZXRhYAoJICBHc3ROZXRBZGRyZXNzIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFuY2lsbGFyeSBkYXRhIHdoaWNoIHdhcyByZWNlaXZlZCB3aXRoCgkgIG9yIGlzIHRvIGJlIHNlbnQgYWxvbmdzaWRlIHRoZSBidWZmZXIgZGF0YS4gIFdoZW4gdXNlZCB3aXRoIHNvY2tldCBzaW5rcwoJICBhbmQgc291cmNlcyB3aGljaCB1bmRlcnN0YW5kIHRoaXMgbWV0YSBpdCBhbGxvd3Mgc2VuZGluZyBhbmQgcmVjZWl2aW5nCgkgIGFuY2lsbGFyeSBkYXRhIHN1Y2ggYXMgdW5peCBjcmVkZW50aWFscyAoU2VlIGBHVW5peENyZWRlbnRpYWxzTWVzc2FnZWApCgkgIGFuZCBVbml4IGZpbGUgZGVzY3JpcHRpb25zIChTZWUgYEdVbml4RkRNZXNzYWdlYCkuCgkgIFRoaXMgd2lsbCBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBwcm90b2NvbHMgd2hpY2ggdXNlIGZpbGUtZGVzY3JpcHRvcgoJICBwYXNzaW5nIGluIHBheWxvYWRlcnMvZGVwYXlsb2FkZXJzIHdpdGhvdXQgaGF2aW5nIHRvIHJlLWltcGxlbWVudCBhbGwgdGhlCgkgIHNvY2tldCBoYW5kbGluZyBjb2RlIGFscmVhZHkgcHJlc2VudCBpbiBlbGVtZW50cyBzdWNoIGFzIG11bHRpc29ja2V0c2luaywKCSAgZXRjLiAgVGhpcywgaW4gdHVybiwgd2lsbCBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyB6ZXJvLWNvcHkgdmlkZW8gSVBDLgoJICBUaGlzIG1ldGEgdXNlcyB0aGUgcGxhdGZvcm0gaW5kZXBlbmRlbnQgYEdTb2NrZXRDb250cm9sTWVzc2FnZWAgQVBJCgkgIHByb3ZpZGVkIGJ5IEdMaWIgYXMgYSBwYXJ0IG9mIEdJTy4gIEFzIGEgcmVzdWx0IHRoaXMgbmV3IG1ldGEgZG9lcyBub3QKCSAgcmVxdWlyZSBhbnkgbmV3IGRlcGVuZGVuY2llcyBvciBhbnkgY29uZGl0aW9uYWwgY29tcGxpYXRpb24gZm9yCgkgIHBvcnRhYmxpbGl0eSwgYWx0aG91Z2ggaXQgaXMgdW5saWtlbHkgdG8gZG8gYW55dGhpbmcgdXNlZnVsIG9uIG5vbi1VTklYCgkgIHBsYXRmb3Jtcy4KCjIwMTUtMDMtMTQgMTE6NTc6MzMgKzAwMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBhbGxvY2F0aW9uOiBBbGxvdyBhbGxvY2F0aW9uIHBvb2wgd2l0aG91dCBzaXplCgkgIFRoaXMgYWxsb3cgcHJvcG9zaW5nIGEgbnVtYmVyIG9mIGJ1ZmZlcnMgcmVxdWlyZWQgZXZlbiBpZiB0aGUgc2l6ZQoJICBvZiBidWZmZXIgaXMgdW5maXhlZC4gVGhpcyBpcyBvZnRlbiB0aGUgY2FzZSBmb3IgZW5jb2RlZCBmb3JtYXRzLgoKMjAxNS0wMy0wMSAxMzoxNTo0MCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBEb24ndCBzdG9wIHRoZSBwb29sIGluIHNldF9jb25maWcoKQoJICBEb24ndCBzdG9wIHRoZSBwb29sIGluIHNldF9jb25maWcoKS4gSW5zdGVhZCwgbGV0IHRoZSBjb250cm9sbGluZwoJICBlbGVtZW50IG1hbmFnZSBpdC4gTW9zdCBvZiB0aGUgdGltZSwgd2hlbiBhbiBhY3RpdmUgcG9vbCBpcyBiZWluZwoJICBjb25maWd1cmVkIGlzIGJlY2F1c2UgdGhlIGNhcHMgZGlkbid0IGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTM3NwoKMjAxNS0wMy0xMyAxODo1MzoxMSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZHJhaW4gb24gYWxsb2NhdGlvbiBxdWVyeQoJICBBbGxvd3MgYnVmZmVycyB0byBiZSByZWNsYWltZWQgd2hlbiBjYXBzIGlzIHRvIGJlIHJlbmVnb3RpYXRlZCBzbwoJICB0aGF0IGJ1ZmZlcnBvb2xzIGNhbiBiZSBzdG9wcGVkLiBBcyB0aGUgYWxsb2NhdGlvbiBxdWVyeSBpcwoJICBzZXJpYWxpemVkIGFsbCBidWZmZXJzIGhhdmUgYmVlbiBhbHJlYWR5IGRyYWluZWQgZnJvbSB0aGUgcGlwZWxpbmUsCgkgIGV4Y2VwdCB0aGlzIGxhc3Rfc2FtcGxlIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjc3MAoKMjAxNS0wMy0xMyAxODozNToxNCArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogd2hlbiBkcmFpbmluZywgZGVlcCBjb3B5IHRoZSBsYXN0IGJ1ZmZlciB0byB1bnJlZiBvbGQgbWVtb3J5CgkgIFVzZSBnc3RfYnVmZmVyX2NvcHlfZGVlcCgpIHRvIGZvcmNlIHRoZSBjb3B5IG9mIHRoZSB1bmRlcmx5aW5nCgkgIG1lbW9yeSBpbnN0ZWFkIG9mIHBvc3NpYmx5IGRvaW5nIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBidWZmZXIKCSAgYW5kIGp1c3QgcmVmZXJlbmNpbmcgdGhlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mjg3CgoyMDE1LTAzLTEzIDE4OjM1OjAxICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0YnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAKCSAgQSB2YXJpYW50IG9mIGdzdF9idWZmZXJfY29weSB0aGF0IGZvcmNlcyB0aGUgdW5kZXJseWluZyBtZW1vcnkKCSAgdG8gYmUgY29waWVkLgoJICBUaGlzIGlzIGFkZGVkIHRvIGF2b2lkIGFkZGluZyBhbiBleHRyYSByZWZlcmVuY2UgdG8gYSBHc3RNZW1vcnkKCSAgdGhhdCBtaWdodCBiZWxvbmcgdG8gYSBidWZmZXJwb29sIHRoYXQgaXMgdHJ5aW5nIHRvIGJlIGRyYWluZWQuCgkgIFRoZSB1c2UgY2FzZSBpcyB3aGVuIHRoZSBidWZmZXIgY29weWluZyBpcyBkb25lIHRvIHJlbGVhc2UgdGhlCgkgIG9sZCBidWZmZXIgYW5kIGFsbCBpdHMgcmVzb3VyY2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mjg3CgoyMDE1LTAzLTEzIDE1OjMxOjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVzZSBnX2xpc3RfZnJlZV9mdWxsKCkgaW5zdGVhZCBvZiBtYW51YWxseSB1bnJlZmZpbmcgYW5kIGZyZWVpbmcKCSAgQWxzbyB1bnJlZiB0aGUgbWVzc2FnZXMsIG5vdCB0aGUgR0xpc3Qgbm9kZXMuCgoyMDE1LTAzLTEzIDEzOjQyOjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEZpeCBhbm90aGVyIGNhc2Ugd2hlcmUgd2UgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hpbGUgdW5yZWZmaW5nIGEgbWVzc2FnZQoKMjAxNS0wMy0xMyAxNToyODo0MiArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVW5yZWZlcmVuY2luZyBtZXNzYWdlcyBvdXRzaWRlIHRoZSBsb2NrCgkgIFNob3VsZG4ndCB0YWtlIHRoZSBsb2NrIHdoaWxlIHVucmVmZXJlbmNpbmcgbWVzc2FnZXMsIGJlY2F1c2UgdGhhdCBtYXkgY2F1c2UKCSAgbW9yZSBtZXNzYWdlcyB0byBiZSBzZW50LCB3aGljaCB3aWxsIHRyeSB0byB0YWtlIHRoZSBsb2NrIGFuZCBjYXVzZSB0aGUgYXBwIHRvCgkgIGhhbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg3NzcKCjIwMTUtMDItMjMgMjA6Mjc6MzIgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfYmluX3N5bmNfY2hpbGRyZW5fc3RhdGVzKCkKCSAgZ3N0X2Jpbl9zeW5jX2NoaWxkcmVuX3N0YXRlcygpIHdpbGwgaXRlcmF0ZSBvdmVyIGFsbCB0aGUgZWxlbWVudHMgb2YgYSBiaW4gYW5kCgkgIHN5bmMgdGhlaXIgc3RhdGVzIHdpdGggdGhlIHN0YXRlIG9mIHRoZSBiaW4uIFRoaXMgaXMgdXNlZnVsIHdoZW4gYWRkaW5nIG1hbnkKCSAgZWxlbWVudHMgdG8gYSBiaW4gYW5kIHdvdWxkIG90aGVyd2lzZSBoYXZlIHRvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCgpIG9uIGVhY2ggYW5kIGV2ZXJ5IG9uZSBvZiB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDQyCgoyMDE1LTAyLTAzIDE2OjEyOjMyICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogaGFuZGxlIHVuc2lnbmVkIG1vZGlmaWVyIGZvciBsb25nIGxvbmcKCSAgT3RoZXJ3aXNlLCBhbiB1bnNpZ25lZCBpbnRlZ2VyIHdpbGwgYmUgZGlzcGxheWVkIGFzIGEgc2lnbmVkIG9uZSBpZiB3ZQoJICB1c2UgaW50ZXJuYWwgcHJpbnQsIGllIEhBVkVfTE9OR19MT05HX0ZPUk1BVCBpcyBub3QgZGVmaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjA5NgoKMjAxNS0wMy0xMiAxNDozOTozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJICBzdHJlYW1pZGRlbXV4OiBSZXNldCBwYWQgY291bnRlciBhZnRlciByZW1vdmluZyBhbGwgcGFkcwoKMjAxNC0wMy0wNCAxOTo0MDowNSArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9zdHJlYW1pZGRlbXV4LXN0cmVhbS5jOgoJICBzdHJlYW1pZGRlbXV4OiBBZGQgc3RyZWFtaWRkZW11eCBlbGVtZW50CgkgIERlbXVsdGlwbGV4IGEgc3RyZWFtIHRvIG11bHRpcGxlIHNvdXJjZSBwYWRzIGJhc2VkIG9uIHRoZSBzdHJlYW0gaWRzIGZyb20gdGhlCgkgIHN0cmVhbS1zdGFydCBldmVudHMuIFRoaXMgYmFzaWNhbGx5IHJldmVyc2VzIHRoZSBiZWhhdmlvdXIgb2YgZnVubmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjA1CgoyMDE1LTAzLTEyIDEzOjI5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUKCjIwMTUtMDMtMTIgMTM6MjY6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmludGYuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIG91ciBwcmludGYgc3R1ZmYKCSAgVG8gdGVzdCBuZXcgJUkzMiBzdXBwb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjgxCgoyMDE1LTAyLTEwIDE3OjQwOjQ4ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBhZGQgc3VwcG9ydCBmb3IgJUkzMgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MjgxCgoyMDE1LTAzLTEyIDEzOjE0OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBjYXRlZ29yeSBsZXZlbCB0aHJlc2hvbGQgY2hlY2sgaW50byBsb2cgZnVuY3Rpb24gZGlzcGF0Y2hlcgoJICBNaW5vciBvcHRpbWlzYXRpb246IGNoZWNrIGNhdGVnb3J5IGxvZyBsZXZlbCBlYXJsaWVyIGluIHRoZQoJICBsb2cgZnVuY3Rpb24gZGlzcGF0Y2hlciBhbmQgbm90IG9ubHkgaW4gdGhlIGRlZmF1bHQgbG9nCgkgIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAzLTEyIDEyOjU5OjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlc2V0IHNlZ21lbnQgd2hlbiBkZWFjdGl2YXRpbmcgcHVsbCBtb2RlIG9yIG5vdCBydW5uaW5nIGluIHB1bGwgbW9kZQoJICBXZSB1c2UgdGhlIHNlZ21lbnQgZm9ybWF0IHRvIGRldGVjdCBpZiB3ZSBydW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgb3Igbm90LgoJICBXaXRob3V0IHJlc2V0dGluZyB3ZSBtaWdodCBiZWxpZXZlIHdlIGRvIHNvLCBhbHRob3VnaCB3ZSBvbmx5IGRpZCBpbiB0aGUgcGFzdAoJICBhbmQgYXJlIG5vdyBydW5uaW5nIGluIGUuZy4gcHVzaCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDczCgoyMDE1LTAzLTA4IDIwOjQyOjM4ICswMTAwICBNaWNoYcWCIETEmWJza2kgPGRlYnNraS5taS56ZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogVXNlIG1rc3RlbXAgaW5zdGVhZCBvZiB0ZW1wbmFtIGlmIHBvc3NpYmxlCgkgIFVzaW5nIHRlbXBuYW0oKSBpcyBkZXByZWNhdGVkLCB0aGlzIGdpdmVzIHdhcm5pbmcgYW5kIGZhaWxzIHRoZSBidWlsZAoJICB3aXRoIC1XZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU4NTgKCjIwMTUtMDMtMTEgMTY6MzY6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgdGhlIG5lZWRfcHJlcm9sbCB2YXJpYWJsZQoJICBCYXNlZCBvbiBwYXRjaCBmcm9tIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgkgIERvbid0IGp1c3Qgc2V0IHRoZSBuZWVkX3ByZXJvbGwgZmxhZyB0byBUUlVFIGluIGFsbCBjYXNlcy4gV2hlbiB3ZQoJICBhcmUgYWxyZWFkeSBwcmVyb2xsZWQgaXQgbmVlZHMgdG8gYmUgc2V0IHRvIEZBTFNFIGFuZCB3aGVuIHdlIGdvIHRvCgkgIFJFQURZIHdlIHNob3VsZCBub3QgdG91Y2ggaXQuIFdlIHNob3VsZCBvbmx5IHNldCBpdCB0byBUUlVFIGluIG90aGVyCgkgIGNhc2VzLCBsaWtlIHdoYXQgdGhlIGNvZGUgYWJvdmUgZG9lcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY2NTUKCjIwMTQtMTItMDUgMTQ6MTY6NTIgKzA5MDAgIGhvb25oZWUubGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogaGFuZGxlIEdBUCBldmVudCB0byBmb3J3YXJkcyBzdGlja3kgZXZlbnRzIGludG8gZG93bnN0cmVhbQoJICBJZiBubyBkYXRhIGlzIGNvbWluZyBhbmQgZnVubmVsIHJlY2VpdmUgR0FQIGV2ZW50LCBuZWVkIHRvIGZvcndhcmRzIHN0aWNreSBldmVudHMKCSAgaW50byBkb3duc3RyZWFtIGlmIGl0IG5lZWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjAyCgoyMDE1LTAzLTEwIDE2OjQyOjQ0ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBkdXBsaWNhdGUgY29kZSBicmFuY2hlcwoJICBDSUQgIzEyMjY0NDYKCjIwMTUtMDMtMTAgMDk6MjE6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgRml4IGRvdWJsZSBzZW1pY29sb25zCgoyMDE1LTAyLTIyIDEwOjEyOjAxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNS0wMi0yMSAyMDoxMzowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl91cGRhdGVfcGFkX2Zsb3coKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDU3MgoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX3VwZGF0ZV9wYWRfZmxvdygpCgoyMDE1LTAyLTE1IDIwOjUyOjEwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0KCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1NzIKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl9yZXNldCgpCgoyMDE1LTAzLTA2IDEwOjU5OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMTUtMDMtMDUgMTg6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCBtYWxsb2MvZnJlZSBpZiBsb2cgb2JqZWN0IGlzIE5VTEwKCjIwMTUtMDMtMDUgMTc6NTQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIF9fRklMRV9fIHBhdGggc2hvcnRlbmluZyBpbnRvIGRlZmF1bHQgbG9nIGhhbmRsZXIKCSAgSW5zdGVhZCBvZiBhbHdheXMgc2hvcnRlbmluZyB0aGUgX19GSUxFX18gcGF0aCwgZXZlbiBpZiB0aGUKCSAgbG9nIG1lc3NhZ2UgaXMgbm90IGFjdHVhbGx5IHByaW50ZWQsIHdoaWNoIG1pZ2h0IGhhcHBlbiBpZgoJICB0aGUgbG9nIGxldmVsIGlzIGFjdGl2YXRlZCBidXQgdGhlIGNhdGVnb3J5IGlzIG5vdCwgb25seQoJICBzaG9ydGVuIHRoZSBwYXRoIGlmIHdlJ3JlIGFjdHVhbGx5IGdvaW5nIHRvIG91dHB1dCBpdCBhbmQKCSAgaWYgaXQgbG9va3MgbGlrZSBpdCBuZWVkcyBzaG9ydGVuaW5nLiBMb2cgaGFuZGxlcnMgaGFkIG5vCgkgIGd1YXJhbnRlZSB0aGF0IHRoZXkgd291bGQgZ2V0IGEgbmFtZSBpbnN0ZWFkIG9mIGEgcGF0aAoJICBhbnl3YXkgb24gYW55IGFyY2hpdGVjdHVyZSwgc28gaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMi0yNyAwMToxNjo1OCArMTEwMCAgUGV0ZXIgVXJiYW5lYyA8Z2l0LnVzZXJAdXJiYW5lYy5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBzaG9ydGVuIF9fRklMRV9fIG9uIGFsbCBwbGF0Zm9ybXMKCSAgVGhpcyBpcyB1c2VmdWwgbm90IG9ubHkgZm9yIE1TVkMsIGJ1dCBhbHNvIHdpdGggZ2NjL0xpbnV4CgkgIHdoZW4gZG9pbmcgY3Jvc3MtY29tcGlsYXRpb24gYnVpbGRzIGFuZCBvdXQtb2YtdHJlZSBidWlsZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDMtMDQgMTE6MDI6NDEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZG9jczogY2xhcmlmeSBtaW4tbGF0ZW5jeSB3b3JkaW5nIGluIHBhcnQtbGF0ZW5jeS50eHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDMzOAoKMjAxNS0wMi0yNiAxNDo0MzoyNSArMDEwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IHJlbW92ZWQgbGlieG1sIGluY2x1ZGUgZGlyZWN0aXZlCgkgIFRoaXMgaXMgYSBsZWZ0b3ZlciBmcm9tIDAuMTAgYW5kIG5vdCBuZWVkZWQgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMAoKMjAxNS0wMy0wMyAxMjo1MzoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogU2lnbmFsIHRoZSBzaW5rcGFkIHRocmVhZCBpZiBhIGZsb3cgZXJyb3IgaGFwcGVuZWQKCSAgSXQgbWlnaHQgc3RpbGwgYmUgd2FpdGluZyBmb3IgYSBxdWVyeSB0byBiZSBoYW5kbGVkLCBvciB0aGUgcXVldWUgdG8gYmVjb21lCgkgIGVtcHR5IGFnYWluIGZvciB0aGUgbmV4dCBpdGVtLiBBbHNvIGlmIGRvd25zdHJlYW0gcmV0dXJucyBGTFVTSElORywgZmx1c2ggdGhlCgkgIHF1ZXVlIGxpa2Ugd2UgZG8gaW4gcXVldWUgYW5kIG11bHRpcXVldWUuCgoyMDE1LTAzLTAzIDEyOjQ4OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogV2FrZSB1cCB0aGUgcXVlcnkgZnVuY3Rpb24gb24gZXJyb3JzIGZyb20gdGhlIGxvb3AgZnVuY3Rpb24KCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHdhaXQgZm9yZXZlciBmb3Igc2VyaWFsaXplZCBxdWVyaWVzIHRvIGJlIGhhbmRsZWQgYXMgdGhlCgkgIGxvb3AgZnVuY3Rpb24gaXMgc3RvcHBlZCBhbmQgYXMgc3VjaCB3ZSB3aWxsIG5ldmVyIGV2ZXIgZGVxdWV1ZSB0aGUgcXVlcnkgYW5kCgkgIGhhbmRsZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTMxOQoKMjAxNS0wMy0wMiAyMDozMTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSB3YXJuaW5nIHdoZW4gbGlua2luZyAgZWxlbWVudHMgd2l0aG91dCBjb21tb24gYW5jZXN0b3IKCSAgVGhpcyBjb21lcyB1cCBxdWl0ZSBhIGxvdCBhbmQgaXQncyBhIGNvbW1vbiBtaXN0YWtlLCBzbyBsZXQncwoJICB0cnkgdG8gaW1wcm92ZSB0aGUgd2FybmluZyBtZXNzYWdlIGEgbGl0dGxlLgoKMjAxNS0wMi0yNyAwMDozMzoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IERyb3AgY3VzdG9tIGxhdGVuY3kgcXVlcnkgaGFuZGxpbmcKCSAgVGhlIGRlZmF1bHQgbGF0ZW5jeSBxdWVyeSBoYW5kbGVyIG5vdyBpbXBsZW1lbnRzIHRoaXMgbG9naWMKCjIwMTUtMDItMjYgMTU6NTc6MjAgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5zaW5zdGFsbGVkOiBBZGQgZ2VzLWxhdW5jaCBtYW51YWxzIHBhdGggdG8gTUFOUEFUSC4KCjIwMTUtMDItMjYgMTM6MDg6NDggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZhaWwgbGF0ZW5jeSBxdWVyeSBvbiB1bmxpbmtlZCBwYWRzCgkgIEEgc2luZ2xlIHVubGlua2VkIHBhZCBjYW4gbWFrZSB0aGUgbGF0ZW5jeSBxdWVyeSBmYWlsIGFjcm9zcyB0aGUKCSAgcGlwZWxpbmUsIHdoaWNoIGlzIHByb2JhYmx5IG5vdCBkZXNpcmFibGUuIEluc3RlYWQsIHdlIHJldHVybiBhIGRlZmF1bHQKCSAgYW55dGhpbmcgZ29lcyB2YWx1ZS4KCSAgUGVyaGFwcyB3ZSBzaG91bGQgYWxzbyBiZSBlbWl0dGluZyBhIGdzdF9tZXNzYWdlX25ld19sYXRlbmN5KCkgd2hlbiBhCgkgIFBMQVlJTkcgZWxlbWVudCBoYXMgb25lIG9mIGl0cyBwYWRzIGxpbmtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE5NwoKMjAxNC0xMC0yMiAxNjo0Mzo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgZW1pdCBlcnJvcnMgb24gRU9TIGlmIHdlIHNhdyBHQVAgZXZlbnRzCgkgIElmIHdlIHNhdyBHQVAgZXZlbnRzIChtZWFuaW5nIHRoZSBzdHJlYW1zIGlzIGFkdmFuY2luZykgYmVmb3JlIHdlIGdldAoJICBFT1MsIHdlIHNob3VsZCBub3QgcG9zdCBhbiBFUlJPUiwgc2luY2UgaXQgaXMgbm90IGZhdGFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTQzCgoyMDE1LTAyLTI1IDA4OjI2OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGdzdHZhbHVlOiBNYWtlIHN1cmUgR1NUX0ZPVVJDQ19BUkdTIHByb2R1Y2VzIHByaW50YWJsZSBjaGFyYWN0ZXJzCgkgIFNvbWUgc3lzdGVtcyB3aWxsIGNyYXNoIGlmIHdlIHVzZSBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMgaW4gcHJpbnQvZGVidWcKCSAgc3RhdGVtZW50cy4KCSAgTWFrZSBzdXJlIHRoYXQgR1NUX0ZPVVJDQ19BUkdTIG5ldmVyIGRvZXMgdGhhdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTQ0CgoyMDE1LTAyLTI1IDE2OjExOjA2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiByZW1vdmUgaW5jb3JyZWN0IEZpeG1lIGNvbW1lbnQKCSAgSWYgdGhlIGNoZWNrcyB3ZXJlIGNoYW5nZWQgdG8gdXNpbmcgZ19yZXR1cm5faWZfZmFpbCgpIHRoZSBHU1RfREVCVUcgbGluZXMKCSAgYWJvdXQgdGhlIHNwZWNpZmljIGZhaWx1cmUgd291bGQgYmUgbG9zdC4KCjIwMTUtMDItMjUgMTY6MDI6MzkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IHJlbW92ZSBvYnNvbGV0ZSBGaXhtZSBjb21tZW50CgkgIGdzdF9wYWRfbGlua19maWx0ZXJlZCgpIGlzIHZlcnkgbG9uZyBnb25lIGFuZCBjdXJyZW50CgkgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCgpIGRvZXNuJ3QgYXBwbHkgdG8gdGhpcyBGaXhtZSBjb21tZW50LgoKMjAxNS0wMi0yNCAyMTo1ODowMCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBhZGFwdGl2ZWRlbXV4IHBhdGhzIGZyb20gLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTIyCgoyMDE1LTAyLTI0IDE4OjE0OjQ3ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IHJlbW92ZSBkZWFkIGxpbmsKCSAgUmVtb3ZlIGRlYWQgbGluayB0byB3aWtpIHBhZ2UgZm9yIFN1Ym1pdHRpbmdQYXRjaGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAzMTEKCjIwMTUtMDItMjQgMTQ6MDc6NTQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IEZpeCBpbnN0YWxsIG9mIGNvbXBsZXRpb24taGVscGVyLgoJICBCeSBhcHBseWluZyB0aGUgc3VwcGxpZWQgdHJhbnNmb3JtYXRpb24gdG8gdGhlIHByb2dyYW0gbmFtZSwKCSAgZm9yIGV4YW1wbGUgLS1wcm9ncmFtLXByZWZpeC4KCjIwMTUtMDItMjMgMTY6Mzk6NDMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGNvbXBsZXRpb24taGVscGVyOiBBZGQgbWlzc2luZyBERVNURElSCgkgIE90aGVyd2lzZSBkb2luZyAibWFrZSBpbnN0YWxsIERFU1RESVIiIHdpbGwgdHJ5IHRvIHdyaXRlIHRvCgkgIC91c3Ivc2hhcmUvLi4uCgoyMDE1LTAyLTIzIDIxOjE3OjE2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQWRkIGZpbHRlcmluZyBieSBrbGFzcyBhbmQgc2luayBjYXBzLgoKMjAxNS0wMi0yMSAxNzoxMzoyNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHJldHVybmluZyBkb3duc3RyZWFtIEdTVF9GTE9XX0VPUyBmcm9tIHByZXZpb3VzIHNlZ21lbnQgdG8gY3VycmVudCB1cHN0cmVhbSBzZWdtZW50CgoyMDE1LTAyLTIyIDEwOjAyOjI1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGZpeCBkb2N1bWVudGF0aW9uIGNvbW1lbnQgdHlwbwoKMjAxNS0wMi0yMiAxMDowMTozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkcmFpbiBzZWdtZW50IHVwb24gU0VHTUVOVF9ET05FIHRvIGVuc3VyZSBwcm9wZXIgZXZlbnQgb3JkZXIKCjIwMTUtMDItMjIgMTA6MDE6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYW4gdXAgc29tZSBib2d1cyBjb21tZW50ZWQgY29kZQoKMjAxNS0wMi0yMyAxOToxMDowOCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFwcGVuZCAkKEVYRUVYVCkgdG8gdGhlIG5hbWUgb2YgdGhlIG1vdmVkIGZpbGUuCgkgIEZpeGVzIHRoZSBidWlsZCBvbiBXaW5kb3dzCgkgIChodHRwczovL2NpLmdzdHJlYW1lci5uZXQvam9iL2NlcmJlcm8tY3Jvc3MtbWluZ3czMi8xNzQyL2NvbnNvbGUpCgoyMDE1LTAyLTIzIDE3OjIzOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIEZpeCBkaXN0Y2hlY2sKCSAgRGlzYWJsZSBiYXNoIGNvbXBsZXRpb24gZHVyaW5nIGRpc3RjaGVja2luZyBvdGhlcndpc2UKCSAgaXQgbWF5IHRyeSB0byBpbnN0YWxsIGludG8gYSBzeXN0ZW0gcGF0aCBhbmQgZmFpbC4KCjIwMTUtMDItMjMgMTc6MTY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgRGlzdCBuZXcgZGF0YSBkaXJlY3RvcnkKCSAgRml4ZXMgJ21ha2UgZGlzdCcKCjIwMTUtMDItMjAgMjI6MDQ6MjIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRhdGEvTWFrZWZpbGUuYW06CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0OgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBiYXNoLWNvbXBsZXRpb246IEltcGxlbWVudCBpbiBhIGRpZmZlcmVudCB3YXkuCgkgICsgR2V0cyBpbnN0YWxsZWQKCSAgKyBVc2VzIGEgaGVscGVyIHRvb2wsIGdzdC1jb21wbGV0aW9uLWhlbHBlciwgaW5zdGFsbGVkIGluCgkgIGJhc2gtY29tcGxldGlvbnMvaGVscGVycy4KCSAgKyBBZGRzIGEgY29tbW9uIHNjcmlwdCB0aGF0IG90aGVyIHRvb2xzIGNhbiBzb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTUtMDItMjMgMTI6MDg6NDkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSAgR3N0RGV2aWNlTW9uaXRvcjoga2VlcCBhbHBoYWJldGljYWwgb3JkZXIKCjIwMTUtMDItMjAgMTY6MjI6MjMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IHNldCBwYWRzIG5lZWQtcGFyZW50IGZsYWcgdG8gZmFsc2Ugd2hlbiByZW1vdmluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxOTExNTU0Y2ZmMmM0YTExNzcyYjU0MWE4MjE1YTgwYzcyOGIxMDk3LgoJICBUaGlzIGJyZWFrcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBHU1RfUEFEX0ZMQUdfTkVFRF9QQVJFTlQsIHRoZSByZWFzb24gZm9yIHRoaXMKCSAgZmxhZyBpcyB0aGF0IGlmIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSBhIHJ1bm5pbmcgZWxlbWVudCwgeW91IGRvbid0IHdhbnQKCSAgZnVuY3Rpb25zIChzdWNoIGFzIGNoYWluIG9yIGV2ZW50KSB0byBiZSBjYWxsZWQgb24gdGhlIHBhZCB3aXRob3V0IGEgcGFyZW50IHNldC4KCSAgVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSByZW1vdmUgYSByZXF1ZXN0IG9yIHNvbWV0aW1lcyBwYWQgZnJvbSBhIHJ1bm5pbmcgZWxlbWVudC4KCSAgSSBkb24ndCBzZWUgdGhlIGNvZGUgdGhhdCBjYXVzZWQgdGhpcyBpbiB0c2RlbXV4LCBidXQgaWYgaXQgbmVlZHMgdG8gdW5zZXQKCSAgdGhlIGZsYWcgb24gcmVtb3ZlLCBpdCBzaG91bGQgZG8gaXQgaXRzZWxmIGFuZCB0aGVuIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXJlbnQKCSAgZXhpc3RzIGluIGFueSBwYWQgZnVuY3Rpb24uCgoyMDE1LTAyLTE5IDEyOjE3OjE1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogY2FzdCBlbGVtZW50IGluIEFTU0VSVF9TRVRfU1RBVEUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ3NzcKCjIwMTUtMDItMTkgMDE6MTY6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIGEgc2VwYXJhdGUgcXVlcnkgZm9yIHVwc3RyZWFtIHBhZHMgYW5kIGxldCBpdCBmYWlsIGlmIG9uZSB1cHN0cmVhbSBxdWVyeSBmYWlscwoKMjAxNS0wMi0xOSAwMToxMjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiB0aGUgbGF0ZW5jeSBxdWVyeSBmYWlscyBmb3Igb25lIG9mIHRoZSBwYWRzLCBpdCBmYWlscyBvdmVyYWxsCgoyMDE1LTAyLTE4IDExOjA1OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVudXNlZCBib29sZWFuIHBhcmFtZXRlciBmcm9tIGludGVybmFsIGZ1bmN0aW9ucwoKMjAxNS0wMi0xNyAxMjoxMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgdW5pdCB0ZXN0IGZvciBidWZmZXIgbGlzdCBhbmQgdGltZSBsZXZlbCBoYW5kbGluZwoKMjAxNS0wMi0xNyAxMTo0NDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCjIwMTUtMDItMTcgMTE6NDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENvdW50IHRoZSBudW1iZXIgb2YgYnVmZmVycyBpbiBhIGJ1ZmZlciBsaXN0IGZvciB1cGRhdGluZyB0aGUgY3VycmVudCBsZXZlbHMKCSAgaW5zdGVhZCBvZiBqdXN0IGFzc3VtaW5nIG9uZSBidWZmZXIuCgoyMDE1LTAyLTE3IDIwOjQ3OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogcmV2aXZlIGFzeW5jIGRlbGl2ZXJ5IG1lc3NhZ2UgYmVmb3JlIGJ1cyB0aHJlYWQgY2FuIHJ1biB1bnJlZgoJICBSZXZpdmUgbWVzc2FnZSBpbiBkaXNwb3NlIGhhbmRsZXIgYmVmb3JlIHdlIHNpZ25hbCB0aGUgYnVzIHRocmVhZCwKCSAgb3RoZXJ3aXNlIHRoZSBidXMgdGhyZWFkIG1pZ2h0IGJlIHdva2VuIHVwIGFuZCB1bnJlZiB0aGUgbWVzc2FnZQoJICBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIHJldml2ZSBpdCB5ZXQuCgoyMDE1LTAyLTE2IDIzOjAyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogYnVzOiBhZGQgdW5pdCB0ZXN0IGZvciBhc3luYyBtZXNzYWdlIGRlbGl2ZXJ5CgoyMDE1LTAyLTE2IDIyOjM5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZSwgYnVzOiBmaXggYXN5bmMgbWVzc2FnZSBkZWxpdmVyeQoJICBBc3luYyBtZXNzYWdlIGRlbGl2ZXJ5ICh3aGVyZSB0aGUgcG9zdGluZyB0aHJlYWQgZ2V0cyBibG9ja2VkCgkgIHVudGlsIHRoZSBtZXNzYWdlIGhhcyBiZWVuIHByb2Nlc3NlZCBhbmQvb3IgZnJlZWQpIHdhcyBwcmV0dHkKCSAgbXVjaCBjb21wbGV0ZWx5IGJyb2tlbi4KCSAgRm9yIG9uZSwgZG9uJ3QgdXNlIEdNdXRleCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHRvIGNoZWNrCgkgIHdoZXRoZXIgYSBtdXRleCBoYXMgYmVlbiBpbml0aWFsaXplZCBvciBub3QsIGVzcC4gbm90CgkgIGltcGxlbWVudGF0aW9uIGRldGFpbHMgdGhhdCBkb24ndCBob2xkIHRydWUgYW55IG1vcmUgd2l0aAoJICBuZXdlciBHTGliIHZlcnNpb25zIHdoZXJlIGF0b21pYyBvcHMgYW5kIGZ1dGV4ZXMgYXJlIHVzZWQKCSAgKHNwb3R0ZWQgYnkgSm9zZXAgVG9ycmFzKS4gVGhpcyBsZWQgdG8gYXN5bmMgbWVzc2FnZQoJICBkZWxpdmVyeSBubyBsb25nZXIgYmxvY2tpbmcgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zIG9uCgkgIExpbnV4LgoJICBTZWNvbmRseSwgYWZ0ZXIgYXN5bmMgZGVsaXZlcnkgZG9uJ3QgZnJlZSBtdXRleC9HQ29uZAoJICBlbWJlZGRlZCBpbnNpZGUgdGhlIGp1c3QtZnJlZWQgbWVzc2FnZSBzdHJ1Y3R1cmUuCgkgIFVzZSBhIG5ldyAocHJpdmF0ZSkgbWluaSBvYmplY3QgZmxhZyB0byBzaWduYWwgR3N0TWVzc2FnZQoJICB0aGF0IHRoZSBtZXNzYWdlIGJlaW5nIGZyZWVkIGlzIHBhcnQgb2YgYW4gYXN5bmMgZGVsaXZlcnkKCSAgb24gdGhlIGJ1cyBzbyB0aGF0IHRoZSBkaXNwb3NlIGhhbmRsZXIgY2FuIGtlZXAgdGhlIG1lc3NhZ2UKCSAgYWxpdmUgYW5kIHRoZSBidXMgY2FuIGZyZWUgaXQgb25jZSBpdCdzIGRvbmUgY2xlYW5pbmcgdXAKCSAgc3R1ZmYuCgoyMDE1LTAyLTE2IDE5OjI0OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbmljZXIgYnVmZmVyIG9mZnNldCBwcmludGluZyB3aGVuIG9mZnNldHMgYXJlIG5vdCBzZXQKCSAgUHJpbnQgdW5zZXQgb2Zmc2V0cyBhcyAnbm9uZScgaW5zdGVhZCBvZiBodW1vbmdvdXMgbnVtYmVycywKCSAgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMTUtMDItMTYgMTE6MzU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBpbml0aWFsaXplIEdWYWx1ZSB0byBhIHR5cGUgb25jZSwgbm90IG9uIGV2ZXJ5IHJldHJ5CgkgIE90aGVyd2lzZSB3ZSdsbCBnZXQgd2FybmluZ3MgbGlrZSB0aGlzOgoJICBjYW5ub3QgaW5pdGlhbGl6ZSBHVmFsdWUgd2l0aCB0eXBlICdnYm9vbGVhbicsIHRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkIGFzICdnYm9vbGVhbicKCjIwMTUtMDItMTQgMTI6MTU6MDMgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IGNoZWNrIHVyaSBiZWZvcmUgdXNpbmcgaXQgaW4gZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX2ludGVybmFsCgkgIElmIGFuIGVsZW1lbnQgaW1wbGVtZW50cyB3cm9uZ2x5IHRoZSBVUkkgcXVlcnkgYW5kIHNldCB0aGUgdXJpIHRvIE5VTEwgYW5kIGlmCgkgIHRoZSBlbGVtZW50IGNhbGxzIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZCBhdCBzb21lIHBvaW50LCBpdCB3aWxsIGxlYWQgdG8gY3Jhc2gKCSAgYXMgdGhlIHVyaSBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgTlVMTCBpbiB0aGUgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX2ludGVybmFsCgkgIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTIwCgoyMDE1LTAyLTEzIDE5OjQzOjI0ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBEbyBub3Qgd3JvbmdseSBzZW5kIHZhbHVlLXJlbW92ZWQKCSAgQW5kIGF2b2lkIGZyZWVpbmcgc29tZXRoaW5nIHdlIGRvIG5vdCBvd24KCjIwMTUtMDItMDQgMTU6MDY6MTcgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IFNldCBHU1RfVkFMSURBVEVfUExVR0lOX1BBVEgKCjIwMTUtMDItMTIgMTM6MzQ6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZG9jdW1lbnRhdGlvbiBhbmQgZGVidWcgbWVzc2FnZSBhZnRlciBsYXRlbmN5IHVwZGF0ZXMKCSAgQ2hhbmdlcyBkb2NzIGFuZCBtZXNzYWdlIGFjY29yZGluZyB0byBsYXRlbmN5IGhhbmRsaW5nIGZpeAoKMjAxNS0wMi0xMiAxNDo1MDoxNSArMDAwMCAgRnLDqWTDqXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IHVzZSBnX2FzY2lpX3N0cnRvdWxsKCkgdG8gY29udmVydCBzaXplIHN0cmluZyBpbiB1cmkKCSAgc3NjYW5mKCkgZG9lc24ndCBoYW5kbGUgR19HVUlOVDY0X0ZPUk1BVCB3ZWxsIG9uIG1pbmd3NjQgaXQKCSAgYXBwZWFycywgbGVhZGluZyB0byBjb21waWxlciB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDAzNAoKMjAxNS0wMi0xMiAxNDowMzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKSBjYW4gcmV0dXJuIE5VTEwgaWYgdGhlcmUgYXJlIG5vbmUKCjIwMTUtMDItMTIgMTQ6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBGQUxTRSBmb3IgcG9pbnRlcnMKCjIwMTUtMDItMTIgMTM6NTU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wbGVtZW50IG1vcmUgdXNlZnVsIGRlZmF1bHQgaGFuZGxpbmcgZm9yIHRoZSBMQVRFTkNZIHF1ZXJ5CgkgIEJlZm9yZSB3ZSBqdXN0IHRvb2sgdGhlIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBwYWQgdGhhdCBzdWNjZWRlZCB0aGUgcXVlcnksCgkgIG5vdyB3ZSBhY2N1bXVsYXRlIHRoZSByZXN1bHRzIG9mIGV2ZXJ5IHNpbmtwYWQgcHJvcGVybHkgYW5kIHJldHVybiB0aGF0CgkgIHJlc3VsdC4KCjIwMTUtMDItMTIgMTE6MjY6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkZXNpZ24vcGFydC1sYXRlbmN5OiBNaW5vciBsb2dpYyBmaXgKCSAgVGhlIG1heGltdW0gbGF0ZW5jeSB3aWxsIGJlIHRoZSBlbGVtZW50J3MgbWluaW11bSBsYXRlbmN5IG9yIGJpZ2dlciwKCSAgbm90IGJpZ2dlciB0aGFuIHRoZSBlbGVtZW50J3MgbWluaW11bSBsYXRlbmN5IG9yIGJpZ2dlci4KCjIwMTUtMDItMTEgMTM6NDE6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBJbXByb3ZlIGFuZCBmaXggTEFURU5DWSBxdWVyeSBoYW5kbGluZwoJICBUaGlzIG5vdyBmb2xsb3dzIHRoZSBkZXNpZ24gZG9jcyBldmVyeXdoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTA2CgoyMDE1LTAyLTExIDEyOjIwOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZGVzaWduL3BhcnQtbGF0ZW5jeTogQWRkIG1vcmUgZGV0YWlscyBhYm91dCBtaW4vbWF4IGxhdGVuY3kgaGFuZGxpbmcKCSAgVGhlc2UgZG9jcyBtaXNzZWQgbWFueSBkZXRhaWxzIHRoYXQgd2VyZSBub3Qgb2J2aW91cyBhbmQgYmVjYXVzZSBvZiB0aGF0CgkgIGhhbmRsZWQgaW4gYSBmZXcgZGlmZmVyZW50LCBpbmNvbXBhdGlibGUgd2F5cyBpbiBkaWZmZXJlbnQgZWxlbWVudHMgYW5kIGJhc2UKCSAgY2xhc3Nlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDEwNgoKMjAxNS0wMi0wNyAwNToxNjoyMyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IEZpeCBjbG9jayByZWdyZXNzaW9uIHRlc3QKCSAgRml4IHVwIHRoZSB2YWx1ZXMgdGhlIHRlc3QgaXMgY2hlY2tpbmcgZm9yIG5vdyB0aGF0CgkgIHRoZSBjbG9jayByZWdyZXNzaW9uIHJldHVybnMgcGFyYW1ldGVycyBzdGFydGluZyBmcm9tCgkgIHRoZSBlbmQgb2YgdGhlIHJlZ3Jlc3Npb24gcmFuZ2UuCgoyMDE1LTAyLTA3IDA0OjIyOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRG9uJ3QgdXBkYXRlIHRoZSBjbG9jayB3aGVuIGl0IGRlc3luY2gKCSAgQWRkIGEgaG9sZCBvZmYgd2hlbiB0aGUgY2xvY2sgY2FsaWJyYXRpb24gc3VkZGVubHkgbG9zZXMgc3luY2gsCgkgIGFzIGl0IG1heSBiZSBhIGdsaXRjaCwgYnV0IGFsc28gbWFrZSBzdXJlIHdlIHVwZGF0ZSBpZiBpdCBzdGF5cwoJICBkZXN5bmNoZWQgZm9yIG1vcmUgdGhhbiBhIGZldyBzZWNvbmRzCgoyMDE1LTAyLTA2IDA2OjA3OjQzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogTWFrZSB0aGUgUlRUIGF2ZXJhZ2UgaWdub3JlIGxhcmdlIHZhbHVlcyBtb3JlIGZvcmNlZnVsbHkuCgkgIFNtb290aCBsYXJnZXIgUlRUcyBhIGxpdHRsZSBoYXJkZXIsIHNvIGV4Y2Vzc2l2ZWx5IGxhcmdlIHZhbHVlcwoJICBwZXJ0dXJiIHRoZSBhdmVyYWdlIGEgYml0IGxlc3MsIGFuZCB0aGVyZWZvcmUgZ2V0IGZpbHRlcmVkIG91dAoJICBtb3JlIHN0cm9uZ2x5CgoyMDE1LTAyLTA1IDIyOjU1OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSAgY2xvY2s6IE1ha2UgbGluZWFyIHJlZ3Jlc3Npb24geC95IGJhc2Ugc3RhcnQgZnJvbSBtYXhpbXVtIG9ic2VydmF0aW9uLgoJICBQcm9qZWN0IHRoZSByZXN1bHRzIG9mIHRoZSBsaW5lYXIgcmVncmVzc2lvbiB0byB0aGUgZW5kIG9mIHRoZQoJICByZWdyZXNzaW9uIHJhbmdlLCBzbyB0aGV5J3JlIG1vcmUgZGlyZWN0bHkgY29tcGFyYWJsZSB0byByZXN1bHRzCgkgIGdvaW5nIGZvcndhcmQKCjIwMTUtMDItMDUgMTM6NDk6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkICJvZmZzZXQiIHByb3BlcnR5IHRvIGdvIHdpdGggZ3N0X3BhZF9zZXRfb2Zmc2V0KCkKCSAgU28gd2UgY2FuIHNldCB0aGUgb2Zmc2V0IHZpYSBnc3QtbGF1bmNoLgoKMjAxNS0wMi0wMiAwODoyMjo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgbW9yZSBkZXRhaWwgdG8gbG9nZ2luZyB3aGVuIG5vdCBsb2FkaW5nIGEgcGx1Z2luCgkgIEltcHJvdmUgdGhlIGxvZyBtZXNzYWdlcyBhbmQgYWRkIGUuZyB0aGUgdmVyc2lvbiBudW1iZXIgd2UgY2hlY2tlZC4KCjIwMTUtMDItMDIgMTc6Mzc6NDQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBhIHR5cG8gaW4gYSBkb2NzdHJpbmcuCgoyMDE1LTAyLTAxIDE0OjIzOjI2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGJ1aWxkOiBDaGVjayB0aGF0IF9NU0NfVkVSIG1hY3JvIGlzIGRlZmluZWQKCjIwMTUtMDItMDEgMDM6Mzk6MDMgKzAyMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IEFkZCB0aHJlYWQgbmFtZSBzdXBwb3J0IG9uIE9TIFggYW5kIGlPUwoKMjAxNS0wMS0yOSAxNjozNzowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSAgY2xvY2s6IERvbid0IHVzZSBpbnZhbGlkIG9iamVjdHMgZm9yIEdTVF9ERUJVR19PQkpFQ1QoKQoJICBOb3Qgc3VyZSB3aGF0ICJjbG9jayIgYWN0dWFsbHkgaXMgaGVyZSwgaXQgbXVzdCBiZSBzb21ldGhpbmcgZGVmaW5lZCBieSBvbmUgb2YKCSAgdGhlIGhlYWRlcnMgdGhhdCBhcmUgaW5jbHVkZWQuCgoyMDE1LTAxLTI5IDEyOjEwOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvY3VtZW50IHRoYXQgZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbigpIGFjY2VwdHMgLTEgYXMgc2l6ZSB0byBjb3B5IHVudGlsIHRoZSBlbmQKCSAgSXQncyBqdXN0IGEgd3JhcHBlciBhcm91bmQgZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKSBhZnRlciBhbGwuCgoyMDE0LTEyLTA5IDE2OjI4OjU2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IEFkZCBuZXcgc2tpcCBmbGFncyBmb3IgY2xhcmlmeWluZyB0cmljayBtb2RlIHBsYXliYWNrLgoJICBBZGQgR1NUX1NFRUtfRkxBR19UUklDS01PREVfS0VZX1VOSVRTIGFuZAoJICBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERV9OT19BVURJTywgYW5kIHJlbmFtZSBHU1RfU0VFS19GTEFHX1NLSVAKCSAgdG8gR1NUX1NFRUtfRkxBR19UUklDS01PREUgKHdpdGggYmFja3dhcmRzIGNvbXBhdCBkZWZpbmUpLgoJICBEbyB0aGUgc2FtZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgU0VHTUVOVCBmbGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTY2NgoKMjAxNS0wMS0yMyAwODo1OToyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBmaXggYW5vdGhlciB0eXBvIGluIHRoZSBkb2NzCgoyMDE1LTAxLTIyIDIzOjEwOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGluZGVudGlvbgoKMjAxNS0wMS0yMSAxNDoxMDowMiArMDAwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBuZXcgVVJJIHBhcnNpbmcgdGVzdHMgYmFzZWQgb24gR05ldCdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMjEgMTQ6MDk6NDUgKzAwMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggcGFyc2luZyBpc3N1ZXMKCSAgTWFrZSBob3N0IElQcyBpbiBzcXVhcmUgYnJhY2tldHMgc3RvcmUgb25seSB0aGUgSVAsIGkuZS4gc3RyaXAgdGhlIGJyYWNrZXRzLgoJICBTdHJpcCBsZWFkaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBVUklzLgoJICBGYWlsIHBhcnNpbmcgd2hlbiBob3N0IHBhcnQgZG9lcyBub3QgbWF0Y2ggYW55IHZhbGlkIGZvcm1hdHMgZnJvbSBSRkMzOTg2LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTE5IDE5OjE1OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCBwYXJzaW5nIHVuaXQgdGVzdCBiYXNlZCBvbiBHTmV0J3MKCSAgUGx1cyBzb21lIG5ldyBVUklzIHRvIHBhcnNlLgoJICBodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2FyY2hpdmUvZ25ldC9wbGFpbi90ZXN0cy9jaGVjay9nbmV0L2duZXR1cmkuYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTIyIDExOjI5OjE4ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggZG9jIG9mIEdTVF9DSEVDS1MgYW5kIEdTVF9DSEVDS1NfSUdOT1JFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMzMzUKCjIwMTUtMDEtMjEgMTg6MDc6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEFkZCBfZmFpbF91bmxlc3MoKSBjb21wYXRpYmlsaXR5IGZ1bmN0aW9uIGFyb3VuZCBfY2tfYXNzZXJ0X2ZhaWxlZCgpCgkgIFdlIGV4cG9ydGVkIHRoaXMgaW4gPCAxLjUgYW5kIGl0IHdhcyBhdXRvbWF0aWNhbGx5IHVzZWQgYnkgbWFueSBtYWNyb3MKCSAgZnJvbSB0aGUgaGVhZGVyLiBLZWVwIGl0IGV4cG9ydGVkIGZvciBub3cuCgoyMDE1LTAxLTIxIDE0OjEyOjIyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IElubGluZSBhcHBseV9wYWRfb2Zmc2V0KCkKCSAgQXZvaWQgZG9pbmcgYSBmdW5jdGlvbiBjYWxsIGZvciBzb21ldGhpbmcgd2hpY2ggd2lsbCBtb3N0bHkgYmUgdW51c2VkCgoyMDE1LTAxLTIxIDE0OjEwOjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDE1LTAxLTIxIDExOjQ1OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBQUk9CRV9OT19EQVRBIG1hY3JvCgkgIFRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoZSBtYWNybyB3YXMgYWx3YXlzIHVzZWQgd2l0aCAncmV0JyBhcyB0aGUgZGVmYXVsdHZhbAoJICBhcmd1bWVudC4KCSAgVGhpcyB3b3VsZCByZXN1bHQgaW4gdGhlIG1hY3JvIGV2ZW50dWFsbHkgZXhwYW5kaW5nIHRvCgkgIGlmIChHX1VOTElLRUxZIChyZXQgIT0gcmV0ICYmIHJldCAhPSBHU1RfRkxPV19PSykpCgkgIC4uLiByZXQgIT0gcmV0IHdpbGwgYWx3YXlzIGZhaWwsIGFuZCB0aGVyZWZvcmUgd2UnZCBuZXZlciBjYWxsIHRoZQoJICBmb2xsb3dpbmcgbGluZS4KCSAgSW5zdGVhZCBvZiB0aGF0LCBzdG9yZSB0aGUgcHJldmlvdXMgdmFsdWUgbG9jYWxseSBmb3IgY29tcGFyaXNpb24KCjIwMTUtMDEtMjEgMjI6NDQ6NTkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggZG9jcyB0eXBvLiBDbG9jayBidXMgbWVzc2FnZXMgYXJlIEdTVF9NRVNTQUdFX0VMRU1FTlQKCjIwMTUtMDEtMTUgMjI6MzI6MjggKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgcmF0ZSBsaW1pdHMgZm9yIHBvbGxpbmcgYW5kIGZpeCB1cCBza2V3IGxpbWl0cwoJICBBZGQgdGhlIG1pbmltdW0tdXBkYXRlLWludGVydmFsIHByb3BlcnR5IHRvIHRoZSBjbG9jaywgd2l0aCBhIGRlZmF1bHQKCSAgb2YgNTBtcyBhbmQgZG9uJ3Qgc2VuZCBwb2xsaW5nIHJlcXVlc3RzIGZhc3RlciB0aGFuIHRoYXQuIFRoYXQgaGVscHMgdG8KCSAgZW5zdXJlIHdlIHNwcmVhZCB0aGUgaW5pdGlhbCBvYnNlcnZhdGlvbnMgb3V0IGEgbGl0dGxlIC0gc3RhcnR1cCB0YWtlcwoJICBhIGxpdHRsZSBsb25nZXIsIGJ1dCB0cmFja2luZyBpcyBtb3JlIHN0YWJsZS4KCSAgTW92ZSB0aGUgZGlzY29udCBza2V3IGxpbWl0aW5nIGNvZGUgaW5zaWRlIGFuIGlmIHN0YXRlbWVudCwgc28gdGhhdAoJICBpdCdzIG9ubHkgZG9uZSB3aGVuIHRoZSBsaW5lYXIgcmVncmVzc2lvbiBzdWNjZWVkcyBhbmQgdGhlIGNsb2NrCgkgIHBhcmFtZXRlcnMgbWlnaHQgYWN0dWFsbHkgY2hhbmdlLgoKMjAxNS0wMS0xNSAxMDowNTozMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IEltcHJvdmUgc2xhdmluZyByZWdyZXNzaW9uLgoJICBBZGQgZG9tYWluIGNoZWNrcyBmb3IgdGhlIGlucHV0IHZhbHVlcywgYW5kIGEgdmFyaWFibGUgcHJlY2lzaW9uCgkgIGNhbGN1bGF0aW9uIHRoYXQgbG9vcHMgaWYgbmVjZXNzYXJ5IHRvIGVuc3VyZSB3ZSBuZXZlciBvdmVyZmxvdwoJICBhY2N1bXVsYXRvcnMgYW5kIHRoZW4gc2lsZW50bHkgcHJvZHVjZSBnYXJiYWdlIHJlc3VsdHMuCgkgIE1ha2UgdGhlIChub24tcHVibGljKSBsaW5lYXIgcmVncmVzc2lvbiBmdW5jdGlvbiBhdmFpbGFibGUgZm9yCgkgIHVuaXQgdGVzdGluZyBieSBwdXR0aW5nIGl0IGluIGEgc2VwYXJhdGUgc291cmNlIGZpbGUgdGhlIHRlc3QKCSAgY2FuIGluY2x1ZGUuIEFkZCBhIHVuaXQgdGVzdCB0aGF0IHRoZSBuZXcgcmVncmVzc2lvbiBmdW5jdGlvbgoJICBwcm9kdWNlcyBzZW5zaWJsZSByZXN1bHRzIGZvciBzZXZlcmFsIGlucHV0cyB0YWtlbiBmcm9tIHJlYWwtd29ybGQKCSAgY2FwdHVyZXMuCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9uZXRjbG9jay1jbGllbnQuYzoKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svbmV0Y2xvY2stc2VydmVyLmM6CgkgIG5ldGNsb2NrOiBBZGQgc2ltcGxlIG5ldHdvcmsgY2xvY2sgc2VydmVyIGFuZCBjbGllbnQgZXhhbXBsZXMKCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgc2VuZGluZyBzdGF0aXN0aWMgYnVzIG1lc3NhZ2VzIGFuZCBkaXNjb250IGxpbWl0cwoJICBBbGxvdyBzZXR0aW5nIGEgR3N0QnVzIG9uIHRoZSBuZXR3b3JrIGNsb2NrIGNsaWVudAoJICB2aWEgYSBuZXcgJ2J1cycgb2JqZWN0IHByb3BlcnR5LiBJZiBhIGJ1cyBpcyBzZXQsIHRoZQoJICBjbG9jayB3aWxsIG91dHB1dCBhbiBlbGVtZW50IG1lc3NhZ2UgY29udGFpbmluZyBzdGF0aXN0aWNzCgkgIGFib3V0IG5ldyBjbG9jayBvYnNlcnZhdGlvbnMgYW5kIHRoZSBjbG9jayBjb3JyZWxhdGlvbi4KCSAgV2hlbiB0aGUgbG9jYWwgY2xvY2sgaXMgc3luY2hyb25pc2VkIHdpdGggdGhlIHJlbW90ZSwgbGltaXQgdGhlCgkgIG1heGltdW0ganVtcCBpbiB0aGUgY2xvY2sgYXQgYW55IHBvaW50IHRvIGJlIG9uZSBhdmVyYWdlIFJUVCB0bwoJICB0aGUgc2VydmVyLiBBbHNvLCBwdWJsaXNoIGluIHRoZSBidXMgbWVzc2FnZSB3aGV0aGVyIHdlIGFyZQoJICBzeW5jaGVkIHdpdGggdGhlIHJlbW90ZSBvciBub3QuCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbl91bmFwcGxpZWQoKQoJICBnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uX3VuYXBwbGllZCgpIGFkZHMgYSBuZXcgbWFzdGVyL3NsYXZlIGNsb2NrCgkgIG9ic2VydmF0aW9uIGFuZCBydW5zIHRoZSByZWdyZXNzaW9uIHdpdGhvdXQgYWN0aXZhdGluZyB0aGUgbmV3CgkgIGNhbGlicmF0aW9uIHJlc3VsdHMuCgoyMDE0LTEyLTE2IDIyOjUxOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkKCSAgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgdXNlcyBkaXJlY3RseSBwYXNzZWQgY2FsaWJyYXRpb24KCSAgcGFyYW1ldGVycywgaW5zdGVhZCBvZiB1c2luZyB0aGUgY2xvY2sncyBjdXJyZW50IGNhbGlicmF0aW9uLAoJICBhbGxvd2luZyBmb3IgY2FsY3VsYXRpb25zIHVzaW5nIHBlbmRpbmcgb3Igb2xkIGNhbGlicmF0aW9uIHBhcmFtcwoKMjAxNS0wMS0yMSAwOTo0NToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBDb25zdGlmeSBuZWdvdGlhdGlvbiBtb2RlIEdFbnVtVmFsdWUgdGFibGUKCjIwMTUtMDEtMjAgMTA6MzU6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBHc3RFdmVudCBkb2NzCgkgIHNlbmQgLT4gc2VudAoKMjAxNS0wMS0yMCAwOToxOToxMCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogUmVtb3ZlIGdub25saW4gZnJvbSB0aGUgc2NyaXB0cwoJICBJdCBpcyBub3QgbWFpbnRhaW4gYW55bW9yZSBhbmQgaXRzIGZlYXR1cmUgYXJlIG5vdyBpbnNpZGUgdGhlIEdTdHJlYW1lcgoJICBFZGl0aW5nIFNlcnZpY2VzIChmb3IgdGhlIHRpbWUgYmVpbmcpLgoKMjAxNS0wMS0xNiAxOToxNzozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQYXNzIHN0cnVjdHMgd2UgcGxhbiB0byBtb2RpZnkgYXJvdW5kIGJ5IHBvaW50ZXIsIG5vdCB2YWx1ZQoJICBPdGhlcndpc2UgdGhlIHN0cnVjdCBpcyBnb2luZyB0byBiZSBjb3BpZWQsIHdoaWNoIGlzIG5vdCB2ZXJ5IGVmZmljaWVudC4gQW5kCgkgIGFsc28gaGFzIHRoZSBuaWNlIHNpZGUgZWZmZWN0IHRoYXQgbW9kaWZpY2F0aW9ucyBvZiB0aGUgc3RydWN0IG1pZ2h0IGJlCgkgIGRvbmUgaW4gYSBjb3B5LCBhbmQgd2UgbGF0ZXIgdXNlIHRoZSBvcmlnaW5hbCBzdHJ1Y3Qgd2l0aG91dCB0aGUgY2hhbmdlcy4KCSAgQ2F1c2VkIExBVEVOQ1kgcXVlcmllcyB0byBhbHdheXMgcmV0dXJuIHRoZSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgaW4gb25lIG9mIG15CgkgIHRlc3RzLCBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdmFsdWVzIHJlcG9ydGVkIGJ5IGNoaWxkIGVsZW1lbnRzLgoKMjAxNS0wMS0xNCAxMDo1MjoxMSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBzZW5kIGdhcCBldmVudHMgd2hlbiBkcm9wcGluZyBidWZmZXJzCgoyMDE1LTAxLTEzIDE4OjExOjM5ICswMDAwICBQaGlsbGlwIFdvb2QgPHBoaWxsaXAud29vZEBkdW5lbG0ub3JnLnVrPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGZpeCBpbmNvcnJlY3QgcHJlc2V0IHZlcnNpb24gY29tcGFyaXNvbgoJICBVc2UgYXBwX3ZlcnNpb24gaWYgdGhlcmUgYXJlIG5vIHN5c3RlbSBwcmVzZXRzLCBzbyB0aGF0IGlmIHRoZQoJICBhcHBsaWNhdGlvbiBwcmVzZXRzIGFyZSBuZXdlciB0aGFuIHRoZSB1c2VyIHByZXNldHMgdGhleSBhcmUgbWVyZ2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyODc3CgoyMDE1LTAxLTEyIDE2OjAzOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcgoJICBDSUQgMTI2MjI4NgoKMjAxNS0wMS0xMiAxNTo1NTo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjJjNmI5NSB0byBiYzc2YThiCgoyMDE1LTAxLTExIDIzOjAwOjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGZpeCBzb3J0aW5nIHByZXNldHMKCSAgVGhlIGdsaWIgZG9jcyBhcmUgbm90IGNsZWFyIG9uIHRoaXMsIGJ1dCB0aGUgcXNvcnQgbWFuLXBhZ2UgaXMgLSB0aGUKCSAgR0NvbXBhcmVEYXRhRnVuYyBkb2VzIG5vdCBnZXQgdGhlIHN0cmluZ3MsIGJ1dCBwb2ludGVycyB0byB0aGVtLgoKMjAxNC0xMi0zMSAxODo1MjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggc2lsbHkgR1F1ZXVlIGl0ZXJhdGlvbiBjb2RlCgkgIE5vdCBhY3RpdmUgYnkgZGVmYXVsdCB0aG91Z2guCgoyMDE1LTAxLTA0IDIzOjI0OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGRvbid0IHJldHVybiBlbXB0eSBwcmVzZXQgbGlzdHMKCSAgQWRkIGEgc2hvcnRjdXQgZm9yIHRoZSBjYXNlcyB3aGVyZSBhbiBlbGVtZW50IGltcGxlbWVudHMgdGhlIHByZXNldCBpZmFjZSBidXQKCSAgaGFzIG5vIHByZXNldHMgYW5kIHJldHVybiBOVUxMIGluc3RlYWQgb2YgYW4gZW1wdHkgbGlzdCBpbiB0aGF0IGNhc2UuCgoyMDE1LTAxLTA0IDIzOjA4OjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IG9ubHkgcHJpbnQgcHJlc2V0cyBsaW5lIGlmIG51bS1wcmVzZXRzID4gMAoJICBBbHNvIGNoZWNrIGZvciBhbiBlbXB0eSBzdHJ2LgoKMjAxNS0wMS0wNCAyMjo1MTowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggb3V0cHV0IGZvciAtYQoJICBVc2Ugbl9wcmludCB0byBlbnN1cmUgYWxsIGxpbmVzIGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBlbGVtZW50IG5hbWUuCgoyMDE0LTEyLTI5IDExOjU0OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBpZ25vcmUgbGliY2hlY2sgaGVhZGVycyB0aGF0IHVzZSBkb3h5Z2VuIGNvbW1lbnRzCgoyMDE0LTEyLTI5IDExOjUyOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogZml4IHR3byBndGstZG9jIHdhcm5pbmdzCgkgIE9uZSBieSBjb3JyZWN0aW5nIHRoZSBlbmQtb2YtY29tbWVudCBtYXJrZXIgYW5kIG9uZSBieSBtYWtpbmcgc3VyZSB0aGUgZnVuY3Rpb24KCSAgcHJvdG90eXBlIGluIHRoZSBoZWFkZXIgaXMgaW4gc3luYyB3aXRoIHRoZSBjIGZpbGUgYW5kIGRvYy1ibG9iLgoKMjAxNC0xMi0yNiAyMzoyMjozMCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIG1pc3NpbmcgaW50ZXJmYWNlcyB0byBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIwNTcKCjIwMTQtMTItMjcgMTU6MTU6MzAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IG91dGRhdGVkIGV4YW1wbGUgY29kZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24KCSAgR3N0SXRlcmF0b3Igbm8gbG9uZ2VyIHJldHVybnMgYSByZWZjb3VudGVkIGdwb2ludGVyCgoyMDE0LTEyLTI0IDEzOjQ2OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc2FtZSB3YWl0aW5nIGZ1bmN0aW9uIGZvciBFT1MgYW5kIG5vbi1FT1Mgd2FpdGluZwoKMjAxNC0xMi0yNCAxMzo0NDowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWtlIHVwIGFsbCB3YWl0aW5ncyBwYWRzIGRpcmVjdGx5IGlmIHdlIGZvcndhcmQgdGhlIEVPUyBldmVudAoJICBPdGhlcndpc2UgdGhleSBtaWdodCB3YWl0IGEgYml0IGxvbmdlciB1bm5lY2Vzc2FyaWx5LgoJICBBbHNvIGRvIHNvbWUgbWlub3IgY2xlYW51cC4KCjIwMTQtMTItMjQgMTA6MTM6NTEgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IEJsb2NrIHdoZW4gcmVjZWl2aW5nIGFuIEVPUyBldmVudCBvbiBhIGRlYWN0aXZhdGVkIHBhZAoJICAuLi4gYW5kIG9ubHkgdW5ibG9jayB3aGVuIGVpdGhlciBhKSB0aGUgcGFkIGJlY29tZXMgYWN0aXZlIGFuZCB0aGUgZXZlbnQKCSAgc2hvdWxkIGJlIGZvcndhcmRlZCBvciBiKSB0aGUgYWN0aXZlIHBhZCB3ZW50IEVPUyBpdHNlbGYuCgkgIE90aGVyd2lzZSBpdCBjYW4gaGFwcGVuIHRoYXQgd2Ugc3dpdGNoIGZyb20gYSBsb25nZXIgdHJhY2sgdGhhdCBpcyBub3QgRU9TIHlldAoJICB0byBhIHNob3J0ZXIgdHJhY2sgdGhhdCBhbHJlYWR5IGlzIEVPUywgYnV0IHRoZSBzaG9ydGVyIHRyYWNrIHdvbid0IGhhdmUgYW55CgkgIHBvc3NpYmlsaXR5IHRvIHNlbmQgaXRzIEVPUyBldmVudCBkb3duc3RyZWFtIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA5NDkKCjIwMTQtMTItMjMgMTI6NTQ6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogS2VlcCBhIHJlZiBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBzaW5rcGFkIGFyb3VuZAoJICBPdGhlcndpc2Ugd2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHRoZSBwb2ludGVyIHBvaW50cyB0byBhIHN0aWxsIGV4aXN0aW5nCgkgIHBhZCBpbnN0YW5jZSBhZnRlciByZWxlYXNpbmcgdGhlIGxvY2suCgoyMDE0LTEyLTIzIDEyOjUzOjU4ICswMTAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEdldCB0aGUgYWN0aXZlIHNpbmtwYWQgYWdhaW4gYWZ0ZXIgdGFraW5nIHRoZSBsb2NrIHdoZW4gaGFuZGxpbmcgZXZlbnRzCgkgIEl0IG1pZ2h0IGhhdmUgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE4OTMKCjIwMTQtMTItMjIgMTM6MDg6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogU2hvcnQtY2lyY3VpdCBDQVBTIHF1ZXJ5IGhhbmRsaW5nIGlmIHRyYW5zZm9ybV9jYXBzIHJldHVybnMgRU1QVFkgY2FwcwoJICBCb3RoIGZvciB0aGUgcGVlciBmaWx0ZXIgY2FwcyBhbmQgdGhlIGNvbnZlcnRlZCBjYXBzIGJhc2VkIG9uIHRoZSBwZWVyIGNhcHMuCgkgIElmIHRoZSBwZWVyIGZpbHRlciBjYXBzIGFyZSBFTVBUWSwgdGhlIHBlZXIgY2FwcyBxdWVyeSB3aWxsIGFsc28gcmV0dXJuCgkgIEVNUFRZLiBUaGVyZSdzIG5vIG5lZCB0byBib3RoIGRvd25zdHJlYW0vdXBzdHJlYW0gd2l0aCB0aGlzIHF1ZXJ5LgoKMjAxNC0xMi0yMiAxMTo0NToxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1BSU5UQUlORVJTOgoJICBNQUlOVEFJTkVSUzogVXBkYXRlIG15IG1haWwgYWRkcmVzcwoKMjAxNC0xMi0yMSAxNDoxMjoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHVzZSBhIGNvbnN0YW50IGZvciB0aGUgbWF4IHBhcmFtIGxlbmd0aAoJICBJbXByb3ZlIHJlYWRhYmlsaXR5IGJ5IHVzaW5nIGEgZGVmaW5lIGZvciB0aGUgbWF4LWNoYXJzLiBBbHNvIHVzZSB0aGUgdW5pY29kZQoJICBlbGxpcHNpcyBhcyBkb3QgZmlsZXMgYXJlIHV0Zi04LgoKMjAxNC0xMi0xNSAxNDowMzo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBwcmVzZXQgbmFtZXMKCSAgSWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgcHJlc2V0cyBhbmQgc2hpcHMgc29tZSwgcHJpbnQgdGhlbS4KCSAgRml4ZXMgIzc0MTQyNwoKMjAxNC0xMi0xOSAxMTozNToyNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IEFkZCBuZXcgbWF4aW11bSBsZXZlbCBkZWJ1Z2dpbmcKCSAgQVBJOiBHU1RfTEVWRUxfTUFYCgkgIEJ5IGNvbXBpbGluZyBnc3RyZWFtZXIgKG9yIHBsdWdpbnMpIHdpdGggR1NUX0xFVkVMX01BWCBkZWZpbmVkLCBvbmx5CgkgIHRoZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhdCBvciBiZWxvdyB0aGF0IGxldmVsIHdpbGwgYmUgY29tcGlsZWQgaW4uCgkgIFRoaXMgYWxsb3dzIGNvbXBpbGluZyBpbiBzb21lIGRlYnVnZ2luZyAobGlrZSBlcnJvcnMgYW5kIHdhcm5pbmdzKSB3aGljaAoJICBoZWxwcyBpbiBkZWJ1Z2dpbmcsIGJ1dCB3aXRob3V0IHRoZSBmdWxsIGNwdS9tZW1vcnkgb3ZlcmhlYWQgb2YgYWxsIGRlYnVnZ2luZwoJICBlbmFibGVkLgoKMjAxNC0xMi0xOCAxMjowNDoyMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGZpeCBHSSBhbm5vdGF0aW9uCgkgIEFkZCBtaXNzaW5nIDogdG8gYW5ub3RhdGlvbgoKMjAxNC0xMS0xMyAxNDo1Mzo1OSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGp1bXAgb3ZlciBsYXJnZSBza2lwcyBpbiBwdWxsIG1vZGUKCSAgVGhpcyBieXBhc3NlcyB0aGUgZHVtcGluZyBvZiBidWZmZXJzIHdlIHN0aWxsIGhhdmUgdG8gZG8gaW4gcHVzaCBtb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMDUzCgoyMDE0LTEwLTI1IDE3OjE2OjI1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIGRlYnVndXRpbHM6IFRydW5jYXRlIHBhcmFtZXRlciB2YWx1ZXMgdGhhdCBhcmUgdG9vIGxvbmcKCSAgVGhpcyByZW1vdmVzIHNvbWUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZHVtcHMsIGJ1dCBpbXByb3ZlcyByZWFkYWJpbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE2NQoKMjAxNC0xMi0xOCAxMDo1MzowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZWYxZmZkYyB0byBmMmM2Yjk1CgoyMDE0LTEyLTE2IDE2OjMxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZS9jYXBzOiBBZGQgZ3N0X3tzdHJ1Y3R1cmUsY2Fwc31fZmlsdGVyX2FuZF9tYXBfaW5fcGxhY2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY1CgoyMDE0LTEyLTE2IDE4OjE0OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0IGZvciBmb3JlYWNoKCkgYW5kIG1hcF9pbl9wbGFjZSgpCgoyMDE0LTExLTA3IDExOjE1OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2ZvcmVhY2goKSBhbmQgZ3N0X2NhcHNfbWFwX2luX3BsYWNlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NQoKMjAxNC0xMi0xNiAxNTo1MzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxNC0xMi0xNCAxMjo1NDozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGNoZWNrOiBIYXZlIGF1dG90b29scyBnZW5lcmF0ZSBpbnRlcm5hbC1jaGVjay5oCgkgIFByZXZpb3VzbHkgR1N0cmVhbWVyIGdvdCBhY2Nlc3MgdG8gdGhlIGxpYmNoZWNrIGludGVyZmFjZSBieSBpbmNsdWRpbmcKCSAgbGlicy9nc3QvY2hlY2svY2hlY2suaCB3aGljaCBpbiB0dXJuIGluY2x1ZGVkIGludGVybmFsLWNoZWNrLmggaW4gdGhlCgkgIHNhbWUgZGlyZWN0b3J5LiBpbnRlcm5hbC1jaGVjay5oIHdhcyBnZW5lcmF0ZWQgYnkgY29weWluZwoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oIHdoaWNoIGluIHR1cm4gd2FzIGdlbmVyYXRlZCBmcm9tCgkgIGNoZWNrLmguaW4gaW4gdGhlIHNhbWUgZGlyZWN0b3J5LiBJbiB0aGlzIGNhc2UgZ2VuZXJhdGluZwoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oIGlzIHVubmVjZXNzYXJ5LCBpbiBhZGRpdGlvbiB0aGlzIGZpbGUKCSAgd2FzIGFjY2lkZW50YWxseSBkaXN0cmlidXRlZCBpbiBnZW5lcmF0ZWQgcHJvamVjdCB0YXJiYWxscy4KCSAgTm93IGxpYnMvZ3N0L2NoZWNrL2ludGVybmFsLWNoZWNrLmggaXMgZ2VuZXJhdGVkIGRpcmVjdGx5IGZyb20KCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbiBieSBjb25maWd1cmUuIFRoaXMgbWVhbnMgdGhhdCB0aGUKCSAgbGliY2hlY2sgc291cmNlIG11c3QgaW5jbHVkZSBpbnRlcm5hbC1jaGVjay5oIGluc3RlYWQgb2YgdGhlIHByZXZpb3VzbHkKCSAgZ2VuZXJhdGVkIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguIEhvd2V2ZXIgdGhlIHVubmVjZXNzYXJ5CgkgIGludGVybWVkaWF0ZSBzdGVwIGlzIG5vdyBza2lwcGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMzU5CgoyMDE0LTEyLTE2IDEwOjEzOjAzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IERvbid0IGNoZWNrIHNpemUgaW4gY29uZmlnIHZhbGlkYXRpb24KCSAgUG9vbHMgYXJlIGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBzaXplIGluIG9yZGVyIHRvIGFkYXB0IHBhZGRpbmcuIFNvCgkgIGRvbid0IGNoZWNrIHRoZSBzaXplLiBOb3JtYWxseSBwb29sIHdpbGwgY2hhbmdlIHRoZSBzaXplIHdpdGhvdXQKCSAgZmFpbGluZyBzZXRfY29uZmlnKCksIGJ1dCBpdCB0aGV5IGVuZHVwIGNoYW5naW5nIHRoZSBzaXplIGJlZm9yZQoJICB0aGUgdmFsaWRhdGUgbWV0aG9kIG1heSBmYWlsIG9uIGEgZmFsc2UgcG9zaXRpdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE0MjAKCjIwMTQtMTItMTYgMTI6MjE6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbG9nIHJlYXNvbiBmb3IgZGlzY2FyZGVkIGJ1ZmZlcnMKCSAgUEVSRk9STUFOQ0UgbG9nIHRoZSByZWFzb24gd2h5IGEgYnVmZmVyIGNvdWxkIG5vdCBiZSByZWN5Y2xlZCBpbiB0aGUKCSAgYnVmZmVycG9vbC4KCjIwMTQtMTItMTUgMTQ6NTM6MjggKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IFVwZGF0ZSB2ZXJzaW9uIG51bWJlciBvZiBpbmNsdWRlZCBsaWJjaGVjawoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNTUwCgoyMDE0LTEyLTEyIDIxOjAyOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNC0xMi0xMiAyMTo1NDowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcHJlc2V0IGFwaQoKMjAxNC0xMi0xMiAyMTozODoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBwcmVzZXQ6IGFkZCBnc3RfcHJlc2V0X2lzX2VkaXRhYmxlKCkKCSAgQWRkIGEgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHByZXNldCBpZmFjZSBpbXBsZW1lbnRhdGlvbiBpcyBlZGl0YWJsZSBhbmQKCSAgZG9jdW1lbnQgdGhpcyBmcm9tIHRoZSBpbXBsZW1lbnRlcnMgcGVyc3BlY3RpdmUuCgkgIEFQSTogZ3N0X3ByZXNldF9pc19lZGl0YWJsZSgpCgoyMDE0LTEyLTEyIDE0OjIzOjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGUKCjIwMTQtMTItMTIgMTM6NTc6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggY29tcGlsZXIgd2FybmluZwoJICBnc3RkZWJ1Z3V0aWxzLmM6IEluIGZ1bmN0aW9uICdnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhJzoKCSAgZ3N0ZGVidWd1dGlscy5jOjY4Mzo1MzA6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQgWy1XZXJyb3JdCgkgIGdfcmV0dXJuX2lmX2ZhaWwgKEdTVF9JU19CSU4gKGJpbikpOwoKMjAxNC0xMi0xMiAxMzoxNTowMiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBkZWJ1Z3V0aWxzOiBBZGQgYSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgbWV0aG9kCgkgIFRoaXMgcHJvdmlkZXMgdGhlIGRvdCBmaWxlIGFzIGEgc3RyaW5nLCByYXRoZXIgdGhhbiBkdW1waW5nIHRvIGEgZmlsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTQyNQoKMjAxNC0xMi0xMCAxMToxNzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2UKCSAgTm8gbmVlIHRvIGFiYnJldiB2YXJpYWIgbmFtIGhlcmUsIG5pY2VyIHRvIHJlYWQgaWYgZnVsbC4KCjIwMTQtMTItMTAgMTE6MTY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogdXNlIEdTVF9CVUZGRVJfT0ZGU0VUX05PTkUgZm9yIGJ1ZmZlciBvZmZzZXQKCjIwMTQtMTItMDcgMTI6NTU6MjYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGNoZWNrOiBBdm9pZCByZXF1cmluZyAodSlpbnRtYXhfdCBpbiBtYWNyb3MKCSAgUHJldmlvdXNseSBlbWJlZGRlZCBsaWJjaGVjayB2ZXJzaW9ucyBkaWQgbm90IGRlcGVuZCBvbiAodSlpbnRtYXhfdCBhbmQKCSAgZG9pbmcgc28gd291bGQgcmVxdWlyZSBwcm9qZWN0cyB1c2luZyBHU3RyZWFtZXIncyBjaGVjayBmcmFtZXdvcmsgdG8gYWRkCgkgIEFYX0NSRUFURV9TVERJTlRfSCB0byB0aGVpciBjb25maWd1cmUuYWMuIEEgd29ya2Fyb3VuZCBpcyB0byBmYWxsYmFjayB0bwoJICBnbGliIHR5cGVzLiBUaGlzIHBhdGNoIGFzc3VtZXMgdGhhdCBnbGliLmggaXMgYWx3YXlzIGluY2x1ZGVkIGJlZm9yZQoJICBpbnRlcm5hbC1jaGVjay5oIHdoaWNoIGlzIG9rIHNpbmNlIGV2ZXJ5dGhpbmcgR3N0cmVhbWVyIHdvdWxkIGluY2x1ZGUKCSAgZ3N0L2dzdGNoZWNrLmggaW5zdGVhZCBvZiBkaXJlY3RseSBpbmNsdWRpbmcgaW50ZXJuYWwtY2hlY2suaC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMi0wNiAxOTowMzowNCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJICBjaGVjazogRml4IGNvbXBpbGF0aW9uIGVycm9yIGZvciBpT1MKCSAgbGliY2hlY2sgaW5jbHVkZXMgQ29yZVNlcnZpY2VzIGZvciBpdHMgY29tcGF0IGZvciBjbG9ja19nZXR0aW1lKCksCgkgIGV2ZW4gdGhvdWdoIGl0IG5ldmVyIHVzZXMgYW55dGhpbmcgaXQgZGVjbGFyZXMuIExldCdzIHJlbW92ZSBpdC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0xNSAxMzoyNjo0NyArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogQXBwbHkgR1N0cmVhbWVyLXNwZWNpZmljIHBhdGNoZXMKCSAgUmVpbnRyb2R1Y2VkIHBhdGNoZXM6CgkgICogTWFrZSBzdXJlIHRoYXQgZmFpbF9pZigxKSBhY3R1YWxseSBmYWlscwoJICBmcm9tIGNvbW1pdCA5Zjk5ZDA1NmEyNjNlNzFhNWU2MTgxMjI0ODI5ZGVmOTA2Y2YwMjI2CgkgIE5ldyBwYXRjaGVzIGR1ZSB0byB1cGRhdGVkIGxpYmNoZWNrIChiYXNlZCBvbiAwLjkuMTQpOgoJICAqIENoZWNrcyBpbiBtNC9jaGVjay1jaGVja3MubTQgdG8gY2F0ZXIgZm9yIG5ldyBkZXBlbmRlbmNpZXMKCSAgKiBDb25kaXRpb25hbCBjb21waWxlLXRpbWUgY29tcGF0IFBPU0lYIGZhbGxiYWNrcyBmb3IgbGliY2hlY2sKCSAgKiBBdm9pZCByZWxhdGl2ZSBwYXRocyBmb3IgbGliY2hlY2sgaGVhZGVyIGZpbGVzCgkgICogTWFrZSB0aW1lcl9jcmVhdGUoKSB1c2FnZSBkZXBlbmQgb24gcG9zaXggdGltZXJzLCBub3QgbGlicnQKCSAgKiBSZWx5IG9uIGRlZmF1bHQgQVhfUFRIUkVBRCBiZWhhdmlvciB0byBhbGxvdyBIQVZFX1BUSFJFQUQgdG8gYmUgdXNlZAoJICB3aGVuIGNoZWNraW5nIGZvciB0eXBlcyBhbmQgZnVuY3Rpb25zIChsaWtlIGNsb2NrX2dldHRpbWUoKSkKCSAgKiBBdm9pZCBkb3VibGUgZGVjbGFyYXRpb24gb2YgY2xvY2tfZ2V0dGltZSgpIHdoZW4gYXZhaWxhYmUgb3V0c2lkZSBvZgoJICBsaWJydCBieSBtYWtpbmcgY29tcGF0IGNsb2NrX2dldHRpbWUoKSBkZWNsYXJhdGlvbiBjb25kaXRpb25hbAoJICAqIGNoZWNrIDAuOS45IHJlbmFtZWQgX2ZhaWxfdW5sZXNzKCkgYW5kIDAuOS4xMiBsYXRlciByZW5hbWVkIGl0IGFnYWluCgkgIHRvIF9ja19hc3NlcnRfZmFpbGVkKCksIHNvIEFTU0VSVF97Q1JJVElDQUwsV0FSTklOR30oKSBub3cgY2FsbHMgdGhpcwoJICBmdW5jdGlvbgoJICAqIFJlbW92ZSBsaWJjaGVjayBmYWxsYmFjayBpbmZyYXN0cnVjdHVyZSBmb3IgbWFsbG9jKCksIHJlYWxsb2MoKSwKCSAgZ2V0dGltZW9mZGF5KCkgYW5kIHNucHJpbnRmKCkgc2luY2UgZWl0aGVyIHRoZXkgYXBwZWFyIHRvIGJlCgkgIGF2YWlsYWJsZSBvciB0aGV5IGludHJvZHVjZSBldmVuIG1vcmUgZGVwZW5kZW5jaWVzLgoJICBUaGUgcmVzdWx0IGlzIGFuIGVtYmVkZGVkIGNoZWNrIGluIGdzdHJlYW1lciB0aGF0IGhhcyBiZWVuIHRlc3RlZCBieQoJICBydW5uaW5nIGNoZWNrIHRlc3RzIGluIGNvcmUsIC1iYXNlLCAtZ29vZCwgLWJhZCwgLXVnbHkgYW5kIHJ0c3Atc2VydmVyCgkgIG9uIExpbnV4LCBPU1ggYW5kIFdpbmRvd3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMTUgMTI6NTM6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2FsYXJtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xvY2FsdGltZV9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3N0cnNpZ25hbC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9jcmVhdGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfZGVsZXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX3NldHRpbWUuYzoKCSAgY2hlY2s6IEltcG9ydCB2ZXJzaW9uIDAuOS4xNAoJICBUaGlzIGxpZnRzIHRoZSBmaWxlcyBhbG1vc3QgdmVyYmF0aW0gKHRoZSBjaGFuZ2VzIGJlaW5nIHJ1bm5pbmcgdGhvdWdoCgkgIGdzdC1pbmRlbnQgYW5kIGZpeGluZyB0aGUgRlNGIGFkZHJlc3MpIGZyb20gdGhlIHVwc3RyZWFtIHJlc3Bvc2l0b3J5LgoJICBUaGVyZWZvcmUgdGhpcyBjb21taXQgcmV2ZXJ0cyBzb21lIEdTdHJlYW1lci1zcGVjaWZpYyBwYXRjaGVzIHRvIGNoZWNrCgkgIHRoYXQgd2lsbCBiZSByZWludHJvZHVjZWQgbmV4dC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0wNCAxOToxMTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBQcm9wYWdhdGUgaW5wdXQgYnVmZmVyIG9mZnNldAoJICBUaGUgaW5pdGlhbCBidWZmZXJzIG1pZ2h0IGhhdmUgbm9uLWRlZmF1bHQgb2Zmc2V0cywgbWFrZSBzdXJlIHRoZXkgZ2V0CgkgIHByb3BhZ2F0ZWQgaWYgcHJlc2VudC4KCjIwMTQtMTAtMDcgMTY6NDQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGFtcCByZXBvcnRlZCBwb3NpdGlvbiBiYXNlZCBvbiBkaXJlY3Rpb24KCSAgV2hlbiB1c2luZyBhIG5lZ2F0aXZlIHJhdGUgKHJhdGUgYmVpbmcgc2VnbWVudC5yYXRlICogc2VnbWVudC5hcHBsaWVkX3JhdGUpLAoJICB3ZSB3aWxsIGVuZCB1cCByZXBvcnRpbmcgZGVjcmVhc2luZyBwb3NpdGlvbnMsIHRoZXJlZm9yZSBhZGp1c3QgdGhlIGNsYW1waW5nCgkgIGFnYWluc3QgbGFzdCByZXBvcnRlZCB2YWx1ZSBhY2NvcmRpbmdseS4KCSAgRml4ZXMgcG9zaXRpb25zIGdldHRpbmcgcHJvcGVybHkgcmVwb3J0ZWQgd2l0aCBhcHBsaWVkX3JhdGUgPCAwLjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODA5MgoKMjAxNC0xMS0yOCAxNDoxNzo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBEb24ndCBjb21wYXJlIGJvb2xlYW5zIGZvciBlcXVhbGl0eSB0byBUUlVFIGFuZCBGQUxTRQoJICBUUlVFIGlzIDEsIGJ1dCBldmVyeSBvdGhlciBub24temVybyB2YWx1ZSBpcyBhbHNvIGNvbnNpZGVyZWQgdHJ1ZS4gQ29tcGFyaW5nCgkgIGZvciBlcXVhbGl0eSB3aXRoIFRSVUUgd291bGQgb25seSBjb25zaWRlciAxIGJ1dCBub3QgdGhlIG90aGVycy4KCSAgQWxzbyBub3JtYWxpemUgYm9vbGVhbnMgaW4gYSBmZXcgcGxhY2VzLgoKMjAxNC0xMS0zMCAyMzo1MDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBwbHVnaW5zOiBmaXggYnVpbGQgb24gd2luZG93cwoJICBnc3RlbGVtZW50c19wcml2YXRlLmM6IEluIGZ1bmN0aW9uICdnc3Rfd3JpdGV2X2J1ZmZlcnMnOgoJICBnc3RlbGVtZW50c19wcml2YXRlLmM6MjM2OjUxOiBlcnJvcjogJ0VXT1VMREJMT0NLJyB1bmRlY2xhcmVkCgoyMDE0LTExLTI4IDE1OjA5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIHdyaXRldigpIGluIDo6cmVuZGVyKCkgdG8gd3JpdGUgb3V0IG1lbW9yaWVzIHdpdGhvdXQgbWVyZ2luZyB0aGVtCgoyMDE0LTExLTI4IDE1OjA0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBpbXBsZW1lbnQgOjpyZW5kZXJfbGlzdCgpIGZ1bmN0aW9uIHRoYXQgdXNlcyB3cml0ZXYoKQoKMjAxNC0xMS0yOCAxNDo0NzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogdXNlIHdyaXRldigpIGluIDo6cmVuZGVyKCkgdG8gd3JpdGUgb3V0IG1lbW9yaWVzIHdpdGhvdXQgbWVyZ2luZyB0aGVtCgoyMDE0LTExLTI4IDE0OjM5OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgOjpyZW5kZXJfbGlzdCgpIHVzaW5nIHdyaXRldigpCgkgIFdyaXRlIG91dCBtdWx0aXBsZSBidWZmZXJzIHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUKCSAgbWVtb3JpZXMgd2l0aCBvbmUgd3JpdGV2KCkgY2FsbCwgd2l0aG91dCBtZXJnaW5nIHRoZQoJICBidWZmZXIgbWVtb3JpZXMgZmlyc3QsIGxpa2UgOjpyZW5kZXIoKSBkb2VzIGN1cnJlbnRseS4KCjIwMTQtMTEtMjggMTQ6Mzg6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSAgcGx1Z2luczogYWRkIGhlbHBlciBmdW5jdGlvbiBmb3Igd3JpdGluZyBidWZmZXJzIG91dCB3aXRoIHdyaXRldigpCgoyMDE0LTExLTI4IDE0OjE1OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSB0aGUgZHVyYXRpb24gdmFyaWFibGUgYmVmb3JlIGVtaXR0aW5nIHRoZSBidXMKCSAgT3RoZXJ3aXNlIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBzdGlsbCBnZXQgdGhlIG9sZCB2YWx1ZSBpZiBpdCBhc2tzCgkgIGJldHdlZW4gdGhlIG1lc3NhZ2UgYW5kIHRoZSByZWFsIHVwZGF0ZS4KCjIwMTQtMTEtMjggMTY6MjU6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggZG9jIGFuZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHNlbmRfZXZlbnQKCSAgVGhlIGRvY3VtZW50YXRpb24gc3RhdGVzIHRoYXQgZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCBpcyB0byAic2VuZCBhbiBldmVudAoJICB0byBhbiBlbGVtZW50Ii4KCSAgVGhlcmVmb3JlIHdlICpzZW5kKiB1cHN0cmVhbSBldmVudHMgdG8gYSBzb3VyY2UgcGFkIGFuZCBkb3duc3RyZWFtIGV2ZW50cwoJICB0byBhIHNpbmsgcGFkCgoyMDE0LTExLTI4IDExOjE2OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRmlndXJlIGRlZmF1bHQgc2VuZF9ldmVudCBkaXJlY3Rpb24gaGFuZGxpbmcKCSAgSWYgd2UgZ2V0IGEgZG93bnN0cmVhbSBldmVudCB3ZSB3YW50IHRvIHNlbmQgaXQgdG8gYSByYW5kb20gU0lOSyBwYWQKCSAgKGFuZCB2aWNlLXZlcnNhKS4KCjIwMTQtMTEtMjcgMTg6MDA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ29tcGFyZSBjb3JyZWN0IGNhcHMgdmFyaWFibGUgYWdhaW5zdCBOVUxMIGJlZm9yZSBjb21wYXJpbmcgY2FwcwoKMjAxNC0xMS0yNyAxNzoxMDoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjMyY2ZjZCB0byBlZjFmZmRjCgoyMDE0LTExLTEwIDA5OjU4OjQ3ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czp1bmluc3RhbGxlZDogTWFrZSBzdXIgdGhlIEdFUyBUZXN0TWFuYWdlciBpcyByZWdpc3RlcmVkCgkgIFNvIHRoYXQgd2hlbmV2ZXIgdXNlciB3b3JrIHdpdGggR3N0VmFsaWRhdGUgdGhleSBjYW4gcnVuIEdFUyB0ZXN0cwoJICB3aXRoaW4gdGhlIGdzdC11bmluc3RhbGxlZCBlbnZpcm9ubWVudAoKMjAxNC0xMS0yNiAyMTo0ODowNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBjb21tb246CgkqIG00L2F4X3B0aHJlYWQubTQ6CgkgIGJ1aWxkOiBVcGRhdGUgYXhfcHRocmVhZC5tNCBhbmQgbW92ZSBpdCB0byBjb21tb24KCSAgSGFzIHNvbWUgdXBkYXRlcyBmb3IgQ2xhbmcgc3VwcG9ydCAobWlnaHQgbm90IHdvcmsgd2l0aCBuZXdlciBDbGFuZwoJICBwcm9wZXJseSwgeWV0KSwgQUlYIHN1cHBvcnQsIGFuZCBzb21lIG1pc2MgZml4ZXMuCgoyMDE0LTExLTI1IDE3OjQ2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogRml4IHNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGUgZG9jcwoKMjAxNC0xMS0yNSAwOTozOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBhZGQgR1NUX0dMXyogZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvICdSdW5uaW5nIEdTdHJlYW1lcicgc2VjdGlvbgoKMjAxNC0xMS0yMyAwNTo0NToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwZXJjZW50YWdlIGlzIHJlbGF0aXZlIHRvIGhpZ2gtcGVyY2VudAoJICBXaGVuIGNvbXBhcmluZyBwZXJjZW50YWdlIHZhbHVlcywgY29tcGFyZSB3aXRoIDAtMTAwIHNjYWxlIGFzIGl0CgkgIGhhcyBhbHJlYWR5IGJlZW4gbWFkZSByZWxhdGl2ZSB0byAwLWhpZ2hfcGVyY2VudCwgb3RoZXJ3aXNlIHdlIG1hcmsKCSAgdGhlIHF1ZXVlIGFzIG5vdCBidWZmZXJpbmcgYW5kIHJlcG9ydCBhIDUwJSB0byB0aGUgdXNlci4gVGhpcyBsZWFkcyB0bwoJICBhIGJ1ZmZlcmluZyBzdGFsbCBhcyB0aGUgdXNlciBhc3N1bWVzIHRoZSBxdWV1ZSBpcyBzdGlsbCBidWZmZXJpbmcgYnV0CgkgIGl0IHRoaW5rcyBpdCBpc24ndC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjk2OQoKMjAxNC0xMS0yMyAwNTo0Mjo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBlcmNlbnRhZ2UgaXMgYW4gYWJzb2x1dGUgdmFsdWUKCSAgbXVsdGlxdWV1ZSdzIHF1ZXVlcyBzdG9yZWQgcGVyY2VudCB2YWx1ZSBpcyB0aGUgcGVyY2VudGFnZSBmcm9tIDAKCSAgdG8gMTAwIChtYXgtc2l6ZS0qKSBhbmQgc2hvdWxkIGJlIGNvbXBhcmVkIHdpdGggdGhlIHJlcXVlc3RlZCBsaW1pdAoJICAoaGlnaF9wZXJjZW50YWdlKSBzZXQgYnkgdGhlIHVzZXIgYW5kIG5vdCB3aXRoIDEwMCUgdG8gY2hlY2sgaWYKCSAgYnVmZmVyaW5nIHNob3VsZCBzdG9wLiBPdGhlcndpc2Ugd2UgYXJlIG9ubHkgc3RvcHBpbmcgYnVmZmVyaW5nIHdoZW4gdGhlCgkgIHF1ZXVlIGdldHMgY29tcGxldGVseSBmdWxsLgoKMjAxNC0xMS0yMCAyMTozMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggY2FwcyBlcXVhbGl0eSBjaGVjawoJICBJbnN0ZWFkIG9mIGNoZWNraW5nIGlmIG91ciBvdXRjYXBzIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBwcmV2aW91cyBpbmNhcHMsIGFuZAoJICBpZiB0aGF0IGlzIHRoZSBjYXNlIG5vdCBzZXR0aW5nIGFueSBjYXBzIG9uIHRoZSBwYWQuLi4gY29tcGFyZSBhZ2FpbnN0IG91cgoJICBwcmV2aW91cyBvdXRjYXBzIGJlY2F1c2UgdGhhdCdzIHdoYXQgd2UgY2FyZSBhYm91dC4KCSAgRml4ZXMgc29tZSBjYXNlcyB3aGVyZSB0aGUgb3V0Y2FwcyBiZWNhbWUgZXF1aXZhbGVudCB0byB0aGUgcHJldmlvdXMgaW5jYXBzLAoJICBidXQgdGhlIHByZXZpb3VzIG91dGNhcHMgd2VyZSBkaWZmZXJlbnQgYW5kIHdlIHdlcmUgdGhlbiBzZW5kaW5nIGJ1ZmZlcnMKCSAgZG93bnN0cmVhbSB0aGF0IHdlcmUgY29ycmVzcG9uZGluZyB0byB0aGUgY2FwcyB3ZSBmb3Jnb3QgdG8gc2V0IG9uIHRoZSBwYWQuCgkgIFJlc3VsdGluZyBpbiBjcmFzaGVzIG9yIGltYWdlIGNvcnJ1cHRpb24uCgoyMDE0LTExLTIwIDEzOjMzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgYmlzb24gdmVyc2lvbiBjaGVjayBwYXRjaAoJICBGaXggY29uZmlndXJlIGNoZWNrIHdpdGggYmlzb24gZGV2ZWxvcG1lbnQgdmVyc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODk0NgoKMjAxNC0xMS0yMCAxMzozNDozMiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBvdmVycmVhZCBpbnB1dCB3aGVuIHNlYXJjaGluZyBmb3IgIgoJICBXaGVuIHNlYXJjaGluZyBmb3IgdGhlIHN0cmluZyB0ZXJtaW5hdG9yIGRvbid0IHJlYWQgcGFzdCB0aGUgZW5kaW5nCgkgIDAtYnl0ZSB3aGVuIGVzY2FwaW5nIGNoYXJhY3RlcnMuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHZhcmlvdXMgZXNjYXBpbmcgY2FzZXMuCgoyMDE0LTExLTAzIDE3OjQ2OjU3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcwoJICBQcmV2aW91c2x5LCBkcm9wcGluZyBhIHF1ZXJ5IGZyb20gYSBwYWQgcHJvYmUgd291bGQgZGVlbSB0aGUKCSAgcXVlcnkgc3VjY2VlZGVkLCBhbmQgdGhlIGNhbGxlciBtaWdodCB0aGVuIGFzc3VtZSB0aGUgcXVlcnkncwoJICByZXN1bHRzIGFyZSB2YWxpZCwgYW5kIHRodXMgZGVyZWZlcmVuY2UgYW4gaW52YWxpZCBvYmplY3QKCSAgc3VjaCBhcyBhIEdzdENhcHMuCgkgIFdlIG5vdyBhc3N1bWUgZHJvcHBlZCBxdWVyaWVzIGRpZCBub3Qgc3VjY2VlZC4gRHJvcHBlZCBldmVudHMKCSAgYW5kIGJ1ZmZlcnMgYXJlIHN0aWxsIGRlZW1lZCBhIHN1Y2Nlc3MuCgkgIEFkZGVkIGJhY2sgYWZ0ZXIgcHJldmlvdXMgcmV2ZXJ0LCBhcyBpdCdzIGJlZW4gZG91YmxlIGNoZWNrZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAwMDMKCjIwMTQtMTEtMTIgMTM6NTU6MjMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMiCgkgIFRoaXMgd2FzIHB1c2hlZCBieSBtaXN0YWtlIGFsb25nIHdpdGggYW4gdW5yZWxhdGVkIHBhdGNoLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM3MTAzY2U0YjhjMWRhN2RjZmJjZjJlYzgzYTQyYTM3NmZiODk2ZTEuCgoyMDE0LTA1LTEzIDExOjE4OjA4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxsb3cgc2tpcHBpbmcgbW9yZSBkYXRhIHRoYW4gd2UgY3VycmVudGx5IGhhdmUKCSAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBza2lwcGluZyBsYXJnZSB1bndhbnRlZCBkYXRhLCBzdWNoIGFzCgkgIGxhcmdlIGFsYnVtIGFydCwgd2hlbiB3ZSBrbm93IHRoZSBzaXplIG9mIGl0IGZyb20gYSBtZXRhZGF0YQoJICBoZWFkZXIuCgoyMDE0LTExLTAzIDE3OjQ2OjU3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcwoJICBQcmV2aW91c2x5LCBkcm9wcGluZyBhIHF1ZXJ5IGZyb20gYSBwYWQgcHJvYmUgd291bGQgZGVlbSB0aGUKCSAgcXVlcnkgc3VjY2VlZGVkLCBhbmQgdGhlIGNhbGxlciBtaWdodCB0aGVuIGFzc3VtZSB0aGUgcXVlcnkncwoJICByZXN1bHRzIGFyZSB2YWxpZCwgYW5kIHRodXMgZGVyZWZlcmVuY2UgYW4gaW52YWxpZCBvYmplY3QKCSAgc3VjaCBhcyBhIEdzdENhcHMuCgkgIFdlIG5vdyBhc3N1bWUgZHJvcHBlZCBxdWVyaWVzIGRpZCBub3Qgc3VjY2VlZC4gRHJvcHBlZCBldmVudHMKCSAgYW5kIGJ1ZmZlcnMgYXJlIHN0aWxsIGRlZW1lZCBhIHN1Y2Nlc3MuCgoyMDE0LTExLTEyIDExOjMwOjUxICswMTAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IEZpeCBwYXVzZS9zdG9wIHJhY2UgY29uZGl0aW9uCgkgIElmIGEgdGFzayB0aHJlYWQgaXMgY2FsbGluZyBwYXVzZSBvbiBpdCBzZWxmIGFuZCB0aGUKCSAgY29udHJvbGxpbmcvIm1haW4iIHRocmVhZCBzdG9wcyB0aGUgdGFzaywgaXQgY291bGQgZW5kIGluIGEgcmFjZQoJICB3aGVyZSBnc3RfdGFza19mdW5jIGxvb3BzIGFuZCB0aGVuIGNoZWNrcyBmb3IgcGF1c2VkIGFmdGVyIHRoZQoJICBjb250cm9sbGluZyB0aHJlYWQganVzdCBjaGFuZ2VkIHRoZSB0YXNrIHN0YXRlIHRvIHN0b3BwZWQuCgkgIEhlbmNlIHRoZSB0YXNrIHdvdWxkIGFjdHVhbGx5IGNhbGwgZnVuYyBhZ2FpbiBldmVuIHRob3VnaCBpdCB3YXMKCSAgYm90aCBwYXVzZWQgYW5kIHN0b3BwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAwMDEKCjIwMTQtMTEtMTAgMTA6MDE6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogRG9uJ3QgY2hlY2sgYm9vbGVhbnMgZm9yIGVxdWFsaXR5IGluIHRoZSB1bml0IHRlc3QKCSAgRXZlcnkgdmFsdWUgb3RoZXIgdGhhbiAwL0ZBTFNFIGlzIFRSVUUsID09IFRSVUUgd2lsbCBvbmx5IGNoZWNrIGZvciAxLgoKMjAxNC0xMS0wNSAxMTo1MDo0NyArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBBZGQgZ3N0X29iamVjdF9oYXNfcGFyZW50KCkKCSAgQWRkcyBnc3Rfb2JqZWN0X2hhc19wYXJlbnQsIHdoaWNoIHdvcmtzIGxpa2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IKCSAgYnV0IGRvZXMgbm90IGFzY2VuZCBmdXJ0aGVyLgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX3BhcmVudCgpCgoyMDE0LTExLTA5IDEwOjM3OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDkgMTA6MzI6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA5IDEwOjI5OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDcgMDg6MjI6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIGNvbmRpdGlvbmFsIGZvciBHX1ZBTFVFX0NPTExFQ1RfSU5JVAoJICBUaGlzIEFQSSBpcyBpbiBnbGliIHNpbmNlIDIuMjQgYW5kIHdlIGN1cnJlbnRseSByZXF1aXJlIDIuMzIgYW5kIGFscmVhZHkgdXNlCgkgIHRoaXMgdW5jb25kaXRpb25hbGx5IGVsc2V3aGVyZS4KCjIwMTQtMTEtMDUgMTk6MDk6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgkgIFRoZSBHUXVhcmsgd2FzIG5ldmVyIHVzZWQuCgoyMDE0LTExLTA3IDExOjM0OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3Rjb25maWc6IFB1dCBnc3Rjb25maWcuaCBpbnRvICQobGliZGlyKS9nc3RyZWFtZXItMS4wL2luY2x1ZGUKCSAgSXQncyBhcmNoaXRlY3R1cmUgZGVwZW5kZW50IGFuZCBzaG91bGQgbm90IGJlIHBsYWNlZCBpbnRvIHRoZSBpbmNsdWRlCgkgIGRpcmVjdG9yeSBhcyB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IGFsbCB0aG9zZSBoZWFkZXJzIGFyZSBhcmNoaXRlY3R1cmUKCSAgaW5kZXBlbmRlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjcKCjIwMTQtMTEtMDcgMTA6NTY6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGdvYmplY3QtaW50cm9zcGVjdGlvbiB3YXJuaW5ncwoJICBnc3R1cmkuYzo5OTc6IEVycm9yOiBHc3Q6IFNraXBwaW5nIGludmFsaWQgR1RLLURvYyBjb21tZW50IGJsb2NrOgoJICAvKiogcHJpdmF0ZSBHc3RVcmkgZnVuY3Rpb25zICoqLwoJICBeCgkgIGdzdHVyaS5jOjExNzk6IEVycm9yOiBHc3Q6IFNraXBwaW5nIGludmFsaWQgR1RLLURvYyBjb21tZW50IGJsb2NrOgoJICAvKiogUkZDIDM5ODYgZnVuY3Rpb25zICoqLwoJICBeCgoyMDE0LTEwLTI0IDIxOjI1OjU0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogRml4IGdzdF9kYXRhX3F1ZXVlX25ldygpIGRlc2NyaXB0aW9uLgoJICBSZXdvcmQgdGhlIGZ1bmN0aW9uIGRvY3MsIHdoaWNoIGhhdmVuJ3QgbWFkZSBhbnkgc2Vuc2Ugc2luY2UKCSAgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKSB3YXMgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZ28uCgoyMDE0LTExLTAzIDE4OjI3OjIxICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbnN3ZXIgdGhlIHF1ZXJ5IHBvc2l0aW9uIHdoZW4gcmVjZWl2aW5nIGl0IGZyb20gdXBzdHJlYW0KCSAgQ3VycmVudGx5IHdlIGFyZSBqdXN0IHJldHVybmluZyBGQUxTRSwgYnV0IHdlIGRvIGhhdmUgdGhlIGluZm9ybWF0aW9uCgkgIHdlIHNob3VsZCBqdXN0IGFuc3dlciB0aGUgcXVlcnkgdGhlIHNhbWUgd2F5IGFzIHdoZW4gYW5zd2VyaW5nIHRocm91Z2gKCSAgdGhlIEdzdEVsZW1lbnQucXVlcnkgdm1ldGhvZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTgwCgoyMDE0LTEwLTIyIDE0OjA3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBhbiBvcHRpb25hbCBkZWxheWVkIGNhcHMgY2hhbmdlIG1vZGUKCSAgSW4gdGhpcyBtb2RlIHdlIGFjY2VwdCBwcmV2aW91c2x5IHNldCBmaWx0ZXIgY2FwcyB1bnRpbAoJICB1cHN0cmVhbSByZW5lZ290aWF0ZXMgdG8gc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZQoJICB0byB0aGUgY3VycmVudCBmaWx0ZXIgY2Fwcy4KCSAgVGhpcyBhbGxvd3MgZHluYW1pYyBjYXBzIGNoYW5nZXMgaW4gdGhlIHBpcGVsaW5lIGV2ZW4KCSAgaWYgdGhlcmUgaXMgYSBxdWV1ZSBiZXR3ZWVuIGFueSBjb252ZXJzaW9uIGVsZW1lbnQKCSAgYW5kIHRoZSBjYXBzZmlsdGVyLiBXaXRob3V0IHRoaXMgd2Ugd291bGQgZ2V0IG5vdC1uZWdvdGlhdGVkCgkgIGVycm9ycyBpZiB0aW1pbmcgaXMgYmFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MDAyCgoyMDE0LTExLTAyIDIwOjE2OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IG1pbm9yIGNvZGUgY2xlYW4tdXAKCSAgQW5kIGdldCByaWQgb2YgZ19saXN0X3ByZXBlbmQvZ19saXN0X3JldmVyc2UKCSAgYW50aS1wYXR0ZXJuIHdoaWxlIHdlJ3JlIGF0IGl0LgoKMjAxNC0xMS0wMiAxODo1MTowOCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBlbnN1cmUgR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGRlYnVnIG1lc3NhZ2UgaXMgZGlzcGxheWVkCgkgIFRoZSBHU1RfSU5GTyAoImluaXRpYWxpemVkIEdTdHJlYW1lciBzdWNjZXNmdWxseSIpIGlzIGN1cnJlbnRseSBhdCB0aGUgZW5kIG9mCgkgIGdzdF9pbml0X2NoZWNrIHdoaWNoIGlzbid0IGd1YXJhbnRlZWQgdG8gYmUgcnVuIHNpbmNlIEdTdHJlYW1lciBjYW4gYmUKCSAgaW5pdGlhbGl6ZWQgYnkgdXNpbmcgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCBkaXJlY3RseSBmcm9tIEdPcHRpb25Db250ZXh0IGxpa2UKCSAgZ3N0LWxhdW5jaCBkb2VzLiBFbnN1cmUgdGhpcyBtZXNzYWdlIGlzIGRpc3BsYXllZCBieSBtb3ZpbmcgaXQgdG8gaW5pdF9wb3N0LgoKMjAxNC0xMS0wMSAxOTo1Njo0MSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvYzogRG8gbm90IHVzZSBkZXByZWNhdGVkIGd0ay1kb2MgJ1JlbmFtZSB0bycgdGFnCgkgIEdPYmplY3QgaW50cm9zcGVjdGlvbiBHVEstRG9jIHRhZyAiUmVuYW1lIHRvIiBoYXMgYmVlbiBkZXByZWNhdGVkLCBjaGFuZ2luZyB0bwoJICByZW5hbWUtdG8gYW5ub3RhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTUxNAoKMjAxNC0xMS0wMSAyMjozMDozMCArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogYWRkIEdfUEFSQU1fREVQUkVDQVRFRCB0byBrbm93biBmbGFncwoJICBEaXNwbGF5ICdkZXByZWNhdGVkJyBpbnN0ZWFkIG9mIGZsYWcgdmFsdWUgd2hlbiB1c2luZyBHX1BBUkFNX0RFUFJFQ0FURUQKCSAgaW4gZWxlbWVudCBwcm9wZXJ0aWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTE4CgoyMDE0LTEwLTMxIDE2OjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogcmVmYWN0b3IgdG9vbHMgY2hlY2sgYSBsaXR0bGUKCSAgVXNlIGFuIGFycmF5IG9mIGNvbnN0YW50IHN0cmluZ3Mgc28gaWYgYXJndW1lbnRzIGdldAoJICByZW1vdmVkIGZyb20gaXQgdGhleSBhcmUgbm90IGNvbnNpZGVyZWQgbGVha2VkLCBhbmQKCSAgdmFsZ3JpbmQgaXMgaGFwcHkuIFN0aWxsIHNvbWUgc3R1ZmYgbGVha2luZyBpbiBHTGliCgkgIHRob3VnaC4KCjIwMTQtMTAtMzAgMjM6MTQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGZpeCBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MgaW4gYnl0ZXJlYWRlciB1bml0IHRlc3QKCSAgQ2F1Z2h0IGJ5IC1mc2FuaXRpemU9YWRkcmVzcyAvIGxpYmFzYW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk0MzEKCjIwMTQtMTAtMjggMTk6MTY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbWFrZSBnc3RfaW5pdCgpIHRocmVhZC1zYWZlCgkgIEJlY2F1c2Ugd2UgY2FuLCBhbmQgdGhlcmUgaXNuJ3QgcmVhbGx5IGFueQoJICByZWFzb24gbm90IHRvIGRvIHNvLgoKMjAxNC0xMC0yOCAwOToyODoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBmZHNyYzogZG9uJ3QgaWdub3JlIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpCgkgIENhdXNlcyBjb21waWxlciB3YXJuaW5ncyBvbiBzb21lIHN5c3RlbXMuCgoyMDE0LTEwLTI4IDAwOjA0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGZpeCBmZHNyYyB0ZXN0IGNvcm5lciBjYXNlCgkgIE1ha2UgcGlwZSBzb2NrZXQgbm9uLWJsb2NraW5nLCBzbyB3ZSBkb24ndAoJICBlbmQgdXAgYmVpbmcgYmxvY2tlZCBpbiBhIHdyaXRlIG9uIHRoZSBwaXBlCgkgIHdoaWxlIHRoZSBzcmMgaXMgZW9zIGFuZCBub3QgcmVhZGluZyBkYXRhCgkgIGFueSBtb3JlLCBhbmQgdGh1cyB3ZSBuZXZlciB1bmJsb2NrIGFuZCBuZXZlcgoJICBub3RpY2UgdGhhdCB3ZSdyZSBkb25lLiBUaGlzIHdvdWxkIGhhcHBlbgoJICBxdWl0ZSByZWxpYWJseSBvbiB0aGUgcnBpLgoKMjAxNC0xMC0yNyAxNzo1NjoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODRkMDZjZCB0byA3YmIyYmNlCgoyMDE0LTEwLTI1IDE3OjE1OjQyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFRyaXZpYWwgdHlwbyBmaXgKCjIwMTQtMTAtMjQgMTI6NTE6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCB1bmxvY2sgbXV0ZXggdGhhdCBpcyBub3QgbG9ja2VkCgkgIEZpeGVzICdBdHRlbXB0IHRvIHVubG9jayBtdXRleCB0aGF0IHdhcyBub3QgbG9ja2VkJwoJICB3YXJuaW5nIHdpdGggbmV3ZXIgR0xpYnMgd2hlbiBzaW5rIGlzIHNodXQgZG93biBpbgoJICBjZXJ0YWluIHNpdHVhdGlvbnMuIFRyaWdnZXJlZCBieSB0aGUgZGVjb2RlYmluCgkgIHRlc3RfcmV1c2Vfd2l0aG91dF9kZWNvZGVycyB1bml0IHRlc3QgaW4gLWJhc2UKCSAgc29tZXRpbWVzLCBlc3AuIG9uIHNsb3dlciBtYWNoaW5lcy4KCjIwMTQtMTAtMjIgMTg6MjU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmb3IgbmV3IF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBHc3RDb250cm9sUG9pbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzYxNgoKMjAxNC0wOS0yOSAyMToxMDoxNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IEFkZCBzb21lIHNpZ25hbHMgYWJvdXQgdmFsdWVzIGNoYW5nZXMKCSAgSW4gb3JkZXIgZm9yIHVzZXIgdG8gYmUgYWJsZSB0byB0cmFjayBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBzZXQgaW4KCSAgR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2UgdGhlIGZvbGxvd2luZyBzaWduYWxzIGhhdmUgYmVlbiBhZGRlZDoKCSAgKiB2YWx1ZS1hZGRlZAoJICAqIHZhbHVlLXJlbW92ZWQKCSAgKiB2YWx1ZS1jaGFuZ2VkCgkgIFRvIGJlIGFibGUgdG8gdXNlIGEgR3N0Q29udHJvbFBvaW50IHRvIGJlIG1hcnNoYWxsZWQgaW50byB0aGUgc2lnbmFscywKCSAgdGhlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3R1cmUgaXMgbm93IHJlZ2lzdGVyZCBhcyBhIEdCb3hlZCB0eXBlLgoJICBOZXcgQVBJOgoJICB+fn5+fn5+CgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLWFkZGVkCgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLXJlbW92ZWQKCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtYWRkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzYxNgoKMjAxNC0xMC0yMSAxMzowMTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYThjODkzOSB0byA4NGQwNmNkCgoyMDE0LTEwLTIxIDEyOjE4OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogcmVtb3ZlIGR1cGxpY2F0ZSBnc3RfbWVzc2FnZV9nZXRfdHlwZSgpIGluIGluaXQKCSAgU3BvdHRlZCBieTogSmFuIFN0ZWZmZW5zCgoyMDE0LTEwLTIxIDEyOjU3OjQ1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZlNzU0OTggdG8gYThjODkzOQoKMjAxNC0xMC0yMCAxNjozOTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGluY2x1ZGUgdGhlIGFjdHVhbCBkZWx0YSBpbiB0aGUgbWVzc2FnZQoJICBJbmNsdWRpbmcgdGhlIGFjdHVhbCBkZWx0YSBpbiB0aGUgbWVzc2FnZSBtYWtlcyBpdCBlYXN5IHRvIHNlZSwgaWYgdGhlIG5ldwoJICBidWZmZXIgaXMgYmVoaW5kIG9yIGFoZWFkIGFuZCBob3cgbXVjaC4KCjIwMTQtMTAtMTggMTg6NDM6NDMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBUaWR5IGluaXRpYWxpc2F0aW9uCgkgIFVzZSBzb21lIG1hY3JvcyB0byBtYWtlIG91ciB2YWx1ZSBmdW5jdGlvbnMgc2V0dXAgYSBiaXQKCSAgdGlkaWVyLCBhbmQgbWljcm8tb3B0aW1pc2UgYSBmZXcgcmVhbGxvY3MgYnkgc2V0dGluZyBhbgoJICBpbml0aWFsIHNpemUgZm9yIHRoZSBnbG9iYWwgdHlwZSBhcnJheXMuCgoyMDE0LTEwLTE4IDE3OjI3OjA0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IFJ1biBpbmRlbnQgdHdpY2UuIE9uY2UgaXMgbm90IGlkZW1wb3RlbnQsIHR3aWNlIHNlZW1zIHRvIGJlLgoKMjAxNC0xMC0xNiAxMDoxMzoxNCArMDQwMCAgQW5kcmVpIFNhcmFrZWV2IDxzYXJha3VzaGFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgYW55IHdhaXRpbmcgc3RyZWFtcyBpZiB0aGUgY3VycmVudCBvbmUgZ29lcyBFT1MKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGhhdmUgdW5saW5rZWQgc3RyZWFtcyB3YWl0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTk4CgoyMDE0LTEwLTE3IDEyOjQxOjA0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIHR5cGVmaW5kOiBzaW1wbGlmeSByZWdpc3RyYXRpb24gY29kZQoJICBSZW1vdmUgYSB1c2VsZXNzIGFzc2VydCAod2UganVzdCBpbnN0YW50aWF0ZWQgdGhpcyB0eXBlKS4gRHJvcCB0aGUgZnJlZSdpbmcgb2YKCSAgdGhlIGV4dGVuc2lvbiBhcnJheS4gQXMgd2UganVzdCBjcmVhdGVkIHRoZSBpbnN0YW5jZSB0aGlzIGlzIGFsd2F5cyBOVUxMLgoKMjAxNC0xMC0xNiAxMDo1NTozNiArMDIwMCAgRmVsaXggU2Nod2FyeiA8ZmVsaXguc2Nod2FyekBvc3Muc2Nod2Fyei5ldT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBkb2NzOiBwd2Q6IGZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4NjEyCgoyMDE0LTEwLTExIDE5OjI4OjIxICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIGEgYnVzIHdhdGNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMDgtMTkgMjM6Mjg6NTIgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1czogQWRkIGEgZnVuY3Rpb24gdG8gcmVtb3ZlIGEgYnVzIHdhdGNoCgkgIElmIGEgYnVzIHdhdGNoIGlzIGFkZGVkIHRvIHRoZSBub24gZGVmYXVsdCBtYWluIGNvbnRleHQgaXQncyBub3QKCSAgcG9zc2libGUgdG8gcmVtb3ZlIGl0IHVzaW5nIGdfc291cmNlX3JlbW92ZSgpLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0xMC0wOCAyMjo1MTo1NiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogVXBkYXRlIEdzdFFPU1R5cGUgZG9jdW1lbnRhdGlvbiBhIGJpdAoJICBDb3JyZWN0aW9uIGZvciB3aG8gaXMgcHJvZHVjaW5nIGRhdGEgdG9vIGZhc3QsIGFuZCBzb21lIG90aGVyIG1pbm9yCgkgIGNsYXJpZmljYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTY2CgoyMDE0LTEwLTA4IDE2OjAzOjIwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJICBkb2NzOiBwd2c6IGZpeCB0d28gdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE1MwoKMjAxNC0xMC0wOCAxNTozNzozNyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHR5cG8gaW4gJ0R5bmFtaWMgbmVnb3RpYXRpb24nIHNlY3Rpb24KCSAgVGhlIHBvaW50IG9mIHRoaXMgZXhhbXBsZSBpcyB0byBzaG93IGhvdyB0byBzZXQgY2FwcwoJICBvbiB0aGUgc291cmNlIHBhZCBvbmNlIGl0IGhhcyBiZWVuIHNldCBvbiB0aGUgc2luayBwYWQuCgkgIFNvLCBpbiBwYXNzdGhyb3VnaCBtb2RlLCB0aGUgY2FwcyBpcyBqdXN0IGNvcGllZCB0byB0aGUKCSAgc291cmNlIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE1MwoKMjAxNC0xMC0wOCAwOTozNzo0MSAtMDcwMCAgQWxlaXggQ29uY2hpbGxvIEZsYXF1w6kgPGFsZWl4QG9ibG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG9uJ3QgbG9jayBtdWx0aXF1ZXVlIHdoZW4gcHVzaGluZyBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgSWYgd2UgYXJlIHB1c2hpbmcgYSBzZXJpYWxpemVkIHF1ZXJ5IGludG8gYSBxdWV1ZSBhbmQgdGhlIHF1ZXVlIGlzCgkgIGZpbGxlZCwgd2Ugd2lsbCBlbmQgaW4gYSBkZWFkbG9jay4gV2UgbmVlZCB0byByZWxlYXNlIHRoZSBsb2NrIGJlZm9yZQoJICBwdXNoaW5nIGFuZCBhY3F1aXJlIGl0IGFnYWluIGFmdGVyd2FyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc5NAoKMjAxNC0xMC0wOCAwMTozMzo1MSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgR1NUX1BUUl9GT1JNQVQgaW4gZGVidWcgdG8gb3V0cHV0IGJ1ZmZlciBkZXRhaWxzCgkgIFVzZSAlR1NUX1BUUl9GT1JNQVQgaW5zdGVhZCBvZiAlcCBpbiBkZWJ1ZyBvdXRwdXQgc28gYWxsIHRoZSBidWZmZXIKCSAgZGV0YWlscyBhcmUgb3V0cHV0CgoyMDE0LTEwLTA2IDEzOjM4OjIxICswMjAwICBOaWNvbGFzIEh1ZXQgPG5pY29sYXMuaHVldEBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXggbXVsdGktdGhyZWFkIGVudHJ5IHN0YXR1cyBpc3N1ZQoJICBSdW5uaW5nIHR3byB0aHJlYWRzLCBvbmUgZXhlY3V0aW5nIHRoZSB0aW1lciBhbmQgb25lIHVuc2NoZWR1bGluZyBpdCwgdGhlCgkgIHVuc2NoZWR1bGVkIHN0YXR1cyBzZXQgYnkgdGhlIHNlY29uZCB0aHJlYWQgaXMgc29tZXRpbWVzIG92ZXJ3cml0dGVuIGJ5IHRoZQoJICBmaXJzdCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc5OTkKCjIwMTQtMTAtMDMgMTQ6MDQ6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNvbXBpbGF0aW9uCgoyMDE0LTEwLTAzIDE0OjQ0OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBleHRyYWN0IHNvbWUgY29tbW9uIGNvZGUgaW50byBoZWxwZXJzCgoyMDE0LTEwLTAzIDE0OjAxOjU5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBzbWFsbCBjb2RlIGNsZWFudXBzCgkgIFJlbmFtZSBUSU1FU1RBTVAgLT4gUFRTLiBNb3ZlIGEgdmFyIGRvd24gdG8gdGhlIHNjb3BlIHdoZXJlIGl0IGlzIHVzZWQuIFVzZQoJICBnX3F1ZXVlX2ZyZWVfZnVsbCgpLgoKMjAxNC0xMC0wMyAxMzo0Nzo0MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogZml4IHByaW50ZiBmb3JtYXQKCSAgVGhlIHBhZGNvdW50IGlzIHVpbnQuIEFsc28gYWRkIGNvbW1lbnRzIHRvIHRoZSBpbnN0YW5jZSB2YXJzLgoKMjAxNC0xMC0wMiAwMzozMDoyNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDMgMTM6MTQ6MjUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBzZXRfc2lua19jYXBzIHZmdW5jIHNob3VsZCd0IHRha2Ugb3duZXJzaGlwIG9mIHRoZSBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDMgMDk6NTc6MzcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogbWFyayB0aGUgcGF0dGVybiBwcm9wZXJ0eSBhcyB1bnVzZWQKCSAgUmV2ZXJ0IHRoZSBwcmV2aW91cyBjb21taXQgd2hpY2ggcmVtb3ZlcyB0aGUgcGF0dGVybiBwcm9wZXJ0eSBvZiBmYWtlc3JjIGJlY2F1c2UKCSAgZG9pbmcgc28gd2lsbCBicmVhayBBQkkuIEJyaW5naW5nIHRoZSBwcm9wZXJ0eSBiYWNrIGJ1dCBtYXJraW5nIGl0IGFzIHVudXNlZAoJICBpbiB0aGUgcHJvcGVydHkgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjgzCgoyMDE0LTEwLTAzIDA5OjAxOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZThiNGJmMDg1MTgwZjdhNGM3YWU2ZWMwZjUyNWJhZWFlZGQ0ZGY4LgoJICBUaGlzIGNhdXNlcyByZWZjb3VudGluZyBjcml0aWNhbHMgaW4gdGhlIGJhc2VwYXJzZSB1bml0IHRlc3QuCgoyMDE0LTEwLTAyIDEzOjQ1OjM0ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBmYWtlc3JjOiByZW1vdmluZyB1bnVzZWQgcGF0dGVybiBvcHRpb24KCSAgRXZlbnRob3VnaCB0aGUgInBhdHRlcm4iIHByb3BlcnR5IG9mIGZha2VzcmMgY2FuIGJlIHNldCwgaXQgaXMgbmV2ZXIgdXNlZC4gVGhlCgkgIG9ubHkgcGF0dGVybiBzdXBwb3J0ZWQgaXMgdGhlIGRlZmF1bHQgMHgwMCAtPiAweGZmLCBhbmQgaWYgYSBwYXR0ZXJuIGlzIHNldCBieQoJICB0aGUgdXNlciBpdCBpcyBpZ25vcmVkLiBSZW1vdmluZyB0aGUgdW51c2VkIHByb3BlcnR5IGFuZCB2YXJpYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzY4MwoKMjAxNC0xMC0wMiAxNDo1NToyMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFkZCBtaXNzaW5nIGJyZWFrIGluIHN3aXRjaAoKMjAxNC0xMC0wMiAxMTowMDozMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTEwLTAyIDEwOjU3OjQzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0wOS0yNyAyMDoxMDozNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0xMC0wMiAwMzozMDoyNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3NjIKCjIwMTQtMTAtMDIgMTA6MTM6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgYSBidWZmZXIgYWxzbyBpZiB1cHN0cmVhbSBuZXZlciBjb25maWd1cmVkIGNhcHMgYnV0IHdlIGhhdmUgc3JjcGFkIGNhcHMgYWxyZWFkeQoJICBPdGhlcndpc2Ugd2UgbmV2ZXIgc2VuZCBwZW5kaW5nIGV2ZW50cyBkb3duc3RyZWFtIHRoYXQgYXJyaXZlIGFmdGVyIHdlCgkgIGNvbmZpZ3VyZWQgY2FwcyBvbiB0aGUgc3JjcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzM1CgoyMDE0LTA5LTI5IDE3OjQ4OjI5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IERvbid0IHVuY29uZGl0aW9uYWxseSB1c2UgZ19saXN0X2NvcHlfZGVlcCgpCgkgIFdlIGRvbid0IGRlcGVuZCBvbiBHTGliIDIuMzQgeWV0IGFuZCBqdXN0IGZvciB0aGlzIHNlZW1zIGEgYml0IHVzZWxlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc1ODQKCjIwMTQtMDktMjkgMTY6MjI6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBJbmNsdWRlIG91ciBvd24gQlNEIGxpY2Vuc2VkIGNvcHkgb2Ygc3RyY2FzZXN0cigpIGZvciBXaW5kb3dzIGFuZCBvdGhlcnMKCjIwMTQtMDktMjkgMTU6NTQ6MzcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZ2NjCgkgIFRoZXNlIGFyZSBhY3R1YWxseSBub3QgdHJ1ZS4KCSAgZ3N0dXJpLmM6IEluIGZ1bmN0aW9uICdfZ3N0X3VyaV9zdHJpbmdfdG9fdGFibGUuY29uc3Rwcm9wJzoKCSAgZ3N0dXJpLmM6MTMxNjoyNzogZXJyb3I6ICdwY3Rfa3Zfc2VwJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KCSAgZm9yIChuZXh0X3NlcCA9IHN0cmNhc2VzdHIgKHZhbHVlLCBwY3Rfa3Zfc2VwKTsgbmV4dF9zZXA7CgkgIF4KCSAgZ3N0dXJpLmM6MTI4MzoyNDogZXJyb3I6ICdwY3RfcGFydF9zZXAnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQoJICBuZXh0X3NlcCA9IHN0cmNhc2VzdHIgKG5leHRfc2VwICsgMSwgcGN0X3BhcnRfc2VwKSkgewoJICBeCgoyMDE0LTA5LTI5IDEyOjE5OjM1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBtZW1vcnkgbGVhayBpbiBnc3RfdXJpX2pvaW4oKQoJICBUaGUgbWVyZ2VkIHBhdGggc2VnbWVudHMgYXJlIGEgZGVlcC1jb3BpZWQgbGlzdCBhbmQgd2UgbmVlZCB0byBmcmVlIHRoZQoJICBjb250YWluZWQgc3RyaW5ncyB0b28gaW5zdGVhZCBvZiBqdXN0IHRoZSBsaXN0IG5vZGVzIHRoZW1zZWx2ZXMuCgoyMDE0LTA3LTMxIDIyOjE4OjUzICswMTAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0VXJpOiBBZGQgR3N0VXJpIG1pbmlvYmplY3QgdG8gaGFuZGxlIFVSSXMgaW4gYW4gUkZDIDM5ODYgY29tcGxpYW50IGZhc2hpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTIyMQoKMjAxNC0wOS0yNyAxMzo1Nzo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBhZGQgZ3N0LXJwaWNhbXNyYyB0byBnc3QtdW5pbnN0YWxsZWQKCjIwMTQtMDktMjUgMjE6MjE6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBmaXhtZTogYnVtcCBsZWZ0b3ZlciAwLjExIGZpeG1lIGNvbW1lbnRzCgoyMDE0LTA5LTI1IDIxOjA0OjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiAnbmV3c2VnbWVudCcgdG8gJ3NlZ21lbnQnIGluIHRoZSBkb2NzCgkgIEJyaW5ncyB0aGUgYXBpLWRvY3MgaW4gc3luYyB3aXRoIHRoZSAxLjAgYXBpIHJlbmFtZS4KCjIwMTQtMDktMjUgMjA6MjM6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbW92ZSB0aGUgcXVpY2sgcmV0dXJuIHVwCgkgIERvbid0IGFzc2lnbiBsb2NhbCB2YXJzIGlmIHdlIHNraXAgYW55d2F5LiBBZGQgbG9nZ2luZyBmb3IgZmFpbHVyZSBjb25kaXRpbwoKMjAxNC0wOS0yNSAxOTowMTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIHRlc3RzOiBwYXJhbGxlbGlzZSAnbWFrZSB2YWxncmluZCcKCSAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiAnbWFrZScgaW5zaWRlIHRoZSBNYWtlZmlsZSwKCSAgb3RoZXJ3aXNlIHRoZSBtYWtlIHdpbGwgcnVuIGFzIGlmIC1qMSBoYWQgYmVlbgoJICBzcGVjaWZpZWQgYW5kIGNvbXBsYWluIGFib3V0IHRoZSBqb2Igc2VydmVyIG5vdAoJICBiZWluZyBhdmFpbGFibGUsIGFuZCB3aXRoICQoTUFLRSkgaW4gaW5oZXJpdHMgdGhlCgkgIHBhcmVudCBtYWtlJ3Mgc2V0dGluZ3MgaXQgc2VlbXMuCgkgIFVwZ3JhZGUgY29tbW9uIHN1Ym1vZHVsZSBmb3IgcGFyYWxsZWwgY2hlY2stdmFsZ3JpbmQuCgkgIExldCB0aGlzIHNldHRsZSBhIGJpdCBiZWZvcmUgdXBncmFkaW5nIHRoZSBvdGhlciBtb2R1bGVzLgoKMjAxNC0wOS0yNSAxODo1NzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUKCSAgSXQncyBzb3J0ZWQuIElmIGl0J3MgdW5zb3J0ZWQsIG1ha2UgY2hlY2stZXhwb3J0cyBmYWlscy4KCjIwMTQtMDktMjUgMTg6NTU6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZW1vdmUgY29uZnVzaW5nIHdhcm5pbmcgYWJvdXQgcnVubmluZyB1bmRlciB2YWxncmluZAoJICBXZSdyZSBub3QgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcgZGlmZmVyZW50bHkgYW55d2hlcmUgd2hlbgoJICB3ZSBkZXRlY3QgdGhhdCB3ZSdyZSBydW5uaW5nIHVuZGVyIHZhbGdyaW5kLCBzbyBsZXQncyBub3QKCSAgcHJpbnQgdGhhdCBjb25mdXNpbmcgbWVzc2FnZSB0aGF0IG1ha2VzIHBlb3BsZSB3b25kZXIgaG93CgkgIHRoZXkgY2FuIHN3aXRjaCBpdCBvZmYgc28gdGhleSBjYW4gdmFsZ3JpbmQgdGhlIG5vcm1hbAoJICBjb2RlIHBhdGhzLiBTZWVpbmcgdGhhdCB3ZSdyZSBub3QgZG9pbmcgdGhhdCBub3IgaGF2ZSBkb25lCgkgIHNvIGluIHRoZSBsYXN0IDEwIHllYXJzIHdlIG1pZ2h0IGp1c3QgYXMgd2VsbCByZW1vdmUgdGhlCgkgIGVudGlyZSBjaGVjayBhY3R1YWxseS4KCjIwMTQtMDktMjUgMTY6MjE6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogZml4IGNhcHMgbGVhayBpbiBiYXNlcGFyc2UgdW5pdCB0ZXN0CgoyMDE0LTA5LTI1IDE0OjU0OjIzICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZmxvd2NvbWJpbmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl9jbGVhcigpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MzU5CgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfY2xlYXIoKQoKMjAxNC0wOS0yNCAxMDoxMTo1NCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IEhhbmRsZSBnc3QtcHl0aG9uIGluIGdzdC11bmluc3RhbGxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MDgyCgoyMDE0LTA2LTAzIDE0OjIzOjMwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUmVtb3ZlIEVPUyBldmVudCBmcm9tIHBlbmRpbmdfZXZlbnQgbGlzdCBvbiBGTFVTSF9TVE9QCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4NjgKCjIwMTQtMDktMjIgMTQ6Mjc6MDUgKzAxMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBGaXggR3N0QnVmZmVyIHR5cG8gIm1lbW9yeSBib2NrIiAtPiAibWVtb3J5IGJsb2NrIgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTE3CgoyMDE0LTA5LTIyIDE3OjI3OjMxICswMTAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogSW1wcm92ZSBnc3RfYnVmZmVyX2dldF9tZXRhKCkgdG8gY2xlYXIgdXAgY29uZnVzaW9uCgkgIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBleGlzdGVuY2Ugb2YgYGdzdF9idWZmZXJfZ2V0X21ldGFgIGFzIGl0IHN1Z2dlc3RlZAoJICB0byBtZSB0aGF0IHlvdSBzaG91bGQgb25seSBhdHRhY2ggb25lIG9mIGFueSB0eXBlIG9mIEdzdE1ldGEgdG8gYSBidWZmZXIuCgkgIEl0J3MgcGVyZmVjdGx5IGZpbmUgdG8gYXR0YWNoIG11bHRpcGxlIGZyb20gYSBzaW5nbGUgQVBJIHNvIEknbQoJICBkb2N1bWVudGluZyB0aGF0IGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMjkKCjIwMTQtMDktMjIgMTk6MDU6MzIgKzAyMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogYWRkZWQgbWlzc2luZyBpbmNsdWRlIGRpcmVjdGl2ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEzMwoKMjAxNC0wOS0yMyAxNDozMToyOSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG8gbm90IGZvcmdldCB0byByZWxlYXNlIHRoZSBRVUVVRV9MT0NLIGluIHRoZSBvdXRfZmxvd19lcnJvciBwYXRoCgkgIEF2b2lkaW5nIGRlYWRsb2NrcyEKCjIwMTQtMDktMjMgMTI6NTM6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogZml4IGEgc21hbGwgY29udHJhZGl0aW9uIGluIHRoZSBkb2NzCgkgIFRoZSB2bWV0aG9kIGdldF9zaXplKCkgc2hhbGwgcmV0dXJuIHRoZSBzaXplIGluICdmb3JtYXQnIGFzIGNvbmZpZ3VyZWQgYnkKCSAgX3NldF9mb3JtYXQoKS4KCjIwMTQtMDktMjIgMDk6MzM6MDQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvIG5vdCBob2xkIEdTVF9RVUVVRV9MT0NLIHdoaWxlIHBvc3RpbmcgRVJST1IgbWVzc2FnZXMKCSAgVGhpcyBtaWdodCBjcmVhdGUgZGVhZGxvY2tzIGFuZCB3ZSBuZWVkIHRvIGF2b2lkIGhvbGRpbmcgZWxlbWVudAoJICBzcGVjaWZpYyBsb2NrIHdoaWxlIHBvc3RpbmcgbWVzc2FnZXMKCSAgRm9yIGV4YW1wbGUgYSBkZWFkbG9jayB3aWxsIGhhcHBlbiBpZiB3aGlsZSBwb3N0aW5nIHRoZSBtZXNzYWdlLAoJICBzb21lb25lIGNvbm5lY3RlZCBvbiB0aGUgYnVzIChzeW5jKSB0cmllcyB0byBET1QgdGhlIHBpcGVsaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTAyCgoyMDE0LTA5LTE5IDEyOjAyOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGRvIG5vdCBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlcyBob2xkaW5nIHRoZSBsb2NrCgkgIEl0IG1pZ2h0IGNhdXNlIGRlYWRsb2NrcyB0byBwb3N0IG1lc3NhZ2VzIHdoaWxlIGhvbGRpbmcgdGhlIHF1ZXVlMgoJICBsb2NrLiBUbyBhdm9pZCB0aGlzIGEgbmV3IGJvb2xlYW4gZmxhZyBpcyBzZXQgd2hlbmV2ZXIgYSBuZXcKCSAgYnVmZmVyaW5nIHBlcmNlbnQgaXMgZm91bmQuIFRoZSBtZXNzYWdlIGlzIHBvc3RlZCBhZnRlciB0aGUgbG9jawoJICBpcyByZWxlYXNlZC4KCSAgVG8gbWFrZSBzdXJlIHRoZSBidWZmZXJpbmcgbWVzc2FnZXMgYXJlIHBvc3RlZCBpbiB0aGUgcmlnaHQgb3JkZXIsIG1lc3NhZ2VzCgkgIGFyZSBwb3N0ZWQgaG9sZGluZyBhbm90aGVyIGxvY2suIFRoaXMgcHJldmVudHMgMiB0aHJlYWRzIHRyeWluZyB0byBwb3N0CgkgIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY5NjkKCjIwMTQtMDktMTkgMDk6NDI6MTAgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjb2RlCgkgIGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKCkgZnVuY3Rpb24gaGFzIG5ld191cmksIGxvY2F0aW9uIGFuZCBjb2xvbgoJICBhcmUgbm90IG5lY2Vzc2FyeSwgdGhleSBjYW4gYmUgcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjg3NwoKMjAxNC0wOS0xOSAwMDozMzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBwd2c6IGZpeCBzb21lIGxpbmtzIHRvIHRoZSBBUEkgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzYyCgoyMDE0LTA5LTE4IDE4OjU1OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSBGSVhNRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODc4CgoyMDE0LTA5LTE3IDIxOjQ5OjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCBzcGVsbGluZyBlcnJvcgoJICBUaGFuayB0byBBZHJpYW4gT3dlbiBmb3IgcmVwb3J0aW5nIHRoaXMgZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4MzkKCjIwMTQtMDktMTcgMTc6MTc6MTAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGRvIG5vdCBsZWFrIHN0aWNreSBldmVudHMgaW4gZmx1c2hfc3RvcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODEzCgoyMDE0LTA5LTEyIDE0OjQyOjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgZ2xvYmFsIHZhcmlhYmxlIGZvciBsb2dfZmlsZQoJICBVc2UgdXNlcl9kYXRhIHRvIHBhc3MgdGhlIGxvZ19maWxlIGhhbmRsZSB0byB0aGUgbG9nZ2VyLWZ1bmN0aW9uLgoJICBJZiBvbmUgd2FudHMgdG8gY2hhbmdlIHRoZSBsb2cgdGFyZ2V0IChlLmcuIEdTVF9ERUJVR19GSUxFKSwgc2ltcGx5IGNhbGwKCSAgZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24oKSBhbmQgcmUtYWRkIHRoZSBoYW5kbGVyIHdpdGggdGhlIG5ldyBsb2ctdGFyZ2V0CgkgIHVzaW5nIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uICgpLgoKMjAxNC0wOS0xNiAxMzo0ODoxOCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGFubm90YXRpb25zIHRvIGdzdF9ldmVudF9wYXJzZV90b2Nfc2VsZWN0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjczOQoKMjAxNC0wOS0xMSAxODowMTo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcG9zdCBtZXNzYWdlcyBob2xkaW5nIHRoZSBsb2NrCgkgIEl0IG1pZ2h0IGNhdXNlIGRlYWRsb2NrcyB0byBwb3N0IG1lc3NhZ2VzIHdoaWxlIGhvbGRpbmcgdGhlIG11bHRpcXVldWUKCSAgbG9jay4gVG8gYXZvaWQgdGhpcyBhIG5ldyBib29sZWFuIGZsYWcgaXMgc2V0IHdoZW5ldmVyIGEgbmV3IGJ1ZmZlcmluZyBwZXJjZW50CgkgIGlzIGZvdW5kLiBUaGUgbWVzc2FnZSBpcyBwb3N0ZWQgYWZ0ZXIgdGhlIGxvY2sgY2FuIGJlIHJlbGVhc2VkLgoJICBUbyBtYWtlIHN1cmUgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlcyBhcmUgcG9zdGVkIGluIHRoZSByaWdodCBvcmRlciwgbWVzc2FnZXMKCSAgYXJlIHBvc3RlZCBob2xkaW5nIGFub3RoZXIgbG9jay4gVGhpcyBwcmV2ZW50cyAyIHRocmVhZHMgdHJ5aW5nIHRvIHBvc3QKCSAgbWVzc2FnZXMgYXQgdGhlIHNhbWUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjI5NQoKMjAxNC0wOS0xNiAxNjowNzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTQtMDktMTYgMTI6MTc6NDggKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBhbm5vdGF0aW9ucyB0byBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fcG9vbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3MzYKCjIwMTQtMDktMTUgMTY6Mzg6MTcgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIHJlZmVyZW5jZSBpbiBzZXRfYWxsb2NhdGlvbiByYXRoZXIgdGhhbiBpbiBwcmVwYXJlX2FsbG9jYXRpb24KCSAgT3RoZXJ3aXNlIHdlIGNhbiBmb3JnZXQgdG8gdW5yZWYgb2JqZWN0cyBpbiBlcnJvciBjYXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjY4MAoKMjAxNC0wOS0xNSAxMzowNjo0MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBVc2UgdGhlIG5hbWUgcGFyYW1ldGVyIG9mIGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUoKSBhbmQgdGhlIHNpbmsgdmFyaWFudAoJICBUaGlzIHdhcyBoYXJkY29kZWQgdG8gInNpbmsiIC8gInNyYyIgYnkgYWNjaWRlbnQgaW4gcHJldmlvdXMgcmVmYWN0b3JpbmcuCgoyMDE0LTA5LTEzIDIwOjEyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGNvcmVlbGVtZW50czogbWFyayBwcm9wZXJ0aWVzIHdpdGggTVVUQUJMRV9QTEFZSU5HCgoyMDE0LTA5LTExIDE1OjUyOjMyICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIGRlc3RydWN0aW9uIG9mIG9iamVjdHMKCSAgQWRkIGEgbWV0aG9kIGxldHRpbmcgcGVvcGxlIHRvIGVuc3VyZSB0aGF0IHVucmVmZmluZyBvbmUgb2JqZWN0CgkgIGxlYWRzIHRvIGl0cyBkZXN0cnVjdGlvbiwgYW5kIHBvc3NpYmx5IHRoZSBkZXN0cnVjdGlvbiBvZiBtb3JlIG9iamVjdAoJICAodGhpbmsgZGVzdHJ1Y3Rpb24gb2YgYSBHc3RCaW4gZXRjLi4uKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjQ3NwoKMjAxNC0wOS0xMiAxNDoxMDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZG9uJ3QgbGlzdCBwYWQgZnVuY3Rpb25zCgkgIERvbid0IHByaW50IGFsbCB0aGUgZGlmZmVyZW50IHBhZCBmdW5jdGlvbnMsIGl0J3MganVzdAoJICBjb25mdXNpbmcgYW5kIG5vIG9uZSBoYXMgZXZlciBuZWVkZWQgdG8ga25vdyB0aGlzIGZvcgoJICBhbnl0aGluZyBldmVyIGFueXdheSwgaXQncyBqdXN0IHVzZWxlc3MgaW5mb3JtYXRpb24uCgkgIEJlc2lkZXMsIHdlIGFsc28gbGFiZWwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGFzCgkgICdjdXN0b20nIGltcGxlbWVudGF0aW9ucyAodGhlIGNvZGUgdGhhdCB0cmllcyB0bwoJICBwcmV2ZW50IHRoYXQgZG9lc24ndCBhY3R1YWxseSB3b3JrIGl0IHNlZW1zKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjM3NwoKMjAxNC0wOS0xMiAxNToyMjoxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB0byBnZXQvcHVsbF9yYW5nZSgpIGhhcyBhdCBsZWFzdCB0aGUgcmVxdWVzdGVkIHNpemUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg2MQoKMjAxNC0wOS0wNSAxODozNjowMiArMDAwMCAgVGlhZ28gPHRpYWdva2F0Y2lwaXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEFkZGluZyBkb2N1bWVudGF0aW9uIHRvIHRoZSBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWRfYnlfbmFtZSBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTkwCgoyMDE0LTA5LTEwIDE0OjUzOjAwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X3F1ZXJ5X3NldF9udGhfYWxsb2NhdGlvbl9wb29sKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzY0MjQKCjIwMTQtMDktMTEgMDk6MzU6MTcgKzAyMDAgIFLDqW1pIExlZsOodnJlIDxyZW1pLmxlZmV2cmVAcGFycm90LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeCB0eXBvIGluIGRlc2NyaXB0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY0NTUKCjIwMTQtMDktMDkgMjA6NDM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1pbm9yIGRvY3MgZml4CgoyMDE0LTA5LTA3IDAxOjMwOjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgUmV2ZXJ0ICJkYXRhdXJpc3JjOiBSZW1vdmUgdW5uZWNlc3NhcnkgZWxzZSBpZiBjb25kaXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzAyNGFlOWMzODQ5MDgxN2E3NmM4M2ZlYWIzYzg0NzI5ODljYWZhZC4KCSAgVGhlICpidWYgY2FuIGJlIE5VTEwgb3Igbm90IGRlcGVuZGluZyBpZiB0aGUgY2FsbGVyIG9mIGdzdF9wYWRfZ2V0X3JhbmdlCgkgIGZ1bmN0aW9uIHByb3ZpZGVkIG9yIG5vdCBhIGJ1ZmZlci4KCjIwMTQtMDktMDQgMTM6Mzg6MjEgKzA1MzAgIFZpbmVldGggVCBNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBlbHNlIGlmIGNvbmRpdGlvbgoJICBJbiBnc3RfZGF0YV91cmlfc3JjX2NyZWF0ZSgpLCBidWYgY2Fubm90IGJlIE5VTEwsIGhlbmNlCgkgIGVsc2UgaWYgKCpidWYgIT0gTlVMTCkgd2lsbCBiZSBpbnZhbGlkIHNvIHJlbW92aW5nIHRoZQoJICBlbHNlIGlmIGNvbmRpdGlvbiBhbmQgYWRkaW5nIGEgY2hlY2sgdG8gdW5yZWZlcmVuY2UgYnVmCgkgIGluIGVsc2UgY29uZGl0aW9uLCBqdXN0IGluIGNhc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg2MQoKMjAxNC0wOS0wMyAxNzozODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGZpeCB0eXBvIGluIHNhbXBsZSBjb2RlIGluIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk3NQoKMjAxNC0wOC0yNSAxMTozNDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWQgdGVzdAoJICBDaGVjayB0aGF0IHB1c2hpbmcgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgZG9lcyBub3QgY2xlYXIgdGhlCgkgIGZsdXNoaW5nIGZsYWcuCgoyMDE0LTA4LTIxIDE1OjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBhY2NlcHQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWRzCgkgIEluYWN0aXZlIHBhZHMgc2hvdWxkIGF0IGFsbCB0aW1lcyBoYXZlIHRoZSBmbHVzaGluZyBmbGFnIHNldC4gVGhpcyBtZWFucwoJICB0aGF0IHdoZW4gd2UgZ2V0IGEgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgd2UgbXVzdCBpZ25vcmUgaXQuCgkgIE9uIHNpbmtwYWRzLCBtYWtlIHRoaXMgbW9yZSBleHBsaWNpdC4gV2UgdXNlZCB0byBub3QgY2xlYXIgdGhlIGZsdXNoCgkgIGZsYWcgYnV0IHJlbW92ZSB0aGUgZXZlbnRzIGFuZCB0aGVuIHJldHVybiBhbiBlcnJvciBiZWNhdXNlIHRoZSBmbHVzaGluZwoJICBmbGFnIHdhcyBzZXQuIE5vdyBqdXN0IHNpbXBseSByZWZ1c2UgdGhlIGV2ZW50IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcuCgkgIE9uIHNyY3BhZHMsIGNoZWNrIHRoYXQgd2UgYXJlIHRyeWluZyB0byBwdXNoIGEgZmx1c2gtc3RvcCBldmVudCBhbmQKCSAgcmVmdXNlIGl0LiBXZSB3b3VsZCBhbGxvdyB0aGlzIGFuZCBtYXJrIHRoZSBzcmNwYWQgYXMgbm9uLWZsdXNoaW5nCgkgIGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUzNTcKCjIwMTQtMDgtMjcgMTc6MDY6NTcgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IFNlbmQgYWxsIGV2ZW50cyB0byBhY3RpdmUgc3JjIHBhZCBhbmQgRU9TIHRvIGFsbCBzcmMgcGFkcwoJICBGaXhlcyB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5ODExCgoyMDE0LTA5LTAyIDEyOjExOjQ0ICswNTMwICBWaW5lZXRoIFQgTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBNYWtlIGdldF91cmkoKSB0aHJlYWRzYWZlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NjEKCjIwMTQtMDgtMjggMTc6MjQ6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IHR5cG8gaW4gYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTYwOQoKMjAxNC0wOC0yNiAyMDoxNDo0MCArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZG8gbm90IHRvdWNoIG1lbW9yeSB0YWcgZmxhZyB3aGVuIGNvcHlpbmcgYnVmZmVyIGZsYWdzCgkgIFRoZSB0YWcgbWVtb3J5IGZsYWcgd2lsbCBiZSBzZXQgbGF0ZXIgaWYgdGhlIG1lbW9yeSBpcyBhbHNvIGNvcGllZC4gVGhpcwoJICBwYXRjaCBhdm9pZHMgYnVmZmVycyBiZWluZyBmcmVlZCBuZWVkbGVzc2x5IGluIGJ1ZmZlcnBvb2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NTc0CgoyMDE0LTA3LTE1IDE2OjA2OjQ5ICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBnc3RfYnVzX2FkZF93YXRjaCgpIGNhbiByZXR1cm4gMCBvbiBlcnJvcgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0wOC0yNSAxMzo0NDozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBoYW5kbGUgc3RyZWFtaGVhZGVycyBieSBwcmVwZW5kaW5nIHRoZW0gdG8gdGhlIHN0cmVhbQoJICBBZGQgYSBmaXJzdF9idWZmZXIgYm9vbGVhbiBzdGF0ZSBmbGFnIHRvIGhhdmUgYmFzZXBhcnNlIGRvIGFjdGlvbnMKCSAgYmVmb3JlIHB1c2hpbmcgZGF0YS4gVGhpcyBpcyB1c2VkIHRvIGNoZWNrIHRoZSBjYXBzIGZvciBzdHJlYW1oZWFkZXIKCSAgYnVmZmVycyB0aGF0IGFyZSBwcmVwZW5kZWQgdG8gdGhlIHN0cmVhbSwgYnV0IG9ubHkgaWYgdGhlIGZpcnN0IGJ1ZmZlcgoJICBpc24ndCBhbHJlYWR5IG1hcmtlZCB3aXRoIHRoZSBfSEVBREVSIGZsYWcuIEluIHRoaXMgY2FzZSwgaXQgaXMgYXNzdW1lZAoJICB0aGF0IHRoZSBfSEVBREVSIG1hcmtlZCBidWZmZXIgaXMgdGhlIHNhbWUgYXMgdGhlIHN0cmVhbWhlYWRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTA3MAoKMjAxNC0wOC0yNyAxMTowMTowMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWxsb3cgc2Vla2luZyBvbiB0aGUgY3VycmVudGx5IHBsYXlpbmcgc3RyZWFtCgkgIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBzdHJlYW0gdGltZSByZXBvcnRpbmcuCgoyMDE0LTA4LTIzIDEyOjI0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBnLWkgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb25zIHRvIGNoYWluIGFuZCBjaGFpbl9saXN0IGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MjEwCgoyMDE0LTA4LTIyIDEwOjMyOjM4ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhbm5vdGF0ZSBHc3RQYWRFdmVudEZ1bmN0aW9uIGV2ZW50IHdpdGggJ3RyYW5zZmVyIGZ1bGwnCgkgIFRoZSBjYWxsYmFjayBpcyBzdXBwb3NlZCB0byB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQgc28KCSAgYmVzdCB0byBiZSBleHBsaWNpdCBhYm91dCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTIxMAoKMjAxNC0wOC0yMCAxMjo1NTo1MSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogYWRkIHRlc3QgdGhhdCB0cmlnZ2VycyBkZWFkbG9jayBpbiBzdGF0ZSBjaGFuZ2Ugb2YgcXVldWUKCSAgV2hlbiByZWNlaXZpbmcgRkxBU0hfU1RPUCBpbiBhIHN0YXRlIHRyYW5zaXRpb24gdG8gUkVBRFksIGEgcXVldWUKCSAgZWxlbWVudCBjYW4gZW5kIHVwIHdpdGggYW4gYWN0aXZlIHRhc2sgdGhhdCB3aWxsIG5ldmVyIGVuZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDY4OAoKMjAxNC0wOC0yMSAxNDowMjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGZpeCByYWNlIHdoZW4gZmx1c2gtc3RvcCBldmVudCBjb21lcyBpbiB3aGlsc3Qgc2h1dHRpbmcgZG93bgoJICBEb24ndCByZS1zdGFydCB0aGUgcXVldWUgcHVzaCB0YXNrIG9uIHRoZSBzb3VyY2UgcGFkIHdoZW4gYQoJICBmbHVzaC1zdG9wIGV2ZW50IGNvbWVzIGluIGFuZCB3ZSdyZSBpbiB0aGUgcHJvY2VzcyBvZiBzaHV0dGluZwoJICBkb3duLCBvdGhlcndpc2UgdGhhdCB0YXNrIHdpbGwgbmV2ZXIgYmUgc3RvcHBlZCBhZ2Fpbi4KCSAgV2hlbiB0aGUgZWxlbWVudCBpcyBzZXQgdG8gUkVBRFkgc3RhdGUsIHRoZSBwYWRzIGdldCBkZS1hY3RpdmF0ZWQuCgkgIFRoZSBzb3VyY2UgcGFkIGdldHMgZGVhY3RpdmF0ZWQgYmVmb3JlIHRoZSBxdWV1ZSdzIG93biBhY3RpdmF0ZV9tb2RlCgkgIGZ1bmN0aW9uIG9uIHRoZSBzb3VyY2UgcGFkcyBnZXRzIGNhbGxlZCAod2hpY2ggd2lsbCBzdG9wIHRoZSB0aHJlYWQpLAoJICBzbyBjaGVja2luZyB3aGV0aGVyIHRoZSBwYWQgaXMgYWN0aXZlIGJlZm9yZSByZS1zdGFydGluZyB0aGUgdGFzayBvbgoJICByZWNlaXZpbmcgZmx1c2gtc3RvcCBzaG91bGQgYmUgZmluZS4gVGhlIHByb2JsZW0gd291bGQgaGFwcGVuIHdoZW4gdGhlCgkgIGZsdXNoLXN0b3AgaGFuZGxlciB3YXMgY2FsbGVkIGp1c3QgYWZ0ZXIgdGhlIHF1ZXVlJ3MgYWN0aXZhdGUgbW9kZQoJICBmdW5jdGlvbiBoYWQgc3RvcHBlZCB0aGUgdGFzay4KCSAgU3BvdHRlZCBhbmQgZGVidWdnZWQgYnkgTGludXMgU3ZlbnNzb24gPGxpbnV4LnN2ZW5zc29uQGF4aXMuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0Njg4CgoyMDE0LTA4LTA2IDE0OjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcigpIGFuZCBfZ2V0X3N1Yl9yZWFkZXIoKQoJICBBZGRzIEFQSSB0byBnZXQgb3IgcGVlayBhIHN1Yi1yZWFkZXIgb2YgYSBjZXJ0YWluIHNpemUgZnJvbQoJICBhIGdpdmVuIGJ5dGUgcmVhZGVyLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHBhcnNpbmcgbmVzdGVkIGNodW5rcywKCSAgb25lIGNhbiBlYXNpbHkgZ2V0IGEgYnl0ZSByZWFkZXIgZm9yIGEgc3ViLWNodW5rIGFuZCBtYWtlCgkgIHN1cmUgb25lIG5ldmVyIHJlYWRzIGJleW9uZCB0aGUgc3ViLWNodW5rIGJvdW5kYXJ5LgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3ViX3JlYWRlcigpCgoyMDE0LTA3LTI1IDE2OjM5OjQwICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IG1ha2UgZXhwbGljaXQgdGhhdCB0aGUgY2FwcyBwYXNzZWQgdG8gZ3N0X2Jhc2Vfc3JjX3NldF9jYXBzKCkgYXJlICd0cmFuZmVyIG5vbmUnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3NDEKCjIwMTQtMDgtMTQgMTg6NTM6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhbHdheXMgcHJveHkgY2FwcyBxdWVyeQoJICBPdGhlcndpc2UgaXQgd291bGQgb25seSBiZSBwcm94aWVkIGZvciB0aGUgYWN0aXZlIHBhZCB3aGljaCBjYW4gbGVhZAoJICB1cHN0cmVhbSB0byB1c2UgYW4gaW5jb21wYXRpYmxlIGNhcHMgZm9yIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQuCgkgIEV2ZW4gaWYgYSByZWNvbmZpZ3VyZSBldmVudCBpcyBzZW50IHVwc3RyZWFtIHdoZW4gdGhlIHBhZCBpcyBhY3RpdmF0ZWQsIHRoaXMKCSAgd2lsbCBzYXZlIHRoZSBjYXBzIHJlY29uZmlndXJhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IHVzaW5nIGFuIGFjY2VwdGFibGUgY2Fwcy4KCjIwMTQtMDgtMTQgMTQ6Mzc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBiYXNlOiBhbmQgZml4IGJ1aWxkIHdpdGggbmV3IGctaSBhZ2FpbgoKMjAxNC0wOC0xNCAxNDoyNTowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGJhc2U6IHJlbW92ZSBnLWkgYW5ub3RhdGlvbiB0aGF0IG1ha2VzIG9sZGVyIGctaXItc2Nhbm5lciBjcmFzaAoJICBKdXN0IHJlbW92ZSBvbmUgc2tpcCBhbm5vdGF0aW9uIHRoYXQgY2F1c2VzIHRoaXM6CgkgICoqIChnLWlyLWNvbXBpbGVyOjEyNDU4KTogRVJST1IgKio6IENhdWdodCBOVUxMIG5vZGUsIHBhcmVudD1lbXB0eQoJICB3aXRoIG9sZGVyIGctaSB2ZXJzaW9ucyBzdWNoIGFzIDEuMzIuMS4KCjIwMTQtMDgtMTMgMTQ6MTI6MDAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZGVzdHJveSBzaWduYWwgd2F0Y2ggZnJvbSB0aGUgY29udGV4dCBpdCB3YXMgbWFwcGVkIHRvCgkgIERvbid0IHJlbHkgb24gZ19zb3VyY2VfcmVtb3ZlKCkgYmVjYXVzZSBpdCBvcGVyYXRlcyBvbiB0aGUgbWFpbgoJICBjb250ZXh0LiBJZiBhIHNpZ25hbCB3YXRjaCB3YXMgYWRkZWQgdG8gYSBuZXcgdGhyZWFkLWRlZmF1bHQgY29udGV4dAoJICBnX3NvdXJjZV9yZW1vdmUoKSB3b3VsZCBoYXZlIG5vIGVmZmVjdC4gU28gc2ltcGx5IHVzZQoJICBnX3NvdXJjZV9kZXN0cm95KCkgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLgoJICBBZGRpdGlvbmFsbHkgdGhlIHNvdXJjZV9pZCB3YXMgcmVtb3ZlZCBmcm9tIEdzdEJ1c1ByaXZhdGUgYmVjYXVzZSBpdAoJICB3YXMgcmVkdW5kYW50IHdpdGggdGhlIHNpZ25hbCB3YXRjaCBHU291cmNlIGFsc28gc3RvcmVkIGluIHRoYXQKCSAgc3RydWN0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NzE2CgoyMDE0LTA4LTA3IDEyOjE4OjA0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTm90IHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2UgaWYgb25lIG9mIHRoZSBzaW5nbGVxdWV1ZSBkb2Vzbid0IG5lZWQgaXQKCSAgSW1hZ2luZSB0aGUgZm9sbG93aW5nICdwaXBlbGluZScKCSAgLS0tLS0tLS0tLS0tLS0KCSAgcDEvfCAnZnVsbHF1ZXVlJyAgfC0tLSAnbGFnZ3knIGRvd25zdHJlYW0KCSAgLS0tLS0tLS0tICAvIHwgICAgICAgICAgICAgIHwKCSAgLXwgZGVtdXhlciB8ICAgfCBtdWx0aXF1ZXVlICAgfAoJICAtLS0tLS0tLS0gIFwgfCAgICAgICAgICAgICAgfAoJICBwMlx8ICdlbXB0eXF1ZXVlJyB8LS0tICdmYXN0JyBkb3duc3RyZWFtCgkgIC0tLS0tLS0tLS0tLS0tCgkgIEluIHRoZSBjYXNlIGRvd25zdHJlYW0gb2Ygb25lIHNpbmdsZSBxdWV1ZSAoZnVsbHF1ZXVlKSBoYXMgKGEgbG90IG9mKSBsYXRlbmN5CgkgIChmb3IgZXhhbXBsZSBmb3IgcmV2ZXJzZSBwbGF5YmFjayB3aXRoIHZpZGVvKSwgd2UgY2FuIGVuZCB1cCBoYXZpbmcgdGhlIG90aGVyCgkgIFNpbmdsZVF1ZXVlIChlbXB0eXF1ZXVlKSBlbXB0aWVkLCBiZWZvcmUgdGhhdCBmdWxscXVldWUgZ2V0cwoJICB1bmJsb2NrZWQuIEluIHRoZSBtZWFudGltZSwgdGhlIGRlbXV4ZXIgdHJpZXMgdG8gcHVzaCBvbiBmdWxscXVldWUsIGFuZAoJICBpcyBibG9ja2luZyB0aGVyZS4KCSAgSW4gdGhhdCBjYXNlIHRoZSBjdXJyZW50IGNvZGUgd2lsbCBwb3N0IGEgQlVGRkVSSU5HIG1lc3NhZ2Ugb24gdGhlIGJ1cyB3aGVuCgkgIGVtcHR5cXVldWUgZ2V0cyBlbXB0aWVkLCB0aGF0IGxlYWRzIHRvIHRoZSBhcHBsaWNhdGlvbiBzZXR0aW5nIHRoZSBwaXBlbGluZSBzdGF0ZSB0bwoJICBQQVVTRUQuIFNvIG5vdyB3ZSBlbmQgdXAgaW4gYSBzaXR1YXRpb24gd2hlcmUgJ2xhZ2d5IGRvd25zdHJlYW0nIGlzCgkgIHByZXJvbGxlZCBhbmQgd2lsbCBub3QgdW5ibG9jayBhbnltb3JlIGJlY2F1c2UgdGhlIHBpcGVsaW5lIGlzIHNldCB0bwoJICBQQVVTRUQsIHRoZSBmdWxsZXF1ZXVlIGRvZXMgbm90IGhhdmUgYSBjaGFuY2UgdG8gYmUgZW1wdGllZCBhbmQKCSAgdGhlIGVtcHR5cXVldWUgY2FuIG5vdCBnZXQgZmlsbGVkIGFueW1vcmUgc28gbm8gbW9yZSBCVUZFUlJJTkcgbWVzc2FnZQoJICB3aWxsIGJlIHBvc3RlZCBhbmQgdGhlIHBpcGVsaW5lIGlzIHN0dWNrZWQgaW4gUEFVU0VEIGZvciB0aGUgZXRlcm5pdHkuCgkgIE1ha2luZyBzdXJlIHRoYXQgd2UgZG8gbm90IHRyeSB0byAiYnVmZmVyIiBpZiBvbmUgb2YgdGhlIHNpbmdsZSBxdWV1ZQoJICBkb2VzIG5vdCBuZWVkIGJ1ZmZlcmluZywgcHJldmVudHMgdGhpcyBzaXR1dGF0aW9uIGZyb20gaGFwcGVuaW5nIHRob3VnaCBpdCBsZXRzIHRoZQoJICBvcG9ydHVuaXR5IGZvciBidWZmZXJpbmcgaW4gYWxsIG90aGVyIGNhc2VzLgoJICBUaGF0IGltcGxlbWVudHMgYSBuZXcgbG9naWMgd2hlcmUgd2UgbmVlZCBhbGwgc2luZ2xlcXVldWUgdG8gbmVlZAoJICBidWZmZXJpbmcgZm9yIHRoZSBtdWx0aXF1ZXVlIHRvIGFjdHVhbGx5IHN0YXRlIGJ1ZmZlcmluZyBpcyBuZWVkZWQsCgkgIHRha2luZyB0aGUgbWF4aW11bSBidWZmZXJpbmcgb2YgdGhlIHNpbmdsZSBxdWV1ZSBhcyB0aGUgcmVmZXJlbmNlIHBvaW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDEyCgoyMDE0LTA4LTEzIDEzOjAxOjIzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE9ubHkgaGFuZGxlIGZsb3cgcmV0dXJucyA8IEVPUyBhcyBlcnJvcnMsIG5vdCBlLmcuIGZsdXNoaW5nCgoyMDE0LTA4LTEzIDEyOjQwOjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFVzZSBhbGxvdy1ub25lIGluc3RlYWQgb2YgbnVsbGFibGUgdW50aWwgd2UgZGVwZW5kIG9uIGEgbmV3IGVub3VnaCBHSSB2ZXJzaW9uCgoyMDE0LTA4LTEzIDEyOjM5OjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGdzdF9iaW5fbmV3KCkgY2FuIGFjY2VwdCBOVUxMIGFzIG5hbWUKCjIwMTQtMDgtMTMgMTI6Mzc6MDggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDbGFyaWZ5IGRvY3MgYWJvdXQgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgYW5kIHJlbW92ZSBkZXByZWNhdGlvbiBwYXJ0CgkgIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlYWxseSBwYWQgb3Igc2xvdyBmb3IgdGhlIGNvbW1vbiBjYXNlIG9mIHJlcXVlc3RpbmcgYQoJICBwYWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgdGVtcGxhdGUuIEl0IGlzIG9ubHkgc2xvd2VyIGlmIHlvdSB0byBuYW1lIHlvdXIgcGFkcwoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGVsZW1lbnQgaGFuZGxlIGl0LgoJICBBbHNvIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGRlcHJlY2F0ZSBpdCBpbiBmYXZvciBvZiBhIG1vcmUgY29tcGxpY2F0ZWQgZnVuY3Rpb24KCSAgZm9yIHRoZSBjb21tb24gY2FzZS4KCjIwMTQtMDgtMTMgMTI6MjA6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFBvc3QgZXJyb3JzIGlmIHdlIHJlY2VpdmUgRU9TIGFmdGVyIGRvd25zdHJlYW0gcmVwb3J0ZWQgYW4gZXJyb3IKCSAgVGhlcmUgd2lsbCBiZSBubyBmdXJ0aGVyIGRhdGEgZmxvdyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIGNhdXNpbmcgbm9ib2R5IGF0IGFsbCB0byBwb3N0IGFuIGVycm9yIG1lc3NhZ2UuCgoyMDE0LTA4LTEzIDEyOjE1OjAzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUG9zdCBlcnJvcnMgd2hlbiByZWNlaXZpbmcgRU9TIGFmdGVyIGRvd25zdHJlYW0gcmV0dXJuZWQgYW4gZXJyb3IKCSAgVGhlcmUgbWlnaHQgYmUgbm8gZnVydGhlciBkYXRhIGZsb3cgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBjYXVzaW5nIG5vYm9keSB0byBwb3N0IGFuIGVycm9yIGF0IGFsbC4KCjIwMTQtMDgtMTMgMTI6MTA6MzkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUG9zdCBlcnJvcnMgb3Vyc2VsdmVzIGlmIHRoZXkgYXJlIHJlY2VpdmVkIGFmdGVyIEVPUwoJICBBZnRlciBFT1MgdGhlcmUgd2lsbCBiZSBubyBmdXJ0aGVyIGJ1ZmZlciB3aGljaCBjb3VsZCBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBzbyBub3RoaW5nIGlzIGdvaW5nIHRvIHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBhbmQKCSAgdGhlIHBpcGVsaW5lIGp1c3QgaWRsZXMgYXJvdW5kLgoKMjAxNC0wOC0xMiAyMDowMzowNiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IFRyaXZpYWwgcGFkIGRvY3VtZW50YXRpb24gZml4CgkgIFByZXN1bWFibHkgYSBjb3B5LXBhc3RvLgoKMjAxNC0wOC0wOCAwOTo1NDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgdW5pdCB0ZXN0cyBmb3IgY29uY2F0IGVsZW1lbnQKCjIwMTQtMDgtMDggMDk6MTM6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgaW50ZWdyYXRlIGludG8gZG9jdW1lbnRhdGlvbiBidWlsZAoKMjAxNC0wOC0wNyAxNDo0Mjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgY29uY2F0OiBBZGQgbmV3IGVsZW1lbnQgdGhhdCBjb25jYXRlbmF0ZXMgbXVsdGlwbGUgc3RyZWFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDcwCgoyMDE0LTA4LTA5IDEwOjU3OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogYWRkIGNoZWNrIGZvciBjYXBzIHdpdGggZmVhdHVyZXMgaW50ZXJzZWN0aW9uCgkgIENoZWNrcyB0aGF0IGEgY2FwcyB3aXRob3V0IGZlYXR1cmVzIGRvZXNuJ3QgaW50ZXJzZWN0IHdpdGgKCSAgb25lIHRoYXQgaGFzIGZlYXR1cmVzCgoyMDE0LTA4LTA3IDE0OjU0OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkgIGV4YW1wbGVzOiBjb250cm9sbGVyOiBmaXggdHlwbyBpbiBjb21tZW50cwoKMjAxNC0wOC0wNiAxMzo1ODoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiB1c2UgdW5jaGVja2VkIGlubGluZSB2YXJpYW50IGZvciBnZXRfcmVtYWluaW5nIGluIG1vcmUgcGxhY2VzCgkgIFdlJ3ZlIGFscmVhZHkgZG9uZSB0aGUgZ19yZXR1cm5fKl9pZl9mYWlsIChyZWFkZXIgIT0gTlVMTCkKCSAgZGFuY2UgaW4gdGhvc2UgcGxhY2VzLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluLgoKMjAxNC0wOC0wNiAxNDo0MzowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogR2hvc3RwYWRzIGNhbiBiZSByZXF1ZXN0IHBhZHMgdG9vIGJ1dCBjaGVjayBpZiB0aGUgcGFkIGhhcyBhIHRlbXBsYXRlCgkgIE90aGVyd2lzZSB3ZSBkZXJlZmVyZW5jZSBOVUxMIGluIHNvbWUgY2FzZXMgYW5kIGNyYXNoLgoKMjAxNC0wOC0wNiAxMjozNDo0MiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkgIHRlc3RzOiBBZGQgbWlzc2luZyB1bnJlZnMgb2Ygb2JqZWN0cyBhZnRlciB1c2UKCSAgVW5yZWZmaW5nIHRoZSBvYmplY3RzIHJldHVybmVkIGJ5IGdzdF9iaW5fZ2V0X2J5X25hbWUoKSBhbmQKCSAgZ3N0X3BpcGVsaW5lX2dldF91c2UoKSB3ZXJlIG1pc3NpbmcgaW4gc2V2ZXJhbCB0ZXN0cywgc28gYWRkIHRoZXNlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MzQ1CgoyMDE0LTA4LTA2IDEyOjU1OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pdGl0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDE0LTA3LTEzIDE1OjMxOjA4ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IEFkZCB0ZXN0IHZlcmlmeWluZyBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMTkKCjIwMTQtMDctMTMgMTU6Mjg6MzIgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVW5yZWYvcmVsZWFzZSBwYWRzIGluIGVycm9yIGNhc2VzIHdoZW4gbGlua2luZyBwYWRzCgkgIFByZXZpb3VzbHkgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoKSBmb3Jnb3QgdG8gdW5yZWZlcmVuY2Ugb3IgcmVsZWFzZQoJICByZXF1ZXN0IHBhZHMgaW4gc2V2ZXJhbCBlcnJvciBjYXNlcy4gQWxzbyBjb21tZW50cyB3ZXJlIGFkZGVkIG1lbnRpb25pbmcKCSAgd2h5IHJlbGVhc2luZyBpcyBub3QgbmVjZXNzYXJ5IGluIHNvbWUgcGxhY2VzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTE5CgoyMDE0LTA4LTAxIDE3OjI3OjM5IC0wMzAwICBUaWFnbyBDZXNhciBLYXRjaXBpcyA8dGlhZ28ua2F0Y2lwaXNAZGlnaXRyby5jb20uYnI+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogYWRkIGRvY3MgZm9yIGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTQyCgoyMDE0LTA3LTMxIDE4OjMyOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIE1ha2VmaWxlOiBBZGQgdXNhZ2Ugb2YgYnVpbGQtY2hlY2tzIHN0ZXAKCSAgQWxsb3dzIGJ1aWxkaW5nIGNoZWNrcyB3aXRob3V0IHJ1bm5pbmcgdGhlbQoKMjAxNC0wNy0zMCAxNTo0NjoyMiArMDMwMCAgTW9oYW1tZWQgU2FtZWVyIDxtc2FtZWVyQGZvb2xhYi5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBBZGQgbWlzc2luZyBlcnJvciBjaGVja2luZyB0byBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpCgkgIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkgY2FsbHMgZ3N0X2J1ZmZlcl9uZXdfYWxsb2NhdGUoKSBidXQgZG9lcyBub3QgY2hlY2sgZm9yCgkgIGZhaWxlZCBhbGxvY2F0aW9uLgoJICBUaGlzIHBhdGNoIG1ha2VzIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkgcmV0dXJuIGFuIGVycm9yIChHU1RfRkxPV19FUlJPUikgaWYKCSAgYnVmZmVyIGFsbG9jYXRpb24gZmFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NzQKCjIwMTQtMDctMjkgMTQ6MjE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0Bvc2cuc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCB1c2luZyBpbmZpbml0ZSBidWZmZXJzIGxpbWl0IGlmIGZpbml0ZSBpcyByZXF1ZXN0ZWQKCSAgSWYgdGhlIGN1cnJlbnQgbWF4LWJ1ZmZlcnMgbGltaXQgaXQgaW5maW5pdGUgYW5kIGEgZmluaXRlIHZhbHVlIGlzCgkgIHJlcXVlc3RlZCwgc3dpdGNoIHRvIHRoZSBNQVggKHJlcXVlc3RlZCwgY3VycmVudC12YWx1ZSkgdG8gc2V0IHNvbWUKCSAgbGltaXQgYnV0IG5vdCBiZWxvdyB3aGF0IHdlIGtub3cgdGhhdCB3ZSd2ZSBuZWVkZWQgc28gZmFyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNjM3CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MzcKCjIwMTQtMDctMjQgMjI6MDI6NTggKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBVbnJlZiByZWZlcmVuY2UgdG8gZW5jbG9zaW5nIGJpbnMKCSAgUHJldmlvdXNseSBhbGwgcmVmZXJlbmNlIHRvIGVuY2xvc2luZyBiaW5zIG9mIGFuIGVsZW1lbnQgd2VyZSBsZWFrZWQKCSAgd2hlbiBkb2luZyBkZWxheWluZyBzZXR0aW5nIGEgcHJvcGVydHkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2OTcKCjIwMTQtMDctMjcgMDI6Mzc6MDggKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBTdXBwb3J0IFNJR0lOVCAoQ3RybCtDKSBvbiBXMzIKCSAgVzMyIGhhcyBubyBTSUdJTlQsIGJ1dCBpdCBkb2VzIGhhdmUgU2V0Q29uc29sZUN0cmxIYW5kbGVyKCksIHdoaWNoIHNldHMgdXAKCSAgYSBoYW5kbGVyIGZvciBDdHJsK0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MTQKCjIwMTQtMDctMjcgMDM6MDY6MTYgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogUHJldmVudCBmYWxzZS1uZWdhdGl2ZSBmcm9tIFdBS0VfRVZFTlQoKSBvbiBXMzIKCSAgU2V0RXZlbnQoKSBzZWVtcyB0byBub3QgY2FsbCBTZXRMYXN0RXJyb3IoMCkgaW50ZXJuYWxseSwgc28gY2hlY2tpbmcgbGFzdAoJICBlcnJvciBhZnRlciBjYWxsaW5nIFNldEV2ZW50KCkgbWF5IHJldHVybiB0aGUgZXJyb3IgZnJvbSBhbiBlYXJsaWVyIFczMiBBUEkKCSAgY2FsbC4gRml4IHRoaXMgYnkgY2FsbGluZyBTZXRsYXN0RXJyb3IoMCkgZXhwbGljaXRseS4KCSAgQ3VycmVudGx5IFdBS0VfRVZFTlQoKSBjb2RlIGlzIGNyYW1wZWQgaW50byBhIG1hY3JvIGFuZCBkb2Vzbid0IGxvb2sgdG8gYmUKCSAgZW50aXJlbHkgY29ycmVjdC4gUGFydGljdWxhcmx5LCBpdCBkb2VzIG5vdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mCgkgIFNldEV2ZW50KCksIG9ubHkgdGhlIHRocmVhZC1sb2NhbCBXMzIgZXJyb3IgdmFsdWUuIEl0IGlzIGxpa2VseSB0aGF0IFNldEV2ZW50KCkKCSAgYWN0dWFsbHkganVzdCByZXR1cm5zIG5vbi16ZXJvIHZhbHVlLCBidXQgdGhlIGNvZGUgbWlzdGFrZW5seSB0aGlua3MgdGhhdCB0aGUKCSAgY2FsbCBoYXMgZmFpbGVkLCBiZWNhdXNlIEdldExhc3RFcnJvcigpIHNlZW1zIHRvIGluZGljYXRlIHNvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODA1CgoyMDE0LTA3LTI2IDE0OjQyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5oOgoJICBnc3Q6IGluY2x1ZGUgYXRvbWljcXVldWUuaCBhZ2FpbiBpbiBnc3QuaAoJICBJdCdzIGEgcHVibGljIGhlYWRlciBvZiBnc3RyZWFtZXIgY29yZSwgc28gI2luY2x1ZGUgPGdzdC9nc3QuaD4KCSAgc2hvdWxkIG1ha2UgdGhlIEFQSSBhdmFpbGFibGUuCgoyMDE0LTA3LTI1IDExOjQ1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiByZW1vdmUgcHJvdG90eXBlIGZvciBmdW5jdGlvbiB0aGF0IG5vIGxvbmdlciBleGlzdHMKCjIwMTQtMDctMjQgMTQ6Mzk6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0Bvc2cuc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoJICBBZGRzIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlayBqdXN0IGxpa2UKCSAgR3N0QWRhcHRlciBoYXMgYSBfcGVlayBhbmQgbm9uIF9wZWVrIHZlcnNpb24KCSAgVXBncmFkZWQgdGVzdHMgdG8gY2hlY2sgdGhhdCB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgY29ycmVjdCBpbiB0aGUKCSAgX3BlZWsgdmVyc2lvbgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzU2CgoyMDE0LTA2LTI2IDE0OjA5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogcHJlLWFsbG9jYXRlIGJ1ZmZlciBhcnJheSBpbiBvbmUgZ28gd2l0aCB0aGUgYnVmZmVyIGxpc3QKCSAgV2UgY2FuIG5vdyBjcmVhdGUgYW5kIGZyZWUgYSBidWZmZXIgbGlzdCB3aXRoIG9uZSBzbGljZSBhbGxvYy9mcmVlCgkgIGNhbGwgaW4gbW9zdCBjYXNlcywgaW5zdGVhZCBvZiBvbmUgc2xpY2UgYWxsb2MvZnJlZSBmb3IgdGhlIGxpc3QsCgkgIG9uZSBzbGljZSBhbGxvYy9mcmVlIGZvciB0aGUgR0FycmF5LCBhbmQgb25lIG1hbGxvYy9mcmVlIGZvciB0aGUKCSAgR0FycmF5IGFycmF5LiBJbiBwcmFjdGljZSB3ZSBrbm93IHRoZSBtYXggc2l6ZSBvZiBvdXIgYnVmZmVyIGxpc3QKCSAgZnJvbSB0aGUgc3RhcnQsIHNvIGNhbiBhdm9pZCByZWFsbG9jcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjI4NAoKMjAxNC0wNy0yMyAyMToyNzo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBwcml2YXRlOiBhbGxvdyBpbnRlcm5hbCBhY2Nlc3MgdG8gdGhlIGRlYnVnIGJhc2UtdGltZQoJICBNb3ZpbmcgdGhlIGV4dGVybiB0byB0aGUgaGVhZCBsZXRzIHVzIGFjY2VzcyB0aGlzIGZyb20gb3RoZXIgcGFydHMgYXMgd2VsbC4gVGhpcwoJICBpcyBuZWVlZCBpbiB0aGUgdHJhY2VyIGJyYW5jaC4KCjIwMTQtMDctMjMgMDA6MTU6MTcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBVc2UgZ2l0IHB1bGwgLS1yZWJhc2UKCSAgTm8gcG9pbnQgaW50cm9kdWNpbmcgcmVkdW5kYW50IG1lcmdlIGNvbW1pdHMuCgoyMDE0LTA3LTIxIDEyOjQxOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnbGlzdC5jOgoJICBSZXZlcnQgInRlc3RzOiB0YWdsaXN0OiBhZGQgYmFzaWMgdGVzdCBmb3IgdGFnbGlzdHMgc2VyaWFsaXphdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NWQyM2QxOWI3ZGU0MDU0MWQ2M2IwYmM3NmQ4YjY0NmMzMjFhZjI2LgoJICBUaGVyZSB3YXMgYWxyZWFkeSBhIGdzdHRhZy5jIHRlc3RzIGZpbGUsIHRoaXMgdGVzdCBoYXMgYmVlbiBtZXJnZWQKCSAgaW4gaXQgaW4gdGhlIHByZXZpb3VzIGNvbW1pdAoKMjAxNC0wNy0yMSAxMjo0MDo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiB0YWc6IGFkZCB0aGUgZW1wdHkgdGFnbGlzdCBzZXJpYWxpemF0aW9uIHRlc3QKCSAgQWRkcyB0aGUgdGVzdCB0byB0aGUgYXBwcm9wcmlhdGUgYW5kIGFscmVhZHkgZXhpc3RpbmcgZmlsZS4KCjIwMTQtMDctMTQgMTg6NDY6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdsaXN0LmM6CgkgIHRlc3RzOiB0YWdsaXN0OiBhZGQgYmFzaWMgdGVzdCBmb3IgdGFnbGlzdHMgc2VyaWFsaXphdGlvbgoJICBNYWtlIHN1cmUgaXQgd29ya3Mgd2l0aCBlbXB0eSB0YWdsaXN0cwoKMjAxNC0wNy0xNCAxODoyNTo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBnc3RzdHJ1Y3R1cmU6IHNlcmlhbGl6YXRpb24gb2YgdGFnIGV2ZW50IHN0cnVjdHVyZQoJICBBZGRzIGEgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHRoZSBzZXJpYWxpemF0aW9uIG9mIGEgdGFnIGV2ZW50IHN0cnVjdHVyZQoJICB3b3JrcyB3aXRob3V0IHByb2JsZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCjIwMTQtMDctMTQgMTg6MjM6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgR3N0VGFnTGlzdCBjb21wYXJlIGZ1bmN0aW9uCgkgIFdoZW4gc2VyaWFsaXppbmcgR3N0U3RydWN0dXJlcyBmcm9tIGV2ZW50cyBpbiBHRFAgaXQgd2lsbCBhZGQgYSB0YWdsaXN0CgkgIGFzIGEgR3N0U3RydWN0dXJlIGZpZWxkLCBoYXZpbmcgdGhlIGNvbXBhcmUgZnVuY3Rpb24gYWxsb3dzIGNvbXBhcmlzb24gb2YKCSAgR3N0U3RydWN0dXJlcyB0byBjaGVjayBpZiB0aGUgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQgdmVyc2lvbiBtYXRjaGVzIHRoZQoJICBvcmlnaW5hbCBvbmUsIGFtb25nIG90aGVyIGNhc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgoyMDE0LTA3LTA5IDE1OjQ4OjEwICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCBmb3IgcmFjeSBFT1MgZXZlbnQgaGFuZGxpbmcKCSAgV2hlbiBlb3MgZXZlbnRzIGFyZSBmb3J3YXJkZWQgc2ltdWx0YW5lb3VseSBmcm9tIHR3byBzaW5rcGFkcyBvbgoJICBmdW5uZWwsIGl0IGRvZXNub3QgZm9yd2FyZCB0aGUgZW9zIHRvIHNvdXJjZXBhZC4gVGhlIHJlYXNvbiBpcwoJICBzdGlja3kgZXZlbnRzIGFyZSBzdG9yZWQgYWZ0ZXIgdGhlIGV2ZW50IGNhbGxiYWNrcyBhcmUgcmV0dXJuZWQuCgkgIFRoZXJlZm9yZSB3aGlsZSBvbmUgaXMgYWJvdXQgdG8gc3RvcmUgdGhlIHN0aWNreSBldmVudHMgb24gdGhlIGl0cwoJICBzaW5rcGFkLCBvdGhlciBzaW5rcGFkIHN0YXJ0cyBjaGVja2luZyBmb3IgdGhlIGVvcyBldmVudHMgb24gYWxsIG90aGVyCgkgIHNpbmtwYWRzIGFuZCBhc3N1bWVzIGVvcyBpcyBub3QgcHJlc2VudCB5ZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI4NTEKCjIwMTQtMDctMTcgMTY6MDU6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IEFkZCB1bml0IHRlc3QgZm9yIHJlc2V0dGluZyBvZiB0aGUgc3RhcnQgdGltZQoJICBBbHNvIGNoZWNrIGlmIHRoaXMgcHJvcGVybHkgYWZmZWN0cyBiYXNlc2luayBlbGVtZW50cyB0byBub3QKCSAgcmVwb3J0IHRoZSBvbGQgc3RhcnQgdGltZSBidXQgdGhlIHJlYWwgY3VycmVudCBwb3NpdGlvbiB3aGVuCgkgIHNldHRpbmcgdG8gUEFVU0VEIGFnYWluLgoKMjAxNC0wNy0xNSAxODoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogUmVzZXQgdGhlIHN0YXJ0IHRpbWUgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0byBSRUFEWSB0b28KCjIwMTQtMDctMTUgMTc6MTk6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFJlc2V0IHN0YXJ0IHRpbWUgaW4gUkVBRFktPlBBVVNFRCBiZWZvcmUgY2hhaW5pbmcgdXAKCSAgT3RoZXJ3aXNlIGJpbiB3aWxsIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIGNoaWxkIGVsZW1lbnRzIHdpdGhvdXQKCSAgZGlzdHJpYnV0aW5nIHRoZSBuZXcgc3RhcnQgdGltZS4KCjIwMTQtMDYtMjggMTc6NTg6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZWxlbWVudHM6IGltcHJvdmUgYnVmZmVyIGZsYWdzIHRvIHN0cmluZyB1dGlsaXR5IGZ1bmN0aW9uCgkgIEF2b2lkIHJlbG9jYXRpb25zIGFuZCByZWZhY3RvciBzbyB0aGF0IHdlIGRvbid0IGNhbGN1bGF0ZQoJICB0aGUgZml4ZWQgYW5kIGtub3duIGF0IGNvbXBpbGUgdGltZSBtYXhpbXVtIHN0cmluZyBzaXplCgkgIGV2ZXJ5IHRpbWUuIEFsc28gc2tpcCB0aGUgbWluaSBvYmplY3QgZmxhZ3Mgd2hpY2ggd2UgYXJlCgkgIG5vdCBnb2luZyB0byBwcmludCBhbnl3YXkuCgoyMDE0LTA3LTE5IDE4OjA0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjQuMCA9PT0KCjIwMTQtMDctMTkgMTY6NDY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS40LjAKCjIwMTQtMDctMTkgMTY6MjE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA3LTE5IDEyOjE2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL3N2LnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNy0xNyAxNTo1Mzo1MyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gRkxPV19GTFVTSElORyB3aGVuIHB1c2hpbmcgYSBmcmFtZSBvbiBhIHBhZCB0aGF0IGhhcyBiZWVuIGZsdXNoZWQKCSAgV2hlbiBnb2luZyB0byBSRUFEWSwgaXQgaXMgcG9zc2libGUgdGhhdCB3ZSBhcmUgc3RpbGwgcHVzaW5nIGEgZnJhbWUgYnV0IHRoYXQKCSAgb3VyIHNyY3BhZCBoYXMgYWxyZWFkeSBiZWVuIHNldCB0byBmbHVzaGluZy4gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBub3QKCSAgcG9zdCBhbnkgZXJyb3Igb24gdGhlIGJ1cyBidXQgaW5zdGVhZCBjbGVhbmx5IHJldHVybiBGTE9XX0ZMVVNISU5HLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMzIwCgoyMDE0LTA3LTE3IDA3OjA3OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogUHJvcGFnYXRlIGlucHV0IGJ1ZmZlciBQVFMgYW5kIERUUwoJICBUaGUgaW5pdGlhbCBidWZmZXJzICh0aGF0IHdlcmUgdXNlZCBmb3IgdGltZXN0YW1waW5nKSBtaWdodCBoYXZlIFBUUwoJICBhbmQgRFRTIHNldC4gSW4gb3JkZXIgdG8gZm9yd2FyZCB0aG9zZSBwcm9wZXJseSwgZ2V0IHRoZSBpbml0aWFsCgkgIFBUUy9EVFMgZnJvbSB0aGUgYWRhcHRlciBhbmQgc2V0IHRoZW0gb24gdGhlIHJlY29uc3RydWN0ZWQgb3V0cHV0CgkgIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzI5MQoKMjAxNC0wNy0xMiAxNzowMToyMyArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogVW5yZWYgcGFkIHRlbXBsYXRlIGFmdGVyIHVzZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTIxCgoyMDE0LTA3LTE0IDE4OjEwOjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IHRhZ2xpc3QgZ3R5cGUgdG8gdXNlIGl0IGluIGdzdHZhbHVlCgkgIE90aGVyd2lzZSBpdCB3aWxsIGhhdmUgYSAwIHZhbHVlIGFuZCBHc3RUYWdMaXN0IHdvbid0IGJlIGZvdW5kCgkgIGZvciBHc3RWYWx1ZSBmdW5jdGlvbnMgKHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgo9PT0gcmVsZWFzZSAxLjMuOTEgPT09CgoyMDE0LTA3LTExIDEwOjQ2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy45MQoKMjAxNC0wNy0xMSAxMDo0MToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDctMTEgMDg6NTE6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kYS5wbzoKCSogcG8vdmkucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA3LTA1IDE4OjI5OjI5ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgZG9jczogRml4IGRvY3VtZW50YXRpb24gdHlwb3MgYW5kIGluY29uc2lzdGVuY2llcwoJICAqIEdzdEdsb2JhbERldmljZU1vbml0b3Igd2FzIHJlbmFtZWQgdG8gR3N0RGV2aWNlTW9uaXRvcgoJICAqIEV4cGFuZCBHU1RfTUVTU0FHRV9ERVZJQ0UgdG8gdGhlIGZ1bGwgZW51bSB2YWx1ZSBuYW1lcwoJICAqIENvcnJlY3QgdGhlIGluY29ycmVjdCByZWZlcmVuY2VzIHRvIHRoZSBHc3REZXZpY2VQcm92aWRlciBpbnRlcmZhY2VzCgkgICogRGVzY3JpYmUgY2FwcyBhcmd1bWVudHMgZm9yIGdzdGNoZWNrIGludGVyZmFjZQoJICAqIEFkZCBtaXNzaW5nIGRvY3MgZm9yIEdzdE5ldEFkZHJlc3NNZXRhIGFuZCBpdHMgYWRkIGZ1bmN0aW9uCgkgICogQWRkIGRvY3MgZm9yIHRvYyBoZWxwZXIgbWFjcm9zCgkgICogQXZvaWQgcmVmZXJpbmcgdG8gR3N0VmFsdWVMaXN0IHR5cGUgYXMgZG9uZSBlbHNld2hlcmUKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc4NgoKMjAxNC0wNy0wNSAxNzoxMzoyMSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQ2xlYW51cCBpbnRlcmZhY2UgcmVmZXJlbmNlcyBpbiBkb2NzCgkgICogRGVsZXRlIHJlZmVyZW5jZXMgdG8gcmVtb3ZlZCBpbnRlcmZhY2VzCgkgICogQWRkIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBzZWN0aW9ucwoJICAqIEZpeCBkdXBsaWNhdGUgaW50ZXJmYWNlIHJlZmVyZW5jZXMgZm9yIEdzdERldmljZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzg2CgoyMDE0LTA3LTA4IDExOjE3OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogVGhlcmUgaXMgbm8gZGVjb2RlYmluMiBhbnltb3JlLCBkb24ndCBwcmV0ZW5kIG90aGVyd2lzZQoKMjAxNC0wNy0wNyAxNjoxNDozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBmaXggZXJyb3Igc2V0dGluZyB3aGVuIHVyaSBpcyBpbnZhbGlkCgkgIEVsZW1lbnRzIHNob3VsZCBhbHdheXMgc2V0IHRoZSBHRXJyb3IKCjIwMTQtMDctMDYgMTI6MTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBsaWJzOiBnc3RjaGVjazogY2hlY2sgdGhhdCBtdXRleCBpcyBsb2NrZWQgYmVmb3JlIGdfY29uZF93YWl0KigpIGlzIGNhbGxlZAoJICBTYW5pdHkgY2hlY2sgdG8gY2F0Y2ggcHJvYmxlbXMgaW4gdW5pdCB0ZXN0LgoKMjAxNC0wNy0wNiAxMjoxMjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGxpYnM6IGdzdGNoZWNrOiBpbml0IGFuZCBjbGVhciBnbG9iYWwgbXV0ZXggYW5kIGNvbmQgdmFyaWFibGVzCgoyMDE0LTA3LTA2IDEyOjA5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgdGVzdHM6IGZpeCBsb2NraW5nIGluIGdzdHBvbGwgdW5pdCB0ZXN0CgkgIFRoZSBtdXRleCBuZWVkcyB0byBiZSBsb2NrZWQgd2hlbiBnX2NvbmRfd2FpdCooKSBpcwoJICBjYWxsZWQuCgoyMDE0LTA3LTA1IDE2OjI0OjE4ICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHZpZGVvIGFuZCBiYXNlIGxpYnJhcnkgcGF0aHMgZnJvbSAtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3NzAKCjIwMTQtMDctMDQgMTk6NDA6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogc3VwcHJlc3MgR0xpYiB3YXJuaW5ncyB3aGVuIGdzdC1pbnNwZWN0aW5nIGRlcHJlY2F0ZWQgcHJvcGVydGllcwoJICBHTGliIGluIGdpdCB3aWxsIHNwZXcgYSBnX3dhcm5pbmcoKSB3aGVuIGEgcHJvcGVydHkgbWFya2VkIGFzCgkgIGRlcHJlY2F0ZWQgdmlhIHBhcmFtIHNwZWMgZmxhZ3MgaXMgYWNjZXNzZWQuIFN1cHByZXNzIHRoaXMgYnkKCSAgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDE0LTA3LTAzIDEwOjExOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogV29yayBhcm91bmQgZy1pL3B5Z29iamVjdC9nanMgYnVnIHdpdGggfjAgaW4gZW51bXMKCSAgR1NUX01FU1NBR0VfQU5ZIHdhcyBjb25zaWRlcmVkIGEgbG9uZyBieSBweWdvYmplY3QgYW5kIGdqcywgYW5kIHRodXMKCSAgY291bGRuJ3QgYmUgdXNlZCBpbiBnc3RfYnVzX3BvbGwoKSBhbmQgc2ltaWxhciBBUElzIGFzIHRoZXkgZXhwZWN0IGFuCgkgIGludC10eXBlZCBlbnVtLgoJICBKdXN0IHVzZSAweGZmZmZmZmZmIGluc3RlYWQgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjYzMwoKMjAxNC0wNy0wMiAwODo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBkb24ndCB1c2UgcG9zdC1HTGliIDIuMzIgQVBJIGluIGJ1ZmZlcmxpc3QgdGVzdAoJICBnX3B0cl9hcnJheV9pbnNlcnQoKSBpcyBHTGliID49IDIuNDAKCjIwMTQtMDctMDEgMTI6MjI6NTYgKzAyMDAgIEfDtnJhbiBKw7Zuc3NvbiA8Z29yYW5qbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCB1bmxvY2sgd2hpbGUgaXRlcmF0aW5nIG92ZXIgYWxsIHN0aWNreSBldmVudHMgZm9yIHJlbW92YWwKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGVuZCB1cCBnZXR0aW5nIHRoZSBldmVudCByZW1vdmVkIGZyb20gZWxzZXdoZXJlCgkgIGF0IHRoZSBzYW1lIHRpbWUgd2hpbGUgd2UncmUgdW5sb2NrZWQgZm9yIGdfb2JqZWN0X25vdGlmeSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTU2CgoyMDE0LTA3LTAxIDE5OjE3OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogUHJveHkgdGhlIGFjY2VwdC1jYXBzIHF1ZXJ5CgkgIFdlIGFsd2F5cyB3b3JrIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhlcmUncyBubyBwb2ludCBpbiBkb2luZwoJICBzb21ldGhpbmcgbW9yZSBjbGV2ZXIgaW4gYmFzZXRyYW5zZm9ybS4gQWxzbyB0aGUgYmFzZXRyYW5zZm9ybQoJICBjb2RlIGxlYWRzIHRvIHByb2JsZW1zIHdpdGggaW5jb21wbGV0ZSBjYXBzIGFuZCBkb3duc3RyZWFtCgkgIGVsZW1lbnRzIHRoYXQgdXNlIEdTVF9QQURfRkxBR19BQ0NFUFRfSU5URVJTRUNULgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTU5CgoyMDE0LTA3LTAxIDExOjIxOjUzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlc2V0IFFvUyBvbiBzZWdtZW50IGV2ZW50CgkgIFRoaXMgYXZvaWRzIHNwdXJpb3VzIHdhcm5pbmdzIGFib3V0IHNsb3cgbWFjaGluZSB3aGVuIHVwc3RyZWFtCgkgIHNlbmRzIG5ldyBzZWdtZW50cyB3aXRob3V0IGZsdXNoaW5nLgoKMjAxNC0wNi0zMCAyMzozOToxOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgaW50cm9zcGVjdGlvbjogQXNzb3J0ZWQgbWlub3IgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNTM0CgoyMDE0LTA2LTMwIDA4OjU5OjE4ICswMDAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFN0b3AgdXNpbmcgZ19jbGVhcl9wb2ludGVyKCkKCSAgV2UgZG9udCd0IHdhbnQgdG8gZGVwZW5kIG9uIEdMaWIgMi4zNCBmb3Igbm93LgoKMjAxNC0wNi0yOSAxOToxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBJbml0aWFsaXplIG1lbW9yeSBpbiB1bml0IHRlc3QgdG8gbWFrZSB2YWxncmluZCBoYXBweQoJICBXZSB3ZXJlIHdyaXRpbmcgdW5pdGlhbGl6ZWQgc3RhY2sgbWVtb3J5IHRvIHRoZSBmaWxlLgoKMjAxNC0wNi0yOCAwOTozNToyMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogZml4IGxlYWsgYXMgZ3N0X2J1ZmZlcl9yZXBsYWNlIGFkZHMgaXRzIG93biByZWYKCSAgU28gdW5yZWYgdGhlIGJ1ZmZlciBhZnRlciB0aGF0IG90aGVyd2lzZSBpdCBsZWFrcwoKPT09IHJlbGVhc2UgMS4zLjkwID09PQoKMjAxNC0wNi0yOCAxMDo0NToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuOTAKCjIwMTQtMDYtMjggMTA6NDE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA2LTI3IDEwOjQ0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2Vtb25pdG9yOiBkb24ndCBmYWlsIHdoZW4gc3RhcnRlZCB3aXRob3V0IGFueSBmaWx0ZXJzCgkgIEp1c3Qgc2hvdyBhbGwgZGV2aWNlcyB0aGVuLgoKMjAxNC0wNi0yNyAxMDo0NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBoYW5kbGUgTlVMTCBjbGFzc2VzIGFyZ3VtZW50IGFuZCBtYXRjaCBhbnkKCjIwMTQtMDYtMjYgMjE6MDA6NDAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBBZGQgdW5pdCB0ZXN0cwoKMjAxNC0wNi0yNiAxNzoyMjoyNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRldmljZW1vbml0b3I6IEltcHJvdmUgZG9jdW1lbnRhdGlvbgoKMjAxNC0wNi0yNiAxNzoxMzoxMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IE1ha2UgaXQgcG9zc2libGUgdG8gYWRkIG11bHRpcGxlIGZpbHRlcnMKCSAgRWFjaCBmaWx0ZXIgd2lsbCBpbmNsdWRlIGEgR3N0Q2FwcyBhbmQgYSBzZXQgb2YgY2xhc3NlcyB0byBtYXRjaAoKMjAxNC0wNi0yNiAxNjozMTo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBBZGQgcHJlLWNvbmRpdGlvbnMKCjIwMTQtMDYtMjYgMTU6MDg6NDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdERldmljZU1vbml0b3I6IFJlbmFtZSBmcm9tIEdzdEdsb2JhbERldmljZU1vbml0b3IKCjIwMTQtMDYtMjYgMTQ6Mjg6MDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRGV2aWNlUHJvdmlkZXI6IFJlbmFtZSBmcm9tIERldmljZU1vbml0b3IKCjIwMTQtMDYtMjYgMTk6MzE6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBkYXRhcXVldWU6IEhpZGUgZnJvbSBiaW5kaW5ncwoJICBPdGhlciBsYW5ndWFnZXMgaGF2ZSB0aGVpciBvd24gZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG1vcmUgY29udmVuaWVudCB0bwoJICB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzMDMKCjIwMTQtMDYtMjYgMTk6MzA6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkgIHF1ZXVlYXJyYXk6IEhpZGUgZnJvbSBiaW5kaW5ncwoJICBPdGhlciBsYW5ndWFnZXMgaGF2ZSB0aGVpciBvd24gZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG1vcmUgY29udmVuaWVudCB0byB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTAKCjIwMTQtMDUtMjggMTA6MTQ6NDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMKCSAgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKSBjYW4gdGFrZSBOVUxMIG1pbmktb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDg3MwoKMjAxNC0wNi0yNiAxOTowMjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEFwcGxpY2F0aW9uIGFuZCBlbGVtZW50IG1lc3NhZ2VzIHNob3VsZCBub3QgaGF2ZSBOVUxMIHN0cnVjdHVyZXMKCSAgSXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdGhlbS4KCjIwMTQtMDYtMTEgMTY6MTk6MDEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBzb21lIG1pc3NpbmcgYWxsb3ctbm9uZSBhbm5vdGF0aW9ucyB0byBpbiBwYXJhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNjowNjoxOSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG51bGxhYmlsaXR5IGFubm90YXRpb25zIHRvIG91dCBhbmQgaW5vdXQgcGFyYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTU6MjE6MzQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zIHRvIHJldHVybiB2YWx1ZXMKCSAgU3VwcG9ydCBmb3IgKG51bGxhYmxlKSB3YXMgYWRkZWQgdG8gRy1JIGF0IHRoZSBzYW1lIHRpbWUgYXMgbnVsbGFibGUKCSAgcmV0dXJuIHZhbHVlcy4gIFByZXZpb3VzIHZlcnNpb25zIG9mIEctSSB3aWxsIG5vdCBtYXJrIHJldHVybiB2YWx1ZXMgYXMKCSAgbnVsbGFibGUsIGV2ZW4gd2hlbiBhbiAoYWxsb3ctbm9uZSkgYW5ub3RhdGlvbiBpcyBwcmVzZW50LCBzbyBpdCBpcwoJICBub3QgbmVjZXNzYXJ5IHRvIGFkZCAoYWxsb3ctbm9uZSkgYW5ub3RhdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aAoJICBvbGRlciB2ZXJzaW9ucyBvZiBHLUkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTc6MTU6MzkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBiYXNlOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGZpeGVzIGFuZCBhZGRpdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MgoKMjAxNC0wNi0xMSAxNzoxMjoyMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBiYXNlOiBhZGQgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyB0byByZXR1cm4gdmFsdWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDIKCjIwMTQtMDYtMjYgMTQ6MDg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgYnVmZmVyIGxpc3QgdGVzdCBjYXNlCgoyMDE0LTA2LTI2IDEzOjI0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IHBvcnQgYW5kIHJlLWVuYWJsZSBidWZmZXIgbGlzdCB0ZXN0cwoJICBBbmQgcmVtb3ZlIHNvbWUgd2hpY2ggZG9uJ3QgYXBwbHkgYW55IG1vcmUuCgoyMDE0LTA2LTI2IDExOjU4OjA0ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGVuaGFuY2UgdGhlIGdzdGNhcHMgdGVzdF9mZWF0dXJlcyB0byBhbHNvIHRlc3QgZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkKCSAgQ29tcGxpbWVudHMgbXkgcHJldmlvdXMgcGF0Y2ggZm9yIGdzdF9jYXBzX3NldF9mZWF0dXJlcywgd2hpY2ggd291bGQKCSAgcHJldmlvdXNseSBhc3NlcnQgYW5kIGxlYWsgdGhlIG9sZCBHc3RDYXBzRmVhdHVyZXMgaWYgdGhlIGNhcHMgYWxyZWFkeQoJICBoYWQgYSBHc3RDYXBzRmVhdHVyZXMgYW5kIHlvdSB3ZXJlIHRyeWluZyB0byByZXBsYWNlIGl0IHdpdGggYSBuZXcgb25lLgoKMjAxNC0wNi0yNiAxMToxNjozNCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVuc2V0IHRoZSBwYXJlbnQgcmVmY291bnQgb2YgdGhlIG9sZCBmZWF0dXJlcyBiZWZvcmUgZnJlZWluZyB0aGVtIGluIGdzdF9jYXBzX3NldF9mZWF0dXJlcygpCgkgIE90aGVyd2lzZSBnc3RfY2Fwc19mZWF0dXJlc19mcmVlKCkgYXNzZXJ0cyBhbmQgdGhlIGZlYXR1cmVzIHN0cnVjdHVyZSBpcyBsZWFrZWQKCjIwMTQtMDYtMTYgMTk6MzA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCByZXR1cm5pbmcgX09LIGZvciBfTk9UX0xJTktFRAoJICBXaGVuIHRoZSBwYXJzZXIgcmVjZWl2ZXMgbm9uLWFsaWduZWQgcGFja2V0cyBpdCBjYW4gcHVzaCBhIGJ1ZmZlcgoJICBhbmQgZ2V0IGEgbm90LWxpbmtlZCByZXR1cm4gd2hpbGUgc3RpbGwgbGVhdmluZyBzb21lIGRhdGEgc3RpbGwgdG8KCSAgYmUgcGFyc2VkLiBUaGlzIHJlbWFpbmluZyBkYXRhIHdpbGwgbm90IGZvcm0gYSBjb21wbGV0ZSBmcmFtZSBhbmQKCSAgdGhlIHN1YmNsYXNzIGxpa2VseSByZXR1cm5zIF9PSyBhbmQgYmFzZXBhcnNlIHdvdWxkIHRha2UgdGhhdAoJICBhcyB0aGUgcmV0dXJuLCB3aGlsZSBpdCB0aGUgZWxlbWVudCBpcyBhY3R1YWxseSBub3QtbGlua2VkLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgc3RvcmluZyB0aGUgbGFzdCBmbG93LXJldHVybiBmcm9tIGEgcHVzaAoJICBhbmQgdXNpbmcgdGhhdCBpZiBhIHBhcnNpbmcgb3BlcmF0aW9uIGRvZXNuJ3QgcmVzdWx0IGluIGRhdGEgYmVpbmcKCSAgZmx1c2hlZCBvciBza2lwcGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDc0CgoyMDE0LTA2LTI1IDExOjQwOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGVsZW1lbnRzOiBmaXggY29weXJpZ2h0IGFuZCByZW1vdmUgZ3RrLWRvYyBjaHVuawoJICBUcml2aWFsIGFzIGl0IG1heSBiZSwgdGhpcyBjb2RlIHdhcyBtb3N0bHkgY29waWVkIGZyb20KCSAgc29tZXdoZXJlIGVsc2UuIFRoZSBndGstZG9jIGNodW5rIGlzIG5vdCBuZWVkZWQsIHNpbmNlCgkgIGl0J3Mgbm90IHB1YmxpYyBBUEkuCgoyMDE0LTA2LTAyIDIyOjA3OjUyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IElnbm9yZSBzZWVrIGVycm9yIG9uIG5vbi1zZWVrYWJsZSBmaWxlcwoJICBUaGlzIG1ha2UgaXQgd29ya3Mgd2l0aCBGSUZPcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTE3NgoKMjAxNC0wNi0yMiAxOTozNjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjMgPT09CgoyMDE0LTA2LTIyIDE4OjA3OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4zCgoyMDE0LTA2LTIyIDE3OjE1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNi0yMiAxNDoyMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vc3IucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNi0yMiAxMjo1MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfY2Fwc19pc19hbnkoKSBhbmQgX2lzX2VtcHR5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzE3MDQKCjIwMTQtMDYtMjIgMTI6NTA6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBnc3RfY2Fwc19pc19hbnkoKSBzaG91bGQgcmV0dXJuIFRSVUUgb3IgRkFMU0UKCSAgTm90IHNvbWUgZmxhZyB2YWx1ZSBpbnN0ZWFkIG9mIFRSVUUuIEZpeGVzIGNvZGUgbGlrZQoJICBnc3RfY2Fwc19pc19hbnkoKSA9PSBUUlVFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczMTcwNAoKMjAxNC0wNi0wMSAxNjo1Njo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlOiByZW5hbWUgImtsYXNzIiBhbmQgZ2V0X2tsYXNzKCkgdG8gImRldmljZS1jbGFzcyIgYW5kIF9nZXRfZGV2aWNlX2NsYXNzKCkKCSAgVGhlcmUncyBzb21lIHByZWNlZGVudCBpbiBHc3RFbGVtZW50RmFjdG9yeSwgYnV0IGEKCSAgImtsYXNzIiBwcm9wZXJ0eSBqdXN0IHNlZW1zIHdlaXJkLgoKMjAxNC0wNi0yMCAxODozNDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogY2Fwc25lZ286IGFkZCAtLWxvb3BzIGNvbW1hbmQgbGluZSBvcHRpb24KCSAgQW5kIGRlZmF1bHQgdG8gNTAgbG9vcHMuCgoyMDE0LTA2LTIwIDE3OjE0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGNhcHNuZWdvOiB1c2UgR09wdGlvbkNvbnRleHQgZm9yIG9wdGlvbiBwYXJzaW5nCgoyMDE0LTA2LTE5IDEyOjEwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaW4gZ3N0dmFsdWUgdGVzdHMKCSAgQ2FsbGluZyBHU1RfVkFMVUVfSE9MRFNfKigmdikgbm93IHJlc3VsdHMgaW4gYSBjb21waWxlcgoJICB3YXJuaW5nIGFib3V0IHZhbHVlIT1OVUxMIGFsd2F5cyBiZWluZyBmYWxzZSwgc28gY2hlY2sKCSAgdHlwZSBkaXJlY3RseSBpbiB0aG9zZSBjYXNlcy4KCjIwMTQtMDYtMTcgMjI6NDU6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBzaW1wbGlmeSBHU1RfVkFMVUVfSE9MRFMgZm9yIG91ciBib3hlZCBhbmQgZnVuZGFtZW50YWwgdHlwZXMKCSAgQm94ZWQgdHlwZXMgY2FuJ3QgYmUgZGVyaXZlZCBmcm9tLCBhbmQgd2UgZG9uJ3Qgc3VwcG9ydAoJICBkZXJpdmluZyBmcm9tIG91ciBzcGVjaWFsIGZ1bmRhbWVudGFsIHR5cGVzICh0aGUgY29kZQoJICBjaGVja3MgZm9yIEdUeXBlIGVxdWFsaXR5IGluIG1vc3QgcGxhY2VzLgoKMjAxNC0wNi0yMCAxNjo1NTowNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgR3N0RGV2aWNlOiBEb2N1bWVudCBHc3REZXZpY2UgYW5kIHJlbGF0ZWQgY2xhc3NlcwoKMjAxNC0wNi0xNiAxMzo0Nzo1NSArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhLnBhbmRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIEZpeCBmdW5uZWwgRU9TIGhhbmRsaW5nIGFuZCB3cm9uZyB1bml0dGVzdAoJICBXaGVuIG5vIGRhdGEgaXMgY29taW5nIGZyb20gc2lua3BhZHMgYW5kIGVvcyBldmVudHMKCSAgYXJyaXZlZCBhdCBvbmUgb2YgdGhlIHNpbmtwYWQsIGZ1bm5lbCBmb3J3YXJkcyB0aGUgRU9TCgkgIGV2ZW50IHRvIGRvd25zdHJlYW0uIEl0IGZvcndhcmRzIHRoZSBFT1MgYmVjYXVzZSBsYXN0c2luayBwYWQKCSAgaXMgTlVMTC4gQWxzbyB0aGUgdW5pdCB0ZXN0Y2FzZSBvZiB0aGUgZnVubmVsIGlzIG5vdCBjaGVja2luZwoJICB0aGUgY29ycmVjdCBiZWhhdmlvciBhcyBpdCBzaG91bGQuIFRoZSB1bml0IHRlc3QgY2FzZSBzaG91bGQKCSAgZmFpbCBpZiBvbmUgb2YgdGhlIHNpbmsgcGFkIGhhcyBhbHJlYWR5IEVPUyBwcmVzZW50IG9uIGl0IGFuZAoJICB3ZSBhcmUgdHJ5aW5nIHRvIHB1c2ggb25lIG1vcmUgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzE2CgoyMDE0LTA2LTE5IDA4OjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBvcHRpbWlzZSBjaGVja3MgZm9yIGxpc3RzCgkgIE91ciBmdW5kYW1lbnRhbCB0eXBlcyBhcmUgbm9uLWRlcml2YWJsZSwgc28gd2UgY2FuCgkgIGp1c3QgY2hlY2sgZm9yIGVxdWFsaXR5LiBBbHNvIGF2b2lkIGRvaW5nIHRoZSBzYW1lCgkgIGNoZWNrIG11bHRpcGxlIHRpbWVzIGluIGEgY291cGxlIG9mIHBsYWNlcy4KCjIwMTQtMDYtMTkgMDg6MDY6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHVzZSBnX2Fzc2VydCgpIGluIGludGVybmFsIGZ1bmN0aW9uIGZvciBhbHJlYWR5LWNoZWNrZWQgdGhpbmdzCgkgIFNvIHRoZXNlIGdldCBjb21waWxlZCBvdXQgZm9yIHJlbGVhc2VzLgoKMjAxNC0wNi0xOSAwODowNTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIGludGVybmFsIF9jYW5fY29tcGFyZV91bmNoZWNrZWQoKQoKMjAxNC0wNi0xOSAwODowMzozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIGludGVybmFsIF9saXN0X2NvbmNhdCgpIHRoYXQgdGFrZXMgb3duZXJzaGlwIG9mIGlucHV0IHZhbHVlcwoJICBBdm9pZHMgdW5uZWNlc3NhcnkgY29waWVzLgoKMjAxNC0wNi0xOCAxOTowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBzaW1wbGlmeSB2YWx1ZSB0eXBlIGNoZWNrcyBpbiBnZXR0ZXJzCgkgIEp1c3QgY2hlY2sgZm9yIEdUeXBlIGVxdWFsaXR5IGluIGNvbW1vbiBjYXNlcy4KCjIwMTQtMDYtMTkgMDk6Mjk6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBhIEZJWE1FIDIuMCBmb3IgYSBmcmFjdGlvbiByYW5nZXMgb3B0aW1pemF0aW9uCgkgIEN1cnJlbnRseSB3ZSBsZWFrIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGVtIGFzIHR3byBHVmFsdWVzIHRoYXQKCSAgY29udGFpbiBhIGZyYWN0aW9uLiBXaXRob3V0IHRoaXMgd2UgY291bGQgc3RvcmUgZnJhY3Rpb24gcmFuZ2VzIGFzCgkgIGRhdGFbMF0gPSAobWluX24gPDwgMzIpIHwgKG1pbl9kKQoJICBkYXRhWzFdID0gKG1heF9uIDw8IDMyKSB8IChtYXhfZCkKCSAgYW5kIHdvdWxkbid0IHJlcXVpcmUgYW4gYWRkaXRpb25hbCBhbGxvY2F0aW9uIHBlciByYW5nZS4KCjIwMTQtMDYtMTkgMDk6MjM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBNYWtlIHN1cmUgdG8gY2FzdCBpbnQgcmFuZ2UgdmFsdWVzIHRvIGd1aW50cyBiZWZvcmUgc3RvcmluZyB0aGVtCgkgIE90aGVyd2lzZSBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBzZXRzIGFsbCBvZiB0aGUgNjQgYml0cyBkdWUgdG8gdHdvJ3MKCSAgY29tcGxlbWVudCdzIGRlZmluaXRpb24gb2YgbmVnYXRpdmUgdmFsdWVzLgoJICBBbHNvIGFkZCBhIHRlc3QgZm9yIG5lZ2F0aXZlIGludCByYW5nZXMuCgoyMDE0LTA2LTE5IDA3OjU3OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNC0wNi0xOSAwOTowNToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogU3RvcmUgaW50ZWdlciByYW5nZXMgZGlyZWN0bHkgaW4gYSBHVmFsdWUgd2l0aG91dCBhZGRpdGlvbmFsIGFsbG9jYXRpb24KCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIHNhdmUgc29tZSBhbGxvY2F0aW9ucy4gTmV4dCBzdGVwIHRvIGRvIHRoaXMKCSAgd2l0aCBmcmFjdGlvbiByYW5nZXMgdG9vLgoKMjAxNC0wNi0xOSAwODo0MzowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IEZpeCBkdXBsaWNhdGUgZGVmaW5pdGlvbgoKMjAxNC0wNi0xOSAwODowNTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBnc3Q6IFN0b3JlIG1vcmUgYmFzaWMgdHlwZSBHVHlwZXMgaW4gdmFyaWFibGVzCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBjaGFuZ2UgYSBmdW5jdGlvbiBjYWxsIHRvIGEgdmFyaWFibGUgYWNjZXNzCgkgIGZvciBhbGwgb3VyIGJhc2ljIHR5cGVzLgoKMjAxNC0wNi0xOSAwODowNDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IFN0b3JlIG91ciBmdW5kYW1lbnRhbCB0eXBlIEdUeXBlcyBpbiB2YXJpYWJsZXMKCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIGNoYW5nZSBhIGZ1bmN0aW9uIGNhbGwgdG8gYSB2YXJpYWJsZSBhY2Nlc3MKCSAgZm9yIGFsbCBvdXIgYmFzaWMgdHlwZXMuCgoyMDE0LTA2LTE3IDA3OjMxOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogU3BlZWQgdXAgZ3N0X3ZhbHVlX2ludGVyc2VjdC9fc3VidHJhY3QKCSAgQm90aCBnc3RfdmFsdWVfaW50ZXJzZWN0IGFuZCBnc3RfdmFsdWVfc3VidHJhY3Qgd2lsbCBjYWxsCgkgIGdzdF92YWx1ZV9jb21wYXJlIGlmIG9uZSBvZiB0aGVpciBhcmd1bWVudHMgaXNuJ3QgYSBsaXN0LgoJICBnc3RfdmFsdWVfY29tcGFyZSB3aWxsIHRoZW4gcmUtZG8gYSBjaGVjayB0byBzZWUgaWYgb25lIG9mCgkgIHRoZSBhcmd1bWVudHMgaXMgYSBsaXN0IChmb3IgdGhlIHNwZWNpYWwgY2FzZSBvZiBjb21wYXJpbmcgYSB1bml0YXJ5CgkgIHZhbHVlIHdpdGggYSBsaXN0IG9mIGxlbmd0aCAxKS4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgdmFyaW91cyBHX1ZBTFVFX0hPTERTIHJlcHJlc2VudCBhbiBleHBlbnNpdmUKCSAgYW1vdW50IG9mIGNhbGxpbmcgZ3N0X3ZhbHVlX2NvbXBhcmUgKGFsbW9zdCBoYWxmIG9mIGl0KSB0byBzZWUgaWYKCSAgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgbGlzdC4gVGhlc2UgY2hlY2tzIGNhbiBiZSBkb25lIHdpdGhvdXQKCSAgd2hlbiB3ZSBrbm93IHRoYXQgdGhlIGFyZ3VtZW50cyBhcmVuJ3QgbGlzdHMuCgkgICogQ3JlYXRlIGEgbmV3ICJub2xpc3QiIGdzdF92YWx1ZV9jb21wYXJlIHdoaWNoIGF2b2lkcyB0aGF0IHNwZWNpYWwKCSAgY2FzZSBjb21wYXJpc2lvbgoJICBCZW5jaG1hcmtzOgoJICB2YWxncmluZC9jYWxsZ3JpbmQ6IGF2ZXJhZ2Ugc3BlZWR1cCBpbiBpbnN0cnVjdGlvbiBjYWxscyBmb3IKCSAgZ3N0X3ZhbHVlX2ludGVyc2VjdCBhbmQgZ3N0X3ZhbHVlX3N1YnRyYWN0IGlzIGFyb3VuZCA1NiUgKE1ha2VzIDYzJQoJICBvZiB0aGUgY2FsbHMgaXQgdXNlZCB0byB0YWtlIHByZXZpb3VzbHkpCgkgIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ286IFdpdGggZGVmYXVsdCBzZXR0aW5ncyAoZGVwdGggNCwgY2hpbGRyZW4gMwoJICA2MDcgZWxlbWVudHMpLCB0aW1lIHRha2VuIGZvciB0cmFuc2l0aW9uIGZyb20gUkVBRFkgdG8gUEFVU0VEOgoJICBCZWZvcmUgOiAwMC4zOTE1MTkxNTMKCSAgQWZ0ZXIgIDogMDAuMjIwMzk3NDkyCgkgIDU2JSBvZiB0aGUgdGltZSBwcmV2aW91c2x5IHVzZWQsICs3NyUgc3BlZWR1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzU2CgoyMDE0LTA2LTE3IDE0OjM5OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBzb21lIGNydWZ0IGZyb20gdGhlIGJ1ZmZlcmxpc3QgdGVzdAoJICBCdWZmZXJzIG5vIGxvbmdlciBjYXJyeSBjYXBzLCBhbmQgYnVmZmVybGlzdHMgZG9uJ3QgaGF2ZQoJICBncm91cHMgd2hlcmUgYnVmZmVycyBtYXkgbmVlZCB0byBiZSBtZXJnZWQgaW50byBvbmUgYW55IG1vcmUuCgoyMDE0LTA2LTE2IDIwOjMwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciBnc3RfYnVmZmVyX2xpc3RfcmVtb3ZlKCkKCjIwMTQtMDYtMTYgMjA6Mjk6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggYnVmZmVyIGxlYWsgaW4gX3JlbW92ZSgpCgoyMDE0LTA2LTE2IDA5OjE4OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZy1pIHRyYW5zZmVyIGFubm90YXRpb25zCgoyMDE0LTA2LTE2IDA4OjQxOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogRml4ZWQgR0JveGVkQ29weUZ1bmMKCSAgSSdsbCBqdXN0IHF1b3RlIHRoZSBtb3N0IGludGVyZXN0aW5nIG1hbiBpbiB0aGUgd29ybGQ6CgkgICJJIGRvbid0IHVzdWFsbHkgcHVzaCBjb21taXRzLCBidXQgd2hlbiBJIGRvIEkgZG9uJ3QgY29tcGlsZSBpdAoJICBmaXJzdCIKCjIwMTQtMDYtMTQgMTY6MzA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBzb21lIGRvY3MgYWRkaXRpb25zIGFuZCBmaXhlcwoKMjAxNC0wNi0xNCAxNjoyODo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBleHBvcnRzIGZvciBuZXcgZ2V0X3R5cGUoKSBmdW5jdGlvbgoKMjAxNC0wNi0xNCAxMTozMTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjoga2VlcCBhIHJlZiB0byB0aGUgcGFkcyB3ZSdyZSB1c2luZwoJICBOZWVkZWQgZm9yIHVzZSB2aWEgdGhlIGJveGVkIHR5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTUKCjIwMTQtMDYtMTQgMTA6NTQ6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBib3hlZCB0eXBlIGZvciBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzU1CgoyMDE0LTA2LTExIDE2OjI4OjUxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBpbnRyb3NwZWN0aW9uOiBtaW5vciBhbm5vdGF0aW9uIGFkZGl0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQxCgoyMDE0LTA2LTExIDE5OjA4OjA0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogaW5jbHVkZSBnc3R2ZXJzaW9uLmggaW4gR0lSIGdlbmVyYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzAyMQoKMjAxNC0wNi0xMCAxMDoyMzoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogVXNlIGNvbmNpc3RhbnQgZGVyZWZlbmNlIG1ldGhvZAoJICBUaGlzIGlzIG1pbm9yIHN0eWxlIGZpeCB0byBub3QgbWl4ICp2YXIgYW5kIHZhcltOXS4KCjIwMTQtMDYtMTAgMDk6MzU6MzggLTA0MDAgIFN1bmdobyBCYWUgPGJhdmVyLmJhZUBsZ2UuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IFVzZSBwb2ludGVyIGluc3RlYWQgb2YgaW5kZXggYWNjZXNzCgkgIEN1cnJlbnRseSB0aGUgc2NhbiB1c2VzIEJveWVyLW1vb3JlIG1ldGhvZCBhbmQgaXRzIHBlcmZvcm1hbmNlIGlzIGdvb2QuCgkgIGJ1dCwgaXQgY2FuIGJlIG9wdGltaXplZCBmcm9tIGFuIGltcGxlbWVudGF0aW9uIG9mIHZpZXcuCgkgIFRoZSBvcmlnaW5hbCBzY2FuIGNvZGUgaXMgaW1wbGVtZW50ZWQgYnkgYnl0ZSBhcnJheSBhbmQgaW5kZXgtYmFzZWQgYWNjZXNzLgoJICBJbiBfc2Nhbl9mb3Jfc3RhcnRfY29kZSgpLCB0aGUgaW5kZXggaXMgaW5jcmVhc2luZyBmcm9tIHN0YXJ0IHRvIGVuZCBhbmQgdGhlCgkgIGJhc2UgYWRkcmVzcyBvZiB0aGUgYnl0ZSBhcnJheSBpcyByZWZlcnJlZCB0byBhcyByZXR1cm4gdmFsdWUuCgkgIEluIHRoZSBjYXNlLCBpbmRleC1iYXNlZCBhY2Nlc3MgY2FuIGJlIHJlcGxhY2VkIGJ5IHBvaW50ZXIgYWNjZXNzLCB3aGljaAoJICBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBieSByZW1vdmluZyBpbmRleC1yZWxhdGVkIG9wZXJhdGlvbnMuCgkgIEl0cyBwZXJmb3JtYWNlIGlzIGVuaGFuY2VkIGJ5IGFwcHJveGltYXRlbHkgOCUgb24gYXJtLWJhc2VkIGVtYmVkZGVkIGRldmljZXMuCgkgIEFsdGhvdWdoIGl0IHNlZW1zIHRyaXZpYWwsIGl0IGNhbiBhZmZlY3QgdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2UgYmVjYXVzZSB0aGUKCSAgX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKSBmdW5jdGlvbiBpcyB2ZXJ5IG9mdGVuIGNhbGxlZCB3aGVuIEguMjY0L0guMjY1IHZpZGVvIGlzCgkgIHBsYXllZC4KCSAgSW4gYWRkaXRpb24sIHRoZSB0ZWNobmlxdWUgY2FuIGFwcGx5IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBhbmQgaXQgaXMgZ29vZCBpbgoJICB2aWV3IG9mIHJlYWRhYmlsaXR5IGFuZCBtYWludGFpbmFiaWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE0NDIKCjIwMTQtMDYtMDcgMTA6MTM6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBwcmV0dGlmeSBoZWFkZXIKCjIwMTQtMDYtMDcgMDk6NDY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHF1ZXVlYXJyYXkgZXhwYW5zaW9uIGZyb20gMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzQ5CgoyMDE0LTA2LTA2IDE2OjM2OjAwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZXhwYW5kaW5nIHNpemUgb2YgcXVldWUgZnJvbSAxCgkgIFdpdGhvdXQgd2Ugd291bGQgbm90IGFjdHVhbGx5IGV4cGFuZCBhbmQgYWNjZXNzCgkgIG1lbW9yeSBiZXlvbmQgdGhlIGFsbG9jYXRlZCByZWdpb24gZm9yIHRoZSBhcnJheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM0OQoKMjAxNC0wNi0wNSAxNjo1NToxNSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGNsZWFyIHVwIGRvY3VtZW50YXRpb24gb2YgZ3N0X2RhdGFfcXVldWVfbmV3CgkgIFRoZSBncG9pbnRlciBhcmd1bWVudCBpcyBwYXNzZWQgdG8gYWxsIHRocmVlIGNhbGxiYWNrcywgbm90IGp1c3Qgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAyCgoyMDE0LTA1LTMwIDAwOjE3OjA2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgaW50cm9zcGVjdGlvbjogZml4IHNvbWUgbWlub3IgYW5ub3RhdGlvbiBidWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5ODIKCjIwMTQtMDYtMDUgMTI6Mzg6MjAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBiYXNlOiB1c2UgY29ycmVjdCBzeW50YXggaW4gZG9jdW1lbnRhdGlvbiBtb3JlIGNvbnNpc3RlbnRseQoJICBQcmV2aW91c2x5LCBtYW55IGNvbnN0YW50cyB3ZXJlIHByZWZpeGVkIHdpdGggIyBvciB1bnByZWZpeGVkLAoJICBzb21lIGZ1bmN0aW9ucyBhbmQgbWFjcm9zIHdlcmUgcHJlZml4ZWQgd2l0aCAjIGluc3RlYWQgb2Ygc3VmZml4ZWQKCSAgd2l0aCAoKSwgZXRjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMjkzCgoyMDE0LTA1LTA3IDE4OjI2OjM4ICswODAwICB6aG91bWluZyA8em1hZm94QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUGFzcyByYXRlIG9mIGlucHV0IHNlZ21lbnQgdG8gb3V0cHV0IHNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTcwMQoKMjAxNC0wNC0wNyAxNDo0OTo1OSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZ3N0YnVmZmVyOiBmYWN0b3IgdGhyZWUgZmxhZ3MtdG8tc3RyaW5nIGxvb3BzCgoyMDE0LTA2LTAzIDIzOjQyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWFrZSBwcmludGluZyBkYXRldGltZXMgd29yayB3aXRoIEdTVF9QVFJfRk9STUFUCgoyMDE0LTA2LTAzIDIzOjM4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRhdGV0aW1lOiBjaGFuZ2UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gdG8gbWluaSBvYmplY3QKCSAgQW5kIG1vdmUgdHlwZSBzdHVmZiBmcm9tIEdzdFZhbHVlIHRvIEdzdERhdGVUaW1lLgoKMjAxNC0wNi0wMyAyMjoxOTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAxNC0wNi0wMyAyMjoxMjoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGltcHJvdmUgc3RhcnQvc3RvcCBpbiBidWZmZXJpbmcgcXVlcnkKCSAgVGhlIHN0YXJ0IGFuZCBzdG9wIHNob3VsZCByZXByZXNlbnQgdGhlIGN1cnJlbnRseSBkb3dubG9hZGluZyByZWdpb24uCgkgIFRoZSBlc3RpbWF0ZWQtdG90YWwgc2hvdWxkIHJlcHJlc2VudCB0aGUgcmVtYWluaW5nIHRpbWUgdG8gZG93bmxvYWQKCSAgdGhlIGN1cnJlbnRseSBkb3dubG9hZGluZyByZWdpb24uIFRoaXMgbWFrZXMgaXQgYSBsb3QgbW9yZSB1c2VmdWwKCSAgZm9yIGFwcGxpY2F0aW9ucyBiZWNhdXNlIHRoZXkgY2FuIHRoZW4gdXNlIHRob3NlIHZhbHVlcyB0byB1cGRhdGUKCSAgdGhlIGZpbGwgcmVnaW9uIGFuZCB1c2UgdGhlIGVzdGltYXRlZCB0aW1lIHRvIGRlbGF5IHBsYXliYWNrLgoJICBVcGRhdGUgdGhlIGRvY3Mgd2l0aCB0aGlzIGNsYXJpZmljYXRpb24uCgoyMDE0LTA0LTA3IDE0OjM1OjA0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFkZCBzdGF0aWMgYW5kIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlCgoyMDE0LTA0LTA3IDE0OjMxOjE3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93CgkgIENvdmVyaXR5IDEwMzcxNTUKCjIwMTQtMDYtMDMgMTQ6NDk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogcmVzZXQgcmVhZCBhbmQgd3JpdGUgcG9zaXRpb25zCgkgIFJlc2V0IHRoZSByZWFkIGFuZCB3cml0ZSBwb3NpdGlvbnMgcmlnaHQgYWZ0ZXIgd2Ugb3BlbiB0aGUgZmlsZSBvciBmbHVzaAoJICBpdC4gV2UgYXJlIGFsc28gaW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZSB3aXRoIDAgcGVyY2VudCBidWZmZXJlZCB3aGVuIHdlCgkgIHN0YXJ0LgoKMjAxNC0wNi0wMyAxNDo0NzoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXJzdCBoYW5kbGUgYWxsIG1pbmlvYmplY3RzLCB0aGVuIEdPYmplY3RzCgkgIEZpcnN0IGhhbmRsZSBhbGwgbWluaW9iamVjdHMgYmVmb3JlIHdlIGF0dGVtcHQgdG8gZGVyZWZlcmVuY2UgdGhlIGZpcnN0CgkgIGZpZWxkIHBvaW50ZXIgYW5kIGxvb2sgYXQgdGhlIEdUeXBlLiBXaXRoIHRoZSByZWNlbnQgZ2xpYiBjaGFuZ2UgdG8KCSAgc3BlZWQgdXAgR19JU19PQkpFQ1QsIHRoaXMgY2F1c2VzIGNyYXNoZXMgb24gbWluaW9iamVjdHMgb3RoZXJ3aXNlLgoKMjAxNC0wNi0wMyAxNDo0NjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBHc3REYXRlVGltZSBkb2VzIG5vdCBoYXZlIGEgR1R5cGUgYXMgZmlyc3QgZmllbGQKCSAgR3N0RGF0ZVRpbWUgZG9lcyBub3QgaGF2ZSB0aGUgR1R5cGUgYXMgdGhlIGZpcnN0IGZpZWxkIHNvIHdlIGNhbid0IHVzZQoJICBpdCB0byBkZXRlY3QgaXRzIHR5cGUuCgoyMDE0LTA2LTAzIDE0OjQ1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBtYWNyb3MgdG8gY2hlY2sgdHlwZXMKCSAgVXNlIHRoZSBtYWNyb3MgdG8gY2hlY2sgdGhlIHR5cGUgb2Ygb2JqZWN0cyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHBva2luZwoJICBhdCB0aGUgZmlyc3QgZmllbGQuCgoyMDE0LTA2LTAxIDIzOjUxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogY29ubmVjdCBzeW5jLW1lc3NhZ2Ugc2lnbmFsIG9uIHRoZSByaWdodCBvYmplY3QKCSAgRml4ZXMgY3JpdGljYWxzIGF0IHJ1bnRpbWUgYW5kIG1ha2VzIHN0dWZmIGFjdHVhbGx5IHdvcmsuCgoyMDE0LTA1LTMxIDE3OjM1OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEtlZXAgc3RpbGwgbWVhbmluZ2Z1bGwgcGVuZGluZyBldmVudHMgb24gRkxVU0hfU1RPUAoJICBPbmx5IEVPUyBhbmQgc2VnbWVudCBzaG91bGQgYmUgZGVsZXRlZCBpbiB0aGF0IGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4NjgKCjIwMTQtMDUtMzAgMDk6MTM6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBSZXZlcnQgIm1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTYzNjFlOWI1YzVkMDBkYzc3MTJmZjNhOWFjZmJlMTBkZjdjZDlmZS4KCSAgVGhpcyB3YXMgbm90IHN1cHBvc2VkIHRvIGJlIHB1c2hlZCB5ZXQhCgoyMDE0LTA1LTMwIDA5OjEyOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogSXQncyBwb29sLCBub3QgcG9vLi4uIGV2ZW4gd2hlbiB0YWxraW5nIGFib3V0IGZsdXNoaW5nCgoyMDE0LTA1LTI4IDEwOjE0OjQ1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zCgkgIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkgY2FuIHRha2UgTlVMTCBtaW5pLW9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4NzMKCjIwMTQtMDUtMzAgMDE6NDI6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogZml4IGxlYWtzCgoyMDE0LTA1LTI5IDE0OjU0OjM0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IGNvbnZlcnQgTlVMTCwgVFJVRSwgYW5kIEZBTFNFIHRvICVOVUxMLCAlVFJVRSwgYW5kICVGQUxTRQoJICBUaGlzIHNob3VsZCBoZWxwIGltcHJvdmUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgZm9yCgkgIGxhbmd1YWdlcyBvdGhlciB0aGFuIEMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NjEKCjIwMTQtMDUtMzAgMDA6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCB0eXBlIGluIEdzdE9iamVjdCBkb2NzCgoyMDE0LTA1LTI5IDE1OjA0OjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBnc3RfYnVmZmVyX3Bvb2xfaGFzX29wdGlvbigpIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk2MgoKMjAxNC0wNS0yOSAxNDowNzoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzZXQgcGFkcyBuZWVkLXBhcmVudCBmbGFnIHRvIGZhbHNlIHdoZW4gcmVtb3ZpbmcKCSAgV2hlbiBhIHBhZCBpcyBhZGRlZCB0aGUgbmVlZC1wYXJlbnQgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwgc28gd2hlbgoJICB0aGV5IGFyZSByZW1vdmVkIHRoZSBmbGFnIHNob3VsZCBiZSBzZXQgYmFjayB0byBmYWxzZQoJICBUaGlzIHdhcyBwcmV2ZW50aW5nIEdzdFBhZHMgdG8gYmUgcmV1c2VkIGluIGVsZW1lbnRzIChyZW1vdmVkIGFuZAoJICBsYXRlciByZS1hZGRlZCkuIEEgdW5pdCB0ZXN0cyB3YXMgYWRkZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBpcwoJICB3b3JraW5nIG5vdy4KCSAgVGhlIHVzZSBjYXNlIGlzIHRzZGVtdXggdGhhdCBoYXMgYSBwcm9ncmFtLW51bWJlciBwcm9wZXJ0eSBhbmQKCSAgYWxsb3dzIHRoZSB1c2VyIHRvIHN3aXRjaCBwcm9ncmFtcy4gSW4gb3JkZXIgdG8gZG8gdGhhdCB0c2RlbXV4CgkgIHdpbGwgcmVtb3ZlIHRoZSBwYWRzIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gYW5kIGFkZCBmcm9tIHRoZSBuZXcKCSAgb25lcy4gVGhlIHJlbW92ZWQgcGFkcyBhcmUga2VwdCBpbiB0aGUgZGVtdXhlciBmb3IgbGF0ZXIgaWYgdGhlCgkgIHVzZXIgc2VsZWN0cyB0aGUgb2xkIHByb2dyYW0gYWdhaW4uCgoyMDE0LTA1LTI3IDA4OjA5OjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHdoZW4gcXVldWVzIGZsdXNoCgkgIFRoZSBidWZmZXJpbmcgc3RhdHVzIGdvZXMgYmFjayB0byAwLCBzbyBpbmZvcm0gdGhlIGFwcGxpY2F0aW9uIGFib3V0IGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0MjMKCjIwMTQtMDUtMjkgMTQ6Mzk6MzYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBJZ25vcmUgVklNIHN3YXAgZmlsZXMKCjIwMTQtMDUtMjcgMTM6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB0d28gbWlub3IgZG9jcyBmaXhlcwoKMjAxNC0wNS0yNyAxMDowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYmVhdXRpZnkgaGVhZGVycyBhIGxpdHRsZQoKMjAxNC0wNS0yNyAxMDowNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGRvY3M6IGFkZCBHc3RGbG93Q29tYmluZXIKCjIwMTQtMDUtMjcgMDk6NTU6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2Jhc2UuaDoKCSAgYmFzZTogaW5jbHVkZSBmbG93Y29tYmluZXIgaGVhZGVyIGZyb20gYmFzZS5oCgoyMDE0LTA1LTI2IDEyOjMxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZmxvd2NvbWJpbmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgR3N0Rmxvd0NvbWJpbmVyCgkgIEFkZHMgYSB1dGlsaXR5IHN0cnVjdCB0aGF0IGlzIGNhcGFibGUgb2Ygc3RvcmluZyBhbmQgYWdncmVnYXRpbmcgZmxvdyByZXR1cm5zCgkgIGFzc29jaWF0ZWQgd2l0aCBwYWRzLgoJICBUaGlzIHdheSBhbGwgZGVtdXhlcnMgd2lsbCBoYXZlIGEgc3RhbmRhcmQgZnVuY3Rpb24gdG8gdXNlIGFuZCBoYXZlIHRoZQoJICBzYW1lIGV4cGVjdGVkIHJlc3VsdHMuCgkgIEluY2x1ZGVzIHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjI0CgoyMDE0LTA1LTIzIDEzOjI1OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHN0b3JlIGxhc3QgZmxvdyByZXR1cm4gYW5kIHByb3ZpZGUgYWNlc3NvciBmdW5jdGlvbgoJICBTdG9yZXMgdGhlIGxhc3QgcmVzdWx0IG9mIGEgZ3N0X3BhZF9wdXNoIG9yIGEgcHVsbCBvbiB0aGUgR3N0UGFkIGFuZCBwcm92aWRlcwoJICBhIGdldHRlciBhbmQgYSBtYWNybyB0byBhY2Nlc3MgdGhpcyBmaWVsZC4KCSAgV2hlbmV2ZXIgdGhlIHBhZCBpcyBpbmFjdGl2ZSBpdCBpcyBzZXQgdG8gRkxVU0hJTkcKCSAgQVBJOiBnc3RfcGFkX2dldF9sYXN0X2Zsb3dfcmV0dXJuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyMjQKCjIwMTQtMDUtMjMgMTU6MjY6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBBZGQgbWV0aG9kIGFuZCB2aXJ0dWFscyB0byBzZXQgZmx1c2hpbmcgc3RhdGUKCSAgQ3VycmVudGx5IHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byB1bmxvY2sgYSBidWZmZXIgcG9vbCBvdGhlciB0aGVuCgkgIHN0b3BwaW5nIGl0LiBUaGlzIG1heSBoYXZlIHRoZSBlZmZlY3Qgb2YgZnJlZWluZyBhbGwgdGhlIGJ1ZmZlcnMsCgkgIHdoaWNoIGlzIHRvbyBoZWF2eSBmb3IgYSBzZWVrLiBUaGlzIHBhdGNoIGFkZCBhIG1ldGhvZCB0byBlbnRlciBhbmQKCSAgbGVhdmUgZmx1c2hpbmcgc3RhdGUuIEFzIGEgY29udmVuaWVuY2UsIGZsdXNoX3N0YXJ0L2ZsdXNoX3N0b3AKCSAgdmlydHVhbCBhcmUgYWRkZWQgc28gcG9vbCBpbXBsZW1lbnRhdGlvbiBjYW4gYWxzbyB1bmJsb2NrIHRoZWlyIG93bgoJICBpbnRlcm5hbCBwb2xsIGF0b21pY2FsbHkgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcG9vbC4gIFRoaXMgaXMgZnVsbHkKCSAgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIGRvaW5nIHN0b3Avc3RhcnQgdG8gYWN0dWFsbHkgZmx1c2ggdGhlIHBvb2wKCSAgKGFzIGJlaW5nIGRvbmUgaW4gR3N0QmFzZVNyYykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc2MTEKCjIwMTQtMDUtMjYgMTQ6MjM6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUGFzc3Rocm91Z2ggQUxMT0NBVElPTiBxdWVyaWVzIGluIHBhc3N0aHJvdWdoIG1vZGUgZXZlbiBpZiB3ZSBoYWQgbm8gY2FwcyB5ZXQKCSAgT3IgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgY2FyZSBhYm91dCBjYXBzIGF0IGFsbC4KCSAgQWxzbyByZW1vdmUgYW4gYXNzaWduZWQgYnV0IHVudXNlZCBsb2NhbCB2YXJpYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDI2OAoKMjAxNC0wNS0yNSAxNjoxMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUKCjIwMTQtMDUtMjUgMTY6NTc6NTkgKzAyMDAgIFBpb3RyIERyxIVnIDxwaW90cmRyYWdAZ21haWwuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiB1cGRhdGUgUE9URklMRVMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDcxOAoKMjAxNC0wNS0yMSAxMzoyMzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjIgPT09CgoyMDE0LTA1LTIxIDEzOjA2OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjIKCjIwMTQtMDUtMjEgMTE6Mzk6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA1LTIxIDEwOjUwOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIxMWZhNWYgdG8gMWY1ZDNjMwoKMjAxNC0wNS0xOSAxMTowNToxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHNvbWUgcG9zaXRpdmUgdGVzdGNhc2UgZm9yIHN0cmluZyBkZXNlcmlhbGl6YXRpb24KCjIwMTQtMDUtMTggMTA6NDk6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIE1hbmRyYWtlIGFuZCBwYWNrYWdlcyB3ZSBubyBsb25nZXIgcHJvdmlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMzEyCgoyMDE0LTA1LTE1IDE2OjQxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDE0LTA1LTE0IDEzOjQwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIG9uIHdpbmRvd3MKCSAgZ3N0cGx1Z2lubG9hZGVyLmM6NTg0OjE6IGVycm9yOiBsYWJlbCAnYmVhY2gnIGRlZmluZWQgYnV0IG5vdCB1c2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAxMjUKCjIwMTQtMDUtMTMgMTk6NTE6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuaDoKCSAgZWxlbWVudHM6IGRvbid0IGRlcGVuZCBvbiBsaWJnaW8ganVzdCBmb3IgZ19pb19lcnJvcl9mcm9tX2Vycm5vKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk0OQoKMjAxNC0wNS0xMyAxOTozMDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBzcGFyc2VmaWxlOiBrZWVwIGl0IHByaXZhdGUgYXMgaGVscGVyIEFQSSBmb3IgZG93bmxvYWRidWZmZXIKCSAgVGhlcmUncyBubyBleHBlY3RhdGlvbiB0aGF0IGFueSBvdGhlciBlbGVtZW50IG9yIGFwcGxpY2F0aW9ucwoJICBtaWdodCB3YW50IHRvIHVzZSB0aGlzIGhlbHBlciBBUEkgYW55IHRpbWUgc29vbiwgc28ga2VlcCBpdAoJICBwcml2YXRlIGZvciB0aGUgdGltZSBiZWluZy4gVGhlcmUgd2VyZSBvcGVuIHF1ZXN0aW9ucyByZWdhcmRpbmcKCSAgcG9ydGFiaWxpdHkgYW5kIGJpbmRpbmctZnJpZW5kbGluZXNzIHRvby4KCSAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIGdpbyBkZXBlbmRlbmN5IG9mIC1iYXNlIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTUxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NDkKCjIwMTQtMDUtMTMgMTk6MTQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGRvY3M6IHBpY2sgdXAgR3N0QmFzZVBhcnNlIGhpZXJhcmNoeSBhbmQgcHJvcGVydGllcwoKMjAxNC0wNS0xMyAxOToxMDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGV4cG9zZSBHc3RQdXNoU3JjQ2xhc3MgaW4gZG9jdW1lbnRhdGlvbgoJICBNaWdodCBjb21lIGluIGhhbmR5IGluIGNhc2Ugc29tZW9uZSB3YW50cyB0byBkZXJpdmUgZnJvbSBpdC4KCjIwMTQtMDUtMTIgMTc6MDM6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRG9uJ3QgbGVhayBwbHVnaW5sb2FkZXIgaW4gZXJyb3IgY2FzZXMKCSAgQ0lEICMxMjEyMTU0CgoyMDE0LTA1LTEyIDE2OjU5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRG9uJ3QgbGVhayBmZWF0dXJlcyBvbiBlcnJvciBjYXNlcwoJICBJZiB3ZSBmYWlsIHRvIHBhcnNlIGZpZWxkcywgd2Ugd291bGQgZW5kIHVwIGxlYWtpbmcgdGhlIGZlYXR1cmVzIHdlCgkgIHBhcnNlZCBqdXN0IGJlZm9yZQoJICBDSUQgIzEyMTIxNTIKCjIwMTQtMDUtMDkgMTQ6Mjg6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDb3JyZWN0bHkgcmVzZXQgY29uZmlndXJhdGlvbgoJICBXaGVuIHBvb2wgY2FuJ3Qgd2UgdXNlLCBhbmQgd2UgZmFsbCBiYWNrIHRvIGRlZmF1bHQgcG9vbCwgd2UgbmVlZCB0bwoJICBjb3JyZWN0bHkgcmVzZXQgdGhhdCBwb29sIGNvbmZpZ3VyYXRpb24uCgoyMDE0LTA1LTA5IDE0OjQ2OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFVzZSBub24tZnJlZWQgdmFyaWFibGUKCSAgYWRkcmVzcyBpcyBvbmx5IHVzZWQgdGVtcG9yYXJpbHkuIFVzZSB0aGUgcHJvcGVyIHZhcmlhYmxlIGluc3RlYWQuCgkgIENJRCAjMTIxMjE4OQoKMjAxNC0wNS0wOCAxNzozMzozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiB0ZXN0IHRvIGNoZWNrIHF1ZXVlIG92ZXJydW4gd2l0aCBwdHM9bm9uZQoJICBDaGVja3MgaWYgYnVmZmVycyB3aXRoIHB0cz1ub25lIGNhbiBicmVhayB0aGUgcXVldWUgdGltZSBzaXplIGxpbWl0CgkgIGFuZCBhbGxvdyBtb3JlIGJ1ZmZlcnMgdGhhbiBleHBlY3RlZAoKMjAxNC0wNS0wOCAxNDo0ODowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogRml4IDMyYml0IGJ1aWxkCgkgIGZvcm1hdCAnJWxsaScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgaW50JywgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUgJ2dzaXplJwoKMjAxNC0wNS0wOCAxNDoxMjoxNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHBvb2wtbmVnbzogQ29ycmVjdGx5IHJlc2V0IHRoZSBjb25maWd1cmF0aW9uCgkgIFdoZW4gcG9vbCBjYW5ub3QgYmUgdXNlZCwgY29ycmVjdGx5IHJlc2V0IHRoZSBjb25maWd1cmF0aW9uIGJlZm9yZQoJICBjb25maWd1cmF0aW9uIGEgZGVmYXVsdCBwb29sLgoKMjAxNC0wNC0xNSAxNDoxNzowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBwb29sLW5lZ286IFJldHJ5IHNldHRpbmcgY29uZmlndXJhdGlvbiB3aXRoIG1vZGlmaWVkIGNvbmZpZwoJICBCdWZmZXIgcG9vbCBzZXRfY29uZmlnKCkgbWF5IHJldHVybiBGQUxTRSBpZiByZXF1ZXN0ZWQgY29uZmlndXJhdGlvbiBuZWVkZWQKCSAgc21hbGwgY2hhbmdlcy4gUmVnZXQgdGhlIGNvbmZpZyBhbmQgdHJ5IHNldHRpbmcgaXQgYWdhaW4gKHZhbGlkYXRpbmcgdGhlCgkgIGNoYW5nZXMgZmlyc3QpLiBUaGlzIGVuc3VyZSB3ZSBoYXZlIGEgY29uZmlndXJlZCBwb29sIGlmIHBvc3NpYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA1LTA4IDEyOjQ3OjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogQWRkIGFuIGhlbHBlciB0byB2YWxpZGF0ZSBjb25maWcKCSAgV2hlbiB3ZSBjYWxsIGdzdF9idWZmZXJfcG9vbF9zZXRfY29uZmlnKCkgdGhlIHBvb2wgbWF5IHJldHVybiBGQUxTRSBhbmQKCSAgc2xpZ2h0bHkgY2hhbmdlIHRoZSBwYXJhbWV0ZXJzLiBUaGlzIGhlbHBlciBpcyB1c2VmdWwgdG8gZG8gdGhlIG1pbmlhbCByZXF1aXJlZAoJICB2YWxpZGF0aW9uIGJlZm9yZSBhY2NlcHRpbmcgdGhlIG1vZGlmaWVkIGNvbmZpZ3VyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDQtMDggMTk6Mjc6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFVwZGF0ZSB0aGUgY29uZmlndXJlIGV2ZW4gaWYgc2V0X2NvbmZpZygpIHJldHVybmVkIGZhbHNlCgkgIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiwgd2hlbiBzZXRfY29uZmlnKCkgcmV0dXJuIGZhbHNlLCBpdCBzaG91bGQgYmUKCSAgcG9zc2libGUgdG8gcmVhZCB0aGUgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgY29uZmlnLiBUaGlzIHBhdGNoIGZpeGVzIHRoZQoJICBpbXBsZW1lbnRhdGlvbiBzbyBpdCBpcyBub3cgYWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA1LTA2IDE1OjM1OjE0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBzdXBwb3J0IGZvciByZWNvbmZpZ3VyaW5nIGEgcG9vbAoJICBJZiBhIHBvb2wgY29uZmlnIGlzIGJlaW5nIGNvbmZpZ3VyZWQgYWdhaW4sIGNoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIGhhdmUgY2hhbmdlZC4KCSAgSWYgbm90LCBza2lwIHRoYXQgc3RlcC4gRmluYWxseSwgaWYgdGhlIHBvb2wgaXMgYWN0aXZlLCB0cnkgZGVhY3RpdmF0aW5nIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA2IDE2OjU5OjM0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBHc3RBbGxvY2F0aW9uUGFyYW1zIGNvbXBhcmlzaW9uCgkgIFRoaXMgaXMgdXNlZnVsIHRvIGNvbXBhcmUgYnVmZmVyIHBvb2wgY29uZmlndWFyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDYgMTY6NDY6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIEdPYmplY3QgY29tcGFyaXNpbmcgaW4gc3RydWN0dXJlcwoJICBUaGlzIGlzIHVzZWZ1bCB0byBhbGxvdyBjb21wYXJpbmcgcG9vbCBjb25maWd1cmF0aW9uIHdoZXJlIGEgR3N0QWxsb2NhdG9yCgkgIGlzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wOCAxNzo1MDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBmaXggY2FzZSB3aGVyZSBnc3RfcGx1Z2luX2xvYWRfZmlsZSgpIGRpZG4ndCBzZXQgdGhlIGVycm9yIG9uIGZhaWx1cmUKCjIwMTQtMDUtMDggMTY6MzA6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogYWRkIHNvbWUgU2luY2UgbWFya2VycyB0byBkb2NzCgoyMDE0LTA1LTA4IDE2OjI1OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHNwYXJzZWZpbGU6IHNwcmlua2xlIEdfQkVHSU5fREVDTFMgLyBHX0VORF9ERUNMUwoJICBmb3IgYysrLCBhbmQgcmVtb3ZlIG91dGRhdGVkIGNvbW1lbnQsIGFuZCBhZGQKCSAgbmV3IHVuaXQgdGVzdCB0byAuZ2l0aWdub3JlLgoKMjAxNC0wNS0wOCAxNjo0OTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBzbWFsbCBjbGVhbnVwcwoKMjAxNC0wNS0wOCAxNDo1MToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogdXBkYXRlIGRvY3MKCjIwMTQtMDUtMDggMTQ6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIGRlZgoKMjAxNC0wMi0yMSAxNjozMjo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSAgQWRkIG5ldyBkb3dubG9hZGJ1ZmZlciBlbGVtZW50CgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMTgzCgoyMDE0LTA1LTAyIDE3OjQyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGFkczogdXBkYXRlIGRvY3MgZm9yIHJlcXVlc3QgcGFkcwoJICBXZSB3b3VsZCBsaWtlIHRvIGVuY291cmFnZSB0aGUgdXNlIG9mIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKCkKCjIwMTQtMDUtMDIgMTc6MDI6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJICBjaGVjazogdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gZmFpbF91bmxlc3MoKSBzbyB3ZSBleGl0IGltbWVkaWF0ZWx5CgkgIGV4aXQoKSB3aWxsIGNhbGwgYXRleGl0IGhhbmRsZXJzLCB3aGljaCBtYXkgdHJ5IHRvCgkgIGNsZWFuIHVwIHRoaW5ncyBvciB3YWl0IGZvciB0aGluZ3MgdG8gZ2V0IGNsZWFuZWQgdXAsCgkgIHdoaWNoIHdlIGRvbid0IHdhbnQgb3IgbmVlZC4gV2UganVzdCB3YW50IHRvIHN0b3AKCSAgYW5kIGxldCB0aGUgcGFyZW50IGtub3cgYWJvdXQgdGhlIGZhaWx1cmUgYXMgcXVpY2tseQoJICBhcyBwb3NzaWJsZSBpbiBjYXNlIGZvcmsoKSBpcyB1c2VkLgoJICBGaXhlcyB0aW1lb3V0cyBvbiBhc3NlcnQgZmFpbHVyZXMgaW4gY2hlY2tzIHdoZXJlCgkgIGFuIGV4aXQgaGFuZGxlciB3YWl0cyBmb3IgdGhpbmdzIHRvIHN0b3AsIGJ1dCB0aGV5CgkgIGRvbid0IHN0b3AgYmVjYXVzZSB0aGV5IGhhdmVuJ3QgYmVlbiBzaHV0IGRvd24sCgkgIGFuZCB0aGV5IGhhdmVuJ3QgYmVlbiBzaHV0IGRvd24gYmVjYXVzZSB0aGVyZSdzIG5vCgkgIHNpbXBsZSB3YXkgdG8gZG8gc28gb24gZmFpbHVyZXMuCgkgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9jaGVjay9wYXRjaGVzLzUwLwoKMjAxNC0wNS0wNCAxNDo1MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogaW5pdCBmbGFnIG1hc2sgbW9yZSBjb3JyZWN0bHkKCjIwMTQtMDUtMDQgMTM6MzI6NDYgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjgxMQoKMjAxNC0wNS0wMyAyMDo0ODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjEgPT09CgoyMDE0LTA1LTAzIDE3OjQxOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMQoKMjAxNC0wNS0wMyAxNzozNDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDUtMDMgMTc6MjA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNS0wMyAxMjoxNDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBuZXcgZGV2aWNlIHByb2JpbmcgQVBJIHRvIGRvY3MgdGFibGUgb2YgY29udGVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTQ0MAoKMjAxNC0wNS0wMiAyMjoyMjowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBHc3REZXZpY2UqIHRvIGdzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTQ0MAoKMjAxNC0wNS0wMyAxMDoxNDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmNiMTUxOCB0byAyMTFmYTVmCgoyMDE0LTA1LTAxIDEwOjM3OjE4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFsd2F5cyByZW5kZXIgcHJlcGFyZWQgYnVmZmVyCgkgIEN1cnJlbnRseSwgaWYgcHJlcGFyZSgpIHRha2VzIHRvbyBtdWNoIHRpbWUsIHdlIHNraXAgdGhlIGNhbGwgdG8gcmVuZGVyKCkuCgkgIFRoZSBzaWRlIGVmZmVjdCBvZiB0aGlzLCBpcyB0aGF0IHdlIGVuZHVwIHN0YXJ2aW5nIHRoZSByZW5kZXIoKS4gVGhlIHNvbHV0aW9uCgkgIGluIHRoaXMgcGF0Y2ggaXMgdG8gYWx3YXlzIHJlbmRlciBmcmFtZXMgdGhhdCBhcmUgb24gdGltZSBiZWZvcmUgcHJlcGFyZSgpIGlzCgkgIGV4ZWN1dGVkLiBUaGlzIHdpbGwgbWF4aW1pemUgdGhlIG51bWJlciBvZiBmcmFtZXMgd2UgZGlzcGxheSBhbmQgc21vb3RobHkKCSAgZGVncmFkZSB0aGUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5MzM1CgoyMDE0LTA1LTAxIDE0OjUyOjI0IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogYWRkIG1vcmUgbW9kdWxlcwoJICBBZGQgbW9yZSBnaXQgcmVwb3NpdG9yaWVzIHRvIGNoZWNrIChzbyBnaXQtdmVyc2lvbi5zaCBpcyBjb25zaXN0ZW50IHdpdGgKCSAgZ3N0LXVuaW5zdGFsbGVkKSBhbmQgZGlzcGxheSB0aGUgZGF0ZSBvZiB0aGUgbGFzdCBjb21taXQsIHdoaWNoIGlzIG1vcmUgdmFsdWFibGUKCSAgaW5mb3JtYXRpb24gdGhhbiB0aGUgbGFzdCBjb21taXQncyBoYXNoLgoKMjAxNC0wNS0wMSAxODo0Mjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHdheXMgZmlyc3QgcG9zdCB0aGUgc3RhdGUtY2hhbmdlZCBtZXNzYWdlIGZvciBQQVVTRUQtPlJFQURZIGJlZm9yZSBwb3N0aW5nIGFueSBwZW5kaW5nIEVPUyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDkKCjIwMTQtMDQtMTcgMjE6MTA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBZGQgdGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBFT1MgYWx3YXlzIGNvbWVzIGFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ5CgoyMDE0LTA0LTE1IDE1OjU1OjI1ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBsb2cgbWVzc2FnZSBvZiBidWZmZXIgcG9pbnRlcgoKMjAxNC0wNC0zMCAxODoyMDoyOCAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTQtMDQtMzAgMTA6NDc6MTkgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiBmaXggbWlzdGFrZW4gY29tbWVudHMKCjIwMTQtMDQtMjggMTM6MDI6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHNpZ25hbGluZyBvdmVycnVuIG9uIHRoZSBmaXJzdCBzZWdtZW50CgkgIFdoZW4gdGhlIGZpcnN0IHNlZ21lbnQgaGFzIHBvc2l0aW9uICE9IDAgYW5kIHBvc2l0aW9uID4gbWF4LXNpemUtdGltZQoJICBpdCB3aWxsIGltbWVkaWF0ZWxseSBjYXVzZSB0aGUgbXVsdGlxdWV1ZSB0byBzaWduYWwgb3ZlcnJ1bi4KCSAgVGhpcyBjYW4gaGFwcGVuIGVhc2lseSB3aXRoIGFkYXB0aXZlIHN0cmVhbXMgd2hlbiBzd2l0Y2hpbmcgYml0cmF0ZXMKCSAgYW5kIHN0YXJ0aW5nIGEgbmV3IGdyb3VwLiBUaGUgc2VnbWVudCBmb3IgdGhpcyBuZXcgZ3JvdXAgd2lsbCBoYXZlCgkgIGEgcG9zaXRpb24gdGhhdCBpcyBtdWNoIGdyZWF0ZXIgdGhhbiAwIGFuZCB3aWxsIGxlYWQgdG8gdGhpcyBpc3N1ZS4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaGFybWZ1bCB3aGVuIHRoZSBhZGFwdGl2ZSBzdHJlYW0gdXNlcyBtcGVndHMKCSAgdGhhdCBkb2Vzbid0IGVtaXQgbm8tbW9yZS1wYWRzIGFuZCBpdCBtaWdodCBoYXBwZW4gdGhhdCBvbmx5IG9uZQoJICBvZiB0aGUgc3RyZWFtIHBhZHMgd2FzIGFkZGVkIHdoZW4gdGhlIG11bHRpcXVldWUgb3ZlcnJ1bnMgYW5kIGdldHMKCSAgdGhlIGdyb3VwIHJlYWR5IGZvciBleHBvc2luZy4gU28gdGhlIHVzZXIgd2lsbCBvbmx5IGdldCBhdWRpbyBvcgoJICB2aWRlby4KCSAgVGhlIHNvbHV0aW9uIGlzIHRvIGZhbGxiYWNrIHRvIHRoZSBzaW5rIHNlZ21lbnQgd2hpbGUgdGhlIHNvdXJjZSBwYWQKCSAgaGFzIG5vIHNlZ21lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkxMjQKCjIwMTQtMDQtMjggMTA6MTQ6NTAgKzAyMDAgIFhhdmkgQXJ0aWdhcyA8eGFydGlnYXNAZmx1ZW5kby5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGVuaGFuY2VtZW50cyB0byBwb3J0aW5nIGd1aWRlIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzc1NAoKMjAxNC0wNC0yOCAwOTo0MzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBib29sZWFuIHRvIFVSSSBxdWVyeSB0byBzcGVjaWZ5IGlmIGEgcmVkaXJlY3QgaXMgcGVybWFuZW50IG9yIG5vdAoKMjAxNC0wNC0yNSAwNzozODowMCArMDAwMCAgU3JpbWFudGEgUGFuZGEgPHBhbmRhX3NyaW1hbnRhQHlhaG9vLmNvLmluPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBDaGVjayBpZiB0aGUgbGFzdCBwYWQgd2FzIHNldAoJICBJZiBubyBkYXRhIGlzIGNvbWluZyBidXQgb25seSBFT1MgaXMgc2VudCBmcm9tIGFsbCBvZiB0aGUgc2lua3BhZCwgaXQgaXMgbm90CgkgIGZvcndhcmRpbmcgdGhlIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0NQoKMjAxNC0wNC0yNiAxNzowMjoxOCArMDEwMCAgRmVsaXBlIE9ydGl6IDxmYW9ydGl6Y0BnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzY1MgoKMjAxNC0wNC0yNiAyMzoxMjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgUmV2ZXJ0ICJkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGQxNzQzOGQ1ZmQzMjFkYWVjNGFkYmViMjhhOGZiNWQ1ZTA3Mjk4ZGMuCgkgIFRoaXMgY29tbWl0IGZlYXR1cmVkIHRoZSB3cm9uZyBhdXRob3IsIHNvcnJ5LgoKMjAxNC0wNC0yNiAyMToyMTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvUkVBRE1FOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBkb2NzOiByZW1vdmUgb3V0ZGF0ZWQgYW5kIHBvaW50bGVzcyAnTGFzdCByZXZpZXdlZCcgbGluZXMgZnJvbSBkb2NzCgkgIFRoZXkgYXJlIHZlcnkgY29uZnVzaW5nIGZvciBwZW9wbGUsIGFuZCBtb3JlIG9mdGVuIHRoYW4gbm90CgkgIGFsc28ganVzdCBub3QgdmVyeSBhY2N1cmF0ZS4gU2VlaW5nICdsYXN0IHJldmlld2VkOiAyMDA1JyBpbgoJICB5b3VyIGRvY3MgaXMgbm90IHZlcnkgY29uZmlkZW5jZS1pbnNwaXJpbmcuIExldCdzIGp1c3QgcmVtb3ZlCgkgIHRob3NlIGNvbW1lbnRzLgoKMjAxNC0wMy0yNiAxNTo1NjowOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXI6IE9ubHkgc2V0IFRBR19NRU1PUlkgaWYgdGhlIG1lbW9yeSBoYXMgYmVlbiByZXBsYWNlZAoJICBDdXJyZW50bHkgd2Ugc2V0IFRBR19NRU1PUlkgYXMgc29vbiBhIHJlc2l6ZSBjaGFuZ2VzIHRoZSBzaXplIG9mIG9uZQoJICBvZiB0aGUgbWVtb3J5LiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3QgdGhhdCBidWZmZXIgcG9vbCBjYW5ub3Qga25vdyBpZgoJICB0aGUgbWVtb3J5IGhhdmUgc2ltcGx5IGJlZW4gcmVzaXplZCwgb3IgaWYgdGhlIG1lbW9yeXMgaGFzIGJlZW4gcmVwbGFjZWQuCgkgIFRoaXMgbWFrZSBpdCBoYXJkIHRvIGFjdHVhbGx5IGltcGxlbWVudCBfcmVzZXQoKS4gSW5zdGVhZCwgb25seSBzZXQgdGhlCgkgIFRBR19NRU1PUlkgaWYgb25lIG9yIG1vcmUgbWVtb3J5IGhhcyBiZWVuIHJlcGxhY2VkLCBhbmQgZG8gYSBsaWdodAoJICBzYW5pdHkgY2hlY2sgb2YgdGhlIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcxMDkKCjIwMTQtMDQtMjYgMTc6MDI6MTggKzAxMDAgIFNob3dheWIgWmFoZGEgPHNob3dheWIuemFoZGFAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzY1MgoKMjAxNC0wNC0yNSAxNTozODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBXaGVuIGdvaW5nIHRvIFJFQURZIG1ha2Ugc3VyZSB0byBhbHdheXMgZGVhY3RpdmF0ZSBwYWRzCgkgIFdlIG1pZ2h0IG5vdCBoYXZlIHJlYWNoZWQgUEFVU0VEIHlldCBiZWNhdXNlIG9mIGFuIGFzeW5jIGVycm9yLAoJICBidXQgbm9uZXRoZWxlc3Mgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFkcyBhcmUgYWx3YXlzCgkgIGRlYWN0aXZhdGVkIGluIFJFQURZIHN0YXRlLgoKMjAxNC0wNC0yMiAxODoyMzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEb24ndCBsZWZ0LXNoaWZ0IGludG8gdGhlIHNpZ24gYml0LCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZAoKMjAxNC0wNC0yMiAxODoxNjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogVXNlIGFuIHVuc2lnbmVkIDY0IGJpdCBpbnRlZ2VyIGFzIGEgbWFzawoJICBXZSBzaGlmdCB0aGUgbWFzayB0byB0aGUgcmlnaHQgbGF0ZXIgYW5kIHNoaWZ0aW5nIHRoZSByZXN1bHQKCSAgb2Ygc2hpZnRpbmcgb3ZlciB0aGUgc2lnbiBiaXQgaXMgdW5kZWZpbmVkLgoKMjAxNC0wNC0yMCAxMTo1OTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHN1cmUgdG8gYWx3YXlzIGhvbGQgdGhlIExJVkVfTE9DSyB3aGVuIGdvaW5nIHRvIHRoZSBmbHVzaGluZyBsYWJlbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTk2CgoyMDE0LTA0LTExIDE5OjUyOjAyICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBIYW5kbGUgZW5kIG9mIHN0cmVhbSBldmVudCBvbiBzaW5rIHBhZAoJICBIYW5kbGUgZW5kIG9mIHN0cmVhbSBldmVudHMgb24gc2luayBwYWQuIENoZWNrIGFsbCB0aGUgc2luayBwYWQKCSAgaGFzIHJlY2VpdmVkIGVvcyBiZWZvcmUgZm9yd2FyZGluZyB0byBzb3VyY2UgcGFkLgoJICBGaXhlcyA6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDUKCjIwMTQtMDQtMDUgMTE6Mzc6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBQcmV2ZW50IGRpdmlzaW9uIG9yIG1vZHVsbyBieSB6ZXJvCgkgIFRoZSBzdGVwIGNhbiBlbmQgdXAgYmVpbmcgemVybyBpZiB0aGUgdW5kZXJseWluZyB2YWx1ZSBpc24ndCBhIHZhbGlkCgkgIHJhbmdlIEdWYWx1ZS4KCSAgSW4gdGhvc2UgY2FzZXMsIHJldHVybiBGQUxTRS4KCSAgV2UgZG9uJ3QgdXNlIGdfcmV0dXJuKl9pZl9mYWlsIHNpbmNlIGl0IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gdHJpZ2dlcmVkCgkgIGJ5IHRoZSBhYm92ZS1tZW50aW9ubmVkIF9nZXRfc3RlcCgpIGZ1bmN0aW9ucy4KCSAgQ0lEICMxMDM3MTMyCgoyMDE0LTA0LTA5IDE2OjQ0OjA3ICswMjAwICBBbnRvaW5lIEphY291dG90IDxhamFjb3V0b3RAZ25vbWUub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnLWlyLXNjYW5uZXI6IGRvIG5vdCBoYXJkY29kZSBsaWJ0b29sIHBhdGgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjU3MQoKMjAxNC0wNC0xNiAxOTo0OTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnkvYnVmZmVyOiBJbml0aWFsaXNlIEdzdE1hcEluZm8gdG8gemVyb2VzIGlmIG1hcHBpbmcgZmFpbHMKCSAgVGhpcyBzaG91bGQgYWxsb3cgZm9yIG1vcmUgbWVhbmluZ2Z1bCBlcnJvcnMuIERlcmVmZXJlbmNpbmcgTlVMTAoJICBpcyBtb3JlIHVzZWZ1bCBpbmZvcm1hdGlvbiB0aGFuIGRlcmVmZXJlbmNpbmcgYSByYW5kb20gYWRkcmVzcwoJICBoYXBwZW5lZCB0byBiZSBvbiB0aGUgc3RhY2suCgoyMDE0LTA0LTE2IDE3OjQ5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IFVucmVmIHJldHVybiB2YWx1ZSBvZiBnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KCkgaW5zdGVhZCBvZiBsZWFraW5nIGl0CgoyMDE0LTA0LTE2IDE3OjQ4OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IEF1dG9tYXRpYyBjb2RlIHN0eWxlIGZpeGVzCgoyMDE0LTA0LTE2IDE1OjE3OjA0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZml4IGV2ZW50L3ByZXJvbGwgZGVhZGxvY2sgZGlmZmVyZW50bHkKCSAgVGhlIHFsb2NrIGlzIHJlbGVhc2VkIGJldHdlZW4gcG9wcGluZyBhIGJ1ZmZlciBmcm9tIHRoZSBxdWV1ZQoJICBhbmQgcHVzaGluZyBpdC4gV2hlbiB0aGlzIGJ1ZmZlciBjYXVzZXMgdGhlIHNpbmsgdG8gd2FpdCBpbgoJICBwcmVyb2xsLCB0aGlzIGxldHMgYSBxdWVyeSBzZWUgdGhhdCB0aGUgcXVldWUgaXMgZW1wdHksIGFuZAoJICBwdXNoIHRoZSBxdWVyeSB0aGVuIHdhaXQgZm9yIGl0IHRvIGJlIHNlcnZpY2VkLiBIb3dldmVyLCB0aGlzCgkgIHdpbGwgbm90IGJlIGRvbmUgdGlsbCBhZnRlciBwZXJvbGwsIGFuZCB0aGlzIHdpbGwgdGh1cyBibG9jay4KCSAgSWYgdXBzdHJlYW0gd2FzIHdhaXRpbmcgb24gYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUgYmVmb3JlCgkgIHN3aXRjaGluZyB0byBQTEFZSU5HLCBhIGRlYWRsb2NrIHdvdWxkIGVuc3VlLgoJICBUaGlzIGhhZCBiZWVuIGZpeGVkIHJlY2VudGx5IGJ5IGZhaWxpbmcgcXVlcmllcyB3aGVuIHRoZQoJICBxdWV1ZTIgd2FzIGJ1ZmZlcmluZywgYnV0IHRoaXMgaGFwcGVucyB0byBicmVhayBzb21lIG90aGVyCgkgIGNhc2UgKHBsYXliaW4gb24gYSBsb2NhbCBodHRwIHNlcnZlciBhbmQgbWF0cm9za2EpLCB3aGlsZQoJICB0aGlzIHBhdGNoIHdvcmtzIGZvciBib3RoLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODM0NQoKMjAxNC0wNC0xNiAwNzo1OToyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEZpeCBleHBvcnRlZCBzeW1ib2wgbmFtZQoJICBpdCdzIF90ZW1wbGF0ZSBhbmQgbm90IF90ZW1wbAoKMjAxNC0wNC0xNSAyMToxNjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgbWlzc2luZyBzcGFjZSBpbiBkZWJ1ZyBvdXRwdXQKCjIwMTQtMDQtMTUgMTI6NTg6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBuZXcgQVBJIHRvIHNldCB1cCBwYWRzIGZyb20gbm9uLXN0YXRpYyBwYWQgdGVtcGxhdGVzCgoyMDE0LTA0LTE0IDIxOjM1OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRml4IG1lbW9yeSBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNC0wNC0xMiAxNToyMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcmVwbGFjZSBuZXdseS1hZGRlZCBHc3RUZXN0Q2xvY2tJRExpc3Qgc3RydWN0dXJlIHdpdGggYSBzaW1wbGUgR0xpc3QKCSAgS2VlcCBpdCBzaW1wbGUuIExpa2VseSBhbHNvIG1ha2VzIHRoaW5ncyBlYXNpZXIgZm9yIGJpbmRpbmdzLAoJICBhbmQgZWZmaWNpZW5jeSBjbGVhcmx5IGhhcyBub3QgYmVlbiBhIGNvbnNpZGVyYXRpb24gZ2l2ZW4gaG93CgkgIHRoZSBleGlzdGluZyBjb2RlIGhhbmRsZWQgdGhlc2UgbGlzdHMuCgoyMDE0LTA0LTEyIDE0OjMwOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICBkb2NzOiB0ZXN0Y2xvY2s6IGZpeCB1cCBTaW5jZSBtYXJrZXJzCgoyMDE0LTA0LTEyIDAwOjI4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgdGVzdGNsb2NrOiBhZGQgYmFjayBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9wZW5kaW5nX2lkX2NvdW50KCkKCSAgLi4gYnV0IGRlcHJlY2F0ZSBpdC4gQUJJIHN0YWJpbGl0eSBhbmQgYWxsIHRoYXQuCgkgIEl0J3MgYSBkYW5nZXJvdXMgYW5kIHJhY3kgZnVuY3Rpb24gdG8gdXNlLgoKMjAxNC0wMy0yMyAxNTowODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZy4KCjIwMTMtMTItMTYgMTA6MDE6MzcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIHN1cHBvcnQgZm9yIHdhaXRpbmcgYW5kIHJlbGVhc2luZyBtdWx0aXBsZSBHc3RDbG9ja0lEcwoJICBJbiBvcmRlciB0byBiZSBkZXRlcm1pbmlzdGljLCBtdWx0aXBsZSB3YWl0aW5nIEdzdENsb2NrSURzIG5lZWRzIHRvIGJlCgkgIHJlbGVhc2VkIGF0IHRoZSBzYW1lIHRpbWUsIG9yIGVsc2Ugb25lIGNhbiBnZXQgaW50byB0aGUgc2l0dWF0aW9uIHRoYXQKCSAgdGhlIG9uZSBiZWluZyByZWxlYXNlZCBmaXJzdCBjYW4gYWRkIGl0c2VsZiBiYWNrIGFnYWluIGJlZm9yZSB0aGUgbmV4dAoJICBvbmUgd2FpdGluZyBpcyByZWxlYXNlZC4KCSAgVGVzdCBhZGRlZCBmb3IgbmV3IEFQSSBhbmQgb2xkIHRlc3RzIHJld3JpdHRlbiB0byBjb21wbHkuCgoyMDE0LTA0LTAxIDE1OjM4OjU0ICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNzbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBhY2Nlc3MgdW5vd25lZCBhbmQgcG9zc2libHkgYWxyZWFkeSBmcmVlZCBldmVudAoJICBEb24ndCBwcmludCB0aGUgbmFtZSBvZiB0aGUgZXZlbnQgd2hlbiBvd25lcnNoaXAgaXMgZ2l2ZW4gYXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzQ4NAoKMjAxNC0wNC0xMiAwNzoxMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBwcmludCBzdHJ1Y3R1cmUgdmFsdWVzIG9mIHByb3BlcnRpZXMKCjIwMTQtMDQtMTEgMjI6Mzg6MjUgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBIb2xkIHBhZCBvYmplY3QgbG9jayB3aGVuIGNoYW5naW5nIHRhZ3MKCSAgQXZvaWQgc3B1cmlvdXMgY3Jhc2hlcyB3aGVuIHRhZ3MgYXJlIHJldHJpZXZlZCBqdXN0IGFzCgkgIG5ldyBvbmVzIGFycml2ZS4KCjIwMTQtMDQtMTEgMTM6NDU6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHJhbmdlIGl0ZXJhdGlvbgoJICBXZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBpdGVtcyBpZHggdG8gaWR4ICsgbGVuZ3RoCgkgIFdlIHVzZSB0aGUgbGVuIHZhcmlhYmxlIGFzIHRoZSBjb3JyZWN0ZWQgbnVtYmVyIG9mIG1lbW9yeSB0byBpdGVyYXRlCgkgIGFuZCB0aGVuIHByb3Blcmx5IGdvIG92ZXIgYWxsIGl0ZW1zLgoJICBGaXhlcyB0aGUgaXNzdWUgd2hlcmUgc3BlY2lmeWluZyBhbnkgaWR4IGRpZmZlcmVudCBmcm9tIDAgaGFkIG5vIGVmZmVjdAoJICBTcG90dGVkIGJ5IGNsYW5nIHN0YXRpYyBhbmFseXplcgoKMjAxNC0wNC0wOSAxNzowMTowMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZXJyb3Igb3V0IHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhIGZyYWN0aW9uIG5lYXIgYW4gaW52YWxpZCB0YXJnZXQKCjIwMTQtMDQtMDQgMTc6Mjg6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IFVwZGF0ZSBydW5uaW5nIHRpbWUgaW4gUW9TIGJhc2VkIG9uIHRoZSBwYWQgb2Zmc2V0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNjk3CgoyMDE0LTA0LTA0IDE3OjE1OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFwcGx5IHBhZCBvZmZzZXRzIG9uIGFsbCBldmVudHMsIG5vdCBqdXN0IHNlZ21lbnQgZXZlbnRzCgoyMDE0LTA0LTA0IDE3OjA2OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBydW5uaW5nLXRpbWUtb2Zmc2V0IGZpZWxkIHRvIGFsbCBldmVudHMKCSAgRXZlbnRzIHBhc3NpbmcgdGhyb3VnaCAjR3N0UGFkcyB0aGF0IGhhdmUgYSBydW5uaW5nIHRpbWUKCSAgb2Zmc2V0IHNldCB2aWEgZ3N0X3BhZF9zZXRfb2Zmc2V0KCkgd2lsbCBnZXQgdGhlaXIgb2Zmc2V0CgkgIGFkanVzdGVkIGFjY29yZGluZyB0byB0aGUgcGFkJ3Mgb2Zmc2V0LgoJICBJZiB0aGUgZXZlbnQgY29udGFpbnMgYW55IGluZm9ybWF0aW9uIHRoYXQgcmVsYXRlZCB0byB0aGUKCSAgcnVubmluZyB0aW1lLCB0aGlzIGluZm9ybWF0aW9uIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkCgkgIGJlZm9yZSB1c2FnZSB3aXRoIHRoaXMgb2Zmc2V0LgoKMjAxNC0wNC0wOSAxNjo0MDoyNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIGRpdmlkaW5nIGJ5IHplcm8gd2hlbiBtdWx0aXBseWluZyB5L3ogYnkgMC94CgkgIFRoZSBnY2Qgb2YgMC94IGlzIDAsIGFuZCB0aGlzIGlzIHRoZW4gdXNlZCBhcyBhIGRlbm9taW5hdG9yLgoKMjAxNC0wNC0wOSAxNjowMTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQW5kIGFjdHVhbGx5IHJ1biB0aGUgb3RoZXIgdGVzdHMgYWdhaW4KCjIwMTQtMDQtMDkgMTU6NTc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCB0aGUgcXVldWVzIGlmIGxpbWl0cyBhcmUgY2hhbmdpbmcgaW4gYSB3YXkgdGhhdCB3b3VsZCB1bmJsb2NrIHRoZSBxdWV1ZQoKMjAxNC0wNC0wOSAxNTo0Mjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIHRlc3QgZm9yIGNoZWNraW5nIGlmIHBhZHMgYXJlIHdha2VkIHVwIHdoZW4gbGltaXRzIGFyZSBjaGFuZ2VkCgoyMDE0LTA0LTA5IDEwOjE1OjMzICswMjAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggbWVtb3J5IGxlYWsKCSAgUXVldWVkIGZyYW1lcyB3ZXJlIG5vdCByZWxlYXNlZCBhZnRlciBiZWluZyBwdXNoZWQsIHRoaXMKCSAgY2F1c2VkIGEgbGVhayBvZiB0aGUgR3N0QmFzZVBhcnNlRnJhbWUgc3RydWN0dXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODgzCgoyMDE0LTA0LTA3IDE3OjQ5OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1c2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKQoJICBOZWVkIFVURi04IGVuY29kaW5nLgoKMjAxNC0wNC0wNyAxNzo0NzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBSZXZlcnQgImNoZWNrOiBvbmx5IGNhbGwgc2V0cGdpZCBvbiB2YWxpZCBjaGlsZCBQSURzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI5MzEzYWZjNzViNjhkOTg2ZTQ3M2I3NmI1NTU0MzQ1Njg1NzkxMmIuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGluIHVwc3RyZWFtIGxpYmNoZWNrIGluc3RlYWQuIFdlIHdhbnQKCSAgdG8ga2VlcCBkaWZmIG9mIG91ciBsb2NhbCBjb3B5IHRvIHVwc3RyZWFtIGxpYmNoZWNrCgkgIHRvIGEgbWluaW11bS4KCjIwMTQtMDQtMDcgMTc6MzM6MzQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB3YXJuIGlmIHdlIGNhbid0IHJlbW92ZSBvdXIgdGVtcG9yYXJ5IGZpbGUKCSAgSXQncyBub3QgZmF0YWwgdGhvdWdoLCBzbyBkbyBub3QgZXJyb3Igb3V0LgoJICBDb3Zlcml0eSAxMDM3MTIxCgoyMDE0LTA0LTA3IDE1OjM4OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogb25seSBjYWxsIHNldHBnaWQgb24gdmFsaWQgY2hpbGQgUElEcwoJICBDb3Zlcml0eSAyMDYxODYKCjIwMTQtMDQtMDcgMTU6Mzg6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogbm8gbmVlZCBmb3IgYSB0cmFuc2xhdGVkIG1lc3NhZ2UgZm9yIGltcG9zc2libGUgZXJyb3IgY2FzZXMKCSAgVGhlIG1lc3NhZ2UgaXMgdG9vIHRlY2huaWNhbCBhbnl3YXksIHRoZSBkZWZhdWx0IG1lc3NhZ2Ugd29ya3MKCSAganVzdCBmaW5lIGhlcmUgYXMgd2VsbC4KCjIwMTQtMDQtMDcgMTU6MTg6MzIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGNhdGNoIGZhaWx1cmUgdG8gc2VlayBiYWNrIHRvIHplcm8gYWZ0ZXIgc2VlayB0ZXN0CgkgIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiB0aGVvcmV0aWNhbGx5LCBidXQgc2luY2UgYSB0cmFuc2llbnQKCSAgZmFpbHVyZSB3b3VsZCBnZXQgdXMgdG8gc2lsZW50bHkgcmVhZCB3cm9uZyBkYXRhLCBpdCdzIHdvcnRoCgkgIGVycm9yaW5nIG91dC4gQW5kIGl0IHNpbGVuY2UgdGhpczoKCSAgQ292ZXJpdHkgMjA2MDM0CgoyMDE0LTA0LTA3IDExOjM2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogRG9uJ3QgZGlzdCB0aGUgYmlzb24gYW5kIGZsZXggZ2VuZXJhdGVkIGhlYWRlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzI1MwoKMjAxNC0wNC0wNiAxMToyMzozNCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogSGFuZGxlIGNhcHMgZmllbGQgdmFsdWVzIGJlaW5nIE5VTEwKCSAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSgpIHdvdWxkIGNhdXNlIGEgc2VnZmF1bHQgd2hlbmV2ZXIgaXQgZW5jb3VudGVyZWQgYW4KCSAgZWxlbWVudCdzIGNhcHMgdGhhdCBoYWQgYSBmaWVsZCB2YWx1ZSBiZWluZyBOVUxMLiBTdWNoIGZpZWxkcyBhcmUgc3VjY2Vzc2Z1bGx5CgkgIGhhbmRsZWQgZS5nLiBieSBHU1RfKl9PQkpFQ1QoKSwgYW5kIHdpdGggdGhpcyBwYXRjaCBzbyBkb2VzCgkgIEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUoKS4gRXZlbiBpZiBzdHJpbmcgZmllbGRzIHdpdGggYSBOVUxMIHZhbHVlIGFyZQoJICBub3Qgc3VwcG9zZWQgdG8gYmUgdmFsaWQgaW4gY2Fwcywgc3VjaCBjYXBzIGNhbiBiZSBjcmVhdGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NzAxCgoyMDE0LTA0LTA1IDExOjQ0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIGFsd2F5cy10cnVlLWNoZWNrcwoJICBhIGdzaXplIGlzIGd1YXJhbnRlZWQgdG8gYmUgcG9zaXRpdmUgb24gYWxsIHN5c3RlbXMgc2luY2UgaXQncyBhbgoJICB1bnNpZ25lZCB2YWx1ZS4KCSAgQ0lEICMxMDM3MTQ3CgoyMDE0LTA0LTA1IDExOjQ0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBSZW1vdmUgYWx3YXlzLXRydWUtY2hlY2tzCgkgIGEgZ3NpemUgaXMgZ3VhcmFudGVlZCB0byBiZSBwb3NpdGl2ZSBvbiBhbGwgc3lzdGVtcyBzaW5jZSBpdCdzIGFuCgkgIHVuc2lnbmVkIHZhbHVlLgoJICBDSUQgIzEwMzcxNDUKCSAgQ0lEICMxMDM3MTQ2CgoyMDE0LTA0LTA1IDExOjM3OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUHJldmVudCBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVybwoJICBUaGUgc3RlcCBjYW4gZW5kIHVwIGJlaW5nIHplcm8gaWYgdGhlIHVuZGVybHlpbmcgdmFsdWUgaXNuJ3QgYSB2YWxpZAoJICByYW5nZSBHVmFsdWUuCgkgIEluIHRob3NlIGNhc2VzLCByZXR1cm4gRkFMU0UuCgkgIFdlIGRvbid0IHVzZSBnX3JldHVybipfaWZfZmFpbCBzaW5jZSBpdCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHRyaWdnZXJlZAoJICBieSB0aGUgYWJvdmUtbWVudGlvbm5lZCBfZ2V0X3N0ZXAoKSBmdW5jdGlvbnMuCgkgIFNwb3R0ZWQgYnkgQ292ZXJpdHkuCgoyMDE0LTAzLTI1IDEyOjIzOjMyICswMTAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb25AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggY29tcGFyaXNvbiBvZiBpbnQvaW50NjQgcmFuZ2UKCSAgQ2hlY2tpbmcgc3RlcCB0aHJlZSB0aW1lcyBzZWVtcyB1bm5lY2Vzc2FyeS4KCSAgQSBzaW1pbGFyIGJ1ZyB3YXMgZml4ZWQgZm9yIGRvdWJsZSByYW5nZSBpbgoJICBjb21taXQgM2VhNmIwNGMxMGIxMGZkZTlkNjIxOTAwNjhmMjc0Yjk0MGVkZWYwNwoKMjAxNC0wNC0wMyAxODoxNzowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGJ1aWxkIHdpdGggZGVidWcgY2FjaGVkIGJ1ZmZlcnMgZW5hYmxlZAoJICBnc3RpbnB1dHNlbGVjdG9yLmM6ODE4OjU6IGVycm9yOiBmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwKCSAgYW5kIG5vIGZvcm1hdCBhcmd1bWVudHMgWy1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5XQoKMjAxNC0wNC0wMyAyMDozMToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTWFrZSBzdXJlIHRvIHNldCB0aGUgRElTQ09OVCBmbGFnIG9uIHRoZSBmaXJzdCBidWZmZXIgb2YgZWFjaCBHT1AgaW4gcmV2ZXJzZSBwbGF5YmFjayBtb2RlCgoyMDE0LTA0LTAzIDEzOjIwOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmluZyBkdXBsaWNhdGVkIGlubmVyIGlmCgkgIFRoZSBpbm5lciBpZiByZXBsaWNhdGVzIHRoZSBzYW1lIGNvZGUgb2YgdGhlIG91dGVyIGFuZCBpcyB1c2VsZXNzCgkgIGFzIGZsYWdfc2VnbWVudCB3aWxsIGFsd2F5cyBiZSB0cnVlLgoJICBGb3VuZCBieSBjb3Zlcml0eS4KCjIwMTQtMDQtMDMgMDc6MzY6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBnc3QtbGF1bmNoLjE6IFBsYXliaW4yIGlzIGRlYWQsIGxvbmcgbGl2ZSBwbGF5YmluCgkgIExvb2tzIGxpa2UgdGhhdCB3YXMgdGhlIGxhc3QgcmVtYWluaW5nIG1lbnRpb24gaW4gY29yZSAuLi4KCjIwMTQtMDQtMDIgMjM6NTI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogQWRkIG1pc3NpbmcgXG4gaW4gb3V0cHV0CgoyMDE0LTA0LTAxIDE1OjM1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGdzdC11bmluc3RhbGxlZDogZ3N0LXBsdWdpbnMtZ2wgbGlicyBnb3QgbWVyZ2VkIGludG8gLWJhZAoKMjAxNC0wMy0yOSAxMDoxODozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbmNsdWRlIGV2ZW50IHR5cGUgaW4gZGVidWcgb3V0cHV0IHdoZW4gZGVsYXlpbmcgYSBzdGlja3kgZXZlbnQgYmVjYXVzZSBvZiBub3QtbGlua2VkCgoyMDE0LTAzLTI5IDEwOjE2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc3BsaXR0aW5nIGFuZCByZXZlcnNpbmcgb2YgR09QcyBpbiByZXZlcnNlIHBsYXliYWNrIG1vZGUKCSAgV2UgaXRlcmF0ZSB0aGUgY3VycmVudCBkaXNjb250IGdyb3VwIGJhY2t3YXJkcyBhbmQgcHVzaCBlYWNoIEdPUCBmb3J3YXJkcywKCSAgc3RhcnRpbmcgZnJvbSB0aGUgbGFzdCBvbmUuIEhvd2V2ZXIgaWYgdGhlIGZpcnN0IGJ1ZmZlciBpbiB0aGUgY3VycmVudAoJICBkaXNjb250IGdyb3VwIGlzIGEga2V5ZnJhbWUsIHdlIHdpbGwga2VlcCBpdCBhcm91bmQgdW50aWwgbmV4dCB0aW1lLAoJICB3aGljaCBpcyBmYXIgZnJvbSBpZGVhbC4gSnVzdCBwdXNoIGl0LgoKMjAxNC0wMy0yNSAxMjozODowNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogcGxhY2UgdGhlIGRlZXAtbm90aWZ5IG9uIHRoZSByaWdodCBwaXBlbGluZQoJICBJZiB0aGUgdG9wbGV2ZWwgYmluIGlzIG5vdCBub3QgYSBwaXBlbGluZSwgd2UgcGxhY2UgdGhlIGJpbiBpbiBhCgkgIHBpcGVsaW5lLiBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbm5lY3QgdG8gdGhlIGRlZXAtbm90aWZ5IG9mIHRoaXMgbmV3CgkgIHBpcGVsaW5lIGJlY2F1c2Ugd2Ugd2lsbCBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QoKSBmcm9tIGl0IGxhdGVyLgoKMjAxNC0wMy0yNCAxNjozNDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjb3B5IGxhc3Rfc2FtcGxlIG9uIERSQUlOCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBob2xkIGEgcmVmIHRvIGEgYnVmZmVyIGZyb20gYmVmb3JlIHRoZSBEUkFJTiBxdWVyeSBieQoJICBtYWtpbmcgYSBjb3B5IG9mIHRoZSBsYXN0X2J1ZmZlci4KCjIwMTQtMDMtMjQgMTY6MTE6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvbid0IGNsZWFyIFRBRyBvbiBOVUxMIGJ1ZmZlcgoJICBXaGVuIHRoZSBidWZmZXIgZmFpbHMgdG8gY29weSwgZG9uJ3QgY2xlYXIgdGhlIFRBRyBvbiB0aGUgTlVMTCBwb2ludGVyLgoKMjAxNC0wMy0yMCAwNjoxNDozMyAtMDQwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBldmVudC9wcmVyb2xsIGRlYWRsb2NrCgkgIFRoZSBxbG9jayBpcyByZWxlYXNlZCBiZXR3ZWVuIHBvcHBpbmcgYSBidWZmZXIgZnJvbSB0aGUgcXVldWUKCSAgYW5kIHB1c2hpbmcgaXQuIFdoZW4gdGhpcyBidWZmZXIgY2F1c2VzIHRoZSBzaW5rIHRvIHdhaXQgaW4KCSAgcHJlcm9sbCwgdGhpcyBsZXRzIGEgcXVlcnkgc2VlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHR5LCBhbmQKCSAgcHVzaCB0aGUgcXVlcnkgdGhlbiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZC4gSG93ZXZlciwgdGhpcwoJICB3aWxsIG5vdCBiZSBkb25lIHRpbGwgYWZ0ZXIgcGVyb2xsLCBhbmQgdGhpcyB3aWxsIHRodXMgYmxvY2suCgkgIElmIHVwc3RyZWFtIHdhcyB3YWl0aW5nIG9uIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlIGJlZm9yZQoJICBzd2l0Y2hpbmcgdG8gUExBWUlORywgYSBkZWFkbG9jayB3b3VsZCBlbnN1ZS4KCSAgV2UgZml4IGl0IGJ5IHJlZnVzaW5nIHRoZSBxdWVyeSB3aGVuIGJ1ZmZlcmluZywgYXMgcGVyIFdpbSdzCgkgIHJlY29tbWVuZGF0aW9uIG9uIElSQy4KCjIwMTQtMDMtMjMgMTI6NTM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBtYWtlIG5ldGNsaWVudGNsb2NrIHRlc3QgZmFzdGVyIGFuZCBsZXNzIGZsYWt5CgoyMDE0LTAzLTIxIDEyOjE2OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IG5ldyBmbGFnIHR5cGVzIHRvIHBhc3MgbWFrZSBjaGVjawoKMjAxNC0wMy0xOSAwOTozMzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMgYW5kIG1heWJlIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2UgcmlnaHQgd2hlbiBlbmFibGluZyBidWZmZXJpbmcKCjIwMTQtMDMtMTkgMDk6MzI6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMgYW5kIG1heWJlIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2UgcmlnaHQgd2hlbiBlbmFibGluZyBidWZmZXJpbmcKCjIwMTQtMDMtMTggMTg6MTI6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogVXBkYXRlIHBvc2l0aW9ucyB3ZSdyZSBjaGVja2luZyBmb3IgYWZ0ZXIgYSBzdGF0ZSBpcyBsb3N0CgoyMDE0LTAzLTE4IDE4OjExOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXBkYXRlIHN0YXJ0IHRpbWUgd2hlbiB3ZSBsb3NlIG91ciBzdGF0ZQoJICBPdGhlcndpc2Ugd2UgcmVwb3J0IG5vdCB0aGUgY29ycmVjdCBwb3NpdGlvbiB3aGlsZSB0aGUgc3RhdGUgaXMgbG9zdC4KCjIwMTQtMDMtMTggMTY6NDc6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBjbGlwIHRoZSByZXBvcnRlZCBwb3NpdGlvbiBpbiBQQVVTRUQgdG8gYWZ0ZXIgdGhlIGxhc3QgYnVmZmVyIGVuZCB0aW1lc3RhbXAKCSAgT3RoZXJ3aXNlIHdlIGp1bXAgZm9yd2FyZCB3aGVuIHBhdXNpbmcsIGFuZCBnbyBiYWNrd2FyZHMgYSBiaXQgYWdhaW4KCSAgd2hlbiByZXN1bWluZyBwbGF5YmFjay4KCjIwMTQtMDMtMTcgMTA6MDU6MzEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRzIGZvciBHc3RUb2MgbG9vcAoKMjAxNC0wMy0xNyAxMDowNToxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydCBmb3IgZ3N0KmRldmljZSBzeW1ib2xzCgoyMDE0LTAzLTE3IDA5OjUxOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBVc2UgbG9jYWwgaW5jbHVkZXMgYW5kIHVzZSBnc3RfcHJpdmF0ZSBiZWZvcmUgYW55dGhpbmcKCSAgU2hvdWxkIGZpeCBidWlsZCBpc3N1ZXMgb24gQlNECgoyMDE0LTAzLTE2IDIwOjUwOjUzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnBlY3Q6IFByaW50IGRldmljZSBtb25pdG9yCgoyMDE0LTAzLTE2IDE1OjU2OjU5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2U6IEFkZCAia2xhc3MiIHRvIEdzdERldmljZXMKCjIwMTQtMDMtMTYgMTg6MDI6NTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJICBkZXZpY2Vtb25pdG9yOiBNYWtlIGNsYXNzZXMgaW50byBwdXJlIHN0cmluZ3MKCSAgSW5zdGVhZCBvZiBoYXZpbmcgc3RyaW5ncyAmIGZsYWdzLCBtYWtlIHRoZW0ganVzdCBzdHJpbmdzCgoyMDE0LTAzLTE3IDA2OjI5OjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBGaXggZXh0ZW5kZWQgbWVzc2FnZSBoYW5kbGluZyB3aXRoIGdzdF9idXNfcG9wX3RpbWVkX2ZpbHRlcmVkKCkKCSAgTWFrZSBzdXJlIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgZG9uJ3QgZ2V0IGFjY2lkZW50YWxseSBtYXRjaGVkCgkgIHdoZW4gbm90IGFza2VkIGZvciBpbiB0aGUgbWFzawoKMjAxNC0wMy0xNyAwNToyNDoxMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogQXZvaWQgcG9pbnRsZXNzIG9iamVjdCBsb2NrIGZvcndhcmRpbmcgbWVzc2FnZXMuCgkgIEV2ZXJ5IGluc3RhbmNlIG9mIGNhbGxpbmcgYmluX2RvX21lc3NhZ2VfZm9yd2FyZCgpIGZpcnN0IHRvb2sgdGhlCgkgIG9iamVjdCBsb2NrLCBzbyB0aGF0IGJpbl9kb19tZXNzYWdlX2ZvcndhcmQoKSBjb3VsZCBkcm9wIGl0IGFuZAoJICB0aGVuIHJlY2xhaW0uIEluc3RlYWQsIG9ubHkgdGFrZSB0aGUgb2JqZWN0IGxvY2sgYWZ0ZXJ3YXJkIHdoZXJlCgkgIG5lZWRlZC4KCjIwMTQtMDItMTkgMDI6Mjc6MzYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1kdXBvbmNoZWxsZTFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogV2hlbiBzZWVrIGZsdXNoZWQsIGltbWVkaWF0ZWx5IHNldCBlb3NwYWRzIHRvIDAKCSAgVGhpcyBwcmV2ZW50cyBzaXR1YXRpb25zIHdoZXJlIGEgZmlyc3QgYnJhbmNoIHdvdWxkIGdldCBzZWVrZWQgYW5kCgkgIHJlY2VpdmUgYSBidWZmZXIgYmVmb3JlIGFsbCBicmFuY2hlcyBnb3Qgc2Vla2VkLCBhbmQgdGh1cyBjb2xsZWN0ZWQKCSAgd291bGQgZ2V0IGNhbGxlZCBiYXNlZCBvbiBFT1MgZnJvbSB0aGUgcHJldmlvdXMgc2VnbWVudC4KCSAgQXMgYSBjb25zZXF1ZW5jZSwgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHNlZWtpbmcsIGRvbid0IGRlY3JlYXNlCgkgIHRoZSBlb3NwYWRzIG51bWJlciB3aGVuIGEgRkxVU0hfU1RPUCBpcyByZWNlaXZlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU3MQoKMjAxNC0wMy0xNiAxNzo0NzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVucmVmIHBlZXIgcGFkCgoyMDE0LTAyLTE2IDIwOjM1OjA5ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtZHVwb25jaGVsbGUxQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEZvcndhcmQgc2VlayBldmVudHMgdG8gdGhlIHBlZXIgZGlyZWN0bHkKCSAgVGFrZW4gZnJvbSB0aGUgYWRkZXIgc2VlayBoYW5kbGluZyBjb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDYxCgoyMDE0LTAxLTAyIDIyOjMwOjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBleHBhbmQgR3N0VG9jRW50cnkgd2l0aCBsb29wIGZpZWxkcwoJICBBZGQgbG9vcF90eXBlIGFuZCByZXBlYXRfY291bnQgZmllbGRzIHRvIEdzdFRvY0VudHJ5IHBsdXMgc2V0dGVycyBhbmQgZ2V0dGVycy4KCSAgVGhpcyBhbGxvd3MgdG8gcmVwcmVzZW50IGVkaXQtbGlzdHMgaW4gYSB0b2MgYXMgd2VsbCBhcyBsb29wcyBpbiBpbnN0cnVlbW50cyAod2F2LCB4aSkuCgkgIEFQSTogZ3N0X3RvY19lbnRyeV9zZXRfbG9vcAoJICBBUEk6IGdzdF90b2NfZW50cnlfZ2V0X2xvb3AKCjIwMTQtMDMtMTYgMTU6MTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiB1cGRhdGUgZm9yIG5ldyBtZXNzYWdlIEFQSQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDEzLTAxLTA4IDIxOjMwOjQ0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBBZGQgZGV2aWNlIG1vbml0b3IgYWdncmVnYXRvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDE0OjA4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgYW5kIGdzdF9idXNfdGltZWRfcG9wX2ZpbHRlcmVkCgoyMDE0LTAzLTE2IDE0OjA4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2UsIGJ1czogZG8gZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBzbGlnaHRseSBkaWZmZXJlbnRseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDE0OjA3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCBpbmRlbnRhdGlvbgoKMjAxMi0xMC0xNiAxMjoyNzowNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IEFkZCBHc3REZXZpY2VNb25pdG9yIGFuZCByZWxhdGVkCgkgIEFsc28gYWRkIEdzdERldmljZSBhbmQgR3N0RGV2aWNlTW9uaXRvckZhY3RvcnkKCSAgQW5kIGFkZCBjb2RlIHRvIHRoZSByZWdpc3RyeSB0byBzYXZlIHRoZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxMy0wOC0xNCAxNTo1NjoxMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBBZGQgR1NUX01FU1NBR0VfRVhURU5ERUQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxMTowNTo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGFjdHVhbGx5IHJldHVybiBkYXRhLnJldAoJICBUaGUgcmV0dXJuIHZhbHVlIGZyb20gZ3N0X3BhZF9mb3J3YXJkKCkgaXMgdGhlIGFnZ3JlZ2F0ZWQgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGNhbGxiYWNrIGFuZCB0aGUgY2FsbGJhY2sgcmV0dXJucyBGQUxTRSB0byBjb250aW51ZSBpdGVyYXRpbmcuCgoyMDE0LTAzLTE1IDE1OjU0OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZm9yd2FyZCByZXR1cm4gdmFsdWUgZnJvbSBnc3RfcGFkX2ZvcndhcmQKCSAgSW5zdGVhZCBvZiBpZ25vcmluZyB0aGUgcmV0dXJuIHZhbHVlIGFuZCBhbHdheXMgcmV0dXJuIFRSVUUgcGFzcyB0aGUgYWxyZWFkeSBhZ3JlZ2F0ZWQgcmVzdWx0IGJhY2suCgoyMDE0LTAzLTE1IDEzOjU3OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IG1ha2UtY2hlY2sgYnkgcnVubmluZyAnbWFrZSB1cGRhdGUtZXhwb3J0cycKCjIwMTQtMDMtMTQgMTM6MzI6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogZml4IGVvcyBjb3VudCBvbiB0ZXN0IGZvciBub3QtbGlua2VkIGNhc2UKCSAgRnJvbSB0aGUgdGVzdCBjYXNlOgoJICAvKiBUaGlzIHRlc3QgY3JlYXRlcyBhIG11bHRpcXVldWUgd2l0aCAyIHN0cmVhbXMuIE9uZSByZWNlaXZlcwoJICAqIGEgY29uc3RhbnQgZmxvdyBvZiBidWZmZXJzLCB0aGUgb3RoZXIgb25seSBnZXRzIG9uZSBidWZmZXIsIGFuZCB0aGVuCgkgICogbmV3LXNlZ21lbnQgZXZlbnRzLCBhbmQgcmV0dXJucyBub3QtbGlua2VkLiBUaGUgbXVsdGlxdWV1ZSBzaG91bGQgbm90IGZpbGwuCgkgICovCgkgIElmIG9uZSBvZiB0aGUgcXVldWVzIGdvZXMgRU9TIGFuZCB0aGUgb3RoZXIgcmV0dXJucyBOT1RfTElOS0VEIHRoZSBzdHJlYW0KCSAgY2FuIGJlIGNvbnNpZGVyZXJlZCBFT1MgYXMgYSBOT1RfTElOS0VEIG1lYW5zIHRoYXQgb25lIG9mIHRoZSBicmFuY2hlcyBoYXMgbm8KCSAgc2luayBkb3duc3RyZWFtIHRoYXQgd2lsbCBibG9jayB0aGUgRU9TIG1lc3NhZ2UgcG9zdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0wMSAyMzoxODo0NCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkYXB0IGdzdF9hZGFwdGVyX2NvcHkoKSBmb3IgYmluZGluZ3MKCSAgVGhpcyBpcyBkb25lIGJ5IGludHJvZHVjaW5nIGEgbmV3IGdzdF9hZGFwdGVyX2NvcHlfYnl0ZXMoKSBjYWxsIHRoYXQKCSAgcmV0dXJucyBhIEdCeXRlcyBzdHJ1Y3R1cmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU0NzYKCjIwMTQtMDMtMTQgMTg6NDA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IG11bHRpcXVldWUgZG9jcyBmb3IgbmV3IHRlbXBsYXRlIG5hbWVzIGZvb18lZCAtPiBmb29fJXUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjM1OAoKMjAxNC0wMy0xMSAyMTo1NTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MKCjIwMTQtMDMtMTEgMjE6NDQ6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgZ3N0X3BhZF9saW5rX2dldF9uYW1lKCkgYW5kIGZpeCBTaW5jZSBtYXJrZXIKCSAgSGFzIGFkZGVkIGJlbmVmaXQgdGhhdCBjb21waWxlciBtaWdodCB3YXJuIGlmIG1vcmUgdmFsdWVzCgkgIGFyZSBhZGRlZCB0byB0aGUgZW51bS4KCjIwMTQtMDMtMTEgMjE6NDY6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBkZWJ1ZyBoZWxwZXIgZm9yIEdzdFBhZExpbmtSZXR1cm4gbmFtZXMKCSAgQWRkIGEgaGVscGVyIGxpa2UgZ3N0X2Zsb3dfZ2V0X25hbWUoKSBmb3IgR3N0UGFkTGlua1JldHVybi4gVXNlIHRoaXMgaW4gY29yZS4KCSAgQVBJOiBnc3RfcGFkX2xpbmtfZ2V0X25hbWUoKQoKMjAxNC0wMy0xMSAyMToxMjoxNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogdXNlIHN0b3JlX3N0aWNreSBldmVudHMgYWRkIGFkZCBtb3JlIGxvZ2dpbmcKCSAgVXNlIHRoZSBwYWQgYXMgb2JqZWN0IGZvciBsb2dnaW5nIHRvIGdldCBtb3JlIGNvbnRleHQuIFVzZQoJICBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpIGluc3RlYWQgb2Ygc2VuZGluZyB0aGUgZXZlbnQuIFRoaXMgYXZvaWRzIGEgd2FybmluZwoJICBhcyBoZXJlIHRoZSBwYWQgaXMgbm90IHlldCBsaW5rZWQgYW5kIHdlIGFjdHVhbGx5IGRvbid0IHdhbnQgdG8gc2VuZCBhbnl3YXkuCgoyMDE0LTAzLTEwIDEwOjAwOjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaWYgYnVmZmVyaW5nIGlzIGRpc2FibGVkIHdoaWxlIGJ1ZmZlcmluZywgcG9zdCAxMDAlIG1lc3NhZ2UKCSAgQXZvaWRzIHN0YWxsIHdhaXRpbmcgZm9yIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlCgoyMDE0LTAzLTEwIDA5OjQ5OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJICBidWZmZXJpbmdfaXRlcmF0aW9uIHdhcyBuZXZlciB1c2VkCgoyMDE0LTAzLTEwIDA5OjQ5OjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IHF1ZXVlMjogcHJlc2VydmUgbGFzdCBmbG93IHJlc3VsdCB3aGVuIHB1c2hpbmcgZXZlbnRzCgkgIEF2b2lkcyBtaXN0YWtlbmx5IHJldHVybmluZyBfT0sgd2hlbiBkb3duc3RyZWFtIGlzIHN0aWxsCgkgIF9OT1RfTElOS0VEIG9uIHN1YnNlcXVlbnQgcmVjZWl2ZWQgcGFkIHB1c2hlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTEwIDA5OjQ5OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpZiBidWZmZXJpbmcgaXMgZGlzYWJsZWQgd2hpbGUgYnVmZmVyaW5nLCBwb3N0IDEwMCUgbWVzc2FnZQoJICBBdm9pZHMgc3RhbGwgd2FpdGluZyBmb3IgYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUKCjIwMTQtMDMtMTAgMDk6NDg6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvIG5vdCByZXNldCBsYXN0IHB1c2ggcmVzdWx0IHdoZW4gcHVzaGluZyBldmVudHMKCSAgVXNlIHRoZSBsYXN0IHJlc3VsdCBhcyBhIGRlZmF1bHQgd2hlbiBwdXNoaW5nIGEgaXRlbSBmcm9tIGEgc2luZ2xlIHF1ZXVlLAoJICBvdGhlcndpc2UgdGhlIHN0YXR1cyBnZXRzIHJlc2V0IHRvIF9PSyB3aGVuIHB1c2hpbmcgZXZlbnRzLgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG1pc3Rha2VubHkgYWN0aXZhdGluZyBhIG5vdC1saW5rZWQgc3RyZWFtCgkgIHRoYXQgaXMgYmVpbmcgaWdub3JlZCB1cHN0cmVhbSBhcyBpdCBpcyBub3QgYmVpbmcgdXNlZCAoYWRhcHRpdmUKCSAgc2NlbmFyaW9zKSwgaXQgd2lsbCBtYWtlIHRoZSBtdWx0aXF1ZXVlIHBvc3QgYSBidWZmZXJpbmcgbWVzc2FnZQoJICBvbiBhIHBhZCB0aGF0IHdvbid0IHJlY2VpdmUgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTA3IDIwOjQzOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcjogaW52ZXJ0IG1lYW5pbmcgb2YgR1NUX0JVRkZFUl9GTEFHX1RBR19NRU1PUlkKCSAgSXQncyBuaWNlciB0byBvbmx5IGhhdmUgaXQgc2V0IHdoZW4gc29tZXRoaW5nIG5vdGV3b3J0aHkKCSAgaGFwcGVuZWQgYW5kIG90aGVyd2lzZSB1bnNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTg2MgoKMjAxNC0wMy0wNiAyMjo1MTo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZ3N0X3BhZF9hZGRfcHJvYmUoKSByZXR1cm4gdmFsdWUgZG9jcwoJICBBbHNvIGZpeCBjb21tZW50IHR5cG9zIGFuZCBhZGQgbW9yZSBkZXRhaWwgaW4gdGhlIGxvZ3MuCgoyMDE0LTAzLTA2IDIwOjQwOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc2luaywgaWRlbnRpdHksIGZha2VzcmM6IGZpeCBkZWJ1ZyBwcmludGluZyBpZiBUQUdfTUVNT1JZIGJ1ZmZlciBmbGFnCgkgIFRoZSBJTl9DQVBTIGZsYWcgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCgoyMDE0LTAzLTA2IDEzOjAxOjQwICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiB1c2UgZ3N0X3BhZF9nZXRfcGVlciB0byBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgcGFkCgkgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBsb2NrIG9mIHRoZSBpbnRlcm5hbCBwYWQgaXMgaGVsZCB3aGlsZSByZWZlcmVuY2luZwoJICBpdCdzIHBlZXIgKD0gdGhlIHRhcmdldCBwYWQpLCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIHBlZXIgaXMgbm90CgkgIGdvaW5nIHRvIGJlIHVubGlua2VkL2Rlc3Ryb3llZCBpbiB0aGUgbWVhbnRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4MDkKCjIwMTQtMDMtMDYgMTI6NDA6MjMgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIHRhcmdldCBwYWQgd2hpbGUgdW5saW5raW5nIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4MDkKCjIwMTQtMDMtMDIgMDU6MDg6MjQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSBnY292IGludGVybWVkaWF0ZSBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NDc4CgoyMDE0LTAzLTAyIDE3OjU1OjQ1ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBkb2NzOiBGaXggdHlwb3MgYW5kIHJlbW92ZSB1bmtub3duIGFubm90YXRpb25zCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU1MTcKCjIwMTQtMDItMjggMjA6NTM6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBkb2NzOiB1c2UgdGhlIG5ldyBtYXJrZG93biBmb3Igb3JkZXJlZCBsaXN0LgoJICBUaGlzIHdhcyBwbGFpbiB0ZXh0IHRoYXQgaGFkIGFsbCBsaXN0IGl0ZW1zIG9uZSBhZnRlciB0aGUgb3RoZXIgKGluY2x1ZGluZyBhCgkgIHJlcGVhdGVkIG51bWJlcikuIE5vdyBpdCB3aWxsIGF0bGVhc3QgbG9vayBnb29kIHdoZW4gcHJvY2Vzc2VkIHdpdGggZ3RrLWRvYwoJICAxLjIwLgoKMjAxNC0wMi0yOCAwOTozNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmUxNjcyZSB0byBiY2IxNTE4CgoyMDE0LTAyLTI3IDIyOjI2OjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZG9jczogZml4IHByb2JsZW1zIGludHJvZHVjZWQgYnkgYzA2OGIyMjVmZWY1YTliZjAKCSAgLSBGaXggZmFpbGluZyBidWlsZAoJICAtIERyb3AgYWRkZWQgdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxNC0wMi0yNyAxODoyNzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgcmV0dXJuIHZhbHVlcyB0byBnX3JldHVybl9pZl9mYWlsCgkgIEZJeGVzIHByZXZpb3VzIGNvbW1pdC4KCjIwMTQtMDItMjcgMTg6MDY6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGRvY3M6IGNvbnZlcnQgdGhlIGV4YW1wbGVzIHRvIHVzZSBndGstZG9jIG1hcmt1cCwgaW5zdGVhZCBvZiBkb2Nib29rCgkgIFRoZSBndGstZG9jIG1hcmt1cCBpcyBsZXNzIGludHJ1c2l2ZSBhbmQgYmV0dGVyIGhhbmRsZWQgd2hlbiBjcmVhdGluZyBkb2NzIGZvcgoJICBsYW5ndWFnZSBiaW5kaW5ncy4gVGhlIHRpdGxlcyAod2hlcmUgdXNlZCkgd2hlcmUgbm90IGFkZGluZyBtdWNoLgoKMjAxNC0wMi0yNyAxNjo0NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBuZXcgQVBJIGRvIGRvY3MKCjIwMTQtMDItMjcgMTY6NDA6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogb25seSByZWxlYXNlIGJ1ZmZlcnMgd2l0aCB3cml0YWJsZSBtZW1vcnkKCSAgQ2hlY2sgaWYgdGhlIG1lbW9yeSBpcyB3cml0YWJsZSBiZWZvcmUgcmVsZWFzaW5nIHRoZSBidWZmZXIgaW50byB0aGUKCSAgcG9vbCBhZ2Fpbi4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcyBzY2VuYXJpby4KCjIwMTQtMDItMjcgMTY6Mzk6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGZ1bmN0aW9uIHRvIGNoZWNrIHdyaXRhYmlsaXR5IG9mIG1lbW9yeQoJICBDaGVjayBpZiBtZW1vcnkgaXMgd3JpdGFibGUgaW4gYSBidWZmZXIgYW5kIHRodXMgaXMgZXhjbHVzaXZlbHkgb3duZWQgYnkKCSAgdGhpcyBidWZmZXIuCgoyMDE0LTAyLTI3IDE1OjE0OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFVzZSBUQUdfTUVNT1JZIHRvIGNoZWNrIG1lbW9yeSBiZWZvcmUgcmVsZWFzaW5nCgkgIFRhZyBhbGxvY2F0ZWQgYnVmZmVycyB3aXRoIFRBR19NRU1PUlkuIFdoZW4gdGhleSBhcmUgcmVsZWFzZWQgbGF0ZXIsCgkgIG9ubHkgYWRkIHRoZW0gYmFjayB0byB0aGUgcG9vbCBpZiB0aGUgdGFnIGlzIHN0aWxsIHRoZXJlIGFuZCB0aGUgbWVtb3J5CgkgIGhhcyBub3QgYmVlbiBjaGFuZ2VkLCBvdGhlcndpc2UgdGhyb3cgdGhlIGJ1ZmZlciBhd2F5LgoJICBBZGQgdW5pdCB0ZXN0IHRvIGNoZWNrIHZhcmlvdXMgc2NlbmFyaW9zLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NDgxCgoyMDE0LTAyLTI3IDE0OjM1OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBhIG5ldyBmbGFnIHRvIHRyYWNrIG1lbW9yeSBjaGFuZ2VzCgkgIEFkZCBhIGZsYWcgdG8gY2hlY2sgaWYgdGhlIG1lbW9yeSBjaGFuZ2VkIGluIGEgYnVmZmVyLgoKMjAxNC0wMi0yNiAxNTozNjo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVtb3ZlIHdyb25nIGNvbW1lbnQKCSAgUmVmY291bnQgYW5kIHdyaXRhYmlsaXR5IGFyZSBub3QgcmVsYXRlZCBmb3IgbWVtb3J5IG9iamVjdHMuCgoyMDE0LTAyLTI1IDE3OjQ2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHJlZmFjdG9yIGZyZWVfYnVmZmVyCgkgIE1ha2UgYSBkb19mcmVlX2J1ZmZlciBtZXRob2QgdG8gYWxzbyBkZWNyZW1lbnRzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkCgkgIGJ1ZmZlcnMuIFN0b3Agd2lsbCBub3cgYmUgc3VjY2Vzc2Z1bCB3aGVuIGFsbCBidWZmZXJzIGFyZSBmcmVlZC4KCjIwMTQtMDItMjYgMjI6MTA6MjggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFhMDdkYTkgdG8gZmUxNjcyZQoKMjAxNC0wMi0yNiAyMDoyNDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFkZCBhIGxlZ2VuZCB0byBwaXBlbGluZSBkdW1wcwoJICBXZSB1c2UgYSBjb3VwbGUgb2Ygc3ltYm9scyB0byByZXByZXNlbnQgc3RhdGVzL2ZsYWdzLiBBZGQgYSBzaG9ydCBleHBsYW5hdGlvbiBmb3IgdGhlbS4KCjIwMTMtMDctMzEgMDk6MjY6MjYgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBQcmludCBpZiB0aGVyZSBpcyBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxODkKCjIwMTQtMDItMjUgMTY6MTE6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogVXNlIGdldF91aW50NjQoKSBpbiBnc3Rfc3RydWN0dXJlX2dldF9jbG9ja190aW1lKCkKCSAgSXRzIGNvZGUgaXMgaWRlbnRpY2FsLgoKMjAxNC0wMi0yNSAxNTo0MTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnZXR0ZXJzIGZvciBpbnQ2NCBhbmQgdWludDY0IHZhbHVlcwoKMjAxNC0wMi0xOSAyMToxNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvIG5vdCBzZW5kIGVvcyB3aGVuIHNlZWtpbmcgYWZ0ZXIgbGFzdCBidWZmZXIKCSAgSWYgcHVzaGluZyB0aGUgbGFzdCBidWZmZXIgdHJpZ2dlcnMgYSBzZWVrIGZyb20gZG93bnN0cmVhbSwgZG8gbm90CgkgIGdvIGludG8gRU9TIGlmIGEgbmV3IHNlZ21lbnQgd2FzIHJlcXVlc3RlZC4KCSAgQ29udGFpbnMgdW5pdCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ3NTcKCjIwMTQtMDItMjEgMDk6MDM6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgaW5zYW5pdHkgYW5kIHRoZSBvbGQgZ3N0LW9wZW5tYXgKCjIwMTQtMDItMjAgMTg6NDc6NDIgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBwYXRocyB0byBnc3QtZGV2dG9vbHMvdmFsaWRhdGUKCjIwMTQtMDItMjAgMTU6MzQ6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSWYgd2Ugb25seSBoYXZlIGEgc2luZ2xlIHBhZCwgZG9uJ3QgY29uc2lkZXIgYWxsIHBhZHMgbm90IGxpbmtlZCBhbmQgZ3JvdyB0aGUgcXVldWUgaW5kZWZpbml0ZWx5CgoyMDE0LTAyLTE5IDEwOjU3OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFsc28gdXNlIHRoZSBnbG9iIG9uIEdTVF9DSEVDS1Mgd2hlbiBmb3JjaW5nIHRvIHJ1biBicm9rZW4gdGVzdHMKCSAgR1NUX0NIRUNLUyBjYW4gYmUgc2ltcGx5ICJ0ZXN0KiIgdG8gcnVuIHJ1biBhbGwgdGVzdHMgKGluY2x1ZGluZyB0aG9zZSB0aGF0IGFyZQoJICBtYXJrZWQgYnJva2VuKS4gVXBkYXRlIHRoZSBzcGFyc2UgY29tbWVudHMgYSBiaXQgdG8gdGVsbCBob3cgdGhpcyB3b3Jrcy4KCjIwMTQtMDItMTggMTU6NDY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB0cnVuY2F0ZSB0aGUgdGVtcCBmaWxlIG9uIHNodXRkb3duCgkgIFdlIHdhbnQgdG8ga2VlcCB0aGUgZG93bmxvYWRlZCBmaWxlIHVudHJ1bmNhdGVkIHNvIHRoYXQgd2UgY2FuIHVzZSBpdAoJICBhZ2FpbiBsYXRlci4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQzNzMKCjIwMTQtMDItMTggMTQ6MjE6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggbWVyZ2luZyBvZiByYW5nZXMKCSAgTWFrZSBhIG1ldGhvZCB0byBnZXQgdGhlIHNlZWtpbmcgdGhyZXNob2xkLiBJZiBkYXRhIGlzIGZ1cnRoZXIgYXdheSBmcm9tCgkgIHRoaXMgdGhyZXNob2xkIHdlIHdhbnQgdG8gcGVyZm9ybSBhIHNlZWsgdXBzdHJlYW0uCgkgIFdoZW4gdGhlIGN1cnJlbnQgZG93bmxvYWRlZCByYW5nZSBjYW4gbWVyZ2Ugd2l0aCB0aGUgbmV4dCByYW5nZSwKCSAgYWN0dWFsbHkgaW5jbHVkZSB0aGUgZGF0YSBvZiB0aGUgbmV4dCByYW5nZSBpbnRvIHRoZSBjdXJyZW50IHJhbmdlCgkgIGluc3RlYWQgb2YgZGlzY2FyZGluZyBpdC4gQWxzbyBkZWNpZGUgaWYgd2Ugc2VlayB0byB0aGUgd3JpdGUgcG9zaXRpb24KCSAgb2YgdGhlIG1lcmdlZCByYW5nZSBvciBjb250aW51ZSByZWFkaW5nLgoKMjAxNC0wMi0xOCAxMTo0OTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW4gYXV0b21hdGljX2VvcyBtb2RlLCBkb24ndCBtb2RpZnkgdGhlIHNpemUKCSAgRG9uJ3Qgc2V0IHRoZSBzaXplIHRvIC0xIGluIGF1dG9tYXRpY19lb3MgbW9kZSAod2hpY2ggYWxzbyB1cGRhdGVzIHRoZQoJICBkdXJhdGlvbiB0byAtMSkuIFdlIG9ubHkgd2FudCBhdXRvbWF0aWNfZW9zIG1vZGUgaW5mbHVlbmNlIHRoZSBtYXhzaXplCgkgIGNhbGN1bGF0aW9ucyB3aXRob3V0IGFueSBzaWRlIGVmZmVjdHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NjQKCjIwMTQtMDItMTcgMTE6Mzc6MzAgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIHB3ZzogVXBkYXRlIHJhdyBwcm9wZXJ0aWVzCgkgIFVzaW5nIGluZm8gZnJvbSBnc3QtcGx1Z2lucy1iYXNlL2RvY3MvZGVzaWduIC4KCSAgRW5jb2RlZCBzdHJlYW1zIG1pZ2h0IG1ha2UgdXNlIG9mIHRoZSByYXcgcHJvcGVydGllcywgc28gbGlzdCB0aGVtIGFsbCB1bmRlciBmb28vKiAuCgkgIEZvciBmb28vcmF3LCBvbmx5IG5vdGUgd2hpY2ggb2YgdGhlc2UgcHJvcGVydGllcyBhcmUgbWFuZGF0b3J5LgoJICBJIGRpZG4ndCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHJhdyBmb3JtYXRzIHlldC4gVGhvc2UgbWlnaHQgc3RpbGwgYmUgb3V0LW9mLWRhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQxODcKCjIwMTQtMDItMTcgMTc6Mjg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiByZW1vdmUgZGVhZCBodHRwIGxpbmtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NjEKCjIwMTQtMDItMTUgMjI6MzQ6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGFkZCB0aGUgYm94ZWQgdHlwZXMgdG8gdGhlIC50eXBlcy5pbgoJICBUaGlzIG1ha2VzIHRoZW0gc2hvdyB1cCBpbiB0aGUgb2JqZWN0IGhpZXJhcmNoeS4KCjIwMTQtMDItMTUgMjE6MjI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZG9jczogZ3RrZG9jIGlzIG5vdCBnb29kIGF0IHBhcnNpbmcgaW5saW5lIGZ1bmN0aW9ucyBpbiBoZWFkZXJzCgkgIE1hcmsgdGhlIGlubGluZSBmdW5jdGlvbiwgc28gdGhhdCBndGtkb2Mgc2tpcHMgdGhlbS4gQXZvaWRzIHNvbWUgd2FybmluZ3MgYWJvdXQKCSAgdW5wYXJzYWJsZSBkZWNsYXJhdGlvbnMuCgoyMDE0LTAyLTEzIDEyOjA3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzcmM6IEFkZCBnc3RfYmFzZV9zcmNfc2V0X2F1dG9tYXRpY19lb3MoKSBBUEkKCSAgVGhpcyBkZWZhdWx0cyB0byBUUlVFIGFuZCBpZiBpdCBpcyBzZXQgdG8gRkFMU0UgaXQgaXMgdGhlIHN1YmNsYXNzZXMKCSAgcmVzcG9uc2liaWxpdHkgdG8gcmV0dXJuIEdTVF9GTE9XX0VPUyBmcm9tIHRoZSBjcmVhdGUoKSB2bWV0aG9kIG9uY2UKCSAgdGhlIHN0cmVhbSBpcyBkb25lLgoKMjAxNC0wMi0xMSAxNjozMDozMSArMDAwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IEZpeCBsb2NhdGlvbiBvZiBwbHVnaW5zIGFuZCByZWdpc3RyeSBpbiBob21lIGRpcmVjdG9yaWVzCgkgIEZpeGVzIG91dCBvZiBkYXRlIGRvY3VtZW50YXRpb24gbGVmdCBvdmVyIHNpbmNlIDAuMTAuICBJbiAxLjAgcGx1Z2lucyBhcmUKCSAgc3RvcmVkIGluICRYREdfREFUQV9IT01FIGFuZCB0aGUgcmVnaXN0cnkgaW4gJFhER19DQUNIRV9IT01FIGNvbmZvcm1hbnQKCSAgd2l0aCB0aGUgWERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb25bMV0uCgkgIFsxXTogaHR0cDovL3N0YW5kYXJkcy5mcmVlZGVza3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRlc3QuaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MTMyCgoyMDE0LTAyLTExIDEzOjI3OjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGVycm9yOiBHU1RfUkVTT1VSQ0VfRVJST1JfTk9UX0FVVEhPUklaRUQgd2lsbCBiZSBhdmFpbGFibGUgc2luY2UgMS4yLjQKCjIwMTQtMDItMTEgMTM6MDk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGVycm9yOiBBZGQgUkVTT1VSQ0VfTk9UX0FVVEhPUklaRUQgZXJyb3IKCSAgVGhpcyBhbGxvd3MgdG8gZGlzdGluZ3Vpc2ggbm9ybWFsIHJlYWQgZmFpbHVyZXMgZnJvbSByZWFkIGZhaWx1cmVzCgkgIHdoZXJlIHdlIG1pc3MgYXV0aG9yaXphdGlvbi4KCjIwMTQtMDItMTAgMTc6MDk6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IHlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDA0NQoKMjAxNC0wMi0xMCAwODowMDozNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHNlcW51bSBmaWxlIGZvciBkaXN0cmlidXRpb24KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzk5NwoKMjAxNC0wMi0wOSAxNjo1Mzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBkb2N1bWVudCBHU1RfVEFHXypFTkNPRElORyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTg1MAoKMjAxNC0wMi0wOSAxNjo0Nzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGVuYWJsZSBwYXJhbGxlbCBidWlsZCBvZiBzdWJkaXJlY3RvcmllcwoJICBXZSBjYW4gYnVpbGQgZ3RrIGRvY3MsIEFETSwgUFdHIGFuZCBGQVEgaW4gcGFyYWxsZWwuCgoyMDE0LTAyLTA5IDE2OjM4OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGFkZCBzdXBwb3J0IGZvciBibGFja2xpc3RpbmcgY2hlY2tzIHZpYSBHU1RfQ0hFQ0tTX0lHTk9SRQoKMjAxNC0wMi0wOSAwMDoyNToxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBiYXNlcGFyc2UgdGVzdAoJICBPciByYXRoZXIgbWFrZSBpdCBub3Qgc2hvdyB1cCBhbnkgbW9yZSBieSBtb3ZpbmcKCSAgaXQgZnJvbSAnZGVmaW5pdGVseSBsb3N0JyBpbnRvICdwb3NzaWJseSBsb3N0Jy4KCjIwMTQtMDItMDggMjM6Mzk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIHN5c3RlbWNsb2NrIHRlc3QKCjIwMTQtMDItMDggMTY6NDI6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogTWFrZSBjbGFuZyBoYXBweSB3aXRoIG91ciBnX3ZwcmludGYoKSB3cmFwcGVyCgoyMDE0LTAyLTA2IDE0OjE4OjMxICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICB3aW5kb3dzOiBNYWtlIEdTdHJlYW1lciBpbnN0YWxsYXRpb24gcmVsb2NhdGFibGUKCSAgVXNlIHRoZSB0ZWNobmlxdWUgdGhhdCBpcyBub3cgZG9uZSBpbiBHVEsrIHNvIHRoYXQgdGhlIHBsdWdpbnMgZG8gbm90IGhhdmUKCSAgdG8gYmUgaW5zdGFsbGVkIGluIGM6XGdzdHJlYW1lclxsaWJcPGRlYnVnPlxnc3RyZWFtZXItJChHU1RBcGlWZXJzaW9uKSwKCSAgYnV0IGNhbiBiZSBpbnN0YWxsZWQgaW4KCSAgPHBhcmVudF9mb2xkZXJfb2ZfZ3N0cmVhbWVyX21haW5fZGxsPlxsaWJcPGRlYnVnPlxnc3RyZWFtZXItJChHU1RBcGlWZXJzaW9uKSwKCSAgb3IgYXMgcGVyIGdfd2luMzJfZ2V0X3BhY2thZ2VfaW5zdGFsbGF0aW9uX2RpcmVjdG9yeV9vZl9tb2R1bGUoKSBhbGxvd3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTUKCjIwMTMtMTAtMzAgMTc6MDI6MzUgLTA1MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBnc3Q6IGNsZWFyIGZsb2F0aW5nIHJlZmVyZW5jZXMgZm9yIEdzdFRhc2ssIEdzdFRhc2tQb29sIGFuZCBHc3RDb2xsZWN0UGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzQyCgoyMDEzLTEwLTMwIDE3OjAyOjAyIC0wNTAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiBnc3RfcGFkX25ld19mcm9tXypfdGVtcGxhdGUgYW5kIGdzdF9idWZmZXJfcG9vbF9uZXcgY29uc3RydWN0b3JzIHJldHVybiBmbG9hdGluZyByZWZlcmVuY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNDIKCjIwMTQtMDItMDUgMTA6MTE6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIGNoZWNrOiBSZW1vdmUgYSBtaW5vciBsZWFrIGluIHVuaXQgdGVzdAoJICBNYWtlcyB2YWxncmluZCBoYXBweQoKMjAxNC0wMi0wNCAyMjoyMzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBidWlsZCBieSB1c2luZyB0aGUgY29ycmVjdCBDIGZpbGUgbmFtZQoKMjAxNC0wMi0wNCAyMTozNjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IENsZWFuIHVwIGNvZGUgYSBiaXQgdG8gYmUgc3VpdGFibGUgZm9yIHRoZSBkb2NzCgoyMDE0LTAxLTAzIDA3OjI1OjM3IC0wODAwICBUb2RkIEFndWxuaWNrIDx0b2RkQGFndWxuaWNrLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IFJlcGxhY2UgbWFudWFsJ3MgZWZmZWN0c3dpdGNoLmMgd2l0aCBuZXdlciB0ZXN0LWVmZmVjdC1zd2l0Y2guYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMTAwCgoyMDE0LTAxLTI5IDE0OjM5OjE5ICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCBjYXBzIGZlYXR1cmVzIHVuaXQgdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMi0wNCAxODo0MjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFdoZW4gZ2V0dGluZyBjYXBzZmVhdHVyZXMgYW5kIG5vbmUgYXJlIHRoZXJlLCBzdG9yZSBzeXNtZW0gY2Fwc2ZlYXR1cmVzCgkgIC4uLiBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHJlZmVyZW5jZSB0byBhIGdsb2JhbCBpbnN0YW5jZS4gVGhlIGNhbGxlciBtaWdodAoJICB3YW50IHRvIGNoYW5nZSB0aGUgZ2xvYmFsIGluc3RhbmNlIG90aGVyd2lzZSwgd2hpY2ggY2F1c2VzIGZ1bm55IGVmZmVjdHMgbGlrZQoJICBhbGwgZ2xvYmFsIGluc3RhbmNlcyBiZWluZyBjaGFuZ2VkIGFuZCBhdCB0aGUgc2FtZSB0aW1lIG5vdGhpbmcgaW4gdGhlIGNhcHMKCSAgYmVpbmcgY2hhbmdlZC4KCSAgQXMgdGhlIGNhcHMgbWlnaHQgYmUgaW1tdXRhYmxlIHdoaWxlIHdlIGRvIHRoaXMgd2UgaGF2ZSB0byBkbyBzb21lIG1hZ2ljCgkgIHdpdGggYXRvbWljIG9wZXJhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDItMDQgMTg6MDM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBEb24ndCBnZXQgdXMgc3lzbWVtIGNhcHNmZWF0dXJlcyBpZiB3ZSBqdXN0IGNoZWNrIGZvciBmaXhlZCBjYXBzCgoyMDE0LTAyLTA0IDE3OjQ4OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBzdGF0aWMgQU5ZL0VNUFRZIGNhcHNmZWF0dXJlcyBhcmUgbmV2ZXIgbXV0YWJsZQoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMS0zMSAwOToxNDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgZG9jczogZml4IG1vcmUgZ3RrLWRvYyB3YXJuaW5ncwoKMjAxNC0wMS0zMSAwODozNTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkgIGRvY3M6IHVuaGlkZSBkb2NzIGZvciBhbGxvY2F0b3IKCSAgVW5oaW5kZSB0aGUgY2xhc3MgZG9jcy4gVGVjaCBndGstZG9jIGFib3V0IEdTVF9FWFBPUlRTLgoKMjAxNC0wMS0zMSAwODowODozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG1vcmUgdGVzdHMgYW5kIHNtYWxsIGRvYyBmaXhlcwoKMjAxNC0wMS0zMCAyMToyNDoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHRvb2xzOiBTdXBwb3J0IG5vbi1BU0NJSSB0YWdzCgkgIEJ5IGNhbGxpbmcgc2V0bG9jYWxlKCkgdG8gZ2V0IHVzIG11bHRpLWJ5dGUvVVRGLTggc3VwcG9ydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzE2NAoKMjAxNC0wMS0zMCAwMzoyMjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiByZXNwZWN0IHRoZSAnbmVnb3RpYXRpb24tbW9kZScgcHJvcGVydHkKCSAgSWYgdGhlIHNlZ21lbnQgZXZlbnQgaXMgYWxsb3dlZCB0byBiZSBwdXNoZWQgdG8gYWxsIHBhZHMgaXQKCSAgd2lsbCBsZWFkIHRvIGFuIGFzc2VydGlvbiBvZiAnc3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nOgoJICBzZWdtZW50IHJlY2VpdmVkIGJlZm9yZSBjYXBzJyBpbiBjYXNlIHRoZSBwYWQtbmVnb3RpYXRpb24tbW9kZQoJICBpcyBzZXQgdG8gJ2FjdGl2ZScgb3IgJ25vbmUnLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgbWFraW5nIGFsbCBzdGlja3kgZXZlbnRzIGZvbGxvdyB0aGUKCSAgcHJvcGVydHkgbGlrZSB0aGUgY2FwcyBldmVudCB0byBwcmV2ZW50IG1pc29yZGVyaW5nIHdhcm5pbmdzLgoJICBXaGVuIGEgbmV3IHBhZCBpcyBhY3RpdmF0ZWQgdGhlIGN1cnJlbnQgc3RpY2t5IGV2ZW50cyBvbiB0aGUKCSAgc2lua3BhZCBhcmUgZm9yd2FyZGVkIHRvIGl0IGluIHRoZSBwcm9wZXIgb3JkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyNjYKCjIwMTQtMDEtMzAgMTI6NTQ6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgcG9vbHN0cmVzczogcHJpbnQgc3BlZWR1cAoKMjAxNC0wMS0zMCAxMjo0MjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG1pc2MgY2xlYW51cHMKCSAgUmV2aWV3IHRoZSBkb2N1bWVudGF0aW9uLCBjb21tZW50cyBhbmQgbG9nZ2luZy4gU2V0IHRoZSBpbml0aWFsIHNpemUgdG8gMTYgYXMKCSAgdGhlIHNpemUgaXMgcm91bmRlZCB1cCB0byB0aGUgbmV4dCBwb3dlciBvZiB0d28gYW55d2F5LgoKMjAxNC0wMS0zMCAwODoxMToxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIGEgbmV3IHRlc3RzdWl0ZSBvciB0aGUgcG9vbAoJICBTdGFydCB3aXRoIHNvbWUgYmFzaWMgdGVzdHMuCgoyMDE0LTAxLTMwIDEyOjI2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGF2b2lkIGV4Y2Vzc2l2ZSBHc3RQb2xsIGFjdGl2aXR5CgkgIEtlZXAgYW4gZXh0cmEgd3JpdGUgcmVmIG9uIHRoZSBjb250cm9sIHNvY2tldC4gVGhpcyBlbnN1cmVzIHRoYXQgd2UKCSAgYXZvaWQgYSByZWFkL3dyaXRlIG9uIHRoZSBzb2NrZXQgd2hlbiBnb2luZyBmcm9tIG5vbi1lbXB0eS0+ZW1wdHktPm5vdC1lbXB0eS4KCSAgV2UgcmVtb3ZlIHRoZSB3cml0ZSByZWYgb25seSB3aGVuIHdlIGFjdHVhbGx5IGFyZSBlbXB0eSBhbmQgd2UgbmVlZCB0bwoJICB3YWl0IGZvciBmbHVzaGluZyBvciBhIG5ldyBidWZmZXIuCgkgIFRoaXMgbWFrZXMgdGhlIGJ1ZmZlcnBvb2wgYmVuY2htYXJrIGFib3V0IDMwJSBmYXN0ZXIgdGhhbiB0aGUgcHVyZQoJICBtYWxsb2MgaW1wbGVtZW50YXRpb24uCgoyMDE0LTAxLTMwIDEyOjI1OjMzICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGltcHJvdmUgZGVidWcKCSAgQWRkIG9iamVjdCBwb2ludGVyIGluIGRlYnVnIGxpbmVzLgoKMjAxNC0wMS0zMCAxMDo0MzozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDQ4YmVkMyB0byAxYTA3ZGE5CgoyMDE0LTAxLTI5IDIyOjQ2OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogZW1waGFzaXplIHRoYXQgdGhlIGxhdGVyIGNoYXB0ZXJzIGFyZSBkZXNpZ24gZHJhZnQgaWRlYXMKCjIwMTQtMDEtMjkgMjA6MjA6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBhZGQgZm9ybWF0IHNwZWNpZmljIGluZm9ybWF0aW9uCgoyMDE0LTAxLTI5IDE4OjIxOjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHBvb2xzdHJlc3M6IGNvZGUgY2xlYW51cHMKCSAgQWRkIGEgZmV3IGNvbW1lbnRzLiBUZWxsIGluIHRoZSByZXN1bHRzLCB3aGljaCBudW1iZXIgYXJlIGZyb20gd2hpY2ggdGVzdC4KCjIwMTQtMDEtMjkgMTM6MjA6MTkgKzAxMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogdXNlIHByaW50IGFzIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMjkKCjIwMTQtMDEtMjggMTE6NTg6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0czogY2Fwc2ZpbHRlcjogYWRkIHRlc3QgZm9yIHBlbmRpbmdfZXZlbnRzIHB1c2hpbmcKCSAgbWFrZSBzdXJlIHRoYXQgcGVuZGluZyBldmVudHMgYXJlIHB1c2hlZCB3aGVuIGNhcHMgYXJlIGFscmVhZHkKCSAgc2V0IHdoZW4gYSBidWZmZXIgaXMgcmVjZWl2ZWQKCjIwMTQtMDEtMjggMTE6MTI6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvIG5vdCBmb3JnZXQgdG8gcHVzaCBwZW5kaW5nIGV2ZW50cwoJICBQdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBidWZmZXJzIGlmIGNhcHMgaXMgYWxyZWFkeQoJICBzZXQKCjIwMTQtMDEtMjQgMTk6MTk6MDggKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvIG5vdCByZWR1Y2Ugc2luZ2xlIHF1ZXVlIGJlbG93IGN1cnJlbnQgbGV2ZWwKCSAgV2hlbiB0aGUgc2luZ2xlIHF1ZXVlIHNpemUgd2FzIGp1c3QgYnVtcGVkIGJ5IDEgdG8gYWxsb3cgbW9yZSBidWZmZXJzIHRvCgkgIGJlIGFkZGVkLCB0aGUgYnVmZmVycyBsaW1pdCBjb3VsZCBiZSByZWR1Y2VkIHRvIHRoZSBjdXJyZW50IGxldmVsIHdoZW4KCSAgc2V0dGluZyB0aGUgbWF4LXNpemUtYnVmZmVycyBwcm9wZXJ0eS4gVGhpcyB3b3VsZCByZXN1bHQgaW4gYSBzdGFsbAoJICBzaW5jZSB0aGUgcXVldWUgd291bGQgbm90IGdyb3cgYW55bW9yZSBhdCB0aGlzIHBvaW50LgoJICBQcmV2ZW50IHRoaXMgYnkgbm90IHJlZHVjaW5nIGEgc2luZ2xlIHF1ZXVlIHNpemUgYmVsb3cgdGhlIGN1cnJlbnQKCSAgbnVtYmVyIG9mIGJ1ZmZlcnMgKyAxLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNTk3CgoyMDE0LTAxLTI0IDEzOjIwOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3QgZm9yZ2V0IHRvIGNsZWFyIHRoZSBmb3JjZWRfZW9zIGZsYWcKCSAgb3RoZXJ3aXNlIGl0IHdpbGwgYWx3YXlzIHVzZSB0aGUgc2VxbnVtIG9mIHRoZSBldmVudAoJICBzZW50IGJ5IHRoZSBhcHBsaWNhdGlvbgoKMjAxNC0wMS0yMyAxNTo1Mjo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXNlcnZlIHNlcW51bSBvZiBlb3MgZXZlbnRzIHNlbnQgYnkgdGhlIHVzZXIKCSAgU3RvcmUgdGhlIGVvcyBldmVudCBzZXFudW0gYW5kIHVzZSBpdCB3aGVuIGNyZWF0aW5nIHRoZQoJICBuZXcgZW9zIGV2ZW50IHRvIGJlIHB1c2hlZCBkb3duc3RyZWFtLiBUbyBrbm93IGlmIHRoZSBlb3MKCSAgd2FzIGNhdXNlZCBieSB0aGUgZW9zIGV2ZW50cyByZWNlaXZlZCBvbiBzZW5kX2V2ZW50LCBhCgkgICdmb3JjZWRfZW9zJyBmbGFnIGlzIHVzZWQgdG8gdXNlIHRoZSBjb3JyZWN0IHNlcW51bSBvbgoJICB0aGUgZXZlbnQgcHVzaGVkIGRvd25zdHJlYW0uCgkgIFVzZWZ1bCBpZiB0aGUgYXBwbGljYXRpb24gd2FudHMgdG8gY2hlY2sgaWYgdGhlIEVPUyBtZXNzYWdlCgkgIHdhcyBnZW5lcmF0ZWQgZnJvbSBpdHMgb3duIHB1c2hlZCBFT1Mgb3IgZnJvbSBhbm90aGVyIHNvdXJjZQoJICAoc3RyZWFtIHJlYWxseSBmaW5pc2hlZCkuCgkgIEFsc28gYWRkcyBhIHRlc3QgZm9yIHRoaXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjc5MQoKMjAxNC0wMS0yMyAxNTozNDoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlcW51bXMudHh0OgoJICBkb2NzOiBkZXNpZ246IGFkZCBwYXJ0LXNlcW51bXMKCSAgSG9wZWZ1bGx5IGNsYXJpZmllcyBob3cgc2VxbnVtcyBzaG91bGQgYmUgdXNlZCBhbmQgY29waWVkIGZyb20KCSAgZXZlbnRzIHRvIGV2ZW50cy9tZXNzYWdlcyB3aGVuIHRob3NlIGFyZSBoYW5kbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNzkxCgoyMDE0LTAxLTI0IDA5OjI4OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEJyZWFrIHRoZSBsb29wIGltbWVkaWF0ZWx5IGlmIHdlIGZvdW5kIGFuIGVtcHR5IHF1ZXVlCgkgIE5vIG5lZWQgdG8gY29udGludWUgbG9va2luZyBhdCBhbGwgdGhlIG90aGVycwoKMjAxNC0wMS0yMyAxNTo0NzoyMyArMDEwMCAgUGVyIHggSm9oYW5zc29uIDxwZXJ4am9oQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFsbG93IGdyb3dpbmcgYSBxdWV1ZSBpZiBhbGwgb3RoZXIgcXVldWVzIGFyZSBub3QgbGlua2VkCgkgIEluIHRoZSBjYXNlIHdoZXJlIG9uZSBzaW5nbGVxdWV1ZSBpcyBmdWxsIGFuZCBhbGwgb3RoZXIgYXJlIG5vdCBsaW5rZWQsIHRoZQoJICBncm93aW5nIG9mIHRoZSBmdWxsIHF1ZXVlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5LiBUaGUgcmVzdWx0IGRlcGVuZHMgb24gaWYKCSAgdGhlIGZ1bGwgcXVldWUgaXMgbGFzdCBpbiB0aGUgcXVldWUgbGlzdCBvciBub3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4OTEKCjIwMTQtMDEtMjIgMTE6MTA6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWlub3IgY29kZSBjbGVhbnVwCgkgICFjaGVja19zdGlja3koKT09R1NUX0ZMT1dfT0sgaXMgYSBiaXQgY29uZnVzaW5nLCBjb21wYXJlZCB0bwoJICBjaGVja19zdGlja3koKSE9R1NUX0ZMT1dfT0suCgoyMDE0LTAxLTIwIDE1OjI2OjU0ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBBZGRpdGlvbmFsIHRlc3RzIGZvciBwYXJzZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xOCAxNDo0ODozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogUHJvcGVybHkgY29weSBtdXRleGVzIGFyb3VuZCB3aGVuIGNyZWF0aW5nIGEgY29weSBvZiBhIGZpbHRlciBpdGVyYXRvcgoKMjAxNC0wMS0xOCAxNDozNDo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIHVuaXQgdGVzdHMgZm9yIGZpbHRlcmluZywgcmVjdXJzaXZlIGZpbHRlcmluZyBhbmQgbG9ja2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTM4CgoyMDE0LTAxLTE4IDE0OjQzOjIwICswMTAwICBTdGV3YXJ0IEJyb2RpZSA8c3Rld2FydEBlaC5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IFByZXNlcnZlIHRoZSBtYXN0ZXIgbG9jayB3aGVuIGNyZWF0aW5nIHJlY3Vyc2l2ZSBpdGVyYXRvciBmaWx0ZXJzIHdpdGggdGhlIHNhbWUgbG9jawoJICBUaGlzIHdheSB3ZSBtYWtlIHN1cmUgdGhhdCBhKSB0aGUgbG9jayBpcyBhbHdheXMgdGFrZW4gd2hlbiBjaGVja2luZwoJICB0aGUgY29va2llIGFuZCBjYWxsaW5nIHRoZSBpdGVyYXRvcidzIG5leHQgZnVuY3Rpb25zIGFuZCBiKSBpdCBpcwoJICBub3QgdGFrZW4gd2hpbGUgY2FsbGluZyBhbnkgb2YgdGhlIGl0ZXJhdG9yIGZpbHRlciBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTExMzgKCjIwMTQtMDEtMTcgMjI6NTM6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBzdGlja3kgZXZlbnQgbGVhayBhZnRlciBzdGlja3lfZXZlbnRzX2ZvcmVhY2gKCSAgZXZlbnRzX2ZvcmVhY2ggYWRkcyBhbiBleHRyYSByZWYgd2hlbiBnaXZpbmcgdGhlIGV2ZW50IHRvIHRoZQoJICB1c2VyIGZ1bmN0aW9uLiBJbiBjYXNlIGl0IHdhcyB1bnJlZmVkIGJ5IHRoZSB1c2VyLCB0aGlzIGV4dHJhIHJlZgoJICBkaXNhcHBlYXJlZCwgYnV0IGV2ZW50c19mb3JlYWNoIHN0aWxsIHNob3VsZCB1bnJlZiBhZ2FpbiB0bwoJICBsb3NlIGl0cyBvd24gcmVmIGJlZm9yZSByZW1vdmluZyB0aGUgZXZlbnQgZnJvbSB0aGUgYXJyYXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI0NjcKCjIwMTQtMDEtMTYgMjA6MTE6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgc29tZSBlbnYtdmFyIGNoZWNrcyBmcm9tIGdzdCB0byBnc3RpbmZvIGFzIHdlbGwKCSAgV2Ugd2VyZSBkb2luZyBzb21lIGxvZyByZWxhdGVkIGluaXRpYWxpc2F0aW9uIGluIGdzdC5jIGFmdGVyIGNhbGxpbmcKCSAgX3ByaXZfZ3N0X2RlYnVnX2luaXQoKS4gSnVzdCBtb3ZlIGl0IHRoZXJlIGZvciBjb25zaXN0ZW5jeS4KCjIwMTQtMDEtMTYgMTg6MTY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogT25seSBzZXQgY2FwcyBvbiB0aGUgc3JjcGFkIGlmIGl0J3MgYWN0aXZhdGVkIGluIHB1c2ggbW9kZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMjg5CgoyMDE0LTAxLTE2IDEyOjI4OjQ3ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogU29tZSBtaW5vciBmaXhlcwoJICBGaXggZGVzdHJ1Y3RvciBzZWdmYXVsdGluZwoJICBFeHBlY3QgMCBncmFtbWFyLWFtYmlndWl0aWVzCgkgIEZpeCBvcmRlciBvZiBiaW4tcHJvcGVydGllcyBhc3NpZ25tZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTUgMTk6Mjg6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92aW5nIGR1cGxpY2F0ZSBmaWVsZCBwb3NpdGlvbgoJICBJdCBpcyBhbHJlYWR5IHN0b3JlZCBpbnNpZGUgdGhlIEdzdFNlZ21lbnQgc3RydWN0IGFuZAoJICB3YXMgb25seSBkdXBsaWNhdGluZyBpbmZvcm1hdGlvbi4gQWxzbyByZW1vdmVkIHNvbWUKCSAgd2VpcmQgcG9zaXRvbiBpZi9lbHNlIHRoYXQgd291bGQgcG9zc2libHkgY2hhbmdlIHRoZQoJICBzZWdtZW50IHRoYXQgd2FzIGdvaW5nIHRvIGJlIHB1c2hlZCBkb3duc3RyZWFtCgoyMDE0LTAxLTE1IDAwOjEyOjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwcmV2ZW50IGJ1ZmZlcmluZyBmb3JldmVyIHdpdGggcGxheWJpbgoJICBXaGVuIHByZXJvbGxpbmcvYnVmZmVyaW5nLCBtdWx0aXF1ZXVlIGhhcyBpdHMgYnVmZmVycyBsaW1pdCBzZXQKCSAgdG8gMCwgdGhpcyBtZWFucyBpdCBjYW4gdGFrZSBhbiBpbmZpbml0ZSBhbW91bnQgb2YgYnVmZmVycy4KCSAgV2hlbiBwcmVyb2xsaW5nL2J1ZmZlcmluZyBmaW5pc2hlcywgaXRzIGxpbWl0IGlzIHNldCBiYWNrIHRvIDUsIGJ1dAoJICBvbmx5IGlmIHRoZSBjdXJyZW50IGxldmVsIGlzIGxvd2VyIHRoYW4gNS4gSXQgc2hvdWxkIChhbG1vc3QpIG5ldmVyIGJlCgkgIGFuZCB0aGlzIHdpbGwgY2F1c2UgcHJlcm9sbGluZy9idWZmZXJpbmcgdG8gbmVlZCB0byB3YWl0IHRvIHJlYWNoIHRoZQoJICBoYXJkIGJ5dGVzIGFuZCB0aW1lIGxpbWl0cywgd2hpY2ggYXJlIG11Y2ggaGlnaGVyLgoJICBUaGlzIGNhbiBsZWFkIHRvIGEgdmVyeSBsb25nIHN0YXJ0dXAgdGltZS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzCgkgIGJ5IHNldHRpbmcgdGhlIHNpbmdsZSBxdWV1ZXMgdG8gdGhlIG1heChjdXJyZW50LCBuZXdfdmFsdWUpIGluc3RlYWQKCSAgb2Ygc2ltcGx5IGlnbm9yaW5nIHRoZSBuZXcgdmFsdWUgYW5kIGxldHRpbmcgaXQgYXMgaW5maW5pdGUoMCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjU5NwoKMjAxNC0wMS0xNSAxMToxMjowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGdzdF9zZWdtZW50X29mZnNldF9ydW5uaW5nX3RpbWUoKSB3aWxsIGJlIGF2YWlsYWJsZSBpbiAxLjIuMwoKMjAxNC0wMS0xNCAxNjoxNToyMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBVcGRhdGUgc2VjdGlvbnMgd2l0aCB0aGUgbmV3IHJvdW5kaW5nIG1hY3JvcwoKMjAxNC0wMS0xNCAxNjoxNTowMiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWw6IEFkZCBHU1RfUk9VTkRfVVBfTiBhbmQgR1NUX1JPVU5EX0RPV05fTgoJICBUaGVzZSBhcmUgZ2VuZXJpYyByb3VuZGluZyBtYWNybyB0aGF0IHdvcmtzIGZvciBhbnkgcG93ZXIgb2YgdHdvLgoKMjAxNC0wMS0xNCAxNjo0NzozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IEFkZCB1bml0IHRlc3QgZm9yIHJlcXVlc3RpbmcgcGFkIG5hbWVzCgoyMDE0LTAxLTE0IDE2OjQ1OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBNYWtlIHN1cmUgdG8gZ2l2ZSBwYWRzIHRoZSBuYW1lIHRoYXQgd2FzIHJlcXVlc3RlZAoJICBBbHNvIGNoZWNrIGZvciB1bmlxdWVuZXNzIGFuZCBtYWtlIHN1cmUgd2UgY3JlYXRlIGEgbmV3CgkgIHBhZCBpbmRleCBwcm9wZXJseSBpZiBzb21lIHdlcmUgcmVxdWVzdGVkIHdpdGggbmFtZXMgYnV0CgkgIHRoZSBuZXcgb25lIGlzIG5vdC4KCjIwMTQtMDEtMTQgMTU6NTI6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogTWFrZSBzdXJlIHRvIGNyZWF0ZSBhbmQgbGluayBjaGFpbnMgaW4gdGhlIG9yZGVyIGFzIHdyaXR0ZW4KCSAgTWFrZSB0aGlzIHdvcmsgYWdhaW46CgkgIGF1ZGlvdGVzdHNyYyAhIHRlZSBuYW1lPXQgIHQuc3JjXzAgISBxdWV1ZSAhIGZha2VzaW5rICB0LnNyY18xICEgcXVldWUgISBmYWtlc2luawoJICBhbmQgdGhpcyBmYWlsIGFnYWluOgoJICBhdWRpb3Rlc3RzcmMgISB0ZWUgbmFtZT10ICB0LnNyY18xICEgcXVldWUgISBmYWtlc2luayAgdC5zcmNfMCAhIHF1ZXVlICEgZmFrZXNpbmsKCSAgYXMgdGVlIGp1c3QgY291bnRzIGl0c2VsZiBhbmQgZG9lcyBub3QgY2FyZSBhYm91dCB0aGUgcGFkIG5hbWVzIHdlIHJlcXVlc3QKCSAgZnJvbSBpdC4KCjIwMTQtMDEtMTQgMTM6NDU6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogUmVtb3ZlIHNvbWUgQzk5LXN0eWxlIGNvbW1lbnRzCgoyMDE0LTAxLTE0IDEzOjQ0OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIGFuZCBmcmVlaW5nIGxpbmtzIGFuZCBjaGFpbnMKCjIwMTQtMDEtMTQgMTM6NDI6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IEFkZCBjb21tZW50IGFib3V0IHdoeSB3ZSBkaXNhYmxlIHRoZSAidHJhY2luZyIKCSAgSXQgZGlkIG5vdCBwcmludCBhbnl0aGluZyB1c2VmdWwgYmVmb3JlIGFueXdheSwgZXZlcnl0aGluZwoJICB3YXMgY29tbWVudGVkIG91dC4KCSAgQWxzbyByZW1vdmUgc29tZSB1bm5lZWRlZCBzdHJ1Y3QgbWVtYmVycy4KCjIwMTQtMDEtMTQgMTM6MzY6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlLWxhdW5jaDogQWRkIHNvbWUgbW9yZSBmYWlsaW5nIHBpcGVsaW5lcwoJICBBbHNvIGNvbnZlcnQgc29tZSBjb21tZW50cyBhYm91dCB2YWxncmluZCB3YXJuaW5ncyB0bwoJICBGSVhNRSBjb21tZW50cy4gVGhlc2Ugd2VyZSBsZWFraW5nIHNpbmNlIHNvbWUgdGltZSBhbHJlYWR5LgoKMjAxNC0wMS0xMCAyMToxMDoxNyArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBSZWZhY3RvciBncmFtbWFyLCBtYWtlIGl0IG1vcmUgY29uc2lzdGVudCBhbmQgZml4IGNvbmZsaWN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTEzIDIwOjQ4OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBkb2NzOiBlbnN1cmUgR3N0QnVmZmVyUG9vbHMgc2hvd3MgdXAgYXMgd2l0aCBHT2JqZWN0IGZlYXR1cmVzCgkgIEdzdEJ1ZmZlclBvb2wgaXMgYSBHc3RPYmplY3QsIGFkZCB0aGUgX2dldF90eXBlIGZ1bmN0aW9uIHRvIHRoZSB0eXBlcyBmaWxlLgoKMjAxNC0wMS0xMyAwODozNzozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBhZGQgdGVzdCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBvbiBwYXNzdGhyb3VnaAoJICBCYXNlcGFyc2Ugc3RvcmVzIGJ1ZmZlcnMgZm9yIHJldmVyc2UgcGxheWJhY2sgdG8gcHVzaCBvbiB0aGUgbmV4dAoJICBESVNDT05ULCB0aGUgaXNzdWUgd2FzIHRoYXQgaXQgd291bGRuJ3QgZXZlciBjaGVjayBmb3IgYSBkaXNjb250CgkgIG9uIHBhc3N0aHJvdWdoIG1vZGUgYXMgaXQgc2tpcHMgYWxsIHJlYWwgcGFyc2luZy4gVGhpcyB0ZXN0CgkgIHdhcyBjcmVhdGUgdG8gdmVyaWZ5IHRoaXMgaXNzdWUgYW5kIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTk0MQoKMjAxNC0wMS0xMSAxMDo0OToxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBhZGQgYmFzaWMgdGVzdCBmb3IgYmFzZXBhcnNlCgkgIEp1c3QgYSBzbWFsbCB0ZXN0IHRvIGNoZWNrIHRoYXQgYmFzaWMgcGxheWJhY2sgd29ya3MKCjIwMTQtMDEtMTAgMDk6MTA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgYWNjdW11bGF0ZSBidWZmZXJzIG9uIHBhc3N0aHJvdWdoIG1vZGUKCSAgSWYgb24gcGFzc3Rocm91Z2ggZHVyaW5nIHJldmVyc2UgcGxheWJhY2ssIGRvIG5vdCBhY2N1bXVsYXRlIGJ1ZmZlcnMgYXMKCSAgYmFzZXBhcnNlIHdpbGwgbmV2ZXIgY2hlY2sgZm9yIERJU0NPTlQgZmxhZyB0byBwdXNoIHRob3NlIGJ1ZmZlcnMuCgkgIFNvIGp1c3QgcHVzaCBidWZmZXJzIGRvd25zdHJlYW0gYXMgaWYgaXQgd2FzIGZvcndhcmQgcGxheWJhY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE5NDEKCjIwMTQtMDEtMDYgMjE6NDc6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgY29uZnVzZSBHU1RfUEFEX01PREVfTk9ORSBhbmQgUFVMTAoJICBVc2UgYSBzd2l0Y2gtY2FzZSB0byBleHBsaWNpdGx5IGhhbmRsZSBhbGwgcGFkLW1vZGVzLiBUaGlzIHdheSB3ZSBkb24ndCBsb2cgYW4gZXJyb3Igd2hlbiB0aGUgcGFkIGlzIG5vdCB5ZXQgYWN0aXZhdGVkLgoKMjAxNC0wMS0wOSAwNzo1Njo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgRklYTUUgYW5kIGRvY3MgZm9yIHRoZSBkaXNhYmxlZCBub3RpZnkgb24gcGFyZW50CgkgIFdlIGhhdmVuJ3QgZm91bmQgYSB3YXkgdG8gcmUtZW5hYmxlIGVtaXR0aW5nIG5vdGlmeSBhbmQgZGVlcC1ub3RpZnkgZm9yIHBhcmVudAoJICBjaGFuZ2VzLiBBZGQgYSBGSVhNRS0yLjAgYW5kIGEgZG9jIGJsb2Igb24gdGhlIHByb3BlcnR5LiBTZWUgIzY5MzI4MS4KCjIwMTQtMDEtMDggMTY6Mjg6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgaWdub3JlIFRJTUUgc2VnbWVudHMKCSAgVElNRSBzZWdtZW50cyBhcmUgYmVpbmcgaWdub3JlZCBhbmQgYSBzdGFuZGFyZCBpbml0aWFsaXplZAoJICBzZWdtZW50IGlzIHVzZWQgaW5zdGVhZC4gVGhpcyBjYXVzZXMgaXNzdWVzIGFzIG5vdCBwcm9wZXJseSBkZXRlY3RpbmcKCSAgcmV2ZXJzZSBwbGF5YmFjayBvciBub3QgY2xpcGluZyBvdXRwdXQgYmFzZWQgb24gdGhlIHNlZ21lbnQuCgkgIFRoaXMgc2VlbXMgdG8gYmUgYSByZWdyZXNzaW9uIGZyb20gb25lIG9mIHRoZSBHc3RTZWdtZW50L0dzdEV2ZW50CgkgIHJlZGVzaWducyBvbiB0aGUgMC4xMCAtPiAxLjAgdHJhbnNpdGlvbgoKMjAxNC0wMS0wOCAxNTo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogaW1wcm92ZSBjaGVjaywgYWxzbyBjaGVjayBzdHJlYW0tdGltZQoKMjAxNC0wMS0wOCAxNTozMToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3Igc2VnbWVudCBfb2Zmc2V0X3J1bm5pbmdfdGltZSgpCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGFyZSBhcHBsaWVkCgkgIGNvcnJlY3RseSBpbiB2YXJpb3VzIGNhc2VzLgoKMjAxNC0wMS0wOCAxNToyMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQgaW4gX3RvX3Bvc2l0aW9uKCkKCSAgVGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudCB3aGVuIGNvbnZlcnRpbmcgYmV0d2VlbiBydW5uaW5nLXRpbWUgYW5kCgkgIHNlZ21lbnQgcG9zaXRpb25zLgoKMjAxNC0wMS0wOCAxNDo1NzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBzZWdtZW50IG9mZnNldCBtZXRob2QgdG8gYXBwbHkgdGhlIG9mZnNldAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNDIyCgoyMDE0LTAxLTA4IDE0OjU0OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgbWV0aG9kIHRvIG9mZnNldCB0aGUgc2VnbWVudCBydW5uaW5nLXRpbWUKCSAgQWRkIGEgbWV0aG9kIHRoYXQgY2FuIGFwcGx5IGFuIG9mZnNldCB0byB0aGUgY2FsY3VsYXRlZCBydW5uaW5nLXRpbWUgb2YKCSAgYSBzZWdtZW50LgoKMjAxNC0wMS0wOCAxNDo1MjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQgZm9yIGV4cGVjdGVkIHNlZ21lbnQgcG9zaXRpb24KCSAgVGhlIGZpcnQgdmFsaWQgc2VnbWVudCBwb3NpdGlvbiBpcyBzdGFydCArIG9mZnNldC4KCSAgQWxzbyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBhIEZJWE1FCgoyMDE0LTAxLTA4IDE0OjUwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRlYnVnIHNlZ21lbnQgb2Zmc2V0IGZpZWxkIGFzIHdlbGwKCjIwMTQtMDEtMDggMDk6NTM6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWxsb3cgZ3Jvd2luZyBhIHF1ZXVlIGlmIGFsbCBvdGhlciBxdWV1ZXMgYXJlIG5vdCBsaW5rZWQKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4OTMKCjIwMTQtMDEtMDcgMTY6MTg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGRvbid0IHRyeSB0byBzZWVrIHRvIC0xIG9mZnNldAoJICBUaGUgb2Zmc2V0IGNhbiBiZSAtMSB3aGVuIHdlIGFyZSBjb25maWd1cmVkIGluIFRJTUUgZm9ybWF0LiBJbnN0ZWFkIG9mCgkgIGZhaWxpbmcgdGhlIHNlZWsgYW5kIGVycm9yaW5nLCBkbyB3aGF0IGFuZCBvZmZzZXQgb2YgLTEgaXMgc3VwcG9zZWQgdG8KCSAgZG8gYW5kIHNpbXBseSByZWFkIGZyb20gdGhlIGN1cnJlbnQgb2Zmc2V0LgoKMjAxNC0wMS0wNiAyMTowNDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkZW1vdGUgZXJyb3IgdG8gd2FybmluZwoJICBUaGlzIGlzIG5vdCBhbiBlcnJvci4gQSBzdWJjbGFzcyByZXR1cm5pbmcgRkFMU0UgZm9yIGlzX3NlZWthYmxlKCkgaXMgb25lIHdheSBvZgoJICBzYXlpbmcgdGhhdCB3ZSBjYW4ndCBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCjIwMTQtMDEtMDMgMTE6NDc6MjMgKzA4MDAgIFlhbnBpbmdaaGFuZyA8emhhbmd5YW5waW5nMjEwQDE2My5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhhbmdpbmcgaWYgc2h1dCBkb3duIHdoaWxlIGhhbmRsaW5nIGEgc2VyaWFsaXplZCBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjUzCgoyMDE0LTAxLTAyIDE2OjIyOjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHBlbmRpbmdfc2VnbWVudCBhcyBpdCB3YXMgYmVpbmcgbWlzdXNlZAoJICBJdCB3YXNuJ3QgcmVxdWlyZWQsIGluc3RlYWQgYmFzZXBhcnNlIHdhcyB1c2luZyBpdCB0byBjaGVjayB0aGUgbWVkaWEKCSAgY2FwcyB0byBpZGVudGlmeSBpZiBpdCB3YXMgaGFuZGxpbmcgYXVkaW8gb3IgdmlkZW8uCgkgIFRoZSBwZW5kaW5nX3NlZ21lbnQgd2FzIHJlbW92ZWQgYW5kIGEgY2hlY2tlZF9tZWRpYSBib29sZWFuCgkgIHJlcGxhY2VkIGl0IGZvciBhIG1vcmUgYWNjdXJhdGUgbmFtaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDEzOjQzOjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgR0FQIGV2ZW50CgkgIEEgR0FQIGV2ZW50IGlzIGhhbmRsZWQgYXMgYW4gZW1wdHkgYnVmZmVyIGJ5IHNpbmtzIGFuZCB0aGV5IGV4cGVjdAoJICB0byByZWNlaXZlIHN0YXJ0IHVwIGV2ZW50cyBiZWZvcmUgR0FQIGV2ZW50cyAobGlrZSBhIHNlZ21lbnQpLgoJICBUaGlzIGlzIGltcG9ydGFudCBzcGVjaWFsbHkgaWYgdGhlcmUgaXMgYSBHQVAgYXQgdGhlIGJlZ2lubmluZyBvZgoJICBhIHN0cmVhbSAoYmVmb3JlIGFueSBidWZmZXJzKSBzbyB0aGF0IHRoZSBzZWdtZW50IGV2ZW50IGNhbiBiZQoJICBwdXNoZWQgZG93bnN0cmVhbSBiZWZvcmUgdGhlIEdBUAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDEzOjQxOjI1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgcGVuZGluZyBldmVudHMgcHVzaGluZwoJICBSZWZhY3RvciBjb2RlIHJlcGVhdGVkIDMgdGltZXMgdG8gYSBjb21tb24gZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAyMDoxNzo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZGVzaWduL3BhcnQtdG9jLnR4dDogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDE0LTAxLTAyIDEzOjM0OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB1bml0IHRlc3QgZm9yIGFkZGluZy9yZW1vdmluZyBibG9ja2luZyBwcm9iZXMgd2hpbGUgYSBwYWQgaXMgYmxvY2tlZAoJICBBbmQgbWFrZSBzdXJlIHRoYXQgdGhlc2UgbmV3IHByb2JlcyBhcmUgYWN0dWFsbHkgY2FsbGVkIGlmIHRoZXkgc2hvdWxkCgkgIGluc3RlYWQgb2Ygc2lsZW50bHkgYmxvY2tpbmcgdGhlIHBhZCBmb3JldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjg5CgoyMDE0LTAxLTAyIDEzOjMzOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIGlmIG5ldyBwcm9iZXMgbmVlZCB0byBiZSBjYWxsZWQgd2hlbiBhZGRpbmcvcmVtb3Zpbmcgc29tZQoJICBUaGlzIGFsbG93cyBibG9ja2luZyBhIHBhZCwgYWRkIGEgbmV3IGJsb2NraW5nIHByb2JlLCByZW1vdmluZwoJICB0aGUgZmlyc3QgcHJvYmUgYW5kIHRoZW4gaGF2aW5nIHRoZSBzZWNvbmQgcHJvYmUgY2FsbGVkLiBXaGljaAoJICBjb3VsZCB0aGVuIGRlY2lkZSB0aGF0IGRhdGEtZmxvdyBzaG91bGQgYWN0dWFsbHkgY29udGludWUKCSAgaW5zdGVhZCBvZiBibG9ja2luZyBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyODkKCjIwMTQtMDEtMDIgMTE6MTM6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IFJlbW92ZSBkeW4gbG9jawoJICBJdCB3YXMgdXNlZCBmb3IgcGFkLWFsbG9jIGluIDAuMTAgYnV0IGN1cnJlbnRseSBpcyBjb21wbGV0ZWx5IHVudXNlZAoJICBhbmQgbm90IG5lY2Vzc2FyeS4gQWxsIHBhZCBhY2Nlc3MgaXMgcHJvdGVjdGVkIGJ5IHRoZSB0ZWUgb2JqZWN0IGxvY2sKCSAgYW5kIGtlZXBpbmcgYW5vdGhlciByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgcGFkLgoKMjAxNC0wMS0wMiAxMTowOTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogS2VlcCBhbm90aGVyIHJlZiB0byBvdXIgb25lIGFuZCBvbmx5IHNyY3BhZCBhcm91bmQgd2hpbGUgcHVzaGluZwoJICBBIHBhZCBwcm9iZSBvbiB0aGF0IHBhZCBtaWdodCBvdGhlcndpc2UganVzdCByZWxlYXNlIHRoZSBwYWQsIGRyb3AKCSAgdGhlIGxhc3QgcmVmZXJlbmNlIGFuZCBjYXVzZSBncmVhdCBtaXNlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzMDAKCjIwMTMtMTItMzAgMTk6MDM6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogS2VlcCBhbiBleHRyYSByZWYgb2YgdGhlIHBhZCB3aGVuIGNhbGxpbmcgYW4gSURMRSBwcm9iZSBpbW1lZGlhdGVseQoJICBUaGUgY2FsbGJhY2sgbWlnaHQgZGVzdHJveSB0aGUgcGFkLgoKMjAxMy0xMi0zMCAxODo0NDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGNhbGwgSURMRSBwcm9iZXMgaWYgd2UgYXJlIGFjdHVhbGx5IGlkbGUKCSAgQWxzbyBvbmx5IGNoZWNrIHRoZSBkYXRhIHR5cGVzIGZvciBub24tSURMRSBwcm9iZXMuIFdoZW4gd2UKCSAgYXJlIGlkbGUsIHdlIGhhdmUgbm8gZGF0YSB0eXBlIG9idmlvdXNseS4KCSAgUHJldmlvdXNseSB3ZSB3ZXJlIGNhbGxpbmcgSURMRSBwcm9iZXMgZHVyaW5nIGRhdGEgZmxvdyB3aGVuZXZlcgoJICBhIG5vbi1ibG9ja2luZyBwcm9iZSB3b3VsZCBiZSBjYWxsZWQuIFRoZSBwYWQgd2FzIHVzdWFsbHkgbm90IGlkbGUKCSAgYXQgdGhhdCB0aW1lLgoKMjAxMy0xMi0zMCAxNjoxMDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiByZW1vdmUgdW5uZWNlc3NhcnkgTlVMTCBjaGVjawoJICBFcnJvciBpcyBuZXZlciBOVUxMIHdoZW4gd2UgYnJlYWsgb3V0IG9mIHRoZSBsb29wLgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MQoKMjAxMy0xMi0zMCAxNjowNTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgUmV2ZXJ0ICJuZXR0aW1lcHJvdmlkZXI6IFJlbW92ZSBkZWFkIGNvZGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTY0OWNkNGNhMTlhNzVkMDMxOTExN2E3N2E3NjA5ZTRiOGM5NjUzMy4KCSAgVGhpcyBpcyBub3QgcmlnaHQsIGFuZCBpdCdzIGFsc28gbm90IHdoYXQgY292ZXJpdHkKCSAgaXMgY29tcGxhaW5pbmcgYWJvdXQuCgoyMDEzLTEyLTMwIDE2OjQ3OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVubmVlZGVkIGNoZWNrcwoJICBpdGVtIGlzIGd1YXJhbnRlZWQgdG8gYmUgbm9uLW51bGwuCgkgIENPVkVSSVRZIENJRCAxMDM3MTUyCgkgIENPVkVSSVRZIENJRCAxMDM3MTUzCgoyMDEzLTEyLTMwIDE2OjM0OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFJlbW92ZSBkZWFkIGNvZGUKCSAgZXJyIGlzIGFsd2F5cyBOVUxMIGJ5IHRoZSBwb2ludCB3ZSByZWFjaCB0aGlzIGxpbmUKCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTEKCjIwMTMtMTItMzAgMTQ6NDc6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc2luY2UgbWFya2VyIGFnYWluICgxLjMgLT4gMS40KQoJICBTaW5jZSBtYXJrZXJzIHNob3VsZCBwb2ludCB0byB0aGUgYXBwcm9wcmlhdGUgc3RhYmxlIHZlcnNpb24uCgoyMDEzLTEyLTMwIDE0OjQwOjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHNpbmNlLW1hcmtlciBpbiBkb2NzICh3ZSdyZSBpbiAxLjMuWCkKCjIwMTMtMTItMzAgMTQ6MjI6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgYSB0YWcgZm9yIG1pZGkgYmFzZSBub3RlIG51bWJlcnMKCSAgQXVkaW8gZmlsZXMgY29udGFpbmluZyBzYW1wbGVkIGluc3RydW1lbnRzIGNhbiBoYXZlIG1ldGFkYXRhIGRlc2NyaWJpbmcgdGhlIG5vdGUKCSAgdGhhdCB3YXMgcGxheWVkIG9uIHRoZSBpbnN0cnVtZW50LgoKMjAxMy0xMi0zMCAxMDowMTozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBpZ25vcmUgcHJvYmUgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIHdoZW4gaW1tZWRpYXRlbHkgY2FsbGluZyBJRExFIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEwOTYKCjIwMTMtMTItMjkgMTQ6MDY6NTUgKzAwMDAgIFBlZHJvIEPDtHJ0ZS1SZWFsIDxwZWRyb0BwZWRyb2NyLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogZ2l0LXVwZGF0ZS5zaDogZml4IGZvciBub24tbWFzdGVyIGJyYW5jaGVzCgkgIFB1bGwgZnJvbSB0cmFja2luZyBicmFuY2ggaW5zdGVhZCBvZiBvcmlnaW4vbWFzdGVyLCBzbwoJICB0aGF0IHRoaXMgd29ya3Mgd2l0aCBlLmcuIDEuMiBhcyB3ZWxsLgoKMjAxMy0xMi0yNyAxMjo1NTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIHBhcnNlOiBVc2UgR0xpYiBtYWxsb2MvZnJlZS9yZWFsbG9jIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTAwCgoyMDEzLTEyLTI2IDEyOjE2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogcmUtdXNlIGV4aXN0aW5nIG1hc3RlciBicmFuY2ggaWYgaXQgZXhpc3RzCgkgIFdoZW4gY3JlYXRpbmcgc2VwYXJhdGUgY2hlY2tvdXQgZm9yIG5vbi1tYXN0ZXIgYnJhbmNoZXMuCgoyMDEzLTEyLTI2IDExOjM5OjI3ICswMTAwICBFcmlrIEFuZHJlc2VuIDxlcmlrQHZvbnRhZW5lLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIGRvY3M6IGZpeCBtZW1vcnkgbGVhayBvZiBhcHBzaW5rIGV4YW1wbGUgaW4gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEwNzYKCjIwMTMtMTItMjIgMjI6MzM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRiZWRhYTAgdG8gZDQ4YmVkMwoKMjAxMy0xMi0yMiAyMjowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIHN0cmluZyBjaGFuZ2VzCgoyMDEzLTEyLTIyIDIxOjU2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBzZXQgZ2V0dGV4dCBkb21haW4gaW4gTWFrZXZhcnMgc28gd2UgZG9uJ3QgaGF2ZSB0byBwYXRjaCB0aGUgZ2VuZXJhdGVkIE1ha2VmaWxlLmluLmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU0NTUKCjIwMTMtMTItMjAgMTQ6NDE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgcm91bmQgZG93biAxMjggbWFjcm8gZm9yIGNvbXBsZXRlbmVzcwoKMjAxMy0xMS0xMyAxNzowNjoyMyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgcm91bmQgdXAgMTI4IG1hY3JvCgoyMDEzLTEyLTIwIDE0OjMwOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTZXR0aW5nIHRoZSBQUk9YWV9DQVBTIGZsYWcgb24gdGhlIHNyY3BhZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UKCSAgZnVubmVsIG91dHB1dHMgd2hhdGV2ZXIgb25lIG9mIHRoZSB1cHN0cmVhbXMgY3VycmVudGx5IG91dHB1dHMsIGEgY2FwcwoJICBxdWVyeSB0byBhIHJhbmRvbSB1cHN0cmVhbSBkb2VzIG5vdCBnaXZlIHRoZSByaWdodCBhbnN3ZXIgaGVyZS4KCjIwMTMtMTItMjAgMTE6Mzc6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFByb3h5IENBUFMgYW5kIEFMTE9DQVRJT04gcXVlcmllcwoKMjAxMy0xMS0xOCAxMDo0NjowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcG9zdCAxMDAlIGJ1ZmZlcmluZyBpZiBzaW5nbGUgcXVldWUgaXMgbm90IGxpbmtlZAoJICBUaGlzIG1ha2VzIGJ1ZmZlcmluZyBzdG9wIGluIGNhc2UgYSBzdHJlYW0gc3dpdGNoIGhhcHBlbnMuIFRoaXMgaXMKCSAgaW1wb3J0YW50IGZvciBhZGFwdGl2ZSBzdHJlYW1zIHRoYXQgY2FuIGRpc2FibGUgbm90LWxpbmtlZCBzdHJlYW1zCgkgIHRvIGF2b2lkIGNvbnN1bWluZyB0aGUgbmV0d29yayBiYW5kd2lkdGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk1NzUKCjIwMTMtMTItMTggMDU6MTk6NDYgLTA1MDAgIFdpbGxpYW0gSm9uIE1jQ2FubiA8d2lsbGlhbS5qb24ubWNjYW5uQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogZml4IHByb2plY3QgbGlua3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDY2NQoKMjAxMy0xMi0xMCAxNTo1Mzo1NCArMDEwMCAgRGF2aWQgU3ZlbnNzb24gRm9ycyA8ZGF2aWRzZkBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2Ugc2VnbWVudCBzdGFydCBpZiBEVFMgZm9yIGZpcnN0IGJ1ZmZlciBpcyB1bnNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTk5CgoyMDEzLTEyLTEyIDE3OjE3OjQwICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdHJlYW1lci12YWFwaSBwYXRocwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMzM3CgoyMDEzLTEyLTE0IDIxOjIwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXItbm9pbmxpbmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLW5vaW5saW5lLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci1ub2lubGluZS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgYml0cmVhZGVyLCBieXRlcmVhZGVyIGFuZCBieXRld3JpdGVyIHdpdGggbm8gaW5saW5pbmcgdXNlZAoKMjAxMy0xMi0xNCAxODozODo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZhcmlhbnQgb2YgZ3N0X2J5dGVfcmVhZGVyX2luaXQoKQoKMjAxMy0xMi0xNCAxODozMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBkb2NzOiBmaXggZG9jcyBmb3IgZ3N0X3F1ZXVlX2FycmF5X3BlZWtfaGVhZCgpCgoyMDEzLTEyLTE0IDE5OjA4OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IERvbid0IGRlZmluZSB5eXNjYW5fdCB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMzE2CgoyMDEzLTEyLTEzIDIyOjUxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IG1vdmluZyBwbHVnaW5zOiBtaW5vciAwLjEwIC0+IDEuMCBmaXgKCSAgU3BvdHRlZCBieSBKYXkgRmVubGFzb24KCjIwMTMtMTItMTEgMTQ6NDI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogZG9uJ3QgaWdub3JlIGV2ZW50IHJldHVybiB2YWx1ZQoJICBQYXNzIHRoZSBldmVudCByZXR1cm4gdmFsdWUgdXBzdHJlYW0uCgkgIFJlbW92ZSBzdHJhbmdlIGdvdG8gY29uc3RydWN0LgoKMjAxMy0xMi0xMCAxODozMDowMyAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEhhbmRsZSB0YWdsaXN0IGNvcHkgZmFpbHVyZQoJICBJZiB3ZSBjb3VsZG4ndCBjb3B5IHRoZSB0YWdzLCBqdXN0IHJldHVybiBpbnN0ZWFkIG9mIHRyeWluZyB0byB1c2UgYm9ndXMKCSAgdmFsdWVzLgoKMjAxMy0xMi0xMCAxODoyNToyMiAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSW5kZXggZmVhdHVyZXMgYXJlIG5vIG1vcmUKCSAgU28gcmVtb3ZlIGNvZGUgdGhhdCB3aWxsIG5ldmVyIGJlIHVzZWQKCjIwMTMtMTItMTAgMTc6NTM6MjQgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IGNvbXBhcmlzaW9uIG9mIGRvdWJsZSByYW5nZQoJICBDaGVja2luZyB0d2ljZSB0aGUgbG93ZXIgYm91bmQgaXMgZ3JlYXQgKHlvdSBuZXZlciBrbm93LCBpdCBtaWdodCBjaGFuZ2UKCSAgYmV0d2VlbiB0aGUgdHdvIGNhbGxzIGJ5IHNvbWVvbmUgdXNpbmcgZW1hY3MgYnV0dGVyZmx5LW1vZGUpLCBidXQgaXQncyBhIGJpdAoJICBtb3JlIHVzZWZ1bCB0byBjaGVjayB0aGUgaGlnaGVyIGJvdW5kIGFyZSBhbHNvIGlkZW50aWNhbC4KCSAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkKCjIwMTMtMTItMTAgMTc6MDk6MDcgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggb3V0LW9mLWJvdW5kcyBkZXRlY3Rpb24KCSAgV2Ugd2FudCB0byBhYm9ydCBpZiB3ZSBoaWdoZXIgdGhhbiB0aGUgbWF4aW11bSAqT1IqIGxvd2VyIHRoYW4gdGhlIG1pbmltdW0KCSAgYWNjZXB0ZWQgdmFsdWUuCgkgIERldGVjdGVkIGJ5IENvdmVyaXR5LgoKMjAxMy0xMi0wNyAxOTowNDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWdpc3RlcmluZyB0aGUgc2FtZSBjYXRlZ29yeSB0d2ljZQoKMjAxMy0xMi0wNyAxOTozMjo1OCArMDEwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXR1cm4gZXhpc3RpbmcgY2F0ZWdvcnkgaWYgYSBkZWJ1ZyBjYXRlZ29yeSBpcyByZWdpc3RlcmVkIHR3aWNlCgkgIElmIGEgY2F0ZWdvcnkgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGZvdW5kIHdoZW4gY3JlYXRpbmcgYSBuZXcKCSAgb25lLCB0aGUgZm91bmQgY2F0ZWdvcnkgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBpbnZhbGlkIHBvaW50ZXIuCgkgIEZpeGVzIGlzc3VlIHdpdGggZ3N0LXZhYXBpICh3aGljaCB1c2VzIGFuIGludGVybmFsIGNvcHkgb2YgdGhlCgkgIGNvZGVjIHBhcnNlcnMpIGNhdXNlZCBieSBjb21taXQgY2NiYTkxMzAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMzYKCjIwMTMtMTItMDcgMTU6Mzg6MTkgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvb3V0bGluZS50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIGRvY3M6IEZpeCB0eXBvcyBpbiBmdW5jdGlvbi9vYmplY3QgZGVzY3JpcHRpb25zCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMjkKCjIwMTMtMTItMDcgMTU6NDA6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEZpeCBzb21lIHR5cG9zIGluIGNvZGUgY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAwMjkKCjIwMTMtMTItMDYgMjA6NTA6MTkgKzAwMDAgIFN0ZXdhcnQgQnJvZGllIDxzdGV3YXJ0QGVoLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogY2xhcmlmeSBlbmNvZGluZyBvZiBzdHJpbmdzIGluIEdzdFN0cnVjdHVyZXMgYW5kIHRhZ2xpc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNjIKCjIwMTMtMDctMDIgMjA6Mjc6NTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2V0IGZvcm1hdCB0byBUSU1FIGlmIGRvLXRpbWVzdGFtcCBpcyBUUlVFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDIKCjIwMTMtMTItMDUgMDA6MjY6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBkb24ndCB0cnkgdG8gcmVtb3ZlIGFscmVhZHktcmVtb3ZlZCBHU291cmNlIGZyb20gbWFpbiBsb29wCgkgIEl0J3MgY29uc2lkZXJlZCBhIHByb2dyYW1taW5nIGVycm9yIGluIHJlY2VudCBHTGliIHZlcnNpb25zIG5vdy4KCSAgV2UgbWF5IGFscmVhZHkgaGF2ZSByZW1vdmVkIHRoZSBzb3VyY2UgYnkgcmV0dXJuaW5nIEZBTFNFIGZyb20KCSAgdGhlIGNhbGxiYWNrIGlmIGl0IHdhcyBmaXJlZC4gRml4ZXMgd2FybmluZyB3aXRoIG5ld2VyIEdMaWJzCgkgIHdoZW4gaW50ZXJydXB0aW5nIGEgcGlwZWxpbmUgd2l0aCBDb250cm9sLUMuCgoyMDEzLTEyLTA0IDE3OjM1OjE4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogTWFrZSBzdXJlIHRoZSBzYW1lIGNhdGVnb3J5IGlzIG5vdCBhZGRlZCB0d2ljZQoKMjAxMy0xMi0wNCAxNzozNTowMiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFByb3RlY3QgX19jYXRlZ29yaWVzIGxpc3QgaW4gZ2V0X2NhdGVnb3J5IHdpdGggbG9jayB0b28KCjIwMTMtMTItMDQgMDA6MTA6MzYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBhZGQgbWlzc2luZyBmaWxlcyBmb3IgZGlzdHJpYnV0aW9uCgkgICogYWRkIHNvbWUgZG9jdW1lbnRhdGlvbiBmaWxlcyBpbiBkb2NzL2Rlc2lnbgoJICAqIGFkZCBkb2NzL2xpc3QtdWxpbmsueHNsIHNvIGNoZWNrIGluIGRvY3MvbWFudWFsIHdvcmtzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4MTQKCjIwMTMtMTItMDMgMjE6NDY6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEFDQ0VQVF9JTlRFUkNFUFQgZmxhZwoJICBNYWtlIGEgbmV3IGZsYWcgb24gdGhlIHBhZCB0aGF0IHR3ZWFrcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlCgkgIGFjY2VwdC1jYXBzIGZ1bmN0aW9uLiBCeSBkZWZhdWx0IGl0IHdpbGwgY2hlY2sgZm9yIGEgc3Vic2V0IG9mIHRoZQoJICBxdWVyeS1jYXBzIHJlc3VsdCBidXQgdGhpcyBpcyBub3QgYWx3YXlzIGRlc2lyYWJsZS4gVGhlIHF1ZXJ5LWNhcHMKCSAgcmVzdWx0IGNvbnRhaW5zIGFsbCB0aGUgY29uc3RyYWludHMgdG8gbWFrZSBhIGdvb2QgY2FwcyBkZWNpc2lvbgoJICB1cHN0cmVhbSBidXQgc29tZXRpbWVzLCBsaWtlIGZvciBwYXJzZXJzLCBub3QgYWxsIHRoZSBjb25zdHJhaW5lZCBjYXBzCgkgIGZpZWxkcyBhcmUga25vd24gdXBzdHJlYW0gYW5kIHRoZW4gYSBzdWJzZXQgY2hlY2sgd291bGQgZmFpbC4gU3dpdGNoaW5nCgkgIHRvIGFuIGludGVyc2VjdGlvbiBtYWtlcyB0aGlzIHdvcmsgYWdhaW4uCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MDI0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc0MDEKCjIwMTMtMTItMDIgMjI6MjI6MzYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBvbiByZWNvbmZpZ3VyZSBldmVudAoJICBBZnRlciBwYXRjaCBiZGE0MDZjNCwgdGhlIHN0YXRlIG9mIHRoZSBzaW5nbGVxdWV1ZSB3YXMgc2V0IHRvIE9LLCBidXQgbm90aGluZwoJICB3b3VsZCB0aGVuIHdha2UgdXAgdGhlIHRocmVhZCwgYXMgdGhlIG90aGVyIHdha2V1cCBmdW5jdGlvbnMgb25seSBsb29rIGF0CgkgIHNpbmdsZXF1ZXVlcyB0aGF0IGFyZSBtYXJrZWQgYXMgaGF2aW5nIHJlY2VpdmVkIGFzIG5vdC1saW5rZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDgyMDAKCjIwMTMtMTEtMzAgMTI6MTU6MzcgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgZG9jcywgZml4aW5nIGRvYyBlcnJvcnMKCSAgKiBhZGQgbWFueSBtaXNzaW5nIGRlY2xhcmF0aW9ucyB0byBzZWN0aW9ucwoJICAqIEdzdENvbnRyb2xsZXIgaGFzIGJlZW4gcmVtb3ZlZCwgdXBkYXRlIGRvY3MKCSAgKiBza2lwIEdzdEluZGV4IHdoZW4gZ2VuZXJhdGluZyBkb2N1bWVudGF0aW9uCgkgICogcmVwaHJhc2Ugc28gZ3RrZG9jIGRvZXNuJ3QgaW1hZ2luZSByZXR1cm4gdmFsdWUKCSAgKiBhZGQgbWlzc2luZyBhcmd1bWVudCBkZXNjcmlwdGlvbiBmb3IgZ3N0X2NvbnRleHRfbmV3KCkKCSAgKiBkb2N1bWVudCBHc3RPdXRwdXRTZWxlY3RvclBhZE5lZ290aWF0aW9uTW9kZSBhbmQgbW92ZSB0byBoZWFkZXItZmlsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NjE0CgoyMDEzLTExLTMwIDE0OjUyOjQwICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGRvY3M6IGNvc21ldGljIGNoYW5nZXMgaW4gcmVmZXJlbmNlcy9kZWNyaXB0aW9ucwoJICAqIGZpeCB0eXBvIEdzdEJ1ZmZlckZsYWcgLT4gR3N0QnVmZmVyRmxhZ3MKCSAgKiBmaXggdHlwbyBHc3RGZWF0dXJlcyAtPiBHc3RDYXBzRmVhdHVyZXMKCSAgKiBmaXggdHlwbyBHc3RBbGxvY2F0b3JQYXJhbXMgLT4gR3N0QWxsb2NhdGlvblBhcmFtcwoJICAqIGZpeCB0eXBvIEdzdENvbnRybFNvdXJjZXMgLT4gR3N0Q29udHJvbFNvdXJjZQoJICAqIGRvIG5vdCByZWZlciB0byBnc3RjaGVjayBhcyBhbiBvYmplY3QKCSAgKiBtYWtlIHJlZmVyZW5jZXMgZ3RrX2luaXQoKSBhbmQgdGNhc2Vfc2V0X3RpbWVvdXQoKSBub3QgYmUgcmVmZXJlbmNlcwoJICAqIGdzdF9lbGVtZW50X2dldF9wYWQoKSByZW5hbWVkIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKCkKCSAgKiBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgcmVuYW1lZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpCgkgICogX2Ryb3BfZWxlbWVudCgpIGlzIHJlYWxseSBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgKiBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgd2FzIHJlbW92ZWQsIGRvIG5vdCByZWZlciB0byBpdAoJICAqIHNlcGFyYXRlIEdTVF9NRVRBX1RBR19NRU1PUllfU1RSIGRlY2xhcmF0aW9uIGZyb20gZGVzY3JpcHRpb24KCSAgKiBkbyBub3QgZGVzY3JpYmUgcmVtb3ZlZCBnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QoKQoJICAqIGNvcnJlY3RseSBsaW5rIHRvIEdzdEVsZW1lbnRDbGFzcycgdmlydHVhbCBzZXRfY29udGV4dCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk2MTQKCjIwMTMtMTEtMjkgMTQ6MDA6MzUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIHBhcnNlOiBNYW51YWxseSBpbnNlcnQgcHJpdl9nc3RfcGFyc2VfeXlnZXQvc2V0X2NvbHVtbiBwcm90b3R5cGVzIGZvciBvbGRlciBmbGV4CgkgIE9sZGVyIHZlcnNpb25zIG9mIGZsZXggKGJlZm9yZSAyLjUuMzYpIGRvbid0IGFkZCB0aGUgcHJvdG90eXBlLCBzbyBpdCBtdXN0CgkgIGJlIGFkZGVkIG1hbnVhbGx5LiBXZSBjYW4ndCBjaGVjayBieSB0aGUgdmVyc2lvbiBudW1iZXIsIGJlY2F1c2UgRGViaWFuL1VidW50dQoJICBwYXRjaGVkIGl0IGludG8gdGhlaXIgMi41LjM1IGF0IHNvbWUgcG9pbnQuCgoyMDEzLTExLTE5IDExOjQxOjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RwYWQ6IGRyb3AgYXNzZXJ0aW9uIG9uIGdzdF9wYWRfcGVlcl9xdWVyeV9wb3NpdGlvbgoJICBJdCBpcyBhICdib3RoJyBxdWVyeSwgc28gaXQgY2FuIGJlIHNlbnQgYm90aCB3YXlzCgoyMDEzLTExLTE4IDE4OjExOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBoYW5kbGUgZ2FwIGV2ZW50cwoJICBVc2UgZ2FwIGV2ZW50cyB0byBhZHZhbmNlIHRoZSBzZWxlY3RvcidzIHBhZCBwb3NpdGlvbi4KCSAgVGhpcyBpcyByZWxldmFudCB0byBrZWVwIHN5bmNfc3RyZWFtcyBtb2RlIHdvcmtpbmcgd2hlbiBvbmUgb2YgdGhlCgkgIHN0cmVhbXMgZG9lc24ndCBoYXZlIGRhdGEgYWxsIHRoZSB0aW1lLgoKMjAxMy0xMS0yOSAxNzowMjo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnaG9zdHBhZDogY29weSBzdGlja3kgZXZlbnRzIHRvIFNSQyBnaG9zdHBhZHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODE2MmE1ODNhNGRkNjg1ODJiZjE4NmUyZTQ3YThmMGQ2OGZhMTk4MC4KCSAgQXV0b21hdGljYWxseSBjb3B5aW5nIHRoZSBzdGlja3kgZXZlbnRzIG1ha2VzIGl0IGltcG9zc2libGUgZm9yIGFwcHMKCSAgYW5kIGVsZW1lbnRzIHRvIGZpbHRlciB0aGUgZXZlbnRzIHdpdGggZXZlbnQgcHJvYmVzLiBUaGlzIGNhdXNlcwoJICByZWdyZXNzaW9ucyAoU2VlICM3MTk0MzcpLiBUaGUgYmVzdCBvcHRpb24gaXMgdG8gbGV0IHRoZSBhcHAvZWxlbWVudAoJICBjb3B5IGFuZCBmaWx0ZXIgdGhlIGV2ZW50cyB0aGVtc2VsdmVzIGFmdGVyIHRoZSBnaG9zdHBhZCB0YXJnZXQgaXMKCSAgc2V0LgoKMjAxMy0xMS0xOSAxNTowMzozNSArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBzZWdmYXVsdGluZyBwcm90b3R5cGUtbWlzbWF0Y2gKCSAgTm93IFlZREVCVUcgaXMgYWx3YXlzIHNldCwgc28gY2hlY2sgaXQncyB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNjc5CgoyMDEzLTExLTI3IDE4OjMyOjIyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IGRvY3N0cmluZyBmb3Igcm91bmQtdHJpcC1saW1pdCBhbmQgdW5pbml0IGFjY2VzcyB3YXJuaW5nLgoJICBGaXggYSB0eXBvIGluIGEgZG9jIHN0cmluZyAtIHRoZSBwcm9wZXJ0eSBpcyByb3VuZC10cmlwLWxpbWl0LCBub3QKCSAgcm91bmR0cmlwLWxpbWl0LgoJICBSZW1vdmUgYSBib2d1cyBHU1RfV0FSTklORyB0aGF0IGNhbiBwcmludCBhbiB1bmluaXRpYWxpc2VkIHZhcmlhYmxlCgkgIGFuZCBpcyByZWR1bmRhbnQgYW55d2F5LgoKMjAxMy0xMS0yNiAxMTo1Njo0NiArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBBZGQgcm91bmQtdHJpcC1saW1pdCBwYXJhbWV0ZXIKCSAgU29tZXRpbWVzLCBwYWNrZXRzIG1pZ2h0IHRha2UgYSB2ZXJ5IGxvbmcgdGltZSB0byByZXR1cm4uIFN1Y2ggcGFja2V0cwoJICB1c3VhbGx5IGFyZSB3YXkgdG9vIGxhdGUgYW5kIGRlc3RhYmlsaXplIHRoZSByZWdyZXNzaW9uIHdpdGggdGhlaXIKCSAgb2Jzb2xldGUgZGF0YS4gT24gV2ktRmksIHJvdW5kLXRyaXBzIG9mIG92ZXIgNyBzZWNvbmRzIGhhdmUgYmVlbiBvYnNlcnZlZC4KCSAgSWYgdGhlIGxpbWl0IGlzIHNldCB0byBhIG5vbnplcm8gdmFsdWUsIHBhY2tldHMgd2l0aCBhIHJvdW5kLXRyaXAgcGVyaW9kCgkgIGxhcmdlciB0aGFuIHRoZSBsaW1pdCBhcmUgaWdub3JlZC4KCSAgU2lnbmVkLW9mZi1ieTogQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzg1CgoyMDEzLTExLTI1IDE5OjA0OjM4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBGaXggZ2kgYW5ub3RhdGlvbnMgb2YgZ3N0X3N0cnVjdHVyZV9uZXdfY3VzdG9tKCkKCjIwMTMtMTEtMjYgMDI6NDM6NTQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggQzk5IGNvbW1lbnQKCjIwMTMtMTEtMjYgMDI6MTc6MzYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBJbXBsZW1lbnQgcm9sbGluZy1hdmVyYWdlIGZpbHRlciBvbiBvYnNlcnZhdGlvbnMuCgkgIEtlZXAgYSByb2xsaW5nIGF2ZXJhZ2Ugb2YgdGhlIHJvdW5kIHRyaXAgdGltZSBmb3IgbmV0d29yayBjbG9jawoJICBvYnNlcnZhdGlvbnMsIGZhdm91cmluZyBzaG9ydGVyIHJvdW5kIHRyaXBzIGFzIGJlaW5nIG1vcmUgYWNjdXJhdGUuCgkgIERvbid0IHBhc3MgYW55IGNsb2NrIG9ic2VydmF0aW9uIHRvIHRoZSBjbG9jayBzbGF2aW5nIGlmIGl0IGhhcyBhCgkgIHJvdW5kLXRyaXAgdGltZSBncmVhdGVyIHRoYW4gMiB0aW1lcyB0aGUgYXZlcmFnZS4KCSAgQWN0dWFsIHNoaWZ0cyBpbiB0aGUgbmV0d29yayB0b3BvbG9neSB3aWxsIGJlIG5vdGljZWQgYWZ0ZXIgc29tZQoJICB0aW1lLCBhcyB0aGUgcm9sbGluZyBhdmVyYWdlIGluY29ycG9yYXRlcyB0aGUgbmV3IHJvdW5kIHRyaXAgdGltZXMuCgoyMDEzLTExLTI1IDIwOjMzOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFkZCBkZWJ1ZyBpbnRvIGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9xdWVyeSgpIGZvciBhY2NlcHRfY2FwcwoKMjAxMy0xMS0xNCAxNTozMjo1OSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZXhpdCB3aXRoIGFuIGVycm9yIGNvZGUgd2hlbiBhbiBlcnJvciBvY2N1cmVkCgkgIElmIHRoZSBwaXBlbGluZSBmYWlsZWQgdG8gcHJlLXJvbGwgb3IgdGhlIHVzZXIgaW50ZXJydXB0ZWQgdGhlCgkgIGV4ZWN1dGlvbiB0aGVuIHNldCB0aGUgZXhpdCBjb2RlIHRvIGEgcG9zaXRpdmUgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIzMDAKCjIwMTMtMTEtMjIgMDE6MzU6MTggKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRXNjYXBlIHN0cmVhbSBpZCBmb3JtYXQgaW4gY29tbWVudHMKCSAgVGhlc2UgbXVzdCBiZSBlc2NhcGVkIGZvciBndGstZG9jIHRvIHBhcnNlIHRoZSBjb21tZW50cyB3aXRob3V0IHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0OTg5CgoyMDEzLTExLTIxIDE1OjA0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdDogZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZAoJICBKdXN0IHVzZSBwbGFpbiBtZW1tb3ZlKCksIGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQgaW4KCSAgcmVjZW50IEdMaWIgdmVyc2lvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI4MTEKCjIwMTMtMTEtMjEgMTQ6MTM6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBjb3B5IHN0aWNreSBldmVudHMgdG8gU1JDIGdob3N0cGFkcwoJICBVcGRhdGUgdGhlIHN0aWNreSBldmVudHMgb24gU1JDIGdob3N0cGFkcyB3aGVuIHJldGFyZ2V0aW5nLiBUaGlzIGVuc3VyZXMKCSAgdGhhdCB0aGUgZ2hvc3RwYWQgaGFzIHRoZSBleGVjdCBzYW1lIHN0aWNreSBldmVudHMgYXMgdGhlIHRhcmdldCBwYWQuIFdlCgkgIGRvbid0IHdhbnQgdG8gZG8gdGhpcyBmb3IgU0lOSyBnaG9zdHBhZHMsIHRoZXkgZ290IHRoZSBldmVudHMgZnJvbQoJICBkb3duc3RyZWFtIGFuZCB3ZSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZSB0aGVtIHdpdGggdGhlIHRhcmdldCBwYWQKCSAgZXZlbnRzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjIxCgoyMDEzLTExLTIxIDEyOjI4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3ZlIGRlYnVnIGZ1bmN0aW9uIGNsb3NlciB0byB0aGUgZW51bSBpdCBkZWJ1Z3MKCjIwMTMtMTEtMTggMjE6Mzk6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogY2hlY2sgcmVhZC93cml0ZSBiZWZvcmUgY2xvc2VkCgkgIGZpcnN0IHRyeSB0byByZWFkIG9yIHdyaXRlIG9uIHRoZSBzb2NrZXQgYmVmb3JlIGNoZWNraW5nIHRoZSBjbG9zZWQgc3RhdGUuIFRoaXMKCSAgbWFrZXMgc3VyZSB3ZSBoYW5kbGUgYWxsIGRhdGEgb24gdGhlIHNvY2tldCBiZWZvcmUgZXJyb3Jpbmcgb3V0LgoKMjAxMy0xMS0xOCAyMTozNzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGltcHJvdmUgZGVidWcKCSAgU28gdGhhdCB3ZSBjYW4gc2VlIHRoZSByZXR1cm4gdmFsdWVzIG9mIGZ1bmN0aW9ucyBpbiB0aGUgbG9nLgoKMjAxMy0xMS0xOCAxNToyODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGZpeCBHc3RCdXMgdW5pdCB0ZXN0IHdpdGggbGF0ZXN0IEdMaWIKCSAgZ19zb3VyY2VfcmVtb3ZlKCkgd29ya3Mgb24gdGhlIGRlZmF1bHQgbWFpbiBjb250ZXh0LCBhbmQKCSAgd2UncmUgZG9pbmcgdGhpbmdzIHdpdGggYSBjdXN0b20gY29udGV4dC4gRml4ZXMgd2FybmluZwoJICB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMuCgoyMDEzLTExLTE2IDEyOjI0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgZG9jczogY29zbWV0aWMgc2luY2UgbWFya2VyIGZpeGVzCgoyMDEzLTExLTE2IDE1OjE3OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSB0byBwcmVzZXJ2ZSB1cHN0cmVhbSB0aW1lc3RhbXBzCgkgIC4uLiByYXRoZXIgdGhhbiBoYXZlIHN1YmNsYXNzIGNvbWluZyB1cCB3aXRoIGFuIGludGVybmFsbHkgcGFyc2VkIG9uZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzIzMAoKMjAxMy0xMS0xNSAwNzozMjo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBSZXN5bmMgaXRlcmF0b3IgaWYgbmVjZXNzYXJ5CgoyMDEzLTExLTEzIDE5OjU1OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHZhbHVlOiBMaXN0cyB3aXRoIGFsbCBlcXVhbCBlbGVtZW50cyBhcmUgZXF1YWwgdG8gYSBzaW5nbGUgdmFsdWUKCSAgT3RoZXJ3aXNlIGNhcHMgY29udGFpbmluZyBmPXtYLCBYfSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBmPVgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMS0xMSAxNjo0NzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkKCjIwMTMtMTEtMTEgMTc6Mjk6NDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBSZWFsbHkgdXBkYXRlIHRoZSBkZWYgZmlsZXMKCjIwMTMtMTEtMTEgMTc6MDI6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlcwoKMjAxMy0xMS0xMSAxNjo1MDoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFsc28gZXhwb3J0IExEX0xJQlJBUllfUEFUSCBmb3IgZ3N0LXBsdWdpbnMtZ2wKCjIwMTMtMTEtMDUgMTI6MjI6NTEgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBleHBvcnQgZ3N0LXBsdWdpbnMtZ2wgRFlMRF9MSUJSQVJZX1BBVEgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTQ4OAoKMjAxMy0xMS0wNiAxODo0NjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFsd2F5cyBzZW5kIFNFRUsgZXZlbnRzIHRvIGFsbCBwYWRzLCBldmVuIGlmIG9uZSBmYWlscwoKMjAxMy0xMS0wNiAxODo0MToxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIGZsdXNoaW5nIHNlZWsgaGFuZGxpbmcKCjIwMTMtMTEtMDYgMTg6MDU6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBsZWFrIHNlZWsgZXZlbnRzCgoyMDEzLTA5LTE2IDA5OjU1OjU4ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogaW1wbGVtZW50IGZsdXNoaW5nIHNlZWsgc3VwcG9ydAoJICBJbXBsZW1lbnQgY29tbW9uIGZsdXNoaW5nIHNlZWsgbG9naWMgaW4gR3N0Q29sbGVjdFBhZHMuIEFkZCBuZXcKCSAgQVBJIHNvIHRoYXQgZWxlbWVudHMgY2FuIG9wdC1pbiB0byB1c2luZyB0aGUgbmV3IGxvZ2ljCgkgIChnc3RfY29sbGVjdF9wYWRzX3NyY19ldmVudF9kZWZhdWx0KSBhbmQgY2FuIGV4dGVuZCBpdAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hfZnVuY3Rpb24pIHRvIGZsdXNoIGFueSBpbnRlcm5hbAoJICBzdGF0ZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY3NzkgYW5kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NDEgZm9yIHRoZQoJICBiYWNrZ3JvdW5kIGRpc2N1c3Npb24uCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hfZnVuY3Rpb24oKQoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc3JjX2V2ZW50X2RlZmF1bHQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjM1OjM3ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiBhZGQgZmx1c2hpbmcgc2VlayB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjMxOjQ3ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiB0d2VhayBzdHViIF9jb2xsZWN0IHRvIHB1c2ggYWxsIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODoyNjoyNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0xMS0xMSAxMzoyNzoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCB1c2UgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIHdoZW4gcG9zc2libGUKCSAgTWFrZXMgcXN0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlIDIwJSBmYXN0ZXIKCjIwMTMtMTEtMTEgMTI6MjU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3lzdGVtY2xvY2s6IEFkZCBnc3Rfc3lzdGVtX2Nsb2NrX3NldF9kZWZhdWx0CgkgIFVzZWQgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQgc3lzdGVtIGNsb2NrIHRoYXQgaXMgb2J0YWluZWQgdGhyb3VnaAoJICBnc3Rfc3lzdGVtX2Nsb2NrX29idGFpbigpLCB3aGljaCBpcyBzb21ldGltZXMgbmVlZGVkIGZvciB1bml0CgkgIHRlc3RpbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEyNjkKCjIwMTMtMTEtMDQgMTg6NTc6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgdHlwZWZpbmQ6IHVzZSBnX2dldF9wcmduYW1lKCkgZm9yIGVycm9yIG1lc3NhZ2UKCjIwMTMtMTEtMDYgMTA6MTU6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBwcm94eSBjYXBzIGFuZCBhbGxvY2F0aW9uCgkgIFByb3h5IHRoZSBjYXBzIHF1ZXJpZXMgb24gdGhlIHNyY3BhZCBhcyB3ZWxsLgoJICBQcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBvbiB0aGUgc2lua3BhZC4KCjIwMTMtMTEtMDUgMTE6MTc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg2NWFhMjAgdG8gZGJlZGFhMAoKMjAxMy0xMS0wNCAxMzo1NjozNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBSZW1vdmUgc29tZSBkZWFkIGNvZGUKCjIwMTMtMTEtMDQgMTE6NDg6NDcgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGV4cGxpY2l0bHkgY2FzdCB0byBHc3RMb2NrRmxhZ3MgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTMtMTEtMDIgMTU6MzY6MTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlc3VycmVjdCBzYW5pdGl6aW5nIHN0YXJ0IGFuZCBzdG9wIGZvciBzZWVraW5nCgoyMDEzLTExLTAyIDE1OjQyOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWluZCBib2dnbGluZyB3cmFwIHdoZW4gY29tcGFyaW5nIG9mZnNldHMKCjIwMTMtMTEtMDIgMTU6Mzg6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJ5IGZpcnN0IGZyYW1lIHB0cyBhbmQgZHRzIGZvciBhIHZhbGlkIHN0YXJ0IHRpbWVzdGFtcAoKMjAxMy0xMS0wMiAxNTozNzozMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmludCBwcm9wZXIgdmFyaWFibGUgaW4gZGVidWcgc3RhdGVtZW50CgoyMDEzLTExLTAxIDE2OjM1OjU5ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IE1ha2UgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGFsc28gd29yayB3aXRob3V0IGEgR0Vycm9yCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0cwoKMjAxMy0xMC0yMyAxNTo1NjoyMCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDc1OAoKMjAxMy0xMC0zMSAxNjoxNjo0OCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ac2lzYS5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSAgZG9jczogZml4IGNvbW1vbiB0eXBvcyBlbWl0ZWQvZWFjaG90aGVyLy4uLgoKMjAxMy0xMC0zMCAyMTo1MzozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCBzb21lIGF0dHJpYnV0ZXMgYW5kIHJlb3JnYW5pemUgY29kZSB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgZ3N0dXRpbHMuYzozNjU5OjQxOiBlcnJvcjogZm9ybWF0IHN0cmluZyBpcyBub3QgYSBzdHJpbmcgbGl0ZXJhbAoJICBbLVdlcnJvciwtV2Zvcm1hdC1ub25saXRlcmFsXQoJICBnY2hhciAqZXhwYW5kZWQgPSBnX3N0cmR1cF92cHJpbnRmIChzdHJlYW1faWQsIHZhcl9hcmdzKTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDYyMQoKMjAxMy0xMC0yNSAxNDo1NjoxNiArMDIwMCAgQW50b25pbyBPc3BpdGUgPG9zcGl0ZUBzdHVkZW50aS51bmluYS5pdD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiByZW5hbWUgdGhlICJzYW1wbGVyYXRlIiB2YXJpYWJsZSB0byBtYWtlIGV4YW1wbGUgY29kZSBjb21waWxhYmxlCgkgIEluIG9uZSBvZiB0aGUgZXhhbXBsZXMgYWJvdXQgZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkgdGhlcmUgaXMgYSB2YXJpYWJsZQoJICBkZWNsYXJlZCBhcyAicmF0ZSIsIGJ1dCB0aGVuIHRoZSBuYW1lICJzYW1wbGVyYXRlIiBpcyB1c2VkIHdoZW4gc2V0dGluZwoJICB0aGUgY2Fwcy4KCSAgVXNlIHRoZSBuYW1lICJyYXRlIiBldmVyeXdoZXJlIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwODc2CgoyMDEzLTEwLTI5IDE4OjA5OjMyICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBkb2M6IGZpeCBmb3J3YXJkIHJlZmVyZW5jZSBhYm91dCBnaG9zdCBwYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEwODkKCjIwMTMtMTAtMjggMTI6NTU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICBkb2NzOiBkZXNpZ246IGZpeCBzb21lIGZpeGVzCgoyMDEzLTEwLTI2IDA5OjQ4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3QtdW5pbnN0YWxsZWQgZW50cnkgaW4gZmFxIHNvbWUgbW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5OTE2CgoyMDEzLTEwLTE2IDE1OjAwOjQxICswMjAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogRkFRIHVwZGF0ZSB0byBtZW50aW9uIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5OTE2CgoyMDEzLTEwLTI1IDIxOjI5OjAxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBzbWFsbCBjbGVhbnVwcyBhbmQgdXNlIG9iamVjdCBsb2cgdmFyaWFudHMgbW9yZQoKMjAxMy0xMC0yNSAyMToyODozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBwcml2YXRlOiByZW1vdmUgbGVmdC1vdmVyIGNvbW1lbnQKCSAgVGhlIGNhcHMgYXJlIHNhdmVkIGluIHRoZSByZWdpc3RyeS4KCjIwMTMtMTAtMjUgMTg6NTE6NTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHVzZSBnX3NsaWNlX2ZyZWUgZm9yIHNsaWNlIG1lbW9yeQoJICBBdm9pZCBtZW1vcnkgbGlzdCBjb3JydXB0aW9uLCBidXQgZ19mcmVlJ2luZyBzbGljZSBtZW1vcnkuCgoyMDEzLTEwLTIzIDE4OjE2OjU0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogZmxlc2ggb3V0IHRoZSB0cmFjaW5nIGRlc2lnbiBhIGxpdHRsZSBtb3JlCgoyMDEzLTEwLTI1IDExOjAyOjE5IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggdHlwb3MgaW4gZ3N0b2JqZWN0CgoyMDEzLTEwLTIxIDE4OjAxOjIxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZXRhLnR4dAoKMjAxMy0xMC0xNCAyMjowMzo1MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWVsZW1lbnQtc291cmNlLnR4dAoKMjAxMy0xMC0xNCAyMTo1NDozMSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1zaW5rLnR4dAoKMjAxMy0xMC0xNCAxODo0Mzo0MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnZlbnRpb25zLnR4dAoKMjAxMy0xMC0xNCAxODozNDowNiAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udHJvbGxlci50eHQKCjIwMTMtMTAtMTQgMTg6MjQ6MTggLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnRleHQudHh0CgoyMDEzLTEwLTE0IDE4OjEzOjM1IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNsb2Nrcy50eHQKCjIwMTMtMTAtMTQgMTg6MDU6NDMgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNhcHMudHh0CgoyMDEzLTEwLTE0IDE3OjQ0OjI3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlci50eHQKCjIwMTMtMTAtMTQgMTc6Mjk6MTkgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlcnBvb2wudHh0CgoyMDEzLTEwLTE0IDA1OjM5OjE5IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWJ1ZmZlcmluZy50eHQKCjIwMTMtMTAtMTMgMjE6MTY6NDcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZXNzYWdlcy50eHQKCjIwMTMtMTAtMTMgMjA6NDI6NDAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWVtb3J5LnR4dAoKMjAxMy0xMC0xOCAwODo1ODowNSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBuZXQ6IENvbnN0aWZ5IGEgcGFyYW1ldGVyIHRvIGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldygpCgkgIEV2ZW4gdGhvdWdoIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkLCBpdCBzaG91bGQgYmUgY29uc3QgdG8gZml0IGluIHdpdGggdGhlCgkgIGNvZGluZyBzdGFuZGFyZHMgZm9yIG90aGVyIHNpbWlsYXIgcGFyYW1ldGVycy4gQ2xpZW50IGNvZGUgYWxyZWFkeSBwYXNzZXMgaW4KCSAgY29uc3Qgc3RyaW5ncyB1bmRlciB0aGUgZXhwZWN0YXRpb24gdGhhdCB0aGV5IHdvbuKAmXQgYmUgbW9kaWZpZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0NDIKCjIwMTMtMTAtMTUgMTE6NDQ6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogTWFrZSBzdXJlIHRvIGluY2x1ZGUgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgZ2xpYi1jb21wYXQtcHJpdmF0ZS5oCgkgIFdlIG5lZWQgdG8gZGVmaW5lIHRoZSBHTGliIGxvZyBkb21haW4gYmVmb3JlIGluY2x1ZGluZyBnbGliLmgsIHdoaWNoIGlzCgkgIGluY2x1ZGVkIGJ5IGdsaWItY29tcGF0LXByaXZhdGUuaC4KCjIwMTMtMTAtMTQgMTg6MDc6MTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCB0byBzZWN0aW9ucy50eHQKCSAgU28gaXQgYXBwZWFycyBpbiB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24KCjIwMTMtMDktMjkgMTc6MzU6MTEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzL2ZpbGVzcmM6IFNldCBsb2NhdGlvbiBpbiB3cm9uZyBzdGF0ZQoJICBBbHNvIHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudCBhYm91dCBjb2RlIHBvc3NpYmx5IG5vdCBiZWluZyByZWFjaGFibGUKCSAgdGhhdCBpcyBub3cgZXhlcmNpc2VkIGJ5IHRoZSBmaWxlc3JjIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTgzMQoKMjAxMy0xMC0xMiAxNjoxNjowOSArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IEZpeCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgcGFyc2VfbGF1bmNoIGZ1bmN0aW9ucy4KCSAgZ3N0X3BhcnNlX2xhdW5jaHYsIGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwgYW5kIGdzdF9wYXJzZV9sYXVuY2hfZnVsbAoJICBhbGwgcmV0dXJuIGZsb2F0aW5nIHJlZnMsIHRoZSBzYW1lIGFzIGdzdF9wYXJzZV9sYXVuY2gsIHdoaWNoIGp1c3QKCSAgY2FsbHMgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsIGludGVybmFsbHkgYW55d2F5LgoJICBBZGQgYSB1bml0IHRlc3QgYXNzZXJ0aW9uIHRvIGNoZWNrIGl0J3MgdHJ1ZS4KCSAgU3BvdHRlZCBieSBuZW1lcXUgb24gSVJDLgoKMjAxMy0xMC0xMCAwODozMDoyNyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSAgY29yZTogRml4IG1heCBERUJVR19MRVZFTCBpbmNvbmdydWVuY2Ugb24gNSB2cyA5CgkgIEluIHRoZSBkb2NzIGFuZCB0aGUgYXV0b2NvbXBsZXRpb24gbG9naWMgdGhlIG1heGltdW0KCSAgdmFsdWUganVtcGVkIGluY29uZ3J1ZW50bHkgYmV0d2VlbiA1IGFuZCA5LgoKMjAxMy0xMC0xMCAxMzoxOTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2tpcCB0ZXN0X3N1YnNldF9kdXBsaWNhdGlvbiB1bnRpbCB0aGUgYnVnIGlzIGZpeGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTAtMTAgMTI6NTY6NTQgKzAyMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGRvY3M6IEZpeCBzb21lIHJlZmVyZW5jZSBVUklzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4MDQKCjIwMTMtMTAtMDIgMTM6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCBhIHRlc3RjYXNlIGZvciBzdWJzZXQgY2hlY2tzIG9uIGxpc3RzIHdpdGggZHVwbGljYXRlZCBpdGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTEwLTA5IDE1OjM2OjQ4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBDYWxsIHRoZSBjb2xsZWN0ZWQgZnVuY3Rpb24gd2hpbGUgaXQgcmV0dXJucyBGTE9XX09LCgkgIFRoaXMgYWxsb3dzIHVzIHRvIG1ha2Ugc3VyZSB0aGUgZWxlbWVudHMgaXMgRU9TIGFuZCBkb2VzIG5vdCBoYXZlCgkgIHJlbWFpbmluZyBidWZmZXJzIHRvIGJlIGRyYWluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk2MzcKCjIwMTMtMTAtMDUgMTA6MDg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IGZpeCBmdW5jdGlvbiBuYW1lIGluIHFvcyBkZXNpZ24gZG9jcwoKMjAxMy0xMC0wMiAxMjozMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IHVzZSB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgdG8gc2tpcCBicm9rZW4gbXVsdGlxdWV1ZSB0ZXN0CgkgIFNvIHRoYXQgd2UgZ2V0IGEgd2FybmluZyBpbiB0aGUgb3V0cHV0IHRoYXQgcmVtaW5kcyB1cyB0aGF0CgkgIHNvbWV0aGluZyBuZWVkcyB0byBiZSBmaXhlZC4KCjIwMTMtMTAtMDIgMTE6MjQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBjaGVjazogRGlzYWJsZSBtdWx0aXF1ZXVlIHRlc3Rfb3V0cHV0X29yZGVyIGNoZWNrCgkgIFRoZSBjaGVjayBpdHNlbGYgaXMgcmFjeS4KCSAgKENLX0ZPUks9bm8gR1NUX0NIRUNLPXRlc3Rfb3V0cHV0X29yZGVyIG1ha2UgZWxlbWVudHMvbXVsdGlxdWV1ZS5mb3JldmVyKS4KCSAgVGhlIHByb2JsZW0gaXMgaW5kZWVkIHRoZSB0ZXN0IGFuZCBub3QgdGhlIGFjdHVhbCBlbGVtZW50IGJlaGF2aW91ci4KCSAgVGhlIG9iamVjdHMgdG8gcHVzaCBhcmUgYmVpbmcgcHVsbGVkIG91dCBvZiB0aGUgc2luZ2xlIGludGVybmFsIHF1ZXVlcyBpbiB0aGUKCSAgcmlnaHQgb3JkZXIgYW5kIGF0IHRoZSByaWdodCB0aW1lLi4uCgkgIEJ1dCBiZXR3ZWVuOgoJICAqIHRoZSBtb21lbnQgdGhlIGdsb2JhbCBtdWx0aXF1ZXVlIGxvY2sgaXMgcmVsZWFzZWQgKHdoaWNoIHdhcyB1c2VkIHRvIGRldGVjdAoJICBpZiB3ZSBzaG91bGQgcG9wIGFuZCBwdXNoIGRvd25zdHJlYW0gdGhlIG5leHQgYnVmZmVyKQoJICAqIGFuZCB0aGUgbW9tZW50IGl0IGlzIHJlY2VpdmVkIGJ5IHRoZSBzb3VyY2UgcGFkICh3aGljaCBkb2VzIHRoZSBjaGVjaykKCSAgPT4gYW5vdGhlciBzaW5nbGUgcXVldWUgKGxpa2UgdGhlIHVubGlua2VkIHBhZCkgbWlnaHQgcG9wIGFuZCBwdXNoIGEgYnVmZmVyCgkgIGRvd25zdHJlYW0KCSAgV2hhdCBzaG91bGQgd2UgZG8gPyBQdXR0aW5nIGEgYmlnZ2VyIG1hcmdpbiBvZiBlcnJvciAoc2F5IDUgYnVmZmVycykgZG9lc24ndAoJICBoZWxwLCBpdCdsbCBldmVudHVhbGx5IGZhaWwuCgkgIEkgY2FuJ3Qgc2VlIGhvdyB3ZSBjYW4gZGV0ZWN0IHRoaXMgcmVsaWFibHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjEKCjIwMTMtMDktMjUgMTk6MDY6NTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY2FwcyBzZXJpYWxpemF0aW9uIHdoZW4gdGhlcmUgYXJlIGNhcHMgaW5zaWRlIGNhcHMKCSAgV3JhcCBjYXBzIHN0cmluZ3Mgc28gdGhhdCBpdCBjYW4gaGFuZGxlIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbgoJICBvZiBjYXBzIGluc2lkZSBjYXBzLiBPdGhlcndpc2UgdGhlIHZhbHVlcyBmcm9tIHRoZSBpbnRlcm5hbCBjYXBzIGFyZSBwYXJzZWQKCSAgYXMgaWYgdGhleSB3ZXJlIGZyb20gdGhlIHVwcGVyIG9uZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NzcyCgoyMDEzLTA5LTI4IDA4OjQwOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IENoZWNrIGVycm9ycyBvbiB0aGUgcHJvcGVyIGZkCgkgIE1vc3QgbGlrZWx5IGEgY29weS1wYXN0ZSBlcnJvciBmcm9tIHRoZSBibG9jayBiZWZvcmUuCgkgIElmIHdlJ3JlIGdvaW5nIHRvIGNoZWNrIGZvciBlcnJvci9jbG9zZWQgb24gdGhlIHdyaXRlIGZkLi4uIGRvIGl0CgkgIG9uIHRoZSB3cml0ZSBmZAoKMjAxMy0wOS0yNiAxNDowOTowMiAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggc3BlbGxpbmcgb2YgImdlbmVyaWMiIGluIEdzdEJhc2VTcmMncyBkb2N1bWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4ODcwCgoyMDEzLTA5LTI2IDExOjMyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgY2hlY2sgZXZlbnQgb3JkZXIgd2hlbiBzb21ldGhpbmcgY2hhbmdlZAoJICBDaGVjayB0aGUgZXZlbnQgb3JkZXIgaW4gZGF0YWZsb3cgb25seSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VkIGluc3RlYWQKCSAgb2YgZm9yIGVhY2ggYnVmZmVyLgoKMjAxMy0wOS0yNCAxODoyODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YjAzYmE3IHRvIDg2NWFhMjAKCjIwMTMtMDktMjQgMTU6MDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBY3R1YWxseSB1c2UgMS4zLjAuMSBhcyB2ZXJzaW9uIHRvIG1ha2UgY29uZmlndXJlIGhhcHB5CgoyMDEzLTA5LTI0IDE1OjAwOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMi4wID09PQoKMjAxMy0wOS0yNCAxNDowNzowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMi4wCgoyMDEzLTA5LTI0IDE0OjA2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA5LTI0IDEzOjEwOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBBZGQgdGVzdCBmb3IgdGhlIGNvbnRleHQgY2FjaGluZyBpbiBHc3RCaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2OAoKMjAxMy0wOS0yNCAxMjo0Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIFJldmVydCAiUG90ZW50aWFsIEdzdENvbnRleHQgcmVncmVzc2lvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlNjU4Mzc5NTM0ZWI0YTkwYjY1NGQ5MGYxZDBiZGY4NmYzN2M2ZTMxLgoJICBUaGlzIHRlc3QgY29tbWl0IHNob3VsZCd2ZSBuZXZlciBiZWVuIHB1c2hlZC4gT29wcy4KCjIwMTMtMDktMjQgMTI6NDY6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgdG8gY2FjaGUgY29udGV4dCB0eXBlcyB0aGF0IHdlIGRpZCBub3Qgc3RvcmUgeWV0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjgKCjIwMTMtMDktMjQgMTA6Mjk6MDYgKzAxMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBQb3RlbnRpYWwgR3N0Q29udGV4dCByZWdyZXNzaW9uCgkgIFNpbmNlIHRoZSByZWZhY3RvcmluZyBvZiBHc3RDb250ZXh0IChjb21taXRzCgkgIHFjOWZhMjc3MWI1MDhlOWFhZWVjYzcwMGU2NmU5NTgxOTA0NzZmLAoJICBhN2Y1ZGM4YjhhZjgzN2YwMTc4MmQxNTcyMzc5OTQ4ZmY2MmRhYWI3LAoJICA2OTAzMjZmOTA2ZGM4MmU0MWVhNThiODFjZGIyZTNlODhiNzU0LAoJICBkMzY3ZGMxYjBkNGVjYjM3ZjRkMjcyNjdlMDNkN2JmMGM2YzA2YTYsIGFuZAoJICA4MmQxNThhZWQzZjJlODU0NWUxZTdkMzUwODUwODVmZjU4ZjE4KSBJIGFtIG5vIGxvbmdlciBhYmxlIHRvIGdldAoJICBhIHNoYXJlZCBjb250ZXh0IGZvciBhbiBlbGVtZW50IHRoYXQgaXMgdXNlZCB0d2ljZSBpbiBhIHBpcGVsaW5lLgoJICBJIHVzZWQgdGhlIGRvY3VtZW50YXRpb24gYW5kIGVnbGdsZXNzaW5rIGFzIG15IHJlZmVyZW5jZSBmb3IKCSAgaW1wbGVtZW50aW5nIHRoZSBHc3RDb250ZXh0IGxvZ2ljLgoJICBBcyB0aGUgY29kZSB3YXMgdGllZCB0byBhIGhhcmR3YXJlIGRlY29kZXIsIEkgaGF2ZSBwb3J0ZWQgdGhlCgkgIEdzdENvbnRleHQgY29kZSB0byBmYWtlc2luayB0byBzaG93IHRoZSBwcm9ibGVtLiBVc2luZyB0aGUgb2xkCgkgIEFQSSBhIHNpbmdsZSBFeGFtcGxlTWdyIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGJ1dCB1c2luZyB0aGUgbmV3CgkgIEFQSSBlYWNoIGVsZW1lbnQgaXMgY3JlYXRpbmcgaXRzIG93biBpbnN0YW5jZS4KCjIwMTMtMDktMjQgMTA6NDI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBvYmplY3QgbG9jayBpcyBhbHdheXMgdGFrZW4gd2hlbiBhY2Nlc3NpbmcgdGhlIHByaXZhdGUgcGFkIGxpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYzNgoKMjAxMy0wOS0xNyAyMzoyMzozNCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIHByaXZhdGUgcGFkIGxpc3QgaW4gc2V0X2ZsdXNoaW5nX3VubG9ja2VkCgkgIHBhZHMtPmRhdGEgaXMgdGhlIHB1YmxpYyBsaXN0LiBJdCBpcyBkeW5hbWljYWxseSByZWJ1aWx0IGF0IGVhY2ggY2FsbCB0bwoJICBjaGVja19jb2xsZWN0ZWQsIGluIGNoZWNrX3BhZHMgdG8gYmUgc3BlY2lmaWMuIFdoZW4geW91IGFkZCBhIHBhZCBhbmQKCSAgY29sbGVjdHBhZHMgaGF2ZSBiZWVuIHN0YXJ0ZWQsIGl0IGlzIG5vdCBhZGRlZCB0byB0aGUgcHVibGljIGxpc3QuCgkgIFRodXMgdGhlcmUgZXhpc3RzIGEgcG9zc2libGUgcmFjZSB3aGVyZSA6CgkgIDEpIFlvdSB3b3VsZCBhZGQgYSBwYWQgdG8gY29sbGVjdHBhZHMgd2hpbGUgcnVubmluZy4KCSAgMikgWW91IHNldCBjb2xsZWN0cGFkcyB0byBmbHVzaGluZyBiZWZvcmUgY2hlY2tfY29sbGVjdGVkIGhhcyBiZWVuIGNhbGxlZCBhZ2FpbgoJICAtPiB0aGUgcGFkIGlzIG5vdCBzZXQgdG8gZmx1c2hpbmcKCSAgMykgdGhlIHBhZCBzdGFydHMgcHVzaGluZyBkYXRhIGFzIGRvd25zdHJlYW0gbWlnaHQgbm90IGJlIHByZXBhcmVkLCBpbiB0aGUgY2FzZQoJICBvZiBhZGRlciBpdCB0aGVuIHJldHVybnMgRkxPV19GTFVTSElORy4KCSAgNCkgZWxlbWVudHMgbGlrZSBkZW11eGVycywgd2hlbiB0aGV5IGdldCBhIEZMT1dfRkxVU0hJTkcsIHN0b3AgdGhlaXIgdGFza3MsCgkgIG5ldmVyIHRvIGJlIHNlZW4gYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MzYKCjIwMTMtMDktMjMgMTE6NDc6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdHM6IGhhbmRsZSB1bnNjaGVkdWxlZCBlbnRyaWVzIGNvcnJlY3RseQoJICBNYWtlIHRoZSB0ZXN0Y2xvY2sgcmV0dXJuIEdTVF9DTE9DS19VTlNDSEVEVUxFRCB3aGVuIGFuIHVuc2NoZWR1bGVkIGVudHJ5IGlzCgkgIHVzZWQgZm9yIGdzdF9jbG9ja193YWl0KCkgb3IgZ3N0X2Nsb2NrX3dhaXRfYXN5bmMoKS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYwNQoKMjAxMy0wOS0yMiAxMTowOTozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFsbG93IHNwZWNpZnlpbmcgdGhlIGNoZWNrb3V0IGRpcmVjdG9yeSBieSBlbnYgdmFyaWFibGUKCSAgRm9yIHNvbWUgcmFyZSBjYXNlcywgb25lIG1pZ2h0IG5vdCBiZSBhYmxlIHRvIHVzZSB0aGUgaGFyZGNvZGVkICRIT01FL2dzdAoJICBsb2NhdGlvbiB5ZXQgd291bGQgc3RpbGwgd2FudCB0byB1c2UgdGhlIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgYXMtaXMgKHdoaWNoCgkgIGhhcyB0aGUgYmVuZWZpdCBvZiBiZWluZyBjb25zdGFudGx5IHVwZGF0ZWQpLgoJICBGb3IgdGhlc2UgY2FzZXMsIHRoZSBjaGVja291dCBkaXJlY3RvcnkgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZQoJICBHU1RfVU5JTlNUQUxMRURfUk9PVCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgRXg6CgkgIGV4cG9ydCBHU1RfVU5JTlNUQUxMRURfUk9PVD0kSE9NRS9zb21ld2hlcmUvd2l0aC9jaGVja291dHMKCSAgQW5kIHRoZW4ganVzdCBjYWxsIGdzdC11bmluc3RhbGxlZCBkaXJlY3RseToKCSAgJEdTVF9VTklOU1RBTExFRF9ST09UL2dzdHJlYW1lci9nc3QtdW5pbnN0YWxsZWQKCjIwMTMtMDktMjAgMTY6MTY6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNjEzNjYxIHRvIDZiMDNiYTcKCjIwMTMtMDktMTkgMTg6NDI6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDc0YTY4NTcgdG8gYjYxMzY2MQoKMjAxMy0wOS0xOSAxNzozNDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTJhZjEwNSB0byA3NGE2ODU3CgoyMDEzLTA5LTE5IDE3OjEyOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiB0ZXN0Y2xvY2s6IGZpeCBmdW5jdGlvbiBndWFyZHMKCSAgU2hvdWxkIGJlIGdfcmV0dXJuXyooKSBub3QgZ19hc3NlcnQoKSwgZXZlbiBpZiBpdCdzIGZvciB0ZXN0cyBvbmx5LgoKMjAxMy0wOS0xOSAxNjo0MzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogdGVzdGNsb2NrOiBkb24ndCBwdXQgY29kZSB3aXRoIHNpZGUtZWZmZWN0cyBpbiBnX2Fzc2VydCgpCgkgIEZpeGVzIHVuaXQgdGVzdCBmYWlsdXJlcyB3aGVuIC1ER19ESVNBQkxFX0FTU0VSVCBpcyB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NTUxCgoyMDEzLTA5LTE5IDEyOjA3OjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGdzdGNvbnRleHQ6IEZpeCByZXR1cm4gdmFsdWVzIHNvbWUgbW9yZQoJICBSZXR1cm4gdmFsdWUgaXMgYSBib29sZWFuIG5vdCBhIHBvaW50ZXIKCjIwMTMtMDktMTkgMTE6NDk6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEZpeCByZXR1cm4gdmFsdWVzIGZvciBnc3RfY29udGV4dF9oYXNfY29udGV4dF90eXBlKCkgaW4gYXNzZXJ0aW9ucwoKMjAxMy0wOS0xOSAxMTozNDo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuOTAgPT09CgoyMDEzLTA5LTE5IDEwOjQ4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuOTAKCjIwMTMtMDktMTkgMTA6MDU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDktMTkgMDk6NDk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBBZGQgY29udmVuaWVuY2UgZnVuY3Rpb24gZ3N0X2NvbnRleHRfaGFzX2NvbnRleHRfdHlwZSgpCgoyMDEzLTA5LTE5IDA5OjQyOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wOS0xOCAyMzowNzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogSW1wbGVtZW50IGdldHRpbmcgdGhlIG5hbWUgb2YgdGhlIGNvbnRleHQgbWVzc2FnZSB0eXBlcwoKMjAxMy0wOS0xNyAyMTozNjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEZpeCB1bml0IHRlc3QgZm9yIEdzdENvbnRleHQgY2hhbmdlcwoKMjAxMy0wOS0xNyAxNDozNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVcGRhdGUgZm9yIEdzdENvbnRleHQgY2hhbmdlcwoKMjAxMy0wOS0xNyAxNDoyOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IFVwZGF0ZSBkb2NzCgoyMDEzLTA5LTE3IDE0OjI1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW1wbGVtZW50IGNvbnRleHQgY2FjaGluZyBhbmQgcHJvcGFnYXRpb24gYWdhaW4KCjIwMTMtMDktMTcgMTM6NTA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtZXNzYWdlL3F1ZXJ5OiBTaW1wbGlmeSBDT05URVhUIG1lc3NhZ2VzL3F1ZXJpZXMgdG8gb25seSBjb250YWluIGEgc2luZ2xlIHR5cGUKCjIwMTMtMDktMTcgMTM6MzM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IFVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEzLTA5LTE3IDEzOjI4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBjb250ZXh0OiBDaGFuZ2UgR3N0Q29udGV4dCB0byBjb250YWluIG9ubHkgYSBzaW5nbGUgY29udGV4dAoJICBJdCB3YXMgdW5pbnR1aXRpdmUgdGhhdCBHc3RDb250ZXh0IHdhcyBhY3R1YWxseSBhIGxpc3Qgb2YgZGlmZmVyZW50CgkgIGNvbnRleHRzLiBHc3RDb250ZXh0IG5vdyBpcyBvbmx5IGEgdHlwZSBzdHJpbmcgYW5kIGEgc3RydWN0dXJlIHRvCgkgIGNvbnRhaW4gdGhlIGFjdHVhbCBjb250ZXh0LgoKMjAxMy0wOS0xNyAxMzoxMjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBSZW1vdmUgR3N0Q29udGV4dCBjYWNoaW5nCgoyMDEzLTA5LTE3IDEzOjEwOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBBZGQgcGVyc2lzdGVudCBxdWFsaWZpZXIgZm9yIGEgY29udGV4dAoJICBOb24tcGVyc2lzdGVudCBjb250ZXh0cyBhcmUgcmVtb3ZlZCB3aGVuIGVsZW1lbnRzIGdvIGJhY2sKCSAgdG8gTlVMTCBzdGF0ZSwgcGVyc2lzdGVudCBjb250ZXh0cyBhcmUgbm90LiBBcHBsaWNhdGlvbnMKCSAgbW9zdCBsaWtlbHkgd2FudCB0byBzZXQgcGVyc2lzdGVudCBjb250ZXh0cy4KCjIwMTMtMDktMTcgMTM6MTA6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogTWFrZSBDT05URVhUIHF1ZXJ5IHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtCgoyMDEzLTA5LTE3IDEzOjA5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IFJlbW92ZSBDT05URVhUIGRvd25zdHJlYW0gZXZlbnQKCSAgVGhpcyBpcyBnb2luZyB0byBiZSBpbXBsZW1lbnRlZCB3aXRoIGFuIHVwc3RyZWFtIHF1ZXJ5IGluc3RlYWQKCSAgZm9yIGNvbnNpc3RlbmN5IGFuZCBzaW1wbGljaXR5LgoKMjAxMy0wOS0xMyAxNDo0MTo0NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogU3RvcCBhbGwgdW51c2VkIHRocmVhZHMgaW4gR1RocmVhZFBvb2wgaW4gZ3N0X2RlaW5pdCgpCgkgIFNpbmNlIHRoZSBkZWZhdWx0IG51bWJlciBvZiBtYXggdW51c2VkIHRocmVhZHMgaW4gR1RocmVhZFBvb2wgaGFzIGJlZW4KCSAgY2hhbmdlZCBmcm9tIDAgdG8gMiBpdCBuZWVkcyB0byBiZSBzZXQgdG8gMCB0byBzdG9wIGFsbCB0aHJlYWRzIG9yCgkgIHZhbGdyaW5kIHdpbGwgcmVwb3J0IHRoZW0gYXMgbWVtb3J5IGxlYWtzLgoKMjAxMy0wOS0xMCAxNjozOTozMCArMDEwMCAgUmljbyBUenNjaGljaGhvbHogPHJpY290ekB0LW9ubGluZS5kZT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBmaXggcHNwZWMgcmVsYXhhdGlvbiBmb3IgY29udHJvbCBzb3VyY2UgcHJvcGVydGllcwoJICBUaGUgY2hhbmdlIHNob3VsZCBoYXZlIGJlZW4gZnJvbSBQQVJBTV9DT05TVFJVQ1RfT05MWSB0bwoJICBQQVJBTV9DT05TVFJVQ1QsIG90aGVyd2lzZSBiaW5kaW5ncyBhcmUgYWZmZWN0ZWQsIHNpbmNlCgkgIHRoZXkgbG9vayBmb3IgdGhlIENPTlNUUlVDVCBmbGFnLgoJICBTZWUgZWM1NTM2M2QKCjIwMTMtMDktMTAgMTA6MTU6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogT25seSB1cGRhdGUgY3VycmVudCBsZXZlbCBpZiB3ZSBhbHJlYWR5IGRvd25sb2FkZWQgYSByYW5nZQoJICBPdGhlcndpc2UgcXVldWUtPmxldmVsIGlzIE5VTEwgYW5kIGRlcmVmZXJlbmNpbmcgdGhhdCBpcyBub3QgYSBnb29kCgkgIGlkZWEgaW4gZ2VuZXJhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzY0OAoKMjAxMy0wOS0wOSAxNTo0MDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogRGVwcmVjYXRlIEdTVF9NRVRBX1RBR19NRU1PUlkKCSAgVGhlIEdRdWFya3MgYXJlIG5vdCBleHBvcnRlZCBieSBhbnkgcHVibGljIEFQSQoKMjAxMy0wOC0yMiAwMDowMjoyOCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IEFkZCBhICNkZWZpbmUgZm9yIG1lbW9yeSBtZXRhZGF0YQoKMjAxMy0wOC0yMiAwMDowMTo0NCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcGxlbWVudCBhIGRlZmF1bHQgdHJhbnNmb3JtX21ldGEuIElmIGEgbWV0YWRhdGEgaGFzIG5vIGRlcGVuZGVuY3kgYXMgc2hvd24gYnkgdGhlIHRhZ3MsIGNvcHkgaXQuCgoyMDEzLTA4LTIyIDIxOjMyOjM2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBBUEk6IEFkZCBnc3RfbWV0YV9hcGlfdHlwZV9nZXRfdGFncygpIHRvIGdldCBhbGwgbWV0YSB0YWdzLgoKMjAxMy0wOS0wOSAxNDoyMTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0cy9jYXBzZmlsdGVyOiBGaXggbWVtb3J5IGxlYWsgYW5kIGNvbXBhcmUgY2FwcyBkaXJlY3RseSBpbnN0ZWFkIG9mIHN0cmNtcCgpCgoyMDEzLTA5LTA2IDIzOjAzOjU0ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHMvY2Fwc2ZpbHRlcjogVGVzdCBjYXBzLXJlbGF0ZWQgcXVlcmllcyBhbmQgcHJvcGVydHkKCjIwMTMtMDktMDYgMTU6MDk6NDYgLTAzMDAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIFVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXRlIGJlZm9yZSBzdGFsbGluZyBmb3IgbW9yZSBkYXRhCgkgIEluIHNvbWUgY2FzZXMgdGhlIHdhaXQgZm9yIG1vcmUgZGF0YSB3YXMgaGFwcGVuaW5nIHdpdGhvdXQgdXBkYXRpbmcKCSAgdGhlIGJ1ZmZlcmluZyBzdGF0ZSwgbWVhbmluZyB0aGUgQVBJIHVzZXIgd291bGQgbm90IGJlIGFibGUgdG8gbm90aWNlCgkgIGl0IHNob3VsZCBwYXVzZSB0aGUgcGlwZWxpbmUgYW5kIHVwZGF0ZSBVSSB0byBpbmRpY2F0ZSB0aGF0IGlzIHRoZQoJICBjYXNlLCB0aGUgdmlkZW8gd291bGQgbGlrZWx5IHN0dXR0ZXIgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzY0OAoKMjAxMy0wOS0wNCAxNToyODoxMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXNlcnZlIHNlcW51bSBvbiBzZWdtZW50cyBhZnRlciBzZWVrcwoJICBUaGUgc2VxbnVtIG9mIHRoZSBzZWdtZW50IGFmdGVyIGEgc2VlayBzaG91bGQgYmUgdGhlIHNhbWUgb2YKCSAgdGhlIHNlZWsgZXZlbnQuIERvd25zdHJlYW0gZWxlbWVudHMgbWlnaHQgcmVseSBvbiBzZXFudW1zIHRvCgkgIGlkZW50aWZ5IGV2ZW50cyByZWxhdGVkIHRvIGEgc2Vlay4KCSAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHdoZW4gYSBkZW11eGVyIG1hcHMgYSBUSU1FIHNlZWsKCSAgaW50byBhIEJZVEVTIHNlZWsgZm9yIHVwc3RyZWFtIGFuZCBpdCBuZWVkcyB0byBpZGVudGlmeSB0aGUKCSAgY29ycmVzcG9uZGluZyBzZWdtZW50IGV2ZW50IGFuZCBtYXAgaXQgYmFjayBpbnRvIFRJTUUgdG8gcHVzaAoJICBkb3duc3RyZWFtLCBwb3NzaWJseSB1c2luZyB0aGUgdmFsdWVzIGZyb20gdGhlIG9yaWdpbmFsIHNlZWsKCSAgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc1MzAKCjIwMTMtMDktMDUgMTQ6MTQ6NDIgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcm1lcmFsaUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCB1bnJlZiBOVUxMIEdzdENvbGxlY3REYXRhCgkgIElmIGEgcGFkIGlzIHJlbW92ZWQgd2hpbGUgYSBjb2xsZWN0cGFkcyBlbGVtZW50IChzYXkgYWRkZXIpIGlzIGluIGEgY2hhaW4KCSAgZnVuY3Rpb24gd2FpdGluZyB0byBiZSBjb2xsZWN0ZWQsIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdCBhbiB1bnJlZiBoYXBwZW5zCgkgIG9uIGEgTlVMTCBwb2ludGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NTM2CgoyMDEzLTA5LTA0IDE3OjExOjIwICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbmcub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFJlbW92ZSBQeVhNTCBmcm9tIHNwZWMgZmlsZSwgaXQgaXMgbm90IGxvbmdlciBuZWVkZWQKCjIwMTMtMDktMDQgMTQ6NDA6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBZGQgbWlzc2luZyBicmVhayBhZnRlciBoYW5kbGluZyB0aGUgR0FQIGV2ZW50CgkgIFRoYW5rcyB0byBFZHdhcmQgSGVydmV5IGZvciBub3RpY2luZy4KCjIwMTMtMDktMDQgMDk6MTg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgdG9vbHM6IG1vdmUgZ3N0LXBsb3QtdGltZWxpbmUucHkgaW50byBzY3JpcHRzIGRpcmVjdG9yeQoJICBTbyBpdCdzIG5vdCBpbiBQQVRIIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwICh0aHdhcnRpbmcKCSAgZ3N0LXBsYXkgYXV0b2NvbXBsZXRpb24pLgoKMjAxMy0wOS0wMyAyMzo1OTowNSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCByZWR1Y2Ugc2luZ2xlIHF1ZXVlIHZpc2libGUgc2l6ZSBiZWxvdyBpdHMgY3VycmVudCBsZXZlbAoJICBJZiB0aGUgbXVsdGlxdWV1ZSBoYXMgYXV0b21hdGljYWxseSBncm93biBjaGFuY2VzIGFyZSBnb29kIHRoYXQKCSAgd2Ugd2lsbCBjYXVzZSB0aGUgcGlwZWxpbmUgdG8gc3RhcnZlIGlmIHRoZSBtYXhpbXVtIGxldmVsIGlzIHJlZHVjZWQKCSAgYmVsb3cgdGhhdCBhdXRvbWF0aWNhbGx5IGdyb3duIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxNTYKCjIwMTMtMDktMDIgMTM6NTM6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IERvbid0IGFkanVzdCBzZWdtZW50LT5zdGFydCB0byB0aGUgY3VycmVudCB0aW1lIHdoZW4gc3dpdGNoaW5nIHBhZHMKCSAgVGhpcyBkb2VzIG5vdCBtYWtlIGFueSBzZW5zZSBhdCBhbGwgYW5kIGJyZWFrcyB0aW1lc3RhbXAtPnJ1bm5pbmdfdGltZQoJICBjYWxjdWxhdGlvbnMgaW4gdW5wcmVkaWN0YWJsZSB3YXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MTMwCgoyMDEzLTA4LTI5IDIzOjE4OjMxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRGVsZXRlIGxpbmsgZGlyZWN0bHkgaW4gcGVuZGluZ19ldmVudHMuCgkgIFdoZW4gcmVtb3ZpbmcgYSBzZWdtZW50IGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MDg4CgoyMDEzLTA4LTI5IDExOjA3OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZGVtb3RlIGxvZyBtZXNzYWdlLCBkb24ndCBzcGFtIElORk8gbGV2ZWwgd2hlbiBoYW5kbGluZyBidWZmZXIgbGlzdHMKCjIwMTMtMDgtMjggMTM6MjY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjQgPT09CgoyMDEzLTA4LTI4IDEyOjM2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuNAoKMjAxMy0wOC0yOCAxMjozNjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOC0yOCAxMjozMDowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDgtMjcgMDk6MzE6MjIgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogcGxlYXNlIGdjYyAoYXZvaWQgYSB3YXJuX3VudXNlZF9yZXN1bHQgd2FybmluZykKCjIwMTMtMDgtMjcgMDc6NTE6MzUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICBmaWxlc2luazogZmx1c2ggKGRpc2NhcmQgZGF0YSkgb24gRkxVU0hfU1RPUAoJICBSZXNldCB0aGUgd3JpdGUgcG9zaXRpb24gdG8gMCBhbmQgdHJ1bmNhdGUgdGhlIGZpbGUgb24gRkxVU0hfU1RPUC4KCjIwMTMtMDgtMjcgMDc6MDU6MTEgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGZpbGVzaW5rOiBzbWFsbCByZWZhY3RvcmluZwoKMjAxMy0wOC0yNiAxMzoxOToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGRvbid0IHByaW50IHByb3BlcnRpZXMgYmVpbmcgcmVzZXQgd2hlbiBzaHV0dGluZyBkb3duCgkgIEl0J3MganVzdCBub2lzZS4KCjIwMTMtMDgtMjIgMTk6MDE6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHB1c2ggb3V0IGlkZW50aWNhbCBjYXBzCgkgIFRoaXMgYXZvaWRzIHRyaWdnZXJpbmcgcGxlbnR5IG9mIGV4dHJhIGNvZGUvbWV0aG9kcy9vdmVyaGVhZCBkb3duc3RyZWFtIHdoZW4KCSAgd2UgY2FuIGp1c3QgcXVpY2tseSBjaGVjayB3aGVuZXZlciB3ZSB3YW50IHRvIHNldCBjYXBzIHdoZXRoZXIgdGhleSBhcmUKCSAgaWRlbnRpY2FsIG9yIG5vdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NjAwCgoyMDEzLTA4LTIxIDEyOjIxOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKCkgYSBsaXR0bGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ3OAoKMjAxMy0wOC0yMCAyMzo1OToyOSAtMDcwMCAgS2VycmljayBTdGFsZXkgPGtlcnJpY2tAa2Vycmlja3N0YWxleS5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogbWFrZSBncmFtbWFyLnkgd29yayB3aXRoIEJpc29uIDMKCSAgWVlMRVhfUEFSQU0gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBCaXNvbiAzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDYyCgoyMDEzLTA4LTIwIDE3OjE1OjQxICswOTAwICBXb25jaHVsIExlZSA8Y2h1bDA4MTJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IEFkZCBnc3Rfc2FtcGxlX2NvcHkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDU0CgoyMDEzLTA4LTE5IDE0OjU1OjIyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IGdzdF9idWZmZXJfbWVtY21wKCkgd2hlcmUgdGhlIGJ1ZmZlciBpcyBzbWFsbGVyIHRoYW4gc2l6ZQoJICBBbHNvIGFkZCB1bml0IHRlc3RzIGZvciBnc3RfYnVmZmVyX21lbWNtcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MTYyCgoyMDEzLTA4LTIwIDE3OjA2OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3RfZWxlbWVudF9xdWVyeV97ZHVyYXRpb24scG9zaXRpb259IGRvY3MgYSBiaXQKCjIwMTMtMDgtMTQgMTY6MTg6NTkgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBoYW5kbGUgcHVibGlzaGVyIGFuZCBpbnRlcnByZXRlZC1ieSB0YWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTkKCjIwMTMtMDgtMjAgMTM6NTg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBEb24ndCBjYWxsIG1lbWNweSgpIHdpdGggTlVMTCBzcmMgYW5kIDAgbGVuZ3RoCgoyMDEzLTA4LTIwIDEwOjE2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBQcm9wZXJseSB1bmxvY2sgdGhlIHNpbmtwYWQgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMjAgMTA6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUHJvcGVybHkgdW5sb2NrIHRoZSBzaW5rcGFkIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MzYwCgoyMDEzLTA4LTE5IDE2OjM4OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0xOSAxNjozODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTE5IDE2OjM4OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA3LTAxIDE0OjA0OjQ2IC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogQWRkIEdTVF9GTEFHX05PX1NJTkdMRV9FTEVNRU5UX0JJTlMKCSAgVGhpcyBtYWtlcyBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSByZXR1cm4gYW4gZWxlbWVudCBpbnN0ZWFkIG9mCgkgIGEgYmluIGlmIHRoZXJlJ3Mgb25seSBvbmUgZWxlbWVudC4gQWxzbyBjaGFuZ2VkIGdzdHBhcnNlLmMgdG8gdXNlIHRoaXMsCgkgIHNvIGdzdC1sYXVuY2ggd29uJ3QgY3JlYXRlIHN1cGVyZmx1b3VzIGJpbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM0MDUKCjIwMTMtMDgtMTYgMjA6MzY6NTMgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiByZXR1cm4gTlVMTCB3aGVuIHBhcnNpbmcgdXJpIHJlZGlyZWN0aW9uIHRoYXQgd2FzIG5vdCBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjE2MAoKMjAxMy0wOC0xOCAxMTo0ODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVwZGF0ZSBzaW5jZSBtYXJrZXIgZm9yIGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKSB0byAxLjAuMTAKCjIwMTMtMDgtMTYgMTY6NDU6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGNyYXNoIG9uIEVPUyBpZiBxdWV1ZSBpcyBlbXB0eQoJICBGaXhlcyBzcHVyaW91cyBjcmFzaCBpbiB0ZXN0X3NpbXBsZV9zaHV0ZG93bl93aGlsZV9ydW5uaW5nCgkgIHVuaXQgdGVzdC4KCjIwMTMtMDgtMTYgMTY6Mjg6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGNoYW5nZSBnbG9iYWwgYnVmZmVyaW5nIHN0YXRlIGZyb20gd2l0aGluIHF1ZXJ5IGhhbmRsZXIKCSAgV2hlbiBhIGJ1ZmZlcmluZyBxdWVyeSBpcyBoYW5kbGVkIGl0IHVzZXMgdGhlIGdldF9idWZmZXJpbmdfcGVyY2VudCgpCgkgIGZ1bmN0aW9uIHRvIGdldCBzb21lIHN0YXRpdGljcy4gVW5mb3J0dW5hdGVseSB0aGlzIGZ1bmN0aW9uIGFsc28KCSAgY2FsY3VsYXRlcyB3aGV0aGVyIHRoZSBxdWV1ZSBzaG91bGQgYmUgYnVmZmVyaW5nIGFuZCBhZGFwdHMgdGhlCgkgIGdsb2JhbCBxdWV1ZTIgc3RhdGUgaW4gY2FzZSBvZiBzdGF0ZSB0cmFuc2l0aW9ucyBmcm9tL3RvIGJ1ZmZlcmluZwoJICAoaW5jbHVkaW5nIHdoZXRoZXIgYSBidWZmZXJpbmcgbWVzc2FnZSB3YXMgcG9zdGVkIG9uIHRoZSBidXMhKS4KCSAgVGhpcyBtZWFucyB0aGF0IHRoZXJlIGlzIGEgcmFjZSB3aGljaCBjYW4gY2F1c2UgYnVmZmVyaW5nIG1lc3NhZ2VzCgkgIHRvIG5ldmVyIHBvc3RlZCBpZiB0aGUgZ2xvYmFsIHN0YXRlIGNoYW5nZXMgaGFwcGVuIGFzIGEgcmVzdWx0IG9mIGFhCgkgIHF1ZXJ5IGluc3RlYWQgb2YgcmVzdWx0aW5nIGZyb20gYnl0ZXMgZmxvd2luZyBpbi9vdXQuCgkgIFNwb3R0ZWQgYnkgU2pvZXJkIFNpbW9ucy4KCSAgQ2hhbmdlIHRvIG9ubHkgcXVlcnkgc3RhdGUgaW4gZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkgYW5kIHVwZGF0ZQoJICBzdGF0ZSBvbmx5IGluIHVwZGF0ZV9idWZmZXJpbmcoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTMzMgoKMjAxMy0wOC0xNiAxMjo1NDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIGJ1ZmZlcmluZyB3aGVuIGNoYW5naW5nIGNhcGFjaXR5CgkgIFdoZW4gdGhlIGNhcGFjaXR5IG9mIHRoZSBxdWV1ZSBjaGFuZ2VzLCBtYWtlIHN1cmUgd2UgcG9zdCBhbiB1cGRhdGVkIGJ1ZmZlcmluZwoJICBtZXNzYWdlIGJlY2F1c2Ugd2UgbWlnaHQgc3VkZGVubHkgaGF2ZSBjb21wbGV0ZWQgdGhlIGJ1ZmZlcmluZyBzdGFnZS4KCjIwMTMtMDgtMTUgMTU6MzU6MDggKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBGcmVlIHRocmVhZCBwb29scyBpbiBnc3RfZGVpbml0KCkKCjIwMTMtMDgtMTYgMTE6MDM6MzAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IENhbGwgZ3N0X2RlaW5pdCgpIGF0IGV4aXQgb2YgYWxsIHByb2Nlc3NlcwoKMjAxMy0wOC0xNCAyMTo0MToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogc2ltcGxpZnkgaW50ZXJuYWwgZ3N0X2Nsb2NrX3JldHVybl9nZXRfbmFtZSgpIGhlbHBlcgoKMjAxMy0wOC0xNCAxNzo0NDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGZsdXNoLXN0YXJ0IGhhbmRsaW5nCgkgIFVzZSBjdXN0b20gY29kZSB0byBpbXBsZW1lbnQgZmx1c2gtc3RvcCwgd2UgY2FuJ3QgcmV1c2UgdGhlIHNldF9mbHVzaGluZyBjb2RlCgkgIGJlY2F1c2Ugd2UgY2FuJ3QgdG91Y2ggdGhlIGxpdmVfcGxheWluZyBmbGFnIGFuZCB3ZSBuZWVkIHRvIHNpZ25hbCB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4KCjIwMTMtMDgtMTQgMTc6MTQ6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc3RvcCBmbHVzaGluZyBpbiBmbHVzaC1zdG9wCgoyMDEzLTA4LTE0IDE2OjU4OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBmbHVzaCBiZXR0ZXIKCSAgVW5sb2NrIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZmx1c2hpbmcgc28gdGhhdCB3ZSBjYW4KCSAgaW5zZXJ0IHRoZSBmbHVzaC1zdG9wIGNvcnJlY3RseS4KCjIwMTMtMDgtMTQgMTU6NDY6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIC5kaXJzdGFtcAoKMjAxMy0wOC0xNCAwNzoyMTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IERvbid0IHVzZSBub2Rpc3QgaGVhZGVycyBvbiBnaXIgc2Nhbm5lcgoJICBKdXN0IGNyZWF0ZXMgbm9pc2UgYW5kIGJvZ3VzIHN5bWJvbHMKCjIwMTMtMDgtMDcgMTg6MjA6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3Q6IG1pbm9yIGRvY3N0cmluZyBmaXh1cHMgdG8gbWFrZSBnLWkgaGFwcHkKCSAgbm90ZTogdGhlICNpZm5kZWYgbW92ZSBpcyBhY3R1YWxseSBhIG1vdmUgb2YgdGhlICJTRUNUSU9OIiBkb2NzdHJpbmcKCjIwMTMtMDgtMTMgMTc6MTQ6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogSWdub3JlIGZpbGVzIGZyb20gYXV0b21ha2UgdGVzdC1kcml2ZXIKCjIwMTMtMDgtMDcgMTg6MjQ6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBZGQgYSBwcm9wZXJ0eSB0byBkaXNhYmxlIHBhc3N0aHJvdWdoCgkgIEluIHNvbWUgc3BlY2lmaWMgY2FzZXMgKGxpa2UgdHJhbnNtdXhpbmcpIHdlIHdhbnQgdG8gZm9yY2UgdGhlIGVsZW1lbnQKCSAgdG8gYWN0dWFsbHkgcGFyc2UgYWxsIGluY29taW5nIGRhdGEgZXZlbiBpZiB0aGUgZWxlbWVudCBkZWVtcyBpdCBpcyBub3QKCSAgbmVjZXNzYXJ5LgoJICBUaGlzIHByb3BlcnR5IHNpbXBseSBpZ25vcmVzIHJlcXVlc3RzIGZyb20gdGhlIGVsZW1lbnQgdG8gZW5hYmxlIHBhc3N0aHJvdWdoCgkgIG1vZGUgd2hpY2ggcmVzdWx0cyBpbiBwcm9jZXNzaW5nIGFsd2F5cyBiZWluZyBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NjIxCgoyMDEzLTA4LTA3IDIxOjI2OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZTogYWRkIGdzdF9kYXRhX3F1ZXVlX3B1c2hfZm9yY2UKCSAgQWRkcyBhIHZhcmlhbnQgb2YgdGhlIF9wdXNoIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBjaGVjayB0aGUgcXVldWUgbGltaXRzCgkgIGJlZm9yZSBhZGRpbmcgdGhlIG5ldyBpdGVtLiBJdCBpcyB1c2VmdWwgd2hlbiBwdXNoaW5nIGFuIGVsZW1lbnQgdG8gdGhlCgkgIHF1ZXVlIHNob3VsZG4ndCBsb2NrIHRoZSB0aHJlYWQuCgkgIE9uZSBwYXJ0aWN1bGFyIHNjZW5hcmlvIGlzIHdoZW4gdGhlIHF1ZXVlIGlzIHVzZWQgdG8gc2VyaWFsaXplIGJ1ZmZlcnMKCSAgYW5kIGV2ZW50cyB0aGF0IGFyZSBnb2luZyB0byBiZSBwdXNoZWQgZnJvbSBhbm90aGVyIHRocmVhZC4gVGhlCgkgIGRhdGFxdWV1ZSBzaG91bGQgaGF2ZSBhIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgYnVmZmVycyB0byBiZSBzdG9yZWQgdG8KCSAgYXZvaWQgbGFyZ2UgbWVtb3J5IGNvbnN1bXB0aW9uLCBidXQgZXZlbnRzIGNhbiBiZSBjb25zaWRlcmVkIHRvIGhhdmUKCSAgbmVnbGlnaWJsZSBpbXBhY3Qgb24gbWVtb3J5IGNvbXBhcmVkIHRvIGJ1ZmZlcnMuIFNvIGl0IGlzIHVzZWZ1bCB0byBiZQoJICB1c2VkIHRvIHB1c2ggaXRlbXMgaW50byB0aGUgcXVldWUgdGhhdCBjb250YWluIGV2ZW50cywgZXZlbiB0aG91Z2ggdGhlCgkgIHF1ZXVlIGlzIGFscmVhZHkgZnVsbCwgaXQgc2hvdWxkbid0IG1hdHRlciBpbnNlcnRpbmcgYW4gaXRlbSB0aGF0IGhhcwoJICBubyBzaWduaWZpY2F0aXZlIHNpemUuCgkgIFRoaXMgc2NlbmFyaW8gaGFwcGVucyBvbiBhZGFwdGl2ZSBlbGVtZW50cyAoZGFzaGRlbXV4IC8gbXNzZGVtdXgpIGFzCgkgIHRoZXJlIGlzIGEgc2luZ2xlIGRvd25sb2FkIHRocmVhZCBmZXRjaGluZyBidWZmZXJzIGFuZCBwdXR0aW5nIGludG8gdGhlCgkgIGRhdGFxdWV1ZXMgZm9yIHRoZSBzdHJlYW1zLiBUaGlzIHNhbWUgZG93bmxvYWQgdGhyZWFkIGNhbiBhbHMgZ2VuZXJhdGUKCSAgZXZlbnRzIGluIHNvbWUgc2l0dWF0aW9ucyBhcyBjYXBzIGNoYW5nZXMsIGVvcyBvciBhIGludGVybmFsIGNvbnRyb2wKCSAgZXZlbnRzLiBUaGVyZSBjYW4gYmUgYSBkZWFkbG9jayBhdCBwcmVyb2xsIGlmIHRoZSBmaXJzdCBidWZmZXIgZmV0Y2hlZAoJICBpcyBsYXJnZSBlbm91Z2ggdG8gZmlsbCB0aGUgZGF0YXF1ZXVlIGFuZCB0aGUgZG93bmxvYWQgdGhyZWFkIGFuZCB0aGUKCSAgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGRvd25sb2FkIHRocmVhZCBkZWNpZGVzIHRvIHB1c2ggYW4gZXZlbnQgdG8gdGhpcwoJICBzYW1lIGRhdGFxdWV1ZSBiZWZvcmUgZmV0Y2hpbmcgYnVmZmVycyB0byBvdGhlciBzdHJlYW1zLCBpZiB0aGlzIHB1c2gKCSAgbG9ja3MsIHRoZSBwaXBlbGluZSB3aWxsIGJlIHN0dWNrIGluIHByZXJvbGwgYXMgbm8gbW9yZSBidWZmZXJzIHdpbGwgYmUKCSAgZG93bmxvYWRlZC4KCSAgVGhlcmUgaXMgYSBzb21ld2hhdCBjb21tb24gcHJhY3RpY2UgaW4gZGFzaCBzdHJlYW1zIHRvIGhhdmUgYSBzaW5nbGUKCSAgdmVyeSBsYXJnZSBidWZmZXIgZm9yIGF1ZGlvIGFuZCBvbmUgZm9yIHZpZGVvLCBzbyB0aGlzIHdpbGwgYWx3YXlzCgkgIGhhcHBlbiBhcyB0aGUgZG93bmxvYWQgdGhyZWFkIHdpbGwgaGF2ZSB0byBwdXNoIGFuIEVPUyByaWdodCBhZnRlcgoJICBmZXRjaGluZyB0aGUgZmlyc3QgYnVmZmVyIGZvciBhbnkgc3RyZWFtLgoJICBBUEk6IGdzdF9kYXRhX3F1ZXVlX3B1c2hfZm9yY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTY5NAoKMjAxMy0wOC0xMyAxMzowNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBzeXNtZW06IE9ubHkgY29weSB0aGUgcmVxdWVzdGVkIHBhcnQgb2YgbWVtb3J5IGluc3RlYWQgb2YgdGhlIGNvbXBsZXRlIHNvdXJjZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTY3OAoKMjAxMy0wOC0xMyAxMjoxMToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJIGFuZCBhZGQgdG8gZXhwb3J0cyBmaWxlCgoyMDEzLTA3LTIzIDE2OjI1OjI3ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggYW5ub3RhdGlvbiBmb3IgZ3N0X3F1ZXJ5X3BhcnNlX3VyaQoKMjAxMy0wNC0xOSAxMjoxNDo1NCArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG5ldyByZWRpcmVjdGlvbiB1cmkgdGhlIFVSSSBxdWVyeQoKMjAxMy0wOC0xMiAwOToyNTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgc29tZSBtaXNzaW5nICd0cmFuc2ZlciBub25lJyBnaSBhbm5vdGF0aW9ucwoJICBUaGUgY3VycmVudCBkb2N1bWVudGF0aW9uIGlzIGNvbnRyb3ZlcnNlLCB3aGlsZSBpdCBzdGF0ZXMgdGhhdCB0aGUKCSAgcmV0dXJuZWQgdmFsdWUgaXMgdmFsaWQgb25seSB3aGlsZSB0aGUgcXVlcnkgaXMgaXMgdmFsaWQsIHdoaWNoIHByZXN1bWVzCgkgIGEgJ3RyYW5zZmVyIG5vbmUnIHBvbGljeS4gQnV0IHRoZSB0b29sdGlwIGZvciB0aGUgJ291dCcgYW5ub3RhdGlvbgoJICBzdGF0ZXMgdGhlIGRlZmF1bHQgaXMgJ3RyYW5zZmVyLWZ1bGwnLgoJICBBZGQgdGhlIG1pc3NpbmcgJ3RyYW5zZmVyIG5vbmUnIGFubm90YXRpb25zIHRvIGZpeCB0aGlzLgoKMjAxMy0wOC0wOCAxMjowODozMSArMDIwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IEFjY2VsZXJhdGUgTVBFRy9IMjY0IHN0YXJ0IGNvZGUgc2Nhbm5pbmcKCSAgQWNjZWxlcmF0ZSBNUEVHL0gyNjQgc3RhcnQgY29kZSBzY2FubmluZyB1c2luZyBCb3llci1Nb29yIGJhZCBjaGFyYWN0ZXIKCSAgaGV1cmlzdGljLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMzU3CgoyMDEzLTA4LTEwIDExOjMxOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBnLWk6IGFsbG93IGNsb2NrIHRvIGJlIE5VTEwgaW4gZ3N0X3BpcGVsaW5lX3VzZV9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU3NTEKCjIwMTMtMDgtMDcgMTQ6MTc6MjggLTAzMDAgIEFkcmlhbiBQYXJkaW5pIDxwdWJsaWNvQHRhbmdvcGFyZG8uY29tLmFyPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBmaXhlcyBpbnQgb3ZlcmZsb3cgd2l0aCBwcm9wZXJ0aWVzIHRoYXQgc3BhbiArLUlOVF9NQVgKCSAgV2hlbiB0aGUgcmFuZ2UgZm9yIGEgcHJvcGVydHkgaXMgZGVmaW5lZCBhcyAtSU5UX01BWC0xIC4uIElOVF9NQVgsIGxpa2UKCSAgdGhlIHhwb3MgaW4gYSB2aWRlb21peGVyIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBpbiB0aGUgbWFjcm8KCSAgZGVmaW5pdGlvbnMgb2YgY29udmVydF9nX3ZhbHVlX3RvXyMjdHlwZSAoYW5kIHRoZSBlcXVpdmFsZW50IGluCgkgIGNvbnZlcnRfdmFsdWVfdG9fIyN0eXBlKQoJICB2ID0gcHNwZWMtPm1pbmltdW0gKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKChwc3BlYy0+bWF4aW11bSAtIHBzcGVjLT5taW5pbXVtKSAqIHMpOwoJICBhcmUgY29udmVydGVkIHRvOgoJICB2ID0gLTIxNDc0ODM2NDggKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKCgyMTQ3NDgzNjQ3IC0gLTIxNDc0ODM2NDgpICogcyk7CgkgICgyMTQ3NDgzNjQ3IC0gLTIxNDc0ODM2NDgpIG92ZXJmbG93cyB0byAtMSBhbmQgdGhlIG5ldCByZXN1bHQgaXM6CgkgIHYgPSAtMjE0NzQ4MzY0OCArIChnIyN0eXBlKSBST1VORElOR19PUCAoLTEgKiBzKTsKCSAgc28gdiBvbmx5IHRha2VzIHRoZSB2YWx1ZXMgLTIxNDc0ODM2NDggZm9yIHMgPT0gMCBhbmQgMjE0NzQ4MzY0NwoJICBmb3IgcyA9PSAxLgoJICBSZXdyaXRpbmcgdGhlIGV4cHJlc3Npb24gYXMgbWluaW11bSooMS1zKSArIG1heGltdW0qcyBnaXZlcyB0aGUgY29ycmVjdAoJICByZXN1bHQgaW4gdGhpcyBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTcwNTYzMAoKMjAxMy0wOC0wMiAxMzozMTo1OSArMDIwMCAgTHVib3N6IFNhcm5lY2tpIDxsdWJvc3pAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYWRkIHN1YmRpci1vYmplY3RzIHRvIEFNX0lOSVRfQVVUT01BS0UKCSAgRml4ZXMgd2FybmluZ3Mgd2l0aCBhdXRvbWFrZSAxLjE0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUzNTAKCjIwMTMtMDgtMDIgMTY6MjE6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgZGVzaWduOiBmaXggdHlwbwoKMjAxMy0wNy0yOSAxNTo0ODozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBiYWNrd2FyZHMgc2Vla3MgaW50byB1bmRvd2xvYWRlZCByYW5nZXMKCSAgV2hlbiBpbiBkb3dubG9hZCBidWZmZXJpbmcgbW9kZSBxdWV1ZTIgZGlkbid0IGNoZWNrIGlmIGEgcmFuZ2Ugb2Zmc2V0IGlzCgkgIGluIGEgdW5kb3dubG9hZGVkIHJhbmdlIGJlZm9yZSB0aGUgY3VycmVudGx5IGluLXByb2dyZXNzIHJhbmdlLiBDYXVzaW5nCgkgIHNlZWtzIHRvIGFuIGVhcmxpZXIgb2Zmc2V0IHRvLCB3ZWxsLCB0YWtlIGEgd2hpbGUuCgoyMDEzLTA3LTMwIDE5OjI3OjIzICswMjAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGRvY3M6IHNvbWUgc21hbGwgZ3RrLWRvYyBtYXJrdXAgZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE1NgoKMjAxMy0wNy0zMCAxOToyNzoyMyArMDIwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZ2lzdGVyIG5ldyBjb2xvciBtb2RlIGVudW0sIGZpeGluZyAnbWFrZSBjaGVjaycKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE1NgoKMjAxMy0wNC0xNiAxOTowNDo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBBdm9pZCB1c2luZyBidWZmZXJfZ2V0X3NpemUgaW4gdGlnaHQgbG9vcHMKCSAgQ2FsbGluZyBnc3RfYnVmZmVyX2dldF9zaXplIHJlcHJlc2VudGVkIDIvMyBvZiB0aGUgY29zdCBvZiBoZWxwZXJfZmluZF9wZWVrCgkgIHdoaWNoIHdhcyBjYWxsZWQgd2hlbmV2ZXIgYSB0eXBlZmluZGZ1bmN0aW9uIHdhbnRlZCB0byBwZWVrIGF0IGRhdGEuCgkgIFdlIGFscmVhZHkga25vdyB0aGUgc2l6ZSAoZnJvbSB0aGUgR3N0TWFwSW5mbyksIHNvIGp1c3QgdXNlIHRoYXQuCgoyMDEzLTA3LTI5IDE5OjM4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vTElOR1VBUzoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2x0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wNy0yOSAxOToxMzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiByZXZlcnQgYWNjaWRlbnRhbCByZS13aW5kaW5nIG9mIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTMtMDctMjYgMTY6MTU6MjQgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBDbGFyaWZ5IHRoZSBlc3RpbWF0ZWQtdG90YWwgZG9jdW1lbnRhdGlvbgoJICBUd2VhayB0aGUgZG9jdW1lbnRhdGlvbiBzbGlnaHRseSB0byBjbGFyaWZ5IHRoYXQgdGhlIGVzdGltYXRlZC10b3RhbCBpbgoJICBhIGEgQnVmZmVyaW5nIHF1ZXJ5IHRoZSB0b3RhbCByZW1haW5pbmcgdGltZSBvZiBhIGRvd25sb2FkLCBub3QgdGhlCgkgIHRvdGFsIHRpbWUgZm9yIHRoZSBjb21wbGV0ZSBkb3dubG9hZC4gQWxzbyBpbmRpY2F0ZSB0aGUgdW5pdCB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTM0CgoyMDEzLTA3LTI2IDE1OjA4OjEzICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRm9yd2FyZCB0aGUgc2NoZWR1bGUgcXVlcnkgdXBzdHJlYW0KCSAgV2hlbiBhc2tlZCBhYm91dCB0aGUgc2NoZWR1bGluZyBmbGFncyBmaXJzdCBjaGVjayB3aXRoIHVwc3RyZWFtIGFuZAoJICBzaW1wbHkgYWRkIHRoZSBfU0VFS0FCTEUgZmxhZyB3aGVuIHVzaW5nIGEgdGVtcG9yYXJ5IGZpbGUgYXMgc3RvcmFnZS4KCSAgVGhpcyBlbmFibGVzIHRoZSBmb3J3YXJkaW5nIG9mIF9TRVFVRU5USUFMIGFuZCBfQkFORFdJRFRIX0xJTUlURUQgZnJvbQoJICBzb3VyY2VzIGlmIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkyNwoKMjAxMy0wNy0yOSAxNDo0NzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMyA9PT0KCjIwMTMtMDctMjkgMTM6MzQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMwoKMjAxMy0wNy0yOSAxMzozMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA3LTI5IDEyOjEwOjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBGaXggaGFuZGxpbmcgb2YgU0VHTUVOVCBxdWVyeQoJICBUaGUgdmFsdWVzIHNob3VsZCBiZSBpbiBzdHJlYW0tdGltZSwgYW5kIHN0YXJ0L3N0b3Agc2hvdWxkIG5vdAoJICBiZSBzd2FwcGVkIGZvciBuZWdhdGl2ZSByYXRlcy4KCjIwMTMtMDctMjkgMTE6MDU6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IGFkdmFuY2Ugb2Zmc2V0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgYWN0dWFsbHkgcmVhZAoJICBUaGVyZSBtaWdodCBiZSBhIHNob3J0IHJlYWQgYXQgRU9TLgoKMjAxMy0wNy0yOSAxMDo0ODozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBJbXBsZW1lbnQgU0VHTUVOVCBxdWVyeQoKMjAxMy0wNy0yNiAxODozNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggU2luY2U6IG1hcmtlciBmb3IgbmV3IGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKQoKMjAxMy0wNy0yNiAxMjoxOTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZGVidWcgdGhlIGNsb2NrIHJldHVybiB2YWx1ZXMKCjIwMTMtMDctMjUgMTI6MjA6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlcW51bSBoYW5kbGluZyBmb3Igc2Vla3MKCSAgVXNlIHRoZSBzYW1lIHNlcW51bSBhcyB0aGUgc2VlayBmb3IgZmx1c2hlcy9zZWdtZW50cyB0aGF0IGFyZQoJICBjYXVzZWQgYnkgdGhlIHNlZWsuIEFsc28gZG8gdGhlIHNhbWUgZm9yIHNlZ21lbnQgZXZlbnRzCgkgIEZpeGVzICM2NzYyNDIKCjIwMTMtMDctMjQgMTA6Mjk6MzAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcGFyc2UgZGVidWcgbGV2ZWxzID4gOQoKMjAxMy0wNy0yNCAxNjo1Nzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBGaXggY29weSZwYXN0ZSBtaXN0YWtlcyBpbiB0aGUgYml0bWFzayBmdW5jdGlvbiBkb2NzCgoyMDEzLTA3LTI0IDExOjIxOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBzaGFkb3cgdmFyaWFibGVzIHRoYXQgYXJlIHNldCBpbnNpZGUgb3VyIHNjb3BlIGFuZCB0aGVuIHVzZWQgb3V0c2lkZSBvdXIgc2NvcGUKCSAgRml4ZXMgdW5pbml0aWFsaXplZCB1c2Ugb2YgdGhlc2UgdmFyaWFibGVzLgoKMjAxMy0wNy0yNCAxMDozMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgb3RoZXIgaW50ZXJmYWNlIHN0cnVjdHMgZnJvbSB0aGUgQUJJIHRlc3RzIHRvbwoKMjAxMC0xMC0xNSAxMzoxNjo1OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBHc3RUYWdTZXR0ZXIgZnJvbSBBQkkgY2hlY2tzCgkgIEludGVyZmFjZXMgY2FuIGhhdmUgbmV3IG1lbWJlcnMgYWRkZWQgd2l0aG91dCBicmVha2luZyBBQkksIHNvCgkgIHJlbW92ZSBpdCBmcm9tIHRoZSBjaGVjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzc5OQoKMjAxMy0wNy0yMyAxNTozOTo1MyAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSAgbGliY2hlY2s6IEVzY2FwZSBzdHJpbmdzIGluIHRoZSBnZW5lcmF0ZWQgeG1sIGZpbGVzCgkgIFRoaXMgaXMgY29weSBwYXN0ZWQgZnJvbSB1cHN0cmVhbSBsaWJjaGVjawoKMjAxMy0wNy0yMyAxODo1Mzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUHJpbnQgc29tZSBkZWJ1ZyBvdXRwdXQgaWYgYSBzdHJlYW0tc3RhcnQgZXZlbnQgd2l0aG91dCBncm91cC1pZCBhcnJpdmVzCgkgIElkZWFsbHkgYWxsIGVsZW1lbnRzIHdvdWxkIGltcGxlbWVudCBoYW5kbGluZyBvZiB0aGF0IHRvIGdldCBwcm9wZXIKCSAgc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgaGFuZGxpbmcgYW5kIG90aGVyIHRoaW5ncy4KCjIwMTMtMDctMjIgMTg6MDM6MDEgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGaXggbWlzc2luZyBwYWQgYWN0aXZhdGlvbiBub3RpZmljYXRpb24KCSAgQSBuZXcgYWN0aXZlIHBhZCBtaWdodCBub3QgYmUgbm90aWZpZWQgaW4gc29tZSBjYXNlcywgd2hpY2ggcmVzdWx0cwoJICBpbiB0aGUgY3VycmVudCB0cmFjayBudW1iZXIgbm90IGJlaW5nIHNldCBpbiBwbGF5YmluLgoJICBUaGUgYWN0aXZlLXBhZCBub3RpZmljYXRpb24gaXMgb25seSBzZW50IGluIHRoZSBjaGFpbiBhbmQgc2lua19ldmVudAoJICBmdW5jdGlvbnMsIGFuZCBvbmx5IHdoZW4gdGhlIGJ1ZmZlciBvciBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgYWN0aXZlCgkgIHBhZCBzZWxlY3Rpb24gaXMgZnJvbSB0aGUgbmV3bHkgYWN0aXZhdGVkIHBhZC4gU28gaW4gdGhlIG90aGVyIGNhc2UKCSAgdGhlIG5vdGlmaWNhdGlvbiB3aWxsIG5ldmVyIGJlIHNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ2OTEKCjIwMTMtMDctMjIgMTc6MjU6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBoYW5kbGUgZGVzZXJpYWxpc2F0aW9uIG9mIG5vbmV4aXN0YW50IGVudW0gdmFsdWUgbW9yZSBncmFjZWZ1bGx5CgoyMDEzLTA3LTIyIDE0OjEyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHB1c2ggbmV3IHN0cmVhbS1zdGFydCBldmVudHMgb24gc3RyZWFtIGNoYW5nZSB1bmxlc3MgdGhleSBhbGwgaGF2ZSBncm91cCBpZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDQwOAoKMjAxMy0wNy0yMiAxMjowNjoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFVzZSBuZXcgZ3JvdXAtaWQgaW4gc3RyZWFtLXN0YXJ0IGV2ZW50CgoyMDEzLTA3LTIyIDEyOjA2OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBVc2UgbmV3IGdyb3VwLWlkIGZpZWxkIGluIHN0cmVhbS1zdGFydCBldmVudCBhbmQgbWVzc2FnZQoKMjAxMy0wNy0yMiAxMTo0MjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFVzZSB0aGUgbmV3IGdyb3VwLWlkIGZpZWxkIG9mIHRoZSBzdHJlYW0tc3RhcnQgbWVzc2FnZSBmb3Igc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgYWdncmVnYXRpb24KCSAgSWYgYWxsIHN0cmVhbS1zdGFydCBtZXNzYWdlcyBoYWQgYSBncm91cCBpZCAoZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KSwKCSAgd2Ugb25seSBjb25zaWRlciBhIHN0cmVhbSBzdGFydGVkIGlmIGFsbCBoYWQgdGhlIHNhbWUgZ3JvdXAgaWQuCgkgIEluIDIuMCB3ZSBzaG91bGQgbWFrZSB0aGUgZ3JvdXAgaWQgbWFuZGF0b3J5LgoKMjAxMy0wNy0yMiAxMTo0MTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIG5ldyBncm91cC1pZCBmaWVsZCB0byB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEFsbCBzdHJlYW1zIHRoYXQgaGF2ZSB0aGUgc2FtZSBncm91cCBpZCBhcmUgc3VwcG9zZWQgdG8gYmUgcGxheWVkCgkgIHRvZ2V0aGVyLCBpLmUuIGFsbCBzdHJlYW1zIGluc2lkZSBhIGNvbnRhaW5lciBmaWxlIHNob3VsZCBoYXZlIHRoZQoJICBzYW1lIGdyb3VwIGlkIGJ1dCBkaWZmZXJlbnQgc3RyZWFtIGlkcy4gVGhlIGdyb3VwIGlkIHNob3VsZCBjaGFuZ2UKCSAgZWFjaCB0aW1lIHRoZSBzdHJlYW0gaXMgc3RhcnRlZCwgcmVzdWx0aW5nIGluIGRpZmZlcmVudCBncm91cCBpZHMKCSAgZWFjaCB0aW1lIGEgZmlsZSBpcyBwbGF5ZWQgZm9yIGV4YW1wbGUuCgoyMDEzLTA3LTE4IDIzOjI5OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHJldmVydCBhY2NpZGVudGFsIGNoYW5nZSBvZiBjb21tb24gc3VibW9kdWxlCgoyMDEzLTA3LTE4IDE0OjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3Q6IEFkZCBzb21lIG1vcmUgU2luY2U6IDEuMgoKMjAxMy0wNy0xOCAxNDozNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQWRkIHNvbWUgU2luY2U6IDEuMgoKMjAxMy0wNy0xOCAxNToxMDoxMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBBZGQgZGVidWcgY29sb3IgbW9kZSBvcHRpb24KCSAgVGhpcyBhbGxvd3MgdG8gZXhwbGljaXRlbHkgc2V0IHRoZSBkZWJ1ZyBvdXRwdXQgY29sb3IKCSAgbW9kZSB0byBVTklYIG9uIGV2ZXJ5IHBsYXRmb3JtLCBlbmFibGUgaXQgKHVzZSBwbGF0Zm9ybQoJICBkZWZhdWx0IGNvbG9yIG1vZGUpIG9yIGVuYWJsZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDMyMAoKMjAxMi0wNC0xOCAxNDozNTozMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBGaXggYmxhY2sgYW5kIHVuZGVybGluZSBjb2xvcmluZyBvbiBXMzIKCSAgRml4ZXMgIzY3NDMyMAoKMjAxMi0wNC0xOCAxNDoxMjoxNiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBDdXQgZG93biBzcmMgZmlsZSBuYW1lcyBmb3IgTWluR1cgdG9vCgkgIEZpeGVzICM2NzQzMjAKCjIwMTMtMDctMTYgMTc6NDc6NDUgKzAyMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRml4IGdzdC1wbHVnaW5zLWdsIGluIHVuaW5zdGFsbGVkIHNldHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM0OTkKCjIwMTMtMDctMTYgMTU6MzU6MDggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IFRha2UgYWNjb3VudCBvZiB0aGUgc2tpcCBpbiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9mYXN0KCkKCSAgSW5jbHVkZSByZWdyZXNzaW9uIHRlc3QKCjIwMTMtMDctMTUgMTU6NDE6NDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBmdW5jdGlvbiB0byByZXR1cm4gYnVmZmVyIGNvbXBvc2VkIG9mIG11bHRpcGxlIG1lbW9yaWVzCgkgIEFQSTogZ3N0X2FkYXB0ZXJfdGFrZV9mYXN0KCkKCjIwMTMtMDctMTYgMTY6MjQ6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRG9uJ3QgYXNzZXJ0IGlmIG5vIGNvbnRleHQgaXMgc2V0IGluIHRoZSBxdWVyeQoKMjAxMy0wNy0xNiAxNDo0NzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgYmVuY2htYXJrczogaWdub3JlIG5ldyBiZW5jaG1hcmsgYmluYXJ5CgoyMDEzLTA3LTE2IDE0OjQ2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogc3ByaW5rbGUgc29tZSBTaW5jZSAxLjIgbWFya2VycyBpbiBkb2NzCgoyMDEzLTA3LTE2IDE0OjQ0OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICB0aW1lcHJvdmlkZXI6IGctaTogYWxsb3cgTm9uZSBhcyBhZGRyZXNzIGZvciBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KCkKCjIwMTMtMDctMTYgMTU6MzQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFJldHVybiBhbiBlbXB0eSBHc3RDb250ZXh0IGlmIG5vbmUgd2FzIHNldCB5ZXQKCjIwMTMtMDctMTYgMTU6MTY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgZ3N0X3F1ZXJ5X2hhc19jb250ZXh0X3R5cGUoKQoKMjAxMy0wNy0xNiAxMTozNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IG9ubHkgYmxvY2sgc2VyaWFsaXplZCBxdWVyeSB3aGVuIGl0J3Mgc2FmZQoJICBXZSBtdXN0IGJlIGNlcnRhaW4gdGhhdCB3ZSBkb24ndCBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gYmxvY2tpbmcgdGhlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcy4gT25lIHN1Y2ggZGVhZGxvY2sgY2FuIGhhcHBlbiB3aGVuIHdlIGFyZSBidWZmZXJpbmcgYW5kIGRvd25zdHJlYW0gaXMKCSAgYmxvY2tlZCBpbiBwcmVyb2xsIGFuZCBhIHNlcmlhbGl6ZWQgcXVlcnkgYXJyaXZlcy4gRG93bnN0cmVhbSB3aWxsIG5vdCB1bmJsb2NrCgkgIChhbmQgYWxsb3cgb3VyIHF1ZXJ5IHRvIGV4ZWN1dGUpIHVudGlsIHdlIGNvbXBsZXRlIGJ1ZmZlcmluZyBhbmQgYnVmZmVyaW5nIHdpbGwKCSAgbm90IGNvbXBsZXRlIHVudGlsIHdlIGNhbiBhbnN3ZXIgdGhlIHF1ZXJ5Li4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MAoKMjAxMy0wNy0xNSAxMTozNjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEEgbmV3bHkgYWN0aXZhdGVkIHBhZCBzaG91bGQgYmUgbWFya2VkIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uCgoyMDEzLTA3LTE1IDExOjMyOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBEb24ndCBjb25zaWRlciBmbHVzaGluZyBwYWRzIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk0OGE5ZDJmMmI3MjhmNWZiNjBiZTQ1ZDQ3YTgxOGNlYmViNjBjN2QuCgkgIFRoaXMgaXMgcmFjeSBhbmQgdHJ5aW5nIHRvIHJlY29uZmlndXJlIGFuZCBmYWlsIGlzIHN0aWxsIGJldHRlcgoJICB0aGFuIG5vdCB0cnlpbmcgdG8gcmVjb25maWd1cmUgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTAwCgoyMDEzLTA3LTE1IDExOjMyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTGVhdmUgdGhlIGxvb3AgZnVuY3Rpb24gZmFzdGVyIGlmIHdlJ3JlIGZsdXNoaW5nCgkgIEVzcGVjaWFsbHkgZG9uJ3QgZXZlbiB0cnkgdG8gc2VuZCBzdHJlYW0tc3RhcnQgZXZlbnQgb3IgdHJ5CgkgIHRvIG5lZ290aWF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDEwMAoKMjAxMy0wNy0xMiAxMDowODoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERlYWN0aXZhdGUgYW5kIHJlbW92ZSBwYWQgd2l0aG91dCB0aGUgaW5wdXRzZWxlY3RvciBsb2NrCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBnZXQgZGVhZGxvY2tzIGNhdXNlZCBieSBsb2NrIG9yZGVyIGludmVyc2lvbjoKCSAgRHVyaW5nIHRoZSBjaGFpbiBmdW5jdGlvbiB0aGUgc3RyZWFtIGxvY2sgaXMgZmlyc3QgbG9ja2VkIGFuZCB0aGVuIHRoZQoJICBpbnB1dHNlbGVjdG9yIGxvY2suIER1cmluZyBwYWQgcmVsZWFzZSB3ZSBmaXJzdCBsb2NrZWQgdGhlIGlucHV0c2VsZWN0b3IKCSAgbG9jayBhbmQgdGhlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZCB3b3VsZCBsb2NrIHRoZSBzdHJlYW0gbG9jay4KCSAgVGhlcmUncyBubyByZWFzb24gd2h5IHRoZSBpbnB1dHNlbGVjdG9yIGxvY2sgc2hvdWxkIGJlIHJlcXVpcmVkIHdoaWxlCgkgIGRlYWN0aXZhdGluZyBhbmQgcmVtb3ZpbmcgdGhlIHBhZCwgaXQncyBvbmx5IG5lZWRlZCBiZWZvcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQwMDIKCjIwMTMtMDctMTEgMTY6NTc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjIgPT09CgoyMDEzLTA3LTExIDE1OjEyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjIKCjIwMTMtMDctMTEgMTU6MTE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNy0xMCAxNTo1MjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFsd2F5cyBmb3J3YXJkIGNsb2NrLWxvc3QgbWVzc2FnZSBpZiB3ZSdyZSBub3QgYSB0b3AtbGV2ZWwgYmluCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IG5vIGJpbiBtaXNzZXMgdGhlIGNsb2NrLWxvc3QgbWVzc2FnZXMsIGluZGVwZW5kZW50CgkgIG9mIHRoZSBzdGF0ZSwgYW5kIGNvdWxkIHJldHVybiBhbiBvbGQsIG5vbi13b3JraW5nIGNsb2NrIGZyb20KCSAgZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk5NwoKMjAxMy0wNy0xMCAxNDozMDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEtlZXAgcHJldmlvdXMgYWN0aXZlIHNpbmtwYWQgYXJvdW5kIHVudGlsIHdlJ3JlIGRvbmUgd2l0aCBpdAoJICBPdGhlcndpc2Ugd2UnbGwgc2VuZCBhIG5ldyBzZWdtZW50IGV2ZW50IGRvd25zdHJlYW0gZm9yIGVhY2ggYnVmZmVyLgoKMjAxMy0wNy0wOCAxNToyNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogZml4IHR5cGUgb2YgZ3N0X21lbW9yeV9hbGlnbm1lbnQgdG8gbWF0Y2ggZGVjbGFyYXRpb24KCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZ3Mgc3VjaCBhcwoJICBnc3RhbGxvY2F0b3IuYzo2MTo4OiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdnc3RfbWVtb3J5X2FsaWdubWVudCcKCSAgLi4vZ3N0L2dzdGFsbG9jYXRvci5oOjUyOjE4OiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnZ3N0X21lbW9yeV9hbGlnbm1lbnQnIHdhcyBoZXJlCgoyMDEzLTA3LTA1IDIxOjM2OjI3ICswMjAwICBQaW90ciBEcsSFZyA8cGlvdHJkcmFnQGdtYWlsLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogdXBkYXRlIFBPVEZJTEVTLmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM2ODIKCjIwMTMtMDctMDQgMjA6Mzk6MjYgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEbyBub3QgbG9jayBhIG11dGV4IHRoYXQgZG9lcyBub3QgZXhpc3QKCSAgVGhlIEdTVF9MSVZFX0xPQ0sgaXMgb24gR3N0QmFzZVNyYywgbm90IG9uIGl0cyBzb3VyY2UgcGFkLgoKMjAxMy0wNy0wMyAyMToyMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgUFRTIGFmdGVyIHNlZWsKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjc3OAoKMjAxMy0wNy0wMyAxMzowMzo0OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgQWRkIGZldyBtaXNzaW5nIGFsbG93LW5vbmUgYW5ub3RhdGlvbgoKMjAxMy0wNy0wMyAwOToyNzoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgLWJhZCBtcGVndHMgbGliCgkgIEFuZCByZW1vdmUgc2lnbmFscHJvY2Vzc29yL3ZpZGVvIGxpYnMgZnJvbSAtYmFkIHdoaWNoIGhhdmUgZ29uZQoJICBhd2F5IG9yIHdlcmUgbWVyZ2VkIGludG8gLWJhc2UuCgoyMDEzLTA3LTAxIDIwOjM1OjIxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogUmUtcHVzaCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIGJ1ZmZlcnMgY29tZSBmcm9tIGEgZGlmZmVyZW50IHBhZAoJICBEb24ndCBzcGVjaWFsIGNhc2Ugc2VnbWVudC9jYXBzLCBqdXN0IHB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbiB0aGV5IGFyZQoJICByZWNlaXZlZCBvbiB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWQgb3Igd2hlbiB0aGUgYWN0aXZlIHBhZCBjaGFuZ2VzLgoKMjAxMy0wNy0wMSAyMDoyMToxMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogVXNlIGRlZmF1bHQgcGFkIGZ1bmN0aW9uIGZvciB1cHN0cmVhbSBldmVudC9xdWVyaWVzCgkgIFRoZSBkZWZhdWx0IGZ1bmN0aW9ucyBpbiAxLnggYWxyZWFkeSBkbyB0aGUgcmlnaHQgdGhpbmcKCjIwMTMtMDctMDEgMjA6MTg6NTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IFJlbW92ZSBmdW5uZWwgcGFkX2FsbG9jIHRlc3QKCjIwMTMtMDctMDEgMjA6MDc6MDMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQ2hhbmdlIHN0cmVhbV9pZCBwYXJhbWV0ZXIgbmFtZSB0byBtYXRjaCBHdGtEb2MKCjIwMTMtMDctMDEgMTE6MTA6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBjaGVjazogQWRkZWQgZ3N0X2NoZWNrX3NldHVwX2V2ZW50c193aXRoX3N0cmVhbV9pZCgpCgkgIEFkZGVkIGEgbmV3IGZ1bmN0aW9uIGdzdF9jaGVja19zZXR1cF9ldmVudHNfd2l0aF9zdHJlYW1faWQoKSwgc2luY2UKCSAgZ3N0X2NoZWNrX3NldHVwX2V2ZW50cygpIGRvZXMgbm90IHdvcmsgd2l0aCBtdWx0aXBsZSBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMzc3CgoyMDEzLTA2LTMwIDE4OjM5OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgY29uc2lkZXIgZmx1c2hpbmcgcGFkcyBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbgoJICBSZW5lZ290aWF0aW9uIGFuZCByZWNvbmZpZ3VyYXRpb24gd2lsbCBmYWlsIGJlY2F1c2UgYWxsIHF1ZXJpZXMKCSAgYW5kIGV2ZW50cyB3b24ndCBiZSBhY2NlcHRlZCBieSB0aGUgcGFkIGlmIGl0J3MgZmx1c2hpbmcuIEluIHRoZQoJICBiZXN0IGNhc2UgdGhpcyBqdXN0IGNhdXNlcyB1bm5lZWRlZCB3b3JrIGFuZCBzcHVyaW91cyB3YXJuaW5ncyBpbgoJICB0aGUgZGVidWcgbG9ncywgaW4gdGhlIHdvcnN0IGNhc2UgaXQgY2F1c2VzIGVsZW1lbnRzIHRvIGZhaWwgY29tcGxldGVseS4KCjIwMTMtMDYtMjQgMjM6MjU6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG9ubHkgYmxvY2sgc2VyaWFsaXplZCBxdWVyeSB3aGVuIGl0J3Mgc2FmZQoJICBXZSBtdXN0IGJlIGNlcnRhaW4gdGhhdCB3ZSBkb24ndCBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gYmxvY2tpbmcgdGhlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcy4gT25lIHN1Y2ggZGVhZGxvY2sgY2FuIGhhcHBlbiB3aGVuIHdlIGFyZSBidWZmZXJpbmcgYW5kIGRvd25zdHJlYW0gaXMKCSAgYmxvY2tlZCBpbiBwcmVyb2xsIGFuZCBhIHNlcmlhbGl6ZWQgcXVlcnkgYXJyaXZlcy4gRG93bnN0cmVhbSB3aWxsIG5vdCB1bmJsb2NrCgkgIChhbmQgYWxsb3cgb3VyIHF1ZXJ5IHRvIGV4ZWN1dGUpIHVudGlsIHdlIGNvbXBsZXRlIGJ1ZmZlcmluZyBhbmQgYnVmZmVyaW5nIHdpbGwKCSAgbm90IGNvbXBsZXRlIHVudGlsIHdlIGNhbiBhbnN3ZXIgdGhlIHF1ZXJ5Li4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MAoKMjAxMy0wNi0xOSAxMjozMDo0NyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIGEgZmlsdGVyIHRvIHRoZSBjYXBzX3F1ZXJ5IGRvbmUgYnkgYWNjZXB0Y2FwcwoJICBVc2UgdGhlIGNhcHMgdGhhdCB0aGUgcGFkIGlzIGFza2VkIHRvIGFjY2VwdCBhcyBmaWx0ZXIgZm9yIHRoZSBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTE5IDEyOjE5OjAyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvcHRpbWl6ZSBkZWZhdWx0IGFjY2VwdGNhcHMgaW1wbGVtZW50YXRpb24KCSAgUGFzcyB0aGUgZml4ZWQgY2FwcyB3ZSdyZSBhc2tlZCB0byBhY2NlcHQgYXMgYSBmaWx0ZXIgZm9yIHRoZSBjYXBzCgkgIHF1ZXJ5LCBzbyB3ZSBkb24ndCBnZXQgYSBmdWxseS1leHBhbmRlZCBzZXQgb2YgY2FwcyBiYWNrICh3aGljaCB3ZSBkb24ndAoJICBuZWVkIGFuZCBjYW4gdGFrZSBhIGxvdCBvZiB0aW1lIGZvciBpbnRlcnNlY3Rpb24pLgoJICBUaGlzIHJlZHVjZXMgdGhlIHRpbWUgZm9yIGNhbWVyYWJpbiB0byBwcm9kdWNlIGEgc2Vjb25kIGZyYW1lIG9uIGEKCSAgbG9naXRlY2ggQzkxMCBjYW1lcmEgZnJvbSBhcm91bmQgNTIgc2Vjb25kcyB0byBhIGJpdCBsZXNzIHRoZW4gMTYKCSAgc2Vjb25kcyBvbiBteSBzeXN0ZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MzIKCjIwMTMtMDYtMTkgMDk6MTk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQXZvaWQgY29tYmluYXRvcmlhbCBleHBsb3Npb24gd2hlbiBtZXJnaW5nIHRhZ3MKCSAgV2hlbiBhcHBlbmRpbmcvcHJlcGVuZGluZyB0YWdzLCBhdm9pZCByZS1jcmVhdGluZyAoYW5kIGNvcHlpbmcpIGxpc3RzIGlmIHdlIGFscmVhZHkKCSAgaGF2ZSBvbmUgYW5kIGluc3RlYWQganVzdCBhcHBlbmQvcHJlcGVuZCB0aGUgR1ZhbHVlIHRvIHRoZSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNTQ1CgoyMDEzLTA2LTE5IDEwOjUzOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCBob2xkIHRoZSBxdWV1ZSBtdXRleCB3aGlsZSBkb2luZyBzZXJpYWxpemVkIHF1ZXJpZXMgZG93bnN0cmVhbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNTIwCgoyMDEzLTA2LTE5IDEwOjQ1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQWRkIHVuaXQgdGVzdCBmb3IgbWFwX3JhbmdlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYxNwoKMjAxMy0wNi0xOSAwODozNjoyMiArMDIwMCAgUGF1bCBIRU5SWVMgPHZpc2VjaGVsbGVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCB3cm9uZyBzaXplL2luZGV4IGhhbmRsaW5nIHdoZW4gbWVyZ2luZyBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYxNwoKMjAxMy0wNi0xOCAxMTozOTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlzdC11bGluay54c2w6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGZpbGUgZm9yIGRvYy1saW5rIGNoZWNrCgoyMDEzLTA2LTE3IDExOjEyOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHRlc3RzOiBhZGQgc3RyZXNzIHRlc3QgZm9yIGJ1ZmZlcnMgYW5kIHBvb2xzCgoyMDEzLTA2LTE3IDEwOjI1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2FsbCBzdGF0ZSBjaGFuZ2UgaW4gYWxsIGNhc2VzCgkgIFdoZW4gd2UgYXN5bmNocm9ub3VzbHkgZ28gZnJvbSBSRUFEWSB0byBQTEFZSU5HLCBhbHNvIGNhbGwgdGhlCgkgIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIHVwZGF0ZSB0aGVpciBzdGF0ZSBmb3IgUExBWUlORy4KCSAgQmVjYXVzZSB0aGUgUFJFUk9MTCBsb2NrIGlzIG5vdCByZWN1cnNpdmUsIHdlIGNhbid0IG1ha2UgdGhpcyB3aXRob3V0CgkgIHJhY2VzIGFuZCB3ZSBtdXN0IGFzc3VtZSBmb3Igbm93IHRoYXQgdGhlIHN1YmNsYXNzIGNhbiBoYW5kbGUgY29uY3VycmVudCBjYWxscwoJICB0byBQQVVTRUQtPlBMQVlJTkcgYW5kIFBMQVlJTkctPlBBVVNFRC4gV2UgY2FuIG1ha2UgdGhpcyBhc3N1bXB0aW9uIGJlY2F1c2Ugbm90CgkgIG1hbnkgZWxlbWVudHMgYWN0dWFsbHkgZG8gc29tZXRoaW5nIGluIHRob3NlIHN0YXRlIGNoYW5nZXMgYW5kIHRoZSBvbmVzIHRoYXQKCSAgZGlkIHdvdWxkIGJlIGJyb2tlbiBldmVuIG1vcmUgd2l0aG91dCB0aGlzIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjI4MgoKMjAxMy0wNi0xNiAxNTowNzozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgZG9jczogZml4IHNvbWUgZXh0ZXJuYWwgbGlua3MKCjIwMTMtMDYtMTYgMTQ6NDU6MDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBjaGVjayBmb3IgYnJva2VuIGxpbmtzIGluIGRvY3MKCSAgVGhlIGNoZWNrIGlzIGRvbmUgdXNpbmcgY3VybCAoaWYgYXZhaWxhYmxlKS4gSXQgbGlzdHMgdGhlIGN1cmwgZXhpdCBjb2RlICsgaHR0cAoJICBzdGF0dXMgY29kZSAoZm9yIHRob3NlID4gMzk5KSB0b2dldGhlciB3aXRoIHRoZSB1c2Ugb2YgdGhlIHVybCBpbiB0aGUgY29kZS4gVGhlCgkgIGNoZWNrIGlzIG5vdCBmYXRhbC4KCjIwMTMtMDYtMTYgMTM6MDU6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgZG9jczogY2hhbmdlIGh0dHBzIHRvIGh0dHAgdXJscwoJICBUaGFuayB5b3UgYnJvd3NlciBmb3IgbmVlZGxlc3NseSBjaGFuZ2luZyB0byBodHRwcyBmb3Igc3RhdGljIGRvYyBwYWdlcy4KCjIwMTMtMDYtMTYgMTE6NDE6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgZG9jczogdXBkYXRlIGxpbmtzIHRvIGRldmVsb3Blci5nbm9tZS5vcmcKCSAgVGhlIFVSTCBsYXlvdXQgaGFzIGNoYW5nZWQuIEZpeCB0aGUgbGlua3MgYW5kIGNvbW1lbnQgb3V0IG9uZSBwYXJhZ3JhcGggd2hlcmUKCSAgdGhlIGRvYyBpcyBnb25lLgoJICBGaXhlcyAjNzAyMTM1CgoyMDEzLTA2LTE0IDEzOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfbmV3X2Zyb21fc3RyaW5nKCkKCSAgQ29udmVuaWVuY2UgQVBJIGZvciBiaW5kaW5ncywgZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZygpIHJldHVybnMKCSAgYSB0dXBsZSAoc3RydWN0dXJlLCBlbmRfcHRyKSBpbiBiaW5kaW5ncyBhbmQgaXMgdW5pbnR1aXRpdmUgdG8gdXNlCgkgIGJlY2F1c2Ugb2YgdGhhdC4KCjIwMTMtMDYtMTMgMDg6MzY6MjMgKzAyMDAgIEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRG9uJ3QgaW50ZXJjZXB0IC0taGVscCBpbiBnc3RfaW5pdCgpCgkgIEJlZm9yZSB0aGlzIHBhdGNoIGdzdF9pbml0IHdvdWxkIGludGVyY2VwdCAtLWhlbHAsIGNhdXNpbmcgZm9yIGV4YW1wbGUKCSAgY2hlZXNlJ3MgLS1oZWxwIHRvIGxvb2sgbGlrZSB0aGlzOgoJICBbaGFuc0BzaGFsZW0gY2hlZXNlXSQgY2hlZXNlIC0taGVscAoJICBVc2FnZToKCSAgY2hlZXNlIFtPUFRJT04uLi5dIC0gR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uCgkgIEhlbHAgT3B0aW9uczoKCSAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgaGVscCBvcHRpb25zCgkgIC0taGVscC1hbGwgICAgICAgICAgICAgICAgICAgICAgICBTaG93IGFsbCBoZWxwIG9wdGlvbnMKCSAgLS1oZWxwLWdzdCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgR1N0cmVhbWVyIE9wdGlvbnMKCSAgZ3N0X2luaXQgaXMgdGhlIG9ubHkgZ2Zvb19pbml0IGZ1bmN0aW9uIHdoaWNoIGRvZXMgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjA4OQoKMjAxMy0wNi0xMiAwOTo0NTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1cmlkb3dubG9hZGVyIGxpYiBpbiAtYmFkIHRvIHNlYXJjaCBwYXRocwoJICBFdmVuIGlmIGl0IG1pZ2h0IG5vdCBiZSBhcm91bmQgZm9yIGxvbmcuCgoyMDEzLTA2LTExIDEwOjI1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFJlbW92ZSB1bnJlZiB0aGF0IHNob3VsZCBub3QgYmUgdGhlcmUKCSAgV2Uga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dCBhcm91bmQgYWxsIHRoZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTg1CgoyMDEzLTA2LTA5IDE3OjIwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEltcHJvdmUgR3N0Q29udGV4dCBoYW5kbGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwOTY3CgoyMDEzLTA2LTA3IDEzOjA3OjM3ICswMjAwICBLaW0gTGFtIDxraW1AcmVkZ2lhbnRzb2Z0d2FyZS5jb20+CgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJICB3aW4zMjogRG9uJ3QgaW5jbHVkZSBnc3Rjb2xsZWN0cGFkcy5jIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MDMKCjIwMTMtMDUtMzEgMDk6Mzk6NTUgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHNlbmQgbm90aWZ5OjphY3RpdmUgc2lnbmFsIGZvciBpbnB1dC1zZWxlY3RvciBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzE5CgoyMDEzLTA2LTA2IDE2OjQ2OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IGZvcmNlLXVwZGF0ZSB0aGUgZHVyYXRpb24gZm9yIGR5bmFtaWMgc291cmNlcyB3aGVuIGRvaW5nIHRoZSBEVVJBVElPTiBxdWVyeQoJICBEb2luZyBpdCBhZnRlciBldmVyeSBzaW5nbGUgY3JlYXRlKCkgaXMgbm90IHZlcnkgZWZmaWNpZW50IGFuZCBub3QgbmVjZXNzYXJ5LgoJICBFc3BlY2lhbGx5IG9uIG5ldHdvcmsgZmlsZSBzeXN0ZW1zIGZzdGF0KCkgaXMgbm90IGNhY2hlZCBhbmQgY2F1c2VzIG5ldHdvcmsKCSAgdHJhZmZpYywgbWFraW5nIHRoZSBzb3VyY2UgcG9zc2libHkgdW51c2FibGUgc2xvdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjAzNwoKMjAxMy0wNi0wNSAxODozNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4xID09PQoKMjAxMy0wNi0wNSAxNzo1ODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4xCgoyMDEzLTA2LTA1IDE2OjA2OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNi0wNSAxNToxNDoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwOThjMGQ3IHRvIDAxYTdhNDYKCjIwMTMtMDYtMDUgMTE6MDI6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBfYXBwZW5kX2FuZF90YWtlX3ZhbHVlKCkgcHVibGljIHZhcmlhbnRzCgkgIEFQSTogZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF9hbmRfdGFrZV92YWx1ZQoJICBBUEk6IGdzdF92YWx1ZV9saXN0X2FwcGVuZF9hbmRfdGFrZV92YWx1ZQoJICBXZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhpcyBpbnRlcm5hbGx5LCB0aGlzIG1ha2VzIGl0IHB1YmxpYyBmb3IgY29kZQoJICB3aGljaCBmcmVxdWVudGx5IGFwcGVuZHMgdmFsdWVzIHdoaWNoIGFyZSBleHBlbnNpdmUgdG8gY29weSAobGlrZQoJICBzdHJ1Y3R1cmVzLCBhcnJheXMsIGNhcHMsIC4uLikuCgkgIEF2b2lkcyBjb3BpZXMgb2YgdGhlIHZhbHVlcyBmb3IgdXNlcnMuIFRoZSBwYXNzZWQgR1ZhbHVlIHdpbGwgYWxzbwoJICBiZSAwLW1lbXNldCdlZCBmb3IgcmUtdXNlLgoJICBOZXcgdXNlcnMgY2FuIHJlcGxhY2UgdGhpcyBraW5kIG9mIGNvZGU6CgkgIGdzdF92YWx1ZV8qX2FwcGVuZF92YWx1ZShteWNvbnRhaW5lciwgJm15dmFsdWUpOwoJICBnX3ZhbHVlX3Vuc2V0KCZteXZhbHVlKTsKCSAgYnk6CgkgIGdzdF92YWx1ZV8qX2FwcGVuZF9hbmRfdGFrZV92YWx1ZShteWNvbnRhaW5lciwgJm15dmFsdWUpOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjMyCgoyMDEzLTA1LTI5IDE3OjIwOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBVc2UgaW50ZXJuYWwgZnVuY3Rpb24gZm9yIGJ1ZmZlcl9uZXdfd3JhcHBlZAoJICBTaGF2ZXMgfjEwJSBpbnN0cnVjdGlvbiBjYWxscyBmcm9tIHRoZSB0b3RhbCBjb3N0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MzMKCjIwMTMtMDUtMzAgMjI6NTc6NDkgLTA2MDAgIEJyZW5kYW4gTG9uZyA8c2VsZkBicmVuZGFubG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHJldHVybiBGQUxTRSBmb3IgImFjdGl2ZSIgcHJvcGVydHkgaWYgc2VsZWN0b3IgaXMgTlVMTAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzIzCgoyMDEzLTA2LTAxIDE0OjAwOjIyICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBlbGVtZW50cyB0byBtYXRjaCB0aGUgcmVzdCBvZiAiQm9vc3QgcHJpb3JpdHkgb2YgYSB0aHJlYWQiIHNlY3Rpb24KCjIwMTMtMDYtMDEgMTM6NTU6NTAgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IGNvbW1lbnQgaW4gZWZmZWN0c3dpdGNoIGV4YW1wbGUKCjIwMTMtMDYtMDEgMTM6NDk6MTggKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IGEgdHlwbyBpbiAiSW5zZXJ0aW5nIGRhdGEgd2l0aCBhcHBzcmMiIHNlY3Rpb24KCjIwMTMtMDYtMDEgMTM6MjI6MjIgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIHB3ZzogZml4IGEgZmV3IHR5cG9zCgoyMDEzLTA1LTMxIDIzOjM3OjA3ICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHJlbW92ZSBkb3VibGUgInRoZSIKCjIwMTMtMDUtMjggMjM6MzQ6NTQgKzAxMDAgIEtyenlzenRvZiBLb25vcGtvIDxrcnp5c3p0b2Yua29ub3Brb0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGltcHJvdmUgZ2l0LXVwZGF0ZS5zaCBzdGF0dXMgbWVzc2FnZQoJICBCeSBkZWZhdWx0IHdoZW4gdGhlIHNjcmlwdCBpcyBhYm91dCB0byBleGl0IChub3JtYWxseSBvciBkdWUgdG8gYW4gZXJyb3IpLAoJICBpdCBjaGVja3Mgd2hldGhlciAkRVJST1JfTE9HIGZpbGUgZXhpc3RzLiAgSWYgdGhlIGxvZyBmaWxlIGV4aXN0cywgdGhlCgkgIHNjcmlwdCBwcmludHMgYSAiRmFpbHVyZXM6ICIgbWVzc2FnZSBwcmVmaXggYW5kIGR1bXBzIHRoZSBsb2cgZmlsZSB0byB0aGUKCSAgb3V0cHV0LgoJICBBcHBhcmVudGx5IHRoZSBsb2cgZmlsZSBpcyBhbHdheXMgY3JlYXRlZCBhbmQgaWYgdGhlIHVwZGF0ZS9idWlsZCBpcwoJICBzdWNjZXNzZnVsLCB0aGUgc2NyaXB0IGZpbmlzaGVzIHdpdGggYSBiaXQgbWlzbGVhZGluZyAiRmFpbHVyZXM6ICIgbWVzc2FnZS4KCSAgQW4gaW1wcm92ZW1lbnQgcHJvdmlkZWQgd2l0aCB0aGlzIGNoYW5nZSBsZXRzIHRoZSBsb2cgZmlsZSB0byBiZSBjcmVhdGVkIGFzCgkgIG5lZWRlZCwgaS5lLiBpZiB0aGVyZSdzIGFuIGVycm9yIG1lc3NhZ2UgdG8gYmUgcHJpbnRlZC4gIElmIHRoZSBmaWxlCgkgIGRvZXNuJ3QgZXhpc3RzLCB0aGUgc2NyaXB0IHByaW50cyBhICJVcGRhdGUgZG9uZSIgbWVzc2FnZSB3aGljaCBjbGVhcmx5CgkgIGluZGljYXRlcyBzdWNjZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTc3CgoyMDEzLTA1LTMwIDA3OjAzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogZml4IHBvc2l0aW9uIHVuaXQgdGVzdAoKMjAxMy0wNS0zMCAwNjo1MToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdpdGhvdXQgY2xvY2sKCSAgV2hlbiBubyBiYXNlIHRpbWUgb3Igd2hlbiBzeW5jIGlzIGRpc2FibGVkLCB1c2UgdGhlIHNhbWUgbG9naWMgYXMKCSAgaW4gcGF1c2VkIHRvIHJlcG9ydCBwb3NpdGlvbi4gVGhlIGxvZ2ljIGluIFBMQVlJTkcgYXNzdW1lcyB3ZSB1c2UgdGhlCgkgIGNsb2NrLgoKMjAxMy0wNS0yOSAxMTozNjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IG1lbW9yeSBsZWFrIGluIHRoZSB1bml0IHRlc3QKCjIwMTMtMDUtMjggMTI6NDQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgc3VidGl0bGUvbWV0YWRhdGEgZmFjdG9yeSB0eXBlcwoKMjAxMy0wNS0yOCAxMjo0MToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBzdXBwb3J0IGZvciBjaGVja2luZyBvbmx5IHRoZSBtZWRpYSB0eXBlIG9mIGEgZmFjdG9yeQoJICBBbmQgd2hpbGUgYXQgaXQgYWxzbyBhZGQgTWV0YWRhdGEgYW5kIFN1YnRpdGxlIG1lZGlhIHR5cGVzLgoKMjAxMy0wNS0yNyAxNjozODoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAobXVsdGkpcXVldWU6IERvbid0IGFjY2VzcyBxdWVyeSBpdGVtcyBkdXJpbmcgZmx1c2hpbmcKCjIwMTMtMDUtMjcgMTY6MjI6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGRvIHNlcmlhbGl6ZWQgcXVlcmllcyB3aGVuIHdlJ3JlIGZsdXNoaW5nCgkgIEp1c3QgaW1tZWRpYXRlbHkgZmFpbCB0aGUgcXVlcnksIG90aGVyd2lzZSB3ZSB3b3VsZCB3YWl0IGZvcmV2ZXIKCSAgZm9yIHRoZSBxdWVyeSB0byBiZSBhbnN3ZXJlZC4KCjIwMTMtMDUtMjcgMTY6MDg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXJzdCBzZXQgcXVlcnkgcmVzdWx0LCB0aGVuIHNpZ25hbCBHQ29uZAoKMjAxMy0wNS0yNyAxNTo1OTowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IEZpeCBoYW5kbGluZyBvZiBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgRHVyaW5nIEZMVVNIX1NUQVJUIHRoZSBxdWVyeSBuZWVkcyB0byBiZSB1bmJsb2NrZWQgYWxyZWFkeSwgb3RoZXJ3aXNlCgkgIGl0IGNhbiBsZWFkIHRvIGRlYWRsb2NrcyBpZiB0aGUgRkxVU0hfU1RBUlQgaXMgdGhlIHJlc3VsdCBvZiBzb21ldGhpbmcKCSAgZG9uZSBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIG9mIHRoZSBzcmNwYWQgKHRoZSBxdWV1ZSB3aWxsIG5ldmVyIGJlCgkgIGVtcHRpZWQhKS4KCjIwMTMtMDUtMjcgMTU6NDE6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVbmJsb2NrIGFueSB3YWl0aW5nIHNlcmlhbGl6ZSBxdWVyaWVzIG9uIEZMVVNIX1NUQVJUCgkgIEZpeGVzIHNvbWUgZGVhZGxvY2tzIGR1cmluZyBmbHVzaGluZy4KCSAgQW5kIHN0b3JlIHF1ZXVlIGl0ZW1zIGRpZmZlcmVudGx5IHRvIG5vdCBhY2NpZGVudGlhbGx5IHJlYWQKCSAgYWxyZWFkeSB1bnJlZmZlZCBxdWVyaWVzIHdoZW4gZmx1c2hpbmcuIFF1ZXJpZXMgYXJlIG93bmVkIGJ5CgkgIHVwc3RyZWFtIGFuZCBub3QgdXMuCgoyMDEzLTA1LTI3IDEzOjAxOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZS9xdWV1ZTIvbXVsdGlxdWV1ZTogV2hlbiBmbHVzaGluZywgbWFrZSBzdXJlIHRvIG5vdCBsb3NlIGFueSBzdGlja3kgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MjQKCjIwMTMtMDUtMjcgMTI6NDA6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTdG9yZSBzdGlja3kgZXZlbnRzIGV2ZW4gaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBCdXQgZG8gdGhpcyBvbmx5IGZvciBldmVudHMgdGhhdCBhcmUgbm90IGRyb3BwZWQgYnkgZmx1c2hpbmcsCgkgIGkuZS4gZG8gaXQgb25seSBmb3IgZXZlcnl0aGluZyBleGNlcHQgU0VHTUVOVCBhbmQgRU9TLgoJICBXaXRob3V0IHRoaXMgd2UgbWlnaHQgZHJvcCBhIENBUFMgZXZlbnQgaWYgZmx1c2hpbmcgaGFwcGVucwoJICBhdCBhbiB1bmZvcnR1bmF0ZSB0aW1lIGFuZCBub2JvZHkgaXMgcmVzZW5kaW5nIHRoZSBDQVBTIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwODA2CgoyMDEzLTA1LTI1IDIyOjAzOjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IERvbid0IHJlYWQgc3RpY2t5IGZsYWcgZnJvbSB1bnJlZmVkIGV2ZW50CgoyMDEzLTA1LTI0IDIzOjI4OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIG5vdy11bnVzZWQgImFsbG9jLXBhZCIgcHJvcGVydHkKCSAgU2hvdWxkIHByb2JhYmx5IHByb3h5IEFMTE9DQVRJT04gcXVlcmllcyBvbiB0aGF0IHRob3VnaCwgaWYgc2V0LgoJICBCdXQgd2hhdCBlbHNlPyBDQVBTIGFuZCBBQ0NFUFRfQ0FQUyB0b28/CgoyMDEzLTA1LTI0IDIzOjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSAwLjEwLWlzbSBmcm9tIGRvY3MKCSAgZ3N0X2J1ZmZlcl9wYWRfYWxsb2MoKSBuZXZlciBleGlzdGVkLCBhbmQgZ3N0X3BhZF9hbGxvY19idWZmZXIoKQoJICBkb2Vzbid0IGV4aXN0IGFueSBtb3JlIGVpdGhlciwgc28gZG9uJ3QgbWVudGlvbiBpdCBpbiB0aGUgZG9jcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDcxNAoKMjAxMy0wNS0yNCAxOToyMjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXplZCBxdWVyaWVzIGlmIHVzaW5nIGEgbWVtb3J5IHF1ZXVlCgoyMDEzLTA1LTI0IDE4OjQ3OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBTZXQgdGhlIGxhc3Qgc2VyaWFsaXplZCBxdWVyeSByZXN1bHQgdG8gRkFMU0Ugd2hlbiBmbHVzaGluZwoKMjAxMy0wNS0yNCAxODo0Mjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEluaXRpYWxpemUgYWxsIEdzdE11bHRpUXVldWVJdGVtIGZpZWxkcyBpbiBib3RoIGNvZGUgcGF0aHMKCjIwMTMtMDUtMjQgMTg6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBhY2Nlc3MgdGhlIHF1ZXJ5IGFmdGVyIHNpZ25hbGxpbmcgdGhlIHdhaXRpbmcgdGhyZWFkCgkgIEl0IG1pZ2h0J3ZlIGZyZWUnZCB0aGUgcXVlcnkgYWxyZWFkeS4KCjIwMTMtMDUtMjQgMTg6MzA6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIHN1cmUgdG8gYWx3YXlzIHNpZ25hbCBhbnkgcG9zc2libGUgcGVuZGluZyBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgQW5kIGRvbid0IHVucmVmIHRoZW0gd2hlbiBmbHVzaGluZyB0aGUgcXVldWUsIHRoZXkncmUgb3duZWQgYnkgdGhlIGNhbGxlciEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDM0MgoKMjAxMy0wNS0yNCAxNDozNzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldHVybiBHU1RfRkxPV19FUlJPUiBpZiB0aGUgYWxsb2NhdG9yIGRpZCBub3QgYWxsb3cgdG8gYWxsb2NhdGUgYSBidWZmZXIKCjIwMTMtMDUtMjQgMTY6MjQ6MTAgKzA5MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IFJlbW92ZSBtZW50aW9uIG9mIGdjb25mKiBlbGVtZW50cwoJICBJbnN0ZWFkIHJlY29tbWVuZCBwdWxzZXNyYy9zaW5rIGZvciBhdWRpbywgdGhlcmUgaXMgbm90aGluZyBHTk9NRQoJICBzcGVjaWZpYyBmb3IgdmlkZW8uCgoyMDEzLTA1LTE1IDEzOjIyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBIYW5kbGUgdGhlIGZvcmNlLWNhcHMgcHJvcGVydHkgbW9yZSBzaW1pbGFyIHRvIGFsbCB0eXBlZmluZGluZyBjb2RlIGZsb3cKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgZXZlbnRzIGhhcHBlbiBpbiBvcmRlciBhbmQgc2ltcGxpZmllcyB0aGUgY29kZSBhIGJpdC4KCjIwMTMtMDUtMTUgMTE6MjE6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBldmVudCBoYW5kbGluZyBpbiBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTMtMDUtMTUgMTA6NTE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZWRjZDg1IHRvIDA5OGMwZDcKCjIwMTMtMDUtMTAgMTY6MDM6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgY2hlY2sgaWYgd2UgZ2V0IGJ1ZmZlcnMgYmVmb3JlIHN0cmVhbS1zdGFydC9zZWdtZW50IGlmIGNvbXBpbGluZyB3aXRob3V0IEdfRElTQUJMRV9BU1NFUlQKCSAgSW4gcmVsZWFzZXMgdGhpcyBpcyBzZXQgdXN1YWxseS4KCjIwMTMtMDUtMDkgMTc6MTc6MTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIGhlbHBlciB0aGF0IHNlbmRzIGluaXRpYWwgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAwMzMKCjIwMTMtMDUtMDkgMTc6MjI6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTMtMDUtMDkgMTc6MjE6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1ha2Ugc3VyZSBwZW5kaW5nLCBvbGRlciBzdGlja3kgZXZlbnRzIGFyZSBzZW50IGRvd25zdHJlYW0gaW4gZHluYW1pYyBsaW5raW5nIHNjZW5hcmlvcwoJICBJZiBhIHBhZCBibG9jayB3YXMgdHJpZ2dlcmVkIGZyb20gc2VuZGluZyBhIHN0aWNreSBldmVudCBkb3duc3RyZWFtLCBpdAoJICBjb3VsZCBoYXBwZW4gdGhhdCB0aGUgcGFkIGJsb2NrIGlzIHJlbGlua2luZyBwYWRzLCB3aGljaCB0aGVuIHJlcXVpcmVzCgkgIHRvIHJlc2VuZCBwcmV2aW91cyBzdGlja3kgZXZlbnRzLgoKMjAxMy0wNS0wOSAxMzozMjowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogRml4IGV2ZW50IG9yZGVyIHdhcm5pbmdzIGFuZCBkYXRhZmxvdyBiZWZvcmUgc3RyZWFtLXN0YXJ0L3NlZ21lbnQgZXZlbnQKCjIwMTMtMDUtMDkgMTM6MzE6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJvcGVybHkgcG9ydCB1bml0IHRlc3QgdG8gYWN0dWFsbHkgdXNlIGNhcHMgYW5kIGNoZWNrIHJlc3VsdHMKCjIwMTMtMDUtMDkgMTI6NTA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogU3RvcmUgc3RpY2t5IGV2ZW50cyBvbiB0aGUgc3JjcGFkIGlmIHdlJ3JlIGRyb3BwaW5nIHRoZW0gYmVjYXVzZSBvZiBsZWFraW5nCgoyMDEzLTA1LTA5IDEyOjI3OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEFsd2F5cyBmb3J3YXJkIHN0aWNreSBldmVudHMgdG8gYWxsIHBhZHMKCjIwMTMtMDUtMDkgMTI6MTU6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZvcndhcmQgYWxsIHN0aWNreSBldmVudHMsIGluY2x1ZGluZyBzdHJlYW0tc3RhcnQKCjIwMTMtMDUtMDkgMTE6MDU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFdhcm4gaWYgZGF0YSBmbG93IGhhcHBlbnMgYmVmb3JlIHN0cmVhbS1zdGFydCBvciBzZWdtZW50IGV2ZW50CgoyMDEzLTA1LTA5IDEwOjU5OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGxldCBnc3RfcGFkX3N0aWNreV9ldmVudHNfZm9yZWFjaCgpIGl0ZXJhdGUgb3ZlciBleGlzdGluZyBldmVudHMKCjIwMTMtMDUtMDkgMTA6Mjk6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHdlIHB1c2ggc3RpY2t5IGV2ZW50cyBiZWNhdXNlIG9mIGFub3RoZXIgc3RpY2t5IGV2ZW50LCBvbmx5IHB1c2ggdGhvc2UgdGhhdCBjb21lIGJlZm9yZSB0aGUgbmV3IGV2ZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk5MzcKCjIwMTMtMDUtMDkgMDk6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBtb3JlIGRlYnVnIG91dHB1dCBhbmQgZm9yd2FyZCBjYXBzIGV2ZW50cyBpbW1lZGlhdGVseSB0b28KCjIwMTMtMDUtMDkgMDk6NDI6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE5vIHN0aWNreSBldmVudHMgbXVzdCBhcnJpdmUgYWZ0ZXIgRU9TCgoyMDEzLTA1LTA5IDA5OjM4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBGaXggdHlwbyBpbiBsYXN0IGNvbW1pdAoKMjAxMy0wNS0wOCAxOTo0NDowOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2UgbmFtaW5nIGV2ZW50cyB0eXBlIG5hbWUKCSAgV2l0aCB0aGlzIHBhdGNoLCBtZXNzYWdlIHNob3VsZCBsb29rIGxpa2UgwqhTdGlja3kgZXZlbnQgbWlzb3JkZXJpbmcsIGdvdAoJICAnY2FwcycgYmVmb3JlICdzdHJlYW0tc3RhcnQnwqggbWFraW5nIGl0IGZhc3RlciB0byBkZWJ1Zy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOCAxODoxOTo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBpbmZvcmNlIFNUUkVBTV9TVEFSVCwgQ0FQUyBhbmQgU0VHTUVOVCBvcmRlcmluZwoJICBQcmV2aW91cyBwYXRjaCB3YXMgaW5mb3JjaW5nIGEgY29tcGxldGUgb3JkZXJpbmcgb2YgdGhlIHN0aWNreSBldmVudHMsIHdoaWxlCgkgIGluIGZhY3QsIG9ubHkgU1RSRUFNX1NUQVJULCBDQVBTIGFuZCBTRUdNRU5UIGV2ZW50cyBuZWVkIHByb3BlciBvcmRlcmluZy4KCSAgU2VlOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA5IDA5OjMyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogU2VuZCBhbGwgZXZlbnRzIHRoYXQgc2hvdWxkIGhhcHBlbiBhZnRlciBDQVBTIGFmdGVyIHRoZSBDQVBTIGV2ZW50CgoyMDEzLTA1LTA4IDIxOjQ1OjA4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogU2VuZCBjYXBzIGJlZm9yZSBzZWdtZW50CgkgIEluIHRoZSBjYXNlIHRoZSBzb3VyY2UgaGFzIG5vIGNhcHMsIGNhcHMgbXVzdCBiZSBzZW50IGJlZm9yZSBzZWdtZW50LiBUaGlzCgkgIGZpeGVzIGZldyB1bml0IHRlc3RzIHRoYXQgd2hlcmUgZmFpbGluZyBkdWUgdG8gdGhlIG5ldyBtaXNvcmRlcmluZyB3YXJuaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5OTY4CgoyMDEzLTA1LTA3IDIxOjUzOjM3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEZXRlY3QsIGZpeCBhbmQgd2FybiB3aGVuIHN0aWNreSBldmVudHMgYXJlIGluIHdyb25nIG9yZGVyCgkgIFdlIGNhbiBwcmV2ZW50IGJ1Z2d5IGVsZW1lbnQgZnJvbSBjYXVzaW5nIG90aGVyIGVsZW1lbnRzIHRvIGZhaWwgb3IgY3Jhc2gKCSAgYnkgc29ydGluZyBzdGlja3kgZXZlbnQgYXQgaW5zZXJ0aW9uLiBJbiB0aGlzIGNhc2UsIHdlIGFsc28gd2FybiBhcyB0aGlzCgkgIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW4uCgkgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOCAxMDoyNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIGNoZWNrcyBmb3IgZ3N0X2J1ZmZlcl9maWxsKCkKCjIwMTMtMDUtMDggMTA6MjU6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWxsb3cgY2FsbGluZyBfZmlsbCgpIHdpdGggYSBOVUxMIGRhdGEgcG9pbnRlciBpZiBzaXplIGlzIDAgYnl0ZXMKCjIwMTMtMDUtMDcgMTY6NDY6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEFkZCBGSVhNRSBjb21tZW50IGZvciB1bnVzZWQgYXNzaWdubWVudCByZXN1bHRzCgoyMDEzLTA1LTA3IDE1OjE4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBtZXRhZGF0YSBzZWN0aW9uIGluIGFwcCBkZXYgbWFudWFsCgkgIFRoZXJlJ3Mgbm8gZ190YWdfbGlzdF9nZXRfeHl6KCkuCgoyMDEzLTA1LTA3IDE0OjQ3OjA5ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCBhIG1pbm9yIHR5cG8gZml4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk4MjcKCjIwMTMtMDUtMDYgMTg6NDc6NDQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTZW5kIHN0cmVhbS1zdGFydCBiZWZvcmUgYW55dGhpbmcgZWxzZQoJICBUbyBkbyBzbywgc2VuZCBzdHJlYW0tc3RhcnQgd2hlbiB0aGUgc3RyZWFtaW5nIHRocmVhZCBnb2VzIHVwIGZvciB0aGUgZmlyc3QKCSAgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTc2NwoKMjAxMi0xMi0yNiAxMTo1NDo1MSArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IEFsbG93IDEuMCBhbmQgMC4xMCBzY3JpcHRzIGluc3RhbGxlZCBzaW11bHRhbmVvdXNseQoJICBBcyBsb25nIGFzIHRoZSBzY3JpcHRzJyBmaWxlbmFtZXMgYXJlIGRpZmZlcmVudCwgYW5kIHRoZSBfZ3N0X2luc3BlY3QKCSAgYW5kIF9nc3RfbGF1bmNoIGZ1bmN0aW9ucyBhcmUgbmFtZWQgZGlmZmVyZW50bHksIHRoZSBjb21wbGV0aW9uIHNjcmlwdHMKCSAgZm9yIEdTdHJlYW1lciAxLjAgYW5kIDAuMTAgY2FuIGJlIGluc3RhbGxlZCBzaWRlLWJ5LXNpZGUgaW4KCSAgL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC4KCSAgT24gbXkgMC4xMCBicmFuY2jigKAgdGhlIGNvbXBsZXRpb24gc2NyaXB0IGlzIHJlbmFtZWQgdG8KCSAgImdzdHJlYW1lci1jb21wbGV0aW9uLTAuMTAiIGFuZCB0aGUgZnVuY3Rpb25zIGFyZSByZW5hbWVkIHRvCgkgICJfZ3N0X2luc3BlY3RfMF8xMCIgYW5kICJfZ3N0X2xhdW5jaF8wXzEwIi4gVGhlIHJlbWFpbmluZyBoZWxwZXIKCSAgZnVuY3Rpb25zIHNob3VsZCByZW1haW4gaWRlbnRpY2FsICh0aGUgY29tbWFuZC1saW5lIGludGVyZmFjZSB0bwoJICBnc3QtaW5zcGVjdCBoYXNuJ3QgY2hhbmdlZCwgbm9yIGhhcyB0aGUgZm9ybWF0IG9mIHRoZSBnc3QtbGF1bmNoCgkgIHBpcGVsaW5lKSwgc28gaXQgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIDEuMCBzY3JpcHQgb3ZlcnJpZGVzIHRoZSAwLjEwCgkgIHNjcmlwdCdzIGRlZmluaXRpb25zLgoJICBOb3RlIHRoYXQgSSBkb24ndCBleHBlY3QgdGhlcmUgdG8gYmUgYW5vdGhlciBHU3RyZWFtZXIgMC4xMCByZWxlYXNlLCBzbwoJICB0aGUgMC4xMCBjb21wbGV0aW9uIHNjcmlwdCB3aWxsIHByb2JhYmx5IG5ldmVyIGJlIG9mZmljaWFsbHkgcmVsZWFzZWQ7CgkgIGJ1dCBpdCBpcyBzdGlsbCB3b3J0aHdoaWxlIGFsbG93aW5nIGJvdGggc2NyaXB0cyB0byBiZSBpbnN0YWxsZWQKCSAgYWxvbmdzaWRlIGVhY2ggb3RoZXIsIGZvciB0aG9zZSB3aG8gaW5zdGFsbCB0aGUgMC4xMCBjb21wbGV0aW9uIHNjcmlwdAoJICBtYW51YWxseS4KCSAgRml4ZXM6ICM2OTA1MTUKCSAg4oCgIGh0dHBzOi8vZ2l0aHViLmNvbS9kcm90aGxpcy9nc3RyZWFtZXIvYmxvYi9iYXNoLWNvbXBsZXRpb24tMC4xMC90b29scy9nc3RyZWFtZXItY29tcGxldGlvbi0wLjEwCgoyMDEyLTEyLTIxIDE4OjEzOjUzICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBDb21wbGV0ZSBvcHRpb24gJiBwcm9wZXJ0eSB2YWx1ZXMgb24gYmFzaCAzLjIKCSAgQmFzaCAzJ3MgY29tcGxldGlvbiBkb2Vzbid0IHNwbGl0IHdvcmRzIGJ5IGNoYXJhY3RlcnMgaW4KCSAgQ09NUF9XT1JEQlJFQUtTLiBJbiBwYXJ0aWN1bGFyIGl0IGRvZXNuJ3Qgc3BsaXQgYXQgIj0iIHNpZ25zLiBOb3cKCSAgX2dzdF9sYXVuY2hfcGFyc2UgaGFuZGxlcyBib3RoIGJhc2ggMyBhbmQgNCBmb3JtYXQgb2YgQ09NUF9XT1JEUy4KCSAgTm90ZSB0aGF0ICIke2N1ciUlPSp9IiBtZWFucyBjdXIncyB2YWx1ZSB3aXRoIHRoZSBsb25nZXN0IHBvc3NpYmxlIG1hdGNoCgkgIG9mICI9KiIgZGVsZXRlZCBmcm9tIHRoZSBlbmQ7ICIke2N1ciMqPX0iIG1lYW5zIGN1cidzIHZhbHVlIHdpdGggdGhlCgkgIHNob3J0ZXN0IHBvc3NpYmxlIG1hdGNoIG9mICIqPSIgZGVsZXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcuIFNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1NoZWxsLVBhcmFtZXRlci1FeHBhbnNpb24uaHRtbAoJICBSZWdhcmRsZXNzIG9mIHRoZSB2ZXJzaW9uIG9mIGJhc2ggcnVubmluZyB0aGUgdW5pdCB0ZXN0cywgSSBjYW4gdGVzdCBmb3IKCSAgYm90aCBiZWhhdmlvdXJzIGJlY2F1c2UgdGhlIHVuaXQgdGVzdCBwb3B1bGF0ZXMgQ09NUF9XT1JEUyBtYW51YWxseS4gU28KCSAgdGhpcyB0ZXN0cyB0aGUgYmFzaCAzIGJlaGF2aW91cjoKCSAgdGVzdF9nc3RfaW5zcGVjdF9jb21wbGV0aW9uIC0tZ3N0LWRlYnVnLWxldmVsPTQKCSAgYW5kIHRoaXMgdGVzdHMgdGhlIGJhc2ggNCBiZWhhdmlvdXI6CgkgIHRlc3RfZ3N0X2luc3BlY3RfY29tcGxldGlvbiAtLWdzdC1kZWJ1Zy1sZXZlbCA9IDQKCjIwMTItMTItMjEgMDg6NTY6MjYgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IEJhc2ggMy4yIGNvbXBhdGliaWxpdHkgZml4ZXMKCSAgQ29tcGF0aWJsZSB3aXRoIGJhc2ggMy4yOyBkb2Vzbid0IHJlcXVpcmUgdGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIGF0CgkgIGFsbCAodGhvdWdoIHRoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIHRoaXMgc2NyaXB0IGlzIHN0aWxsIHRvIGluc3RhbGwKCSAgYmFzaC1jb21wbGV0aW9uLCBhbmQgdGhlbiBkcm9wIHRoaXMgc2NyaXB0IGludG8gL2V0Yy9iYXNoX2NvbXBsZXRpb24uZCkuCgkgIE5vdGUgdGhhdCBiYXNoIDMgZG9lc24ndCBicmVhayBDT01QX1dPUkRTIGFjY29yZGluZyB0byBjaGFyYWN0ZXJzIGluCgkgIENPTVBfV09SREJSRUFLUywgc28gInByb3BlcnR5PXZhbCIgbG9va3MgbGlrZSBhIHNpbmdsZSB3b3JkLCBzbyB0aGlzCgkgIHdvbid0IGNvbXBsZXRlIHByb3BlcnR5IHZhbHVlcyAob24gYmFzaCAzKS4gU2ltaWxhcmx5LAoJICAiLS1nc3QtZGVidWctbGV2ZWw9PFRBQj4iIHdvbid0IGNvbXBsZXRlIHByb3Blcmx5IChvbiBiYXNoIDMpLCBidXQKCSAgIi0tZ3N0LWRlYnVnLWxldmVsIDxUQUI+IiB3aWxsLgoJICBGb3IgdGhhdCByZWFzb24sIEkgbm93IG9mZmVyICItLWdzdC1kZWJ1Zy1sZXZlbCIgZXRjIGFzIGNvbXBsZXRpb25zCgkgIGluc3RlYWQgb2YgIi0tZ3N0LWRlYnVnLWxldmVsPSIuCgkgIEZ1bmN0aW9ucyAiX2luaXRfY29tcGxldGlvbiIgYW5kICJfcGFyc2VfaGVscCIgd2VyZSBwcm92aWRlZCBieSB0aGUKCSAgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgPj0gMi4wOyBub3cgSSByb2xsIG15IG93biBlcXVpdmFsZW50IG9mCgkgICJfcGFyc2VfaGVscCIsIGFuZCBpbnN0ZWFkIG9mICJfaW5pdF9jb21wbGV0aW9uIiBJIHVzZQoJICAiX2dldF9jb21wX3dvcmRzX2J5X3JlZiIgd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gYmFzaC1jb21wbGV0aW9uIDEuMgoJICBvbndhcmRzLiBJZiB0aGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgaXNuJ3QgYXZhaWxhYmxlIGF0IGFsbCBJIHVzZQoJICBiYXNoJ3MgcmF3IGZhY2lsaXRpZXMsIGF0IHRoZSBleHBlbnNlIG9mIG5vdCBjb21wbGV0aW5nIHByb3Blcmx5IHdoZW4KCSAgdGhlIGN1cnNvciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZC4KCSAgVGhlIGJ1aWx0aW4gImNvbXBvcHQiIGRvZXNuJ3QgZXhpc3QgaW4gYmFzaCAzOyB0aG9zZSB1c2VycyB3aWxsIGp1c3QKCSAgaGF2ZSB0byBsaXZlIHdpdGggdGhlIGluY29udmVuaWVuY2Ugb2YgInByb3BlcnR5PSIgY29tcGxldGluZyB0bwoJICAicHJvcGVydHk9ICIgd2l0aCBhIHRyYWlsaW5nIHNwYWNlLiBQcm9wZXJ0eSB2YWx1ZXMgYXJlbid0IGNvbXBsZXRlZAoJICBwcm9wZXJseSBhbnl3YXkgb24gYmFzaCAzIChzZWUgYWJvdmUpLgoJICAiW1sgLXYgdmFyIF1dIiB0byB0ZXN0IHdoZXRoZXIgYSB2YXJpYWJsZSBpcyBzZXQsIGFsc28gZG9lc24ndCBleGlzdCBpbgoJICBiYXNoIDMuIE5laXRoZXIgZG9lcyAiOzsmIiB0byBmYWxsIHRocm91Z2ggaW4gYSAiY2FzZSIgc3RhdGVtZW50LgoJICBJbiB0aGUgdW5pdCB0ZXN0czoKCSAgKiBPbiBteSBzeXN0ZW0gKE9TIFgpLCAiIyEvYmluL2Jhc2giIGlzIGJhc2ggMy4yLCB3aGVyZWFzCgkgICIjIS91c3IvYmluL2VudiBiYXNoIiBpcyB0aGUgNC4yIHZlcnNpb24gSSBidWlsdCBteXNlbGYuCgkgICogSSBoYXZlIHRvIGluaXRpYWxpc2UgYXJyYXkgdmFyaWFibGVzIGxpa2UgImV4cGVjdGVkPSgpIiwgb3IgYmFzaCAzCgkgIHRyZWF0cyAiKz0iIGFzIGFwcGVuZGluZyB0byBhbiBhcnJheSBhbHJlYWR5IHBvcHVsYXRlZCB3aXRoIG9uZSBlbXB0eQoJICBzdHJpbmcuCgoyMDEyLTEyLTE5IDEwOjQ2OjUwICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBTdXBwb3J0IGdzdC1pbnNwZWN0LCBhbmQgZ3N0LWxhdW5jaCBlbGVtZW50IHByb3BlcnRpZXMKCSAgQ29tcGxldGVzIG9wdGlvbnMgbGlrZSAiLS1nc3QtZGVidWctbGV2ZWwiIGFuZCB0aGUgdmFsdWVzIG9mIHNvbWUgb2YKCSAgdGhvc2Ugb3B0aW9uczsgY29tcGxldGVzIGdzdC1sYXVuY2ggcGlwZWxpbmUgZWxlbWVudCBuYW1lcywgcHJvcGVydHkKCSAgbmFtZXMsIGFuZCBldmVuIHByb3BlcnR5IHZhbHVlcyAoZm9yIGVudW0gb3IgYm9vbGVhbiBwcm9wZXJ0aWVzIG9ubHkpLgoJICBEb2Vzbid0IGNvbXBsZXRlIGFsbCBjYXBzIHNwZWNpZmljYXRpb25zLCBub3IgZWxlbWVudCBuYW1lcyBzcGVjaWZpZWQKCSAgZWFybGllciBpbiB0aGUgcGlwZWxpbmUgd2l0aCAibmFtZT0uLi4iLgoJICBUaGUgR1N0cmVhbWVyIHZlcnNpb24gbnVtYmVyIGlzIGhhcmQtY29kZWQgaW50byB0aGUgY29tcGxldGlvbiBzY3JpcHQ6CgkgIFRoaXMgcGF0Y2ggaXMgb2ZmIHRoZSBtYXN0ZXIgYnJhbmNoIGFuZCBoYXMgdGhlIHZlcnNpb24gaGFyZC1jb2RlZCBhcwoJICAiMS4wIjsgaXQgbmVlZHMgdG8gYmUgdXBkYXRlZCBpZiBiYWNrcG9ydGVkIHRvIHRoZSAwLjEwIGJyYW5jaC4gWW91CgkgIGNvdWxkIGFsd2F5cyBjcmVhdGUgYSAiZ3N0cmVhbWVyLWNvbXBsZXRpb24uaW4iIHRoYXQgaGFzIHRoZSBhcHByb3ByaWF0ZQoJICB2ZXJzaW9uIGluc2VydGVkIGJ5ICJjb25maWd1cmUiLCBidXQgSSdkIHJhdGhlciBub3QgZG8gdGhhdC4gVGhlCgkgIGhhcmQtY29kZWQgdmVyc2lvbiBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mCgkgIGdzdHJlYW1lci1jb21wbGV0aW9uLCB3aGljaCBoYWQgdGhlIHJlZ2lzdHJ5IHBhdGggaGFyZC1jb2RlZCBhcwoJICB+Ly5nc3RyZWFtZXItMS4wL3JlZ2lzdHJ5LnhtbC4KCSAgTm90ZSB0aGF0IEdTdHJlYW1lciAwLjEwIGluc3RhbGxzICJnc3QtaW5zcGVjdCIgYW5kICJnc3QtaW5zcGVjdC0wLjEwIi4KCSAgImdzdC1pbnNwZWN0IC0taGVscCIgb25seSBwcmludHMgNCBmbGFncyAoLS1oZWxwLCAtLXByaW50LCAtLWdzdC1tbSwKCSAgZ3N0LWxpc3QtbW0pIHdoZXJlYXMgImdzdC1pbnNwZWN0LTAuMTAgLS1oZWxwLWFsbCIgcHJpbnRzIHRoZSBmdWxsIGxpc3QKCSAgb2YgZmxhZ3MuIFRoZSBzYW1lIGFwcGxpZXMgdG8gImdzdC1sYXVuY2giIGFuZCAiZ3N0LWxhdW5jaC0wLjEwIi4KCSAgR1N0cmVhbWVyIDEuMCBvbmx5IGluc3RhbGxzICJnc3QtaW5zcGVjdC0xLjAiLCBub3QgImdzdC1pbnNwZWN0Ii4KCSAgUmVxdWlyZXMgYmFzaCA0OyBvbmx5IHRlc3RlZCB3aXRoIGJhc2ggNC4yLiBSZXF1aXJlcyAiYmFzaC1jb21wbGV0aW9uIgoJICAod2hpY2ggeW91IGluc3RhbGwgd2l0aCB5b3VyIHN5c3RlbSdzIHBhY2thZ2UgbWFuYWdlcikuCgkgIFB1dCB0aGlzIGluIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQvIG9yIGluIGBwa2ctY29uZmlnCgkgIC0tdmFyaWFibGU9Y29tcGF0ZGlyIGJhc2gtY29tcGxldGlvbmAsIHdoZXJlIGl0IHdpbGwgYmUgbG9hZGVkIGF0IHRoZQoJICBiZWdpbm5pbmcgb2YgZXZlcnkgbmV3IHRlcm1pbmFsIHNlc3Npb247CgkgIG9yIGluIGBwZ2stY29uZmlnIC0tdmFyaWFibGU9Y29tcGxldGlvbnNkaXIgYmFzaC1jb21wbGV0aW9uYCwgcmVuYW1lZCB0bwoJICBtYXRjaCB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBpdCBjb21wbGV0ZXMgKGUuZy4gImdzdC1sYXVuY2gtMS4wIiwgd2l0aAoJICBhbiBhZGRpdGlvbmFsIHN5bWxpbmsgbmFtZWQgImdzdC1pbnNwZWN0LTEuMCIpLCB3aGVyZSBpdCB3aWxsIGJlCgkgIGF1dG9sb2FkZWQgd2hlbiBuZWVkZWQuCgkgIHRlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2ggaXMgKGZvciBub3cpIGluIHRlc3RzL21pc2MgLS0gaXQgbWlnaHQgYmUKCSAgd29ydGggY3JlYXRpbmcgInRlc3RzL2NoZWNrL3Rvb2xzIiwgd2l0aCBhbGwgdGhlIG5lY2Vzc2FyeSBhdXRvbWFrZQoJICBib2lsZXJwbGF0ZSwgYW5kIG1vdmluZyB0ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoIHRoZXJlLCBhbmQgaGF2ZSBpdAoJICBydW4gYXV0b21hdGljYWxseSB3aXRoICJtYWtlIGNoZWNrIi4KCSAgSUYgWU9VJ1JFIE5FVyBUTyBCQVNIIENPTVBMRVRJT04gU0NSSVBUUwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICJjb21wbGV0ZSAtRiBfZ3N0X2xhdW5jaCBnc3QtbGF1bmNoLTEuMCIgbWVhbnMgdGhhdCBiYXNoIHdpbGwgcnVuIHRoZQoJICBmdW5jdGlvbiAiX2dzdF9sYXVuY2giIHRvIGdlbmVyYXRlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGZvciB0aGUgY29tbWFuZAoJICAiZ3N0LWxhdW5jaC0xLjAiLgoJICAiX2dzdF9sYXVuY2giIG11c3QgcmV0dXJuIHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBpbiB0aGUgYXJyYXkgdmFyaWFibGUKCSAgQ09NUFJFUExZLiAoTm90ZSBvbiBiYXNoIHN5bnRheDogIlY9KGEgYiBjKSIgYXNzaWducyB0aHJlZSBlbGVtZW50cyB0bwoJICB0aGUgYXJyYXkgIlYiKS4KCSAgImNvbXBnZW4iIHByaW50cyBhIGxpc3Qgb2YgcG9zc2libGUgY29tcGxldGlvbnMgdG8gc3RhbmRhcmQgb3V0cHV0LiBUcnkKCSAgaXQ6CgkgIGNvbXBnZW4gLVcgImFiYzEgYWJjMiBkZWYiIC0tICJhIgoJICBjb21wZ2VuIC1mIC0tICIvIgoJICBUaGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgd29yZCBjdXJyZW50bHkgYmVpbmcgY29tcGxldGVkOyBjb21wZ2VuIHVzZXMgaXQKCSAgdG8gZmlsdGVyIG91dCB0aGUgbm9uLW1hdGNoaW5nIGNvbXBsZXRpb25zLiBXZSBwdXQgIi0tIiBmaXJzdCwgaW4gY2FzZQoJICB0aGUgd29yZCBjdXJyZW50bHkgYmVpbmcgY29tcGxldGVkIHN0YXJ0cyB3aXRoICItIiBvciAiLS0iLCBzbyB0aGF0IGl0CgkgIGlzbid0IHRyZWF0ZWQgYXMgYSBmbGFnIHRvIGNvbXBnZW4uCgkgIEZvciB0aGUgZG9jdW1lbnRhdGlvbiBvZiBDT01QX1dPUkRTLCBDT01QX0NXT1JELCBldGMgc2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvQmFzaC1WYXJpYWJsZXMuaHRtbCNpbmRleC1DT01QXzAwNWZDV09SRC0xODAKCSAgU2VlIGFsc286CgkgICogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi5odG1sCgkgICogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi1CdWlsdGlucy5odG1sCgkgIFRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBwcm92aWRlcyB0aGUgaGVscGVyIGZ1bmN0aW9uCgkgICJfaW5pdF9jb21wbGV0aW9uIiB3aGljaCBwb3B1bGF0ZXMgdmFyaWFibGVzICJjdXIiLCAicHJldiIsIGFuZCAid29yZHMiLgoJICBTZWUKCSAgaHR0cDovL2Fub25zY20uZGViaWFuLm9yZy9naXR3ZWIvP3A9YmFzaC1jb21wbGV0aW9uL2Jhc2gtY29tcGxldGlvbi5naXQ7YT1ibG9iO2Y9YmFzaF9jb21wbGV0aW9uO2g9ODcwODExYjQ7aGI9SEVBRCNsNjM0CgkgIE5vdGUgdGhhdCBieSBkZWZhdWx0LCBiYXNoIGFwcGVuZHMgYSBzcGFjZSB0byB0aGUgY29tcGxldGVkIHdvcmQuIFdoZW4KCSAgdGhlIGNvbXBsZXRpb24gaXMgInByb3BlcnR5PSIgd2UgZG9uJ3Qgd2FudCBhIHRyYWlsaW5nIHNwYWNlOyBjYWxsaW5nCgkgICJjb21wb3B0IC1vIG5vc3BhY2UiIG1vZGlmaWVzIHRoZSBjdXJyZW50bHktZXhlY3V0aW5nIGNvbXBsZXRpb24KCSAgYWNjb3JkaW5nbHkuIFNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLUJ1aWx0aW5zLmh0bWwjaW5kZXgtY29tcG9wdAoKMjAxMi0xMS0xMyAxNjozNjo0NiArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFVwZGF0ZWQgdG8gd29yayB3aXRoIHRoZSBiaW5hcnkgcmVnaXN0cnkKCSAgVGhlIG9yaWdpbmFsIHJlZ2lzdHJ5IHdhcyBpbiB4bWwgZm9ybWF0ICh+Ly5nc3RyZWFtZXItKi9yZWdpc3RyeS54bWwpLiBBCgkgIGJpbmFyeSByZWdpc3RyeSBmb3JtYXQgd2FzIGFkZGVkIGluIDIwMDcgKGNvbW1pdCBlYmYwYzlkMykgYW5kIG1hZGUgdGhlCgkgIGRlZmF1bHQgaW4gMjAwOCAoY29tbWl0IDNmMzlmZDdlKS4gSW4gMC4xMCB5b3UgY291bGQgc3RpbGwgY2hvb3NlIGF0CgkgICJjb25maWd1cmUiIHRpbWUgdG8gdXNlIHRoZSB4bWwgcmVnaXN0cnkgaW5zdGVhZDsgaW4gMS4wIHRoZSBiaW5hcnkKCSAgcmVnaXN0cnkgaXMgeW91ciBvbmx5IGNob2ljZS4KCSAgVGhpcyBjaGFuZ2UgdG8gZ3N0cmVhbWVyLWNvbXBsZXRpb24gc2hvdWxkIHdvcmsgd2l0aCBlaXRoZXIgZm9ybWF0CgkgIGJlY2F1c2UgaXQgcGFyc2VzIHRoZSBvdXRwdXQgb2YgImdzdC1pbnNwZWN0IiBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlCgkgIHJlZ2lzdHJ5IGZpbGUgZGlyZWN0bHkuCgkgIE5vdGUgdGhhdCBfZ3N0X2xhdW5jaCBubyBsb25nZXIgbmVlZHMgYW4gZXhwbGljaXQgInJldHVybiAwIiBiZWNhdXNlLAoJICB1bmxpa2UgdGhlIHByZXZpb3VzIGdyZXAgY29tbWFuZCwgY29tcGdlbiBhbHdheXMgcmV0dXJucyAwICh1bmxlc3MgYQoJICBnZW51aW5lIGVycm9yIG9jY3VycykuCgkgIEp1c3QgbGlrZSB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gYnkgRGF2aWQgU2NobGVlZiwgdGhpcyAib25seQoJICBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1dCB0aGF0J3MgOTAlIG9mIHdoYXQgSSB3YW50IGl0IGZvci4iCgoyMDEzLTA0LTI5IDIxOjExOjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IG5pdCBjbGFyaWZpY2F0aW9uCgkgIEl0IGlzIHRoZSBwcm9jZXNzIGNvbnRleHQgdGhhdCBtYXR0ZXJzLgoKMjAxMy0wNC0yOSAxMzoyMDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWx3YXlzIGxlYXZlIFRZUEVGSU5EIG1vZGUgd2hlbiB3ZSdyZSBzdG9wcGluZyB0eXBlZmluZGluZwoKMjAxMy0wNC0yOSAxMzowMzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2ltcGxpZnkgY29kZQoJICBUaGlzIGlzIG9ubHkgY2FsbGVkIHdoZW4gaW4gVFlQRUZJTkQgbW9kZS4KCjIwMTMtMDQtMjkgMTI6NTg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFB1c2ggcGVuZGluZyBldmVudHMgaW5kZXBlbmRlbnQgb2YgdGhlIGV4aXN0ZW5jZSBvZiBhIGRvd25zdHJlYW0gY2hhaW4gZnVuY3Rpb24gYW5kIHBlZXIKCSAgRG93bnN0cmVhbSBtaWdodCBjcmVhdGUgYSBwZWVyIG9ubHkgYXMgcmVzdWx0IG9mIHRoZSBldmVudHMgaW4gdGhlb3J5LgoKMjAxMy0wNC0yOSAxMjo1Njo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBwdXNoIENBUFMgZXZlbnQgb25jZSBpZiB3ZSBnZXQgb25lIGZyb20gdXBzdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjc4NAoKMjAxMy0wNC0yOSAxMjo1NDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcCB0eXBlZmluZGluZyBpZiB3ZSBnZXQgYSBDQVBTIGV2ZW50IGZyb20gdXBzdHJlYW0KCjIwMTMtMDQtMjkgMTI6NTI6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEltcHJvdmUgaGFuZGxpbmcgb2YgR0FQIGV2ZW50cwoJICBUaGVyZSdzIHN0aWxsIHJvb20gZm9yIGltcHJvdmVtZW50IHRob3VnaC4KCjIwMTMtMDQtMjkgMTI6NDg6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEZvcndhcmQgZXZlbnRzIHRoYXQgc2hvdWxkIGhhcHBlbiBiZWZvcmUgdGhlIGNhcHMgZXZlbnQgZGlyZWN0bHkKCSAgVGhlcmUncyBubyBwb2ludCBpbiBzdG9yaW5nIHRoZW0gYW5kIHNlbmRpbmcgdGhlbSBsYXRlciwgYW5kIGRvaW5nIHNvIHdvdWxkCgkgIGxhdGVyIHJlcXVpcmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBldmVudHMgdGhhdCBzaG91bGQgY29tZSBiZWZvcmUgY2FwcyBhbmQKCSAgYWZ0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI3ODQKCjIwMTMtMDQtMjkgMTI6NDg6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBwZW5kaW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyBpZiB3ZSBoYXZlIGNhcHMKCjIwMTMtMDQtMjkgMTI6Mzk6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlbW92ZSBjb2RlIHRoYXQgd291bGQgY2F1c2UgY2FwcyB0byBiZSBzZW50IHR3aWNlCgkgIFdoZW5ldmVyIHdlIHNldCB0eXBlZmluZC0+Y2FwcyB3ZSB3aWxsIGFsc28gc2VuZCBhIGNhcHMgZXZlbnQgZG93bnN0cmVhbS4KCjIwMTMtMDQtMjcgMjA6MzM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBpbXByb3ZlIGFsbG9jYXRpb24gZG9jcwoKMjAxMy0wNC0yNyAxMTo0NjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBzZXQgQ0tfVElNRU9VVF9NVUxUSVBMSUVSIG9uIEFSTQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTk5CgoyMDEzLTA0LTI3IDAwOjA1OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdHlwZWZpbmQ6IGZpeCBjYXBzIGxlYWsgd2hlbiB1c2VkIGluIGNvbm5lY3Rpb24gd2l0aCB1cmlkZWNvZGViaW4gYW5kIHBsYXliaW4KCSAgRG9uJ3QgbGVhayBmb3JjZWQgc2luayBjYXBzLgoKMjAxMy0wNC0yMiAxODowODo0MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEzLTA0LTI1IDE2OjM4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBUcnkgdG8gbm90IHB1c2ggcmVhZC1vbmx5IGJ1ZmZlcnMKCSAgV2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIHJlZmNvdW50IGJlZm9yZSBwdXNoaW5nIGlmIHdlJ3JlCgkgIHJlYWxseSBnb2luZyB0byB1c2UgdGhlIGJ1ZmZlciBhZnRlcndhcmRzLgoKMjAxMy0wNC0yNSAwNzoxNTozOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgY2hlY2sgZm9yIEZMVVNIIHBhZCBwcm9iZXMKCjIwMTMtMDQtMjQgMDg6NDA6MzIgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IHJ1biBwcm9iZXMgZm9yIEZMVVNIIGV2ZW50cyBzZW50IHdpdGggZ3N0X3BhZF9zZW5kX2V2ZW50CgkgIE1vdmUgcHJvYmUgaGFuZGxpbmcgaW4gZ3N0X3BhZF9zZW5kX2V2ZW50X3VuY2hlY2tlZCBzbyB0aGF0IHByb2JlcyBhcmUgcnVuIGZvcgoJICBGTFVTSCBldmVudHMgdG9vLgoKMjAxMy0wNC0yNCAxNTo1ODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXRjbG9jazogQWRkIHN1cHBvcnQgZm9yIElQdjYKCjIwMTMtMDQtMjQgMTI6MzA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IGFkZCB0cm91Ymxlc2hvb3Rpbmcgc2VjdGlvbgoJICBBZGQgbm90ZSBhYm91dCAiY2Fubm90IHJlZ2lzdGVyIGV4aXN0aW5nIHR5cGUgYEdzdE9iamVjdCciIHdhcm5pbmcuCgoyMDEzLTA0LTIzIDExOjQ3OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT25seSBpbmZlciBUUyBpZiBQVFMgaW50ZXJwb2xhdGlvbiBpcyBlbmFibGVkCgkgIE90aGVyd2lzZSB0aGlzIGlzIGJyZWFraW5nIHRpbWVzdGFtcHMgb2YgZm9ybWF0cyB0aGF0CgkgIG5lZWQgcmVvcmRlcmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzY2MgoKMjAxMy0wNC0yMyAxMToxNzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBwcm9wZXJ0eSBvbiBOVUxMIGFzIHdlbGwKCSAgQWxzbyBub3RpZnkgdGhlIGNhcHMgcHJvcGVydHkgd2hlbiBpdCBjaGFuZ2VzIHRvIE5VTEwKCjIwMTMtMDQtMjMgMTE6MTY6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xhcmlmeSBsb2NraW5nCgoyMDEzLTA0LTIyIDIzOjUwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogTUFJTlRBSU5FUlM6CgkqIFJFQURNRToKCSogUkVBRE1FLnN0YXRpYy1saW5raW5nOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNjYjNkM2MgdG8gNWVkY2Q4NQoKMjAxMy0wNC0xOSAxNTowMToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgcGFydC1jb250ZXh0OiBXcml0ZSBzb21lIGRlc2lnbiBkb2N1bWVudGF0aW9uIGFib3V0IEdzdENvbnRleHQKCjIwMTMtMDQtMTkgMTM6MjE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgcGFydC1jYXBzOiBBZGQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjYXBzIGZlYXR1cmVzLCBjYXBzIHNlbWFudGljcyBhbmQgaG93IHRvIHVzZSB0aGVtCgoyMDEzLTA0LTE5IDExOjIzOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCBBTlkgR3N0Q2Fwc0ZlYXR1cmVzCgoyMDEzLTA0LTE5IDEwOjI0OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IHNldCBsYXN0X3JlbmRlcl90aW1lIGlmIHdlJ3JlIGNoZWNraW5nIGZvciBhIGxhdGUgYnVmZmVyIGJlZm9yZSA6OnByZXBhcmUoKQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhdCBsZWFzdCBvbmUgYnVmZmVyIHBlciBzZWNvbmQgaXMgcmVuZGVyZWQgaWYgYnVmZmVycwoJICBhcmUgZHJvcHBlZCBiZWZvcmUgOjpwcmVwYXJlLiBXaXRob3V0IHRoaXMgY2hhbmdlLCBhdCBsZWFzdCBvbmUgYnVmZmVyIHBlcgoJICBzZWNvbmQgd291bGRuJ3QgYmUgdG9vIGxhdGUgYmVmb3JlIDo6cHJlcGFyZSBhbnltb3JlIGJ1dCB3b3VsZCBiZSBkcm9wcGVkCgkgIGJlZm9yZSA6OnJlbmRlciBiZWNhdXNlIG9mIGxhc3RfcmVuZGVyX3RpbWUgYmVpbmcgc2V0IGJlZm9yZSA6OnByZXBhcmUKCSAgYWxyZWFkeS4KCjIwMTMtMDItMDggMDM6NTc6NDQgLTAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBjb21wYXJlIGZ1bmN0aW9uIGZvciBjYXBzCgoyMDEzLTAxLTE1IDE2OjU3OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZTogYWRkIGdzdF9kYXRhX3F1ZXVlX3BlZWsKCSAgVGhpcyBmdW5jdGlvbiB3b3JrcyBqdXN0IGxpa2UgZ3N0X2RhdGFfcXVldWVfcG9wLCBidXQgaXQgZG9lc24ndAoJICByZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBxdWV1ZS4KCSAgVXNlZnVsIHdoZW4gaW5zcGVjdGluZyBtdWx0aXBsZSBHc3REYXRhUXVldWVzIHRvIGRlY2lkZSBmcm9tIHdoaWNoCgkgIHRvIHBvcCB0aGUgZWxlbWVudCBmcm9tLgoJICBBZGQ6IGdzdF9kYXRhX3F1ZXVlX3BlZWsKCjIwMTMtMDQtMTggMTA6MTQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgdGVzdCBiaW5hcnkKCjIwMTMtMDQtMTggMTA6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiB1cGRhdGUgZm9yIGxhdGVzdCBjb250ZXh0IEFQSSBjaGFuZ2VzCgoyMDEzLTA0LTE4IDEwOjE3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBBZGQgZ3N0X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlKCkgYW5kIGxldCBnZXRfc3RydWN0dXJlKCkgcmV0dXJuIGNvbnN0IGFnYWluCgoyMDEzLTA0LTE4IDAwOjQ0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgcHJpbnRmOiBmaXggaGFuZGxpbmcgb2Ygb2xkIHByaW50ZiBleHRlbnNpb24gc3BlY2lmaWVycyBmb3IgQUJJIGNvbXBhdGliaWxpdHkKCSAgRml4ZXMgYWJvcnQgd2hlbiB0aGUgb2xkIHNwZWNpZmllcnMgYXJlIHVzZWQuIEZpeCB1cCB0aGUgY29udmVyc2lvbgoJICBzcGVjaWZpZXIsIGl0IHdvdWxkIGdldCBvdmVyd3JpdHRlbiB3aXRoICdjJyBiZWxvdyB0byB0aGUgZXh0ZW5zaW9uCgkgIGZvcm1hdCBjaGFyLCB3aGljaCB0aGVuIGxhdGVyIGlzIHVuaGFuZGxlZCwgbGVhZGluZyB0byB0aGUgYWJvcnQuCgkgIEFsc28gZml4IHVwIGFuZCBlbmFibGUgdW5pdCB0ZXN0IGZvciB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9wcm9jZXNzX2J1Zy5jZ2kKCjIwMTMtMDQtMTggMDA6Mjg6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3Igb2xkIHByaW50ZiBleHRlbnNpb24gc3BlY2lmaWVycwoJICBUbyBtYWtlIHN1cmUgd2UgbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkCgkgIHNwZWNpZmllcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgyNDIKCjIwMTMtMDQtMTggMDA6MTk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcnVuIHNraXBwZWQgdGVzdHMgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQgdmlhIEdTVF9DSEVDS1MKCSAgSWYgYSB0ZXN0IHRoYXQncyBkaXNhYmxlZCB3aXRoIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSBpcyBsaXN0ZWQKCSAgaW4gdGhlIEdTVF9DSEVDS1MgZW52aXJvbm1lbnQgdmFyaWFibGUsIHJ1biBpdCBhbnl3YXkuCgoyMDEzLTA0LTE3IDEzOjQ3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogQWRkIEdzdENvbnRleHQgc3VwcG9ydAoJICBnc3QtbGF1bmNoIHdpbGwgY29sbGVjdCBhbGwgdGhlIGNvbnRleHRzIGZyb20gdGhlIHBpcGVsaW5lIGVsZW1lbnRzCgkgIGFuZCB1cGRhdGUgdGhlIG92ZXJhbGwgcGlwZWxpbmUgY29udGV4dCB3aXRoIGl0LgoKMjAxMy0wNC0xNyAxMjo0NDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogQWRkIHVuaXQgdGVzdCBmb3IgR3N0Q29udGV4dAoKMjAxMy0wNC0xNyAxMjoxNzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBSZXR1cm4gYSBub24tY29uc3QgR3N0U3RydWN0dXJlIHRvIG1ha2UgY29kZSBzaW1wbGVyIGFuZCB1cGRhdGUgZG9jcwoKMjAxMy0wMy0yOSAxNDo1Njo1NyArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIHF1ZXJ5OiBuZXcgX0JBTkRXSURUSF9MSU1JVEVEIGZsYWcKCSAgU291cmNlIGVsZW1lbnRzIHdpdGggbGltaXRlZCBiYW5kd2lkdGggY2FwYWJpbGl0aWVzIGFuZCBzdXBwb3J0aW5nCgkgIGJ1ZmZlcmluZyBmb3IgZG93bnN0cmVhbSBlbGVtZW50cyBzaG91bGQgc2V0IHRoaXMgZmxhZyB3aGVuIGFuc3dlcmluZwoJICBhIHNjaGVkdWxpbmcgcXVlcnkuIFRoaXMgaXMgdXNlZnVsIGZvciB0aGUgb24tZGlzayBidWZmZXJpbmcgc2NlbmFyaW8KCSAgb2YgdXJpZGVjb2RlYmluIHRvIGF2b2lkIGNoZWNraW5nIHRoZSBVUkkgcHJvdG9jb2wgYWdhaW5zdCBhIGxpc3Qgb2YKCSAgaGFyZGNvZGVkIHByb3RvY29scy4KCSAgQnVnIDY5MzQ4NAoKMjAxMy0wNC0xNiAwOTo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZml4IG1pc3NpbmcgZmxhY2RlYyBpbiBwb3J0aW5nLXRvLTEuMCBwaXBlbGluZSBleGFtcGxlCgoyMDEzLTA0LTE2IDA5OjAzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbm90ZSBhYm91dCBkZWNvZGVycyBhbmQgcGFyc2VycyB0byBwb3J0aW5nLXRvLTEuMCBkb2MKCjIwMTItMTAtMjQgMTE6NTg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGdzdDogQWRkIGJldHRlciBzdXBwb3J0IGZvciBzdGF0aWMgcGx1Z2lucwoJICBBUEk6IEdTVF9QTFVHSU5fU1RBVElDX0RFQ0xBUkUoKQoJICBBUEk6IEdTVF9QTFVHSU5fU1RBVElDX1JFR0lTVEVSKCkKCSAgQmFzZWQgb24gYSBwYXRjaCBieSBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPi4KCSAgVGhpcyBub3cgYWxsb3dzIEdTVF9QTFVHSU5fREVGSU5FKCkgdG8gY3JlYXRlIGEgc3RhdGljIHBsdWdpbiBpZgoJICBHU1RfUExVR0lOX0JVSUxEX1NUQVRJQyBpcyBkZWZpbmVkLiBUaGUgcmVzdWx0aW5nIHBsdWdpbiBjYW4gYmUKCSAgc3RhdGljYWxseSBsaW5rZWQgb3IgZHluYW1pY2FsbHkgbGlua2VkIGR1cmluZyBjb21waWxhdGlvbiBidXQKCSAgY2FuJ3QgYmUgZHluYW1pY2FsbHkgbG9hZGVkIGR1cmluZyBydW50aW1lLgoJICBBbHNvIGFkZHMgR1NUX1BMVUdJTl9TVEFUSUNfREVDTEFSRSgpIGFuZCBHU1RfUExVR0lOX1NUQVRJQ19SRUdJU1RFUigpLAoJICB3aGljaCBhbGxvd3MgdG8gcmVnaXN0ZXIgYSBzdGF0aWMgbGlua2VkIHBsdWdpbiBlYXNpbHkuCgkgIEl0IGlzIHN0aWxsIHJlcXVpcmVkIHRvIG1hbnVhbGx5IHJlZ2lzdGVyIGV2ZXJ5IHNpbmdsZSBzdGF0aWNhbGx5IGxpbmtlZAoJICBwbHVnaW4gZnJvbSBpbnNpZGUgdGhlIGFwcGxpY2F0aW9uIGFzIHRoaXMgY2FuJ3QgYmUgYXV0b21hdGVkIGluIGEgcG9ydGFibGUKCSAgd2F5LgoJICBBIG5ldyBjb25maWd1cmUgcGFyYW1ldGVyIC0tZW5hYmxlLXN0YXRpYy1wbHVnaW5zIHdhcyBhZGRlZCB0aGF0IGFsbG93cwoJICB0byBidWlsZCBhbGwgcGx1Z2lucyB3ZSBidWlsZCBoZXJlIGFzIHN0YXRpYyBwbHVnaW5zLgoJICBGaXhlcyBidWcgIzY2NzMwNS4KCjIwMTMtMDQtMTIgMTM6NTA6MzkgKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgbWFudWFsOiBQYXRjaCBtYW51YWwgdG8gcmVmZXIgdG8gcG9ydGluZyBndWlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3ODQ1CgoyMDEzLTA0LTEzIDE5OjQzOjEwICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBGaXggdGhlIEdzdFBsdWdpbkZlYXR1cmUgbmFtZSBjb21wYXJpc29uLgoJICBUaGUgZ3N0X3BsdWdpbl9mZWF0dXJlX3JhbmtfY29tcGFyZV9mdW5jKCkgc2hvdWxkIHJldHVybgoJICBuZWdhdGl2ZSB2YWx1ZSwgaWYgdGhlIHJhbmsgb2YgYm90aCBQbHVnaW5GZWF0dXJlcyBhcmUgZXF1YWwgYW5kCgkgIHRoZSBuYW1lIG9mIGZpcnN0IFBsdWdpbkZlYXR1cmUgY29tZXMgYmVmb3JlIHRoZSBzZWNvbmQgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTkwCgoyMDEzLTA0LTE0IDE3OjU0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyNzM2NTkyIHRvIDNjYjNkM2MKCjIwMTMtMDQtMTQgMTc6MjU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFlZDg3YWUgdG8gMjczNjU5MgoKMjAxMy0wNC0xNCAxMTozMzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLmg6CgkgIHByaW50ZjogZGlzYWJsZSBzb21lIHVudXNlZCBwcmludGYgdmFyaWFudHMKCjIwMTMtMDQtMTQgMTE6MjM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiB1c2Ugc3ByaW50ZigpIHRvIHdvcmsgYXJvdW5kIGdsaWJjIGNvbXBsYWluaW5nIGFib3V0ICVuIGluIGEgd3JpdGFibGUgZm9ybWF0IHN0cmluZwoJICBEb24ndCB1c2Ugc25wcmludGYoKSwgYnV0IHVzZSBzcHJpbnRmIGluc3RlYWQgYW5kIGRvIG91ciBvd24KCSAgbGVuZ3RoIGNhbGN1bGF0aW9ucywgYmVjYXVzZSBnbGliYyBtYXkgY29tcGxhaW4gYWJvdXQgdXMgcGFzc2luZwoJICAlbiBpbiBhIGZvcm1hdCBzdHJpbmcgaWYgdGhlIHN0cmluZyBpcyBpbiB3cml0YWJsZSBtZW1vcnksIGFuZAoJICBoZXJlIHRoZSBmb3JtYXQgc3RyaW5nIGlzIGFsd2F5cyBpbiB3cml0YWJsZSBtZW1vcnkgc2luY2Ugd2UKCSAgY29uc3RydWN0IGl0IG9uIHRoZSBmbHkuIFRoaXMgaGFwcGVucyBpZiBnbGliYyBoYXMgYmVlbiBjb21waWxlZAoJICB3aXRoIF9GT1JUSUZZX1NPVVJDRT0yLCB3aGljaCBzZWVtcyB0byBiZSB0aGUgY2FzZSBvbiBzb21lCgkgIGRpc3Ryb3Mvc3lzdGVtcykuIE9uIHRoZSB1cHNpZGUsIHdlIG5vdyB1c2UgdGhlIHNwcmludGYgY29kZSBwYXRoCgkgIG9uIGFsbCBzeXN0ZW1zIHdoaWNoIHNob3VsZCBiZSBiZXR0ZXIgZnJvbSBhIG1haW50ZW5hbmNlIHBvaW50CgkgIG9mIHZpZXcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc5NzAKCjIwMTMtMDQtMTMgMTI6MTg6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICB0ZXN0czogc2tpcCBhbGwgR3N0UG9sbCB0ZXN0cyBvbiBXaW5kb3dzCgkgIEFzIHRoZXkgZG9uJ3Qgd29yayB0aGVyZSwgYW5kIGl0J3Mgbm9uLXRyaXZpYWwgdG8gZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjA5CgoyMDEzLTA0LTEzIDEyOjAwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IG9ubHkgYWRkIGEgJyonIGZvciBub24tJ2dwb2ludGVyJyBwb2ludGVycwoJICBTcG90dGVkIGJ5IEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NzkxCgoyMDEzLTA0LTEyIDE0OjQ4OjI5ICswMjAwICBHd2Vub2xlIEJlYXVjaGVzbmUgPGd3ZW5vbGUuYmVhdWNoZXNuZUBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogZml4IG5hbWUgZXhwYW5zaW9uIGZvciBHU1RfUExVR0lOX0RFRklORSBtYWNybwoJICBNYWtlIEdTVF9QTFVHSU5fREVGSU5FIHVzZSBHX1NUUklOR0lGWSgpIHRvIGNvbnZlcnQgdGhlIG5hbWUgYXJndW1lbnQKCSAgaW50byBhIG1lYW5pbmdmdWwgc3RyaW5nLiBUaGUgYWR2YW50YWdlIG9mIHRoaXMgaXMgdGhhdCBgbmFtZScgY2FuIGJlCgkgIGV4cGFuZGVkIGZyb20gb3RoZXIgbWFjcm9zIGRlZmluZWQgaW4gdGhlIHBsdWctaW4gZWxlbWVudC4KCSAgU2lnbmVkLW9mZi1ieTogR3dlbm9sZSBCZWF1Y2hlc25lIDxnd2Vub2xlLmJlYXVjaGVzbmVAaW50ZWwuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3ODcyCgoyMDEzLTA0LTEzIDExOjM1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogYWRkIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxMy0wNC0xMiAyMzo1ODo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIHByaW50ZjogZG9uJ3QgYnVpbGQgaWYgZGVidWdnaW5nIHN1YnN5c3RlbSB3YXMgZGlzYWJsZWQKCjIwMTMtMDQtMTAgMTE6NTE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJICBwcmludGY6IGRlYWwgd2l0aCBzb21lIG9mIHRoZSBIQVZFX0ZPTyB1c2VkIGluIHRoZSBwcmludGYgY29kZQoJICBQcm9iYWJseSBuZWVkcyBzb21lIG1vcmUgd29yayBmb3IgTVNWQy4KCjIwMTMtMDQtMDggMTk6NDI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGZpeCBhbGxvY2EgdXNlIGZvciB3aW5kb3dzIHdpdGggbWluZ3czMgoJICBEb24ndCB1c2UganVzdCBHTElCX0hBVkVfQUxMT0NBX0ggdG8gY2hlY2sgaWYgYWxsb2NhIGlzIGF2YWlsYWJsZSwKCSAgdGhhdCdzIGp1c3QgZm9yIHRoZSBoZWFkZXIuIEdMaWIgbWF5IGRlZmluZSBhbGxvY2EgZm9yIHVzIG90aGVyd2lzZQoJICB0b28gaXJyZXNwZWN0aXZlIG9mIEdMSUJfSEFWRV9BTExPQ0FfSC4KCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZyB3aXRoIG1pbmd3MzI6CgkgIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOjczOjA6IHdhcm5pbmc6ICJhbGxvY2EiIHJlZGVmaW5lZAoKMjAxMy0wNC0wNyAyMDoxMToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZW5hYmxlIGFuZCBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgQnV0IHN1cHByZXNzIC1XZm9ybWF0LW5vbmxpdGVyYWwgd2FybmluZ3Mgc2luY2Ugc3ByaW50ZgoJICBpcyB1c2VkIHdpdGggYSBydW50aW1lLWdlbmVyYXRlZCBmb3JtYXQgc3RyaW5nIGluIG91cgoJICB2YXNucHJpbnRmIGltcGxlbWVudGF0aW9uLgoKMjAxMy0wNC0wNyAxODoyMTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuaDoKCSAgcHJpbnRmOiBmaXggdXAgZG9kZ3kgdXNlIG9mICNpZiBIQVZFX0ZPTyBhbmQgI2lmICFIQVZFX0ZPTwoJICBTaG91bGQgdXNlICNpZmRlZiBhbmQgI2lmbmRlZi4KCjIwMTMtMDQtMDcgMTc6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJICBwcmludGY6IG1hcmsgaW50ZXJuYWwgZnVuY3Rpb25zIGFzIGludGVybmFsCgoyMDEzLTA0LTA3IDE3OjI5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBza2lwIHBvaW50ZXIgZXh0ZW5zaW9uIHNpZ25pZmllciBjaGFycyBhZnRlciAlcAoJICBTbyB0aGV5IGRvbid0IGdldCBwcmludGVkIGFmdGVyIHRoZSBzZXJpYWxpc2VkIHBvaW50ZXIgc3RyaW5nLgoKMjAxMy0wNC0wNyAxNzoyMToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGRvbid0IGxlYWsgc2VyaWFsaXNlZCBwb2ludGVyIGV4dGVuc2lvbiBzdHJpbmdzCgoyMDEzLTA0LTA3IDE3OjAyOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBoYW5kbGUgb2xkIEdTVF9QVFJfRk9STUFUICVQIGFuZCBHU1RfU0VHTUVOVF9GT1JNQVQgJVEgZGVmaW5lcyB0b28KCSAgRm9yIGJpbmFyeSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTMtMDQtMDcgMTY6NDE6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuaDoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogbWFrZSBwcmludGYgcGFyc2VyIHJlY29nbmlzZSBvdXIgcG9pbnRlciBleHRlbnNpb24gZm9ybWF0CgkgIGFuZCBjYWxsIHRoZSBob29rIHRvIGdldCBhIHN0cmluZyBmb3IgdGhlIHBvaW50ZXIgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxODoyODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1leHRlbnNpb24uYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtZXh0ZW5zaW9uLmg6CgkgIHByaW50ZjogYWRkIGluZnJhc3RydWN0dXJlIGZvciBwb2ludGVyIGV4dGVuc2lvbnMgaG9vawoJICBEb2VzIG5vdCBkbyBhbnl0aGluZyB5ZXQuIE9uIGEgc2lkZW5vdGUsIHdlIGNhbid0IGp1c3QgdXNlCgkgICVwXDAwMSBvciBzbyB0byBzaWduYWwgdGhlIGV4dGVuc2lvbiBiZWNhdXNlIGctaSBjb21wbGFpbnMKCSAgYWJvdXQgYW4gaW52YWxpZCBhc2NpaSBjaGFyYWN0ZXIgdGhlbiwgc28gaGF2ZSB0byByZXNvcnQgdG8KCSAgc29tZXRoaW5nIG1vcmUgZWxhYm9yYXRlLCBzdWNoIGFzICVwXGFBIGV0Yy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxNzoyMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiB1c2UgbmV3IGludGVybmFsIHByaW50ZiBmb3IgZGVidWcgbWVzc2FnZSBwcmludGluZwoJICBhbmQgcmVtb3ZlIGFsbCB0aGUgcHJpbnRmIGV4dGVuc2lvbi9zcGVjaWZpZXIgc3R1ZmYgZm9yCgkgIHRoZSBzeXN0ZW0gcHJpbnRmLiBOZXh0IHdlIG5lZWQgdG8gYWRkIGJhY2sgdGhlIGN1c3RvbQoJICBzcGVjaWZpZXJzIHRvIG91ciBvd24gcHJpbnRmIGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE1OjEzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL2FzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLmg6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuaDoKCSAgcHJpbnRmOiBhZGQgb3VyIG93biBwcmludGYgaW1wbGVtZW50YXRpb24gZm9yIGRlYnVnIGxvZ2dpbmcKCSAgV2Ugd2lsbCBhZGQgc3VwcG9ydCBmb3Igb3VyIG93biBwcmludGYgbW9kaWZpZXJzLCBzbyB3ZSBjYW4KCSAgZ2V0IG5pY2UgZGVidWcgbG9nIG91dHB1dCBvbiBhbGwgb3BlcmF0aW5nIHN5c3RlbXMgaXJyZXNwZWN0aXZlCgkgIG9mIHRoZSBzcGVjaWZpYyBsaWJjIHZlcnNpb24gdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wNC0xMiAxNjoxMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIHRyaWdnZXJpbmcgYW4gYXNzZXJ0aW9uCgkgIFdoZW4gZGVzZXJpYWxpemF0aW9uIG9mIHRoZSBzdHJ1Y3R1cmUgZmFpbHMsIHJldHVybiBhIE5VTEwgdGFnbGlzdCBpbnN0ZWFkIG9mCgkgIGFzc2VydGluZy4KCjIwMTMtMDQtMTEgMTQ6NTQ6MzIgKzAyMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogYWRkIHBvaW50ZXIgbWFyayB0byBzaWduYWwgYW5kIGFjdGlvbiByZXR1cm4gdHlwZXMgdGhhdCBhcmUgcG9pbnRlcnMKCSAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBzaWduYWwgb3IgYWN0aW9uIGlzIGEgcG9pbnRlciwgaXQKCSAgc2hvdWxkIGhhdmUgYW4gYXN0ZXJpc2sgdG8gbWFyayBpdCBhcyBzdWNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NzkxCgoyMDEzLTA0LTExIDIyOjMyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBkb2N1bWVudCB0eXBlIGNoYW5nZSBvZiBwbGF5YmluJ3MgY29ubmVjdGlvbi1zcGVlZCBwcm9wZXJ0eSBpbiBwb3J0aW5nIGRvY3MKCjIwMTMtMDQtMTEgMTQ6MzE6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIF9nc3RfbWF4X21lbW9yeSgpIGZ1bmN0aW9uCgkgIEFkZCB0aGUgYSBmdW5jdGlvbiB0byBxdWVyeSB0aGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IGJsb2NrcyB0aGF0IGNhbiBiZQoJICBhZGRlZCB0byBhIGJ1ZmZlci4gQWxzbyBpbXByb3ZlIHRoZSBkb2NzIGZvciBfaW5zZXJ0X21lbW9yeSgpLgoKMjAxMy0wNC0xMSAxNDowNDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBub3RpZnkgb2YgY2hhbmdlZCBib3VuZCBhZGRyZXNzCgkgIE5vdGlmeSB3aGVuIHRoZSBib3VuZCBhZGRyZXNzIGlzIGtub3duLCBqdXN0IGxpa2UgdGhlIHBvcnQuCgoyMDEzLTA0LTExIDEzOjU1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGhhbmRsZSBQUk9HUkVTUyBtZXNzYWdlcwoJICBXYWl0IGZvciBhbGwgUFJPR1JFU1MgbWVzc2FnZXMgKGlmIGFueSkgdG8gY29tcGxldGUgYmVmb3JlIGdvaW5nIHRvIHRoZSBQTEFZSU5HCgkgIHN0YXRlLiBUaGlzIGlzIHRoZSBvbmx5IHdheSB3ZSBjYW4gd2FpdCBmb3IgbGl2ZSBlbGVtZW50cyB0byBjb21wbGV0ZSB0aGVpcgoJICBvcGVyYXRpb25zLgoJICBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBlbGVtZW50cyBsaWtlIHJ0c3BzcmMgdGhhdCBkbyBzb21lIGFzeW5jaHJvbm91cyBuZXR3b3JrCgkgIHJlcXVlc3RzIGFzIHBhcnQgb2YgZ29pbmcgdG8gdGhlIFBBVVNFRCBzdGF0ZS4gSXQgY291bGQgYmUgcG9zc2libGUgdGhhdCBpdCwgZm9yCgkgIGV4YW1wbGUsIHByb3ZpZGVzIGEgY2xvY2sgYW5kIHRoZW4gd2Ugd291bGQgbGlrZSB0byB3YWl0IHVudGlsIGl0IGNvbXBsZXRlcwoJICBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHByb3ZpZGVkIGNsb2NrIHdoZW4gZ29pbmcgdG8gUExBWUlORy4KCjIwMTMtMDQtMTEgMTU6MDU6MDggKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIFRvZ2dsZSB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbSBpbiBSRUNPTkZJR1VSRSBwYXJhZ3JhcGguCgoyMDEzLTA0LTExIDEwOjExOjI1ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBHc3RDb2xsZWN0UGFkcyBkb2N1bWVudGF0aW9uOiBnc3RfY29sbGVjdF9wYWRzX3JlYWQgaXMgZ29uZS4KCjIwMTMtMDQtMTAgMjE6MjQ6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHRoZSBwcmVjb25kaXRpb24gZm9yIGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24oKQoJICBVc2UgdGhlIHJpZ2h0IHZhcmlhYmxlIGFuZCBpbnZlcnQgdGhlIHRlc3QuIFRoZSBwcmVjb25kaXRpb24gc2hvdWxkIGNhdGNoCgkgIHNvbWVvbmUgY2FsbGluZyB0byBvbmNlIHRvbyBvZnRlbi4KCjIwMTMtMDQtMDkgMTk6Mzc6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogSW5pdCBkZWJ1ZyBjYXRlZ29yeSBiZWZvcmUgZXZlciB1c2luZyBpdAoKMjAxMy0wNC0wOSAyMDo1OTozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDRjN2ExZSB0byBhZWQ4N2FlCgoyMDEzLTA0LTAzIDIxOjMyOjU0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIFVzZSB4bHN0cHJvYyBpbnN0ZWFkIG9mIGRvY2Jvb2syaHRtbAoKMjAxMy0wNC0wOSAxMDoxNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogYmluZCBzb2NrZXQgYmVmb3JlIHF1ZXJ5aW5nIGxvY2FsIGFkZHJlc3MKCSAgRmFpbHMgb24gd2luZG93cyBvdGhlcndpc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MDgKCjIwMTMtMDQtMDggMTM6MTQ6MzUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFsc28gY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUgaW4gbGlicHRocmVhZAoJICBsaWJ3aW5wdGhyZWFkcyBwcm92aWRlcyBQT1NJWCB0aW1lIEFQSS4KCSAgSXQgYWxzbyBwcm92aWRlcyBsaWJwdGhyZWFkIGFsaWFzIGZvciBpdHNlbGYsIGZvciBjb21wYXRpYmlsaXR5LCBzbyB0aGF0CgkgIGlzIHdoYXQgd2Ugd2lsbCBsaW5rIHdpdGguCgkgIEZpeGVzICM2OTc1NTAKCjIwMTMtMDQtMDggMTU6MzA6MDcgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBjbG9jazogRG8gdXNlIEhBVkVfQ0xPQ0tfR0VUVElNRQoJICBGaXhlcyAjNjk3NTQ5CgoyMDEzLTA0LTA4IDE0OjQyOjE1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJICBsaWJzYWJpOiBTcGVjaWFsIHN0cnVjdCBzaXplIHZhbHVlcyBmb3IgVzMyCgkgIFRoZXNlIGFjY291bnQgZm9yIGJvdGggcG9zc2libGUgdHlwZSBzaXplIG1pc21hdGNoIEFORCAtbW1zLWJpdGZpZWxkcwoJICBwYWNraW5nLiBTaXplcyBhcmUgdGFrZW4gZnJvbSBhbiBpNjg2LXc2NC1taW5ndzMyLWJ1aWx0IEdTdHJlYW1lciwKCSAgZ2NjIDQuOC4wLCBtaW5ndy13NjQgc3ZuLXI1Njg1LgoJICBGaXhlcyAjNjk3NTUxCgoyMDEzLTA0LTA5IDA5OjIyOjM5ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCBHc3RQYWQgdGVzdCBvbiB3aW5kb3dzIGFuZCBpbiBDS19GT1JLPW5vIG1vZGUKCSAgTmVlZCB0byBjbGVhciBidWZmZXIgbGlzdHMgYXQgdGhlIGVuZCBvZiBlYWNoIHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MTAKCjIwMTMtMDQtMDYgMTY6MDk6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXggc3BhY2UgaW4gZmF1bHQgbWVzc2FnZQoKMjAxMy0wNC0wNiAyMjoxMDo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQ29weSBBTlkgZmxhZyB3aGVuIGNvcHlpbmcgY2FwcyBmZWF0dXJlcyB0b28KCjIwMTMtMDQtMDYgMjE6NDk6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY2FwczogSGFuZGxlIEFOWSBjYXBzIGZlYXR1cmVzIHByb3Blcmx5IGluIG1vcmUgcGxhY2VzCgoyMDEzLTA0LTA2IDIxOjIxOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCB0ZXN0IGZvciBvcGVyYXRpb25zIG9uIGNhcHMgd2l0aCBBTlkgZmVhdHVyZXMKCjIwMTMtMDQtMDYgMjE6MDk6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogUHJvcGVybHkgaGFuZGxlIEFOWSBjYXBzIGZlYXR1cmVzIGluIGNhcHMgb3BlcmF0aW9ucwoKMjAxMy0wNC0wNSAyMToxMDo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB1cGRhdGUgc2lnbmFsIGRvY3MgZm9yIGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbigpCgoyMDEzLTA0LTA1IDEwOjE1OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGlnbm9yZSBlbXB0eSBub3QtbGlua2VkIHF1ZXVlcwoJICBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgbm90LWxpbmtlZCBxdWV1ZXMgaW4gdGhlIHVuZGVycnVuIGFuZCBvdmVycnVuIGNhbGxiYWNrcwoJICBiZWNhdXNlIHRoZXkgYXJlIGV4cGVjdGVkIHRvIGJlIGVtcHR5LgoKMjAxMy0wNC0wNCAyMzoxMjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjYXBzIGZlYXR1cmUgbGVhawoJICBGaXhlcyBsZWFrcyBpbiAxNCBjb3JlIHVuaXQgdGVzdHMgaW5jbHVkaW5nCgkgIGdzdC9nc3RjYXBzLgoKMjAxMy0wNC0wNCAxOToxNjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE5OjA3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE5OjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxNzo1OToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBzaW1wbGlmeSBpc19zdWJzZXQgY2hlY2sKCSAgSXRlcmF0ZSBvdmVyIHRoZSBmaWVsZHMgb2YgdGhlIHN1cGVyc2V0IGluc3RlYWQgb2YgdGhvc2Ugb2YgdGhlIHN1YnNldC4KCSAgVGhpcyB3YXkgd2UgY2FuIGNoZWNrIHRoZSBwcmVzZW5jZSBvZiB0aGUgc3Vic2V0IGZpZWxkIGFuZCBkbyB0aGUgc3Vic2V0IGNoZWNrCgkgIGluIG9uZSBpdGVyYXRpb24uCgoyMDEzLTA0LTA0IDE3OjQ2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXBkYXRlIGRvY3MsIGlzX3N1YnNldCgpIHdvcmtzIG5vdwoKMjAxMy0wNC0wNCAxNjozOToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBkb2NzCgoyMDEzLTA0LTA0IDE2OjIwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpCgkgIFJld2lyZSBzb21lIGludGVybmFsIGZ1bmN0aW9ucyBhbmQgZXhwb3NlIGEgbmV3CgkgIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkgZnVuY3Rpb24uCgkgIEFQSTogZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKQoKMjAxMy0wNC0wNCAxNTo0NToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGFyaWZ5IGRvY3MKCjIwMTMtMDQtMDQgMTU6NDU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1ZwoKMjAxMy0wNC0wNCAxMDoxNzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGRvbid0IFdBUk4sIGp1c3QgREVCVUcKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjkxMQoKMjAxMy0wMy0zMCAxMTowNjo1OSArMDAwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogRml4IHNlZWtpbmcgd2hlbiBwb3NpdGlvbiBpcyBzbGlnaHRseSBvdXRzaWRlIHRoZSBzZWdtZW50CgkgIFZlcnkgb2Z0ZW4sIHdoZW4gdGhlIGVuZCBvZiBhIHNlZ21lbnQgaXMgZGV0ZWN0ZWQgYnkgZGVtdXhlciwgdGhlIHBvc2l0aW9uCgkgIGlzIHNsaWdodGx5IG91dHNpZGUgdGhlIHNlZ21lbnQgYm91bmRhcmllcy4gQ3VycmVudGx5LCBpZiB0aGF0IGlzIHRoZSBjYXNlCgkgIHRoZSBiYXNlIHdpbGwgYmUgc2V0IHRvIE5PTkUgaW5zdGVhZCBvZiBub3JtYWwgYWNjdW11bGF0aW9uLiBUaGlzIHdvdWxkCgkgIGJyZWFrIG5vbi1mbHVzaGluZyBzZWVrcyBpbiBvZ2dkZW11eCBhbmQgbW9zdCBsaWtlbHkgb3RoZXIgZGVtdXhlcnMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY4OTkKCjIwMTMtMDQtMDMgMTc6Mjk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEzLTA0LTAzIDE2OjAyOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBzdHJlYW0gZmxhZ3MKCjIwMTMtMDQtMDIgMTg6MTc6MDAgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogc3VidGl0bGUgdGV4dCBtZWRpYSB0eXBlcyBjaGFuZ2VkIGFzIHdlbGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzE1MwoKMjAxMy0wNC0wMiAyMzo1MTowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGRvY3M6IG1vcmUgc2luY2UgbWFya2VycyBhbmQgb3RoZXIgZG9jcyBmaXhlcwoKMjAxMy0wNC0wMiAyMzoyMTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgZG9jczogYWRkIHNpbmNlIG1hcmtlcnMgdG8gY2Fwc2ZlYXR1cmVzIGRvY3MKCjIwMTMtMDQtMDIgMjM6MTg6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGFkZCBzb21lIG1vcmUgbW9kdWxlcyB0byBnaXQtdXBkYXRlLnNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcwNTgKCjIwMTMtMDQtMDIgMjM6MDQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdW5pbnN0YWxsZWQgb3JjL29yYy10ZXN0Ly5saWJzIHRvIGxpYnJhcnkgcGF0aHMKCSAgVGhpcyBpcyBuZWVkZWQgYnkgdGhlIHVuaXQgdGVzdHMgaW4gZ3N0LXBsdWdpbnMtYmFzZSwgLWdvb2QgZXRjLgoJICBTcG90dGVkIGJ5IEFsZXggS2F5ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzA5MwoKMjAxMy0wNC0wMiAyMjoxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEFkZCBHU1RfQ0FQU19GRUFUVVJFU19BTlkKCSAgVGhpcyBpcyBlcXVhbCB0byBhbnkgb3RoZXIgY2FwcyBmZWF0dXJlcyBidXQgcmVzdWx0cyBpbiB1bmZpeGVkIGNhcHMuIEl0CgkgIHdvdWxkIGJlIHVzZWQgYnkgZWxlbWVudHMgdGhhdCBvbmx5IGxvb2sgYXQgdGhlIGJ1ZmZlciBtZXRhZGF0YSBvciBhcmUKCSAgY3VycmVudGx5IHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZSwgYW5kIGFzIHN1Y2ggZG9uJ3QgY2FyZSBhYm91dCBhbnkKCSAgc3BlY2lmaWMgZmVhdHVyZXMuCgoyMDEzLTA0LTAxIDIyOjEzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWlub3IgY29zbWV0aWMgY2hhbmdlcwoJICBMZXQncyBub3QgdXNlIHVnbHkgbGVhZGluZyB1bmRlcnNjb3JlcyBmb3IKCSAgc3RhdGljIGZ1bmN0aW9ucy4KCjIwMTMtMDQtMDEgMjE6MjM6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggb2JqZWN0IHByaW50aW5nIG9mIGNhcHMgZmVhdHVyZXMgaW4gZGVidWcgbG9nCgoyMDEzLTA0LTAxIDE2OjM4OjQzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRyYWZ0LXRyYWNpbmc6IHVwZGF0ZSBkcmFmdCBkZXNpZ24gd2l0aCB0aW1lciBpZGVhcwoKMjAxMy0wMy0zMCAxNzowMzo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlZmFjdG9yIHByZXR0eSBwcmludGluZyBvYmplY3RzCgkgIEV4dHJhY3QgZm9ybWF0dGVycyBpbnRvIGxvY2FsIGZ1bmN0aW9ucy4gQ2hhbmdlIHRoZSBzdHJ1Y3R1cmUgZmlsdGVyaW5nIHNvIHRoYXQKCSAgaXQgd29ya3MgZm9yIHRhZ2xpc3RzIHRvby4KCjIwMTMtMDMtMzAgMTY6Mzk6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtYWtlIHBvc3RfbWVzc2FnZSBhbmQgcXVlcnkgbW9yZSBhbGlrZQoKMjAxMy0wNC0wMSAxMDoyMDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUHJpbnQgY2FwcyBmZWF0dXJlcyB0b28KCjIwMTMtMDQtMDEgMTA6MTk6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEZvciBjb3B5aW5nIGZlYXR1cmVzIGl0J3Mgbm90IHJlcXVpcmVkIHRvIGhhdmUgbm8gcGFyZW50IHJlZmNvdW50CgoyMDEzLTA0LTAxIDEwOjE5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNldCBmZWF0dXJlcycgcGFyZW50IHJlZmNvdW50IGluIGdzdF9jYXBzX3NldF9mZWF0dXJlcygpIHRvbwoKMjAxMy0wNC0wMSAxMDoxODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTZXQgc3lzbWVtIGZlYXR1cmVzIGlmIGV4cGxpY2l0ZWx5IHJlcXVlc3RlZAoKMjAxMy0wMy0zMSAxOTowOTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkZXNpZ246IEFkZCB0aGUgY2FwcyBmZWF0dXJlcyBhbmQgZGVzY3JpYmUgaG93IHRoZSBjYXBzIG9wZXJhdGlvbnMgYWN0dWFsbHkgd29yawoKMjAxMy0wMy0zMCAxNTozNToxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogQWRkIG5ldyBkYXRhIHR5cGUgZm9yIGhhbmRsaW5nIGNhcHMgZmVhdHVyZXMgdG8gdGhlIGNhcHMKCSAgVGhlc2UgYXJlIG1lYW50IHRvIHNwZWNpZnkgZmVhdHVyZXMgaW4gY2FwcyB0aGF0IGFyZSByZXF1aXJlZAoJICBmb3IgYSBzcGVjaWZpYyBzdHJ1Y3R1cmUsIGZvciBleGFtcGxlIGEgc3BlY2lmaWMgbWVtb3J5IHR5cGUKCSAgb3IgbWV0YS4KCSAgU2VtYW50aWNhbGx5IHRoZXkgY291bGQgYmUgdGhvdWdoIG9mIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgbWVkaWEKCSAgdHlwZSBuYW1lIG9mIHRoZSBzdHJ1Y3R1cmVzIGFuZCBhcmUgaGFuZGxlZCBleGFjdGx5IGxpa2UgdGhhdC4KCjIwMTMtMDMtMzEgMTU6MzA6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBTRUxFQ1QgYW5kIFVOU0VMRUNUIHN0cmVhbSBmbGFncyBmb3Igc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIFNvIGRlbXV4ZXJzIGNhbiBzaWduYWwgd2hpY2ggYXVkaW8vdmlkZW8vc3VidGl0bGUgc3RyZWFtcyBzaG91bGQKCSAgYmUgc2VsZWN0ZWQgYnkgZGVmYXVsdCBhbmQgd2hpY2ggc2hvdWxkIG5vdCBiZSBzZWxlY3RlZAoJICBhdXRvbWF0aWNhbGx5LgoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19TRUxFQ1QKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfVU5TRUxFQ1QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTk2OAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwOTExCgoyMDEzLTAxLTA2IDIwOjI3OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgc3RyZWFtIGZsYWdzIHRvIHN0cmVhbS1zdGFydCBldmVudAoJICBBUEk6IGdzdF9ldmVudF9zZXRfc3RyZWFtX2ZsYWdzKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX2ZsYWdzKCkKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfTk9ORQoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19TUEFSU0UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDY0OAoKMjAxMy0wMy0zMSAxMToyNjozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBBZGQgQVBJIHRvIGdldCB0aGUgbGFzdCBzZXQgY29udGV4dCBmcm9tIGFuIGVsZW1lbnQKCSAgRWxlbWVudHMgc2hvdWxkIG92ZXJyaWRlIEdzdEVsZW1lbnQ6OnNldF9jb250ZXh0KCkgYW5kIGFsc28gY2FsbAoJICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCgpIHRvIGtlZXAgdGhpcyBjb250ZXh0IHVwLXRvLWRhdGUgd2l0aAoJICB0aGUgdmVyeSBsYXRlc3QgY29udGV4dCB0aGV5IGludGVybmFsbHkgdXNlLgoKMjAxMy0wMy0zMCAxNDowNDoyOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IGFkZCBpbml0aWFsIHRyYWNpbmcgZGVzaWduIGRvYwoKMjAxMy0wMy0zMCAxMTo0NzoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTGV0IGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2FwcygpIHBhc3MgdGhlIGNhcHMgb3duIGNhcHMgYXMgZmlsdGVyCgkgIFRoaXMgd2lsbCByZWR1Y2UgdGhlIG51bWJlciBvZiBjYXBzIGNyZWF0ZWQgZG93bnN0cmVhbSBhbmQgd2UgZG9uJ3QKCSAgbmVlZCB0byBpbnRlcnNlY3QgaW4gdGhlIHZlcnkgZW5kIHdpdGggdGhlIHBhZCdzIG93biBjYXBzLgoKMjAxMy0wMy0zMCAxMDoyNDoyNyArMDEwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4ZXMgY29tcGlsZXIgd2FybmluZwoJICBnc3RiYXNlc2luay5jOiBJbiBmdW5jdGlvbiAnZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCc6CgkgIGdzdGJhc2VzaW5rLmM6MzIwNDogd2FybmluZzogJ3JldCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uCgoyMDEzLTAzLTI5IDE5OjAxOjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IGdpciB3YXJuaW5nCgoyMDEzLTAzLTI5IDE4OjQ5OjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFJldmVydCAicHdnOiBGaXggZXhhbXBsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZDY0ZjI3ZDg4MTI3NGE0MGYwNDQxYmI4YzViMzgxNmZkZmM1YjllLgoJICAqc2lnaCoKCjIwMTItMTEtMDYgMDk6NDE6NTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBGaXggZXhhbXBsZQoKMjAxMi0xMS0xMSAxMzo1MjoyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIFNFR01FTlQgc3RpY2t5IGV2ZW50cyB3aGVuIGZsdXNoaW5nCgkgIFdoZW4gZmx1c2hpbmcsIGl0IGlzIGV4cGVjdGVkIHRoYXQgdXBzdHJlYW0gd2lsbCBzZW5kIGEgU0VHTUVOVAoJICBldmVudCBhZnRlcndhcmRzLgoJICBUaGlzIGFsc28gYXZvaWRzIHN0cmF5IFNFR01FTlQgZXZlbnRzIGZyb20gY29taW5nIHRocm91Z2ggYWZ0ZXIgYQoJICBmbHVzaC4KCjIwMTMtMDMtMjggMTU6MzU6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIG5ldyBHc3RDb250ZXh0IG1pbmlvYmplY3QgZm9yIHNoYXJpbmcgY29udGV4dHMgaW4gYSBwaXBlbGluZQoKMjAxMy0wMy0yOCAxNjo0Mjo1MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkgIGFyZ2ItY29udHJvbGJpbmRpbmc6IGZpeCBtZXNzZWQgdXAgcHJvcGVydHkgc2V0dGVyCgkgIFRoaXMgd2FzIG1pc2Fzc2lnbmluZyB0aGUgY29udHJvbCBzb3VyY2VzLiBJdCB3YXMgYWxzbyBsZWFraW5nIHRoZSBvbGQgdmFsdWVzIGlmCgkgIGEgY29udHJvbCBzb3VyY2Ugd291bGQgYmUgcmVwbGFjZWQuCgoyMDEzLTAzLTI3IDE4OjI1OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IG5leHRfcHRzIHVwb24gU0VHTUVOVCBldmVudAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAyLTI2IDE5OjU4OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vcmUgaW50ZXItdGltZXN0YW1wIHRyYWNraW5nCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDMtMjYgMTk6MjI6MTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBBZGQgYW5ub3RhdGlvbnMgYW5kIHB5Z2kgZnJpZW5kbHkgZXh0cmFjdGlvbiBmdW5jdGlvbgoJICBBUEk6IGdzdF9idWZmZXJfZXh0cmFjdF9kdXAKCjIwMTMtMDMtMjcgMTc6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IGhvcGVmdWxseSBjbGFyaWZ5IGEgbGl0dGxlCgoyMDEzLTAzLTI1IDE4OjExOjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBVcGRhdGUgZG9jcyBmb3IgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX3ByaW50ZigpCgkgIFRvIGluZGljYXRlIHRoYXQgZm9ybWF0IHN0cmluZ3Mgc2hvdWxkIGJlIGFscGhhIHNvcnRhYmxlLgoKMjAxMy0wMy0yNSAwOToxNjowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgdW5pdCB0ZXN0IGZvciBHU1RfQ0FQU197QU5ZLE5PTkV9IGFuZCBHU1RfU1RBVElDX0NBUFNfe0FOWSxOT05FfQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2NDM1CgoyMDEzLTAzLTI1IDA5OjE5OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBnc3Rfc3RhdGljX2NhcHNfZ2V0KEdTVF9TVEFUSUNfQ0FQU19OT05FKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2NDM1CgoyMDEzLTAzLTIxIDIxOjAwOjU0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBzZW5kIGVycm9yIGlmIG5lZ290aWF0ZSBmYWlscyBiZWNhdXNlIHdlIGFyZSBmbHVzaGluZwoJICBOZWdvdGlhdGlvbiBtYXkgYmUgYWJvcnRlZCBieSBhIGZsdXNoIGZyb20gYW5vdGhlciB0aHJlYWQgdGhhdCBuZWVkIHRvCgkgIHN0b3AgdGhlIHRhc2sgKGkuZS4gc2VlaykuIENoZWNrIHRoYXQgY2FzZSBhbmQgc2lsZW50bHkgcGF1c2UgdGhlIHRhc2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzNTcKCjIwMTMtMDMtMjQgMTc6NTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBzb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcwoKMjAxMy0wMy0yMiAyMDowMjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1xdWVyeWZuLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gcXVlcnkgZnVuY3Rpb24gZXhhbXBsZSBpbiBQbHVnaW4gV3JpdGVyJ3MgR3VpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjE0MgoKMjAxMy0wMy0wNyAxMjoxMTozMCArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBmaXggc3B1cmlvdXMgZmFpbHVyZSBpbiB0ZXN0X2NvbGxlY3QgY29sbGVjdHBhZHMgdGVzdAoJICBwb3AoKSBpbiBjb2xsZWN0ZWQgY2FsbGJhY2suCgkgIFRoZXJlIHdlcmUgdGhyZWUgdGhyZWFkcyBpbiB0aGUgdGVzdCBjYXNlcyB0aGF0IGhhbmdlZDogdGhlIHRlc3QgdGhyZWFkIGFuZCB0d28KCSAgdGhyZWFkcyB0aGF0IHB1c2ggYnVmZmVycy4gRWFjaCB0aHJlYWQgcHVzaCBvbmUgYnVmZmVyIG9uIG9uZSBwYWQuIFRoZXJlIGFyZQoJICB0d28gcGFkcyBpbiB0aGUgY29sbGVjdHBhZHMgc28gdGhlIHNlY29uZCBidWZmZXIgd2lsbCB0cmlnZ2VyIHRoZQoJICBjb2xsZWN0LWNhbGxiYWNrLgoJICBUaGlzIGlzIHdoYXQgaGFwcGVucyB3aGVuIHRoZSBoYW5nIG9jY3VyczoKCSAgVGhlIGZpcnN0IHRocmVhZCBwdXNoZXMgYSBidWZmZXIgYW5kIGluaXRpYWxpemVzIGEgY29va2llIHRvIHRoZSB2YWx1ZSBvZiBhCgkgIGNvdW50ZXIgaW4gdGhlIGNvbGxlY3RwYWRzIG9iamVjdCBhbmQgd2FpdHMgb24gYSBjb25kIGZvciB0aGUgY291bnRlciB0byBjaGFuZ2UKCSAgYW5kIGZvciBzb21lb25lIHRvIGNvbnN1bWUgdGhlIGJ1ZmZlciAoaS5lLiBfcG9wKCkgaXQpLgoJICBUaGUgc2Vjb25kIHRocmVhZCBwdXNoZXMgYSBidWZmZXIgYW5kIGNhbGxzIHRoZSBjb2xsZWN0ZWQgY2FsbGJhY2ssIHdoaWNoCgkgIHNpZ25hbHMgdGhlIGNvbmQgdGhhdCB0aGUgdGVzdCB0aHJlYWQgaXMgd2FpdGluZyBmb3IuCgkgIFRoZSB0ZXN0IHRocmVhZCBwb3BzIGJvdGggYnVmZmVycyAod2l0aG91dCBob2xkaW5nIGFueSBsb2NrKS4gRWFjaCBjYWxsIHRvCgkgIF9wb3AoKSBpbmNyZWFzZXMgdGhlIGNvdW50ZXIgYnJvYWRjYXN0cyB0aGUgY29uZGl0aW9uIHRoYXQgdGhlIGZpcnN0IHRocmVhZCBpcwoJICBub3cgd2FpdGluZyBmb3IuIEl0IHRoZW4gam9pbnMgYm90aCB0aHJlYWRzIChoYW5ncykuCgkgIFRoZSBmaXJzdCB0aHJlYWQgd2FrZXMgdXAgYW5kIHJldHVybnMsIHNpbmNlIGl0cyBidWZmZXIgaGFzIGJlZW4gY29uc3VtZWQuCgkgIFRoZSBzZWNvbmQgdGhyZWFkIHN0YXJ0cyBleGVjdXRpbmcgYWdhaW4uIFdoZW4gdGhlIGNhbGxiYWNrLCBjYWxsZWQgYnkgdGhlCgkgIHNlY29uZCB0aHJlYWQsIGhhcyByZXR1cm5lZCBpdCBpbml0aWFsaXplcyBhIGNvb2tpZSB0byB0aGUgdmFsdWUgb2YgYSBjb3VudGVyLAoJICB3aGljaCBoYXMgYWxyZWFkeSBwcmVtYXR1cmVseSBiZWVuIGluY3JlYXNlZCBieSB0aGUgdGVzdCB0aHJlYWQgd2hlbiBpdCBwb3BwZWQKCSAgdGhlIGJ1ZmZlcnMsIGFuZCB3YWl0J3Mgb24gYSBjb25kIGZvciB0aGUgY291bnRlciB0byBjaGFuZ2UgYW5kIGZvciBzb21lb25lIHRvCgkgIGNvbnN1bWUgdGhlIGJ1ZmZlciAoaS5lLiBfcG9wKCkgaXQpLiBTaW5jZSB0aGUgYnVmZmVyIGhhcyBhbHJlYWR5IGJlZW4gcG9wZWQKCSAgYW5kIHRoZSBjb3VudGVyIGhhcyBhbHJlYWR5IGJlZW4gaW5jcmVhc2VkIGl0IHdpbGwgYmUgc3R1Y2sgZm9yZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTU1NQoKMjAxMy0wMy0xNiAxMjowNTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBmZm1wZWcgbGlicyBmcm9tIGR5bmFtaWMgbGlua2VyIHBhdGhzCgkgIFdlIGxpbmsgdGhvc2UgbGlicyBpbnRvIHRoZSBwbHVnaW4gc3RhdGljYWxseSwgb3IgdXNlIGV4dGVybmFsCgkgIHN5c3RlbSBsaWJzLCBidXQgbmV2ZXIgdGhlIGludGVybmFsIHNuYXBzaG90IGR5bmFtaWNhbGx5LgoKMjAxMy0wMy0xNiAxMjowMDo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtZWRpdGluZy1zZXJ2ZXMgdG8gR0lfVFlQRUxJQl9QQVRICgkgIFNvIHB5Z2kgY2FuIGZpbmQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5MzcKCjIwMTMtMDMtMTIgMTM6NTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBtYWtlIHN1cmUgc2xvdyBHU1RfUkVBRF9VSU5UKiB2YXJpYW50cyBkb24ndCBoYXZlIHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzCgkgIEZpeGVzIHVuaXQgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGlzIG5vdCBwb3NzaWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTU5OQoKMjAxMy0wMy0wNSAxMToxNDo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBkb24ndCBleGl0IHRoZSBsb29wIG9uIGJ1ZmZlcmluZyBpbiBwYXVzZWQKCSAgV2hlbiB3ZSByZWNlaXZlIGEgYnVmZmVyaW5nIG1lc3NhZ2Ugb2YgMTAwJSBpbiB0aGUgcGF1c2VkIHN0YXRlLCB3ZSBleGl0CgkgIHRoZSBldmVudF9sb29wIGFuZCBtb3ZlIHRvIHRoZSBQTEFZSU5HIHN0YXRlLiBXaGF0IHNob3VsZCBoYXBwZW4gaXMgdGhhdAoJICB3ZSB3YWl0IGZvciBib3RoIEFTWU5DLURPTkUgYW5kIDEwMCUgYnVmZmVyaW5nIGJlZm9yZSBjb250aW51ZWluZy4KCjIwMTMtMDMtMDggMTM6MTU6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBjb250cm9sbGVyIGRlc2lnbiBhbmQgYWRkIHNvbWUgdGhvdWdocyBmb3IgZnV0dXJlIHN0dWZmCgoyMDEzLTAzLTA4IDA4OjEzOjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkb2NzOiBtZW50aW9uIGNsaXBwaW5nIG9mIHZhbHVlcyBpbiBjb250cm9sLWJpbmRpbmcgZG9jcwoKMjAxMy0wMy0wOCAwODoxMDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGNvZGUgY2xlYW51cHMKCSAgVXNlIGEgcHJvcGVydHkgZm9yIGFjY2Vzc2luZyB0aGUgY29udHJvbC1zb3VyY2Ugb24gdGhlIGJpbmRpbmcuIERyb3AgYmFzZV9pbml0CgkgIG9uIHRoZSB0ZXN0IG9iamVjdC4KCjIwMTMtMDMtMDcgMTE6NDY6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBnc3RfcXVlcnlfZ2V0X25fYWxsb2NhdGlvbl9wYXJhbXMoKSByZXR1cm5zIGEgbmV3IHJlZiB0byB0aGUgYWxsb2NhdG9yCgoyMDEzLTAzLTA3IDExOjM1OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBhIGJvZ3VzIHRlc3QKCSAgV2UgcHJldmlvdXNseSBmb3Jnb3QgdG8gaW5pdGlsaXplIHRoZSBhbXBsaXRkZSBwcm9wZXJ0eSB0byB0aGUgZGVmYXVsdCBhbmQgdGh1cyBpdCB3YXMgMC4wLiBUaGVyZWZvcmUgYSBkZWZhdWx0IGxmbyBjb250cm9sc291cmNlIHJldHVybmVkIGEgc2VyaWVzIG9mIDAuMCBhbmQgdGhlIHRlc3Qgd2FzIGFzc2VydGluZyBvbiB0aGF0LgoKMjAxMy0wMy0wNyAwOToxNToxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiByZWxheCB0aGUgcHNwZWMgZm9yIHRoZSBjb250cm9sLXNvdXJjZQoJICBXZSBjYW4gY2hhbmdlIGNvbnRyb2wgc291cmNlcyBvbiBjb250cm9sYmluZGluZ3MuCgoyMDEzLTAzLTA3IDA5OjEyOjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmbzogc2V0IGEgc2Vuc2libGUgbG93ZXIgYm91bmRhcnkgZm9yIHRoZSBmcmVxdWVuY3kKCSAgVXNlIERCTF9NSU4sIHdoaWNoIGlzIGEgdGhlIHNtYWxsZXMgZG91YmxlIGdyZWF0ZXIgdGhhbiB6ZXJvIHRoYXQgaXMgbm90IGluCgkgIGRlbm9ybWFsIGZvcm1hdC4gVGhpcyBleHBvc2VzIHRoZSBsaW1pdCBiZXR0ZXIgdGhhbiB0aGUgcnVudGltZSBjaGVjay4KCjIwMTMtMDMtMDYgMjM6NTk6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJkZTIyMWMgdG8gMDRjN2ExZQoKMjAxMy0wMy0wNiAxNjo0MDoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBpbml0IHRoZSBhbXBsaXR1ZGUgdG8gdGhlIGRlZmF1bHQgYW5kIHVwZGF0ZSB0aGUgZG9jcwoKMjAxMy0wMy0wNSAxMTozMDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYWxsIHRoZSBiYXNlL2JhZCBsaWJyYXJpZXMgYW5kIHJlbW92ZSBvYnNvbGV0ZSBvbmVzCgoyMDEzLTAzLTAzIDE2OjAwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgkgIFJ1bm5pbmcgc3VpdGUocyk6IEdzdEJhc2VTaW5rCgkgID09MjIwMjM9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCgkgID09MjIwMjM9PSAgICBhdCAweDUwNUZGQ0U6IGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMgKGdzdGJhc2VzaW5rLmM6MTkzNikKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2OEM4MDogZ3N0X2Jhc2Vfc2lua19kb19zeW5jIChnc3RiYXNlc2luay5jOjIzNzkpCgkgID09MjIwMjM9PSAgICBieSAweDUwNkJDRDI6IGdzdF9iYXNlX3NpbmtfZGVmYXVsdF93YWl0X2V2ZW50IChnc3RiYXNlc2luay5jOjI5MDMpCgkgID09MjIwMjM9PSAgICBieSAweDUwNjMzQTQ6IGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9ldmVudCAoZ3N0YmFzZXNpbmsuYzoyOTE4KQoJICA9PTIyMDIzPT0gICAgYnkgMHg2RjVDMjE2OiBnc3RfZmFrZV9zaW5rX2V2ZW50IChnc3RmYWtlc2luay5jOjM4MykKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA1RjE2NDogZ3N0X2Jhc2Vfc2lua19ldmVudCAoZ3N0YmFzZXNpbmsuYzozMTA4KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MkZBMDkwOiBnc3RfcGFkX3NlbmRfZXZlbnRfdW5jaGVja2VkIChnc3RwYWQuYzo0ODIyKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MzAzNzU2OiBnc3RfcGFkX3NlbmRfZXZlbnQgKGdzdHBhZC5jOjQ5ODQpCgkgID09MjIwMjM9PSAgICBieSAweDQwMTY1QjogYmFzZXNpbmtfdGVzdF9nYXAgKGJhc2VzaW5rLmM6MTQ4KQoKMjAxMy0wMy0wMyAxMjowNjozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IG1lbW9yeSBjb3B5aW5nIGxvZ2ljIGluIGNvcHlfaW50bygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTUwMzUKCjIwMTMtMDMtMDMgMTE6Mjg6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBVc2UgY29ycmVjdCBwcmludCBmb3JtYXQgc3BlY2lmaWVycyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTMtMDItMjIgMTQ6MjI6MDEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBGaXggbWlzc3BlbGxpbmdzIG9mICdjb250aW51b3VzJwoKMjAxMy0wMi0yMiAxNDo1Njo0OSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB0YWtlIERUUyBpbnRvIGFjY291bnQKCSAgSW1wb3J0YW50bHksIHRoaXMgcGF0Y2ggY29udmVydHMgRFRTIHRvIHJ1bm5pbmcgdGltZS4gIExlc3MgaW1wb3J0YW50bHksCgkgIGFuZCBwb3NzaWJseSBhIHByb2JsZW0gZm9yIHNvbWUgbXV4ZXJzLCBpcyB0aGF0IGl0IG9yZGVycyBidWZmZXJzIGJ5CgkgIERUUyAoaWYgaXQgaXMgdmFsaWQsIG90aGVyd2lzZSBQVFMpLiAgVGhpcyBpcyBnZW5lcmFsbHkgY29ycmVjdCwgYnV0CgkgIG1pZ2h0IGJlIHNvbWV3aGF0IHN1cnByaXNpbmcgdG8gbXV4ZXJzLgoJICBBbHNvIG5vdGUgdGhhdCBvbmNlIGNvbnZlcnRlZCB0byBydW5uaW5nIHRpbWUsIERUUyBjYW4gZW5kIHVwIG5lZ2F0aXZlLgoKMjAxMy0wMi0yOCAyMjo1OTo0MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IGltcHJvdmUgdGhlIGNvbnRyb2xsZXIgZG9jcyBhIGxpdHRsZSBtb3JlCgkgIFJld29yZCBzb21lIHNlY3Rpb25zLiBFeHBsYWluIHZhbHVlIG1hcHBpbmdzIGJldHRlci4KCjIwMTMtMDItMjggMTk6NDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LWxpYmF2IHRvIHBrZy1jb25maWcgcGF0aAoKMjAxMy0wMi0yNyAyMjoxNTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHNlZWtpbmc6IGFkZCBtb3JlIGxvZ2dpbmcgZm9yIHNlZWtpbmcKCSAgRXNwZWNpYWxseSBhZGQgbG9nZ2luZyB0byBlcnJvciBjb2RlIHBhdGhzLgoKMjAxMy0wMi0yNyAxMDowOTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBHcmFjZWZ1bGx5IGhhbmRsZSBnc3RfbWVtb3J5X2NvcHkoKSByZXR1cm5pbmcgTlVMTCB3aXRob3V0IGNyYXNoaW5nCgkgIGdzdF9idWZmZXJfY29weV9pbnRvKCkgYW5kIGdzdF9idWZmZXJfcmVzaXplX3JhbmdlKCkgY2FuIG5vdyBmYWlsLgoKMjAxMy0wMi0yNiAxNzozMzozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFsbG9jYXRvcjogc21hbGwgaW50ZXJuYWwgY2xlYW51cHMKCSAgUmVuYW1lIFN5c3RlbSBtZW1vcnkgYWxsb2NhdG9yIHRvIEdzdEFsbG9jYXRvclN5c21lbSBhbmQgdGhlIG1lbW9yeSB0bwoJICBHc3RNZW1vcnlTeXN0ZW0uCgoyMDEzLTAyLTI2IDE1OjM3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1ldGhvZCB0byBjaGVjayBtZW1vcnkgdHlwZQoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgYSBtZW1vcnkgd2FzIGFsbG9jYXRlZCBmcm9tIGFuIGFsbG9jYXRvciBvZgoJICBhIGdpdmVuIHR5cGUuCgkgIEFQSTogZ3N0X21lbW9yeV9pc190eXBlKCkKCjIwMTMtMDItMjYgMTU6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTMtMDItMjYgMTU6MzI6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkgIHVzZSBHU1RfTUVTU0FHRV9EVVJBVElPTl9DSEFOR0VEIGluIGRvY3MgYW5kIGNvZGUKCjIwMTMtMDItMjYgMTQ6NDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZG9uJ3QgdW5yZWYgYWxsb2NhdG9yIHRvbyBzb29uCgkgIFVucmVmIHRoZSBhbGxvY2F0b3IgKmFmdGVyKiB3ZSBoYXZlIGZyZWVkIHRoZSBtZW1vcnkuIFdlIGFsc28gbmVlZCB0byBrZWVwCgkgIGEgcmVmIHRvIHRoZSBhbGxvY2F0b3IgYXJvdW5kIGJlY2F1c2UgZm9sbG93aW5nIHRoZSBub3cgZnJlZWQgbWVtb3J5IHdvdWxkCgkgIGxlYWQgdG8gY3Jhc2hlcy4KCjIwMTMtMDItMjYgMDk6MDg6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBpbnZlcnRlZCBsb2dpYyBmb3IgZGVjaWRpbmcgaWYgbWVtb3J5IHNob3VsZCBiZSBzaGFyZWQgb3IgY29waWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQ3MTcKCjIwMTMtMDItMjYgMDc6NTA6MTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IG1lbnRpb24gc2VnbWVudCBhY2N1bXVsYXRpb24gaW4gdGhlIHBvcnRpbmcgZ3VpZGUKCSAgVGhpcyBuZWVkcyBtb3JlIGRldGFpbCwgYnV0IGF0IGxlYXN0IGdpdmVzIHBlb3BsZSBhIGhpbnQgb24gdGhlIGlzc3VlLgoKMjAxMy0wMi0yNiAwNzo0ODozNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IHMvc3RhcnQvZG9uZS8gY29weSduJ3Bhc3RlIG1pc3Rha2UKCjIwMTMtMDItMjUgMTM6NTc6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBuZXcgQVBJIHRvIHJlbW92ZSBhbGxvY2F0aW9uIHBhcmFtcyBhbmQgcG9vbHMgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMy0wMi0yNSAxMzoyNDozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IERvY3VtZW50IHRoYXQgdGhlIGZpcnN0IGFsbG9jYXRvciBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSBzaG91bGQgYWxsb3cgbWFwcGluZyB0byBzeXN0ZW0gbWVtb3J5CgoyMDEzLTAyLTI0IDA5OjI0OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBhbGxvY2F0b3IKCSAgT3RoZXJ3aXNlIHRoZSBhbGxvY2F0b3IgbWlnaHQgZ2V0IGZyZWVkIHdoaWxlIGl0J3Mgc3RpbGwgdXNlZAoJICBieSB0aGUgbWVtb3J5CgoyMDEzLTAyLTI0IDA5OjMzOjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBJZiBzaGFyaW5nIGEgR3N0TWVtb3J5IGZhaWxzLCBmYWxsIGJhY2sgdG8gY29weWluZyBpdAoKMjAxMy0wMi0yMyAxODozNjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcG9ydGluZy10by0xLjAudHh0OiBzb21lIGVsZW1lbnQgbmFtZXMgaGF2ZSBjaGFuZ2VkCgoyMDEzLTAyLTIzIDA4OjE5OjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBJdCdzIGNvbnRpZ3VvdXMsIG5vdCBjb250aW5vdXMKCjIwMTMtMDItMjIgMTI6NDE6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBuZXcgbWVtb3J5IGZsYWcgdG8gc3BlY2lmeSB0aGF0IG1lbW9yeSBjYW4ndCBiZSBtYXBwZWQKCjIwMTMtMDItMjIgMDk6MDI6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBtZW1vcnkgZmxhZyB0byBtYXJrIHBoeXNpY2FsbHkgY29udGlub3VzIG1lbW9yeQoKMjAxMy0wMi0xNiAyMzowMjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCBwYXNzIE5VTEwgb3V0Y2FwcyB0byB0cmFuc2Zvcm1fc2l6ZSBvbiBzaHV0ZG93bgoJICBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBvbiB0aGUgc291cmNlIHBhZCBtaWdodCB5aWVsZCBOVUxMIGNhcHMKCSAgaWYgd2UncmUgYmVpbmcgc2h1dCBkb3duIGFuZCB0aGUgc291cmNlIHBhZCBoYXMgYWxyZWFkeSBiZWVuCgkgIGRlYWN0aXZhdGVkIGJ5IHRoZSBvdGhlciB0aHJlYWQgdGhhdCdzIGNoYW5naW5nIHN0YXRlLiBKdXN0IGJhaWwKCSAgb3V0IGluIHRoYXQgY2FzZSwgaW5zdGVhZCBvZiBwYXNzaW5nIE5VTEwgY2FwcyB0byB0aGUgdHJhbnNmb3JtX3NpemUKCSAgZnVuY3Rpb24sIHdoaWNoIGl0IG1pZ2h0IG5vdCBleHBlY3QuCgkgIEZpeGVzIHNwdXJpb3VzIHdhcm5pbmdzIGluIGF1ZGlvcmVzYW1wbGUgc2h1dGRvd24gdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzOTk2CgoyMDEzLTAyLTIxIDEwOjE4OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBPUkMKCjIwMTMtMDItMTkgMTg6MDA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYXZvaWQgdW5leHBlY3RlZCBzaWRlLWVmZmVjdHMgb2YgR1NUX1dSSVRFXyogbWFjcm9zCgkgIE1ha2Ugc3VyZSB0aGUgZGF0YSBhcmd1bWVudCBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlLgoKMjAxMy0wMi0xOSAxNzozNjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgY2hlY2s6IGFkZCBzb21lIG1vcmUgZmFpbF91bmxlc3NfKigpIG1hY3JvcyBmb3IgY29udmVuaWVuY2UKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfaW50X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfaW50X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19pbnQ2NF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX2ludDY0X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc191aW50NjRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc191aW50NjRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX3BvaW50ZXIKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX3BvaW50ZXIKCjIwMTMtMDItMTkgMTI6NDI6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGFkZCBuZXcgLWJhc2UgYWxsb2NhdG9ycyBsaWJyYXJ5IHRvIGdzdC11bmluc3RhbGxlZCBzZWFyY2ggcGF0aHMKCjIwMTMtMDItMTggMjA6NDc6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgdHdvIG1vcmUgdGVzdHMgdXNpbmcgY29sbGVjdHBhZHMgd2l0aGluIGFuIGVsZW1lbnQKCSAgQWRkIGEgc3RhdGljIHBsdWdpbiB3aXRoIGEgcnVkaW1lbnRhcnkgZWxlbWVudCB1c2luZyBjb2xsZWN0cGFkcyBhbmQgZG8gc29tZQoJICBwaXBlbGluZSBiYXNlZCB0ZXN0cy4KCjIwMTMtMDItMTcgMTI6NTA6MDMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIGRvY3M6IEZpeCBzb21lIGFtYmlndW91cyB3b3JkaW5nCgoyMDEzLTAyLTE3IDE5OjUzOjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogYWRkIG1pc3NpbmcgZW5kX2l0ZXIgY2hlY2sgZm9yIHNlcXVlbmNlCgkgIEF2b2lkIGFjY2Vzc2luZyB0aGUgZW5kLWl0ZXIsIHRoaXMgaXMgYSBtYXJrZXIgd2l0aG91dCBhIGRhdGEgZmllbGQuCgoyMDEzLTAyLTE3IDEzOjIwOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbGluayB0byB0aGUgYXBwcm9wcmlhdGUgbWVzc2FnZXMgZnJvbSBnc3RfZWxlbWVudHNfc2V0X3N0YXRlKCkgZG9jcwoJICBGb3IgYW4gYXN5bmMgc3RhdGUgY2hhbmdlIHJldHVybiBvbmUgd291bGQgd2FpdCBmb3IgQVNZTkNfRE9ORSBvciBTVEFURV9DSEFOR0VELgoKMjAxMy0wMi0xNiAxNDoyMDowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgc2luY2UgbWFya2VyIGZvciBuZXcgQ09QWV9ERUVQIGJ1ZmZlciBmbGFnCgoyMDEzLTAyLTE2IDE0OjU5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG9wdGlvbiB0byBkZWVwIGNvcHkgYSBidWZmZXIKCSAgQWRkIGEgYnVmZmVyIGNvcHkgZmxhZyB0byBmb3JjZSBhIG1lbW9yeSBjb3B5IGluIGFsbCBjYXNlcy4KCjIwMTMtMDItMTQgMTQ6MDk6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIFJldmVydCAidXRpbHM6IFVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSBpbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxYTFhOWUxNDNmYjBlMTU1ZDc2MjdhYThlNDg5Y2Q1ZDA0YmMwOTNjLgoJICBUaGlzIGJyZWFrcyB0aGUgcGlwZWxpbmVzL3RhZ3NjaGVja2luZyB1bml0IHRlc3QgZm9yIHNvbWUgcmVhc29uCgkgIChmYWtlc3JjICEgY2Fwc2ZpbHRlciAhIHF0bXV4IGxpbmtpbmcgZmFpbHMgbm93KS4gSXQgbWlnaHQgYmUKCSAgYSBidWcgaW4gdGhlIHVuaXQgdGVzdCBvZiBjb3Vyc2UsIGJ1dCBzb21lb25lIHdpbGwgbmVlZCB0bwoJICBpbnZlc3RpZ2F0ZSB0aGlzLiBSZXZlcnRpbmcgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjUwOAoKMjAxMy0wMi0xNSAxMzowODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBpbXByb3ZlIGZhbGxiYWNrIGNvcHkgZnVuY3Rpb24KCSAgT25seSB1c2UgdGhlIGFsbG9jYXRvciBvZiB0aGUgY29waWVkIG1lbW9yeSB3aGVuIHdlIGNhbiB1c2UgdGhlIGRlZmF1bHQKCSAgX2FsbG9jIGZ1bmN0aW9uIG9uIGl0LiBPdGhlcndpc2Ugd2Ugd2lsbCBoYXZlIHRvIHVzZSB0aGUgZGVmYXVsdAoJICBhbGxvY2F0b3IgZm9yIHRoZSBjb3B5LgoKMjAxMy0wMi0xNCAxMzo1NToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZml4IGxvY2F0aW9uIGluIHVzZXIncyBob21lIGRpcmVjdG9yeSB3aGVyZSBHU3RyZWFtZXIgbG9va3MgZm9yIHBsdWdpbnMKCSAgSXQncyBiYXNlZCBvbiB0aGUgeGRnIHVzZXIgZGF0YSBkaXIgbm93IGluIDEuMC4KCjIwMTMtMDEtMjUgMDY6NTA6MjcgLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSBpbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUoKQoJICBtb3RpdmF0aW9uIGNvbWVzIGZyb206IC8qIEZJWE1FOiB3aHkgbm90IGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSAocGFkKTsgKi8KCSAgdGhpcyBjb2RlIHBhdGggaXMgcXVpdGUgbmljZXIsIHdlIG5vdyBvbmx5IHJldmVydCB0byBjcmVhdGluZyB0aGUgdGVtcGxhdGUKCSAgaWYgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIGZhaWxzLgoJICB3aXRoIHRoaXMgZm9yaywgd2UgZ2FpbiBhIG5vbi1hbGxvY2F0aW9uIG9mIEdzdENhcHMgKnRlbXBsY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNTA4CgoyMDEzLTAyLTEzIDAwOjI3OjI4ICswMDAwICBLcnp5c3p0b2YgS29ub3BrbyA8a3J6eXN6dG9mLmtvbm9wa29AZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVc2UgZ191bml4X3NpZ25hbF9hZGQoKSB0byBoYW5kbGUga2V5Ym9hcmQgaW50ZXJydXB0aW9uCgkgIEN1cnJlbnQgaW1wbGVtZW50YXRpb24gdXNlcyBhIHRyYWRpdGlvbmFsIHNpZ25hbCBoYW5kbGVyIGFuZCBhIDI1MG1zCgkgIHRpbWVvdXQgY2FsbGJhY2sgaW4gdGhlIGV2ZW50IGxvb3AuICBBZGRpbmcgYSBHU291cmNlIHdpdGgKCSAgZ191bml4X3NpZ25hbF9hZGQoKSB0byB0aGUgR01haW5Mb29wIGlzIGEgbXVjaCBtb3JlIGVsZWdhbnQgc29sdXRpb24uCgkgIFRoZSBzaWduYWwgaGFuZGxlciB3aXRoIHRoaXMgYXBwcm9hY2ggY2FuIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBidXMKCSAgZGlyZWN0bHkgcmF0aGVyIHRoYW4gc2V0IGEgZmxhZyBhcyBhbGwgZGlzcGF0Y2hpbmcgaW50cmljYWNpZXMgYXJlIGhhbmRsZWQKCSAgYnkgR0xpYi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzQ4MQoKMjAxMy0wMi0xNCAwMDowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBmbGVzaCBvdXIgJ1J1bm5pbmcgR1N0cmVhbWVyJyBiaXRzIGEgYml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM2MDcKCjIwMTMtMDItMTMgMjM6Mjc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZsZXNoIG91dCBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZSBhIGxpdHRsZQoJICBGaXggdXAgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgcmVnaXN0cnkuCgkgIE1lbnRpb24gbW9yZSBvcHRpb25zIGZvciBHU1RfREVCVUcgKHdpbGRjYXJkcyBhbmQKCSAgbmFtZWQgZGVidWcgbGV2ZWxzKS4KCSAgRXhwbGFpbiB3aGF0IHRvIGRvIHdpdGggdGhlIGRvdCBmaWxlcyB0aGF0IGNhbiBiZQoJICBwcm9kdWNlZCBieSBzZXR0aW5nIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM2MDcKCjIwMTItMTItMjcgMDA6MDM6MDYgKzAxMDAgIEdlcnQgTWljaGFlbCBLdWx5ayA8Z2t1bHlrQHlhaG9vLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBmaXggYWR2YW5jZWQtbWV0YWRhdGEgY29kZSBleGFtcGxlIGluIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNzUxCgoyMDEzLTAyLTEzIDE2OjUyOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFjY2VwdCBOVUxMIGVycm9yIGFyZ3VtZW50IGluIGdzdF9tZXNzYWdlX3BhcnNlX3tlcnJvcix3YXJuaW5nLGluZm99CgkgIEFuZCBzaW1wbGlmeSBjb2RlIGEgYml0IHdoaWxlIGF0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNzA0CgoyMDEzLTAyLTEzIDE3OjAwOjIzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFJlbW92ZSBzZXQtc3R5bGUgYml0bWFzayBpbnRlcnNlY3Rpb24vdW5pb24vc3VidHJhY3Rpb24gZnVuY3Rpb25zCgkgIFNldCBvcGVyYXRpb25zIG9uIHRoZSBiaXRtYXNrcyBkb24ndCBtYWtlIG11Y2ggc2Vuc2UgYW5kIHJlc3VsdAoJICBpbiBpbnZhbGlkIGNhcHMgd2hlbiB1c2VkIGFzIGEgY2hhbm5lbC1tYXNrLiBUaGV5IGFyZSBub3cgaGFuZGxlZAoJICBleGFjdGx5IGxpa2UgaW50ZWdlcnMuCgkgIFRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgbm90IHVzZWQgYW55d2hlcmUgZXhjZXB0IGZvciB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTM3MAoKMjAxMy0wMi0xMyAxMToxOTowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVGhlIGxhdGVuY3kgcXVlcnkgc2hvdWxkIHJldHVybiBUUlVFIGJ5IGRlZmF1bHQsIGRpZmZlcmVudCB0byBvdGhlciBxdWVyaWVzCgkgIEZpeGVzIHVuaXQgdGVzdCBmYWlsdXJlcyBjYXVzZWQgYnkgZjNkMjY4ZGU3ZjdmYjExNjE3NzhhOWE5NWUwZDU0ZDhjODllZjYyNgoKMjAxMy0wMi0xMyAxMDo0NjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHN0cnVjdHVyZTogTWFrZSBzdXJlIHRoYXQgc3Vic2V0cyBoYXZlIGFsbCBmaWVsZHMgb2YgdGhlIHN1cGVyc2V0CgkgICJ2aWRlby94LWgyNjQscGFyc2VkPShib29sZWFuKXRydWUiIGlzIG5vdCBhIHN1cGVyc2V0IG9mCgkgICJ2aWRlby94LWgyNjQsc3RyZWFtLWZvcm1hdD0oc3RyaW5nKWJ5dGUtc3RyZWFtLGFsaWdubWVudD0oc3RyaW5nKW5hbCIKCSAgZm9yIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTMzNjUKCjIwMTMtMDItMTIgMTI6MzI6MjMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB1cGRhdGUgZXhwb3J0cyBmb3IgYmFzZXBhcnNlIEFQSSBjaGFuZ2VzCgoyMDEzLTAyLTEyIDEyOjMxOjQyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGRvYyB0eXBvCgoyMDEzLTAyLTExIDE2OjUxOjQ4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGdzdF9iYXNlX3BhcnNlX3NldF90c19hdF9vZmZzZXQoKQoJICBTZXRzIHRoZSBidWZmZXIgdGltZXN0YW1wcyBiYXNlZCBvbiBsYXN0IHNlZW4gdGltZXN0YW1wcyBhdCBhCgkgIHBhcnRpY3VsYXIgb2Zmc2V0IGludG8gdGhlIGZyYW1lLgoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX3NldF90c19hdF9vZmZzZXQoKQoKMjAxMy0wMi0xMSAxNjo0Mjo0MSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IEFkZCBnc3RfYWRhcHRlcl9wcmV2X1twZF10c19hdF9vZmZzZXQoKQoJICBPcmlnaW5hbCBwYXRjaCB3cml0dGVuIGJ5IE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4uCgkgIEFQSTogZ3N0X2FkYXB0ZXJfcHJldl9wdHNfYXRfb2Zmc2V0KCkKCSAgQVBJOiBnc3RfYWRhcHRlcl9wcmV2X2R0c19hdF9vZmZzZXQoKQoKMjAxMy0wMi0wOSAxODoxNDowOSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBxdWVyeSBzaW5rIGVsZW1lbnRzIGFuZCBzb3VyY2UgcGFkcyBvZiB0aGUgYmluCgkgIGdzdF9iaW5fcXVlcnkoKSBub3cgZm9yd2FyZHMgdGhlIHF1ZXJ5IHRvIHRoZSBzb3VyY2UgcGFkcyBhcyB3ZWxsIGlmCgkgIG5vbmUgb2YgdGhlIHNpbmtzIG9mIHRoZSBiaW4gc2F0aXNmaWVkIHRoZSBxdWVyeS4gVGhpcyBoZWxwcyBpbiB0aGUKCSAgY2FzZSBvZiBEVVJBVElPTiBxdWVyaWVzIGRvbmUgYSBiaW4gY29udGFpbmluZyBhIHNvdXJjZSBlbGVtZW50LgoJICBGaXhlcyBidWcgNjM4NzQ5CgoyMDEzLTAyLTA3IDEyOjQ3OjAyICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTGV0IGdzdF9iaW5fc2VuZF9ldmVudCgpIHNlbmQgZXZlbnRzIHRvIGdob3N0IHBhZHMgYXMgd2VsbAoKMjAxMy0wMi0xMSAyMjo1MjoyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgY29tcGF0OiBraWxsIG1vcmUgdXNlcyBvZiBnc3RfcGFkX3NldF9jYXBzKCkKCjIwMTMtMDItMTIgMDA6MDg6NTEgKzExMDAgIFRpbSAnbWl0aHJvJyBBbnNlbGwgPG1pdGhyb0BtaXRoaXMuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGRpbmcgb2Zmc2V0IHRvIEdzdFNlZ21lbnQgc2VyaWFsaXplL2Rlc2VyaWFsaXplLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNTg3CgoyMDEzLTAyLTA5IDEyOjMyOjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcHJvdmUgUFRTIGludGVycG9sYXRpbmcKCSAgLi4uIGFuZCB0cmFja2luZyBvZiBEVFMuICBGaXhlcyBjYXNlcyB3aGVyZSBQVFMgaXMgbG9ja2VkIG9uIHRvIHRoZQoJICBEVFMgb2YgYW4gaW5jb21pbmcgYnVmZmVyIHdpdGggbm8gUFRTIHdpdGggaW52YWxpZCBkYXRhLCBsZWFkaW5nIHRvCgkgIG5vIG91dGdvaW5nIFBUUyAoc2luY2UgaXQgaXMgbm90IGFsbG93ZWQgc21hbGxlciB0aGFuIERUUykuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDItMDggMjE6Mjg6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBtb3JlIHBvcnRpbmcgZGV0YWlscwoKMjAxMy0wMi0wOCAyMToyMTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IGVycm9yIGhhbmRsaW5nIGZvciBiaW5kaW5nIGNvbnRyb2xzb3VyY2VzIHRvIHdyb25nIHByb3BlcnRpZXMKCSAgQWRkIHdhcm5pbmcgaWYgcHJvcGVydHkgaXMgbm90IHN1aXRhYmxlIGZvciBjb250cm9sbGluZy4gV2hlbiBhZGRpbmcgYSBjb250cm9sLQoJICBiaW5kaW5nIGNoZWNrIHRoYXQgcHNwZWMhPU5VTEwuCgoyMDEzLTAyLTA3IDEzOjA4OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIG9sZCBkb2NzIGFib3V0IGl0ZXJhdG9ycwoKMjAxMy0wMi0wNyAxMjo1MjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgb2xkIGNvbW1lbnQKCSAgVGhlIGl0ZXJhdG9ycyBub3cgcmV0dXJuIGEgR1ZhbHVlIGFuZCBub3QgdGhlIG9iamVjdCBkaXJlY3RseSBhbnltb3JlLgoKMjAxMy0wMi0wNyAxMjo1MDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZXNldCBHVmFsdWUgZnJvbSBpdGVyYXRvciBhZnRlciB1c2FnZQoKMjAxMy0wMi0wNSAxNzoxNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgdGVzdHM6IGFkZCBiYXNlc2luayB0ZXN0CgoyMDEzLTAyLTA1IDE3OjE5OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIHN5bmMgb2YgRU9TIGFmdGVyIGl0ZW0gd2l0aG91dCBkdXJhdGlvbgoJICBBZnRlciBhIGJ1ZmZlciBvciBHQVAgd2l0aG91dCBkdXJhdGlvbiwgYW4gRU9TIGV2ZW50IHNob3VsZCBiZSByZW5kZXJlZAoJICBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBlbmQgb2YgdGhlIHNlZ21lbnQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI4NjgKCjIwMTMtMDItMDIgMTE6NTU6NTIgLTA4MDAgIE5hdGUgQm9nZGFub3dpY3ogPG5hdGV6YkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0cGlwZWxpbmU6IGZpeCBmYWlsZWQgYXNzZXJ0aW9uIGNhdXNlZCBieSBzZWVraW5nIHBpcGVsaW5lIHdpdGggTlVMTCBjbG9jawoJICBVbmRlciBjZXJ0YWluIEdTVF9TVEFURV9DSEFOR0VEX1BBVVNFRF9UT19QTEFZSU5HIHRyYW5zaXRpb25zLCBhIHBpcGVsaW5lIHdpdGgKCSAgYSBOVUxMIGNsb2NrIHdpbGwgZmFpbCBhbiBhc3NlcnRpb24gZHVlIHRvIGFuIHVuY2hlY2tlZCBjYWxsIHRvIGdzdF9vYmplY3RfcmVmKCkuCgkgIFRoaXMgaXMgZml4ZWQgYnkgc2ltcGx5IGFkZGluZyBhIGNoZWNrIGFuZCBvbmx5IHJlZi1pbmcgaWYgdGhlIGNsb2NrIGlzIG5vdCBOVUxMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzMDY1CgoyMDEzLTAyLTA1IDEzOjQ0OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IGNoYW5nZSBhcmd1bWVudCBuYW1lIGZvciBkb2NzCgoyMDEzLTAyLTA0IDEwOjMwOjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IG9yZGVyIG9mIGNhcHMgb24gYW4gdW5uZWdvdGlhdGVkIGxpbmsKCSAgaGVhZGxhYmVsIGlzIHRoZSBzaW5rX3BhZCAod2hlcmUgdGhlIGxpbmsgcG9pbnRzIHRvKSBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMy0wMi0wMSAyMTo1OTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZG9jczogdXBkYXRlIHRoZSBjb250cm9sbGVyIGRvY3MKCSAgQWRkIHRoZSBjb250cm9sIGJpbmRpbmdzIHRvIHRoZSBkb2NzLiBBZGQgYSBsaXR0bGUgbW9yZSBkZXRhaWwuCgoyMDEzLTAyLTAxIDIxOjU3OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBhIGZldyB1cGRhdGVzIGZvciB0aGUgcG9ydGluZyBndWlkZQoKMjAxMy0wMS0zMCAxMzowNjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGNhbid0IHBhc3MgYSBHVHlwZSB0aHJvdWdoIEdJTlRfVE9fUE9JTlRFUgoJICBVc2UgR1NJWkVfVE9fUE9JTlRFUiBpbnN0ZWFkLiBzaXplb2YoR1R5cGUpIG1heSBiZSBsYXJnZXIKCSAgdGhhbiBzaXplb2YoZ3Vsb25nKSBhbmQgc2l6ZW9mKGludCksIHNvIHRoZSBjYXN0cyBtYXkKCSAgY2hvcCBvZmYgc29tZSBiaXRzIGZyb20gdGhlIEdUeXBlIHZhbHVlIG9uIHNvbWUgYXJjaGl0ZWN0dXJlcy4KCjIwMTMtMDEtMjkgMTI6NDA6NTIgKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiB1bml0IHRlc3QgdG8gdHJpZ2dlciB0aGUgcXVldWUvZmx1c2hpbmcgcmFjZSBjb25kaXRpb24gYnVnIGZvciBhbGxvY2F0aW9uIHF1ZXJpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHF1ZXJ5IGZyb20gcXVldWUgaWYgcXVldWUgaXMgZmx1c2hpbmcKCSAgV2hlbiBxdWVyeWluZyBhIHF1ZXVlIHRoYXQgaXMgZmx1c2hpbmcgd2UgZW5kIHVwIGFkZGluZwoJICBhIHF1ZXJ5IHRvIHRoZSBxdWV1ZWFycmF5IHdpdGhvdXQgdGFraW5nIGEgcmVmZXJlbmNlIHRvCgkgIHRoYXQgcXVlcnkgKGJlY2F1c2UgdGhlIG5vcm1hbCBmdW5jdGlvbmFsaXR5IGlzIHRvIGJsb2NrCgkgIHVudGlsIHRoYXQgcXVlcnkgaXMgZG9uZSBhbmQgZGlzY2FyZGVkIGZyb20gdGhlIHF1ZXVlKS4KCSAgVGhpcyBsYXRlciBjYXVzZXMgcHJvYmxlbSBpZiB0aGUgcXVlcnkgaXMgdW5yZWZmZWQgb3V0c2lkZQoJICBvZiB0aGUgcXVldWUgYmVmb3JlIHdlIGRpc2NhcmQgdGhlIHF1ZXVlLiBUaGVyZSBpcyBhIGNoZWNrCgkgIHRvIGF2b2lkIHVucmVmZmluZyBhbnkgbGluZ2VyaW5nIHF1ZXJ5LW9iamVjdHMsIGJ1dCBzaW5jZQoJICB0aGUgcXVlcnkgaGFzIGJlZW4gZGVsZXRlZCB0aGF0IGNoZWNrIGZhaWxzLgoJICBUaGlzIGNvbW1pdCBkZXBlbmRzIG9uIG90aGVyIGZpeGVzIGRvbmUgdG8gZ3N0X3F1ZXVlX2FycmF5X2ZpbmQoKQoJICBhbmQgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTMwIDExOjU1OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBtYWtlIF9maW5kKCkgZmluZCB0aGUgdmFsdWUgaWYgbm8gY29tcGFyZSBmdW5jdGlvbiBpcyBwcm92aWRlZAoJICBBbGxvdyBOVUxMIGFzIGNvbXBhcmUgZnVuY3Rpb24gZm9yIGRpcmVjdCB2YWx1ZSBsb29rdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMzAgMTE6MzQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBjaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpIHRvbwoJICBXYXMgYWRkZWQgd2hlbiB0aGUgQVBJIHdhcyBtYWRlIHB1YmxpYyBpbiBnaXQgbWFzdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI5IDIyOjU0OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBvbmUgbW9yZSB0ZXN0IGZvciBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoJICBDb25mbGljdHM6CgkgIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGdzdF9xdWV1ZV9hcnJheV9maW5kKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jCgoyMDEzLTAxLTI5IDE2OjU1OjIzICswMjAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkgIGRvY3M6IGFsaWduIHRoZSBjb21tZW50cyBjb3JyZWN0bHkgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gYml0cmVhZGVyIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjgwOQoKMjAxMy0wMS0yOSAwOTo0NToyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgcmVuZWdvdGlhdGlvbiBjb3JyZWN0bHkKCSAgRG9uJ3QgcmV0cnkgdG8gbmVnb3RpYXRlIHdoZW4gd2UgZmFpbCB0byBuZWdvdGlhdGUgYnV0IGluc3RlYWQgcHJvZHVjZSBhCgkgIE5PVF9ORUdPVElBVEVEIGVycm9yLiBXZSBvbmx5IHdhbnQgdG8gcmV0cnkgbmVnb3RpYXRpb24gaWYgdGhlIHJlc3VsdCBmcm9tCgkgIGdzdF9wYWRfcHVzaCgpIHJldHVybmVkIE5PVF9ORUdPVElBVEVELgoKMjAxMy0wMS0yOCAyMDo0MToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTk0MjI5MyB0byAyZGUyMjFjCgoyMDEzLTAxLTI4IDEzOjA1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIGV4YW1wbGU6IGZpeCBGSVhNRSBpbiBleGFtcGxlCgkgIFVzZSBzZXRwcmlvcml0eSB0byByYWlzZSBwcmlvcml0eQoKMjAxMy0wMS0yNyAwNjoyMDo1MSAtMDgwMCAgU2ltb24gRmVsdG1hbiA8c2ZlbHRtYW5Ac3JjLmdub21lLm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZy1pOiBhZGQgYnVpbHQgZW51bXR5cGVzIGhlYWRlcnMgYW5kIHNvdXJjZXMgdG8gZ2lyIGNyZWF0aW9uCgkgIEFkZCBnc3RlbnVtdHlwZXMuaC9jIGZvciBpbmNsdXNpb24gd2l0aCBnLWlyLXNjYW5uZXIuIFRoaXMgZml4ZXMKCSAgcHJvYmxlbXMgd2hlcmUgaW50cm9zcGVjdGlvbiBiYXNlZCBiaW5kaW5ncyB0aGluayBHc3RTdGF0ZSBpcwoJICB0eXBlbGVzcyBkdWUgdG8gdGhlIEdUeXBlIG5vdCBiZWluZyBpbmNsdWRlZCBhcyBhbiBhbm5vdGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTg1CgoyMDEzLTAxLTI3IDA5OjE4OjAwICswNTMwICBCLlByYXRoaWJoYSA8cHJhdGhpYmhhYkBjZGFjLmluPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICB0ZXN0czogdXNlIGdfdGltZW91dF9hZGRfc2Vjb25kcyBpbiBwaXBlbGluZSBzdHJlc3MgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjEyCgoyMDEzLTAxLTI0IDE3OjUwOjMxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogUHV0IHRoZSByaWdodCBwYXRoIGZvciB0aGUgZ3N0dHRlc3RjbG9jayBpbmNsdWRlIGZpbGUKCjIwMTMtMDEtMjQgMTU6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogcmVuYW1lIHZhcmlhYmxlCgkgIFRoZSBmaWx0ZXIgdmFyaWFibGUgd2FzIHVzZWQgdHdpY2UgZm9yIGRpZmZlcmVudCB0aGluZ3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI0MzIKCjIwMTMtMDEtMTcgMjE6MzU6NDggLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdF9wYWRfY2hlY2tfcmVjb25maWd1cmU6IG9ubHkgcmVtb3ZlIGZsYWcgaWYgc2V0LgoJICB0aGUgY29kZSBpZmVkIGEgZGVidWcgc3RhdGVtZW50LCB0aGF0IGNhbid0IGJlIHJpZ2h0LiBhbnl3YXksIHRoZSB3YXkgaXQgaXMsCgkgIHdlIGRvbid0IHJlYWxseSBuZWVkIHRoYXQgYnJhbmNoLCBhcyB3ZSBzZXQgdGhlIGZsYWcgdG8gdW5zZXQgb25seSBpZiBzZXQKCSAgKGFuZCB0aGF0IGNhbid0IGZhaWwpIGhlbmNlIHRoZSBlbmQgcmVzdWx0IGlzIGFsd2F5cyB0byB1bnNldCB0aGUgZmxhZy4KCSAgU2lnbmVkLW9mZi1ieTogTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTk4NQoKMjAxMy0wMS0xNyAyMTo0MzoyNSAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzZXQgTkVFRF9SRUNPTkZJR1VSRSBmbGFnIGlmIG5lZ290aWF0ZSBmYWlscwoJICBXaGVuIG5lZ290aWF0aW9uIGZhaWxzLCBtYXJrIHRoZSBwYWQgYXMgbmVlZGluZyBhIHJlY29uZmlndXJlIGFnYWluIHNvCgkgIHRoYXQgaXQgZ2V0cyBwaWNrZWQgdXAgYWdhaW4gbmV4dCB0aW1lLgoJICBTaWduZWQtb2ZmLWJ5OiBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxOTg2CgoyMDEzLTAxLTE5IDEyOjUxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX2dldF9zdHJlYW1faWQoKSB1dGlsaXR5IGZ1bmN0aW9uCgkgIEFQSTogZ3N0X3BhZF9nZXRfc3RyZWFtX2lkKCkKCjIwMTMtMDEtMTggMTY6MDU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWlub3IgYWRkaXRpb24gdG8gZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjAxNQoKMjAxMy0wMS0xOCAxNjowMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiB1cGRhdGUgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UgZm9yIG5ldyBkZWJ1ZyBsZXZlbHMKCSAgVGhlcmUgYXJlIG1vcmUgZGVidWcgbGV2ZWxzIHRoZXNlIGRheXMsIG5vdCBvbmx5IDAtNS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjAxNQoKMjAxMy0wMS0xNyAwMDozODoxNCAtMDYwMCAgRGFuaWVsIETDrWF6IDx5b3NveUBkYW5pZWxkaWF6Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJICB0ZXN0czogZml4IEFCSSBjaGVjayBzdHJ1Y3Qgc2l6ZXMgZm9yIEFSTQoJICBhbmQgcmUtZW5hYmxlIEFCSSBjaGVjayBmb3IgQVJNLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxODI4CgoyMDEzLTAxLTE2IDE3OjI0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiBhZGQgYSBub3RlIHRvIHRoZSBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIGRvY3MgYWJvdXQgYnVmZmVyIGZsYWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODIxMTAKCjIwMTMtMDEtMTYgMTE6Mjk6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVzdHM6IGRpc2FibGUgQUJJIGNoZWNrcyBmb3IgYXJjaGl0ZWN0dXJlcyB3aGVyZSB0aGUgc3RydWN0IHNpemVzIGFyZSBub3QgdXAtdG8tZGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxODI4CgoyMDEzLTAxLTE1IDE1OjAzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmEwNjhjZSB0byBhOTQyMjkzCgoyMDEzLTAxLTE1IDEzOjQ3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIEdTVF8qXzFfMCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZXZlcnl3aGVyZQoJICBUaGUgXzFfMCBzdWZmaXhlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3ZlcnJpZGUgdGhlCgkgIG5vbi1zdWZmaXhlZCBvbmVzLCBzbyBpZiB3ZSdyZSBpbiBhbiBlbnZpcm9ubWVudCB0aGF0CgkgIHNldHMgdGhlIF8xXzAgc3VmZml4ZWQgb25lcywgc3VjaCBhcyBqaGJ1aWxkLCB3ZSBuZWVkCgkgIHRvIHNldCB0aG9zZSB0byBtYWtlIHN1cmUgb3VycyBhY3R1YWxseSBhbHdheXMgZ2V0CgkgIHVzZWQuCgoyMDEzLTAxLTE1IDEzOjQ3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0ZWQgc3RyaW5nCgoyMDEzLTAxLTE1IDA5OjQyOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogYWRkIGFsbG93LW5vbmUgYW5ub3RhdGlvbiBmb3IgZ3N0X3BpcGVsaW5lX25ldygpJ3MgbmFtZSBwcm9wZXJ0eQoKMjAxMy0wMS0xNCAyMDowMjo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBHc3RCYXNlUGFyc2UgZG9jcyBmaXhlcwoJICBFeHBvc2UgZG9jcyBmb3IgZ3N0X2Jhc2VfcGFyc2VfZmluaXNoX2ZyYW1lKCkuCgoyMDEzLTAxLTE0IDE3OjAxOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTE0IDE3OjAwOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xNCAxNzowMDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTMgMTQ6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB2ZnVuY3MgdG8gaW50ZXJjZXB0IHF1ZXJpZXMKCSAgVXNlZnVsIGZvciB2aWRlbyBwYXJzZXMgdGhhdCB3YW50IHRvIGF0dGFjaCBtYXR0ZXIgb3IKCSAgZmluZCBvdXQgaWYgZG93bnN0cmVhbSBzdXBwb3J0cyBjZXJ0YWluIG1ldGFzLgoJICBBUEk6IEdzdEJhc2VQYXJzZUNsYXNzOjpzcmNfcXVlcnkoKQoJICBBUEk6IEdzdEJhc2VQYXJzZUNsYXNzOjpzaW5rX3F1ZXJ5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ3NQoKMjAxMy0wMS0xMiAyMDo1NDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHVwIG5hbWUgb2YgZGVmYXVsdCBldmVudCB2ZnVuY3MKCjIwMTMtMDEtMTAgMTE6MzQ6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSAgY29udHJvbGJpbmRpbmc6IGhpZGUgb25lIHVudXNlZCB0eXBlZGVmCgkgIFRoaXMgaXMgbm90IHVzZWQgaW50ZXJuYWxseS4KCjIwMTMtMDEtMTAgMTE6MzM6NDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jczogaW1wcm92ZSBhcGkgZG9jcyBmb3IgY29udHJvbHNvdXJjZSBhbmQgLWJpbmRpbmcKCjIwMTMtMDEtMDUgMTY6MzA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIGdob3N0cGFkIHVuaXQgdGVzdAoJICBUaGUgY3JlYXRlZCBwYWQgaXMgbmV2ZXIgdXNlZCBhbmQgb3ZlcndyaXR0ZW4gd2l0aAoJICBhbm90aGVyIG5ld2x5LWNyZWF0ZWQgcGFkIGEgZmV3IGxpbmVzIGJlbG93LgoKMjAxMy0wMS0wNCAxMjoyNzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogbWlub3Igc3lzdGVtc2Nsb2NrIGRvYyBmaXgKCjIwMTMtMDEtMDMgMTA6MTY6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW5pdGlhbGl6ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDEyLTEyLTMwIDIzOjM1OjQ4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiByZXR1cm4gZ3NzaXplIGZyb20gZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fKiBmdW5jdGlvbnMKCSAgQXMgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIC0xIHdoZW4gdGhlIG1hdGNoIGlzIG5vdCBmb3VuZAoKMjAxMy0wMS0wMSAxMDoyMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDaGVjayBpZiBidWZmZXJzIGFyZSB0b28gbGF0ZSBiZWZvcmUgY2FsbGluZyBwcmVwYXJlL3ByZXBhcmVfbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwOTM2CgoyMDEyLTEyLTMwIDIzOjQ4OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcGxhY2UgZGVwcmVjYXRlZCBBTV9DT05GSUdfSEVBREVSIHdpdGggQUNfQ09ORklHX0hFQURFUlMKCSAgQU1fQ09ORklHX0hFQURFUiBoYXMgYmVlbiByZW1vdmVkIGluIHRoZSBqdXN0LXJlbGVhc2VkIGF1dG9tYWtlIDEuMTM6CgkgIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYXV0b21ha2UvMjAxMi0xMi9tc2cwMDAzOC5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA4ODEKCjIwMTItMTItMjIgMTY6NTA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGNhcHMsIHN0cnVjdHVyZSwgIHRhZ2xpc3Q6IG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgQXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBHVmFsdWUgY29weWluZyBieSBtYWtpbmcgdXNlIG9mCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfdGFrZV92YWx1ZSgpIHdoZXJlIHBvc3NpYmxlLgoKMjAxMi0xMi0yMiAxNjoyOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogc29tZSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIEF2b2lkIHVubmVjZXNzYXJ5IHZhbHVlIGNvcHlpbmcsIGFuZCB1bm5lY2Vzc2FyeSBpbml0L3Vuc2V0CgkgIGN5Y2xlcyB3aGljaCBhbGwgZ28gdGhyb3VnaCB0aGUgdmFsdWUgdGFibGUuIFRoZXJlJ3MgYSBidW5jaAoJICBvZiBwbGFjZXMgd2hlcmUgd2UgY29weSBhIHZhbHVlIGFuZCB0aGVuIHVuc2V0IGl0IGluIHRoZSBuZXh0CgkgIGxpbmUsIGluc3RlYWQgb2YganVzdCB0YWtpbmcgb3ZlciB0aGUgc291cmNlIHZhbHVlLgoKMjAxMi0xMi0yMiAxNjo1Mzo0NyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBmaXggbG9jYXRpb24gb2YgcmVwb3NpdG9yeSB3aXRoIHNzaAoKMjAxMi0xMi0yMSAxNjozNjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJICBiaW46IGFkZCBmbGFnIHRvIGRpc2FibGUgcmVzeW5jIHN0YXRlIGNoYW5nZQoJICBBZGQgYSBHU1RfQklOX0ZMQUdfTk9fUkVTWU5DIHRoYXQgZGlzYWJsZXMgYSByZXN5bmMgd2hlbiBhbiBlbGVtZW50IGlzIGFkZGVkLAoJICByZW1vdmVkIG9yIGxpbmtlZCBpbiB0aGUgYmluLiBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBjb21wbGV4IGJpbnMgdGhhdAoJICBkeW5hbWljYWxseSBhZGQgZWxlbWVudHMgdG8gdGhlbXNlbHZlcyBhbmQgd2FudCB0byBtYW5hZ2UgdGhlIHN0YXRlIG9mIHRob3NlCgkgIGVsZW1lbnRzIHdpdGhvdXQgaW50ZXJmZXJlbmNlIGZyb20gcmVzeW5jcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA0MjAKCjIwMTItMTItMjEgMTA6MDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzeW5jaHJvbml6YXRpb24gZG9jdW1lbnQgYSBsaXR0bGUKCjIwMTItMTItMjAgMTY6NDA6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IGFkZCBPVEhFUiBjbG9jayB0eXBlCgkgIEFkZCBhbiBPVEhFUiBjbG9jayB0eXBlIHNvIHRoYXQgc3ViY2xhc3NlcyBhcmUgYWJsZSB0byBtYXJrIHRoZW1zZWx2ZXMgYXMKCSAgdXNpbmcgc29tZSBvdGhlciBjbG9jayBzb3VyY2UgdGhhbiB0aGUgcmVhbHRpbWUgb3IgbW9ub3RvbmljIGNsb2NrLgoKMjAxMi0xMi0yMCAxMzozMTowMiArMDEwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rb0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjb3JyZWN0IG92ZXJydW4gaGFuZGxpbmcKCSAgVGhlIGNvbnRyb2wgb2Ygd2hldGVoZXIgYSBTaW5nbGVRdWV1ZSBpcyBmdWxsIGlzIG5vdCBjb3JyZWN0LgoJICBSZXdyb3RlIHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKCkgc28gaXQgY2hlY2tzIHRoZSBjb3JyZWN0IHZhcmlhYmxlcwoJICB3aGVuIGNoZWNraW5nIGlmIHRoZSBxdWV1ZSBoYXMgcmVhY2hlZCB0aGUgaGFyZCBsaW1pdHMsIGFuZCB0bwoJICBpbmNyZWFzZSB0aGUgbWF4IGJ1ZmZlciBsaW1pdCBvbmNlIGZvciBlYWNoIGNhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NTcKCjIwMTItMTItMjAgMTE6NTk6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGltcGxlbWVudCBidWZmZXJpbmcgcXVlcnkgZm9yIGFsbCBtb2RlcwoJICBBbHNvIGltcGxlbWVudCB0aGUgYnVmZmVyaW5nIHF1ZXJ5IGZvciBTVFJFQU0gbW9kZS4KCjIwMTItMTItMjAgMTE6MzA6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yIGJ1ZmZlcmluZyBwZXJjZW50IGFuZCBzdGF0cwoJICBNYWtlIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IGJ1ZmZlcmluZyBwZXJjZW50IGFuZCB0aGUgc3RhdHMuIFdlIHdpbGwgdXNlCgkgIHRoaXMgaW4gdGhlIHF1ZXJ5IGxhdGVyLgoKMjAxMi0xMi0xMyAxMzo0NzoyOSArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBpbnZhbGlkIG91dHB1dCB0aW1lc3RhbXBzIGluIHNvbWUgY2FzZXMKCjIwMTItMTItMTQgMTU6MjI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIE5FV1NFR01FTlQgLT4gU0VHTUVOVAoKMjAxMi0xMi0xNCAxNDowMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcwoJICBVcGRhdGUgYXJncy9zaWduYWxzIGV0Yy4KCjIwMTItMTItMTQgMTE6MDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgYWRkIGRlYnVnIGNhdGVnb3J5CgkgIEFkZGluZyBhIGRlYnVnIGNhdGVnb3J5IGlzIG5pY2VyIHRoYW4gbG9nZ2luZyB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeQoKMjAxMi0xMi0xNCAxMTowODo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGltcHJvdmUgZGVidWcKCjIwMTItMTItMTMgMTQ6NDg6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2FsbCBfc3RvcCB3aGVuIHN0YXJ0IGZhaWxlZAoJICBXaGVuIHdlIGZhaWxlZCB0byBjb21wbGV0ZSB0aGUgc3RhcnQsIGNhbGwgc3RvcCBhZ2Fpbi4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgYWxsCgkgIHN1Y2Nlc3NmdWxsIGNhbGxzIHRvIF9zdGFydCBhcmUgcGFpcmVkIHdpdGggYSBfc3RvcC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg0NQoKMjAxMi0xMi0xMiAxNjo0NDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2Jhc2UuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSAgbGliczogVXNlIGZvby9mb28uaCBhcyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgY29uc2lzdGVudGx5IGV2ZXJ5d2hlcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODc4NQoKMjAxMi0xMi0xMSAxNjo0NjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGFzcyBEVFMgYW5kIFBUUyB0byBoYW5kbGVfYnVmZmVyCgkgIFRoaXMgbWFrZXMgaXQgaGFuZGxlIHRoZSB0aW1lc3RhbXBzIGNvcnJlY3RseSBhbmQgYXZvaWRzIHVzaW5nIGEgd3JvbmcgdGltZXN0YW1wCgkgIGZvciB0aGUgb3V0cHV0LgoKMjAxMi0xMi0xMSAxNjo0NjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wcm92ZSBkZWJ1ZwoJICBBZGQgcHRzIGFuZCBkdHMgaW4gZGVidWcgbG9nCgoyMDEyLTExLTAzIDE2OjU5OjM5ICswMDAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVwb3J0IGV4ZWN1dGlvbiB0aW1lIGluIEdTVF9USU1FX0ZPUk1BVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIzCgoyMDEyLTEyLTEwIDExOjU1OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHByb3RlY3QgYWdhaW5zdCBOVUxMIGZpbGVuYW1lIGluIGRlYnVnCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5OTQ4CgoyMDEyLTEyLTA2IDA5OjQ4OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2xhcmlmeSBkb2NzCgoyMDEyLTEyLTA1IDE0OjU2OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvY3MKCjIwMTItMTItMDUgMTQ6MjQ6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IDAuMTAgZG9jcyB0byBtYWtlIG1vcmUgc2Vuc2UgaW4gMS4wCgoyMDEyLTEyLTA1IDE0OjAzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBkb2NzIGZvciAxLjAKCSAgQWRkIHBhcmVudCB0byBjaGFpbiBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHVzZSBpdC4KCjIwMTItMTEtMzAgMTA6NDE6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgcmVzZXQtdGltZSB0eXBlIHN0cmluZwoKMjAxMi0xMS0zMCAxMDo0MTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgc29tZSBjYXN0cwoKMjAxMi0xMS0yOCAxODowODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBsaW5rIHRvIHB5dGhvbiBwb3J0aW5nIGRvYyBhbmQgYXBwIGRldiBtYW51YWwgdG8gcG9ydGluZy10by0xLjAudHh0CgoyMDEyLTExLTI4IDE3OjM2OjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCSAgSW4gb3JkZXIgZm9yIDEueCBhbmQgMS4oeCsxKSB2ZXJzaW9ucyB0byBub3QgaW52YWRlIG9uIGVhY2ggb3RoZXIKCSAgd2UgbmVlZCB0byBoYXZlIGRpZmZlcmVudCBsaWIgdmVyc2lvbnMuCgkgIFNvIHdlIG5lZWQgYSBjb25zaXN0ZW50IGFuZCBwcmVkaWN0YWJsZSBzY2hlbWU6CgkgIGxpYnJhcnkgdmVyc2lvbiBudW1iZXIgPSBNSU5PUiAqIDEwMCArIE1JQ1JPCgkgIEV4OgoJICAxLjAuMCA9PiAwIChkdWgpCgkgIDEuMC4zID0+IDMKCSAgMS4xLjAgPT4gMTAwCgkgIDEuMS4xID0+IDEwMQoJICAxLjIuMCA9PiAxMjAKCSAgMS4xMC41ID0+IDEwMDUKCSAgLi4uLgoKMjAxMi0xMS0yNiAxODoxNjo1MiAtMDUwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LWVkaXRpbmctc2VydmljZXMgdG8gUEtHX0NPTkZJR19QQVRICgoyMDEyLTExLTI2IDAwOjUxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogY2xlYW4gdXAgc2VjdGlvbnMgZmlsZSBmb3IgcGFkIHByb2JlIGRlZmluZXMgdGhhdCBtb3ZlZCBpbnRvIGVudW0KCjIwMTItMTEtMjYgMDA6MjA6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0OiBkb24ndCByZXF1aXJlIGd0aHJlYWQtMi4wCgkgIFdlIGRvbid0IG5lZWQgdG8gbGluayB0byBndGhyZWFkLTIuMCBhbnkgbG9uZ2VyLCBzaW5jZSBhbGwKCSAgdGhlIG5vcm1hbCB0aHJlYWQtcmVsYXRlZCBzdHVmZiBpcyBpbiBHTGliIHByb3BlciwgYW5kIHdlCgkgIGRvbid0IHVzZSBnX3RocmVhZF9pbml0KCkgYW55IG1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODkwNDMKCjIwMTItMTEtMjUgMjM6NDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdHJlYW1lci0xLjAucGM6IG1vdmUgZ21vZHVsZS1uby1leHBvcnQtMi4wIGRlcGVuZGVuY3kgdG8gUmVxdWlyZXMucHJpdmF0ZQoJICBVc2VycyBvZiBHU3RyZWFtZXIgYXJlIG5vdCBnZW5lcmFsbHkgZXhwZWN0ZWQgdG8gdXNlIHRoZSBHTW9kdWxlIEFQSQoJICBkaXJlY3RseS4gc28gZG9uJ3QgZm9yY2UgdGhlbSBhbGwgdG8gbGluayBhZ2FpbnN0IGl0LgoJICBXaGlsZSB3ZSdyZSBhdCBpdCwgbm8gbmVlZCB0byBkZWZpbmUgdGhpcyB2aWEgY29uZmlndXJlLmFjIHJlYWxseSwganVzdAoJICBwdXQgdGhlIGRlcGVuZGVuY2llcyBkaXJlY3RseSBpbnRvIHRoZSAucGMuaW4gZmlsZS4KCjIwMTItMTEtMjUgMjM6MjY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiByZW1vdmUgYWxsIG1lbnRpb24gb2YgZ190aHJlYWRfaW5pdCgpCgkgIEl0J3MgYmVlbiBkZXByZWNhdGVkIHNpbmNlIEdMaWIgMi4zMiBhbmQgaXNuJ3QgbmVlZGVkIGFueQoJICBsb25nZXIuCgoyMDEyLTExLTI1IDE4OjExOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiByZWR1Y2UgZGVidWcgbG9nIHNwYW0gYSBiaXQKCSAgTG9nIGxvY2tpbmcvdW5sb2NraW5nIHdpdGggVFJBQ0UgZGVidWcgbGV2ZWwuCgoyMDEyLTExLTIzIDIxOjA5OjQ1ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGFubm90YXRpb24gZm9yIGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fc3RhcnQKCjIwMTItMTEtMjMgMTM6MzY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZG9jdW1lbnQgbW9yZSBwYWQgcHJvYmUgdmFsdWVzCgoyMDEyLTExLTIzIDEzOjM0OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIHRlc3RjbG9jazogcmVtb3ZlIHVubmVjZXNzYXJ5IGluY2x1ZGUKCjIwMTItMTEtMjMgMTM6MzI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgdGVzdHM6IGZpeCBjbG9jayB1bml0IHRlc3QgYnVpbGQgZmFpbHVyZSBhZnRlciBoZWFkZXIgY2hhbmdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4Nzg1CgoyMDEyLTExLTIzIDEyOjQ3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGRvbid0IHVzZSBwYXJlbnRoZXNpcyBmb3IgT1JlZCBwYWQgcHJvYmUgZmxhZyBlbnVtcwoJICBnbGliLW1rZW51bSBkb2Vzbid0IGxpa2UgdGhlbSBmb3Igc29tZSByZWFzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MDQKCjIwMTItMTEtMjMgMTA6NTg6MjUgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogUHV0IGFsbCBvZiB0aGUgcHJvYmUgdHlwZXMgaW4gdGhlIGVudW0gc28gdGhleSB3b3JrIHdpdGggYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgwNAoKMjAxMi0xMS0yMCAyMzoxMzozMyAtMDgwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2UuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Lmg6CgkgIGxpYnM6IEFkZCBtaXNzaW5nIHNpbmdsZSBpbmNsdWRlIGhlYWRlcnMgYW5kIHVzZSB0aGVtIGluIEdJUnMKCjIwMTItMTEtMjAgMTY6MzQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0czogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgdGhyZWFkIEFQSQoKMjAxMi0xMS0yMCAxNjoxOTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBzb21lIGRlYnVnCgoyMDEyLTExLTIwIDE2OjE5OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVzZXQgU1RBUlRfVElNRSB3aGVuIG5lZWRlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1ODcwCgoyMDEyLTExLTIwIDE1OjM3OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogTWFrZSBHLUkgaGFwcHkgYnkgaGlkaW5nIGdzdF9nX3RocmVhZF9nZXRfdHlwZSgpCgoyMDEyLTExLTIwIDE1OjA3OjM3ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgUmVtb3ZlIHhmaWcgZnJvbSBzcGVjIGZpbGUKCjIwMTItMTEtMjAgMTU6MDY6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBVc2UgdGhlIEdMaWIgR1R5cGUgZm9yIEdUaHJlYWQgaWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYiAyLjM1LjMgb3IgbmV3ZXIKCjIwMTItMTEtMjAgMTI6NTY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvbid0IHNldCB0aGUgbG9jYWxlIGluIGdzdF9pbml0KCkKCSAgVGhlIGZ1bmN0aW9uIGluaXRfcHJlKCkgaW4gZ3N0cmVhbWVyL2dzdC9nc3QuYyBjYWxscyBzZXRsb2NhbGUoTENfQUxMLCAiIiksCgkgIHdoaWNoIHNldHMgdGhlIGxvY2FsZSB0byB0aGUgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgZW52aXJvbm1lbnQuICBUaGlzIGlzCgkgIHdyb25nIGZvciB0d28gcmVhc29uczoKCSAgMS4gSXQgaXMgYWJzb2x1dGVseSBub3QgdGhlIHRhc2sgb2YgYSBsaWJyYXJ5IHRvIGRlY2lkZSBvbiB0aGUgY29ycmVjdCBsb2NhbGUKCSAgZm9yIGEgcHJvZ3JhbS4gIFNvbWUgcHJvZ3JhbXMgY2hhbmdlIHRoZSBsb2NhbGUgZm9yIHZhcmlvdXMgKGdvb2Qgb3IgYmFkKQoJICByZWFzb25zLCBhbmQgbGlicmFyaWVzIHNob3VsZCByZXNwZWN0IHRoYXQuICBQcm9ncmFtcyB3aGVyZSBHU3RyZWFtZXIncwoJICBvdmVyd3JpdGluZyBvZiB0aGUgbG9jYWxlIGNhdXNlcyBidWdzIGluY2x1ZGUgRW1hY3MgWzEsIDJdLCBTdWJsaW1lIFRleHQgWzNdLAoJICBhbmQgTHVhIFs0XS4KCSAgWzFdIGh0dHA6Ly9kZWJidWdzLmdudS5vcmcvY2dpL2J1Z3JlcG9ydC5jZ2k/YnVnPTEyMzkyCgkgIFsyXSBodHRwOi8vYnVnemlsbGEubm92ZWxsLmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NDI2CgkgIFszXSBodHRwOi8vd3d3LnN1YmxpbWV0ZXh0LmNvbS9mb3J1bS92aWV3dG9waWMucGhwP2Y9MyZ0PTg1NDMKCSAgWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXZvdWsvbGdpL2lzc3Vlcy8xOQoJICBOb3RlIHRoYXQgc2V0dGluZyB0aGUgbG9jYWxlIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3IgcHJvZ3JhbXMgdGhhdCBhcmUgbm90IGV2ZW4KCSAgbGlua2VkIGFnYWluc3QgR1N0cmVhbWVyLiAgSW4gdGhlIGNhc2Ugb2YgRW1hY3MsIGZvciBleGFtcGxlLCBHU3RyZWFtZXIgc2VlbXMKCSAgdG8gYmUgaW5pdGlhbGl6ZWQgdGhyb3VnaCBHVEsgdmlhIGxpYmNhbmJlcnJhLgoJICAyLiBTZXR0aW5nIHRoZSBsb2NhbGUgaXMgbm90IHRocmVhZC1zYWZlLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBub3QgYmUgZG9uZSBpbiBhCgkgIGxpYnJhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU2NTAKCjIwMTItMTEtMTYgMTk6NDE6NDggKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmb3J3YXJkIHN0cmVhbS1zdGFydCBldmVudCBpbiBwdXNoIG1vZGUKCjIwMTItMTEtMTkgMTM6Mzg6MzAgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL21hbnVhbC9zdGF0ZS1kaWFncmFtLmZpZzoKCSogZG9jcy9yYW5kb20vd3RheS9wbGF5ZXIuZmlnOgoJICBSZW1vdmUgdHdvIGxhc3QgLmZpZyBmaWxlcyBmcm9tIGJ1aWxkLCB0aGV5IGFyZSBub3cgcmVwbGFjZWQgd2l0aCAuc3ZnIGZpbGVzLiBUaGF0IHNhaWQgSSBkb24ndCB0aGluayBlaXRoZXIgLmZpZyBmaWxlIHdhcyBzdGlsbCBiZWluZyB1c2VkIGFueXdoZXJlLiBXaXRoIHRoaXMgY2hhbmdlIGFuZCB0aGUgb25lIGluIGNvbW1vbiBHU3RyZWFtZXIgbm8gbG9uZ2VyIGRlcGVuZHMgb24geGZpZy4KCjIwMTItMTEtMTkgMTM6MTY6NDggKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDEyLTExLTE5IDExOjIzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNDk3YzRmIHRvIGE3MmZhZWEKCjIwMTItMTEtMTkgMTE6NDU6MDcgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGRvY3MvbWFudWFsL3N0YXRlLWRpYWdyYW0uc3ZnOgoJKiBkb2NzL3JhbmRvbS93dGF5L3BsYXllci5zdmc6CgkgIEFkZCBTVkcgdmVyc2lvbnMgb2YgLmZpZyBmaWxlCgoyMDEyLTExLTE3IDEwOjI3OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogZG9uJ3QgY29tcGlsZSB0ZXN0cnRwb29sIGV4YW1wbGUgaWYgcHRocmVhZHMgYXJlIG5vdCBhdmFpbGFibGUgbGlrZSBvbiB3aW4zMgoJICBCYXNlZCBvbiBwYXRjaCBieTogaXRhbGFyYWJAZ21haWwuY29tCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg1MTEKCjIwMTItMTEtMTMgMjE6MTM6MDAgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjbG9jayBsZWFrIGluIHdhaXRfcnVubmluZ190aW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg0NzcKCjIwMTItMTEtMTcgMDA6MTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGdzdGNvbXBhdC5oOiBtb3ZlIG1vcmUgZGVwcmVjYXRlZCBBUEkgaW50byB0aGUgZGVwcmVjYXRlZCBzZWN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1OTgKCjIwMTItMTEtMTQgMTI6MjA6NTQgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBkb2N1bWVudGF0aW9uIHVwZGF0ZQoJICBHU3RhdGljUmVjTXV0ZXggdXNhZ2UgaGFzIGJlZW4gcmVwbGFjZWQgYnkgR1JlY011dGV4LCByZWZsZWN0IHRoaXMKCSAgY2hhbmdlIGluIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAxMi0xMS0xNCAxMDo1NToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHBvcnQgdG8gbmV3IEdMaWIgdGhyZWFkaW5nIEFQSQoKMjAxMi0xMS0xMyAyMzoxMTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogZ3N0X2FkYXB0ZXJfcHJldl90aW1lc3RhbXAgLT4gZ3N0X2FkYXB0ZXJfcHJldl9wdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTU5OAoKMjAxMi0xMS0xMyAyMjo0MjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0Y2xvY2s6IG1pbm9yIGNsZWFudXBzLCBhZGQgc2luY2UgbWFya2VycyBmb3IgZ3RrLWRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTA4LTMwIDAxOjU4OjQxICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiBhbGxvdyBHc3RUZXN0Q2xvY2sgdG8gaGFuZGxlIGNsb2NrIG5vdGlmaWNhdGlvbnMKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wZWVrX2lkX2NvdW50KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19oYXNfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3BlZWtfbmV4dF9wZW5kaW5nX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9uZXh0X3BlbmRpbmdfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX3BlbmRpbmdfaWRfY291bnQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3Byb2Nlc3NfbmV4dF9jbG9ja19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfZ2V0X25leHRfZW50cnlfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMTEtMTMgMjE6Mjk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBkZXBlbmRlbmN5IG9uIGdzdGNoZWNrIGhlYWRlciBmaWxlcyBmb3IgZXhwb3J0cy5zeW0KCSAgU28gZXhwb3J0cy5zeW0gZ2V0cyB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIG91ciBuZXcgc3ltYm9scyBnZXQKCSAgZXhwb3J0ZWQgY29ycmVjdGx5LCB3aGljaCBtYWtlcyBnLWlyLXNjYW5uZXIgbXVjaCBoYXBwaWVyIGluCgkgIHRlcm1zIG9mIGxpbmtpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMDgtMjkgMTY6MTE6MTAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogYWRkIEdzdFRlc3RDbG9jayBhcyBhIGRldGVybWluaXN0aWMgY2xvY2sgZm9yIHRlc3RpbmcKCSAgQVBJOiBHc3RUZXN0Q2xvY2sKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19uZXcoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX25ld193aXRoX3N0YXJ0X3RpbWUoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3NldF90aW1lKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19hZHZhbmNlX3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTExLTA5IDIxOjEwOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTExLTA4IDIwOjIyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IHJlLWluZGVudCBoZWFkZXIgZmlsZQoJICBUYWJzIHRvIHNwYWNlcy4KCjIwMTItMTEtMTIgMTE6NDA6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogQVBJOiBBZGQgYm94ZWQgdHlwZSBmb3IgR1RocmVhZAoKMjAxMi0xMS0xMiAxMDozMDowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IGluZGVudGlvbiBmb3IgcHJpbnRpbmcgdHlwZWZpbmRlciBmZWF0dXJlcwoKMjAxMi0xMS0xMiAwMTo0MDo0MiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsZXIgd2FybmluZyB3aGVuIGRlYnVnZ2luZyBkaXNhYmxlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTMwCgoyMDEyLTExLTEwIDA5OjUwOjQ5ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB1bnVzZWQgbGFiZWwuIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEyLTEwLTI5IDEyOjA4OjMxICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGRvbid0IGZhaWwgaW4gX3NpbmtfZXZlbnQgZm9yIHN0aWNreSBldmVudHMKCSAgSW1wbGVtZW50IHRoZSBzYW1lIGJlaGF2aW91ciBhcyBnc3RfcGFkX3B1c2hfZXZlbnQgd2hlbiBwdXNoaW5nIHN0aWNreSBldmVudHMKCSAgZmFpbHMsIHRoYXQgaXMgZG9uJ3QgZmFpbCBpbW1lZGlhdGVseSBidXQgZmFpbCB3aGVuIGRhdGEgZmxvdyByZXN1bWVzIGFuZCB1cHN0cmVhbQoJICBjYW4gYWdncmVnYXRlIHByb3Blcmx5LgoJICBUaGlzIGZpeGVzIHNlZ21lbnQgc2Vla3Mgd2l0aCBkZWNvZGViaW4gYW5kIHVubGlua2VkIGF1ZGlvIG9yIHZpZGVvIGJyYW5jaGVzLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg5OQoKMjAxMi0xMS0wOSAxNjo1MDo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHNpbXBsZSByYXRlIGNvbnRyb2wKCSAgQWRkIGEgbWF4LWJpdHJhdGUgcHJvcGVydHkgdGhhdCB3aWxsIHNsaWdodGx5IGRlbGF5IHJlbmRlcmluZyBvZiBidWZmZXJzIGlmIGl0CgkgIHdvdWxkIGV4Y2VlZCB0aGUgbWF4aW11bSBkZWZpbmVkIGJpdHJhdGUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gZG8KCSAgcmF0ZSBjb250cm9sIG9uIG5ldHdvcmsgc2lua3MsIGZvciBleGFtcGxlLgoJICBBUEk6IEdzdEJhc2VTaW5rOjptYXgtYml0cmF0ZQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X21heF9iaXRyYXRlKCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9tYXhfYml0cmF0ZSgpCgoyMDEyLTExLTA4IDE1OjMzOjAxICsxMTAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGxvY2sgYmVmb3JlIHVubG9jayBpbiBfZ2V0X2NvbmZpZwoJICBGaXhlcyBkZWFkbG9jayBvbiBXaW5kb3dzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4OTYKCjIwMTItMTEtMDcgMTg6MTU6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVwZGF0ZSBjb3VydGVzeSBvZiBhdXRvdXBkYXRlCgoyMDEyLTExLTA3IDE3OjU5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIEFHX0dTVF9QTFVHSU5fRE9DUyBweXRob24gY2hlY2tzCgoyMDEyLTExLTA2IDE4OjI5OjI4ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9jdW1lbnQgR1NUX0RFQlVHX0ZJTEUKCjIwMTItMTEtMDYgMTc6MDM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGFsaWdubWVudCBvZiByYW5rLCBldGMuCgoyMDEyLTExLTA2IDE2OjU4OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBlbGVtZW50czogZml4IGxlYWRpbmcgc3BhY2UgaW4gcGx1Z2luIGRlc2NyaXB0aW9uIHN0cmluZwoKMjAxMi0xMS0wMyAyMDozODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICBGaXggRlNGIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMAoKMjAxMi0xMS0wMyAyMDo0NDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENPUFlJTkc6CgkqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkqIGdzdC9nZXR0ZXh0Lmg6CgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9pbml0LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWRpc2FibGVkLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmg6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2suc2NtOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEZpeCBGU0YgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIwCgoyMDEyLTEwLTMxIDE5OjMzOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkICJmbHVzaC1vbi1lb3MiIHByb3BlcnR5CgkgIEluIGZsdXNoLW9uLWVvcz10cnVlIG1vZGUgYW55IGRhdGEgcmVtYWluaW5nIGluIHRoZSBxdWV1ZSBpcwoJICBkaXNjYXJkZWQgd2hlbiBhbiBFT1MgZXZlbnQgaXMgcmVjZWl2ZWQsIGFuZCB0aGUgRU9TIHBhc3NlZAoJICBkb3duc3RyZWFtIGFzIHNvb24gYXMgcG9zc2libGUgKGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgYWxsCgkgIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIHRvIGdldCBwcm9jZXNzZWQgYnkgZG93bnN0cmVhbSBmaXJzdCkuCgkgIE1heSBvciBtYXkgbm90IGJlIHVzZWZ1bCBpbiBjYXB0dXJlL2VuY29kaW5nIHNjZW5hcmlvcy4KCjIwMTItMTAtMzEgMTg6MzI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBweXRob24gZGV0ZWN0aW9uCgkgIEZpeGVzIGRvY3MgYnVpbGQuCgoyMDEyLTEwLTMxIDE3OjM3OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbGV0IEFHX0dTVF9QTFVHSU5fRE9DUyBjaGVjayBmb3IgcHl0aG9uCgkgIEFuZCB1cGRhdGUgY29tbW9uIGZvciBtb3ZlIGZyb20gQVNfUEFUSF9QWVRIT04gdG8gQU1fUEFUSF9QWVRIT04sCgkgIHdoaWNoIGFzIGEgc2lkZS1lZmZlY3Qgc2hvdWxkIHBpY2sgdXAgbmV3ZXIgcHl0aG9uIHZlcnNpb25zIGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5MDMKCjIwMTItMTAtMzAgMTA6MDQ6NDQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IENsYXJpZnkgZG9jcyBhYm91dCB0aGUgYnVmZmVyIGhhbmRsZXIgY2FsbGJhY2suCgkgIENsYXJpZnkgdGhhdCB0aGUgY2FsbGJhY2sgb3ducyBhIHJlZiBvbiBhIHBhc3NlZCBidWZmZXIuCgoyMDEyLTEwLTMwIDEwOjA0OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIEVPUyBzdGF0dXMgdG8gZGVidWcgb3V0cHV0IGFib3V0IGZpbGxlZC91bmZpbGxlZAoKMjAxMi0xMC0yMiAwMDozMTowOSArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjaGVjazogQWRkIGEgc2ltcGxlIHRlc3QgZm9yIHRoZSBDb2xsZWN0UGFkcyBidWZmZXIgY29sbGVjdCBjYWxsYmFjawoKMjAxMi0xMC0yOSAxMzoyNjoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnLWk6IGZpeCAiY2FuJ3QgcmVzb2x2ZSBsaWJyYXJpZXMgdG8gc2hhcmVkIGxpYnJhcmllczogZ3N0Y2hlY2stMS4wIiBidWlsZCBlcnJvcgoJICBSZXZlcnQgLS1saWJyYXJ5PWxpYmZvby0xLjAubGEgLT4gLS1saWJyYXJ5PWZvby0xLjAgY2hhbmdlIG1hZGUKCSAgaW4gcHJldmlvdXMgY29tbWl0LiBUdXJucyBvdXQgdGhhdCB3YXMgd3JvbmcsIGRlc3BpdGUgd2hhdCB0aGUKCSAgbWFuIHBhZ2Ugc2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMzcxMAoKMjAxMi0xMC0yOSAxMTozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvd25ncmFkZSAnY3JlYXRpbmcgcmFuZG9tIHN0cmVhbS1pZCcgZGVidWcgbG9nIG1lc3NhZ2UKCSAgTm8gbmVlZCBmb3IgaXQgdG8gYmUgYSB3YXJuaW5nLgoKMjAxMi0wNi0xMyAxMzowMjo0OCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgZXhjZXNzaXZlbHkgaGlnaCBtZW1vcnkgdXNhZ2Ugd2l0aCBsb25nIHN0cmVhbXMKCSAgTGFyZ2Ugc3RyZWFtcyB3b3VsZCBpbmRleCBvbmUgZnJhbWUgZXZlcnkgc2Vjb25kLCB3aGljaCBjYW4gZ2V0IHF1aXRlCgkgIGxhcmdlIHdpdGggbXVsdGktaG91ciBzdHJlYW1zLCBzbyBhZGQgYW4gYWRkaXRpb25hbCBieXRlLWJhc2VkCgkgIG1pbmltdW0gZGlzdGFuY2UgYXMgd2VsbCwgd2hpY2ggd2lsbCBraWNrIGluIGZvciBsb25nIHN0cmVhbXMKCSAgYW5kIG1ha2Ugc3VyZSB3ZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBhIGNvdXBsZSBvZiB0aG91c2FuZCBpbmRleAoJICBlbnRyaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MDUzCgoyMDEyLTEwLTI4IDE3OjE3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZy1pOiBhdm9pZCBtdWx0aXBsZSBsaWJyYXJpZXMgaW4gdGhlIHNoYXJlZC1saWJyYXJ5IHRhZwoJICBVc2luZyBtdWx0aXBsZSBsaWJyYXJpZXMgY2F1c2VzIHByb2JsZW1zIGZvciB0aGUgQyMgYmluZGluZ3MgYW5kCgkgIHdpbGwgZm9yIHNpbWlsaWFyIGxhbmd1YWdlcyBzdWNoIGFzIEphdmEgd2hlbiB0aGVyZSBhcmUgYmluZGluZ3MKCSAgZm9yIHRoZW0uCgkgIEFsc28gY2hhbmdlIC0tbGlicmFyeT1saWJnc3Rmb28tWC5sYSB0byAtLWxpYnJhcnk9Z3N0Zm9vLVggYXMKCSAgdGhlIG1hbiBwYWdlIHN1Z2dlc3RzIGl0IHNob3VsZCBiZSBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MzE1CgoyMDEyLTEwLTI4IDE1OjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTgzMgoKMjAxMi0xMC0yNyAxNDo0MDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsbG93IHNldHRpbmcgb2YgR1NUX0RFQlVHIGxldmVscyBieSBuYW1lCgkgIGUuZy4gR1NUX0RFQlVHPSo6SU5GTywqc3JjOkxPRwoKMjAxMi0wNi0yOSAxMjozODo1MiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IG1ha2UgdXMgb2YgdGhlIG5ldyBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZyBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTA2LTI5IDEyOjA1OjM2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogYWRkIGEgZnVuY3Rpb24gdG8gc2V0IGRlYnVnIHRocmVzaG9sZCBmcm9tIGEgR1NUX0RFQlVHLXN0eWxlIHN0cmluZwoJICBVc2UgdGhlIHNhbWUgZm9ybWF0IGFzIHdpdGggdGhlIEdTVF9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQVBJOiBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNTIKCjIwMTItMTAtMjUgMTU6Mjc6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IEZpeCB1bml0IHRlc3QKCjIwMTItMTAtMjIgMTA6MTM6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWUvcXVldWVhcnJheTogTWFrZSBwdWJsaWMgQVBJIGFnYWluCgkgIFRoZXNlIGFyZSBhY3R1YWxseSB1c2VkIG91dHNpZGUgb2YgY29yZWVsZW1lbnRzIG5vd2FkYXlzLgoJICBBbHNvIGhpZGUgbG90cyBvZiBpbnRlcm5hbHMgYW5kIGFkZCBwYWRkaW5nIGFuZCBkb2N1bWVudGF0aW9uLgoKMjAxMi0xMC0yNSAxMjoxMDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBmZWF0dXJlIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjAuMiA9PT0KCjIwMTItMTAtMjUgMDA6MDQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjIKCjIwMTItMTAtMjQgMTY6MTM6MzQgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogbGluayB0ZXN0cnRwb29sIHRvIHB0aHJlYWRzCgkgIEZpeGVzICM2ODY3ODcKCjIwMTItMTAtMjQgMTE6NDY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBbGxvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIGR1cmF0aW9uIGZvciBHQVAgZXZlbnRzCgoyMDEyLTEwLTI0IDExOjE2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgR0NvbmQgZm9yIGFzeW5jIHN0YXRlIGNoYW5nZQoJICBVc2UgYSBuZXcgR0NvbmQsIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jaywgdG8gc2lnbmFsIGNvbXBsZXRpb24KCSAgb2YgdGhlIGFzeW5jIHN0YXRlIGNoYW5nZS4gV2UgY2FuJ3QgcmV1c2UgdGhlIGxpdmUgbG9jayBiZWNhdXNlIHRoYXQKCSAgb25lIGNhbiBiZSBsb2NrZWQgd2hlbiB0aGUgY3JlYXRlIGZ1bmN0aW9uIGJsb2Nrcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjcyMwoKMjAxMi0xMC0yMiAyMDoyNTo0MyArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogZml4IG1lbW9yeSBsZWFrIGluIF9mYWxsYmFja19tZW1fY29weQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NjU4CgoyMDEyLTEwLTIyIDIwOjMzOjA2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiByZW1vdmUgdmFyaWFibGUgbm90IHJlYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OQoKMjAxMi0xMC0yMiAxNTowNDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBtNC9heF9wdGhyZWFkLm00OgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IFByb3Blcmx5IGNoZWNrIGZvciBwdGhyZWFkCgkgIFRoZSBvbGQgY2hlY2sgZmFpbGVkIG9uIEFuZHJvaWQgZm9yIGV4YW1wbGUuCgoyMDEyLTEwLTIyIDEwOjI1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IERvbid0IHVzZSBHU1RfREVCVUcoKSBpbiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkKCSAgSWYgR1N0cmVhbWVyIHdhcyBub3QgaW5pdGlhbGl6ZWQgeWV0IHRoaXMgd2lsbCBjYXVzZSBnX3dhcm5pbmdzKCkuCgoyMDEyLTEwLTIwIDE5OjQ0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IGctaSBhbm5vdGF0aW9uIGZvciBHc3RDb2xsZWN0UGFkc0J1ZmZlckZ1bmN0aW9uCgkgIFdlIHBhc3Mgb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgdG8gdGhlIGZ1bmN0aW9uLgoKMjAxMi0xMC0yMCAxMjo1NDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBnX3R5cGVfaW5pdCgpIGlzIG5vIGxvbmdlciByZXF1aXJlZCBhbmQgZGVwcmVjYXRlZCBpbiBnbGliID49IDIuMzUuMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NDU2CgoyMDEyLTEwLTE5IDEzOjM2OjMzIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIEdzdFNhbXBsZTogZml4IHR5cG8gaW4gRy1JIGFubm90YXRpb25zLCBhbGxvd3MgY3JlYXRpbmcgR3N0U2FtcGxlcyBmcm9tIGJpbmRpbmdzLgoKMjAxMi0xMC0xOCAxNTozMToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggY29tcGlsZXIgd2FybmluZyBhYm91dCBjb25zdG5lc3MKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X2xvY2snIGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoJICBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2dfbXV0ZXhfdW5sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCjIwMTItMTAtMTcgMTc6MzQ6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCSAgd2hlcmUgcG9zc2libGUuIEF2b2lkcyBzb21lIHN0cmluZyBjb3BpZXMuIEFsc28gcmUtaW5kZW50CgkgIHNvbWUgc3R1ZmYuIEFsc28gc29tZSBpbmRlbnQgZml4ZXMgaGVyZSBhbmQgdGhlcmUuCgoyMDEyLTEwLTE3IDE2OjQ5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJpbiwgcGlwZWxpbmU6IHVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCSAgU28gdGhlIHN0cmluZ3MgYXJlbid0IGNvcGllZC4KCjIwMTItMTAtMTYgMTI6MzE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQVBJOiBBZGQgR3N0RWxlbWVudDo6cG9zdF9tZXNzYWdlKCkgdmZ1bmMKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudC5oCgoyMDEyLTEwLTE2IDExOjU0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgcHdnOiBsaW5rIHRvIGNhcHMgYW5kIHFvcyBjaGFwdGVycwoKMjAxMi0xMC0xNiAxMToyMDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBzZWN0aW9uIGFib3V0IHF1ZXJ5IGZ1bmN0aW9uCgoyMDEyLTEwLTE2IDExOjEyOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkgIHB3ZzogZml4IGV2ZW50IGZ1bmN0aW9uCgoyMDEyLTEwLTE1IDE5OjU2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogbWlub3IgZG9jcyBmaXhlcwoKMjAxMi0xMC0xNSAxOTo1NTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggYnVmZmVyIGxlYWsgaW4gY2xpcF90aW1lCgoyMDEyLTEwLTE1IDE4OjQ0OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGNhbGwgY2xpcCBmdW5jdGlvbiB3aXRoIHVzZXIgZGF0YQoKMjAxMi0xMC0xNSAxNDowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogcmVvcmRlciBzb21lIGNoYXB0ZXJzCgkgIFJlb3JkZXIgc29tZSBjaGFwdGVyIHNvIHRoYXQgdGhleSBtYXRjaCB0aGUgc3RlcHMgZG9uZSBpbiB0aGUKCSAgZWxlbWVudC4KCjIwMTItMTAtMTUgMTM6NTk6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogc21hbGwgdHdlYWtzIHRvIG5lZ290aWF0aW9uCgoyMDEyLTEwLTE1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGltcHJvdmUgbmVnb3RpYXRpb24gZG9jdW1lbnRhdGlvbiBzb21lIG1vcmUKCjIwMTItMTAtMTUgMTI6MTA6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHVwZGF0ZSBuZWdvdGlhdGlvbiBwYXJ0CgoyMDEyLTEwLTE1IDEyOjEwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6NTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogd29yayBvbiByZXdyaXRpbmcgY2FwcyBuZWdvdGlhdGlvbiBkb2NzCgoyMDEyLTEwLTEyIDE2OjA5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRlc2lnbjogcmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uCgkgIFJlbmFtZSBwYXNzdGhyb3VnaCBuZWdvdGlhdGlvbiB0byB0cmFuc2Zvcm0gbmVnb3RpYXRpb24gdG8gYXZvaWQKCSAgY29uZnVzaW9uIHdpdGggcGFzc3Rocm91Z2ggb3BlcmF0aW9uLgoKMjAxMi0xMC0xMiAxMzoxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgbWFudWFsOiBubyBtb3JlIG5ldy1kZWNvZGVkLXBhZAoKMjAxMi0xMC0xMiAxMzoxMzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jb21waWxpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBtYW51YWw6IG1vdmUgZW1iZWRkaW5nIGVsZW1lbnRzIHRvIHNlcGFyYXRlIGNoYXB0ZXIKCjIwMTItMTAtMTIgMTM6MDE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJICBwd2c6IHNtYWxsIGV4YW1wbGUgZm9yIHRocm90dGxlCgoyMDEyLTEwLTEyIDEyOjU1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBhZGQgaW5mbyBhYm91dCBRb1MKCjIwMTItMTAtMTIgMTI6NTU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IGFkZHMgc29tZSBtb3JlIGxpbmtzCgoyMDEyLTEwLTEyIDEyOjU1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBxb3M6IG1lc3NhZ2VzIGFyZSBwb3N0ZWQsIG5vdCBkcm9wcGVkCgoyMDEyLTEwLTEyIDEwOjM1OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkgIG1hbnVhbDogdXBkYXRlIGdyYXBoaWNzCgoyMDEyLTEwLTExIDE3OjEwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZXhhbXBsZSBvZiBuby1yZWJ1ZmZlciBidWZmZXJpbmcgc3RyYXRlZ3kKCjIwMTItMTAtMTEgMTc6MTA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgbWFudWFsOiBzbWFsbCB0d2Vha3MKCjIwMTItMTAtMTEgMTc6MDk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGJ1ZmZlcmluZyB0aW1lIGxlZnQgaXMgaW4gbWlsbGlzZWNvbmRzCgoyMDEyLTEwLTExIDE3OjA3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICBtYW51YWw6IGFkZCBzb21lIHRleHQgYWJvdXQgYmluIHN0YXRlIGNoYW5nZSBvcmRlcgoKMjAxMi0xMC0xMCAxNjo0Mzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiB0YWxrIGFib3V0IHBsYXlzaW5rCgkgIFRhbGsgYWJvdXQgcGxheXNpbmsgYW5kIGdpdmUgYW4gZXhhbXBsZSBvZiBpdHMgdXNhZ2UuCgoyMDEyLTEwLTEwIDE0OjExOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICByZXBsYWNlIHNvbWUgcGxheWJpbjIgLT4gcGxheWJpbgoKMjAxMi0xMC0xMCAxMzowODozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgc29tZXRoaW5nIGFib3V0IHVyaWRlY29kZWJpbgoKMjAxMi0xMC0xMCAxMTozNTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBlbnN1cmUgYWxsIHRpbWVzdGFtcHMgYXJlIGluIHNhbWUgdGltZSBkb21haW4KCSAgLi4uIGJ5IG5vdCBvbmx5IHByb2Nlc3NpbmcgaW5jb21pbmcgYnVmZmVycyB0aHJvdWdoIGEgY2xpcCBmdW5jdGlvbiwKCSAgYnV0IGFsc28gb3RoZXIgdGltZXN0YW1wcyBzdWNoIGFzIHRob3NlIGNvbWluZyBmcm9tIEdBUCBldmVudC4KCjIwMTItMTAtMTAgMTA6MzY6MzIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGFkanVzdCBzb21lIHBhcmFtZXRlciBtaXNtYXRjaGVzCgoyMDEyLTEwLTEwIDExOjM0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb3duZ3JhZGUgR1NUX1dBUk5JTkcgdG8gR1NUX0lORk8KCSAgSXQncyB1c3VhbGx5IG5vdCBhIHByb2JsZW0gaWYgYSBxdWVyeSBmYWlscyBpZiB0aGVyZSdzIG5vIHBlZXIsCgkgIGVzcGVjaWFsbHkgYXMgaXQgd2lsbCBoYXBwZW4gZHVyaW5nIHBhZCBsaW5raW5nIChjYXBzIHF1ZXJ5KQoJICBxdWl0ZSBvZnRlbiBhbmQgc3BhbXMgdGhlIGxvZ3MuCgoyMDEyLTEwLTA5IDE3OjA2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiByZW1vdmUgb3V0ZGF0ZWQgYXV0b3BsdWdnaW5nIHNlY3Rpb24KCSAgUmVtb3ZlIGF1dG9wbHVnZ2luZyBjaGFwdGVyIGFuZCBwb2ludCB0byBkZWNvZGViaW4vcGxheWJpbiBleGFtcGxlcy4KCjIwMTItMTAtMDkgMTY6MTI6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBUYWxrIGFib3V0IHRocmVhZGluZwoJICBSZXdvcmsgdGhlIHRocmVhZGluZyBjaGFwdGVyLgoJICBUYWxrIGFib3V0IHN0cmVhbS1zdGF0dXMgYW5kIGdpdmUgc29tZSBleGFtcGxlcyBvbiBob3cgdG8gY2hhbmdlCgkgIHRoZSB0aHJlYWQgcHJpb3JpdGllcy4KCjIwMTItMTAtMDkgMTU6NTc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IGltcHJvdmUgc3RyZWFtLXN0YXR1cyBkb2N1bWVudAoKMjAxMi0xMC0wOSAxNTozMToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gc3RhcnRfY29tcGxldGUKCSAgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkgY2FuIGZhaWwgd2hlbiB0aGUgdGhyZWFkIGNvdWxkIG5vdCBiZQoJICBzdGFydGVkLCBmb3IgZXhhbXBsZS4gTWFrZSBzdXJlIGl0IGNhdXNlcyB0aGUgc3RhdGUgY2hhbmdlIHRvIGZhaWwgYnkKCSAgcmV0cmlldmluZyB0aGUgcmVzdWx0IGZyb20gX3N0YXJ0X2NvbXBsZXRlKCkuCgoyMDEyLTEwLTA5IDE1OjMxOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWcKCjIwMTItMTAtMDkgMTA6MjQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogc21hbGwgZG9jcyBmaXhlcyBhbmQgcmVtb3ZlIGEgMC4xMSBmaXhtZQoKMjAxMi0xMC0wOCAxNjo0MjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgbWFudWFsOiB0YWxrIGEgYml0IGFib3V0IGJ1ZmZlcmluZwoKMjAxMi0xMC0wOCAxMzoyMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgZG9jczogaW1wcm92ZSBjbG9jayBjaGFwdGVyCgoyMDEyLTEwLTA4IDEwOjM5OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZXhhbXBsZSBmb3IgZWZmZWN0IHN3aXRjaGluZwoKMjAxMi0xMC0wOCAwOToxMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZXMKCjIwMTItMTAtMDcgMTY6NDg6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgKGJ1Zy1maXhpbmcpCgo9PT0gcmVsZWFzZSAxLjAuMSA9PT0KCjIwMTItMTAtMDcgMTM6MTA6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjAuMQoKMjAxMi0xMC0wNyAwMDoxNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHRlc3RzOiB1cGRhdGUgc3RydWN0X2kzODYuaCBmb3IgQUJJIGNoZWNrcwoJICBGaXhlcyBtYWtlIGNoZWNrIG9uIDMyLWJpdCB4ODYuCgoyMDEyLTEwLTA2IDE3OjI2OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJICB0ZXN0czogdXBkYXRlIHN0cnVjdF9wcGMzMi5oIGZvciBBQkkgY2hlY2tzCgkgIEZpeGVzIG1ha2UgY2hlY2sgb24gMzItYml0IFBvd2VyUEMuCgoyMDEyLTEwLTA2IDE0OjU1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YzBiNTJjIHRvIDZiYjY5NTEKCjIwMTItMTAtMDYgMTI6MDg6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSAgZXhhbXBsZXM6IC5naXRpZ25vcmUgbW9yZSBiaW5hcmllcyBmcm9tIHRoZSBtYW51YWwKCjIwMTItMTAtMDUgMTY6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSAgZG9jczogcmVtb3ZlIG9ic29sZXRlIHBhcnQtYmxvY2sgZG9jdW1lbnQKCSAgTWVyZ2UgdGhlIHBhcnQtYmxvY2sgZG9jdW1lbnQgaW50byBwYXJ0LXByb2JlcwoKMjAxMi0xMC0wNSAwOTo0Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXNlbmQgZHJvcHBlZCBldmVudHMKCSAgSWYgd2UgdHJ5IHRvIHB1c2ggc3RpY2t5IGV2ZW50cyBidXQgYSBwcm9iZSBkcm9wcGVkIHRoZW0sIHdlIGRvbid0IG1hcmsKCSAgdGhlIGV2ZW50IGFzIHJlY2VpdmVkIGFuZCBtYXJrIHRoZSBwYWQgYXMgUEVORElOR19FVkVOVFMuIFRoaXMgZW5zdXJlcwoJICB0aGF0IHdlIHJlc2VuZCB0aGUgZXZlbnQgdGhlIG5leHQgdGltZS4gRm9yIHRoaXMgd2UgbmVlZCB0byBsZXQgdGhlCgkgIGN1c3RvbSBmbG93IHJldHVybiBmcm9tIHRoZSBwcm9iZSB0cmlja2xlIHVwIHRvCgkgIGdzdF9wYWRfcHVzaF9ldmVudF91bmNoZWNrZWQoKSBzbyB0aGF0IHdlIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4KCSAgT0sgYW5kIERST1BQRUQgcHJvYmUgcmV0dXJucy4KCjIwMTItMTAtMDUgMDc6MTQ6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3Qgc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZy9FT1MgcGFkcwoJICBEb24ndCBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nIG9yIEVPUyBwYWRzLiBUaGlzIHdhcyBkb25lCgkgIGNvcnJlY3RseSBmb3Igc291cmNlIHBhZHMgYnV0IG5vdCBmb3Igc2luayBwYWRzLgoKMjAxMi0xMC0wNCAxMToyNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSSBhbmQgYWRkIGl0IHRvIGRvY3MgYW5kIC5kZWYgZmlsZQoKMjAxMi0xMC0wNCAxMTo1MDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGR5bmFtaWMgY2Fwc2ZpbHRlciBleGFtcGxlCgoyMDEyLTEwLTA0IDExOjE4OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvbid0IHByZWZlciBwYXNzdGhyb3VnaAoJICBCYXNldHJhbnNmb3JtIHNob3VsZCBub3QgdHJ5IHRvIG5lZ290aWF0ZSBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dAoJICByZXNwZWN0IHRoZSBvcmRlciBvZiB3aGF0IHdlIHJldHVybiBpbiB0aGUgdHJhbnNmb3JtX2NhcHMgbWV0aG9kLgoJICBBIHR5cGljYWwgY2FzZSBpcyB0aGF0IHlvdSBzcGVjaWZ5IHNvbWUgc3BlY2lmaWMgbmV3IGNhcHMgaW4gdGhlCgkgIGNhcHMgcHJvcGVydHkgYnV0IGFsc28gYWxsb3cgdGhlIGN1cnJlbnQgY2FwcyB0byBwYXNzLgoKMjAxMi0xMC0wNCAxMToxNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zOiBhZGQgYW4gb3B0aW9uIHRvIHByZWZlciBwYXNzdGhyb3VnaAoJICBCYXNldHJhbnNmb3JtIGF0dGVtcHRzIHRvIGRvIHBhc3N0aHJvdWdoIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgb2YKCSAgdGhlIHRyYW5zZm9ybV9jYXBzIG1ldGhvZC4gQWRkIGEgbWV0aG9kIHRvIGRpc2FibGUgdGhpcy4KCSAgVGhpcyBpcyBuZWVkZWQgZm9yIGVsZW1lbnRzIGxpa2UgY2Fwc2ZpbHRlciB0aGF0IHdhbnQgdG8gdHJhbnNmb3JtIGNhcHMKCSAgYmFzZWQgb24gdGhlIG9yZGVyIG9mIHRoZSBjYXBzIHByb3BlcnR5LgoKMjAxMi0xMC0wNCAxMDowMToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGltcHJvdmUgc29tZSBjb21tZW50cwoKMjAxMi0xMC0wMyAxNzoxNzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHRhbGsgc29tZSBtb3JlIGFib3V0IGR5bmFtaWMgcGlwZWxpbmVzCgoyMDEyLTEwLTAzIDEzOjQ5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogZG9uJ3QgcHV0IGVzc2VudGlhbCBsb2dpYyBpbiBnX3JldHVybl92YWxfKgoKMjAxMi0xMC0wMyAxMzo0NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogZG8gbWV0YWRhdGEgcmVnaXN0cmF0aW9uIHRocmVhZHNhZmUKCSAgV2UgbmVlZCB0byB1c2UgZ19vbmNlIHRvIHJlZ2lzdGVyIHRoZSBtZXRhZGF0YSBpbXBsZW1lbnRhdGlvbnMKCSAgb25seSBvbmNlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTMzMgoKMjAxMi0xMC0wMyAxMzozNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGhhbmRsZSBtdWx0aXBsZSBpbXBsZW1lbnRhdGlvbiByZWdpc3RyYXRpb24KCSAgRmlyc3QgY2hlY2sgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIGltcGxlbWVudGF0aW9uIGJlZm9yZQoJICBtYWtpbmcgYSBHc3RNZXRhSW5mby4gSWYgd2UgY2FuJ3QgcmVnaXN0ZXIgd2Ugd291bGQgb3RoZXJ3aXNlIGVuZAoJICB1cCB3aXRoIGFuIHVuZGVmaW5lZCB0eXBlIGFuZCBhbiBpbnZhbGlkIEdzdE1ldGFJbmZvLgoJICBJdCdzIHBvc3NpYmxlIHRoYXQgdHlwZSByZWdpc3RyYXRpb24gZmFpbHMgYmVjYXVzZSBhbm90aGVyIG1ldGFkYXRhCgkgIHdpdGggdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gbmFtZSB3YXMgYWxyZWFkeSByZWdpc3RlcmVkLgoKMjAxMi0xMC0wMyAxMzoxMjo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHVzZSBDREFUQSBmb3IgY29kZSBibG9ja3MKCSAgdGhlbiB3ZSBkb24ndCBoYXZlIHRvIGVzY2FwZSBzcGVjaWFsIHRva2VuIGFueW1vcmUuCgoyMDEyLTEwLTAzIDEzOjA5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgcGFydGlhbCBwcmVyb2xsIGV4YW1wbGUgd2l0aCBwcm9iZXMKCjIwMTItMTAtMDMgMTA6NTM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBhZGQgbW9yZSBzdHVmZiBhYm91dCBwcm9iZXMKCjIwMTItMTAtMDIgMTc6MjM6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBzdGFydCB0YWxraW5nIGFib3V0IGR5bmFtaWMgcGlwZWxpbmUgY2hhbmdlcwoKMjAxMi0xMC0wMiAxNjo0NzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IG1vdmUgc2VjdGlvbiBhcm91bmQKCjIwMTItMTAtMDIgMTY6NDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwd2c6IGFkZCBhcHBzaW5rIGRvY3MKCjIwMTItMTAtMDIgMTY6MTU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwd2c6IHJld2l0ZSBkYXRhLWFjY2VzcyBjaGFwdGVyCgkgIFJld3JpdGUgdGhlIGRhdGEtYWNjZXNzIGNoYXB0ZXIgc28gdGhhdCB3ZSB0YWxrIGFib3V0IGFwcHNyYyBpbnN0ZWFkCgkgIG9mIHRoZSBmYWtlc3JjIGhhY2tzLgoKMjAxMi0xMC0wMiAxMzoyMjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIHBvL1JFQURNRToKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGRvY3M6IHNvbWUgMC4xMCAtPiAxLjAgY2hhbmdlcwoKMjAxMi0xMC0wMiAxMzoxMjozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBhbGxvY2F0aW9uIHF1ZXJ5IGV4YW1wbGUKCjIwMTItMTAtMDIgMTI6NDk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYnVmZmVycG9vbCBkb2NzCgoyMDEyLTEwLTAyIDExOjM0OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBmbGVzaCBvdXQgYWxsb2NhdGlvbiBkb2NzCgkgIEFkZCBtb3JlIGV4YW1wbGVzLgoJICBBZGQgZXhhbXBsZSBmb3IgaW1wbGVtZW50aW5nIG5ldyBtZXRhZGF0YS4KCSAgQWRkIHByb2dyYW1zIHRvIHRoZSBkb2NzIChhZ2Fpbj8pLCBpdCBzZWVtcyB0byBjb250YWluIHVzZWZ1bCBpbmZvLgoKMjAxMi0xMC0wMSAxNjo1OTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIHB3ZzogYWRkIG5ldyBhdXRob3IKCjIwMTItMTAtMDEgMTY6NTU6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYWxsb2NhdGlvbiBkb2NzCgoyMDEyLTEwLTAxIDE2OjQ2OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTItMTAtMDEgMTM6Mjg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBtb3JlIGRvY3MgZml4ZXMKCSAgRml4IGFsbG9jYXRvciBkZXNpZ24gZG9jCgkgIEFkZCBiZWdpbm5pbmcgb2YgYWxsb2NhdGlvbiBjaGFwdGVyIGluIHRoZSBwd2cKCjIwMTItMTAtMDEgMTE6NDc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbWFuYWdlci54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgIHB3ZzogZmluYWwgY2xlYW51cHMgZm9yIDEuMAoKMjAxMi0xMC0wMSAxMToyNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBwd2c6IGZpeCBldmVudHMgYW5kIGJhc2UgY2xhc3NlcwoKMjAxMi0xMC0wMSAxMDo0MDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBwd2c6IGZpeHVwIHRhZyBkb2NzCgoyMDEyLTEwLTAxIDA5OjQ4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIHB3ZzogcGF0Y2ggdXAgdGhlIHNlY3Rpb24gYWJvdXQgaW50ZXJmYWNlcwoKMjAxMi0wOS0zMCAwNDowNTozNiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBzZWFtbGVzcyBzZWdtZW50IGZ1bmN0aW9uCgkgIFRoZSAzcmQgcGFyYW1ldGVyIG9mIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCBpbgoJICAwLjEwIGlzIHRoZSB0aW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWdtZW50LAoJICBub3QgdGhlIHBvc2l0aW9uIGluIHRoZSBuZXcgc2VnbWVudC4gRml4IHRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIsCgkgIHRoZSBkb2NzLCBhbmQgdGhlIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBuZWVkcyBvZiB0aGUgb25seQoJICBleHRhbnQgY29uc3VtZXI6IERWRCBwbGF5YmFjay4KCjIwMTItMDktMjkgMTQ6MzU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHZhbHVlOiBhdm9pZCBkdXBsaWNhdGVzIHdoZW4gaW50ZXJzZWN0aW5nIGxpc3RzCgkgIEZpeGVzIG5lZ290aWF0aW9uIHRha2luZyBhIHJpZGljdWxvdXMgYW1vdW50IG9mCgkgIHRpbWUgKG11bHRpcGxlIDEwcyBvZiBzZWNvbmRzIG9uIGEgY29yZTIpIHdoZW4KCSAgdGhlcmUgYXJlIGR1cGxpY2F0ZSBlbnRyaWVzIGluIGxpc3RzLgoJICBDb3VsZCBoYXZlIGEgbmVnYXRpdmUgcGVyZm9ybWFuY2UgaW1wYWN0IG9uIG90aGVyCgkgIHNjZW5hcmlvcyBiZWNhdXNlIHdlIG5vdyBoYXZlIHRvIGl0ZXJhdGUgdGhlCgkgIGRlc3QgbGlzdCB0byBhdm9pZCBkdXBsaWNhdGVzLCBidXQgd2UgZG9uJ3QKCSAgaGF2ZSBhIGxvdCBvZiBsaXN0cyBhbnkgbW9yZSB0aGVzZSBkYXlzLCBhbmQKCSAgdGhleSB0ZW5kIHRvIGJlIHNtYWxsIGFueXdheS4gVGhlIG5lZ2F0aXZlcwoJICBhcmUgaG9wZWZ1bGx5IGNvdW50ZXJlZCBieSB0aGUgcG9zaXRpdmUgZWZmZWN0cwoJICBvZiByZWR1Y2luZyB0aGUgbGlzdCBsZW5ndGggZWFybHkgb24gaW4gdGhlCgkgIHByb2Nlc3MuIEFuZCBpbiBhbnkgY2FzZSwgaXQncyB0aGUgcmlnaHQgdGhpbmcKCSAgdG8gZG8uCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTgxCgoyMDEyLTA5LTI5IDAwOjI3OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBtaW5vciB1cGRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTEyMQoKMjAxMi0wOS0yOCAyMzo1Mzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkgIGZhcTogYWRkIG1pc3NpbmcgPC9wYXJhPiB0YWcKCjIwMTItMDktMjggMTU6MTc6MjcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1pbmlvYmplY3Q6IEFsd2F5cyByZWplY3QgV1JJVEUgbG9ja3Mgb24gUkVBRE9OTFkgbWluaW9iamVjdHMKCSAgVmVyaWZ5IHRoYXQgbWFwcGluZyBhIHJlYWQtb25seSBtZW1vcnkgYXMgcmVhZCBkb2VzbnQgbWFrZSBpdCB3cml0YWJsZQoKMjAxMi0wOS0yOCAyMDozODoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IHB1cmdlIGFsbCBtZW50aW9uIG9mIGxpYm9pbCwgdXBkYXRlIEZBUQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMjg1CgoyMDEyLTA5LTI4IDE2OjAzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciAxLjAKCSAgUmV3cml0ZSBjbG9jayBwYXJ0LgoJICBzdGFydCBvbiBpbnRlcmZhY2VzCgoyMDEyLTA5LTI4IDEzOjI1OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgIHB3ZzogcmV3b3JrIGR5bmFtaWMgcGFkcyBkb2NzCgoyMDEyLTA5LTI4IDEzOjI1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIHB3ZzogcmV3b3JrIHNjaGVkdWxpbmcgZG9jcwoKMjAxMi0wOS0yOCAxMzoyNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIHB3ZzogcmVtb3ZlIHNvbWUgR1NUX0JPSUxFUlBMQVRFCgoyMDEyLTA5LTI4IDExOjE4OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIGFjdGl2YXRpb24gZGVzaWduIGRvY3MKCjIwMTItMDktMjggMTA6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggYWN0aXZhdGUgZG9jcwoKMjAxMi0wOS0yOCAxMDowNDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBmaXggbW9yZSBuZWdvdGlhdGlvbiBmb3IgMS4wCgoyMDEyLTA5LTI3IDE2OjU5OjA0ICswMjAwICBPbGl2aWVyIEJsaW4gPG9saXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRvIG5vdCByZWdpc3RlciBwcmludGYgZXh0ZW5zaW9uIGZvciAlcAoJICBUaGlzIGhhcHBlbmVkIHdoZW4gZ2xpYiB3YXMgbm90IHVzaW5nIHN5c3RlbSBwcmludGYsIGFuZCBjYXVzZWQgdGhlCgkgIGludGVybmFsIGdzdHJlYW1lciBwcmludGYgZXh0ZW5zaW9ucyB0byBiZSB1c2VkIGZvciBhbGwgJXAgcHJpbnRmcywKCSAgY2F1c2luZyBjcmFzaGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTcwCgoyMDEyLTA5LTI3IDE3OjIxOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGZpeCBzb21lIG5lZ290aWF0aW9uIHRvIDEuMAoKMjAxMi0wOS0yNyAxNDo0MjowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgcHdnOiBtb3JlIHVwZGF0ZXMgZm9yIDEuMAoKMjAxMi0wOS0yNyAxMzo1Nzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogbW9yZSB1cGRhdGVzIGZvciAxLjAKCjIwMTItMDktMjcgMTE6NTM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IHVwZGF0ZSBib2lsZXIgdG8gMS4wCgoyMDEyLTA5LTI3IDExOjA2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhbHNvIHJlZiB0aGUgaW50ZXJuYWwgcGFkIGZvciBhY3RpdmF0ZSBmdW5jdGlvbnMKCSAgQWxzbyB0YWtlIGEgcmVmIHRvIHRoZSBpbnRlcm5hbCBwYWQgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucwoKMjAxMi0wOS0yNCAxODoyNjoxNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBwcm94eXBhZDogSG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJuYWwgcGFkIHdoaWxlIHB1c2hpbmcgdGhyb3VnaCBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0ODA5CgoyMDEyLTA5LTI1IDE0OjQ0OjU0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBUZXN0IHRoZSBjYXNlIHdoZXJlIGdob3N0IHBhZHMgYXJlIHJlbW92ZWQgd2hpbGUgc3RyZWFtaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ4MDkKCjIwMTItMDktMjcgMDk6NDQ6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBlbmFibGUgbGlicmFyeSBhYmkgY2hlY2tzCgoyMDEyLTA5LTI2IDIzOjMyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IHVwIGJhc2VzcmMvYmFzZXNpbmsgZG9jcyBmb3JtYXR0aW5nCgoyMDEyLTA5LTI2IDE3OjA4OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2tzCgkgIEVuYWJsZSBhYmkgY2hlY2tzIGFnYWluLgoJICBGaXggYWJpIHNpemVzIGZvciB4ODZfNjQsIGNvcHkgdGhlIGZpbGUgdG8gb3RoZXIgYXJjaHMuCgoyMDEyLTA5LTI2IDE2OjI2OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgdXBkYXRlIGRvY3MgZm9yIDEuMCBBUEkKCjIwMTItMDktMjYgMTQ6MTU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHVzZSBwcm9wZXIgJ3RyYW5zZmVyIGZsb2F0aW5nJyBhbm5vdGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQwOTkKCjIwMTItMDktMjYgMTM6MTk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogc2VuZCBTVFJFQU0tU1RBUlQgZXZlbnQKCSAgU2VuZCBhIFNUUkVBTV9TVEFSVCBldmVudCB3aGVuIHdlIGFyZSBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NDI0CgoyMDEyLTA5LTI2IDEwOjU1OjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IG1hcmsgR3N0U2VnbWVudEZsYWdzIGFzIGZsYWdzIHJhdGhlciB0aGFuIGVudW0KCSAgLi4uIHdoaWNoIHJlYWxseSBtYWtlcyBhIGRpZmZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplCgkgIGEgZmxhZ3MgdmFsdWUgd2hpY2ggaXMgYSBjb21iaW5hdGlvbiBvZiBmbGFncywgd2hpY2ggaXMgaGFyZAoJICB0byBkbyBhcyBhbiBlbnVtIHR5cGUuCgoyMDEyLTA5LTI2IDEwOjU0OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJldGltZXN0YW1wIGJvdGggcHRzIGFuZCBkdHMgd2hlbiBkb2luZyBzbwoKMjAxMi0wOS0yNiAxNTowMTo0MiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNb3ZlIHNvbWUgcnVuIG9mIHRoZSBtaWxsIGRlYnVnIHN0YXRlbWVudHMgdG8gTE9HIGxldmVsCgoyMDEyLTA5LTI2IDE0OjIzOjUyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE91dHB1dCB0aW1lc3RhbXBzIGFmdGVyIGEgc2Vlay4KCSAgUmVpbml0aWFsaXNlIHRoZSBEVFMgYWZ0ZXIgYSBzZWVrIHNvIGFzIHRvIGNvbnRpbnVlCgkgIGdlbmVyYXRpbmcgdGltZXN0YW1wcyB3aGVuIGJhc2VwYXJzZSBpcyBub3QgZG93bnN0cmVhbQoJICBvZiBhIGRlbXV4ZXIuCgkgIEZpeGVzOiAjNjg0NTM4CgoyMDEyLTA5LTI1IDE3OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgIGRvY3M6IHVwZGF0ZXMKCSAgTUlNRS10eXBlIC0+IE1lZGlhIHR5cGUKCSAgRml4IHNvbWUgb2xkIGdzdC1pbnNwZWN0IG91dHB1dAoKMjAxMi0wOS0yNSAxNjo1MzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgMS4wIEFQSQoKMjAxMi0wOS0yNSAxNToxMTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBzZWN0aW9uIGZvciBtZXRhZGF0YQoKMjAxMi0wOS0yNSAxMzowOTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEZhaWwgaWYgbm8gdmFsaWQgZWxlbWVudCBmYWN0b3J5IG1ldGFkYXRhIGlzIHNldAoKMjAxMi0wOS0yNSAxMzowOToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogRmFpbCBpZiBubyB2YWxpZCBwbHVnaW4gbWV0YWRhdGEgaXMgc2V0CgoyMDEyLTA5LTI1IDE1OjA2OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFsc28gdHJhY2sgYW5kIHN0b3JlIHNlZ21lbnQgaW5mbyBpbiBzaW5nbGUgc2VnbWVudCBtb2RlCgoyMDEyLTA5LTI1IDE0OjQwOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogZml4IHVwIHRoZSBtYW51YWwKCSAgTUlNRS10eXBlIC0+IG1lZGlhIHR5cGVzCgkgIEZpeCB1cCB0aGUgbWFudWFsIGluIHZhcmlvdXMgcGxhY2VzIHdpdGggdGhlIDEuMCB3YXkgb2YgZG9pbmcgdGhpbmdzCgkgIHN1Y2ggYXMgcHJvYmVzLCBzdGF0aWMgZWxlbWVudHMsIHNjaGVkdWxpbmcsIC4uLgoJICBBZGQgcG9ydGluZyBmcm9tIDAuMTAgdG8gMS4wIGNoYXB0ZXIuCgkgIEFkZCBwcm9iZSBleGFtcGxlIHRvIGJ1aWxkLgoJICBSZW1vdmUgc29tZSBkb2NzIGZvciByZW1vdmUgY29tcG9uZW50cyBzdWNoIGFzIEdzdE1peGVyIGFuZAoJICBHc3RQcm9wZXJ0eVByb2JlLCBYTUwuLi4KCjIwMTItMDktMjQgMTY6NTA6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBkb2NzOiBnc3QtcHl0aG9uIGlzIG5vIG1vcmUKCSAgZ3N0LXB5dGhvbiBpcyBubyBtb3JlIGFuZCBnc3QtbGliYXYgaXMgb25lIG9mIHRoZSBtYWluIG1vZHVsZXMgdGhhdAoJICB3ZSByZWxlYXNlLgoKMjAxMi0wOS0yNCAxNjozMTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZG9jczogZml4IGJhc2VzaW5rIGRvY3MKCjIwMTItMDktMjQgMTY6MjU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBkb2NzOiB1cGRhdGUgRkFRCgkgIENoYW5nZSB2ZXJzaW9ucy4KCSAgVXNlIHRvb2xzIHdpdGggdmVyc2lvbiBwcmVmaXguCgoyMDEyLTA5LTI1IDEzOjE1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIHR5cG8gZml4CgoyMDEyLTA5LTI1IDEzOjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCB0eXBvIGluIHRyYW5zbGF0ZWQgc3RyaW5nCgkgIFNwb3R0ZWQgYnkgQ2hyaXMgTGVvbmFyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDc1NQoKMjAxMi0wOS0yNSAwOToyNzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBSZW1vdmUgMC4xMS45WC0+MS4wLjAgdmVyc2lvbiBtYW5nbGluZwoKMjAxMi0wOS0yNSAwMTowMjowMyArMDEwMCAgSm9zZXAgVG9ycmEgVmFsbGVzIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogcHJpbnRmIGZvcm1hdCBmaXhlcyB0byBtYWtlIGludGVsIGNvbXBpbGVyIGhhcHB5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTI2NTcKCjIwMTItMDktMjUgMDA6NTU6NTkgKzAxMDAgIEpvc2VwIFRvcnJhIFZhbGxlcyA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIE1ha2UgaW50ZWwgY29tcGlsZXIgaGFwcGllcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjU3CgoyMDEyLTA5LTI0IDE2OjMxOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnIGZpeGluZykKCj09PSByZWxlYXNlIDEuMC4wID09PQoKMjAxMi0wOS0yNCAxMjoxOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDEuMC4wCgoyMDEyLTA5LTI0IDAwOjM5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgMC4xMSByZWZlcmVuY2VzIGluIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDktMjQgMDA6Mzc6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHJlbmFtZSBwb3J0aW5nLXRvLTAuMTEudHh0IHRvIHBvcnRpbmctdG8tMS4wLnR4dAoKMjAxMi0wOS0yMyAxOTo1Njo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBmaXggRklYTUUgcHJpbnRpbmcgZm9yIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKQoKMjAxMi0wOS0yMyAxNzozMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHVwZGF0ZSByZWxlYXNlIGRvYwoJICBDcmVhdGUgdGFncyBmb3IgcmVsZWFzZXMgd2l0aG91dCB0aGUgdWdseSBSRUxFQVNFLSBwcmVmaXguCgoyMDEyLTA5LTIzIDEyOjQyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG9uJ3QgZm9yd2FyZCByYW5kb20gc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEl0J3Mgbm90IHJpZ2h0LCBhbmQgd2UgZG9uJ3Qga25vdyB3aGF0IGV4dHJhIHByb3BlcnRpZXMKCSAgdGhhdCBldmVudCBtaWdodCBoYXZlIHNldCBpbiBmdXR1cmUgKGUuZy4gc3BhcnNlbmVzcykuCgkgIFRoaXMgY2hhbmdlIG1lYW5zIGNvbGxlY3RwYWQgdXNlcnMgbmVlZCB0byBjcmVhdGUgdGhlaXIKCSAgb3duIHN0cmVhbS1zdGFydCBldmVudCBub3cuIFdlIGNvdWxkIGFkZCBhIHV0aWxpdHkKCSAgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgc3RyZWFtLXN0YXJ0IGV2ZW50IGJhc2VkIG9uCgkgIHRoZSBpbnB1dCBzdHJlYW0tc3RhcnQgZXZlbnRzLgoKMjAxMi0wOS0yMiAxNjowNzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNGY5NjJmNyB0byA2YzBiNTJjCgoyMDEyLTA5LTIxIDIxOjEzOjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBjb250cm9sbGVyIGRvY3VtZW50YXRpb24KCjIwMTItMDktMjEgMjE6MTM6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IHVwZGF0ZSBjb250cm9sbGVyIGRvY3VtZW50YXRpb24KCjIwMTItMDktMTggMTU6MjI6MDMgKzAyMDAgIEJhc3RpYW4gV2lua2xlciA8YnV6QG5ldGJ1ei5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogRml4IHN5bnRheCBmb3IgdmFsdWUgbGlzdHMgaW4gY2FwcyBzdHJpbmdzCgkgIFZhbHVlIGxpc3RzIHVzZSBjdXJseSBicmFja2V0cyBpbnN0ZWFkIG9mIHBhcmVudGhlc2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQyOTMKCjIwMTItMDktMjAgMTQ6NDg6MTcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgcGFkIHByb2JlcyBvbmx5IG9uY2UKCSAgQWxzbyBhZGQgdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBpZiBhIHBhZCBwcm9iZSBpcyByZW1vdmVkIHdoaWxlIGl0J3MKCSAgY2FsbGJhY2sgaXMgcnVubmluZywgdGhlIGNsZWFudXBfaG9vayBpc24ndCBjYWxsZWQgYWdhaW4gaWYgaXQKCSAgcmV0dXJucyBHU1RfUEFEX1BST0JFX1JFTU9WRQoKMjAxMi0wOS0xOSAxNTowMTo0NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBBZGQgZnVuY3Rpb25zIHRvIHNhZmVseSBhY2Nlc3MgR3N0UHJvYmVJbmZvIGRhdGEgcG9pbnRlcgoJICBUaGlzIGlzIHNvIHRoYXQgaW50cm9zcGVjdGlvbiBiYXNlZCBiaW5kaW5ncyBjYW4gYWNjZXNzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NDAyCgoyMDEyLTA5LTE5IDIzOjI1OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIDAuOCBHc3RCaW4gQVBJIGZyb20gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQwNDgKCjIwMTItMDktMTkgMTU6MTQ6MzUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogdHJhbnNmb3JtIEdBUCBldmVudCBpbiBzaW5nbGUgc2VnbWVudCBtb2RlCgoyMDEyLTA5LTE5IDA5OjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBjb2xsZWN0cGFkcyBkb2MgZml4ZXMKCjIwMTItMDktMTggMjE6NDk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2hlY2sgYWNxdWlyZSByZXN1bHQgdmFsdWUKCSAgQ2hlY2sgdGhlIHJlc3VsdCB2YWx1ZSBmcm9tIF9idWZmZXJfcG9vbF9hY3F1aXJlKCkgYW5kIHJldHVybiB0aGUKCSAgdmFsdWUgd2hlbiBhbGxvY2F0aW9uIGZhaWxlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDI4NQoKMjAxMi0wOS0xOCAxMjoxNDozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJlZmNvdW50IGJ1ZyBieSB1bnJlZmZpbmcgdGhlIGNvcnJlY3QgdmFyaWFibGUKCj09PSByZWxlYXNlIDAuMTEuOTkgPT09CgoyMDEyLTA5LTE3IDE3OjU2OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45OQoKMjAxMi0wOS0xNyAxMzozNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB3aW4zMi92czEwL0NvbW1vbi5wcm9wczoKCSAgUmVtb3ZlIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGd1YXJkIGFuZCBkZWZpbmVzCgoyMDEyLTA5LTE3IDEzOjA5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcGFkOiBBZGQgcGFyZW50IHBhcmFtZXRlciB0byB0aGUgbGluayBhbmQgdW5saW5rIGZ1bmN0aW9ucwoJICBGaXhlcyBwYXJ0IG9mIGJ1ZyAjNjgzOTk1LgoKMjAxMi0wOS0xNiAyMzoyMDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgc2FtcGxlOiBhZGQgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gZnVuY3Rpb25zIGZvciBHc3RTYW1wbGUKCSAgU2luY2UgdGhlc2UgdGhpbmdzIGFyZSBpbnNpZGUgdGFnbGlzdHMgbm93LCBpdCB3b3VsZCBiZSBnb29kIHRvIGJlCgkgIGFibGUgdG8gcHJpbnQgdGhlbSBhbmQgZGVzZXJpYWxpc2UgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTMyMgoKMjAxMi0wOS0xNSAyMTo1NjowNyArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFN3aXRjaCB0byBGMTggbmFtaW5nIG9mIHRoZSBwYWNrYWdlCgoyMDEyLTA5LTE1IDE4OjQzOjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHVzZSBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YSB0byByZXBsYWNlIG9ic29sZXRlIEFQSQoKMjAxMi0wOS0xNCAxNzo1MjoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICByZXBsYWNlIGdzdF90YWdfbGlzdF9mcmVlIHdpdGggZ3N0X3RhZ19saXN0X3VucmVmCgoyMDEyLTA5LTE0IDE3OjA4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICByZXBsYWNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSB3aXRoIGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhZGF0YQoKMjAxMi0wOS0xNCAxNzowMDoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgcmVwbGFjZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgd2l0aCBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEKCjIwMTItMDktMDYgMTY6MzI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiB3aGl0ZXNwYWNlIGZpeAoKMjAxMi0wOS0xNCAxNDowODoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgIGRvY3M6IGluZGV4ZXJzIGFyZSBubyBtb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQwMTgKCjIwMTItMDktMTQgMTM6MzQ6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHRlc3RzOiBmaXggZm9yIGFwcHNpbmsgcmV0dXJuIHZhbHVlIGFkZGl0aW9uCgoyMDEyLTA5LTE0IDAyOjU0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjk0ID09PQoKMjAxMi0wOS0xNCAwMjo0NjozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45NAoKMjAxMi0wOS0xNCAwMToyODo0NiArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB0cnkgdG8gcHJldHR5LXByaW50IGV2ZW50IGFmdGVyIHdlJ3ZlIGdpdmVuIGF3YXkgb3duZXJzaGlwCgkgIE1pZ2h0IGNhdXNlIGNyYXNoZXMgd2l0aCBkZWJ1ZyBsb2dnaW5nIGVuYWJsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM5OTYKCjIwMTItMDktMTQgMDE6MTc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEyLTA5LTE0IDAwOjMwOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBnc3Rjb21wYXQ6IGZpeCBiYWNrd2FyZHMgY29tcGF0IG1hY3JvIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24KCSAgTmFtZSBpdCBwcm9wZXJseSwgc28gaXQsIGxpa2UsIHdvcmtzLiBDbGVhcmx5IG5vIG9uZSBhY3R1YWxseQoJICB1c2VkIHRoYXQuLgoKMjAxMi0wOS0xMyAxMjowMDowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogZml4IGZvcm1hdHMgYSBsaXR0bGUKCjIwMTItMDktMTMgMTE6Mzg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgYmFzZXBhcnNlIGZ1bmN0aW9uCgoyMDEyLTA5LTEzIDExOjM4OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmb3VyY2MgaXMgbm8gbW9yZQoKMjAxMi0wOS0xMyAxMTozNTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZml4IHNvbWUgZG9jcwoJICBmcm9tIGdpdCBncmVwIGZvciBmZm1wZWdjb2xvcnNwYWNlIGFuZCB4LXJhdy0KCjIwMTItMDktMTMgMTA6NDg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBwYXJzZTogYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24KCjIwMTItMDktMTMgMTA6MjQ6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW5kZW50IGZpeAoKMjAxMi0wOS0xMiAyMjo0NDozNyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBZGQgYSBtb2RlL2ZsYWcgZm9yIGRpc2FibGluZyBQVFMgaW50ZXJwb2xhdGlvbgoJICBUbyBiZSB1c2VkIGJ5IHN1Yi1jbGFzc2VzIGltcGxlbWVudGluZyB2aWRlbyBmb3JtYXRzIHdpdGggcmVvcmRlcmluZwoJICBzdWNoIGFzIE1QRUcuCgoyMDEyLTA5LTEwIDE4OjM4OjU3IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEhhbmRsZSBHQVAgYW5kIHN0aWxsLWZyYW1lIGV2ZW50cy4KCSAgSGFja3ksIGJlY2F1c2UgdGhlIHN0aWxsLWZyYW1lIGNvZGUgYWxsIGxpdmVzIGluIC1iYXNlLCB3aGVyZSB3ZQoJICBjYW4ndCB1c2UgaXQgLSBzbyB0aGlzIGlzIGEgaGFja3kgZHVwbGljYXRpb24gb2YgLWJhc2UgY29kZS4gTm90CgkgIHN1cmUgd2hpY2ggd2F5IHRvIGZpeCB0aGlzOiBNb3ZlIGJhc2VwYXJzZSB0byAtYmFzZSwgb3IgbW92ZSBzdGlsbC1mcmFtZQoJICBldmVudHMgdG8gY29yZT8KCjIwMTItMDktMDQgMTk6Mzg6MjYgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVzdHJ1Y3R1cmUgZXZlbnQgaGFuZGxpbmcKCSAgTWFrZSB0aGUgZXZlbnQgaGFuZGxpbmcgbW9yZSBsaWtlIHdoYXQgdmlkZW9kZWNvZGVyIGRvZXMsCgkgIHRvIGVuc3VyZSB0aGF0IGFsbCBldmVudHMgYXJlIHBhc3NlZCB0byBjaGlsZCBjbGFzc2VzIGJlZm9yZSBiZWluZwoJICBwbGFjZWQgb24gdGhlIHBlbmRpbmcgcXVldWUgb3IgcHVzaGVkIG9ud2FyZC4KCjIwMTItMDktMDMgMTA6MzA6MDggLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU3RvcmUgaW5jb21pbmcgY2FjaGVkIGV2ZW50cyBpbiByZXZlcnNlIG9yZGVyCgkgIFJldmVyc2UgdGhlIGxpc3QganVzdCBiZWZvcmUgc2VuZGluZy4gUHJlcGVuZGluZyBpcyBtb3JlIGVmZmljaWVudAoJICB0aGFuIGFwcGVuZGluZywgc28gdGhpcyBzYXZlcyBzb21lIGN5Y2xlcy4KCjIwMTItMDktMDIgMjM6MzI6NTAgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRmlyc3QgYXR0ZW1wdCBhdCBoYW5kbGluZyBib3RoIERUUyBhbmQgUFRTCgoyMDEyLTA5LTEzIDAwOjM4OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIHdhcm5pbmcgd2hlbiB3ZSBnZXQgc29tZXRoaW5nIGVsc2UgdGhhbiBhIHNhbXBsZSBmb3IgYSBzYW1wbGUgdGFnCgkgIEZhY2lsaXRhdGUgR3N0QnVmZmVyIC0+IEdzdFNhbXBsZSB0cmFuc2l0aW9uIGZvciBzb21lIHRhZ3MsCgkgIGNvdWxkIGJlIGhhcmQgdG8gY2F0Y2ggb3RoZXJ3aXNlIHdoZW4gY3JlYXRpbmcgdGFncywgc2luY2UKCSAgaXQnbGwgb25seSBiZSBhcHBhcmVudCBsYXRlciB3aGVuIHNvbWVvbmUgdHJpZXMgdG8gcmVhZCB0aGUKCSAgdGFncy4KCjIwMTItMDktMTIgMTQ6MTQ6MzEgKzAyMDAgIEFuZHJlYXMgRnJpc2NoIDxmcmF4aW5hc0BvcGVuZHJlYW1ib3gub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBkb24ndCBjcmFzaCBpZiBubyBlbGVtZW50IGtsYXNzIGhhcyBiZWVuIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzODY1CgoyMDEyLTA5LTEyIDIzOjEyOjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGEgbWlzcGxhY2VkICcpJwoKMjAxMi0wOS0xMiAyMToyMDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBlcnJvcjogZG9uJ3QgdGVsbCBwZW9wbGUgdG8gZmlsZSBhIGJ1ZyBmb3IgbmVnb3RpYXRpb24gZXJyb3JzCgoyMDEyLTA5LTEyIDIwOjU0OjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogcmVtb3ZlIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsCgkgIFJlbmFtZSBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCgpIHRvIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCgpIGFuZCBmaXggYWxsCgkgIGludm9jYXRpb25zLgoKMjAxMi0wOS0xMiAxNzoxNjo0MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBmaXggYnVpbGQgb24gQ3lnd2luCgkgIC4uLiB3aGVyZSBfX2ZidWZzaXplIGlzIG5vdCBhdmFpbGFibGUKCjIwMTItMDktMTIgMTM6MDA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgUmV2ZXJ0ICJ0ZXN0czogZml4IGJ1ZmZlciBsZWFrIGluIHF1ZXVlMiB1bml0IHRlc3QiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjMyZmQyOTUzZWIwMGY2OTRiNjY3ZTc3OTY3MDRmNTk3NGNlYTQ1Mi4KCSAgVGhpcyB3YXMgYWxyZWFkeSBmaXhlZC4KCjIwMTItMDUtMjQgMTM6MDg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcG9zc2libGUgZGF0YSBjb3JydXB0aW9uIGluIHJpbmcgYnVmZmVyIG1vZGUgd2hlbiBzZWVraW5nCgkgIEZpeCByYWNlIHRoYXQgY291bGQgY2F1c2UgZGF0YSBjb3JydXB0aW9uIHdoZW4gc2Vla2luZyBpbiByaW5nIGJ1ZmZlcgoJICBtb2RlLgoJICBJbiBwZXJmb3JtX3NlZWtfdG9fb2Zmc2V0KCksIGNhbGxlZCBmcm9tIHRoZSBkZW11eGVyJ3MgcHVsbF9yYW5nZQoJICByZXF1ZXN0LCB3ZSBkcm9wIHRoZSBsb2NrLCB0ZWxsIHVwc3RyZWFtICh1c3VhbGx5IGEgaHR0cCBzb3VyY2UpCgkgIHRvIHNlZWsgdG8gYSBkaWZmZXJlbnQgb2Zmc2V0LCB0aGVuIHJlLWFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIHdlCgkgIGRvIHRoaW5ncyB0byB0aGUgcmFuZ2VzLiBIb3dldmVyLCBiZXR3ZWVuIHVzIHNlbmRpbmcgdGhlIHNlZWsgZXZlbnQKCSAgYW5kIHJlLWFjcXVpcmluZyB0aGUgbG9jaywgdGhlIHNvdXJjZSB0aHJlYWQgbWlnaHQgYWxyZWFkeSBoYXZlIHB1c2hlZAoJICBzb21lIGRhdGEgYW5kIG1vdmVkIGFsb25nIHRoZSByYW5nZSdzIHdyaXRpbmdfcG9zIGJleW9uZCB0aGUgc2VlawoJICBvZmZzZXQuIEluIHRoYXQgY2FzZSB3ZSBkb24ndCB3YW50IHRvIHNldCB0aGUgd3JpdGluZyBwb3NpdGlvbiBiYWNrCgkgIHRvIHRoZSByZXF1ZXN0ZWQgc2VlayBwb3NpdGlvbiwgYXMgaXQgd291bGQgY2F1c2UgZGF0YSB0byBiZSB3cml0dGVuCgkgIHRvIHRoZSB3cm9uZyBvZmZzZXQgaW4gdGhlIGZpbGUgb3IgcmluZyBidWZmZXIuCgkgIFJlcHJvZHVjaWJsZSBkb2luZyBzZWVrLWVtdWxhdGVkIGZhc3QtZm9yd2FyZC9iYWNrd2FyZCBvbiAwMDY2NTMuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNS0yNCAxMzowNjo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGZpeCBidWZmZXIgbGVhayBpbiBxdWV1ZTIgdW5pdCB0ZXN0CgoyMDEyLTA5LTEyIDEyOjIzOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiByZW1vdmUgZ2xpYiBkZXByZWNhdGlvbiBjb21wYXRpYmlsaXR5IHRyaWNrZXJ5CgoyMDEyLTA5LTEyIDEyOjIyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjazogcG9ydCB0byB0aGUgbmV3IEdMaWIgdGhyZWFkIEFQSQoKMjAxMi0wOS0xMiAxMTo1MjoyNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBwb3J0IHRvIG5ldyBHTGliIHRocmVhZCBBUEkKCjIwMTItMDktMTIgMTE6NDk6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgdGVzdHM6IGJlbmNobWFya3M6IGFsaWduIGVycm9yIG1lc3NhZ2Ugd2l0aCBjb2RlCgoyMDEyLTA5LTExIDE5OjQ5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBleHBvc2UgZ3N0X3BhZF9tb2RlX2dldF9uYW1lKCkgYW5kIHVzZSBpdCBpbiBiYXNlcGFyc2UKCjIwMTItMDktMTEgMTM6MjI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiB1cGRhdGUgZm9yIGdzdC1mZm1wZWcgLT4gZ3N0LWxpYmF2CgkgIE5vdyB0aGF0IHdlIGhhdmUgYSBnc3QtbGliYXYgZ2l0IHJlcG9zaXRvcnkgKHN5bWxpbmtlZCB0byBnc3QtZmZtcGVnKS4KCjIwMTItMDktMTEgMTc6Mjc6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGp1c3QgdGVzdCBsb2dpYyBmb3Igc2NoZWR1bGluZyBtb2RlIHdpdGggZmxhZ1MKCjIwMTItMDktMTEgMTY6Mzk6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBjb252ZW5pZW5jZSBBUEkgdG8gcXVlcnkgZm9yIHNjaGVkdWxpbmcgbW9kZSBhbmQgZmxhZ3MKCjIwMTItMDktMTEgMTY6Mjk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnRzOiByZW1vdmUgU1RSRUFNX0NPTkZJRwoJICBXZSB3b24ndCBiZSBhYmxlIHRvIGltcGxlbWVudCB0aGlzIHNvIGl0J3MgYmV0dGVyIHRvIG1vdmUgaXQgb3V0IG9mIHRoZSB3YXkuCgoyMDEyLTA5LTExIDE2OjA5OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogY2xlYW4gdXAgaGVhZGVyIGluZGVudGF0aW9uCgoyMDEyLTA5LTExIDExOjM0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhbGxvdyBOVUxMIHN0cmVhbV9pZCBhbHNvIHdoZW4gMCBzcmNwYWRzCgkgIFdlIHVzdWFsbHkgZmlyc3QgY3JlYXRlIHRoZSBzdHJlYW1faWQgZm9yIHRoZSBzdHJlYW1fc3RhcnQgZXZlbnQgYW5kIHRoZW4gYWRkCgkgIHRoZSBwYWQgdG8gdGhlIGVsZW1lbnQuIFRoaXMgbWVhbnMgdGhhdCB0aGlzIGZ1bmN0aW9ucyBzaG91bGQgd29yayB3aGVuIHRoZXJlCgkgIGFyZSBubyBwYWRzIG9uIHRoZSBlbGVtZW50IHlldC4KCjIwMTItMDktMTAgMjE6Mzk6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgYmFzZXBhcnNlLCB0eXBlZmluZDogb25seSBhY3RpdmF0ZSBpbiBwdWxsIG1vZGUgaWYgdXBzdHJlYW0gaXMgc2Vla2FibGUKCSAgVXBzdHJlYW0gbWlnaHQgc3VwcG9ydCBwdWxsIG1vZGUsIGJ1dCBvbmx5IHNlcXVlbnRpYWwgcHVsbHMsCgkgIHdoaWNoIGlzbid0IGdvbm5hIGRvIG11Y2ggZm9yIHVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0OTI3CgoyMDEyLTA5LTEwIDIwOjMwOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZy10by0wLjExLnR4dDogc29tZSBtaW5vciBmaXhlcwoKMjAxMi0wOS0xMCAxNjo1Mjo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogZnJlZSBpbmZvIHN0cnVjdHVyZSB3aXRoIHNhbXBsZSBpZiB0aGVyZSBpcyBvbmUgYW5kIGZpeCBjb3B5IHdpdGggTlVMTCBpbmZvIHN0cnVjdHVyZQoKMjAxMi0wOS0xMCAxMjoyMDoxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIHBhZGRpbmcgdG8gR3N0TWFwSW5mbwoKMjAxMi0wOS0xMCAxMjoxMjowMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgbGliczogYWRqdXN0IGNvbW1lbnQgc3R5bGUKCjIwMTItMDktMTAgMTI6MTE6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdDogcmVtb3ZlIHNvbWUgZGVmdW5jdCBjb21tZW50ZWQgY29kZQoKMjAxMi0wOS0xMCAxMjowMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGltcHJvdmUgcG9ydGluZyBkb2MKCjIwMTItMDktMTAgMTA6MDg6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiBkaXNhYmxlIGRlcHJlY2F0aW9uIHdhcm5pbmdzCgkgIGRlZmluZSBHTElCX0RJU0FCTEVfREVQUkVDQVRJT05fV0FSTklOR1MgZWFybGllciBzbyB0aGF0IGl0IGlzIGRlZmluZWQgYmVmb3JlCgkgIHRoZSBnbGliIGhlYWRlcnMgYXJlIGxvYWRlZCBvciBlbHNlIHdlIHRyaXAgb3ZlciB0aGUgR1ZhbHVlQXJyYXkgZGVwcmVjYXRpb25zIGluCgkgIGdzdC1pbnNwZWN0LmMuCgoyMDEyLTA5LTA3IDAxOjAyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBmaXggZGlyZWN0IGNvbnRyb2wgYmluZGluZyBkb3VibGUgLT4gaW50IGNvbnZlcnNpb24KCSAgUm91bmQgcHJvcGVybHkgdG8gbmVhcmVzdCBpbnRlZ2VyLiBGaXhlcyBjb250cm9sbGVyCgkgIHVuaXQgdGVzdCBvbiBQb3dlclBDIEc0LgoKMjAxMi0wOS0wNiAxNTowNjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IGZpeCBidXMvZmQgbGVhayBpbiBoZWxsbyB3b3JsZCBleGFtcGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM0NzAKCjIwMTItMDktMDUgMTk6NTU6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00OiBmaXggYWN0aW9uLWlmLWZvdW5kIGFuZCBub3QtZm91bmQgaW52b2NhdGlvbgoJICBBcmd1bWVudHMgZ290IHNoaWZ0ZWQgYmFjayBieSBvbmUuCgoyMDEyLTA5LTA1IDE1OjM3OjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGhhbmRsZSBHQVAgZXZlbnQKCjIwMTItMDktMDQgMTI6MTM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHdhaXRfZW9zIC0+IHdhaXRfZXZlbnQKCSAgRml4IGEgRklYTUUuIE5vdyB3ZSBjYW4gYWxzbyBwYXNzIHRoZSBHQVAgZXZlbnQgdG8gdGhlIHN1YmNsYXNzLgoKMjAxMi0wOS0wMyAxODo0NTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiB1cGRhdGUgTWFrZWZpbGUuYW0gYW5kcm9pZCBiaXRzIGluIGNvbnRyb2xsZXIgZXhhbXBsZQoJICBTaG91bGQgZml4IGJ1aWxkIGZhaWx1cmUgcmVwb3J0ZWQgb24gSVJDLgoKMjAxMi0wOC0zMCAxOToxNTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBzdGlja3kgZXZlbnRzIGFsc28gYWZ0ZXIgcGFkIGJsb2NrCgkgIFJlY2hlY2sgZm9yIHN0aWNreSBldmVudHMgYWZ0ZXIgZG9pbmcgYSBwYWQgYmxvY2sgYmVjYXVzZSB0aGUgcGFkIGJsb2NrIGNvdWxkCgkgIGhhdmUgY2F1c2VkIGEgcmVsaW5rIGFuZCB0aGVuIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBldmVudHMgdG8gdGhlIG5ld2x5IGxpbmtlZAoJICBwYWQuCgkgIEZpeGVzIHRoaW5ncyBsaWtlIHN3aXRjaGluZyBvZiB2aXN1YWxpc2F0aW9ucy4KCjIwMTItMDktMDIgMDI6MDQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBmb3IgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uIC0+IF9kdXJhdGlvbl9jaGFuZ2VkKCkKCjIwMTItMDktMDIgMDE6MTc6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogcmVuYW1lIEdTVF9NRVNTQUdFX0RVUkFUSU9OIC0+IEdTVF9NRVNTQUdFX0RVUkFUSU9OX0NIQU5HRUQKCSAgVGhlIGR1cmF0aW9uIHNob3VsZCBiZSByZS1xdWVyaWVkIHZpYSBhIHF1ZXJ5IHVzaW5nIHRoZQoJICBub3JtYWwgcGF0aCwgd2UgZG9uJ3Qgd2FudCBhcHBsaWNhdGlvbnMgdG8gdXNlIHRoZSB2YWx1ZQoJICBmcm9tIHRoZSBtZXNzYWdlIGl0c2VsZiwgc2luY2UgaXQgbWlnaHQgbm8gbWF0Y2ggd2hhdCBhCgkgIGR1cmF0aW9uIHF1ZXJ5IGRvbmUgZnJvbSB0aGUgc2luayB1cHN0cmVhbSBtaWdodCB5aWVsZC4KCSAgQWxzbyBkaXNhYmxlcyBkdXJhdGlvbiBjYWNoaW5nIGluIEdzdEJpbi4gSXQgc2hvdWxkIGJlCgkgIGFkZGVkIGJhY2sgYWdhaW4gYXQgc29tZSBwb2ludC4KCjIwMTItMDktMDEgMjM6NTQ6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYWRkIHJlbWluZGVyIHRvIHJlbW92ZSBHU1RfVU5TVEFCTEVfQVBJIHN0dWZmIGJlZm9yZSAxLjAuMAoKMjAxMi0wOS0wMSAxODowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIC5naXRpZ25vcmU6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQ6IHJlbmFtZSBBTV9HU1RfRUxFTUVOVF9DSEVDSyB0byBHU1RfRUxFTUVOVF9DSEVDSwoJICBBbmQgYWxsb3cgcGFzc2luZyBvZiBhIG1pbmltdW0gdmVyc2lvbiAoaWYgbm90IG5lZWRlZCwgcGFzcyAxLjApLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTY4CgoyMDEyLTA5LTAxIDE3OjUwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IGFkZCBjaGVjayBmb3IgZ3N0LWluc3BlY3QgLS1leGlzdHMgZnVuY3Rpb25hbGl0eQoKMjAxMi0wOS0wMSAxNzo0Nzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBhZGQgLS1leGlzdHMgYW5kIC0tYXRsZWFzdC12ZXJzaW9uIG9wdGlvbiB0byBnc3QtaW5zcGVjdAoJICBGb3IgY2hlY2tpbmcgaWYgYW4gZWxlbWVudCBleGlzdHMgd2l0aCBhIGdpdmVuIG1pbmltdW0gdmVyc2lvbi4KCSAgV2lsbCB1c2UgdGhhdCBpbiBvdXIgbmV3IEdTVF9FTEVNRU5UX0NIRUNLIG00IG1hY3JvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTY4CgoyMDEyLTA5LTAxIDE3OjMyOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGRpc2FibGUgdmVyc2lvbiBtYW5nbGluZyBmb3IgcG9zdC0xLjAuMCByZWxlYXNlCgkgIEp1c3QgaW4gY2FzZSB3ZSBkb24ndCBncmVwIGZvciBGSVhNRSAxLjAgYmVmb3JlIHRoZSByZWxlYXNlLgoKMjAxMi0wOC0zMSAxMTozMTo0NSAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBHQVAgZXZlbnRzIGFjdHVhbGx5IHRyaWdnZXIgcHJlcm9sbAoJICBTbGlnaHRseSBoYWNreSBhcHByb2FjaCBuZWVkaW5nIHJlZmluZW1lbnQKCjIwMTItMDgtMzEgMDY6MjU6MjIgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBtYWtlIHNvbWUgZGVidWcgc3RhdGVtZW50cyBtb3JlIHZlcmJvc2UKCjIwMTItMDgtMzEgMDY6MjM6NTMgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZ2hvc3RwYWQ6IE1ha2Ugc29tZSBkZWJ1Z2dpbmcgbW9yZSB2ZXJib3NlCgkgIEFsc28sIHJlbW92ZSBhbiB1bm5lY2Vzc2FyeSAjaW5jbHVkZSBpbiBpbnB1dC1zZWxlY3RvcgoKMjAxMi0wOC0yOCAxNTo0NDo0OCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgR3N0U2VnbWVudDogRml4IGRvYyBkZXNjcmlwdGlvbiBzdHJpbmcgbGFzdF9zdG9wLT5wb3NpdGlvbgoKMjAxMi0wOC0zMCAxOTo0Nzo1NyArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNsb2NrIGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk5NwoKMjAxMi0wOC0yOSAyMjo1NzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogb3V0cHV0IGdzdC1pbnNwZWN0IGVycm9ycyB0byBzdGRlcnIKCjIwMTItMDgtMjggMDc6Mzk6NTAgKzAyMDAgIEFsYmFuIEJyb3dhZXlzIDxwcmFoYWxAeWFob28uY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY3Jhc2ggc2VyaWFsaXNpbmcgYSAwIGZsYWdzIHZhbHVlIHdoZW4gdGhlcmUncyBubyBuYW1lIGZvciBpdAoJICBGaXhlcyBzZWdmYXVsdCB3aGVuIGRvaW5nIGdzdC1sYXVuY2gtMS4wIC12IC1tIGNhbWVyYWJpbgoJICAoZW5jb2RlYmluIG5vdGlmaWVzIGEgMCB2YWx1ZSBmb3IgaXRzICJmbGFnIiBwcm9wZXJ0eSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NTgKCjIwMTItMDgtMjQgMjM6MTQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbG9nIHBlcmZvcm1hbmNlIHdhcm5pbmcgZGVidWcgbWVzc2FnZSBpZiBnbGliIGVtdWxhdGVzIGF0b21pYyBvcHMKCjIwMTItMDgtMjMgMTM6NTE6MjcgKzAxMDAgIExpb25lbCBMYW5kd2VybGluIDxsbGFuZHdlcmxpbkBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogdXNlIGNvbmZpZ3VyZS1kZXRlY3RlZCBvciBleHRlcm5hbGx5IHByb3ZpZGVkIGdsaWItbWtlbnVtcwoJICBUbyBlYXNlIGNyb3NzLWNvbXBpbGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NjIwCgoyMDEyLTA4LTIyIDEzOjI5OjM0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2NjhhY2VlIHRvIDRmOTYyZjcKCjIwMTItMDgtMjIgMTM6MTQ6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBndGstZG9jIHJlcSB0byAxLjEyIChtYXItMjAwOSkKCSAgVGhpcyBhbGxvd3MgdXMgdG8gZS5nLiB1bmNvbmRpdGlvbmFsbHkgdXNlIGd0a2RvYy1yZWJhc2UuCgoyMDEyLTA4LTIxIDEzOjMwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBfbWFrZV93cml0YWJsZQoKMjAxMi0wOC0yMSAwMDowMzozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gc29tZSBtZWRpYSB0eXBlIGNoYW5nZXMgaW4gcG9ydGluZy10by0wLjExLnR4dCBkb2MKCjIwMTItMDgtMjAgMTM6NTE6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWlub3IgdXBkYXRlIHRvIHBvcnRpbmcgZG9jIGZvciBjaGlsZCBwcm94eSBsb29rdXAgbWV0aG9kCgkgIEFuZCBhIHR5cG8gZml4LgoKMjAxMi0wOC0yMCAxMTozMTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBtYWtlIGEgY29weSB3aXRoIHRoZSBzYW1lIGFsaWdubWVudAoJICBXaGVuIG1ha2luZyBhIGNvcHkgb2YgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSB0aGUgZGVmYXVsdCBtZW1vcnkgYWxsb2NhdG9yLAoJICBtYWtlIHN1cmUgdGhlIG5ldyBjb3B5IGhhcyB0aGUgc2FtZSBhbGlnbm1lbnQgYXMgdGhlIG9yaWdpbmFsIG1lbW9yeS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA3OTYKCjIwMTItMDgtMTkgMTc6NTE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2Ugc2Vla2luZyBpbiBERUZBVUxUIGZvcm1hdCB3b3JrIGlmIHRoZSBzdWJjbGFzcyBjYW4gY29udmVydCBmb3IgdXMKCSAgV2Ugb25seSBkZWFsIGluIFRJTUUgZm9ybWF0IG91cnNlbHZlcywgYnV0IGlmIHRoZSBzdWJjbGFzcyBjYW4gaGFuZGxlCgkgIGNvbnZlcnRpbmcgb3RoZXIgZm9ybWF0cyBpbnRvIFRJTUUgZm9ybWF0LCB3ZSBjYW4gc3VwcG9ydCB0aGF0IHRvby4KCSAgRml4ZXMgc2Vla2luZyBpbiBERUZBVUxUIChzYW1wbGUpIGZvcm1hdCB3aXRoIGZsYWNwYXJzZSwKCSAgYW5kIHRoZSBmbGFjZGVjIHVuaXQgdGVzdC4KCjIwMTItMDgtMTggMjE6NDI6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtaW5vciBmaXhlcyB0byBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDEyLTA4LTE3IDEyOjIzOjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGltcGxlbWVudCBjaGlsZF9wcm94eSBzdXBwb3J0CgkgIEVsZW1lbnRzIHN1Y2ggYXMgdGhlIEdzdElpckVxdWFsaXplck5CYW5kcyB3b3VsZCBzbyBmYXIgbm90IHN0b3JlIHRoZSBwcm9wZXJ0aWVzCgkgIG9mIHRoZWlyIGNoaWxkcmVuLiBOb3cgd2UgYWxzbyBncmFiIHRoZSBwcm9wZXJ0aWVzIG9mIGNoaWxkIGVsZW1lbnRzIGFuZCB0cnkgdG8KCSAgcmVzdG9yZSB0aGVtLgoKMjAxMi0wOC0xNCAxODo0NDozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogV2FpdCBmb3Igb3RoZXIgc3RyZWFtcyB0byBhZHZhbmNlIG9uIHVuc2VsZWN0ZWQgcGFkcwoJICBPdGhlcndpc2Ugd2UgZW5kIHVwIGRyb3BwaW5nIGEgbG90IG9mIGRhdGEgaW4gdGhlIGNhc2Ugd2hlcmUgZGF0YSBzdGFydHMKCSAgYXJyaXZpbmcgb24gdGhlIG5vbi1zZWxlY3RlZCBwYWQsIHJlc3VsdGluZyBpbiBiaWcgZ2FwcyBpbiBzdHJlYW0gc3dpdGNoaW5nCgoyMDEyLTA4LTE0IDE4OjQzOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNb3JlIGRlYnVnIHN0YXRlbWVudHMKCjIwMTItMDgtMTQgMTg6NDI6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IGZvcndhcmQgc3RyZWFtLXN0YXJ0IHN0aWNreSBldmVudHMKCSAgT25seSBvbmUgU1RSRUFNX1NUQVJUIGV2ZW50IHNob3VsZCBiZSBsZXQgdGhyb3VnaCwgZWxzZSBpdCB3aWxsCgkgIGNvbmZ1c2UgZG93bnN0cmVhbSBlbGVtZW50cyB0aGF0IHRoaW5rIGEgbmV3IHN0cmVhbSBpcyBzdGFydGluZwoJICB3aGVyZWFzIGluIGZhY3Qgd2UgYXJlIGp1c3Qgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IGlucHV0LgoJICBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IHdhbnQgdG8gbGV0IHRoZW0gdGhyb3VnaCBidXQgd2l0aCB0aGUgc2FtZQoJICBzZXF1ZW5jZSBudW1iZXIuCgoyMDEyLTA4LTE0IDE1OjQ2OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogQWRkIG5ldyBiYXNlc3JjL2Jhc2V0cmFuc2Zvcm0gQVBJIHRvIHRoZSBkb2NzCgoyMDEyLTA4LTA3IDE3OjM4OjUzICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogZ2V0dGVycyBmb3IgcG9vbCBhbmQgYWxsb2NhdG9yCgkgIFNvbWV0aW1lcyBhIHRyYW5zZm9ybSBmaWx0ZXIgd291bGQgbmVlZCB0aGUgYnVmZmVyIHBvb2wgb3IgdGhlIG1lbW9yeQoJICBhbGxvY2F0b3IgbmVnb3RpYXRlZCBieSB0aGUgYmFzZSBjbGFzcywgZm9yIGV4YW1wbGUsIGZvciBxdWVyeWluZyBkaWZmZXJlbnQKCSAgcGFyYW1ldGVycywgc3VjaCBhcyBhIGJpZ2dlciBudW1iZXIgb2YgYnVmZmVycyB0byBhbGxvY2F0ZSBieSB0aGUgYnVmZmVyIHBvb2wuCgkgIFRoaXMgcGF0Y2ggZXhwb3NlIGEgdHdvIGdldHRlcnMgYWNjZXNzb3JzOiBvbmUgZm9yIHRoZSBidWZmZXIgcG9vbCBhbmQgdGhlCgkgIG90aGVyIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvci4KCjIwMTItMDgtMDcgMTc6MzU6NDggKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBnZXR0ZXJzIGZvciBwb29sIGFuZCBhbGxvY2F0b3IKCSAgU29tZXRpbWVzIHRoZSBzb3VyY2VzIHdvdWxkIHVzZSB0aGUgYnVmZmVyIHBvb2wgb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZm9yCgkgIHNvbWV0aGluZyBlbHNlIHRoYW4ganVzdCBhbGxvY2F0aW5nIG91dHB1dCBidWZmZXJzOyBmb3IgZXhhbXBsZSwgcXVlcnlpbmcgZm9yCgkgIGRpZmZlcmVudCBwYXJhbWV0ZXJzLCBzdWNoIGFzIGEgYmlnZ2VyIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlIGJ5IHRoZQoJICBwb29sLgoJICBUaGlzIHBhdGNoIGV4cG9zZSBhIHR3byBnZXR0ZXJzIGFjY2Vzc29yczogb25lIGZvciB0aGUgYnVmZmVyIHBvb2wgYW5kIHRoZQoJICBvdGhlciBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IuCgoyMDEyLTA4LTE0IDAwOjM5OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IHJlbW92ZSBzb21lIHVudXNlZCBhbmQgaW4gdGhlaXIgY3VycmVudCBmb3JtIHBvaW50bGVzcyBBUEkKCSAgTm90IHNvIHVzZWZ1bDoganVzdCBhZGRzL3JlYWRzIHN0dWZmIGZyb20gYW4gaW50ZXJuYWwgR0xpc3Qgd2l0aG91dAoJICBhY3R1YWxseSBkb2luZyBhbnl0aGluZyB3aXRoIHRob3NlIHBhdGhzLCBzbyByZW1vdmUgZm9yIG5vdzoKCSAgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoCgkgIGdzdF9yZWdpc3RyeV9nZXRfcGF0aF9saXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDg4NDEKCjIwMTItMDgtMTIgMTM6Mjc6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IHVwIGZvciBnc3RfY2hpbGRfcHJveHlfbG9va3VwKCkgb25seSB3b3JraW5nIG9uIGNoaWxkIHByb3h5IGludGVyZmFjZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY4MQoKMjAxMi0wOC0xMiAxMzoyNDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IG1ha2UgZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCgpIGEgcHJvcGVyIEdzdENoaWxkUHJveHkgbWV0aG9kCgkgIE5vIGxvbmdlciBhY2NlcHQgYW55IG9sZCBHT2JqZWN0cy4gVGhpcyBtYWtlcyB0aGluZ3MgbmljZXIgZm9yCgkgIGJpbmRpbmdzLiBJZiBhIHV0aWxpdHkgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIGJvdGggbmljZWx5CgkgIGlzIGRlZW1lZCB3b3J0aHdoaWxlLCB3ZSBjYW4gc3RpbGwgYWRkIG9uZSB0byBnc3R1dGlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTY4MQoKMjAxMi0wOC0xMyAwMDowMToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogd2hlbiBzZXJpYWxpc2luZyBhcnJheXMgb3IgbGlzdHMsIGhhbmRsZSB0eXBlcyB3ZSBjYW4ndCBzZXJpYWxpc2UgbW9yZSBncmFjZWZ1bGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEzMjIKCjIwMTItMDgtMTIgMTk6Mzk6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhZGQgc29tZSBtb3JlIGRldGFpbHMgdG8gZmFpbHVyZSBtZXNzYWdlcwoJICBNZW50aW9uIHBhZCB3aGVyZSB0aGUgcHJvYmxlbSBvY2N1cmVkLCBhbmQgdGhlIGV2ZW50IG5hbWUuCgoyMDEyLTA4LTEyIDE4OjM2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGZpeCBjb2xsZWN0cGFkcyB0ZXN0CgkgIEFmdGVyIGFuIEVPUyB3ZSBtdXN0IHNlbmQgYSBGTFVTSF9TVE9QIGV2ZW50IGlmCgkgIHdlIHdhbnQgdG8gc2VuZCBkYXRhIGFnYWluLgoKMjAxMi0wOC0xMiAxODozMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGxlYWsgaW4gZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydCgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgd2lsbCBtYWtlIGEgY29weSBvZiB0aGUgc3RyaW5nCgkgIGV4dHJhY3RlZCwgYnV0IHdlJ3JlIGFzc2lnbmluZyBpdCB0byBhIGNvbnN0IGdjaGFyICouCgoyMDEyLTA4LTEyIDE2OjQwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBtYWtlIHBpcGVsaW5lIHRlc3QgdmFsZ3JpbmQgY2xlYW4KCjIwMTItMDgtMTIgMTY6Mzc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBmaXggcGlwZWxpbmUgdW5pdCB0ZXN0CgkgIFdoaWNoIHdhcyBkaXNhYmxlZCBiZWNhdXNlIGl0IGZhaWxlZC4KCjIwMTItMDgtMTIgMTU6NDg6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogZml4IHVudGVybWluYXRlZCBxdW90ZWQgc3RyaW5nIGluIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaAoKMjAxMi0wOC0xMiAwMDoxMjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gZ3N0X3ZpZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKCkgaW4gcG9ydGluZyBndWlkZQoKMjAxMi0wOC0xMSAyMjoxOTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZpeCB1cCBkb2NzIGEgYml0CgoyMDEyLTA4LTExIDIyOjE4OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IHVwIGctaSBhbm5vdGF0aW9uIGZvciBfbG9va3VwKCkgcGFyYW1zcGVjIHJldHVybiB2YWx1ZQoJICBObyByZWYgaXMgcmV0dXJuZWQgaGVyZS4KCjIwMTItMDgtMTEgMjI6MTc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBidWZmZXIgZnVuY3Rpb25zCgoyMDEyLTA4LTEwIDIyOjU4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjayB3aXRoIHVwc3RyZWFtIGRlbXV4ZXJzIHRoYXQgc3VwcG9ydCBpdAoJICBEb24ndCBqdXN0IHJldHVybiBGQUxTRSBmb3Igc2VlayBldmVudHMgd2l0aCBuZWdhdGl2ZSByYXRlcyB3aGVuCgkgIG9wZXJhdGluZyBpbiBwdXNoIG1vZGUuIEFuIHVwc3RyZWFtIGRlbXV4ZXIgbWF5IHN1cHBvcnQgdGhpcyBqdXN0CgkgIGZpbmUsIHNvIGlmIHdlJ3JlIG5vdCBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIGFsd2F5cyBjaGVjayB1cHN0cmVhbQoJICBmaXJzdCBpZiBpdCBjYW4gaGFuZGxlIHRoZSBzZWVrIGV2ZW50LiBUaGlzIGZpeGVzIHJldmVyc2UgcGxheWJhY2sKCSAgd2hlcmUgdGhlIHVwc3RyZWFtIGRlbXV4ZXIgc3VwcG9ydHMgaXQgKGUuZy4gd2l0aCBxdGRlbXV4KS4gVGhlCgkgIHNhbWUgY29kZSB3b3VsZCB3b3JrIGZpbmUgaW4gMC4xMCwgYmVjYXVzZSBiYXNlcGFyc2Ugd2lsbCBqdXN0CgkgIGNhbGwgdGhlIGRlZmF1bHQgcGFkIGV2ZW50IGhhbmRsZXIgaWYgRkFMU0Ugd2FzIHJldHVybmVkIGZyb20gdGhlCgkgIGJhc2VwYXJzZSBldmVudCBoYW5kbGVyLCBhbmQgdGhlIHBhZCBldmVudCBoYW5kbGVyIHdpbGwganVzdAoJICBmb3J3YXJkIGl0IHVwc3RyZWFtLiBJbiAwLjExIHRoZSBiYXNlY2xhc3Mgb3Igc3ViY2xhc3MgaXMKCSAgcmVzcG9uc2libGUgZm9yIGNoYWluaW5nIHVwIHRvIHRoZSBwYXJlbnQgY2xhc3Mgb3IgZm9yd2FyZGluZyB0aGUKCSAgZXZlbnQgdXBzdHJlYW0gaW4gYW55IGNhc2UuCgkgIERpc2FibGUgcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUgZm9yIG5vdywgdGhlcmUgc2VlbXMgdG8KCSAgYmUgc29tZXRoaW5nIGdvaW5nIHdyb25nIHdpdGggdGhlIHNlZ21lbnQgY29uZmlndXJhdGlvbiBpbiB0aGF0CgkgIGNhc2UuCgoyMDEyLTA4LTA0IDExOjQ4OjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG8gbm90IGVycm9yIG9uIG5vdC1uZWdvdGlhdGVkCgkgIERvbid0IGVycm9yIG91dCB0b28gZWFybHkgYW5kIGxldCB1cHN0cmVhbSBkZWNpZGUgaWYgaXQgY2FuCgkgIHdvcmthcm91bmQgYSBub3QtbmVnb3RpYXRlZCBwcm9ibGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDgtMDQgMTE6NDg6MTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXRyeSBvbiBub3QtbmVnb3RpYXRlIGlmIGEgcmVjb25maWd1cmUgaXMgcGVuZGluZwoJICBCZWZvcmUgZXJyb3Jpbmcgb3V0IG9uIG5vdC1uZWdvdGlhdGVkIHJldHVybnMsIGNoZWNrIGlmIHRoZSBwYWQKCSAgaGFzIHRoZSByZWNvbmZpZ3VyZSBmbGFnIHNldCBhbmQgcmV0cnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDgtMDQgMTE6NDI6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9uZWVkc19yZWNvbmZpZ3VyZQoJICBBZGQgYW4gYWx0ZXJuYXRpdmUgdmVyc2lvbiBvZiBnc3RfcGFkX2NoZWNrX3JlY29uZmlndXJlIHRoYXQgZG9lc24ndAoJICBjbGVhciB0aGUgcmVjb25maWd1cmUgZmxhZy4KCSAgVXNlZnVsIGZvciBpbmNyZWFzaW5nIGVycm9yIHJlc2lsaWVuY2Ugd2l0aG91dCBkdXBsaWNhdGluZyB0aGUKCSAgcmVjb25maWd1cmUgY29kZSBpbiBwYWQgdGFzayBmdW5jdGlvbnMuCgkgIEFQSTogZ3N0X3BhZF9uZWVkc19yZWNvbmZpZ3VyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA3LTI5IDE1OjQ0OjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgR1NUX1BBRF9MSU5LX0NIRUNLX0RFRkFVTFQgdG8gR3N0UGFkTGlua0NoZWNrCgkgIFRoaXMgYWxsb3dzIGludHJvc3BlY3Rpb24tYmFzZWQgYmluZGluZ3MgdG8gYWNjZXNzCgkgIEdzdC5QYWRMaW5rQ2hlY2suREVGQVVMVCBpbnN0ZWFkIG9mCgkgIEdzdC5QQURfTElOS19DSEVDS19ERUZBVUxULgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTI5IDE0OjU3OjQxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBtYXJrIGdzdF9idWZmZXJfd3JhcHBlZCogZGF0YSBhcyBhcnJheQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTI0IDEzOjI2OjAwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICBpbnRyb3NwZWN0aW9uOiBmaXggc29tZSB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgZy1pci1zY2FubmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA3LTMwIDIxOjQ2OjE4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGNvbnZlcnQgZ3N0X2J1ZmZlcl8qIG1hY3JvcyB0byBmdW5jdGlvbnMKCSAgR09iamVjdCBJbnRyb3NwZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgbWFjcm9zLgoJICBUaGlzIGlzIG5lZWRlZCBmb3IgYmluZGluZ3MuIFdlIGNhbiBzdGlsbCBhZGQgYmFjawoJICBtYWNyb3Mgb3IgaW5saW5lIGZ1bmN0aW9ucyBhZ2FpbiBsYXRlciBpZiB3ZSB0aGluawoJICBpdCdzIHdvcnRoIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MzAxCgoyMDEyLTA4LTEwIDEzOjUwOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogZml4IHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoKMjAxMi0wOC0xMCAxMjoyMzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBtYXhfYnVmZmVycyBoYW5kbGluZwoJICBXaGVuIG1heF9idWZmZXJzID4gMCBhbmQgdGhlIHBvb2wgaXMgZW1wdHksIGFjdHVhbGx5IHRyeSB0byBhbGxvY2F0ZSBtb3JlCgkgIGJ1ZmZlcnMgdXAgdG8gdGhlIG1heF9idWZmZXJzIGxpbWl0LgoJICBXZSBuZWVkIHRvIGFkZCBhIGNvdW50ZXIgZm9yIHRoaXMgdG8gY291bnQgaG93IG1hbnkgYnVmZmVycyB3ZSBhbGxvY2F0ZWQgYW5kCgkgIGNoZWNrIHRoaXMgYWdhaW5zdCB0aGUgbWF4X2J1ZmZlcnMgbGltaXQuCgkgIFJlb3JnYW5pc2UgYW5kIGNsZWFuIHVwIHNvbWUgY29kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE1MwoKMjAxMi0wOC0xMCAwOToxOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogc2ltcGxpZnkgYnkgdXNpbmcgZ19zb2NrZXRfY29uZGl0aW9uX3RpbWVkX3dhaXQoKQoJICBObyBuZWVkIHRvIHVzZSBhIGN1c3RvbSBtYWluIGNvbnRleHQgYW5kIGN1c3RvbSB0aW1lb3V0IHNvdXJjZXMsCgkgIGp1c3QgdXNlIGdfc29ja2V0X2NvbmRpdGlvbl90aW1lZF93YWl0KCkgaW5zdGVhZCwgd2hpY2ggd2FzIGFkZGVkCgkgIGZvciBleGFjdGx5IHRoaXMgY2FzZS4KCSAgQWxzbyBzZWVtcyB0byBoZWxwIHdpdGggdGhlIHVuaXQgdGVzdCBkZWFkbG9ja2luZyB3aXRoIGdsaWIgMi4zMy54CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE1NzUKCjIwMTItMDgtMDkgMTk6MTU6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGZpeCBkb3VibGUgc3RyaW5nIGVzY2FwaW5nIGluIGdzdF9vYmplY3RfZGVmYXVsdF9kZWVwX25vdGlmeSgpCgkgIE1ha2Ugb3V0cHV0IG9mIGdzdC1sYXVuY2ggLXYgcmVhZGFibGUgYWdhaW4uCgkgIGxhc3QtbWVzc2FnZSA9ICJldmVudFwgXCBcIFwqXCpcKlwqXCpcKlwqXCBcKGZha2VzaW5rMDpzaW5rXClcIEVcIFwodHlwZTpcIHRhZ1wgXCgyMDUxMFwpXCxcIEdzdFRhZ0xpc3Qtc3RyZWFtXCxcIHRhZ2xpc3RcPVwodGFnbGlzdFwpXCJ0YWdsaXN0XFxcLFxcXCB2aWRlby1jb2RlY1xcXD1cXFwoc3RyaW5nXFxcKUgyNjRcXFwsXFxcCgkgIG1pbmltdW0tYml0cmF0ZVxcXD1cXFwodWludFxcXCk2MzY2MTFcXFwsXFxcIGJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpOTgwNzI5XFxcLFxcXCBtYXhpbXVtLWJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpMTExNjcwN1xcXDtcIlw7XClcIDB4MTViYzc2MCIKCSAgdnMuCgkgIGxhc3QtbWVzc2FnZSA9IGV2ZW50ICAgKioqKioqKiAoZmFrZXNpbmswOnNpbmspIEUgKHR5cGU6IHRhZyAoMjA1MTApLCBHc3RUYWdMaXN0LXN0cmVhbSwgdGFnbGlzdD0odGFnbGlzdCkidGFnbGlzdFwsXCB2aWRlby1jb2RlY1w9XChzdHJpbmdcKUgyNjRcLFwgbWluaW11bS1iaXRyYXRlXD1cKHVpbnRcKTg1NjAzOVwsXCBiaXRyYXRlCgkgIFw9XCh1aW50XCkxMDE5NzQ4XCxcIG1heGltdW0tYml0cmF0ZVw9XCh1aW50XCkxMTE2NzA3XDsiOykgMHgxMTE0OWUwCgoyMDEyLTA4LTA5IDE2OjE4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2hlY2sgd3JpdGFiaWxpdHkKCSAgZml4IHRoZSB3cml0YWJpbGl0eSBjaGVjayBmb3IgbWluaW9iamVjdHMuIFdlIHNob3VsZCBjaGVjayB0aGUgc2hhcmVkIGNvdW50ZXIuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE0NTAKCjIwMTItMDgtMDggMTY6MDg6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IFNldCB0aGUgYWxpZ25tZW50IGF0IHRoZSBjb3JyZWN0IHBsYWNlIGluIEdzdEFsbG9jYXRpb25QYXJhbXMKCjIwMTItMDgtMDggMTY6MTg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTMgPT09CgoyMDEyLTA4LTA4IDE1OjA1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjkzCgoyMDEyLTA4LTA4IDE0OjQ5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBzaWxseSB0ZXN0X2ZhaWxfYWJzdHJhY3RfbmV3IGNoZWNrCgkgIE91ciBjaGVjayB3b3VsZCBtYWtlIHN1cmUgdGhhdCBHTGliIHNlZ2ZhdWx0cyB3aGVuCgkgIHNvbWVvbmUgdHJpZXMgdG8gaW5zdGFudGlhdGUgYW4gYWJzdHJhY3QgdHlwZSwgd2hpY2gKCSAgaXMgYW4gZXh0cmVtZWx5IHVzZWZ1bCB0aGluZyB0byBjaGVjayBmb3IuCgkgIEluIG5ld2VyIEdMaWJzIHRoaXMgaXMgZml4ZWQgYW5kIHdlIGdldCBhbiBhYm9ydCB3aXRoCgkgIGEgZ19lcnJvcigpIG5vdyBpdCBzZWVtcywgc28gbGV0J3MganVzdCByZW1vdmUgdGhpcwoJICBjaGVjayBlbnRpcmVseS4KCjIwMTItMDgtMDggMDk6NTM6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGVzOiBkb24ndCBwdXQgdGhpbmdzIHdpdGggc2lkZSBlZmZlY3RzIGluc2lkZSBnX2Fzc2VydCgpCgkgIFRoZXkgd2lsbCBiZSBkZWZpbmVkIGF3YXkgdG8gTk9PUHMgb3RoZXJ3aXNlIGluIHJlbGVhc2UgYnVpbGRzLgoKMjAxMi0wOC0wOCAwOToxMzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGZvciBzdHJlYW0taWQgQVBJIGFkZGl0aW9ucwoKMjAxMi0wOC0wOCAwMDo1NDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggZm9yIG5ldyBHc3RDaGlsZFByb3h5OjpjaGlsZC1hZGRlZCBzaWduYWwgY2FsbGJhY2sgc2lnbmF0dXJlCgkgIEZpeGVzIGNyYXNoIHdpdGggZ3N0LWxhdW5jaC0xLjAgdXJpZGVjb2RlYmluIHVyaT0uLi4gc3VidXJpPS4uLiAhIC4uCgoyMDEyLTA4LTA3IDEwOjQ2OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgYWxsb3ctbm9uZSB0byB0aGUgZnVuY3Rpb24gYXJndW1lbnQgb2YgZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTEzOQoKMjAxMi0wOC0wNiAxNjozMzo1NyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9jczogTWFrZSBzdXJlIHNjYW5uZXIgZ2V0cyByZXF1aXJlZCBsaWJyYXJpZXMKCjIwMTItMDgtMDYgMjA6MDg6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogcHJpbnQgd2hpY2ggZXZlbnQgd2UgcmVjZWl2ZWQgYmVmb3JlIHN0cmVhbS1zdGFydAoKMjAxMi0wOC0wNiAyMDowNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgdHJ5IHRvIGFuc3dlciBVUkkgcXVlcmllcyB3aXRoIE5VTEwgVVJJcwoJICBTaG91bGQgbWFrZSB1bml0IHRlc3RzIGluIC1iYXNlIHRoYXQgdXNlIGFwcHNyYyBhIGJpdCBoYXBwaWVyLgoKMjAxMi0wNy0yOSAxNDoyNTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiBVcGRhdGUgZm9yIHN0cmVhbS1zdGFydCBldmVudCBBUEkgY2hhbmdlcwoKMjAxMi0wNy0yOCAwODozNzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBldmVudDogQWRkIG5ldyBzdHJlYW0taWQgZmllbGQgdG8gdGhlIHN0cmVhbS1zdGFydCBldmVudAoJICBUaGlzIGlzIHN1cHBvc2VkIHRvIGFsbG93IHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGEgc2luZ2xlIHN0cmVhbS4KCjIwMTItMDctMjcgMTc6NDE6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgZmlyc3QgY3JlYXRlZCBwYWQgYnkgZGVmYXVsdAoJICBUaGlzIGd1YXJhbnRlZXMgYSBiaXQgbW9yZSBjb25zaXN0ZW5jeSBpbiB3aGljaCBpbnB1dCBzdHJlYW0gd2lsbAoJICBiZSBzZWxlY3RlZCBieSBkZWZhdWx0LiBJdCB3b3VsZCBwcmV2aW91c2x5IGJlIHRoZSBmaXJzdCBwYWQgb24gd2hpY2gKCSAgYW4gZXZlbnQvYnVmZmVyL3F1ZXJ5IHdhcyByZWNlaXZlZCAuLi4gd2hpY2ggd2FzIHJhY3kgYW5kIG5vbi1wcmVkaWN0YWJsZS4KCjIwMTItMDctMjcgMTc6Mzg6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogU3BlY2lmeSB0aGUgb3JkZXIgb2YgcGFkIGl0ZXJhdG9ycwoJICBUaGUgb3JkZXIgb2YgcmV0dXJuZWQgcGFkcyB3YXNuJ3Qgc3BlY2lmaWVkIGJlZm9yZSwgc28gbGV0J3Mgc3BlY2lmeQoJICBpdCBhbmQgdXNlIGFuIG9yZGVyIHdoaWNoIG1pZ2h0IHByb3ZlIHRoZSBtb3N0IHVzZWZ1bCA6IHRoZSBvcmRlciBpbgoJICB3aGljaCBwYWRzIHdlcmUgYWRkZWQgdG8gdGhlIGVsZW1lbnQuCgkgIElmIHNvbWVvbmUgY2hhbmdlcyB0aGUgb3JkZXIsIG1ha2Ugc3VyZSB1c2VycyBvZiB0aG9zZSBpdGVyYXRvcnMgZnJvbQoJICBub3cgb24gZG9uJ3QgcmVseSBvbiB0aGF0IG9yZGVyICEKCjIwMTItMDgtMDUgMTc6MTY6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSBkZWZpbmUKCSAgU2tpcHMgYnJva2VuIHRlc3RzIGJ1dCBsb2dzIGFuIEVSUk9SLWxldmVsIG1lc3NhZ2UgdG8KCSAgZHJhdyBhdHRlbnRpb24gdG8gdGhhdCBmYWN0LgoKMjAxMi0wOC0wNSAxNzoxMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdHM6IHVwZGF0ZSAuZ2l0aWdub3JlIGZvciBxdWV1ZWFycmF5IHRlc3QgYmluYXJ5CgoyMDEyLTA4LTA1IDE3OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICB0ZXN0czogZml4IHNwdXJpb3VzIG5ldGNsaWVudGNsb2NrIHRlc3QgZmFpbHVyZXMKCSAgR2l2ZSBjbG9ja3MgYSBiaXQgbW9yZSB0aW1lIHRvIHN5bmNocm9uaXNlLgoKMjAxMi0wOC0wNSAxNjo1OTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZ2VuZXJhdGVkIGZpbGVzCgoyMDEyLTA4LTA1IDE2OjQxOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiB1c2UgZ2VuZXJpYyBtYXJzaGFsbGVyIGZvciAiYmxvY2siIGFjdGlvbiBzaWduYWwKCjIwMTItMDgtMDUgMTY6Mzc6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk0Y2NmNGMgdG8gNjY4YWNlZQoKMjAxMi0wOC0wNCAxMzozNzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXIsIGRlZmF1bHRtZW06IGFkZCBvcHRpb24gdG8gcG9pc29uIG1lbW9yeSBiZWZvcmUgZnJlZWluZyBpdAoJICBNaWdodCBiZSB1c2VmdWwgdG8gdHJhY2sgZG93biBjZXJ0YWluIGJ1Z3MuCgoyMDEyLTA4LTAzIDIzOjU0OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiB0YWdsaXN0IHNjb3BlIGVudW0gaW4gZ3N0X2luaXQoKQoJICBGaXhlcyBtYWtlIGNoZWNrIGFuZCBkaXN0Y2hlY2sKCjIwMTItMDgtMDMgMDA6MDU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogd2FybiBpZiBwbHVnaW4gbmFtZSBzdGFydHMgd2l0aCBhICIKCSAgVGhpcyBjYW4gZWFzaWx5IGhhcHBlbiBhcyBzaWRlLWVmZmVjdCBvZiB0aGUgcGx1Z2luIG5hbWUKCSAgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbm8gbG9uZ2VyIGJlaW5nIGEgc3RyaW5nIGluIDAuMTEsIGJ1dAoJICBhIG5hbWUgdG8gR19TVFJJTkdJRlkuCgoyMDEyLTA4LTAyIDEzOjE5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEgZG9jdW1lbnQgd2l0aCBhICJzb2Z0IiBBUEkgY2hhbmdlcyBjaGVja2xpc3QKCSAgUG9pbnQgb3V0IHNvbWUgQVBJIGNoYW5nZXMgdGhhdCB0aGUgY29tcGlsZXIgd29uJ3QKCSAgYmUgYWJsZSB0byB3YXJuIGFib3V0LgoKMjAxMi0wOC0wMiAxMTozMzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggcHJpbnRpbmcgb2YgcGFydGlhbCBkYXRlcyBpbiBnc3QtbGF1bmNoCgoyMDEyLTA4LTAyIDExOjE1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogcHJpbnQgVE9DIHNjb3BlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGVlNmFiN2M5MzYzOGE2NTE5YWNiOTc2Njk5YTZhZDE0OWQ1MjBhOTUuCgkgIFRoZSBhcHBsaWNhdGlvbiB3aWxsIHByb2JhYmx5IG9ubHkgZXZlciByZWNlaXZlIGdsb2JhbCBUT0NzLAoJICBzbyBkb24ndCByZWFsbHkgbmVlZCB0aGlzLgoKMjAxMi0wOC0wMSAxNzo0OToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyB0YWcgbGlzdCBzY29wZSBzeW1ib2xzCgoyMDEyLTA4LTAxIDExOjU4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHNlbmQgc2VnbWVudF9kb25lIGV2ZW50IGluIGFkZGl0aW9uIHRvIHNlZ21lbnRfZG9uZSBtZXNzYWdlCgoyMDEyLTA3LTMxIDE3OjI1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYmFzZXNyYzogQWRkIGRlZmF1bHQgaGFuZGxlciBmb3IgVVJJIHF1ZXJ5IGluIEdzdFVSSUhhbmRsZXIgc3ViY2xhc3NlcwoKMjAxMi0wNy0yOCAxNzozMzo1MiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgY2hlY2s6IHVuYnJlYWsgZmFpbCAjZGVmaW5lCgkgIFRoZSBmYWlsKCkgZGVmaW5pdGlvbiB3YXMgY2hhbmdlZCB0byBub3QgZmFpbCB3aXRoIG5vbi1HQ0MgY29tcGlsZXJzLAoJICB1bmZvcnR1bmF0ZWx5IHRoZSBjaGFuZ2Ugd2FzIGluY29ycmVjdCBhbmQgYXBwZW5kZWQgdGhlIGZpcnN0IGFyZ3VtZW50CgkgIG9mIGZhaWwgdG8gdGhlIGV4cHJlc3Npb24gc3RyaW5nIGluc3RlYWQgb2YgbWFraW5nIGl0IHRoZSBtZXNzYWdlLgoJICBUaGlzIGNoYW5nZSBkb2VzIG1lYW4gdGhhdCBmYWlsKCkgbm93IHJlcXVpcmVzIGEgbWVzc2FnZSB0byBiZSBwYXNzZWQKCSAgYWxvbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA3NTUKCjIwMTItMDctMjkgMjM6Mzc6MTkgKzAyMDAgIEplbnMgR2VvcmcgPG1haWxAamVuc2dlLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVcGRhdGUgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDgwNQoKMjAxMi0wNy0yOSAyMzoyMDowNyArMDIwMCAgSmVucyBHZW9yZyA8bWFpbEBqZW5zZ2Uub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVcGRhdGUgYW5ub3RhdGlvbiBmb3IgZ2V0X2NvbXBhdGlibGVfcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA4MDQKCjIwMTItMDctMjggMjE6MjM6MjQgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggd3JvbmcgJ2FycmF5IHplcm8tdGVybWluYXRlZD0xJyBhbm5vdGF0aW9uIGZvciBzdHJpbmdzCgoyMDEyLTA3LTI4IDExOjAyOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiB1cGRhdGUgVE9DIGRlc2lnbiBkb2NzIGEgbGl0dGxlCgoyMDEyLTA3LTI4IDA5OjQxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBtYWtlIFRPQyBldmVudCBtdWx0aS1zdGlja3kKCSAgV2UgbmVlZCB0byBzZW5kIHR3byBraW5kcyBvZiBUT0NzIGRvd25zdHJlYW0gYXMgZXZlbnRzLAoJICBhbmQgbmVlZCBib3RoIHRvIHN0aWNrIHRvIHRoZSBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA3LTI4IDA4OjMwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHByaW50IFRPQyBzY29wZQoKMjAxMi0wNy0yNyAyMzo1Njo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogYWRkIEdzdFRvY1Njb3BlIGFuZCByZXF1aXJlIGl0IGluIHRoZSBjb25zdHJ1Y3RvcgoJICBUaGlzIGlzIGJlY2F1c2Ugd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNpZ25hbCBkaWZmZXJlbnQgVE9DcwoJICB0byBkb3duc3RyZWFtIGVsZW1lbnRzIHN1Y2ggYXMgbXV4ZXJzIGFuZCB0aGUgYXBwbGljYXRpb24sCgkgIGFuZCBiZWNhdXNlIHdlIG5lZWQgdG8gc2VuZCBib3RoIHR5cGVzIGFzIGV2ZW50cyAoYmVjYXVzZQoJICB0aGUgc2luayBzaG91bGQgcG9zdCB0aGUgVE9DIG1lc3NhZ2VzIGZvciB0aGUgYXBwIGluIHRoZQoJICBlbmQsIGp1c3QgbGlrZSB0YWcgbWVzc2FnZXMgYXJlIG5vdyBwb3N0ZWQgYnkgdGhlIHNpbmtzKSwKCSAgYW5kIGhlbmNlIG5lZWQgdG8gbWFrZSBUT0MgZXZlbnRzIG11bHRpLXN0aWNreS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNy0yNyAyMzo1NDowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOiBjaGVjayBmb3IgYmFzaWMgYnVpbGQgdG9vbHMgYW5kIGRlcHMKCSAgLi4gYmVmb3JlIGNoZWNraW5nIG91dCBzdHVmZi4KCjIwMTItMDctMjcgMjM6NTI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRhZzogQWRkIGEgc2NvcGUgdG8gdGFnbGlzdHMKCSAgVGhpcyBzcGVjaWZpZXMgaWYgYSBnaXZlbiB0YWdsaXN0IGFwcGxpZXMgdG8gdGhlIGNvbXBsZXRlCgkgIG1lZGl1bSBvciBvbmx5IHRoaXMgc3BlY2lmaWMgc3RyZWFtLiBCeSBkZWZhdWx0IGEgdGFnbGlzdAoJICBoYXMgYSBzdHJlYW0gc2NvcGUuCgkgIEZpeGVzIGJ1ZyAjNjc3NjE5LgoKMjAxMi0wNy0yNyAxNzowOTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFkZCBvZmZzZXQgZmllbGQKCSAgQWRkIGFuIG9mZnNldCBmaWVsZCB0aGF0IGlzIHVzZWQgdG8gdHJhY2sgYXQgd2hhdCBwb3NpdGlvbiB0aGUgc2VnbWVudCB3YXMKCSAgdXBkYXRlZC4gVGhpcyBpcyB1c2VkIHRvIHNldCB0aGUgcnVubmluZyB0aW1lIHRvIDAgd2hlbiB3ZSBkbyBhIGZsdXNoaW5nCgkgIHNlZWsgdGhhdCBkb2Vzbid0IHVwZGF0ZSB0aGUgcG9zaXRpb24uCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMzA2CgoyMDEyLTA3LTI3IDE1OjE5OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXBkYXRlIGZvciBuZXcgc2Vla2luZyB2YXJpYWJsZSBuYW1lCgkgIFdoZW4gc2Vla2luZywgdGhlIHN0YXJ0IHZhbHVlIGFuZCB0eXBlIGFyZSBub3cgY2FsbGVkIHN0YXJ0IGFuZCBzdGFydF90eXBlLgoKMjAxMi0wNy0yNyAxNDo1MzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHNtYWxsIGNsZWFudXAKCSAgTW92ZSB0aGUgY29kZSB0byB1cGRhdGUgdGhlIHNlZ21lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uCgoyMDEyLTA3LTI3IDEyOjA1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUgZG9jcyBhbmQgLmRlZiBmaWxlIGZvciB0YWdsaXN0IEFQSSBjaGFuZ2UKCjIwMTItMDctMjcgMTM6MDI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZW1vdmUgcmVkdW5kYW50IGNoZWNrcwoJICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSBzZWdtZW50IGZvcm1hdCBhbnltb3JlIGJlY2F1c2Ugd2UgYXNzZXJ0ZWQgb24gdGhlbQoJICBiZWluZyBlcXVhbCBiZWZvcmUuCgoyMDEyLTA3LTI3IDEyOjI0OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGltcHJvdmUgc2VnbWVudCB0ZXN0cwoKMjAxMi0wNy0yNyAxMjoxMjozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgYWxsb2NhdG9yOiByZW1vdmUgdXNlcl9kYXRhIGZyb20gYWxsb2Mgdm1ldGhvZAoJICBSZW1vdmUgdGhlIHVzZXJfZGF0YSBmcm9tIHRoZSBhbGxvYyB2bWV0aG9kLiBTdWJjbGFzc2VzIHRoYXQgaW1wbGVtZW50IGEgbmV3CgkgIGFsbG9jIGZ1bmN0aW9uIGNhbiBhbHNvIGltcGxlbWVudCB0aGVpciBvd24gdm1ldGhvZCB0byBwYXNzIGV4dHJhIGFyZ3VtZW50cy4gV2UKCSAgY2FuIHRoZW4gYWxzbyByZXF1aXJlIHRoYXQgY3VzdG9tIGFsbG9jYXRvcnMgaW1wbGVtZW50IGFuIGFsbG9jIGZ1bmN0aW9uIHNvIHRoYXQKCSAgZ3N0X2FsbG9jYXRvcl9hbGxvYygpIGFsd2F5cyB3b3Jrcy4KCjIwMTItMDctMjcgMTA6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogcmVtb3ZlIHNlZ21lbnQgYWNjdW11bGF0aW9uIGNoZWNrcwoJICBSZW1vdmUgdGhlIGNoZWNrcyBiZWNhdXNlIHRoZXJlIGlzIG5vIG1vcmUgc2VnbWVudCBhY2N1bXVsYXRpb24uCgoyMDEyLTA3LTI2IDE2OjQ0OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEgYWxzbyBhIEdzdFNhbXBsZQoJICBUaGF0IHdheSBhZGRpdGlvbmFsIG1ldGEtZGF0YSBjYW4gYmUgcGFzc2VkIGFsb25nIHdpdGggaXQuCgoyMDEyLTA3LTI2IDE1OjUxOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdsaXN0OiBnc3RfdGFnX2xpc3RfZ2V0X2J1ZmZlciooKSA9PiBnc3RfdGFnX2xpc3RfZ2V0X3NhbXBsZSooKQoJICBJbWFnZSB0YWdzIGFuZCBvdGhlciB0YWdzIGFyZSBub3cgb2YgR3N0U2FtcGxlIHR5cGUuCgoyMDEyLTA3LTI2IDE1OjI2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCBpbWFnZSB0YWdzIGFuZCBvdGhlciBHc3RTYW1wbGUgdGFncyBwcm9wZXJseQoJICBUaGVzZSB0YWdzIGFyZSBub3cgb2YgdHlwZSBHc3RTYW1wbGUgbm90IEdzdEJ1ZmZlci4KCjIwMTItMDctMjQgMjE6Mzg6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgYXBpCgkgIFdlIGNhbiBhbHdheXMgYWRkIHRoaXMgYmFjayBpZiB3ZSBuZWVkIGl0LiBGaXhlcyBwYXJ0cyBvZiAjNjcwODUyLgoKMjAxMi0wNy0yNCAxMzo0OTozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gYWNjb3VudCBmb3IgZnJhbWUgc2l6ZSB3aGVuIG1lcmVseSBzY2FubmluZyBmb3IgZnJhbWUKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDQ5NQoKMjAxMi0wNy0yNCAxMzo0ODozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwYXJhbWV0ZXIKCjIwMTItMDctMjQgMTI6Mzg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcmVxdWlyZSBieXRlcyBiZWZvcmUgdHlwZWZpbmRpbmcKCSAgUmVxdWlyZSB0aGF0IHdlIGhhdmUgc29tZSBieXRlcyBpbiB0aGUgYWRhcHRlciBiZWZvcmUgd2UgYXR0ZW1wdCB0byB0eXBlZmluZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDQ3OQoKMjAxMi0wNy0yMyAxODo0OToxMyArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcwoKMjAxMi0wNy0yMyAxNjoyNzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IHBhc3MgaW5kZXggYXMgZ2ludCB0byBfaW5zZXJ0CgkgIE1ha2UgdGhlIGlkeCBhcmd1bWVudCBvZiBfaW5zZXJ0KCkgYSBnaW50IGJlY2F1c2Ugd2UgYWxsb3cgLTEgYXMgYSB2YWx1ZS4KCSAgSW1wcm92ZSBhbm5vdGF0aW9uLgoKMjAxMi0wNy0yMyAxMzo0MDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgcGx1Z2luczogcHJpbnQgZmxhZ3MgYmV0dGVyCgkgIHByaW50IHRoZSBidWZmZXIgZmxhZ3MgYXMgYSBoZXggbnVtYmVyIHNvIHRoYXQgaXQgYmVjb21lcyBlYXNpZXIgdG8gc2VlIHdoYXQKCSAgZmxhZ3MgYXJlIHNldC4KCjIwMTItMDctMTggMTc6MDM6NDUgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogSW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2Ugd2hlbiByZS1hZGRpbmcgZmQgdG8gZmRzZXQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDE4MQoKMjAxMi0wNy0yMyAwODo0NDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk4ZTM4NmYgdG8gOTRjY2Y0YwoKMjAxMi0wNy0yMCAwMDo0OToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgR3N0VGFnTGlzdCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbgoJICBTbyB3ZSBjYW4gc2VyaWFsaXNlL2Rlc2VyaWFsaXNlIHRhZ2xpc3RzIGluc2lkZSBzdHJ1Y3R1cmVzLAoJICB3aGljaCB1c2VkIHRvIHdvcmsgYXV0b21hZ2ljYWxseSBiZWZvcmUgYmVjYXVzZSBHc3RUYWdMaXN0CgkgIHdhcyBqdXN0IGEgdHlwZWRlZiB0byBHc3RTdHJ1Y3R1cmUgKHNhbWUgZm9yIHRoZSBHVHlwZSksCgkgIGJ1dCBub3cgdGhhdCBpdCdzIGEgc2VwYXJhdGUgR1R5cGUgd2UgbmVlZCB0byByZWdpc3RlcgoJICBleHBsaWNpdCBmdW5jdGlvbnMgZm9yIHRoaXMuCgkgIEhlbHBzIHdpdGggR0RQIHN0dWZmIGluIHBpcGVsaW5lcy9zdHJlYW1oZWFkZXIgdGVzdHMuCgoyMDEyLTA3LTIwIDA5OjM4OjQ3ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNy0xOSAxMzo1MToyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGFkZCB0ZXN0cyBmb3Igc29tZSBtdWxpdHBsZSBtYXAgY29tYmluYXRpb25zCgoyMDEyLTA3LTE5IDEzOjM1OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHNoYXJlZG5lc3MgY2hlY2sKCjIwMTItMDctMTkgMTM6MjA6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiByZWZ1c2Ugd3JpdGUgd2hlbiBvYmplY3QgaXMgc2hhcmVkCgkgIEluIGFsbCBjYXNlcywgcmVmdXNlIHRvIHdyaXRlIGFuIG9iamVjdCB3aGVuIGl0IGlzIHNoYXJlZCBieSBtb3JlIHRoYW4gb25lCgkgIG9iamVjdCAoYWxzbyB3aGVuIHRoZSBvYmplY3Qgd2FzIGxvY2tlZCBiZWZvcmUpLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE0NQoKMjAxMi0wNy0xOCAxNToyMTozMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGV4dGVuZCBidWZmZXIgY29weSB0ZXN0CgoyMDEyLTA3LTE5IDEyOjQyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyaW5nLWxlZnQgdG8gMCBvbiAxMDAlIGJ1ZmZlcmluZwoJICBTZXQgdGhlIGJ1ZmZlcmluZy1sZWZ0IGZpZWxkIGluIHRoZSBxdWVyeSB0byAwIHdoZW4gd2UgYXJlIGNvbXBsZXRlbHkgYnVmZmVyZWQuCgkgIEltcHJvdmUgdGhlIGRlYnVnLgoKMjAxMi0wNy0xOSAxMjoxNDoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlcmluZyBxdWVyeQoJICBGaXggdGhlIGJ1ZmZlcmluZyBxdWVyeSwgZmlsbCBpbiB0aGUgcmlnaHQgYnVmZmVyaW5nLWxlZnQgYW5kIGVzdGltYXRlZC10b3RhbAoJICB2YWx1ZXMuCgoyMDEyLTA3LTE5IDEwOjU0OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdGhlIGJ1ZmZlcmluZy1sZWZ0IGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZQoJICBUaGUgYnVmZmVyaW5nLWxlZnQgZmllbGQgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlIHNob3VsZCBjb250YWluIGEgdGltZSBlc3RpbWF0ZQoJICBpbiBtaWxsaXNlY29uZHMgYWJvdXQgZm9yIGxvbmcgdGhlIGJ1ZmZlcmluZyBpcyBnb2luZyB0byB0YWtlLiBXZSBjYW4gY2FsY3VsYXRlCgkgIHRoaXMgdmFsdWUgd2hlbiB3ZSBkbyByYXRlX2VzdGltYXRlcy4KCjIwMTItMDctMTkgMTA6MTQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBpbXByb3ZlIGJ1ZmZlcmluZyBtZXNzYWdlIGRlZmF1bHRzCgkgIFJlbW92ZSB0aGUgZXN0aW1hdGVkLXRvdGFsIGZpZWxkLCB0aGlzIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGUgYnVmZmVyaW5nCgkgIG1lc3NhZ2UuCgkgIFNldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBidWZmZXJpbmctbGVmdCB0byAwIHdoZW4gdGhlIHBlcmNlbnQgaXMgMTAwLgoKMjAxMi0wNy0xOCAxNzo0NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVidWcgbGluZQoJICBVc2UgUVVFUllfVFlQRSBvbiBxdWVyeSB0eXBlcy4KCjIwMTItMDctMTggMTc6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogcmVtb3ZlIGN1c3RvbSBmdW5jdGlvbgoJICBSZW1vdmUgY3VzdG9tIHBhZCBmdW5jdGlvbnMsIHRoZSBkZWZhdWx0IG9uZXMgYXJlIGJldHRlci4KCjIwMTItMDctMTggMTc6MzA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgUFJPWFlfU0NIRURVTElORyBmbGFnCgkgIEFkZCBhIGZsYWcgdGhhdCBtYWtlcyB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIGZvcndhcmQgdGhlIHNjaGVkdWxpbmcgcXVlcnkuCgoyMDEyLTA3LTE4IDE3OjMwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZG9jcwoKMjAxMi0wNy0xOCAxNjoyMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogaW1wcm92ZSBxdWVyeSBjYXBzIGZ1bmN0aW9uCgkgIEluIHRoZSBwcm94eV9xdWVyeV9jYXBzIGZ1bmN0aW9uLCBhbHNvIGZpbHRlciBhZ2FpbnN0IHRoZSBmaWx0ZXIgaW4gdGhlIHF1ZXJ5LgoJICBXZSBkb24ndCBuZWVkIHRvIGZpbHRlciBhZ2FpbnN0IHRoZSBmaWx0ZXIgaW4gdGhlIHF1ZXJ5IGFueW1vcmUgaW4gdGhlIGRlZmF1bHQKCSAgY2FwcyBxdWVyeSBmdW5jdGlvbiBiZWNhdXNlIHdlIGFscmVhZHkgZGlkIHRoaXMgaW4gdGhlIHByb3h5X3F1ZXJ5X2NhcHMuCgoyMDEyLTA3LTE4IDExOjE3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgLTEgc3RlcCBhbW91bnRzCgkgIERlZmluZSBhIDAgYW5kIC0xIHN0ZXAgYW1vdW50LiBUaGV5IHVzZWQgdG8gYWxtb3N0IGRvIHRoZSBzYW1lIHRoaW5nIGJ1dCBub3csIDAKCSAgY2FuY2Vscy9zdG9wcyB0aGUgY3VycmVudCBzdGVwIGFuZCAtMSBrZWVwcyBvbiBzdGVwcGluZyB1bnRpbCB0aGUgZW5kIG9mIHRoZQoJICBzZWdtZW50LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTM3OAoKMjAxMi0wNy0xOCAxMjozMDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBnc3RfcXVlcnlfcGFyc2VfbnRoX2FsbG9jYXRpb25fcG9vbCgpIGFubm90YXRpb24KCSAgSXQgcmV0dXJucyBhIHJlZiB0byB0aGUgcG9vbC4KCjIwMTItMDctMTcgMTU6NTI6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrOiBBdm9pZCBkZWFkbG9jawoJICBRdWVyaWVzIHdpbGwgYmUgc2VudCB3aGVuIHBpcGVsaW5lIGdvZXMgZG93biB0byBOVUxMLCB3aGljaCB3b3VsZAoJICByZXN1bHQgaW4gdGhlIHByb2JlIGJlaW5nIGNhbGxlZCAuLi4gYnV0IGNhbid0IHRha2UgdGhlIGxvY2suCgoyMDEyLTA3LTE3IDE1OjUwOjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RnaG9zdHBhZDogRm9yd2FyZCBxdWVyaWVzIGluIGJvdGggZGlyZWN0aW9uCgkgIFVzZSB0aGUgcGVlciBvZiB0aGUgaW50ZXJuYWwgcGFkIHRvIGZvcndhcmQgdGhlbSwgaW5zdGVhZCBvZiB0aGUKCSAgdGFyZ2V0IHdoaWNoIG9ubHkgZXhpc3RzIGZvciB0aGUgZ2hvc3RwYWQgKGFuZCBub3QgdGhlIGludGVybmFsCgkgIHByb3h5IHBhZCkuCgoyMDEyLTA3LTE3IDExOjIwOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IE1vcmUgZW50cmllcwoKMjAxMi0wNy0xOCAwOToxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGFuc3dlciBTQ0hFRFVMSU5HIHF1ZXJ5CgkgIEluc3RlYWQgb2YgbGV0dGluZyB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIGZhaWwuCgoyMDEyLTA3LTE3IDE5OjIwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaGFuZGxlIENBUFMgZXZlbnQgYW5kIGRyb3AgaXQgaWYgb3BlcmF0aW5nIGluIHJpbmcgYnVmZmVyIG1vZGUKCSAgRml4ZXMgIlVuZXhwZWN0ZWQgZXZlbnQgb2Yga2luZCBjYXBzIGNhbid0IGJlIGFkZGVkIGluIHRlbXAgZmlsZSIKCSAgd2FybmluZyB3aGVuIGRvaW5nIGRvd25sb2FkIGJ1ZmZlcmluZy4KCjIwMTItMDctMTcgMTI6NTc6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtYWtlIF9mb3JlYWNoX21ldGEgbW9yZSBwb3dlcmZ1bAoJICBNYWtlIF9mb3JlYWNoX21ldGEgcmV0dXJuIEZBTFNFIHdoZW4gdGhlIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJuZWQgRkFMU0UuCgoyMDEyLTA3LTE3IDEyOjUyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogaW1wcm92ZSBmb3JlYWNoIGZ1bmN0aW9uCgkgIE1ha2UgdGhlIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJuIEZBTFNFIHdoZW4gb25lIG9mIHRoZSBmdW5jdGlvbiBjYWxscyByZXR1cm5lZAoJICBGQUxTRS4KCjIwMTItMDctMTcgMTI6NTA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcKCjIwMTItMDctMTcgMTI6NDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggZGVidWcgc3RyaW5nCgoyMDEyLTA3LTE3IDA5OjU3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogZml4IHNvbWUgZGVidWcKCjIwMTItMDctMTcgMDk6NDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgcGFyc2U6IG9ubHkgZXNjYXBlIHNwYWNlcyBvdXRzaWRlIG9mIHF1b3RlcwoJICBXaGVuIHdlIGVzY2FwZSBzcGFjZXMgdG8ga2VlcCBhcmd1bWVudHMgdG9nZXRoZXIsIG9ubHkgZXNjYXBlIHdoZW4gdGhlIHNwYWNlIGlzCgkgIG91dHNpZGUgYSAiIiBzdHJpbmcuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMzE5CgoyMDEyLTA3LTE3IDA5OjQ0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIFJldmVydCAicGFyc2U6IGVzY2FwZSBcIHdpdGggYSBcIGFzIHdlbGwsIHNvIHRoYXQgd2UgZG9uJ3QgbG9zZSB0aGUgXCB3aGVuIHVuZXNjYXBpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGQ5ZmVkYjQxZjFhZGE4ZTFmOGJkNTM0NmZjY2QzZDA2OGQ1NDNjYi4KCSAgVGhpcyBpcyBub3QgdGhlIHJpZ2h0IHBsYWNlIHRvIGVzY2FwZSB0aGUgXCwgd2Ugc2hvdWxkIG9ubHkgZXNjYXBlIHRoZSBzcGFjZXMgdG8KCSAga2VlcCB0aGUgYXJndW1lbnRzIHRvZ2V0aGVyIHRoYXQgd2VyZSBwcm92aWRlZCBhcyBvbmUgZ3JvdXAgKHdpdGggcXVvdGVzIG9uIHRoZQoJICBzaGVsbCkuCgoyMDEyLTA3LTEwIDEyOjI3OjExIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogc2V0IHJldHVybiB0eXBlIG9mIGdzdF9wYXJzZV9iaW5fKiB0byBHc3RCaW4gZm9yIGludHJvc3BlY3Rpb24KCjIwMTItMDYtMzAgMTI6MzM6NDMgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0dGltZXBhY2tldDogYWRkIG1pc3NpbmcgYXJyYXkgYW5ub3RhdGlvbiB0byBnc3RfbmV0X3RpbWVfcGFja2V0X25ldwoKMjAxMi0wNi0yOSAxNzozMzo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIGFycmF5IGFubm90YXRpb24gdG8gZ3N0X2Zvcm1hdHNfY29udGFpbnMKCjIwMTItMDctMTYgMjA6NTQ6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBhZ2dyZWdhdGUgZHVyYXRpb25zIGxpa2UgaW4gYWRkZXIKCSAgU3RvcCBxdWVyeWluZyB0aGUgZHVyYXRpb24gb25jZSBhbiBlbGVtZW50IHJldHVybiB1bmtub3duIGFuZCByZXR1cm4gdW5rbm93bgoJICBhcyBhIGZpbmFsIHJlc3VsdC4gVGhpcyBhdm9pZCBldmVudHVhbGx5IGN1dHRpbmcgb2ZmIGEgc3RyZWFtIHRvbyBlYXJseS4KCSAgQWRkIGEgdGVzdHMgdG8gZG9jdWVtZW50IHRoZSBiZWhhdmlvci4KCjIwMTItMDctMTYgMDA6MjQ6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGp1c3QgcmV0dXJuIE5VTEwgb24gc2hvcnQgaW5wdXQgc3RyaW5ncyBpbnN0ZWFkIG9mIGEgd2FybmluZwoJICBXZSB3YW50IHRvIGJlIGFibGUgdG8gdXNlIHRoaXMgZnVuY3Rpb24gb24gcmFuZG9tIG5vbi1OVUxMIGlucHV0LAoJICB0aGlzIHNob3VsZCBub3QgcmVzdWx0IGluIGEgcnVudGltZS1jcml0aWNhbC4KCjIwMTItMDctMTUgMTI6NTk6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrYWJpbGl0eSBxdWVyeWluZyB3aXRoIGZvcm1hdHMgd2l0aCBoZWFkZXJzIGxpa2UgRkxBQwoJICBNb3ZlIGNvZGUgdGhhdCBjaGVja3MgZm9yIHVwc3RyZWFtIHNlZWthYmlsaXR5IGFuZCBhbGwgdGhhdCB0bwoJICB0aGUgcmlnaHQgcGxhY2UsIG90aGVyd2lzZSBpdCB3aWxsIG5ldmVyIGJlIGRvbmUgZm9yIGZvcm1hdHMKCSAgdGhhdCBoYXZlIGhlYWRlcnMgc3VjaCBhcyBGTEFDLCBhcyBoYW5kbGVfYW5kX3B1c2ggZnJhbWUgd2lsbAoJICBiZSBjYWxsZWQgdGhlIGZpcnN0IHRpbWUgb25seSBhZnRlciBoZWFkZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQKCSAgKGFuZCBmcmFtZWNvdW50IGlzID4gMCkuIFRoaXMgdGhlbiBtYWtlcyB1cyByZXBvcnQgdGhhdCB3ZQoJICBjYW4ndCBzZWVrLCB3aGljaCBkaXNhYmxlcyB0aGUgc2VlayBiYXIgaW4gdG90ZW0uCgoyMDEyLTA3LTE0IDIwOjMzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgcGx1Z2luczogZW1iZWQgR3N0QXVldWVBcnJheSBpbiBkYXRhcXVldWUgc3RydWN0IGFzIHdlbGwKCjIwMTItMDctMTQgMjA6Mjg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIHBsdWdpbnM6IGRvbid0IHVzZSBvbmUtdGltZSBhcnJheSBpbiBwbHVnaW5faW5pdAoKMjAxMi0wNy0xNCAyMDoyNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogZW1iZWQgR3N0UXVldWVBcnJheSBzdHJ1Y3R1cmUKCjIwMTItMDctMTQgMjA6MDA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHBsdWdpbnM6IHNwcmlua2xlIHNvbWUgbW9yZSBHX0dOVUNfSU5URVJOQUwKCjIwMTItMDctMTQgMTk6Mzg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkgIHBsdWdpbnM6IGFkZCBpbml0L2NsZWFyIGZ1bmN0aW9ucyB0byBHc3RRdWV1ZUFycmF5CgoyMDEyLTA3LTE0IDE5OjI0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IG1ha2UgR3N0UXVldWVBcnJheSBwcml2YXRlIHRvIGNvcmVlbGVtZW50cyBmb3Igbm93CgkgIEtlZXAgaXQgcHJpdmF0ZSB1bnRpbCB3ZSBoYXZlIGEgcmVhc29uIHRvIG1ha2UgaXQgcHVibGljLgoKMjAxMi0wNy0xNCAxOTowODoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGNoZWNrIHZhbHVlIHR5cGUgbWF0Y2hlcyB0YWcgdHlwZSB3aGVuIGFkZGluZyB2YWx1ZXMgdG8gYSB0YWdsaXN0CgoyMDEyLTA3LTE0IDE4OjUyOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWFrZSB0YWdsaXN0cyBhbmQgZGF0ZXRpbWUgbG9nZ2FibGUgdmlhIEdTVF9QVFJfRk9STUFUCgoyMDEyLTA3LTEzIDEyOjA1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZW5kIHNlZWsgZXZlbnQgdXBzdHJlYW0gZmlyc3QKCSAgRmlyc3QgdHJ5IHRvIGxldCB1cHN0cmVhbSBoYW5kbGUgdGhlIHNlZWsgZXZlbnQsIHRoZW4gZmFpbCBpZiB0aGUgZXZlbnQgaXMKCSAgc29tZXRoaW5nIHdlIGRvbid0IHVuZGVyc3RhbmQuCgoyMDEyLTA3LTEzIDA5OjQzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB0ZXN0IHJhY2luZXNzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MDYKCjIwMTItMDctMTIgMTM6MTc6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogZml4IGdzdC1mZm1wZWcgcGx1Z2luIHBhdGggYWdhaW4KCjIwMTItMDctMTIgMTI6MDk6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGNsdXR0ZXItZ3N0IGFuZCByZWZpbmUgcGx1Z2luIHNlYXJjaCBwYXRocwoKMjAxMi0wNy0xMiAwMDozNDoyMiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IE1vdmUgc3RpY2t5IGZsYWcgY2xlYXJpbmcgY29kZSB0byBnc3RfcGFkX2FjdGl2YXRlX21vZGUKCSAgVGhlIGdob3N0cGFkIGNvZGUgZGlyZWN0bHkgYWN0aXZhdGVzL2RlYWN0aXZhdGVzIHRoZSBjaGlsZCBjb2RlIGJ5CgkgIGNhbGxpbmcgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlLCByYXRoZXIgdGhhbiBnc3RfcGFkX3NldF9hY3RpdmUsIHNvCgkgIG1ha2Ugc3VyZSB0byBjbGVhciB0aGUgZmxhZ3MgaW4gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCksIHdoaWNoIHNob3VsZAoJICBjYXRjaCBhbGwgY2FzZXMuCgoyMDEyLTA3LTExIDEyOjQwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBpbXByb3ZlIGFubm90YXRpb24KCjIwMTItMDctMTEgMTI6Mzc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgc3RlcCBlbmQgY29ycmVjdGx5CgkgIHdoZW4gd2UgaGF2ZSBhIG5ldyBzdGVwIGV2ZW50IHdpdGggYSAtMSBhbW91bnQsIG1ha2Ugc3VyZSB0aGF0IHdlIGZvbGxvdyB0aGUKCSAgcmVndWxhciBjb2RlIHBhdGggc28gdGhhdCB0aGUgc3RvcF9lbmQgaGFuZGxlciBpcyBjYWxsZWQgYXMgdXN1YWwuIFRoaXMgdGFrZXMKCSAgY2FyZSBvZiBmbHVzaGluZyB0aGUgYnVmZmVyIGluIGNhc2Ugb2YgYSBmbHVzaGluZyBzdGVwIGFuZCBhbHNvIHBvc3RzIGEgc3RlcCBlbmQKCSAgbWVzc2FnZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzNzgKCjIwMTItMDctMTEgMTM6MTQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgd2luMzI6IEZpeCBleHBvcnRlZCBzeW1ib2xzIGxpc3QgZm9yIHJlYWwgbm93CgoyMDEyLTA3LTExIDExOjIxOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVtb3ZlIHJlbW92ZWQgYXBpIGZyb20gdGhlIGRvY3MuCgoyMDEyLTA3LTExIDEyOjQ2OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlZCBleHBvcnRlZCBzeW1ib2xzIGxpc3QKCjIwMTItMDctMTEgMTI6NDU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogQWRkIGZ1bmN0aW9ucyB0byByZXRyaWV2ZSB0aGUgcGFyZW50IEdzdFRvYy9Hc3RUb2NFbnRyeSBvZiBhIEdzdFRvY0VudHJ5CgoyMDEyLTA3LTEwIDE4OjE1OjIwICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogRml4IGdzdF90b2NfZmluZF9lbnRyeSgpCgkgIFJlY3Vyc2l2ZSBzZWFyY2ggZm9yIHRoZSByZXF1aXJlZCBlbnRyeSwgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlCgkgIHRvcC1sZXZlbCBlbnRyeSB0aGF0IGNvbnRhaW5zIGFuIGVudHJ5IHdpdGggdGhlIHNlYXJjaCBVSUQuCgoyMDEyLTA3LTExIDEwOjI2OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUHVzaCBTVFJFQU1fU1RBUlQgaW4gcHVsbC1tb2RlCgoyMDEyLTA3LTExIDEwOjI0OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEZW1vdGUgV0FSTklORyB0byBERUJVRwoJICBJdCBpcyBub3QgYW4gaXNzdWUgdG8gZ2V0IGZpZWxkcyB0aGF0IGRvbid0IGV4aXN0LCBjYWxsaW5nIGNvZGUgc2hvdWxkCgkgIGhhbmRsZSB0aGF0LgoKMjAxMi0wNy0xMCAxMTo0Njo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBSZW1vdmUgMC4xMC1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kICJTaW5jZSIgbWFya2VycwoKMjAxMi0wNy0xMCAwMDozOTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcm92aWRlIGZhbGxiYWNrIGluIGNhc2UgYSBjcmVhdGUgZnVuY3Rpb24gZG9lc24ndCBrbm93IGFib3V0IHByb3ZpZGVkIGJ1ZmZlcnMKCSAgSW4gMC4xMSB0aGUgY2FsbGVyIG1heSBwcm92aWRlIGEgYnVmZmVyIHRvIGJlIGZpbGxlZCBieSB0aGUgc291cmNlIHRvCgkgIHB1bGxfcmFuZ2UvZ2V0X3JhbmdlL2NyZWF0ZSwgYnV0IGl0J3MgZWFzeSB0byBtaXNzIHRoaXMgbmV3IGNhc2Ugd2hlbgoJICBwb3J0aW5nIGNvZGUgZnJvbSAwLjEwLiBQcm92aWRlIGZhbGxiYWNrIHRoYXQgY29waWVzIHRoZSBjcmVhdGVkIGRhdGEKCSAgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyIGZvciBub3cuCgkgIFRoaXMgbWFrZXMgb2dnZGVtdXggaW4gcHVsbC1tb2RlIHdvcmsgd2l0aCBkYXRhdXJpc3JjLgoKMjAxMi0wNy0xMCAxMDozMTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBjb3B5IHN0cnVjdHVyZSBpbiBfYWRkX2FsbG9jYXRpb25fbWV0YSgpCgkgIE1ha2UgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21ldGEoKSB0YWtlIGEgY29weSBvZiB0aGUgcGFzc2VkIGNhcHMgaW5zdGVhZCBvZgoJICB0YWtpbmcgb3duZXJzaGlwLiBUaGlzIG1ha2VzIGl0IGVhc2llciBmb3IgdGhlIGNhbGxlciBpbiBtb3N0IGNhc2VzIGJlY2F1c2UgaXQKCSAgZG9lc24ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGFuZCBkZWFsIHdpdGggTlVMTCB2YWx1ZXMuCgoyMDEyLTA3LTEwIDEwOjExOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBuZXcgZmxhZ3MKCjIwMTItMDctMDkgMjM6NDc6NTMgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZXhjbHVzaXZlIGxvY2svdW5sb2NrIHJhY2UKCjIwMTItMDctMTAgMDA6NTk6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogY29weSBpbnRvIHByb3ZpZGVkIGJ1ZmZlciBpZiBhIGJ1ZmZlciBpcyBwcm92aWRlZAoKMjAxMi0wNy0wOSAyMTo1MTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGJhc2VzcmMsIGJhc2VzaW5rLCBiYXNlcGFyc2UsIHR5cGVmaW5kOiB1c2UgR1NUX1NFR01FTlRfRkxBRyB3aXRoIHNlZ21lbnQgZmxhZ3MKCjIwMTItMDctMDkgMjI6MTE6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBhbHNvIGNvcHkgdGhlIHNlZ21lbnQgZmxhZwoJICBGaXhlcyBzZWdtZW50ZWQgc2Vla3MgKGFzIHRlc3RlZCBlLmcuIGluIHRoZSBhZGRlciB0ZXN0cyBpbiBiYXNlKS4KCjIwMTItMDctMDkgMjA6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgcGx1Z2luczogc3ByaW5rbGUgR19HTlVDX0lOVEVSTkFMIGZvciBkYXRhcXVldWUgZnVuY3Rpb25zCgkgIEFuZCByZW1vdmUgcGFkZGluZywgc2luY2UgdGhpcyBpcyBub3QgcHVibGljIEFQSSBhbnkgbW9yZS4KCjIwMTItMDctMDkgMjA6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBnc3Q6IHNwcmlua2xlIHNvbWUgR19HTlVDX0lOVEVSTkFMIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMTItMDctMDkgMjA6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRlc3RzOiBmaXggdG9jIHVuaXQgdGVzdHMKCSAgTWVhbnQgdG8gY2hlY2sgc3Vic3ViZW50cnksIG5vdCBzdWJlbnRyeS4KCjIwMTItMDctMDkgMTg6NTg6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogbWlub3IgdG9jIHRlc3QgY2xlYW4tdXAKCjIwMTItMDctMDkgMTg6NTE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRlc3RzOiB0dXJuIHRvYyBjaGVjayBtYWNyb3MgaW50byBwcm9wZXIgZnVuY3Rpb25zCgkgIFNvIHdlIGNhbiBzZWUgdGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBjaGVjayB0aGF0IGZhaWxzLgoKMjAxMi0wNy0wOSAyMDozMTowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUgZm9yIEFQSSBjaGFuZ2VzL2FkZGl0aW9uCgoyMDEyLTA3LTA5IDIwOjI5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgY2hlY2s6IFVwZGF0ZSB0ZXN0cyBmb3IgbmV3IFNUUkVBTV9TVEFSVCBtZXNzYWdlCgoyMDEyLTA3LTA5IDIwOjI4OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2s6IEVuc3VyZSBTVFJFQU1fU1RBUlQgbWVzc2FnZSBpcyBwb3N0ZWQKCSAgQSBTVFJFQU1fU1RBUlQgbWVzc2FnZSBpcyBwb3N0ZWQgaWYgYW5kIG9ubHkgaWYgYWxsIHNpbmtzIGluIHRoZQoJICBiaW4vcGlwZWxpbmUgcmVjZWl2ZWQgdGhlIFNUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAyMDoyODoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQb3N0IGEgU1RSRUFNX1NUQVJUIG1lc3NhZ2Ugd2hlbiB3ZSBzZWUgdGhlIGV2ZW50CgoyMDEyLTA3LTA5IDIwOjI3OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBjb2xsZWN0IGFuZCBhZ2dyZWdhdGUgU1RSRUFNX1NUQVJUIG1lc3NhZ2VzCgkgIHdoZW4gYWxsIHNpbmtzIGhhdmUgcG9zdGVkIGEgU1RSRUFNX1NUQVJULCB0aGUgYmluIHdpbGwgZm9yd2FyZCBhCgkgIG5ldyBTVFJFQU1fU1RBUlQgbWVzc2FnZSB0byB0aGUgcGFyZW50IGJpbiBvciBhcHBsaWNhdGlvbgoKMjAxMi0wNy0wOSAyMDowODoxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0bWVzc2FnZTogTmV3IEdTVF9NRVNTQUdFX1NUUkVBTV9TVEFSVAoJICBtZXNzYWdlIGNvdW50ZXJwYXJ0IHRvIHRoZSBHU1RfRVZFTlRfU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDE5OjU5OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2s6IFVuaXQgdGVzdCBmb3IgRU9TIG1lc3NhZ2UKCSAgTWFrZSBzdXJlIHdlIGdldCB0aGUgYWdncmVnYXRlZCBtZXNzYWdlIGlmIGFuZCBvbmx5IGlmIGFsbCBzaW5rcwoJICByZWNlaXZlZCBhbiBFT1MgZXZlbnQKCjIwMTItMDctMDkgMTk6NTY6MTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgU1RSRUFNX1NUQVJUIGhhbmRsaW5nCgkgIFVzZSBhIGZsYWcgdG8gZm9yd2FyZCB0aGUgZmlyc3QgU1RSRUFNX1NUQVJUCgoyMDEyLTA3LTA5IDE2OjIwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzdHJlYW0gZG9jcyBmb3IgU0VHTUVOVF9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAxNjo0ODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBtb3JlIGRvY3MKCjIwMTItMDctMDkgMTY6MjI6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkgIGRvY3M6IGZpeCBkb2NzIGEgbGl0dGxlIG1vcmUKCjIwMTItMDctMDkgMTY6MDI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIG1lbW9yeTogTWFrZSBHc3RBbGxvY2F0b3IgYSBHc3RPYmplY3QKCSAgTWFrZSBHc3RBbGxvY2F0b3IgYSBHc3RPYmplY3QgaW5zdGVhZCBvZiBhIEdzdE1pbmlPYmplY3QsIGxpa2UgYnVmZmVycG9vbC4KCSAgTWFrZSBhIG5ldyBnc3RhbGxvY2F0b3IuYyBmaWxlLiBNYWtlIGEgR3N0QWxsb2NhdG9yIHN1YmNsYXNzIGZvciB0aGUgZGVmYXVsdAoJICBhbGxvY2F0b3IuCgoyMDEyLTA3LTA5IDEzOjIwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHJlbW92ZSB1bnVzZWQgbWFjcm9zCgoyMDEyLTA3LTA5IDEzOjIwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICBjbG9jazogbWFrZSBhYnN0cmFjdAoJICBNYWtlIHRoZSBHc3RDbG9jayB0eXBlIGFic3RyYWN0LgoJICBGaXggYSBob3JyaWJsZSBoYWNrIGluIHRoZSBjbG9jayB1bml0IHRlc3QuCgoyMDEyLTA3LTA5IDE1OjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZpeCBoYW5kbGluZyBvZiBtaW4tdGhyZXNob2xkIGFuZCBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgT25seSBjb25zaWRlciB0aGUgcXVldWUgZW1wdHkgaWYgdGhlIG1pbmltdW0gdGhyZXNob2xkcwoJICBhcmUgbm90IHJlYWNoZWQgYW5kIGRhdGEgaXMgYXQgdGhlIHF1ZXVlIGhlYWQuIE90aGVyd2lzZQoJICB3ZSB3b3VsZCBibG9jayBmb3JldmVyIG9uIHNlcmlhbGl6ZWQgcXVlcmllcy4KCSAgVGhpcyBhbHNvIG1ha2VzIHNlbmRpbmcgb2Ygc2VyaWFsaXplZCBldmVudHMsIGxpa2UgY2FwcywgaGFwcGVuCgkgIGZhc3RlciBhbmQgcG90ZW50aWFsbHkgaW1wcm92ZXMgbmVnb3RpYXRpb24gcGVyZm9ybWFuY2UuCgkgIEZpeGVzIGJ1ZyAjNjc5NDU4LgoKMjAxMi0wNy0wOSAxMzoxNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogcmVtb3ZlIHBhZGRpbmcgbm93IHRoYXQgdGhlIHN0cnVjdHMgYXJlIHByaXZhdGUKCjIwMTItMDctMDkgMTM6MTI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBhZGQgZ3N0X3RvY19kdW1wKCkgZnVuY3Rpb24gZm9yIGRlYnVnZ2luZwoJICBBUEk6IGdzdF90b2NfZHVtcCgpCgoyMDEyLTA3LTAzIDAwOjA3OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBidXMsIGNsb2NrOiBtYWtlIHN1cmUgdGhlc2UgbmV2ZXIgaGF2ZSBhIGZsb2F0aW5nIHJlZgoJICBDbGVhciB0aGUgaW5pdGlhbCBmbG9hdGluZyByZWYgaW4gdGhlIGluaXQgZnVuY3Rpb24gZm9yCgkgIGJ1c3NlcyBhbmQgY2xvY2tzLiBUaGVzZSBvYmplY3RzIGNhbiBiZSBzZXQgb24gbXVsdGlwbGUKCSAgZWxlbWVudHMsIHNvIHRoZXJlJ3Mgbm8gY2xlYXIgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcAoJICBoZXJlLiBJZGVhbGx5IHdlJ2QganVzdCBub3QgbWFrZSB0aGVtIGRlcml2ZSBmcm9tCgkgIEdJbml0aWFsbHlVbm93bmVkIGF0IGFsbCwgYnV0IHNpbmNlIHdlIHdhbnQgdG8ga2VlcAoJICB1c2luZyBHc3RPYmplY3QgZmVhdHVyZXMgZm9yIGRlYnVnZ2luZywgd2UnbGwganVzdCBkbwoJICBpdCBsaWtlIHRoaXMuCgkgIFRoaXMgc2hvdWxkIGFsc28gZml4IHNvbWUgcHJvYmxlbXMgd2l0aCBiaW5kaW5ncywgd2hpY2gKCSAgc2VlbSB0byBnZXQgY29uZnVzZWQgd2hlbiB0aGV5IGdldCBmbG9hdGluZyByZWZzIGZyb20KCSAgbm9uLWNvbnN0cnVjdG9yIGZ1bmN0aW9ucyAob3IgZnVuY3Rpb25zIGFubm90YXRlZCB0bwoJICBoYXZlIGEgJ3RyYW5zZmVyIGZ1bGwnIHJldHVybiB0eXBlKS4gVGhpcyB3b3JrcyBub3c6CgkgIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR09iamVjdCwgR3N0CgkgIEdPYmplY3QudGhyZWFkc19pbml0KCkKCSAgR3N0LmluaXQoTm9uZSkKCSAgcGlwZWxpbmU9R3N0LlBpcGVsaW5lKCkKCSAgYnVzID0gcGlwZWxpbmUuZ2V0X2J1cygpCgkgIHBpcGVsaW5lLnNldF9zdGF0ZShHc3QuU3RhdGUuTlVMTCkKCSAgZGVsIHBpcGVsaW5lOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mjg2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTcyMDIKCjIwMTItMDctMDggMjA6MTU6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBzdXBwcmVzcyBnbGliIGRlcHJlY2F0aW9ucyB3YXJuaW5ncyBmb3IgR19WQUxVRV9BUlJBWQoKMjAxMi0wNy0wNyAyMzoxMzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogYWRkIG1vcmUgdGVzdHMgZm9yIGRhdGV0aW1lIHZhbHVlIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uCgkgIEVzcC4gb2YgcGFydGlhbCBkYXRldGltZXMuCgoyMDEyLTA3LTA3IDIyOjQ2OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHVzZSBkYXRldGltZSBzZXJpYWxpc2UvZGVzZXJpYWxpc2UgZnVuY3Rpb25zIGZvciBkYXRldGltZXMKCSAgVGhpcyByZS11c2VzIGV4aXN0aW5nIGNvZGUgYW5kIG1ha2VzIHN1cmUgd2UgcHJvcGVybHkgc2VyaWFsaXNlCgkgIGFuZCBkZXNlcmlhbGlzZSBkYXRldGltZXMgd2hlcmUgbm90IGFsbCBmaWVsZHMgYXJlIHNldCAodGh1cwoJICBmaXhpbmcgc29tZSB3YXJuaW5ncyB3aGVuIHNlcmlhbGlzaW5nIHN1Y2ggZGF0ZXRpbWVzKS4KCjIwMTItMDctMDcgMjI6NDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGRvIG91ciBvd24gc2VyaWFsaXNhdGlvbiBzbyB3ZSBjYW4gc2VyaWFsaXNlIG1pY3Jvc2Vjb25kcyBhcyB3ZWxsCgkgIFdlIHN0aWxsIGRvbid0IGRvIHRoYXQgaW4gX3RvX2lzbzg2MDFfc3RyaW5nKCkgdGhvdWdoLCBzaW5jZQoJICB0aGlzIHdpbGwgcHJvYmFibHkgbW9zdGx5IGJlIHVzZWQgaW4gdGFncywgd2hlcmUgaXQgZG9lc24ndAoJICBtYXR0ZXIgc28gbXVjaCBhbmQgdGhlIG1pY3Jvc2Vjb25kIGFyZ3VtZW50IG1pZ2h0IG5vdCBiZQoJICB3ZWxsLXJlY2VpdmVkIGJ5IHNvbWUgdGFnIHJlYWRlcnMuCgoyMDEyLTA3LTA3IDE5OjQzOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiB3aGVuIGRlc2VyaWFsaXNpbmcgcGFyc2UgbWljcm9zZWNvbmRzIGlmIGF2YWlsYWJsZQoKMjAxMi0wNy0wNyAxNjowMTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogZml4IHNlY29uZCBwYXJzaW5nIGZhaWx1cmUgY2FzZSB3aGVuIGRlc2VyaWFsaXNpbmcgZGF0ZXRpbWUKCSAgV2hlbiB3ZSBmYWlsIHRvIHBhcnNlIHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgcmVzZXQgdGhlIHZhbHVlIHRvIC0xCgkgIGluc3RlYWQgb2YgcGFzc2luZyBzb21lIGVycm9yIHZhbHVlIGFzIHNlY29uZHMuIEFsc28sIHdlIGNhbiBzdGlsbAoJICB0cnkgdG8gcGFyc2UgdGltZXpvbmUgaW5mb3JtYXRpb24uCgoyMDEyLTA3LTA3IDE1OjQ0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIGV4YW1wbGVzOiBmaXggZGVidWcgbG9nIHByaW50IGZvcm1hdHMgaW4gbWVtb3J5IGV4YW1wbGVzCgoyMDEyLTA3LTA3IDAxOjM3OjUwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IEFkZCBkZXN0cm95IG5vdGlmeSBhcmd1bWVudHMgdG8gZGVidWcgc3R1YnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUzNQoKMjAxMi0wNy0wNiAyMDozNzowNiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogU2V0IGxjb3B5IHN0cmluZyBjb25zdCBleGFjdGx5IGFzIGdsaWIncyBtYWNybwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTM0CgoyMDEyLTA3LTA2IDE3OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBtZW1vcnk6IGV4cG9zZSB0aGUgR3N0QWxsb2NhdGlvbiBzdHJ1Y3R1cmUKCSAgRXhwb3NlIHRoZSBHc3RBbGxvY2F0aW9uIHN0cnVjdHVyZSBhbmQgcHJvdmlkZSBhbiBfaW5pdCBmdW5jdGlvbi4gVGhpcyBtYWtlcyBpdAoJICBlYXNpZXIgdG8gbWFrZSAnc3ViY2xhc3Nlcycgb2YgdGhlIGFsbG9jYXRvciB0aGF0IGNvbnRhaW4gbW9yZSBpbmZvLgoJICBJdCBhbHNvIGFsbG93cyB1cyB0byBleHBvc2UgdGhlIGZsYWdzIG9uIHRoZSBhbGxvY2F0b3IgbWluaW9iamVjdC4KCSAgTWFrZSBhIGZsYWcgdG8gbm90ZSB0aGF0IHRoZSBhbGxvY2F0b3IgdXNlcyBhIGN1c3RvbSBhbGxvYyBmdW5jdGlvbi4KCjIwMTItMDctMDYgMTI6NDU6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERlbW90ZSBXQVJOSU5HIHRvIElORk8KCSAgSXQgaXMgY29tbW9uIHRvIHVzZSBnc3Rfc3RydWN0dXJlX2dldCgpIHRvIGtub3cgaWYgYSBmaWVsZCBpcyBwcmVzZW50CgkgIG9yIG5vdC4KCjIwMTItMDctMDYgMTE6NDE6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFJlbW92ZSB1bnVzZWQgZGVmaW5lCgoyMDEyLTA3LTA2IDExOjQxOjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICBjaGVjazogZ3N0Y29udHJvbGxlci5oIGRvZXNuJ3QgZXhpc3QgYW55bW9yZQoKMjAxMi0wNy0wNiAxMTo0MDo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgY2hlY2s6IFVzZSBjb25zaXN0ZW5jeWNoZWNrIG9uIGJhc2VzcmMKCjIwMTItMDctMDYgMTE6Mzg6NTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogQ2hlY2sgZm9yIFNUUkVBTV9TVEFSVCBldmVudAoJICBDaGVjayB0aGF0IGl0IGlzIGFsd2F5cyBiZWZvcmUgYW55IHNlcmlhbGl6ZWQgZXZlbnQuCgoyMDEyLTA3LTA2IDEwOjEzOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgbWF4aW11bSBwcm9wZXJ0eQoKMjAxMi0wNy0wNiAxMDowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IHJlbW92ZSB1bmltcGxlbWVudGVkIGhhcy1zaW5rLWxvb3AgcHJvcGVydHkKCjIwMTItMDctMDYgMTA6MDc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgZGVwcmVjYXRlZCB0ZW1wLWxvY2F0aW9uIHVzZSwgbWFrZSBpdCByZWFkLW9ubHkKCjIwMTItMDctMDYgMDk6NTc6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiByZW1vdmUgZGVwcmVjYXRlZCBjaGVjay1wZXJmZWN0IHByb3BlcnR5CgkgIFJlcGxhY2VkIGJ5IHRoZSBtb3JlIHNwZWNpZmljIGNoZWNrLWltcGVyZmVjdC17dGltZXN0YW1wLG9mZnNldH0KCjIwMTItMDctMDYgMTE6NDk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcXVlcnk6IHVzZSBtb3JlIGdlbmVyaWMgc3RydWN0dXJlIGZvciBtZXRhIHBhcmFtcwoKMjAxMi0wNy0wNiAxMToyMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IG1ha2UgZmluZF9hbGxvY2F0aW9uX21ldGEgbWV0aG9kCgkgIE1ha2UgZ3N0X3F1ZXJ5X2ZpbmRfYWxsb2NhdGlvbl9tZXRhKCkgdGhhdCBhbHNvIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIG1ldGFkYXRhCgkgIGFuZCByZXBsYWNlcyBnc3RfcXVlcnlfaGFzX2FsbG9jYXRpb25fbWV0YSgpLgoKMjAxMi0wNy0wNiAxMTowMDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBxdWVyeTogYWRkIGZsYWdzIHRvIGFsbG9jYXRpb24gcXVlcnkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgQVBJIHNwZWNpZmljIGZsYWdzIHRvIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5LiBUaGlzIG1ha2VzCgkgIGl0IHBvc3NpYmxlIHRvIGFsc28gY2hlY2sgd2hhdCBraW5kcyBvZiBzdWJmZWF0dXJlcyBvZiB0aGUgbWV0YWRhdGEgQVBJIGFyZQoJICBzdXBwb3J0ZWQuCgoyMDEyLTA3LTA2IDA5OjExOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIGluY2x1ZGVzCgoyMDEyLTA3LTA1IDE4OjA3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uaDoKCSAgbWVtb3J5OiBhZGQgbW9yZSBleGFtcGxlcwoJICBBZGQgYW4gZXhhbXBsZSBvZiBhIGN1c3RvbSBhbGxvY2F0b3Igd2l0aCBhIGN1c3RvbSBBUEkuCgoyMDEyLTA3LTA1IDE3OjExOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBnc3RfbWVtb3J5X2luaXQoKQoJICBBZGQgYSBtZXRob2QgdGhhdCBtZW1vcnkgaW1wbGVtZW50YXRpb25zIGNhbiBjYWxsIHRvIGluaXRpYWxpemUgdGhlIHN0YW5kYXJkCgkgIEdzdE1lbW9yeSBzdHJ1Y3R1cmUuCgkgIE1vdmUgdGhlIHBhcmVudCBoYW5kbGluZyBpbiB0aGUgX2ZyZWUgaGFuZGxlci4KCSAgUmVhcnJhbmdlIHNvbWUgaW50ZXJuYWwgZnVuY3Rpb24gcGFyYW1ldGVycyBzbyB0aGF0IHRoZSBvcmRlciBpcyBjb25zaXN0ZW50LgoJICBBZGQgbW9yZSBtZW1vcnkgZXhhbXBsZXMKCjIwMTItMDctMDUgMTY6MTc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggc29tZSBtaW5pb2JqZWN0IGRvY3MKCjIwMTItMDctMDUgMTQ6MjU6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSAgdGVzdHM6IGFkZCBtZW1vcnkgZXhhbXBsZQoKMjAxMi0wNy0wNSAxMjoyNTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBmaXggdG9jIHVuaXQgdGVzdCBidWlsZCBieSByZW1vdmluZyB0b2MgcXVlcnkgc3R1ZmYgdGhlcmUgdG9vCgoyMDEyLTA3LTA1IDEzOjAzOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBmb3JtYXQgYW5kIHBvc2l0aW9uIHRvIHRoZSBzZWdtZW50LWRvbmUgZXZlbnQKCjIwMTItMDctMDUgMTI6NTM6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taW5pb2JqZWN0LnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDctMDUgMTI6MTc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBpbmNyZWFzZSBhbW91bnQgb2YgcG9zc2libGUgZmxhZ3MKCjIwMTItMDctMDUgMTI6NTI6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBldmVudDogSW1wbGVtZW50IHNlZ21lbnQtZG9uZSBldmVudAoKMjAxMi0wNy0wNSAxMjozNzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBSZW1vdmUgc2VjdGlvbiBhYm91dCBUT0MgcXVlcnkKCjIwMTItMDctMDUgMTI6MzQ6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRlZCBzeW1ib2xzIGxpc3QKCjIwMTItMDctMDUgMTI6MzE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogUmVtb3ZlIHRoZSBUT0MgcXVlcnksIGl0J3Mgbm90IHZlcnkgdXNlZnVsIG5vdyB0aGF0IHdlIGhhdmUgc3RpY2t5IGV2ZW50cwoKMjAxMi0wNy0wMyAxODo0OToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrOiBSZW1vdmUgdW5uZWVkZWQgcXVhcmtzCgoyMDEyLTA3LTAzIDE4OjQ1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IE1ha2Ugc3RydWN0dXJlcyBvcGFxdWUgYW5kIGNsZWFuIHVwIGZ1bmN0aW9uIG5hbWVzIGFuZCBmaWVsZHMgYSBiaXQKCjIwMTItMDctMDQgMTc6MDI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjpmaXggZGVidWcgY2F0ZWdvcnkKCjIwMTItMDctMDQgMTY6Mzg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBsb2NrIGZ1bmN0aW9uYWxpdHkgdG8gR3N0TWluaU9iamVjdAoJICBNb3ZlIHRoZSBsb2NraW5nIG1ldGhvZHMgZnJvbSBHc3RNZW1vcnkgdG8gR3N0TWluaU9iamVjdC4KCSAgQWRkIGEgbWluaW9iamVjdCBmbGFnIHRvIGVuYWJsZSBMT0NLQUJMRSBvYmplY3RzLiBMT0NLQUJMRSBvYmplY3RzIGNhbgoJICB1c2UgdGhlIGxvY2svdW5sb2NrIEFQSSB0byBjb250cm9sIHRoZSBhY2Nlc3MgdG8gdGhlIG9iamVjdC4KCSAgQWRkIGEgbWlub2JqZWN0IGZsYWcgdGhhdCBhbGxvd3MgeW91IHRvIGxvY2sgYW4gb2JqZWN0IGluIHJlYWRvbmx5IG1vZGUuCgkgIE1vZGlmeSB0aGUgX2lzX3dyaXRhYmxlKCkgbWV0aG9kIHRvIGNoZWNrIHRoZSBzaGFyZWQgY291bnRlciBmb3IgTE9DS0FCTEUKCSAgb2JqZWN0cy4gVGhpcyBhbGxvd3MgdXMgdG8gY29udHJvbCB3cml0YWJpbGl0eSBzZXBhcmF0ZWx5IGZyb20gdGhlIHJlZmNvdW50IGZvcgoJICBMT0NLQUJMRSBvYmplY3RzLgoKMjAxMi0wNy0wNCAxNjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgbmV3IGxvY2tpbmcgZGVidWcgY2F0ZWdvcnkKCjIwMTItMDctMDQgMTI6Mjg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGlzX2V4Y2x1c2l2ZQoKMjAxMi0wNy0wNCAxMjowMzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgTE9DS19GTEFHX1JFQURXUklURSBkZWZpbmUKCjIwMTItMDctMDQgMTE6NDg6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIG1lbW9yeTogdXBkYXRlIGRvY3MKCjIwMTItMDctMDQgMTA6MTI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogc21hbGwgY2xlYW51cAoKMjAxMi0wNy0wMyAxMzo1MDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTItMDctMDMgMTM6NDc6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogRml4IHRoZSBOT19TSEFSRSBmbGFnIGluIHRoZSBjb25zdHJ1Y3RvcgoJICBUaGUgTk9fU0hBUkUgZmxhZyBkb2VzIG5vdCBpbmZsdWVuY2UgdGhlIGV4Y2x1c2l2ZW5lc3Mgb2YgdGhlIGJ1ZmZlciBpbml0aWFsbHkKCSAgYnV0IG9ubHkgaWYgYSBfc2hhcmUgb3BlcmF0aW9uIGNhbiBiZSBkb25lLiBPdGhlcndpc2UsIHdlIHdvdWxkIG5vdCBiZSBhYmxlIHRvCgkgIFdSSVRFIG1hcCBhIGJ1ZmZlciBtZW1vcnkgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGEgc2hhcmUgY291bnQgb2YgYXQgbGVhc3QgMi4KCjIwMTItMDctMDMgMTM6NDc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogb25seSBjaGVjayB0aGUgbG9ja2luZyByZWZjb3VudAoKMjAxMi0wNy0wMyAxMzo0Njo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcmVzaXplCgkgIENvcnJlY3RseSB1cGRhdGUgdGhlIGV4Y2x1c2l2ZSBsb2NrcwoKMjAxMi0wNy0wMyAxMzo0NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBVc2UgbG9jayBmbGFncyBmb3IgbWFwIGZsYWdzCgkgIFdlIGltcGxlbWVudCB0aGUgbG9ja2luZyBpbiBnc3RfbWVtb3J5X21hcCB3aXRoIHRoZSBsb2NrIGZsYWdzLCBtYWtlIG1hdGNoaW5nCgkgIGZsYWdzIHRoZSBzYW1lIG51bWJlciBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIG1hcCBmbGFncyBkaXJlY3RseSBhcyBsb2NrIGZsYWdzLgoKMjAxMi0wNy0wMyAxMjoxODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBsb2NrIG1lbW9yeSBFWENMVVNJVkUKCSAgbG9jayB0aGUgbWVtb3J5IHRoYXQgdGhlIGJ1ZmZlciByZWZlcmVuY2VzIGFzIEVYQ0xVU0lWRS4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKCSAgd2hlbiB3ZSBzaGFyZSB0aGUgbWVtb3J5IHdpdGggb3RoZXIgYnVmZmVycyB0aGF0IGl0IGJlY29tZXMgdW53cml0YWJsZS4KCjIwMTItMDctMDMgMTI6MTY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2xlYW51cCB0aGUgbG9ja2luZyBjb2RlCgkgIGNsZWFudXAgYW5kIGZpeCB0aGUgbG9ja2luZyBjb2RlCgoyMDEyLTA3LTAzIDA5OjQ4OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBleHBvc2UgdGhlIGludGVybmFsIGxvY2tpbmcgYXBpCgkgIEV4cG9zZSB0aGUgaW50ZXJuYWxseSB1c2VkIG1ldGhvZHMgZm9yIGxvY2tpbmcgYW5kIHVubG9ja2luZyB0aGUgb2JqZWN0LiBQYXNzCgkgIHRoZSBhY2Nlc3MgbW9kZSB0byB0aGUgdW5sb2NrIGZ1bmN0aW9uIGZvciBleHRyYSBjaGVja3MgYW5kIGJlY2F1c2Ugd2UgbmVlZCBpdAoJICBmb3IgdGhlIEVYQ0xVU0lWRSBsb2Nrcy4KCSAgTWFrZSBzb21lIG5ldyBkZWZpbmVzIHRvIHNwZWNpZnkgdGhlIGRlc2lyZWQgbG9ja2luZy4KCSAgQWRkIGEgbmV3IEVYQ0xVU0lWRSBsb2NrIG1vZGUgd2hpY2ggd2lsbCBpbmNyZW1lbnQgdGhlIHNoYXJlZCBjb3VudGVyLiBPYmplY3RzCgkgIHdpdGggYSBzaGFyZWQgY291bnRlciA+IDEgd2lsbCBub3QgYmUgbG9ja2FibGUgaW4gV1JJVEUgbW9kZS4KCjIwMTItMDYtMjkgMTY6Mzc6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBleHRlbmQgYnVmZmVyIGNvcHkgdGVzdAoJICAuLi4gdG8gY2hlY2sgZm9yIGluZGVwZW5kZW5jZSBvZiBjb3BpZWQgYnVmZmVyLgoKMjAxMi0wNy0wNCAxODozMjo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSBvdXRkYXRlZCBiaXRzIG9mIHdhcm5pbmcgbWVzc2FnZQoJICBJIHRoaW5rIHdlIGNhbiBiZSByZWFzb25hYmxlIHN1cmUgcGVvcGxlIGFyZSB1c2luZyBhbiB1cC10by1kYXRlCgkgIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgbm93LgoKMjAxMi0wNy0wNCAxODoxNjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBBZGQgdmVyc2lvbmVkIHZhcmlhbnRzIG9mIHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIEltcHJvdmUgcGFyYWxsZWwgaW5zdGFsbGFiaWxpdHkgaW4gc2V0dXBzIGxpa2UgamhidWlsZCBieQoJICBwcm92aWRpbmcgdmVyc2lvbmVkIHZhcmlhbnRzIG9mIHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoJICBHU1RfUkVHSVNUUllfMV8wCgkgIEdTVF9QTFVHSU5fUEFUSF8xXzAKCSAgR1NUX1BMVUdJTl9TWVNURU1fUEFUSF8xXzAKCSAgR1NUX1BMVUdJTl9TQ0FOTkVSXzFfMAoJICB3aWxsIG5vdyBiZSBjaGVja2VkIGJlZm9yZSBjaGVja2luZyB0aGUgdW52ZXJzaW9uZWQgb25lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTQwNwoKMjAxMi0wNy0wNCAxNzo1NTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIGRvY3M6IGZpeCB0eXBvIGluIEdzdFNhbXBsZSBkb2NzCgoyMDEyLTA3LTA0IDE3OjM2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHRoZXJlIGFyZSB2YWxpZCBVUkkgcHJvdG9jb2xzIHdpdGggb25seSB0d28gbGV0dGVycywgbGlrZSBmZDovLwoJICBXZSBhZGRlZCBhIG1pbmltdW0gbGVuZ3RoIG9mIHRocmVlIGxldHRlcnMgb3JpZ2luYWxseSBzbyB3ZSB3b3VsZAoJICBmYWlsIHRvIHJlY29nbmlzZSBET1MvV2luZG93cy1zdHlsZSBmaWxlbmFtZXMgYXMgdmFsaWQgVVJJcyAoYXMgd2UKCSAgc2hvdWxkKS4gVHdvIHNob3VsZCBiZSBqdXN0IGZpbmUgYXMgd2VsbC4KCjIwMTAtMTAtMTMgMTM6MzY6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBBUEkgYWRkaXRpb25zCgoyMDA5LTA5LTI5IDA5OjU0OjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSAgZGF0YXF1ZXVlOiBVc2UgR3N0UXVldWVBcnJheQoKMjAwOS0wOS0yOCAxNzozMTo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogVXNlIG5ldyBHc3RRdWV1ZUFycmF5IGZvciBsb2NhbCBzdG9yYWdlLgoJICBNYWtlcyBfY2hhaW4oKSBhbmQgX2xvb3AoKSAyNSUgZmFzdGVyCgoyMDA5LTA5LTI5IDA5OjA2OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICBjaGVjazogTmV3IHVuaXQgdGVzdCBmb3IgR3N0UXVldWVBcnJheQoKMjAwOS0wOS0yOCAxNzozMDowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBsaWJzOiBOZXcgZ3Jvd2luZy1vbmx5IHF1ZXVlLgoJICBUaGlzIGlzIGEgcXVldWUgd2hpY2ggaGFzIHRoZSBzYW1lIEFQSSBhcyBHUXVldWUsIGV4Y2VwdCB0aGF0OgoJICAqIEl0IHVzZXMgYW4gYXJyYXksIGluc3RlYWQgb2YgYSBkb3VibGVkLWxpbmtlZC1saXN0CgkgICogVGhlIGFycmF5IGNhbiBvbmx5IGdyb3cuCgkgIFRoaXMgY29kZSBpcyBub3QtdGhyZWFkc2FmZS4gSXQgaXMgdXAgdG8gdGhlIG93bmVyIHRvIG1ha2Ugc3VyZSB0aGUKCSAgcHJvcGVyIGxvY2tpbmcgaXMgdGFrZW4gYmVmb3JlIGNhbGxpbmcgdGhpcyBBUEkuCgoyMDEyLTA3LTA0IDE2OjE2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSB1bm1hcHBlZCBzZWVrIGZsYWdzIGxpdHRlcmluZyBvdXQgc2VnbWVudCBmbGFncwoJICBNYWtlIEdzdFNlZWtGbGFnIHRvIEdzdFNlZ21lbnRGbGFnIGNvbnZlcnNpb24gZXhwbGljaXQsIGFuZAoJICBzZXQgb25seSB0aG9zZSBzZWVrIGZsYWdzIGluIHRoZSBzZWdtZW50IGZsYWdzIHdoaWNoIGFyZQoJICBtYXBwZWQuIFRoaXMgbWFrZXMgc3VyZSB3ZSBkb24ndCBoYXZlIGV4dHJhbmVvdXMgZmxhZ3MKCSAgbGl0dGVyaW5nIG91ciBzZWdtZW50IGZsYWcgZmllbGQsIHdoaWNoIGFsc28gZml4ZXMgdGhlCgkgIGRlYnVnIHByaW50aW5nL3NlcmlhbGlzYXRpb24gb2Ygc2VnbWVudCBldmVudHMgaW4gdGhlCgkgIGRlYnVnIGxvZy4KCjIwMTItMDctMDQgMTA6MjQ6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtaW5vciBwb3J0aW5nLXRvLTAuMTEudHh0IHVwZGF0ZQoKMjAxMi0wNy0wNCAxMDoyMzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogbWFrZSBjaGVja3MgZm9yIGZyb20vdG9fZ19kYXRlX3RpbWUoKSBhY3R1YWxseSB3b3JrIHByb3Blcmx5CgoyMDEyLTA2LTI5IDIxOjUyOjQ3IC0wNDAwICBKb3NodWEgTS4gRG9lIDxqb3NoQGpvc2hkb2UuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBhZGQgY29udmVyc2lvbiB0by9mcm9tIEdEYXRlVGltZQoJICBFeHBvc2VzIGV4aXN0aW5nIGNvbnN0cnVjdG9yLgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdG9fZ19kYXRlX3RpbWUoKQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fZ19kYXRlX3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MDgwCgoyMDEyLTA3LTA0IDA4OjUyOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSB1bnVzZWQgZ3N0X3ByaW50XyogZnVuY3Rpb25zCgoyMDEyLTA3LTAzIDIyOjI0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBubyBuZWVkIHRvIGRlYWN0aXZhdGUgcGFkcyB0aGF0IGFyZSBhbHJlYWR5IGluIFBBRF9NT0RFX05PTkUKCjIwMTItMDctMDMgMjI6MjA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogbWFrZSBwYWQgYWN0aXZhdGlvbiBkZWJ1ZyBsb2dzIGEgYml0IG1vcmUgcmVhZGFibGUKCjIwMTItMDctMDMgMTk6MTU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZWxlbWVudCByZS11c2UgdXNpbmcgZmFrZXNyYwoKMjAxMi0wNy0wMyAxOTowNDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xlYXIgRU9TIGZsYWcgd2hlbiBkZWFjdGl2YXRpbmcgcGFkcyBmaXhpbmcgZWxlbWVudCByZS11c2UKCjIwMTItMDctMDMgMTc6MjU6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUG9zdCBUT0MgbWVzc2FnZXMgb24gdGhlIGJ1cyBpbiB0aGUgc2lua3MsIHNpbWlsYXIgdG8gdGFncwoKMjAxMi0wNy0wMyAxMjozODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdGhlIF9nZXRfbWFwcGVkIGZ1bmN0aW9uCgkgIEZpeCB0aGUgaW50ZXJuYWwgX2dldF9tYXBwZWQgZnVuY3Rpb24uIGdzdF9tZW1vcnlfbWFrZV9tYXBwZWQoKSB0YWtlcyBvd25lcnNoaXAKCSAgb2YgdGhlIG1lbW9yeSBzbyB3ZSBuZWVkIHRvIGtlZXAgYW4gYWRkaXRpb25hbCByZWYgdW50aWwgd2UgYXJlIGRvbmUuCgoyMDEyLTA3LTAzIDEyOjIzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIGRlYnVnIGxvZwoKMjAxMi0wNy0wMyAxMDowMjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFRoZSBHQVAgZXZlbnQgaXMgKHBhcnRpYWxseSkgaW1wbGVtZW50ZWQgbm93LCBTVFJFQU1fQ09ORklHIGlzbid0CgoyMDEyLTA2LTI4IDE2OjQyOjA4ICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBpbmNsdWRlIGdzdC9tYXRoLWNvbXBhdC5oIGZvciBpc25hbigpCgkgIER1ZSB0byB0aGUgdXNhZ2Ugb2YgaXNuYW4oKSwgd2hlcmUgYW4gaW1wbGVtZW50YXRpb24gaXMgYWRkZWQgaW50bwoJICBnc3QvbWF0aC1jb21wYXQuaC4gRml4ZXMgYnVpbGQgb24gVmlzdWFsIEMrKy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNi0yOSAxNjo1MjozMSArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQuaDogYWRkIGltcGxlbWVudGF0aW9uIGZvciBpc25hbigpIGZvciBWaXN1YWwgQysrCgkgIFZpc3VhbCBDKysgZG9lcyBub3QgaGF2ZSBpc25hbigpLCBzbyBhZGQgZmFsbGJhY2sgdG8KCSAgbWF0aC1jb21wYXQuaCAoY291bGQgdXNlIF9pc25hbigpIGluIHRoaXMgY2FzZSwgYnV0CgkgIHRoaXMgbWFrZXMgaXQgd29yayBmb3IgYWxsIGNhc2VzIHdoZXJlIGlzbmFuIGlzIG1pc3NpbmcpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA2LTI5IDEwOjU2OjM0ICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luay5jOiBmaXggR19PU19XSU4zMiAjaWZkZWYKCSAgUG9zdHBvbmUgdGhlICNpZmRlZiB0byBhIHBvaW50IGFmdGVyIGdsaWIuaCAodmlhIGdzdGZkc2luay5oKSBpcyBpbmNsdWRlZAoJICBzbyB0aGF0IHRoZSBuZWVkZWQgZGVmaW5lcyBhbmQgaGVhZGVyIGluY2x1ZGVzIGNhbiBiZSBkb25lIGNvcnJlY3RseSwKCSAgZXNwZWNpYWxseSBvbiBWaXN1YWwgQysrIGJ1aWxkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNS0yNyAyMzowOTo0MyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGZpeCBidWlsZCBvZiBkYXRldGltZSB1bml0IHRlc3QgaW4gV2luZG93cwoJICBBbHNvIGluY2x1ZGUgY29uZmlnLmggZm9yIGFsbCB0aGUgI2lmZGVmIEhBVkVfWFlaLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2OTM1CgoyMDEyLTA2LTI5IDExOjE5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGRvbid0IHVzZSBnX3N0cmR1cF92YWx1ZV9jb250ZW50cygpCgkgIGdfc3RyZHVwX3ZhbHVlX2NvbnRlbnRzKCkgZG9lcyBzb21lIGV4dHJhIGVzY2FwaW5nLCBwcmV2ZW50aW5nIHVzIGZyb20gdXNpbmcgdGhlCgkgIG91dHB1dCBvbiB0aGUgY29uc29sZSB0byBiZSB1c2VkIGRpcmVjdGx5LgoKMjAxMi0wNi0yOCAxNDo0MTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZXhwYW5kIGEgYml0IG1vcmUgb24gR1NUX0RFQlVHIGRvY3MKCjIwMTItMDYtMjggMTE6MDI6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIF9hcHBlbmRfcmVnaW9uIGZ1bmN0aW9uCgkgIE1ha2UgYSBnc3RfYnVmZmVyX2FwcGVuZF9yZWdpb24oKSBmdW5jdGlvbiB0aGF0IGFsbG93cyB5b3UgdG8gYXBwZW5kIGEgbWVtb3J5CgkgIHJlZ2lvbiBmcm9tIG9uZSBidWZmZXIgdG8gYW5vdGhlci4gVGhpcyBpcyBhIG1vcmUgZ2VuZXJhbCB2ZXJzaW9uIG9mCgkgIGdzdF9idWZmZXJfYXBwZW5kKCkuCgoyMDEyLTA2LTI4IDA5OjM2OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBEVFMgYW5kIFBUUwoJICBVc2UgRFRTIGFuZCBQVFMgb2YgdGhlIHN1YmNsYXNzLgoJICBDYWxjdWxhdGUgUFRTIGZyb20gRFRTIG9uIGtleWZyYW1lcy4KCjIwMTItMDYtMjcgMjM6MDE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IHRlc3QgZGF0ZXRpbWUgZGVzZXJpYWxpc2F0aW9uIGEgYml0IG1vcmUKCjIwMTItMDYtMjcgMjM6MDA6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGlnbm9yZSAwIGRheXMgb3IgbW9udGhzIGluIGRhdGVzCgkgIEhhbmRsZSAwIG1vbnRocyBvciBkYXlzIGNvcnJlY3RseSBpbiBkYXRlIHN0cmluZ3MsIHNvIHRoYXQKCSAgMjAxMi0wNi0wMCBpcyBwYXJzZWQgdGhlIHNhbWUgYXMgMjAxMi0wNiwgZm9yIGV4YW1wbGUuCgoyMDEyLTAxLTAxIDE2OjM4OjA4ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGJ1aWxkOiBNYWtlIHN1cmUgQUNfSU5DTFVERVNfREVGQVVMVCBpcyB1c2VkCgkgIFdpdGhvdXQgdXNpbmcgQUNfSU5DTFVERVNfREVGQVVMVCBleHBsaWNpdGx5LAoJICBjZXJ0YWluIHBsYXRmb3JtcyB3aWxsIGNvbXBsYWluIHRoYXQgdGhlIGhlYWRlcgoJICB3YXMgZm91bmQsIGJ1dCBub3QgdXNhYmxlIGJ5IHRoZSBjb21waWxlci4KCSAgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSBvbiBTb2xhcmlzIHdoZXJlIGNlcnRhaW4KCSAgaGVhZGVycyBhcmUgbmVlZGVkIHRvIHB1bGwgaW4gcHJvcGVyIGRlZmluZXMuCgkgIEFsc28gdXBncmFkZSB0byBuZXdlciBhdXRvY29uZiBzeW50YXggYW5kIHVzZSBwcm9wZXIgcXVvdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5MwoKMjAxMi0wNi0yNyAyMDo1Mjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGZpeCBidXMgbGVhayBpbiBHc3RCaW4gdGVzdF9zdGF0ZV9jaGFuZ2Vfc2tpcCB0ZXN0CgkgIFN0aWxsIG5vdCB2YWxncmluZCBjbGVhbiB0aG91Z2guCgoyMDEyLTA2LTI3IDE5OjU5OjI5ICswMTAwICBDaHJpc3RvcGhlIEZlcmdlYXUgPHRldWZAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiBlc2NhcGUgXCB3aXRoIGEgXCBhcyB3ZWxsLCBzbyB0aGF0IHdlIGRvbid0IGxvc2UgdGhlIFwgd2hlbiB1bmVzY2FwaW5nCgkgIElmIHdlIGhhdmUgYSBmaWxlIGNhbGxlZCBGb29cQmFyLm9nZywgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MKCSAgdGhhdCBmaWxlbmFtZSBwcm9wZXJseSB0byBmaWxlc3JjIGluIGdzdF9wYXJzZV9sYXVuY2goKSwgc2luY2UKCSAgZ3N0X3BhcnNlX3VuZXNjYXBlKCkgd2lsbCBqdXN0IHVuZXNjYXBlIFx4IHRvIHguCgkgIE5vdCBjaGVycnktcGlja2luZyB0aGlzIGludG8gMC4xMCBzaW5jZSB0aGVyZSBhcmUgYXBwYXJlbnRseQoJICBhcHBzIHRoYXQgd29yayBhcm91bmQgdGhpcyBwcm9ibGVtIGFuZCB3aGljaCB3b3VsZCBicmVhayBpZgoJICB3ZSBmaXhlZCBpdCB0aGVyZSB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMzMTkKCjIwMTItMDYtMjcgMTY6Mzc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBhbm5vdGF0ZSBzb21lIG9mIHRoZSB0eXBlIGRlZmluZXMgZm9yIGctaQoJICBUeXBlIGlzIG5vdCBwaWNrZWQgdXAgeWV0IHRob3VnaCwgYW5kIHdlIHN0aWxsIG5lZWQKCSAgdG8gYW5ub3RhdGUgdmFsdWVzIGZvciB0aGUgJ3NpbXBsZScgZGVmaW5lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzkyNQoKMjAxMi0wNi0yNyAxNDo0ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFubm90YXRlIEdTVF9DTE9DS19USU1FX05PTkUgd2l0aCBpdHMgdmFsdWUgZm9yIGctaQoJICBUaGUgdmFsdWUgbm93IGdldHMgcGlja2VkIHVwLCBidXQgaXQgc3RpbGwgdGhpbmtzIHRoZSB0eXBlCgkgIGlzIGEgJ2dpbnQnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4OTI4CgoyMDEyLTA2LTI3IDEzOjE5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogYWRkIHNvbWUgZGF0ZXRpbWUgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAzMQoKMjAxMi0wNi0yNyAxMzoxNjowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkYXRldGltZTogZml4IGNvbXBhcmUgZnVuY3Rpb24KCSAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCBub3QgYWxsIGZpZWxkcyBtaWdodCBiZSB2YWxpZCAodGhvdWdoIHRoZXkKCSAgYXJlIHZhbGlkIGluIHRoZSBHRGF0ZVRpbWUgc3RydWN0dXJlKS4gQnV0IHdlIHNob3VsZCBqdXN0IHJldHVybgoJICB1bm9yZGVyZWQgaWYgdGhlIHNldCBmaWVsZHMgZG9uJ3QgbWF0Y2guIEFsc28sIGRvbid0IGNoZWNrCgkgIG1pY3Jvc2Vjb25kcyB3aGVuIGNvbXBhcmluZyBkYXRldGltZXMsIHNpbmNlIHdlIGRvbid0IHNlcmlhbGlzZQoJICB0aG9zZSBieSBkZWZhdWx0IGlmIHRoZXkncmUgYXZhaWxhYmxlLiBUaGlzIGVuc3VyZXMgZGF0ZSB0aW1lcyBhcmUKCSAgc3RpbGwgcmVnYXJkZWQgYXMgZXF1YWwgYWZ0ZXIgc2VyaWFsaXNpbmcrZGVzZXJpYWxpc2luZy4KCjIwMTItMDYtMTggMDg6MDY6NDkgKzAyMDAgIE9sZWtzaWogUmVtcGVsIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogYWRkIHNlcmlhbGlzYXRpb24gdG8gYW5kIGRlc2VyaWFsaXNhdGlvbiBmcm9tIElTTyA4NjAxIHN0cmluZ3MKCSAgU29tZSB0YWcgcGFyc2VycyBhbmQgd3JpdGVycyB1c2Ugc2FtZSBkYXRldGltZSBmb3JtYXQgYmFzZWQgb24gSVNPIDg2MDEuCgkgIFdlIGNhbiByZWR1Y2Ugc29tZSBjb2RlIGJ5IGNyZWF0aW5nIHNvbWUgZ2VuZXJhbCBmdW5jdGlvbnMgZm9yIGl0LgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdG9faXNvODYwMV9zdHJpbmcoKQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21faXNvODYwMV9zdHJpbmcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDMxCgoyMDEyLTA2LTA3IDExOjMwOjQ4ICswMTAwICBMaW9uZWwgTGFuZHdlcmxpbiA8bGxhbmR3ZXJsaW5AZ21haWwuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogYWRkIC0tZGlzYWJsZS10b29scyBhbmQgLS1kaXNhYmxlLWJlbmNobWFya3Mgb3B0aW9ucwoJICBBZGQgb3B0aW9uIHRvIGF2b2lkIGJ1aWxkIGJpbmFyaWVzLiBXaGVuIGJ1aWxkaW5nIGZvciBwbGF0Zm9ybXMgbGlrZQoJICBhbmRyb2lkLCB5b3UgbWlnaHQgd2FudCB0byBub3QgbGluayBhbnkgImZpbmFsIiBiaW5hcnksIG1vc3RseSBiZWNhdXNlCgkgIGl0IHJlcXVpcmVzIHNwZWNpYWwgbGluayBmbGFncyBvciBvdGhlciBwYXJ0cyBvZiBjb2RlIHRoYXQgYXJlbid0CgkgIGluIHRoZSBDIGxpYnJhcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc2MjEKCjIwMTItMDYtMjYgMjA6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBwdXQgdG9jIGRpcmVjdGx5IGludG8gZXZlbnQvbWVzc2FnZS9xdWVyeSBzdHJ1Y3R1cmUKCSAgTm93IHRoYXQgVE9DcyBhcmUgcmVmY291bnRlZCBhbmQgaGF2ZSBhIEdUeXBlLCB3ZSBjYW4ganVzdAoJICBzdHVmZiBhIHJlZiBvZiB0aGUgVE9DIGRpcmVjdGx5IGludG8gdGhlIHZhcmlvdXMgdG9jCgkgIGV2ZW50L21lc3NhZ2UvcXVlcnkgc3RydWN0dXJlcyBhbmQgZ2V0IHJpZCBvZiBsb3RzIG9mCgkgIGNyYWNrdGFzdGljIEdzdFN0cnVjdHVyZSA8LT4gR3N0VG9jIHNlcmlhbGlzYXRpb24gYW5kCgkgIGRlc2VyaWFsaXNhdGlvbiBjb2RlLiBXZSBsb3NlIHNvbWUgVE9DIHNhbml0eSBjaGVja2luZwoJICBpbiB0aGUgcHJvY2VzcywgYnV0IHRoYXQgc2hvdWxkIHJlYWxseSBiZSBkb25lIHdoZW4KCSAgaXQncyBiZWluZyBjcmVhdGVkIGFueXdheS4KCjIwMTItMDYtMjYgMTg6MjI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogc2tpcCBnc3RfYnVzX2NyZWF0ZV93YXRjaCBhcyBHU291cmNlIGlzIG5vdCBpbnRyb3NwZWN0YWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MzBlMzZhODliYzVjMmEwZjJlNGFiN2E3M2JmYTYzMGMxZTAzMzZhLgoJICBUaGlzIHNob3VsZG4ndCBoYXZlIGJlZW4gcHVzaGVkLCBzaW5jZSBHU291cmNlIGlzIG5vdyBoYW5kbGVkCgkgIChodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzI1KQoKMjAxMS0wOC0yOSAxMzo1NzowMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogc2tpcCBnc3RfYnVzX2NyZWF0ZV93YXRjaCBhcyBHU291cmNlIGlzIG5vdCBpbnRyb3NwZWN0YWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDEyLTA2LTI2IDE3OjM1OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNvbWUgbW9yZSBhZGRpdGlvbnMgdG8gdGhlIHBvcnRpbmctdG8tMC4xMSBndWlkZQoKMjAxMi0wNi0yNiAxNzoyNzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogbWlub3IgY2xlYW4tdXAKCSAgR2V0IHJpZCBvZiBzdXBlcmZsdW91cyBhcmd1bWVudC4KCjIwMTItMDYtMjYgMTc6MDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IHJlbW92ZSB1c2VsZXNzIGdfc2V0X3ByZ25hbWUoKSB3cmFwcGVyCgoyMDEyLTA2LTI2IDE2OjU1OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHBvaW50IHBlb3BsZSB0byByaWdodCBiaW5hcnkgd2hlbiBhIGNyYXNoIGhhcHBlbnMKCSAgImdzdC1sYXVuY2giIGlzIHRoZSAwLjEwIHdyYXBwZXIgc2NyaXB0LCB1c2luZyB0aGF0IHdpdGgKCSAgZ2RiIGlzIG5vdCBnb2luZyB0byB5aWVsZCBncmVhdCByZXN1bHRzLgoKMjAxMi0wNi0yNiAxNjo0MjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIG5vdy1yZWxlYXNlZCBzdGFibGUgdmVyc2lvbgoKMjAxMi0wNi0yNiAxNjo0MjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlIGZvciBvbGQgR0xpYiB2ZXJzaW9ucwoKMjAxMi0wNi0yNSAyMzoxNzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBhZGQgbW9yZSBlbnRyeSB0eXBlcwoJICBNYWtlIGVudHJ5IHR5cGVzIGxlc3MgYWJzdHJhY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDYtMTcgMTI6NDg6MDQgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGEgY291cGxlIG9mIG5vdGVzIGZvciB0aGUgMC4xMSBwb3J0aW5nIGd1aWRlCgoyMDEyLTA2LTI2IDA5OjUxOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBzdGVhbF9xZGF0YQoJICBSZXdvcmsgdGhlIHFkYXRhIGNvZGUgYSBsaXR0bGUKCjIwMTItMDYtMjUgMTk6NTI6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jc2V0dGVyOiBjbGVhbiB1cCBhbmQgdXBkYXRlIEFQSSBmb3IgcmVmY291bnRlZCBUT0NzCgkgIExldCdzIGtlZXAgaXQgc2ltcGxlIGZvciBub3c6CgkgIGdzdF90b2Nfc2V0dGVyX3Jlc2V0X3RvYygpIC0+IGdzdF90b2Nfc2V0dGVyX3Jlc2V0KCkKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19jb3B5KCkgLT4gcmVtb3ZlZAoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jKCkgLT4gcmV0dXJucyBhIHJlZiBub3cKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19lbnRyeV9jb3B5KCkgLT4gcmVtb3ZlZCwKCSAgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2VudHJ5KCkgLT4gcmVtb3ZlZCwKCSAgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoJICBnc3RfdG9jX3NldHRlcl9hZGRfdG9jX2VudHJ5KCkgLT4gcmVtb3ZlZCwKCSAgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCAocmVmY291bnQtZGVwZW5kZW50KQoJICB3cml0YWJpbGl0eSBvZiBUT0M7IHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCjIwMTItMDYtMjUgMDk6MzI6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogaW1wcm92ZSBkb2NzCgkgIE1lbnRpb24gdGhhdCBjdXN0b20gYWxsb2NhdG9yIGZ1bmN0aW9ucyBjYW4gcGFzcyB3aGF0ZXZlciB0aGV5IHdhbnQgdG8gdGhlCgkgIHVzZXJfZGF0YS4KCjIwMTItMDQtMDYgMTg6MDA6MzMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogdXNlIEdfREVGSU5FX0lOVEVSRkFDRV8qIG1hY3JvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM2NDEKCjIwMTItMDQtMDYgMTc6NTk6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgdG9jc2V0dGVyOiB1c2UgR19ERUZJTkVfSU5URVJGQUNFXyogbWFjcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzY0MQoKMjAxMi0wNi0yNSAwMDoxMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzIGZvciBUT0MgQVBJIGNoYW5nZXMgdG9vCgoyMDEyLTA2LTI0IDIwOjEwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b2NzZXR0ZXIsIGdzdC1sYXVuY2gsIHRlc3RzOiB1cGRhdGUgZm9yIEdzdFRvYyBBUEkgY2hhbmdlcwoKMjAxMi0wNi0yNCAyMDowODozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBtYWtlIEdzdFRvYyBhbmQgR3N0VG9jRW50cnkgbWluaSBvYmplY3RzCgkgIEJlY2F1c2Ugd2UgY2FuLCBhbmQgaW4gb3JkZXIgdG8gbWFrZSB0aGVtIHJlZmNvdW50ZWQuCgoyMDEyLTA2LTIzIDIxOjQyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IGNvbmZ1c2luZyBsb2cgbWVzc2FnZQoKMjAxMi0wNi0yMyAyMTozNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGludDY0IC0gaW50NjQgcmFuZ2UgaW50ZXJzZWN0aW9uIG9uIGJpZyBlbmRpYW4gc3lzdGVtcwoJICBXb3JrcyBiZXR0ZXIgaWYgd2UgdXNlIHRoZSB2X2ludDY0IGZpZWxkIG9mIHRoZSBHVmFsdWUgaW5zdGVhZCBvZiB2X2ludC4KCjIwMTItMDYtMjMgMTk6NTY6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1pbmlvYmplY3RzOiBwYXNzIGNvcHksIGRpc3Bvc2UgYW5kIGZyZWUgZnVuY3Rpb24gdG8gZ3N0X21pbmlfb2JqZWN0X2luaXQoKQoJICBTbyBtaW5pIG9iamVjdHMgZG9uJ3QgaGF2ZSB0byBwb2tlIGludG8gdGhlIEdzdE1pbmlPYmplY3QgcGFydAoJICBvZiB0aGUgc3RydWN0dXJlLiBTYXZlcyBsaW5lcyBvZiBjb2RlLCBhbmQgc2VlbXMgc2xpZ2h0bHkgY2xlYW5lci4KCSAgV2UgZG9uJ3QgaGF2ZSBwcm9wZXIgT08gaGllcmFyY2hpZXMgb3IgbWV0aG9kcyBoZXJlIGFmdGVyIGFsbC4KCjIwMTItMDYtMjMgMTc6MDU6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZW1vdmUgc29tZSBvdXRkYXRlZCBGSVhNRXMgYW5kIGNvbW1lbnRzCgoyMDEyLTA2LTIzIDE3OjA0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IHNvbWUgbW9yZSBnLWkgYW5ub3RhdGlvbnMKCjIwMTItMDYtMjMgMTY6NTk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBzYW1wbGU6IGFkZCBjb21wYXJlIGZ1bmN0aW9uIGZvciBHc3RTYW1wbGUKCSAgU2hvdWxkIG1ha2UgZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkgd29yayBwcm9wZXJseSB3aXRoIGltYWdlIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI2MzcKCjIwMTItMDYtMjMgMTY6MzA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBidWZmZXIgY29tcGFyZSBmdW5jdGlvbgoKMjAxMi0wNi0yMyAxNDo0MTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NDY3CgoyMDEyLTA2LTIzIDE0OjQxOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IHVwZGF0ZSBmb3IgZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpIGNoYW5nZQoKMjAxMi0wNi0yMyAxNDo0MDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGFkZCBlcnJvciBhcmd1bWVudCB0byBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkKCSAgU28gY2FsbGVycyBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZXJlIG5vdCBiZWluZyBhCgkgIGhhbmRsZXIgZm9yIHRoZSBwcm90b2NvbCwgYW5kIHRoZW0gbm90IGFjY2VwdGluZyB0aGUgVVJJCgkgIGZvciBzb21lIHJlYXNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTQ2NwoKMjAxMi0wNi0yMyAxMjozNzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYW5ub3RhdGUgR3N0TWFwSW5mbyBkYXRhIGFzIGFycmF5IGZvciBnLWkKCjIwMTItMDYtMjAgMTI6NTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcmVtb3ZlIHBvaW50bGVzcyBnZXRfc3RhdGUoKSBpbiBnc3QtbGF1bmNoCgkgIFN0YXRlIGNoYW5nZXMgdG8gTlVMTCBzdGF0ZSBhcmUgYWx3YXlzIHN5bmMuCgoyMDEyLTA2LTIxIDAxOjI4OjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYXZvaWQgbm90aWZ5LXRhZ3MgaG9sZGluZyBsb2NrCgkgIHVubG9jayBiZWZvcmUgaXNzdWluZyB0aGlzIG5vdGlmaWNhdGlvbiB0byBwcmV2ZW50CgkgIGRlYWRsb2NrcyB3aGVuIG90aGVyIGVsZW1lbnRzIHJlYWN0cyB0byBuZXcgdGFncy4KCSAgRml4ZXMgIzY3ODIyMAoKMjAxMi0wNi0xOCAxNjo1NDoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1wLWJhZCBnc3QtbGlicyB0byB0aGUgcGF0aAoJICBNYWtlcyB2aWRlb3BhcnNlcnMgYW5kIGNhbWVyYWJpbnMgZnJvbSBiYWQgdXNhYmxlIGZyb20gYW4gdW5pbnN0YWxsZWQKCSAgZW52aXJvbm1lbnQgYXQgb3N4CgoyMDEyLTA2LTIwIDEzOjI4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIGRlc3Ryb3kgbm90aWZ5IHRvIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkKCjIwMTItMDYtMjAgMTM6Mjc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBpbnRyb3NwZWN0aW9uIGFubm90YXRpb24KCjIwMTItMDYtMjAgMTI6Mjk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBidXM6IGFkZCBHRGVzdHJveU5vdGlmeSB0byBzZXRfc3luY19oYW5kbGVyKCkKCjIwMTItMDYtMjAgMTI6MDY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTA2LTIwIDExOjU5OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiBhZGQgc2VwYXJhdGUgbWV0aG9kcyB0byBhZGQgZW50ZXIvbGVhdmUgY2FsbGJhY2sKCSAgUmVtb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgY2FsbGJhY2tzIGFuZCByZXBsYWNlIHdpdGggc2VwYXJhdGUgbWV0aG9kcyB0byByZWdpc3RlcgoJICBlYWNoIGNhbGxiYWNrLiBUaGlzIGlzIG11Y2ggbW9yZSBiaW5kaW5nIGZyaWVuZGx5LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODk4CgoyMDEyLTA2LTIwIDEwOjMxOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBHRGVzdHJveU5vdGlmeSB0byBfbmV3CgkgIEFkZCBhIEdEZXN0cm95Tm90aWZ5IHRvIHRoZSB1c2VyX2RhdGEgd2UgcGFzcyB0byBnc3RfdGFza19uZXcoKQoJICBDaGFuZ2UgZ3N0X3BhZF9zdGFydF90YXNrKCkgdG8gYWxzbyB0YWtlIHRoZSBub3RpZnkKCjIwMTItMDYtMjAgMDk6NTg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiByZW1vdmUgX2Z1bGwgdmVyc2lvbgoJICBSZW5hbWUgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHRvIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkKCSAgYW5kIHJlbW92ZSB0aGUgb2xkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkgdmVyc2lvbi4KCjIwMTItMDYtMjAgMDk6MjI6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICBuZXR0aW1lcGFja2V0OiBtYWtlIGJveGVkCgoyMDEyLTA2LTE5IDE5OjU1OjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldDogZml4IHNvbWUgYXJndW1lbnQgbmFtZXMgaW4gZG9jdW1lbnRhdGlvbgoKMjAxMi0wNi0xOSAxOTo1NTowMiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IGFzc29ydGVkIG1pbm9yIGludHJvc3BlY3Rpb24gZml4ZXMKCjIwMTItMDYtMTkgMTk6NTM6NTQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGFkZCBzb21lIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiwgaW5jbHVkaW5nIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE4OjQxOjA0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYmFzZTogYWRkIHNvbWUgbWlzc2luZyBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE3OjM3OjU5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrIHBvb2w6IHNldCBzY29wZSBvZiBnc3RfdGFza19wb29sX3B1c2ggY2FsbGJhY2sgdG8gYXN5bmMKCjIwMTItMDYtMTkgMTc6MzM6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyByZXR1cm4gdmFsdWUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTY6MDk6MTAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIGludHJvc3BlY3Rpb246IHJlbmFtZSBzb21lICJkYXRhIiBhcmd1bWVudHMgdG8gInVzZXJfZGF0YSIKCSAgR09iamVjdCBJbnRyb3NwZWN0aW9uIHdpbGwgYXV0b21hdGljYWxseSB0cmVhdCAidXNlcl9kYXRhIiBhcmd1bWVudHMKCSAgYXMgY2xvc3VyZSBkYXRhLgoKMjAxMi0wNi0xOSAxNjowODo0NiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogYWRkIHNvbWUgbWlzc2luZyBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTY6MDY6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyIHBvb2w6IHB1dCBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcyB0eXBlZGVmIGJlZm9yZSBzdHJ1Y3QKCSAgV29ya3MgYXJvdW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01ODE1MjUKCjIwMTItMDYtMTkgMTY6MTQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwcmVyb2xsIGFuZCBzeW5jIG9uIGdhcCBldmVudHMKCjIwMTItMDYtMTkgMTY6MDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW9yZ2FuaXplIHRoZSBjb2RlIGEgbGl0dGxlCgkgIE1vdmUgdGhlIGNvZGUgdG8gZ2V0IHRoZSBzeW5jIHRpbWVzIHRvZ2V0aGVyLgoKMjAxMi0wNi0xOSAxNDozMDozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogRml4IGRvY3MgdHlwbwoKMjAxMi0wNi0xOSAxNDowNToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYXNzZXJ0IGFib3V0IHRpbWVzdGFtcCBvdmVyZmxvd3MKCSAgQXNzZXJ0IHdoZW4gY29udmVydGluZyB0byB0aW1ldmFsIGFuZCB0aW1lc3BlYyBhYm91dCBvdmVyZmxvd3MuIFRoaXMgY2FuIGhhcHBlbgoJICBvbiBwbGF0Zm9ybXMgd2l0aCAzMmJpdHMgbG9uZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODE4MQoKMjAxMi0wNi0xOSAxMDoxMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiByZW1vdmUgZ3N0X3BhZF9zZXRfY2FwcwoKMjAxMi0wNi0xOSAxMDozMjoxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogT25seSBwcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBmb3IgdGhlIGFjdGl2ZSBwYWQgYW5kIHNlbmQgcmVjb25maWd1cmUgZXZlbnRzIHRvIHRoZSBvbGQvbmV3IHBhZCB3aGVuIHN3aXRjaGluZyBwYWRzCgoyMDEyLTA2LTE4IDE2OjE0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3ZlIGdzdF9wYWRfc2V0X2NhcHMoKSB0byBjb21wYXQKCSAgV2Ugd2FudCBjb2RlIHRvIGV4cGxpY2l0bHkgc2VuZCBhIGNhcHMgZXZlbnQgaW5zdGVhZC4KCjIwMTItMDYtMTggMTY6MTM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBzb21lIGRvY3MKCjIwMTItMDYtMTggMTU6NTI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzbWFsbCBkb2MgZml4CgoyMDEyLTA2LTE4IDE1OjI4OjIwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgQ2FzdCB0byB0aGUgcmlnaHQgdmFsdWUsIGl0IG1pZ2h0IGluZGVlZCBvdmVyZmxvdyBidXQgd2Ugd2FudCB0aGUgY29tcGlsZXIgdG8KCSAgaWdub3JlIHRoYXQuCgoyMDEyLTA2LTE4IDE1OjIyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogaGlkZSBxZGF0YSBhcnJheSBsYXlvdXQKCjIwMTItMDYtMTggMTU6MjE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiBjbGFyaWZ5IHFkYXRhIHdydCB0byBtZXRhZGF0YQoKMjAxMi0wNi0xOCAxNToyMToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTItMDYtMTUgMTY6NTY6NDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGludHJvc3BlY3Rpb246IGFzc29ydGVkIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMgaW4gYmFzZQoKMjAxMi0wNi0xNSAxODozNTowNSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIG1pc3NpbmcgZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEyLTA2LTE1IDE2OjE0OjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljIHF1ZXVlOiByZWdpc3RlciBhcyBib3hlZCB0eXBlCgoyMDEyLTA2LTE1IDE2OjQzOjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGludHJvc3BlY3Rpb246IGFzc29ydGVkIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMKCSAgVGhlc2UgY2hhbmdlcyBhcmUgdG8gY2xlYW4gdXAgc3ludGF4IGlzc3VlcyBzdWNoIGFzIG1pc3NpbmcgY29sb25zLAoJICBtaXNzaW5nIHNwYWNlcywgZXRjLiwgYW5kIG1pbm9yIGlzc3VlcyBzdWNoIGFzIGFyZ3VtZW50IG5hbWVzIGluCgkgIGhlYWRlcnMgbm90IG1hdGNoaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgZG9jdW1lbnRhdGlvbi4KCjIwMTItMDYtMTUgMTQ6NTA6NDggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIHRvYyBzZXR0ZXI6IGNoYW5nZSBHc3RUb2NTZXR0ZXJJRmFjZSB0byBHc3RUb2NTZXR0ZXJJbnRlcmZhY2UKCSAgV2l0aG91dCB0aGlzIEdPYmplY3QgSW50cm9zcGVjdGlvbiBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGNvbm5lY3Rpb24KCSAgdG8gR3N0VG9jU2V0dGVyLgoKMjAxMi0wNi0xOCAxMjoxNTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVwZGF0ZSBkb2NzIGEgbGl0dGxlCgoyMDEyLTA2LTE4IDExOjM2OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IHdhaXRfZW9zKCkgLT4gd2FpdCgpCgkgIFJlbmFtZSBnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKCkgdG8gZ3N0X2Jhc2Vfc2lua193YWl0KCkgdG8gYXZvaWQgY29uZnVzaW9uIGFuZAoJICBpbnRyb3NwZWN0aW9uIHByb2JsZW1zIHdpdGggdGhlIDo6d2FpdF9lb3Mgdm1ldGhvZC4gQWxzbyB0aGlzIG1ldGhvZCBjYW4gYmUgdXNlZAoJICB0byB3YWl0IGZvciBvdGhlciB0aGluZ3MgdGhhbiBFT1MuIFVwZGF0ZSB0aGUgZG9jcyBhIGxpdHRsZS4KCjIwMTItMDYtMTggMTA6MTM6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOmNoZWNrIGNhcHMgYXJndW1lbnQKCSAgQ2FwcyBzaG91bGQgYmUgTlVMTCBvciBmaXhlZCB3aGVuIGNvbmZpZ3VyZWQgaW4gYSBidWZmZXJwb29sCgoyMDEyLTA2LTE1IDE3OjAxOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTlVMTCBpcyBub3QgYSB2YWxpZCBjYXBzIGFueW1vcmUKCjIwMTItMDYtMTUgMTU6NDg6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRvY3M6IHJldmlldyB0aGUgYnVmZmVyaW5nIGRvY3MKCjIwMTItMDYtMTUgMTU6MzY6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwZXJjZW50IHNjYWxpbmcKCSAgVXNlIF9zY2FsZSBmdW5jdGlvbnMgdG8gc2NhbGUgdGhlIHBlcmNlbnQgdmFsdWVzLgoJICBDb3JyZWN0bHkgc2NhbGUgdGhlIHBlcmNlbnQgdmFsdWVzIGluIHRoZSBidWZmZXJpbmcgcmFuZ2VzLgoKMjAxMi0wNi0xNSAxNDo1NDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBmbHVzaCB3aGVuIHN0YXJ0aW5nCgkgIFdoZW4gd2UgYXJlIGRvaW5nIHRoZSBpbml0aWFsIHNlZWsgaW4gc3RhcnR1cCwgYXZvaWQgZG9pbmcgYSBmbHVzaAoJICAoYW5kIHVubG9jaykgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIHRhc2sgaXMgbm90IHN0YXJ0ZWQgeWV0LgoKMjAxMi0wNi0xNSAxMjo1ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDYtMTUgMTI6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGRvY3M6IGltcHJvdmUgQVBJIGRvY3MKCjIwMTItMDYtMTUgMDA6MDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBhbGxsb2NhdG9yOiBubyBuZWVkIHRvIHN0b3JlIHN0cnVjdHVyZSBzaXplIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjU0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjUyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQ5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0NToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBjYXBzIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0MTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBubyBuZWVkIHRvIHN0b3JlIHNpemUgb2YgdGhlIG1lc3NhZ2Ugc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjM4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzYW1wbGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHRhZyBsaXN0IHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNSAxMToyNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGV4cGFuZCBkb2NzIGEgbGl0dGxlCgkgIEFkZCBibHVyYiBhYm91dCBxZGF0YSBhbmQgd2VhayByZWZzLgoKMjAxMi0wNi0xNSAxMDo0NDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgcWRhdGEKCSAgS2VlcCB0cmFjayBvZiBxZGF0YSBmb3IgbWluaW9iamVjdHMuIFJldXNlIHRoZSB3ZWFrIHJlZiBhcnJheSBmb3IgdGhpcyBiZWNhdXNlCgkgIHdlIGNhbi4KCjIwMTItMDYtMTUgMTA6NTY6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZXJyb3IgaW4gdGhlIHdlYWsgcmVmIGhhbmRsaW5nCgkgIFdoZW4gMiB3ZWFrIHJlZnMgYXJlIGFkZGVkLCB0aGUgYXJyYXkgaXMgbm90IHJlc2l6ZWQgYmlnIGVub3VnaC4KCSAgU2ltcGxpZnkgdGhlIHdlYWsgcmVmIGhhbmRsaW5nIGNvZGUuCgkgIEZyZWUgbWVtb3J5IHdoZW4gd2UgcmVtb3ZlIGFsbCB3ZWFrIHJlZnMuCgkgIEFsbG93IGluc3RhbGxpbmcgdGhlIHNhbWUgd2VhayByZWYgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gZ29iamVjdC4KCjIwMTItMDYtMTQgMTc6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlbW92ZSB0aGUgc2l6ZSBmaWVsZAoJICBUaGUgc2l6ZSBmaWVsZCBpcyB1c2VkIGJ5IHN1YmNsYXNzZXMgdG8gc3RvcmUgdGhlIHRvdGFsIGFsbG9jYXRlZCBzaXplIG9mIHRoZQoJICBtZW1vcnkgZm9yIHRoaXMgbWluaW9iamVjdC4gQmVjYXVzZSBtaW5pb2JqZWN0IGRvZXNuJ3QgcmVhbGx5IGRvIGFueXRoaW5nIHdpdGgKCSAgdGhpcyBmaWVsZCB3ZSBjYW4gbW92ZSBpdCB0byB0aGUgc3ViY2xhc3Nlcy4KCjIwMTItMDYtMTQgMTY6MzA6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgR3N0TWVtb3J5IGEgbWluaW9iamVjdAoKMjAxMi0wNi0xNCAxNjoyNzoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogYWx3YXlzIHByaW50IG1pbmlvYmplY3QgcmVmY291bnQKCjIwMTItMDYtMTQgMTU6NDA6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGNvcHkgZnVuY3Rpb24KCSAgTWFrZSB0aGUgY29weSBmdW5jdGlvbiBtYXAgdG8gcmVmIGJlY2F1c2Ugd2UgY2FuJ3Qgc2FmZWx5IGNvcHkgdGhlIHVzZXJfZGF0YS4KCjIwMTItMDYtMTQgMTU6MzM6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSBHc3RBbGxvY2F0b3IgYSBtaW5pb2JqZWN0CgoyMDEyLTA2LTEyIDEzOjI2OjM1ICswMjAwICBEYXZpZCBTdmVuc3NvbiBGb3JzIDxkYXZpZHNmQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZ3N0ZnVubmVsOiBhdm9pZCBhY2Nlc3Mgb2YgZnJlZWQgcGFkCgkgIFNhdmUgdGhlIHZhbHVlIG9mIHRoZSBwYWQncyBnb3RfZW9zIGluIGdzdF9mdW5uZWxfcmVsZWFzZV9wYWQsCgkgIGJlZm9yZSBjYWxsaW5nIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQuIFRoaXMgaXMgYmVjYXVzZQoJICBnc3RfZWxlbWVudF9yZW1vdmVfcGFkIG1heSBmcmVlIHRoZSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMTcKCjIwMTItMDYtMTQgMTQ6MDU6MTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBhZCB0cmFuc2ZlciBhbm5vdGF0aW9uIGZyb20gbm9uZSB0byBmdWxsCgkgIHNpbmNlIHRoZSBwYWQgd2lsbCBiZSB1bnJlZmZlZC4KCjIwMTItMDYtMTMgMTA6NTI6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbWVzc2FnZTogYWRkIHRoZSBydW5uaW5nLXRpbWUgdG8gdGhlIGFzeW5jLWRvbmUgbWVzc2FnZQoJICBBZGQgdGhlIHJ1bm5pbmctdGltZSBvZiB0aGUgYnVmZmVyIHRoYXQgY2F1c2VkIHRoZSBhc3luYyBvcGVyYXRpb24gdG8gY29tcGxldGUKCSAgdG8gdGhlIGFzeW5jLWRvbmUgbWVzc2FnZS4KCSAgVXBkYXRlIGJpbiB0byBoYW5kbGUgdGhlIG5ldyBhc3luYy1kb25lIG1lc3NhZ2UuCgoyMDEyLTA2LTEzIDEwOjUxOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgcGlwZWxpbmU6IHVzZSByZXNldF90aW1lIG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHN0YXJ0IHRpbWUKCSAgVXNlIHRoZSBuZXcgUkVTRVRfVElNRSBtZXNzYWdlIHRvIHJlc2V0IHRoZSBzdGFydC10aW1lIG9mIHRoZSBwaXBlbGluZSB0byB0aGUKCSAgcmVxdWVzdGVkIHRpbWUuCgkgIE1ha2UgYmFzZXNpbmsgcmVxdWVzdCBhIG5ldyBydW5uaW5nLXRpbWUgd2hlbiB0aGUgZmx1c2gtc3RvcCBtZXNzYWdlIHRlbGxzIGl0IHRvCgkgIGluc3RlYXNkIG9mIHdhaXRpbmcgZm9yIHByZXJvbGwuCgoyMDEyLTA2LTEzIDEwOjE2OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIGEgbmV3IG1lc3NhZ2UgdG8gcmVzZXQgdGltZQoJICBBZGQgYSBuZXcgbWVzc2FnZSB0byByZXNldCB0aGUgcGlwZWxpbmUgcnVubmluZ190aW1lLiBDdXJyZW50bHkgcmVzZXRpbmcgdGhlCgkgIHBpcGVsaW5lIGNhbiBvbmx5IGJlIHJlcXVlc3RlZCBpbiB0aGUgYXN5bmNfZG9uZSBtZXNzYWdlIHdoaWNoIG1lYW5zIHRoYXQgdGhlCgkgIHBpcGVsaW5lIG5lZWRzIHRvIGJlIHByZXJvbGxlZC4gSXQgaXMgYmV0dGVyIHRvIG1vdmUgdGhpcyB0byBhIHNlcGFyYXRlIG1lc3NhZ2UuCgoyMDEyLTA2LTEyIDE3OjExOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFsd2F5cyByZWN1cnNlIGludG8gYmlucyB3aGVuIGRvaW5nIHN0YXRlIGNoYW5nZXMKCSAgTmV2ZXIgc2tpcCB0aGUgc3RhdGUgY2hhbmdlIG9mIGEgYmluIGJlY2F1c2UgaXQgbmVlZHMgdG8gdXBkYXRlIHRoZSBiYXNlIHRpbWUgb2YKCSAgaXRzIGNoaWxkcmVuIHdoZW4gbmVlZGVkLgoKMjAxMi0wNi0xMyAwMDozMDo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUgZm9yIG5ldyBkYXRldGltZSBhcGkKCjIwMTItMDYtMTMgMDA6Mjg6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBsYXRlc3QgQVBJCgoyMDEyLTA2LTEzIDAwOjI1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgZGF0ZXRpbWUgQVBJCgoyMDEyLTA2LTEzIDAwOjIxOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3IgcGFydGlhbCBkYXRlIHRpbWUgZmllbGRzCgoyMDEyLTA2LTEyIDIzOjUyOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGNsZWFuLXVwcyBhbmQgbmV3IEFQSSBhZGp1c3RtZW50cwoJICBSZW1vdmUgY29uc3RydWN0b3JzIHdlIGRvbid0IHdhbnQ6CgkgIGdzdF9kYXRlX3RpbWVfbmV3X3ltZF9oKCkgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCgkgIHN1cHBvcnQgaG91ci1vbmx5IGZvciBub3c7CgkgIGdzdF9kYXRlX3RpbWVfbmV3X3ltZF9obSgpIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwoJICBhZGQgY29uc3RydWN0b3JzIHdpdGggdGltZSBpbmZvIHdoZXJlIHRoZSBjYWxsZXIgZG9lc24ndAoJICBoYXZlIHRvIHRoaW5rIGFib3V0IHdoYXQgdGltZXpvbmUgdGhlIHRpbWUgaXMgaW4uCgkgIExvdHMgb2YgY29tcHVsc2l2ZSBjbGVhbi11cC4gRG9jcyBmaXhlcy4gUmVwbGFjZQoJICBoYXNfbWludXRlKCkgYW5kIGhhc19ob3VyKCkgd2l0aCBoYXNfdGltZSgpLgoKMjAxMi0wNi0xMiAyMjozNTo0MiArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGFsbG93IEdzdERhdGVUaW1lIHdoZXJlIG5vdCBhbGwgZmllbGRzIGFyZSBzZXQKCSAgSW4gb3JkZXIgdG8gZGVzZXJpYWxpc2UgYW5kIHJlLXNlcmlhbGlzZSBkYXRlcyBhbmQgZGF0ZSB0aW1lcwoJICBmcm9tIHRhZ3MgcHJvcGVybHksIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBleHByZXNzIHBhcnRpYWwKCSAgZGF0ZXMgKGUuZy4gWVlZWSBvciBZWVlZLU1NKSBhbmQgZGF0ZSB0aW1lcy4KCSAgV2Ugb25seSBzdXBwb3J0IHBhcnRpYWwgZGF0ZSB0aW1lcyB3aGVyZSBhbGwgdGhlIG1vcmUKCSAgc2lnbmlmaWNhbnQgZmllbGRzIGFib3ZlIHRoZSBmaXJzdCB1bnNldCBmaWVsZCBhcmUgc2V0CgkgIChlLmcuIFlZWVktMDAtREQgaXMgbm90IHN1cHBvcnRlZCkuCgkgIENhbGxpbmcgX2dldF9mb28oKSB3aGVuIGZvbyBpcyBub3Qgc2V0IGlzIG5vdCBhbGxvd2VkCgkgIGFueSBtb3JlLCBjYWxsZXJzIG5lZWQgdG8gY2hlY2sgd2hpY2ggZmllbGRzIGFyZSBzZXQKCSAgZmlyc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc3NTcKCjIwMTItMDYtMTIgMjI6NDU6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBmaXggdXAgbWlub3IgaW5jb25zaXN0ZW5jeSBpbiBzdHJ1Y3R1cmUgbmFtZSBvZiBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UKCjIwMTItMDYtMTIgMTE6NDI6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgaW50cm9zcGVjdGlvbjogYWRkIHNvbWUgbWlzc2luZyBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xMiAxNDoyNDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgZmx1c2ggZXZlbnRzIG9uIHRoZSBlbGVtZW50IGFzIHdlbGwKCSAgSGFuZGxlIGZsdXNoLXN0YXJ0IGFuZCBmbHVzaC1zdG9wIHNlbnQgb24gdGhlIGVsZW1lbnQgYXMgd2VsbCBhbmQgc2VuZCB0aGVtCgkgIGRvd25zdHJlYW0uIE1ha2Ugc3VyZSB0byBzZW5kIGEgc2VnbWVudCBldmVudCBhZnRlciB0aGUgZmx1c2ggc3RvcC4KCjIwMTItMDYtMTIgMTE6MDU6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBhZGQgYSBmZXcgbW9yZSBjb21tZW50cwoKMjAxMi0wNi0xMSAyMDozNDowMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IGZpeCBzaWduYWwgaGFuZGxlciBzaWduYXR1cmVzIGluIGNsYXNzCgkgIFdoZW4gYWRkaW5nIHRoZSBuYW1lIHBhcmFtZXRlciwgd2UgZm9yZ290IHRvIGFkZCBpdCBoZXJlIHRvby4KCjIwMTItMDYtMTEgMTA6NTk6NDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHVzZSBHc3RDaGlsZFByb3h5IGluc3RlYWQgb2YgR09iamVjdCBvbiB0aGUgcHVibGljIGFwaQoJICBGaXggdXNhZ2UgYW5kIGFsc28gY2xlYW51cCBnc3Rfb2JqZWN0IGFwaSB1c2Ugb24gZ29iamVjdHMuCgoyMDEyLTA2LTExIDE1OjQ5OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogcmVtb3ZlIHVudXNlZCBVTlBBUkVOVElORyBmbGFnCgoyMDEyLTA2LTExIDE1OjQxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlb3JnYW5pemUgX3JlbW92ZV9mdW5jIHRvIGF2b2lkIHJhY2VzCgkgIE1ha2UgdGhlIGdzdF9iaW5fcmVtb3ZlX2Z1bmMgbW9yZSBsaWtlIHRoZSBhZGRfZnVuYy4gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgd2UgdHJ5CgkgIHRvIHJlbW92ZSBmcm9tIHRoZSBiaW4gaGFzIHRoZSBiaW4gYXMgdGhlIHBhcmVudCBhbmQgc2V0IHRoZSBwYXJlbnQgZmxhZyB0byBOVUxMCgkgIGltbWVkaWF0ZWx5LCB0aGlzIGFsbG93cyB1cyB0byBhdm9pZCBjb25jdXJyZW50IHJlbW92ZSBvcGVyYXRpb25zIHdpdGhvdXQgdXNpbmcKCSAgdGhlIFVOUEFSRU5USU5HIGVsZW1lbnQgZmxhZy4gQWZ0ZXIgd2UgdW5wYXJlbnRlZCB0aGUgZWxlbWVudCBmcm9tIHRoZSBiaW4sIHdlCgkgIHVwZGF0ZSB0aGUgYmluIHN0YXRlIGFuZCByZW1vdmUgdGhlIGVsZW1lbnQgZnJvbSB0aGUgbGlzdC4gRmluYWxseSB3ZSB1bmxpbmsKCSAgYWxsIHRoZSBwYWRzLgoJICBUaGlzIGF2b2lkcyBhIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBlbGVtZW50IGNvdWxkIHN0aWxsIGNsYWltIHRvIGhhdmUgdGhlCgkgIGJpbiBhcyB0aGUgcGFyZW50IHdoaWxlIHRoZSBiaW4gZGlkbid0IGhhdmUgYSBwb2ludGVyIHRvIHRoZSBlbGVtZW50IGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc3NTkKCjIwMTItMDYtMTAgMTI6NDg6MDAgLTA0MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IE9ubHkgc2VuZCBjYXBzIHdoZW4gcGFkIGlzIGJlaW5nIGFjdGl2YXRlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODE5CgoyMDEyLTA2LTEwIDEyOjQxOjEyIC0wNDAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogU3RhcnQgb3ZlciBpZiBzdWJjbGFzcyByZW1vdmVkIHRoZSBuZXh0IHBhZCB0b28KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzgxOAoKMjAxMi0wNi0wOSAxODowNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IHJlbW92ZSBmYWxsYmFjayBjb2RlIGZvciBvbGQgR0xpYnMKCjIwMTItMDYtMDkgMTc6MTM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGFkZCBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAgc2NyaXB0CgkgIExpdHRsZSBzY3JpcHQgdGhhdCBzZXRzIHVwIHRoaW5ncyBpbiB+L2dzdCBhbmQgY2xvbmVzCgkgIHRoZSBtYWluIG1vZHVsZXMgYW5kIHByaW50cyBzb21lIGluc3RydWN0aW9ucy4KCSAgRnJvbSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1VuaW5zdGFsbGVkU2V0dXAKCjIwMTItMDYtMDggMTU6NDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGVsZW1lbnRzOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBkb24ndCBpZ25vcmUgaXRzIHJldHVybiB2YWx1ZQoKMjAxMi0wNi0wOCAxNTo0MToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBjYWxsIGl0IGFmdGVyIHRoZSB2ZnVuYwoKMjAxMi0wNi0wOCAxNTozNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgdGhlIG1hbnVhbCBldmVudCBmaWRkbGluZwoKMjAxMi0wNi0wOCAxNTozMjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgcmV0dXJuIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9zZXRfY2FwcygpCgkgIGUuZy4gaXQgcmV0dXJucyBGQUxTRSBpZiBpbmNvbXBhdGlibGUgY2FwcyBhcmUgc2V0IG9uIHRoZSBwYWQuCgoyMDEyLTA2LTA2IDE5OjAyOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogRmFzdGVyIHJlYWQgbWFjcm9zCgkgIE9uIHBsYXRmb3JtcyB0aGF0IGNhbiBkbyB1bmFsaWduZWQgcmVhZC93cml0ZSwgd2UgY2FuIHJlYWQvd3JpdGUgbXVjaCBmYXN0ZXIKCSAgYnkganVzdCBjYXN0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk5NTQ2CgoyMDEyLTA2LTA3IDEyOjQ5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBjaGVjazogQWRkIGEgdGVzdCBmb3IgR1NUX1JFQURfKiBtYWNyb3MKCjIwMTItMDYtMDggMTQ6NDk6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMi0wNi0wNyAxNzo1ODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVjb25maWd1cmUKCSAgVXNlIHRoZSBwYWQgbWV0aG9kcyB0byBzZXQgYW5kIGNoZWNrIHRoZSByZWNvbmZpZ3VyZSBmbGFncwoJICBDbGVhciB0aGUgcmVjb25maWd1cmUgZmxhZyBiZWZvcmUgd2UgbmVnb3RpYXRlIHNvIHRoYXQgd2UgZG9uJ3QgbWlzcyBhbnkKCSAgcmVjb25maWd1cmUgZXZlbnRzIHdoaWxlIG5lZ290aWF0aW5nCgoyMDEyLTA2LTA3IDE1OjU2OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MiA9PT0KCjIwMTItMDYtMDcgMTU6NTY6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBSZWxlYXNlIDAuMTEuOTIKCjIwMTItMDYtMDcgMTU6NTM6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA2LTA3IDE1OjI4OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIHNvb25lcgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgd2UgZ2V0IHRoZSB0aW1lIG9mIHRoZSBjbG9jayBiZWNhdXNlIHRoYXQgY29kZQoJICBtaWdodCB0YWtlIG90aGVyIGxvY2tzLgoJICBGaXggcG90ZW50aWFsIGNsb2NrIHJlZmNvdW50IGVycm9yIGJlY2F1c2Ugd2UgcmVsZWFzZWQgdGhlIG9iamVjdCBsb2NrIGJ1dAoJICBkaWRuJ3QgcmVmIHRoZSBjbG9jay4KCjIwMTItMDYtMDcgMTA6MzQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIDAuMTEgZml4bWUKCSAgV2UgYWx3YXlzIHJlcXVpcmUgZWxlbWVudHMgdG8gaGF2ZSBhbiB1bmxvY2tfc3RvcCB2bWV0aG9kLgoKMjAxMi0wNi0wNiAxODoxMToxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFdlIG5hbWUgdGhlIHJlZ2lzdHJ5IGFmdGVyIHRoZSB0YXJnZXQgY3B1CgkgIEFuZCBub3QgdGhlIGhvc3QgY3B1CgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmMKCjIwMTItMDYtMDYgMTg6MTg6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxZmFiMzU5IHRvIDAzYTBlNTcKCjIwMTItMDYtMDYgMTU6NDU6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0IGFmdGVyIGV2ZW50IGNoYW5nZQoJICBTb21lb25lIGZvcmdvdCB0byBydW4gbWFrZSBjaGVjayBiZWZvcmUgcHVzaGluZy4uLgoKMjAxMi0wNi0wNiAxMTowNjozMiArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGdzdGFkYXB0ZXI6IEFsaWduIHRoZSBjb21tZW50IGRlc2NyaXB0aW9uIHdpdGggcHVibGljIGFwaSBpbnN0ZWFkIG9mIGludGVybmFsIG9uZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzUzNgoKMjAxMi0wNi0wNiAxNToyOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwYWQgY2xlYW51cCBpbiBkaXNwb3NlCgkgIEluIHRoZSBkaXNwb3NlIGhhbmRsZXIgd2UgZmlyc3QgbmVlZCB0byByZWxlYXNlIGFsbCB0aGUgcmVxdWVzdCBwYWRzIGFuZCB0aGVuCgkgIHJlbW92ZSB0aGUgcmVtYWluaW5nIHBhZHMuIFRoaXMgaXMgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHJlbGVhc2luZyB0aGUKCSAgcmVxdWVzdCBwYWQgbWlnaHQgYWxzbyBjbGVhbmx5IHJlbW92ZSBzb21lIG9mIHRoZSBvdGhlciBkeW5hbWljIHBhZHMsIGxpa2UKCSAgd2hhdCBydHBzZXNzaW9uIGRvZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc0MzYKCjIwMTItMDYtMDYgMTQ6MTQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogRG9uJ3QgbWFrZSB0aGUgVE9DIGV2ZW50IGEgbXVsdGktc3RpY2t5IGV2ZW50CgkgIEVsZW1lbnRzIGFyZSBzdXBwb3NlZCB0byBtZXJnZSB1cHN0cmVhbSBldmVudHMuCgoyMDA5LTEwLTEzIDE3OjI0OjM0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIE1ha2Ugc3VyZSB0aGF0IHVubGlua2VkIHBhZHMgZG8gbm90IGNhdXNlIGEgcmV0dXJuIGZhbHNlIG9uIGxhdGVuY3kgZXZlbnRzLgoJICBDb250ZXh0OiBMYXRlbmN5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIG5vdCBiZQoJICBtZXNzZWQgdXAgYmVjYXVzZSBvZiBub3QtbGlua2VkIHBhZHMuIEluIGdlbmVyYWwsCgkgIG9uZSByZXR1cm4gRkFMU0Ugb24gbGF0ZW5jeSBkaXN0cmlidXRpb24gY2F1c2VzCgkgIHRoZSAib3ZlcmFsbCIgcGlwZWxpbmUgbGF0ZW5jeSBjb25maWd1cmF0aW9uIHRvCgkgIGZhaWwuIFRoaXMgc2hvd3MgdXAgYXMgbm9pc2UgaW4gbG9ncyAod2FybmluZykuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDEyLTA2LTA2IDEyOjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZXZlbnQ6IGFkZCBuYW1lIHRvIHN0aWNreV9tdWx0aSBldmVudHMKCSAgVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGlzIHVzZWQgdG8gc3RvcmUgbXVsdGlwbGUgc3RpY2t5IGV2ZW50cyBvZiBhIGNlcnRhaW4gdHlwZQoJICBvbiBhIHBhZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Njg1OQoKMjAxMi0wNi0wNiAwOTo1OTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZGVzaWduOiBBbHNvIG1lbnRpb24gdGhhdCB0aGUgb3JkZXIgb2YgdGhlIGZpbHRlciBjYXBzIGlzIGltcG9ydGFudAoKMjAxMi0wNi0wNiAwOToxNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogaW1wcm92ZSBkb2NzCgoyMDEyLTA2LTA2IDA5OjEzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgc2VyaWFsaXplZCBldmVudHMgY2FuJ3QgcGFzcyBhZnRlciBFT1MKCSAgT25seSBzZXJpYWxpemVkIGV2ZW50cyBjYW4ndCBiZSBzZW50IG9uIHBhZHMgdGhhdCBhcmUgRU9TLiBPdGhlcndpc2UgYSBzZWVrCgkgIGV2ZW50IHdvdWxkIGJlIHJlZnVzZWQgYXMgd2VsbC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzUyMAoKMjAxMi0wNi0wNSAxNDozODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB0YWxrIGFib3V0IHRoZSBmaWx0ZXIgY2FwcwoKMjAxMi0wNi0wMiAxNjo0NDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciB0YWcgbGlzdCB3cml0YWJpbGl0eQoKMjAxMi0wNi0wMiAxNjozODozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICBnc3RfdGFnX2xpc3RfZnJlZSAtPiBnc3RfdGFnX2xpc3RfdW5yZWYKCjIwMTItMDYtMDIgMTY6Mjk6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogZXhwYW5kIHRhZ2xpc3Qgc2VjdGlvbiBpbiBwb3J0aW5nLXRvLTAuMTEgZG9jcyBhIGJpdAoKMjAxMi0wNi0wNSAxMToyODozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgbmVnb3RpYXRpb24gZG9jcwoJICBNZW50aW9uIHRoYXQgdGhlIGFjY2VwdGNhcHMgcXVlcnkgZG9lcyBub3QgaGF2ZSB0byBiZSByZWN1cnNpdmUKCjIwMTItMDYtMDUgMDk6NDA6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBvYnNvbGV0ZSBjYXBzIGNvZGUKCjIwMTItMDYtMDUgMDk6Mzk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgZGVidWcKCjIwMTItMDYtMDUgMDk6MjE6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCSAgQmVmb3JlIHdlIGNhbiBjaGFuZ2UgdGhlIGNhcHMgb24gYSBzaW5rcGFkIHdpdGggZml4ZWQgY2FwcyB3ZSBuZWVkIHRvIHVuZml4IHRoZQoJICBwYWQgY2Fwcy4KCjIwMTItMDYtMDUgMDk6MTA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcGF1c2UgdGFzayBvbiBFT1MKCSAgRWxlbWVudHMgc2hvdWxkIG5vdCByZWx5IG9uIGNvcmUgdG8gcGF1c2UgdGFza3Mgb24gRU9TLgoKMjAxMi0wNi0wNSAwOTowMDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZXZlbnQgdHlwZSBjaGVjawoKMjAxMi0wNi0wNCAxNjoxOToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggJ3JlcycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uCgoyMDEyLTA2LTA0IDEzOjAwOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCB1bml0IHRlc3QKCjIwMTItMDYtMDQgMTI6NTc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEZpeCB1bml0IHRlc3QKCjIwMTItMDYtMDQgMTE6NDY6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogRG9uJ3QgYWNjZXB0IGFueSBidWZmZXJzIG9yIGV2ZW50cyBhZnRlciBFT1MKCjIwMTItMDYtMDQgMTE6MTM6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIHBlcmZvcm0gc3RhdGUgcHJvY2Vzc2luZyB1cG9uIG5vbi1PSyByZXR1cm4KCSAgLi4uIHNpbmNlIHByb2Nlc3NpbmcgbWlnaHQgc3RpbGwgY29udGludWUgKGlmIGUuZy4gTk9UX0xJTktFRCkKCSAgYW5kIHRoZW4gcHJvcGVyIHN0YXRlIChlLmcuIG9mZnNldCkgbmVlZHMgdG8gYmUgbWFpbnRhaW5lZAoJICAoZS5nLiB0byBhcnJhbmdlIGZvciBhIG5ldyBmcmFtZSBzZXR1cCkuCgoyMDEyLTA2LTA0IDExOjI1OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBbHdheXMgcmV0dXJuIGVycm9ycyBmb3IgRU9TIGV2ZW50cyBpbW1lZGlhdGVseQoJICBGb3Igbm9uLUVPUyBldmVudHMgdGhpbmdzIHdpbGwgZXJyb3Igb3V0IGxhdGVyIGR1cmluZyBkYXRhCgkgIGZsb3cgYnV0IGFmdGVyIEVPUyBldmVudHMgbm8gZGF0YSBmbG93IGlzIGhhcHBlbmluZy4KCSAgU2VlIGJ1ZyAjNjc3MzQwLgoKMjAxMi0wNi0wNCAwOToyNzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBmb3J3YXJkIGNhcHMgZXZlbnRzIHRvIGEgcGFkIGlmIGl0IGFjY2VwdHMgdGhlIGNhcHMKCSAgRml4ZXMgYnVnICM2NzczMzUuCgoyMDEyLTA2LTAyIDIwOjAxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFJldHVybiBGQUxTRSBpZiBwdXNoaW5nIG9mIHN0aWNreSBldmVudHMgZmFpbGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBmOTI0YjkyMmM3MTIwNTlkNzc1MmZjMTViODMyNTUxNzQ1ZmYyN2UuCgkgIFN0aWNreSBldmVudHMgc2hvdWxkIGFsd2F5cyByZXR1cm4gVFJVRSB3aGVuIHB1c2hpbmcgYW5kIHdpbGwKCSAgb25seSBjYXVzZSBmYWlsdXJlcyBkdXJpbmcgZGF0YSBmbG93IGxhdGVyLgoKMjAxMi0wNi0wMiAxNjoxODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHZhcmlhYmxlLXNldC1idXQtbm90LXVzZWQgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wNi0wMiAxNjo1NTowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgcHVzaGluZyBhIHN0aWNreSBldmVudCBmYWlsZWQsIG1ha2Ugc3VyZSB0byBhdCBsZWFzdCBwdXNoIGFueSBwZW5kaW5nIEVPUyBldmVudHMKCSAgT3RoZXJ3aXNlIGEgcGlwZWxpbmUgd2hlcmUgb25lIHN0aWNreSBldmVudCBmYWlscyB0byBiZSBzZW50IHdpbGwKCSAgbmV2ZXIgZm9yd2FyZCBFT1MgZXZlbnRzIGRvd25zdHJlYW0uIFRoaXMgY2FuIGNhdXNlIHBpcGVsaW5lcyB0bwoJICB3YWl0IGZvcmV2ZXIgZm9yIEVPUyBvbiBlcnJvcnMuCgoyMDEyLTA2LTAyIDE2OjAyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXR1cm4gRkFMU0UgaWYgcHVzaGluZyBvZiBzdGlja3kgZXZlbnRzIGZhaWxlZAoJICBJbnN0ZWFkIG9mIGp1c3QgaWdub3JpbmcgZmFpbHVyZSBvZiBwdXNoaW5nIHN0aWNreSBldmVudHMgYW5kCgkgIHJldHVybmluZyBUUlVFIGFzIGlmIGV2ZXJ5dGhpbmcgaXMgZmluZS4KCjIwMTItMDYtMDEgMTY6MzQ6MTYgKzAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogQ29ycmVjdGx5IGdldCBjdXJyZW50IHJ1bm5pbmcgdGltZSB3aGVuIHN5bmNpbmcgdG8gdGhlIHNlZ21lbnQgaW5mb3JtYXRpb24KCSAgRml4ZXMgYnVnICM2NzcyNjMuCgoyMDEyLTA2LTAxIDEwOjI4OjMwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjFiNWE5NiB0byAxZmFiMzU5CgoyMDEyLTA1LTI1IDIyOjU4OjU3IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogQWRkIGZ1bm5lbCB0ZXN0IHRvIGNvdmVyIEVPUyBldmVudCBoYW5kbGluZwoJICBQb3J0ZWQgZnJvbSBmM2IyZGQ2ZiBpbiB0aGUgMC4xMCBicmFuY2gKCjIwMTItMDUtMjUgMjI6NTI6MzMgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBPbmx5IGVtaXQgRU9TIGV2ZW50IGlmIGFsbCBzaW5rcGFkcyBoYXZlIHJlY2VpdmVkIG9uZQoJICBJZiBtdWx0aXBsZSBzb3VyY2VzIGFyZSBwbHVnZ2VkIGludG8gdGhlIGZ1bm5lbCBhbmQgb25lIG9mIHRoZQoJICBzb3VyY2VzIGVtaXRzIGFuIEVPUywgdGhhdCBldmVudCBpcyBwcm9wb2dhdGVkIHRocm91Z2ggdGhlIGZ1bm5lbAoJICBldmVuIHRob3VnaCBvdGhlciBzb3VyY2VzIGNvbm5lY3RlZCB0byB0aGUgZnVubmVsIG1heSBzdGlsbCBiZQoJICBwdXNoaW5nIGRhdGEuIFRoaXMgcGF0Y2ggd2FpdHMgdG8gc2VuZCBhbiBFT1MgZXZlbnQgdW50aWwgdGhlCgkgIGZ1bm5lbCBoYXMgcmVjZWl2ZWQgYW4gRU9TIGV2ZW50IG9uIGVhY2ggc2lua3BhZC4KCSAgUG9ydGVkIGZyb20gZDM5N2VhOTcgaW4gMC4xMCBicmFuY2guCgoyMDEyLTA1LTI5IDE5OjI0OjI1IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogRml4IGludmFsaWQgcmVhZCB3aGVuIHJlbGVhc2luZyByZXF1ZXN0IHBhZHMgaW4gZnVubmVsIHRlc3RzCgoyMDEyLTA1LTI5IDE5OjIzOjA3IC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IGJ1ZmZlciBsZWFrCgoyMDEyLTA1LTMxIDE3OjQ1OjI5ICswMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHRyeSB0byBzeW5jIG9uIHRoZSBzZWdtZW50IGlmIGl0IGhhcyBubyBUSU1FIGZvcm1hdAoJICAuLi5hbmQgd2FpdCB1bnRpbCBpdCBpcyBhY3R1YWxseSBjb25maWd1cmVkIGFuZCBoYXMgYSBmb3JtYXQgYmVmb3JlCgkgIHRyeWluZyB0byBzeW5jLgoKMjAxMi0wNS0zMSAxNzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTm8gbmVlZCB0byBicm9hZGNhc3QgdGhlIHNpZ25hbCBpbiBmbHVzaC1zdG9wCgkgIEV2ZXJ5dGhpbmcgc3RvcHBlZCBhdCB0aGlzIHBvaW50IGFscmVhZHkuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCjIwMTItMDUtMzEgMTM6MDc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MmI3MjY2IHRvIGYxYjVhOTYKCjIwMTItMDUtMzEgMTA6MTA6NDEgKzAxMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHByb3BlcnR5IG5hbWUgaW4gdGhlIGRvY3MKCSAgdGVtcC10ZW1wbGF0ZSwgbm90IHRlbXAtdG1wbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MTcwCgoyMDEyLTA1LTI4IDE0OjI5OjAwIC0wMzAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBQcm9wZXJseSBzeW5jIHdoZW4gY2hhbmdpbmcgc3RyZWFtcwoJICBUaGlzIGFkZHMgcHJvcGVydGllcyB0byB1c2UgdGhlIGNsb2NrIHRpbWUgZm9yIGRlY2lkaW5nIHdoZW4KCSAgdG8gZHJvcCBidWZmZXJzIGZvciBpbmFjdGl2ZSBwYWRzIGFuZCBhIHByb3BlcnR5IHRvIGJ1ZmZlciBhbGwKCSAgbm90IHJlbmRlcmVkIGJ1ZmZlcnMgZm9yIHRoZSBhY3RpdmUgcGFkIHRvIGFsbG93IHBhZCBzd2l0Y2hpbmcKCSAgd2l0aG91dCBsb3NpbmcgYW55IGJ1ZmZlcnMgYXQgYWxsLgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgoyMDEyLTA1LTMwIDEyOjQ0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZWMxYzRhOCB0byA5MmI3MjY2CgoyMDEyLTA1LTMwIDExOjE4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzQyOWJhNiB0byBlYzFjNGE4CgoyMDEyLTA1LTI5IDA4OjQ4OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCBndWFyZHMgdG8gbWFrZSBzdXJlIHRhZ2xpc3QgaXMgd3JpdGFibGUgd2hlbiBtb2RpZnlpbmcgaXQKCSAgTm93IHRoYXQgdGFnbGlzdHMgYXJlIHJlZmNvdW50ZWQgd2UgbmVlZCB0byBjaGVjayBpZiB0aGV5J3JlCgkgIHdyaXRhYmxlIGJlZm9yZSBtb2RpZnlpbmcgdGhlbS4KCjIwMTItMDUtMjggMjM6NTQ6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGF2b2lkIHVubmVjZXNzYXJ5IHN0cmluZyBjb3B5aW5nIHdoZW4gcmVnaXN0ZXJpbmcgdGFncwoJICBBZGQgZ3N0X3RhZ19yZWdpc3Rlcl9zdGF0aWMoKSAtIG5vIG5lZWQgdG8gY29weSBhbGwgdGhvc2UKCSAgc3RyaW5nIGNvbnN0YW50cywgd2hldGhlciB0cmFuc2xhdGVkIG9yIG5vdC4KCSAgQVBJOiBnc3RfdGFnX3JlZ2lzdGVyX3N0YXRpYygpCgoyMDEyLTA1LTI4IDAwOjA4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBjaGVjayBmb3IgR0xpYi1HSU8gY3JpdGljYWxzIGFzIHdlbGwKCjIwMTItMDUtMjggMDA6MDg6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdF90YWdfbGlzdF9mcmVlKCkgLT4gZ3N0X3RhZ19saXN0X3VucmVmKCkKCjIwMTItMDUtMjcgMjM6NTg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBtYWtlIEdzdFRhZ0xpc3QgYSBHc3RNaW5pT2JqZWN0CgkgIFdoaWNoIGFkZHMgcmVmY291bnRpbmcgc3VwcG9ydCwgYW5kIG90aGVyIHRoaW5ncy4KCjIwMTItMDUtMjcgMjA6MzE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbG9nIGZyZWVpbmcgb2YgY2FwcyBhdCBzYW1lIGxvZyBsZXZlbCBhcyBjcmVhdGlvbiwgaS5lLiBUUkFDRQoKMjAxMi0wNS0yNiAxMTozNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlLCBldmVudDogdXBkYXRlIGZvciB0YWcgbGlzdHMgbm90IGJlaW5nIHN0cnVjdHVyZXMgYW55IG1vcmUKCjIwMTItMDUtMjEgMDA6MzE6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBwcm9wZXIgc3RydWN0IG5vdCBqdXN0IGEgR3N0U3RydWN0dXJlCgoyMDEyLTA1LTI1IDEwOjI4OjQwICswMjAwICBKb3NlcCBUb3JyYSA8am9zZXBAZmx1ZW5kby5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBzdGF0aWMgbGlua2luZyBvbiBPUyBYCgkgIFRoZSBsaW5raW5nIGJlaGF2aW91ciBvZiBleHRlcm5hbCB2YXJpYWJsZXMgdGhhdCBhcmUgbm90IGluaXRpYWxpemVkCgkgIGluIHRoZSBjb21waWxhdGlvbiB1bml0IHdoZXJlIHRoZXkgYXJlIGRlZmluZWQgaXMgdW5kZWZpbmVkLiBPbiBPUyBYCgkgIHRoaXMgY2F1c2VzIGEgbGlua2luZyBmYWlsdXJlIHdoZW4gc3RhdGljYWxseSBsaW5raW5nIEdTdHJlYW1lci4KCjIwMTItMDUtMjUgMDk6MTc6MTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgZml2ZS1idWdzLWEtZGF5OiB1c2Ugc3BsaWNlIHRvIHRyaW0gdGhlIGJ1ZyBsaXN0CgoyMDEyLTA1LTI0IDIzOjMwOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgZmFrZXNyYzogcHV0IGJ5dGUgcG9zaXRpb24gcmF0aGVyIHRoYW4gYnVmZmVyIGNvdW50IGludG8gR1NUX0JVRkZFUl9PRkZTRVQKCSAgSWYgd2UncmUgc2VuZGluZyBhIHNlZ21lbnQgaW4gQllURSBmb3JtYXQsIHRoZSBvZmZzZXQKCSAgc2hvdWxkIGJlIGluIGJ5dGVzIGFzIHdlbGwuCgoyMDEyLTA1LTI0IDExOjQ4OjE5ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIGRvY3M6IGZpeCBhIHR5cG8gaW4gcGFydC1zZWdtZW50cy50eHQKCjIwMTItMDUtMjQgMTE6MDI6NTMgKzAyMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb24gYXQgb3JhY2xlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGZpeCBwcm90b3R5cGUgb2YgaGVscGVyX2ZpbmRfc3VnZ2VzdAoJICBUaGUgcHJvdG8gZm9yIGhlbHBlcl9maW5kX3N1Z2dlc3QgaGFzIGEgZGlmZmVyZW50IGFyZ3VtZW50IHRoYW4gdGhlIGFjdHVhbAoJICBmdW5jdGlvbiBpbiB0aGUgc2FtZSBmaWxlIGhhcy4gIFRoaXMgY2F1c2VzIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVyIHRvIGZhaWwuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2MjQKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMKCjIwMTItMDUtMjQgMDg6MDc6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IHJlbW92ZSBhIHN0cmF5IHByaW50IGZyb20gZGVidWdnaW5nIGFuZCBmaXggdXAgY3JvbiBlbnRyeSBkb2NzCgoyMDEyLTA1LTI0IDA5OjAzOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBmaXZlLWJ1Z3MtYS1kYXk6IE1ha2UgIyEgdG8gcGVybCBtb3JlIHBvcnRhYmxlCgoyMDEyLTA1LTI0IDA3OjU2OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiByZW1vdmUgZml4ZWQgJ2tub3duIGlzc3VlJyBmcm9tIGZpdmUtYnVncy1hLWRheSBzY3JpcHQKCSAgVGhpcyB3YXMgd2l0aCBjb21tYXMgYWN0dWFsbHksIGFuZCBzaG91bGQgYmUgZml4ZWQgbm93LgoKMjAxMi0wNS0yNCAwNzo1NDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogYWRkIGZpdmUtYnVncy1hLWRheSBzY3JpcHQKCSAgQ3JvbiBmb2RkZXIuCgoyMDEyLTA1LTIyIDE0OjI3OjQ4ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgdGVzdHM6IHJlbmFtZSBwbGF5YmluMiB0byBwbGF5YmluIGFuZCBhZGRpbmcgc29tZSBkZWJ1ZyBpbmZvCgoyMDEyLTA1LTIyIDE4OjI3OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEyLTA1LTIyIDEzOjUxOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZQoKMjAxMi0wNS0yMSAwOToxNDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBwb3J0IHVuaXQgdGVzdCB0byAwLjExCgoyMDEyLTA1LTIxIDE1OjE0OjUxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGltcHJvdmUgdGhlIHNlZWtpbmcgZG9jcyBtb3JlLgoJICBBbHNvIG1lbnRpb24gaXQgb24gX2VsZW1lbnRfc2Vla3ssX3NpbXBsZX0gYW5kIGJlIG1vcmUgcHJlY2lzZSB3aHkgaXQgaGFwcGVucy4KCjIwMTItMDUtMjEgMTM6MTc6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IGEgdHlwbyBhbmQgY2xhcmlmeSBldmVudCBoYW5kbGluZyBhIGJpdCBtb3JlCgkgIFRlbGwgYWJvdXQgYXN5bmNfZG9uZSBtZXNzYWdlcyBmb3Igc29tZSBldmVudHMgYW5kIHJldmlldyB0aGUgX2V2ZW50X25ld19zZWVrCgkgIGRvY3MuCgoyMDEyLTA1LTE4IDE1OjA0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogdHJ5IGhhcmRlciB0byBhdm9pZCBzdGF0ZSBjaGFuZ2VzIGluIHdyb25nIGRpcmVjdGlvbgoJICBXaGVuIHRoZSBiaW4gZG9lcyBhbiB1cHdhcmQgc3RhdGUgY2hhbmdlLCB0cnkgdG8gYXZvaWQgZG9pbmcgYSBkb3dud2FyZCBzdGF0ZQoJICBjaGFuZ2Ugb24gdGhlIGNoaWxkIGFuZCB2aWNlIHZlcnNhLgoJICBBZGQgc29tZSBtb3JlIHVuaXQgdGVzdHMgZm9yIHRoaXMgZml4LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxODMzCgoyMDEyLTA1LTE4IDIwOjExOjU1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCAtYywgLS10b2MgbWVzc2FnZQoKMjAxMi0wNS0yMSAwMTo0ODoyOSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogQWRkIGJveGVkIHR5cGVzIGZvciBHc3RUb2MgYW5kIEdzdFRvY0VudHJ5CgoyMDEyLTA1LTIwIDE4OjIzOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGZpeCB0eXBlIG9mIHBhZCBwYXJhbWV0ZXIgdG8gZ3N0X3RvY19lbnRyeV9uZXdfd2l0aF9wYWQoKQoKMjAxMi0wNS0yMCAxODoxNjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogdXNlIGNvcnJlY3QgR1R5cGUgZm9yIHRhZyBsaXN0cwoKMjAxMi0wNS0yMCAxODowNjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogYXZvaWQgdW5uZWNlc3NhcnkgR1ZhbHVlIGFjcm9iYXRpY3MKCjIwMTItMDUtMjAgMTc6NDg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogdXNlIGdsb2JhbCBxdWFyayB0YWJsZQoKMjAxMi0wNS0yMCAxNzoxMDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSAgdG9jOiBmaXggaW50ZXJuYWwgVE9DIHF1ZXJ5IGFuZCBldmVudCBzdHJ1Y3R1cmUgbmFtZXMKCSAgTWFrZSB0aGVtIGNvbnNpc3RlbnQgd2l0aCBhbGwgdGhlIG90aGVyIHF1ZXJ5IGFuZCBldmVudCBuYW1lcy4KCjIwMTItMDUtMTkgMTc6MjQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHBsdWdpbmZlYXR1cmU6IG1ha2UgR3N0UGx1Z2luRmVhdHVyZSBzdHJ1Y3R1cmUgcHJpdmF0ZQoJICBNYWtlIEdzdFBsdWdpbkZlYXR1cmUgb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0bwoJICBjbGVhbiBpdCB1cCBhIGxpdHRsZS4gT25seSBHc3RFbGVtZW50RmFjdG9yeSBhbmQKCSAgR3N0VHlwZWZpbmRGYWN0b3J5IGRlcml2ZSBmcm9tIGl0LCBhbmQgdGhleSBhcmUKCSAgb3BhcXVlIGFscmVhZHksIGFuZCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydAoJICBjdXN0b20gcGx1Z2luIGZlYXR1cmVzIGluIHRoZSByZWdpc3RyeSBhbnl3YXkuCgoyMDEyLTA1LTE5IDE3OjIzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMsIHRlc3RzOiBkb24ndCBhY2Nlc3MgdGhlIEdzdFBsdWdpbkZlYXR1cmUgc3RydWN0dXJlIGRpcmVjdGx5CgoyMDEyLTA1LTE5IDE3OjE2OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW4oKQoJICBBZGQgZnVuY3Rpb24gdG8gcmV0cmlldmUgcGx1Z2luIHRoYXQgcHJvdmlkZXMgdGhpcyBmZWF0dXJlLgoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luKCkKCjIwMTItMDUtMTkgMTY6MjE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgZ3N0c2Nhbm9iaiBjaGFuZ2VzCgoyMDEyLTA1LTE5IDE1OjUxOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtYWtlIG9iamVjdCBzdHJ1Y3Qgb3BhcXVlIGZvciBub3cKCSAgTWFrZSBHc3RFbGVtZW50RmFjdG9yeSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvCgkgIGNsZWFuIGl0IHVwIGEgbGl0dGxlLiBJdCdzIG5vdCBzb21ldGhpbmcgYW55b25lCgkgIHdvdWxkIG5lZWQgdG8gZGVyaXZlIGZyb20uCgoyMDEyLTA1LTE5IDE0OjU5OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBkb24ndCB1c2UgcHJpdmF0ZSBHc3RFbGVtZW50RmFjdG9yeSBBUEkgaW4gZ3N0LWluc3BlY3QKCjIwMTItMDUtMTkgMTQ6NTI6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YV9rZXlzKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YV9rZXlzKCkKCjIwMTItMDUtMTggMDk6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogaW1wcm92ZSBFT1Mgb24gc2h1dGRvd24gaGFuZGxpbmcKCSAgV2hlbiB0aGUgLWUgb3B0aW9uIGlzIHNlbGVjdGVkLCBhbHNvIHdhaXQgZm9yIEVPUyB3aGVuIHRoZSBwaXBlbGluZSBwcm9kdWNlZCBhbgoJICBlcnJvci4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDk5NwoKMjAxMi0wNS0xNiAxODo1MzoxNSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBmaXggZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcoKSBkb2NzCgoyMDEyLTA1LTE2IDEzOjI0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdGhyb3R0bGUtdGltZSBpcyB1c2VkCgoyMDEyLTA1LTE2IDEyOjA4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgcHJlcGFyZSBtZXRob2QKCSAgQWRkIGEgcHJlcGFyZSBtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHN5bmMgaGFwcGVucy4gVGhlIHB1cnBvc2Ugb2YgdGhpcwoJICBtZXRob2QgaXMgdG8gcHJlcGFyZSB0aGUgcmVuZGVyaW5nIG9mIHRoZSBnaXZpbmcgYnVmZmVyIHNvIHRoYXQgdGhlIGZvbGxvd2luZwoJICByZW5kZXIoKSBjYWxsIGFmdGVyIHN5bmMgaXMgYSBxdWljayBhcyBwb3NzaWJsZS4KCjIwMTItMDUtMTYgMDk6MTY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgcG90ZW50aWFsIGRlYWRsb2NrCgkgIEluIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIHdlIGRvIGEgcGVyZm9ybV9zZWVrKCkgdGhhdCB3aWxsIGV2ZW50dWFsbHkKCSAgc3RhcnQgdGhlIHN0cmVhbWluZyB0aHJlYWQgd2hpY2ggYWNxdWlyZXMgdGhlIGxpdmUgbG9jayBhbmQgdGhlbiBnb2VzIHRvIHNsZWVwCgkgIGluIHRoZSBjYXNlIG9mIGFwcHNyYy4gUmlnaHQgYWZ0ZXIgd2UgcGVyZm9ybSBzZWVrIHdlIGFsc28gdHJ5IHRvIGFjcXVpcmUgdGhlCgkgIGxpdmUgbG9jayB3aGljaCBtaWdodCB0aGVuIGRlYWRsb2NrLgoJICBmaXggdGhpcyBieSB0YWtpbmcgdGhlIHN0cmVhbSBsb2NrIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzZWVrLiBUaGlzIG1ha2VzIHN1cmUKCSAgdGhhdCB0aGUgc3RyZWFtaW5nIHRocmVhZCBjYW5ub3Qgc3RhcnQgYW5kIGdyYWIgdGhlIGxpdmUgbG9jayB1bnRpbCB3ZSBhcmUgZG9uZQoJICBhbmQgcmVsZWFzZSB0aGUgc3RyZWFtIGxvY2sgYWdhaW4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYwNDgKCjIwMTItMDUtMTUgMTk6MTE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSByZWZlcmVuY2VzIHRvIG1tYXAgaW4gY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCgoyMDEyLTA1LTE1IDE2OjM4OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IFJlbmFtZSBnc3RfdG9jX2VudHJ5X3R5cGVfdG9fc3RyaW5nKCkgdG8gZ3N0X3RvY19lbnRyeV90eXBlX2dldF9uaWNrKCkKCSAgSXQncyBtb3JlIGNvbnNpc3RlbnQuCgoyMDEyLTA1LTE1IDE0OjU5OjA3ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCBwcmludF90b2NfZW50cnkoKQoKMjAxMi0wNS0xNSAxNDo0ODozNSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IEFQSTogQWRkIGdzdF90b2NfZW50cnlfdHlwZV90b19zdHJpbmcoKQoKMjAxMi0wNS0xNCAwMzo1Nzo1MCArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGlmIHNpbmsgcGFkIGlzIGFjdGl2YXRlZCBkbyBub3QgY2hhbmdlIG1vZGUKCSAgSW4gY29tbWl0IGJmMDk2NGI2IGEgY2hlY2sgZm9yIHBhZCBpcyBhY3RpdmF0ZWQgd2FzIG5vdCBjYXJyaWVkLgoJICBUaGlzIGxlYWRzIHRvIGF0dGVtcHQgdG8gcHVsbCB3aGlsZSBpbiBwdXNoIG1vZGUgd2hlbiBmb3JjZV9jYXBzCgkgIGlzIHNldC4gSW4gdGhpcyBjYXNlIHdpdGhvdXQgdGhlIGF0dGFjaGVkIGNoZWNrIGV2ZW4gd2hlbiBhY3RpdmF0ZWQKCSAgaW4gcHVsbCBtb2RlIHdlIGFjdGl2YXRlIGJhY2sgdG8gcHVzaCBtb2RlLgoJICBUaGlzIGlzIGZyb20gY29tbWVudCBpbiBwcmV2aW91cyBjb2RlICwgY2FzZSBudW1iZXIgZWlnaHQ6CgkgIDguIGlmIHRoZSBzaW5rIHBhZCBpcyBhY3RpdmF0ZWQsIHdlIGFyZSBpbiBwdWxsIG1vZGUuIHN1Y2NlZWQuCgkgIC0gICAgIG90aGVyd2lzZSBhY3RpdmF0ZSBib3RoIHBhZHMgaW4gcHVzaCBtb2RlIGFuZCBzdWNjZWVkLgoJICBQdXR0aW5nIGl0IGJhY2sgZml4ZXMgcGxheWJhY2sgb2Ygd2VibSBpbiB3ZWJraXQrZ3N0cmVhbWVyIDEuMCAuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYwMDMKCjIwMTItMDUtMTMgMTY6NTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkxID09PQoKMjAxMi0wNS0xMyAxNjowMjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBSZWxlYXNlIDAuMTEuOTEKCjIwMTItMDUtMTMgMTY6MDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA1LTEzIDE1OjU1OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGM3MDIwMyB0byAzNDI5YmE2CgoyMDEyLTA1LTA5IDE0OjIyOjIwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBPbmx5IGluY2x1ZGUgaW5pdC9kZWluaXQgb2YgYWxsb2MgdHJhY2luZyB3aGVuIGVuYWJsZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTgwNgoKMjAxMi0wNS0xMSAwOTowNzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggZG9jcwoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wNS0xMCAxMjoxNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IGltcHJvdmUgYnVmZmVycG9vbCBkb2NzCgoyMDEyLTA1LTA4IDIwOjEyOjQyICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IHRhZ3MgaW4gdG9jCgoyMDEyLTA1LTA1IDIyOjE3OjQzICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICBnc3Q6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiBtaW5ndy13NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTUyNQoKMjAxMi0wNS0wMiAxNDowMDo0MyArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciB0byBkZWZhdWx0X21lbV9tYXAoKQoJICBGaXhlcyBmdW5jdGlvbiBzaWduYXR1cmUgZm9yIGNvcnJlY3RuZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1Mjg5CgoyMDEyLTA1LTAyIDA4OjA4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxMi0wNS0wMSAyMjozNTozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICB0eXBlZmluZGZhY3Rvcnk6IG1ha2Ugb2JqZWN0IHN0cnVjdCBvcGFxdWUgZm9yIG5vdwoJICBNYWtlIG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8gY2xlYW4gaXQgdXAgYSBsaXR0bGUuCgoyMDEyLTA1LTAxIDIyOjMwOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICB0eXBlZmluZGZhY3Rvcnk6IGZpeCByZXR1cm4gdHlwZSBvZiBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2V4dGVuc2lvbnMoKQoKMjAxMi0wNS0wMSAyMjoyODoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzLCBiYXNlOiBkb24ndCBwb2tlIGludG8gR3N0VHlwZUZpbmRGYWN0b3J5IHN0cnVjdCwgdXNlIHB1YmxpYyBBUEkKCjIwMTItMDUtMDEgMjI6MzM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRmYWN0b3J5OiBhZGQgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2hhc19mdW5jdGlvbigpCgkgIEFkZCBBUEkgc28gcGVvcGxlIGRvbid0IGhhdmUgdG8gcG9rZSB0aGUgc3RydWN0IGZvciB0aGlzLgoKMjAxMi0wNS0wMSAxNTo1MjoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXBkYXRlIGRvY3MgZm9yIGdzdF9jYXBzX2lzX2VxdWFsCgkgIE5VTEwgY2FwcyBhcmVuJ3QgdmFsaWQgY2FwcyBpbiAxLjAgYW5kIGFyZW4ndCBhY2NlcHRlZCBpbgoJICBnc3RfY2Fwc19pc19lcXVhbAoKMjAxMi0wNS0wMSAxOTo0NzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiByZXF1aXJlIFVSSSBwcm90b2NvbCBiaXQgdG8gYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIHRvIGJlIHZhbGlkCgkgIFdlIHdhbnQgdG8gcmV0dXJuIEZBTFNFIHdoZW4gcnVuIG9uIGEgd2luZG93cy1zdHlsZSBmaWxlIHBhdGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQyOTYKCjIwMTItMDQtMjYgMTc6MjY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtL2Jhc2VzcmM6IERvIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbiBpbnNpZGUgdGhlIGRlZmF1bHQgZGVjaWRlX2FsbG9jYXRpb24oKSBpbXBsZW1lbnRhdGlvbgoJICBUaGlzIGFsbG93cyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIGl0LCBhcyBpcyBuZWNlc3NhcnkgZm9yIGUuZy4gdGhlCgkgIHZpZGVvLWNyb3AgbWV0YS4gSXQgaXMgbm93IG5lY2Vzc2FyeSB0aGF0IGFmdGVyIGRlY2lkZV9hbGxvY2F0aW9uKCkKCSAgdGhlcmUgaXMgYWx3YXlzIGEgYWxsb2NhdG9yIGFuZCBhIGNvbmZpZ3VyZWQgYnVmZmVyIHBvb2wgaW5zaWRlIHRoZQoJICBxdWVyeS4KCjIwMTItMDQtMjggMjE6Mzc6NTYgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNldCByZXN1bHQgb24gYWNjZXB0IGNhcHMgcXVlcnkgd2hlbiB0aGVyZSBpcyBubyBwZWVyCgoyMDEyLTA1LTAxIDEwOjUwOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgX3RyeV90b19tZXJnZV91cCgpCgkgIEl0IGNhdXNlcyB0aGUgdGltZXN0YW1wIHRvIGdvIHdyb25nLCBzaG91bGQgbm90IGNhdXNlIG11Y2ggb2YgYSBwZXJmb3JtYW5jZQoJICBpbmNyZWFzZSBhbmQgaW4gdGhlIGNhc2VzIHdoZXJlIGl0IGlzIGZhc3RlciwgaXQgaXMgYnJva2VuIGluIDAuMTAgYXMgd2VsbC4KCSAgV2Ugc2hvdWxkIHRyeSB0byByZXZpZXcgdGhpcyB3aGVuIHJld3JpdGluZyB0aGUgYWRhcHRlciBmb3IgMC4xMSBtZW1vcnkKCSAgZmVhdHVyZXMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQ3OTEKCjIwMTItMDUtMDEgMDk6MjU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IG1ha2UgaW50ZXJuYWxzIHByaXZhdGUKCSAgTWFrZSB0aGUgYWRhcHRlciBmaWVsZHMgcHJpdmF0ZS4KCjIwMTItMDQtMzAgMjA6Mjk6MjEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlYXJyYW5nZSBzeXMvc3RhdC5oIGluY2x1c2lvbiBwb2ludCBmb3IgTWluR1cKCSAgZ3N0cGx1Z2luLmggdXNlZCB0byBpbmNsdWRlIHRoaXMgZm9yIHVzLCBidXQgZG9lc24ndCBhbnkgbG9uZ2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MTcxCgoyMDEyLTA0LTMwIDA5OjU4OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgZXZlbnQ6IGFkZCBuZXcgc2VlayBzbmFwIGZsYWdzCgkgIFRoZXkgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IHNuYXBwaW5nIGJlaGF2aW9yICh0byBwcmV2aW91cywgbmV4dCwgb3IKCSAgbmVhcmVzdCBsb2NhdGlvbiwgd2hlcmUgcmVsZXZhbnQpIHdoZW4gc2Vla2luZy4KCSAgVGhlIHNlZWtpbmcgaW1wbGVtZW50YXRpb24gKGVnLCBkZW11eGVyKSBtYXkgY3VycmVudGx5IGlnbm9yZSBzb21lCgkgIG9yIGFsbCBvZiB0aGVzZSBmbGFncy4KCjIwMTItMDQtMjkgMjA6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIHJlbW92ZWQgQVBJIGluIHBsdWdpbiBkb2NzCgoyMDEyLTA0LTI5IDIwOjA2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhdm9pZCBzb21lIHJlbG9jYXRpb25zCgoyMDEyLTA0LTI5IDE4OjM1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogcmVtb3ZlIGdzdF9wbHVnaW5fbmFtZV9maWx0ZXIKCSAgSXQncyBvbmx5IHVzZWQgaW50ZXJuYWxseSwgbW9zdCBvdGhlciB1c2VycyB3aWxsIGxpa2VseQoJICB3YW50IHRvIHVzZSBnc3RfcmVnaXN0cnlfZmluZF9wbHVnaW4oKSBkaXJlY3RseSBpbnN0ZWFkCgkgIChhbmQgaWYgbm90LCB0aGV5IGNhbiBlYXNpbHkgd2FsayB0aGUgbGlzdCBhbmQgZG9pbmcgdGhlCgkgIHN0cmNtcCB0aGVtc2VsdmVzKS4KCjIwMTItMDQtMjkgMTc6NDY6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwbHVnaW46IHVzZSBHc3RPYmplY3QgZmxhZ3MgZm9yIHBsdWdpbiBmbGFncwoKMjAxMi0wNC0yOSAxNzowMzozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IG1ha2UgR3N0UGx1Z2luIG9iamVjdCBzdHJ1Y3R1cmUgb3BhcXVlIGZvciBub3cKCSAgVGhlcmUncyBubyByZWFzb24gYW55b25lIHdvdWxkIHdhbnQgdG8gZGVyaXZlIGZyb20gdGhpcywgc28KCSAganVzdCBtYWtlIG9wYXF1ZSB1bnRpbCB3ZSBtYW5hZ2UgdG8gbWFrZSBhbGwgdGhlIHByaXZhdGUgYml0cwoJICBwcml2YXRlIHByb3Blcmx5ICh3aGljaCBJJ20gbm90IGRvaW5nIHJpZ2h0IG5vdyBiZWNhdXNlIGl0J3MKCSAgbW9yZSBpbnZhc2l2ZSBhbmQgSSBoYXZlIHJlZ2lzdHJ5IG1vZGlmaWNhdGlvbnMgbG9jYWxseSB3aGljaAoJICB0b3VjaCBhbGwgdGhhdCBjb2RlIGFzIHdlbGwpLgoKMjAxMi0wNC0yOSAxNjo0OTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogdXNlIHB1YmxpYyBhY2Nlc3NvcnMgZm9yIHBsdWdpbiBkZXNjcmlwdGlvbiBkZXRhaWxzCgkgIE1vc3RseSBhbnl3YXkgKGZsYWdzIHN0aWxsIG5lZWQgc29ydGluZyBvdXQpLgoKMjAxMi0wNC0yOSAxNjo0Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogcmVtb3ZlIGdzdF9wbHVnaW5fZ2V0X21vZHVsZSgpCgkgIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIHJlYWxseSwgYW5kIGl0J3Mgbm90CgkgIGNsZWFyIHdoYXQgYW55b25lIHdvdWxkIGRvIHdpdGggdGhpcy4gSXQncyB1bnVzZWQgYXMKCSAgZmFyIGFzIEknbSBhd2FyZSwgc28ganVzdCByZW1vdmUgaXQgZm9yIG5vdy4KCjIwMTItMDQtMjkgMTY6MjA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IGFkZCBhY2Nlc3NvciBmb3IgcmVsZWFzZSBkYXRlIHRpbWUgc3RyaW5nIGluIHBsdWdpbiBkZXNjcmlwdGlvbgoJICBBUEk6IGdzdF9wbHVnaW5fZ2V0X3JlbGVhc2VfZGF0ZV9zdHJpbmcoKQoKMjAxMi0wNC0yOSAxNTo1MzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiB1c2UgcHVibGljIGFjY2Vzc29ycyB0byBnZXQgcGx1Z2luIGRlc2NyaXB0aW9uIGRldGFpbHMKCjIwMTItMDQtMjkgMTM6Mjg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGdpdmUgdGhlIDIwdGggcXVldWUgZWxlbWVudCBhIGRpZmZlcmVudCBuYW1lIHRoYW4gdGhlIGZpcnN0IHF1ZXVlMiBvbmUKCSAgRml4ZXMgaXNzdWUgd2l0aCB0aGUgZGVmYXVsdCBuYW1pbmcgc2NoZW1lLgoKMjAxMi0wNC0xOCAxNzozNzoyNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggZm9ybWF0IHN0cmluZyBpbiBncmFtbWFyLnkKCSAgRml4ZXMgIzY3NDg0OQoKMjAxMi0wNC0yNSAyMDoxNDoxMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmdzOiBhZGQgY29tbWVudHMgZm9yIHNwYXJzZSBjb250cm9sIHNvdXJjZQoKMjAxMi0wNC0yNSAyMDoxMDoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBlbXVsYXRlIF9nZXRfZ192YWx1ZV9hcnJheSgpCgkgIEFkZCBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb24gdGhlIGJhc2VjbGFzcy4KCjIwMTItMDQtMjUgMDk6NDc6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBleHBhbmQgdGhlIGFwaSB0byBvZmZlciBmdW5jdGlvbnMgZm9yIHBsYWluIGFuZCBHVmFsdWUgYXJyYXlzCgkgIFJlbmFtZSB0aGUgX2dldF92YWx1ZV9hcnJheSgpIGZ1bmN0aW9ucyB0byBfZ2V0X2dfdmFsdWVfYXJyYXkoKSBhbmQgcmVpbnRyb2R1Y2UKCSAgdGhlIGZvcm1lciB0byBvcGVyYXRlIG9uIHBsYWluIHVuYm94ZWQgYyBkYXRhdHlwZXMgKGxpa2UgaW4gMC4xMCkuIFRoZSBfZ192YWx1ZQoJICB2YXJpYW50cyBhcmUgZm9yIGJpbmRpbmdzIHdoaWxlIHRoZSBfdmFsdWUgb25lcyBhcmUgbW9yZSBzdWl0ZWQgdG8gcHJvY2Vzc2luZwoJICBpbiBlbGVtZW50cy4KCjIwMTItMDQtMjUgMTg6MTE6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIGluc2FuaXR5LCBpbnNhbml0eS1nc3QgYW5kIGdzdC1lZGl0aW5nLXNlcnZpY2VzCgoyMDEyLTA0LTI1IDA5OjA2OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogUmVzZXQgdGhlIGJ1ZmZlciBiZWZvcmUgcmVsZWFzaW5nIGludG8gcG9vbAoJICBSZXNldCB0aGUgYnVmZmVyIG5vdCBhZnRlciB3ZSBhY3F1aXJlIGJ1dCBiZWZvcmUgd2UgcmVsZWFzZSBpbnRvIHRoZSBwb29sLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB0aGUgcG9vbCBvbmx5IGhhcyBidWZmZXJzIGluIGEgY2xlYW4gc3RhdGUgYW5kIHRoYXQgd2UgY2FuIHNldAoJICBleHRyYSBtZXRhZGF0YSBvbiBidWZmZXJzIGluIHRoZSBhY3F1aXJlIG1ldGhvZC4gdGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8KCSAgcmVtb3ZlIGFuIGFyZ3VtZW50IGZyb20gdGhlIG1ldGhvZC4KCjIwMTItMDQtMjMgMTU6MzI6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogTUFSS0VSIGlzIGZvciB0aGUgc3RhcnQgb2YgYSB0YWxrc3B1cnQKCjIwMTItMDQtMjQgMTY6MDE6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBsdWcgc29tZSBsZWFrcwoKMjAxMi0wNC0yMyAxNzowNDo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBkbyBub3QgdW5yZWYgZmx1c2hfc3RhcnQgdHdpY2UKCSAgQmFzZWQgb24gcGF0Y2ggYnkgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCjIwMTItMDQtMjMgMTY6NTc6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlZnJlc2ggc2tpcCBmb2xsb3dpbmcgbWVyZ2VfdXAgYXR0ZW1wdAoJICAuLi4gYXMgdGhlIGxhdHRlciBtaWdodCBub3cgYWRqdXN0IHNraXAgYXMgd2VsbC4KCjIwMTItMDQtMjMgMDk6MTg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtIGxpc3QKCSAgVGhpcyBjb21tYSBjb25mdXNlcyBzb21lIGNvbXBpbGVycy4KCjIwMTItMDQtMTggMTU6MzE6MjMgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBSZW1vdmUgdW5uZWVkZWQgdW5sb2NrCgoyMDEyLTA0LTE4IDA1OjEyOjU1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGhhcmRjb2RlZCAwLjEwIHZlcnNpb24gaW4gd2luMzIgcGx1Z2luc2Nhbm5lcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0Mjk0CgoyMDEyLTA0LTE3IDE1OjM3OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBhZGQgTE9DS0VEIGZsYWcKCSAgQWRkIGEgbmV3IExPQ0tFRCBmbGFnIHRvIHRoZSBtZXRhZGF0YS4gUmVmdXNlIHJlbW92aW5nIExPQ0tFRCBtZXRhZGF0YSBmcm9tCgkgIGEgYnVmZmVyLgoJICBNYXJrIHRoZSBtZXRhZGF0YSBmcm9tIHRoZSBidWZmZXJwb29sIExPQ0tFRC4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgTE9DS0VEIGZsYWcKCjIwMTItMDQtMTcgMTQ6Mzg6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2ouZmlsdGVyczoKCSAgY29sbGVjdHBhZHMyOiByZW5hbWUgdG8gY29sbGVjdHBhZHMKCjIwMTItMDQtMTcgMTI6NTQ6NDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGVuc3VyZSB3cml0YWJsZSBoZWFkIGJ1ZmZlciBiZWZvcmUgc2tpcHBpbmcgcGFydCBvZiBpdAoKMjAxMi0wNC0xNyAxMjoyOTo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgoyMDEyLTA0LTE3IDEyOjIzOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYWx3YXlzIHJlY29yZGluZyBpbmNvbWluZyBzZWdtZW50IGluZm8gaWYgbm8gYnVmZmVyX2Z1bmMgc2V0CgoyMDEyLTA0LTE3IDEwOjM4OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHVwZGF0ZSB0aGUgZGVidWcgYW5kIHRyYWNlIGVudiB2YXIgZG9jcwoKMjAxMi0wNC0xNyAxMDozMzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogdXNlIGdfcGFyc2VfZGVidWdfc3RyaW5nIGluc3RlYWQgb2YgYXRvaQoJICBNYWtlIHRoZSBHU1RfVFJBQ0UgZW52IHZhcmlhYmxlIHRha2UgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzCgkgIGRlc2NyaWJpbmcgdGhlIG9wdGlvbnMgdG8gZW5hYmxlIGluc3RlYWQgb2YgYSBudW1iZXIuCgoyMDEyLTA0LTE2IDIxOjE0OjE3ICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IElmIHJ1bm5pbmcgd2l0aCAtLXByaW50LWFsbCwgZml4IHByaW50aW5nIG9mIHRoZSBDaGlsZHJlbjogbGluZQoKMjAxMi0wNC0xNiAyMToxNDowMiArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJZiBydW5uaW5nIHdpdGggLS1wcmludC1hbGwsIGZpeCBwcmludGluZyBvZiBzaWduYWwgbmFtZXMKCjIwMTItMDQtMTYgMTY6MzY6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBjb2xsZWN0cGFkczIgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wNC0xNiAxNjoyOTozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgoyMDEyLTA0LTE2IDE2OjI0OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogcHJvdmlkZSBxdWVyeSBkZWZhdWx0IGFuZCBjYWxsYmFjayBoYW5kbGluZwoJICAuLi4gd2hpY2ggcHJlc2VudGx5IG1haW5seSBzZXJ2ZXMgdG8gYW5zd2VyIFNFRUtJTkcgcXVlcnkgbmVnYXRpdmVseQoJICB0byBkaXNzdWFkZSB1cHN0cmVhbSBlbmNvZGVycyBmcm9tIGRvaW5nIGFueSBzZWVraW5nIGFuZAoJICAiaGVhZGVyIGZpbmFsaXphdGlvbiIgKHNpbmNlIHRoZSByZXR1cm5lZCByZXN1bHQgb2YgcHVzaGluZyBhCgkgIHN0aWNreSBldmVudCBpcyBmYWlybHkgdXNlbGVzcyBub3dhZGF5cykuCgoyMDEyLTA0LTE2IDE2OjI0OjEwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogbW9kaWZ5IGV2ZW50IGhhbmRsaW5nIHVzaW5nIGEgZGVmYXVsdCBldmVudCBoYW5kbGVyCgkgIC4uLiB0aGF0IGVsZW1lbnRzIHNob3VsZCAiY2hhaW4gdXAiIHRvLgoKMjAxMi0wNC0xNiAxNTozNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBzZWdtZW50OiBhZGQgcnVkZSBzZXJpYWxpemF0aW9uCgkgIEFzcyBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIGZ1bmN0aW9ucyBmb3IgR3N0U2VnbWVudCBzbyB0aGF0IGdkcCBhbmQKCSAgZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcgc2hvdyB0aGUgc2VnbWVudCB2YWx1ZXMuIFdlIGNvbnZlcnQgdG8gYSBHc3RTZWdtZW50CgkgIGZpcnN0IHRvIG1ha2UgdGhpbmdzIGVhc2llci4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQxMDAKCjIwMTItMDItMDMgMTc6MDg6MzUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhc3N1bWUgMCBiYXNlZCBzZWdtZW50IGlmIG5vIHRpbWUgc2VnbWVudCB3YXMgcHJvdmlkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTMwNQoKMjAxMi0wNC0xNiAxMDoyODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgc2l6ZSB0byBkZWJ1ZyBsb2cKCjIwMTItMDQtMTYgMTA6Mjc6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNldCBzZXF1ZW5jZSBudW1iZXIgb24gc2VnbWVudCBldmVudHMKCjIwMTItMDQtMTYgMTA6MjI6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZvcndhcmQgYWxsIHN0aWNreSBldmVudHMgd2hlbiBzd2l0Y2hpbmcgcGFkcwoKMjAxMi0wNC0xNiAxMDowNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFN0b3JlIHBhZCBzdGF0ZSBkaXJlY3RseSBpbnNpZGUgdGhlIHBhZHMgaW5zdGVhZCBvZiBHT2JqZWN0IHFkYXRhCgoyMDEyLTA0LTE2IDA5OjQ1OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZW5kIHJlY29uZmlndXJlIGV2ZW50IG9uIHRoZSBuZXcgYWN0aXZlIHBhZCB3aGVuIHBhZHMgYXJlIHN3aXRjaGVkCgoyMDEyLTA0LTE2IDA5OjA4OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmRiMjViZSB0byBkYzcwMjAzCgoyMDEyLTA0LTE0IDAzOjI3OjI5ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFJlbW92ZSBza2lwcGVkIHBhcnQgb2YgYnVmZmVyIHdoZW4gbWFwcGluZyB0aGUgYWRhcHRlcgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MDg1CgoyMDEyLTA0LTE0IDEwOjI0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciBhZGFwdGVyIHRlc3QKCSAgVGVzdCBwZXJmb3JtYW5jZSBvZiBtZXJnaW5nCgoyMDEyLTA0LTE0IDEwOjIzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZGVidWcKCjIwMTItMDQtMTMgMTQ6MjI6MzQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCB1bmxvY2tzIHRoZSBxdWV1ZSB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MDQ0CgoyMDEyLTA0LTEzIDEzOjM2OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBNb2Rlcm5pemUgYXV0b3Rvb2xzIHNldHVwIGEgYml0CgkgIEFsc28gd2Ugbm93IG9ubHkgY3JlYXRlIHRhci5iejIgYW5kIHRhci54eiB0YXJiYWxscy4KCjIwMTItMDQtMTMgMTM6MzY6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjRmZTE1IHRvIDZkYjI1YmUKCjIwMTItMDQtMTMgMTE6NTg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcGx1ZyBjYXBzIGxlYWsKCjIwMTItMDQtMTMgMDg6MTA6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IG9ubHkgdGFrZSBhIHdlYWsgcmVmIG9uIHRoZSBvYmplY3QKCSAgRml4ZXMgdGhlIGxlYWtzIGluIHRoZSB0ZXN0cy4gQWRkZWQgYSBUT0RPIGNvbW1lbnQgdG8gZXZlbnR1YWxseSByZXdvcmsgdGhpcwoJICBzb21lIG1vcmUgKHdoaWxlIHdlIGNhbikuCgoyMDEyLTA0LTEyIDE4OjE1OjI3IC0wNDAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKCSogQW5kcm9pZC5tazoKCSAgU3luYyBBbmRyb2lkLm1rIGVudHJpZXMgdG8gdGhlIG5ldyBtYWpvciB2ZXJzaW9uCgkgIENoYW5nZSBuYW1pbmcgb24gdGhlIHBrZ2NvbmZpZyBmaWxlcyB0byByZWZsZWN0CgkgIHRoZSAwLjEwIC0+IDEuMCBidW1wLgoKMjAxMi0wNC0xMiAxNDo1OTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBkaXNwb3NlL2ZpbmFsaXplCgkgIEF2b2lkcyBsZWFrcwoKMjAxMi0wNC0xMiAxNDo1OTozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBVc2UgZ3N0X29iamVjdF97cmVmfHVucmVmfSB3aGVyZSBhcHBsaWNhYmxlCgkgIEFsbG93cyB1cyB0byBkZWJ1ZyBvYmplY3QgbGlmZQoKMjAxMi0wNC0xMiAxNDo1ODo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGdzdDogVXNlIGdzdF9vYmplY3Rfe3JlZnx1bnJlZn0gd2hlcmUgYXBwbGljYWJsZQoJICBBbGxvd3MgdXMgdG8gZGVidWcgb2JqZWN0IGxpZmUKCjIwMTItMDQtMTIgMTE6NTM6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBhcmcgY2hlY2tpbmcKCSAgQWxsb3cgaWR4ID09IDAgYW5kIGxlbmd0aCA9PSAtMSBvbiBlbXB0eSBidWZmZXJzIGZvciB0aGUgX3JhbmdlIG1ldGhvZHMuCgoyMDEyLTA0LTEyIDExOjE4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MCA9PT0KCjIwMTItMDQtMTIgMDk6NTc6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MAoKMjAxMi0wNC0xMiAwOTo1Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDQtMTEgMTM6MjA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZXJnZSBlcnJvcgoKMjAxMi0wNC0xMSAxMjo1ODoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXIgdG8gTlVMTCBiZWZvcmUgcHVsbAoKMjAxMi0wNC0xMSAxMjo1NDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogcG9ydCBxdWV1ZTIgdGVzdHMgdG8gMC4xMQoKMjAxMi0wNC0xMSAxMjo1MDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R0b2MuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTExIDEyOjM0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzaWduYWwgZGVsZXRlIGJlZm9yZSB3YWl0aW5nCgkgIFdoZW4gd2UgZG9uJ3QgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgaW4gdGhlIHJpbmdidWZmZXIgYW5kIHdlIG1vdmUgb3VyIHJlYWQKCSAgcG9pbnRlciB0byB0aGUgcmVxdWVzdGVkIHBvc2l0aW9uLCBzaWduYWwgdGhlIGRlbGV0ZSBjb25kIHRvIGluZm9ybSB0aGUgd3JpdGVyCgkgIHRoYXQgd2UgY2hhbmdlZCB0aGUgY3VycmVudCBmaWxsIGxldmVsLiBJZiB3ZSBkb24ndCwgdGhlIHdyaXRlciBtaWdodCBzdGF5CgkgIGJsb2NrZWQgYW5kIHdlIG1pZ2h0IHdhaXQgZm9yZXZlci4KCjIwMTItMDQtMTEgMTI6MTU6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdGVzdCBmb3IgcmluZ2J1ZmZlciBkZWFkbG9jawoKMjAxMi0wNC0xMSAxMjowMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIGN1cnJlbnQgcmVhZCBwb3NpdGlvbiBiZWZvcmUgd2FpdGluZwoJICBXaGVuIHdlIGRvbid0IGhhdmUgZW5vdWdoIGJ5dGVzIGluIHRoZSByaW5nYnVmZmVyIHRvIHNhdGlzZnkgdGhlIGN1cnJlbnQKCSAgcmVxdWVzdCwgZmlyc3QgdXBkYXRlIHRoZSBjdXJyZW50IHJlYWQgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcuIElmIHdlIGRvbid0IGRvCgkgIHRoYXQsIHRoZSByaW5nYnVmZmVyIG1pZ2h0IGFwcGVhciBmdWxsIGFuZCB0aGUgd3JpdGVyIHdpbGwgbmV2ZXIgd3JpdGUgbW9yZQoJICBieXRlcyB0byB3YWtlIHVzIHVwLgoKMjAxMi0wNC0xMSAxMjowMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHJhbmdlIG9ubHkgb24gc2lua3BhZAoJICBPbmx5IGFkZCB0aGUgcmFuZ2Ugd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudCBvbiB0aGUgc2lua3BhZC4gVGhlIGFkZF9yYW5nZQoJICBtZXRob2Qgd2lsbCBtb2RpZnkgdGhlIHdyaXRlIHBvc2l0aW9uLCB3aGljaCBvbmx5IG1ha2VzIHNlbnNlIHRvIGRvIG9uIHRoZQoJICBzaW5rcGFkLgoKMjAxMi0wNC0xMSAxMTo1NTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGRlYnVnIG1lc3NhZ2UKCSAgV2UncmUgbm90IHdyaXRpbmcgdG8gdGhlIG9mZnNldCBvZiB0aGUgYnVmZmVyCgoyMDEyLTA0LTExIDExOjU1OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGRfcmFuZ2UgYWxyZWFkeSB1cGRhdGVzIHRoZSBsZXZlbAoKMjAxMi0wNC0xMCAxNDoxMToyNiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIHdoaWxlIGNvcHlpbmcgY29udGVudAoKMjAxMi0wNC0xMCAxNDoxODo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxNjo1MCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxODo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxNjo1MCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIGluIHVuaXQgdGVzdAoKMjAxMi0wNC0xMCAxNDoxMToyNiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBmaXggbWVtb3J5IGxlYWtzIHdoaWxlIGNvcHlpbmcgY29udGVudAoKMjAxMi0wNC0xMCAxOTozOTo1OCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENsZWFuIHVwIGhlYWRlciBmaWxlcwoKMjAxMi0wNC0xMCAxNjowNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0xMCAxNjowNDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYXIgc2Vla2luZyBmbGFnIGluIGFsbCBjYXNlcwoJICBBbHNvIGNsZWFyIHRoZSBzZWVraW5nIGZsYWcgd2hlbiBkb3duc3RyZWFtIGlzIGluIHB1bGwgbW9kZS4KCjIwMTItMDQtMTAgMTI6NTU6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0xMCAxMjo0OTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgdG9jIGVudHJ5IHJlZi91bnJlZgoKMjAxMi0wNC0xMCAxMjowOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IHNlZWtpbmcgZmxhZyB3aXRoIHRoZSBxdWV1ZSBsb2NrCgoyMDEyLTA0LTEwIDExOjIwOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBLZWVwIHRyYWNrIG9mIHRoZSBzZWVraW5nIHN0YXRlCgkgIFNldCB0aGUgc2Vla2luZyBmbGFnIHJpZ2h0IGJlZm9yZSB3ZSBzZW5kIGEgc2VlayBldmVudCB1cHN0cmVhbSBhbmQgZGlzY2FyZCBhbGwKCSAgZGF0YSB1bnRpbGwgd2Ugc2VlIGEgZmx1c2gtc3RvcCBhZ2Fpbi4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2Ugd2UgYWN0aXZhdGUKCSAgdGhlIHJhbmdlIHRoYXQgd2Ugc2VlayB0byBpbW1lZGlhdGVseSBhZnRlciBzZW5kaW5nIHRoZSBzZWVrIGV2ZW50IGFuZCBpdCBpcwoJICBwb3NzaWJsZSB0aGF0IHdlIHJlY2VpdmUgZGF0YSBpbiBvdXIgY2hhaW4gZnVuY3Rpb24gZnJvbSBiZWZvcmUgdGhlIHNlZWsKCSAgd2hpY2ggd291bGQgdGhlbiBiZSBhZGRlZCB0byB0aGUgd3JvbmcgcmFuZ2UgcmVzdWx0aW5nIGluIGRhdGEgY29ycnVwdGlvbi4KCjIwMTItMDQtMTAgMTE6MTY6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG1ha2UgcmFuZ2Ugb24gbmV3c2VnbWVudCBmb3IgcmluZ2J1ZmZlcgoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyLCBoYW5kbGUgdGhlIG5ld3NlZ21lbnQgZXZlbnQgbGlrZSB3ZSBoYW5kbGUgaXQgd2hlbgoJICB1c2luZyB0aGUgdGVtcC1maWxlIG1vZGU6IGNyZWF0ZSBhIG5ldyByYW5nZSBmb3IgdGhlIG5ldyBieXRlIHNlZ21lbnQuIFRoZSBuZXcKCSAgc2VnbWVudCBzaG91bGQgbm9ybWFsbHkgYWxyZWFkeSBiZSBjcmVhdGVkIHdoZW4gd2UgZG8gYSBzZWVrLgoKMjAxMi0wNC0wOSAxNjo0MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDkgMTY6NDA6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHVzZSBidWZmZXIgYWZ0ZXIgcHVzaGluZyBpdCBkb3duc3RyZWFtCgoyMDEyLTA0LTA5IDE2OjA0OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wOSAxNTo1ODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGYWlsIGlmIGEgcGFkIGZvciBhIG5vbi1yZXF1ZXN0IHRlbXBsYXRlIGlzIHJlcXVlc3RlZAoKMjAxMi0wNC0wOSAxMzo0MDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGVsZW1lbnQ6IHVzZSBxdWFya3Mgd2hlbiBzdG9yaW5nIHN0YW5kYXJkIG1ldGFkYXRhIGluIHN0cnVjdHVyZXMKCjIwMTItMDQtMDkgMTM6MDU6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHBsdWdpbnM6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgoyMDEyLTA0LTA5IDEyOjQ3OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3Nfe3NldCxhZGR9X3N0YXRpY19tZXRhZGF0YSgpCgkgIEFkZCBnc3RfZWxlbWVudF9jbGFzc197YWRkLHNldH1fbWV0YWRhdGEoKSB2YXJpYW50cyBmb3Igc3RhdGljIHN0cmluZ3MsCgkgIHNvIHdlIGNhbiBhdm9pZCB1bm5lY2Vzc2FyeSBnX3N0cmR1cCgpcy4KCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX21ldGFkYXRhKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCjIwMTItMDQtMDggMjE6MTc6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRhc2s6IHJlbW92ZSBnc3RfdGFza19zZXRfcHJpb3JpdHkoKQoJICBJdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nLgoKMjAxMi0wMS0xNCAwMDozMTozMiAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJKiB3aW4zMi92czEwL0xpYnJhcnkucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUGx1Z2luLnByb3BzOgoJKiB3aW4zMi92czEwL1JlYWRNZS50eHQ6CgkqIHdpbjMyL3ZzMTAvVG9vbC5wcm9wczoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qLmZpbHRlcnM6CgkgIHdpbjMyOiBhZGQgVlMgMTAgUHJvamVjdCBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MjE5CgoyMDEyLTA0LTA4IDE4OjI1OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZm9yIHZlcnNpb24gY2hhbmdlcwoKMjAxMi0wNC0wNyAxNjozNToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDcgMTY6MDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IFRPQyBBUEkgdG8gbGliZ3N0cmVhbWVyLmRlZgoJICBGaXhlcyAnbWFrZSBjaGVjaycuCgoyMDEyLTA0LTA3IDE2OjA1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogYWRkIG5ldyB0b2MgdGVzdCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDEyLTA0LTA3IDE2OjA0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICBnc3Q6IGRvbid0IGV4cG9ydCBwcml2YXRlIFRPQyBmdW5jdGlvbnMKCjIwMTItMDQtMDcgMTU6NDI6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGF0b21pY3F1ZXVlLmMKCjIwMTItMDItMjQgMTU6MjQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCByYWNlCgkgIEFmdGVyIGEgd3JpdGVyIGhhcyB3cml0dGVuIHRvIGl0cyByZXNlcnZlZCB3cml0ZSBsb2NhdGlvbiwgaXQgY2FuIG9ubHkgbWFrZSB0aGUKCSAgbG9jYXRpb24gYXZhaWxhYmxlIGZvciByZWFkaW5nIGlmIGFsbCBvZiB0aGUgd3JpdGVycyB3aXRoIGxvd2VyIGxvY2F0aW9ucyBoYXZlCgkgIGZpbmlzaGVkLgoKMjAxMi0wMi0yNCAxMjo1MToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHN1YnRsZSByYWNlCgkgIEZpeCBhIHJhY2Ugd2hlcmUgdGhlIHJlYWRlciB3b3VsZCBzZWUgdGhlIHVwZGF0ZWQgdGhlIHRhaWwgcG9pbnRlciBiZWZvcmUgdGhlCgkgIHdyaXRlIGNvdWxkIHdyaXRlIHRoZSBkYXRhIGludG8gdGhlIHF1ZXVlLiBGaXggdGhpcyBieSBoYXZpbmcgYSBzZXBhcmF0ZSByZWFkZXIKCSAgdGFpbCBwb2ludGVyIHRoYXQgaXMgb25seSBpbmNyZW1lbnRlZCBhZnRlciB0aGUgd3JpdGVyIHdyb3RlIHRoZSBkYXRhLgoKMjAxMi0wNC0wNyAxNToyMDowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogc2V0IGRlZmF1bHQgYmxvY2sgc2l6ZSBmcm9tIGxvY2FsIGRlZmluZQoJICBEb2Vzbid0IGFjdHVhbGx5IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSwganVzdCBtYWtlcyB1c2Ugb2YgdGhlCgkgIGRlZmluZSB0aGVyZSBpcy4gU3VwZXJmaWNpYWwgdGVzdGluZyB3aXRoIGZha2VzaW5rIGFuZCBqcGVnZGVjIGRpZAoJICBub3QgcmV2ZWFsIGltcHJvdmVkIHBlcmZvcm1hbmNlIGZvciBiaWdnZXIgYmxvY2sgc2l6ZXMsIHNvIGxlYXZlCgkgIGRlZmF1bHQgYXMgaXQgaXMuCgoyMDEyLTA0LTA2IDE2OjQ2OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB1cGRhdGUgdGhlIGN1cnJlbnQgcmVhZGluZ19wb3MgaW4gZmx1c2gKCSAgQSBmbHVzaCBmcm9tIHRoZSB1cHN0cmVhbSBlbGVtZW50IHNob3VsZCBub3QgbWFrZSBidWZmZXJpbmcgZ28gdG8gMCwgdGhlIG5leHQKCSAgcHVsbCByZXF1ZXN0IG1pZ2h0IGJlIGluc2lkZSBhIHJhbmdlIHRoYXQgd2UgaGF2ZSBhbmQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvCgkgIGJ1ZmZlciBhdCBhbGwuIElmIHRoZSBuZXh0IHB1bGwgaXMgb3V0c2lkZSBhbnl0aGluZyB3ZSBoYXZlLCBidWZmZXJpbmcgd2lsbAoJICBoYXBwZW4gYXMgdXN1YWwgYW55d2F5LgoKMjAxMi0wNC0wNiAxMjo0MjozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGZvciBtZXJnZWQgY2hhbmdlcwoKMjAxMi0wNC0wNiAxMjozNzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCjIwMTItMDQtMDYgMTI6MzI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNoZWNrIHRoZSBwYWQgbW9kZSBvbiB0aGUgcmlnaHQgcGFkCgoyMDEyLTA0LTA2IDEyOjI0OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmb3J3YXJkIGZsdXNoIGV2ZW50cyBjb3JyZWN0bHkKCSAgV2Ugd2FudCB0byBmb3J3YXJkIHRoZSBmbHVzaCBldmVudHMgcmVjZWl2ZWQgb24gdGhlIHNpbmtwYWQgd2hlbmV2ZXIgdGhlIHNyY3BhZAoJICBpcyBhY3RpdmF0ZWQgaW4gcHVzaG1vZGUsIHdoaWNoIGNhbiBhbHNvIGhhcHBlbiB3aGVuIHVzaW5nIHRoZSBSSU5HQlVGRkVSIG9yCgkgIERPV05MT0FEIG1vZGUgYW5kIGRvd25zdHJlYW0gZmFpbGVkIHRvIGFjdGl2YXRlIHVzIGluIHB1bGwgbW9kZS4KCjIwMTItMDQtMDUgMjE6NTY6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IGNoYWluIHVwIG9uIGRpc3Bvc2UgYW5kIGZpbmFsaXplCgoyMDEyLTA0LTA1IDIxOjU1OjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IHVucGFyZW50IHRoZSBjb250cm9sYmluZGluZyBvbiBkaXNwb3NlCgoyMDEyLTA0LTA1IDIxOjA3OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBkdXAgdGhlIG9iamVjdHMgdG8gYXZvaWQgcHJlbWF0dXJlIGZyZWVzCgoyMDEyLTA0LTA1IDIxOjA2OjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgZmluYWxpemVyIGZvciB0aGUgdGVzdCBjb250cm9sYmluZGluZ3MKCSAgTm8gaWRlYSB3aHkgdmFsZ3JpbmQgc3RpbGwgaW5pc3RzIHRoYXQgdGhlcmUgYXJlIGxlYWtzLgoKMjAxMi0wNC0wNSAxODo0MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdmZGE1MjQgdG8gNDY0ZmUxNQoKMjAxMi0wNC0wNSAxODowMjo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZ3N0OiBVcGRhdGUgZm9yIEdTVF9QTFVHSU5fREVGSU5FKCkgQVBJIGNoYW5nZXMKCjIwMTItMDQtMDUgMTQ6MTc6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGdzdDogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIEdTVF9QTFVHSU5fREVGSU5FKCkgdG8gbm90IHRha2UgYSBzdHJpbmcgYW55bW9yZQoJICBUaGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gd2UgbGF0ZXIgYWRkIHN1cHBvcnQgZm9yIHN0YXRpYyBsaW5raW5nCgkgIG9mIHBsdWdpbnMgd2l0aG91dCBpbnRyb2R1Y2luZyBuZXcgQVBJIG9yIGNoYW5naW5nIGV4aXN0aW5nIEFQSS4KCjIwMTItMDQtMDUgMTM6MjM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBnc3RwbHVnaW46IEFkZCBoYWNrIGZvciBoYW5kbGluZyAwLjExLjlYIGFuZCAwLjExLjg5Llggd2l0aCBYPjAgdGhlIHNhbWUgYXMgMS4wLjAKCSAgQWxzbyB1cGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIHRvIDAuMTEuODkuMQoKMjAxMi0wNC0wNSAxMjoyMjoxMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBsc2VlaygpIHJldHVybiBjb2RlIGhhbmRsaW5nCgkgIGxzZWVrKCkgcmV0dXJucyB0aGUgb2Zmc2V0IGlmIHN1Y2Nlc3NmdWwsIGFuZCB0aGlzIGlzICE9IDAgYW5kCgkgIGRvZXMgbm90IGluZGljYXRlIGFuIGVycm9yLiBBbmQgaWYgaXQgZG9lcyBhY3R1YWxseSBmYWlsLCBkb24ndAoJICByZXR1cm4gRkFMU0UgKDApIGFzIGFuIGludCwgYnV0IC0xLiBOb25lIG9mIHRoZXNlIHRoaW5ncyBhcmUKCSAgbGlrZWx5IHRvIGhhdmUgbWFkZSBhIGRpZmZlcmVuY2UsIGV2ZXIuIEkgZG9uJ3QgdGhpbmsgdGhlIG9mZnNldAoJICBzZWVrIGNhbiBldmVyIGFjdHVhbGx5IGhhcHBlbiwgdGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbiBhbmQgdGhlCgkgIGN1cnJlbnQgb2Zmc2V0IHNob3VsZCBhbHdheXMgYmUgaW5jcmVhc2VkIGluIGxvY2sgc3RlcCwgdW5sZXNzCgkgIHRoZXJlIHdhcyBhbiBlcnJvciBpbiB3aGljaCBjYXNlIHdlJ2QganVzdCBlcnJvciBvdXQuCgoyMDEyLTAyLTI0IDIzOjE5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZm9yZ2V0IHRvIGNsZWFuIHVwIHJlZ2lzdHJ5IHRlbXAgZmlsZSBpbiBhbm90aGVyIGVycm9yIGNhc2UKCSAgQWxzbyBjbGVhbiB1cCB0ZW1wIGZpbGUgaWYgd2UgZ2V0IGFuIGVycm9yIGR1cmluZyB3cml0ZSgpIHJhdGhlcgoJICB0aGFuIGp1c3Qgd2hlbiBkb2luZyBmc3luYygpIG9yIGNsb3NlKCkuCgoyMDEyLTAyLTI0IDE1OjI0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggcmFjZQoJICBBZnRlciBhIHdyaXRlciBoYXMgd3JpdHRlbiB0byBpdHMgcmVzZXJ2ZWQgd3JpdGUgbG9jYXRpb24sIGl0IGNhbiBvbmx5IG1ha2UgdGhlCgkgIGxvY2F0aW9uIGF2YWlsYWJsZSBmb3IgcmVhZGluZyBpZiBhbGwgb2YgdGhlIHdyaXRlcnMgd2l0aCBsb3dlciBsb2NhdGlvbnMgaGF2ZQoJICBmaW5pc2hlZC4KCjIwMTItMDItMjQgMTI6NTM6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBmaXggZG9jcyBhbmQgdW5pdCB0ZXN0CgoyMDEyLTAyLTI0IDEyOjUxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggc3VidGxlIHJhY2UKCSAgRml4IGEgcmFjZSB3aGVyZSB0aGUgcmVhZGVyIHdvdWxkIHNlZSB0aGUgdXBkYXRlZCB0aGUgdGFpbCBwb2ludGVyIGJlZm9yZSB0aGUKCSAgd3JpdGUgY291bGQgd3JpdGUgdGhlIGRhdGEgaW50byB0aGUgcXVldWUuIEZpeCB0aGlzIGJ5IGhhdmluZyBhIHNlcGFyYXRlIHJlYWRlcgoJICB0YWlsIHBvaW50ZXIgdGhhdCBpcyBvbmx5IGluY3JlbWVudGVkIGFmdGVyIHRoZSB3cml0ZXIgd3JvdGUgdGhlIGRhdGEuCgoyMDEyLTAyLTI0IDExOjAwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVjb25maWd1cmUgbWV0aG9kcwoJICBSZW5hbWUgZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NpbmsgYmVjYXVzZQoJICB0aGF0IGlzIHdoYXQgaXQgZG9lcy4gQWxzbyByZW1vdmUgdGhlIGNhcHMgYW5kIHNpemUgYmVjYXVzZSB0aGF0IGlzIG5vdCBuZWVkZWQuCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NyYy4KCSAgUmVtb3ZlIHNvbWUgb2xkIHVudXNlZCBjb2RlIGluIGNhcHNmaWx0ZXIuCgoyMDEyLTAyLTI0IDEwOjIzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGZsZXNoIG91dCB0aGUgbWV0YWRhdGEgdHJhbnNmb3JtCgkgIEZsZXNoIG91dCB0aGUgdHJhbnNmb3JtIG1ldGhvZC4gQWRkIGEgdHlwZSBhbmQgZXh0cmEgaW5mbyB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uIHNvIHRoYXQgaW1wbGVtZW50YXRpb24gY2FuIHRyYW5zZm9ybSB0aGUgbWV0YWRhdGEuCgkgIFJlbW92ZSB0aGUgY29weSBmdW5jdGlvbiBhbmQgcmVwbGFjZSB3aXRoIHRoZSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtLgoKMjAxMi0wMi0yNCAxMDoyMzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTAyLTIzIDA4OjQ4OjIyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggZ2FwIGluIE1ha2VmaWxlCgoyMDEyLTAyLTIzIDA4OjQ4OjEwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgc3BlbGxpbmcgZml4CgoyMDExLTEyLTI2IDE2OjQ1OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGZpeCBzcGVsbGluZyBvZiB3cml0YWJsZQoKMjAxMi0wMi0yMyAxNTozMjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgdXNlcl9kYXRhIHRvIEdzdE1hcEluZm8KCSAgQWRkIGV4dHJhIHBvaW50ZXJzIHRvIEdzdE1hcEluZm8gc28gdGhhdCBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSB0aGVzZSB0byBzdG9yZQoJICBleHRyYSBpbmZvLgoKMjAxMi0wMi0yMyAxNTozMjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGltcHJvdmUgZG9jcwoKMjAxMi0wMi0yMyAxMjowOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJICBVcGRhdGUgTkVXUyBhbmQgUkVMRUFTRSBhcyB3ZWxsCgoyMDEyLTAyLTIzIDExOjU5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrCgoyMDEyLTAyLTIzIDEwOjM2OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQnVtcCB2ZXJzaW9uIGFmdGVyIHJlbGVhc2VzCgoyMDEyLTAyLTIzIDExOjA4OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUgYnkgdGhlIGJhc2VjbGFzcy4gc3ViY2xhc3NlcyBzaG91bGQgZG8gdGhlaXIgb3duCgkgIGxvY2tpbmcgd2hlbiBuZWVkZWQuCgoyMDEyLTAyLTIzIDEwOjEyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogY2xlYW51cHMKCSAgQ2xlYW4gdXAgdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIFRoZSBwYXNzdGhyb3VnaCB2YXJpYWJsZSBpcyBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgoyMDEyLTAyLTIyIDE1OjI2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBBbHdheXMgY2FsbCB0aGUgcHJvcG9zZV9hbGxvY2F0aW9uIG1ldGhvZCBhbmQgcHJvdmlkZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KCSAgdGhhdCBwYXNzZXMgdGhlIHF1ZXJ5IG9uIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBhbHNvIGNhbGwKCSAgdGhpcy4gQWxzbyBwYXNzIGlmIHRoZSB0cmFuc2Zvcm0gaXMgaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHRoZQoJICBpbXBsZW1lbnRhdGlvbiBjYW4gYWRqdXN0IGl0cyBhbGdvcml0aG0uCgoyMDEyLTAyLTIyIDEyOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnM6IGltcHJvdmUgZml4YXRlX2NhcHMgZnVuY3Rpb24KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIGltcGxlbWVudCBub24taW5wbGFjZSBmaXhhdGUgZnVuY3Rpb25zLiBMZXQgdGhlIGZpeGF0ZQoJICBmdW5jdGlvbiBtYWtlIHRoZSBjYXBzIHdyaXRhYmxlIHdoZW4gbmVlZGVkIGJlY2F1c2Ugc29tZSBmaXhhdGUgZnVuY3Rpb25zIG1pZ2h0CgkgIG5vdCBuZWVkIHRvIG1vZGlmeSB0aGUgY2Fwcy4KCjIwMTItMDItMjIgMDI6MDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgbWVtb3J5OiBtYWtlIF9uZXdfd3JhcHBlZCB0YWtlIHVzZXJfZGF0YSBhbmQgbm90aWZ5CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gY29uZmlndXJlIGEgR0Rlc3Ryb3lOb3RpZnkgYW5kIHVzZXJfZGF0YSBmb3IKCSAgZ3N0X21lbW9yeV9uZXdfd3JhcHBlZCgpIHRoaXMgYWxsb3dzIGZvciBtb3JlIGZsZXhpYmxlIHdyYXBwaW5nIG9mIGZvcmVpZ24KCSAgbWVtb3J5IGJsb2Nrcy4KCjIwMTItMDItMDIgMTM6NDU6MjUgLTA1MDAgIFJ5YW4gTG9ydGllIDxkZXNydEBkZXNydC5jYT4KCgkqIGF1dG9nZW4uc2g6CgkgIGJ1aWxkOiBhdm9pZCB0b3VjaGluZyAucG8gZmlsZXMgZHVyaW5nICdtYWtlJwoJICBBIHNpbXBsZSB3b3JrYXJvdW5kIHRvIGRlYWwgd2l0aCBHTlUgZ2V0dGV4dCBhdXRvbWFrZSBpbnRlZ3JhdGlvbgoJICBmYWlsaW5nIHRvIGRlYWwgd2l0aCBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkyMDcKCjIwMTItMDItMjEgMjE6MDY6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBkZWZhdWx0IHRvIHN5bmMtc3RyZWFtcz10cnVlCgkgIEkgdGhpbmsgdGhpcyBpcyB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyLCBhbmQgd2UgY291bGRuJ3QgZG8gdGhpcwoJICBpbiAwLjEwIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCBzbyBjaGFuZ2UgaXQgbm93LgoKMjAxMi0wMi0yMSAxNjozOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBmaXggcXVldWUgdW5pdCB0ZXN0IGFmdGVyIHF1ZXVlIGNoYW5nZXMKCjIwMTItMDItMjEgMTY6Mzg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgc29tZSBvbGQgY29kZQoKMjAxMi0wMi0yMSAxNjozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBoYW5kbGUgTlVMTCBjYWxsYmFja3MKCSAgV2hlbiB3ZSBoYXZlIGEgbWF0Y2hpbmcgTlVMTCBjYWxsYmFjaywgYWxzbyBjb25zaWRlciB0aGUgJ2NhbGxiYWNrJyBtYXJzaGFsbGVkLAoJICB0aGlzIHdheSBibG9ja2luZyBwcm9iZXMgd2l0aCBhIE5VTEwgY2FsbGJhY2sgYWN0dWFsbHkgd29yay4KCjIwMTItMDItMjEgMTI6NTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgd2VpcmQgbGluayBiZWhhdmlvdXIKCSAgUmVtb3ZlIHRoZSBsaW5rIGZ1bmN0aW9ucyBhbmQgYWx3YXlzIHN0YXJ0IHRoZSBwYWQgdGFzayBvbiB0aGUgc3JjcGFkLiBJZgoJICBhcHBsaWNhdGlvbnMgbmVlZCB0byBhdXRvcGx1ZyB0aGV5IGNhbiBwdXQgYSBibG9ja2luZyBwcm9iZSBvbiB0aGUgc3JjcGFkIGxpa2UKCSAgdGhleSB3b3VsZCB3aXRoIGFueSBvdGhlciBlbGVtZW50LgoKMjAxMi0wMi0yMSAxMjo1MjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBoYW5kbGUgcHRzL2R0cwoKMjAxMi0wMi0yMSAxMjo0Njo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoKMjAxMi0wMi0yMSAxMjo0MzoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFsc28gZGVidWcgZHRzL3B0cwoKMjAxMi0wMi0yMSAxMjoxMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGRlYnVnIHB0cyBhbmQgZHRzCgoyMDEyLTAyLTIxIDEyOjEyOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDExLTExLTI0IDE4OjQwOjQwICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBVbml0IHRlc3QgZm9yIHF1ZXVlIHNyYyBjYXBzIG5vdGlmaWNhdGlvbgoKMjAxMi0wMi0yMCAxNDozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggdXNlbGVzcyBzZWdtZW50IHRlc3QKCjIwMTItMDItMjAgMTQ6Mjk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCB1c2UgZHVyYXRpb24gaW4gY2xpcHBpbmcKCSAgRG9uJ3QgdXNlIHRoZSBkdXJhdGlvbiBpbiB0aGUgc2VnbWVudCBmb3IgY2FsY3VsYXRpbmcgY2xpcHBpbmcgdmFsdWVzLgoJICBUaGUgZHVyYXRpb24gaXMgZXhwcmVzc2VkIGluIHN0cmVhbSB0aW1lIGFuZCBjbGlwcGluZyBpcyBkb25lIG9uIHVucmVsYXRlZAoJICB0aW1lc3RhbXAgdmFsdWVzLgoJICBUaGlzIHVzZWQgdG8gYmUgaW50ZXJlc3RpbmcgZm9yIGVsZW1lbnRzIHRoYXQgdXNlZCB0aGUgc2VnbWVudCBzdHJ1Y3R1cmUgdG8KCSAgaW1wbGVtZW50IHNlZWtpbmcgYmVjYXVzZSB0aGVuIHRoZXkgd291bGQgdXNlIHN0cmVhbS10aW1lIGZvciB0aGUgc2VnbWVudAoJICBzdGFydC9zdG9wIHZhbHVlcyBhbmQgdGhlIGR1cmF0aW9uIGNvdWxkIGJlIHVzZWQgYXMgYSBmYWxsYmFjayB3aGVuIHRoZSBzdG9wCgkgIHBvc2l0aW9uIHdhcyBub3Qgc2V0LiBOb3cgdGhhdCB0aGUgY29tcGxldGUgc2VnbWVudCBldmVudCBpcyBwYXNzZWQgYmV0d2VlbgoJICBlbGVtZW50cyB3ZSBjYW5ub3QgZG8gdGhpcyBhbnltb3JlIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBtaWdodCBzdG9yZSB0aGUKCSAgZHVyYXRpb24gYW5kIHN0YXJ0L3N0b3AgdmFsdWVzIHdpdGggZGlmZmVyZW50IHRpbWUgYmFzZXMgaW4gdGhlIHNlZ21lbnQuCgoyMDEyLTAyLTIwIDE0OjIyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZGVidWcgc2VnbWVudCBkdXJhdGlvbiBhcyB3ZWxsCgoyMDEyLTAyLTIwIDExOjQ2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNvcHkgbWV0YWRhdGEgd2hlbiB1c2luZyBhIHBvb2wKCSAgYWxzbyBjb3B5IHRoZSBtZXRhZGF0YSB3aGVuIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIgZnJvbSBhIHBvb2wKCjIwMTItMDEtMjYgMDM6MDI6NDggLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXR0aW1lcGFja2V0OiBmaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGluIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMi0wMi0xOCAwMTowNDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbW9yZSBkb2NzCgoyMDEyLTAyLTE3IDE1OjUzOjU4IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGRvYyBmaXh1cHMKCjIwMTItMDItMTcgMTU6MDk6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1vdmUgdmFyaWFibGUgYW5kIGFzc2lnbm1lbnQgdG8gd2hlcmUgaXQncyBuZWVkZWQKCjIwMTItMDItMTcgMTU6MDk6MDYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSByZXR1cm4gdmFsdWUgb2YgZGVjaWRlX2FsbG9jYXRpb24gdm1ldGhvZAoJICBJZiBpdCBmYWlscywgcHJvcGVybHkgcHJvcGFnYXRlIHRoZSBlcnJvcgoKMjAxMi0wMi0xNyAxNTowODozMiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFJlbW92ZSB1c2VsZXNzIGFzc2lnbm1lbnQKCjIwMTItMDItMTcgMTU6MDc6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBHcmFjZWZ1bGx5IGhhbmRsZSBOVUxMIEd2YWx1ZQoJICBBdm9pZHMgdW5yZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIKCjIwMTItMDItMTggMDA6MDM6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGVycm9ycyBjcml0aWNhbAoJICBXaGVuIHdlIGhhdmUgbm8gY2hhaW4gZnVuY3Rpb24gb3Igd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIHRoZSBwYWQgaW4gdGhlIHdyb25nCgkgIG1vZGUsIGVtaXQgYSBjcml0aWNhbCBpbnN0ZWFkIG9mIHBvc3RpbmcgYW4gZXJyb3IgbWVzc2FnZS4gVGhpcyBpcyBjZXJ0YWlubHkgYQoJICBwcm9ncmFtbWluZyBlcnJvciBhbmQgd2UgY2Fubm90IGFsd2F5cyBwb3N0IGEgbWVzc2FnZSAobGlrZSB3aGVuIHRoZSBwYWQgaGFzIG5vCgkgIHBhcmVudCkKCjIwMTItMDItMTggMDA6MDM6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbHNvIGRlYnVnIHBvc2l0aW9uIG9mIHNlZ21lbnQKCjIwMTItMDItMTcgMjM6NTk6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBiYWNrIHRvIGRldmVsb3BtZW50CgoyMDEyLTAyLTE3IDExOjAyOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMiA9PT0KCjIwMTItMDItMTcgMTE6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExLjIKCjIwMTItMDItMTUgMTc6MTI6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB0d2VhayBzb21lIGRvY3VtZW50YXRpb24KCjIwMTItMDItMTUgMTc6MTE6NTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBzaW1wbGlmeSBhbmQgaW1wcm92ZSBmcmFtZSBzdGF0ZSBoYW5kbGluZwoJICBVc2UgYSBmcmFtZSBmbGFnIHRvIHNpZ25hbCB0byBzdWJjbGFzcyBpdCBzaG91bGQgcmVzZXQgYW55IHJldGFpbmVkCgkgIHN0YXRlIHcuci50LiBmcmFtZSBwYXJzaW5nIHNpbmNlIHRoZSBmcmFtZSBiZWluZyBwYXNzZWQgaXMgJ25ldycsCgkgIGkuZS4gbm90IHJlbGF0ZWQgdG8gcHJldmlvdXNseSBwYXNzZWQgYW5kIHByb2Nlc3NlZCBkYXRhLgoKMjAxMi0wMi0xNSAxMzoxNTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBldmVudAoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB3aGVyZSB0aGUgc3ViY2xhc3Mgc2V0IHRoZSBldmVudCBmdW5jdGlvbiB0byBOVUxMLCBkb24ndAoJICBsZWFrIHRoZSBldmVudC4KCjIwMTItMDItMTUgMTI6MTk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgYWN0aXZhdGlvbiBjb2RlIG1vcmUgbGlrZSBvdGhlcgoJICBNYWtlIHRoZSBwYWQgYWN0aXZhdGlvbiBjb2RlIGxvb2sgbW9yZSBsaWtlIG90aGVyIGFjdGl2YXRpb24gY29kZS4KCSAgT25seSBzdGFydCB0aGUgc2lua3BhZCB0YXNrIHdoZW4gd2UgZGVjaWRlIHRvIGFjdGl2YXRlIGluIHB1bGwgbW9kZSwgd2hlbiB3ZQoJICBsYXRlciBhZGQgc3JjcGFkIHB1bGxtb2RlIHRoaXMgd2lsbCBiZSBuZWVkZWQuCgoyMDEyLTAyLTE1IDEyOjE4OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTE6MTE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTA6NTg6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cmFjayBjb25zdW1lZCBpbnB1dCBzaXplCgkgIC4uLiBhcyB1c2VkIGJ5IHN1YnNlcXVlbnQgaW5wdXQgZGF0YSByYXRlIGVzdGltYXRpb24gKGFuZCBzZWVraW5nKS4KCjIwMTItMDItMTUgMTA6MTE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNoYWluIHVwIHRvIHBhcmVudCBmb3IgZGVmYXVsdHMKCSAgQ2hhaW4gdXAgdG8gdGhlIHBhcmVudCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBGQUxTRSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZXZlbnQKCSAgZnVuY3Rpb24gKGJlY2F1c2UgaXQncyBvdGhlcndpc2UgaW1wb3NzaWJsZSB0byByZXR1cm4gYW4gZXJyb3IpLgoKMjAxMi0wMi0xNSAxMDoxMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBpZ25vcmUgcmV0dXJuIHZhbHVlIHdoZW4gc3RhcnRpbmcgYSB0YXNrCgoyMDEyLTAyLTE0IDIwOjE3OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV2ZXJ0ICJiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDIzNjM0OTBlZjVhOWZlOGQ0MTQzNjlkMjRmY2FhNjVhOWRmYTgzYWMuCgoyMDEyLTAyLTE0IDE5OjMzOjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRlYWQgY29kZSBhbmQgc3VwZXJmbHVvdXMgbG9vcCBsZXZlbAoKMjAxMi0wMi0xNCAxOTozMzo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1vZGlmeSByZXZlcnNlIHBsYXliYWNrIGhhbmRsaW5nCgkgIC4uLiBzbyBhcyB0byBhbGxvdyB0aGUgcHVzaC1tb2RlIGNhc2UgdG8gcHJvdmlkZSBkYXRhIHRvIHN1YmNsYXNzCgkgIG9uIGEgYnVmZmVyIGJ5IGJ1ZmZlciBiYXNpcyAoYXMgaW4gcmVndWxhciBmb3J3YXJkIGNhc2UpLCByYXRoZXIKCSAgdGhhbiBhbGwgYnVmZmVycyBvZiBhIGZyYWdtZW50IGNodWNrZWQgdG9nZXRoZXIuCgkgIEFsc28gcmVmYWN0b3IgYnVmZmVyIGhhbmRsaW5nIHNvbWUgbW9yZSwgYW5kIGFkZCBzb21lIGRlYnVnLgoKMjAxMi0wMi0xNCAxOTozMzozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzCgoyMDEyLTAyLTE0IDEzOjI0OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNsZWFuIHVwIHNyYyBxdWVyeSBoYW5kbGVyCgoyMDEyLTAyLTE0IDEyOjU3OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgcmVzdWx0cyBmcm9tIGFjdGl2YXRpb24KCjIwMTItMDItMTQgMTA6MzU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTE0IDEwOjMwOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMTMgMTg6MjI6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb2RpZnkgQVBJIHRvIGEgX2ZpbmlzaF9mcmFtZSBiYXNlZCBhcHByb2FjaAoJICAuLi4gd2hpY2ggYWxpZ25zIGl0IHdpdGggb3RoZXIgYmFzZWNsYXNzIGluIHRoZSB3aWxkLCBhbmQgc2hvdWxkIGdpdmUKCSAgY29udmVydGVyIHBhcnNlcnMgYSBiaXQgY2xlYW5lciBmcmVlZG9tLgoKMjAxMi0wMi0xMyAxODowOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrCgkgIC4uLiBlc3BlY2lhbGx5IGZvciBhbGwta2V5ZnJhbWUgKGF1ZGlvKSBjYXNlcy4KCjIwMTItMDItMTMgMTY6MzM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcmVmY291bnQgYW5kIHdyaXRhYmlsaXR5CgkgIFJlbmFtZSBfaXNfd3JpdGFibGUoKSB3aXRoIF9pc19leGNsdXNpdmUgYmVjYXVzZSB0aGUgd3JpdGFiaWxpdHkgZG9lcyBub3QgZGVwZW5kCgkgIG9uIHRoZSBhbW91bnQgb2YgcmVmZXJlbmNlcyB0byB0aGUgbWVtb3J5IG9iamVjdCBhbnltb3JlLgoJICBBZGQgYWNjZXNzb3IgbWFjcm9zIGZvciB0aGUgbWVtb3J5IGZsYWdzLgoJICBSZW5hbWUgdGhlIEdzdEJ1ZmZlciBfcGVla19tZW1vcnkoKSBtZXRob2QgdG8gX2dldF9tZW1vcnkoKSBhbmQgcmV0dXJuIGEKCSAgcmVmZXJlbmNlIHRvIHRoZSBtZW1vcnkgbm93IHRoYXQgd2UgY2FuIGRvIHRoaXMgd2l0aG91dCBhZmZlY3Rpbmcgd3JpdGFiaWxpdHkKCSAgb2YgdGhlIG1lbW9yeSBvYmplY3QuIE1ha2UgaXQgcG9zc2libGUgdG8gYWxzbyBtYWtlIHRoaXMgZnVuY3Rpb24gbWVyZ2UgdGhlCgkgIGJ1ZmZlciBtZW1vcnkuCgkgIEFkZCBtZXRob2RzIHRvIHJlcGxhY2UgbWVtb3J5IGluIGEgYnVmZmVyLiBNYWtlIHNvbWUgY29udmllbmNlIG1hY3JvcyBmb3IgdGhlCgkgIGJ1ZmZlciBtZW1vcnkgZnVuY3Rpb25zLgoJICBGaXggdW5pdCB0ZXN0cy4KCjIwMTItMDItMTMgMTc6MjI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUKCjIwMTItMDItMTMgMTU6MTg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBmaXggdHlwb3MKCjIwMTItMDItMTIgMjE6MTc6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiBhZGQgYSBwYXJhZ3JhcGggYWJvdXQgdGhlIFNUUkVBTSBDT05GSUcgZXZlbnQgdG8gdGhlIGRlc2lnbiBkb2NzCgoyMDEyLTAyLTEyIDIxOjA0OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgX3BhcnNlX250aF9zdHJlYW1fY29uZmlnX2hlYWRlcigpIGFuZCBfcGFyc2Vfc2V0dXBfZGF0YSgpIHJldHVybiBhIGJvb2xlYW4KCSAgQXMgdGhleSBjYW4gZmFpbCAob25seSBvbmUgb2Ygc3RyZWFtIGhlYWRlcnMgb3Igc2V0dXAgZGF0YQoJICBpcyB1c3VhbGx5IHByZXNlbnQpLgoKMjAxMi0wMi0xMiAyMDo1MTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiByZW5hbWUgZ3N0X2V2ZW50X3tzZXQscGFyc2V9X3N0cmVhbV9jb25maWdfY29kZWNfZGF0YSgpIHRvIF9zZXR1cF9kYXRhKCkKCSAgTW9yZSBnZW5lcmljLgoKMjAxMi0wMi0xMCAxNTowMzowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTAgMTQ6NTg6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGNsZWFuIHVwIG9iamVjdCBpbml0CgkgIE1ha2UgYW4gX2luaXQgbWV0aG9kIHdoZXJlIHRoZSBwYXJlbnQgbWluaS1vYmplY3QgYW5kIG90aGVyIGZpZWxkcyBhcmUKCSAgaW5pdGlhbGl6ZWQuCgkgIENoZWNrIHRoYXQgdGhlIHBhc3NlZCBzdHJ1Y3R1cmUgZG9lc24ndCBhbHJlYWR5IGhhdmUgYSBwYXJlbnQuCgkgIFVzZSB0aGUgX25ld19jdXN0b20gKCkgY29uc3RydWN0b3JzCgoyMDEyLTAyLTA3IDExOjI4OjQxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYml0cmF0ZSBtZWNoYW5pY3Mgc2hvdWxkIG5vdCBkZWFsIHdpdGggZHVyYXRpb24gdXBkYXRlCgkgIC4uLiBzaW5jZSB0aGF0IGlzIGFscmVhZHkgaGFuZGxlZCBieSBfdXBkYXRlX2R1cmF0aW9uLCBvciBzaG91bGQgbm90IGJlIGRvbmUKCSAgYWx0b2dldGhlciBpZiB0aGUgZHVyYXRpb24gaXMgZGV0ZXJtaW5lZCBieSBub24tZXN0aW1hdGVkIG1lYW5zLgoJICBGaXhlcyAjNjY5NTAyLgoKMjAxMi0wMi0xMCAxMjo0NTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IHB1c2hfZXZlbnQgZG9lc24ndCByZXR1cm4gYSBmbG93IHZhbHVlIGFmdGVyIGFsbAoKMjAxMi0wMi0xMCAxMjowNToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaWxlbmNlIHByb2JlIGRlYnVnIGEgbGl0dGUKCjIwMTItMDItMTAgMTE6MjQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgZmFzdGVyIEFDQ0VQVF9DQVBTIHF1ZXJ5CgoyMDEyLTAyLTEwIDExOjA5OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGxvZ2dpbmcKCSAgQWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZyBmb3IgY2FwcyBjb3B5IGFuZCB0aGUgc2xvdyBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMTQgMTk6MTY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBhbmQgaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTA5IDAwOjE0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X2VsZW1lbnRfY2xhc3NfaW5zdGFsbF9zdGRfcHJvcHMoKQoJICBJdCdzIG9ubHkgdXNlZCBpbiBvbmUgcGxhY2UgKHJ0bXApLCBhbmQgdGhlcmUgbm90IHZlcnkgd2VsbC4KCjIwMTItMDItMDggMjM6NDc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc3JjLCBpZGVudGl0eSwgZmFrZXNpbms6IGRvIG5vdCBnZW5lcmF0ZSBsYXN0LW1lc3NhZ2UgdXBkYXRlcyBieSBkZWZhdWx0CgkgIERlZmF1bHQgdG8gbm90IGNyZWF0aW5nIGxvdHMgb2Ygb3ZlcmhlYWQgYnkgZG9pbmcgYSBjb3VwbGUgb2YKCSAgZ19zdHJkdXBfcHJpbnRmKCkvZ19mcmVlKCkgcGVyIGJ1ZmZlciBvciBldmVudCBqdXN0IHRvIGdlbmVyYXRlCgkgIGEgbGFzdC1tZXNzYWdlIHVwZGF0ZSB0aGF0IHJhcmVseSBhbnlvbmUgbGlzdGVucyB0by4gVGhpcyBtZWFucwoJICB0aGF0IHlvdSBuZWVkIHRvIGVuYWJsZSBzaWxlbnQ9dHJ1ZSBleHBsaWNpdGx5IGluIG9yZGVyIHRvIGdldAoJICBsYXN0LW1lc3NhZ2UgZHVtcHMgaW4gZ3N0LWxhdW5jaCAtdiBub3cuIE9uIHRoZSB1cHNpZGUsIHBlb3BsZQoJICB3b24ndCBpbmFkdmVydGVudGx5IGVuZCB1cCBiZW5jaG1hcmtpbmcgZ19zdHJkdXBfcHJpbnRmKCkKCSAgcGVyZm9ybWFuY2UgaW5zdGVhZCBvZiBnc3RyZWFtZXIgZGF0YSBoYW5kbGluZyBwZXJmb3JtYW5jZSBhbnkKCSAgbW9yZS4KCSAgTWF5YmUgdGhlIHNpbGVudCBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuYW1lZCB0byBlbmFibGUtbGFzdC1tZXNzYWdlCgkgIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQ/CgoyMDEyLTAyLTA4IDE1OjE2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgR1NUX0ZMT1dfV1JPTkdfU1RBVEUgLT4gR1NUX0ZMT1dfRkxVU0hJTkcKCjIwMTItMDItMDggMTU6MzQ6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogdXNlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gdG8gb3B0aW9uYWxseSBmb3J3YXJkIHF1ZXJ5CgkgIC4uLiByYXRoZXIgdGhhbiBxdWVyeWluZyBwZWVyIHVuY29uZGl0aW9uYWxseSB3aXRoIHBvc3NpYmx5IHVuZGVzaXJhYmxlCgkgIG91dGNvbWUgaW4gY2FzZSBvZiBlLmcuIFNDSEVEVUxJTkcgcXVlcnkuCgoyMDEyLTAyLTA4IDE1OjAzOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYW4gdXAgYSBmZXcgbWlub3IgZXh0cmFuZW91cyB0b2tlbnMKCjIwMTItMDItMDcgMTI6NDg6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgY2xvc2luZyBzZWdtZW50IGhhbmRsaW5nCgoyMDEyLTAyLTA4IDE0OjQ1OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0wOCAxNDozMjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggcmFjZSBpbiBwYWQgbW9kZSBjaGFuZ2UKCSAgRml4ZXMgIzY2ODkwOSBhbmQgcHJlc3VtYWJseSBhbHNvICM2Njk0ODMKCjIwMTItMDItMDggMTI6NTc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZXJyb3Igd2hlbiBhY3RpdmF0aW9uIG1vZGUgaXMgd3JvbmcKCSAgUG9zdCBhbiBlcnJvciB3aGVuIHdlIHRyeSB0byBwdXNoIG9uIGEgcGFkIGFjdGl2YXRlZCBpbiBwdWxsIG1vZGUgYW5kIHB1bGwgb24gYQoJICBwYWQgaW4gcHVzaCBtb2RlLgoKMjAxMi0wMi0wOCAwOTozMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIG1ldGhvZCBkZWNsYXJhdGlvbiB0b28KCjIwMTItMDItMDcgMTM6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBzdGF0cyBwcm9wZXJ0eSB3aGlsZSB3ZSBjYW4KCjIwMTItMDItMDcgMTA6NDQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgkgIFJlbW92ZSBvdXIgY3VzdG9tIG1hcnNoYWxsZXIuCgkgIE1ha2UgdGhlIGJ1ZmZlciBpbiB0aGUgaGFuZG9mZiBzaWduYWwgc3RhdGljX3Njb3BlIHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkKCSAgd3JpdGFibGUuCgoyMDEyLTAyLTA2IDA5OjQ2OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDEtMDQgMTc6MTA6MTUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGNvbXBpbGF0aW9uIHdpdGggLS1kaXNhYmxlLXJlZ2lzdHJ5CgkgIF9fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXIgaXMgb25seSBkZWZpbmVkIHdoZW4KCSAgR1NUX0RJU0FCTEVfUkVHSVNUUlkgaXMgbm90IGRlZmluZWQuCgkgIGdzdHJlZ2lzdHJ5LmM6IEluIGZ1bmN0aW9uICdnc3RfcmVnaXN0cnlfc2Nhbl9wbHVnaW5fZmlsZSc6CgkgIGdzdHJlZ2lzdHJ5LmM6MTEzMTo4OiBlcnJvcjogJ19fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg0CgoyMDEyLTAyLTAyIDE3OjE4OjIyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZXNldCB0aGUgRU9TIGRldGVjdGlvbiBtYWNoaW5lcnkgYWZ0ZXIgc2VuZGluZyBhbiBFT1MgbWVzc2FnZQoJICBUaGlzIHdpbGwgYWxsb3cgZGV0ZWN0aW5nIGZ1cnRoZXIgRU9TLCBmb3IgaW5zdGFuY2UgYWZ0ZXIgbG9vcGluZwoJICBhIHN0cmVhbSB3aXRob3V0IGNoYW5naW5nIHN0YXRlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODI4OQoKMjAxMi0wMS0wNyAyMzowMDoxMiAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogYWxsb3cgY2FsbGluZyBmcm9tIG91dC1vZi10cmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc2NjQKCjIwMTItMDItMDIgMTY6NTk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IHByaW50IGNhcHMgaW4gZHVtcAoKMjAxMi0wMi0wMiAxNjowNDoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMDIgMTU6NTc6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGRlYnVnIGFuZCB0cmFjZSBmb3IgR3N0TWVtb3J5CgoyMDEyLTAyLTAyIDE1OjU1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGRvbid0IGNoZWNrIHJhbmRvbSBwb2ludGVycyBmb3Igb2JqZWN0cwoJICBPbmx5IHNlZSBpZiB0aGUgdHJhY2VkIHBvaW50ZXIgaXMgYSBHT2JqZWN0IHdoZW4gaXQgd2FzIHJlZ2lzdGVyZWQgd2l0aCB0aGUKCSAgc3BlY2lhbCBvZmZzZXQgb2YgLTIuCgoyMDEyLTAyLTAyIDE1OjU0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIFVwZGF0ZSBkZWJ1ZyBjYXRlZ29yaWVzCgkgIFJlbW92ZSBzb21lIGNhdGVnb3JpZXMgbWFya2VkIGZvciBkZWxldGlvbi4KCSAgQWRkIGEgY2F0ZWdvcnkgZm9yIEdzdE1lbW9yeS4KCjIwMTItMDItMDIgMTU6NTI6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgcmVtb3ZlIFRSQUNFX05BTUUgZnJvbSBoZWFkZXJzCgoyMDEyLTAyLTAyIDEzOjE3OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBuZXcgdGVzdAoKMjAxMi0wMi0wMiAxMzoxNToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZGVudGl0eTogcmVtb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBDb3JyZWN0bHkgbWFyayBwYXNzdGhyb3VnaCBvbiB0aGUgYmFzZWNsYXNzIHNvIHRoYXQgaXQgY2FuIGNvcnJlY3RseSBkbyB0aGUKCSAgYWxsb2NhdGlvbiBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMuCgkgIFJlbW92ZSBvdXIgY3VzdG9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbiBub3cgdGhhdCB0aGUgYmFzZWNsYXNzIGlzCgkgIHNtYXJ0ZXIuCgoyMDEyLTAyLTAyIDEzOjEwOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENsZWFuIHVwIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24uCgkgIFJldXNlIHRoZSBpbnB1dCBidWZmZXIgd2hlbiBpdCBpcyB3cml0YWJsZSBhbmQgd2hlbiBkb2luZyBhbgoJICBpbi1wbGFjZSBidXQgbm9uLXBhc3N0aHJvdWdoIHRyYW5zZm9ybS4KCSAgTW92ZSB0aGUgY29weS1tZXRhZGF0YSBmdW5jdGlvbiBjYWxsIHRvIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZGVmYXVsdAoJICBmdW5jdGlvbi4gSWYgc3ViY2xhc3NlcyBpbXBsZW1lbnQgYSBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyLCB0aGV5IG11c3QgYWxzbwoJICBjb3B5IHRoZSBtZXRhZGF0YSB0aGVtc2VsdmVzLgoJICBSZW1vdmUgYSB1c2VsZXNzIG1lbW9yeSBjb3B5IGJlY2F1c2UgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGFscmVhZHkgZGlkIHRoYXQuCgoyMDEyLTAyLTAyIDEyOjMyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogb25seSBtYXAgd2hlbiB1c2luZyB0aGUgbWVtb3J5CgoyMDEyLTAyLTAyIDEyOjMyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMi0wMiAxMjozMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzaW1wbGlmeSBjb2RlCgkgIFdlIGFscmVhZHkgY2hlY2tlZCBwYXNzdGhyb3VnaCBhIGZldyBsaW5lcyBhYm92ZS4KCjIwMTItMDItMDIgMTI6MDc6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgc29tZSBwZXJmb3JtY2UgZGVidWcgaW5mbwoJICBBZGQgc29tZSBQRVJGT1JNQU5DRSBkZWJ1ZyBsaW5lcyB3aGVyZSB3ZSBjb3B5IGFuZCBkbyBvdGhlciBzdWJvcHRpbWFsIHRoaW5ncy4KCjIwMTItMDItMDIgMTI6MDU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZmxhZyB0byBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIEFkZCBhIGZsYWcgdG8gZm9yY2UgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciB0byBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIGluc3RlYWQgb2YgZGlzY2FyZGluZyBpdC4KCSAgUmVvcmRlciB0aGUgcGFkIGZsYWdzIGEgYml0LgoKMjAxMi0wMi0wMiAwMTozMDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgZXh0ZW5zaW9ucyBhcyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiBhIHNpbXBsZSBzdHJpbmcKCSAgRml4IGFubm95aW5nIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKSBmdW5jdGlvbiBzaWduYXR1cmUuIEEgc2ltcGxlCgkgIHN0cmluZyB3aXRoIGNvbW1hLXNlcGFyYXRlZCBleHRlbnNpb25zIHdvcmtzIGp1c3QgYXMgd2VsbCBhbmQgc2F2ZXMKCSAgbGluZXMgb2YgY29kZSwgY2FzdHMsIHJlbG9jYXRpb25zIGFuZCB1bHRpbWF0ZWx5IGtpdHRlbnMuCgoyMDEyLTAxLTMxIDE3OjQxOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIHN0YXJ0dXAKCSAgTWFyayByZW5lZ290aWF0ZSBiZWZvcmUgc3RhcnRpbmcgdGhlIHB1c2hpbmcgdGhyZWFkLgoJICBEbyBhbHNvIGNoZWNrIGlmIHdlIGFyZSBzdGFydGluZyBpbiB0aGUgZ2V0X3JhbmdlIGZ1bmN0aW9uLgoKMjAxMi0wMS0zMSAxNjoyNzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IGNyYXNoIG9uIG1pc3NpbmcgdGVtcGxhdGUKCSAgU29tZSByZXF1ZXN0IHBhZHMgZG9uJ3QgaGF2ZSBhIHBhZHRlbXBsYXRlIChtb3N0bHkgdGhvc2UgZnJvbSBlbmNvZGViaW4pLiBBdm9pZAoJICBjcmFzaGluZyBpbiB0aGlzIGNhc2UuCgoyMDEyLTAxLTMxIDEyOjIwOjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNvbnN0cnVjdHVyZXMgZm9yIGNvbnRyb2wgc291cmNlcyByZXR1cm4gR3N0Q29udHJvbFNvdXJjZQoJICBEb24ndCByZXR1cm4gdGhlIHNwZWNpZmljIHR5cGVzLiBJbiBtb3N0IGNhc2VzIHRoZXJlIGlzIG5vIHNwZWNpZmljIGFwaSB0aGVyZQoJICBhbnl3YXkuCgoyMDEyLTAxLTMxIDEyOjEwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBkb24ndCBkbyBsb2dpYyBpbiBnX2Fzc2VydC4uLgoKMjAxMi0wMS0zMCAxOToxNzowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVuYW1lIGNvbnRyb2wtYmluZGluZ3MKCSAgZ3N0X2NvbnRyb2xfYmluZGluZ194eHggLT4gZ3N0X3h4eF9jb250cm9sX2JpbmRpbmcgZm9yIGNvbnNpc3RlbmN5LgoKMjAxMi0wMS0zMCAxNDo0ODo0NCAtMDIwMCAgSm/Do28gUGF1bG8gUGl6YW5pIEZsb3IgPGpvYW9waXphbmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBGaXhlcyB0aGUgbGFjayBvZiBhbiBpbmNsdWRlIGRpcmVjdGl2ZSBpbiBnc3QvZ3N0cHJlc2V0LmgKCSAgSXQgYmxvY2tlZCB0aGUgYnVpbGQgb2YgZXh0ZXJuYWwgbGlicmFyaWVzIGRlcGVuZGluZyBvbiBnc3RyZWFtZXItY29yZSAobmFtZWx5LCBnc3RyZWFtZXJtbSkuCgkgIENvbXBsZXRlIGJ1ZyByZXBvcnQgYXQgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTAzNgoKMjAxMi0wMS0zMCAxODoxNzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IHNpbmsgdGhlIGZsb2F0aW5nIHJlZgoJICBjb250cm9sIHNvdXJjZXMgY2FuIGJlIHVzZWQgb24gc2V2ZXJhbCBjb250cm9sIGJpbmRpbmdzLgoKMjAxMi0wMS0zMCAxNzoxNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOyByZW1vdmUgSU5fQ0FQUyBidWZmZXIgZmxhZwoJICBUaGUgSU5fQ0FQUyBidWZmZXIgZmxhZyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgSEVBREVSCgkgIGZsYWcuCgoyMDEyLTAxLTMwIDE2OjA5OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM7IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogcGFzcyBhbGxvY2F0b3IgaW4gcXVlcnkKCSAgUGxhY2UgdGhlIGFsbG9jYXRvciBvYmplY3QgaW4gdGhlIEFMTE9DQVRJT04gcXVlcnkgaW5zdGVhZCBvZiB0aGUgbmFtZS4gVGhpcwoJICBhbGxvd3MgdXMgdG8gZXhjaGFuZ2UgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QgaW4gdGhlIGdsb2JhbCBwb29sIG9mIGFsbG9jYXRvcnMuCgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgdGhlIG5ldyBhcGkKCjIwMTItMDEtMzAgMTU6NTc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWVtb3J5IHR5cGUKCSAgQWRkIG1lbW9yeSB0eXBlIHdoZW4gcmVnaXN0ZXJpbmcgbWVtb3J5IGFsbG9jYXRvcnMuIEFkZCBnZXR0ZXIgZm9yIHRoZSBtZW1vcnkKCSAgdHlwZS4KCjIwMTItMDEtMjkgMjI6NTg6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IFJlcHVzaCBzdGlja3kgZXZlbnRzIGFmdGVyIGRpc2FibGluZyBkcm9wcGluZwoKMjAxMi0wMS0zMCAxMzoyODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBib3hlZCBHVHlwZSBmb3IgdGhlIGFsbG9jYXRvcgoKMjAxMi0wMS0zMCAxMzowMjoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIHRoZSBhbGxvY2F0b3IgcmVmY291bnRlZAoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIEdzdEFsbG9jYXRvciBvYmplY3QuCgkgIFJlbW92ZSBjb25zdCBmcm9tIGZ1bmN0aW9ucyBiZWNhdXNlIHRoZSBhbGxvY2F0b3IgaXMgcmVmY291bnRlZCBub3cuCgkgIFJlbmFtZSB0aGUgdm1ldGhvZHMgZm9yIGNvbnNpc3RlbmN5CgkgIEV4cG9zZSB0aGUgY29uc3RydWN0b3IgZm9yIEdzdEFsbG9jYXRvciBhbmQgYWRkIGEgZGVzdHJveSBub3RpZnkgZm9yIHRoZQoJICB1c2VyX2RhdGEuIFRoaXMgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gY3JlYXRlIGFsbG9jYXRvcnMgdGhhdCBhcmUgbm90CgkgIHJlZ2lzdGVyZWQgYW5kIHNoYXJlZCBnbG9iYWxseSBhbG9uZyB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBkZXN0cm95IHRoZW0KCSAgcHJvcGVybHkuCgkgIFVwZGF0ZSBkZWZzIHdpdGggbmV3IHN5bWJvbHMuCgoyMDEyLTAxLTMwIDEwOjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgZ2FwIGV2ZW50CgoyMDEyLTAxLTMwIDEwOjA3OjUxICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkgIGNvcmU6IGRvbid0IHNoaXAgZ3N0dHJhY2UuaCBwcml2YXRlIGhlYWRlcgoJICBJbmNsdWRlIGl0IGV4cGxpY2l0ZWx5IGluIGdzdC5jIGFuZCBubyBsb25nZXIgaW5jbHVkZSBpdCBpbiBnc3QuaC4KCSAgVGhhdCBoZWFkZXIgd2FzIG1hZGUgcHJpdmF0ZSBpbiAxOTY5Yjk0MjY3YjRmMzc3ZWEyNjYzODc2YWU4NzIwNzE3ODg5NjkzLgoKMjAxMi0wMS0yOCAxODo1MDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlcXVpcmUgYSB2YWxpZCBkdXJhdGlvbiBmb3IgdGhlIEdBUCBldmVudAoKMjAxMi0wMS0yOCAxODo0OTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQoKQoKMjAxMi0wMS0yNyAxODo1NzoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogYWRkIHNvbWUgKG91dCkgYW5ub3RhdGlvbnMgZm9yIHN0cmVhbSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucwoKMjAxMi0wMS0yNyAxODo1NjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgY29uc3RydWN0b3IgYW5kIHBhcnNlIGZ1bmN0aW9uIGZvciBuZXcgR0FQIGV2ZW50CgkgIChXaGF0ZXZlciB5b3UgZG8sIGRvbid0IG1lbnRpb24gdGhlIGZpbGxlciBldmVudC4pCgoyMDEyLTAxLTI3IDE4OjM3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBHU1RfRVZFTlRfU1RSRUFNX0NPTkZJRyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMTItMDEtMjcgMTc6NTc6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBjb2RlYyBkYXRhIC8gc3RyZWFtIGhlYWRlciBjaGFuZ2UgaW4gcG9ydGluZyBkb2NzCgoyMDEyLTAxLTI4IDE0OjM1OjUxICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIFVzZSBtYWNyb3MgdG8gcmVnaXN0ZXIgYm94ZWQgdHlwZXMgdGhyZWFkIHNhZmVseQoKMjAxMi0wMS0yOCAwODozODowMyArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBVcGRhdGUgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXIgdG8gMC4xMSBzdHlsZSBjYXBzCgkgIFBhc3MgdGhlIGRlc2lyZWQgY2FwcyBleHBsaWNpdGVseQoKMjAxMi0wMS0yNyAxOTowMDowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IG1lbW9yeSBsZWFrCgoyMDEyLTAxLTI3IDE4OjUzOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCB1bnJlZiBwbHVnaW4gZmVhdHVyZXMgbXVsdGlwbGUgdGltZXMKCSAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSgpIHVucmVmcyB0aGVtIHRvby4KCjIwMTItMDEtMjcgMTc6NTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBzdHJlYW0gY29uZmlnIGZ1bmN0aW9ucyB0byBkb2NzCgoyMDEyLTAxLTI3IDE3OjQ5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggc2ltcGxlLWxhdW5jaC1saW5lcyBjb21waWxhdGlvbgoJICBEb24ndCB1c2UgcmVtb3ZlZCBBUEkuCgoyMDEyLTAxLTI3IDE4OjQ2OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IEFkZCBwYWRkaW5nIHRvIHRoZSBwdWJsaWMgc3RydWN0CgoyMDEyLTAxLTI3IDE3OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBkb24ndCByZWYgR1R5cGUgZm9yIHByaXZhdGUgZW51bSBmb3Igd2hpY2ggdGhlcmUncyBubyBHVHlwZSBhbnkgbW9yZQoKMjAxMi0wMS0yNyAxNzo0NToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgYW5kIHJlbW92ZWQgQVBJCgoyMDEyLTAxLTI3IDE3OjM5OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3QgYW5kIHBhcnNlIEFQSSBmb3IgdGhlIG5ldyBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGNvZGVjIGRhdGEgYW5kIHN0cmVhbSBoZWFkZXJzIGRvbid0IGJlbG9uZyBpbnRvIGNhcHMsIHNpbmNlIHRoZXkKCSAgYXJlIG5vdCBuZWdvdGlhdGVkLiBXZSBzaWduYWwgdGhlbSB1c2luZyB0aGUgU1RSRUFNIENPTkZJRyBldmVudAoJICBpbnN0ZWFkLgoKMjAxMi0wMS0yNyAxODoyNDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgdHJhY2U6IHJlbW92ZSBmcm9tIHB1YmxpYyBoZWFkZXJzCgoyMDEyLTAxLTI3IDEyOjE2OjA1ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jdW1lbmF0aW9uIHR5cG8KCjIwMTItMDEtMjcgMTc6NTA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0cmFjZTogcmV3b3JrIGFsbG9jIHRyYWNpbmcKCSAgUmVtb3ZlIHRyYWNlLCB3ZSB1c2UgZGVidWcgbG9nIGZvciB0aGF0CgkgIE1ha2UgYWxsb2MgdHJhY2Ugc2ltcGxlciwgcmVtb3Zpbmcgc29tZSBtZXRob2RzLgoJICBBY3RpdmF0ZSBhbGxvYyB0cmFjZSB3aXRoIGEgR1NUX1RSQUNFPTMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIER1bXAgbGVha2VkIG9iamVjdHMgYXRleGl0LgoJICBQcm92aWRlIGFuIG9mZnNldCBpbiB0aGUgb2JqZWN0IHdoZXJlIHRoZSBHVHlwZSBjYW4gYmUgZm91bmQgc28gdGhhdCBtb3JlCgkgIHZlcmJvc2UgaW5mbyBjYW4gYmUgZ2l2ZW4gZm9yIG9iamVjdHMuCgkgIFJlbW92ZSAtVCBvcHRpb24gZnJvbSBnc3QtbGF1bmNoIGJlY2F1c2UgdHJhY2luZyBpcyBub3cgdHJpZ2dlcmVkIHdpdGggdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAxMi0wMS0yNSAxMjozNTo0MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogYW5zd2VyIGNhcHMgcXVlcmllcyB3aXRoIG91ciB0eXBlZm91bmQgY2FwcwoJICBUaGlzIGF2b2lkcyBtZXJlbHkgZm9yd2FyZGluZyB0aGUgZXZlbnQgdG8gdGhlIHNpbmssIGFuZCBnZXR0aW5nCgkgIHNvbWV0aGluZyB1c2VsZXNzIHN1Y2ggYXMgQU5ZLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NTcxCgoyMDEyLTAxLTI3IDE2OjE4OjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBEbyB0eXBlZmluZGluZyBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkIGFuZCBub3QgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uCgoyMDEyLTAxLTI3IDE1OjMyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVtb3J5IGxlYWsKCSAgdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkgb24gZXJyb3JzLgoKMjAxMi0wMS0yNyAxNTozMjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHRyYWNlOiBtYWtlIGFsbG9jIHRyYWNlIHdvcmsgZm9yIG1pbmlvYmplY3QgYWdhaW4KCjIwMTItMDEtMjcgMTU6MDk6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaAoKMjAxMi0wMS0yNyAxNTowMjo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1vdmUgcHJpdmF0ZSBmaWVsZHMgZnJvbSB0aGUgcHVibGljIHN0cnVjdHMgdG8gcHJpdmF0ZSBzdHJ1Y3RzCgkgIEZpeGVzIGJ1ZyAjNjY4NzY0LgoKMjAxMi0wMS0yNyAxMzowNTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBubyBmYW5jeSB1dGY4IGNoYXJzIGluIHRoZSBnaSBhbm5vdGF0aW9ucwoKMjAxMi0wMS0yNyAxMjo1MDoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGZpeCBzb21lIG1vcmUgbGVha3MKCjIwMTItMDEtMjcgMTI6MzM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBGaXggaGFuZGxpbmcgb2YgdGhlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTItMDEtMjcgMTE6MzI6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IGFkZCBhIGZldyBjb25zdHMgdG8gcmVhZCBvbmx5IGRhdGEKCjIwMTItMDEtMjcgMTI6MjI6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaXQgdGVzdAoKMjAxMi0wMS0yNyAxMjoxMDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGxlYWtzCgoyMDEyLTAxLTI3IDExOjQwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGF2b2lkIG1lbW9yeSBsZWFrCgkgIFVucmVmIHRoZSBvbGQgbWVtb3J5IGluIG1ha2VfbWFwcGVkLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvCgoyMDEyLTAxLTI3IDExOjQwOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIGNhcHMgbGVhawoKMjAxMi0wMS0yNyAxMTowMToyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5L2Zha2V7c3JjLHNpbmt9OiBJbmNsdWRlIGV2ZW50IHR5cGUgbmFtZSBpbiB0aGUgZGVidWcgb3V0cHV0CgoyMDEyLTAxLTI3IDEwOjU0OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IE1hcmsgdGhlIG5ldyBHQVAgZXZlbnQgYXMgbm9uLXN0aWNreQoKMjAxMi0wMS0yNyAxMDo0NjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IERyb3AgdGhlIHN0cmVhbS1zdGFydCBhbmQgc3RyZWFtLWNvbmZpZyBldmVudHMgYnkgZGVmYXVsdAoKMjAxMi0wMS0yNyAxMDo0MjowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQgcmViYXNlCgoyMDEyLTAxLTI3IDEwOjQxOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQgYXMgZmlyc3QgZXZlbnQgZXZlcgoKMjAxMi0wMS0yNyAxMDozMDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIGNvbnN0cnVjdG9yIGFuZCBkb2NzIGZvciB0aGUgbmV3IFNUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wMS0yNiAxOToyODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCB1c2VyIGRhdGEgdG8gY2hhaW4gZnVuY3Rpb25zCgoyMDEyLTAxLTI2IDE4OjU2OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB0eXBvCgoyMDEyLTAxLTI2IDE4OjIyOjI5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlc3RvcmUgZGF0ZS90aW1lIHR5cGUgdG8gR3N0RGF0ZVRpbWUKCSAgVGhlIGNoYW5nZSB0byBHRGF0ZVRpbWUgd2FzIGFwcGFyZW50bHkgYWNjaWRlbnRhbCwgYW5kCgkgIGJyZWFrcyBwbHVnaW5zIHRyeWluZyB0byBmZWVkIGEgR3N0RGF0ZVRpbWUgdG8gdGhlIHRhZ2xpc3QgQVBpLgoKMjAxMi0wMS0yNiAxOToxMjoxNiArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfbGF1bmNoIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI2IDE4OjUzOjUxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBTZXQgInRyYW5zZmVyIG5vbmUiIHRvIHJldHVybiB2YWx1ZXMgdGhhdCBzaG91bGRuJ3QgYmUgZnJlZWQKCjIwMTAtMTItMDQgMTg6NTM6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogY2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYwMTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjU2MgoKMjAxMi0wMS0yNiAxNjozMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZXZlbnRzCgkgIEFkZCBzb21lIG1vcmUgbmV3IGV2ZW50cyB0aGF0IHdlIHdhbnQgdG8gaW1wbGVtZW50IGxhdGVyLgoKMjAxMi0wMS0yNiAxNToxNToyMSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBnc3RtZW1vcnk6IGFkZCBtaXNzaW5nIHBhcmFtZXRlcgoKMjAxMi0wMS0yNiAxNDo1NzoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMS0yNiAxNDo1NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBVc2UgY29ycmVjdCBzaXplIGZvciBjYXBzIGFsbG9jYXRpb24KCjIwMTItMDEtMjYgMTQ6NDU6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogTWFrZSBHc3RDYXBzIHB1YmxpYyBzdHJ1Y3QgbW9yZSBvcGFxdWUgYnkgbW92aW5nIHRoZSBwcml2YXRlIHBvaW50ZXIgaW50byB0aGUgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMjYgMTQ6MzM6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBjYXBzOiBTdG9yZSBhIHBvaW50ZXIgdG8gR3N0Q2FwcyBpbiBHc3RTdGF0aWNDYXBzCgkgIC4uLmluc3RlYWQgb2YgdXNpbmcgaGFja2lzaCBzdWJjbGFzcyBvZiBHc3RDYXBzLCB3aGljaCBhbHNvCgkgIGhhZCBzb21lIHRocmVhZC1zYWZldHkgcHJvYmxlbXMuCgoyMDEyLTAxLTI2IDEzOjI0OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiByZW1vdmUgdGhlIHN0aWNreSBldmVudCBpbmRleAoJICBXZSBkb24ndCB1c2UgdGhlIHN0aWNreSBldmVudCBpbmRleCBhbnltb3JlLCBvcmRlcmluZyBvZiB0aGUgZXZlbnRzIGFyZSBob3cgdGhleQoJICB3ZXJlIHNlbnQgaW5pdGlhbGx5LgoJICBBZGQgc29tZSBtb3JlIHBhZGRpbmcgYmV0d2VlbiB0aGUgZXZlbnQgbnVtYmVycyBzbyB0aGF0IHdlIGNhbiBpbnNlcnQgbmV3IGV2ZW50cwoJICBsYXRlci4KCjIwMTItMDEtMjYgMTA6NDg6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGRvY3M6IHJlbW92ZSBjb2xsZWN0cGFkcyBmcm9tIGRvY3MsIGZpeCBidWlsZAoKMjAxMi0wMS0yNiAxMDoyMjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1c2UgR3N0VmFsdWVBcnJheSBpbnN0ZWFkIG9mIEdWYWx1ZUFycmF5IGZvciBzdG9yaW5nIG9wdGlvbnMgaW4gdGhlIGNvbmZpZwoJICBTaW5jZSBHVmFsdWVBcnJheSBpcyBkZXByZWNhdGVkLiBJdCdzIGFsbCBvbmx5IGludGVybmFsIGFueXdoZXJlIGhlcmUsCgkgIGJ1dCBpZiB3ZSB1c2UgR3N0VmFsdWVBcnJheSB0aGUgb3B0aW9uIHN0cmluZ3MgZ2V0IHNlcmlhbGl6ZWQgbmljZWx5CgkgIGluIHRoZSBkZWJ1ZyBsb2dzIGF0IGxlYXN0LgoKMjAxMi0wMS0yNiAwOToyNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGZvciBHX1RZUEVfVkFMVUVfQVJSQVkKCSAgRm9yIG5vdyBhbnl3YXkuCgoyMDEyLTAxLTI2IDExOjQyOjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb2xsZWN0cGFkczI6IFVuaXQgdGVzdCBpcyB2YWxncmluZCBjbGVhbiBub3cKCjIwMTItMDEtMjYgMTE6NDA6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBGaXggdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHdvcmsgYWdhaW4KCjIwMTItMDEtMjYgMTE6Mzg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIGNvbGxlY3RwYWRzMjogUG9ydCBjb2xsZWN0cGFkcyB1bml0IHRlc3QgdG8gY29sbGVjdHBhZHMyCgkgIEN1cnJlbnRseSBmYWlscyBidXQgcmVhbGx5IHNob3VsZG4ndC4KCjIwMTItMDEtMjYgMTE6MDE6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcHJvYmUgaWQgdG8gdGhlIGluZm8KCjIwMTItMDEtMjYgMTA6NDg6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IFJlbW92ZSBvbGQgY29sbGVjdHBhZHMKCSAgU3RpbGwgaGF2ZSB0byByZW5hbWUgY29sbGVjdHBhZHMyIHRvIGNvbGxlY3RwYWRzIGJlZm9yZSB0aGUgMS4wIHJlbGVhc2UuCgoyMDEyLTAxLTI2IDEwOjMwOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRG9uJ3QgZm9yd2FyZCBDQVBTIGV2ZW50IGF1dG9tYXRpY2FsbHkKCjIwMTItMDEtMjUgMTg6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBGaXggaGFuZGxpbmcgb2YgdGhlIGV2ZW50IGZ1bmN0aW9uIGFuZCBkb2N1bWVudCBpdAoJICBUaGUgZXZlbnQgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gZm9yd2FyZC9kcm9wIHRoZSBldmVudCBpbiBhbnkgY2FzZQoJICBub3cgYW5kIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQuCgoyMDEyLTAxLTI1IDE4OjM2OjQyICswMTAwICBKYXNvbiBEZVJvc2UgPGpkZXJvc2VAbm92YWN1dC5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZQoKMjAxMi0wMS0yNSAxOTo0MTowMyArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0X3BpcGVsaW5lX25ldyBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZS4KCjIwMTItMDEtMjUgMTc6Mjc6NDAgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE1OjE0OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogdXNlIEdBcnJheSBmb3IgaW50ZXJuYWwgYXJyYXlzIGluc3RlYWQgb2YgdGhlIG5vdy1kZXByZWNhdGVkIEdWYWx1ZUFycmF5CgoyMDEyLTAxLTI1IDE2OjAxOjAyICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBDaGFuZ2VkIGludHJvc3BlY3Rpb24gdHJhbnNmZXIgZmxhZyB0byAodHJhbnNmZXIgZmxvYXRpbmcpCgkgIGZvciBnc3RfcGFkX25ldywgZ3N0X2dob3N0X3BhZF9uZXcgYW5kIGdzdF9iaW5fbmV3IGNvbnN0dWN0b3JzLiBGaXhlcwoJICBzZWdmYXVsdHMgZHVlIG9mIHRyYW5zZmVyIGZ1bGwgYW5kIGZsb2F0aW5nIHJlZiBwcm9ibGVtLgoKMjAxMi0wMS0yNSAxMzo0NjoxMyArMDEwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzQ2M2JjMCB0byA3ZmRhNTI0CgoyMDEyLTAxLTI0IDE0OjM3OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGZsYWdzIHRvIHRoZSBtYXBpbmZvCgoyMDEyLTAxLTIwIDE2OjEwOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2UgZ3VpbnQ4ICogZm9yIGVhc3kgdXNhZ2UKCjIwMTItMDEtMjAgMTQ6NTY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBhZGQgbWV0aG9kIHRvIGNyZWF0ZSBtYXBwZWQgbWVtb3J5CgkgIEFkZCBhIG1ldGhvZCB0byBjcmVhdGUgYSBHc3RNZW1vcnkgd2l0aCB0aGUgZGVzaXJlZCBtYXBwaW5nLiBNYWtlcyBhIGNvcHkgb2YgdGhlCgkgIG1lbW9yeSBpZiBpdCBpcyBjdXJyZW50bHkgaW4gdXNlLgoKMjAxMi0wMS0yMCAxNDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgIEFkZCBuZXcgR3N0TWFwSW5mbwoJICBVc2UgYSBzdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvIGFib3V0IHRoZSBtYXBwaW5nLiBUaGUgYXBwbGljYXRpb24gdGhlbiBrZWVwcyB0cmFjawoJICBvZiB0aGlzIHN0YXRlIGFuZCB3ZSBjYW4gdXNlIGl0IHRvIHVubWFwIHRoZSBtZW1vcnkgYWdhaW4gbGF0ZXIuCgoyMDEyLTAxLTI1IDExOjQ5OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZ3M6IG5hbWUgaXMgbm90IGEgY29uc3QKCSAgSXQgZ2V0cyBtb2RpZmllZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIG9iamVjdC4gRml4ZXMgYnVpbGQuCgoyMDEyLTAxLTI1IDExOjQzOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMjUgMTE6Mzc6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTU5MDE2IHRvIGM0NjNiYzAKCjIwMTItMDEtMjQgMjE6NTM6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgdGhlIGNvbnRyb2wtYmluZGluZyBjb25zdHJ1Y3Rpb24KCSAgVGhpcyBpcyBub3cgYmluZGluZ3MgZmlyZW5kbHkgYXMgX25ldyBpcyBqdXN0IGEgY2xhc3NpYyBjIGNvbnZlbmllbmNlIGFuZCBhbGwKCSAgdGhlIHdvcmsgaXMgZG9uZSBpbiBhIGNvbnN0cnVjdG9yLiBBcyBhIHNpZGUgZWZmZWN0IF9uZXcgbmV2ZXIgZmFpbHMuCgkgIEZpeCB0aGUgdGVzdHMuCgoyMDEyLTAxLTI0IDE0OjQwOjMzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogaGFuZGxlIE5VTEwgZGVzdCBpbiBiaXRtYXNrL2JpdG1hc2sgaW50ZXJzZWN0aW9uCgoyMDExLTEyLTAxIDEyOjQzOjAzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogYWRkIGJhc2ljIHRlc3RzIGZvciBuZXcgc3RlcHBlZCByYW5nZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0zMCAxNDo0NToxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBhZGQgc3RlcHBlZCByYW5nZXMKCSAgaW50IGFuZCBpbnQ2NCByYW5nZXMgY2FuIG5vdyBoYXZlIGFuIG9wdGlvbmFsIHN0ZXAgKGRlZmF1bHRpbmcgdG8gMSkuCgkgIE1lbWJlcnMgb2YgdGhlIHJhbmdlIGFyZSB0aG9zZSB2YWx1ZXMgd2l0aGluIHRoZSBtaW4gYW5kIG1heCBib3VuZHMKCSAgd2hpY2ggYXJlIGEgbXVsdGlwbGUgb2YgdGhpcyBzdGVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE3OjU4OjA3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IGFkZCBhIDY0IGJpdCB2ZXJzaW9uIG9mIEdDRCBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTA0IDE4OjI2OjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZW5mb3JjZSBpZGVudGljYWwgYmFzaWMgdHlwZXMgaW4gbGlzdHMsIGFycmF5cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIyNTg3CgoyMDEyLTAxLTIzIDEwOjMyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBiZW5jaG1hcmtzOiBhZGQgbWlzc2luZyBpbmNsdWRlCgoyMDEyLTAxLTIzIDExOjAzOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IHJlZ2lzdGVyIGFsbCBwcm9wZXJ0aWVzIGluIG9uZSBnbwoKMjAxMi0wMS0yMyAxMTowMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGFwaSBkZXNpZ24KCjIwMTItMDEtMjEgMjA6MDM6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGFsbG93IGRpZmZlcmVudCBjb250cm9sYmluZGluZ3MKCSAgTWFrZSBjb250cm9sYmluZGluZyBhbiBhYnN0cmFjdCBiYXNlY2xhc3MuIE1vdmUgaW1wbGVtZW50YXRpb24gdG8gY29udHJvbC0KCSAgYmluZGluZy1kaXJlY3QgYW5kIGFkZCBhIGNvbnRyb2wtYmluZGluZy1hcmdiLiBBZGQgYW4gZXhhbXBsZS4KCjIwMTItMDEtMjIgMjI6NDQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmVwbGFjZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCB3aXRoIEdNdXRleAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjA3CgoyMDEyLTAxLTIyIDE1OjIzOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBmaXggdHlwbyBpbiBnc3QtaW5zcGVjdCBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTAxLTIyIDAxOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVc2UgR0xpYidzIHR5cGUgZm9yIEdFcnJvciBpbnN0ZWFkIG9mIG91ciBvd24KCSAgV2UgaW50cm9kdWNlZCBvdXIgb3duIHdoZW4gR0xpYiBkaWRuJ3Qgd2FudCB0byBhZGQgYSBHVHlwZQoJICBmb3IgR0Vycm9yLiBCdXQgbm93IHRoYXQgdGhlcmUgaXMgb25lLCB3ZSBjYW4gdXNlIEdMaWIncwoJICB1bmNvbmRpdGlvbmFsbHkgYW5kIHJlbW92ZSBvdXIgdmVyc2lvbi4KCjIwMTItMDEtMjIgMDE6Mjc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGZpeCBzaXplIG9mIGF0b21pYyBjb3VudGVyCgoyMDEyLTAxLTIyIDAxOjI1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgVXNlIHJlY2VudCBHTGliIEFQSSB1bmNvbmRpdGlvbmFsbHkgbm93IHRoYXQgd2UgZGVwZW5kIG9uIHRoZSBsYXRlc3QgR0xpYgoKMjAxMi0wMS0yMiAwMDo0MjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGRvbid0IHVzZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCBBUEkgaW4gKHN0aWxsKSBwdWJsaWMgaGVhZGVyCgoyMDEyLTAxLTIxIDEyOjU2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBzZXQgR0lfVFlQRUxJQl9QQVRIIGluIGdzdC11bmluc3RhbGxlZAoJICBTbyBweWdpIGZpbmRzL3VzZXMgdGhlIGxvY2FsIGctaSBmaWxlcy4KCjIwMTItMDEtMjAgMTg6MDY6MDQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgbGliY2hlY2s6IG1ha2UgdGhlIGRlZmluaXRpb24gb2YgZmFpbCBub3QgZmFpbCB3aXRoIG5vbiBHQ0MgY29tcGlsZXJzCgoyMDEyLTAxLTIwIDE0OjQyOjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBpbXByb3ZlIGNvbnRyb2wgYmluZGluZyBoYW5kbGluZwoJICBDaGFuZ2UgX3NldF9jb250cm9sX2JpbmRpbmcgdG8gX2FkZF9jb250cm9sX2JpbmRpbmcgYW5kIHRha2Ugb3duZXJzaGlwLiBBZGQgYQoJICBfcmVtb3ZlX2NvbnRyb2xfYmluZGluZyBmdW5jdGlvbi4KCjIwMTItMDEtMjAgMDg6Mjc6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGNvbnZlbmllbmNlIGFwaSBmb3IgY29udHJvbCBzb3VyY2VzCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgbXVsdGlwbGUga2luZHMgb2YgY29udHJvbC1iaW5kaW5ncy4KCjIwMTItMDEtMTkgMTU6MTc6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIE5VTEwgZnJvbSBnZXRjYXBzCgkgIElmIHRoZSBnZXRjYXBzIGZ1bmN0aW9ucyByZXR1cm5zIE5VTEwsIHJldHVybiBGQUxTRSBmcm9tIHRoZSBDQVBTIHF1ZXJ5LgoKMjAxMi0wMS0xOSAxNToxNzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBsaXN0cyBjb3JyZWN0bHkKCjIwMTItMDEtMTcgMTY6MjM6MzMgLTA1MDAgIENvbGluIFdhbHRlcnMgPHdhbHRlcnNAdmVyYnVtLm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYWRkIC0tZGlzYWJsZS1mYXRhbC13YXJuaW5ncyBjb25maWd1cmUgb3B0aW9uCgkgIEl0J3MgcmVhc29uYWJsZSB0byBidWlsZCBmcm9tIGdpdCwgYnV0IG5vdCB3YW50IHRvIHR1cm4gYWxsIGNvbXBpbGVyCgkgIHdhcm5pbmdzIGludG8gZmF0YWwgZXJyb3JzLiAgRm9yIGV4YW1wbGUsIEdOT01FJ3MgamhidWlsZCBoZWxwcyBwZW9wbGUKCSAgZ2V0IG5ld2VyIHZlcnNpb25zIG9mIHNvZnR3YXJlIHRoYW4gY2FtZSBmcm9tIHRoZWlyIGRpc3RyaWJ1dGlvbiwgYnV0CgkgIHRoZXkgbWF5IG5vdCBuZWNlc3NhcmlseSB3YW50IHRvIGhhY2sgb24gaXQuCgoyMDEyLTAxLTE5IDEyOjU3OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgdGVzdHM6IGNsb2Nrc3RyZXNzOiBwZXJmb3JtIHNhbml0eSBjaGVjayBvbiB0aHJlYWQgbnVtYmVyIGFyZ3VtZW50CgoyMDEyLTAxLTE5IDA5OjEyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnkgaW1wcm92ZW1lbnRzCgkgIE1ha2UgdGhlIG1lbW9yeSBvYmplY3Qgc2ltcGx5IG1hbmFnZSB0aGUgZGF0YSBwb2ludGVyIGFuZCB0aGUgbWF4c2l6ZSBhbmQgbW92ZQoJICB0aGUgb2Zmc2V0IGFuZCBzaXplIGhhbmRsaW5nIHRvIGNvbW1vbiBmdW5jdGlvbmFsaXR5LgoJICBVc2UgdGhlIFJFQURPTkxZIGZsYWcgdG8gc2V0IGEgcmVhZG9ubHkgbG9jay4KCSAgUmVtb3ZlIHRoZSBkYXRhIGFuZCBzaXplIGZpZWxkcyBmcm9tIHRoZSB1bm1hcCBtZXRob2QuIFdlIG5lZWQgYW4gZXhwbGljaXQKCSAgcmVzaXplIG9wZXJhdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIHRoZSB1bm1hcCBmdW5jdGlvbi4KCSAgTWFrZSBpbnRlcm5hbCBoZWxwZXIgbG9jayBhbmQgdW5sb2NrIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHVuaXQgdGVzdCBhbmQgdXNlcnMgb2YgdGhlIG9sZCBBUEkuCgoyMDEyLTAxLTE5IDExOjQzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gYnVzIGRvY3MKCjIwMTItMDEtMTMgMTc6NDU6MTcgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgdmlzdWFsIHN0dWRpbyBJREUgZmlsZXMgYW5kIE9TIFggLkRTX1N0b3JlIGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4OTkKCjIwMTItMDEtMTkgMDk6Mjc6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIFVwZGF0ZSBmb3IgbmV3IGd0aHJlYWQgQVBJCgoyMDEyLTAxLTE4IDE2OjUyOjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBHSU8gY2hlY2sgaXMgbm93IGluIGdzdC1nbGliMi5tNAoKMjAxMi0wMS0xOCAxNjo0NTo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA4MDcxODcgdG8gMmE1OTAxNgoKMjAxMi0wMS0xOCAxNjoxNDo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliIDIuMzEuMTAgYW5kIGltcHJvdmUgR0lPIGNoZWNrCgoyMDEyLTAxLTE4IDEyOjA3OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWx3YXlzIGNhbGwgOjpwcm9wb3NlX2FsbG9jYXRpb24gdmZ1bmMKCSAgQW5kIG9ubHkgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBpZiB3ZSdyZSB3b3JraW5nIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUgaWYgbm8gOjpwcm9wb3NlX2FsbG9jYXRpb24gaXMgaW1wbGVtZW50ZWQuCgkgIEluIHBsYWNlIGJ1ZmZlciB0cmFuc2Zvcm1hdGlvbnMgd2lsbCBjaGFuZ2UgdGhlIGJ1ZmZlcgoJICBjb250ZW50IGFuZCByZXF1aXJlIGV4cGxpY2l0IGhhbmRsaW5nIG9mIGFsbCBtZXRhcy4KCjIwMTItMDEtMTggMTE6Mzc6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkgYnkgZGVmYXVsdAoJICBUaGlzIGhhcyB0byBiZSBoYW5kbGVkIGV4cGxpY2l0ZWx5IGJ5IGVsZW1lbnRzIHRvCgkgIG1ha2Ugc3VyZSB0aGF0IHRoZXkgc3VwcG9ydCBhbGwgdGhlIG1ldGFzIHBhc3NlZAoJICBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgTWV0YXMgaGF2ZSB0byBzdXBwb3J0ZWQgZXhwbGljaXRlbHksIG90aGVyd2lzZSB0aGUKCSAgcXVlcnkgd2lsbCBmYWlsLiBBbGwgZWxlbWVudHMgaW4gYSBjaGFpbiBuZWVkIHRvCgkgIHN1cHBvcnQgYSBzcGVjaWZpYyBtZXRhIHRvIGFsbG93IGl0cyB1c2FnZS4KCjIwMTItMDEtMTggMDE6MzE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBnc3Q6IHN1cHByZXNzIHNvbWUgbW9yZSBkZXByZWNhdGVkIHRocmVhZCBhcGkgdW50aWwgd2UgZml4IGl0IHVwCgkgIFdoaWNoIHNob3VsZCBiZSBzb29uLCBzaW5jZSB3ZSBhbHJlYWR5IGRlcGVuZCBvbiBhbiB1bnN0YWJsZSBnbGliIGZvciAtYmFzZS4KCjIwMTItMDEtMTggMDE6MTg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGFwaSBjaGFuZ2VzCgoyMDEyLTAxLTE3IDIzOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogcmVtb3ZlICAtLWRpc2FibGUtbmV0IG9wdGlvbiBhbmQgYWx3YXlzIGJ1aWxkIGxpYmdzdG5ldAoJICBJdCBzaG91bGQgd29yayBldmVyeXdoZXJlIG5vdywgYW5kIC1iYXNlIGFuZCAtZ29vZCBkZXBlbmQgb24KCSAgdGhlIEdzdE5ldE1ldGEgQVBJLgoKMjAxMi0wMS0xNyAyMzo1MjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgc29tZSBzb2NrZXQgY3J1ZnQKCjIwMTAtMDUtMDUgMTY6MzM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IHBvcnQgdG8gdXNlIGdpbydzIG5ldHdvcmtpbmcgQVBJCgkgIFNvbWUgd2FydHMgc3RpbGwsIGJ1dCBpdCdzIGEgc3RhcnQuCgoyMDEyLTAxLTE3IDE2OjUwOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbmV0OiBBZGQgR0lPIHRvIHRoZSBnaS1zY2FubmVyIHBhY2thZ2VzCgoyMDEyLTAxLTE2IDEzOjM0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgbmV0YWRkcmVzc21ldGE6IFVzZSBHU29ja2V0QWRkcmVzcyBpbnN0ZWFkIG9mIG91ciBvd24gd3JhcHBlciB0eXBlCgoyMDEyLTAxLTE2IDE1OjU3OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2Ugd3JpdGFiaWxpdHkgY2hlY2sgaW50byBhIG1ldGhvZAoJICBVc2UgYSBtZXRob2QgdG8gY2hlY2sgZm9yIHdyaXRhYmlsaXR5IGluc3RlYWQgb2YgYSBtYWNybyBzbyB0aGF0IHdlIGNhbiBjaGFuZ2UKCSAgdGhlIGltcGxlbWVudGF0aW9uIG1vcmUgZWFzaWx5LgoKMjAxMi0wMS0xNiAxMjoyNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWVtb3J5IHRlc3QKCjIwMTItMDEtMTYgMTI6MjQ6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDEyLTAxLTExIDEwOjU5OjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgYXV0b21hZ2ljIF91bm1hcCBpbiBzb21lIG1vcmUgY2FzZXMKCjIwMTEtMTEtMTUgMTc6NDI6NTYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF1dG9tYXRpY2FsbHkgdW5tYXAgb24gY2xlYXJpbmcKCSAgV2hlbiBfY2xlYXIgZ2V0cyBjYWxsZWQgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAsIGJ1ZmZlcnMKCSAgd2lsbCBiZSB1bnJlZmZlZC4gSWYgdGhlIGFkYXB0ZXIgd2FzIG1hcHBlZCwgbWVtb3J5IGxlYWtzCgkgIG1heSBvY2N1ci4KCSAgV2hpbGUgY2FsbGluZyBfY2xlYXIgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAgZG9lcyBub3Qgc2VlbQoJICBsaWtlIHN1Y2ggYSBncmVhdCBpZGVhLCB0aGlzIGlzIHBvc3NpYmxlIGluIHRoZSBhdWRpbwoJICBlbmNvZGVyIGJhc2UgY2xhc3MsIGFzIF9jbGVhciBtYXkgYmUgY2FsbGVkIGluIF9maW5pc2hfZnJhbWUuCgkgIFNpbmNlIHRoZSBhdWRpbyBlbmNvZGVyIHJlbGllcyBvbiBmbHVzaGluZyB0byBrZWVwIHRyYWNrIG9mCgkgIHRpbWVzdGFtcHMsIGRlbGF5aW5nIGZsdXNoaW5nIHRpbGwgYWZ0ZXIgaGFuZGxlX2ZyYW1lIHNlZW1zCgkgIGRhbmdlcm91cy4KCSAgU28sIHdlIHVubWFwIG9uIGNsZWFyLCBhcyB0aGUgbmV4dCB1bm1hcCB3aWxsIGRvIG5vdGhpbmcuCgkgIFRoaXMgbWFrZXMgX2NsZWFyIHNhZmUgdG8gY2FsbCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwKCSAgd2hpbGUgYXZvaWRpbmcgbGVha2luZyB0aGUgbWFwcGVkIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDEzMwoKMjAxMi0wMS0xMyAxNDoyMDozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJldmVudCB1bmxpa2VseSBjYXBzIGxlYWsKCjIwMTItMDEtMTMgMTA6NDM6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHBsdWcgZmFjdG9yeSBsZWFrIG9uIGVycm9yCgoyMDEyLTAxLTEzIDAwOjIyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMKCjIwMTItMDEtMTIgMjA6NDY6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIEdTVF9UWVBFX0RBVEUsIG91ciBvd24gR0RhdGUgdHlwZQoJICBXaGljaCB3ZSBoYWQgdG8gYWRkIGJlY2F1c2UgR0xpYiBkaWRuJ3QgaGF2ZSBpdAoJICBiYWNrIGluIHRoZSBkYXkuIFBvcnQgZXZlcnl0aGluZyB0byBwbGFpbiBvbGQKCSAgR19UWVBFX0RBVEUsIHdoaWNoIGlzIGFsc28gYSBib3hlZCB0eXBlLiBJZGVhbGx5CgkgIHdlJ2QganVzdCB1c2UgR0RhdGVUaW1lIGZvciBldmVyeXRoaW5nLCBidXQgaXQKCSAgZG9lc24ndCBzdXBwb3J0IG5vdCBzZXR0aW5nIHNvbWUgb2YgdGhlIGZpZWxkcwoJICB1bmZvcnR1bnRlbHkgKHdoaWNoIHdvdWxkIGJlIHZlcnkgdXNlZnVsIGZvcgoJICB0YWcgaGFuZGxpbmcgaW4gZ2VuZXJhbCwgaWYgd2UgY291bGQgZXhwcmVzcwoJICAyMDEyLTAxIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjM1MQoKMjAxMi0wMS0xMiAxOTo1MzoxMSArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYXIgYWRhcHRlciBpbiByZXNldCBzbyBiYXNlcGFyc2UgaXMgcmV1c2FibGUKCSAgR3N0QmFzZVBhcnNlIHdhcyBub3QgY2xlYXJpbmcgaXRzIGFkYXB0ZXIgb24gcmVzZXQgY2F1c2luZwoJICBwcm9ibGVtcyB3aGVuIGEgcGlwZWxpbmUgd2VudCBmb3IgZXhhbXBsZSBmcm9tIFBMQVlJTkcgdG8gTlVMTAoJICBzdGF0ZSBhbmQgdGhlbiBiYWNrIHRvIFBMQVlJTkcgYWdhaW4uIFRoZSBkYXRhIGZyb20gdGhlIGxhc3QKCSAgc3RyZWFtIHdvdWxkIGJlIHVzZWQgaW4gdGhlIHBhcnNlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzQ0NAoKMjAxMi0wMS0xMiAxNTo1MDo1MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3RpbnNwZWN0OiBmaXggZmVhdHVyZXMgYW5kIGxpc3QgbGVha3MKCjIwMTItMDEtMTIgMTE6MDM6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMTEgMTI6MTk6MjAgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IGNsYXJpZnkgX2dldCBkb2NzIGFib3V0IHRoZSByZXR1cm5lZCByZWZlcmVuY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY4OQoKMjAxMi0wMS0xMCAxMzowMDowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAxLTA2IDE2OjM5OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTZW5kIGNhcHMgYWdhaW4gYWZ0ZXIgYWN0aXZhdGlvbgoJICBBdm9pZHMgZW5kaW5nIHVwIGluIGNhc2VzIHdoZXJlIHR5cGVmaW5kIGdldHMgYWN0aXZhdGVkIGluIHB1bGwtbW9kZQoJICBhbmQgY2FwcyBuZXZlciBnZXQgc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzMzNwoKMjAxMi0wMS0wOSAxNTo1OTowOSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBBZGQgbGF0ZXN0IHNwZWNmaWxlIGNoYW5nZXMKCjIwMTItMDEtMDkgMTU6NTg6NDUgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBBbHNvIGFkZCBoZWFkZXJmaWxlCgoyMDEyLTAxLTA5IDE1OjU3OjUxICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGRvdGZpbGUgQVBJIHRvIGJlIGV4cG9ydGVkIHNpbmNlIG1hY3JvcyBjYW4ndCBiZSBHSSBib3VuZAoKMjAxMi0wMS0wOSAxMzoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgbWVtb3J5IHRlc3QgYmluYXJ5CgoyMDEyLTAxLTA5IDAzOjE0OjQxIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGJ1aWxkIHdhcm5pbmdzCgoyMDEyLTAxLTA5IDEzOjEwOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEyLTAxLTA2IDE1OjAxOjI0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWxsb3cgTlVMTCBkZXN0IHdoZW4gc3VidHJhY3RpbmcgYml0bWFzawoJICBIYXBwZW5zIHdoZW4gY2hlY2tpbmcgZm9yIHN1YnNldHMgb2YgY2FwcwoKMjAxMi0wMS0wNiAxMzozMjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBlbnN1cmUgd3JpdGFibGUgbWVtb3J5IGluIG1lbXNldAoKMjAxMi0wMS0wNiAxMzoxMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjaGVjayBzZW1hbnRpY3Mgb2YgbmVzdGVkIG1hcHBpbmdzCgkgIENvdW50IGhvdyBtYW55IG1hcHBpbmdzIGFyZSBjdXJyZW50bHkgYWN0aXZlIGFuZCBhbHNvIHdpdGggd2hhdCBhY2Nlc3MgcGF0dGVybi4KCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jIHdpdGggcmVzdHJpY3Rpb25zIG9uIHRoZSBhY2Nlc3MgcGF0dGVybnMgZm9yIG5lc3RlZAoJICBtYXBwaW5ncy4KCSAgQ2hlY2sgaWYgbmVzdGVkIG1hcHBpbmdzIG9iZXkgdGhlIGFjY2VzcyBtb2RlIHJlc3RyaWN0aW9ucyBvZiB0aGUgZGVzaWduIGRvYy4KCSAgQWRkIHZhcmlvdXMgdW5pdCB0ZXN0cyB0byBjaGVjayB0aGUgZGVzaXJlZCBiZWhhdmlvdXIuCgoyMDEyLTAxLTA2IDEzOjA2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1bm1hcCB3aXRoIHRoZSByaWdodCBkYXRhIHBvaW50ZXIKCSAgVXNlIHRoZSBvcmlnaW5hbCBkYXRhIHBvaW50ZXIgdG8gdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkuCgoyMDEyLTAxLTA2IDEwOjM5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBkb2NzOiBpbXByb3ZlIG1lbW9yeSBkb2NzCgoyMDEyLTAxLTA2IDA3OjAyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaGFuZGxlIC0xIHNpemUgaW4gdW5tYXAKCSAgaGFuZGxlIC0xIGluIHVubWFwIGNvcnJlY3RseSB3aGVuIHRoZSBvZmZzZXQgaXMgbW9kaWZpZWQuCgoyMDEyLTAxLTA2IDA2OjQzOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaW1wcm92ZSBzZW1hbnRpY3Mgb2YgdW5tYXAKCSAgTWFrZSBhbiB1bm1hcCBjYWxsIHdpdGggYSBkaWZmZXJlbnQgZGF0YSBwb2ludGVyIHRoYW4gdGhlIG1hcCBjYWxsIHVwZGF0ZSB0aGUKCSAgb2Zmc2V0IGZpZWxkLiBUaGlzIGFsbG93cyBmb3IgYm90aCBvZmZzZXQgYW5kIHNpemUgYWRqdXN0ZW1lbnRzIGluIHRoZSB1bm1hcAoJICBjYWxsLgoKMjAxMS0xMS0yOSAxNDoyMjo0NCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgY29tcGVuc2F0ZSBmb3IgcmVuZGVyLWRlbGF5IHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTgKCjIwMTItMDEtMDUgMTg6MTU6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgbW9yZSBjaGVja3MKCSAgQWRkIGNoZWNrIGZvciBtYXBwaW5nIGFuZCByZXNpemluZwoKMjAxMi0wMS0wNSAxNzoyODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50CgkgIFRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQgd2hlbSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgdGhlIGJ1ZmZlci4KCjIwMTItMDEtMDUgMTc6MDI6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgcmVzaXplIGFuZCBjdXJyZW50IG1hcHBpbmdzCgoyMDEyLTAxLTA1IDE2OjQxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2xhcmlmeSBuZXN0ZWQgbWFwcGluZ3MsIGFkZCB1bml0IHRlc3QKCjIwMTItMDEtMDUgMTI6MzA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMDUgMTM6MjI6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgbW9yZSBtZW1vcnkgdW5pdCB0ZXN0cwoJICBDaGVjayBmb3IgdW5tYXAgd2l0aCBpbnZhbGlkIHNpemUKCjIwMTItMDEtMDUgMTM6MTE6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBHc3RNZW1vcnkKCSAgQWRkIGEgR3N0TWVtb3J5IHVuaXQgdGVzdAoJICBBZGQgc29tZSBtb3JlIGFzc2VydHMgaW4gR3N0TWVtb3J5IHRvIGNhdGNoIGludmFsaWQgY2FzZXMuCgoyMDEyLTAxLTA1IDEzOjA5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgbWVtb3J5IHJlZmNvdW50CgoyMDEyLTAxLTA1IDEyOjM5OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTEtMTItMTYgMTM6MTE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdHMgZm9yIHRoZSBiaXRtYXNrIHR5cGUKCjIwMTEtMTItMTYgMTI6Mzk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCAiYml0bWFzayIgYXMgYWxpYXMgZm9yIChHc3RCaXRtYXNrKSB3aGVuIChkZS0pc2VyaWFsaXppbmcgdmFsdWVzCgoyMDExLTEyLTE2IDEyOjMyOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IEFkZCA2NC1iaXQgYml0bWFzayB0eXBlCgoyMDEyLTAxLTAxIDE2OjMyOjI3ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGRvbid0IG91dHB1dCBjb25maWd1cmUgb3B0aW9ucyB2aWEgYXV0b2dlbiBpZiAkTk9DT05GSUdVUkUgaXMgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTYKCjIwMTItMDEtMDUgMDA6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGdzdDogaW5jbHVkZSBsb2NhbGUuaCBiZWZvcmUgYW55IG90aGVyIGkxOG4gaGVhZGVycwoJICBUaGlzIGlzIGFsc28gaG93IHdlIGRvIGl0IGluIC1iYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjkwCgoyMDEyLTAxLTAxIDE2OjQ2OjA0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZHMgYW5kIHVzZXMgU3VuUHJvIHZpc2liaWxpdHkgYXR0cmlidXRlIGZvciBwcm9wZXIgZnVuY3Rpb24gZXhwb3J0cwoJICBEZWZpbmUgR1NUX0VYUE9SVCBmb3IgU3VuUHJvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg5CgoyMDEyLTAxLTAxIDE2OjQ3OjE0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgcGx1Z2luczogZXhwbGljaXRseSBjYXN0IGluaXRpYWxpemF0aW9uIHZhbHVlcyB0byB0aGUgY29ycmVjdCB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODgKCjIwMTItMDEtMDEgMjA6MTc6NDEgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbmNsdWRlIGNvcnJlY3QgcG9sbC5oIGJhc2VkIG9uIGF1dG9jb25mIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAyMzo0NjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogY2hlY2sgZm9yIHN5cy9wb2xsLmgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAxOTo1MDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE2MmYzZDQgdG8gMDgwNzE4NwoKMjAxMi0wMS0wNCAxMDowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBvbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncwoJICBPbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncyBpbnN0ZWFkIG9mIDEwIHNvIHRoYXQgbW9yZSBtZWRpYSBzcGVjaWZpYyBmbGFncwoJICBhcmUgYXZhaWxhYmxlLgoKMjAxMi0wMS0wMyAxNToyNjo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMi0wMS0wMyAxNToyNTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTItMDEtMDMgMTU6MDU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogcmVzdG9yZSBVTkVYUEVDVEVECgoyMDEyLTAxLTAzIDE1OjAzOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIGRvY3M6IGZpeCBzb21lIGRvY3MKCjIwMTItMDEtMDMgMTQ6NDU6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAxLTAzIDE0OjQzOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYXZvaWQgZXhwb3NpbmcgdGhlIGxpc3RzIGluIHRhZ3MKCjIwMTItMDEtMDMgMTM6NDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgbWlzc2luZyBmdW5jdGlvbnMKCSAgQWRkIG1pc3NpbmcgYW5kIGVzc2VudGlhbCBmdW5jdGlvbnMgbm93IHRoYXQgd2UgY2FuJ3QgZGlyZWN0bHkgdXNlIEdzdFN0cnVjdHVyZQoJICBtZXRob2RzIG9uIHRoZSB0YWdsaXN0IGFueW1vcmUuCgoyMDEyLTAxLTAzIDEwOjQyOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBhZGQgbWFjcm8gdG8gY2hlY2sgaWYgYSBndmFsdWUgaG9sZHMgYSBzYW1wbGUKCjIwMTItMDEtMDIgMTU6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBkb2NzOiBmaXggYnVpbGQgb2YgZG9jcyBleGFtcGxlcwoJICBVcGRhdGUgZm9yIHJlZ2lzdHJ5IG1ldGhvZCByZW5hbWUKCjIwMTItMDEtMDIgMTU6Mzk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1cm4gYXNzZXJ0IGludG8gYSByZWFsIGVycm9yCgkgIFBvc3QgYSByZWFsIGVycm9yIGluc3RlYWQgb2YganVzdCBhc3NlcnRpbmcuCgoyMDEyLTAxLTAyIDE1OjM4OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBsYXRlbmN5IGV2ZW50CgoyMDEyLTAxLTAyIDAyOjMyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGdldCByaWQgb2YgZ3N0X2RlZmF1bHRfcmVnaXN0cnlfKigpIGNvbnZlbmllbmNlIG1hY3JvcwoJICBUaGV5J3JlIG5vdCByZWFsbHkgd29ydGggaXQ6IGhhcmRseSBzYXZlIGFueSB0eXBpbmcsIGFuZCBhcmVuJ3QKCSAgZ3JlYXQgZm9yIGJpbmRpbmdzIG9yIGdvYmplY3QtaW50cm9zcGVjdGlvbi4KCjIwMTItMDEtMDIgMDI6MjI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQoKSB0byBnc3RfcmVnaXN0cnlfZ2V0KCkKCSAgSXQncyBub3QgcmVhbGx5IGEgZGVmYXVsdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSB0aGF0IGNhbid0IGJlIGNoYW5nZWQuCgkgIFNob3VsZCB3ZSByZXR1cm4gYSByZWYgbGlrZSBlLmcuIGdfdm9sdW1lX21vbml0b3JfZ2V0KCkgZG9lcz8KCjIwMTItMDEtMDIgMDI6MjE6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHRhZ2xpc3QuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCjIwMTItMDEtMDIgMDA6MTc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoJICBBUEk6IEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoKMjAxMi0wMS0wMSAyMDo1OToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGRlc2lnbiBkb2MKCjIwMTItMDEtMDEgMjA6NTc6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVuYW1lIHNvbWUgdGVzdHMKCjIwMTItMDEtMDEgMjA6NTU6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHN1cHBvcnQgY29udHJvbCBtYXBwaW5nIGZvciBlbnVtcwoJICBBZGQgYSBtYXBwaW5nIGZvciBlbnVtIHR5cGVzIChzdXBwb3J0aW5nIHNwYXJzZSBlbnVtcykuIEFkZCBhIHRlc3QuCgoyMDEyLTAxLTAxIDIwOjQzOjUxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBub25zZW5zZSBwYXJ0cyBmcm9tIHRlc3Qgb2JqZWN0IHByb3BlcnR5IGRlc2NyaXB0aW9ucwoKMjAxMi0wMS0wMSAxODo1NDoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGZpeCBjdWJpYyBpbnRlcnBvbGF0aW9uIGZvciBhcnJheXMKCjIwMTItMDEtMDEgMTg6NTA6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBhdWRpby1leGFtcGxlOiBhbHNvIHBsb3QgcmV2ZXJzZS1zYXcKCjIwMTItMDEtMDEgMTg6NDM6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogY2xlYW51cHMgYW5kIGZpeCB0cmlhbmdsZSBjYWxjdWxhdGlvbnMKCjIwMTItMDEtMDEgMTg6MzQ6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgYXVkaW8tZXhhbXBsZTogZml4IHRoZSBleGFtcGxlCgkgIFdlIG5lZWQgdG8gc2NhbGUgdGhlIGZyZXF1ZW5jeSB2YWx1ZXMuCgoyMDEyLTAxLTAxIDE1OjE2OjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IG1ha2UgY2hhaW5hYmxlCgkgIE5vdyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGNvbnRyb2xzb3VyY2UgYXJlIGluIHR1cm4gY29udHJvbGFibGUuIEFkZCBhbiBleGFtcGxlCgkgIHRvIHNob3cgdGhlIHVzYWdlLgoKMjAxMi0wMS0wMSAxNTowMToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGxvZ2dpbmcgYW5kIGZpeCBhcnJheSBmdW5jdGlvbnMKCjIwMTItMDEtMDEgMTQ6NTU6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgdGVzdHMKCjIwMTItMDEtMDEgMTQ6Mjg6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZGVidWcgbG9nZ2luZwoKMjAxMS0xMi0zMSAxNzozNzoyMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY29udmVydCBNYWtlZmlsZSBzcGFjZXMgdG8gdGFicwoKMjAxMS0xMi0zMSAxNTo1MjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IGFsc28gdGVzdCBhcnJheSBmdW5jdGlvbnMKCSAgSW1wcm92ZSB0aGUgZXhhbXBsZSB0byBhbHNvIGNvbGxlY3QgdmFsdWUgYXJyYXlzIGFuZCBwbG90IHRoZW0uCgoyMDExLTEyLTMxIDE1OjI2OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgb2Jzb2xldGUgRklYTUUgY29tbWVudAoKMjAxMS0xMi0zMSAwOTo1Njo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggdGVzdHMKCSAgU2V0IGEgZGVmaW5lZCB2YWx1ZSB0byBjaGVjayBmb3Igbm8tY2hhbmdlLgoKMjAxMS0xMi0zMCAxODozNTo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2wtc291cmNlczogdHVybiBpbnRvIEdzdE9iamVjdHMKCSAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBjaGFpbmluZyB0aGVtLgoKMjAxMS0xMi0zMCAxOTozNzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgcGFkZGluZyBhbmQgc2lnbmFsIHZmdW5jcwoJICBBbmQgZml4IHNpZ25hbCBHVHlwZXMgYW5kIG1hcnNoYWxsZXIuIE5vIG9uZSB3aWxsIGV2ZXIKCSAgbmVlZCB0byBzdWJjbGFzcyBvdXIgcmVnaXN0cnksIHNvIGp1c3QgcmVtb3ZlIHRoZSBwYWRkaW5nCgkgIGFuZCB0aGUgc2lnbmFsIHZmdW5jcy4KCjIwMTEtMTItMzAgMTU6Mzk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkaXNhYmxlIEdzdEluZGV4IHVuaXQgdGVzdAoKMjAxMS0xMi0zMCAxNTozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBpbmRleDogcmVuYW1lIEdzdEFzc29jRmxhZ3MgdG8gR3N0SW5kZXhBc3NvY2lhdGlvbkZsYWdzCgkgIEp1c3QgaW4gY2FzZSB3ZSByZXN1cnJlY3QgdGhpcyBsYXRlci4KCjIwMTEtMTItMzAgMTU6MjQ6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSAgYmFzZTogZGlzYWJsZSB1bnVzZWQgaW5kZXggQVBJIGFuZCBtYWtlIGZ1bmN0aW9ucyBzdGF0aWMKCSAgSXQncyBzaW1wbHkgcHJpdmF0ZSBoZWxwZXIgQVBJIGZvciBub3csIHVudGlsIHNvbWVvbmUKCSAgZml4ZXMgdXAgR3N0QmFzZVBhcnNlIG5vdCB0byBuZWVkIGl0IGFueSBtb3JlLgoKMjAxMS0xMi0zMCAxNToyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHJlbW92ZSBpbmRleCBBUEkgZnJvbSAuZGVmIGZpbGUKCjIwMTEtMTItMzAgMTU6MDY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIExBUkdFIHBhZGRpbmcgdG8gY2xhc3Mgc3RydWN0dXJlCgkgIEZvdXIgc2xvdHMgZm9yIGV4cGFuc2lvbiBpcyBub3QgYSBsb3QuCgoyMDExLTEyLTMwIDE1OjAzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgaW5kZXg6IHJlbW92ZSBHc3RJbmRleCBhbmQgR3N0SW5kZXhGYWN0b3J5IGZvciBub3cKCSAgVGhlcmUgYXJlIG1hbnkgZ29vZCB1c2UgY2FzZXMgZm9yIEdzdEluZGV4IGFuZCB3ZSB3YW50CgkgIHRvIGFkZCBpdCBiYWNrIGFnYWluIGluIHNvbWUgZm9ybSwgYnV0IHBvc3NpYmx5IG5vdCB3aXRoCgkgIHRoZSBjdXJyZW50IEFQSSwgd2hpY2ggaXMgdmVyeSBwb3dlcmZ1bCAobWF5YmUgdG9vIHBvd2VyZnVsKSwKCSAgYnV0IGFsc28gYSBiaXQgY29uZnVzaW5nLiBBdCB0aGUgdmVyeSBsZWFzdCB3ZSdkIG5lZWQgdG8KCSAgbWFrZSB0aGUgQVBJIGJpbmRpbmdzLWZyaWVuZGx5LgoKMjAxMS0xMi0zMCAxNzo1Nzo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB1bnJlZiB0aGUgdHdvIGNvdG5yb2xsZXIgdHlwZXMgaW4gX2RlaW5pdCgpCgoyMDExLTEyLTMwIDE3OjUxOjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgdGVzdHMgdG8gY29yZSBjb250cm9sbGVyIHN1aXRlCgkgIEV4dGVuZCB0aGUgZHVtbXkgY29udHJvbC1zb3VyY2UgdG8gYWxsb3cgdGVzdGluZyB0aGUgc3luYyBjb2RlIHBhdGguIEFkZCB0ZXN0CgkgIGZvciAxOjEgYW5kIDI6MSB2YWx1ZSA8LT4gY29udHJvbC1zb3VyY2Ugc3luYy4KCjIwMTEtMTItMzAgMTM6NTI6MDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+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+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBzb3VyY2UgYW5kIHNpbmsgcGFkcyBwcm94eSBjYXBzCgoyMDExLTExLTI4IDIzOjIwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGNvbW1pdCAnNzUyMWI1OTdmNGRjNDlkOGQxNjhmMzY4ZjBlN2ViYWY5OGE3MjE1NicgaW50byAwLjExCgoyMDExLTExLTI4IDIxOjE1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAxODoyMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIHVwZGF0ZSBmb3IgaW5kZXhhYmxlIGNoYW5nZQoKMjAxMS0xMS0yOCAxODoxMjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgaW5kZXhhYmxlIGZsYWcKCSAgUmVtb3ZlIHRoZSBpc19pbmRleGFibGUgbWV0aG9kIGNoZWNrIGFuZCB1c2UgYW4gZWxlbWVudCBmbGFnIHRvIGNoZWNrIGlmIHRoZQoJICBlbGVtZW50IGNhbiB1c2UgYW4gaW5kZXguCgoyMDExLTExLTI4IDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMS0yOCAxNzoyMjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZWxlbWVudDogdXNlIGZsYWdzIGZvciByZXF1aXJlL3Byb3ZpZGUgY2xvY2sKCSAgUmVtb3ZlIHRoZSBfcmVxdWlyZS9fcHJvdmlkZV9jbG9jaygpIG1ldGhvZHMgYW5kIHVzZSBlbGVtZW50IGZsYWdzIHRvIG1hcmsKCSAgZWxlbWVudHMgaW5zdGVhZCBvZiBsb29raW5nIGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdm1ldGhvZC4KCjIwMTEtMTEtMjggMTY6NTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZWxlbWVudDogY2xlYW4gdXAgZWxlbWVudCBmbGFncwoJICBDbGVhbiB1cCB0aGUgZWxlbWVudCBmbGFncwoKMjAxMS0xMS0yOCAxNTozNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHN0aWNreSBjdXN0b20gcXVhcmsKCjIwMTEtMTEtMjggMTQ6MjQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBfQ0FQU19GTEFHU18gLT4gQ0FQU19GTEFHXwoKMjAxMS0xMS0yOCAxMjozMDoxNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGVfZnJvbV9zdGF0aWMKCSAgVGhpcyBmdW5jdGlvbiBoZWxwcyBlbnN1cmUgdGhlIHBhZCB0ZW1wbGF0ZSBpcyB1bnJlZmZlZAoJICB3aXRob3V0IGhhdmluZyB0byBjb21wbGljYXRlIHRoZSBjYWxsaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI2NjQKCjIwMTEtMTEtMjggMTM6MDg6MjcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIHZhcmlvdXM6IGZpeCBwYWQgdGVtcGxhdGUgcmVmIGxlYWtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI2NjQKCjIwMTEtMTEtMjggMTM6NTQ6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGZ1bmN0aW9ucyB0byBhZGQvcmVtb3ZlIGNvbnRyb2xsZWQgcHJvcGVydGllcwoJICBNYWtlIHRoYXQgaW1wbGl6aXQgd2l0aCBhdHRhY2hpbmcvZGV0YWNoaW5nIGNvbnRyb2xzb3VyY2VzLiBUaGlzIGlzIGEgbG90IGVhc2llcgoJICBhbmQgaGFzIGxlc3MgaW52YWxpZCBzdGF0ZSAoY29udHJvbGxlZCBwcm9wZXJ0eSB3aXRob3V0IGNvbnRyb2wgc291cmNlKS4KCjIwMTEtMTEtMTMgMjM6NTU6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIFVwZGF0ZSBmb3IgR3N0VVJJSGFuZGxlciBnZXRfcHJvdG9jb2xzKCkgY2hhbmdlcwoKMjAxMS0xMS0xMyAyMzoyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBsdWdpbnMsIHRvb2xzOiB1cGRhdGUgZm9yIGdldF9wcm90b2NvbHMoKSByZXR1cm4gdmFsdWUgY2hhbmdlCgoyMDExLTExLTEzIDIzOjE0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBjbGVhbiB1cCBoZWFkZXIgZmlsZXMKCSAgVGFicyB0byBzcGFjZXMuCgoyMDExLTExLTEzIDIzOjA3OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBnZXRfcHJvdG9jb2xzKCkKCjIwMTEtMTEtMTMgMjA6NTY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBfZ2V0X3VyaV90eXBlKCkKCSAgUmV0dXJuIGEgR3N0VVJJVHlwZSBhbmQgbm90IGEgcGxhaW4gZ3VpbnQuCgoyMDExLTExLTEzIDE3OjQ1OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IHVwZGF0ZSB1bml0IHRlc3RzIGZvciBVUkkgaGFuZGxlciBBUEkgY2hhbmdlcwoKMjAxMS0xMS0xMyAxNzo0NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGVsZW1lbnRzOiB1cGRhdGUgZmQgKyBmaWxlIHNvdXJjZXMgYW5kIHNpbmtzIGZvciBHc3RVcmlIYW5kbGVyIGNoYW5nZXMKCjIwMTEtMTEtMTMgMTc6NDQ6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVyaWhhbmRsZXI6IHBhc3MgR0Vycm9yIGFyZ3VtZW50IHRvIGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKCkKCSAgQWxzbyBsZXQgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkgY2hlY2sgYWxyZWFkeSBpZiB0aGUgcHJvdG9jb2wKCSAgaXMgc3VwcG9ydGVkLCBzbyB0aGF0IG5vdCBldmVyeSB1cmkgaGFuZGxlciBoYXMgdG8gZG8gdGhhdAoJICBpdHNlbGYuCgoyMDExLTExLTEzIDE1OjUxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBtYWtlIF9nZXRfdXJpKCkgcmV0dXJuIGEgY29weQoJICBGb3IgdGhyZWFkLXNhZmV0eS4KCjIwMTEtMTEtMTMgMTU6Mzc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICB1cmloYW5kbGVyOiByZW1vdmUgIm5ldy11cmkiIHNpZ25hbAoJICBObyBvbmUgYnV0IGZpbGVzcmMgdXNlZCB0aGF0IEFQSS4gU2hvdWxkIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5CgkgIHJlcXVpcmluZyBhbiAidXJpIiBwcm9wZXJ0eSBpbnN0ZWFkLCBhbmQgdGhlbiBvYmplY3RzIGNhbiBkbyBhCgkgIG5vdGlmeSBvbiB0aGF0LiBBbHNvIHJlbW92ZWQgaW50ZXJmYWNlIHN0cnVjdHVyZSBwYWRkaW5nLCBpdCdzCgkgIG5vdCBuZWVkZWQuCgoyMDExLTExLTEzIDEzOjIzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMKCjIwMTEtMTEtMTIgMTY6NDI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IGN1cnJlbnQgdmFsdWUgYXMgZGVmYXVsdCB2YWx1ZQoJICBJbnN0ZWFkIG9mIHByaW50aW5nIHNlcGFyYXRlICdDdXJyZW50JyBhbmQgJ0RlZmF1bHQnIHZhbHVlcwoJICAodGhlIGZvcm1lciBvYnRhaW5lZCB2aWEgZ19vYmplY3RfZ2V0KCkgYW5kIHRoZSBsYXR0ZXIgZnJvbQoJICB0aGUgcHJvcGVydHkgR1BhcmFtU3BlYyksIHNpbXBseSBwcmludCB0aGUgQ3VycmVudCB2YWx1ZSBhcwoJICB0aGUgRGVmYXVsdCB2YWx1ZS4gVGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gZm9yIGFsbW9zdAoJICBhbGwgZWxlbWVudHMgYW5kIGF2b2lkcyBjb25mdXNpb24gaWYgYSBzdWJjbGFzcyBvZiBhIGJhc2UKCSAgY2xhc3MgY2hvb3NlcyBhIGRpZmZlcmVudCBkZWZhdWx0IHRoYW4gdGhlIGJhc2UgY2xhc3MuCgoyMDExLTExLTEyIDE0OjU1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGdzdCwgY29udHJvbGxlcjogcmVwbGFjZSBnX2xpc3RfcHJlcGVuZCArIHJldmVyc2Ugd2l0aCBHUXVldWUKCjIwMTEtMTEtMTIgMTQ6MDQ6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBkb2NzOiBmaXggdHlwbyBpbiBidWZmZXIgZG9jcwoKMjAxMS0xMS0xMiAwMTo1NDo0NCArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggY2FwcyB1bnJlZiBpbiB0cmFuc2Zvcm1fY2FwcyBmaWx0ZXIgc3Vic2V0IGNoZWNrCgkgIEkgZGlkIG5vdCB0ZXN0IHRoaXMsIGJ1dCB0aGUgY29kZSBsb29rZWQgdmVyeSB3cm9uZy4KCjIwMTEtMTEtMTIgMDE6NTE6MTEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGRvIG5vdCByZXR1cm4gYSByZWYgZnJvbSBwYXJzZV9hY2NlcHRfY2FwcwoJICBNYWtlcyB0aGlzIGV4YWN0bHkgbGlrZSBnc3RfZXZlbnRfcGFyc2VfY2Fwcy4gVGhpcyBpcyB3aGF0IGN1cnJlbnQgY29kZQoJICBleHBlY3RzLCBzbyBpdCBmaXhlcyBzb21lIGxlYWtzLgoKMjAxMS0xMS0xMSAxNzoxNzo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgLmg6IGZpeCBoZWFkZXIgZmlsZXMKCSAgRW5zdXJlIGNvcnJlY3QgaW5kZW50YXRpb24gYW5kIHJldGFiCgkgIE1ha2Ugc3VyZSBhbGwgc3RydWN0dXJlIGhhdmUgcGFkZGluZwoKMjAxMS0xMS0xMSAxNjo1Mjo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgLmg6IGZpeCBoZWFkZXIgZmlsZXMKCSAgRW5zdXJlIGNvcnJlY3QgaW5kZW50YXRpb24gYW5kIDpyZXRhYi4KCSAgTWFrZSBzdXJlIGFsbCBzdHJ1Y3R1cmVzIGhhdmUgcGFkZGluZwoJICBGaXggdXAgc29tZSBvbGQgQUJJIGFkZGl0aW9ucy4KCjIwMTEtMTEtMTEgMTc6MDQ6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCBpbnZhbGlkIHhtbAoKMjAxMS0xMS0xMSAxMDowMDozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCA8IC0xIHNpemVzCgoyMDExLTExLTExIDAxOjQ3OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgYnVmZmVyLCBtZW1vcnk6IG1ha2Ugc2l6ZSBhcmd1bWVudHMgd2hlcmUgLTEgaXMgYWxsb3dlZCBzaWduZWQKCjIwMTEtMTEtMTEgMDE6NDQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBsYXRlc3QgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMTAgMTk6Mzc6MjggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogbWVyZ2UgY29udHJvbGxlciBpbnRvIGdzdG9iamVjdAoJICBUaGlzIG1ha2UgdGhlIGNvbnRyb2xsZXIgZXZlbiBtb3JlIGxpZ2h0d2VpZ2h0IChubyBleHRyYSBvYmplY3QsIG5vIGV4dHJhIGxvY2ssCgkgIGxlc3MgaW5kaXJlY3Rpb25zKS4gRm9yIG9iamVjdCB0aGF0IGRvbid0IHVzZSB0aGUgY29udHJvbGxlciB0aGUgb25seSAnb3ZlcmhlYWQnCgkgIGlzIGEgMyB1bnVzZWQgZmllbGRzIGluIHRoZSBnc3Rfb2JqZWN0IHN0cnVjdHVyZS4KCjIwMTEtMTEtMTAgMTg6NTg6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIG5ldG1ldGE6IGF2b2lkIHVzaW5nIGdbdV1sb25nIGluIGhlYWRlcnMKCjIwMTEtMTEtMTAgMTg6MTg6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgZmx1c2ggZnJvbSBfdW5tYXAKCjIwMTEtMTEtMTAgMTY6MDI6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wbGVtZW50IGEgZGVmYXVsdCBnZXRfY2FwcyBmdW5jdGlvbgoJICBEb24ndCByZWx5IG9uIHRoZSByZXR1cm4gdmFsdWUgb2YgYSB2bWV0aG9kIHRvIHRyaWdnZXIgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gYnV0IG1ha2UgYSByZWFsIGRlZmF1bCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWV0aG9kIHRoYXQgdGhlCgkgIHN1YmNsYXNzIGNhbiBjaGFpbiB1cCB0by4KCjIwMTEtMTEtMTAgMTQ6MTM6NTQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IHJlbW92ZSBpbmNvcnJlY3QgYXNzZXJ0aW9uCgkgIE9mZnNldCBhbmQgc2l6ZXMgaGF2ZSBubyBiZWFyaW5nIG9uIGVhY2ggb3RoZXIgaGVyZS4KCjIwMTEtMTEtMTAgMTM6NTk6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZXMKCjIwMTEtMTEtMTAgMTM6NTM6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGdzdDogTW9yZSBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDExLTExLTEwIDEzOjUxOjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBnc3RtZW1vcnk6IFJlZ2lzdGVyIGEgR0JveGVkIEdUeXBlCgkgIEFsbG93cyB1c2luZyBpdCBmcm9tIGctaQoKMjAxMS0xMS0xMCAxMzo1MDoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEFkZCAtLXdhcm4tYWxsIHRvIGludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICAuLi4gYW5kIGxldCdzIGdldCBmaXhpbmcgYWxsIHRob3NlIGRvY3MgIQoKMjAxMS0xMS0xMCAxMzozODo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggdm1ldGhvZHMKCSAgTWFrZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRyYW5zZm9ybV9jYXBzIHZtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzCgkgIGNhbiBjYWxsIGludG8gaXQuCgkgIE1ha2UgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRyYW5zZm9ybV9zaXplLgoJICBBdm9pZCBkb2luZyBzb21ldGhpbmcgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZS4KCjIwMTEtMTEtMTAgMTM6Mzc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHRlc3RzOiBvbmx5IG92ZXJyaWRlIHdoZW4gIT0gTlVMTAoJICBPbmx5IG92ZXJyaWRlIHRoZSBtZXRob2RzIGluIHRoZSB1bml0IHRlc3RzIHdoZW4gIT0gTlVMTCBvdGhlcndpc2Ugd2UgbWlnaHQKCSAgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDExLTExLTEwIDEzOjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBwdXNoc3JjOiBtYWtlIGFsbG9jIG1ldGhvZCBhIHZtZXRob2QKCjIwMTEtMTEtMTAgMTI6MzM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW9yZGVyIHZtZXRob2QgYWNjb3JkaW5nIHRvIC5oIGZpbGUKCjIwMTEtMTEtMTAgMTI6MzM6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGNvbW1lbnRzCgoyMDExLTExLTEwIDEyOjMzOjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGRvIHRoaW5ncyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lCgoyMDExLTExLTEwIDEyOjA5OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBhZGQgYSBkZWZhdWx0IHNldF9jbG9jayBpbXBsZW1lbnRhdGlvbgoJICBBZGQgYSBkZWZhdWx0IHNldF9jbG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgYXZvaWQgZG9pbmcgd29yayBpbiB0aGUgdm1ldGhvZAoJICB0cmFtcG9saW5lLiBUaGlzIHJlcXVpcmVzIHN1YmNsYXNzZXMgdG8gY2hhaW4gdXAuCgoyMDExLTExLTEwIDEyOjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgZG8gYW55dGhpbmcgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZQoJICBBdm9pZCBkb2luZyBzdHVmZiBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lLCBqdXN0IGxldCB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWV0aG9kIHRha2UgY2FyZSBvZiB0aGluZ3MuCgoyMDExLTExLTEwIDEyOjA4OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHNvbWUgZG9jcwoKMjAxMS0xMS0xMCAxMTo0MjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogdXNlIGdwb2ludGVyIGZvciByZXR1cm4gdHlwZXMKCjIwMTEtMTEtMTAgMTE6MTI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgZG9jCgoyMDExLTExLTEwIDEwOjU4OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiByZW1vdmUgR3N0UGFkRml4YXRlQ2Fwc0Z1bmN0aW9uCgkgIFRoZSBmaXhhdGUgY2FwcyBmdW5jdGlvbiB3YXMgbm90IHVzZWQgZXh0ZXJuYWxseSBhbmQgd2UgaGF2ZSB2bWV0aG9kcyBpbiB0aGUKCSAgYmFzZSBjbGFzc2VzIHdoZXJlIGl0IGlzIG5lZWRlZC4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgc2ltcGxpZnkgc29tZSBmaXhhdGUgZnVuY3Rpb25zIGluIHRoZSBiYXNlIGNsYXNzZXMuIEFsc28gcGFzcyB0aGUgdW50cnVuY2F0ZWQKCSAgY2FwcyB0byB0aGUgdm1ldGhvZC4KCjIwMTEtMTEtMDkgMTc6NDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3Qgc3RvcmUgZXZlbnRzIG9uIGZsdXNoaW5nIHBhZHMKCSAgY2hlY2sgdGhlIGZsdXNoaW5nIHN0YXRlIG9mIHRoZSBwYWQgYmVmb3JlIHN0b3JpbmcgdGhlIGV2ZW50LgoKMjAxMS0xMS0wOSAxNzozNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiBtYWtlIGFuIEFDQ0VQVF9DQVBTIHF1ZXJ5CgkgIFJlcGxhY2UgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gd2l0aCBhIHF1ZXJ5LgoKMjAxMS0xMS0wOSAxNzoyNTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcGFkOiByZWZ1c2UgZXZlbnRzIGluIGZsdXNoaW5nCgkgIHdoZW4gd2UgYXJlIGZsdXNoaW5nLCBkb24ndCBzdG9yZSB0aGUgZXZlbnQgb24gdGhlIHBhZCBidXQgc2ltcGx5IHJldHVybiBGQUxTRS4KCSAgRG9uJ3QgZGVhY3RpdmF0ZSB0aGUgc3JjcGFkLCB3ZSBuZWVkIGl0IHRvIGJlIGFjdGl2ZSBpbiBvcmRlciB0byBwdXNoIHRoZQoJICBjYXBzLiBEb3duc3RyZWFtIGNhbiBjaGFuZ2UgdGhlIHNjaGVkdWxpbmcgbW9kZSBvZiBhbiBhY3RpdmUgcGFkLgoKMjAxMS0xMS0wOSAxNzoxOToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBtb3JlIHF1ZXJ5X3R5cGVzCgoyMDExLTExLTA5IDExOjA1OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogQW5kcm9pZC5tazoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgQW5kcm9pZDogYnVpbGQgYXVkaW8gY29udHJvbGxlciBleGFtcGxlCgkgIEFkZCBidWlsZHN5c3RlbSBob29rcyBmb3IgYnVpbGRpbmcgdGhlIGF1ZGlvY29udHJvbGxlciBleGFtcGxlCgkgIHdpdGggdGhlIE5ESy4KCSAgU2lnbmVkLW9mZi1ieTogUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9AY29sbGFib3JhLmNvbT4KCjIwMTEtMTEtMDkgMTI6MjE6MTcgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGFkZCB0ZXN0cyBmb3Igc3RpY2t5IGNhcHMgaGFuZGxpbmcKCSAgdGVzdF9zdGlja3lfY2Fwc19mbHVzaGluZyBpcyBjdXJyZW50bHkgZmFpbGluZy4KCjIwMTEtMTEtMDkgMTI6MTI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIHVwZGF0ZSBjb21tb24KCjIwMTEtMTEtMDkgMTI6MDM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTA5IDEyOjAyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTExLTA5IDExOjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHJlbW92ZSBxdWVyeSB0eXBlcwoJICBJdCB3YXMgbm90IHJlYWxseSB1c2VmdWwKCjIwMTEtMTEtMDggMTg6MDk6MjggKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBjb25zaWRlciBsaXN0cyBhbmQgcmFuZ2VzIGVxdWFsIGlmIHRoZXkgaG9sZCB0aGUgc2FtZSBzZXQKCSAgVGhpcyBmaXhlcyBjYXBzIG9wZXJhdGlvbnMgd2hlbiBkaWZmZXJlbnQgZWxlbWVudHMgYWR2ZXJ0aXNlIHNvbWUKCSAgb2YgdGhlaXIgY2FwcycgcHJvcGVydGllcyBkaWZmZXJlbnRseSAoZWcsIGZvciBhdWRpbyBjaGFubmVscywgZWl0aGVyCgkgIGEgcmFuZ2UgZnJvbSAxIHRvIDIsIG9yIGEgbGlzdCBvZiAxIGFuZCAyKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MzY0MwoKMjAxMS0xMS0wOSAxMToyNDoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGFkZCBhIHN1YnNldCB0ZXN0IGZvciBzdHJ1Y3R1cmUKCjIwMTEtMTEtMDkgMTE6MjI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwYWQ6IGFkZCBtb3JlIHF1ZXJpZXMKCSAgQWRkIG1vcmUgcXVlcnkgZnVuY3Rpb25zIHRvIHByZXBhcmUgZm9yIGRvaW5nIG1vcmUgd2l0aCBxdWVyaWVzCgoyMDExLTEwLTI4IDEzOjM5OjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIGRvY3M6IGFsc28gZml4IHdyb25nIGNhbGwgb3JkZXIgZm9yIGNvbnRyb2xsZXIgaW4gbWFudWFsCgoyMDExLTExLTA4IDE3OjMyOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbnN0YWxsIHF1ZXJ5IHByb2JlcwoJICBGaXJlIHF1ZXJ5IHByb2JlcyBhY2NvcmRpbmcgdG8gdXBkYXRlZCBkZXNpZ24gZG9jLgoKMjAxMS0xMS0wOCAxNTo1MTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgbG9jay91bmxvY2tfZnVsbCB2ZXJzaW9ucyBvZiBzdHJlYW0tbG9jawoKMjAxMS0xMS0wOCAxNTo0ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZGVmaW5lcyBmb3IgcXVlcnkgcHJvYmVzCgoyMDExLTExLTA4IDEzOjMwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB1bml0IHRlc3QKCjIwMTEtMTEtMDggMTM6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogdXBkYXRlIGRvY3MKCjIwMTEtMTEtMDggMTM6MDI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMS0wOCAxMjo1NDoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMTEtMDggMTI6NDc6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwdWxsIG1vZGUgcHJvYmVzCgkgIEFsbG93IHByb2JlcyB0byBpbnNwZWN0IHRoZSBvZmZzZXQgYW5kIHNpemUgZnJvbSBhIHByb2JlIGluIHB1bGwgbW9kZSBhbmQgYWxsb3cKCSAgdGhlIHByb2JlIHRvIG1vZGlmeSB0aGUgYnVmZmVyLgoJICBVcGRhdGUgZGVzaWduIGRvYyBhIGxpdHRsZS4KCjIwMTEtMTEtMDggMTI6MjI6MjEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGFkZCB0ZXN0IHRvIHZlcmlmeSBmbHVzaGluZyBiZWhhdmlvdXIKCSAgU2VlbXMgbGlrZSBhIHRyaXZpYWwgY2FzZSwgYnV0IHRoaXMgd2FzIGFjdHVhbGx5IGJyb2tlbiBpbiAwLjExIHJlY2VudGx5LgoKMjAxMS0xMS0wOCAxMTowNDoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiBBZGQgR3N0UGFkUHJvYmVJbmZvCgkgIE1ha2UgYSBuZXcgR3N0UGFkUHJvYmVJbmZvIHN0cnVjdHVyZSBhbmQgcGFzcyB0aGlzIGluIHRoZSBwcm9iZSBjYWxsYmFjay4gVGhpcwoJICBhbGxvd3MgdXMgdG8gYWRkIG1vcmUgdGhpbmdzIGxhdGVyIGFuZCBhbHNvIGFsbG93IHRoZSBjYWxsYmFjayB0byByZXBsYWNlIG9yCgkgIG1vZGlmeSB0aGUgcGFzc2VkIG9iamVjdC4KCjIwMTEtMTEtMDggMDg6MjY6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGxvZyBjcmVhdGlvbiBvZiBxb3MgZXZlbnRzIGF0IExPRyBsZXZlbCBpbnN0ZWFkIGF0IElORk8KCjIwMTEtMTEtMDcgMTY6NTc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0xMS0wOCAwMDozMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggU2luY2U6IG1hcmtlcnMgZm9yIEFQSSBhZGRlZCBhZnRlciAwLjEwLjM1CgoyMDExLTExLTA4IDAwOjE1OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoJICBBUEk6IGdzdF9jYXBzX2lzX3N0cmljdGx5X2VxdWFsKCkKCjIwMTEtMTEtMDcgMTc6MTc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHZhbHVlLmMKCjIwMTEtMTEtMDcgMTc6MDQ6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiByZXdvcmsgcGFkIHByb2JlcwoJICBNYWtlIGEgc2VwYXJhdGUgY29va2llIHRvIGRldGVjdCBjaGFuY2dlcyBpbiB0aGUgbGlzdCBvZiBwcm9iZXMgYW5kIGtlZXBpbmcKCSAgdHJhY2sgb2Ygd2hhdCBob29rcyBoYXZlIGJlZW4gaW52b2tlZCB5ZXQuCgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgdG8gaGF2ZSBwcm9iZXMgb24gc3JjcGFkcyBpbiBwdXNoIG1vZGUgYW5kIHNpbmtwYWRzIGluCgkgIHB1bGwgbW9kZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IGNhbGxiYWNrcyBnb3QgZXhlY3V0ZWQuIElmIG5vIGNhbGxiYWNrIGlzIGNhbGxlZCBhbmQgd2UgYXJlIGEKCSAgYmxvY2tpbmcgcGFkLCBsZXQgdGhlIGl0ZW0gcGFzcy4gVGhpcyBhbGxvd3MgeW91IHRvIGJsb2NrIHBhZHMgb24gc2VsZWN0ZWQKCSAgaXRlbXMgb25seS4KCSAgRXhwbGljaXRseSBoYXZlIGFuIFVQU1RSRUFNIGFuZCBET1dOU1RSRUFNIFBhZFByb2JlVHlwZS4gVGhpcyBhbGxvd3MgeW91IHRvIG9ubHkKCSAgYmxvY2sgdGhlIHBhZCBvbiB1cHN0cmVhbSBvciBkb3duc3RyZWFtIGl0ZW1zLgoJICBBZGQgY29udmVuaWVuY2UgbWFjcm9zIHRvIG9ubHkgYmxvY2sgb24gZG93bnN0cmVhbS91cHN0cmVhbSBpdGVtcy4KCjIwMTEtMTAtMjcgMTI6NTk6NTcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBnaW50NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMjoyNDoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcXVpY2tlciB2ZXJzaW9uIG9mIGludGVyc2VjdGlvbiB3aGVuIHdlIGRvIG5vdCBuZWVkIHRoZSByZXN1bHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMjowMjo0MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogc2ltcGxpZnkgcmV0dXJuIHN0YXRlbWVudCBpbiBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMTo0MTozMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogZWFybHkgb3V0IHdoZW4gd2Uga25vdyBhIHZhbHVlIGNhbm5vdCBiZSBhIHN1YnNldAoJICBJZiB0d28gdmFsdWVzIGNhbiBiZSBvcmRlcmVkLCBidXQgYXJlIHVuZXF1YWwsIHRoZXkgYXJlCgkgIG5lY2Vzc2FyaWx5IGRpc3RpbmN0LCB0aHVzIG9uZSBjYW5ub3QgYmUgYSBzdWJzZXQgb2YgdGhlIG90aGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEwOjM1OjUzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBxdWlja2VyIHRlc3QgZm9yIHN1YnN0cmFjdGlvbiBlbXB0aW5lc3MKCSAgV2hlbiB3ZSBkbyBub3QgY2FyZSBhYm91dCB0aGUgYWN0dWFsIHJlc3VsdGluZyBzZXQsCgkgIGJ1dCBvbmx5IHdoZXRoZXIgaXQgaXMgZW1wdHkgb2Ygbm90LCB3ZSBjYW4gc2tpcCBhIGZhaXIgYml0CgkgIG9mIEdWYWx1ZSBqdWdnbGluZy4KCSAgQWRkIGEgZnVuY3Rpb24gdGhhdCBkb2VzIHNvLCBzaW5jZSB3ZSBjYW5ub3QganVzdCBwYXNzIE5VTEwKCSAgdG8gdGhlIGV4aXN0aW5nIEFQSSBhcyBpdCBtYXkgYmUgcGFydCBvZiB0aGUgQVBJIGNvbnRyYWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDA5OjQ1OjQxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiByZWppZyB0ZXN0IG9yZGVyaW5nIGZvciBzcGVlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTExLTA3IDEyOjI4OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBtb3JlIGFwaSBjaGFuZ2VzIGluIHRoZSBwb3J0aW5nIGd1aWRlCgoyMDExLTExLTA3IDEwOjQwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGNvbXBpbGF0aW9uCgoyMDExLTExLTA3IDEwOjAxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTExLTA2IDAwOjA3OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIFJldmVydCAiY29udHJvbGxlcjogZml4IGdfcmV0dXJuIHN0YXRlbWVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1OTNkMmIyOTdiZDdiNWNlOWRiY2RmMmYxYWUyYjc2MjRkOTRkNmFlLgoJICBnc3RfY29udHJvbGxlcl9zZXRfZGlzYWJsZWQgKCkgcmV0dXJucyBhIHZvaWQuCgoyMDExLTExLTA1IDEyOjEwOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSByZWZzIHRvIHJlbW92ZWQgQVBJCgoyMDExLTExLTA0IDIxOjM3OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiB0aGUgb2JqZWN0IG5lZWRzIGEgcmVmIHRvIHRoZSBjb250cm9sbGVyIGZvciB0aGUgY29udmVuaWVuY2UgYXBpCgkgIEFkZCBhIGhhY2sgdG8gZW5zdXJlIHRoZSBvYmplY3Qgd2lsbCBoYXZlIGEgcmVmIHRvIHRoZSBjb250cm9sbGVyIG9uY2Ugd2UKCSAgY3JlYXRlIGl0LiBGaXhlcyB0aGUgYXVkaW8gZXhhbXBsZSAodGhhdCB1c2VzIHRoZSBjb250cm9sbGVyIGFwaSBkaXJlY3RseSkuCgoyMDExLTExLTA0IDIxOjM3OjIxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZml4IGdfcmV0dXJuIHN0YXRlbWVudAoKMjAxMS0xMS0wNCAyMTozNTo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGxvZ2dpbmcgdHdlYWtzCgkgIERvbid0IGxvZyBpbiBfbmV3IGJlZm9yZSB3ZSBoYXZlIHRoZSBsb2cgY2F0ZWdvcnkuIFVzZSBfT0JKRUNUIHZhcmlhbnRzLgoKMjAxMS0xMS0wNSAwMToyNzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdDogZml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MKCSAgZ3N0b2JqZWN0LmM6IEluIGZ1bmN0aW9uICdnc3Rfb2JqZWN0X2hhc19hY3RpdmVfYXV0b21hdGlvbic6CgkgIGdzdG9iamVjdC5jOjEwNzY6MzogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoJICBnc3Rjb250cm9sbGVyLmM6IEluIGZ1bmN0aW9uICdnc3RfY29udHJvbGxlcl9pc19hY3RpdmUnOgoJICBnc3Rjb250cm9sbGVyLmM6NTA5OjM6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCjIwMTEtMTEtMDQgMjA6NTA6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogYWRkIGFwaSB0byBjaGVjayBmb3IgYWN0aXZlIGNvbnRyb2xsZXJzIChuZWVkZWQgZm9yIGUuZy4gdm9sdW1lKQoKMjAxMS0xMS0wNCAyMDozMjozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG9ic29sZXRlIGNvbW1lbnRzIGZyb20gYXBpIHRyYW5zaXRpb24KCjIwMTEtMTEtMDQgMTQ6MDA6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICBjb250cm9sbGVyOiBmaXggdGVzdHMgYWZ0ZXIgbW92ZSBhbmQgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMDQgMTE6NDI6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHBvcnQgdG8gbmV3IGNvbnRyb2xsZXIgYXBpCgoyMDExLTExLTA0IDExOjM5OjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgY29udHJvbGxlcjogdXBkYXRlIGRvY3MgZm9yIGNvbnRyb2xsZXIgbW92ZQoKMjAxMS0xMS0wNCAxMTozNDoxMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgY29udHJvbGxlcjogbW92ZSB0byBjb3JlL2dzdG9iamVjdAoJICBNb3ZlIHRoZSBjb250cm9sbGVyIHRvIGdzdG9iamVjdCBhcyBhIHNpbXBsZSBkZWxlZ2F0ZS4gVGhlIGNvbnRyb2xsZXIgYW5kCgkgIGNvbnRyb2xzb3VyY2UgYXJlIG5vdCBjbGFzc2VzIGluIGNvcmUuIFRoZSBjb250cm9sc291cmNlcyBzdGF5IHNlcGFyYXRlIGFzIGEgbGliCgkgIGZvciBub3cuIFRoaXMgd2F5IHdlIGNhbiBhdm9pZCB0aGUgcWRhdGEgbG9va3Vwcy4KCSAgQWxzbyByZW1vdmUgY29udHJvbGxlcl9pbml0KCkuIFRoZXJlIGlzIG5vIG1vcmUgbmVlZCB0byBsaW5rIHRvIGNvbnRyb2xsZXIgZm9yCgkgIGVsZW1lbnRzLgoJICBBbHNvIHNhbml0aXplIHRoZSBBUEkuIFdlIG5vdyBoYXZlIGZ1bmN0aW9ucyB0byBhZGQgcHJvcGVydGllcyBsaWtlIHdlIGhhZAoJICBtZXRob2RzIHRvIHJlbW92ZSB0aGF0LiBUaGF0IGF2b2lkcyB0aGVuIHJlZiBjb3VudCBoYWNrcyB3ZSBoYWQgaW4gX25ldy4KCjIwMTEtMTEtMDMgMTg6MjM6MTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzbWFsbCBjbGFyaWZpY2F0aW9uCgoyMDExLTExLTAzIDE4OjIyOjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogbWlzc2luZyByZW5hbWUgaWZhY2UtPmludGVyZmFjZSBpbiB0aGUgZG9jcwoKMjAxMS0xMS0wNCAxOToxNzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggdGhlIGl0ZXJhdG9yIGNvcHkKCjIwMTEtMTEtMDQgMTk6MTE6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJpbi5jCgoyMDExLTExLTAzIDE1OjM2OjU5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBPbmx5IHVzZSB0aGUgY2FjaGVkIHRyYW5zZm9ybSBvbiBzdHJpY3RseSBlcXVhbCBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjMzMzMKCjIwMTEtMTEtMDMgMTU6MzU6MzIgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2lzX3N0cmljdGx5X2VxdWFsCgoyMDExLTExLTA0IDE4OjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0cwoJICBTaW5jZSBibG9ja3MgYXJlIG5vdCBvbiBib3RoIGRpcmVjdGlvbnMsIHdlIG5lZWQgdG8gY2hlY2sgaW4gdGhlIGJsb2NrIGNhbGxiYWNrCgkgIGlmIHdlIGFyZSBub3QgYmxvY2tpbmcgb24gYW4gdXBzdHJlYW0gZXZlbnQgYW5kIGxldCBpdCBwYXNzLgoKMjAxMS0xMS0wNCAxODoxOToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgcHJvYmVzIHdvcmsgb24gYWxsIHBhZHMKCSAgZml4ZXMgIzY0NDkwNwoKMjAxMS0xMC0xNSAyMjo1MjoyNSArMDMwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgaW50cm9zcGVjdGlvbjogYWRkIFZhbHVlIGFubm90YXRpb25zIGZvciBHU1RfU0VDT05ELCBHU1RfTVNFQ09ORCwgR1NUX1VTRUNPTkQsIEdTVF9OU0VDT05EIGNvbnN0YW50cwoJICBnb2JqZWN0LWludHJvc3BlY3Rpb24gd29uJ3QgcGFyc2UgdGhlbSBwcm9wZXJseSBvdGhlcndpc2UuCgkgIFN0aWxsIG5lZWQgdG8gZm9yY2UgdGhlIHJpZ2h0IHR5cGUgdGhvdWdoIChlaXRoZXIgR3N0Q2xvY2tUaW1lIG9yCgkgIGd1aW50NjQpLCBidXQgVHlwZTogeHl6IGhhcyBubyBlZmZlY3QgZm9yIG1lIGhlcmUsIHNvIHNvbWVvbmUgd2l0aAoJICBhIG5ld2VyIGctaSBuZWVkcyB0byB0ZXN0IHRoaXMuCgkgIFNvbWUgb3RoZXIgZGVmaW5lcyBhcmUgYWxzbyBtaXNzaW5nLCBlLmcuIEdTVF9DTE9DS19USU1FX05PTkUuCgoyMDExLTExLTA0IDAwOjAzOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MgaWYgZ3N0IGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyOTUyCgoyMDExLTExLTA0IDAwOjAyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggdHlwbyBhcm91bmQgR0xJQl9FWFRSQV9DRkxBR1MgaW4gR1NUX0FMTF9DWFhGTEFHUwoKMjAxMS0xMS0wMyAyMzowODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCjIwMTEtMTEtMDMgMjI6NTg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCSAgQmVjYXVzZSB3ZSBjYW4uCgoyMDExLTExLTAzIDIyOjUxOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogdXNlIGZsYWdzIGVudW0gaW5zdGVhZCBvZiBndWludCBpbiBzdHJ1Y3R1cmUKCjIwMTEtMTEtMDMgMDg6NDc6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgoyMDExLTExLTAzIDE3OjQ5OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBmaXggcmVxdWVzdCBwYWQKCSAgTWFrZSBhbGwgcmVxdWVzdCBwYWRzIHRha2UgXyV1IGluIHRoZSB0ZW1wbGF0ZS4KCSAgRml4IHVwIHVuaXQgdGVzdHMuCgoyMDExLTExLTAzIDE2OjQ5OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIGRlZjogdXBkYXRlIGRlZnMKCjIwMTEtMTEtMDMgMTY6NDY6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBuZXQ6IGFkZCBuZXQgYWRkcmVzcyBtZXRhZGF0YQoKMjAxMS0xMS0wMyAxNDoyNjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBuZXR0aW1lOiBjbGVhbiB1cCBoZWFkZXIKCjIwMTEtMTEtMDMgMTQ6MTQ6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBkb24ndCB1c2UgbG9jay91bmxvY2tfZnVsbAoKMjAxMS0xMS0wMyAxMTozMDo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoKMjAxMS0xMS0wMiAxMjozNzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDExLTEwLTI1IDE3OjI2OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEb24ndCBjYWNoZSBpbnRlcm5hbCBwcm94eSBwYWQgdGFyZ2V0CgkgIFRoZSBpbnRlcm5hbCBwcm94eSBwYWQgdGFyZ2V0IGlzIHNpbXBseSBhIGNhY2hlIG9mIHRoZSBpbnRlcm5hbCBwcm94eSBwYWQKCSAgcGVlci4gVGhpcyBwYXRjaCB1c2VzIHRoZSB3ZWxsIGltcGxlbWVudCBHc3RQYWQgcGVlciBoYW5kbGluZyB0byBvYnRhaW4gdGhlCgkgIHRhcmdldC4gVGhpcyBmaXhlcyBpc3N1ZXMgd2l0aCB0YXJnZXQgbm90IGJlaW5nIHNldCBpbiBib3RoIGRpcmVjdGlvbiB3aGVuCgkgIHR3byBnaG9zdHBhZHMgYXJlIGxpbmtlZCB0b2dldGhlciAoZW1wdHkgYmluKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODUxNwoKMjAxMS0xMS0wMiAxMjowNjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIF9mb3VuZF90YWdzXyBBUEkKCSAgcmVtb3ZlIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKSBhbmQgZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKCksIHRoZXkgYXJlCgkgIG5vdGhpbmcgbW9yZSB0aGFuIGEgd3JhcHBlciBhcm91bmQgZ3N0X3BhZF9wdXNoX2V2ZW50KCkKCjIwMTEtMTEtMDIgMTA6Mjk6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGNvbmZpZ3VyZS5hYwoKMjAxMS0xMC0zMCAyMTozMzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMjkgMDk6NDM6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIEdzdFNlZ21lbnQgYXJndW1lbnQgY29uc3QKCjIwMTEtMTAtMjkgMDk6NDE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgbWV0YXRpbWluZyBmcm9tIGRvY3MKCjIwMTEtMTAtMjkgMDk6MjY6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YXNrOiBhcGkgY2xlYW51cAoJICBnc3RfdGFza19jcmVhdGUoKSAtPiBnc3RfdGFza19uZXcoKQoKMjAxMS0xMC0yOSAwOTowMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBjbGVhbnVwIEFQSQoJICBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19pZF9lbXB0eSgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfaWQoKQoKMjAxMS0xMC0yOSAwODozODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHJlbW92ZSB0aW1pbmcgbWV0YWRhdGEKCSAgVGhpcyBpcyBub3cgb24gYnVmZmVycyBieSBkZWZhdWx0CgoyMDExLTEwLTI5IDA4OjI0OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogY2xlYW4gdXAgQVBJCgkgIGdzdF9idWZmZXJfbGlzdF9sZW4oKSAtPiBnc3RfYnVmZmVyX2xpc3RfbGVuZ3RoKCkKCSAgZ3N0X2J1ZmZlcl9saXN0X3NpemVkX25ldygpIC0+IGdzdF9idWZmZXJfbGlzdF9uZXdfc2l6ZWQoKQoKMjAxMS0xMS0wMSAxNDoxNzoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogc2ltcGxpZnkgZ3N0X2FkYXB0ZXJfdGFrZV9saXN0KCkKCSAgVXNlIGEgc3RhY2stYWxsb2NhdGVkIEdRdWV1ZSB0byBhc3NlbWJsZSBvdXIgR0xpc3QuCgoyMDExLTExLTAxIDEwOjU2OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gR3N0QWN0aXZhdGVNb2RlIHJlbmFtZSBpbiBwb3J0aW5nIGRvYwoKMjAxMS0xMS0wMSAwMDoyNTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBHc3RBY3RpdmF0ZU1vZGUgdG8gR3N0UGFkQWN0aXZhdGVNb2RlCgkgIFRoZXNlIG1pZ2h0IGJlIHVzZWZ1bDoKCSAgc2VkIC1pIC1lICdzL0dzdEFjdGl2YXRlTW9kZS9Hc3RQYWRBY3RpdmF0ZU1vZGUvZycgYGdpdCBncmVwIEdzdEFjdGl2YXRlTW9kZSB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR1NUX0FDVElWQVRFXy9HU1RfUEFEX0FDVElWQVRFXy9nJyAgICBgZ2l0IGdyZXAgR1NUX0FDVElWQVRFXyAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgoyMDExLTExLTAxIDAwOjEzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBHc3RQcm9iZVR5cGUgYW5kIEdzdFByb2JlUmV0dXJuIHRvIEdzdFBhZFByb2Jle1R5cGUsUmV0dXJufQoJICBCZXR0ZXIgbm93IHRoYW4gbGF0ZXIgaW4gdGhlIGN5Y2xlLiBUaGVzZSBtaWdodCBjb21lIGluIGhhbmR5OgoJICBzZWQgLWkgLWUgJ3MvR3N0UHJvYmVSZXR1cm4vR3N0UGFkUHJvYmVSZXR1cm4vZycgICBgZ2l0IGdyZXAgR3N0UHJvYmVSZXR1cm4gIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9HU1RfUFJPQkVfL0dTVF9QQURfUFJPQkVfL2cnICAgICAgICAgIGBnaXQgZ3JlcCBHU1RfUFJPQkVfICAgICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dzdFByb2JlVHlwZS9Hc3RQYWRQcm9iZVR5cGUvZycgICAgICAgYGdpdCBncmVwIEdzdFByb2JlVHlwZSAgICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoKMjAxMS0xMC0zMSAyMzozMjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogcmVtb3ZlIGdzdF90YWdfbGlzdF9nZXRfKmxvbmcqKCkKCSAgTm8gb25lIHVzZXMgdGhpcyBvciBzaG91bGQgZXZlciBuZWVkIHRvIHVzZSBpdCwgc2luY2UKCSAgdGhlIHNpemUgaXMgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFueXdheS4gSWYgbm9ybWFsCgkgIGludGVnZXJzIGRvbid0IGRvLCBvbmUgc2hvdWxkIHVzZSA2NC1iaXQgaW50ZWdlcnMuCgoyMDExLTEwLTMxIDE5OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUgLmRlZiBmaWxlIGZvciByZW1vdmVkL2NoYW5nZWQgQVBJCgoyMDExLTEwLTMxIDE5OjIzOjQxICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBjcmFzaC93YXJuaW5nIGluIGZpbmRfdHJhbnNmb3JtIHdoZW4gcGFkIGlzIHVubGlua2VkCgkgIExvb2tzIGxpa2UgdGhlIHJldmVydCBjb25mbGljdCBpbiBjb21taXQgYTQ0MjcxIHdhcyByZXNvbHZlZCBpbmNvcnJlY3RseS4KCjIwMTEtMTAtMzEgMTc6NDU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbWFrZSBHTElCX0VYVFJBX0NGTEFHUyBvdmVyd3JpdGFibGUKCSAgTWFrZSAnbWFrZSBHTElCX0VYVFJBX0NGTEFHUz0uLi4nIHdvcmsuCgoyMDExLTEwLTMxIDE0OjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBmaWx0ZXI6IHJlbW92ZSBnc3RfZmlsdGVyX3J1bigpIGFuZCBkZXByZWNhdGVkIGZpbHRlciBmdW5jCgkgIElmIHNvbWVvbmUgd2FudHMgdG8gcmVzdXJyZWN0IHRoaXMsIHBsZWFzZSB1c2UgYSBsZXNzCgkgIGdlbmVyaWMgbmFtZSBzcGFjZSBmb3IgaXQuCgoyMDExLTEwLTMxIDE0OjAzOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmMKCjIwMTEtMTAtMzAgMTA6MjY6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0YWdsaXN0OiByZW5hbWUgX25ldygpIHRvIF9uZXdfZW1wdHkoKSBhbmQgbmV3X2Z1bGwqKCkgdG8gbmV3KigpCgoyMDExLTEwLTMwIDIxOjU0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJICBmaWx0ZXI6IGRlcHJlY2F0ZSBnc3RfZmlsdGVyX3J1bigpCgkgIEl0J3Mgbm90IHJlYWxseSB1c2VkIG91dHNpZGUgb2YgY29yZSBhdCBhbGwsIGFuZCBoYXMKCSAgc2VyaW91cyBuYW1lc3BhY2UgaXNzdWVzLiBJZiBhbnlvbmUgZmVlbHMgdGhlIG5lZWQgdG8KCSAgcmV2aXZlIHRoaXMgb25lLCBwbGVhc2UgdXNlIGEgbGVzcyBnZW5lcmljIG5hbWUgc3BhY2UuCgkgIEFQSTogZGVwcmVjYXRlIGdzdF9maWx0ZXJfcnVuKCkKCSAgQVBJOiBkZXByZWNhdGUgR3N0RmlsdGVyRnVuYwoKMjAxMS0xMC0zMCAyMTozOTozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IHVzZSBzb29uLXRvLWJlLWRlcHJlY2F0ZWQgZ3N0X2ZpbHRlcl9ydW4oKQoJICBMaW5lcy1vZi1jb2RlIHNhdmluZ3MgYXJlIG5lZ2xpZ2libGUgYW55d2F5LgoKMjAxMS0xMC0zMCAyMToyMTo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgcGx1Z2luZmVhdHVyZTogZGVwcmVjYXRlIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyKCkKCSAgSXQncyBvbmx5IHVzZWQgaW50ZXJuYWxseSBhbnl3YXkgYW5kIHRoZSBoZWxwZXIgc3RydWN0CgkgIGhhcyBuYW1lc3BhY2UgaXNzdWVzLgoJICBBUEk6IGRlcHJlY2F0ZWQgZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIoKQoJICBBUEk6IGRlcHJlY2F0ZWQgR3N0VHlwZU5hbWVEYXRhCgoyMDExLTEwLTMwIDEwOjA1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2Ugb3BhcXVlCgkgIEhpZGUgdGhlIGZhY3QgdGhhdCBpdCdzIGp1c3QgYSBHc3RTdHJ1Y3R1cmUgZnJvbSB0aGUgQVBJLiBXZQoJICBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBpbiBmdXR1cmUgKGUuZy4gdG8gYWRkIHJlZmNvdW50aW5nKS4KCSAgQWxzbywgaXQgY2F1c2VkIHByb2JsZW1zIGZvciBiaW5kaW5ncyAodGhvdWdoIHRoYXQncyBtb3N0bHkKCSAgdGhlIHdheSB3ZSB0eXBlZGVmZWQgaXQgdG8gR3N0U3RydWN0dXJlKS4KCjIwMTEtMTAtMzAgMTA6MDA6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTMwIDA5OjU4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCB0b19zdHJpbmcgYW5kIG5ld19mcm9tX3N0cmluZyBmdW5jdGlvbnMKCSAgV2Ugd2FudCB0byBtYWtlIEdzdFRhZ0xpc3Qgb3BhcXVlIGFuZCBub3QgaGF2ZSBwZW9wbGUgdXNlCgkgIEdzdFN0cnVjdHVyZSBBUEkgb24gaXQuCgkgIEFQSTogZ3N0X3RhZ19saXN0X3RvX3N0cmluZygpCgkgIEFQSTogZ3N0X3RhZ19saXN0X25ld19mcm9tX3N0cmluZygpCgoyMDExLTEwLTMwIDA5OjMxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMCAwMTo0NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCBwb2ludGxlc3MgdGFnIG5hbWUgLT4gcXVhcmsgbG9va3VwcwoJICBXZSBuZXZlciBnZXQgYSB0YWcgbmFtZSBxdWFyayBmcm9tIGEgY2FsbGVyLCBpdCdzIGFsd2F5cyBhCgkgIHN0cmluZywgZnJvbSB3aGljaCB3ZSdsbCB0cnkgdG8gbG9vayB1cCBvdXIgdGFnIGluZm8gaW4gdGhlCgkgIGhhc2ggdGFibGUsIHNvIGNoYW5nZSB0aGUgaGFzaCB0YWJsZSBrZXkgZnJvbSBxdWFyayB0byBzdHJpbmcuCgkgIEF2b2lkcyBhIGJ1bmNoIG9mIHBvaW50bGVzcyBzdHJpbmcgPT4gcXVhcmsgbG9va3VwIGluIHRoZQoJICBnbG9iYWwgcXVhcmsgdGFibGUuIFdlIG5lZWQgdG8gZG8gYW4gZXh0cmEgc3RyaW5nID0+IHF1YXJrCgkgIGNvbnZlcnNpb24gbm93IHdoZW4gd2UgY29weSBhIHRhZ2xpc3QsIGJ1dCBpbiB0aGF0IGNhc2Ugd2UncmUKCSAgaW4gYSBzbG93IHBhdGggYW55d2F5LgoKMjAxMS0xMC0zMCAwMDo0NDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkKCSAgQVBJOiBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKQoKMjAxMS0xMC0yOSAyMzo1MjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogaWRlbnRpY2FsIHN0cnVjdHVyZXMgYXJlIGRlZmluaXRlbHkgZXF1YWwKCjIwMTEtMTAtMjkgMjA6MDY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHN0cmluZyBmb3IgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyBpdCB3YXMgbWFwcGVkIHRvIGEgbXVzaWNicmFpbnogcHJlZml4LAoJICBidXQgaXQncyBub3QgcmVhbGx5IG11c2ljYnJhaW56LXNwZWNpZmljIGF0IGFsbC4KCjIwMTEtMTAtMjkgMTk6NTk6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogbW92ZSBwcml2YXRlIGZ1bmN0aW9ucyBmb3IgcmVnaXN0cnkgdG8gcHJpdmF0ZSBoZWFkZXIKCjIwMTEtMTAtMjggMjE6NDA6NDcgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGludmFsaWQgYWNjZXNzIHRvIHVucmVmZmVkIGFsbG9jYXRpb24gcXVlcnkKCjIwMTEtMTAtMjggMTY6NDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZml4IGRvY3Mgc29tZSBtb3JlCgoyMDExLTEwLTI4IDE2OjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI4IDE2OjA4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCBzZWdtZW50IGNoZWNrCgoyMDExLTEwLTI4IDE1OjUyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogcmVtb3ZlIEdTVF9TRUVLX1RZUEVfQ1VSCgoyMDExLTEwLTI4IDE1OjUyOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0yOCAxNToxNjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBtYWtlIGVsZW1lbnRzIGNvbXBpbGUgYWdhaW4KCjIwMTEtMTAtMjggMTM6MDI6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEzOjAyOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkgIGJpdHJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEyOjMxOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI4OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTEtMTAtMjggMTI6MTc6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2s6IGFsc28gZGVidWcgdGhlIERUUwoKMjAxMS0xMC0yOCAxMjoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogdXNlIHB0cy9kdHMgb24gYnVmZmVycwoKMjAxMS0xMC0yOCAxMjoyNDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiBhZGQgdGltZXN0YW1wIGNvbXBhdCBkZWZpbmVzCgoyMDExLTEwLTI4IDEyOjE1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGJ1ZmZlcjogYWRkIHB0cy9kdHMgdG8gYnVmZmVycwoKMjAxMS0xMC0yOCAxMTo1MzozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxzbyBmdXNoIHRoZSBjYWNoZSB3aGVuIGNoYW5naW5nIHRoZSB1cHN0cmVhbSBjYXBzIHN1Z2dlc3Rpb24KCjIwMTEtMTAtMjggMTE6NTA6MjMgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBkZWJ1ZyBvdXRwdXQgd2hlbiByZXR1cm5pbmcgYSBjYWNoZWQgdHJhbnNmb3JtCgoyMDExLTEwLTI4IDExOjMzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMTozMDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvb2xlY3RwYWRzMjogcG9ydCB0byAwLjExCgoyMDExLTEwLTI4IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMDo1NDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCByZWZjb3VudCBoYW5kbGluZyBpZiBhIGJ1ZmZlciB3YXMgZHJvcHBlZCBkdWUgdG8gY2xpcHBpbmcKCjIwMTEtMTAtMjggMTA6Mzc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIHRoZSBjbGlwIGFuZCBwcmVwYXJlX2J1ZmZlciBmdW5jdGlvbiBpbnRvIG9uZQoKMjAxMS0xMC0yOCAxMDoxNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIGNsaXBwaW5nIEFQSSBmcm9tIG9sZCBjb2xsZWN0cGFkcwoKMjAxMS0xMC0yOCAwOToxOToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gbmFtZSBzaG93IHVwIGluIGdzdC1pbnNwZWN0CgoyMDExLTA5LTI3IDE1OjQ4OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYXZvaWQgaGFuZ2luZyBpbiBjYXNlIG9mIHNwYXJzZSBuZXdzZWdtZW50IGV2ZW50cwoJICAuLi4gaW4gdGhlIGV4dGVudCB0aGF0IGEgbm9uLXdhaXRpbmcgcGFkIChzbyBpbmRpY2F0ZWQgYnkgbmV3c2VnbWVudCkKCSAgdHVybnMgb3V0IHRvIHByb3ZpZGUgdGhlIGJlc3QgYnVmZmVyLCB3aGljaCBpcyB0aGVuIGZvcmNlZCB0byB3YWl0aW5nCgkgIGZvciBib29rLWtlZXBpbmcgcHVycG9zZXMsIGJ1dCB0aGF0IHNob3VsZCBvbmx5IGJlIHRlbXBvcmFyeS4KCSAgU2VlIGJ1ZyAjNDE1NzU0LgoKMjAxMS0xMC0yOCAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTEwLTI4IDA5OjM1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGNvbGxlY3RwYWRzMjogQWRkIHRvIHRoZSBkb2N1bWVudGF0aW9uCgoyMDExLTEwLTI4IDA5OjI2OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgY29sbGVjdHBhZHMyIEFQSQoKMjAxMS0xMC0yOCAwOToxODo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBiYXNlOiBBZGQgY29sbGVjdHBhZHMyCgkgIFRoaXMgaGFuZGxlcyBtdXhpbmcgb2Ygc3BhcnNlL3N1YnRpdGxlIHN0cmVhbXMgYW5kIGhhcwoJICBsb3RzIG9mIGNsZWFudXAuIFN0aWxsIG1pc3NpbmcgaXMgc3BlY2lhbCBzdXBwb3J0IGZvcgoJICBsaXZlIHN0cmVhbXMgYnV0IHRoaXMgY2FuIGJlIGFkZGVkIGxhdGVyIHdpdGhvdXQgYnJlYWtpbmcKCSAgQVBJL0FCSS4KCSAgQmFzZWQgb24gdGhlIHZlcnNpb24gZnJvbSB0aGUgdmlkZW9taXhlciBwbHVnaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MTU3NTQKCjIwMTEtMTAtMjcgMTc6MDk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTc6MDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTEwLTI3IDE3OjA5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogYWRkIGVtcHR5X3NpbXBsZSB2YXJpYW50cwoKMjAxMS0xMC0yNyAxNjo1MToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTQ6NTY6MjQgKzAxMDAgIEpvaGFuIEJvdWzDqSA8Ym9oYW4uZ25vbWVAcmV0cm9wYWdhbmRhLmluZm8+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X2NhcHNfbmV3X3NpbXBsZSgpIGFuZCBnc3RfY2Fwc19uZXdfZnVsbCgpCgkgIElmIHlvdSBnZXQgd2FybmluZ3MsIHVzZSBnc3RfY2Fwc19uZXdfZW1wdHkoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzM0NgoKMjAxMS0xMC0yNyAxNToyNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yNyAxMzoyNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQgZm9yIGdzdF9zdHJ1Y3R1cmVfbmV3KCkKCSAgSWYgeW91IGdldCBhIHdhcm5pbmcsIHVzZSBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDIzOjA4OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IHJlZmNvdW50IGxlYWsKCSAgRG9uJ3QgbGVhayBwZWVyY2FwcyBhbmQgYSByZWYgdG8gdGhlIGJhc2V0cmFuc2Zvcm0gd2hlbiByZXR1cm5pbmcKCSAgdGhlIGNhY2hlZCBjYXBzLgoKMjAxMS0xMC0yNyAxMDozODoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggd3Jvbmcgb3JkZXIgb2YgY2FsbHMgaW4gdGhlIGRvY3MuCgoyMDExLTEwLTI2IDEyOjIzOjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBjbGFyaWZ5IGRvY3MgZm9yIHN0ZXAgZXZlbnQKCjIwMTEtMTAtMTggMjM6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgc3VwcG9ydCBmb3IgR1NUX1JFR0lTVFJZX1JFVVNFX1BMVUdJTl9TQ0FOTkVSPW5vCgkgIFRoaXMgd2lsbCBtYWtlIHN1cmUgd2Ugc3Bhd24gYSBuZXcgcGx1Z2luIHNjYW5uZXIgaGVscGVyIGZvciBlYWNoIHBsdWdpbgoJICB0byBiZSBpbnRyb3NwZWN0ZWQsIHdoaWNoIGhlbHBzIHdpdGggbWFraW5nIHN1cmUgd2UgZG9uJ3QgbG9hZCB0b28gbWFueQoJICBzaGFyZWQgb2JqZWN0cyAobGlicywgcGx1Z2lucykgYXQgdGhlIHNhbWUgdGltZSBvbiBzeXN0ZW1zIHdoZXJlIHRoZXJlCgkgIGlzIGEgaGFyZCBsaW1pdCBsaWtlIG9uIEFuZHJvaWQuCgkgIEEgYmV0dGVyIHZlcnNpb24gbWlnaHQgcmUtdXNlIHRoZSBzY2FubmVyIGZvciB1cCB0byBOIHRpbWVzLCB0aG91Z2gKCSAgaXQncyBub3QgY2xlYXIgd2hldGhlciB0aGF0IHdvdWxkIGFjdHVhbGx5IGltcHJvdmUgdGhpbmdzIGRyYW1hdGljYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjA5MQoKMjAxMS0xMC0yMSAxMDoyMzowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTm8gbmVlZCB0byByZXF1aXJlIHdyaXRhYmxlIGNhcHMgZm9yIF9hcHBlbmQvX21lcmdlIHNlY29uZCBjYXBzCgkgIFRoZSBzZWNvbmQgY2FwcyBvd25lcnNoaXAgaXMgdHJhbnNmZXJlZCwgbm8gbmVlZCB0byByZXF1aXJlIGl0IHRvCgkgIGJlIHdyaXRhYmxlIGZyb20gdGhlIGNhbGxlciBmdW5jdGlvbi4gSW5zdGVhZCwgX2FwcGVuZCBhbmQgX21lcmdlCgkgIG1ha2UgaXQgd3JpdGFibGUgb24gdGhlaXIgb3duLgoJICBEaXNjb3ZlcmVkIGJlY2F1c2Ugb2YgYW4gYXNzZXJ0aW9uIG9uIGVuY29kaW5nLXByb2ZpbGUuYyBpbgoJICBfZ2V0X2lucHV0X2NhcHMgdXNpbmcgX21lcmdlIGJ1dCBub3QgcGFzc2luZyB3cml0YWJsZSBjYXBzLgoKMjAxMS0xMC0yMSAxNDoyMDo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGludGVyZmFjZXM6IGNsZWFuIHVwIHRoZSB1c2Ugb2YgaWZhY2UgYW5kIGNsYXNzL2tsYXNzCgoyMDExLTEwLTIxIDExOjE1OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogc3BlbGxpbmcgYW5kIGZvcm1hdHRpbmcgZml4ZXMKCjIwMTEtMTAtMjEgMTA6NTI6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2luZyBvcmlnaW4vbWFzdGVyCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJpbi5jCgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZGVidWd1dGlscy5jCgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTIwIDE2OjU5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogRml4IGRvY3VtZW50YXRpb24sIGl0J3MgcHJlX3B1c2hfZnJhbWUgYW5kIG5vdCBwcmVfcHVzaF9idWZmZXIKCjIwMTEtMTAtMjAgMTQ6MDI6NDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNhY2hlIHRyYW5zZm9ybWVkIGNhcHMgd2hlcmUgYXBwcm9wcmlhdGUKCSAgU3BlZWRzIHVwIG5lZ290aWF0aW9uIGEgZmFpciBiaXQgb24gYSBjb250cml2ZWQgcGlwZWxpbmUKCSAgd2l0aCBhIGRvemVuIGNvbG9yc3BhY2UgY29udmVyc2lvbnMuCgkgIEhvcGVmdWxseSBjbGVhcnMgb3V0IHRoZSBjYWNoZSBldmVyeSB0aW1lIGl0IG91Z2h0IHRvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjkxCgoyMDExLTEwLTIwIDEwOjQ1OjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKCSogQW5kcm9pZC5tazoKCSAgRml4IGJyb2tlbiBhbmRyb2lkIGJ1aWxkaW5nIGR1ZSB0byBuYW1lIGNoYW5nZSBpbiAwMWQ4NzI1MGE4NDVlNTVkNgoKMjAxMS0xMC0yMCAwODozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlYmFyc2U6IEFkZCBkZXRlY3QgdmZ1bmMgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkbyBmb3JtYXQgZGV0ZWN0aW9uIGJlZm9yZSBhbnl0aGluZyBlbHNlCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OmRldGVjdCgpCgkgIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhlIGZpcnN0IGJ1ZmZlcnMgdW50aWwgdGhlIHN1YmNsYXNzIGhhcyBmaW5pc2hlZCBkZXRlY3Rpb24KCSAgYW5kIG9ubHkgYWZ0ZXJ3YXJkcyB0aGUgb3JpZ2luYWwgYnVmZmVycyBhcmUgaGFuZGxlZCBhcyBiZWZvcmUuIFRoZSB2ZnVuYyBhbGxvd3MKCSAgZGV0ZWN0aW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0IHdpdGhvdXQgYnJlYWtpbmcgdGhlIHVwc3RyZWFtIGZyYW1pbmcuCgoyMDExLTEwLTIwIDA4OjU3OjU3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdCBvbmx5IGRlc2NyaWJlIGNvbmRpdGlvbnMgaW4gdGhlIGRvY3MsIGFsc28gY2hlY2sgdGhlbSBpbiB0aGUgY29kZQoJICBXaGVuIGJsb2NraW5nIHBhZHMsIGNoZWNrIGlmIHRoZSBwYWQgaXMgaW4gdGhlIHJpZ3QgZGlyZWN0aW9uLiBMb2cgc29tZSBpbmZvCgkgIGZvciB0aGUgZGV2ZWxvcGVyIGFuZCByZXR1cm4gRkFMU0UsIGluc3RlYWQgb2YganVzdCBsb2NraW5nIHVwLgoKMjAxMS0xMC0xOSAyMzowNzo0NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmV2ZXJ0IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfbmFtZSB0byBjb25zdCBzdHJpbmcgcmV0dXJuCgkgIFJldHVybmluZyBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgbWFrZXMgbm8gc2Vuc2UuIEl0J3MgdW5leHBlY3RlZCBmb3IgYQoJICBnZXR0ZXIsIGFuZCBhbHNvIHRoaXMgYmVoYXZlcyBkaWZmZXJlbnRseSBpbiAwLjEwLCBzbyBpdCB3b3VsZCBtYWtlIGZ1dHVyZQoJICBtZXJnZXMgaGFyZGVyLgoJICBFeGNlcHQgZm9yIHRoZXNlIHR3byBwbGFjZXMgaGVyZSBpbiBjb3JlIHdoaWNoIHdlcmUgdXBkYXRlZCBmb3IgdGhlIG5ldwoJICBzZW1hbnRpYywgdGhlIHJldHVybiB2YWx1ZSBpcyBnZXR0aW5nIGxlYWtlZCBhbGwgb3ZlciB0aGUgcGxhY2UuCgoyMDExLTEwLTE5IDEyOjEyOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgKHNraXApIGFubm90YXRpb24gdG8gZ3N0X29iamVjdF9yZWZfc2luawoKMjAxMS0xMC0xOSAxMTo1OToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgZ3N0aXRlcmF0b3I6IEFkZCBza2lwIGFubm90YXRpb24gZm9yIGNyZWF0aW5nIEdzdEl0ZXJhdG9yCgkgIE5vdCByZWFsbHkgdXNlZnVsIGZvciBiaW5kaW5ncwoKMjAxMS0wOC0yOSAxMzo1NjoxOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9wb2xsIGFwaXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1NToxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBHVHlwZSBhbmQgR1ZhbHVlIHRyYW5zZm9ybSBhcGlzCgkgIFRoZXNlIGRvIG5vdCBtYWtlIHNlbnNlIHRvIGV4cG9zZSB0byBsYW5ndWFnZSBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU0OjIxIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwCgkgIEl0IHVzZXMgR09wdGlvbkdyb3VwIHdoaWNoIGlzIG5vdCB3cmFwcGFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MzozOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgbWlzc2luZyBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUyOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgaW50cm9zcGVjdGlvbjogUmVuYW1lIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwgdG8gZ3N0X2J1c19hZGRfd2F0Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDo0MCAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aW5kZXguaDoKCSAgU3luYyBkb2N1bWVudGF0aW9uIGFyZ3VtZW50cwoJICBUaGUgaW50cm9zcGVjdGlvbiBzY2FubmVyIHdhcm5zIGlmIHRoZSBoZWFkZXIgYW5kIHRoZSBzb3VyY2UKCSAgdXNlcyBtaXNtYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTA6MDIgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTEwLTE4IDE5OjIxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBwcm90ZWN0IGFnYWluc3QgbnVsbCBtZXNzYWdlIHNvdXJjZXMKCSAgTWVzc2FnZSBzb3VyY2VzIGNhbiBiZSBudWxsLCBjaGVjayBpZiBpdCBpcyBiZWZvcmUgdHJ5aW5nIHRvCgkgIGFjY2VzcyBpdHMgbmFtZS4KCjIwMTEtMTAtMTggMDg6NDg6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHNpbmNlIGRvYyB0byBuZXcgZ2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0xMC0xOCAxNDowODoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IG1vcmUgbG9nZ2luZyBhbmQgcHJlZmVyIGh1bWFuIHJlYWRhYmxlIGRldGFpbHMgb3ZlciBtZW1vcnkgbG9jYXRpb25zCgoyMDExLTEwLTE4IDE0OjA1OjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogaW1wcm92ZSBkaXNwbGF5IG9mIGdob3N0LSBhbmQgcHJveHlwYWRzCgkgIEhhbmRsZSB2aXJ0dWFsIGxpbmtzIGJldHdlZW4gZ2hvc3QgYW5kIHByb3h5cGFkcyB3aGVuIGl0ZXJhdGluZyBwYWRzIGluc3RlYWQgb2YKCSAgd2hlbiBsaW5raW5nLiBCZXNpZGVzIHVzaW5nIGxlc3MgY29kZSB0aGlzIHByb3ZpZGVzIGEgbW9yZSBhY2N1cmF0ZSBwaWN0dXJlLgoKMjAxMS0xMC0xOCAxMzo1NDo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBBZGQgZy1pIGFubm90YXRpb25zIGFuZCByZW1vdmUgIlNpbmNlOiIgbWFya2VycwoKMjAxMS0xMC0xNyAxNDo0MjowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgZ2V0Y2FwcyBmdW5jdGlvbgoJICBBZGRzIGEgZ2V0Y2FwcyBmdW5jdGlvbiB0byB0aGUgc2luayBwYWQgdG8gbWFrZSBwYXJzZXJzIHByb3BhZ2F0ZQoJICBkb3duc3RyZWFtIGNhcHMgcmVzdHJpY3Rpb25zIHRvIHVwc3RyZWFtLgoJICBUaGUgcGlwZWxpbmUgImF1ZGlvdGVzdHNyYyBudW0tYnVmZmVycz0xMDAgISBmYWFjICEgYWFjcGFyc2UgIQoJICAiYXVkaW8vbXBlZywgdmVyc2lvbj0oaW50KTQsIHN0cmVhbS1mb3JtYXQ9KHN0cmluZylhZHRzIiAhIGZpbGVzaW5rIgoJICB3b3VsZG4ndCB3b3JrIGJlY2F1c2UgYWFjcGFyc2Ugd291bGRuJ3QgcHJvcGFnYXRlIHRoZSBhZHRzIHJlc3RyaWN0aW9uCgkgIHVwc3RyZWFtIHRvIGZhYWMuCgkgIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmF1bHQgZ2V0Y2FwcyB0byB0aGUgc2luayBwYWQgdG8gc2ltcGx5IHByb3h5CgkgIGRvd25zdHJlYW0gY2FwcyBhbmQgYWxzbyBhZGRzIGEgJ2dldF9zaW5rX2NhcHMnIGZ1bmN0aW9uIHBvaW50ZXIKCSAgdG8gR3N0QmFzZVBhcnNlQ2xhc3MgZm9yIHN1YmNsYXNzZXMgdGhhdCBuZWVkIG1vcmUgcmVmaW5lZCBnZXRjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxODc0CgoyMDExLTEwLTE4IDEyOjM5OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFsc28gdXBkYXRlIHRoZSBzdHJlYW0gdGltZQoKMjAxMS0xMC0xOCAxMDo1ODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBoYW5kbGluZyBvZiBxdWV1ZWQgZnJhbWVzCgkgIGdzdF9iYXNlX3BhcnNlX3B1c2hfZnJhbWUoKSBhbHJlYWR5IGZyZWVzIHRoZSBmcmFtZSwgbm8gbmVlZCB0bwoJICBkbyBpdCBhbm90aGVyIHRpbWUgYWdhaW4uCgoyMDExLTEwLTE3IDIxOjM4OjU2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGZpeCBwYWR0ZW1wbGF0ZSBsZWFrIGluIHNlbGVjdG9yIHRlc3QKCSAgSW4gMC4xMSwgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIHJldHVybnMgYSByZWZlcmVuY2UuCgoyMDExLTEwLTE3IDIxOjM3OjE3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBidWZmZXIvZXZlbnQgbGVhayB3aGVuIHBhZCBpcyBmbHVzaGluZwoJICBBcHBhcmVudGx5IHRoaXMgZ290IGxvc3Qgd2hpbGUgcmVmYWN0b3JpbmcgcHJvYmVzLgoKMjAxMS0xMC0xNyAxNzowMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHRoZSBtZW1vcnkgZnJvbSB0aGUgdG1wYnVmCgkgIFdlIHVzZSBhIHRtcGJ1ZiB0byBob2xkIGEgdGVtcG9yYXJ5IHBvaW50ZXIgdG8gdGhlIGFkYXB0ZXIgbWVtb3J5LiBXZSBuZWVkIHRvCgkgIHJlbW92ZSB0aGF0IG1lbW9yeSB3aGVuIHdlIG5vIGxvbmdlciBuZWVkIGl0LgoKMjAxMS0xMC0xNyAxMzo1NTozNSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCByYWNlIGNvbmRpdGlvbiBhbmQgbWVtb3J5IGxlYWsgaW4gZ3N0X3N0YXRpY19jYXBzX2dldAoJICBUaGlzIHdhcyBsZWFraW5nIHRoZSBQdHJBcnJheSBmcm9tIGNhcHMtPnByaXYsIGFzIHNldCB1cCBieSB0aGUgb3RoZXIgY2FsbCB0bwoJICBnc3RfY2Fwc19pbml0LiBBbHNvLCB0aGUgdGhyZWFkIHNhZmV0eSBpc3N1ZSBwcmVzZW50ZWQgaW4gdGhlIGNvbW1lbnQgYWJvdmUgd2FzCgkgIG5vdCB0YWtlbiBjYXJlIG9mIGFueW1vcmUuIFdlIG5vdyB6ZXJvIHRoZSByZWZjb3VudCBhZ2FpbiB3aGVuIHB1Ymxpc2hpbmcgdGhlCgkgIHN0cnVjdHVyZS4KCSAgRml4ZXMgIzY2MTYyOS4KCjIwMTEtMTAtMTcgMDk6Mjg6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IE1ha2UgQVNTRVJUX01JTklfT0JKRUNUX1JFRkNPVU5UIG1vcmUgdXNlZnVsCgkgIGtub3dpbmcgd2hpY2ggbWluaW9iamVjdCBmYWlsZWQgaGVscHMgdXMgbG9jYXRlIGl0IGluIGRlYnVnIGxvZ3MKCjIwMTEtMTAtMTcgMDk6Mjg6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IE1ha2UgX2NoZWNrX2J1ZmZlcl9kYXRhIGEgYml0IG1vcmUgdmVyYm9zZQoKMjAxMS0xMC0xNyAwOToyNzo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgY2hlY2s6IERvbid0IGxlYWsgdGhlIGZlYXR1cmUgbmFtZQoKMjAxMS0xMC0xNyAwOToyNzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0cmVnaXN0cnk6IERvbid0IGxlYWsgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE2IDIxOjEyOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBnaXZlIHdhdGNoIHNvdXJjZSBhIG5hbWUKCSAgR2l2ZSBvdXIgR1NvdXJjZSBhIG1lYW5pbmdmdWwgbmFtZS4gU291cmNlIG5hbWVzIGNhbiBiZQoJICB1c2VkIGZvciBkZWJ1Z2dpbmcgYW5kIHByb2ZpbGluZywgZm9yIGV4YW1wbGUgd2l0aAoJICBzeXN0ZW10YXAgb3IgZ2RiLgoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE2IDE3OjQyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTYgMTc6MDA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0xNiAxNDo0NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBmaXggbW9yZSBwYXJlbnRfY2xhc3MKCjIwMTEtMTAtMTYgMTQ6MjA6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGV2ZW50LmgKCjIwMTEtMTAtMTYgMTQ6MTc6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGNsZWFuIHVwIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNCAxMjo1NzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhbiB1cCBwYXJlbnRfY2xhc3MgaGFuZGxpbmcKCjIwMTEtMTAtMTQgMDk6MzU6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBnc3RfYnVmZmVyX2pvaW4oKQoKMjAxMS0xMC0xNCAwOToyNzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZSBsaXN0CgoyMDExLTEwLTEzIDE3OjMzOjA2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0eXBvIGluIHRoZSBkb2NzCgoyMDExLTEwLTEzIDE2OjQ4OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBpZiBhbiBlbGVtZW50IGlzIHN0YXRlLWxvY2tlZAoKMjAxMS0xMC0xMyAxNjo0MjoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgbG9nZ2luZzogdXNlIF9PQkpFQ1QgdmFyaWFudHMgbW9yZQoKMjAxMS0xMC0xMyAxMjoyMzo1OSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggY2FwcyBsZWFrCgoyMDExLTEwLTEzIDEwOjE5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2J1ZmZlcl9yZXBsYWNlKCkKCSAgVGhpcyBnaXZlcyB1cyB0eXBlIGNoZWNrcyBieSB0aGUgY29tcGlsZXIgYW5kIG1vcmUgdXNlZnVsIGNvbXBpbGVyIGVycm9ycy4KCjIwMTEtMTAtMTMgMTA6MTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2V2ZW50X3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAwODo1MTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0xMC0xMiAxODoxNDowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEbyBub3QgdW5yZWYgdGhlIGludGVybmFsIHBhZCB0d2ljZQoJICBnX3ZhbHVlX3Vuc2V0IHNob3VsZCBhbHJlYWR5IHVucmVmIHRoZSBpbnRlcm5hbCBwcm94eXBhZCwgbm8KCSAgbmVlZCB0byBkbyBpdCBhZ2FpbgoKMjAxMS0xMC0xMiAxNzoxNzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcm9wZXJseSBhZGp1c3Qgc3RhcnQgdGltZQoJICBXaGVuIHdlIGRvIGEgbm9uLWZsdXNoaW5nIHNlZWsgYW5kIGNsb3NlZCB0aGUgY3VycmVudCBzZWdtZW50LAoJICBtYWtlIHN1cmUgdGhhdCB3ZSBvcGVuIHRoZSBuZXh0IHNlZ21lbnQgZnJvbSB3aGVyZSB3ZSBjbG9zZWQuCgoyMDExLTEwLTEyIDE0OjM3OjMxICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgdHJhbnNmZXIgdHlwZSBmb3IgZ3N0X2V2ZW50X25ld19jYXBzIGFyZ3VtZW50CgkgIFRoZXNlIGFubm90YXRpb25zIGFyZSB1c2VmdWwgdG8gaHVtYW5zIGFzIHdlbGwuLi4KCjIwMTEtMTAtMTIgMTQ6MzQ6MjQgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IGNhcHMgbGVhawoJICBnc3RfZXZlbnRfbmV3X2NhcHMgZG9lcyBub3Qgc3RlYWwgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMuCgoyMDExLTEwLTEyIDEzOjMxOjQ4ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZ3N0X2V2ZW50X25ld19zZWdtZW50IHRyYW5zZmVyIHR5cGUKCjIwMTEtMTAtMTEgMTM6NTQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IEZpeCBtb3JlIGxlYWtzCgoyMDExLTEwLTExIDEzOjUzOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBEb24ndCBsZWFrIGNhcHMKCjIwMTEtMTAtMTEgMTM6NTE6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBhIGNhcHMgbGVhayBhbmQgbW92ZSBhIGNvZGVibG9jawoJICBUaGUgcmVzdWx0IGZyb20gdGhlIGJsb2NrIG9mIGNvZGUgdGhhdCB3YXMgbW92ZWQgd291bGQgb25seSBoYXZlCgkgIGJlZW4gdXNlZCBpZiAncGVlcmNhcHMnIHdhcyBwcmVzZW50LgoKMjAxMS0xMC0xMSAxMzo1MTozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogTW9yZSAndHJhbnNmZXInIGFubm90YXRpb25zCgoyMDExLTEwLTEwIDE5OjQxOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogY2F0Y2ggaW52YWxpZCBpbnN0YW5jZSBzaXplcyBpbiBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEFkZCBndWFyZHMgdG8gY2F0Y2ggb3Zlcmx5IGxhcmdlIGluc3RhbmNlIHNpemVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwOTU1CgoyMDExLTEwLTEwIDE5OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBJdCB3YXMgb25seSByZWFsbHkgdXNlZCBieSBHU1RfQk9JTEVSUExBVEUsIGFuZCB0aGF0IGlzIG5vIG1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTE6NDc6NDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCB0cnlpbmcgdG8gYWxsb2MgZW5vcm1vdXMgYnVmZmVyCgkgIElmIGEgY2xhc3MgZXh0ZW5kaW5nIGJhc2VzcmMgZG9lc24ndCBzZXQgYmxvY2tzaXplLCBiYXNlc3JjCgkgIHdvdWxkIHRyeSB0byBhbGxvY2F0ZSBhIChndWludCktMSBzaXplZCBidWZmZXIsIHdoaWNoIGlzIGVub3Jtb3VzCgkgIGFuZCBsaWtlbHkgd291bGQgZmFpbC4KCSAgQXZvaWQgaXQgYW5kIGVycm9yIG91dC4KCjIwMTEtMTAtMTAgMTc6MTc6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxNzowNDozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IElmIHdlIGRvbid0IGNvbnRyb2wgYSBwYWQvdGVtcGxhdGUsIHJldHVybiBwcm9wZXIgY2FwcwoJICBJZiB0aGVyZSdzIGEgZmlsdGVyLCB3ZSBjYW4gcmV0dXJuIHRoYXQgaW4gX2dldF9jYXBzKCkKCjIwMTEtMTAtMTAgMTY6NTI6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFNwZWNpZnkgdHJhbnNmZXIgZnVsbCBmb3IgZ3N0X3BhZF9nZXRfY2FwcygpCgkgIEl0IGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgcmV0dXJuZWQgY2Fwcy4KCjIwMTEtMTAtMTAgMTE6MDI6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFkZCBkZWJ1ZyB0byBrbm93IHdoYXQgZXZlbnRzIGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVuIHBhZHMKCjIwMTEtMTAtMTAgMTA6Mzg6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFVuc2V0IEVPUyBldmVudCBvbiBGTFVTSF9TVE9QCgoyMDExLTEwLTA3IDExOjQ5OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBEb24ndCBpZ25vcmUgZG93bnN0cmVhbSBGbG93UmV0dXJuIHdpdGggSURMRSBwcm9iZXMKCSAgSWYgcHVzaGdpbiBkb3duc3RyZWFtIHJldHVybmVkIGEgbm9uLW9rIHZhbHVlIChsaWtlIEdTVF9GTE9XX1dST05HX1NUQVRFKSwKCSAgd2UgZG9uJ3Qgd2FudCB0byBlbmQgdXAgcmV0dXJuaW5nIGEgZGlmZmVyZW50IHZhbHVlIChHU1RfRkxPV19PSyBpbiB0aGlzCgkgIGNhc2UpIGlmIElETEUgcHJvYmVzIGFyZSBwcmVzZW50LgoKMjAxMS0xMC0xMCAxMzoyMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjM4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjoyNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6NDk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDExOjM2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCBjb21wYXQgZGVmaW5lIGZvciBVTkVYUEVDVEVECgoyMDExLTEwLTEwIDExOjMzOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDExLTEwLTEwIDExOjMwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0wOSAxMTo0OTo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlc3RzOiB0ZWU6IFJlbWVtYmVyIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIHRvIE5VTEwKCSAgYXBwX3RocmVhZCBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB0byBOVUxMLCBvdGhlcndpc2UgdGVzdHMKCSAgd2lsbCB0cnkgdG8gdXNlIGl0IGFuZCBjcmFzaAoKMjAxMS0xMC0wOCAyMDo1Njo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gZm9yIGNoZWNrLWV4cG9ydHMgc2NyaXB0IGNoYW5nZXMKCjIwMTEtMTAtMDggMjA6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50ZmFjdG9yeTogZG9uJ3QgZXhwb3J0IHByaXZhdGUgX2dzdF9lbGVtZW50Y2xhc3NfZmFjdG9yeSBxdWFyawoKMjAxMS0xMC0wOCAyMDoxNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIF9nc3RfZGVidWdfaW5pdCgpIHByaXZhdGUgZm9yIG5vdwoJICBUaGlzIHdhcyBhIEZJWE1FIGZvciAwLjExLiBJIGd1ZXNzIGEgY2FzZSBjb3VsZCBiZSBtYWRlIHRvIGtlZXAgaXQgYXJvdW5kCgkgIHNlcGFyYXRlbHkgZm9yIGFwcHMgb3IgbGlicmFyaWVzIHRoYXQgb25seSB3YW50IHRvIHVzZSBHU3RyZWFtZXIncyBkZWJ1Z2dpbmcKCSAgc3lzdGVtLCBidXQgaXQgc2VlbXMgbW9yZSBsaWtlbHkgdGhleSdkIGp1c3QgY29weSB0aGUgdHdvIHNvdXJjZSBmaWxlcyBpbnRvCgkgIHRoZWlyIG93biB0cmVlIGlmIHRoZSBjYXNlLiBBbHNvLCB0aGluZ3MgbGlrZSB0eXBlcyB3b3VsZG4ndCBiZSBpbml0aWFsaXNlZAoJICB3aXRob3V0IGdzdF9pbml0KCkuIFdlIGNhbiBzdGlsbCBtYWtlIGl0IHB1YmxpYyBhZ2FpbiBpZiBhbnlvbmUgbmVlZHMgaXQsCgkgIGJ1dCB0aGVuIHdlIHNob3VsZCBtYWtlIGl0IGEgcHJvcGVyIGZ1bmN0aW9uIGFuZCBub3QgaGlkZSBpdCBiZWhpbmQKCSAgdW5kZXJzY29yZXMuCgoyMDExLTEwLTA4IDE5OjU0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gc3ltYm9sLWV4cG9ydHMKCjIwMTEtMTAtMDggMTQ6MTc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBnc3RwYXJzZTogcHJlZml4IGdlbmVyYXRlZCBwYXJzZXIgZnVuY3Rpb25zIHNvIHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkCgkgIERvbid0IGV4cG9ydCB0aG9zZSAzNS1zb21ldGhpbmcgcmFuZG9tIF9nc3RfcGFyc2VfeXkqIHN5bWJvbHMuIFRoZXNlIHdlcmUKCSAgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcyBhbmQgYWxzbyBibGFja2xpc3RlZCBmcm9tIG91ciAuZGVmIGZpbGVzLCBpbgoJICBjYXNlIGFueW9uZSB3b25kZXJzLgoKMjAxMS0xMC0wOCAxMzozNzowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IHJlbmFtZSBfX2dzdF9kZWJ1Z18qIHRvIF9nc3RfZGVidWdfKiBhbmQgZml4IHN5bWJvbCBleHBvcnQgcmVnZXhwCgkgIE9ubHkgZXhwb3J0IEdTdHJlYW1lciBzeW1ib2xzIHdpdGggb25lIGxlYWRpbmcgdW5kZXJzY29yZSwgbm90IHR3bwoJICBvciBtb3JlIGxlYWRpbmcgdW5kZXJzY29yZXMuCgkgIFJlcXVpcmVzIGEgcmVidWlsZCBvZiB0aGUgZW50aXJlIHN0YWNrLCBzb3JyeS4KCjIwMTEtMTAtMDggMTU6MTY6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGRvYwoKMjAxMS0xMC0wOCAxNDoyNTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDggMTQ6MjM6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA4IDEyOjA4OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wOCAwOTo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0wOCAwOToyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMTAtMDcgMDk6NDU6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVXNlIHBpcGVsaW5lIGNhdGVnb3J5IGZvciBvbmUgbW9yZSBsb2cgbWVzc2FnZQoJICBNYWtlcyBkZWJ1Z2dpbmcgZWFzaWVyLgoKMjAxMS0xMC0wNyAxNjozNjoxMCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBHU1RfUFRSX0ZPUk1BVDogQWRkIEdzdEJ1ZmZlciBwdHIgZm9ybWF0IGFuZCB1c2UgaW4gR1NUX1NDSEVEVUxJTkcKCSAgR3N0QnVmZmVyIHBvaW50ZXJzIGNhbiBub3cgYmUgcHJpbnRlZCB1c2luZyBHU1RfUFRSX0ZPUk1BVC4gVGhpcyBpcyB1c2VkCgkgIGluIHRoZSB2ZXJ5IHVzZWZ1bCBHU1RfU0NIRURVTElORyBkZWJ1ZyBsb2dzIGluIGdzdHBhZC5jIGFuZCBhbGxvd3MgZm9yCgkgIGVhc2llciBhbmQgbW9yZSBpbmZvcm1hdGlvbiB0cmFja2luZyBvZiBidWZmZXIgcHJvZ3Jlc3MgdGhyb3VnaCBhCgkgIHBpcGVsaW5lIHdpdGgganVzdCBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0xMC0wNyAxMzo1NToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaW4gc2lua3MgdGVzdAoKMjAxMS0xMC0wNyAxMzo1NDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdERhdGFRdWV1ZSBwcml2YXRlIEFQSSBmb3IgbXVsdGlxdWV1ZQoJICBUaGVyZSdzIG5vIGNvZGUgdGhhdCB1c2VzIGl0IG90aGVyIHRoYW4gbXVsdGlxdWV1ZSwgc28gbWFrZSBpdCBwcml2YXRlCgkgIHRvIG11bHRpcXVldWUgZm9yIG5vdy4gVGhhdCB3YXkgd2UgY2FuIGFsc28gZG8gb3B0aW1pc2F0aW9ucyB0aGF0CgkgIHJlcXVpcmUgQVBJL0FCSSBicmVha3MuIElmIGFueW9uZSBldmVyIHdhbnRzIHRvIHVzZSBpdCwgd2UgY2FuIHN0aWxsCgkgIG1ha2UgaXQgcHVibGljIGFnYWluLgoKMjAxMS0xMC0wNiAxNzoyNzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDYgMTc6MjY6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDYgMTQ6MzQ6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZW5kIGR1cmF0aW9uIG1lc3NhZ2Ugd2hlbiB1cGRhdGluZyBpbnRlcm5hbCBkdXJhdGlvbgoKMjAxMS0xMC0wNiAxNDowNDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxMDo1OTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA1IDIwOjA2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA1IDEzOjQzOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIHN0YXR1cwoKMjAxMS0xMC0wNSAxMToyMDozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBnc3RidWZmZXJwb29sOiBVc2UgZ2xpYiBjb21wYXQgbWFjcm9zIGZvciBhdG9taWMgcG9pbnRlcnMKCjIwMTEtMTAtMDQgMTg6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxODo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMDQgMTg6Mzg6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogcG9ydCB0byAwLjExCgoyMDExLTEwLTA0IDE3OjM5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wNCAxNzozNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA0IDE1OjU1OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnc3RldmVudDogc3BlY2lmeSAodHJhbnNmZXIpIGZvciBnc3RfZXZlbnRfbmV3X3NlZ21lbnQKCjIwMTEtMTAtMDQgMTM6MTY6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggc29tZSBtb3JlIDAuMTEgZml4bWVzCgkgIGRvbid0IGFsbG93IHNwYWNlcyBpbiBzdHJ1Y3R1cmUgbmFtZXMgYW5kIGZpeCB1bml0IHRlc3RzLgoKMjAxMS0wNi0wMyAxMjo0MzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWFsbG9jYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jCgkgIE1vdmUgdGhlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYyBmcm9tIGRyYWZ0IHRvIHBhcnQgYW5kIG1lcmdlIGl0IHdpdGgKCSAgdGhlIGFsbG9jYXRpb24gZHJhZnQuCgoyMDExLTA2LTAzIDEyOjQwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWFrZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgdG8gd2FpdAoJICBUaGUgbW9zdCBjb21tb24gY2FzZSBpcyB0byBub3Qgc3BlY2lmeSBhbnkgZmxhZ3Mgd2hlbiBkb2luZyB0aGUgYWxsb2NhdGlvbi4gTWFrZQoJICB0aGUgYWxsb2NhdGlvbiBmcm9tIGEgcG9vbCB3aXRoIGEgbWF4aW11bSBhbW91bnQgb2YgYnVmZmVycyBibG9jayBieSBkZWZhdWx0IGZvcgoJICB0aGlzIHJlYXNvbi4KCjIwMTEtMDYtMDMgMTE6MTU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDYtMDIgMTk6MjQ6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBjYXBzIGV2ZW50IGluc3RlYWQgb2Ygc2V0Y2FwcwoKMjAxMS0wNi0wMiAxOToyMzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBzZXRjYXBzIGZ1bmN0aW9ucwoJICBSZW1vdmUgdGhlIHNldGNhcHMgZnVuY3Rpb25zLCBpdCBpcyBub3cgaGFuZGxlZCB3aXRoIHRoZSBjYXBzIGV2ZW50LgoKMjAxMS0wNi0wMiAxODoyODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBwYXNzIHRoZSByaWdodCBhbGlnbm1lbnQKCjIwMTEtMDYtMDIgMTg6Mjg6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW1vcnk6IHNtYWxsIGNsZWFudXAKCjIwMTEtMDYtMDIgMTg6MTM6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGFsaWdubWVudCBjYWxjdWxhdGlvbnMKCSAgRml4IHRoZSBhbGlnbm1lbnQgY2FsY3VsYXRpb24uCgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbi4KCjIwMTEtMDYtMDIgMTg6MTM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBwb29sOiBkZWJ1ZyB0aGUgY29uZmlnCgoyMDExLTA2LTAyIDE1OjM4OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiByZW1vdmUgc29tZSBtYWNyb3Mgbm93IGluIGdsaWIKCSAgV2UgZGVwZW5kIG9uIHRoZSByaWdodCBnbGliIG5vdwoKMjAxMS0wNi0wMiAxNTozODoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggYSBGSVhNRQoKMjAxMS0wNi0wMiAxNTozODowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIGdfcHJpbnRlcnIoKSBhcyBzdGF0ZWQgaW4gdGhlIEZJWE1FCgoyMDExLTA2LTAyIDE1OjM3OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc21hbGwgY2xlYW51cHMKCjIwMTEtMDYtMDIgMTQ6MDk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBpbmxpbmUgdGhlIHJlY3Vyc2ljZSBzdGF0ZSBsb2NrCgoyMDExLTA2LTAyIDEzOjQ2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5saW5lIHRoZSByZWN1cnNpdmUgc3RyZWFtIGxvY2sKCjIwMTEtMDYtMDIgMTM6MzU6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgdW51c2VkIGZpZWxkcyBhbmQgbWV0aG9kcyBhbmQgc2lnbmFscwoKMjAxMS0wNi0wMiAxMzoyMzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IGdzdF92YWx1ZV9maXhhdGUgaW5zdGVhZAoJICBVc2UgdGhlIG5ldyBnc3RfdmFsdWVfZml4YXRlKCkgZnVuY3Rpb24gaW5zdGVhZCBvZiBvdXIgb3duIHZlcnNpb24uCgoyMDExLTA2LTAyIDEzOjIxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogYWRkIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIHZhbHVlCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIEdWYWx1ZS4gVGhpcyBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhcyBpcyBpbiBHc3RQYWQuCgoyMDExLTA2LTAyIDEzOjE4OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVtb3ZlIHNvbWUgY3VzdG9tIHJlZmNvdW50aW5nIG1ldGhvZHMKCSAgUmVtb3ZlIHNvbWUgY3VzdG9tIG1hZGUgcmVmY291bnRpbmcgbWV0aG9kcyBhbmQgdXNlIHRoZSBtaW5pb2JqZWN0IG9uZXMgaW5zdGVhZC4KCjIwMTEtMDYtMDIgMTI6NDA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb3B0aW1pemUgbGlua2luZwoJICBPcHRpbWl6ZSBsaW5raW5nIGJ5IG9ubHkgcmVsZWFzaW5nIHRoZSBwYWQgbG9ja3Mgd2hlbiB0aGVyZSBhcmUgbGluayBmdW5jdGlvbnMKCSAgaW5zdGFsbGVkIG9uIHRoZSBwYWRzLgoJICBBZGQgc29tZSBHX0xJS0VMWSBoZXJlIGFuZCB0aGVyZS4KCSAgTW92ZSBlcnJvciBwYXRocyBvdXQgb2YgdGhlIG1haW4gY29kZSBmbG93LgoKMjAxMS0wNi0wMiAxMjozOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBkZXByZWNhdGVkIGhhdmUtZGF0YSBzaWduYWwKCjIwMTEtMDYtMDIgMTE6MjE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGlkbGUgcHJvYmUgZm9yIHB1bGwgbWV0aG9kIHRvbwoKMjAxMS0wNi0wMiAxMTowMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtb3JlIGNsZWFudXBzCgkgIFVzZSBtaW5pb2JqZWN0IHVucmVmIHdoZW4gd2UgY2FuCgkgIFJldXNlIGV4aXN0aW5nIGRhdGEgdHlwZSBpZGVudGlmaWVyIGluc3RlYWQgb2YgYW4gZXh0cmEgYm9vbGVhbi4KCjIwMTEtMDYtMDEgMTk6NDc6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgoyMDExLTA2LTAxIDE5OjI3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogZnVydGhlciBpbXByb3ZlIHByb2JlcyBhbmQgcGFkIGJsb2NraW5nCgkgIEtlZXAgdHJhY2sgb2YgaW5zdGFsbGVkIG51bWJlciBvZiBwcm9iZXMgdG8gc2hvcnRjdXQgZW1pc3Npb24uCgkgIEFsbG93IE5VTEwgY2FsbGJhY2tzLCB0aGlzIGlzIHVzZWZ1bCBmb3IgYmxvY2tpbmcgcHJvYmVzLgoJICBJbXByb3ZlIHByb2JlIHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgbWFzaywgYW4gZW1wdHkgbWFzayBmb3IgdGhlIGRhdGEgb3IgdGhlCgkgIHNjaGVkdWxpbmcgZmxhZ3MgZXF1YWxzIHRoYXQgYWxsIHByb2JlcyBtYXRjaC4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBEb24ndCBjaGVjayB0aGUgZmx1c2hpbmcgZmxhZyBpbiB0aGUgcHJvYmUgY2FsbGJhY2sgaGFuZGxlciwgdGhpcyBuZWVkcyB0byBiZQoJICBkb25lIGJlZm9yZSBjYWxsaW5nIHRoZSBoYW5kbGVyLgoJICBGaXggYmxvY2tpbmcgcHJvYmVzLgoJICBGaXggdW5pdCB0ZXN0cwoKMjAxMS0wNS0zMSAxOToxNjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBhZDogaW1wbGVtZW50IHBhZCBibG9jayB3aXRoIHByb2JlcwoKMjAxMS0wNS0zMCAxOTowMzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICB1dGlsczogcmVtb3ZlIF9mdWxsIHZhcmlhbnRzIG9mIHByb2JlcwoJICBSZW1vdmUgdGhlIF9mdWxsIHZhcmlhbnRzIGFuZCBhZGQgdGhlIGRlc3Ryb3kgbm90aWZ5IHRvIHRoZSByZWd1bGFyIG1ldGhvZHMuCgoyMDExLTA2LTAxIDE1OjI5OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkgIGNoZWNrL2FiaTogSWdub3JlIEdzdFhNTCogb24gYXJtIHdoZW4gbm90IHByZXNlbnQKCjIwMTEtMDUtMzEgMTg6MzE6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIGxvY2FsIHByaXYgdmFyaWFibGUgaW5zdGVhZCBvZiB0cmFucy0+cHJpdgoKMjAxMS0wNS0zMSAxODozMDo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCSAgYmFzZSBpcyB1bmNvbmRpdGlvbmFsbHkgd3JpdHRlbiBhIGNvdXBsZSBvZiBsaW5lcyBiZWxvdwoKMjAxMS0wNS0zMSAxODozMDozMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBnc3Q6IFJlbW92ZSBvYnZpb3VzIGRlYWQgYXNzaWdubWVudHMKCjIwMTEtMDUtMzEgMTM6NDM6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoKMjAxMS0wNS0zMCAxODoyOTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJld29yayBwYWQgYmxvY2tpbmcsIGFub3RoZXIgYXR0ZW1wdAoJICBNYWtlIHRoZSBQYWRCbG9jayBjYWxsYmFjayB0YWtlIGEgR3N0QmxvY2tUeXBlIHBhcmFtZXRlciB0byBoYW5kbGUgdGhlIGRpZmZlcmVudAoJICBraW5kIG9mIHN0YWdlcyBpbiB0aGUgcGFkIGJsb2NrLiBUaGlzIHByb3ZpZGVzIGZvciBtb3JlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkgIGluIHRoZSBwYWQgYmxvY2sgQVBJLgoJICBTZXBhcmF0ZSBibG9ja2luZyBhbmQgdW5ibG9ja2luZyBpbnRvIGRpZmZlcmVudCBtZXRob2RzLCBvbmx5IGJsb2NraW5nIGNhbiBkbyBhCgkgIGNhbGxiYWNrLCB1bmJsb2NrIGlzIGFsd2F5cyBpbW1lZGlhdGVseS4gQWxzbyByZW1vdmVkIHN5bmNocm9ub3VzIGJsb2NraW5nLCBpdAoJICBjYW4gYWx3YXlzIGJlIGltcGxlbWVudGVkIHdpdGggYSBjYWxsYmFjay4KCjIwMTEtMDUtMzAgMTM6NDA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IHJld29yayBwYWQgYmxvY2tpbmcsIGZpcnN0IHBhcnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDE1ZGE4OWYzYzlmZTQ2ZmMzMzYxMjM2ZGY5YTNiNzZlNjA3ZTEzOC4KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMDUtMzAgMTI6Mjc6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDUtMzAgMTE6MzM6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IENvbnNpZGVyICIxIiBhbmQgInsxfSIgYXMgZXF1YWwgaW4gZ3N0X3ZhbHVlX2NvbXBhcmUoKQoJICBQcmV2aW91c2x5IHRoaXMgd2FzIG9ubHkgZG9uZSBpbiB0aGUgaXNfc3Vic2V0KCkgY2hlY2sgYnV0CgkgIGhhdmluZyBpdCBvbmx5IHRoZXJlIGJyaW5ncyB1cyBpbnRvIGRlZmluaXRpb24taGVsbCB3aGVyZQoJICAiMSIgYW5kICJ7MX0iIGFyZSBzdWJzZXQgb2YgZWFjaCBvdGhlciBidXQgbm90IGVxdWFsLgoKMjAxMS0wNS0zMCAwNzo0NDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IERvbid0IGFjY2VzcyB0aGUgR3N0TWVzc2FnZSBzdHJ1Y3R1cmUgZGlyZWN0bHkKCjIwMTEtMDUtMzAgMDc6NDE6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0zMCAwNzozNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBzdWJzZXQgY2hlY2sgZm9yIGVxdWl2YWxlbnQgbGlzdHMgYW5kIHNjYWxhciB2YWx1ZXMKCSAgRm9yIGV4YW1wbGUgInsgMSB9IiBhbmQgIjEiIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYnV0CgkgIGJvdGggYXJlIGEgc3Vic2V0IG9mIGVhY2ggb3RoZXIuIEFsc28gYWRkIGEgdW5pdCB0ZXN0CgkgIGZvciB0aGlzLgoKMjAxMS0wNS0yOSAxOToyODozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgZG9jczogZml4IGJ1Z3ppbGxhIFVSTAoJICBodHBwIC0+IGh0dHAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MTM2MgoKMjAxMS0wNS0yOCAxMDoyNDozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogeHJlZnMgbW9yZSBhcGkgYXJvdW5kIEdzdFN0YXRlQ2hhbmdlIGFuZCBHc3RTdGF0ZUNoYW5nZVJldHVybi4KCjIwMTEtMDUtMjggMDk6NTE6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvY3M6IHhyZWYgdGhlIGFzeW5jIG1lc3NhZ2VzIHRvIEdzdFN0YXRlQ2hhbmdlCgoyMDExLTA1LTI3IDE3OjIwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHBhZCBibG9ja2luZywgZmlyc3QgcGFydAoJICBNYWtlIHBhZCBibG9jayBjYWxsIHRoZSBjYWxsYmFjayBhcyBzb29uIGFzIHRoZSBwYWQgaXMgbm90IGluIHVzZS4gVGhpcyBtYWtlcyBpdAoJICBwb3NzaWJsZSB0byBtYWtlIHN1cmUgdGhhdCB3aGVuIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQsIG5vIGFjdGl2aXR5IGlzIGhhcHBlbmluZwoJICBvbiB0aGUgcGFkIGFuZCB0aGF0IG5vIGFjdGl2aXR5IHdpbGwgZXZlciBoYXBwZW4gdW50aWwgdGhlIHBhZCBpcyB1bmJsb2NrZWQKCSAgYWdhaW4uIFRoaXMgbWFrZXMgcGFkIGJsb2NraW5nIHdvcmsgd2hlbiB0aGVyZSBpcyBubyBkYXRhZmxvdyBvciBhZnRlciBFT1MgYW5kCgkgIGdyZWF0bHkgaGVscHMgZHluYW1pYyBwaXBlbGluZXMuCgkgIE1vdmUgdGhlIHByb2JlIGhhbmRsaW5nIHJpZ2h0IHdoZXJlIHdlIHdhaXQgb24gdGhlIHBhZCBibG9jay4gVGhlIHR3byBhcmUKCSAgcmVsYXRlZCBidXQgbm90IHRoZSBzYW1lIGFuZCB0aGUgcHJvYmUgY2FuIGV2ZW50dWFsbHkgaW5mbHVlbmNlIHRoZSBwYWQKCSAgYmxvY2tpbmcgYXMgd2UnbGwgc2UgbGF0ZXIuCgkgIEZpeCB1cCBzb21lIGJyb2tlbiB1bml0IHRlc3RzIG9yIHRlc3RzIHRoYXQgZmFpbCB3aXRoIHRoZSBuZXcgYmVoYXZpb3VyLgoKMjAxMS0wNS0yNyAxNzoxODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIGRlcHJlY2F0ZWQgY2xlYW4gc2h1dGRvd24gbWV0aG9kCgoyMDExLTA1LTI3IDE0OjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBkZWFjdGl2YXRlIHRoZSBwYWQgYWZ0ZXIgcmVtb3ZpbmcgaXQKCSAgV2hlbiByZWxlYXNpbmcgdGhlIHJlcXVlc3QgcGFkLCBmaXJzdCByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCBhbmQgdGhlbgoJICBkZWFjdGl2YXRlIGl0LiBJZiB3ZSBkbyBpdCB0aGUgb3RoZXIgd2F5IGFyb3VuZCwgYSBnc3RfcGFkX3B1c2ggb24gdGhlIGVsZW1lbnQKCSAgbWlnaHQgcmV0dXJuIHdyb25nLXN0YXRlIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gZGV0ZWN0IHRoZSByZW1vdmVkIHBhZCBpbiB0aGUKCSAgY2hhaW4gZnVuY3Rpb24uCgoyMDExLTA1LTI3IDE1OjE0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGNhdGNoIGFuZCBwcmludCBtaXNzaW5nLXBsdWdpbiBtZXNzYWdlcyBpbiBnc3QtbGF1bmNoCgkgIFNvIHRoYXQgdXNlcnMgZ2V0IHNvbWUgZmVlZGJhY2sgaWYgdGhleSdyZSB1c2luZyBhIHBpcGVsaW5lCgkgIGxpa2UgIHNyYyAhIGRlY29kZWJpbjIgISBzaW5rICBhbmQgYXJlIG1pc3NpbmcgYW4gZWxlbWVudC4KCjIwMTEtMDUtMjcgMTQ6MDI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBmb3IgU0VHTUVOVCBldmVudCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNyAxMzo1ODoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI3IDEzOjU1OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfaXNfc3Vic2V0X3N0cnVjdHVyZSgpCgkgIEFQSTogZ3N0X2NhcHNfaXNfc3Vic2V0X3N0cnVjdHVyZSgpCgkgIFRoaXMgYWxsb3dzIHRvIGNoZWNrIGlmIGEgc3RydWN0dXJlIGlzIGEgc3Vic2V0IG9mIGdpdmVuCgkgIGNhcHMgd2l0aG91dCBhbGxvY2F0aW5nIGEgbmV3IGNhcHMgaW5zdGFuY2UgZm9yIGl0LgoKMjAxMS0wNS0yNyAxMzo0NzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfaXNfc3Vic2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX3N1YnNldCgpCgoyMDExLTA1LTI3IDEzOjM4OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpCgkgIC4uYW5kIGFzIGEgcmVzdWx0IGdzdF9jYXBzX2lzX2VxdWFsKCkgYW5kIG90aGVycy4KCSAgVGhpcyBub3cgb25seSBjaGVja3MgaWYgZm9yIGV2ZXJ5IHN1YnNldCBzdHJ1Y3R1cmUgdGhlcmUgaXMKCSAgYSBzdXBlcnNldCBzdHJ1Y3R1cmUgaW4gdGhlIHN1cGVyc2V0IGNhcHMuIFByZXZpb3VzbHkgd2Ugd2VyZQoJICBzdWJ0cmFjdGluZyBvbmUgZnJvbSBhbm90aGVyLCBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyBjYXBzCgkgIGFuZCB0aGVuIGV2ZW4gc2ltcGxpZmllZCB0aGVtLgoJICBUaGUgbmV3IGltcGxlbWVudGlvbiBub3cgaXMgYWJvdXQgMS4yNyB0aW1lcyBmYXN0ZXIgYW5kIGRvZXNuJ3QKCSAgYnJlYWsgdGhlIC1iYXNlIHVuaXQgdGVzdHMgYXJlIGFueXRoaW5nIGFueW1vcmUuCgoyMDExLTA1LTI3IDEzOjM3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBzdWJzZXQgY2hlY2sgaW4gZ3N0X2NhcHNfbWVyZ2UoKQoJICBDYXBzIEEgYXJlIGEgc3Vic2V0IG9mIGNhcHMgQiBldmVuIGlmIGNhcHMgQiBkb2Vzbid0CgkgIGhhdmUgYWxsIGZpZWxkcyBvZiBjYXBzIEEuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzLgoKMjAxMS0wNS0yNyAxMjo1NjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBSZXZlcnQgImNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMyMjQ4YTliODUyYmNiNTY4YTViNjQyMjk5ZWNjOGU1YmY0OGVhMTMuCgkgIFRoaXMgYnJlYWtzIHNvbWUgdGVzdHMgaW4gLWJhc2UgYW5kIHRoZSBmYWlsdXJlcyBzaG91bGQKCSAgYmUgZml4ZWQgZmlyc3QuCgoyMDExLTA1LTI3IDEyOjQ1OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE9wdGltaXplIGdzdF9jYXBzX2lzX3N1YnNldCgpCgkgIC4uYW5kIGFzIGEgcmVzdWx0IGdzdF9jYXBzX2lzX2VxdWFsKCkgYW5kIG90aGVycy4KCSAgVGhpcyBub3cgb25seSBjaGVja3MgaWYgZm9yIGV2ZXJ5IHN1YnNldCBzdHJ1Y3R1cmUgdGhlcmUgaXMKCSAgYSBzdXBlcnNldCBzdHJ1Y3R1cmUgaW4gdGhlIHN1cGVyc2V0IGNhcHMuIFByZXZpb3VzbHkgd2Ugd2VyZQoJICBzdWJ0cmFjdGluZyBvbmUgZnJvbSBhbm90aGVyLCBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyBjYXBzCgkgIGFuZCB0aGVuIGV2ZW4gc2ltcGxpZmllZCB0aGVtLgoJICBUaGUgbmV3IGltcGxlbWVudGlvbiBub3cgaXMgYWJvdXQgMS4yNyB0aW1lcyBmYXN0ZXIuCgoyMDExLTA1LTI3IDExOjQ1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEcm9wIHN0aWNreSBldmVudHMgcHVzaGVkIG9uIGZsdXNoaW5nIHNyY3BhZHMgaW5zdGVhZCBvZiBhY3RpdmF0aW5nIHRoZW0gaW1tZWRpYXRlbHkKCjIwMTEtMDUtMjYgMTQ6NTY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFBhc3MgdGhlIGNvbXBsZXRlIGNhcHMgdG8gdHJhbnNmb3JtX2NhcHMKCSAgSW5zdGVhZCBvZiBwYXNzaW5nIGl0IHN0cnVjdHVyZSBieSBzdHJ1Y3R1cmUuIFRoaXMgYWxsb3dzCgkgIGJldHRlciBvcHRpbWl6ZWQgdHJhbnNmb3JtX2NhcHMgZnVuY3Rpb25zIGFuZCBhbGxvd3MgYmV0dGVyCgkgIHRyYW5zZm9ybWF0aW9uIGRlY2lzaW9ucy4KCSAgU2VlIGJ1ZyAjNjE5ODQ0LgoKMjAxMS0wNS0yNyAwOTowNTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCBhbiB1cGRhdGUgTkVXU0VHTUVOVCBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBkdXJhdGlvbiBjaGFuZ2VzCgkgIFRoaXMgYWxsb3dzIHN0cmVhbWluZyB0aGUgY29tcGxldGUgZmlsZSBmb3IgZmlsZXMgdGhhdCBoYXZlIGdyb3duIHNpbmNlCgkgIHN0cmVhbWluZyBzdGFydGVkLgoJICBGaXhlcyBidWcgIzY0Nzk0MC4KCjIwMTEtMDUtMjYgMTk6NDU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgX3B1c2hfZXZlbnQKCSAgUmV3b3JrIF9wdXNoX2V2ZW50KCkgYSBsaXR0bGUgc28gdGhhdCBpdCBkcm9wcyBldmVudHMgb24gYmxvY2tpbmcgcGFkcy4KCSAgTWFrZSBzdXJlIHRoYXQgZXZlbnRzIGFyZSBmb3J3YXJkZWQgd2hlbiB3ZSB1bmJsb2NrLgoJICBBZGQgY291bnRlciBvbiB0aGUgcGFkIHRvIGtlZXAgdHJhY2sgb2YgYnVzeSBwYWRzLgoKMjAxMS0wNS0yNiAxODoyMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBwcmUgYW5kIHBvc3QgY2hhaW4gY29kZQoKMjAxMS0wNS0yNiAxNzo1MDoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBrZWVwIGNvdW50ZXIgZm9yIGFjdGl2ZSBwYWRzCgkgIEtlZXAgYSBjb3VudGVyIHRvIG1hcmsgdGhlIGFtb3VudCBvZiB0aHJlYWRzIGN1cnJlbnRseSBwdXNoaW5nIGRhdGEgb24gdGhlIHBhZC4KCjIwMTEtMDUtMjYgMTc6Mzk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgcHJlIHB1c2ggY29kZQoJICBSZWZhY3RvciB0aGUgY29kZSB0aGF0IGlzIGV4ZWN1dGVkIGFzIHRoZSBmaXJzdCBzdGVwIG9mIGEgcHVzaCBvcGVyYXRpb24gd2hlcmUKCSAgd2UgY2hlY2sgdGhlIHByb2JlcyBhbmQgYmxvY2tpbmcgYW5kIHJlc29sdmUgdGhlIHBlZXIuCgoyMDExLTA1LTI2IDE3OjA4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogcmVtb3ZlIHBhZCBjYWNoZQoJICBSZW1vdmUgdGhlIHBhZCBjYWNoZSBhcyB0aGlzIGlzIGdvaW5nIHRvIGJlIHJld29ya2VkIGZvciBuZXcgcGFkIGJsb2NraW5nIGFuZAoJICBwcm9iZXMuCgoyMDExLTA1LTI2IDE2OjQ4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IGhhbmRsaW5nIG9mIGJ1ZmZlciBsaXN0cwoJICBJbXBsZW1lbnQgYSBkZWZhdWx0IGJ1ZmZlci1saXN0IGZ1bmN0aW9uIGluIGNhc2UgdGhlIGVsZW1lbnQgZG9lc24ndCBpbXBsZW1lbnQKCSAgb25lLgoJICBBbHNvIHBhc3MgYnVmZmVyLWxpc3RzIHRvIHRoZSBoYXZlLWRhdGEgc2lnbmFsLCB0aGlzIGFsbG93cyB1cyB0byByZW1vdmUgc29tZQoJICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGNvZGUuCgoyMDExLTA1LTI2IDE2OjE1OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIG9sZCBnc3RfcGFkX3NldF9ibG9ja2VkIG1ldGhvZHMKCjIwMTEtMDUtMjYgMTQ6MTQ6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIHB1c2hzcmM6IEZpeCBpbmZpbml0ZSByZWN1cnNpb24gaW4gcHVzaHNyYyBxdWVyeSBoYW5kbGVyCgoyMDExLTA1LTI2IDEzOjM2OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjUgMTY6MDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IHdlIGNhbiBub3cgdXNlIEdMaWIgMi4yNCBBUEkgdW5jb25kaXRpb25hbGx5CgoyMDExLTA1LTI1IDE1OjU0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gPj0gMi4yNAoJICBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTEtMDUtMjUgMTU6Mzg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdXBkYXRlIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIGZvciBnbm9tZSBjaGFuZ2UKCjIwMTEtMDUtMjUgMTM6NDA6MzAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBQbGFjYXRlIGdjYyBieSBkZWZpbmluZyBFV09VTERCTE9DSyB0byBzb21ldGhpbmcKCjIwMTEtMDUtMjUgMTI6NDc6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IFdBS0VfRVZFTlQoKSB0byBiZWhhdmUgcG9zaXhseSBvbiBXaW5kb3dzCgoyMDExLTA1LTI0IDIwOjI4OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgcmVnaXN0cnliaW5hcnk6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSB1bm5lZWRlZCBicmFjZXMgZnJvbSBzdHJpbmcgZGVmaW5lLiBTbWFsbCBkb2MgaW1wcm92ZW1lbnQuCgoyMDExLTA1LTI0IDIwOjI3OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogdXNlIGd1aW50IGZvciB0aGUgdmVyc2lvbiBudW1iZXIgcGFydHMKCSAgVXNlIHVuc2lnbmVkIGludGVnZXJzIGZvciBleHRyYSBzYWZldHkgKGxpa2Ugd2UgZG8gaW4gcGx1Z2luIHZlcnNpb24gcGFyc2luZykuCgoyMDExLTA1LTI0IDE4OjM5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHJlbW92ZSBzb21lIG1vcmUgZGVwcmVjYXRlZCBtZXRob2RzCgoyMDExLTA1LTI0IDE4OjI5OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiByZW1vdmUgdW51c2VkIGZsYWcKCjIwMTEtMDUtMjQgMTg6MTc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBmZWF0dXJlOiB1c2Ugb2JqZWN0IG5hbWUKCSAgUmVtb3ZlIHRoZSBuYW1lIHByb3BlcnR5IGZyb20gdGhlIHBsdWdpbiBmZWF0dXJlIGFuZCBwb3J0IGNvZGUgdG8gdXNlIHRoZSBvYmplY3QKCSAgbmFtZSBpbnN0ZWFkLgoKMjAxMS0wNS0yNCAxODoxNjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICByZW1vdmUgb2xkIGdsaWIgY2hlY2sKCjIwMTEtMDUtMjQgMTc6NDM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI0IDE3OjM2OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHNjaGVkdWxpbmc6IHBvcnQgdG8gbmV3IHNjaGVkdWxpbmcgcXVlcnkKCjIwMTEtMDUtMjQgMTI6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBTQ0hFRFVMSU5HIHF1ZXJ5CgkgIEFkZCBhIG5ldyBxdWVyeSB0byByZXBsYWNlIHRoZSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uLgoKMjAxMS0wNS0yNCAxOTo0Mzo1OCArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfaW50NjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDk3MwoKMjAxMS0wNS0yNCAxNjoxNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gbmV3bHkgY3JlYXRlZCBzcmNwYWRzCgoyMDExLTA1LTI0IDE2OjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIG5ld2x5IGNyZWF0ZWQgc3JjcGFkcwoKMjAxMS0wNS0yNCAxNjowODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZ3N0X3BhZF9zdGlja3lfZXZlbnRzX2l0ZXJhdGUoKSBmdW5jdGlvbgoKMjAxMS0wNS0yNCAxMzoyNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI0IDEzOjI4OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJldmVydCAiZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlMWNjMzE3NmQ2ZmI4MDIzYmJlMGM3MzM2MTViMmE4YzQyMGEyMDc3LgoJICBUaGlzIGlzIG5vdCB0aGUgMC4xMSBicmFuY2guLi4KCjIwMTEtMDUtMjQgMTM6Mjc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNCAwOTo0ODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmgKCjIwMTEtMDUtMjQgMDA6MjY6NDAgKzAzMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGNpdGEudXRvcm9udG8uY2E+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGltcHJvdmUgdGhlIEdTVF9USU1FX0ZPUk1BVC9BUkdTIGRvY3MKCjIwMTEtMDUtMjMgMjM6NDA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogaGlkZSB0aGlzIGZyb20gdGhlIGRvY3MKCjIwMTEtMDUtMjMgMTg6MzA6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHVzZSBHU1RfU0VHTUVOVF9GT1JNQVQgZm9yIHNlZ21lbnRzCgoyMDExLTA1LTIzIDE4OjE1OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZml4ZXMgZm9yIGJ1ZmZlcnBvb2wgaGFuZGxpbmcKCSAgRG9uJ3QgZXJyb3Igb3V0IHdoZW4gdGhlIGFsbG9jYXRpb24gcXVlcnkgcmV0dXJucyBzdWNjZXNzLgoJICBEbyBidWZmZXJwb29sIHF1ZXJ5IGFmdGVyIHdlIHB1c2hlZCB0aGUgY2FwcyBldmVudCBkb3duc3RyZWFtIHNvIHRoYXQgd2UgY2FuIGdldAoJICBhIGdvb2QgYnVmZmVycG9vbCBzdWdnZXN0aW9uLgoJICBBbHNvIHByb3h5IHRoZSBidWZmZXJwb29sIHF1ZXJ5IGRvd25zdHJlYW0gd2hlbiB3ZSBvcGVyYXRlIGluIGluX3BsYWNlIG1vZGUuCgoyMDExLTA1LTIzIDE4OjE0OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA1LTIzIDE2OjUzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogcmVzZXQgcmVjb25maWd1cmUgc3RhdGUKCSAgV2hlbiB3ZSBuZWdvdGlhdGUgbmV3IGNhcHMsIHJlc2V0IHRoZSByZWNvbmZpZ3VyZSBzdGF0ZS4KCjIwMTEtMDUtMjAgMTg6NTY6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogV0lQIGhhbmRsZSBidWZmZXJwb29sCgoyMDExLTA1LTIxIDE5OjA2OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIGNhbGxpbmcgX3NldF9jYXBzKCkgb24gdGhlIHNyY3BhZAoJICBBdm9pZCBpbnN0YWxsaW5nIGEgc2V0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgc3JjcGFkIGFuZCBjYWxsaW5nIHRoZSBzZXRjYXBzCgkgIGZ1bmN0aW9uLCB3ZSBjYW4gZG8gbW9yZSBlZmZpY2llbnRseSB3aXRoIHNlbmRpbmcgdGhlIGV2ZW50IG91cnNlbGYgYW5kIGNhbGxpbmcKCSAgb3VyIHZtZXRob2QuCgoyMDExLTA1LTIwIDE2OjAzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luLmgKCjIwMTEtMDUtMjAgMTU6NTg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHNvbWUgbW9yZSBjb2RlCgkgIFJlbW92ZSBzb21lIG1vcmUgdW51c2VkIGNvZGUgZnJvbSBiYXNldHJhbnNmb3JtLgoJICBQcmVwYXJlIGZvciBpbXBsZW1lbnRpbmcgYnVmZmVycG9vbHMuCgoyMDExLTA1LTIwIDE1OjUwOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGFwaQoKMjAxMS0wNS0yMCAxNTo0ODowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRlcHJlY2F0aW9uLWd1YXJkczogZml4dXAgZm9yIGNvbW1pdCA5ZmY0ZWMzMTA0ZDI1MTBiOGYzNzlmZjM4YzY3MTY4MmZmNzk1ZTMzCgkgIFJlbW92ZSB0aGUgZGVwcmVjYXRpb24gZ3VhcmRzIGZvciBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgYWdhaW4gKGV2ZW4gdGhvdWdoIGl0CgkgIGlzIGRlcHJlY2F0ZWQpIGFzIHdlIHVzZSBpdCBpbiB0aGUgdGVzdHMuIFJlbW92ZSAiXyIgZm9yIGludGxpbmtmdW5jLgoKMjAxMS0wNS0yMCAxMzowNjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTIwIDEzOjAzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgcmVpbml0IHRoZSBjYWNoZWQgR3N0Q2xvY2tJRCBpZiBpdCBpcyBmb3IgdGhlIHNhbWUgY2xvY2sKCSAgVGhlIGNsb2NrIG1pZ2h0IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgY2xvY2sgSUQgd2FzIGNyZWF0ZWQgYW5kIGluCgkgIHRoYXQgY2FzZSB3ZSBoYXZlIHRvIHJlcXVlc3QgYSBuZXcgb25lLgoKMjAxMS0wNS0yMCAxMjo0MzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBtZXRob2QgdG8gZ2V0IG1ldGFkYXRhCgkgIEFkZCBhIG1ldGhvZCB0byBnZXQgdGhlIG1ldGFkYXRhIGZyb20gYSBrbGFzcy4KCjIwMTEtMDUtMjAgMTI6NDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZmFjdG9yeTogZml4IHR5cG8KCjIwMTEtMDUtMjAgMTI6MTg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEFsd2F5cyBzZW5kIGEgU0VHTUVOVCBldmVudCB3aGVuIHRoZSBhY3RpdmUgcGFkIGNoYW5nZXMKCjIwMTEtMDUtMjAgMTI6MTY6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBjb3B5JnBhc3RlIG1pc3Rha2UgaW4gdGhlIHNyY3BhZCBldmVudCBmdW5jdGlvbgoKMjAxMS0wNS0yMCAxMjowNzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgoyMDExLTA1LTIwIDEyOjAwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZW5kIHVwc3RyZWFtIGV2ZW50cyB0byBhbGwgc2lua3BhZHMsIG5vdCBvbmx5IHRoZSBzZWxlY3RlZCBvbmUKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgU0VFSyBldmVudHMgYXJlIHNlbnQgdG8gYWxsIHVwc3RyZWFtIGVsZW1lbnRzLCB3aGljaCBpcwoJICByZXF1aXJlZCBpZiBkaWZmZXJlbnQgc3RyZWFtcyBhcmUgY29tcGxldGVseSBkaXN0aW5jdCBwaXBlbGluZSBwYXJ0cy4gQWxzbyB0aGlzCgkgIGFsbG93cyBRb1MgdG8gYmUgZG9uZSBvbiBkZXNlbGVjdGVkIHN0cmVhbXMsIGZsdXNoZXMgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHksCgkgIGV0Yy4KCjIwMTEtMDUtMjAgMTE6MzY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwZW5kaW5nIGV2ZW50IGZvciBzdGlja3kgZXZlbnRzCgkgIENoYW5nZSB0aGUgc3RpY2t5IGV2ZW50IGFycmF5IHNvIHRoYXQgaXQgY29udGFpbnMgYSBwZW5kaW5nIGFuZCBhbiBhY3RpdmUgZXZlbnQuCgkgIEV2ZW50cyBvbiB0aGUgc2lua3BhZCBhcmUgY29waWVkIHRvIHRoZSBwZW5kaW5nIGFycmF5IGFuZCBhZnRlciB0aGUgZXZlbnRmdW5jCgkgIHJldHVybmVkIFRSVUUsIG1vdmVkIHRvIHRoZSBhY3RpdmUgZXZlbnQuIFRoaXMgYWxsb3dzIHVzIHRvIHF1ZXVlIG5ldyBldmVudHMKCSAgbGlrZSB3aGVuIHdlIGRvIHBlci1wYWQgb2Zmc2V0cyB3aXRob3V0IHJlbW92aW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIGV2ZW50LgoJICBSZW1vdmUgdGhlIGFjdGl2ZSBhcmd1bWVudCBmcm9tIHRoZSBnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQoKSBtZXRob2QsIHRoZQoJICBwZW5kaW5nIGV2ZW50cyBhcmUgbm90IHNvbWV0aGluZyB3ZSB3YW50IHRvIGV4cG9zZS4KCjIwMTEtMDUtMjAgMDA6Mzk6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBwcmVzZXQ6IGluY2x1ZGUgY2xlYW51cAoJICBPbmx5IGhhdmUgaW5jbHVkZSBpbiB0aGUgaW5zdGFsbGVkIGhlYWRlciB3ZSBuZWVkIHRvIHVzZSBpdC4gTW92ZSB0aGUgaW5jbHVkZXMKCSAgbmVlZGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgYyBmaWxlLgoKMjAxMS0wNS0xOSAyMzoxOTozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGludHJvc3BlY3Rpb24gZGF0YQoJICBOb3cgbW9yZSBmaWxlcyBhcmUgbWVyZ2VkIGFuZCBwcm9kdWNlZCBpbiBhIGNhbm9uaWNhbCBmYXNoaW9uLCB3aGljaCBob3BlZnVsbHkKCSAgY3JlYXRlcyBsZXNzIG9yIG5vIGRlbHRhIGluIHRoZSBmdXR1cmUuCgoyMDExLTA1LTE5IDIyOjU2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDllNWJiZDUgdG8gNjliOTgxZgoKMjAxMS0wNS0xOSAxOTowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGNhcHMgYXJlIG5vdCBzdG9yZWQgb24gZmx1c2hpbmcgcGFkcwoJICBDYXBzIGFyZSBub3cgYWxzbyBzdG9yZWQgb24gZmx1c2hpbmcgcGFkcyBpbiB0aGUgaW5hY3RpdmUgc3RhdGUuCgoyMDExLTA1LTE5IDE5OjAxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFwcGx5IHBhZCBvZmZzZXQgb24gc2lua3BhZCBldmVudHMgdG9vCgkgIEFwcGx5IHRoZSBwYWQgb2Zmc2V0IGluIHRoZSBzZW5kX2V2ZW50KCkgZnVuY3Rpb24gYXMgd2VsbC4KCjIwMTEtMDUtMTkgMTg6Mjc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHBlci1wYWQgb2Zmc2V0cwoJICBXaGVuIGxpbmtpbmcgcGFkcyBhbmQgd2hlbiBjb3B5aW5nIGEgc2VnbWVudCBldmVudCBmcm9tIHRoZSBzb3VyYyBwYWQgdG8gdGhlCgkgIHNpbmtwYWQsIGFwcGx5IHRoZSBzcmMgYW5kIHNpbmtwYWQgb2Zmc2V0cyB0byB0aGUgc2VnbWVudCBiYXNlLiBNYWtlIHN1cmUgdGhhdAoJICB3ZSBvbmx5IG1vZGlmeSB0aGUgZXZlbnQgc3RvcmVkIG9uIHRoZSBzaW5rcGFkIGFuZCBuZXZlciB0aGUgb25lIG9uIHRoZSBzb3VyY2UKCSAgcGFkLgoJICBXaGVuIGNoYW5naW5nIHRoZSBwYWQgb2Zmc2V0LCBwZXJmb3JtIHRoZSBzZWdtZW50IGNvcHkgd2l0aCB0aGUgdXBkYXRlZCBvZmZzZXRzLgoJICBXaGVuIHB1c2hpbmcgYSBzZWdtZW50IGV2ZW50LCBhcHBseSB0aGUgc3JjcGFkIG9mZnNldCBiZWZvcmUgc2VuZGluZyB0aGUgZXZlbnQKCSAgdG8gdGhlIHBlZXIgcGFkLgoJICBUaGlzIHBhcnQgaXMgbWlzc2luZyB0aGUgYWRqdXN0bWVudCBvZiB0aGUgc2VnbWVudCBldmVudCBvbiB0aGUgc2lua3BhZCwgd2hpY2gKCSAgaXMgZm9yIGEgbGF0ZXIgcGF0Y2guCgoyMDExLTA1LTE5IDE2OjI2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIG1ldGhvZHMgdG8gYWRqdXN0IHRoZSBvZmZzZXQKCSAgQWRkIG1ldGhvZHMgdG8gYWRqdXN0IHRoZSBvZmZzZXQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgc2VnbWVudCBldmVudHMKCSAgd2l0aCBhbiBvZmZzZXQgc28gdGhhdCB3ZSBjYW4gdHdlYWsgdGhlIHRpbWluZyBvZiB0aGUgc3RyZWFtIG9uIGEgcGVyLXBhZCBiYXNlLgoKMjAxMS0wNS0xOSAxMjoxMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IFBvcnQgdG8gdGhlIG5ldyBzZWdtZW50IEFQSQoJICBUaGUgc3dpdGNoIGFjdGlvbiBzaWduYWwgd2l0aCB0aGUgc3RvcCBhbmQgc3RhcnQgcnVubmluZyB0aW1lcwoJICBpcyBub3QgbmVjZXNzYXJ5IGFueW1vcmUuIENsb3Npbmcgb2Ygc2VnbWVudHMgaXMgbm90IG5lY2Vzc2FyeQoJICBhbmQgYWRqdXN0aW5nIHRoZSBzdGFydCBydW5uaW5nIHRpbWUgb2YgYSBzZWdtZW50IGNhbiBsYXRlciBiZQoJICBkb25lIHdpdGggbmV3IEdzdFBhZCBBUEkuCgoyMDExLTA1LTE5IDExOjMwOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RnaG9zdHBhZC5oCgoyMDExLTA1LTE4IDE5OjQzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcgc2lua3BhZHMgdG9vCgkgIEZpcnN0IHN0b3JlIHRoZSBzdGlja3kgZXZlbnQgb24gdGhlIHNpbmtwYWQgaW4gdGhlIGluYWN0aXZlIHN0YXRlLCB0aGVuIGNoZWNrCgkgIGZvciB0aGUgZmx1c2hpbmcgZmxhZy4gV2Ugd2FudCB0byBoYXZlIHRoZSBldmVudHMgb24gc2lua3BhZHMgYXQgYWxsIHRpbWVzLAoJICByZWFkeSB0byBiZSBhY3RpdmF0ZWQgd2hlbiB0aGUgcGFkIGJlY29tZXMgYWN0aXZlLgoKMjAxMS0wNS0xOCAxODo1MzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtb3ZlIGNhcHMgY2hlY2sgdG8gY2VudHJhbCBsb2NhdGlvbgoJICBNYWtlIGEgZnVuY3Rpb24gdG8gY2FsbCB0aGUgZXZlbnRmdW5jIGFuZCBwZXJmb3JtIGEgY2FwcyBjaGVjayB3aGVuIHdlIGFyZQoJICBkaXNwYXRjaGluZyBhIGNhcHMgZXZlbnQuCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGFsbCBjb2RlIHBhdGhzIGNvcnJlY3RseSBjaGVjayB0aGF0IHRoZSBjYXBzIGFyZQoJICBhY2NlcHRhYmxlIGJlZm9yZSBzZW5kaW5nIHRoZSBjYXBzIHRvIHRoZSBldmVudGZ1bmN0aW9uLgoKMjAxMS0wNS0xOCAxODo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYXZvaWQgY2FsbGluZyBzZXRjYXBzIHRvbyBtYW55IHRpbWVzCgkgIERvbid0IGNhbGwgc2V0Y2FwcywgdGhlIGNhcHMgZXZlbnQgd2lsbCB0YWtlIGNhcmUgb2YgcHJvcGFnYXRpbmcgdGhlIGNhcHMgb24gYWxsCgkgIHBhZHMuCgoyMDExLTA1LTE4IDE4OjQ4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBuYW1lCgkgIEFkZCBBTExPQ0FUSU9OIHF1ZXJ5IG5hbWUgYW5kIGd1YXJkIHNvbWUgZnVuY3Rpb25zIGFnYWluc3QgaW52YWxpZCBxdWVyaWVzLgoKMjAxMS0wNS0xOCAxNjo1NjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IE1ha2UgU0VHTUVOVCBldmVudCBwYXJzaW5nIEFQSSBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXJzCgoyMDExLTA1LTE4IDE2OjQ3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbGF4IGNhcHMgY2hlY2sKCSAgQWxzbyBydW4gdGhlIGNhcHMgdHJhbnNmb3JtIGZ1bmN0aW9uIG9uIEFOWSBjYXBzLCBsaWtlIHdlIHVzZWQgdG8gZG8gYmVmb3JlLgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBjYXBzZmlsdGVyIGhhcyBhIGNoYW5jZSB0byBmaWx0ZXIgQU5ZIGNhcHMgYXMgd2VsbC4KCjIwMTEtMDUtMTggMTY6Mjk6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZvcmdldCB0byB0YWtlIHRoZSBvYmplY3QgbG9jayB3aGVuIGdldHRpbmcgYSBzdGlja3kgZXZlbnQKCjIwMTEtMDUtMTggMTY6MjY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGZ1bmN0aW9uIHRvIGdldCBzdGlja3kgZXZlbnRzIGZyb20gYSBwYWQKCSAgQVBJOiBnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQoKQoKMjAxMS0wNS0xOCAxNTo0MzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBldmVudCBjb3B5CgkgIEZpeCBwYXJlbnQgcmVmY291bnQgb24gZXZlbnQgY29weS4KCSAgRml4IHVuaXQgdGVzdC4KCjIwMTEtMDUtMTggMTU6Mjk6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgcHJvcGVydHkgY2hhbmdlIGluIGNhbGxzZXRjYXBzCgkgIE5vdGlmeSB0aGUgY2FwcyBwcm9wZXJ0eSBjaGFuZ2UgaW4gdGhlIGJhY2t3YXJkcyBjb21wYXRpYmxlIGZ1bmN0aW9uIHRvIGNhbGwgdGhlCgkgIHNldGNhcHMgZnVuY3Rpb24uCgoyMDExLTA1LTE4IDE2OjA5OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZkMzUwNzMgdG8gOWU1YmJkNQoKMjAxMS0wNS0xOCAxNTowNDo0OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIEdzdFByb3h5UGFkIGZyb20gcHJpdmF0ZSBzZWN0aW9uCgoyMDExLTA1LTE4IDE1OjAyOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZG9jczogdXNlIHRoZSBzYW1lIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBpbiBwcm90b3R5cGUgYW5kIGRvY3MKCjIwMTEtMDUtMTggMTQ6NTk6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBwdXQgZ2VuZXJhdGVkIHNvdXJjZXMgdG8gQlVJTFRfU09VUkNFUyBhbmQgY2xlYW4gdGhlbSBvbiBtYWtlIGNsZWFuCgoyMDExLTA1LTE4IDEzOjE5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0xOCAxMzoxNDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbi5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMDUtMTggMTQ6MTA6MTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiByZWluc2VydCBtaXNzaW5nIHNwYWNlIHRvIGZpeCBwcmV2aW91cyBjb21taXQKCjIwMTEtMDUtMTggMTM6NTQ6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBzaW1wbGlmeSB0aGUgc25pcGV0IGV4dHJhY3Rpb24gcnVsZXMKCSAgVXNlICQ8IGluc3RlYWQgb2YgcmVwZWF0aW5nIHRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgoKMjAxMS0wNS0xOCAxMDo1OTozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGRvbid0IGV4dHJhY3QgdGhlIHhtbCBleGFtcGxlIGFueW1vcmUsIGl0cyBnb25lCgkgIEFzIGEgZm9sbG93dXAgZm9yIGNvbW1pdCBjZGE1YTM1M2QyNzMyNmMwMjcyYTc5YzkyYzExYzIyMWE0MDkyZGE0IGRvbid0IHRyeQoJICBleHRyYWN0aW5nIGFuIGV4YW1wbGUgdGhhdCBoYXMgYmVlbiByZW1vdmVkLgoKMjAxMS0wNS0xOCAxMjoyMzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NmRmY2VhIHRvIGZkMzUwNzMKCjIwMTEtMDUtMTggMTE6MjE6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIHNvbWUgbW9yZQoKMjAxMS0wNS0xOCAxMTowODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHN0aWNreSBldmVudHMgYSBsaXR0bGUKCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jcyB3aXRoIHNvbWUgY2xlYXIgcnVsZXMgZm9yIGhvdyBzdGlja3kgZXZlbnRzIGFyZQoJICBoYW5kbGVkLgoJICBSZWltcGxlbWVudCB0aGUgc3RpY2t5IHRhZ3MsIHVzZSBhIHNtYWxsIHN0cnVjdHVyZSB0byBob2xkIHRoZSBldmVudCBhbmQgaXRzCgkgIGN1cnJlbnQgc3RhdGUgKGFjdGl2ZSBvciBpbmFjdGl2ZSkuCgkgIEV2ZW50cyBvbiBzaW5rcGFkcyBvbmx5IGJlY29tZSBhY3RpdmUgd2hlbiB0aGUgZXZlbnQgZnVuY3Rpb24gcmV0dXJuZWQgc3VjY2VzcwoJICBmb3IgdGhlIGV2ZW50LgoJICBXaGVuIGxpbmtpbmcsIG9ubHkgdXBkYXRlIGV2ZW50cyB0aGF0IGFyZSBkaWZmZXJlbnQuCgkgIEF2b2lkIG1ha2luZyBhIGNvcHkgb2YgdGhlIGV2ZW50IGFycmF5LCB1c2UgdGhlIG9iamVjdCBsb2NrIHRvIHByb3RlY3QgdGhlIGV2ZW50CgkgIGFycmF5IGFuZCByZWxlYXNlIGl0IG9ubHkgdG8gY2FsbCB0aGUgZXZlbnQgZnVuY3Rpb24uIFRoaXMgd2lsbCBuZWVkIHRvIGNoZWNrCgkgIGlmIHNvbWV0aGluZyBjaGFuZ2VkLCBsYXRlci4KCSAgRGlzYWJsZSBhIHRlc3QgaW4gdGhlIHVuaXQgdGVzdCwgaXQgY2FuJ3Qgd29yayB5ZXQuCgoyMDExLTA1LTE3IDIyOjE3OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFpbnRhaW4gZnJhbWUgc3RhdGUgZHVyaW5nIGZyYW1lIHBhcnNpbmcgcm91bmQKCSAgU2VlICM2NTAwOTMuCgoyMDExLTA1LTEyIDExOjU1OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBsYXRlbmN5IHF1ZXJ5IHN1cHBvcnQKCjIwMTEtMDUtMTcgMjI6MTU6MzggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIG1pbmltdW0gZnJhbWUgc2l6ZSBoYW5kbGluZyBtb3JlIGVmZmljaWVudCBhbmQgY29udmVuaWVudAoJICBXaGlsZSBzb21lIGZvcm1hdHMgYWxsb3cgc3ViY2xhc3MgdG8gZGV0ZXJtaW5lIGEgc3BlY2lmaWMgc3Vic2VxdWVudAoJICBuZWVkZWQgZnJhbWUgc2l6ZSwgb3RoZXJzIG1heSB0byBuZWVkIHRvIHNjYW4gZm9yIG1hcmtlcnMgYW5kIGNhbiBvbmx5CgkgIHJlcXVlc3QgJ2FkZGl0aW9uYWwgZGF0YScgYnkgd2hhdGV2ZXIgcmVhc29uYWJsZSBhdmFpbGFibGUgc3RlcC4KCSAgSW4gcHVzaCBtb2RlLCB0cnlpbmcgdG8gbWluaW1pemUgYWRkaXRpb25hbCBsYXRlbmN5IGxlYWRzIHRvIHN0ZXAgc2l6ZQoJICBiZWluZyB0aGUgbmV4dCBpbnB1dCBidWZmZXIuICBJbiBwdWxsIG1vZGUsIGFueSByZWFzb25hYmxlIHN0ZXAgc2l6ZQoJICAoc3VjaCBhcyBhbHJlYWR5IHVzZWQgYnkgYnVmZmVyIGNhY2hpbmcpIGNhbiBiZSBhcHBsaWVkLgoKMjAxMS0wNS0xNyAyMjozODoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNldCBjb3JyZWN0IGJ1ZmZlciBzaXplCgoyMDExLTA1LTA2IDEwOjU0OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBzaG93IGZsYWdzIHRoZSBzYW1lIHdheSB0aGV5IG5lZWQgdG8gYmUgZW50ZXJlZAoJICBUaGUgKGRlKXNlcmlhbGlzYXRpb24gdXNlcyAiKyIgYW5kIG5vdCAiIHwgIi4KCjIwMTEtMDQtMjggMTE6MzQ6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcGx1Z2luZmVhdHVyZTogYXZvaWQgZHVwbGljYXRpbmcgZmVhdHVyZS0+bmFtZQoJICBUaGUgZmVhdHVyZSBuYW1lIGlzIG5vdCBzdXBwb3NlZCB0byBjaGFuZ2Ugb3ZlciB0aW1lIGFueXdheS4gSW4gb3JkZXIgdG8gZW5mb3JjZQoJICB0aGlzIHBhcmVudGl6ZSBmZWF0dXJlcyB0byB0aGUgcmVnaXN0cnkgYW5kIG1ha2UgdGhlIGZlYXR1cmUtPm5hbWUgcG9pbnRpbmcgdG8KCSAgR3N0T2JqZWN0Om5hbWUuIEluIDAuMTEgd2UgY291bGQgY29uc2lkZXIgb2YgcmVtb3ZpbmcgdGhlIGZlYXR1cmUtPm5hbWUgdmFyaWFibGUKCSAgKEZJWE1FIGNvbW1lbnQgYWRkZWQpLgoJICBGaXhlczogIzQ1OTQ2NgoKMjAxMS0wNS0wMiAxNTozNjoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBkZXByZWNhdGlvbiBndWFyZHMKCSAgTW92ZSBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gdG8gcHJpdmF0ZSBoZWFkZXIgdG8gYXZvaWQgYSBkb3plbiAjaWZkZWZzLiBVc2UgYQoJICBncG9pbnRlciBpbiBwdWJsaWMgaGVhZGVyIGluc3RlYWQuCgoyMDExLTA1LTE3IDE5OjAzOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHB1c2ggc3RpY2t5IGV2ZW50cyBvbiBmbHVzaAoJICBPbmx5IGFsbG93IHNlcmlhbGl6ZWQgYW5kIG5vbi1mbHVzaCBldmVudHMgZm9yd2FyZCB0aGUgc3RpY2t5IGV2ZW50cy4KCjIwMTEtMDUtMTcgMTg6MjM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdDogcmVzZXQgcGFkIGNhcHMgcHJvcGVybHkKCjIwMTEtMDUtMTcgMTg6MjM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIG1vcmUgZGVidWcKCjIwMTEtMDUtMTcgMTg6MjE6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSB1bnVzZWQgY29kZQoJICBUaGUgY29kZSB0byBtYWtlIHN1cmUgdGhhdCBjYXBzIGFyZSBwcm9wZXJseSBzZXQgb24gYm90aCBwYWRzLCBpdCBub3cgaGFwcGVucwoJICBhdXRvbWF0aWNhbGx5IHdpdGggdGhlIGNhcHMgZXZlbnQuCgoyMDExLTA1LTE3IDE3OjUzOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0cwoJICBSZW1vdmUgdGhlIHRlc3RzIHRoYXQgaGFuZGxlIGluY29tcGF0aWJsZSBmb3JtYXRzLCB3ZSBkb24ndCB3YW50IHRoYXQgYW55bW9yZS4KCjIwMTEtMDUtMTcgMTc6NTE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBoYW5kbGUgd3JhcGFyb3VuZCBiZXR0ZXIKCSAgTm93IHRoYXQgd2UgdXNlIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHNlZ21lbnQsIGhhbmRsZSB3cmFwYXJvdW5kIHdoZW4gc2Vla2luZwoJICBiZXR0ZXIuCgoyMDExLTA1LTE3IDE2OjUwOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSB1bnJlZiwgdGhlIG9iamVjdCBpcyBOVUxMCgoyMDExLTA1LTE3IDE0OjAxOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFRoZSBSRUNPTkZJR1VSRSBlbGVtZW50IG9ubHkgZXhpc3RzIGluIDAuMTEKCSAgSW1wbGVtZW50aW5nIGl0IHByb3Blcmx5IGluIDAuMTAgc2VlbXMgdG8gYmUgaW1wb3NzaWJsZS4KCjIwMTEtMDUtMTcgMTM6MTM6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjoyNToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjA0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjEyOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENvbnNpZGVyIEdzdFBhZFRlbXBsYXRlIGFzIGltbXV0YWJsZQoJICBEb24ndCBjb3B5IHRoZSB0ZW1wbGF0ZXMgd2hlbiBjcmVhdGluZyBzdWJjbGFzc2VzIGJ1dCBvbmx5IGluY3JlYXNlCgkgIHRoZWlyIHJlZmNvdW50LgoKMjAxMS0wNS0xNyAxMjoxMDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IENyZWF0ZSBwYWQgdGVtcGxhdGVzIHdpdGggZmxvYXRpbmcgcmVmcwoJICBBbmQgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGZsb2F0aW5nIHJlZiBpbiBnc3RfZWxlbWVudF9hZGRfcGFkX3RlbXBsYXRlKCkKCjIwMTEtMDUtMTcgMTI6MDc6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBJbXByb3ZlIHJlZmVyZW5jZSBoYW5kbGluZyBvZiB0aGUgdGVtcGxhdGUncyBjYXBzCgkgIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGNhcHMgYW55bW9yZS4KCjIwMTEtMDUtMTYgMTM6Mzk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZGVsYXkgcHJpdmF0ZSBkYXRhIGluaXRpYWxpc2F0aW9uIHVudGlsIGFjdHVhbGx5IG5lZWRlZAoJICBXZSBvbmx5IHVzZSB0aGUgcHJpdmF0ZSBpbnN0YW5jZSBkYXRhIGZvciB3ZWFrIHJlZmVyZW5jZXMgZm9yIG5vdywKCSAgc28gY2FuIGRlbGF5IGluaXRpYWxpc2F0aW9uIHVudGlsIGFjdHVhbGx5IG5lZWRlZCAobWljcm9vcHRpbWlzYXRpb24pCgoyMDExLTA1LTE3IDExOjU5OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkOiBMZXQgdGVtcGxhdGUgcmVsYXRlZCBmdW5jdGlvbnMgcmV0dXJuIG5ldyByZWZlcmVuY2VzCgkgIGdzdF9wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoKSwgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlX2NhcHMoKQoJICBhbmQgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgcmV0dXJuIGEgbmV3IHJlZmVyZW5jZSBvZiB0aGUKCSAgY2FwcyBvciB0ZW1wbGF0ZSBub3cgYW5kIHRoZSByZXR1cm4gdmFsdWUgbmVlZHMgdG8gYmUKCSAgdW5yZWZmZWQgYWZ0ZXIgdXNhZ2UuCgoyMDExLTA1LTE3IDExOjQ1OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgUmV2ZXJ0ICJldmVudDogZXhhbXBsZSBvZiBob3cgdG8gb3B0aW1pemUgZXZlbnRzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGZhMjhlMmM1ZTZlNWUxNzJiZTMwOGMwYzUwZjQ0ZWQ2ZjM5ZTFhNzEuCgkgIFRoZSBvcHRpbWl6YXRpb24gb25seSBoYXMgbWluaW1hbCBpbXBhY3Qgb24gdGhlIHBlcmZvcm1hbmNlIGFuZAoJICBtYWtlcyBldmVyeXRoaW5nIG1vcmUgY29tcGxleC4KCjIwMTEtMDUtMTcgMTE6NDU6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIFJldmVydCAiZXZlbnQ6IHVwZGF0ZSB0aGUgc3RydWN0dXJlIHdoZW4gbmVlZGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkwNTEwMGNkYmU1ODBkNGQxODJiZmQ5ZDVlYzliMzY4YTExMGY0NjQuCgoyMDExLTA1LTE3IDExOjIyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBGaXggY29tcGlsYXRpb24KCjIwMTEtMDUtMTcgMTE6MjA6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIFJldmVydCAicXVlcnk6IGFsbG93IF9tYWtlX3dyaXRhYmxlIG9uIHF1ZXJ5IGhhbmRsZXJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGNmNGZiYzAwNWM1YzUzMGMyYTUwOWE5NDNhMDViOTFkNmM5YWYzZmIuCgkgIFRoaXMgY2hhbmdlIGRpZCBub3QgaW1wcm92ZSB0aGUgc2l0dWF0aW9uIGZvciBiaW5kaW5ncyBiZWNhdXNlCgkgIHF1ZXJpZXMgYXJlIHVzdWFsbHkgY3JlYXRlZCwgdGhlbiBkaXJlY3RseSBwYXNzZWQgdG8gYSBmdW5jdGlvbgoJICBhbmQgbm90IHN0b3JlZCBlbHNld2hlcmUsIGFuZCB0aGUgd3JpdGFiaWxpdHkgcHJvYmxlbSB3aXRoCgkgIG1pbmlvYmplY3RzIHVzdWFsbHkgaGFwcGVucyB3aXRoIGJ1ZmZlcnMgb3IgY2FwcyBpbnN0ZWFkLgoKMjAxMS0wNS0xNyAxMToxOToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIFJldmVydCAiYmluOiBEZXJlZmVyZW5jZSBHc3RRdWVyeSoqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIEdTVF9RVUVSWV9UWVBFX05BTUUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDM3YzkyYjQwM2UwYzdkYTliOWQ0NTA5ZWY0ZmZiZDA1NzEwZGYyYi4KCjIwMTEtMDUtMTcgMTE6MTk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBSZXZlcnQgImdob3N0cGFkOiBmaXggZ19yZXR1cm5fKiB3aXRoIG5ldyBxdWVyeSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NzdjMWMyOGZmOTU3Y2E5MjkxMWVhZGZjNzg1Zjg2NjFkOWUwMTI3LgoKMjAxMS0wNS0xNyAwOTo0MDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWYKCjIwMTEtMDUtMTcgMDk6MzU6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogTWFrZSBib3RoIHBhcmFtZXRlcnMgdG8gZ3N0X3N0cnVjdHVyZV9pc19lcXVhbCgpIGNvbnN0CgoyMDExLTA1LTE3IDA5OjMzOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBVcGRhdGUgU2luY2UgbWFya2VycyB0byB0aGUgY29ycmVjdCB2ZXJzaW9uCgoyMDExLTA1LTE3IDA5OjMzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9pbnRlcnNlY3QoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaW50ZXJzZWN0KCkKCjIwMTAtMDktMTAgMTg6MzM6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdCBBUEkKCSAgQWxsb3dzIGNoZWNraW5nIGlmIHR3byBzdHJ1Y3R1cmVzIGNhbiBpbnRlcnNlY3Qgd2l0aG91dCBoYXZpbmcgdG8KCSAgZ28gdGhyb3VnaCBHc3RDYXBzCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMDAKCjIwMTAtMDktMTAgMTg6MTQ6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHJ1Y3R1cmU6IE5ldyBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwKCSAgQWxsb3dzIGNoZWNraW5nIGVxdWFsaXR5IG9mIEdzdFN0cnVjdHVyZSB3aXRob3V0IGhhdmluZyB0byBjcmVhdGUKCSAgaW50ZXJtZWRpYXJ5IEdzdENhcHMuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pc19lcXVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzAwCgoyMDExLTA1LTE2IDE5OjA5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBzZXQgZWxlbWVudHMgaW4gUEFVU0VECgkgIFNldCBlbGVtZW50cyBpbiBQQVVTRUQgYmVmb3JlIHRyeWluZyB0byBzZXQgY2FwcyBvbiBwYWRzLgoKMjAxMS0wNS0xNiAxOTowNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0OiBmaXggZ2hvc3RwYWQgdGVzdAoJICBXZSBuZWVkIHRvIGhhdmUgYWN0aXZhdGVkIHBhZHMgYmVmb3JlIHdlIGNhbiBwYXNzIGFyb3VuZCBjYXBzLgoJICBEb24ndCBzZXQgTlVMTCBjYXBzIG9uIHBhZHMuCgoyMDExLTA1LTE2IDE5OjA0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGF2b2lkIHNldHRpbmcgTlVMTCBjYXBzIG9uIHBhZHMKCjIwMTEtMDUtMTYgMTg6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGJ1ZmZlciByZWZjb3VudGluZwoJICBXaGVuIHdlIGZhaWwgdG8gYWxsb2NhdGUgYW4gb3V0cHV0IGJ1ZmZlciwgc2V0IHRoZSBidWZmZXIgcG9pbnRlciB0byBOVUxMIG9yCgkgIGVsc2UgdGhlIGNhbGxpbmcgZnVuY3Rpb24gd2lsbCB0cnkgdG8gdW5yZWYgaXQuCgkgIFJlbW92ZSBzb21lIG9sZCBjb21tZW50cwoKMjAxMS0wNS0xNiAxODoyOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBhbGxvdyBOVUxMIGZpbHRlcnMgYW5kIGZpeCByZWZjb3VudGluZwoKMjAxMS0wNS0xNiAxODoxMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG9ubHkgYWRkIHRoZSBzdHJ1Y3R1cmUgd2hlbiB3ZSBjb3VsZCBzZXQgdGhlIHBhcmVudAoKMjAxMS0wNS0xNiAxNzo1Mzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IGdfcmV0dXJuXyogd2l0aCBuZXcgcXVlcnkKCjIwMTEtMDUtMTYgMTc6MjQ6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCgoyMDExLTA1LTE2IDE2OjU5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGhhbmRsZSBtb3JlIGZvcm1hdHMKCSAgVXNlIHRoZSBzZWdtZW50IGZvcm1hdCBpbnN0ZWFkIG9mIGEgaGFyZGNvZGVkIF9USU1FLgoKMjAxMS0wNS0xNiAxNjo1Nzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBtb3JlIGZvcm1hdHMKCSAgRG9uJ3QgaGFyZGNvZGUgR1NUX0ZPUk1BVF9USU1FIGluIHBsYWNlcywgd2UgY2FuIHdvcmsgd2l0aCBtYW55IGZvcm1hdHMuCgoyMDExLTA1LTE2IDE2OjU0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMScgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lciBpbnRvIDAuMTEKCjIwMTEtMDUtMTYgMTY6NTM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9nc3RiaW4uYwoJICBnc3QvZ3N0ZWxlbWVudC5jCgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMDUtMTYgMTY6MTA6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIHVwZGF0ZSBtYW51YWwgY29kZSBleGFtcGxlcyBmb3IgbmV3IF9nZXRfY2FwcygpCgoyMDExLTA1LTEzIDA4OjM0OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBuZWdvdGlhdGlvbiByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTExIDE1OjM4OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBVcGRhdGUgZm9yIG5lZ290aWF0aW9uIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCSAgVGhlIGZpbHRlciBjYXBzIGFyZSBvbmx5IGZvcndhcmRlZCBhbmQgcmV0dXJuZWQgaW5zdGVhZAoJICBvZiBBTlkgY2FwcyBpbiB0aGUgY29yZSBlbGVtZW50cyBiZWNhdXNlIHRoZXkgZG9uJ3QgZG8KCSAgYW55dGhpbmcgY2FwcyBzcGVjaWZpYy4KCjIwMTEtMDUtMTEgMTU6MTI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNlOiBJbXByb3ZlIG5lZ290aWF0aW9uIHdpdGggbmV3IGdldGNhcHMoKSBmaWx0ZXIKCjIwMTEtMDUtMTAgMTc6NTY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdDogQWRkIGEgZmlsdGVyIGNhcHMgcGFyYW1ldGVyIHRvIGFsbCBnZXRfY2FwcygpIGZ1bmN0aW9ucwoJICBUaGlzIGlzIHVzZWQgdG8gcGFzcyB0aGUgcG9zc2libGUgY2FwcyBhbmQgcHJlZmVyZW5jZXMgdG8KCSAgdGhlIHBhZCBhbmQgdG8gYWxsb3cgYmV0dGVyIG5lZ290aWF0aW9uIGRlY2lzaW9ucy4KCjIwMTEtMDQtMTkgMjA6MDU6MDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGp1c3QgaW5wdXQgZGF0YSByYXRlIGVzdGltYXRpb24KCSAgLi4uIGJlaW5nIGF3YXJlIG9mIHBvc3NpYmxlIGluaXRpYWwgaGlnaGVyIGJ1cnN0IHJhdGUuCgoyMDExLTA1LTEzIDE4OjA3OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgUmV3b3JrIEdzdFNlZ21lbnQgaGFuZGxpbmcKCSAgSW1wcm92ZSBHc3RTZWdtZW50LCByZW5hbWUgc29tZSBmaWVsZHMuIFRoZSBpZGVhIGlzIHRvIGhhdmUgdGhlIEdzdFNlZ21lbnQKCSAgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgdGltaW5nIHN0cnVjdHVyZSBvZiB0aGUgYnVmZmVycyBhcyB0aGV5IGFyZSBnZW5lcmF0ZWQgYnkKCSAgdGhlIHNvdXJjZSBvciBkZW11eGVyIGVsZW1lbnQuCgkgIGdzdF9zZWdtZW50X3NldF9zZWVrKCkgLT4gZ3N0X3NlZ21lbnRfZG9fc2VlaygpCgkgIFJlbmFtZSB0aGUgTkVXU0VHTUVOVCBldmVudCB0byBTRUdNRU5ULgoJICBNYWtlIHBhcnNpbmcgb2YgdGhlIFNFR01FTlQgZXZlbnQgaW50byBhIEdzdFNlZ21lbnQgc3RydWN0dXJlLgoJICBQYXNzIGEgR3N0U2VnbWVudCBzdHJ1Y3R1cmUgd2hlbiBtYWtpbmcgYSBuZXcgU0VHTUVOVCBldmVudC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgcGFzcyB0aGUgdGltaW5nIGluZm8gZGlyZWN0bHkgdG8gdGhlIG5leHQgZWxlbWVudC4gTm8gYWNjdW11bGF0aW9uIGlzIG5lZWRlZCBpbgoJICB0aGUgcmVjZWl2aW5nIGVsZW1lbnQsIGFsbCB0aGUgaW5mbyBpcyBpbnNpZGUgdGhlIGVsZW1lbnQuCgkgIFJlbW92ZSBnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCgpOiBUaGlzIGZ1bmN0aW9uIGFzIHVzZWQgdG8gYWNjdW11bGF0ZQoJICBzZWdtZW50cyByZWNlaXZlZCBmcm9tIHVwc3RyZWFtLCB3aGljaCBpcyBub3cgbm90IG5lZWRlZCBhbnltb3JlIGJlY2F1c2UgdGhlCgkgIHNlZ21lbnQgZXZlbnQgY29udGFpbnMgdGhlIGNvbXBsZXRlIHRpbWluZyBpbmZvcm1hdGlvbi4KCjIwMTEtMDUtMTYgMTA6MjU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlLWltcGxlbWVudCBub3RpZnk6OmNhcHMKCjIwMTEtMDUtMTQgMTQ6MDI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCB1cCBzb21lIFNpbmNlIG1hcmtlcnMgYW5kIHVwZGF0ZSBmb3IgbmV3IG11bHRpcXVldWUgYXJncwoKMjAxMS0wNS0xMiAxNjo0ODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRG9uJ3QgaW50ZXJwcmV0ZSBwaXBlbGluZXMgd2l0aG91dCBzaW5rIGVsZW1lbnRzIGFzIGFsd2F5cyBiZWluZyBpbiBFT1Mgc3RhdGUKCSAgU29tZSB0ZXN0cyAoZS5nLiBlbGVtZW50cy9jYXBzZmlsdGVyKSBoYXZlIHBpcGVsaW5lcyB3aXRoIGRhbmdsaW5nCgkgIHNpbmtwYWRzIGFuZCB3aXRob3V0IGEgc2luayBlbGVtZW50LiBUaGVzZSBwaXBlbGluZXMgY2FuIG5ldmVyIHBvc3QKCSAgYW4gRU9TIG1lc3NhZ2UgKGJlY2F1c2UgdGhpcyBpcyBvbmx5IHZhbGlkIGJ5IGEgc2luaykgYW5kIGFzIHN1Y2gKCSAgc2hvdWxkIG5ldmVyIGdldCBhbiBFT1MgbWVzc2FnZSBwb3N0ZWQgYnkgdGhlIGJpbi4KCjIwMTEtMDUtMTIgMTU6NTE6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBPbmx5IHJldHJ5IHdyaXRpbmcgdG8gdGhlIHNvY2tldCBmb3IgRUFHQUlOLCBFV09VTERCTE9DSyBhbmQgRUlOVFIKCSAgRml4ZXMgaW5maW5pdGUgbG9vcCBpbiBzb21lIGNhc2VzLCBidWcgIzY1MDAwMi4KCjIwMTEtMDUtMTIgMDk6NTk6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IEFkZCBuZXcgbWluaW9iamVjdCB3ZWFrIHJlZi91bnJlZiBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMTEtMDUtMTIgMDk6NTU6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogTWlub3IgY2xlYW51cCBvZiBsYXN0IGNvbW1pdAoKMjAxMS0wNS0xMSAxMzowOToxOSAtMDQwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCB3ZWFrIHJlZmVyZW5jaW5nIGZ1bmN0aW9uYWxpdHkKCSAgQVBJOiBnc3RfbWluaV9vYmplY3Rfd2Vha19yZWYoKQoJICBBUEk6IGdzdF9taW5pX29iamVjdF93ZWFrX3VucmVmKCkKCSAgQWRkIHdlYWsgcmVmZXJlbmNpbmcgZnVuY3Rpb25hbGl0eSB0byBHc3RNaW5pT2JqZWN0LCB3aGljaAoJICBhbGxvd3MgdG8gZ2V0IG5vdGlmaWNhdGlvbnMgd2hlbiBhbiBtaW5pIG9iamVjdCBpcyBkZXN0cm95ZWQKCSAgYnV0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIHJlYWwgcmVmY291bnQuIFRoaXMgaXMgbW9zdGx5CgkgIHVzZWZ1bCBmb3IgYmluZGluZ3MuCgkgIEZpeGVzIGJ1ZyAjNjA5NDczLgoKMjAxMS0wMy0xOSAxMDoyODo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IEFkZCBzeW5jIG1vZGUgdGhhdCBzeW5jcyBpbmFjdGl2ZSBwYWRzIHRvIHRoZSBydW5uaW5nIHRpbWUgb2YgdGhlIGFjdGl2ZSBwYWQKCSAgRml4ZXMgYnVnICM2NDUwMTcuCgoyMDExLTAzLTIyIDEzOjE5OjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogQWRkIG1vZGUgdG8gc3luY2hyb25pemUgZGVhY3RpdmF0ZWQvbm90LWxpbmtlZCBzdHJlYW1zIGJ5IHRoZSBydW5uaW5nIHRpbWUKCSAgRml4ZXMgYnVnICM2NDUxMDcsICM2MDA2NDguCgoyMDExLTA0LTE4IDE0OjI2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHBvc3QgRU9TIG1lc3NhZ2VzIGFmdGVyIHJlYWNoaW5nIHRoZSBQTEFZSU5HIHN0YXRlCgkgIEZpeGVzIGJ1ZyAjNjQ3NzU2LgoKMjAxMS0wNS0xMCAxNjozNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgR3N0RWxlbWVudDo6c3RhdGVfY2hhbmdlZCB2ZnVuYwoJICBBUEk6IEdzdEVsZW1lbnQ6OnN0YXRlX2NoYW5nZWQKCSAgVGhpcyBpcyBhbHdheXMgY2FsbGVkIHdoZW4gdGhlIHN0YXRlIG9mIGFuIGVsZW1lbnQgaGFzIGNoYW5nZWQgYW5kCgkgIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UgaXMgcG9zdGVkIG9uIHRoZSBidXMuCgoyMDExLTA1LTA2IDE2OjQ0OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBBZGQgZG9jcyBmb3IgYWxsIHRoZSBuZXcsIHB1YmxpYyBmdW5jdGlvbnMKCjIwMTEtMDUtMDYgMTY6MTU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBZGQgZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHRoZSBuZXcsIHB1YmxpYyBmdW5jdGlvbnMKCjIwMTEtMDUtMDYgMTY6MDA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IFJlbmFtZSBnaG9zdHBhZC9wcm94eXBhZCBkZWZhdWx0IGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVsbF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1bGxfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9saW5rX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX3NldGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfdW5saW5rX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfYnVmZmVyYWxsb2NfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hhaW5fZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hhaW5fbGlzdF9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGVja2dldHJhbmdlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2V2ZW50X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2ZpeGF0ZWNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZ2V0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9nZXRyYW5nZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3F1ZXJ5X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3F1ZXJ5X3R5cGVfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfc2V0Y2Fwc19kZWZhdWx0CgoyMDExLTA1LTA2IDE1OjUwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgZ2hvc3RwYWQ6IE1ha2UgYWxsIHRoZSBpbnRlcm5hbCBjYXBzIGZ1bmN0aW9ucyBwdWJsaWMKCSAgVGhpcyBpcyB1c2VmdWwgaWYgZ2hvc3RwYWQvcHJveHlwYWRzIHNob3VsZCBiZSB1c2VkIGJ1dAoJICBhZGRpdGlvbmFsIGNvZGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBlLmcuIGZvciB0cmFja2luZwoJICBzZWdtZW50cyBpbiB0aGUgZXZlbnQgZnVuY3Rpb24uCgoyMDExLTA1LTA2IDE1OjI1OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogT25seSBpbXBsZW1lbnQgdGhlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgZnVuY3Rpb24gb24gcHJveHlwYWRzCgkgIGdob3N0cGFkcyBpbmhlcml0IGl0IGZyb20gdGhlaXIgcGFyZW50IGNsYXNzLiBBbHNvIG1ha2UgaXQgdGhyZWFkc2FmZS4KCjIwMTEtMDUtMDYgMTU6MTY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBBUEk6IEV4cG9zZSBnc3RfcHJveHlfcGFkX2dldF9pbnRlcm5hbCgpCgkgIFRoaXMgYWxsb3dzIHRvIGdldCB0aGUgaW50ZXJuYWwgcGFkIG9mIGdob3N0cGFkcyBhbmQKCSAgcHJveHlwYWRzIHdpdGhvdXQgdXNpbmcgZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkKCSAgYW5kIGlzIG11Y2ggbW9yZSBjb252ZW5pZW50LgoJICBUaGUgaW50ZXJuYWwgcGFkIG9mIGEgZ2hvc3RwYWQgaXMgdGhlIHBhZCBvZiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uCgkgIHRoYXQgaXMgdXNlZCB0byBsaW5rIHRvIHRoZSBnaG9zdHBhZCB0YXJnZXQuCgoyMDExLTA1LTA1IDE3OjU0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBXaGVuIHRyeWluZyB0byBmaXhhdGUgdGhlIHNpbmsgc3VnZ2VzdGlvbiBwcmVmZXIgaXRzIHN0cnVjdHVyZSBvcmRlcgoKMjAxMS0wNS0wNSAxMToyODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBNZXJnZSBzdHJ1Y3R1cmVzIHdoZW4gaW50ZXJzZWN0aW5nIGluc3RlYWQgb2YgYXBwZW5kaW5nIHRoZW0KCSAgVGhpcyBwcmV2ZW50cyBhZGRpbmcgZHVwbGljYXRlcyBvdmVyIGFuZCBvdmVyIGFnYWluIHRvIHRoZSByZXN1bHRpbmcKCSAgY2FwcyBpZiB0aGV5IGFscmVhZHkgZGVzY3JpYmUgdGhlIG5ldyBpbnRlcnNlY3Rpb24gcmVzdWx0LgoJICBXaGlsZSB0aGlzIGNoYW5nZXMgaW50ZXJzZWN0aW9uIGZyb20gTyhuKm0pIHRvIE8obl4yKm0pLCBpdCByZXN1bHRzIGluCgkgIHNtYWxsZXIgY2Fwcywgd2hpY2ggaW4gdGhlIGVuZCB3aWxsIGRlY3JlYXNlIGZ1cnRoZXIgcHJvY2Vzc2luZyB0aW1lcy4KCSAgRm9yIGV4YW1wbGUgaW4gYW4gYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0IHBpcGVsaW5lLAoJICB3aGVuIGZvcndhcmRpbmcgdGhlIGRvd25zdHJlYW0gY2FwcyBwcmVmZXJlbmNlIGluIGJhc2V0cmFuc2Zvcm0KCSAgKHNlZSBlMjZkYTcyZGUyNWE5MWMzZWFhZDlmN2M4YjJmNTNiYTg4OGEwMzk0KSB0aGlzIHJlc3VsdHMgaW4KCSAgMTYgaW5zdGVhZCBvZiAxOTEgY2FwcyBzdHJ1Y3R1cmVzLgoKMjAxMS0wNS0wNCAxMToyOToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW4gZ2V0Y2FwcygpIHByZWZlciB0aGUgY2FwcyBvcmRlciBhbmQgY2FwcyBvZiBkb3duc3RyZWFtIGlmIHBvc3NpYmxlCgoyMDExLTA1LTAzIDE3OjI2OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmVmZXIgY2FwcyBvcmRlciBnaXZlbiBieSB0aGUgc3ViY2xhc3Mgb2YgdGhlIHRlbXBsYXRlIGNhcHMgb3JkZXIKCjIwMTEtMDQtMjAgMjI6NTI6MzYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IGRvbid0IHVuZXNjYXBlIGluc2lkZSBxdW90ZXMKCSAgRXNjYXBlZCBjaGFyYWN0ZXJzIGluc2lkZSBxdW90ZWQgc3RyaW5ncyBhcmUgc3VwcG9zZWQgdG8gYmUgdW5lc2NhcGVkIGJ5CgkgIGRlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMsIG5vdCBieSBwYXJzaW5nIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODAyNQoKMjAxMS0wNC0xOCAxMDowNDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHVubmVjZXNzYXJ5IEZJWE1FCgkgIFJlc2V0dGluZyB0aGUgcmVzdWx0IGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiByZXN5bmNpbmcgYmVjYXVzZQoJICBwYWRzIHRoYXQgcHJldmlvdXNseSBnb3QgdGhlIGV2ZW50IHdpbGwgYmUgc2tpcHBlZCBhbmQgd2UKCSAgbmVlZCB0byBjb25zaWRlciB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXMgcHVzaGVzLgoKMjAxMS0wNC0xOCAwOTo1Mzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDQtMTggMDk6NDk6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNS0xNCAwOTozMTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjM0ID09PQoKMjAxMS0wNS0xNCAwMTowMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzQKCjIwMTEtMDUtMTMgMDg6Mzg6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogRml4IGNvbXBpbGF0aW9uIG9mIHRoZSB1bml0IHRlc3QgYWZ0ZXIgcmVtb3ZhbCBvZiB0aGUgc2VyaWFsaXplL2Rlc2VyaWFsaXplIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNCAxNTozMTo1NiArMDMwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IHNldCBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRvIDAgZm9yIGxpdmUgc291cmNlcwoJICBEb2luZyBzbyBhdm9pZHMgYSBsYXJnZSB0aW1lc3RhbXAgZ2FwIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBidWZmZXIKCSAgZm9yIGxpdmUgc291cmNlcyB3aGljaCB0YWtlIHRpbWUgdG8gc3RhcnQgdXAuCgkgIFRoZSBmaXJzdCBidWZmZXIgbm93IGhhcyBhICJsaXZlIiB0aW1lc3RhbXAgYmFzZWQgb24gdGhlIHJ1bm5pbmcgdGltZSwKCSAgYXMgb3RoZXIgYnVmZmVycyBkby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTM2OQoKMjAxMS0wNS0xMSAxOToxMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHJlbW92ZSAoZGUpc2VyaWFsaXplIGZ1bmN0aW9ucwoJICBBZGQgYSBHVHlwZSB0byB0aGUgbWV0YWRhdGEgdG8gaWRlbnRpZnkgdGhlIEdzdE1ldGFJbmZvLgoJICBXZSBjYW4gcmVtb3ZlIHRoZSAoZGUpc2VyaWFsaXplIGZ1bmN0aW9ucyBmb3IgdGhlIG1ldGFkYXRhIGJlY2F1c2Ugd2UgY2FuCgkgIHJlZ2lzdGVyIEdUdHlwZSB0cmFuc2Zvcm0gZnVuY3Rpb25zIGJldHdlZW4gdmFyaW91cyB0eXBlcyB0byBpbXBsZW1lbnQKCSAgc2VyaWFsaXphdGlvbiBsYXRlci4KCjIwMTEtMDUtMTEgMTg6MTc6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogbW9yZSBjbGVhbnVwcwoJICBnc3Rfc3RydWN0dXJlX2dldF90eXBlKCkgLT4gX2dzdF9zdHJ1Y3R1cmVfdHlwZSB0byBhdm9pZCBtZXRob2QgY2FsbHMgZm9yCgkgIGdldHRpbmcgdGhlIEdUeXBlIHRoYXQgaW5pdGlhbGl6ZWQgYXQgdGhlIHN0YXJ0LgoJICBIaWRlIHNvbWUgc3RydWN0dXJlIGZpZWxkcyBpbiBwcml2YXRlIGRhdGEgc28gdGhhdCB3ZSBjYW4gY2hhbmdlIHRoZQoJICBpbXBsZW1lbnRhdGlvbi4KCSAgTW92ZSBzdHJ1Y3R1cmUgZXF1YWxpdHkgY2hlY2sgZnJvbSBjYXBzLmMgdG8gc3RydWN0dXJlLmMgd2hlcmUgaXQgYmVsb25ncy4KCjIwMTEtMDUtMTEgMTg6MDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgb2Jzb2xldGUgY29kZS4KCSAgRG9uJ3QgdHJ5IHRvIHJlY29uZmlndXJlIHdoZW4gd2UgZG9uJ3QgaGF2ZSBzaW5rIGNhcHMuCgoyMDExLTA1LTExIDE2OjQ2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEZXJlZmVyZW5jZSBHc3RRdWVyeSoqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIEdTVF9RVUVSWV9UWVBFX05BTUUKCjIwMTEtMDUtMTEgMTY6MDM6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHVwZGF0ZSB0aGUgc3RydWN0dXJlIHdoZW4gbmVlZGVkCgkgIFdoZW4gd2UgZ2V0IHRoZSBzdHJ1Y3R1cmUgb2YgYW4gZXZlbnQsIG1ha2Ugc3VyZSBpdCBhbHNvIGNvbnRhaW5zIHRoZSBmaWVsZHMKCSAgdGhhdCB3ZSBrZWVwIGluIGZhc3QgdmFyaWFibGVzLCB0aGlzIHdheSB3ZSBjYW4gZWFzaWx5IHNlcmlhbGl6ZSBhbmQgZGVidWcKCSAgdGhlIGV2ZW50cy4gV2Ugd291bGQgcHJvYmFibHkgbGF0ZXIgc2ltcGx5IHByZWZlciB0byByZWdpc3RlciBhIHRyYW5zZm9ybQoJICBmdW5jdGlvbiB0byBHX1RZUEVfU1RSSU5HIGFuZCBHX1RZUEVfQllURUFSUkFZIGV0Yy4uCgoyMDExLTA1LTExIDE2OjAxOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY2xlYW51cHMKCSAgV2UgZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgdHlwZSBpcyAwLCB0aGUgaW5pdCBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlCgkgIGluIHRoZSBiZWdpbm5pbmcuCgoyMDExLTA1LTExIDEyOjA0OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogY2xlYW4gdXAgc29tZSBtYWNyb3MKCSAgQXZvaWQgZXhlY3V0aW5nIGEgbWV0aG9kIGZvciBHU1RfVFlQRV9FVkVOVCBidXQgaW5zdGVhZCB1c2UgdGhlIHR5cGUgdmFyaWFibGUKCSAgZGlyZWN0bHkuIFdlIGNhbiBkbyB0aGlzIGJlY2F1c2Ugd2UgcmVnaXN0ZXIgaXQgYmVmb3JlIGFueXRoaW5nIGVsc2UuCgoyMDExLTA1LTExIDE1OjQ4OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBGaXggR1NUX0RFQlVHIHBhcmFtZXRlcnMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nCgoyMDExLTA1LTExIDE1OjI2OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgcGFkIHJlY29uZmlndXJhdGlvbiBhZ2FpbgoKMjAxMS0wNS0xMSAxNToxODo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRml4IGRlYWRsb2NrLCBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBhbHJlYWR5IHRha2VzIHRoZSBwYWQncyBvYmplY3QgbG9jawoKMjAxMS0wNS0xMSAxMTowNjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGV4YW1wbGUgb2YgaG93IHRvIG9wdGltaXplIGV2ZW50cwoJICBVc2UgYSBzdHJ1Y3R1cmUgZm9yIHRoZSBRb1MgZXZlbnQgYnkgJ2V4dGVuZGluZycgdGhlIEdzdEV2ZW50SW1wbCBzdHJ1Y3R1cmUuCgkgIFRoaXMgc2hvdWxkIGF2b2lkIGFsbG9jYXRpb24gb2YgR3N0U3RydWN0dXJlcyBhbmQgaXRzIGNvbnRlbnRzLgoKMjAxMS0wNS0xMCAxMToxMToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZW5zdXJlIHRocmVhZCBzYWZldHkgd2hlbiBhZGRpbmcgYSBwYWQKCSAgVGhpcyBzZWVtcyB0byBiZSBhIHJlZ3Jlc3Npb24sIGFuZCB3YXMgY2F1c2luZyBjcmFzaGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5ODc4CgoyMDExLTA1LTEwIDE4OjM2OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhbGxvdyBfbWFrZV93cml0YWJsZSBvbiBxdWVyeSBoYW5kbGVycwoJICBQYXNzIGEgR3N0UXVlcnkgKiogdG8gdGhlIHF1ZXJ5IGhhbmRsZXJzIHNvIHRoYXQgdGhleSBjYW4gbWFrZSB0aGUgcXVlcnkKCSAgd3JpdGFibGUgYmVmb3JlIHVzaW5nIGEgc2V0dGVyIG9uIGl0LgoJICBQb3J0IGNvZGUgdG8gbmV3IEFQSS4KCjIwMTEtMDUtMTAgMTY6NDY6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMTAgMTY6NDE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudDogdXNlIHJlcXVlc3RfbmV3X3BhZF9mdWxsIGFzIHRoZSBkZWZhdWx0CgkgIEFkZCBHc3RDYXBzIHRvIHJlcXVlc3RfbmV3X3BhZCBzbyB0aGF0IHJlcXVlc3RfbmV3X3BhZF9mdWxsIGNhbiBiZSByZW1vdmVkLgoJICBGaXggZWxlbWVudHMuCgoyMDExLTA1LTEwIDE2OjIzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTEwIDE1OjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtYWtlIHN1cmUgcXVlcnkgaXMgd3JpdGFibGUKCSAgTWFrZSBzdXJlIHRoZSBRdWVyeSBpcyB3cml0YWJsZSBiZWZvcmUgZXhlY3V0aW5nIHRoZSBzZXR0ZXJzLgoKMjAxMS0wNS0xMCAxNTozMzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBIaWRlIEdzdFN0cnVjdHVyZSBpbiBxdWVyaWVzCgkgIEhpZGUgdGhlIEdzdFN0cnVjdHVyZSBmcm9tIHRoZSBxdWVyeSBBUEkuCgkgIFJlbmFtZSBzb21lIG1ldGhvZHMgdG8gbWF0Y2ggdGhlIG1vcmUgY29tbW9uIG5hbWVzIGluIEdPYmplY3QgbGlicmFyaWVzLgoJICBBZGQgc29tZSBtb3JlIHVzZWZ1bCBxdWVyeSBBUEkuCgoyMDExLTA1LTEwIDEzOjM0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIG1lc3NhZ2U6IGhpZGUgdGhlIG1lc3NhZ2Ugc3RydWN0dXJlIGZpZWxkCgkgIE1ha2UgYSBwcml2YXRlIHN0cnVjdHVyZSB0byBob2xkIHRoZSBHc3RTdHJ1Y3R1cmUgYml0cyBvZiB0aGUgbWVzc2FnZS4KCSAgQWRkIHNvbWUgbW9yZSB1c2VmdWwgbWFjcm9zIGxpa2Ugd2UgaGF2ZSBmb3IgZXZlbnRzLgoKPT09IHJlbGVhc2UgMC4xMC4zMyA9PT0KCjIwMTEtMDUtMTAgMDg6NTU6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMwoJICBIaWdobGlnaHRzOgoJICAtIG5ldyBwYXJzZXIgYmFzZSBjbGFzczogR3N0QmFzZVBhcnNlCgkgIC0gbmV3IGNvcmUgZWxlbWVudDogZnVubmVsCgkgIC0gT1NYIG11bHRpLWFyY2ggZml4ZXMKCSAgLSBuZXcgUW9TIHR5cGUgZm9yIFFvUyBldmVudHMKCSAgLSBuZXcgcHJvZ3Jlc3MgbWVzc2FnZSBBUEkgdG8gbm90aWZ5IGFwcGxpY2F0aW9ucyBvZiBhc3luY2hyb25vdXMgb3BlcmF0aW9ucwoJICAtIGNvdW50bGVzcyBvdGhlciBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzCgoyMDExLTA1LTEwIDEyOjI5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZml4IHRoZSBtYWNyb3MgYSBsaXR0bGUKCjIwMTEtMDUtMTAgMTE6NTA6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGV2ZW50OiBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUKCSAgSGlkZSB0aGUgR3N0U3RydWN0dXJlIG9mIHRoZSBldmVudCBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgcGFydCBzbyB0aGF0CgkgIHdlIGNhbiBjaGFuZ2UgaXQuCgkgIEFkZCBtZXRob2RzIHRvIGNoZWNrIGFuZCBtYWtlIHRoZSBldmVudCB3cml0YWJsZS4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBnZXQgYSB3cml0YWJsZSBHc3RTdHJ1Y3R1cmUgb2YgdGhlIGVsZW1lbnQuCgkgIEF2b2lkIGRpcmVjdGx5IGFjY2lzaW5nIHRoZSBldmVudCBzdHJ1Y3R1cmUuCgoyMDExLTA1LTA5IDE4OjQ4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBfcW9zX2Z1bGwgLT4gX3FvcwoKMjAxMS0wNS0wOSAxNzo1MTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSBfZnVsbCB2ZXJzaW9uCgkgIFJlbmFtZSB0aGUgX2Z1bGwgdmVyc2lvbnMgb2YgdGhlIGZ1bmN0aW9ucyB0byB0aGUgbm9ybWFsIGZ1bmN0aW9uIG5hbWVzLgoKMjAxMS0wNS0wOSAxNjozOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSBhYnNfcmF0ZSBmcm9tIHNlZ21lbnQgc3RydWN0dXJlCgkgIFJlbW92ZSB0aGUgYWJzX3JhdGUgZmllbGQgZnJvbSB0aGUgc2VnbWVudCBzdHJ1Y3R1cmUsIHdlIGNhbiB0cml2aWFsbHkgY29tcHV0ZQoJICBpdCB3aGVuIG5lZWRlZC4KCjIwMTEtMDUtMDkgMTY6MjE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGNhcHM6IHJlbW92ZSBjYXBzIGZyb20gYnVmZmVycyBhbmQgcGFkcwoJICBSZW1vdmUgdGhlIEdzdENhcHMgZnJvbSBidWZmZXJzIGFuZCBwYWRzLiBXZSBub3cgdXNlIENBUFMgZXZlbnRzIHRvIG5lZ290aWF0ZQoJICBmb3JtYXRzIGJldHdlZW4gZWxlbWVudC4KCjIwMTEtMDUtMDkgMTU6MDY6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIENBUHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IHRvIGNvbmZpZ3VyZSBiYXNldHJhbnNmb3JtLgoJICBSZW1vdmUgZm9yY2VfYWxsb2MgaGFjaywgd2UgZG9uJ3QgbmVlZCB0aGlzIGluIDAuMTEgd2l0aCBuZXcgdXBzdHJlYW0KCSAgbmVnb3RpYXRpb24uCgkgIEF2b2lkIGdldHRpbmcgc29tZSBwYWQgY2Fwcy4KCjIwMTEtMDUtMDkgMTU6MDY6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTA1LTA4IDExOjAyOjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBzeW1ib2xzCgoyMDExLTA1LTA4IDExOjAxOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDExLTA1LTA5IDEwOjU0OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBhdm9pZCB1c2luZyBwYWQgY2FwcwoJICBBdm9pZCBkaXJlY3RseSBhY2Nlc3NpbmcgdGhlIHBhZCBjYXBzLCB1c2UgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgaW5zdGVhZC4KCjIwMTEtMDUtMDggMTM6MTQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTA4IDEzOjA3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIENBUFMgZXZlbnQgaW5zdGVhZCBvZiBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA1LTA4IDEyOjQ2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJhc2U6IGF2b2lkIHVzaW5nIGJ1ZmZlciBjYXBzCgkgIENvbW1lbnQgYWxsIGNvZGUgdXNpbmcgYnVmZmVyIGNhcHMuCgkgIFJld29yayBjYXBzZmlsdGVyIGNvZGUgYSBsaXR0bGUuCgkgIEZpeCBzb21lIHVuaXQgdGVzdHMKCjIwMTEtMDUtMDggMTI6NDM6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBjYXBzIGV2ZW50IGhhbmRsaW5nCgkgIEZpeCByZXBsYWNlIG9mIGNhcHMgZXZlbnRzIHdoZW4gbGlua2luZzogd2UgbmVlZCB0byB1bnJlZiB0aGUgb2xkIG9uZXMuCgkgIE1ha2Ugc3VyZSB3ZSBwYXNzIGVycm9yIHZhbHVlcyBhcm91bmQuCgkgIE1vdmUgYmFja3dhcmQgY29tcGF0IGNvZGUgaW50byB0aGUgZGVmYXVsdCBoYW5kbGVyIGZvciBub3cuCgoyMDExLTA1LTA4IDEyOjM4OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBkb24ndCByZWYgdGhlIGNhcHMKCSAgVXNlIGEgZGlmZmVyZW50IHdheSBvZiBnZXR0aW5nIHRoZSBjYXBzIGZyb20gdGhlIGNhcHMgZXZlbnQgc28gdGhhdCBubwoJICByZWZjb3VudGluZyBoYXBwZW5zLgoKMjAxMS0wNS0wOCAxMjozNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCB1c2luZyBidWZmZXIgY2FwcwoKMjAxMS0wNS0wNiAyMzo0MDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHBvc3QgbG9hZHMgb2YgZW1wdHkgdGFnbGlzdHMKCSAgT25seSBwb3N0IGJpdHJhdGUgdXBkYXRlcyBpZiB0aGVyZSdzIHNvbWV0aGluZyB0byBwb3N0LCBkb24ndAoJICBwb3N0IGVtcHR5IHRhZ2xpc3RzIGlmIG5vdGhpbmcgY2hhbmdlZC4KCjIwMTEtMDUtMDYgMTk6MDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGFkOiBhdm9pZCB1c2luZyB0aGUgb2xkIEdTVF9QQURfQ0FQUwoJICBEb24ndCB1c2UgR1NUX1BBRF9DQVBTIGJ1dCBpbnN0ZWFkIHVzZSB0aGUgbmV3IGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpCgkgIG1ldGhvZC4KCSAgQXZvaWQgc2V0dGluZyBjYXBzIG9uIGJ1ZmZlcnMuCgoyMDExLTA1LTA2IDE5OjAzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIDIgbmV3IGNhcHMgbWV0aG9kcwoJICBBZGQgbWV0aG9kIHRvIGdldCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgY2FwcyBvbiB0aGUgcGFkLgoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29uZmlndXJlZCBvbiBhIHBhZC4KCjIwMTEtMDUtMDYgMTc6NTk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBwYWQ6IGltcGxlbWVudCBmaXhlZCBjYXBzIHdpdGggYW4gb2JqZWN0IGZsYWcKCSAgSW1wbGVtZW50IGZpeGVkIGNhcHMgd2l0aCBhbiBvYmplY3QgZmxhZyBpbnN0ZWFkIG9mIGEgY3VzdG9tIGdldGNhcHMgZnVuY3Rpb24uCgoyMDExLTA1LTA2IDE3OjMwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHVzZSBidWZmZXIgY2FwcyBmb3IgbmVnb3RpYXRpb24KCSAgRG9uJ3QgdXNlIHRoZSBidWZmZXIgY2FwcyBmb3IgbmVnb3RpYXRpb24gYW55bW9yZSBidXQgdXNlIHRoZSBDQVBTIGV2ZW50cy4KCSAgTWFrZSB0aGUgX3NldF9jYXBzIG1ldGhvZCBwcm9kdWNlIHRoZSBDQVBTIGV2ZW50LCBhZGQgc29tZSBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5IGNvZGUgdG8gdHJpZ2dlciB0aGUgc2V0Y2FwcyBmdW5jdGlvbnMgb24gc3JjIGFuZCBzaW5rcGFkcy4KCSAgUmVtb3ZlIGFsbCBuZWdvdGlhdGlvbiBjb2RlIGZyb20gdGhlIGNoYWluIGZ1bmN0aW9ucy4KCSAgRG9uJ3QgdXNlIHRoZSBHU1RfUEFEX0NBUFMgdmFyaWFibGUgYW55bW9yZSB0byBzdG9yZSB0aGUgY2FwcyBidXQgcmV0cmlldmUgdGhlCgkgIGNhcHMgZnJvbSB0aGUgc3RpY2t5IGV2ZW50IGFycmF5LgoKMjAxMS0wNS0wNiAxNjoxNDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBkb24ndCB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjE0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogbGV0IHRoZSBub3JtYWwgY29kZSB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjExOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogaGFuZGxlIE5VTEwgcGFkcyBpbiBzb21lIGNhc2VzCgoyMDExLTA1LTA2IDE2OjExOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGxldCB0aGUgcGFkIGNsZWFuIHVwIGluIGFjdGl2YXRlCgoyMDExLTA1LTA2IDE1OjU1OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgbWVzcyB3aXRoIHBhZCBjYXBzIGluIGFjdGl2YXRlCgkgIFdoZW4gZGVhY3RpdmF0aW5nIGEgcGFkLCBsZXQgdGhlIHBhZCBkZWNpZGUgd2hhdCBmaWVsZHMgdG8gY2xlYXIuCgoyMDExLTA1LTA2IDE1OjUxOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBvbmx5IGFsbG93IGZpeGVkIGNhcHMgaW4gY2FwcyBldmVudAoKMjAxMS0wNS0wNiAxMzowMToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZXZlbnRfbmV3X3JlY29uZmlndXJlKCkKCjIwMTEtMDUtMDYgMTI6MjM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMDYgMTI6MTk6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiByZW5hbWUgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCSAgUmVuYW1lIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpIHRvIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUoKSBhbmQKCSAgcmVtb3ZlIHRoZSBvbGQgbWV0aG9kIG5hbWUuCgoyMDExLTA1LTA2IDEyOjA5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsZWFuIHVwIHRoZSAuaCBmaWxlIGEgYml0CgoyMDExLTA1LTA2IDExOjE0OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBpbXBsZW1lbnQgbW9yZSBzdGlja3kgZXZlbnRzCgkgIFJlbW92ZSB0aGUgY29udGV4dCBhZ2FpbiwgYWRkaW5nIGFuIGV4dHJhIGxheWVyIG9mIHJlZmNvdW50aW5nIGFuZCBvYmplY3QKCSAgY3JlYXRpb24gdG8gbWFuYWdlIGFuIGFycmF5IGlzIHRvbyBjb21wbGljYXRlZCBhbmQgaW5lZmZpY2llbnQuIFVzZSBhIHNpbXBsZQoJICBhcnJheSBhZ2Fpbi4KCSAgQWxzbyBpbXBsZW1lbnQgZXZlbnQgdXBkYXRlcyB3aGVuIGNhbGxpbmcgZ3N0X3BhZF9jaGFpbigpIGFuZAoJICBnc3RfZXZlbnRfc2VuZF9ldmVudCgpIGRpcmVjdGx5LgoKMjAxMS0wNS0wNiAxMTozNTozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogYXZvaWQgcmVkZWZpbml0aW9uIG9mIHN5bWJvbHMgd2hlbiBkZWJ1Z2dpbmcgaXMgb2ZmCgkgIFRoZSByZWZhY3RvcmluZyBvZiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpIG5vdyBjYXVzZXMgYnVpbGQgZmFpbHVyZSB3aGVuCgkgIGRlYnVnLWxvZ2dpbmcgaXMgdHVybmVkIG9mZi4gSnVzdCBtb3ZlIGl0IHRvIHRoZSBjb25kaXRpb25hbCBwYXJ0IG9mIHRoZSBoZWFkZXIuCgoyMDExLTA1LTA2IDExOjAwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiByZW9yZGVyIGV2ZW50cwoJICBSZW9yZGVyIHRoZSBzdGlja3kgZXZlbnRzIHNvIHRoYXQgdGhleSBhcmUgaW4gdGhlIG9yZGVyIHRoZXkgc2hvdWxkIGJlIHB1c2hlZC4KCjIwMTEtMDUtMDUgMTk6MjQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgc29tZSBtb3JlCgkgIElmIHdlIGdldCBhIGNvbnRleHQgaW4gdGhlIGNoYWluIGZ1bmN0aW9ucyB3ZSBhbHdheXMgbmVlZCB0byBkbyBhIGZ1bGwgdXBkYXRlIG9mCgkgIHRoZSBjb250ZXh0IG9uIHRoZSBwZWVyIHBhZC4KCjIwMTEtMDUtMDUgMTg6NTY6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBjb250ZXh0IHBhc3Npbmcgc29tZSBtb3JlCgkgIFBhc3MgdGhlIGNvbnRleHQgZG93bnN0cmVhbSB3aGVuIGl0IGdvdCB1cGRhdGVkLgoJICBIYXZlIHR3byB3YXlzIG9mIGluZm9ybWluZyBkb3duc3RyZWFtIG9mIGV2ZW50cywgZG8gYSBmdWxsIGNvbnRleHQgdXBkYXRlIHdoZW4KCSAgdGhlIENPTlRFWFRfUEVORElORyBmbGFnIGlzIHNldCBhbmQgc2ltcGx5IGZvcndhcmQgdGhlIGV2ZW50IG90aGVyd2lzZS4KCSAgU2V0IHRoZSBDT05URU5UX1BFTkRJTkcgZmxhZyB3aGVuIGxpbmtpbmcgcGFkcy4KCSAgV2UgZG9uJ3QgbmVlZCB0byBvbGQgY29udGV4dCBhbnltb3JlIHdoZW4gdXBkYXRpbmcgdGhlIGNvbnRleHQgb2YgYSBwYWQuCgoyMDExLTA1LTA1IDE4OjIxOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBnZXQgdGhlIHBhcmVudCB0d2ljZSBpbiB0aGUgc2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0wNS0wNSAxNjo1OTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJlZmNvdW50IGxlYWsgb2YgdGhlIHBhcmVudCBpbiB0aGUgZGVmYXVsdCBldmVudCBkaXNwYXRjaCBmdW5jdGlvbgoKMjAxMS0wNS0wNSAxNjozMjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGltcHJvdmUgcGFzc2luZyBhcm91bmQgdGhlIGNvbnRleHQKCSAgSW1wcm92ZSBwYXNzaW5nIGFyb3VuZCB0aGUgY29udGV4dCwgb25seSBzZW5kIHRoZSBjb250ZXh0IHRvIHRoZSBwZWVyIGVsZW1lbnQKCSAgd2hlbiB0aGUgQ09OVEVYVF9QRU5ESU5HIGZsYWcgaXMgc2V0LgoKMjAxMS0wNS0wNSAxNjowNToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnRzCgoyMDExLTAzLTE3IDExOjUyOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE3IDExOjMyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzL2RlZjogQWRkIG5ldyBzeW1ib2xzLCByZW1vdmUgb2xkIHN5bWJvbHMKCjIwMTEtMDMtMTcgMTE6MzI6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogVXBkYXRlIGV2ZXJ5dGhpbmcgZm9yIHRoZSBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE3IDExOjMxOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IFVwZGF0ZSBldmVyeXRoaW5nIGZvciB0aGUgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNiAxMDo1MDozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgaXRlcmF0b3I6IFJlZmFjdG9yIEdzdEl0ZXJhdG9yIHRvIGJlIG1vcmUgYmluZGluZyBmcmllbmRseSBhbmQgaGF2ZSBzYW5lciByZWZjb3VudGluZwoJICBGaXhlcyBidWcgIzYzODk4Ny4KCjIwMTEtMDEtMDggMTI6Mjc6NTUgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogcmVnaXN0ZXIgYXMgYSBib3hlZCB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MTQ6NDAgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiB1c2UgR1NsaWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MTI6NDEgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IGZyZWUgc3RydWN0IGluIGdzdF9pdGVyYXRvcl9mcmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDEtMDggMTI6MDc6NTUgLTAyMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogc3RvcmUgc2l6ZSBpbiB0aGUgc3RydWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5ODcKCjIwMTEtMDUtMDUgMTE6Mjg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTWVyZ2Ugc3RydWN0dXJlcyB3aGVuIGludGVyc2VjdGluZyBpbnN0ZWFkIG9mIGFwcGVuZGluZyB0aGVtCgkgIFRoaXMgcHJldmVudHMgYWRkaW5nIGR1cGxpY2F0ZXMgb3ZlciBhbmQgb3ZlciBhZ2FpbiB0byB0aGUgcmVzdWx0aW5nCgkgIGNhcHMgaWYgdGhleSBhbHJlYWR5IGRlc2NyaWJlIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJlc3VsdC4KCSAgV2hpbGUgdGhpcyBjaGFuZ2VzIGludGVyc2VjdGlvbiBmcm9tIE8obiptKSB0byBPKG5eMiptKSwgaXQgcmVzdWx0cyBpbgoJICBzbWFsbGVyIGNhcHMsIHdoaWNoIGluIHRoZSBlbmQgd2lsbCBkZWNyZWFzZSBmdXJ0aGVyIHByb2Nlc3NpbmcgdGltZXMuCgkgIEZvciBleGFtcGxlIGluIGFuIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCBwaXBlbGluZSwKCSAgd2hlbiBmb3J3YXJkaW5nIHRoZSBkb3duc3RyZWFtIGNhcHMgcHJlZmVyZW5jZSBpbiBiYXNldHJhbnNmb3JtCgkgIChzZWUgZTI2ZGE3MmRlMjVhOTFjM2VhYWQ5ZjdjOGIyZjUzYmE4ODhhMDM5NCkgdGhpcyByZXN1bHRzIGluCgkgIDE2IGluc3RlYWQgb2YgMTkxIGNhcHMgc3RydWN0dXJlcy4KCjIwMTEtMDUtMDQgMTE6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEluIGdldGNhcHMoKSBwcmVmZXIgdGhlIGNhcHMgb3JkZXIgYW5kIGNhcHMgb2YgZG93bnN0cmVhbSBpZiBwb3NzaWJsZQoKMjAxMS0wNS0wMyAxNzoyNjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJlZmVyIGNhcHMgb3JkZXIgZ2l2ZW4gYnkgdGhlIHN1YmNsYXNzIG9mIHRoZSB0ZW1wbGF0ZSBjYXBzIG9yZGVyCgoyMDExLTA1LTAzIDE0OjEzOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBVc2UgdGhlIHJlY29uZmlndXJlIGZsYWcgb24gdGhlIHBhZCBpbnN0ZWFkIG9mIHRoZSBldmVudAoKMjAxMS0wNS0wMyAxNDoxMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIG5ldyByZWNvbmZpZ3VyZSBmbGFnIG9uIHRoZSBwYWRzIGluc3RlYWQgb2YgdGhlIHJlY29uZmlndXJlIGV2ZW50CgoyMDExLTA1LTAzIDEzOjQyOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEtlZXAgdHJhY2sgb2YgcmVjb25maWd1cmUgZXZlbnRzIGFuZCB0aGUgcGFkLW5lZWRzLXJlY29uZmlndXJpbmcgc3RhdHVzCgoyMDExLTA1LTAzIDEzOjA1OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IFJlbmFtZSByZW5lZ290aWF0ZSBldmVudCB0byByZWNvbmZpZ3VyZQoJICBJbiAwLjExIHRoaXMgZXZlbnQgd2lsbCBhbHNvIGRvIHJlY29uZmlndXJhdGlvbiBvZiBidWZmZXIgcG9vbHMKCSAgYW5kIHNpbWlsYXIgdGhpbmdzLCBub3QganVzdCByZW5lZ290aWF0aW9uLgoKMjAxMC0wMy0xNyAyMToyNDo1NSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNlbmQgcmVuZWdvdGlhdGUgZXZlbnQgb24gbGluawoKMjAxMC0wMy0xNyAyMToxNzoxMCArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERyb3AgcmVuZWdvdGlhdGUgZXZlbnQgaWYgdGhlcmUgaXMgbm8gZ2V0Y2FwcyBmdW5jdGlvbiBvbiBhIHNpbmsgcGFkCgkgIElmIHRoZXJlIGlzIG5vIGN1c3RvbSBnZXRjYXBzIGZ1bmN0aW9uIG9uIGEgc2luayBwYWQsIHRoZW4gY2hhbmdlcyBpbgoJICBkb3duc3RyZWFtIGNhcHMgd2lsbCBuZXZlciBiZSBwcm9wYWdhdGVkLCBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiB0cnlpbmcgdG8KCSAgcmVuZWdvdGlhdGUgdGhlIGNhcGFiaWxpdGllcy4KCjIwMTEtMDQtMjYgMTY6Mzk6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgcmVuZWdvdGlhdGUgb25jZSBhZnRlciByZWNlaXZpbmcgYSByZW5lZ290aWF0ZSBldmVudAoJICBBbHNvIG1ha2UgdGhpcyB0aHJlYWRzYWZlLgoKMjAxMS0wMS0xNyAxNDoxMzo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCSAgTWFrZXMgYmFzZXNyYyBoYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudCBieSB1c2luZyBhCgkgIHJlbmVnb3RpYXRlIGZsYWcuCgoyMDExLTA0LTI2IDE2OjQ4OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHNvIGNhbGwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKCkgb24gcmVuZWdvdGlhdGUgZXZlbnRzCgoyMDExLTAxLTE3IDE0OjEzOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudAoJICBMZXQgYmFzZXRyYW5zZm9ybSBwdXNoIGEgcmVuZWdvdGlhdGUgZXZlbnQgdXBzdHJlYW0KCSAgd2hlbiBpdCBnZXRzIGEgbmV3IHN1Z2dlc3Rpb24KCjIwMTEtMDEtMTcgMTE6NTE6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkaW5nIG5ldyByZW5lZ290aWF0ZSBldmVudAoKMjAxMS0wNS0wNSAxMzoxMDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBwYXNzIHRoZSBjb250ZXh0IGFyb3VuZAoJICBQYXNzIHRoZSBjb250ZXh0IGZyb20gc3JjcGFkIHRvIHNpbmtwYWQgYmVmb3JlIGRhdGFmbG93IHdoZW4gc29tZXRoaW5nCgkgIGNoYW5nZWQuCgoyMDExLTA1LTA1IDExOjE3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdXBkYXRlIHRoZSBjb250ZXh0IGxhenlseQoKMjAxMS0wNS0wNSAxMToxNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IHRoZSBHVHlwZSBlYXJseQoKMjAxMS0wNS0wNSAxMToxNjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNS0wNSAxMDo0MDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IGFkZCBmb3JlYWNoIGZ1bmN0aW9uCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhbGwgc3RvcmVkIGV2ZW50cy4KCjIwMTEtMDUtMDUgMTA6Mzc6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAiY29udGV4dDogdXNlIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWVmMTM0NmIxZmEwYmQyYmI0MmNkOTkxYTUyZmYzMDhhNzI4YmRiNi4KCSAgV2F5IHRvIG11Y2ggZm9yIG9uZSBjb21taXQgYW5kIEknbSBub3Qgc3VyZSB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhlIHBhZCBjYXBzCgkgIGp1c3QgbGlrZSB0aGF0LiBJdCdzIG5pY2UgdG8gaGF2ZSB0aGUgYnVmZmVyIGFuZCBpdHMgdHlwZSBpbiBvbncgbmljZSBidW5kbGUKCSAgd2l0aG91dCBoYXZpbmcgdG8gZHJhZyB0aGUgY29tcGxldGUgY29udGV4dCB3aXRoIGl0LgoKMjAxMS0wNC0yMCAyMjo1MjozNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogZG9uJ3QgdW5lc2NhcGUgaW5zaWRlIHF1b3RlcwoJICBFc2NhcGVkIGNoYXJhY3RlcnMgaW5zaWRlIHF1b3RlZCBzdHJpbmdzIGFyZSBzdXBwb3NlZCB0byBiZSB1bmVzY2FwZWQgYnkKCSAgZGVzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucywgbm90IGJ5IHBhcnNpbmcgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MDI1CgoyMDExLTA0LTE4IDE0OjI2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHBvc3QgRU9TIG1lc3NhZ2VzIGFmdGVyIHJlYWNoaW5nIHRoZSBQTEFZSU5HIHN0YXRlCgkgIEZpeGVzIGJ1ZyAjNjQ3NzU2LgoKMjAxMS0wNC0xOCAxMDowNDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHVubmVjZXNzYXJ5IEZJWE1FCgkgIFJlc2V0dGluZyB0aGUgcmVzdWx0IGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiByZXN5bmNpbmcgYmVjYXVzZQoJICBwYWRzIHRoYXQgcHJldmlvdXNseSBnb3QgdGhlIGV2ZW50IHdpbGwgYmUgc2tpcHBlZCBhbmQgd2UKCSAgbmVlZCB0byBjb25zaWRlciB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXMgcHVzaGVzLgoKMjAxMS0wNC0xOCAwOTo1Mzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDQtMTggMDk6NDk6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNS0wNSAxMjoyODowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVtb3ZlIG5vd2FkYXlzIHVudXNlZCBhbmQgdW5pbml0aWFsaXplZCBzZXRjYXBzIHZhcmlhYmxlCgoyMDExLTA1LTA1IDEyOjI3OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCjIwMTEtMDUtMDQgMTg6NTk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGNvbnRleHQ6IHVzZSBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzCgkgIFB1dCB0aGUgc3JjcGFkIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMuIFRoaXMgYWxsb3dzIHVzIHRvIGFzc29jaWF0ZQoJICBhbGwgdGhlIHJlbGV2YW50IGluZm8gY29udGFpbmVkIGluIGV2ZW50cyB3aXRoIGEgYnVmZmVyLgoKMjAxMS0wNS0wNCAxNToyOTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gbmV3IG1pbmlvYmplY3QgdGVzdAoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBJbiBmdW5jdGlvbiDigJh0ZXN0X2R1cF9udWxsX21pbmlfb2JqZWN04oCZOgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOjQ1OTo3OiB3YXJuaW5nOiBhc3NpZ25tZW50IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKMjAxMS0wNS0wNCAxNTo1MzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB1c2UgdGhlIGNvbnRleHQgdG8gc3RvcmUgc3RpY2t5IGV2ZW50cwoJICBTdG9yZSB0aGUgc3RpY2t5IGV2ZW50cyBpbiB0aGUgY29udGV4dCBvZiBhIHNvdXJjZSBwYWQuCgoyMDExLTA1LTA0IDE1OjIwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgY29udGV4dDogYWRkIGhlbHBlciBvYmplY3QgdG8gbWFuYWdlIGV2ZW50cwoJICBBZGQgYSBoZWxwZXIgb2JqZWN0IHRvIG1hbmFnZSB0aGUgZXZlbnRzIHRoYXQgZGVmaW5lIHRoZSBjb250ZXh0IG9mIGEgYnVmZmVyIGFuZAoJICBhIHN0cmVhbS4KCjIwMTEtMDUtMDQgMTE6MDc6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDUtMDQgMTE6MDM6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IGFkZCBuZXcgQ0FQUyBldmVudAoJICBBZGQgYSBuZXcgQ0FQUyBldmVudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBuZWdvdGlhdGUgZG93bnN0cmVhbSBlbGVtZW50cy4gSXQnbGwKCSAgYWxzbyBzdGljayBvbiBwYWQgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZSBHc3RDYXBzIGZpZWxkIG9uIHBhZHMgYW5kIHRoZQoJICBHc3RDYXBzIGZpZWxkIG9uIGJ1ZmZlcnMuCgoyMDExLTA1LTAzIDE4OjU4OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vcmUgc3RpY2t5IGV2ZW50cyB3b3JrCgkgIENvcHkgdGhlIHN0aWNreSBldmVudHMgZnJvbSB0aGUgc3JjcGFkIHRvIHRoZSBzaW5rcGFkIHdoZW4gbGlua2luZyBwYWRzLiBTZXQgdGhlCgkgIFNUSUNLWV9QRU5ESU5HIGZsYWcgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHN0aWNreSBldmVudHMgYXJlIGRpc3BhdGNoZWQgYmVmb3JlCgkgIHB1c2hpbmcgdGhlIG5leHQgYnVmZmVyIHRvIHRoZSBlbGVtZW50LgoKMjAxMS0wNS0wMyAxNjoxMToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGltcHJvdmUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMDIgMTg6NDU6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2N1bWVudAoKMjAxMS0wNS0wMiAxMTozMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBGaXggZHVwX21pbmlfb2JqZWN0IGZ1bmN0aW9uIHRvIGhhbmRsZSBOVUxMIGd2YWx1ZXMKCSAgZ192YWx1ZV9kdXBfb2JqZWN0IGhhbmRsZXMgZ3ZhbHVlcyB0aGF0IGNvbnRhaW4gTlVMTCBwb2ludGVycywKCSAgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCBzaG91bGQgZG8gdGhlIHNhbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkxOTUKCjIwMTEtMDUtMDMgMTM6NTU6NDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IGl0IGl0cyAlVFJVRSAoY29uc3RhbnQpCgkgIEFzIHNwb3R0ZWQgYnkgVGltLgoKMjAxMS0wNS0wMiAxNjoyMjo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGRvY3M6IGZpeCBjb3B5J24ncGFzdGUgZG9jIGhlYWRlciBtaXN0YWtlCgoyMDExLTA1LTAyIDE2OjIwOjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBkb2NzOiBhZGQgdHdvIHRyaXZpYWwgZG9jIGJsb2JzCgoyMDExLTA1LTAyIDE2OjAzOjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0wNS0wMiAxNjowMDo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgR3N0RFBQYWNrZXRpemVyCgoyMDExLTA1LTAyIDE1OjUyOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBzeW50YXggZm9yIHRoZSBjYXBzaW50ZXJzZWN0bW9kZSBkb2NzCgoyMDExLTA1LTAyIDE1OjQ4OjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBmaXh1cCBicm9rZW4geHJlZgoKMjAxMS0wNS0wMiAxNTo0Njo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBhcGkgdG8gLXNlY3Rpb24udHh0CgoyMDExLTA1LTAyIDE1OjM1OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgZG9jczogZml4IGd0ay1kb2Mgc3ludGF4CgoyMDExLTA1LTAyIDE1OjMwOjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBkb2NzOiBkb24ndCBkdXBsaWNhdGUgaW5mbyB0aGF0IHdlIHRha2UgZnJvbSBlbGVtZW50LWRldGFpbHMKCjIwMTEtMDQtMjggMTU6Mzc6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBub24gZXhpc3Rpbmcgc3ltYm9sCgoyMDExLTA0LTI4IDE1OjA1OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogd2UgZG9uJ3QgbmVlZCB0byBkb2N1bWVudCBwcml2YXRlIG1lbWJlcnMgaW4gb3BhcXVlIHN0cnVjdHMKCjIwMTEtMDQtMjkgMTM6NDM6MDcgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkgIGNvcmU6IHN0b3JlIHByZXNldHMsIHJlZ2lzdHJ5IGFuZCBwbHVnaW5zIGluIFhERyBkaXJlY3Rvcmllcy4KCSAgUHJlc2V0cyBhbmQgcGx1Z2lucyBtb3ZlZCB0byAkWERHX0RBVEFfSE9NRS9nc3RyZWFtZXItMC4xMS8KCSAgcm9vdCBkaXJlY3RvcnkuIFJlZ2lzdHJ5IG1vdmVkIHRvICRYREdfQ0FDSEVfSE9NRS9nc3RyZWFtZXItMC4xMS8uCgkgIEZpeGVzIGJ1ZyAjNTE4NTk3LgoKMjAxMS0wNS0wMyAwOTo0MTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGdzdC9nc3RidXMuYwoKMjAxMS0wNS0wMiAxODozNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGV2ZW50OiBhZGQgc3RpY2t5IGZsYWdzIHRvIGV2ZW50cwoJICBBZGQgdGhlIHN0aWNreSBmbGFnIHRvIGV2ZW50cyBhbmQgYSBzdGlja3kgaW5kZXguCgkgIEtlZXAgc3RpY2t5IGV2ZW50cyBpbiBhbiBhcnJheSBvbiBlYWNoIHBhZC4KCSAgUmVtb3ZlIEdTVF9FVkVOVF9TUkMoKSwgaXQgaXMgY2F1c2luZyByZWZjeWNsZXMgd2l0aCBzdGlja3kgZXZlbnRzLCB3YXMgbm90IHVzZWQKCSAgYW5kIGlzIG5vdCB2ZXJ5IGludGVyZXN0aW5nIGFueXdheS4KCjIwMTEtMDUtMDIgMTE6MDk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBpbXByb3ZlIGFsbG9jYXRpb24gcGFyYW1ldGVycyBxdWVyeQoJICBVc2UgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB0aG9zZSB1c2VkIGZvciB0aGUgYnVmZmVycG9vbC4gTWFrZSBzdXJlIHdlIGNhbiBwYXNzCgkgIGEgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgYnVmZmVycyBuZWVkZWQuCgoyMDExLTA0LTMwIDE2OjU1OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3RhdGljZWxlbWVudHMueG1sOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi40IHByZS1yZWxlYXNlCgoyMDExLTA0LTI5IDIzOjQ0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHBsdWdpbmZlYXR1cmU6IGluY2x1ZGUgcGx1Z2luLmggaW4gaGVhZGVyIHdoZXJlIHdlIHVzZSBhIEdzdFBsdWdpbiBwb2ludGVyCgkgIFNob3VsZCBmaXggaXNzdWUgd2l0aCBnc3RyZWFtZXJtbSBidWlsZCB3aGVyZSA8Z3N0L2dzdGluZGV4Lmg+IGlzIGluY2x1ZGVkCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgZ3N0L2dzdC5oLgoKMjAxMS0wNC0yOSAxMzo0Mjo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGRvIHBhZF9hbGxvYyBmYWxsYmFjayBjb3JyZWN0bHkKCjIwMTEtMDQtMjkgMTM6MjY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgcGFkX2FsbG9jLCB0aGlzIGNhbiBub3cgYmUgZG9uZSBiZXR0ZXIKCSAgUmVtb3ZlIHBhZF9hbGxvYyBhbmQgYWxsIHJlZmVyZW5jZXMuIFRoaXMgY2FuIG5vdyBiZSBkb25lIG1vcmUgZWZmaWNpZW50bHkgYW5kCgkgIG1vcmUgZmxleGlibGUgd2l0aCB0aGUgQUxMT0NBVElPTiBxdWVyeSBhbmQgdGhlIGJ1ZmZlcnBvb2wgb2JqZWN0cy4gVGhlcmUgaXMgbm8KCSAgcmV2ZXJzZSBuZWdvdGlhdGlvbiB5ZXQgYnV0IHRoYXQgd2lsbCBiZSBkb25lIHdpdGggYW4gZXZlbnQgbGF0ZXIuCgoyMDExLTA0LTI5IDEyOjExOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBpbml0IHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGNvcnJlY3RseQoJICBEb24ndCBhZGQgdGhlICdwb29sJyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGFkZGluZyBpdCB3aXRoIGEgTlVMTCBhcnJheS4KCjIwMTEtMDQtMjkgMTA6NTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogZml4IHBhcnNpbmcgb2YgdGhlIEFMTE9DQVRJT04gcXVlcnkKCSAgQWRkIG1ldGhvZHMgZm9yIHBhcnNpbmcgdGhlIGNhcHMgYW5kIHRoZSBuZWVkX3Bvb2wgYm9vbGVhbi4KCjIwMTEtMDQtMjggMTY6MjA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogZml4IHR5cG8gaW4gbWV0aG9kIG5hbWUgYW5kIGltcHJvdmUgZG9jcwoJICBGaXhlZCB0eXBvIGluIG1ldGhvZCBuYW1lIGFuZCBhZGQvaW1wcm92ZSB0aGUgZG9jcy4KCjIwMTEtMDQtMjggMTU6MzE6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1hbGxvY2F0aW9uLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgcXVlcnkgdG8gcmVxdWVzdCBwb29sIGFuZCBjb25maWd1cmF0aW9uCgkgIEFkZCBhIHF1ZXJ5IHRvIHJlcXVlc3QgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGFuZCBvcHRpb25hbGx5IGEgYnVmZmVycG9vbCBhcwoJICB3ZWxsLiBUaGlzIHNob3VsZCBhbGxvdyBlbGVtZW50cyB0byBkaXNjb3ZlciBkb3duc3RyZWFtIGNhcGFiaWxpdGllcyBhbmQgYWxzbwoJICB1c2UgdGhlIGRvd25zdHJlYW0gYWxsb2NhdG9ycy4KCjIwMTEtMDQtMjcgMTg6MTA6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHRpbWVvdXQgaGFuZGxpbmcKCjIwMTEtMDQtMjcgMTc6NTY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IHNvbWUgZG9jcwoKMjAxMS0wNC0yNyAxNzo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogaW1wcm92ZSBhcmd1bWVudCBuYW1lcyBvZiBzZWdtZW50cwoKMjAxMS0wNC0yNyAxMTo0OToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogcG8vYmcucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi4zIHByZS1yZWxlYXNlCgoyMDExLTA0LTI2IDE1OjQyOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBSZXZlcnQgbG9ja2ZyZWUgR3N0QnVzIGZvciB0aGUgcmVsZWFzZQoJICBEcm9wIGluIG9sZCBHc3RCdXMgY29kZSBmb3IgdGhlIHJlbGVhc2UgdG8gcGxheSBpdCBzYWZlLCBzaW5jZQoJICByZWdyZXNzaW9ucyB0aGF0IGFyZSBhcHBhcmVudGx5IGhhcmQgdG8gdHJhY2sgZG93biBhbmQgcmVwcm9kdWNlCgkgIGhhdmUgYmVlbiByZXBvcnRlZCAob24gd2luZG93cy9PU1ggbW9zdGx5KSBhZ2FpbnN0IHRoZSBsb2NrZnJlZQoJICB2ZXJzaW9uLCBhbmQgbW9yZSB0aW1lIGlzIG5lZWRlZCB0byBmaXggdGhlbS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwMzM5MWE4OTcwMDFkMzVkMWQyOTBmMjdkZDEyZTk4YThiNzI5ZmI0LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQzY2RiYzE3ZTZmOTQ0Y2RmMDJhZWVkNzhkMWQ1ZjZiZGU1MTkwYzkuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODBlYjE2MGUwZjYyMzUwMjcxZjA2MWRhYTVmMjg5ZDlkNDI3N2NmNC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNDFiMGFkZTI4NzkwZmZkYjBlNDg0YjQxY2Q3OTI5YzRlMTQ1ZGVjLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg3NGQ2MGU1ODk5ZGQ1Yjg5ODU0Njc5ZDFhNGFkMDE2YTU4YmE0ZTAuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzkzNzBkNGIxNzgxYWY5YzlhNjVmMmQxZTM0OTgxMjRkOGM0YzQxMy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyY2IzZTUyMzUxOTZlYjcxZmIyNWUwYTRhNGI4NzQ5ZDZkMGE4NDUzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGJkMWM0MDAxMTQzNGMxZWZhYTY5NmRjOThlZjg1NWVmOWNjZTliMjguCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNGJmOGYxNTI0ZjZlMzM3NGIzZjNiYzU3MzIyMzM3NzIzZDA2YjkyOC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxNGQ3ZGIxYjUyN2IwNWYwMjk4MTkwNTdhZWY1YzEyM2FjN2UwMTNkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3NDkzCgoyMDExLTA0LTI1IDExOjEwOjQ3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgU21hbGwgY29zbWV0aWMgY2xlYW51cHMKCSAgTWFrZSBzdXJlIHRoZSByZXR1cm4gdmFsdWVzIGZyb20gZ19yZXR1cm5fKiBhcmUgb2YgdGhlIHJpZ2h0IHR5cGUuCgoyMDExLTA0LTI1IDEwOjU2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWl4aW5nIG9mIHJldHVybiB2YWx1ZXMKCjIwMTEtMDQtMjUgMTA6MzA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE1IDIyOjAwOjExIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBtaW5vciBpbmxpbmUgZG9jdW1lbnRhdGlvbiBmaXgKCjIwMTEtMDQtMjQgMTQ6MDI6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjM2NhZmUxIHRvIDQ2ZGZjZWEKCjIwMTEtMDQtMjQgMTE6NDQ6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogY2xlYW4gdXAgcHJvcGVybHkgaW4gdGhlIGJpbiB0ZXN0X2xpbmtfc3RydWN0dXJlX2NoYW5nZSB1bml0IHRlc3QKCSAgRG9uJ3QgZm9yZ2V0IHRvIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byBOVUxMIHN0YXRlLCB3aGljaCBtYWtlcwoJICB2YWxncmluZCBoYXBweSBhZ2Fpbi4KCjIwMTEtMDQtMjQgMDk6NTg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiB3aGVuIHJlbW92aW5nIGEgY2FjaGVkLWJ1dC1uby1sb25nZXItZXhpc3RpbmcgcGx1Z2luLCBvbmx5IHJlbW92ZSBmZWF0dXJlcyB0aGF0IGJlbG9uZyB0byBpdAoJICBXaGVuIGEgcGx1Z2luIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cywgZS5nLiBiZWNhdXNlIGl0J3MgYmVlbiByZW1vdmVkIG9yCgkgIHJlbmFtZWQsIGRvbid0IHJlbW92ZSBhbGwgZmVhdHVyZXMgaW4gdGhlIHJlZ2lzdHJ5IGJhc2VkIG9uIHRoZSAqbmFtZSoKCSAgb2YgdGhlIHBsdWdpbiB0aGV5IGJlbG9uZyB0bywgYnV0IG9ubHkgcmVtb3ZlIHRob3NlIHdobyBhY3R1YWxseSBiZWxvbmcKCSAgdG8gdGhhdCBwYXJ0aWN1bGFyIHBsdWdpbiAob2JqZWN0L3BvaW50ZXIpLgoJICBUaGlzIGZpeGVzIGlzc3VlcyBvZiBwbHVnaW4gZmVhdHVyZXMgZGlzYXBwZWFyaW5nIHdoZW4gYSBwbHVnaW4gLnNvIGZpbGUKCSAgaXMgcmVuYW1lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNDA5NAoKMjAxMS0wNC0yNCAwOTo1MzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBwbHVnaW5mZWF0dXJlOiBzdG9yZSBwb2ludGVyIHRvIHBsdWdpbiBpbiBhZGRpdGlvbiB0byB0aGUgcGx1Z2luIG5hbWUKCSAgU28gd2UgY2FuIHJlbGlhYmx5IHJlbW92ZSBwbHVnaW4gZmVhdHVyZXMgZm9yIGEgc3BlY2lmaWMgcGx1Z2luIGxhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA0MDk0CgoyMDExLTA0LTI0IDExOjA1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogdXNlIFRSQUNFIGxvZyBsZXZlbCB0byBsb2cgZmlsZXMgdGhhdCBkb24ndCBsb29rIGxpa2UgcGx1Z2lucwoJICBDdXRzIGRvd24gdGhlIG5vaXNlIGluIHVuaW5zdGFsbGVkIHNldHVwcy4KCjIwMTEtMDQtMTkgMjA6MzU6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBuZWdvdGlhdGlvbiByZWdyZXNzaW9uCgkgIEZpeHVwIHBhdGNoIGZvciA4MzU5Nzc2N2IxNjlkZDZjMzlhMDdiNjE0NGE2NTBjMWYwOTg4MjVhCgkgIFVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIGZvciBrbm93aW5nIGlmIGEgcGFkIGFsbG9jIGhhcyBiZWVuIG1hZGUKCSAgaW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdGhlIGZsb3cgcmV0dXJuIHRoYXQgbWlnaHQgbm90IGJlIHRoZQoJICByZXN1bHQgb2YgdGhlIHBhZCBhbGxvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MjIwCgoyMDExLTA0LTIxIDEyOjMzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogYWRkIHNpbXBsZSBwaXBlbGluZS1pbi1waXBlbGluZSB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODI5NwoKMjAxMS0wNC0yMCAxNTozOToxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogYWxzbyBhbGxvdyBwb3BwaW5nIGEgbWVzc2FnZSB3aXRob3V0IHRpbWVvdXQgaWYgbm8gcG9sbCBhdmFpbGFibGUKCSAgLi4uIHdoaWNoIGhhcHBlbnMgaW4gcGFydGljdWxhciBmbHVzaGluZyBhIGJ1cywgcG9zc2libHkgYXMgcGFydAoJICBvZiBhIHN0YXRlIGNoYW5nZSwgZS5nLiB3aGVuIGhhdmluZyBhIHBpcGVsaW5lIGluIGEgcGlwZWxpbmUKCSAgYW5kIHRoZW4gY2hhbmdpbmcgc3RhdGUgYmFjayB0byBOVUxMLiBUaGUgaW50ZXJpb3IgcGlwZWxpbmUKCSAgd2lsbC9taWdodCB0aGVuIGZsdXNoIHRoZSBidXMsIHdoaWNoIGlzIGEgY2hpbGQgYnVzIGZyb20gdGhlCgkgIHBhcmVudCB3aGljaCBkb2VzIG5vdCBoYXZlIGEgcG9sbCBhbnltb3JlIHRoZXNlIGRheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyOTcKCjIwMTEtMDQtMjAgMTk6MDg6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDQtMjAgMTk6MDM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIwIDE5OjAwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgdG91Y2ggYmFzZV90aW1lIG9yIGNsb2NrIGluIHN0YXRlIGNoYW5nZQoJICBEb24ndCB0b3VjaCB0aGUgYmFzZV90aW1lIG9yIHRoZSBjbG9jayB3aGVuIHNldHRpbmcgYW4gZWxlbWVudCB0byB0aGUgUkVBRFkgb3IKCSAgTlVMTCBzdGF0ZS4gSXQgaXMgdGhlIHBhcmVudCB0aGF0IHdpbGwgbWFuYWdlIHRoaXMgZm9yIHVzLgoKMjAxMS0wNC0xOSAyMDo1MjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBJbXBsZW1lbnQgZ3N0X2J1ZmZlcl9saXN0X2ZvcmVhY2goKQoKMjAxMS0wNC0xOSAxOTozMDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTkgMTg6NTc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgbWV0aG9kIHRvIGNvbXBhcmUgYnVmZmVyIGRhdGEKCSAgQWRkIG1ldGhvZCB0byBjb21wYXJlIHRoZSBkYXRhIGluIGEgYnVmZmVyLgoKMjAxMS0wNC0xOSAxNjoyMToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTEtMDQtMTkgMTQ6MDU6MjMgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1bmxvY2sgYmVmb3JlIGZyZWVpbmcgdGhlIGNhY2hlIHRvIGF2b2lkIGRlYWRsb2NrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgxOTkKCjIwMTEtMDQtMTQgMTA6MTU6MjYgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCB1bnJlZiB0cmFucyB1bnRpbCB0aGUgZnVuY3Rpb24gaXMgZG9uZSB1c2luZyBpdAoJICB0cmFucy0+cHJpdi0+Zm9yY2VfYWxsb2MgPSBGQUxTRSB3b3VsZCBjcmFzaCBpZiB0aGUgcmVmIGhlbGQgaXMgdGhlIGxhc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODIxNQoKMjAxMS0wNC0xOSAxMzoyMzoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogYWRkIG5vdGUvd2FybmluZyB0byBnc3RfaW5kZXhfZ2V0X3dyaXRlcl9pZCgpIGRvY3MgYWJvdXQgdGhlIE9CSkVDVF9MT0NLCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4MTEKCjIwMTEtMDQtMTkgMTM6MDU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBkZWFkbG9jayB3aGVuIHNldHRpbmcgZXh0ZXJuYWwgaW5kZXgKCSAgUHJvdGVjdCBpbmRleCB3aXRoIGl0cyBvd24gbG9jay4gZ3N0X2luZGV4X2dldF93cml0ZXJfaWQoKSBtYXkgdGFrZQoJICB0aGUgb2JqZWN0IGxvY2sgaW50ZXJuYWxseSAodGhlIGRlZmF1bHQgcmVzb2x2ZXIsIEdTVF9JTkRFWF9SRVNPTFZFUl9QQVRILAoJICB3aWxsIGFueXdheSksIHNvIGlmIHdlJ3JlIHVzaW5nIHRoYXQgdG8gcHJvdGVjdCB0aGUgaW5kZXggYXMgd2VsbCwKCSAgd2UnbGwgZGVhZGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4MTEKCjIwMTEtMDQtMTkgMTE6NTE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGZtdGxpc3QgY29uc3RhbnQKCjIwMTEtMDQtMTkgMTE6NDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogY29uc3QtaWZ5IGZvcm1hdHMgYXJndW1lbnRzIHRvIGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YoKQoKMjAxMS0wNC0xOCAxODoxOTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB0ZXN0czogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTg6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXtzaW5rLHNyY306IERvbid0IHRyeSB0byBmaXhhdGUgQU5ZIGNhcHMKCjIwMTEtMDQtMTggMTg6MDc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzozMzozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0OiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzozMjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgYmFzZTogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6Mjg6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBSZW1vdmUgR1NUX0JPSUxFUlBMQVRFIGFuZCBmcmllbmRzCgoyMDExLTA0LTE4IDEwOjQ3OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IE1ha2UgdGhlIHNpemUgcGFyYW1ldGVyIG9mIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgdW5zaWduZWQKCSAgSW50ZXJuYWxseSBndWludHMgd2VyZSB1c2VkIGV2ZXJ5d2hlcmUgYWxyZWFkeS4KCjIwMTEtMDQtMTggMTA6NDE6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGFsbG93IGZpeGF0aW5nIEFOWSBjYXBzIGFuZCByZW1vdmUgRklYTUUKCjIwMTEtMDQtMTggMTA6MzY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEVuYWJsZSBEVVJBVElPTiBxdWVyeSBjYWNoaW5nCgkgIEVsZW1lbnRzIG11c3Qgbm93IHBvc3QgYSBEVVJBVElPTiBtZXNzYWdlIG9uIHRoZSBidXMgaWYgdGhleQoJICBjaGFuZ2UgdGhlIGR1cmF0aW9uIGluIFBBVVNFRCBvciBQTEFZSU5HLgoKMjAxMS0wNC0xNiAxNToyMDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIGJhc2VwYXJzZSBBUEkgdGhhdCBkaWRuJ3QgbWFrZSBpdAoKMjAxMS0wNC0xNiAxNjowNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE2IDE1OjI4OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFkZCB0ZXN0IGZvciBpbmhlcml0aW5nIG1ldGFkYXRhL3BhZCB0ZW1wbGF0ZXMKCjIwMTEtMDQtMTYgMTU6MjQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogVXBkYXRlIGRvY3MgdG8gc2F5IGNsYXNzX2luaXQgaW5zdGVhZCBvZiBiYXNlX2luaXQKCSAgQW5kIHJlbW92ZSBhIHVzZWxlc3MgYmFzZV9pbml0IGluIGJhc2VzcmMKCjIwMTEtMDQtMTYgMTU6MjM6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IFVzZSBHX0RFRklORV9UWVBFCgoyMDExLTA0LTE2IDE1OjIzOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdDogRG9uJ3QgdXNlIGJhc2VfaW5pdCBhbmQgdXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTYgMTU6MDM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGVsZW1lbnQ6IEluaGVyaXQgZWxlbWVudCBtZXRhZGF0YSBhbmQgcGFkIHRlbXBsYXRlcyBmcm9tIHBhcmVudCBjbGFzc2VzCgkgIFRoaXMgYWxsb3dzIHRvIGFkZCBwYWQgdGVtcGxhdGVzIGFuZCBzZXQgbWV0YWRhdGEgaW4gY2xhc3NfaW5pdCBpbnN0ZWFkIG9mCgkgIGJhc2VfaW5pdC4gYmFzZV9pbml0IGlzIGEgY29uY2VwdCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgYWxtb3N0IGFsbAoJICBsYW5ndWFnZXMgYW5kIGNvcHlpbmcgdGhlIHRlbXBsYXRlcy9tZXRhZGF0YSBmb3Igc3ViY2xhc3NlcyBpcyB0aGUgbW9yZQoJICBpbnR1aXRpdmUgd2F5IG9mIGRvaW5nIHRoaW5ncy4KCSAgU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgcGFkIHRlbXBsYXRlcyBvZiBwYXJlbnQgY2xhc3NlcyBieSBhZGRpbmcgYSBuZXcKCSAgdGVtcGxhdGUgd2l0aCB0aGUgc2FtZSBub3cuCgkgIEFsc28gZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSgpIG5vdyB0YWtlcyBvd25lcnNoaXAgb2YgdGhlCgkgIHBhZCB0ZW1wbGF0ZSwgd2hpY2ggd2FzIGFzc3VtZWQgYnkgYWxsIGNvZGUgYmVmb3JlIGFueXdheS4KCSAgRml4ZXMgYnVnICM0OTE1MDEuCgoyMDExLTA0LTE2IDE0OjU2OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMi4yIHByZS1yZWxlYXNlCgoyMDExLTA0LTE2IDE0OjU0OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wNC0xNiAxNDo1Mjo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlbW92ZSBuZXdsaW5lIGZyb20gdHJhbnNsYXRhYmxlIHN0cmluZwoKMjAxMS0wNC0xNiAxMzo0OTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgZG9lc24ndCBuZWVkIHRvIHNjYW4gb3IgdXBkYXRlIHBsdWdpbiBpbmZvCgoyMDExLTA0LTE2IDE0OjM0OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBtYWtlIHN1cmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgY2FsbHMgZ3N0X2luaXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3OTIyCgoyMDExLTA0LTE2IDEwOjQ1OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgZG9lc24ndCBuZWVkIHRvIHNjYW4gb3IgdXBkYXRlIHBsdWdpbiBpbmZvCgkgIE1ha2Ugc3VyZSB0aGUgc2Nhbm5lciBkb2Vzbid0IGxvYWQgb3IgaW50cm9zcGVjdCBvciBjaGVjayBhbnkgcGx1Z2lucywKCSAgKGVzcGVjaWFsbHkgbm90IG91dHNpZGUgdGhlIGJ1aWxkIGRpcmVjdG9yeSkuCgoyMDExLTA0LTE2IDEwOjMzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogbWFrZSBzdXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGNhbGxzIGdzdF9pbml0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzkyMgoKMjAxMS0wNC0xNiAxMDoxNzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGJhc2VwYXJzZSBBUEkgdG8gbGliZ3N0YmFzZS5kZWYKCjIwMTEtMDQtMTYgMDk6MzM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNiAwOTozMjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBleHBvcnRzIGZvciB0aGUgR3N0UGFyc2VDb250ZXh0IGFuZCBHc3RCdWZmZXJMaXN0SXRlcmF0b3IgdHlwZXMKCjIwMTEtMDQtMTYgMDg6NTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNSAyMDo1ODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogb25seSBydW4gZ3N0LXBsdWdpbi1zY2FubmVyIHdpdGggL3Vzci9iaW4vYXJjaCB3cmFwcGVyIG9uIE9TIFggPj0gMTAuNQoJICBCYXNlZCBvbiBwYXRjaCBieTogRGFuaWVsIE1hY2tzIDxkbWFja3NAbmV0c3BhY2Uub3JnPgoJICBFYXJsaWVyIHZlcnNpb25zIG9mIE9TWCBkb24ndCBzdXBwb3J0IHByb3BlciBtdWx0aWFyY2ggYW5kCgkgIHRyeWluZyB0byB1c2UgL3Vzci9iaW4vYXJjaCAtZm9vIHdpdGggdGhvc2UgdmVyc2lvbnMgd291bGQKCSAganVzdCBicmVhayB0aGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzNTcKCjIwMTEtMDQtMTUgMTk6MDc6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBleHBvc2UgZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpIGZvciBjb21wbGV0ZW5lc3MKCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkKCjIwMTEtMDQtMTUgMTg6NTI6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbml0IGZyYW1lcyBvbiB0aGUgc3RhY2sgd2l0aCBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCkKCSAgRnJhbWVzIG11c3Qgbm93IGJlIGluaXRlZCB0aGlzIHdheSwgY2FuJ3QganVzdCB6ZXJvIHRoZW0KCSAgb3V0IGFuZCB1c2UgdGhlbS4KCjIwMTEtMDQtMTUgMTg6Mzg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtb3JlIGRlYnVnIGxvZ2dpbmcsIG1pbm9yIGNsZWFuLXVwCgkgIFRyYWNlIGZyYW1lcywgc3BsaXQgb3V0IGNvZGUgdG8gcXVldWUgYSBmcmFtZSBmb3IgbGF0ZXIuCgoyMDExLTA0LTE1IDE4OjAwOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2hhbmdlIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKSB0byBub3QgdGFrZSBhIEdzdEJhc2VQYXJzZSBhcmd1bWVudAoKMjAxMS0wNC0xNSAxNzo0MTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1ha2UgR3N0QmFzZVBhcnNlRnJhbWUgaGFuZGxpbmcgbW9yZSBiaW5kaW5ncy1mcmllbmRseQoJICBDaGFuZ2Ugc2VtYW50aWNzIG9mIGdzdF9iYXNlX3BhcnNlX3B1c2hfZnJhbWUoKSBhbmQgbWFrZSBpdCB0YWtlCgkgIG93bmVyc2hpcCBvZiB0aGUgd2hvbGUgZnJhbWUsIG5vdCBqdXN0IHRoZSBmcmFtZSBjb250ZW50cy4gVGhpcwoJICBpcyBtb3JlIGluIGxpbmUgd2l0aCBob3cgZ3N0X3BhZF9wdXNoKCkgZXRjLiB3b3JrLiBKdXN0IHRyYW5zZmVyaW5nCgkgIHRoZSBjb250ZW50LCBidXQgbm90IHRoZSBjb250YWluZXIgb2Ygc29tZXRoaW5nIHRoYXQncyBub3QgcmVhbGx5CgkgIGtub3duIHRvIGJlIGEgY29udGFpbmVyIGlzIGhhcmQgdG8gYW5ub3RhdGUgcHJvcGVybHkgYW5kIHByb2JhYmx5CgkgIHdvbid0IHdvcmsuIFdlIG1hcmsgZnJhbWVzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgbm93IHdpdGggYSBwcml2YXRlCgkgIGZsYWcgaW4gZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpLCBzbyBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkKCSAgb25seSBmcmVlcyB0aGUgY29udGVudHMgaW4gdGhhdCBjYXNlIGJ1dCBub3QgdGhlIGZyYW1lIHN0cnVjdCBpdHNlbGYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9uZXcoKQoKMjAxMS0wNC0xNSAxNTowMjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZ2lzdGVyIGJveGVkIHR5cGUgZm9yIEdzdEJhc2VGcmFtZVBhcnNlCgkgIFRvIG1ha2UgdGhpcyB1c2FibGUgZm9yIGJpbmRpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTE1IDEzOjU3OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQWRkIG1pc3NpbmcgKSB0byB0aGUgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydHkgZGVzY3JpcHRpb24KCjIwMTEtMDQtMTUgMTA6NTM6NTYgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIHVudXNlZCBidXQgc2V0IHZhcmlhYmxlCgkgIEdDQyA0LjYuMCBzcGl0cyB3YXJuaW5ncyBhYm91dCB0aGVzZS4KCjIwMTEtMDQtMTQgMTY6MDY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0QnVmZmVyTGlzdEl0ZXJhdG9yIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMTEtMDQtMTQgMTU6NTk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkgIHBhcnNlOiBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0UGFyc2VDb250ZXh0IGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMTEtMDQtMTQgMTU6NTE6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMS0wNC0xNCAwOTowNzo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayB0aGUgc2lua3BhZCBuYW1lCgoyMDExLTA0LTE0IDA5OjA3OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayBwYWRzIGluIHRoZSBuYW1lZCBwYWRzIHVuaXQgdGVzdAoKMjAxMS0wNC0xNCAwODo1OToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBjYXBzIGxlYWtzIGluIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX2FjY2VwdF97YW55LGFsbH1fY2Fwc19pbl9kaXJlY3Rpb24oKQoKMjAxMS0wNC0xMyAwOToyMDoxMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZXI6IEFsbG93IGVsZW1lbnQgbmFtZXMgdG8gYmVnaW4gd2l0aCBkaWdpdHMKCjIwMTEtMDQtMTMgMTA6MjQ6MzMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBBZGQgdGVzdCBmb3IgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IKCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wNC0xMyAxNzoyNjo1NCArMDIwMCAgSmFubmUgR3J1bmF1IDxqYW5uZS5ncnVuYXVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwcmV2ZW50IGNhbGN1bGF0aW9uIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSBpbiB1cGRhdGVfdGltZV9sZXZlbCgpCgoyMDExLTA0LTExIDE1OjA4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHRlc3RzOiBmaXggdW51c3VlZC1idXQtYXNzaWduZWQtdmFyaWFibGUgd2FybmluZ3Mgd2l0aCBnY2MgNC42CgoyMDExLTA0LTExIDEzOjA0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGRpc2FibGUgdGVzdF9tYW55X2JpbnMgdW5pdCB0ZXN0IGZvciBub3cKCSAgSXQgZmFpbHMgb24gdGhlIE9TWCBib3QgKGJvdGggd2l0aCBnaXQgYW5kIHRoZSBsYXN0IHJlbGVhc2UpLCBhbmQKCSAgaXQgZG9lc24ndCByZWFsbHkgdGVzdCBhbnl0aGluZyB1c2VmdWwsIHNvIG1heSBqdXN0IGFzIHdlbGwgZGlzYWJsZQoJICBpdCBmb3Igbm93LgoKMjAxMS0wNC0xMSAxMjo1MTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIENhc3Qgc3RyaW5nIGNvbnN0YW50cyB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoKMjAxMS0wNC0xMSAxMjowNDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBhbGxvdyBtb3JlIHRpbWUgZm9yIHRoZSB0ZXN0X21hbnlfYmlucyBwaXBlbGluZSB0byBwcmVyb2xsCgkgIEhvcGVmdWxseSBtYWtlcyB0aGlzIHRlc3Qgd29yayBvbiB0aGUgT1NYIGJ1aWxkIGJvdCBhbmQgb3RoZXIKCSAgbm90LXNvLXBvd2VyZnVsIG1hY2hpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjI0CgoyMDExLTA0LTExIDExOjI5OjAwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIGlzIGNhbGxlZCB3aXRoIHRoZSByaWdodCBhcmNoIG9uIE9TWAoJICBPbiBPU1gsIEdTdHJlYW1lciBtaWdodCBiZSBidWlsdCBhcyBhICdmYXQvdW5pdmVyc2FsJyBiaW5hcnkgY29udGFpbmluZwoJICBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGNvZGUuIFdlIG11c3QgdGFrZSBjYXJlIHRoYXQgZ3N0LXBsdWdpbi1zY2FubmVyCgkgIGlzIGV4ZWN1dGVkIHdpdGggdGhlIHNhbWUgYXJjaGl0ZWN0dXJlIGFzIHRoZSBHU3RyZWFtZXIgY29yZSwgb3RoZXJ3aXNlCgkgIGJhZCB0aGluZ3MgbWF5IGhhcHBlbiBhbmQgY29yZS9zY2FubmVyIHdpbGwgbm90IGJlIGFibGUgdG8gY29tbXVuaWNhdGUKCSAgcHJvcGVybHkuCgkgIFNob3VsZCBmaXggaXNzdWVzIHdpdGggKDMyLWJpdCkgZmlyZWZveCB1c2luZyBhIDMyLWJpdCBHU3RyZWFtZXIgY29yZQoJICB3aGljaCB0aGVuIHNwYXducyBhICd1bml2ZXJzYWwnIGdzdC1wbHVnaW4tc2Nhbm5lciBiaW5hcnkgd2hpY2ggZ2V0cwoJICBydW4gaW4gNjQtYml0IG1vZGUsIGNhdXNpbmcgMTAwJSBjcHUgdXNhZ2UgLyBidXN5IGxvb3BzIG9yIGp1c3QgaGFuZ2luZwoJICBmaXJlZm94IHVudGlsIGtpbGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTM1NwoKMjAxMS0wNC0xMSAxMTowNToyNCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsbG93IHRyYWNraW5nIG9mIGJ1ZmZlcnMgaW4gR1NUX1NDSEVEVUxJTkcgZGVidWcgb3V0cHV0CgkgIEFzIEdTVF9TQ0hFRFVMSU5HIHJlcG9ydHMgd2hlbiBidWZmZXJzIHBhc3MgdGhyb3VnaCBwYWRzIGR1ZSB0bwoJICBnc3RfcGFkX3B1c2ggY2FsbHMsIHRoZXkgYXJlIGEgZ29vZCB3YXkgb2YgdHJhY2tpbmcgdGhlIHByb2dyZXNzIG9mCgkgIGJ1ZmZlcnMgdGhyb3VnaCBwaXBlbGluZXMuIEFzIHN1Y2gsIGFkZGluZyBvdXRwdXQgb2YgdGhlIGJ1ZmZlciBwb2ludGVycwoJICB0byB0aGVzZSBtZXNzYWdlcyBhbGxvd3MgdHJhY2tpbmcgb2Ygc3BlY2lmaWMgYnVmZmVycywgZWFzaW5nIGRlYnVnZ2luZy4KCjIwMTEtMDQtMTEgMTA6NTM6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNC0xMSAxMDoyNjo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBhbmRyb2lkL2Jhc2UubWsKCSAgYW5kcm9pZC9jb250cm9sbGVyLm1rCgkgIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rCgkgIGFuZHJvaWQvZWxlbWVudHMubWsKCSAgYW5kcm9pZC9nc3QtaW5zcGVjdC5tawoJICBhbmRyb2lkL2dzdC1sYXVuY2gubWsKCSAgYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWsKCSAgYW5kcm9pZC9nc3QubWsKCSAgYW5kcm9pZC9pbmRleGVycy5tawoJICBhbmRyb2lkL25ldC5tawoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWYKCjIwMTEtMDQtMTEgMTA6MjA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIEZJWE1FCgoyMDExLTAxLTI3IDE0OjMzOjA4ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIEFuZHJvaWQubWs6CgkqIGFuZHJvaWQvTk9USUNFOgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2dzdC9nc3Rjb25maWcuaDoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuaDoKCSogYW5kcm9pZC9nc3QvZ3N0dmVyc2lvbi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLm91dHB1dDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuYzoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkuYzoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGFuZHJvaWQvdG9vbHMubWs6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBhbmRyb2lkOiBtYWtlIGl0IHJlYWR5IGZvciBhbmRyb2dlbml6ZXIKCSAgUmVtb3ZlIHRoZSBhbmRyb2lkLyB0b3AgZGlyCgkgIEZpeGUgdGhlIE1ha2VmaWxlLmFtIHRvIGJlIGFuZHJvZ2VuaXplZAoJICBUbyBidWlsZCBnc3RyZWFtZXIgZm9yIGFuZHJvaWQgd2UgYXJlIG5vdyB1c2luZyBhbmRyb2dlbml6ZXIgd2hpY2ggZ2VuZXJhdGVzIHRoZSBuZWVkZWQgQW5kcm9pZC5tayBmaWxlcy4KCSAgQW5kcm9nZW5pemVyIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwOi8vZ2l0LmNvbGxhYm9yYS5jby51ay8/cD11c2VyL2RlcmVrL2FuZHJvZ2VuaXplci5naXQKCjIwMTEtMDQtMDkgMjM6NTQ6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBkb24ndCBwdXQgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyBpbnRvIGdfcmV0dXJuX2lmX2ZhaWwoKQoKMjAxMS0wNC0wOSAyMjo1Nzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBmaXhlcyBmb3IgYmFzZXBhcnNlIGRvY3MKCSAgQ2xhc3MgdmZ1bmMgcmVmZXJlbmNlcyBzdGlsbCBhcmVuJ3QgcmlnaHQsIG5vIGlkZWEgd2hhdAoJICB0aGUgY29ycmVjdCBtYXJrdXAgZm9yIHRob3NlIGlzLgoKMjAxMS0wNC0wOSAxODowNDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1bnJlZiBldmVudCBpbiBkZWZhdWx0X3NlbmRfZXZlbnQgaW4gY2FzZSBlbGVtZW50IGhhcyBubyBwYWRzCgkgIFNwb3R0ZWQgYnkgIEhhYWtvbiBTcG9yc2hlaW0uCgoyMDExLTA0LTA5IDA0OjA3OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBjaGVjazogSWdub3JlIG5ldyBnc3RtZXRhIGJpbmFyeQoKMjAxMS0wNC0wOSAwNDowNTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZGVzaWduOiBkcmFmdC1idWZmZXIyLnR4dCBubyBsb25nZXIgZXhpc3RzCgoyMDExLTA0LTA5IDA0OjA1OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBEb24ndCBmb3JnZXQgdG8gZGlzdCBnc3RlbGVtZW50bWV0YWRhdGEuaAoKMjAxMS0wNC0wOCAxOTowNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHZhcmlhYmxlIG5hbWUgY2xlYW4tdXAKCjIwMTEtMDQtMDggMTU6MzE6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiByZW5hbWUgX3NldF9mcmFtZV9wcm9wcygpIHRvIF9zZXRfZnJhbWVfcmF0ZSgpCgkgIFNlZW1zIGxpa2UgdGhlIGJlc3QgZml0IHRvIHdoYXQgaXQgZG9lcywgYW5kIGlzIHNob3J0ZXIgdGhhbgoJICBzZXRfZnJhbWVfcHJvcGVydGllcygpIHdoaWNoIG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGNvbmZ1c2luZwoJICBiZWNhdXNlIG9mIEdzdEJhc2VQYXJzZUZyYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTA2IDE3OjQzOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVwbGFjZSBmb3JtYXQgZmxhZ3Mgd2l0aCBnc3RfYmFzZV9wYXJzZV9zZXRfe3Bhc3N0aHJvdWdoLHN5bmNhYmxlLGhhc190aW1pbmdfaW5mb30KCSAgVGhpcyBpcyBtb3JlIGluIGxpbmUgd2l0aCBlLmcuIEdzdEJhc2VUcmFuc2Zvcm0ncyBBUEksIGFuZCBtYWtlcyBmb3IgbmljZXIKCSAgdG8gcmVhZCBjb2RlLiBObyBnZXR0ZXJzIGZvciBub3cgc2luY2UgSSBkb24ndCBzZWUgYW55IHVzZSBjYXNlIGZvciB0aGVtLAoJICB0aGUgQVBJIGlzIGZvciBzdWJjbGFzc2VzLCB3aGljaCB1c3VhbGx5IGtub3cgd2hhdCBmb3JtYXQgdGhleSdyZQoJICBkZWFsaW5nIHdpdGggYWxyZWFkeSBhbmQgaGVuY2Uga25vdyB3aGF0IHRoZXkndmUgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTA0IDE3OjU4OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWFrZSBEUkFJTiBhbmQgU1lOQyBmbGFncyBvbiBiYXNlcGFyc2UsIG5vdCB0aGUgZnJhbWUsIGFuZCBjaGFuZ2UgdG8gRFJBSU5JTkcgYW5kIExPU1RfU1lOQwoJICBUaGUgZmlyc3QgYmVjYXVzZSBpdCBzZWVtcyBhIGJldHRlciBmaXQgY29uY2VwdHVhbGx5LCB0aGUgc2Vjb25kCgkgIHRvIGV4cHJlc3MgYm9vbGVhbm5lc3MuIEFsc28gY2hhbmdlIHRoZSBhY2Nlc3NvciBtYWNyb3MgZm9yIHN1YmNsYXNzZXMKCSAgdG8gR1NUX0JBU0VfUEFSU0VfRFJBSU5JTkcgYW5kIEdTVF9CQVNFX1BBUlNFX0xPU1RfU1lOQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDoxODo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIHBhZGRpbmcgdG8gR3N0QmFzZVBhcnNlRnJhbWUKCSAgRXNwLiBzaW5jZSBpdCdzIHVzdWFsbHkgYWxsb2NhdGVkIG9uIHRoZSBzdGFjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDowODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGZpeCB0eXBvIGluIGRvY3MgZm9yIEdTVF9CQVNFX1BBUlNFX0ZPUk1BVF9GTEFHX1BBU1NUSFJPVUdICgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MDQ6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgR1F1ZXVlIGluc3RlYWQgb2YgR0xpc3QgZm9yIHF1ZXVlZCBmcmFtZXMKCSAgYW5kIG1ha2UgYnVmZmVyIG1ldGFkYXRhIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIGNhcHMgb24gcXVldWVkCgkgIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjM0MQoKMjAxMS0wNC0wMiAxMzowMjowMSArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVybWVyYWxpQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIEdTVF9CQVNFX1BBUlNFX0ZMT1dfUVVFVUVEIHRvIHF1ZXVlIGJ1ZmZlcnMgdW50aWwgY2FwcyBhcmUga25vd24KCSAgVGhpcyBpcyB1c2VmdWwgZm9yIHBhcnNlciBsaWtlIGZsYWNwYXJzZSBvciBoMjY0cGFyc2Ugd2hpY2ggbWF5IG5lZWQgdG8gcHJvY2VzcwoJICBzb21lIGJ1ZmZlcnMgYmVmb3JlIHRoZXkgY2FuIGNvbnN0cnVjdCB0aGUgZmluYWwgY2FwcywgaW4gd2hpY2ggY2FzZSB0aGV5IG1heQoJICB3YW50IHRvIGRlbGF5IHB1c2hpbmcgdGhlIGluaXRpYWwgYnVmZmVycyB1bnRpbCB0aGUgZnVsbCBhbmQgcHJvcGVyIGNhcHMgYXJlCgkgIGtub3duLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MzQxCgoyMDExLTAzLTMxIDE1OjUwOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRvIGRvY3MgYW5kIGZpeCB1cCBndGstZG9jIG1hcmt1cCBhIGxpdHRsZQoJICBBbmQgYWRkIFNpbmNlIG1hcmtlcnMuCgoyMDExLTAzLTMxIDE0OjQ4OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVwbGFjZSBzZXRfc2VlaygpIHdpdGggX3NldF9hdmVyYWdlX2JpdHJhdGUoKSBhbmQgRkxBR19TWU5DQUJMRQoJICBUaGlzIG1ha2VzIG1vcmUgc2Vuc2UgY29uY2VwdHVhbGx5LCBzaW5jZSB0aGUgYml0cmF0ZSBtYXkgYmUgdXNlZAoJICB0byBlc3RpbWF0ZSBhIHNlZWsgcG9zaXRpb24gaWYgdGhlcmUncyBubyBzZWVrIHRhYmxlIG9yIGp1c3QgZm9yCgkgIGR1cmF0aW9uIHJlcG9ydGluZy9lc3RpbWF0aW9uIGlmIHdlIGNhbid0IHNlZWsuIEFsc28sIGV2ZW4gaWYgdGhlCgkgIGZvcm1hdCBpcyBub3Qgc3luY2FibGUsIHdlIGNvdWxkIHN0aWxsIHNlZWsgYnkgcHVzaGluZyBkYXRhIGZyb20gdGhlCgkgIHN0YXJ0IGFuZCB1c2luZyB0aGUgc2VnbWVudCB0byBtYWtlIGRvd25zdHJlYW0gY2xpcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0yNCAxNzozMDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBHc3RCYXNlRm9ybWF0IHRvIEdzdEJhc2VGb3JtYXRGbGFncyBhbmQgZml4IHVwIGFzc29jaWF0ZWQgQVBJCgkgIEFsc28gY2hhbmdlIGdzdF9iYXNlX3BhcnNlX3NldF9mb3JtYXQocGFyc2UsZmxhZ3Msc3dpdGNoX29uKSB0bwoJICBnc3RfYmFzZV9wYXJzZV9zZXRfZm9ybWF0X2ZsYWdzKHBhcnNlLGZsYWdzKSB3aGljaCBpcyBtb3JlIGluIGxpbmUKCSAgd2l0aCB0aGUgcmVzdCBvZiBvdXIgQVBJIGFuZCBob3cgdGhlIGZ1bmN0aW9uIGlzIHVzZWQuCgoyMDExLTAzLTEzIDIzOjQzOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZG9uJ3QgZXhwb3NlIEdzdEFkYXB0ZXIgaW4gcHVibGljIGhlYWRlcgoJICBOb25lIG9mIHRoZSBleGlzdGluZyBzdWJjbGFzc2VzIG5lZWRzIGFjY2VzcyB0byB0aGF0LCBzbyB0aGVyZSdzCgkgIG5vIHJlYXNvbiB0byBleHBvc2UgaXQgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMyAyMzozODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vdmUgdmFyaW91cyBzZWdtZW50LXJlbGF0ZWQgbWVtYmVycyBpbnRvIHRoZSBwcml2YXRlIGluc3RhbmNlIHN0cnVjdAoJICBJZiBub25lIG9mIHRoZSBleGlzdGluZyBzdWJjbGFzc2VzIHVzZXMgdGhlc2UsIHRoZXJlJ3MgcHJvYmFibHkgbm8KCSAgbmVlZCB0byBleHBvc2UgdGhlbSBhdCB0aGUgbW9tZW50LiBLZWVwIHRoZSBzZWdtZW50IGl0c2VsZiBleHBvc2VkCgkgIHRob3VnaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMyAyMzozMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbW92ZSB1bnVzZWQgR1NUX0JBU0VfUEFSU0Vfe1NJTkssU1JDfV9OQU1FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTIgMTY6MTY6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZS1pbmRlbnQgaGVhZGVyCgoyMDExLTAzLTEyIDE1OjM0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHVwIEdUeXBlIG5hbWUgYW5kIG1ha2UgX2dldF90eXBlKCkgZnVuY3Rpb24gdGhyZWFkLXNhZmUKCSAgUmVuYW1lIEdUeXBlIGZyb20gR3N0QmFzZVBhcnNlQmFkIHRvIEdzdEJhc2VQYXJzZS4KCjIwMTEtMDMtMTIgMTU6Mjk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgbGliczogYWRkIEdzdEJhc2VQYXJzZSB3aGljaCB3YXMgbW92ZWQgZnJvbSAtYmFkCgoyMDExLTAyLTIzIDE3OjI0OjE0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGZpeAoKMjAxMS0wMi0yMSAxMzoyNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBHVHlwZSBmcm9tIEdzdEF1ZGlvQmFzZVBhcnNlQmFkIHRvIEdzdEJhc2VQYXJzZUJhZAoJICBXZSB1c2UgaXQgZm9yIHZpZGVvIGFzIHdlbGwgbm93LgoKMjAxMS0wMi0xOCAxNTowNTozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTEtMDItMTggMTU6MDU6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGRlbHRhLXVuaXQgZmxhZ3MgaW5zdGVhZCBvZiBub25lCgoyMDExLTAyLTE3IDEzOjIyOjI4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIEFQSSBjaGFuZ2VzCgoyMDEwLTEwLTEzIDE1OjM5OjU1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogQ3JlYXRlIGJhc2VwYXJzZSBsaWJyYXJ5CgoyMDExLTAyLTA3IDE0OjQ2OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVuZSBRVUVSWV9TRUVLSU5HIHJlc3BvbnNlCgkgIEV2ZW4gaWYgd2UgY3VycmVudGx5IGRvIG5vdCBoYXZlIGEgZHVyYXRpb24geWV0LCBhc3N1bWUgc2Vla2FibGUgaWYKCSAgaXQgbG9va3MgbGlrZSB3ZSdsbCBsaWtlbHkgYmUgYWJsZSB0byBkZXRlcm1pbmUgaXQgbGF0ZXIgb24KCSAgKHdoaWNoIGNvaW5jaWRlcyB3aXRoIG5lZWRlZCBpbmZvcm1hdGlvbiB0byBwZXJmb3JtIHNlZWtpbmcpLgoJICBGaXhlcyAjNjQxMDQ3LgoKMjAxMS0wMi0wOCAyMzozOToyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVwZGF0ZSBtaW4vbWF4IGJpdHJhdGUgYmVmb3JlIGZpcnN0IHBvc3RpbmcgdGhlbQoJICBUaGlzIGF2b2lkcyBwb3N0aW5nIGFuIGluaXRpYWwgbWluLWJpdHJhdGUgb2YgR19VSU5UTUFYIGFuZCBtYXgtYml0cmF0ZQoJICBvZiAwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxODU3CgoyMDExLTAxLTIxIDE0OjUzOjM5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVuZSBkZWZhdWx0IGR1cmF0aW9uIGVzdGltYXRlIHVwZGF0ZSBpbnRlcnZhbAoJICBSYXRoZXIgdGhhbiBhIGZpeGVkIGRlZmF1bHQgZnJhbWUgY291bnQsIGVzdGltYXRlIGZyYW1lIGNvdW50IHRvIGFpbSBmb3IKCSAgYW4gaW50ZXJ2YWwgZHVyYXRpb24gZGVwZW5kaW5nIG9uIGZwcyBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2Ugb2xkCgkgIGZpeGVkIGRlZmF1bHQuCgoyMDExLTAxLTE0IDE1OjE2OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJzZSBwbGF5YmFjazsgbWluZCBrZXlmcmFtZXMgZm9yIGZyYWdtZW50IGJvdW5kYXJ5CgoyMDExLTAxLTEyIDE0OjQwOjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIG5vbi1lbXB0eSBjYW5kaWRhdGUgZnJhbWVzCgoyMDExLTAxLTExIDE1OjI0OjIzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xhcmlmeSBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTEtMDEtMTEgMTU6MjQ6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXJseSB0cmFjayB1cHN0cmVhbSB0aW1lc3RhbXBzCgkgIC4uLiByYXRoZXIgdGhhbiB3aXRoIGEgZGVsYXkuCgoyMDExLTAxLTExIDE1OjIzOjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbmVlZCBwcm9wZXIgZnJhbWUgZHVyYXRpb24gdG8gb2J0YWluIHNlbnNpYmxlIGZyYW1lIGJpdHJhdGUKCjIwMTEtMDEtMTEgMTU6MjI6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXIgaW5pdGlhbCB2YWx1ZXMgZm9yIGluZGV4IHRyYWNraW5nIHZhcmlhYmxlcwoKMjAxMS0wMS0xMSAxMjowNToxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFycmFuZ2UgZm9yIGNvbnNpc3RlbnQgZXZlbnQgaGFuZGxpbmcKCjIwMTEtMDEtMTAgMTY6NTk6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBoZWFkZXIgc3R5bGUgY2xlYW5pbmcKCjIwMTEtMDEtMTAgMTc6MDc6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIHNvbWUgbW9yZSBpbml0aWFsIGZyYW1lIG1ldGFkYXRhIGluIHBhcnNlX2ZyYW1lCgkgIC4uLiBhbmQgZG9jdW1lbnQgYWNjb3JkaW5nbHkuCgoyMDExLTAxLTEwIDE2OjU2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgcGFzc3Rocm91Z2ggaW50byBmb3JtYXQgZmxhZ3MKCSAgQWxzbyBhZGQgYSBmb3JtYXQgZmxhZyB0byBzaWduYWwgYmFzZXBhcnNlIHRoYXQgc3ViY2xhc3MvZm9ybWF0IGNhbiBwcm92aWRlCgkgIChwYXJzZWQpIHRpbWVzdGFtcCByYXRoZXIgdGhhbiBhbiBlc3RpbWF0ZWQgb25lLiAgSW4gcGFydGljdWxhciwgc3VjaCAic3Ryb25nIgoJICB0aW1lc3RhbXAgdGhlbiBhbGxvd3MgdG8gZS5nLiBkZXRlcm1pbmUgZHVyYXRpb24uCgoyMDExLTAxLTEwIDE1OjM0OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogaW50cm9kdWNlIGEgYmFzZXBhcnNlIGZyYW1lIHRvIHNlcnZlIGFzIGNvbnRleHQKCSAgLi4uIGFuZCBhZGp1c3Qgc3ViY2xhc3MgcGFyc2VycyBhY2NvcmRpbmdseQoKMjAxMS0wMS0wNyAxNjozOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlc3RyaWN0IGR1cmF0aW9uIHNjYW5uaW5nIHRvIHB1bGwgbW9kZSBhbmQgYXZvaWQgZXh0cmEgc2V0X2NhcHMgY2FsbAoKMjAxMS0wMS0wNyAxNTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24KCSAgQWxzbyBhZGQgc29tZSBtb3JlIGRlYnVnLgoKMjAxMS0wMS0wNiAxMTo0MTo0NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsbG93IGluY3JlYXNpbmcgbWluX3NpemUgZm9yIGN1cnJlbnQgZnJhbWUgcGFyc2luZyBvbmx5CgkgIEFsc28gY2hlY2sgdGhhdCBzdWJjbGFzcyBhY3R1YWxseSBlaXRoZXIgZGlyZWN0cyB0byBza2lwIGJ5dGVzIG9yCgkgIGluY3JlYXNlcyBleHBlY3RlZCBmcmFtZSBzaXplIHRvIGF2b2lkIGdvaW5nIG5vd2hlcmUgaW4gYm9ndXMKCSAgaW5kZWZpbml0ZSBsb29waW5nLgoKMjAxMS0wMS0xNCAxNToyNjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYWVzcGFyc2U6IGZpeCByZWZhY3RvciByZWdyZXNzaW9uIGluIGxvb3AgYmFzZWQgcGFyc2luZwoKMjAxMS0wMS0wNiAxMToxNjo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBhc3MgYWxsIGF2YWlsYWJsZSBkYXRhIHRvIHN1YmNsYXNzIHJhdGhlciB0aGFuIG1pbmltdW0KCSAgQWxzbyByZWR1Y2Ugc29tZSBhZGFwdGVyIGNhbGxzIGFuZCBhZGQgYSBmZXcgZGVidWcgc3RhdGVtZW50cy4KCjIwMTAtMTItMTAgMTU6NTk6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjayBoYW5kbGluZwoKMjAxMC0xMi0xMCAxNDo1NjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHR5cG8gYW5kIGRlYnVnIHN0YXRlbWVudCBjbGVhbnVwCgoyMDEwLTEyLTEwIDE0OjQwOjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVkdWNlIGxvY2tpbmcKCSAgLi4uIHdoaWNoIGlzIGVpdGhlciBhbHJlYWR5IG11dGUgYW5kL29yIGltcGxpY2l0bHkgaGFuZGxlZCBieSBTVFJFQU1fTE9DSy4KCjIwMTEtMDEtMTQgMTQ6MDg6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCBsb29wIGluIGZyYW1lIGxvY2F0aW5nIGludGVycG9sYXRpb24KCjIwMTEtMDEtMTQgMTY6MzA6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBiYXNlcGFyc2U6IEJlIGNhcmVmdWwgdG8gbm90IGxvc2UgdGhlIGV2ZW50IHJlZgoJICBEb24ndCB1bnJlZiB0aGUgZXZlbnQgaWYgaXQgaGFzbid0IGJlZW4gaGFuZGxlZCwgYmVjYXVzZSB0aGUgY2FsbGVyCgkgIGFzc3VtZXMgaXQgaXMgc3RpbGwgdmFsaWQgYW5kIG1pZ2h0IHJldXNlIGl0LgoJICBJIHJhbiBpbnRvIHRoaXMgcHJvYmxlbSB3aGVuIHRyYW5zY29kaW5nIGFuIEFWSSAod2l0aCBtcDMgaW5zaWRlKQoJICB0byBncHAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk1NTUKCjIwMTEtMDEtMTMgMTY6Mjc6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgYmFzZXBhcnNlIGRvY3MvY29tbWVudCBmaXhlcwoJICBSZW1vdmUgY29weSduJ3Bhc3RlIGxlZnRvdmVycy4KCjIwMTAtMTEtMDggMTk6NTg6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbmNyZWFzZSBrZXlmcmFtZSBhd2FyZW5lc3MKCSAgLi4uIHdoaWNoIGlzIG5vdCBwYXJ0aWN1bGFyIHJlbGV2YW50IGZvciBhdWRpbyBwYXJzaW5nLCBidXQgbW9yZSBzbwoJICBpbiB2aWRlbyBjYXNlcy4gIEluIHBhcnRpY3VsYXIsIGF1dG8tZGV0ZXJtaW5lIGlmIGRlYWxpbmcgd2l0aCB2aWRlbyAoY2FwcykuCgoyMDEwLTExLTMwIDE1OjQxOjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgdW5leHBlY3RlZCBzdHJheSBtZXRhZGF0YQoKMjAxMC0xMS0zMCAxNTo0MDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBwcm9wZXIgX05PTkUgb3V0cHV0IHZhbHVlIHdoZW4gYXBwbGljYWJsZQoKMjAxMC0xMS0yNSAxODo1Njo0MiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMTAtMTEtMjUgMTc6MTQ6MjMgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2U6IGZpeCBwb3NzaWJsZSBkaXZpc2lvbi1ieS16ZXJvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU3ODYKCjIwMTAtMTEtMTcgMTY6MjM6NDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgY29ycmVjdCBvZmZzZXQgd2hlbiBhZGRpbmcgaW5kZXggZW50cnkKCSAgLi4uIGJlYXJpbmcgaW4gbWluZCB0aGF0IEJVRkZFUl9PRkZTRVQgaXMgbWVkaWEgc3BlY2lmaWMgYW5kIG1heSBub3QKCSAgcmVmbGVjdCB0aGUgYmFzaWMgb2Zmc2V0IGFmdGVyIGhhdmluZyBiZWVuIHBhcnNlZC4KCjIwMTAtMTEtMTcgMTQ6MzA6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbmhhbmNlbWVudHMgZm9yIHRpbWVzdGFtcCBtYXJrZWQgZnJhbWVkIGZvcm1hdHMKCSAgVGhhdCBpcywgYXMgc3VjaCBmb3JtYXRzIGFsbG93IHN1YmNsYXNzIHRvIGV4dHJhY3QgcG9zaXRpb24gZnJvbSBmcmFtZSwKCSAgaXQgaXMgcG9zc2libGUgdG8gZXh0cmFjdCBkdXJhdGlvbiAoaWYgbm90IG90aGVyd2lzZSBwcm92aWRlZCkKCSAgZnJvbSAobmVhcikgbGFzdCBmcmFtZSwgYW5kIGEgc2VlayBjYW4gZmFpcmx5IGFjY3VyYXRlbHkgdGFyZ2V0IHRoZSByZXF1aXJlZAoJICBwb3NpdGlvbi4KCSAgRml4ZXMgIzYzMTM4OS4KCjIwMTAtMTEtMTYgMTc6MDY6MTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBmcmFtZSBzY2FubmluZyBwZWZvcm1lZCBieSBfbG9vcAoKMjAxMC0xMS0xNiAxODowNDowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNsaWdodGx5IG9wdGltaXplIHNlbmRpbmcgb2YgcGVuZGluZyBuZXdzZWdtZW50IGV2ZW50cwoKMjAxMC0xMS0xNiAxNzowNDozNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIGZpeGVzIGFuZCBlbmhhbmNlbWVudHMKCSAgQXJyYW5nZSBmb3IgdXBzdHJlYW0gYXMgd2VsbCBhcyBkb3duc3RyZWFtIGZsdXNoaW5nIHdoZW4gc2Vla2luZy4KCSAgQWxzbyBkZXRlcm1pbmUgdXBzdHJlYW0gc2l6ZSBhcyB3ZWxsIGFzIHNlZWthYmlsaXR5LiAgQWRqdXN0IHNvbWUgY29tbWVudHMKCSAgdG8gcmVhbGl0eSBhbmQgZW1wbG95IGRlYnVnIHN0YXRlbWVudCBpbiBwcm9wZXIgb3JkZXIuCgoyMDEwLTEwLTI5IDE0OjA4OjU4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIG9ubHkgdXBzdHJlYW0gZHVyYXRpb24gaWYgaXQgcHJvdmlkZXMgb25lCgoyMDEwLTEwLTI1IDE0OjE1OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmbG93IHVwZGF0ZV9iaXRyYXRlIGNvZGUKCSAgLi4uIHdoaWNoIG1ha2VzIGxvY2FsIHZhcmlhYmxlcyByZXByZXNlbnQgcmVhbCBzdGF0ZSBiZXR0ZXIsIGFuZCBhdm9pZHMKCSAgdHJpZ2dlcmluZyB1bm5lZWRlZCB1cGRhdGVzL2FjdGlvbnMuCgoyMDEwLTEwLTI1IDE0OjEzOjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMC0xMC0xMSAxNzo0OTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBlcmZvcm0gYml0cmF0ZSBoYW5kbGluZyBhbmQgcG9zdGluZyBhZnRlciBuZXdzZWdtZW50IHNlbmRpbmcKCjIwMTAtMTAtMTEgMTc6MzY6MTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbW1lZGlhdGVseSBwb3N0IHN1YmNsYXNzIHByb3ZpZGVkIGJpdHJhdGUKCjIwMTAtMTAtMDUgMTE6MTc6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGFkZCBza2lwIHByb3BlcnR5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI1YTNkNjAzNjNkODM3YTEwZjA1MzNjMTQxZWM5M2QxMGI3NDIzMTIuCgkgIFJldmVydGluZyB0aGlzIGZvciBub3csIHNpbmNlIG5vIG9uZSByZWFsbHkgc2VlbXMgdG8gcmVtZW1iZXIgd2h5IHRoaXMKCSAgcHJvcGVydHkgZXhpc3RzIG9yIHdoYXQgaXQgY291bGQgcG9zc2libHkgYmUgZ29vZCBmb3IuIEl0IHNlZW1zIHRvIGhhdmUKCSAgYmVlbiBpbiB0aGUgb3JpZ2luYWwgbXAzcGFyc2Ugc2luY2UgdGhlIGJlZ2lubmluZyBvZiB0aW1lIGFuZCB3YXMgYmFjay0KCSAgcG9ydGVkIGZyb20gdGhlcmUuCgoyMDEwLTEwLTAzIDIzOjUwOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyOiBMZXQgdGhlIGZvcm1hdCBzdHJpbmcgYWdyZWUgd2l0aCB0aGUgcGFyYW1ldGVycyB0byBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wOS0yMiAxNTo0NDo0MyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBkZWJ1ZyBvdXRwdXQKCSAgV2UgbG9zZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBidWZmZXIgYWZ0ZXIgZ3N0X3BhZF9wdXNoKCksIHNvIHRoZSBkZWJ1ZwoJICBwcmludCBzaG91bGQgaGFwcGVuIGJlZm9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjI3NgoKMjAxMC0wOS0yOSAxNjoxMjo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHN1cHBvcnQgcmV2ZXJzZSBwbGF5YmFjawoJICAuLi4gaW4gcHVsbCBtb2RlIG9yIHVwc3RyZWFtIGRyaXZlbi4KCjIwMTAtMDktMjcgMTI6MTY6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZG9uZSBUT0RPcyBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTAtMDktMjUgMTQ6NDA6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgZGV0ZXJtaW5lZCBzZWVrYWJpbGl0eSBpbiBhbnN3ZXJpbmcgU0VFS0lORyBxdWVyeQoKMjAxMC0wOS0yNSAxNDozMjowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBza2lwIHByb3BlcnR5CgoyMDEwLTA5LTIyIDE1OjA3OjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZnJhbWVfcHJvcHMgdG8gY29uZmlndXJlIGZyYW1lIGxlYWRfaW4gYW5kIGxlYWRfb3V0CgkgIC4uLiBwcm92aWRlZCBhIGNvcnJlc3BvbmRpbmcgZGVjb2RlciB3aXRoIHN1ZmZpY2llbnQgbGVhZGluZyBhbmQgZm9sbG93aW5nCgkgIGZyYW1lcyB0byBjYXJyeSBvdXQgZnVsbCBkZWNvZGluZyBmb3IgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuCgoyMDEwLTA5LTIyIDE0OjEzOjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZHVyYXRpb24gdG8gY29uZmlndXJlIGR1cmF0aW9uIHVwZGF0ZSBpbnRlcnZhbAoJICAuLi4gYXMgaXQgbG9naWNhbGx5IGJlbG9uZ3MgdGhlcmUgYXMgb25lIG9yIHRoZSBvdGhlcjsgZWl0aGVyIHN1YmNsYXNzCgkgIGNhbiBwcm92aWRlIGEgZHVyYXRpb24sIG9yIGFuIGVzdGltYXRlIG11c3QgYmUgbWFkZSAocmVndWFybHkgdXBkYXRlZCkuCgoyMDEwLTA5LTIyIDEzOjU1OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbG9jYWxpemUgdXNlIG9mIHByb3ZpZGVkIGZwcyBpbmZvcm1hdGlvbgoKMjAxMC0wOS0yMiAxMjoxMzoxMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlZWsgdGFibGUgYW5kIGFjY3VyYXRlIHNlZWsgc3VwcG9ydAoKMjAxMC0wOS0yMSAxMzo1NzoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BlciBhbmQgbW9yZSBleHRlbmRlZCBzZWdtZW50IGFuZCBzZWVrIGhhbmRsaW5nCgkgIFRoYXQgaXMsIGxvb3AgcGF1c2UgaGFuZGxpbmcsIHNlZ21lbnQgc2VlayBzdXBwb3J0LCBuZXdzZWdtZW50IGZvciBnYXBzLCBldGMKCjIwMTAtMDktMjEgMTA6NTc6MDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgaW5kZXggc3VwcG9ydAoKMjAxMC0wOS0yMSAwOTo1OTo1NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHN0YXRlIHJlc2V0CgoyMDEwLTA5LTIwIDE2OjM5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmRlZmluaXRlIHJlc3luY2luZwoKMjAxMC0wOS0yMCAxMzo1Nzo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNwZWNpZmljIEVPUyBoYW5kbGluZyBpZiBubyBvdXRwdXQgc28gZmFyCgoyMDEwLTA5LTIwIDEzOjMxOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRqdXN0IF9zZXRfZnJhbWVfcHJvcCBkb2N1bWVudGF0aW9uIGFuZCBzZXQgZGVmYXVsdCBhcyBjbGFpbWVkCgoyMDEwLTA5LTIwIDEzOjMwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJpdHJhdGUgY29weS1hbmQtcGFzdGUgYW5kIHVwZGF0ZSBoZXVyaXN0aWMKCjIwMTAtMDktMTcgMTg6MzM6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IGR1cmF0aW9uIG1lc3NhZ2UgaWYgYXZlcmFnZSBiaXRyYXRlcyBpcyB1cGRhdGVkCgoyMDEwLTA5LTE3IDE4OjI0OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGlzX3NlZWthYmxlIHZtZXRob2QgYW5kIHVzZSBhIHNldF9zZWVrIGluc3RlYWQKCSAgU2Vla2FiaWxpdHksIGxpa2UgZHVyYXRpb24sIGV0YyBpcyB1bmxpa2VseSB0byBjaGFuZ2UgKGZyZXF1ZW50bHkpLCBhbmQKCSAgdGhlIGRlZmF1bHQgYXNzdW1wdGlvbiBjb3ZlcnMgbW9zdCBjYXNlcywgc28gbGV0IHN1YmNsYXNzIHNldCB3aGVuIG5lZWRlZC4KCSAgQXQgdGhlIHNhbWUgdGltZSwgYWxsb3cgc3ViY2xhc3MgdG8gaW5kaWNhdGUgaWYgaXQgaGFzIHNlZWstbWV0YWRhdGEgKHRhYmxlKQoJICBhdmFpbGFibGUsIGFuZCBwb3NzaWJseSBoYXZlIGl0IHByb3ZpZGUgYW4gYXZlcmFnZSBiaXRyYXRlLgoKMjAxMC0wOS0xNyAxNzoyMTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBhbm90aGVyIGhvb2sgZm9yIHN1YmNsYXNzIHByaW9yIHRvIHB1c2hpbmcgYnVmZmVyCgkgIC4uLiBhbmQgYWxsb3cgc3ViY2xhc3MgdG8gcGVyZm9ybSBjdXN0b20gc2VnbWVudCBjbGlwcGluZywgb3IgdG8KCSAgZW1pdCB0YWdzIG9yIG1lc3NhZ2VzIGF0IHRoaXMgdGltZS4KCjIwMTAtMDktMTcgMTc6MTk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiAwIGNvbnZlcnRzIHRvIDAgYnkgZGVmYXVsdAoKMjAxMC0wOS0xNiAxODo1Njo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIGNvbnZlcnNpb24gdXNpbmcgaGVscGVyIGZ1bmN0aW9uIGFuZCBleHBvcnQgZGVmYXVsdCBjb252ZXJ0CgoyMDEwLTA5LTE2IDE4OjM1OjQ3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3RyZWFtbGluZSBxdWVyeSBoYW5kbGluZwoKMjAxMC0wOS0xNiAxMTo1MToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNsZWFudXAgc3RydWN0IGFuZCByZW1vdmUgdW51c2VkIG1lbWJlcgoKMjAxMC0wOS0yMiAxNjowNzoyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFsbG93IGNoYWluaW5nIG9mIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXJzCgkgIFRoaXMgYWxsb3dzIHRoZSBjaGlsZCBjbGFzcyB0byBjaGFpbiBpdHMgZXZlbnQgaGFuZGxlciB3aXRoCgkgIEdzdEJhc2VQYXJzZSwgc28gdGhhdCBzdWJjbGFzc2VzIGRvbid0IGhhdmUgdG8gZHVwbGljYXRlIGFsbCB0aGUgZGVmYXVsdAoJICBldmVudCBoYW5kbGluZyBsb2dpYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjI3NgoKMjAxMC0wOC0yNyAxODozNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgkgIEFsc28gZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIGZvciBVTkVYUEVDVEVEIGFuZCBkbyBpdAoJICBmb3IgTk9UX0xJTktFRC4KCjIwMTAtMDktMDYgMTQ6MTI6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBub24tVElNRSBzZWVrIGV2ZW50IGlzIHNpbXBseSBub3QgaGFuZGxlZAoKMjAxMC0wNi0xNSAxNTozNDowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrIGV2ZW50IHJlZiBoYW5kbGluZwoKMjAxMC0wNi0xNSAxNTozMzozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgYXJpdGhtZXRpYyBvdmVyZmxvd3MgaW4gcHVsbCBtb2RlIGJ1ZmZlciBjYWNoZSBoYW5kbGluZwoKMjAxMC0wNi0xNSAxNTozMjozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrIGhhbmRsaW5nCgkgIEFsbG93IGEgZmV3IG1vcmUgc2VlayBldmVudCB0eXBlIGNvbWJpbmF0aW9ucywgYW5kIHJlYWxseSB1c2UgdGhlIHJlc3VsdAoJICBvZiBnc3Rfc2VnbWVudF9zZXRfc2VlayB0byBwZXJmb3JtIHRoZSBzZWVrLiAgQWxzbyBhZGQgc29tZSBkZWJ1Zy4KCjIwMTAtMDMtMjYgMTg6NTY6NDkgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBlbWl0IGJpdHJhdGUgdGFncyB0b28gZWFybHkKCSAgV2Ugd2FpdCB0byBwYXJzZSBhIG1pbmltdW0gbnVtYmVyIG9mIGZyYW1lcyAoMTAsIGFyYml0cmFyaWx5KSBiZWZvcmUKCSAgZW1pdGluZyBiaXRyYXRlIHRhZ3Mgc28gdGhhdCBvdXIgZWFybHkgZXN0aW1hdGVzIGFyZSBub3Qgd2lsZGx5CgkgIGluYWNjdXJhdGUgZm9yIHN0cmVhbXMgdGhhdCBzdGFydCB3aXRoIGEgc2lsZW5jZS4gSWYgdGhlIHN0cmVhbSBlbmRzCgkgIGJlZm9yZSB0aGF0LCB3ZSBqdXN0IGVtaXQgdGhlIHRhZ3MgYW55d2F5LgoJICBXaGlsZSBpdCBfd291bGRfIGJlIG5pY2VyIHRvIGJlIHNwZWNpZnkgdGhlIHRocmVzaG9sZCB0byBzdGFydCBwdXNoaW5nCgkgIHRoZSB0YWdzIGluIHRlcm1zIG9mIGR1cmF0aW9uLCB0aGlzIHdvdWxkIGludHJvZHVjZSBtb3JlIGNvbXBsZXhpdHkgdGhhbgoJICB0aGlzIG1lcml0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk5MQoKMjAxMC0wMy0yNiAxODoyMDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFNldCB0aGUgbGFzdCBzdG9wIHRvIHRoZSBidWZmZXIgc3RhcnR0aW1lIGlmIHRoZSBkdXJhdGlvbiBpcyBpbnZhbGlkCgkgIC4uLmluc3RlYWQgb2Ygbm90IHNldHRpbmcgaXQgYXQgYWxsLgoKMjAxMC0wMy0yNiAxODoxOTowMCArMDEwMCAgSm9zaHVhIE0uIERvZSA8am9zaEBqb3NoZG9lLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU2VuZCBORVdTRUdNRU5UIGV2ZW50IHdpdGggY29ycmVjdCBzdGFydCBhbmQgcG9zaXRpb24KCSAgSW5zdGVhZCBvZiB0YWtpbmcgdGhlIGxhc3Qgc3RvcCAod2hpY2ggY291bGQgYmUgYnVmZmVyIGVuZHRpbWUgaW5zdGVhZAoJICBvZiBzdGFydHRpbWUpIGFsd2F5cyB0YWtlIHRoZSBidWZmZXIgc3RhcnR0aW1lLgoJICBGaXhlcyBidWcgIzYxNDAxNi4KCjIwMTAtMDMtMjUgMTc6MDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiByZW1vdmUgdW51c2VkIEdzdEJhc2VQYXJzZUNsYXNzUHJpdmF0ZSBzdHJ1Y3R1cmUKCjIwMTAtMDMtMjUgMTE6MjI6NTggKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiBBZGQgYml0cmF0ZSBjYWxjdWxhdGlvbiB0byBiYXNlcGFyc2UKCSAgVGhpcyBtYWtlcyBiYXNlcGFyc2Uga2VlcCBhIHJ1bm5pbmcgYXZlcmFnZSBvZiB0aGUgc3RyZWFtIGJpdHJhdGUsIGFzCgkgIHdlbGwgYXMgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gYml0cmF0ZXMuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIGEKCSAgdmZ1bmMgdG8gbWFrZSBzdXJlIHRoYXQgcGVyLWZyYW1lIG92ZXJoZWFkIGZyb20gdGhlIGNvbnRhaW5lciBpcyBub3QKCSAgYWNjb3VudGVkIGZvciBpbiB0aGUgYml0cmF0ZSBjYWxjdWxhdGlvbi4KCSAgV2UgdGFrZSBjYXJlIG5vdCB0byBvdmVycmlkZSB0aGUgYml0cmF0ZSwgbWluaW11bS1iaXRyYXRlLCBhbmQKCSAgbWF4aW11bS1iaXRyYXRlIHRhZ3MgaWYgdGhleSBoYXZlIGJlZW4gcG9zdGVkIHVwc3RyZWFtLiBXZSBhbHNvCgkgIHJhdGUtbGltaXQgdGhlIGVtaXNzaW9uIG9mIGJpdHJhdGUgc28gdGhhdCBpdCBpcyBvbmx5IHRyaWdnZXJlZCBieSBhCgkgIGNoYW5nZSBvZiA+MTAga2Jwcy4KCjIwMTAtMDEtMTQgMTE6NTA6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiByZW5hbWUgYmFzZXBhcnNlIEdUeXBlIG5hbWUgdG8gYXZvaWQgcG9zc2libGUgY29uZmxpY3RzCgoyMDEwLTAxLTA1IDE1OjA1OjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogZG9jdW1lbnRhdGlvbiBmaXhlcwoKMjAwOS0xMi0yMSAxODoxODozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkanVzdCBzZWVrIGhhbmRsaW5nIGFuZCBuZXdzZWdtZW50IHNlbmRpbmcKCSAgUGVyZm9ybSBzYW5pdHkgY2hlY2sgb24gdHlwZSBvZiBzZWVrLCBhbmQgb25seSBwZXJmb3JtIG9uZSB0aGF0IGlzCgkgIGFwcHJvcHJpYXRlbHkgc3VwcG9ydGVkLiAgQWRqdXN0IGRvd25zdHJlYW0gbmV3c2VnbWVudCBldmVudAoJICB0byBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRoYXQgaXMgc2VudCBkb3duc3RyZWFtLgoKMjAwOS0xMi0yMSAxMTo1OTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHJlZmFjdG9yIGNsZWFudXAKCSAgQWxzbyBhZGQgc29tZSBkZWJ1ZyBsb2dnaW5nLgoKMjAwOS0xMi0xOCAyMTowMjo0MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcGxlbWVudCBsZWZ0b3ZlciBkcmFpbmluZyBpbiBwdWxsIG1vZGUKCjIwMDktMTItMTYgMTg6Mzg6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIGRlZmF1bHQgY29udmVyc2lvbiB1c2luZyBicHMgaWYgbm8gZnBzIGF2YWlsYWJsZQoJICBBbHNvIHN0b3JlIGVzdGltYXRlZCBkdXJhdGlvbiBhcyBzdWNoLCByYXRoZXIgdGhhbiBwcmV0ZW5kaW5nIG90aGVyd2lzZQoJICAoZS5nLiBzZXQgYnkgc3ViY2xhc3MpLgoKMjAwOS0xMi0xOCAxMzozMDoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNoZWNrIGZvciByZW1haW5pbmcgZGF0YSB3aGVuIGRyYWluaW5nIGluIHB1c2ggbW9kZQoKMjAwOS0xMi0xOCAxMzozMDowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBwdWxsIG1vZGUgY2FjaGUgc2l6ZSBjb21wYXJpc29uCgoyMDA5LTEyLTExIDEwOjI1OjE2IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2U6IGZpeCBhIGZvcm1hdCBzdHJpbmcgYXMgcmVwb3J0ZWQgb24gaXJjLgoKMjAwOS0xMC0yOSAxNToxODozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGN1c3RvbSBidWZmZXJmbGFnIGluZGljYXRlcyBub3QgdG8gY291bnQgZnJhbWUgaW4gc3RhdHMKCjIwMDktMTEtMjcgMTc6Mjc6MzIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiByZWZlcmVuY2UgR3N0QmFzZVBhcnNlIG5vdyBsaXZlcyBoZXJlCgoyMDA5LTExLTI4IDE4OjEzOjMxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lICdhYWNwYXJzZScgcGx1Z2luIHRvIGdlbmVyaWMgJ2F1ZGlvcGFyc2VycycgcGx1Z2luCgoyMDA5LTEwLTI5IDE2OjA1OjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBwYXNzdGhyb3VnaCBtb2RlIHRvIGRlZmF1bHQgKGRpc2FibGVkKSBvbiBhY3RpdmF0aW9uCgoyMDA5LTEwLTI5IDE1OjE2OjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRhYmxlCgoyMDA5LTEwLTI4IDE0OjA2OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGZpeC9lbmhhbmNlIERJU0NPTlQgbWFya2luZwoJICBJbiBwYXJ0aWN1bGFyLCBjb25zaWRlciBESVNDT05UID09ICFzeW5jLCBhbmQgYWxsb3cgc3ViY2xhc3MgdG8gcXVlcnkKCSAgc3luYyBzdGF0ZSwgYXMgaXQgbWF5IHdhbnQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBkZXBlbmRpbmcKCSAgb24gd2hldGhlciBzeW5jIHdhcyBhY2hpZXZlZCBlYXJsaWVyIG9uLgoJICBBbHNvIGFycmFuZ2UgZm9yIHN1YmNsYXNzIHRvIHF1ZXJ5IHdoZXRoZXIgbGVmdG92ZXIgZGF0YSBpcyBiZWluZyBkcmFpbmVkLgoKMjAwOS0xMS0yMyAxNTo0ODoyNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdGltZXN0YW1wIGhhbmRsaW5nLCBhbmQgZGVmYXVsdCBjb252ZXJzaW9uCgkgIEluIHBhcnRpY3VsYXIsIChvcHRpb25hbGx5KSBwcm92aWRlIGJhc2VwYXJzZSB3aXRoIGEgbm90aW9uIG9mIGZyYW1lcyBwZXIgc2Vjb25kCgkgIChhbmQgdGhlcmVmb3JlIGFsc28gZnJhbWUgZHVyYXRpb24pIGFuZCBoYXZlIGl0IHRyYWNrIGZyYW1lIGFuZCBieXRlIGNvdW50cy4KCSAgVGhpcyB3YXksIHN1YmNsYXNzIGNhbiBwcm92aWRlIGJhc2VwYXJzZSB3aXRoIGZwcyBhbmQgaGF2ZSBpdCBwcm92aWRlIGRlZmF1bHQKCSAgYnVmZmVyIHRpbWUgbWV0YWRhdGEgYW5kIGNvbnZlcnNpb25zLCB0aG91Z2ggc3ViY2xhc3MgY2FuIHN0aWxsIGluc3RhbGwKCSAgY2FsbGJhY2tzIHRvIGhhbmRsZSBzdWNoIGl0c2VsZi4KCjIwMDktMTAtMjggMTI6MDI6MDMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvY3VtZW50YXRpb24gZml4ZXMKCjIwMDktMTAtMjggMTI6MDA6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZV9maXhlZF9jYXBzIGZvciBzcmMgcGFkCgkgIEFmdGVyIGFsbCwgc3RyZWFtIGlzIGFzLWlzLCBhbmQgdGhlcmUgaXMgbGl0dGxlIG1vbGRpbmcgdG8gZG93bnN0cmVhbSdzCgkgIHRhc3RlIHRoYXQgY2FuIGJlIGRvbmUuICBJZiBzdWJjbGFzcyBjYW4gYW5kIHdhbnRzIHRvIGRvIHNvLCBpdCBjYW4KCSAgc3RpbGwgb3ZlcnJpZGUgYXMgc3VjaC4KCjIwMDktMTEtMjAgMTc6MzI6MTMgKzAxMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBmbHVlbmRvLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYWFjcGFyc2U6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwoKMjAwOS0xMC0xMSAxMToyMjoxMSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBhYWNwYXJzZTogZml4IHdhcm5pbmdzIGluIG1hY29zeCBzbm93IGxlb3BhcmQKCjIwMDktMDktMjUgMTc6MDI6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGFhY3BhcnNlOiBmb3JlZ28gKGJvZ3VzKSBwYXJzaW5nIG9mIGFscmVhZHkgcGFyc2VkIChyYXcpIGlucHV0CgoyMDA5LTA4LTA3IDEzOjA3OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGluZmluaXRlIGxvb3Agd2hlbiBkcmFpbmluZwoKMjAwOS0wOC0wNyAxMzowNjoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDA5LTA3LTE0IDE0OjA4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogQWRkIGZ1bmN0aW9uIGZvciB0aGUgYmFzZXBhcnNlIHN1YmNsYXNzIHRvIHB1c2ggYnVmZmVycyBkb3duc3RyZWFtCgkgIEFsc28gaGFuZGxlIHRoZSBjYXNlIGdyYWNlZnVsbHkgd2hlcmUgdGhlIHN1YmNsYXNzIGRlY2lkZXMgdG8gZHJvcAoJICB0aGUgZmlyc3QgYnVmZmVycyBhbmQgaGFzIG5vIGNhcHMgc2V0IHlldC4gSXQncyBzdGlsbCByZXF1aXJlZCB0bwoJICBoYXZlIHZhbGlkIGNhcHMgc2V0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBzaG91bGQgYmUgcGFzc2VkIGRvd25zdHJlYW0uCgoyMDA5LTA3LTE0IDE0OjA3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2VlayBldmVudCBsZWFraW5nCgoyMDA5LTA2LTAxIDEzOjU2OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wYWdhdGUgcmV0dXJuIHZhbHVlIG9mIEdzdEJhc2VQYXJzZTo6c2V0X3NpbmtfY2FwcygpCgkgIGdzdF9iYXNlX3BhcnNlX3Npbmtfc2V0Y2FwcygpIHByZXN1bWFibHkgc2hvdWxkIGZhaWwgaWYgdGhlIHN1YmNsYXNzCgkgIHJldHVybnMgRkFMU0UgZnJvbSBpdHMgOjpzZXRfc2lua19jYXBzKCkgZnVuY3Rpb24uCgoyMDA5LTA2LTAxIDEzOjQ3OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCB0cnkgdG8gR1NUX0xPRyBhbiBhbHJlYWR5LWZyZWVkIGNhcHMgc3RyaW5nCgkgIFRoZSBwcm9wZXIgd2F5IHRvIGxvZyBjYXBzIGlzIHZpYSBHU1RfUFRSX0ZPUk1BVCBhbnl3YXkuCgoyMDA5LTA1LTI2IDE5OjQzOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggZGVidWcgY2F0ZWdvcnkKCjIwMDktMDQtMjcgMjI6Mzk6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCAocmVncmVzc2lvbiBpbikgbmV3c2VnbWVudCBoYW5kbGluZwoJICAoYWFjcGFyc2UsIGFtcnBhcnNlLCBmbGFjcGFyc2UpLiAgRml4ZXMgIzU4MDEzMy4KCjIwMDktMDQtMDcgMDQ6NTM6MDIgKzAzMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNsaWdodGx5IGJyb2tlbiBidWZmZXItaW4tc2VnbWVudCBjaGVjayAoYWFjcGFyc2UsIGFtcnBhcnNlLCBmbGFjcGFyc2UpCgoyMDA5LTA0LTA1IDAzOjUwOjE5ICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBwdXNoIG1vZGUgc2Vla2luZyAoYWFjcGFyc2UsIGFtcnBhcnNlKQoJICBTZW5kaW5nIHRoZSBmbHVzaC1zdGFydCBldmVudCBmb3J3YXJkIGJlZm9yZSB0YWtpbmcgdGhlIHN0cmVhbSBsb2NrIGFjdHVhbGx5CgkgIHdvcmtzLCBpbiBjb250cmFzdCB0byBkZWFkbG9ja2luZyBpbiBkb3duc3RyZWFtIHByZXJvbGxfd2FpdCAoaHVuayAxKS4KCSAgQWZ0ZXIgdGhhdCB3ZSBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGJlaW5nIHN0dWNrIGluIGEgYnVzeSBsb29wLiBUaGlzIGlzIGZpeGVkCgkgIGJ5IHVwZGF0aW5nIHRoZSBtaW5pbXVtIGZyYW1lIHNpemUgaW5zaWRlIHRoZSBzeW5jaHJvbml6YXRpb24gbG9vcCBiZWNhdXNlIHRoZQoJICBzdWJjbGFzcyBhc2tzIGZvciBtb3JlIGRhdGEgaW4gdGhpcyB3YXkgKGh1bmsgMikuCgkgIEZpbmFsbHksIHRoaXMgbGVhZHMgdG8gYSB2ZXJ5IHByb2JhYmxlIGNyYXNoIGJlY2F1c2UgdGhlIHN1YmNsYXNzIGNhbiBmaW5kIGEKCSAgdmFsaWQgZnJhbWUgd2l0aCBhIHNpemUgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIGRhdGEgaW4gdGhlCgkgIGFkYXB0ZXIuIFRoaXMgbWFrZXMgdGhlIHN1YnNlcXVlbnQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIgY2FsbCByZXR1cm4gTlVMTCwKCSAgd2hpY2ggaXMgbm90IGV4cGVjdGVkIChodW5rIDMpLgoKMjAwOS0wMy0zMSAxNjowNzo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRGVsYXkgbmV3c2VnbWVudCBhcyBsb25nIGFzIHBvc3NpYmxlLgoJICBJZiBuZXdzZWdtZW50IGlzIHNlbnQgKHRvbykgZWFybHksIGNhcHMgbWF5IG5vdCB5ZXQgYmUgZml4ZWQvc2V0LAoJICBhbmQgZG93bnN0cmVhbSBtYXkgbm90IGhhdmUgYmVlbiBsaW5rZWQuCgoyMDA5LTAyLTI3IDExOjI0OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJ0IGxhc3QgY2hhbmdlIGFuZCBwcm9wZXJseSBmaXgKCSAgQmFzZXBhcnNlIGludGVybmFseSBicmVha3MgdGhlIHNlbWFudGljcyBvZiBhIF9jaGFpbiBmdW5jdGlvbiBieSBjYWxsaW5nIGl0IHdpdGgKCSAgYnVmZmVyPT1OVUxMLiBUaGUgcmVzb24gSSBiZWxpdmVkIGl0IHdhcyBva2F5IHRvIHJlbW92ZSBpdCB3YXMgdGhhdCB0aGVyZSBpcwoJICBhbHNvIGFuIHVuY2hlY2tlZCBhY2Nlc3MgdG8gYnVmZmVyIGxhdGVyIGluIF9jaGFpbi4gQWN0dWFsbHkgdGhhdCBjb2RlIGlzIHdyb25nLAoJICBhcyBpdCBtb3N0IHByb2JhYmx5IHdhbnRzIHRvIHNldCBkaXNjb250IG9uIHRoZSBvdXRnb2luZyBidWZmZXIuCgoyMDA5LTAyLTI2IDExOjAyOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGNoZWNrcyBmb3IgYnVmZmVyPT1OVUxMCgkgIEFjY29yZGlmbiB0byBkb2NzIGZvciBHc3RQYWRDaGFpbkZ1bmN0aW9uIGJ1ZmZlciBjYW5ub3QgYmUgTlVMTC4gSWYgd2Ugd291bGQKCSAgbGVhdmUgdGhlIGNoZWNrLCB3ZSB3b3VsZCBhbHNvIG5lZWQgbW9yZSBzdWNoIGNoZWNrIGJlbG93LgoKMjAwOS0wMS0zMCAxODoxODoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHBhcnNlX2ZyYW1lIGZ1bmN0aW9uLgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbiBpbiBib3RoCgkgIGNvcGllcyBvZiBHc3RCYXNlUGFyc2UKCjIwMDgtMTEtMTMgMTQ6MjE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCBiYXNlcGFyc2UgdHlwZSBuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCjIwMDgtMTEtMTMgMTI6NTk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCB0d28gbmV3IGJhc2VwYXJzZSBiYXNlZCBwYXJzZXJzIChhYWMgYW5kIGFtcikgZnJvbSBCdWcgIzUxODg1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9hYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuaDoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICAqIGdzdC9hbXJwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgoyMDExLTAzLTIwIDAwOjU2OjA4ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBNYWtlIHNyYyBxdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wMy0yMCAwMDo1NjowOCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3JjIHF1ZXJ5IE1ULXNhZmUKCSAgSXQgaXMgcG9zc2libGUgdGhhdCB0aGUgZWxlbWVudCBtaWdodCBiZSBnb2luZyBkb3duIHdoaWxlIHRoZSBldmVudCBhcnJpdmVzCgoyMDExLTA0LTA4IDE0OjU2OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IFVucmVmIGV2ZW50cyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCjIwMTEtMDMtMjEgMTY6MDE6MDUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IE1ha2UgdXBzdHJlYW0gZXZlbnRzIE1ULXNhZmUKCjIwMTEtMDQtMDggMTQ6NTU6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBVbnJlZiBldmVudHMgaWYgdGhlIHBhcmVudCBlbGVtZW50IGRpc2FwcGVhcmVkCgkgIEFuZCBhbHNvIHVucmVmIGV2ZW50cyBpZiB0aGUgYmFzZXRyYW5zZm9ybSBzdWJjbGFzcyBoYXMgbm8KCSAgZXZlbnQgaGFuZGxlciBhbmQgdGhlIGV2ZW50IGlzIG5vdCBmb3J3YXJkZWQgYXQgYWxsLgoKMjAxMS0wMy0yMSAxNjowMTowNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBNYWtlIHVwc3RyZWFtIGV2ZW50cyBNVC1zYWZlCgoyMDExLTAzLTI5IDExOjU3OjA2ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFzZWxuQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZ3N0cXVldWUsIGdzdHF1ZXVlMjogY2hlY2sgaWYgcGFyZW50IG9mIHBhZCBpcyBOVUxMIGluIF9nZXRjYXBzCgkgIFBhcmVudCBvZiB0aGUgcGFkICh0aGUgcXVldWUpIG1heSBiZSBzZXQgdG8gTlVMTCB3aGlsZSB0aGVyZSBpcwoJICBhIGJ1ZmZlciBhbGxvYyBnb2luZyBvbi4KCjIwMTEtMDQtMDggMTQ6NTA6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBnZXRjYXBzIGFuZCBldmVudCBmdW5jdGlvbiBmcm9tIGxhc3QgY29tbWl0CgkgIFJldHVybiBBTlkgY2FwcyBpZiB0aGUgcGFyZW50IGRpc2FwcGVhcmVkLCBpLmUuIHRoZSB0ZW1wbGF0ZSBjYXBzCgkgIGFuZCBkb24ndCBsZWFrIGV2ZW50cyBpZiB0aGUgcGFyZW50IGRpc2FwcGVhcmVkLgoKMjAxMS0wNC0wMSAwODo0NjoxNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3QgYWdhaW5zdCBwYWQtcGFyZW50IGRpc2FwcGVhcmluZwoKMjAxMC0xMi0xNCAxNjowNjo0NiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiByZXN5bmMgdG8gYXZvaWQgaW5maW5pdGUgbG9vcAoKMjAxMS0wNC0wOCAwOToyMDoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA0LTA4IDA5OjE1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBSZW1vdmVkIHVudXNlZCBHQ29uZAoKMjAxMS0wNC0wOCAwOTowNzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIGFub3RoZXIgY2hlY2sgZm9yIHRoZSBmbHVzaGluZyBmbGFnIGFmdGVyIHRha2luZyB0aGUgbG9jawoJICBUaGlzIHByZXZlbnRzIGFub3RoZXIgcG90ZW50aWFsIGRlYWRsb2NrIHdoZW4gZmx1c2hpbmcgdGhlIHBhZAoJICBhdCBleGFjdGx5IHRoZSByaWdodCB0aW1lLgoKMjAxMS0wNC0wNyAxMToyNDozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogSW1tZWRpYXRlbHkgZHJvcCBtZXNzYWdlcyBhZnRlciBjYWxsaW5nIHRoZSBzeW5jIGhhbmRsZXIgaWYgdGhpcyBpcyBhIHN5bmNocm9ub3VzIGJ1cwoJICBPdGhlcndpc2Ugd2UgbWlnaHQgd2FpdCBmb3JldmVyIGZvciB0aGUgbWVzc2FnZSB0byBiZSBwb3BwZWQgZnJvbQoJICB0aGUgcXVldWUgaWYgYSBzeW5jIGhhbmRsZXIgcmV0dXJuZWQgR1NUX0JVU19BU1lOQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzAwNQoKMjAxMS0wNC0wNyAxMToxOTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVXNlIGEgY29uc3RydWN0LW9ubHkgcHJvcGVydHkgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjaGlsZCBidXNlcyBhbmQgbm9ybWFsIGJ1c2VzCgkgIFRoaXMgYWxsb3dzIHRvIG9ubHkgY3JlYXRlIHRoZSBzb2NrZXRwYWlyIHdoZW4gaXQgaXMgcmVhbGx5IHJlcXVpcmVkIGluc3RlYWQKCSAgb2YgYWx3YXlzIGNyZWF0aW5nIGl0IGFuZCBpbW1lZGlhdGVseSBkZXN0cm95aW5nIGl0IGFnYWluIGZvciBjaGlsZCBidXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzAwNQoKMjAxMS0wNC0wNyAyMDo0NzoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBxdWV1ZTIKCjIwMTEtMDQtMDcgMjA6NDU6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyIGxlYWsgb24gZW9zIHdoZW4gdXNpbmcgdGhlIHJpbmcgYnVmZmVyCgoyMDExLTAxLTExIDE0OjI3OjM1ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXhlcyBtZW1vcnkgbGVhayBvbiBvdXRfZmx1c2hpbmcgZXJyb3IgaW4gZ3N0X3F1ZXVlMl9jcmVhdGVfcmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Njk3MgoKMjAxMS0wNC0wNyAxOTo0NDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAxMS0wNC0wNyAxNzozNDoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IG1pbm9yIGVsZW1lbnQgZGVzY3JpcHRpb24gZml4CgoyMDExLTA0LTA3IDE2OjEzOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNyAxNjowMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBOT19TSEFSRSBmbGFnIHRvIG1lbW9yeQoJICBBZGQgYSBOT19TSEFSRSBmbGFnIHRvIG1lbW9yeSB0byBpbmRpY2F0ZSB0aGF0IGl0IHNob3VsZCBub3QgYmUgc2hhcmVkCgkgIGJldHdlZW4gYnVmZmVycy4KCjIwMTEtMDQtMDcgMTY6MDg6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBmaWxlIGFzIHdlIGhhdmUgZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0CgoyMDExLTA0LTA3IDEwOjQ4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBIYW5kbGUgdGFnIGFuZCBjdXN0b20gZG93bnN0cmVhbSBldmVudHMgdGhlIHNhbWUKCSAgRXNwZWNpYWxseSBkcm9wIHRhZyBldmVudHMgd2hlbiBmbHVzaGluZyB0byBub3Qgc2VuZCB0aGVtIG92ZXIKCSAgYW5kIG92ZXIgYWdhaW4uCgkgIFNob3VsZCd2ZSBiZWVuIGluIHRoZSBsYXN0IGNvbW1pdCBhbHJlYWR5IGJ1dCBJIGZvcmdvdCB0byBjYWxsCgkgIGdpdCByZWJhc2UgLS1jb250aW51ZS4uLgoKMjAxMS0wNC0wNyAxMDo0MDoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmxhCgoyMDExLTA0LTA3IDEwOjI5OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIHN5bmNyb25pemVkIGN1c3RvbSBkb3duc3RyZWFtL2JvdGggZXZlbnRzIGRvd25zdHJlYW0gZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZAoJICBJbnN0ZWFkIG9mIGp1c3Qgc2lsZW50bHkgZHJvcHBpbmcgdGhlbS4gVGhlIHNhbWUgd2FzIGRvbmUgZm9yIHRhZyBldmVudHMKCSAgYmVmb3JlIGFscmVhZHkuCgkgIEZpeGVzIGJ1ZyAjNjM1NzE4LgoKMjAxMS0wNC0wNiAxOToxOTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBkb24ndCBmb2xsb3cgdGhlIHBhcmVudCBpbiB0aGUgZmFsbGJhY2sgc2hhcmUKCjIwMTEtMDQtMDYgMTg6NTc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGJ1ZmZlcjogbWFrZSBtZW1vcnkgd3JpdGFibGUgaW4gX3BlZWsKCSAgTWFrZSB0aGUgbWVtb3J5IHdyaXRhYmxlIHdoZW4gd2UgYXJlIGFza2VkIHRvIF9wZWVrIHdpdGggTUFQX1dSSVRFLgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBtaW5pb2JqZWN0LgoKMjAxMS0wNC0wNiAxNjozNzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBkZWJ1ZwoKMjAxMS0wNC0wNiAxNDoyMDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA2IDE0OjA2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgcHJpdmF0ZSBBUEkgdG8gc2V0IGEgR3N0QnVzIGluIGNoaWxkIG1vZGUKCSAgVGhpcyBpcyB1c2VkIGJ5IEdzdEJpbiB0byBjcmVhdGUgYSBjaGlsZCBidXMgd2l0aG91dAoJICBhIHNvY2tldHBhaXIgYmVjYXVzZSBjaGlsZCBidXNlcyB3aWxsIGFsd2F5cyB3b3JrCgkgIHN5bmNocm9ub3VzLiBPdGhlcndpc2UgdG9vIG1hbnkgc29ja2V0cyBjb3VsZCBiZQoJICBjcmVhdGVkIGFuZCB0aGUgbGltaXQgb2YgZmlsZSBkZXNjcmlwdG9ycyBmb3IgdGhlCgkgIHByb2Nlc3MgY291bGQgYmUgcmVhY2hlZC4KCSAgRml4ZXMgYnVnICM2NDY2MjQuCgoyMDExLTA0LTA2IDEzOjU2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IE9ubHkgY3JlYXRlIHRoZSBzaWduYWxsaW5nIHNvY2tldCBwYWlyIHdoZW4gcmVxdWlyZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNGJmOGYxNTI0ZjZlMzM3NGIzZjNiYzU3MzIyMzM3NzIzZDA2YjkyOC4KCjIwMTEtMDQtMDYgMTM6NTY6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogQ2hlY2sgaWYgcGVuZGluZyBtZXNzYWdlcyBhcmUgaW4gdGhlIHF1ZXVlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGJkMWM0MDAxMTQzNGMxZWZhYTY5NmRjOThlZjg1NWVmOWNjZTliMjguCgoyMDExLTA0LTA2IDExOjM4OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBtYWtlIHRlc3RzX21hbnlfYmlucyBpbiBiaW4gdW5pdCB0ZXN0IGEgYml0IGZhc3RlcgoJICBOb3QgZG9pbmcgZXhwZW5zaXZlIGNoZWNrcyB3aGVuIGxpbmtpbmcgZWxlbWVudHMgbWFrZXMgdGhpbmdzCgkgIG11Y2ggZmFzdGVyLgoKMjAxMS0wNC0wNiAxMTozMDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogYWRkIHNvbWUgcXVldWVzIHRvIHRlc3RfbWFueV9iaW5zIHVuaXQgdGVzdAoJICBUbyBsaW1pdCB0aGUgbnVtYmVyIG9mIGNhbGxzIGluIGEgcm93IHBlciB0aHJlYWQuCgoyMDExLTA0LTA2IDEyOjAzOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBDaGVjayBpZiBwZW5kaW5nIG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWUKCSAgV2UgY2FuJ3QgcmVseSBjb21wbGV0ZWx5IG9uIHRoZSBwb2xsIGZkIGJlY2F1c2UgdGhlIGZkIG1pZ2h0IGJlCgkgIGNyZWF0ZWQgYWZ0ZXIgbWVzc2FnZXMgd2VyZSBwb3N0ZWQgdG8gdGhlIGJ1cy4KCjIwMTEtMDQtMDYgMTE6NDU6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBHc3REYXRlL0dEYXRlIGhhcyBhIGFiYnJldmlhdGlvbiBub3cKCjIwMTEtMDQtMDMgMTY6MTE6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IGFkZCBHc3RCaW4gdW5pdCB0ZXN0IHRoYXQgY3JlYXRlcyBhIGxvdCBvZiBiaW5zCgkgIEN1cnJlbnRseSBmYWlscyAoaW4gbm9ybWFsIGNpcmN1bXN0YW5jZXMpIGJlY2F1c2Ugd2UgY3JlYXRlIGEKCSAgc29ja2V0IHBhaXIgZm9yIGVhY2ggYmluJ3MgYnVzIGFuZCBleGhhdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlCgkgIGZpbGUgZGVzY3JpcHRvcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY2MjQKCjIwMTEtMDQtMDUgMTY6MjI6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IE9ubHkgY3JlYXRlIHRoZSBzaWduYWxsaW5nIHNvY2tldCBwYWlyIHdoZW4gcmVxdWlyZWQKCSAgT3RoZXJ3aXNlIGEgbmV3IG9uZSB3b3VsZCBiZSBjcmVhdGVkIGZvciBldmVyeSBzaW5nbGUgYnVzIGFuZAoJICB0aGUgcHJvY2VzcyBjb3VsZCBlYXNpbHkgcnVuIG91dCBvZiBmaWxlIGRlc2NyaXB0b3JzLgoJICBGaXhlcyBidWcgIzY0NjYyNC4KCjIwMTEtMDQtMDUgMTQ6MzY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCBkYXRlIGFzIGEgdHlwZSBhYmJyZXZpYXRpb24gb2YgR0RhdGUKCSAgU2VlIGJ1ZyAjNjQ2Njk2LgoKMjAxMS0wNC0wNCAxNTo1NjozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxY2NiZTA5IHRvIGMzY2FmZTEKCjIwMTEtMDQtMDQgMTE6MTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA0IDAzOjMzOjQ2ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogcmV0cnkgcmVhZGluZyB0aGUgY29udHJvbCBzb2NrZXQgdG8gcmVsZWFzZSBwcm9wZXJseSBhbGwgd2FrZXVwcwoJICBpZiBzZXQtPmNvbnRyb2xfcGVuZGluZyBpcyBzZXQgdG8gMCBidXQgd2UgZGlkbid0IG5vdCBzdWNjZWQgcmVhZGluZwoJICB0aGUgY29udHJvbCBzb2NrZXQsIGZ1dHVyZSBjYWxscyB0byBnc3RfcG9sbF93YWl0KCkgd2lsbCBiZSBhd2Fpa2VuCgkgIGJ5IHRoZSBjb250cm9sIHNvY2tldCB3aGljaCB3aWxsIG5vdCBiZSByZWxlYXNlZCBwcm9wZXJseSBiZWNhdXNlCgkgIHNldC0+Y29udHJvbF9wZW5kaW5nIGlzIGFscmVhZHkgMCwgY2F1c2luZyBhbiBpbmZpbml0ZSBsb29wLgoKMjAxMS0wNC0wNCAxMDoxODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRG9uJ3QgYWxsb3cgaW52YWxpZCBHRGF0ZXMgaW4gYWxsIHN0cnVjdHVyZXMgYW5kIGRvbid0IGFsbG93IE5VTEwgR0RhdGVzIGluIHRhZ2xpc3RzCgkgIFNvbWUgY29kZSAoZS5nLiBnc3R2b3JiaXN0YWcuYykgYXNzdW1lcyBub24tTlVMTCBHRGF0ZXMgaW4gdGFnbGlzdHMgYW5kCgkgIGV4cGxvZGVzIG90aGVyd2lzZSBhbmQgTlVMTCBvciBpbnZhbGlkIEdEYXRlcyBkb24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5LgoKMjAxMS0wMy0yNSAxNTo1NjowNyArMDEwMCAgVGhvbWFzIEtyaXN0ZW5zZW4gPHRob21hcy5rcmlzdGVuc2VuQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGRvbid0IGNhbGwgV1NBV2FpdEZvck11bHRpcGxlRXZlbnRzIHdpdGggbm8gZXZlbnRzCgkgIEZpeGVzIGVycm9yIGNhdWdodCBieSBNaWNyb3NvZnQgQXBwbGljYXRpb24gVmVyaWZpZXIuCgoyMDExLTA0LTAzIDE2OjE4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgcG9pbnRlciB0byBwYXJ0LXNlZWtpbmcudHh0IGRlc2lnbiBkb2NzIHRvIGV2ZW50IHNlZWsgZmxhZ3MgZG9jcwoKMjAxMS0wNC0wMyAxNjoxODoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVja3M6IGlnbm9yZSBuZXcgZnVubmVsIHVuaXQgdGVzdCBiaW5hcnkKCjIwMTEtMDQtMDIgMTQ6NTE6MTggKzAxMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQXZvaWQgdXNpbmcgInR5cGUiIGFzIG5hbWUgZm9yIGEgdmFyaWFibGUgYW5kIGEgbWFjcm8gYXJndW1lbnQgaW4gR1NUX0JPSUxFUlBMQVRFCgkgIFRoaXMgY2F1c2VkICJyZS1kZWNsYXJhdGlvbiIgcHJvYmxlbXMuCgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5jOiBJbiBmdW5jdGlvbiDigJhjbHV0dGVyX2dzdF92aWRlb19zaW5rX2luaXRfaW50ZXJmYWNlc+KAmToKCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmM6MjMxOjE6IHdhcm5pbmc6IGRlY2xhcmF0aW9uIG9mIOKAmENsdXR0ZXJHc3RWaWRlb1NpbmvigJkgc2hhZG93cyBhIGdsb2JhbCBkZWNsYXJhdGlvbiBbLVdzaGFkb3ddCgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5oOjY0OjQ0OiB3YXJuaW5nOiBzaGFkb3dlZCBkZWNsYXJhdGlvbiBpcyBoZXJlIFstV3NoYWRvd10KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjUzMQoKMjAxMS0wNC0wMSAxMzo1NjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBXaGVuIHJlcXVlc3RpbmcgYW4gZXhpc3RpbmcgcGFkIHByaW50IGEgZ19jcml0aWNhbCgpIGluc3RlYWQgb2YgdXNpbmcgYW4gYXNzZXJ0aW9uCgkgIFNvbWUgYXBwbGljYXRpb25zIGFyZSByZXF1ZXN0aW5nIHRoZSBzYW1lIHBhZCBuYW1lIG11bHRpcGxlIHRpbWVzCgkgIGFuZCB0aGUgYmVoYXZpb3VyIGlzIHVuZGVmaW5lZCBhbmQgZGlmZmVyZW50IGZyb20gZWxlbWVudCB0byBlbGVtZW50CgkgIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGJyZWFrIGFwcGxpY2F0aW9ucyB0aGF0IHdvcmsganVzdCBmaW5lLgoJICBJbiAwLjExIHRoaXMgY2hlY2sgc2hvdWxkIGJlIGFuIGFzc2VydGlvbiBhZ2FpbiwgYWx0aG91Z2ggZWxlbWVudHMKCSAgaGF2ZSB0byBkbyBtYW51YWwgY2hlY2tpbmcgaWYgdGhlIHBhZCBhbHJlYWR5IGV4aXN0cyBhZ2FpbiBiZWNhdXNlCgkgIGl0IGNhbid0IGJlIGRvbmUgaW4gYSB0aHJlYWRzYWZlIHdheSBoZXJlLgoKMjAxMS0wNC0wMSAxMzo1MzozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBVc2UgZ2ludDY0L2d1aW50NjQgc3RyaW5nIHBhcnNpbmcgZnVuY3Rpb25zCgkgIEFuZCBjaGVjayB0aGF0IHRoZSByZXF1ZXN0ZWQgcGFkIG5hbWVzIGFyZSBpbnNpZGUgdGhlIHZhbGlkCgkgIGdpbnQvZ3VpbnQgcmFuZ2UuCgoyMDExLTA0LTAxIDEzOjUxOjMxICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzdHJ0b1t1XWwoKSByZXR1cm5zIGEgZ1t1XWxvbmcKCjIwMTEtMDQtMDEgMTA6NDc6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTAxIDEwOjQ2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUgd2l0aCBidWZmZXJsaXN0IGNoYW5nZXMKCjIwMTEtMDMtMzEgMTk6MjU6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgZGVzaWduIGRvY3M6IGRvY3VtZW50IGV4cGVjdGVkIGJlaGF2aW91ciBmb3IgQUNDVVJBVEUgYW5kIEtFWV9VTklUIHNlZWsgZmxhZ3MKCjIwMTEtMDMtMzEgMTg6Mzk6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogZG9uJ3QgYWRkIE5VTEwgZGF0YQoKMjAxMS0wMy0zMSAxNzo1NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oCgoyMDExLTAzLTMxIDE3OjUxOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogc2ltcGxpZnkgYnVmZmVybGlzdHMKCSAgV2Ugbm93IGhhdmUgbXVsdGlwbGUgbWVtb3J5IGJsb2NrcyBhcyBwYXJ0IG9mIHRoZSBidWZmZXJzIGFuZCB3ZSBjYW4gdGhlcmVmb3JlCgkgIHJlZHVjZSB0aGUgYnVmZmVybGlzdCB0byBhIHNpbXBsZSBhcnJheSBvZiBidWZmZXJzLgoKMjAxMS0wMy0zMSAxMDo1MzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBnc3RhYmk6IEFkZCBzb21lIG5ldyBzdHJ1Y3R1cmVzIGZvciB4ODYtNjQKCjIwMTEtMDMtMzEgMTA6NDY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBsaWJzYWJpOiBBZGQgbG90cyBvZiBuZXcgc3RydWN0dXJlcyBmb3IgeDg2LTY0CgoyMDExLTAzLTMxIDEwOjMxOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTAzLTMwIDIwOjA1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBmaXggZm9yIEFQSSBjaGFuZ2UKCjIwMTEtMDMtMzAgMTk6NTg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExLWZkbwoJICBDb25mbGljdHM6CgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCSAgZ3N0L2dzdGVsZW1lbnQuYwoKMjAxMS0wMy0zMCAxOTowMToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0wMy0zMCAxODo0NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTEtMDMtMzAgMTY6NDc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBBUEkgdHdlYWtzCgkgIF90cmltIC0+IF9yZXNpemUKCSAgX2NyZWF0ZV9zdWIgLT4gY29weV9yZWdpb24KCjIwMTEtMDMtMzAgMTU6Mjk6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDExLTAzLTMwIDEzOjA0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkZXNpZ246IHVwZGF0ZSBkb2NzCgoyMDExLTAzLTMwIDEwOjQ4OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2UgYXNzaWdubWVudCBvZiBxdWV1ZSBJRHMgYW5kIHBhZCBuYW1lcyB0aHJlYWRzYWZlCgkgIEFsc28gYWRkIGEgdGVzdCBmb3IgbmFtaW5nIHBhZHMgYnkgdGhlIGNhbGxlciBhbmQgcmV0dXJuIE5VTEwKCSAgd2hlbiByZXF1ZXN0aW5nIGFuIGFscmVhZHkgZXhpc3RpbmcgcGFkLgoKMjAxMS0wMy0yOSAyMzo1ODo0MyArMDIwMCAgQW5kcmVhcyBGcmlzY2ggPGZyYXhpbmFzQG9wZW5kcmVhbWJveC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogU2V0IHRoZSBzaW5nbGUgcXVldWUgSUQgdG8gdGhlIElEIG9mIHRoZSByZXF1ZXN0ZWQgcGFkIGlmIG9uZSB3YXMgZ2l2ZW4gYnkgdGhlIGNhbGxlcgoKMjAxMS0wMy0yOSAxOToxNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogZnVydGhlciBtZW1vcnkgdHdlYWtpbmcKCSAgQWxsb3cgZm9yIGF1dG9tYXRpYyBtZXJnaW5nIG9mIG1lbW9yeSBibG9jayBpbiB0aGUgX21hcCBmdW5jdGlvbiBhbmQgYXV0b21hdGljCgkgIGZyZWVpbmcgb2YgdGhlIHRlbXBvcmFyeSBtZW1vcnkuCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucy4KCSAgQWRkIHBvc3NpYmlsaXR5IHRvIGZvcmNlIHdyaXRhYmxlIHNwYW5uZWQgbWVtb3J5LgoKMjAxMS0wMy0yOSAxNzoxNzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXBsZW1lbnQgQ09QWV9NRVJHRQoKMjAxMS0wMy0yOSAxNjo1MjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGNsZWFuIHVwIF9zcGFuIGFuZCBhZGQgbW9yZSBnX3JldHVybl9pZi4uCgoyMDExLTAzLTI5IDE2OjIyOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBzYW5pdHkgY2hlY2tzIGZvciByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgd2l0aG91dCAlCgoyMDExLTAzLTI5IDEzOjUxOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogb3B0aW1pemUgbWVtb3J5IGhhbmRsaW5nCgoyMDExLTAzLTI5IDExOjU3OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFkZCBzb21lIG1vcmUgc2FuaXR5IGNoZWNrcyB0byB0aGUgcGFkIG5hbWUgY2hlY2tpbmcgb2YgcmVxdWVzdCBwYWRzIGluIGFsbCBjYXNlcwoJICBFc3BlY2lhbGx5IGNoZWNrIGlmIGEgcGFkIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLgoKMjAxMS0wMy0yOSAxMTo1MjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDaGVjayAldSB0b28gd2hlbiB0cnlpbmcgdG8gZmluZCBhIHBhZCB0ZW1wbGF0ZSBmb3IgYSByZXF1ZXN0IHBhZAoKMjAxMS0wMy0yOSAxMTozMTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1vdmUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBpbiBwcml2YXRlIHN0cnVjdAoKMjAxMS0wMy0yOCAyMTowMToxMyArMDIwMCAgRnJheGluYXMgPGFuZHJlYXMuZnJpc2NoQG11bHRpbWVkaWEtbGFicy5kZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggYXJiaXRyYXJ5IHNpbmsgKyBzb3VyY2UgcGFkIG5hbWluZwoJICBVc2UgdGhlIHN0cmluZyBwcm92aWRlZCBieSB0aGUgY2FsbGVyIGZvciB0aGUgc2lua3BhZCBuYW1lCgkgIGlmIHBvc3NpYmxlLiBOb3RlIHRoYXQgYWxsIHNhbml0eSBjaGVja2luZyBmb3IgdGhpcyBuYW1lCgkgIGlzIGFscmVhZHkgZG9uZSBpbiBHc3RFbGVtZW50LgoJICBGaXhlcyBCdWcgIzY0NTkzMQoKMjAxMS0wMy0yOSAxMToxODozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgYmVoYXZpb3VyIG9mIGZ1bm5lbAoKMjAxMS0wMy0yOSAxMTowODo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNlbmQgYSBuZXdzZWdtZW50IGV2ZW50IGFmdGVyIGZsdXNoLXN0b3AKCjIwMTEtMDMtMjkgMTE6MDc6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTb21lIHJhbmRvbSBjbGVhbnVwCgoyMDExLTAzLTI5IDEwOjU2OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogVXNlIGEgR3N0UGFkIHN1YmNsYXNzIGZvciB0aGUgc2lua3BhZHMgaW5zdGVhZCBvZiB1c2luZyB0aGUgcGFkJ3MgZWxlbWVudCBwcml2YXRlIGRhdGEKCjIwMTEtMDMtMjkgMTA6NDI6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdGF0aWNlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEludGVncmF0ZSBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIHJlbmFtZSB0aGUgdHlwZXMKCjIwMTEtMDMtMjkgMTA6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSW1wb3J0IGZ1bm5lbCBlbGVtZW50IGZyb20gZmFyc2lnaHQyCgoyMDExLTAzLTI5IDExOjA3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIGJ1ZmZlciB1cGRhdGVzCgoyMDExLTAzLTI4IDIwOjIwOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAzLTI4IDIwOjExOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMS1mZG8KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0LmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jCgoyMDExLTAzLTI4IDE5OjE5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXI6IGZpeCBzdWJidWZmZXJzCgoyMDExLTAzLTI4IDE2OjQwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcGxlbWV0IHRyaW0gYW5kIHNldF9zaXplCgoyMDExLTAzLTI4IDE1OjUyOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIGZpeGVzCgoyMDExLTAzLTI4IDEwOjI4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgYnVmZmVyOiBhZGQgbW9yZSBtZXRob2RzCgoyMDExLTAzLTI0IDIxOjIxOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBjbGFzcyBpbml0CgoyMDExLTAzLTI0IDIxOjE4OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogZml4IHJlbWFpbmluZyB1bml0IHRlc3RzCgoyMDExLTAzLTI0IDIwOjA5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHVuaXQgdGVzdAoKMjAxMS0wMy0yNCAxMzowMTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgbWVtb3J5OiByZW1vdmUgbWVtb3J5IG1ldGFkYXRhIGFnYWluCgoyMDExLTAzLTI0IDExOjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBtZW1vcnk6IG1vcmUgZml4ZXMKCSAgQXV0b21hdGljYWxseSBtYWtlIHRoZSBtZW1vcnkgb2YgYSBidWZmZXIgd3JpdGFibGUgd2hlbiB0aGUgYnVmZmVyIGlzIHdyaXRhYmxlCgkgIGFuZCB0aGUgbWVtb3J5IGlzIGFza2VkIHRvIG1hcHBlZCBXUklURS4KCSAgQWRkIGRvY3MKCjIwMTEtMDMtMjMgMjA6NTI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIGltcGxlbWVudGluZyBidWZmZXIgbWVtb3J5CgoyMDExLTAzLTIyIDIwOjUxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiBwb3J0aW5nIHRoZSB1bml0IHRlc3RzCgoyMDExLTAzLTIxIDE5OjE1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdGVzdHM6IG1ha2Ugc29tZSB0ZXN0cyBjb21waWxlCgoyMDExLTAzLTIxIDE4OjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIG1lbW9yeTogcG9ydCBjb2RlIHRvIG5ldyBidWZmZXIgZGF0YSBBUEkKCjIwMTEtMDMtMjEgMTM6MDc6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgbWVtb3J5OiBtb3JlIGZpeGVzCgkgIEZpeCBzcGFuIGFuZCBpc19zcGFuCgkgIEltcGxlbWVudCBidWZmZXIgbWVtb3J5CgoyMDExLTAzLTIxIDA5OjUxOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgV0lQIHVzZSBtZW1vcnkgaW4gYnVmZmVyCgoyMDExLTAzLTIwIDExOjQyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbW9yZSBpbXByb3ZlbWVudHMKCjIwMTEtMDMtMTkgMTA6NDU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtb3JlIG1lbW9yeSBpbXByb3ZlbWVudHMKCjIwMTEtMDMtMTggMjE6NDU6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbW9yZSBtZW1vcnkgb3BlcmF0aW9ucwoKMjAxMS0wMy0xOCAxOToyODoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWVtb3J5IGltcGxlbWVudGF0aW9uCgoyMDExLTAzLTE4IDE4OjM1OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBBUEkgZm9yIGhhbmRsaW5nIG1lbW9yeSBibG9ja3MKCSAgQWRkcyBzb21lIEFQSSB0byBoYW5kbGUgbWVtb3J5IGJsb2Nrcy4KCjIwMTEtMDMtMDggMTg6MTg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBmaXggZG9jcwoKMjAxMS0wMy0yOCAyMToyMTowMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZXR1cm4gRkFMU0UgaWYgd2UgZG9uJ3QgaGFuZGxlIGFuIGV2ZW50CgkgIGJhc2VzcmMncyBkZWZhdWx0IGV2ZW50IGhhbmRsZXIgcmV0dXJucyBUUlVFIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUKCSAgZXZlbnQgaXMgaGFuZGxlZCBvciBub3QuIFRoaXMgZml4ZXMgdGhlIGhhbmRsZXIgdG8gY29uZm9ybSB3aXRoIHRoZQoJICBleHBlY3RlZCBiZWhhdmlvdXIgKHdoaWNoIGlzIHRvIG9ubHkgcmV0dXJuIFRSVUUgd2hlbiB0aGUgZXZlbnQgaGFzCgkgIGFjdHVhbGx5IGJlbm4gaGFuZGxlZCkuIGdzdF9iaW5fZG9fbGF0ZW5jeV9mdW5jKCkgZGVwZW5kZWQgb24gdGhpcwoJICAoaW5jb3JyZWN0KSBiZWhhdmlvdXIsIGFuZCBpcyBub3cgbW9kaWZpZWQgYXMgd2VsbC4KCSAgKFJlbWFpbmluZyAxLWxpbmVyIGNoYW5nZSBpbiBnc3RiYXNlc3JjLmMgaXMgdG8ga2VlcCBnc3QtaW5kZW50IGhhcHB5KQoKMjAxMS0wMy0yNSAyMjowODo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE5M2I3MTcgdG8gMWNjYmUwOQoKMjAxMS0wMy0yNSAxNDo1NTozOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNzdlMmJmIHRvIDE5M2I3MTcKCjIwMTEtMDMtMjUgMDk6Mjc6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkODgxNGI2IHRvIGI3N2UyYmYKCjIwMTEtMDMtMjUgMDg6NTk6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YWFhMjg2IHRvIGQ4ODE0YjYKCjIwMTEtMDMtMjQgMTg6NDg6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFlYzZiOSB0byA2YWFhMjg2CgoyMDExLTAzLTI0IDE4OjI3OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIGRvY3M6IGZpeCBzb21lIGd0ay1kb2Mgd2FybmluZ3MKCSAgRG9jdW1lbnQgdGhlIHF1ZXVlIGxlYWt5IGVudW1zLgoKMjAxMS0wMy0yNCAxODoyNTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgbWF4IHZhbHVlIGZvciB0byB0aGUgbWF0Y2hpbmcgb25lIGZvciB0aGUgZGF0YXR5cGUKCSAgVGhlIHByb3BlcnR5IGlzIGd1aW50NjQsIHNvIHVzZSBHX01BWFVJTlQ2NCBpbnN0ZWFkIG9mIEdfTUFYVUlOVC4KCjIwMTEtMDMtMjQgMTM6MjI6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogY2xlYW51cCBhbmQgeHJlZiBmaXhlcwoJICBEZWFsIHdpdGggdGhlIGhpbnRzIGZyb20gZ3RrLWRvYyBhbmQgZml4IHRoZSB4cmVmcy4gQXBwbHkgYSB3b3JrLWFyb3VuZCBmb3IgKCkKCSAgcHJlY2VkZW5jZSBvdmVyIEAuIE1vdmUgIk1UIFNhZmUiIHRleHQgdG8gZG9jIGJvZHkgaW4gbWFueSBwbGFjZXMuIFRyaW0gZW9sCgkgIHdoaXRlc3BhY2VzLgoKMjAxMS0wMy0yMyAxNjo0MjoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcHJpbnQgZmxvdyByZXR1cm4gYXMgYSBuYW1lIGluIGRlYnVnIGxvZwoKMjAxMS0wMy0yMyAxNzoxMzo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRvIHhyZWZzIGZvciBub24gaW5zdGFsbGVkIGJvb2tzIHRvbwoJICBHZXQgdGhlIHhyZWZzIGZyb20gdGhlIGJ1aWxkZGlyIGZvciB0aGUgYm9va3MgaW4gdGhlIHNhbWUgcGFja2FnZXMuIFRoaXMgZml4ZXMKCSAgdGhlIGNyb3NzIHJlZmVyZW5jZXMgaWYgb25lIGRvZXMgbm90IGhhdmUgdGhlIGRvY3MgYWxyZWFkeSBpbnN0YWxsZWQuCgoyMDEwLTA0LTE5IDIwOjM5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEtlZXAgZG93bnN0cmVhbSBjYXBzIG9yZGVyIHdoZW4gZml4YXRpbmcKCSAgVGhpcyBhbGxvd3MgdXNlIHRvIHVzZSB0aGUgZmlyc3QgaW50ZXJzZWN0aW5nIGZvcm1hdCBwcmVmZXJlZCBieSBkb3duc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDEwLTA0LTE5IDIwOjQwOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldGFpbiBjYXBzIG9yZGVyIHdoZW4gZ2V0dGluZyBjYXBzCgkgIElmIHRoZSBlbGVtZW50IGdhdmUgdXMgY2FwcyBpbiBhIHNwZWNpZmljIG9yZGVyLCBsZXQncyByZXRhaW4gdGhhdAoJICBieSBpbnRlcnNlY3RpbmcgYWdhaW5zdCB0aGUgdGVtcGxhdGUgYnV0IHJldGFpbmluZyB0aGUgb3JkZXIgZ2l2ZW4KCSAgYnkgdGhlIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTEtMDItMjUgMTA6MjU6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IFRlc3RzIGZvciB0aGUgbmV3IGNhcHMgaW50ZXJzZWN0aW9uIG1vZGUKCSAgQWRkcyB0ZXN0IGNhc2VzIGZvciB0aGUgY2FwcyAnZmlyc3QnIGludGVyc2VjdCBtb2RlCgkgIEFkZHMgYW5vdGhlciB0ZXN0IGZvciB0aGUgJ3ppZ3phZycgbW9kZQoJICBGaXhlcyAjNjE3MDQ1CgoyMDExLTAyLTI1IDA4OjUwOjEyIC0wMzAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2FwczogbmV3IEFQSSA6IGdzdF9jYXBzX2ludGVyc2VjdF9mdWxsCgkgIEp1c3QgbGlrZSBnc3RfY2Fwc19pbnRlcnNlY3QsIGJ1dCBhZGRzIGEgbmV3IHBhcmFtZXRlciAnbW9kZScKCSAgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIHRoZSBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIHRvIHVzZS4KCSAgQ3VycmVudGx5IHdlIGhhdmUgR1NUX0NBUFNfSU5URVJTRUNUX01PREVfWklHX1pBRyAoZGVmYXVsdCkgYW5kCgkgIEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX0ZJUlNULgoJICBBUEk6IGdzdF9jYXBzX2ludGVyc2VjdF9mdWxsCgkgIEFQSTogR3N0Q2Fwc0ludGVyc2VjdE1vZGUKCSAgQVBJOiBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9aSUdfWkFHCgkgIEFQSTogR1NUX0NBUFNfSU5URVJTRUNUX01PREVfRklSU1QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMS0wMy0xMiAxNzowMTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIHRlc3RzOiBhZGQgbGlic2NwcCB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIGcrKyBsaWtlcyBvdXIgbGlicmFyeSBoZWFkZXJzCgoyMDExLTAzLTEyIDE2OjU4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXJlYWRlciwgYnl0ZXdyaXRlcjogZml4IHVwIGlubGluZSBmdW5jdGlvbnMgdG8gbWFrZSBnKysgaGFwcHkKCSAgZ3N0Ynl0ZXJlYWRlci5oOiBJbiBmdW5jdGlvbiDigJhndWludDgqIGdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YV91bmNoZWNrZWQoR3N0Qnl0ZVJlYWRlciosIGd1aW50KeKAmToKCSAgZ3N0Ynl0ZXJlYWRlci5oOjI0OTo3NTogZXJyb3I6IGludmFsaWQgY29udmVyc2lvbiBmcm9tIOKAmHZvaWQq4oCZIHRvIOKAmGd1aW50OCrigJkKCSAgZ3N0Ynl0ZXdyaXRlci5oOiBJbiBmdW5jdGlvbiDigJhnYm9vbGVhbiBfZ3N0X2J5dGVfd3JpdGVyX2Vuc3VyZV9mcmVlX3NwYWNlX2lubGluZShHc3RCeXRlV3JpdGVyKiwgZ3VpbnQp4oCZOgoJICBnc3RieXRld3JpdGVyLmg6MTk2Ojc1OiBlcnJvcjogaW52YWxpZCBjb252ZXJzaW9uIGZyb20g4oCYdm9pZCrigJkgdG8g4oCYZ3VpbnQ4KuKAmQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NTk1CgoyMDExLTAzLTIyIDE2OjI2OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdGVsZW1lbnQ6IEZpeCB0eXBvIGluIHRoZSBkb2NzCgkgIEdTVF9FTEVNRU5UX0lORk8gd2lsbCBwb3N0IGEgSU5GTyBtZXNzYWdlLCBub3QgYSBXQVJOSU5HCgoyMDExLTAzLTE4IDA4OjIyOjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBSZW1vdmluZyB1bnVzZWQgZGVidWcgY2F0ZWdvcnkKCSAgdGFnc2V0dGVyJ3MgZGVidWcgY2F0ZWdvcnkgaGFkIGEgdHlwbyBhbmQgd2FzIHVudXNlZC4gUmVtb3ZpbmcgaXQuCgoyMDExLTAzLTE4IDE5OjM0OjU3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbjogd2luZ28gc2lnbmVkIGNvbW1lbnQKCjIwMTEtMDMtMjIgMTE6MDQ6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgb2JqZWN0cyB3aGVuIGZsdXNoaW5nIGFmdGVyIGRlcXVldWVpbmcgYW5kIGJlZm9yZSBwdXNoaW5nIHRoZSBvYmplY3QKCjIwMTEtMDMtMjEgMTc6NTQ6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFJlYWxseSByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTAzLTIxIDE3OjUyOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogSW5jcmVtZW50IHVuaXF1ZSBpdGVtIGNvdW50ZXIgd2l0aCBhdG9taWMgb3BlcmF0aW9ucwoJICBCZWZvcmUgaXQgd2FzIG9ubHkgcHJvdGVjdGVkIGJ5IHRoZSBzdHJlYW0gbG9jayBidXQgZXZlcnkgcGFkCgkgIGhhcyBpdHMgb3duIHN0cmVhbSBsb2NrLCBtYWtpbmcgdGhlIHByb3RlY3Rpb24gcmF0aGVyIHVzZWxlc3MuCgoyMDExLTAzLTIxIDE3OjE3OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVbmJsb2NrIGFsbCB3YWl0aW5nIHBhZHMgd2hlbiBzaHV0dGluZyBkb3duCgoyMDExLTAzLTIxIDEyOjM5OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTAzLTIxIDE2OjI4OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBFeGl0IGxvb3AgZnVuY3Rpb24gaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBGaXhlcyBwb3NzaWJsZSBkZWFkbG9ja3Mgd2hlbiBmbHVzaGluZyBhbiB1bmxpbmtlZCBwYWQgdGhhdCB3YWl0cwoJICBmb3Igb3RoZXIgcGFkcyB0byBhZHZhbmNlLgoKMjAxMS0wMy0xOSAxNzowNjoxMiAtMDUwMCAgSmFzb24gRC4gQ2xpbnRvbiA8bWVAamFzb25jbGludG9uLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYnVpbGQ6IGZpeCBidWlsZCB3aXRoIC1XZXJyb3Igd2l0aCBHQ0MgNC42LjAKCSAgVGhpcyB0b3VjaGVzIHRocmVlIGFyZWFzIG9mIGNvZGUsIHJlbW92ZXMgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzY2FyZHMKCSAgcmV0dXJuIHZhbHVlcyBmcm9tIHR3byBmdW5jdGlvbnMgd2l0aCAodm9pZCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUyNjcKCjIwMTEtMDMtMTkgMTA6Mzk6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBBZGQgc2luY2UgbWFya2VyIHRvIEdTVF9FVkVOVF9TSU5LX01FU1NBR0UKCjIwMTEtMDMtMTkgMDg6NTU6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFN0b3Agd2FpdGluZyBmb3IgYSBwYWQgc3dpdGNoIHdoZW4gdGhlIHBhZCBpcyBmbHVzaGluZwoKMjAxMS0wMy0xOSAwODo1MDowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTW92ZSBsb2NraW5nIGFuZCBzaWduYWxsaW5nIG1hY3JvcyBmcm9tIHRoZSBoZWFkZXIgdG8gdGhlIHNvdXJjZSBmaWxlCgoyMDExLTAzLTE3IDIzOjQyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IGZpeCBHU1RfVEFTS19CUk9BRENBU1QKCSAgU3VycHJpc2luZ2x5IGVub3VnaCwgeW91IGNhbid0ICJicmVhZGNhc3QiIG9uIGEgR0NvbmQuCgkgIFNwb3R0ZWQgYnkgUnVuZSBTw6Z0cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwMjIKCjIwMTEtMDMtMTcgMTQ6MjE6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEhvbGQgdGhlIHNlbGVjdG9yIGxvY2sgd2hpbGUgcmVhZGluZyBwcm9wZXJ0aWVzIG9mIHRoZSBhY3RpdmUgcGFkCgoyMDExLTAzLTE3IDE0OjEwOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNYWtlIHN1cmUgdGhhdCBFT1MgaXMgYWx3YXlzIHNlbnQgZG93bnN0cmVhbSBmb3IgdGhlIGFjdGl2ZSBwYWQKCSAgSXQgY2FuIGhhcHBlbiB0aGF0IHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZCBnb3QgdGhlIEVPUyBldmVudAoJICBiZWZvcmUgaXQgd2FzIGFjdGl2YXRlZCBhbmQgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHBhZCBnb3QgdGhlCgkgIEVPUyBldmVudCBhZnRlciBpdCB3YXMgZGVhY3RpdmF0ZWQuIEluIHRoYXQgY2FzZSB3ZSBoYXZlIHRvCgkgIHNlbmQgdGhlIEVPUyBldmVudCBmcm9tIGFuIGluYWN0aXZlIHBhZCBkb3duc3RyZWFtLgoKMjAxMS0wMy0xNiAxODoxOToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUmV0dXJuIEdTVF9GTE9XX09LIHVudGlsIHRoZSBzZWxlY3RlZCBwYWQgcHVzaGVkIHNvbWV0aGluZyBkb3duc3RyZWFtCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGR1cmluZyBzd2l0Y2hlcyBhdCBubyBwb2ludCBpbiB0aW1lIGFsbCBwYWRzCgkgIGhhdmUgcmV0dXJuZWQgbm90LWxpbmtlZCwgd2hpY2ggY2FuIGhhcHBlbiB3aGVuIHBsYXlpbmcgYW4gYXVkaW8tb25seQoJICBmaWxlIHdpdGggcGxheWJpbjIgYW5kIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBzdHJlYW1zIGZvciBleGFtcGxlLgoJICBGaXhlcyBidWcgIzY0NDkzNS4KCjIwMTEtMDMtMTcgMTA6NTM6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IFJlbW92ZSBkZXByZWNhdGVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzaW5rLHNyY31fY2FwcygpCgoyMDExLTAzLTE3IDEwOjUwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVmZmVybGlzdC5jCgoyMDExLTAzLTE2IDEyOjAxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb2N1bWVudCB0aGF0IHBhZCBibG9ja3Mgb25seSBtYWtlIHNlbnNlIGZvciBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlIGFuZCBzcmMgcGFkcyBpbiBwdXNoIG1vZGUKCSAgU2VlIGJ1ZyAjNjQ0OTA3LgoKMjAxMS0wMy0xNiAxMTo1Mzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IFRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQgb2YgdGhlIHByb3h5cGFkIGlzIHRoZSBnaG9zdHBhZAoJICBQcmV2aW91c2x5IHdlIHdlcmUgcmV0dXJuaW5nIHRoZSBwZWVycGFkLCB3aGljaCBpcyB0aGUgdGFyZ2V0CgkgIG9mIHRoZSBnaG9zdHBhZC4KCjIwMTEtMDItMjUgMTY6MjA6NDkgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IFVzZSBhIEdRdWV1ZSBpbnN0ZWFkIG9mIGEgR0xpc3QKCSAgQWRkaW5nIGEgYnVmZmVyIHRvIHRoZSBlbmQgb2YgYSBHc3RCdWZmZXJMaXN0IGlzIHN1cHBvc2VkIHRvIGJlIGEgZmFzdAoJICBvcGVyYXRpb24sIGJ1dCBpdCB3YXMgbm90IHNpbmNlIHRoZSBpdGVyYXRvciBkb2VzIG5vdCBhZHZhbmNlIGl0cwoJICBuZXh0cG9pbnRlciB3aGVuIGFkZGluZyBidWZmZXJzIGFuZCBHTGlzdCBkb2VzIG5vdCBoYXZlIGEgdGFpbCBwb2ludGVyLgoJICBVc2luZyBhIEdRdWV1ZSB0byBzdG9yZSB0aGUgYnVmZmVycyBtYWtlcyBpdCBlYXNpZXIgdG8gYWRkIGJ1ZmZlcnMgdG8KCSAgdGhlIGVuZCBvZiB0aGUgbGlzdCBhbmQgdGhpcyBvcGVyYXRpb24gd2lsbCBub3cgYmUgbXVjaCBtb3JlIGVmZmljaWVudC4KCSAgQWRkaW5nIGFuIGVudGlyZSBHTGlzdCBvZiBidWZmZXJzIHVzaW5nCgkgIGdzdF9idWZmZXJfbGlzdF9pdGVyYXRvcl9hZGRfbGlzdCgpIHdpbGwgaG93ZXZlciBoYXZlIHRvIGl0ZXJhdGUgb3ZlcgoJICB0aGUgbGlzdCBiZWluZyBhZGRlZCB0byBiZSBhYmxlIHRvIHVwZGF0ZSB0aGUgdGFpbCBwb2ludGVyIGluIHRoZQoJICBHUXVldWUuCgoyMDExLTAzLTEwIDE3OjQ4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IGZpeCBBQkkgYnJlYWsgd2hlbiBjb21waWxpbmcgZ3N0cmVhbWVyIHdpdGggLURHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgc2hvdWxkIG9ubHkgYWZmZWN0IHZpc2liaWxpdHkgb2YgZGVjbGFyYXRpb25zIGluIGhlYWRlcnMsCgkgIG5vdCBhY3R1YWxseSByZW1vdmUgc3ltYm9scy4gU2VlIEdpdERldmVsb3Blckd1aWRlbGluZXMgYW5kIERlcHJlY2F0aW5nQVBJCgkgIHBhZ2VzIGluIHdpa2kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIxNDEKCjIwMTEtMDMtMTAgMTY6NDY6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmaWxlIGZvciBBUEkgYWRkaXRpb24KCjIwMTEtMDMtMTAgMTA6MjU6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAzLTA5IDE2OjE1OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIHB3ZzogZml4IGVsZW1lbnQgbmFtZSAidmlkZW9kcm9wIiB0byAidmlkZW9yYXRlIgoKMjAxMS0wMy0wOCAxMjoxMTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3Q6IGFkZCB0ZXN0cyBmb3IgbmV3IGVsZW1lbnRfZmFjdG9yeSBhcGkuCgoyMDEwLTA2LTIzIDIyOjAwOjA0ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IHJlcGxhY2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3Npbmssc3JjfV9jYXBzCgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGNsYXJpZnkgaG93IHRoZSBjYXBzIGFyZSBjb21wYXJlZCB0byB0aGUgdGVtcGxhdGUgY2FwcyBvZgoJICB0aGUgZWxlbWVudCBmYWN0b3J5LiBJbXByb3ZlIHRoZSBkb2NzIHRvIHBvaW50IG91dCB0aGUgZGlmZmVyZW5jZS4KCSAgRGVwcmVjYXRlOiBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c3JjfHNpbmt9X2NhcHMKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3NyY3xzaW5rfV97YW55fGFsbH1fY2FwcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjE0MQoKMjAxMS0wMy0wNyAyMzoxMzo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCBhIHVuaXQgdGVzdCBmb3IgZ3N0X2NhcHNfbmV3X3NpbXBsZQoJICBBZGQgYSB0ZXN0IGZvciB0aGUgY3Jhc2ggaW4gYnVnICM2NDIyNzEuCgoyMDExLTAzLTA4IDE4OjA1OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogcmVuYW1lIGRyYWZ0IHRvIG9mZmljaWFsIGRvYwoKMjAxMS0wMy0wOCAxNjo1ODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaW1wbGVtZW50IHRyYW5zZm9ybSBmdW5jdGlvbgoJICBSZXBsYWNlIHN1YmJ1ZmZlciBhbmQgY29weSB2bWV0aG9kcyBieSBhIG1vcmUgZ2VuZXJpYyB0cmFuc2Zvcm0gZnVuY3Rpb24gdGhhdAoJICBjYW4gdGhlbiBiZSBwYXJhbWV0cmlzZWQgYnkgdHJhbnNmb3JtIHNwZWNpZmljIGRhdGEuIFRoaXMgc2hvdWxkIGFsbG93IHVzIHRvCgkgIGltcGxlbWVudCBtYWtlLXdyaXRhYmxlIGFuZCBtb3JlIGZ1dHVyZSB0cmFuc2Zvcm0gZnVuY3Rpb25zLgoKMjAxMS0wMy0wOCAxNzowNjozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDMtMDggMTE6NTU6MjkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0czogYWRkIHRlc3QgdG8gY3JlYXRlIGEgZmFjdG9yeQoKMjAxMS0wMy0wOCAxMDozNjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdHM6IHN0YXJ0IGEgbmV3IHRlc3Qgc3VpdGUgZm9yIGVsZW1lbnQgZmFjdG9yaWVzCgkgIE1vdmUgb25lIHRlc3QgZnJvbSBnc3RlbGVtZW50IHN1aXRlLgoKMjAxMS0wMy0wOCAxMTozNDoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBhZGQgbWlzc2luZyA7IGluIGV4YW1wbGUgKGFuZCB0cmltIHdoaXRlc3BhY2UpCgoyMDExLTAzLTA4IDA5OjU4OjU1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKSBkb2VzIGJldHRlciBlcnJvciBjaGVja2luZwoJICBObyBuZWVkIHRvIGNoZWNrIGZvciBtZWRpYV90eXBlIT1OVUxMIGFzIHRoZSBmdW5jdGlvbiB3ZSBjYWxsIHRoYXQgYWN0dWFsIGNyZWF0ZQoJICB0aGUgc3RydWN0dXJlIGRvZXMgYSBmdWxsIGNoZWNrIGFueXdheS4KCjIwMTEtMDMtMDggMTA6MDY6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgY2FwcyxzdHJ1Y3R1cmU6IHRyaW0gdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxMS0wMy0wNCAwODoyODoyNSArMTAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5AZDE0bi5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBkb24ndCBjcmVhdGUgYnJva2VuIGNhcHMgZm9yIGludmFsaWQgbWVkaWEgdHlwZXMKCSAgQ2hlY2sgaWYgc3RydWN0dXJlIGhhcyBiZWVuIGNyZWF0ZWQgYmVmb3JlIGFwcGVuZGluZyBpdCB0byB0aGUgY2Fwcy4gRnJlZSB0aGUKCSAgY2FwcyBpbiB0aGUgY2FzZSBvZiBhbiBlcnJvciB0byBub3QgY29uY2VhbCBpdCBiZSByZXR1cm5pbmcgZW1wdHkgY2Fwcy4KCSAgRml4ZXMgIzY0MjI3MQoKMjAxMS0wMy0wNyAxNjoyMTo0NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiB1cGRhdGUgaGVsbG8gd29ybGQgZXhhbXBsZQoJICBPdXIgaGVsbG93b3JsZCBleGFtcGxlIHRoYXR3IGUgcmVmZXJlbmNlIGZyb20gdGhlIG1hbnVhbCBoYXMgYmVlbiBhIGJpdAoJICBjb21wbGljYXRlZCB0byBzZXJ2ZSBhIGZpcnN0IGNvbnRhY3Qgd2l0aCBnc3RyZWFtZXIuIFNpbmNlIHdlIGhhdmUgYW5kCgkgIHByb21vdGUgcGxheWJpbjIgYXMgYSBwbGF5YmFjayBhcGkgdXNlIGl0IGhlcmUuCgkgIEJhc2VkIG9uIHdvcmsgZnJvbSBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFubkBnbXguZGU+CgkgIEZpeGVzICM0MjQxNDMKCjIwMTEtMDMtMDQgMTk6MDI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogdXBkYXRlIG1ldGFkYXRhIGRyYWZ0CgoyMDExLTAzLTA0IDE4OjExOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogcmVtb3ZlIEZJWE1FCgkgIE5vdyB0aGF0IHdlIGRvbid0IHN1YmNsYXNzIGJ1ZmZlcnMgYW55bW9yZSwgdGhlIEZJWE1FIGFib3V0IGxpbWl0ZWQKCSAgZnVuY3Rpb25hbGl0eSBvZiB0aGUgY29weSBmdW5jdGlvbiBpcyBpcnJlbGV2YW50LgoKMjAxMS0wMy0wNCAxNzo0MzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgZmxhZyByZWdpc3RyYXRpb24KCjIwMTEtMDMtMDQgMTc6MjU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIHBhZDogbW9yZSBwcmVyb2xsIGxvY2sgdG8gYmFzZXNpbmsKCSAgTW92ZSB0aGUgcHJlcm9sbCBsb2NrIHRvIGJhc2VzaW5rIHdoZXJlIGl0IGJlbG9uZ3MuCgoyMDExLTAzLTA0IDE2OjA1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRyYWZ0CgoyMDExLTAzLTA0IDEyOjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgbW9yZSBkZWJ1ZyBpbmZvCgoyMDExLTAzLTAzIDE4OjM4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIGRlYnVnCgoyMDExLTAzLTAzIDE4OjIxOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDExLTAzLTAzIDE2OjMxOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBidWZmZXJwb29sOiBhZGQgY2FwcyB0byB0aGUgY29uZmlnCgkgIEFkZCB0aGUgY2FwcyB0byB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwb29sLgoJICBJbml0aWFsaXplIHRoZSBwcml2YXRlIGRhdGEKCjIwMTEtMDMtMDIgMTE6NTc6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDMtMDIgMTE6NTc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVsZWFzZSBidWZmZXIgdG8gcG9vbCBpbiBkaXNwb3NlCgkgIFVzZSB0aGUgZGlzcG9zZSBtZXRob2QgdG8gcmVsZWFzZSB0aGUgYnVmZmVyIHRvIHRoZSBwb29sIHdoZW4gaXQgaXMgY29uZmlndXJlZC4KCjIwMTEtMDItMjIgMTI6MzU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyOiBhZGQgcG9vbCB0byBidWZmZXIgc3RydWN0dXJlCgkgIEtlZXAgYSBwb2ludGVyIHRvIHRoZSBidWZmZXJwb29sLiBSZWxlYXNlIHRoZSBidWZmZXIgdG8gdGhlIHBvb2wgd2hlbgoJICBmaW5hbGl6aW5nLiBNYWtlIHN1cmUgdGhlIHBvb2wgc2V0cyBpdHNlbGYgYXMgdGhlIHBvb2wgbWVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBpdAoJICBzZW5kcyBvdXQuCgoyMDExLTAyLTIyIDEyOjM1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBwb29sIGZsYWdzIHR5cGUKCjIwMTEtMDItMjIgMTE6MDU6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMS0wMi0yMSAxODo0MzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFJlZmFjdG9yIHN0b3BwaW5nIG9mIHRoZSBwb29sCgkgIE1vdmUgc29tZSBtZXRob2RzIGFyb3VuZC4KCSAgTWFrZSBzdXJlIHdlIGNoZWNrIGZvciBjb25maWcgcGFyc2luZyBlcnJvcnMuCgkgIEluY3JlbWVudCB0aGUgb3V0c3RhbmRpbmcgYnVmZmVycyBiZWZvcmUgY2FsbGluZyBhY3F1aXJlIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUKCSAgdGhhdCBzZXRfYWN0aXZlKCkgZG9lc24ndCBmcmVlIHRoZSBwb29sIGZyb20gdW5kZXIgdXMuCgoyMDExLTAyLTIxIDE3OjMzOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogUmV3b3JrIGJ1ZmZlciBtYW5hZ2VtZW50IGEgbGl0dGxlCgkgIEFkZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gYWxsb3cgZm9yIGJ1bGsgYWxsb2NhdGlvbiBvZiBidWZmZXJzLgoJICBGcmVlIGJ1ZmZlcnMgb25seSB3aGVuIGFsbCBvdXRzdGFuZGluZyBidWZmZXJzIHJldHVybmVkLgoJICBNYWtlIHRoaW5ncyBtb3JlIHRocmVhZHNhZmUgd3J0IGZsdXNoaW5nIGFuZCBzdGFydGluZy9zdG9wcGluZyBieQoJICBrZWVwaW5nIHRyYWNrIG9mIHN0YXJ0IGFuZCBzdG9wIG1ldGhvZCBjYWxscy4KCjIwMTEtMDItMjEgMTI6MTg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtZW1vcnkgbWFuYWdlbWVudCBjbGVhbnVwcwoJICBVc2UgYSBsb2NrIHRvIHByb3RlY3QgY29uY3VycmVjdCBleGVjdXRpb24gb2Ygc2V0X2NvbmZpZyBhbmQgc2V0X2FjdGl2ZS4KCSAgU3RhcnQgZnJlZWluZyB0aGUgYnVmZmVycyB3aGVuIGZsdXNoaW5nIGFuZCBhbGwgYnVmZmVycyBhcmUgcmV0dXJuZWQgdG8gdGhlCgkgIHBvb2wuCgkgIE1ha2UgYSBjb3B5IG9mIHRoZSBjb25maWcgdG8gYXZvaWQgY3Jhc2hpbmcgd2l0aCBjb25jdXJyZW50IGFjY2Vzcy4KCjIwMTEtMDItMTggMTY6MzU6NDYgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFsc28gYWxsb3cgTlVMTCBwYXJhbXMgaW4gX2FjcXVpcmUKCjIwMTEtMDItMTggMTY6MTU6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtb3JlIHVwZGF0ZXMKCSAgS2VlcCB0cmFjayBpZiB0aGUgYnVmZmVyIGlzIGNvbmZpZ3VyZWQgYW5kIGJsb2NrIGFjdGl2YXRpb24gd2hlbiBub3QgY29uZmlndXJlZAoJICB5ZXQuCgkgIEtlZXAgdHJhY2sgb2Ygb3V0c3RhbmRpbmcgYnVmZmVycyBhbmQgZGlzYWxsb3cgY29uZmlndXJhdGlvbiB3aGVuIG5vdCBhbGwKCSAgYnVmZmVycyBhcmUgcmV0dXJuZWQgdG8gdGhlIHBvb2wuIFdlIG5lZWQgdG8gZG8gdGhpcyBvciBlbHNlIHdlIG1pZ2h0IGVuZCB1cAoJICB3aXRoIHdyb25nIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgkgIEFkZCByZXR1cm4gdmFsdWUgdG8gc2V0X2FjdGl2ZS4KCSAgU21hbGwgY2xlYW51cHMuIEZpeCBmaW5hbGl6ZS4KCjIwMTEtMDItMTggMTI6NTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiByZW5hbWUgJ2ZsdXNoaW5nJyB0byAnYWN0aXZlJwoJICBSZW5hbWUgdGhlIGZsdXNoaW5nIHZhcmlhYmxlIGFuZCBtZXRob2RzIHRvIGFjdGl2ZSB0byBiZXR0ZXIgbWF0Y2gKCSAgdGhlIG90aGVyIGdzdHJlYW1lciBuYW1lIGNvbnZlbnRpb25zCgoyMDExLTAyLTE3IDE4OjM3OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcHJlYWxsb2Mgd2hlbiB1bnNldCBmbHVzaGluZwoJICBBY2NvcmRpbmcgdG8gdGhlIGRlc2lnbiBkb2Mgd2UgbmVlZCB0byBwcmVhbGxvYyBidWZmZXJzIHdoZW4gd2UgdW5zZXQgdGhlCgkgIGZsdXNoaW5nIHN0YXRlLCBub3QgaW4gc2V0X2NvbmZpZy4KCSAgU2V0IHRoZSBmbHVzaGluZyBzdGF0ZSBiZXR0ZXIuCgoyMDExLTAyLTE3IDE3OjI5OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBidWZmZXJwb29sOiB1c2UgcXVhcmtzIGZvciBzdHJ1Y3R1cmUgZmllbGRzCgoyMDExLTAyLTE3IDE2OjQ2OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBHc3RTdHJ1Y3R1cmUgdG8gY29uZmlndXJlIHRoZSBwb29sCgkgIFVzZSBhIEdzdFN0cnVjdHVyZSB0byBwcm92aWRlIHRoZSBwb29sIHdpdGggdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24uIEFsc28KCSAgcHJvdmlkZSBzb21lIGhlbHBlciBtZXRob2RzIHRvIGNvbmZpZ3VyZSBzdWNoIGEgc3RydWN0dXJlLgoJICBkb24ndCBwYXNzIHRoZSBjb25maWcgaW4gYWxsb2NfYnVmZmVyLCBwb29sIGltcGxlbWVudGF0aW9uIHdpbGwgYWxyZWFkeSBoYXZlCgkgIHBhcnNlZCBpdCBkdXJpbmcgc2V0X2NvbmZpZy4KCSAgVXBkYXRlIGRlZnMKCjIwMTEtMDItMTcgMTI6NTU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZml4IGRlZnMKCjIwMTAtMTEtMDIgMTg6NTY6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIHNpbXBsZSBidWZmZXJwb29sIGhlbHBlciBvYmplY3QKCjIwMTEtMDMtMDIgMTE6MDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmgKCjIwMTEtMDMtMDIgMTM6NTU6MzYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBNaW5vciB1cGRhdGUgdG8gc3NoIGtleSBnZW5lcmF0aW9uIGNvbW1hbmRzCgkgIGZkLm8gcmVxdWlyZXMgUlNBIGtleXMsIGFuZCBpbiBnZW5lcmFsLCB1c2VycyB3b3VsZCBwcm9iYWJseSB3YW50IHRvCgkgIG1ha2UgYSBwZXItc2VydmVyIGtleSBmaWxlIHJhdGhlciB0aGFuIG92ZXJ3cml0ZSBpZF9yc2EsIGlkX3JzYS5wdWIuCgoyMDExLTAyLTI4IDE4OjQzOjQxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBleHBvcnQgcGx1Z2luIGRlc2NyaXB0aW9uIG1vcmUgcGxhdGZvcm0gaW5kZXBlbmRlbnQKCSAgRml4ZXMgIzY0MjUwNC4KCjIwMTEtMDItMjggMTg6MzI6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxZGU3ZjZhIHRvIDZhZWM2YjkKCjIwMTEtMDItMjggMTU6MDE6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBkb2NzOiB0eXBvIGZpeGVzCgkgIGNvbnZpbmllbmNlIC0+IGNvbnZlbmllbmNlCgoyMDExLTAyLTI4IDE0OjU2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBwcmludCAicGFkLWFkZGVkIiwgInBhZC1yZW1vdmVkIiBhbmQgIm5vLW1vcmUtcGFkcyIgc2lnbmFscyBmb3IgZWxlbWVudHMgd2l0aCBzb21ldGltZXMgcGFkcwoJICBJdCdzIG9mdGVuIG5vdCBvYnZpb3VzIHRvIHBlb3BsZSB0aGF0IGVsZW1lbnRzIGxpa2UgZS5nLiB1cmlkZWNvZGViaW4KCSAgKG9yIGRlbXV4ZXJzKSBhdXRvbWF0aWNhbGx5IHN1cHBvcnQgdGhlIHN0YW5kYXJkIHNpZ25hbHMgb2YgdGhlCgkgIEdzdEVsZW1lbnQgY2xhc3MsIHNvIGxldCdzIHByaW50IHRoZSB1c2VmdWwgcGFkLXJlbGF0ZWQgb25lcyBmb3IKCSAgZWxlbWVudHMgd2l0aCBzb21ldGltZXMgcGFkcy4KCjIwMTEtMDItMjggMTY6Mjc6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBzbWFsbCB1cGRhdGVzIGFzIHN1Z2dlc3RlZCBvbiBhIGJsb2cKCSAgTGluayBmcm9tIGNvbnZpbmllbmNlIGFwaSB0byB0aGUgdW5kZXJseWluZyBhcGkuCgoyMDExLTAyLTI4IDEwOjA1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIHRpbWluZyBtZXRhZGF0YQoKMjAxMS0wMi0yOCAxMDowNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGZpeCB3aGl0ZXNwYWNlCgoyMDExLTAyLTI4IDA5OjM5OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGFkZCBtZW1vcnkgdW5pdCB0ZXN0CgoyMDExLTAyLTI3IDIwOjU0OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogc2ltcGxpZnkgYSBiaXQKCjIwMTEtMDItMjcgMjA6NDI6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogYWRkIGRlZmF1bHQgbWVtb3J5IG1ldGFkYXRhCgkgIEFkZCBhIG1ldGFkYXRhIGltcGxlbWVudGF0aW9uIGZvciBub3JtYWxsIG1hbGxvY2VkIG1lbW9yeS4KCjIwMTEtMDItMjcgMTk6NDA6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IHNlcGFyYXRlIGFkZCBhbmQgZ2V0IG1ldGhvZHMKCSAgTWFrZSBzZXBhcmF0ZSBhcGkgZm9yIGdldHRpbmcgYW5kIGFkZGluZyBtZXRhZGF0YS4gVGhpcyBhbGxvd3MgdXMgdG8gcGFzcyBleHRyYQoJICBwYXJhbWV0ZXJzIHRvIHRoZSBpbml0IGZ1bmN0aW9ucyB3aGVuIGNyZWF0aW5nIG1ldGFkYXRhLCB3aGljaCBpcyBuZWVkZWQgZm9yCgkgIHNwZWNpZmljIEFQSSBpbXBsZW1lbnRhdGlvbnMuCgkgIEFkZCBiZWdpbm5pbmdzIG9mIG1lbW9yeSBtZXRhZGF0YS4KCjIwMTEtMDItMjcgMTI6MjE6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGFuZCBkZWZzCgoyMDExLTAyLTI2IDE4OjE0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVtb3ZlIHVzZWxlc3MgbWV0aG9kCgkgIFJlbW92ZSB0aGUgbWV0aG9kIHRvIHJldHJpZXZlIG1ldGFkYXRhIGJ5IGFwaS4gT25lIHdpbGwgYWx3YXlzIHVzZSB0aGUKCSAgR3N0TWV0YUluZm8gdG8gZ2V0IG1ldGFkYXRhLgoKMjAxMS0wMi0yNSAxNjozMToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSBvd25lcl9wcml2IG5vdyB0aGF0IHdlIGhhdmUgbWV0YWRhdGEKCSAgTm93IHRoYXQgd2UgaGF2ZSBtZXRhZGF0YSB3ZSBjYW4gcmVtb3ZlIHRoZSBvd25lcl9wcml2IGZpZWxkLgoKMjAxMS0wMi0yNSAxMzoyMzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMi0yNSAxMzoxNToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGFkYXRhOiBSZW5hbWUgdG8gR3N0TWV0YQoJICBSZW5hbWUgdG8gdGhlIHNob3J0ZXIgR3N0TWV0YQoJICBBZGQgZG9jcwoJICBBZGQgYXBpIHRvIGdldCBtZXRhZGF0YSBieSBBUEkKCjIwMTEtMDItMjUgMTA6Mzc6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTAtMTEtMTUgMTE6NDk6MjQgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWwgYXQgYmFzZS1hcnQubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBtZW1vcnkgY29ycnVwdGlvbgoKMjAxMC0wNC0wNyAxMTozNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkgIGJ1ZmZlcm1ldGE6IGZpeCBjb21waWxhdGlvbgoKMjAxMC0wMi0yNiAxMzoxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5oOgoJICB1cGRhdGVzCgoyMDA5LTEyLTI3IDIyOjAzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSAgbWV0YTogaW1wcm92ZSB0ZXN0IGEgbGl0dGxlCgoyMDA5LTEyLTE3IDEyOjM0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcm1ldGE6IGFkZCBiZWdpbm5pbmdzIG9mIGJ1ZmZlciBtZXRhZGF0YQoJICBBZGQgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YS4gV2UgdXNlIGEgc2ltcGxlIGxpbmtlZAoJICBsaW5rZWQgb2Ygc2xpY2UgYWxsb2NhdGVkIG1ldGFkYXRhIGNodW5rcy4gRnV0dXJlIGltcGxlbWVudGF0aW9ucyBjb3VsZCB1c2UKCSAgc29tZXRoaW5nIG1vcmUgcGVyZm9ybWFudC4KCSAgQWRkIGdldCwgcmVtb3ZlLCBpdGVyYXRlIG1ldGhvZHMgdG8gaGFuZGxlIHRoZSBtZXRhZGF0YS4KCjIwMTEtMDItMjUgMTA6MTk6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZGVzaWduOiBhZGQgYXBpIHRhZwoJICBXZSB3YW50IHRvIGZpbmQgbWV0YWRhdGEgYmFzZWQgb24gdGhlIEFQSSBpdCBpbXBsZW1lbnRzIGFuZCBiYXNlZCBvbiB0aGUKCSAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uCgoyMDExLTAyLTI0IDE3OjExOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBtYWtlIHdpbjMyIGJ1aWxkYm90IGhhcHB5CgkgIGdzdHVyaS5jOjg1NDoxNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSAnYWJzX2NsZWFuJwoJICBnc3R1cmkuYzo3ODg6MTogZXJyb3I6ICdnc3RfZmlsZV91dGlsc19jYW5vbmljYWxpc2VfcGF0aCcgZGVmaW5lZCBidXQgbm90IHVzZWQKCjIwMTEtMDItMjQgMTU6MzI6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxlc3JjLCBmaWxlc2luazogZml4IFVSSSBjcmVhdGlvbiByZWdyZXNzaW9uIGZvciBub24tYWJzb2x1dGUgbG9jYXRpb25zCgkgIFBhc3NpbmcgZS5nLiBsb2NhdGlvbj1mb28gd291bGQgbGVhZCB0byB3YXJuaW5ncyBiZWNhdXNlIGdfZmlsZW5hbWVfdG9fdXJpKCkKCSAgd2FudHMgYW4gYWJzb2x1dGUgZmlsZSBwYXRoIGFuZCByZXR1cm5zIE5VTEwgb3RoZXJ3aXNlLiBVc2UgYnJhbmQtbmV3CgkgIGdzdF9maWxlbmFtZV90b191cmkoKSBpbnN0ZWFkLCB3aGljaCB3aWxsIHRyeSBoYXJkZXIgdG8gY3JlYXRlIGEgcHJvcGVyCgkgIFVSSSBmb3IgdXMuCgkgIEFsc28gYWRkIHVuaXQgdGVzdC4KCjIwMTEtMDItMjQgMTU6MTg6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cmk6IGFkZCBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgdGhhdCB0YWtlcyByZWxhdGl2ZSBmaWxlbmFtZXMKCSAgQWRkIGZ1bmN0aW9uIHRoYXQgKHVubGlrZSB0aGUgR0xpYiBlcXVpdmFsZW50KSBhbHNvIGFjY2VwdHMgcGF0aHMgdGhhdAoJICBhcmVuJ3QgYWJzb2x1dGUgYW5kIHdpbGwgY2xlYW4gdXAgcmVsYXRpdmUgbWFya2VycyBzdWNoIGFzIC4vIGFuZCAuLi8KCSAgYmVmb3JlIGZvcm1pbmcgYSBVUkkuCgkgIEZpeGVzIHdhcm5pbmdzIHdpdGggZS5nLiBmaWxlc3JjIGxvY2F0aW9uPWZvbyAhIHR5cGVmaW5kIGNhdXNlZCBieSB0aGUKCSAgcmVjZW50IHN3aXRjaCB0byBnX2ZpbGVuYW1lX3RvX3VyaSgpLCBidXQgYWxzbyBhY3R1YWxseSBjcmVhdGVzIHZhbGlkCgkgIFVSSXMgZm9yIHRoZSBmaXJzdCB0aW1lLgoJICBXaW5kb3dzIGNvZGUgcGF0aHMgY291bGQgbmVlZCBzb21lIG1vcmUgd29yaywgZS5nLiB3ZSBkb24ndCBjbGVhbiB1cAoJICB0aGUgcmVsYXRpdmUgbWFya2VycyB0aGVyZSBmb3Igbm93IChiZWNhdXNlIHBhdGggY291bGQgaGF2ZSBcIGFuZCAvCgkgIGFzIHNlcGFyYXRvcnMpLgoJICBBUEk6IGdzdF9maWxlbmFtZV90b191cmkoKQoKMjAxMS0wMi0yNCAxNjoyMDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVzdHM6IHJlZml4IHRoZSB0ZXN0cyAobWlzc2luZyAjZW5kaWYpCgoyMDExLTAyLTI0IDE2OjExOjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgTWFrZWZpbGUuYW06IGFkZCBuZXcgYWJpIGhlYWRlcnMgdG8gbm9kaXN0X0hFQURFUlMKCjIwMTEtMDItMjEgMTE6MjQ6NDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgaW5kZXggc3VwcG9ydAoJICBXaGVuIG9wdGlvbiAiLWkiIGlzIGdpdmVuLCBzZXQgYW4gaW5kZXggb2JqZWN0IG9uIHRoZSBwaXBlbGluZSBhbmQgY29tcHV0ZQoJICBzdGF0aXN0aWNzIGZvciBhbGwgaW5kZXggd3JpdGVycy4gUHJpbnQgYSBzdW1hcnkgd2hlbiBzaHV0dGluZyBkb3duIHRoZQoJICBwaXBlbGluZS4KCjIwMTEtMDItMjQgMTU6MTI6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2sgZGF0YSBmb3IgQVJNIChsaWJzKQoKMjAxMS0wMi0yNCAxNTowMjozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVjayBkYXRhIGZvciBBUk0KCjIwMTEtMDItMjQgMTM6NTU6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG93bmVyIHByaXZhdGUgYXMgaW50ZXJtZWRpYXRlIHNvbHV0aW9uCgkgIEFkZCBhbiBvd25lciBwcml2YXRlIGZpZWxkIHdoZXJlIHRoZSBvd25lciBvZiBhIGJ1ZmZlciBjYW4gc3RvcmUgc29tZSBleHRyYQoJICBpbmZvcm1hdGlvbi4gV2UgY2FuIHVzZSB0aGlzIHRvIGltcGxlbWVudCBtb3N0IG9mIHRoZSBzdWJjbGFzc2luZyB0aGF0IGhhcHBlbnMKCSAgbm93LiBMYXRlciB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgYnkgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YS4KCjIwMTEtMDItMjQgMTA6Mjg6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiByZW1vdmUgcG9pc29uaW5nCgoyMDExLTAyLTIzIDE2OjQ4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXBzCgkgIFVzZSB0aGUgc3RvcmVkIHNpemUgaW4gdGhlIG1pbmlvYmplY3QgdG8gZnJlZSB0aGUgbWluaW9iamVjdC4KCSAgUmVmYWN0b3Igc29tZSBpbml0IG1ldGhvZHMuCgoyMDExLTAyLTIzIDE1OjQzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMDItMjMgMTI6NTQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZQoKMjAxMS0wMi0yMyAxMjo0NDo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHdhcm4gd2hlbiBtYWtlX3dyaXRhYmxlIHJlc3VsdCBpcyBpZ25vcmVkCgoyMDExLTAyLTIzIDEyOjA4OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAyLTIzIDEyOjAxOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCB0eXBlIHJlZ2lzdHJhdGlvbgoJICBXZSBuZWVkIHRvIGhhdmUgdGhlIHR5cGVzIG9mIHRoZSBtaW5pb2JqZWN0cyBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlCgkgIHRyYW5mb3Jtcy4KCjIwMTEtMDItMjMgMTI6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGltcHJvdmUgY2FwcyBzdHJpbmcgbWFuYWdlbWVudAoKMjAxMS0wMi0yMyAxMjowMDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFyIGZsYWdzIGluIGluaXQKCjIwMTEtMDItMjMgMTI6MzM6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiB0ZWxsIHRoYXQgT1JDX0NPREUgY2FuIGNvbnRhaW4gYSBsaXN0IG9mIGZsYWdzCgoyMDExLTAyLTIzIDEwOjMxOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBmaXggZmxhZ3MKCjIwMTEtMDItMjIgMTk6MzA6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZml4IGNvbXBpbGF0aW9uIGFmdGVyIHJlYmFzZQoKMjAxMC0xMS0wMiAxMzozMToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBpbXByb3ZlIHR5cGUgcmVnaXN0cmF0aW9uCgoyMDEwLTExLTAyIDEyOjU4OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAwOS0xMi0wNyAyMDozMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBmaXggbWFjcm9zCgoyMDA5LTEyLTA1IDE1OjE4OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNldCBib3hlZCB0eXBlIGNvcnJlY3RseQoKMjAwOS0xMi0wNSAxNDoxNjo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBtaW5pb2JqZWN0OiBzbWFsbCBmaXhlcwoJICBNYWtlIGRhdGFmbG93IGhhcHBlbi4KCjIwMDktMTItMDQgMjM6NTI6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgbWluaW9iamVjdDogbW9yZSBib3hlZCB0eXBlIGZpeGluZwoJICBNb3JlIG1pbmlvYmplY3QgZml4aW5nLCBsZWFrcyBob3JyaWJseSBzb21ld2hlcmUuLgoKMjAwOS0xMi0wNCAyMjozMjozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1pbmlvYmplY3Q6IG1ha2UgcXVlcmllcyBhIGJveGVkIHR5cGUKCSAgTW9yZSBtaW5pb25qZWN0IHN0dWZmLgoKMjAwOS0xMi0wMyAyMDo0OTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2VzOiBtYWtlIG1lc3NhZ2UgYSBzaW1wbGUgYm94ZWQgdHlwZQoKMjAwOS0xMi0wMiAyMToyMTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiB3b3JrIG9uIG1ha2luZyBjYXBzIGEgYm94ZWQgdHlwZQoJICBNb3JlIHdvcmsgb24gbWFraW5nIG1pbmlvYmplY3QgYSBzaW1wbGUgYWxsb2NhdGVkIHN0cnVjdC4KCjIwMDktMTEtMjkgMDA6MjE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtaW5pb2JqZWN0OiBtYWtlIG1pbmlvYmplY3QgYSBib3hlZCB0eXBlCgkgIEZpcnN0IGF0dGVtcHQgYXQgbWFraW5nIG1pbmlvYmplY3QgYSBzaW1wbGUgYm94ZWQgdHlwZS4KCjIwMTEtMDItMjIgMTk6MDk6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGxpYnM6IGNsZWFudXBzIGZvciAwLjExCgkgIFJlbW92ZSBkZXByZWNhdGVkIHN0dWZmLCBmaXggcGFkZGluZywgcmVhcnJhbmdlIG1ldGhvZHMuCgoyMDExLTAyLTIyIDE2OjA0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBjbGVhbnVwcwoJICBGaXggcGFkZGluZywgcmVtb3ZlIGRlcHJlY2F0ZWQgc3ltYm9scy4KCjIwMTEtMDItMjIgMTU6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAyLTIyIDE0OjExOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBnc3QvZ3N0ZWxlbWVudC5jCgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdHBhZC5jCgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmCgoyMDExLTAyLTE0IDE4OjA1OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogQmUgc21hcnRlciB3aXRoIHBhZCBhbGxvY3MKCSAgQXZvaWQgZG9pbmcgdW5uZWNlc3NhcnkgcGFkLWFsbG9jcyB3aGVuIG9uIHBhc3N0aHJvdWdoIG1vZGUuCgkgIElmIG11bHRpcGxlIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMgYXJlIG9uIGEgcGlwZWxpbmUsIHRoZXkKCSAgd291bGQgZG8gYSBwYWQtYWxsb2MgZm9yIGVhY2ggcmVjZWl2ZWQgYnVmZmVyLCBlYWNoIGVsZW1lbnQKCSAgd291bGQgZG8gdGhpcywgc28gd2Ugd291bGQgaGF2ZSBsb3RzIG9mIHBhZCBhbGxvY3Mgb24gdGhlCgkgIHBpcGVsaW5lIGZvciBhIHNpbmdsZSBidWZmZXIgYmVpbmcgcHVzaGVkIHRocm91Z2ggaXQuCgkgIFRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gcmVkdWNlIHRoaXMgYW1vdW50IGJ5IGF2b2lkaW5nCgkgIGRvaW5nIHBhZC1hbGxvY3MgaWYgdGhlIGVsZW1lbnQgaGFzIGFscmVhZHkgZG9uZSBpdAoJICBhZnRlciB0aGUgbGFzdCBwdXNoZWQgYnVmZmVyLiBTbyBpdCB3aWxsIG9ubHkgYmUgYWxsb3dlZAoJICB0byBkbyBhIG5ldyBwYWQtYWxsb2MgYWZ0ZXIgaXQgaGFzIHB1c2hlZCBhIGJ1ZmZlciwgc28gd2UgZ2V0CgkgIDF4MSBwYWQtYWxsb2MgYW5kIGJ1ZmZlciByYXRpbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyMzczCgoyMDExLTAyLTIxIDEzOjM5OjM4ICswMTAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGdzdF9pbmRleF9uZXcoKSBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI4NjkKCjIwMTEtMDItMjEgMTI6NDQ6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcHJpbnQgbmV3IE1FRElBNCBmbGFnIGFzIHdlbGwKCjIwMTEtMDEtMDMgMTE6Mzc6MDUgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdCwgYnVmZmVyOiBzdGVhbCBtaW5pb2JqZWN0IGZsYWcgZm9yIHVzZSBhcyBNRURJQTQgYnVmZmVyIGZsYWcKCSAgVGhpcyB3YXMgcmVxdWlyZWQgdG8gYWRkIGEgbmV3IE1FRElBNCBidWZmZXIgZmxhZyBmb3IgaW5kaWNhdGluZwoJICBwcm9ncmVzc2l2ZS9taXhlZCB0ZWxlY2luZSB2aWRlbyBidWZmZXJzLiBUaGVyZSBpcyBubyBzcGFjZSBmb3IKCSAgYWRkaXRpb25hbCBmbGFncyBpbiBHc3RCdWZmZXIsIHNvIHN0ZWFsIG9uZSBmcm9tIEdzdE1pbmlPYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI2NzEKCjIwMTEtMDItMjAgMTY6MTE6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIFNpbmNlOiBtYXJrZXJzIHRvIGF0b21pYyBxdWV1ZSBkb2NzCgoyMDExLTAyLTIxIDExOjU1OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogQ2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkIgoJICBUaGlzIGNvbW1pdCBjaGFuZ2VzIHRoZSByZXF1ZXN0IHBhZCBiZWhhdmlvdXIgZm9yIHBsdWdpbnMgYW5kIGFwcGxpY2F0aW9ucy4KCSAgUmVvcGVucyBCdWcgIzQwMjU2MgoJICBUaGUgcHJvcGVyIGZpeCBmb3IgdGhhdCBidWcgaXMgdG8ga2VlcCB0cmFjayBvZiBjcmVhdGVkIHJlcXVlc3QgcGFkcy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhNWU0NGZmZmZhYTZkN2E4ZDdhZjhkY2I3N2UzNzk5MDk5NjI1M2E1LgoKMjAxMS0wMi0yMSAxMDowMzoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBhZGQgRklYTUUtMC4xMTogY29tbWVudHMKCjIwMTEtMDItMTUgMTA6NTc6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBpbXByb3ZlIGluZGV4IGRvY3MKCjIwMTEtMDItMTggMTc6MDk6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBzcGVsbC1jaGVjawoKMjAxMS0wMi0xNSAxOToxNToxNiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBwcmludCBidWZmZXIgZmxhZ3MKCjIwMTAtMTItMDQgMTg6NTM6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkCgkgIEZpeGVzICM2MzYwMTEgYW5kICM0MDI1NjIuCgoyMDExLTAyLTE3IDE0OjUwOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGZpeCBjcmVhdGlvbiBvZiB3cml0ZXIgaWQgZm9yIHVucGFyZW50ZWQgcGFkcwoJICBBbHNvIGRvIHNvbWUgY2xlYW51cCBpbiB0aGUgaW1wbC4KCjIwMTEtMDItMTcgMTA6MzQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIChkZSlzZXJpYWxpc2F0aW9uIGZ1bmN0aW9uIGZvciB1Y2hhcgoJICAuLiBzaW5jZSB3ZSBzYWRseSBoYXZlIGEgcGx1Z2luIGluIC1nb29kIHRoYXQgaGFzIGEgdWNoYXIgcHJvcGVydHkKCSAgKGNtbWxlbmMpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI1MjIKCjIwMTEtMDItMTYgMTk6NTQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBpbmNsdWRlIG9yZGVyIGF0b21pY3F1ZXVlOiBmaXggaW5jbHVkZSBvcmRlciMgUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZwoKMjAxMC0xMC0yOCAxMzoyNzo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IG1ha2UgdGhlIGJ1cyBhbG1vc3QgbG9ja2ZyZWUKCSAgVXNlIG5ldyBHc3RQb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd2FrZXVwIHRoZSBtYWlubG9vcC4KCSAgVXNlIGFuIGF0b21pYyBxdWV1ZSBvbiB0aGUgd3JpdGVyIHNpZGUgdG8gcG9zdCB0aGUgbWVzc2FnZXMuCgkgIFRoZSByZWFkZXIgc2lkZSBpdCBwcm90ZWN0ZWQgd2l0aCB0aGUgbG9jayBzdGlsbCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgbXVsdGlwbGUKCSAgY29uY3VycmVudCByZWFkZXJzLgoKMjAxMS0wMi0xNiAxNzoyMTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcyBmaWxlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0wMi0xNiAxNzoxNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogdXNlIGNvcnJlY3QgYXJyYXkgc2l6ZXMKCjIwMTEtMDItMTYgMTY6MjE6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBkb2NzIHNvbWUgbW9yZQoKMjAxMS0wMi0xNiAxNjoxOTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljcXVldWU6IGFkZCByZWZjb3VudGluZyBhbmQgZG9jcwoKMjAxMS0wMi0xNiAxMjo0ODo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogbWFrZSBzdXJlIGEgbWluIGluaXRpYWxfc2l6ZSBpcyB1c2VkCgoyMDEwLTEwLTI4IDE2OjAyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pY3F1ZXVlOiBhZGQgYW4gYXRvbWljIHF1ZXVlCgkgIEFkZCBhbiBhdG9taWMgcXVldWUuIFRoZSBxdWV1ZSBjYW4gYmUgdXNlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMgc2ltdWx0YW5lb3VzbHkKCSAgYW5kIHdpdGhvdXQgdGFraW5nIGFueSBsb2NrcyBvciBkb2luZyBhbnkgYmxvY2tpbmcgb3BlcmF0aW9ucy4gVGhpcyBtYWtlcyBpdAoJICBoaWdobHkgc2NhbGFibGUgZm9yIHRoaW5ncyBsaWtlIHRoZSBidXMsIGJ1ZmZlcnBvb2xzIGFuZCBvYmplY3QgcmVjeWNsaW5nLgoKMjAxMS0wMi0xNiAxNzoxNDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgY2hlY2s6IGZpeCBhIGxlYWsgaW4gdGhlIGJ1cyB1bml0IHRlc3QKCjIwMTEtMDItMTYgMTc6Mjg6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGRlaW5pdDogYWRkIHByb2dyZXNzIHR5cGUgY2xhc3MgdW5yZWYKCjIwMTEtMDItMTYgMTU6MTM6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdGVsbCBhbHNvIHdoYXQgcGFkIGEgcGFkIGlzIGFscmVhZHkgbGlua2VkIGFnYWluc3QKCjIwMTEtMDItMTUgMjI6NTY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxle3Npbmssc3JjfTogQ2hlY2sgaWYgbm9uLVVSSSBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLCBidXQgb25seSBmb3IgdGhlIFVSSSBub3QgdGhlIGxvY2F0aW9uIHByb3BlcnR5CgoyMDExLTAyLTE1IDIyOjQ5OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXtzcmMsc2lua306IEZpeCB1bml0IHRlc3RzCgkgIGZpbGVzaW5rIGFuZCBmaWxlc3JjIHNob3VsZCByZXR1cm4gZXhhY3RseSB0aGUgc2FtZSBVUkkgYXMgcGFzc2VkCgkgIGFuZCBtdXN0IG5vdCBlc2NhcGUgcGF0aCBzZXBhcmF0b3JzLgoKMjAxMS0wMi0xNSAyMjo0ODo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggZXNjYXBpbmcgb2YgVVJJcwoJICBFc3BlY2lhbGx5IGRvbid0IGVzY2FwZSAvIGFzIHBhdGggc2VwYXJhdG9ycwoKMjAxMS0wMi0xNSAyMjowNTozMSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBGaXggZXNjYXBpbmcgb2YgZmlsZSB1cmlzCgkgIEZpeGVzIGJ1ZyAjNjQyMzkzLgoKMjAxMS0wMi0xNSAxODoyNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogYWRkIHRpbWVvdXQgdG8gcHJvZ3Jlc3MgbWVzc2FnZQoJICBBZGQgYSB0aW1lb3V0IG1lbWJlciB0byB0aGUgcHJvZ3Jlc3MgbWVzc2FnZXMgdG8gbGV0IHRoZSBhcHBsaWNhdGlvbiBrbm93IGFib3V0CgkgIHRoZSB0aW1lb3V0IHNvIHRoYXQgaXQgY2FuIGRvIHNvbWUgZ3VpIHRoaW5ncyB3aXRoIGl0LgoKMjAxMS0wMi0xNSAxODoxNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1lbnRpb24gdGltZW91dCBpbiB0aGUgcHJvZ3Jlc3MgbWVzc2FnZQoKMjAxMS0wMi0xNSAxNzoyMDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1ha2UgcHJvZ3Jlc3MgZHJhZnQgb2ZmaWNpYWwKCjIwMTEtMDEtMDYgMTg6NTU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogcmVuYW1lIGNhdGVnb3J5IHRvIGNvZGUKCjIwMTEtMDEtMDYgMTU6NTg6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgbmV3IG1lc3NhZ2UgcXVhcmsKCjIwMTEtMDEtMDYgMTU6NTg6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGFkZCBtb3JlIHN0YW5kYXJkIGNhdGVnb3JpZXMKCjIwMTEtMDEtMDUgMTM6NTM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVnaXN0ZXIgbmV3IHR5cGUKCjIwMTEtMDEtMDUgMTM6NDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICBjaGVjazogYWRkIHByb2dyZXNzIG1lc3NhZ2UgdW5pdCB0ZXN0CgoyMDExLTAxLTA1IDEzOjQxOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIHByb2dyZXNzIG1lc3NhZ2UgZnVuY3Rpb25zCgoyMDExLTAxLTA1IDEzOjM5OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiB1cGRhdGUgcHJvZ3Jlc3MgZmllbGQKCSAgQXZvaWQgbmFtaW5nIHRoZSBwcm9ncmVzcyBmcmVlIHRleHQgZmllbGQgJ21lc3NhZ2UnIGFzIGl0IGNvbmZsaWN0cyB3aXRoIHRoZQoJICBtZXNzYWdlIGl0c2VsZi4KCjIwMTEtMDItMTUgMTQ6NDI6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIGZpbGUgdXBzdHJlYW0gaW4gcHVsbCBtb2RlCgkgIC4uLiB3aGljaCBjb3VsZCBsZWFkIHRvIGEgcHJlbWF0dXJlIGVvcyBiZWluZyByZXBvcnRlZCBkb3duc3RyZWFtLAoJICByYXRoZXIgdGhhbiBhIHN1Y2Nlc3NmdWwgcGFydGlhbCByZWFkIHdoaWNoIHdvdWxkIHJlc3VsdCB3aGVuCgkgIHBlcmZvcm1lZCBkaXJlY3RseSBvbiBlLmcuIGJhc2VzcmMuCgoyMDExLTAxLTI2IDE2OjQ2OjI1ICswODAwICBDaGVuIFJ1aSA8cnVpLmNoZW5AdGlldG8uY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZXR1cm4gcmVhbCBlcnJvciBpbiBjb21wYXRpYmxlIGxpbmsgY2hlY2sKCSAgV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FsbCBnc3RfcGFkX2NoZWNrX2xpbmsoKSB3aXRoIHRoZSB0d28gcGFkcyBpbiB0aGUgY29ycmVjdAoJICBvcmRlci4gVGhlIG9yZGVyIGRlcGVuZHMgb24gd2hldGVyIHdlIGl0ZXJhdGUgc3JjIG9yIHNpbmsgcGFkcy4KCSAgU2lnbmVkLW9mZi1ieTogQ2hlbiBSdWkgPHJ1aS5jaGVuQHRpZXRvLmNvbT4KCjIwMTEtMDItMTQgMTc6MzE6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2hlY2sgc2lua3BhZCBmb3IgZmx1c2hpbmcKCSAgQ2hlY2sgdGhlIHNpbmtwYWQgZm9yIHRoZSBmbHVzaGluZyBzdGF0ZSBiZWZvcmUgY2FsbGluZyB0aGUgY2hhaW5mdW5jdGlvbiBvbiB0aGUKCSAgcGFkLiBXZSBkbyB0aGlzIGJ5IGNoZWNraW5nIHRoZSBjYWNoZSAod2hpY2ggaXMgYWxzbyBjbGVhcmVkIG9uIHRoZSBzcmNwYWQgd2hlbgoJICB0aGUgc2luayBpcyBzZXQgdG8gZmx1c2hpbmcpLgoJICBGaXhlcyAjNjQxOTI4CgoyMDExLTAyLTExIDE3OjQ3OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDaGVjayBmb3IgcGFkIGFsbG9jIGNhcHMgd2hlbiBzdWdnZXN0aW9uIGlzIG5vdCBmaXhlZAoJICBJZiBhZnRlciBjb21wdXRpbmcgdGhlIHN1Z2dlc3Rpb24gd2l0aCBkb3duc3RyZWFtIGNhcHMgd2Ugc3RpbGwgaGF2ZQoJICBhIG5vbi1maXhlZCBzdWdnZXN0aW9uIGNhcHMgdHJ5IHRvIGludGVyc2VjdCB3aXRoIHRoZSBpbnB1dCBjYXBzCgkgIG9mIHRoZSBwYWQgYWxsb2MgdG8gYXZvaWQgdXNlbGVzcyByZW5lZ290aWF0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjEzMAoKMjAxMS0wMi0xNCAxNDowMDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgZHVyYXRpb24gY2FsY3VsYXRpb24KCSAgS2VlcCB0cmFjayBvZiB0aGUgYXZlcmFnZSBkaXN0YW5jZSBiZXR3ZWVuIGluY29tbWluZyB0aW1lc3RhbXBzIGFuZAoJICB1c2UgdGhhdCB0byBlc3RpbWF0ZSB0aGUgZnJhbWUgZHVyYXRpb24gd2hlbiBidWZmZXJzIGhhdmUgbm8gZHVyYXRpb24gc2V0IG9uCgkgIHRoZW0uCgoyMDExLTAyLTE0IDEzOjQ5OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSByYXRlIGNhbGN1bGF0aW9uCgkgIFdoZW4gdGhlcmUgaXMgbm8gZHVyYXRpb24gb24gaW5wdXQgYnVmZmVycywgYXNzdW1lIHRoZSByYXRlIGlzIDEuMAoJICBpbnN0ZWFkIG9mICh0aGUgdW5kZWZpbmVkKSAwLjAuCgoyMDExLTAyLTE0IDEzOjQ3OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBhdmVyYWdlIGR1cmF0aW9uIGNhbGN1bGF0aW9uCgkgIEltcHJvdmUgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBkdXJhdGlvbi4gV2hlbiB3ZSBoYXZlIG5vIGlucHV0IGR1cmF0aW9uIHNldCBvbgoJICB0aGUgaW5wdXQgYnVmZmVycyBzdG9wIGlzIHNldCB0byBzdGFydCBhbmQgdGhlbiB3ZSBlbmQgdXAgdXNpbmcgYSAwIGR1cmF0aW9uIGluCgkgIHRoZSBhdmVyYWdlIGNhbGN1bGF0aW9uLgoKMjAxMS0wMi0xNCAxMjoyMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbmFtZSB2YXJpYWJsZQoJICBSZW5hbWUgYW4gaW50ZXJuYWwgdmFyaWFibGUgdG8gYmV0dGVyIHJlZmxhY3Qgd2hhdCBpdHMgdmFsdWUgbWVhbnMuCgoyMDExLTAyLTE0IDE1OjM5OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IHRyaW0gd2hpdGVzcGFjZXMKCjIwMTEtMDItMTQgMTU6Mzc6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogZml4IHR5cG8gaW4gcGFkLWxpc3QgbGVuZ3RoIGNvbXBhcmlzaW9uCgkgIEl0IHdhcyBjb21wYXJpbmcgdGhlIGxlbmd0aCB3aXRoIGl0c2VsZi4KCSAgRml4ZXMgIzY0MjA3MS4KCjIwMTEtMDItMTQgMTI6NTI6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjk0ZDczOSB0byAxZGU3ZjZhCgoyMDExLTAyLTEzIDIyOjU2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJldHR5LXByaW50IGRhdGV0aW1lIHRhZ3MKCjIwMTEtMDItMTAgMjM6MzA6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGdzdHJlYW1lci5kb2FwOiB1cGRhdGUgbWFpbGluZyBsaXN0IGhvc3QKCjIwMTEtMDItMTAgMTQ6NTM6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggc29tZSBjb21tZW50cwoKMjAxMS0wMi0xMCAxNDo1MDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGtlZXAgdHJhY2sgb2YgZWFybGllc3QgUW9TIHRpbWVzdGFtcAoJICBLZWVwIHRyYWNrIG9mIHRoZSBlYXJsaWVzdCBhbGxvd2VkIHRpbWVzdGFtcCBhY2NvcmRpbmcgdG8gdGhlIGxhdGVzdAoJICBRb1MgcmVwb3J0IGFuZCBkcm9wIGJ1ZmZlcnMgYmVmb3JlIHRoYXQgdGltZS4gQWN0aXZhdGUgdGhpcyBmaWx0ZXIKCSAgd2hlbiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQuIFdlIGNvdWxkIGxhdGVyIGFsc28gYWN0aXZhdGUgdGhpcyBpbiB0aGUKCSAgb3RoZXIgUW9TIGNhc2VzLgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxNDoxNzoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBuZXcgUW9TIHR5cGUKCSAgVXNlIHRoZSBuZXcgUW9TIHR5cGUgYW5kIHNlbmQgdGhyb3R0bGluZyBRb1MgbWVzc2FnZXMuCgoyMDExLTAyLTEwIDEzOjQyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGFkZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYSB0aHJvdHRsZS10aW1lCgkgIEFkZCBhIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSB0aGUgdGhyb3R0bGUgdGltZSBvbiBhIHNpbmsuIFRoZQoJICBwcm9wZXJ0eSBpcyBub3QgeWV0IHVzZWQuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDEyOjAyOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBRb1MgZXZlbnQgdHlwZQoJICBBZGQgYSBwYXJhbWV0ZXIgdG8gdGhlIFFvUyBldmVudCB0byBzcGVjaWZ5IHRoZSBRb1MgZXZlbnQgdHlwZS4KCSAgVXBkYXRlIGRvY3MgYW5kIGFkZCB1bml0IHRlc3QuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDEyOjAwOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcGFyYW1ldGVyIGRvY3MKCjIwMTEtMDItMTAgMTA6NDk6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRlc2lnbjogdHdlYWsgZG9jcyBhIGxpdHRsZQoKMjAxMS0wMi0xMCAxMDozNDo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgUW9TIGRvY3VtZW50CgkgIEFkZCBuZXcgUW9TIHR5cGVzIGFuZCB0YWxrIGFib3V0IHRoZSBuZXcgdGhyb3R0bGUgUW9TIG1lc3NhZ2UuCgoyMDExLTAyLTEwIDEzOjQ2OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBmaXggc29tZSB0eXBvcyBpbiB0aGUgYnVmZmVycG9vbCBkcmFmdAoKMjAxMS0wMi0xMCAxMDoxOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnRzOiBmaXggZy1pIGFubm90YXRpb24gZm9yIGdzdF9ldmVudF9uZXdfdGFnKCkgd2hpY2ggdGFrZXMgb3duZXJzaGlwIG9mIHRoZSB0YWcgbGlzdAoKMjAxMS0wMi0xMCAwMDowMjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtZW50aW9uIHRoYXQgaXQncyBuZWNlc3NhcnkgdG8gc2V0IHRoZSBzdGF0ZSBvZiBlbGVtZW50cyBhZGRlZCB0byBhbiBhbHJlYWR5LXJ1bm5pbmcgcGlwZWxpbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTYzMQoKMjAxMS0wMi0wOSAxNjoyMjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkZXNpZ246IGFkZCBkcmFmdCBmb3IgZmlyc3QgaWRlYXMgZm9yIGEgYnVmZmVycG9vbCBmZWF0dXJlCgkgIEFkZCBhIGZpcnN0IGRyYWZ0IHdpdGggc29tZSBpZGVhcyBhbmQgdXNlIGNhc2VzIGZvciB0aGUgaW1wbGVtZW50YXRpb24KCSAgZm9yIGJ1ZmZlcnBvb2xzLiBUaGUgcHVycG9zZSBpcyB0byBiZSBhYmxlIHRvIG1ha2UgZWxlbWVudHMgbmVnb3RpYXRlCgkgIHRoZWlyIGJ1ZmZlciByZXF1aXJlbWVudHMgYXMgd2VsbCBhcyBwcm92aWRlIGFuIGluZnJhc3RydWN0dXJlIHRvCgkgIHByZWFsbG9jYXRlIGFuZCByZXVzZSBidWZmZXJzIGluIGFuIGVhc3kgd2F5LgoKMjAxMS0wMi0wOSAxNToyMzoxMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogY2xhcmlmeSB0aGUgTk9NSU5BTF9CSVRSQVRFIGRvY3MKCSAgVGVsbCB0aGF0IGl0cyBhIHRhcmdldCBiaXRyYXRlIGFuZCBhY3R1YWwgdmFsdWVzIG1pZ2h0IGJlIGRpZmZlcmVudC4KCjIwMTEtMDItMDMgMTU6MTc6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogdHJpZ2dlciByZWJ1aWxkIHNldHVwIGluIF9uZXcKCSAgRmFpbGluZyB0byBkbyBzbyBpbiB0aGUgV2luZG93cyBjYXNlIChpbXBsaWNpdGx5IHRyaWdnZXJlZCBvdGhlcndpc2UpCgkgIHdvdWxkIGhhdmUgYSBzdWJzZXF1ZW50IF93YWl0IHJldHVybiBpbW1lZGlhdGVseSBsZWFkaW5nIHRvIGhpZ2ggQ1BVCgkgIHVzYWdlIHRpbWVvdXQgbG9vcHMuCgkgIEZpeGVzICM2NDA2NzUuCgoyMDExLTAyLTAzIDEwOjUzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1ha2UgYWRkaW5nL3JlbW92aW5nIG9mIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIHdvcmsgcHJvcGVybHkKCSAgTWFrZSBhZGRpbmcvcmVtb3ZpbmcgZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KCkgd29yayByZWxpYWJseSBpbiBhbGwKCSAgY2lyY3Vtc3RhbmNlcy4gVGhlIHByb2JsZW0gd2FzIHRoYXQgZGVwZW5kaW5nIG9uIHBsYXRmb3JtIGFuZCBsaW5rZXIKCSAgZmxhZ3MgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IG1pZ2h0IHJlc29sdmUgdG8gZGlmZmVyZW50IGFkZHJlc3NlcywKCSAgd2hpY2ggbWFkZSBpdCBpbXBvc3NpYmxlIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBsb2cgZnVuY3Rpb24gYWRkZWQKCSAgaW4gZ3N0X2luaXQoKSBmcm9tIGFwcGxpY2F0aW9uIGNvZGUgKGJlY2F1c2UgdGhlIHBvaW50ZXIgdmFsdWVzCgkgIGRpZG4ndCBtYXRjaCkuIFRoZSBuZXcgYXBwcm9hY2ggc2hvdWxkIGtlZXAgdGhpbmdzIHNpbXBsZSBieSBwYXNzaW5nCgkgIE5VTEwgZm9yIHRoZSBkZWZhdWx0IGZ1bmN0aW9uLCB3aGljaCB0aGUgY29kZSBpbiBsaWJnc3RyZWFtZXIgY2FuCgkgIHRoZW4gaGFuZGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1Mzk2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3NzEKCjIwMTEtMDItMDMgMTA6Mjg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgUmV2ZXJ0ICJpbmZvOiB1c2UgdGhlIHB1YmxpY2x5IHZpc2libGUgYWRkcmVzcyB0byBmaXggdGhlIHRlc3RzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGViNTY2ODdhNmRmZDIwNzUwN2E0Y2EwMDBlYWU1M2Y5M2I1ZTMzZWEuCgkgIFdoaWxlIHRoaXMgY29tbWl0IG1heSBoYXZlIGZpeGVkIGEgcHJvYmxlbSBvbiBvbmUgb2YgdGhlIGJ1aWxkIGJvdHMsCgkgIGl0IGRpZG4ndCBhY3R1YWxseSBmaXggdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnRlZCBmb3Igd2luMzIuCgkgIEFsc28sIGl0IGNhdXNlcyBvdGhlciBwcm9ibGVtcywgc3VjaCBhcyB0aGUgbG9va3VwIGZhaWxpbmcgd2hlbgoJICBjYWxsZWQgZnJvbSBDKysgY29kZSAoZ3N0LXBob25vbiwgYW1hcm9rKS4KCSAgVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBkaWZmZXJlbnRseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDc3MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1Mzk2CgoyMDExLTAyLTAyIDE1OjM1OjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcHJvcGVybHkgaWRlbnRpdHkgZGVxdWV1ZWQgZXZlbnQgYXMgc3VjaAoJICAuLi4gd2hpY2ggYXZvaWRzIHRlcm1pbmF0aW5nIHdpdGggRVJST1IgcmF0aGVyIHRoYW4gVU5FWFBFQ1RFRC4KCjIwMTEtMDItMDIgMDI6MDc6NTggKzAwMDAgIFBldGVyIENvbGxpbmdib3VybmUgPHBldGVyQHBjYy5tZS51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHVzZSAkR1NUX1BSRUZJWCB2YXJpYWJsZQoJICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByZWZpeCBieSBlZGl0aW5nIHRoZSBzY3JpcHQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEyMTIKCjIwMTAtMDgtMTkgMjI6NDM6MDcgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQG5va2lhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBhIG5ldyAiZW5jb2RlZC1ieSIgdGFnCgkgIFVzZWNhc2U6IElEM3YyIFRFTkMgKCJFbmNvZGVkIGJ5IikgZnJhbWUuCgkgIEFQSTogR1NUX1RBR19FTkNPREVEX0JZCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjcyNjgKCjIwMTEtMDEtMjkgMTg6MDI6MTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIG5ldDogdXNlIHNvY2tsZW5fdCB3aGVyZSBhcHByb3ByaWF0ZSByYXRoZXIgdGhhbiBzcGVjaWZpYyB0eXBlCgkgIEluIHBhcnRpY3VsYXIsIGZpeGVzIEN5Z3dpbiBidWlsZCB3aGVyZSBzb2NrbGVuX3QgaXMgZGVmaW5lZCBhcyBpbnQKCSAgaW4gbGluZSB3aXRoIG5hdGl2ZSB3aW4zMiBhcGkgZGVmaW5pdGlvbi4KCjIwMTEtMDEtMzEgMTU6NTg6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGJ1czogaG9ub3VyIGFueSBwZXItdGhyZWFkIGRlZmF1bHQgbWFpbiBjb250ZXh0IHNldCB2aWEgZ19tYWluX3RocmVhZF9wdXNoX3RocmVhZF9kZWZhdWx0KCkKCSAgTWFrZXMgZ3N0X2J1c19hZGRfd2F0Y2goKSwgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCgpLCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2goKSwKCSAgYW5kIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKCkgY29udmVuaWVuY2UgZnVuY3Rpb25zIGF1dG9tYXRpY2FsbHkgcGljayB1cAoJICBhbnkgbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyBzZXQgZm9yIHRoZSBjdXJyZW50IHRocmVhZCB2aWEKCSAgZ19tYWluX3RocmVhZF9wdXNoX3RocmVhZF9kZWZhdWx0KCkuCgoyMDExLTAxLTI4IDE1OjM2OjMzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBPbmx5IHNldCBkaXNjb250IG9uIHRoZSBmaXJzdCBidWZmZXIgYWZ0ZXIgZHJvcHMKCSAgUmVzZXQgdGhlIGRpc2NvbnQgbWVtYmVyIGFmdGVyIHNldHRpbmcgZGlzY29udCBvbiB0aGUgZmlyc3QgYnVmZmVyIGFmdGVyCgkgIGRyb3BwaW5nLgoKMjAxMS0wMS0yOCAxOTowODowOCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgR3N0RWxlbWVudDogRml4IHdhcm5pbmcgd2l0aCBHQ0MgNC42CgkgIGdzdGVsZW1lbnQuYzogSW4gZnVuY3Rpb24g4oCYZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFk4oCZOgoJICBnc3RlbGVtZW50LmM6MTA1MjoxODogZXJyb3I6IHZhcmlhYmxlIOKAmHRtcOKAmSBzZXQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNlZC1idXQtc2V0LXZhcmlhYmxlXQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwODUwCgoyMDExLTAxLTI3IDA5OjI4OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHByaW50IHVuc2V0IGJ1ZmZlciB0aW1lc3RhbXBzIG9yIGR1cmF0aW9ucyBhcyAnbm9uZScKCSAgTGlrZSBmYWtlc2luayBhbmQgZmFrZXNyYyBkby4KCjIwMTEtMDEtMTIgMTY6MDM6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCB0YWtlIG9iamVjdCBsb2NrIGZvciByZWFkaW5nIHRoZSBmb3VuZCBjYXBzCgkgIE9uY2Ugd2Ugc3dpdGNoIHRvIG5vcm1hbCBtb2RlLCB3ZSdyZSBub3QgdHlwZWZpbmRpbmcgYW55bW9yZSBhbmQgdGh1cyB0aGUgY2FwcwoJICB3aWxsIG5vdCBjaGFuZ2UuIFRoZXJlZm9yZSBjYW4gYXZvaWQgdGhlIG9iamVjdCBsb2NrIGluIHRoZSBkYXRhLWZsb3cgcGF0aC4KCSAgVGhlIGxvY2tpbmcgd2FzIGFkZGVkIGluIG9yZGVyIHRvIGZpeCBidWcgIzYwODg3Ny4KCjIwMTEtMDEtMjUgMDk6Mzk6NDUgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9yYW5kb20vY2FwczoKCSogZG9jcy9yYW5kb20vb21lZ2EvVE9ETy0wLjEuMDoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvY2FwdHVyaW5nOgoJKiBkb2NzL3JhbmRvbS93dGF5L2V2ZW50czoKCSogZG9jcy9yYW5kb20vd3RheS9ldmVudHMzOgoJKiBkb2NzL3NsaWRlcy9vdXRsaW5lOgoJICBkb2NzOiBmaXggYSBmZXcgbW9yZSB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNTAyCgoyMDExLTAxLTI1IDE4OjQ4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGRvY3M6IGZsZXNoIG91dCB0eXBlZmluZGVsZW1lbnQgZG9jcyBzb21lIG1vcmUKCSAgTWVudGlvbiB0aGF0IGhhdmUtdHlwZSBzaWduYWwgbWF5IGJlIGVtaXR0ZWQgZnJvbSBzdHJlYW1pbmcKCSAgdGhyZWFkIG9yIGFwcGxpY2F0aW9uIHRocmVhZCwgYW5kIGZpeCBhIHR5cG8uCgoyMDExLTAxLTEyIDE2OjAzOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY29kZSBhbmQgY29tbWVudCBjbGVhbnVwcwoJICBNYWtlIGNvZGUgdHdvIHBsYWNlcyBvZiB0aGUgY29kZSB0aGUgcHVzaGVzIHRoZSBidWZmZXIgc3RvcmUgbW9yZSBzaW1pbGFyLiBNb3JlCgkgIGNvbW1lbnRzIGFuZCBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0wMS0xMiAxMzowNTowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBlbnN1cmUgbWVzc2FnZXMgYXJlIFwwIHRlcm1pbmF0ZWQKCjIwMTEtMDEtMTIgMTI6NTg6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBoYW5kbGUgaW52YWxpZCBuZXR3b3JrIGFkZHJlc3NlcyBlYXJsaWVyCgkgIEhhbmRsZSBpbmV0X2F0b24oKSByZXR1cm4gY29kZS4KCjIwMTEtMDEtMTIgMTI6NDQ6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjaGVja3M6IGFkZCBhIGNvbW1lbnQgdG8gaW5kaWNhdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGxlYXZlIG91dCB0aGUgJ2JyZWFrJwoKMjAxMS0wMS0xMiAxMjo0MzowNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgZGVhZCBjb2RlCgkgIFRoZSBHRXJyb3IgaXMgb25seSB1c2VkIGZvciB0aGUgbW1hcCBvcGVyYXRpb25zLiBJZiB3ZSBoYXZlIGFuIGVycm9yIHdlIGhhbmRsZQoJICBhbmQgY2xlYW4gaXQgdGhlcmUgYWxyZWFkeS4KCjIwMTEtMDEtMTIgMDk6MzM6NTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBkb2NzOiBzbWFsbCBjb250cm9sbGVyIGFwaSBkb2NzIGltcHJvdmVtZW50CgoyMDExLTAxLTExIDE1OjA5OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY2Fub25pY2FsaXplIHNpZ25hbCBuYW1lCgoyMDExLTAxLTExIDE1OjA5OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBkb2NzOiBtZW50aW9uIGhhdmUtdHlwZSBzaWduYWwgaW4gdGhlIGRvY3MuCgoyMDExLTAxLTI1IDA5OjE1OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogbWlub3IgZ3N0LWxhdW5jaCBtYW4gcGFnZSBmaXgKCSAgVHJhbnNtaXR0ZXIvcmVjZWl2ZXIgcGlwZWxpbmVzIHdlcmUgbWlzbGFiZWxsZWQuIFNwb3R0ZWQgYnkgTWFqaW4uCgoyMDExLTAxLTI1IDE2OjA5OjE4ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWUgdGVzdDogUmVtb3ZlIHdvcmthcm91bmQgZm9yIHBhZF90YXNrIGhhbmdzCgkgIFJlbW92ZSBjb2RlIHRoYXQgaXNuJ3QgbmVlZGVkIGFueSBsb25nZXIsIHdoaWNoIHNldHMgdGhlIG11bHRpcXVldWUKCSAgdG8gUExBWUlORyBhbmQgYmFjayBiZWZvcmUgdW5yZWZmaW5nLCBpbiBvcmRlciB0byBhdm9pZCBhIGRlYWRsb2NrCgkgIHdhaXRpbmcgZm9yIGdzdHBhZCB0YXNrcyB0aGF0IHdlcmUgbmV2ZXIgc3RhcnRlZC4gVGhlIHByb2JsZW0gc2VlbXMKCSAgdG8gaGF2ZSBiZWVuIGZpeGVkIGxvbmcgYWdvLgoKMjAxMS0wMS0yNSAwMDoyMDozNCArMDgwMCAgQ2FpIFl1YW5xaW5nIDxja2phY2tldEBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgZGVzaWduIGRvY3M6IGZpeCAyIHR5cG9zIGluIHBhcnQtTVQtcmVmY291bnRpbmcKCjIwMTEtMDEtMjQgMTc6NDY6MTUgKzA4MDAgIFlhbmcgWGljaHVhbiA8eGljaHVhbi55YW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgZGVzaWduIGRvY3M6IHBhcnQtZ3N0YmluLnR4dCBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBZYW5nIFhpY2h1YW4gPHhpY2h1YW4ueWFuZ0B0aWV0by5jb20+CgoyMDExLTAxLTE5IDE1OjQ4OjI2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkZXNpZ24gZG9jczogZml4IGEgZmV3IHR5cG9zIGFuZCBhIHRoaW5rbwoKMjAxMS0wMS0xMSAxNzo0Mzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQVBJOiBBZGQgZnVuY3Rpb24gdG8gcmUtaW5pdCBwZXJpb2RpYyBHc3RDbG9ja0lEcwoKMjAxMS0wMS0yMCAxNDozNzoyNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGdzdHBsdWdpbmxvYWRlcjogZG8gbm90IGxlYWsgdGhlIGRlc2NyaXB0aW9uIHN0cmluZwoJICBUaGUgZGVzY3JpcHRpb24gc3RyaW5nIHdhcyBjaGFuZ2VkIHRvIGFuIGlubGluZWQgc3RyaW5nIGEgd2hpbGUgYmFjay4KCSAgKEJ1dDogbm8gbmVlZCB0byBpbnRlcm4gdGhlIGNvbnN0IHN0cmluZ3MgaGVyZSwgd2UganVzdCB1c2UgdGhlIGludGVybmluZwoJICB0byBhdm9pZCBhbGxvY2F0aW5nIGR1cGxpY2F0ZXMgYW5kIG1ha2UgbWVtb3J5IG1hbmFnZW1lbnQgZWFzaWVyLAoJICBzaW5jZSB0aGUgc3RyaW5ncyB3aWxsIGJlIGFyb3VuZCBmb3IgdGhlIGxpZmUtdGltZSBvZiB0aGUgYXBwIGFueXdheSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDAwNzEKCjIwMTEtMDEtMjIgMTU6MzM6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogY2xhcmlmeSBkb2NzCgoyMDExLTAxLTExIDEwOjMzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBidWZmZXJpbmcgZG9jCgkgIEFkZCBzdHJhdGVnaWVzIHRvIGJ1ZmZlcmluZyBkb2MKCjIwMTEtMDEtMjQgMTE6NTM6MTIgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMzIiIG1hcmtlcnMgZm9yIEdzdENsb2NrCgkgIFNpbmNlIHRhZ3Mgd2VyZSBtaXNzaW5nIGZvciBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0KCkKCSAgYW5kIEdTVF9DTE9DS19ET05FLgoKMjAxMS0wMS0yNCAxMDo1NjoyMSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBGaXggR3N0UXVldWUyOnJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnR5IFNpbmNlIHRhZyAoMC4xMC4zMSwgbm90IDAuMTAuMzApCgoyMDExLTAxLTI0IDEwOjI2OjQ1ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjMxIiBtYXJrZXIgZm9yIGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZSgpCgoyMDExLTAxLTI0IDE0OjIyOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHJlYWQtYmV5b25kLWVuZC1vZi1zdHJpbmcgYnVnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NzQKCjIwMTEtMDEtMjQgMTQ6MTY6MzcgKzAwMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlLWxhdW5jaDogZG9uJ3QgcmVhZCBwYXN0IGVuZCBvZiBzdHJpbmcgaWYgbGFzdCBjaGFyYWN0ZXIgaXMgYW4gZXNjYXBlIGNoYXIKCSAgV2hlbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBwcm9wZXJ0eSB2YWx1ZSBpcyBhIGJhY2tzbGFzaAoJICB0aGUgdW5lc2NhcGluZyBjb2RlIHJlYWRzIG9uZSBieXRlIHBhc3MgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5Njc0CgoyMDExLTAxLTE0IDA5OjIxOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGhhY2sgYSBjaGFyc2V0PXV0Zi04IGludG8gcHdnL2FkbSBodG1sIHZlcnNpb25zCgkgIFNvIHRoZSBlbmNvZGluZyBvZiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQgaXMgcmVzcGVjdGVkIGFuZAoJICBkaXNwbGF5cyBwcm9wZXJseSBpbiBicm93c2VycyB3aGVyZSB0aGUgZW5jb2RpbmcgYXV0b2RldGVjdGlvbgoJICBmYWlscyB0byByZWNvZ25pc2UgdGhhdCBpdCdzIHV0Zi04LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NDQ4CgoyMDExLTAxLTEzIDE1OjQxOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBkb24ndCBsZWFrIHhtbCBmaWxlIG5hbWUgaWYgR1NUX0NIRUNLX1hNTCBpcyBzZXQKCSAgU3BvdHRlZCBieSBudmluZWV0aEBnbWFpbC5jb20KCjIwMTEtMDEtMjMgMjM6NDU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zMiA9PT0KCjIwMTEtMDEtMjEgMTA6MjU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMyCgoyMDExLTAxLTIwIDE5OjA3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0ICJjb25maWd1cmU6IHJlcXVpcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uID49IDAuOS4xMiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzYTU5ZDQxNmFmNmQwZjhiNjFlMjQ2MDgzMGViNmYxMTM4OTI5ZWMyLgoJICBSZXZlcnRpbmcgdGhpcywgYXMgdGhlIGZlYXR1cmUgd2UgYnVtcGVkIHRoZSByZXF1aXJlbWVudCBmb3IKCSAgZGlkbid0IGFjdHVhbGx5IHdvcmsgcHJvcGVybHkgb3IgaGVscCB3aXRoIHRoZSBpc3N1ZSB3ZSB3ZXJlCgkgIHRyeWluZyB0byBmaXggKGFuZCBpdCB3YXMgZml4ZWQgZGlmZmVyZW50bHkgaW4gdGhlIGVuZCkuCgoyMDExLTAxLTE4IDIyOjUxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICBkb2NzOiBmaXggc3BlbGxpbmcgb2YgJ3RocmVzaG9sZCcgaW4gYXBwIGRldiBtYW51YWwKCjIwMTEtMDEtMTggMTA6MTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS40IHByZS1yZWxlYXNlCgoyMDExLTAxLTE4IDA5OjA0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiB0cnkgaGFyZGVyIHRvIG1ha2UgZy1pci1zY2FubmVyIHVzZSB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIEFwcGx5IGZpeCBmcm9tIGxpYmdzdGJhc2UgdG8gYWxsIGNvcmUgbGlicyBub3cgdGhhdCB3ZSBrbm93IHRoYXQgaXQKCSAgd29ya3MuIFNob3VsZCBmaXggcHJvYmxlbXMgd2l0aCBnLWlyLXNjYW5uZXIgdXNpbmcgdGhlIHdyb25nCgkgIChpZS4gc3lzdGVtKSBsaWJnc3RyZWFtZXIsIGxlYWRpbmcgdG8gbGlua2luZyBlcnJvcnMgc3VjaCBhcwoJICB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0Jy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xNCAwMDoyMDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBmaXggZ2FyYmxlZCBVVEYtOCBjaGFyYWN0ZXJzIHdoZW4gZ2VuZXJhdGluZyBhcHAgZGV2IG1hbnVhbCBwcy9wZGYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQ0OAoKMjAxMS0wMS0xMyAyMDoxMjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IGFub3RoZXIgYXR0ZW1wdCB0byBtYWtlIGctaSBmaW5kIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgVHVybnMgb3V0IGctaSBwdXRzIHRoZSBhZGRpdGlvbmFsIC1MIHdlIHNwZWNpZnkgYXQgdGhlIGVuZCwgaGVscGZ1bGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTEyIDE1OjQ2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZXF1aXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiA+PSAwLjkuMTIKCSAgRWFybGllciB2ZXJzaW9ucyBkb24ndCBob25vdXIgdGhlIC1MLy0tbGlicmFyeS1wYXRoIG9wdGlvbiwKCSAgd2hpY2ggd2UgbmVlZC4gU2VlIGNvbW1pdCA0ZDBjY2RhZCBpbiBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2l0LgoKMjAxMS0wMS0xMiAxMDoxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiB1cGRhdGUgZy1pIGluY2x1ZGUgcGF0aHMgYXMgd2VsbCBmb3IgaGVhZGVyIGNoYW5nZXMKCSAgSG9wZWZ1bGx5IG1ha2VzIEx1Y2lkIGFuZCBNYXZlcmljayBidWlsZCBib3RzIGhhcHB5IGFnYWluCgoyMDExLTAxLTExIDE4OjM5OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuMyBwcmUtcmVsZWFzZQoKMjAxMS0wMS0xMSAxODozODozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9nbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3N2LnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wMS0xMSAxOToyNjo0MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogRml4IGhlYWRlcnMgdG8gdXNlIDwgPiBpbiAjaW5jbHVkZSBzdGF0ZW1lbnRzCgkgIFRoZSBiZWhhdmlvciBvZiAiICIgaW4gaW5jbHVkZSBzdGF0ZW1lbnRzIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgLQoJICBzZWUgdGhlIEMgc3RhbmRhcmQsIHNlY3Rpb24gNi4xMC4yIG9yCgkgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjE1OTMKCjIwMTEtMDEtMTEgMTk6MTQ6MjggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ3N0bmV0OiBGaXggLS1jLWluY2x1ZGUgZm9yIGdpciBnZW5lcmF0aW9uCgkgIFByZXZpb3VzbHkgaXQgd2FzIC0gcHJvYmFibHkgZHVlIHRvIGNvcHkvcGFzdGUgZXJyb3IgLSBsb29raW5nIGZvcgoJICBnc3RiYXNlIGhlYWRlcnMuCgkgIEl0J3MgY2hhbmdlZCBub3cgdG8gb25seSBpbmNsdWRlIHRoZSBvbmUgcHVibGljIGhlYWRlciBmb3IgZ3N0bmV0LmgKCjIwMTEtMDEtMTEgMTM6NDc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IG1ha2UgZy1pci1zY2FubmVyIHRyeSBoYXJkZXIgdG8gZmluZCB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIEl0J3Mgbm90IHF1aXRlIGNsZWFyIHRvIG1lIHdoeSBnLWlyLXNjYW5uZXIgZG9lc24ndCBnZXQgdGhpcyBpbmZvIGZyb20KCSAgdGhlIHBrZy1jb25maWcgZmlsZSwgbm9yIHdoeSBsaWJ0b29sIGRvZXNuJ3QgZ2V0IGl0IGZyb20gdGhlIC5sYS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xMSAxMzowNToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBwa2djb25maWc6IGFsc28gYWRkIGxpYmRpciB0byAtdW5pbnN0YWxsZWQgLnBjIGZpbGVzCgkgIFRoaXMgd2F5IHdlIGNhbiBmaW5kIHRoZSBwYXRocyB0byBwYXNzIGUuZy4gZy1pci1zY2FubmVyIGZvcgoJICB1bmluc3RhbGxlZCBzZXR1cHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzkwMzkKCjIwMTEtMDEtMTEgMTU6NDk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZTU3MmM4NyB0byBmOTRkNzM5CgoyMDExLTAxLTExIDE1OjEwOjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXhlIHRoZSBwcm9wZXJ0eSBsaW5rIGFuZCB0aGUgc2ljZSBkb2NzCgoyMDExLTAxLTExIDEyOjQ2OjMxICswMDAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IGZpeCBjb21waWxlciB3YXJuaW5nIHdpdGggTWluZ1cKCSAgZ3N0cG9sbC5jOiBJbiBmdW5jdGlvbiAnZ3N0X3BvbGxfZ2V0X3JlYWRfZ3BvbGxmZCc6CgkgIGdzdHBvbGwuYzo2OTI6MTA6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODkwMAoKMjAxMS0wMS0xMCAxNDozNzo0MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0OiBvdXRwdXRzZWxlY3RvcjogQWRkIGFub3RoZXIgbmVnb3RpYXRpb24gdGVzdAoJICBBZGRzIGFuIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHRoZSBvdXRwdXQtc2VsZWN0b3Igd29ya3MKCSAgd2hlbiBuZWdvdGlhdGluZyBiZWZvcmUgc3JjcGFkcyBhcmUgcmVxdWVzdGVkCgoyMDExLTAxLTEwIDE0OjE5OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEltcHJvdmUgZ2V0IGFuZCBzZXQgY2FwcyBmdW5jdGlvbnMKCSAgSW1wcm92ZSBzaW5rIHBhZCBnZXRjYXBzIGFuZCBzZXRjYXBzIGJ5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlCgkgIG5vIHNyYyBwYWRzIGV4aXN0IHlldAoKMjAxMS0wMS0xMCAxNjozNToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGNjYmFhODUgdG8gZTU3MmM4NwoKMjAxMS0wMS0xMCAxNDo1Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2NDQ1YWQgdG8gY2NiYWE4NQoKMjAxMS0wMS0xMCAwOTo1OToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogc2VsZWN0b3I6IHVucmVmIHBlZXIgcGFkCgkgIERvIG5vdCBmb3JnZXQgdG8gdW5yZWYgcGVlcidzIHBhZCBvbiBvdXRwdXQtc2VsZWN0b3IgbmVnb3RpYXRpb24KCSAgdGVzdHMKCjIwMTEtMDEtMTAgMTM6MTg6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWFrZSBzdXJlIHdlIHdhaXQgYW5kIHJlbGVhc2UgdGhlIGxpdmUgbG9jawoJICBNYWtlIHN1cmUgd2UgcmVsZWFzZSB0aGUgbGl2ZSBsb2NrIGFuZCB3YWl0IGluIGFsbCBjYXNlcyB3aGVuIHdlIG5lZWQgdG8gd2FpdAoJICBmb3IgdGhlIHBsYXlpbmcgb3IgZmx1c2hpbmcgc3RhdGUgY2hhbmdlLgoJICBGaXhlcyAjNjM1Nzg1CgoyMDExLTAxLTA4IDE0OjUyOjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBEb24ndCByZXBsYWNlIHZhbGlkIGV4aXN0aW5nIHBsdWdpbnMgYnkgYmxhY2tsaXN0ZWQgb25lcwoJICBPbmx5IHJlcGxhY2UgZXhpc3RpbmcgcGx1Z2lucyBieSBibGFja2xpc3RlZCBvbmVzIGlmIHRoZXkgY29ycmVzcG9uZAoJICB0byB0aGUgZXhhY3Qgc2FtZSBwbHVnaW4uIElmIHRoZXkncmUgbm90IHRoZSBzYW1lLCBrZWVwIHRoZSBleGlzdGluZwoJICB2YWxpZCBvbmUuCgkgIEZpeGVzICM2Mzg5NDEKCjIwMTEtMDEtMDggMDI6MTk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGNvbmZpZ3VyZSwgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgYSBmZXcgYmFzaGlzbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTYxCgoyMDExLTAxLTA3IDEyOjEzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuMiBwcmUtcmVsZWFzZQoKMjAxMS0wMS0wNyAwMjoxODozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIGluZGV4ZXJzOiBmaXggdHdvIHNtYWxsIGxlYWtzCgkgIGVsZW1lbnQgZmFjdG9yeSBwbHVnaW5fbmFtZXMgYXJlIGludGVybmVkIHN0cmluZ3MgdGhlc2UgZGF5cy4KCjIwMTEtMDEtMDcgMDA6NTM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBuZXZlciBkaXNhYmxlIGdfYXNzZXJ0KCkgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cwoJICBUaGUgdW5pdCB0ZXN0cyBhcmUgcmlkZGxlZCB3aXRoIGdfYXNzZXJ0KCkgYW5kIGZyaWVuZHMsIG1ha2Ugc3VyZSB3ZQoJICBkb24ndCBkaXNhYmxlIGFzc2VydCBhbmQgY2FzdCBjaGVja3MgZm9yIHRoZSB1bml0IHRlc3RzIGV2ZW4gaWYKCSAgdGhpcyBoYXMgYmVlbiBzcGVjaWZpZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBjb2RlIGJhc2UsIGUuZy4gdmlhCgkgIC0tZGlzYWJsZS1nbGliLWFzc2VydHMuCgoyMDExLTAxLTA2IDE5OjQwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaWdub3JlIG9sZCBsaWJnc3R2YWx2ZS5zbyBhbmQgbGliZ3N0c2VsZWN0b3Iuc28gcGx1Z2lucyB0byBtaW5pbWl6ZSB1cGdyYWRlIHBhaW4KCSAgSWdub3JlIHBsdWdpbnMgd2hpY2ggaGF2ZSBiZWVuIG1vdmVkIGludG8gY29yZWVsZW1lbnRzLCBzbyBpdCdzCgkgIHN0aWxsIHBvc3NpYmxlIHRvIGp1c3QgdXBncmFkZSBHU3RyZWFtZXIgY29yZSB3aXRob3V0IGhhdmluZyB0bwoJICB1cGdyYWRlIHRoZSB3aG9sZSBzdGFjay4KCjIwMTEtMDEtMDYgMTk6MjE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIFJldmVydCAicGFkdGVtcGxhdGU6IGFsbG93IGRpc2FibGluYmcgdGhlIHRlbXBsYXRlIG5hbWUgY29uZm9ybWFuY2UgY2hlY2tzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGY5MDM5YzIyMDQwZTFhMzhhMzY5MWJjNGQyOTlhZjQyN2M5NjMyNTUuCgkgIFdlIHVzZSAtREdfRElTQUJMRV9BU1NFUlRTIGZvciByZWxlYXNlcyBhbmQgcHJlLXJlbGVhc2VzLCBidXQKCSAgZG9uJ3Qgd2FudCB0byBkaXNhYmxlIHBhZCBuYW1lIGNoZWNraW5nIGZvciByZWxlYXNlcyBpbiBnZW5lcmFsLAoJICBJIHRoaW5rLiBOZWVkIGEgYmV0dGVyIHNvbHV0aW9uIGhlcmUuIEZpeGVzIHBhZCB1bml0IHRlc3QgaW4KCSAgcHJlLXJlbGVhc2UvcmVsZWFzZSBtb2RlLgoKMjAxMS0wMS0wNCAxMjo0Mjo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJICBvdXRwdXQtc2VsZWN0b3I6IEFkZCBwYWQtbmVnb3RpYXRpb24tbW9kZSBwcm9wZXJ0eQoJICBBZGRzIGdldGNhcHMvc2V0Y2FwcyB0byBvdXRwdXQtc2VsZWN0b3IgYW5kIGFkZHMgYSBwcm9wZXJ0eQoJICB0byBzZWxlY3Qgd2hpY2ggdHlwZSBvZiBuZWdvdGlhdGlvbiBzaG91bGQgYmUgZG9uZS4KCSAgVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmU6CgkgICogbm9uZTogICBubyBuZWdvdGlhdGlvbiAoY3VycmVudCBiZWhhdmlvciksIGdldGNhcHMgcmV0dXJuIEFOWSBhbmQKCSAgc2V0Y2FwcyBhcmVuJ3Qgc2V0IG9uIGFueSBvZiB0aGUgcGVlcnMKCSAgKiBhbGw6ICAgIHVzZSBhbGwgcGFkcyAoZGVmYXVsdCksIGdldGNhcHMgcmV0dXJucyB0aGUgaW50ZXJzZWN0aW9uIG9mCgkgIHBlZXIgcGFkcyBhbmQgc2V0Y2FwcyBpcyBzZXQgb24gYWxsIHBlZXJzCgkgICogYWN0aXZlOiBnZXRjYXBzIGFuZCBzZXRjYXBzIGFyZSBwcm94aWVkIHRvIHRoZSBhY3RpdmUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDYgMTg6MTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGRvY3M6IG1lbnRpb24gZXh0cmEgaW5wdXQtc2VsZWN0b3IgcGFkIHByb3BlcnRpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNiAxNzo0NzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lbC5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDktMjMgMTI6NDk6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWUgZm9yIGVhY2ggbG9nIGZ1bmN0aW9uIGNhbGwgb24gTVNWQwoJICBBdm9pZCB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZSB0byBnZXQgdGhlIGZpbGUgYmFzZW5hbWUgb24gTVNWQyB0byBhdm9pZAoJICB1bm5lY2Vzc2FyeSBvdmVyaGVhZCB3aGVuIGRvaW5nIEdTVF9ERUJVRz1mb286NSBvciBzbyAoc2luY2UgaXQgd291bGQgYmUKCSAgZG9uZSBiZWZvcmUgdGhlIGNhdGVnb3J5IGxvZyBsZXZlbCBmaWx0ZXJpbmcpLgoKMjAxMS0wMS0wNiAxNzoyOTo0NiArMDAwMCAgY2hyaXN0aWFuIHNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcyBhbmQgZW5hYmxlIEdJUgoKMjAxMS0wMS0wNSAxMjo1OTo0OCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogRml4IGNyZWF0aW9uIG9mIGRlZmF1bHQgbmFtZQoJICBDaGFuZ2UgdGhlIGZpeGVkIGFsbG9jYXRpb24gKCEpIHRvIGdfc3RyZHVwX3ByaW50ZigpLgoKMjAxMC0xMi0yMCAxMzozMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdEVsZW1lbnQ6IEFkZCBhIG1vcmUgZmxleGlibGUgd2F5IHRvIGdldCByZXF1ZXN0IHBhZHMuCgkgIFRoZSBuZXcgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgdm1ldGhvZCBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIGNhcHMgZmllbGQsCgkgIHdoaWNoIGFsbG93cyBlbGVtZW50cyB0byB0YWtlIGJldHRlciBkZWNpc2lvbiBwcm9jZXNzLgoJICBBbHNvLCBhZGQgYSBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCgpIGZ1bmN0aW9uIHRvIGFsbG93IGRldmVsb3BlcnMgdG8gYmUKCSAgYWJsZSB0byBzcGVjaWZ5IHdoaWNoIHBhZCB0ZW1wbGF0ZSB0aGV5IHdhbnQgYSBwYWQgb2YuCgkgIENvbnZlcnQgZ3N0dXRpbHMgdG8gdXNlIHRoYXQgbmV3IG1ldGhvZCBpbnN0ZWFkIG9mIHRoZSBvbGQgb25lIHdoZW4gbW9yZQoJICBlZmZpY2llbnQuCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBiZWluZyBhYmxlIHRvIHJlcXVlc3QgcGFkcyBpbiBhIG1vcmUgZmxleGlibGUgd2F5LAoJICBlc3BlY2lhbGx5IHdoZW4gdGhlIGVsZW1lbnQgY2FuIHByb3ZpZGUgcGFkcyB3aG9zZSBjYXBzIGRlcGVuZCBvbgoJICBydW50aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHRoZXJlZm9yZSBjYW4ndCBwcm92aWRlIHByZS1yZWdpc3RlcmVkCgkgIHBhZCB0ZW1wbGF0ZXMuCgkgIEFQSTogR3N0RWxlbWVudDo6cmVxdWVzdF9uZXdfcGFkX2Z1bGwKCSAgQVBJOiBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MzAwCgoyMDExLTAxLTA1IDE1OjUzOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlICJzZWxlY3QtYWxsIiBwcm9wZXJ0eQoJICBzZWxlY3QtYWxsIG1vZGUgaXMgYSBiaXQgYnJva2VuIChlLmcuIG5ld3NlZ21lbnQgZXZlbnQKCSAgaGFuZGxpbmcpLCBzbyByZW1vdmUgdGhhdCBmb3Igbm93LiBUaGUgZnVubmVsIGVsZW1lbnQKCSAgaW4gZmFyc2lnaHQgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM5MDQyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDUgMTU6MzY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlbW92ZSBzYWZldHkgY2hlY2sgZm9yIEdMaWIgPCAyLjgKCSAgRG9uJ3Qgd29ycnkgYWJvdXQgYWNjaWRlbnRhbGx5IHVzaW5nIEdMaWIgPCAyLjggYXQgcnVudGltZSBhbnltb3JlLgoKMjAxMS0wMS0wNSAxMToyNjoxMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IERpc2FibGUgdXNhZ2Ugb2YgR0RhdGVUaW1lIG9uIE1hY09TWAoJICBHTGliJ3MgR0RhdGVUaW1lIGRvZXNuJ3QgaGFuZGxlIHByb3Blcmx5IHRoZSBnbXQgb2Zmc2V0LiBUaGVyZWZvcmUKCSAgdXNlIG91ciBvd24gaW50ZXJuYWwgdmVyc2lvbiBpbnN0ZWFkIG9uIE1hY09TWC4KCSAgU2VlIGJ1ZyAjNjM4NjY2CgoyMDExLTAxLTA1IDEwOjU2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1vcmUgdXBkYXRlcyBmb3IgdGhlIHByb2dyZXNzIG1lc3NhZ2VzCgoyMDExLTAxLTA0IDE4OjM2OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXNpZ25hbHMueG1sOgoJICBwd2c6IEZpeCBsaW5rIHRvIEdPYmplY3QgZG9jdW1lbnRhdGlvbgoJICBCZXR0ZXIgaGF2ZSBnbm9tZS5vcmcgdGhhbiB2aWFncmEgOikKCjIwMTEtMDEtMDMgMjA6MzI6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEFsd2F5cyBtYXJrIHJlY2VwdGlvbiBhcyBjb21wbGV0ZSBhZnRlciBFWElUCgkgIEF2b2lkcyB3YWl0aW5nIGZvcmV2ZXIgb24gZ3N0X3BvbGxfd2FpdCB3aGVuIHVzaW5nIHRoZSBzZWxlY3QKCSAgYmFja2VuZC4KCSAgRml4ZXMgIzYzNzA1NwoKMjAxMS0wMS0wNCAwMDo0ODoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGluZm86IGRvbid0IHVzZSBwcmludGYgZXh0ZW5zaW9ucyBpZiBHTGliIGlzbid0IHVzaW5nIHRoZSBzeXN0ZW0gcHJpbnRmCgkgIE1pZ2h0IGhlbHAgd2l0aCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4NTk5CgoyMDExLTAxLTAzIDIwOjE5OjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEZpeCBmb3IgKHApc2VsZWN0IGJhY2tlbmQKCSAgV2UgbmVlZCB0byByZXNldCB0aGUgcmV2ZW50cyBmaWVsZCBvZiBlYWNoIHBvbGxmZCB3aGVuIHJlYWRpbmcgdGhlIHJlc3VsdHMKCSAgZnJvbSBzZWxlY3QgZWxzZSB3ZSdsbCBlbmQgdXAgd2l0aCBzdHJheSBpbmZvIGZyb20gcHJldmlvdXMgY2FsbHMgdG8KCSAgc2VsZWN0LgoKMjAxMS0wMS0wMyAwMTowNjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG1ha2UgbmV3IGdzdF92YWx1ZV9saXN0X21lcmdlKCkgd29yayBwcm9wZXJseQoJICBGaXggZnJlZWluZyBvZiBwYXJ0aWFsbHktaW5pdGVkIGxpc3QgdmFsdWUgd2hlbiBib3RoIHZhbHVlcwoJICBwYXNzZWQgYXJlIGVxdWFsIGFuZCB3ZSB3YW50IHRvIHJldHVybiBhIHNpbmdsZSBub24tbGlzdAoJICB2YWx1ZSBhcyByZXN1bHQuIEZpeGVzIHVuaXQgdGVzdC4gQWxzbyBmaXggdXAgZG9jcyBhIGJpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzc3NgoKMjAxMC0xMi0yMSAyMzowMzoxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnczogZG9uJ3QgcHJvZHVjZSBkdXBsaWNhdGVkIGVudHJpZXMgd2hlbiBtZXJnaW5nIHNhbWUgdmFsdWUgdHdpY2UKCSAgQWRkIGEgdmFyaWFudCBvZiBnc3RfdmFsdWVfbGlzdF9jb25jYXQoKSB0aGF0IHNraXBzIGR1cGxpY2F0ZXMgYW5kIHVzZSB0aGF0IHdoZW4KCSAgbWVyZ2luZyB0YWdsaXN0cy4KCSAgQVBJOiBnc3RfdmFsdWVfbGlzdF9tZXJnZSgpCgoyMDExLTAxLTAyIDE2OjU4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmMsIGJhc2VzaW5rOiBhZGQgc29tZSBGSVhNRXMgZm9yIHRoZSB0eXBlIG9mIHRoZSBibG9ja3NpemUgcHJvcGVydHkKCjIwMTAtMTItMzEgMTI6MDg6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IG1ha2UgcGFkJ3MgZ2V0X3R5cGUgZnVuY3Rpb24gdGhyZWFkLXNhZmUKCjIwMTAtMTItMzEgMTE6Mzc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3IuYzoKCSAgY29yZWVsZW1lbnRzOiByZW1vdmUgdW51c2VkIGZpbGVzCgoyMDEwLTEyLTMxIDEyOjI3OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0ZWQgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMgZm9yIHRoZSBhY3RpdmUtcGFkIHdpdGggYSByZWN1cnNpdmUgbXV0ZXgKCSAgVGhpcyB3b3JrcyBhcm91bmQgYSB0aHJlYWQgc2FmZXR5IHByb2JsZW0gaW4gR0xpYiA8IDIuMjYuMCBhbmQgc2hvdWxkCgkgIGJlIHJlbW92ZWQgd2hlbiB3ZSBkZXBlbmQgb24gMi4yNi4wLgoJICBGaXhlcyBidWcgIzYwNzUxMy4KCjIwMTAtMTItMzEgMTY6NTI6NTQgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMTY6NTA6NTcgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZ3N0ZmRzaW5rOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMTY6NTA6MTcgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMCAxODowMjowNiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogdXNlIGdfYXNjaWlfc3RyY2FzZWNtcCgpCgoyMDEwLTEyLTMxIDAxOjA5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgb3V0cHV0LXNlbGVjdG9yIHRlc3Qgd2hpY2ggbmVlZHMgZWxlbWVudHMgZnJvbSAtYmFzZQoJICBNb3ZlIGl0IHRvIC1iYXNlIGluc3RlYWQuCgoyMDEwLTEyLTMxIDAwOjU5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVja3M6IGVuYWJsZSBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHVuaXQgdGVzdHMgYWZ0ZXIgbW92ZQoKMjAxMC0xMi0zMSAwMDo0ODo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmcKCjIwMTAtMDMtMzAgMTU6MjA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvLmdpdGlnbm9yZToKCSogbTQvTWFrZWZpbGUuYW06CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IG1ha2UgYXV0b3Rvb2xzIHB1dCBpdHMgbTQgZmlsZXMgaW50byBtNC8gaW5zdGVhZCBvZiBjb21tb24vbTQvCgkgIFRoaXMgaXMgaG93IHdlIGRvIGl0IGluIHRoZSBvdGhlciBtb2R1bGVzLCBhbmQgZ2V0cyByaWQgb2YgdGhlIGFubm95aW5nCgkgIGRpcnR5IHN0YXR1cyBmb3IgY29tbW9uIHdoZW4gZG9pbmcgZ2l0IHN0YXR1cyAoYXQgbGVhc3Qgb25jZSB5b3UgY2xlYW4KCSAgb3V0IHRoZSBvbGQgZmlsZXMgZnJvbSB0aGVyZSkuCgoyMDEwLTAzLTMwIDEyOjMzOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBidWlsZCBleGFtcGxlcyBzdWJkaXJlY3RvcmllcyBpbiBwYXJhbGxlbCBpZiByZXF1ZXN0ZWQKCjIwMTAtMDMtMjggMjA6NTU6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlZmFjdG9yIGNhcHMgc3VnZ2VzdGlvbiBvbiBwYWRfYWxsb2MKCSAgUmVmYWN0b3IgdGhlIGhhbmRsaW5nIG9mIHNpbmsgc3VnZ2VzdGlvbiBjYXBzIHZhcmlhYmxlCgkgIHNvIHRoYXQgaXQgYWx3YXlzIGhhcyBhIHJlZiB0byB0aGUgY2FwcyBpdCBwb2ludHMgdG8uCgkgIE1ha2VzIHRoZSBjb2RlIGNsZWFyZXIuCgoyMDEwLTAzLTI5IDE2OjM0OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhZGQgYSBjb21tZW50IGV4cGxhaW5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcgZnVjbnRpb24gcHJvdG9zIGhlcmUuCgoyMDEwLTAzLTI5IDE2OjEzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhbHdheXMgZGVmaW5lIGR1bW15IGRlYnVnIGNhdGVnb3J5IGFzIGEgZnVuY3Rpb24gcHJvdG90eXBlCgkgIEl0IGRvZXMgbm90IHNlZW0gdG8gbWFrZSBzZW5zZSB0byBkZWZpbmUgdGhpcyBhcyBhIGZ1bmN0aW9uIG9ubHkgaWYgd2UgaGF2ZQoJICB2YXJhcmdzIG1hY3Jvcy4KCjIwMTAtMDMtMjggMTU6MTA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBmaXggcmVkZWNsYXJhdGlvbiBlcm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCSAgR2l2ZSBkdW1teSBzeW1ib2xzIGEgdW5pcWUgbmFtZS4KCjIwMTAtMDMtMjggMTQ6NDk6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3ZlIHNvbWUgcHJvdG90eXBlcyBvdXQgb2YgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTW92ZSB0aGUgcHJvdG90eXBlcyB1cCB0b2dldGhlci4gV2Ugb25seSBkZWZpbmUgdGhlIG1hY3JvcyBkaWZmZXJlbnRseS4KCSAgRml4ZXMgYnVnICM2MTQxNjcgbW9zdGx5LgoKMjAxMC0wMy0yOSAxNjowNTo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogcmVhZGQgdGhlIHVzZSBvZiBHc3REZWJ1Z0Z1bmNQdHIgdHlwZWRlZiBhbmQgdGVsbCB3aHkKCSAgVGhpcyByZXZlcnRzIHRoZSByZWxhdGVkIGNoYW5nZXMgZnJvbSAzZjQ5NTRlNDJkMDQ0MGE3YTU5OGE5MDgzMjVjNDVlYTlkYjA3NmU0CgkgIGFuZCBmZmIwYTRlMTkwNWE4NzMxOTFmOGM4MDIzNDYyNjFlOGM0NDM1MDY1LgoKMjAxMC0wMy0yOSAxMDoyMjo0MyArMDEwMCAgQWxhbiBLbm93bGVzIDxhbGFuQGFrYmtob21lLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBuZXQ6IGZpeCB0eXBvIGluIG5ldCBjbGllbnQgY2xvY2sgc3RydWN0dXJlCgkgIEl0J3Mgc29ja2FkZHJfaW4sIG5vdCBzb2NrYWRkcl9pZC4KCjIwMTAtMDMtMjYgMTc6MTI6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBhZGQgY3J1ZnQgYWxlcnQgZm9yIGNvbW1vbi9zaGF2ZSoKCjIwMTAtMDMtMjggMjE6MDI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJ1aWxkIGF0IGxlYXN0IHVudGlsIHRoZSBjb3JyZWN0IGZpeCBpcyBmb3VuZAoJICBTZWUgYnVnICM2MTQxNjcuCgoyMDEwLTAzLTI4IDE5OjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBNYWtlIHN0cnVjdHVyZSBhYmJyZXZpYXRpb25zIGFycmF5IG9uZS10aW1lIGluaXRpYWxpemF0aW9uIHRocmVhZHNhZmUKCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgRklYTUUgMC4xMSBmb3IgdXNpbmcgR1NsaWNlIGZvciBhbGxvY2F0aW9uCgoyMDEwLTAzLTI4IDE4OjA1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgZ3N0OiBVc2UgR1NsaWNlIGluc3RlYWQgb2Ygbm9ybWFsIGdfbWFsbG9jIGluIG1vcmUgcGxhY2VzCgoyMDEwLTAzLTI4IDEzOjE0OjA2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogbW9yZSBzb21lIHByb3RvdHlwZXMgb3V0IGlmICNpZm5kZWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIFRoZSBidWlsZCB3YXMgZmFpbGluZyBiZWNhc3VlIG9mIGEgbmV3IHdhcm5pbmcuIFRoZXJlIGFyZSBzdGlsbCBmYWlsdXJlcwoJICAodHJhY2tlZCB2aWEgYnVnICM2MTQxNjcpLgoKMjAxMC0wMy0yNSAyMDowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXdseS1hZGRlZCBzdHJpbmdzCgoyMDEwLTAzLTI1IDE5OjU2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGZpeCBpbnRlcm1pdHRlbnQgbWFrZSBkaXN0Y2hlY2sgZmFpbHVyZXMKCSAgVXNlIC5OT1RQQVJBTExFTCB3aGVuIGJ1aWxkaW5nIGRvY3MuIFRoaXMgYXZvaWRzIGludGVybWl0dGVudAoJICBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcyBsaWtlICdjcDogY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUKCSAgYGJ1aWxkL2ltYWdlLmVudGl0aWVzJzogRmlsZSBleGlzdHMnIHdoZW4gdXNpbmcgLWpOLgoJICBGaXhlcyAjNTkwNzE4LgoKMjAxMC0wMy0yNSAxODo1Nzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBGSVhNRSAwLjExIHRvIHJlbW92ZSBHc3RFbGVtZW50RGV0YWlscyBmcm9tIHRoZSBwdWJsaWMgQVBJCgkgIEl0J3Mgbm90IG5lY2Vzc2FyeSBhbnltb3JlIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkgYW5kIHRoaXMgYWxsb3dzCgkgIGVhc2llciBleHRlbnNpb24gb2YgdGhlIGVsZW1lbnQgZGV0YWlscyBieSBuZXcgZmllbGRzLgoKMjAxMC0wMy0yNSAxODo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaGFuZGxlIHdyaXRlIGVycm9ycwoJICBIYW5kbGUgd3JpdGUgZXJyb3JzIHRvIHRoZSB0ZW1wb3JhcnkgZG93bmxvYWQgZmlsZSBhbmQgcG9zdCBlcnJvcnMgd2hlbgoJICBzb21ldGhpbmcgd2VudCB3cm9uZy4KCjIwMTAtMDMtMjUgMTg6MTM6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uCgkgIEFkZCBhbiBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uIHRoYXQgaXMgYSBsaXR0bGUgbW9yZSBlZmZpY2llbnQgdGhhbiB0aGUgZ2VuZXJpYwoJICBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIuCgoyMDEwLTAzLTI1IDE4OjEyOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoJICBNZW50aW9uIHRoYXQgYSBEVVJBVElPTiBtZXNzYWdlIGRvZXMgbm90IG1lYW4gdGhhdCBvbmUgY2FuIHNhZmVseSBxdWVyeSB0aGUKCSAgZHVyYXRpb24gb24gYSBiaW4sIHRoYXQgb25seSB3b3JrcyB3aGVuIHRoZSBiaW4gaXMgcHJlcm9sbGVkLgoKMjAxMC0wMy0yNSAxODowNToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIGZpeGVkIEZJWE1FCgoyMDEwLTAzLTI1IDE3OjM2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50IGluIEJVRkZFUklORyBxdWVyeQoKMjAxMC0wMy0yNSAxNzoyMTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaW1wcm92ZSBidWZmZXIgbGV2ZWwgbWVhc3VyZW1lbnQgaW4gZG93bmxvYWQgbW9kZQoJICBLZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBsZXZlbCBpbiB0aGUgY3VycmVudCByYW5nZSBpbiBkb3dubG9hZCBtb2RlIHNvCgkgIHRoYXQgd2UgcG9zdCB0aGUgY29ycmVjdCBidWZmZXJpbmcgbWVzc2FnZXMuCgoyMDEwLTAzLTI1IDE1OjU0OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZG9uJ3QgdXNlIGZhbmN5IHNoZWxsIGZlYXR1cmVzIHdoZW4gaW52b2tpbmcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgSXQncyBQT1NJWCwgYnV0IHRjc2ggZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgaXQuCgoyMDEwLTAzLTI1IDEzOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZml4IFBLR19DT05GSUdfUEFUSCB1c2VkIHdoZW4gY2FsbGluZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBPdXIgb3duIHBrZ2NvbmZpZyBkaXJlY3Rvcnkgc2hvdWxkIGNvbWUgZmlyc3QsIHNvIHRoYXQgcGtnLWNvbmZpZyB1c2VzCgkgIHRoZSBpbi10cmVlIGxpYmdzdHJlYW1lciBhbmQgbm90IHNvbWUgZXh0ZXJuYWwgb25lIHdoZW4gLS1wa2c9Z3N0cmVhbWVyLTAuMTAKCSAgaXMgcGFzc2VkIHRvIGctaXItc2Nhbm5lci4KCSAgU2VlICM2MDM3MTAuCgoyMDEwLTAzLTI1IDEwOjI3OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEdzdEFkYXB0ZXI6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IG9mIGZsdXNoIGZvciBpbnRlcm5hbCB1c2FnZQoJICBUcmltcyBvZmYgMTAtMjAlIGNwdSB0aW1lIHdoZW4gdXNpbmcgZ3N0X2FkYXB0ZXJfdGFrZVtfYnVmZmVyXQoKMjAxMC0wMy0xOSAxNToxMDowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGQgbmV3IF9VU0VSX1JBVElORyB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgZm9yIHVzZXIgZmF2b3JpdGUgbWVkaWEgcmF0aW5nLgoJICBVc2VyIHJhdGluZyBpbmZvcm1zIGhvdyBtdWNoIChmcm9tIDAgdG8gMTAwKSBhIHVzZXIKCSAgJ2xpa2VzJyBhIG1lZGlhLgoJICBIYXZpbmcgYW4gcGVyY2VudCB1aW50IHJhbmdlIGZvciB0aGlzIGlzIGVhc3kgdG8gbWFwIGludG8gb3RoZXIgc2NhbGVzLAoJICBsaWtlIHNvbWUgcGxheWVycyB0aGF0IGFsbG93IHVzZXJzIHRvIGF0dHJpYnV0ZSAnc3RhcnMnIHRvIGl0cwoJICBtZWRpYS4KCSAgQVBJOiBHU1RfVEFHX1VTRVJfUkFUSU5HCgkgIEZpeGVzICM1MjA2OTcKCjIwMTAtMDMtMjQgMTk6MDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBtb3JlIGluZm8gaW4gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICBBZGQgdGhlIGVzdGltYXRlZCBkb3dubG9hZCB0aW1lIGFuZCBlc3RpbWF0ZWQgdGltZSBsZWZ0IHRvIHRoZSBidWZmZXJpbmcgcXVlcnkKCSAgcmVzdWx0cyBhbG9uZyB3aXRoIHRoZSBlc3RpbWF0ZWQgZG93bmxvYWQgYW5kIHBsYXliYWNrIHNwZWVkLgoKMjAxMC0wMy0yNCAxODoxODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IGZsdXNoaW5nIGluIGRvd25sb2FkIGJ1ZmZlcmluZwoJICBNYWludGFpbiBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGNvbnRyb2wgc3JjIGFuZCBzaW5rIGZsb3dyZXR1cm4gdmFsdWVzIHNvIHRoYXQKCSAgd2UgY2FuIHVubG9jayB0aGUgc3JjIHBhcnQgd2l0aG91dCBzaHV0dGluZyBkb3duIHRoZSBzaW5rIHBhcnQuCgkgIEFkZCBmbHVzaGluZyBmb3IgdXBzdHJlYW0gcHVsbCBiYXNlZCBlbGVtZW50cyB0aGF0IHVuYmxvY2tzIG91ciBnZXRyYW5nZQoJICBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHNlZWtpbmcgd2hlbiBibG9ja2luZyBmb3IgbW9yZSBkYXRhLgoJICBBZGQgc29tZSBhcmJpdHJhcnkgdGhyZXNob2xkIGJlZm9yZSBhdHRlbXB0aW5nIGEgc2Vlay4gQWRkIGEgRklYTUUgZm9yIHRoaXMKCSAgYmVjYXVzZSB3ZSBuZWVkIHRvIGZpbmQgYSBzZW5zaWJsZSB0aHJlc2hvbGQgYmFzZWQgb24gdGhlIGlucHV0IHJhdGUuCgoyMDEwLTAzLTI0IDE4OjUwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1NWNkNTE0IHRvIGMxZDA3ZGQKCjIwMTAtMDMtMjQgMTc6MzI6NTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVudXNlZCBjb2RlCgkgIE9QVF9DRkxBR1Mgd2FzIG5ldmVyIEFDX1NVQlNUKCknZWQgc28gaXQgd2Fzbid0IHVzZWQuIEFuZCB0aGUgbGFzdCB0aW1lCgkgIGl0IHdhcyB0b3VjaGVkIHdhcyBpbiAyMDA1LgoKMjAxMC0wMy0yNCAxNTo0NzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgVGhlIGNoYW5nZSBmcm9tIEdTVF9BTExfQ0ZMQUdTIHRvIEdTVF9PUFRJT05fQ0ZMQUdTIGRyb3BwZWQgdGhlIGluY2x1ZGVzLAoJICBwdXR0aW5nIHRoZW0gYmFjayBmaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDMtMjQgMTU6MTU6MjMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IHRlc3RzIGFmdGVyIHNldF9lbGVtZW50X2RldGFpbHMoKSBkZXByZWNhdGlvbgoKMjAxMC0wMy0yNCAxMzozMzo1OCArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBGaXggYW5kIHJlc3RydWN0dXJlIGxvZ2ljCgoyMDEwLTAzLTE5IDIyOjM2OjA3ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzKCkKCSAgVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGluc3RlYWQuIElmIHlvdSB3YW50IHRvCgkgIGNvbnZlcnQgYXV0b21hdGljYWxseSwgaGVyZSdzIGEgc2NyaXB0OgoJICBmb3IgZmlsZSBpbiBgZ2l0IGdyZXAgLWwgR3N0RWxlbWVudERldGFpbHNgOyBkbwoJICBzZWQgLWkgLW4gLXIgJwoJICAxaAoJICAxIUgKCSAgJCB7CgkgIGcKCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKkdTVF9FTEVNRU5UX0RFVEFJTFNccypcKChcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVwpO1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHMvKChcL1wqW15cbl0qXCpcLyk/XG4pKlteXG5dKkdzdEVsZW1lbnREZXRhaWxzIC4qID1ccypce1xzKihcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVx9O1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHAKCSAgfScgJGZpbGUKCSAgfi9nc3QvZ3N0cmVhbWVyL3Rvb2xzL2dzdC1pbmRlbnQgJGZpbGUKCSAgZG9uZQoKMjAxMC0wMy0yNCAxMDo1NzowOCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMC0wMy0yMyAxOToyNTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTIGZyb20gTWFrZWZpbGUuYW0KCjIwMTAtMDMtMjMgMTk6MjM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIG1hcHBpbmcgZm9yICh1aW50KSB0byBhbGxvdyBkZXNlcmlhbGlzYXRpb24gb2YgdW5zaWduZWQgaW50ZWdlcnMKCSAgVW5zaWduZWQgaW50cyBhcmUgdXNlZCBpbiB0YWdsaXN0cywgd291bGQgYmUgbmljZSB0byBiZSBhYmxlIHRvCgkgIGRlc2VyaWFsaXNlIHRoZW0sIGVzcC4gaW4gY29ubmVjdGlvbiB3aXRoIHRoZSB0YWdpbmplY3QgQVBJLgoKMjAxMC0wMy0yMyAxOToyNToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IHNlZWtpbmcgaW4gZG93bmxvYWQgbW9kZQoJICBXaGVuIGluIGRvd25sb2FkIG1vZGUgYW5kIHRoZSByZXF1ZXN0ZWQgb2Zmc2V0IGlzIHRvbyBmYXIgYXdheSwgYXR0ZW1wdCB0byBkbyBhCgkgIHNlZWsgcmVxdWVzdCB0byBmZXRjaCB0aGUgZGF0YS4KCSAgS2VlcCB0cmFjayBvZiBhbGwgZG93bmxvYWRlZCBwYXJ0cyBhbmQgbWVyZ2UgcmFuZ2VzIHdoZW4gbmVlZGVkLgoJICBGaXhlcyAjNjAwODc3CgoyMDEwLTAzLTIyIDExOjA2OjIxIC0wMzAwICBBbmRyw6kgRGllYiBNYXJ0aW5zIDxhbmRyZS5kaWViQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZS5zaDogdXNlIGF1dG9nZW4uc2ggaW5zdGVhZCBvZiBhdXRvcmVnZW4uc2ggb24gZnJlc2ggcmVwb3NpdG9yaWVzLgoJICBGaXhlcyAjNjEzNTkzLgoKMjAxMC0wMy0yMiAxNzoxMDowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dldHRleHQuaDoKCSAgZ2V0dGV4dDogYnVpbGQgZml4ZXM6ICNpZiAtPiAjaWZkZWYKCjIwMTAtMDMtMjIgMTM6MTY6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBBZGQgLVd3cml0ZS1zdHJpbmdzCgkgIGFuZCBmaXggaXRzIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDEwOjIyOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogbWFrZSBkZWxheWVkIHNldCByZWN1cnNpdmUKCSAgUmlnaHQgbm93IGRlbGV5ZWQgc2V0IHdvdWxkIG9ubHkgdHJ5IGZvciBmaXJzdCBzZXQgb2YgY2hpbGRyZW4uIFdlIG5lZWQgdG8ga2VlcAoJICB0cnlpbmcgdG8gc3VwcG9ydCBhcmJpdHJhcnkgZGVlcCBoaWVyYXJjaGllcyAobGlrZSBpbiBwbGF5YmluMiB3aXRoIGF1dG8qc2lua3MpLgoJICBBbHNvIEdzdEJpbiB3b3VsZCBuZWVkIHRvIGFjdHVhbHkgZW1pdCB0aGUgY2hpbGQtYWRkZWQvcmVtb3ZlZCBzaWduYWwgYXMgaXQKCSAgaW1wbGVtZW50cyB0aGUgaWZhY2UuIEZpeGVzICM2MTMyMTUuCgoyMDEwLTAzLTIyIDA4OjQwOjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIHBrZ2NvbmZpZzogVXNlIEBMSUJNQCBpbnN0ZWFkIG9mIC1sbQoKMjAxMC0wMy0xOSAwMTowMjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBwa2djb25maWc6IGFkZCBiYWNrIHN1cHBvcnQgZm9yIGJ1aWxkZGlyICE9IHNyY2RpciBjYXNlIGluIHVuaW5zdGFsbGVkIHNldHVwCgkgIEF0dGVtcHQgdG8gYWRkIGJhY2sgc3VwcG9ydCBmb3IgYnVpbGRkaXIgIT0gc3JjZGlyLiBVc2UgYWJzb2x1dGUgcGF0aHMKCSAgaW5zdGVhZCBvZiByZWxhdGl2ZSBwYXRocyBiYXNlZCBvbiBwY2ZpbGVkaXIgdGhpcyB0aW1lIHRvIG1ha2UgdGhpbmdzCgkgIGNsZWFyZXIgLSB0aGVyZSdzIG5vdCByZWFsbHkgYW55IG5lZWQgZm9yIHVuaW5zdGFsbGVkIHRyZWVzIHRvIGJlCgkgIHJlbG9jYXRhYmxlIHdpdGhvdXQgcmUtcnVubmluZyBjb25maWd1cmUuCgoyMDEwLTAzLTE4IDExOjE4OjM5ICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IFFvUyBtZXNzYWdlIHBvc3RpbmcKCSAgQW5kIHNvbWUgbW9yZSBmb3IgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTggMTM6NDE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2F0Y2gsIHBhcnNlIGFuZCBzdG9yZSBRb1MgZXZlbnQgdmFsdWVzCgkgIENhdGNoLCBwYXJzZSBhbmQgc3RvcmUgdGhlIFFvUyB2YWx1ZXMgZnJvbSBRb1MgZXZlbnRzIGZvciBsYXRlciB1c2UuCgoyMDEwLTAzLTE3IDE1OjI5OjQ4ICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbXBsZW1lbnQgUW9TIG1lc3NhZ2UgcG9zdGluZyBpbiBiYXNlc2luawoJICBQb3N0IFFvUyBtZXNzYWdlcyB3aGVuIGZyYW1lcyBhcmUgZHJvcHBlZC4KCSAgVGhpcyBnb2VzIGEgbGl0dGxlIGZ1cnRoZXIgdG93YXJkcyByZXNvbHZpbmcgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTcgMTk6MjY6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDMtMTcgMTk6MTY6NDIgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBRb1MgbWVzc2FnZSB0byBpbmZvcm0gYXBwcyBvZiBsb3N0IGRhdGEKCSAgVGhpcyBoYXMgYmVlbiBpbXBsZW1lbnRlZCBhcyBwZXIgcGFydC1xb3MudHh0IGFuZCBwYXJ0aWFsbHkgYWRkcmVzc2VzCgkgIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE3IDE2OjQ0OjA1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdDogUmVtb3ZlIG5lZWRsZXNzIGNhc3QKCSAgR3N0VmFsdWVBcnJheS5uYW1lIGlzIGNvbnN0IG5vdwoKMjAxMC0wMy0xNyAxNDozMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBSZXZlcnQgIkFkZCBzcmNkaXIgdG8gaW5jbHVkZXMgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzIgoJICBJIGRvbid0IGtub3cgaG93IHRoaXMgZXZlciB3b3JrZWQsIGFzIGl0IHNlZW1zIHRvIHB1dCAtSS4vLi4KCSAgYW5kIC1JLi8uLi9saWJzIHZlcmJhdGltIGludG8gdGhlIGluY2x1ZGVzLCBhdCBsZWFzdCB3aXRoCgkgIGN1cnJlbnQgYXV0b3Rvb2xzIHZlcnNpb25zLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDI3OWE4MGZmMjdiYTRjOTBmNTI5ODFlODllNzEwZWIxMTgxYmMyMDEuCgoyMDEwLTAzLTE3IDE1OjQ2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBhdm9pZCBjb25mdXNpb24gYmV0d2VlbiBldmVudHMgYW5kIG1lc3NhZ2VzCgoyMDEwLTAzLTE3IDEyOjE4OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBNYXJrIHByb3BlcnR5X25hbWUgaW4gR3N0VmFsdWVBcnJheSBhcyBjb25zdAoJICBUaGlzIHdvbid0IGFuZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBhbnkgQVBJCgoyMDEwLTAzLTE3IDEyOjQ1OjQ5ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2NzOiBmaXggdHlwbwoKMjAxMC0wMy0xNiAwOTo1NjoxNiArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjI2IiBtYXJrZXIgZm9yIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkKCjIwMTAtMDMtMTYgMDk6NDI6MjEgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogZml4IHNpbmNlIHRhZyBmb3IgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGRfdHlwZWQoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZF90eXBlZCB3YXMgYWRkZWQgaW4gMC4xMC4yNiwgbm90IDAuMTAuMTYuCgkgIEFwcGFyZW50IHR5cG8gaW4gY29tbWl0IGY5ZTNiNzJmIHdoZW4gdGhlIEFQSSB3YXMgYWRkZWQuCgoyMDEwLTAzLTE3IDEwOjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBkb2NzOiBmaXggU2luY2UgbWFya2VycyBmb3IgZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdCooKQoJICBBcyB0aGUgaGVhZGVycyB3ZXJlIGJyb2tlbiBpbiAwLjEwLjI2IHRoZSBmdW5jdGlvbnMgd2VyZW4ndCByZWFsbHkKCSAgdXNhYmxlIGJhY2sgdGhlbiwgc28gd2Ugc2hvdWxkIGFkdmVydGlzZSB0aGVtIGFzIGJlaW5nIHRoZXJlIG9ubHkKCSAgc2luY2UgMC4xMC4yNy4KCSAgU3BvdHRlZCBieSBNYXJ0IFJhdWRzZXBwLgoKMjAxMC0wMy0xNiAxNzo1NjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogdXNlICNpZiBHTElCX0NIRUNLX1ZFUlNJT04gaW5zdGVhZCBvZiAjaWZuZGVmIEdMSUJNQUNSTwoJICBmb3IgYmV0dGVyIGdyZXBwYWJpbGl0eSBhdCB0aGUgdGltZSB3ZSBidW1wIEdMaWIgdmVyc2lvbiByZXF1aXJlbWVudHMuCgoyMDEwLTAzLTE0IDExOjQ3OjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRlYWN0aXZhdGUgcGFkIGlmIHdlIGNhbid0IGdldCBsZW5ndGggb3IgaXQncyBhIGxlbmd0aCBvZiB6ZXJvLgoJICBGaXhlcyBpc3N1ZXMgd2hlbiByZS11c2luZyB0eXBlZmluZCBhZnRlciBhIGZpbGUgb2YgbGVuZ3RoIHplcm8uCgoyMDEwLTAzLTE2IDEwOjMyOjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBY2NlcHQgbm9uLWZpeGVkIGNhcHMgc3VnZ2VzdGlvbnMKCSAgV2hlbiBkb2luZyBwYWRfYWxsb2NzLCB1c2Ugbm9uLWZpeGVkIGNhcHMgc3VnZ2VzdGlvbnMgYW5kCgkgIHRyeSB0byBmaXhhdGUgdGhlbSBiZWZvcmUgdXNpbmcuIFRoaXMgbWFrZXMgcG9zc2libGUgdG8KCSAgaGF2ZSBzdWdnZXN0ZWQgYnVmZmVyIHNpemUgd2l0aCAwIGluIGJhc2V0cmFuc2Zvcm0ganVzdAoJICB0byBzaWduYWwgdXBzdHJlYW0gYSByZW5lZ290aWF0aW9uIGlzIG5lZWRlZAoJICBGaXhlcyAjNTc2MjM0CgkgIEZpeGVzICM2MDkwNDYKCjIwMTAtMDMtMTYgMTA6NDA6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IG1lcmdlIFFvUyBtZXNzYWdlIGZpZWxkcwoJICBUaGVyZSB3YXMgYWxyZWFkeSBhIHNlY3Rpb24gYWJvdXQgUW9TIG1lc3NhZ2VzIHRoYXQgaXMgbm93IG1lcmdlZCB3aXRoIHRoZSBuZXcKCSAgaW5mb3JtYXRpb24uCgoyMDEwLTAzLTE2IDEwOjQ0OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IG1lbnRpb24gaG93IHRvIGJ1aWxkIGFmdGVyIHVzaW5nIHRoZSBwcm9qZWN0IHN0YW1wCgoyMDEwLTAzLTE2IDA5OjU2OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBzbnByaW50ZiBuZWVkcyB0byBpbmNsdWRlICJzdGRpby5oIgoKMjAxMC0wMy0xNSAxODo0ODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIFFPUyBkb2NzIHRvIGluY2x1ZGUgUU9TIG1lc3NhZ2VzCgkgIEFkZCBzb21lIGRvY3MgYWJvdXQgdGhlIHZhbHVlcyBuZWVkZWQgZm9yIGEgUW9TIG1lc3NhZ2UgYW5kIHNvbWUgdXNlCgkgIGNhc2VzLgoJICBTZWUgIzMyMjk0NwoKMjAxMC0wMy0xNSAxNzowNzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogdXNlIGJpb25pYy9saWJjIGZyaWVuZGx5IGFyZ3VtZW50cyB0byBwcmN0bAoJICBwcmN0bCBpcyBzdXBwb3NlZCB0byB0YWtlIDUgYXJndW1lbnRzLiBJdCB1c2VkIHRvIHdvcmsgd2l0aCAyIGFyZ3VtZW50cyBvbiBzb21lCgkgIHZlcnNpb25zIG9mIGxpYmMgYmVjYXVzZSBpdCBpcyBkZWZpbmVkIGFzIGEgdmFyYWdzIGZ1bmN0aW9uIHRoZXJlLgoJICBTZWUgIzYxMTkxMQoKMjAxMC0wMy0xNSAxNTowNzozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHVwZGF0ZSBkb2NzLgoKMjAxMC0wMy0xNSAxNDo0NDo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBXb3JrIGFyb3VuZCBndGstZG9jIHByb2JsZW0KCjIwMTAtMDMtMTUgMTQ6NDQ6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IFVzZSBjb3JyZWN0IGd0ay1kb2Mgd29ya2Fyb3VuZAoKMjAxMC0wMy0xNSAxNDowNTozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEhhbmRsZSBpdGVyYXRvciByZXN5bmNzIGluIGdzdF9wYWRfcHJveHlfc2V0Y2FwcygpCgkgIEZpeGVzIGJ1ZyAjNjEyODgxLgoKMjAxMC0wMy0xNSAxNDo0ODoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogY29uZmlndXJlIHRoZSBvYmplY3QgbmFtZSBhcyB0aHJlYWQgbmFtZQoJICBXaGVuIHdlIGhhdmUgcHJjdGwgYXZhaWxhYmxlLCB1c2UgaXQgdG8gc2V0IHRoZSBjb25maWd1cmVkIG9iamVjdCBuYW1lIGFzIHRoZQoJICB0aHJlYWQgbmFtZSBmb3IgYmV0dGVyIGRlYnVnZ2luZy4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgUm9iZXJ0IFN3YWluLgoKMjAxMC0wMy0xNSAxMzo0ODozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzZXQgYSBnb29kIG5hbWUgb24gdGhlIHRhc2sgb2YgdGhlIHBhZAoJICBVc2UgdGhlIGVsZW1lbnQ6cGFkIG5hbWVzIHRvIGNvbmZpZ3VyZSBhIGdvb2QgbmFtZSBmb3IgdGhlIHBhZCB0YXNrLgoKMjAxMC0wMy0xNSAxMjoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IHJldGFiCgoyMDEwLTAzLTE1IDEwOjI2OjE4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGxvZ2dpbmc6IHJlbW92ZSBleHRyYSBuZXdsaW5lCgoyMDEwLTAzLTA0IDIzOjM2OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdHVybiBnX3JldHVybl9pZl9mYWlsIGludG8gZ19hc3NlcnQuCgkgIFRoaXMgZWl0aGVyIG11c3QgbmV2ZXIgaGFwcGVuICh3aGljaCBtYWtlcyBzZW5zZSBpbiB0aGlzIGNhc2UpIGFuZCB0aHVzIHNob3VsZAoJICB1c2UgYXNzZXJ0KCkgb3Igd2Ugc2hvdWxkIHVzZSBhIHRyYWRpdGlvbmFsIGlmIChwb2xsX2RhdGEtPm1lc3NhZ2UpIHJldHVybjsKCSAgdG8gYXZvaWQgZGlmZmVybmV0IGJlaGF2aW91ciBvZiBpbnRlbmFsIGFwaSB3aGVuIGNvbXBpbGluZyB3aXRoCgkgIEdfRElTQUJMRV9DSEVDS1MuCgoyMDEwLTAzLTAzIDIzOjM3OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtb3ZlIHRoZSBjaGVjayB0byB0aGUgcHVibGljIGFwaS4KCSAgVGhpcyBhdm9pZHMgY3JlYXRpbmcgZW1wdHkgY2FwcyBhbmQgZGVzdHJveWluZyB0aGVtIGluIHRoZSBjYXNlIG9mIGFuIGVycm9yLiBXZQoJICBhbHNvIGF2b2lkIGRvdWJsZSBjaGVja2luZyBpbiBvdGhlciBjb2RlIHBhdGggd2hlcmUgd2UgY2FsbCB0aGUgaW50ZXJuYWwgYXBpLgoKMjAxMC0wMy0wMyAyMzozNDo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdGhpcyBpcyBpbnRlcm5hbCBBUEkgd2hlcmUgd2UgbmVlZCB0byBlbnN1cmUgIU5VTEwgaGlnaGVyIHVwCgoyMDEwLTAzLTAzIDIxOjUwOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogdGhpcyBpcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aGVyZSB3ZSBhbHJlYWR5IGVuc3VyZSAhTlVMTCB3aGVuIGNhbGxpbmcKCjIwMTAtMDItMjYgMDk6Mjk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjYXNlIG9mIHBhZCBmbGFnCgkgIER1ZSB0byBhIHR5cG8gdGhlIGNvZGUgd2FzIGFsd2F5cyBzaG93aW5nIHRoZSBmbGFnIGFzICdzJyAobG93ZXIgY2FzZSkuCgkgIEZpeGVzICM2MTEwNzUKCjIwMTAtMDItMjMgMjM6NTA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRlYnVnOiBhZGQgcHJldHR5IHByaW50ZXIgZm9yIGV2ZW50cwoJICBBZGRlciBpcyB1c2luZyBHU1RfUFRSX0ZPUk1BVCBmb3IgZXZlbnRzIGFscmVhZHksIHNvIHdlIG1pZ2h0IGFjdHVhbHkKCSAgaW1wbGVtZW50IHRoaXMgYW5kIHByaW50IG91dCBzb21lIHVzZWZ1bCBpbmZvLgoKMjAxMC0wMy0xMyAxMTowMzo1OSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBBZGQgc29tZSAwLjExIEZJWE1FcyBmb3IgR3N0UGx1Z2luSW5pdEZ1bmMKCSAgU2VlIDhmZTYzMDAwZGUzMWJiMmJjZjM0NmQ1OTIzMGRlYTA2MTE3OTk3Y2QgZm9yIHdoeSBoYXZpbmcgYSBUUlVFL0ZBTFNFCgkgIHJldHVybiB2YWx1ZSBpcyBhIGJhZCBpZGVhLgoJICBJJ3ZlIHNjYW5uZWQgYSBmZXcgcGx1Z2lucyBhbmQgdGhleSBnZW5lcmFsbHkgZ2V0IGl0IHdyb25nIGFuZCBhcmVuJ3QKCSAgdW5sb2FkYWJsZSB3aGVuIHRoZXkgcmV0dXJuIEZBTFNFLgoKMjAxMC0wMy0xMiAxOTowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTAzLTEyIDE5OjA1OjE2ICswMDAwICBMZW8gU2luZ2VyIDxsc2luZ2VyQGNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGNvbXBpbGF0aW9uIGVycm9yIGlmIEhBVkVfUkVHSVNURVJfUFJJTlRGX1NQRUNJRklFUiBpcyB1bmRlZmluZWQKCSAgVXNlICNpZiBIQVZFX0ZPTyBpbnN0ZWFkIG9mICNpZmRlZiBIQVZFX0ZPTy4KCSAgRml4ZXMgIzYxMjczMy4KCjIwMTAtMDMtMTIgMTY6NDI6NDcgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luczogRG8gbm90IGV2ZXIgdW5sb2FkIGEgcGx1Z2luIGFmdGVyIGNhbGxpbmcgaW50byBpdAoJICBUaGlzIGlzIHdoYXQgY2FuIGhhcHBlbiBpbiBhIHBsdWdpbl9pbml0IGZ1bmN0aW9uOgoJICAtIEFuIGVsZW1lbnQgYmFzZWQgb24gR3N0QmFzZVNpbmsgaXMgcmVnaXN0ZXJlZAoJICAtIE90aGVyIGVsZW1lbnRzIGZhaWwgdG8gcmVnaXN0ZXIKCSAgLSBUaGUgcGx1Z2luX2luaXQgZnVuY3Rpb24gcmV0dXJucyBGQUxTRQoJICBOb3cgaWYgdGhpcyB0aGUgcGx1Z2luIGlzIHRoZSBmaXJzdCBwbHVnaW4gdG8gbGluayBhZ2FpbnN0CgkgIGxpYmdzdGJhc2Uuc28sIGl0IHdpbGwgaGF2ZSBjYXVzZWQgbGliZ3N0YmFzZS5zbyB0byBiZSBsb2FkZWQgYW5kIHN0YXRpYwoJICBzdHJpbmdzIGZyb20gdGhhdCBsaWJyYXJ5IHdpbGwgaGF2ZSBiZWVuIGFkZGVkIHRvIGdvYmplY3Qgd2hpbGUKCSAgcmVnaXN0ZXJpbmcgR3N0QmFzZVNpbmsuCgkgIFNvIHVubG9hZGluZyB0aGUgcGx1Z2luIHdpbGwgY2F1c2UgdGhvc2Ugc3RyaW5ncyB0byBnbyBzdGFsZSBhbmQgdGhlCgkgIG5leHQgcGx1Z2luIHVzaW5nIEdzdEJhc2VTaW5rIHdpbGwgY3Jhc2guIFNvIHdlIG11c3Qgbm90IHVubG9hZCBtb2R1bGVzCgkgIGFmdGVyIGNhbGxpbmcgaW50byB0aGVtIGV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTcyODAwCgoyMDEwLTAzLTEyIDE1OjM2OjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogRG9uJ3QgcGFzcyBOVUxMIHRvIHRoZSBHU2VxdWVuY2UgQVBJCgoyMDEwLTAzLTEyIDEzOjMzOjAwICswMDAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEZpeCBlcnJvciByZXR1cm4gdmFsdWUgYW5kIG1ha2UgdGhlIHNjcmlwdCBleGl0IG9uIGVycm9ycwoJICBOZXdlciB2ZXJzaW9ucyBvZiBCQVNIICg0Lng/KSBzZWVtIHRvIGRpc2xpa2UgdXNpbmcgLTEgZm9yIGEgcmV0dXJuLiBFdmVuCgkgIHRob3VnaCBpdCdzIGRvY3VtZW50ZWQgYXMgYmVpbmcgc2lnbmVkLCBCQVNIIGNvbXBsYWlucyBhYm91dCBpdCwgc28gdXNlCgkgIDI1NSBpbnN0ZWFkLgoKMjAxMC0wMy0xMiAxMzo1NDoyOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZTI3MmY3MSB0byA1NWNkNTE0CgoyMDEwLTAyLTE3IDEzOjAyOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IFVzZSBHX1ZBTFVFX0NPTExFQ1RfSU5JVCBpZiBhdmFpbGFibGUKCSAgVGhpcyBicmluZ3MgdG90YWwgY2FsbCBzcGVlZHVwcyBiZXR3ZWVuIDUlIGFuZCAyNSUuCgkgIGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0OiArNSUKCSAgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0OiArIDEwJQoJICBnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3Q6ICsyNSUKCSAgZ3N0X3RhZ19saXN0X2FkZF92YWxpc3Q6ICs1JQoJICBNZWFzdXJlZCB1c2luZyB2YWxncmluZCB3aGVuIHJ1biBvdmVyIHRoZSBkaXNjb3Zlcnkgb2YgMjAwIG1lZGlhIGZpbGVzLgoJICBGaXhlcyAjNjEwMjU2CgoyMDEwLTAzLTExIDIwOjI5OjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICB3aW4zMjogRml4IGJ1aWxkIGZhaWx1cmVzIG9mIHRlc3RzCgoyMDEwLTAzLTA5IDIwOjM4OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgbmV3IGdlbyBsb2NhdGlvbiB0YWdzCgkgIEFkZHMgbmV3IHRhZ3MgR1NUX1RBR19HRU9fTE9DQVRJT05fQ09VTlRSWSwKCSAgR1NUX1RBR19HRU9fTE9DQVRJT05fQ0lUWSBhbmQgR1NUX1RBR19HRU9fTE9DQVRJT05fU1VCTE9DQVRJT04uCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ09VTlRSWQoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NJVFkKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9TVUJMT0NBVElPTgoJICBGaXhlcyAjNjEyNDEwCgoyMDEwLTAzLTExIDE4OjM2OjMyICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIHdpbjMyOiBBZGQgcHJvdG90eXBlIGZvciBEbGxNYWluKCkKCjIwMTAtMDMtMTEgMTE6NDY6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMTItMjggMTc6MjU6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3RyZWFtZXI6IHJlbW92ZSB1bm5lZWRlZCBjYXN0cwoJICBHX1BBUkFNX1NQRUNfVkFMVUVfVFlQRSBkb2VzIGFuIGV4cGVuc2l2ZSB0eXBlIGNoZWNrLCB3aGVyZWFzIHRoZQoJICB2YWx1ZV90eXBlIGZpZWxkIGlzIGEgcHVibGljIGZpZWxkLCBzbyB3ZSBjYW4ganVzdCB1c2UgaXQgZGlyZWN0bHkuCgoyMDEwLTAzLTExIDExOjM5OjQwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSAtV2lubGluZSBmbGFnIGFnYWluCgkgIEl0IHRyaWdnZXJzIGZvciBhIGxvdCBvZiBHU3RyZWFtZXIgQVBJIChldmVuIHRob3VnaCB0aG9zZSB0cmlnZ2VycyBhcmUKCSAgd3JvbmcgbW9zdCBvZiB0aGUgdGltZSkuCgkgIEkgbWlzc2VkIGl0IGJlY2F1c2UgaXQgb25seSB0cmlnZ2VycyB3aXRoIC1PMiwgYW5kIEkgd2FzIHVzaW5nIC1PMC4KCjIwMTAtMDMtMTEgMTE6MjA6MzUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGY4YTdjOCB0byBlMjcyZjcxCgoyMDEwLTAzLTExIDExOjEwOjQ0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEFkZCBhIGJ1bmNoIG1vcmUgd2FybmluZyBmbGFncyB0byBjb25maWd1cmUKCSAgTm9uZSBvZiB0aGVzZSBmbGFncyBjYXVzZSB3YXJuaW5ncyBhbnltb3JlLCBzbyBubyBmaXhlcyBuZWNlc3NhcnkuCgkgIFRoZSBmbGFncyBhcmU6CgkgIC1XZm9ybWF0LW5vbmxpdGVyYWwKCSAgLVdmb3JtYXQtc2VjdXJpdHkKCSAgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICAtV2Nhc3QtYWxpZ24KCSAgLVdpbmxpbmUKCSAgLVdpbml0LXNlbGYKCSAgLVdtaXNzaW5nLWluY2x1ZGUtZGlycwoJICAtV2FkZHJlc3MKCSAgLVdhZ2dyZWdhdGUtcmV0dXJuCgkgIC1Xbm8tbXVsdGljaGFyCgkgIC1XbmVzdGVkLWV4dGVybnMKCjIwMTAtMDMtMDIgMjI6NTg6MDYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEZpeGVzIGZvciAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1wcm90b3R5cGVzCgkgIEFsc28gYWRkcyB0aG9zZSBmbGFncyB0byB0aGUgY29uZmlndXJlIHdhcm5pbmcgZmxhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMSAwOTozOToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHByaW50ZiBmb3JtYXQKCSAgVXNlICV1IHRvIHByaW50IHVuc2lnbmVkIGludGVnZXJzLgoKMjAxMC0wMy0xMSAxMDoyOToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0ZXN0czogY2FzdCB0aGUgYXJnLiB0byBmaXggdGhlIGJ1aWxkIHdpdGggbmV3IGNvbXBpbGVyIG9wdHMuCgkgIFRoaXMgaXMgdWdseS4gSSBhbSBub3Qgc3VyZSBpZiB3ZSByZWFsbHkgd2FudCB0byBoYXZlIHN1Y2ggY2FzdHMgYWxsIG92ZXIgdGhlCgkgIHBsYWNlLgoKMjAxMC0wMy0xMSAxMDoxNDowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGkxOG46IGRlZmluZSBkdW1teSBuZ2V0dGV4dCBpZiBpMThuIGlzIGRpc2FibGVkLgoJICBXZSBjYW5ub3QgYmxpbmRseSB1c2UgZ2V0dGV4dCBmdW5jdGlvbiBhbmQgbm90IGRlZmluZSB0aGVtIHdoZW4gbm90IHVzaW5nIGdldHRleHQuCgoyMDEwLTAzLTExIDEwOjAwOjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgaTE4bjogZml4IHRoZSBidWlsZCB3aXRoIGkxOG4gZGlzYWJsZWQuCgkgIERvbid0IGluY2x1ZGUgZ2V0dGV4dC5oIGlmICFFTkFCTEVfTkxTLgoKMjAxMC0wMy0wNCAxMDo0NDo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWxsb3cgY29uZmlndXJhYmxlIG1lbW9yeSBhbGlnbm1lbnQuIEZpeGVzICM1OTY4MzIKCSAgVGhlIGFsaWdubWVudCBndWFyYW50ZWVkIGJ5IG1hbGxvYyBpcyBub3QgYWx3YXlzIHN1ZmZpY2llbnQuIEUuZy4gdmVjdG9yCgkgIGluc3RydWN0aW9ucyBvciBoYXJkd2FyZSBzdWJzeXN0ZW1zIHdhbnQgc3BlY2lmaWNhbGx5IGFsaWduZWQgYnVmZmVycy4gVGhlCgkgIGF0dGFjaGVkIHBhdGNoIHdpbGwgdXNlIHBvc2l4X21lbWFsaWduIGlmIGF2YWlsYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzLgoJICBUaGUgZGVzaXJlZCBhbGlnbm1lbnQgY2FuIGJlIHNldCB3aGVuIHJ1bm5pbmcgY29uZmlndXJlIHVzaW5nIHRoZSBuZXcKCSAgLS13aXRoLWJ1ZmZlci1hbGlnbm1lbnQgb3B0aW9uLgoKMjAxMC0wMy0xMCAyMTo1MTo1MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NzIwYTdkIHRvIGRmOGE3YzgKCjIwMTAtMDMtMTAgMjA6NTI6MDYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkgIE1lcmdlIGJyYW5jaCAnd29yaycKCjIwMTAtMDMtMDMgMTE6NDU6MzggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBGaXhlcyBmb3IgLVd3cml0ZS1zdHJpbmdzCgkgIFRoaXMgY2hhbmdlcyBzb21lIEFQSXMgaW4gY29tcGF0aWJsZSB3YXlzOgoJICAtIFNvbWUgZnVuY3Rpb25zIG5vdyB0YWtlICJjb25zdCBjaGFyICoiIGFyZ3VtZW50cywgbm90ICJjaGFyICoiCgkgIC0gU29tZSBzdHJ1Y3RzIG5vdyBoYXZlICJjb250cyBjaGFyICoiIG1lbWJlcnMsIG5vdCAiY2hhciAqIgoJICBUaGUgY2hhbmdlcyBtYXkgY2F1c2Ugd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgd2l0aCB0aGUgcmlnaHQgd2FybmluZwoJICBmbGFncy4gWW91J3ZlIGJlZW4gd2FybmVkLgoJICBBbHNvIGFkZHMgLVd3cml0ZS1zdHJpbmdzIGFzIGEgd2FybmluZyBmbGFnIGluIGNvbmZpZ3VyZS5hYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDozMToyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBGaXhlcyAtV3VuZGVmIHdhcm5pbmdzCgkgIC4uLiBhbmQgYWRkcyB0aGF0IGZsYWcgdG8gY29uZmlndXJlLmFjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MzE6MDUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBSZW1vdmUgdW5uZWVkZWQgZ190aHJlYWRfZXhpdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MjY6MTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgRml4ZXMgZm9yIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMiAyMzo1MToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJICBNYWtlIGNvZGUgc2FmZSBmb3IgLVdyZWR1bmRhbnQtZGVjbHMKCSAgQWRkcyB0aGF0IHdhcm5pbmcgdG8gY29uZmlndXJlLmFjCgkgIEluY2x1ZGVzIGEgdGlueSBjaGFuZ2Ugb2YgdGhlIEdTVF9CT0lMRVJQTEFURV9GVUxMKCkgbWFjcm86CgkgIFRoZSBnZXRfdHlwZSgpIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBkZWNsYXJlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAyMDo0MzozNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwYjZlMDcyIHRvIDk3MjBhN2QKCjIwMTAtMDMtMDMgMTA6MDA6NDEgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTWFrZSBzdXJlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgcnVuIHdpdGggLVdlcnJvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDE3OjAzOjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFVwZGF0ZSB0byBjb21tb24vIGNoYW5nZXMgdG8gRVJST1JfQ0ZMQUdTCgoyMDEwLTAzLTEwIDE5OjE3OjQyICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgUmV2ZXJ0ICJyZWdpc3RyeTogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiIKCSAgVHVybnMgb3V0ICB0aGUgZnVuY3Rpb24gaXMgbm90IHVudXNlZCwgYnV0IHdhcyBpbiBhbiAjaWZkZWYgV0lOMzIKCSAgc2VjdGlvbi4KCSAgV2hvb3BzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU3ZDVkYjQyNGM2OGFiNWE2MWYzM2NlMzZjZTAxNzllYjMwMjUxYWMuCgoyMDEwLTAzLTEwIDE2OjA5OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdjYzVlYjQgdG8gMGI2ZTA3MgoKMjAxMC0wMy0wMiAyMTowNzozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgkgIEFjdHVhbGx5LCB0aGVyZSB3YXMgdHdvIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUsIGJ1dCBvbmx5IG9uZSB3YXMKCSAgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMiAxNjoyMDoxNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbW92ZSB1bnVzZWQgZ3N0X2VsZW1lbnRfZGVmYXVsdF9lcnJvcigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMDc6MTU6MTUgKzAwMDAgIEplcmVteSBIdWRkbGVzdG9uIDxqZXJlbXlodUBmcmVlZGVza3RvcC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBtdWxxIGluc3RlYWQgb2YgbXVsIGFzIHNvbWUgYXNzZW1ibGVycyBjYW4ndCBndWVzcyB0aGUgc2l6ZSBvZiB0aGUgb3BlcmFuZHMKCSAgRml4ZXMgYnVnICM2MTIzNzAuCgoyMDEwLTAzLTEwIDAxOjA5OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2FhNjViNSB0byA3Y2M1ZWI0CgoyMDEwLTAzLTA5IDIxOjIwOjI3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDRlY2NlNyB0byA3YWE2NWI1CgoyMDEwLTAyLTI2IDE2OjAzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBidWlsZDogTWFrZSBzb21lIG1vcmUgcnVsZXMgc2lsZW50IGlmIHJlcXVlc3RlZAoKMjAxMC0wMi0yNiAxNTozMjoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlIGF1dG9tYWtlIDEuMTEgc2lsZW50IHJ1bGVzIGluc3RlYWQgb2Ygc2hhdmUgaWYgYXZhaWxhYmxlCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIHVzZSBzb21ldGhpbmcgdGhhdCBpcyBzdGlsbCBtYWludGFpbmVkIGFuZAoJICBhbHNvIGJyaW5ncyBiYWNrIGxpYnRvb2wgMS41IHN1cHBvcnQuCgoyMDEwLTAyLTIyIDE2OjI1OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBPcHRpbWl6ZSBnZXRfdmFsdWVfYXJyYXkoKQoJICBEb24ndCBjb252ZXJ0IGZyb20gR1ZhbHVlIHRvIHRoZSBhY3R1YWwgdHlwZSBmb3IgZXZlcnkgc2luZ2xlCgkgIHZhbHVlLgoKMjAxMC0wMi0yMiAxNToxODo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IE9wdGltaXplIGdldF92YWx1ZV9hcnJheSgpCgkgIFRoaXMgbWFrZXMgaXQgPjEweCBmYXN0ZXIgaWYgbW9yZSB0aGFuIGEgc2luZ2xlIHZhbHVlIGlzIHJlcXVlc3RlZAoJICBieSBub3Qgc2VhcmNoaW5nIGluIHRoZSBHU2VxdWVuY2UgZm9yIGV2ZXJ5IHZhbHVlIGFuZCBjb252ZXJ0aW5nCgkgIHRoZSB2YWx1ZSBmcm9tIEdWYWx1ZSB0byB0aGUgcmVhbCB2YWx1ZSB0eXBlLgoKMjAxMC0wMi0yMSAxNzozNjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogQWRkIGJlbmNobWFyayBmb3IgZ2V0dGluZyBhIHZhbHVlIGFycmF5IG9mIHRoZSBjb250cm9sIHBvaW50cwoKMjAxMC0wMy0wOCAyMzoyODowNCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggdHlwb3MgaW4gZG9jdW1lbnRhdGlvbgoKMjAxMC0wMy0wOCAyMzowNDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGNhcHM6IEZhaWwgd2hlbiBmcmFjdGlvbnMgYXJlIGZvbGxvd2VkIGJ5IHJhbmRvbSB0ZXh0CgkgIFByZXZpb3VzIGNvZGUgdHJlYXRlZCAiMS8xeW91cm1vbSIgdGhlIHNhbWUgYXMgIjEvMSIgYW5kICIxd2ltc21vbSIgdGhlCgkgIHNhbWUgYXMgIjEiLiBOb3cgdGhlIGNvZGUgaXMgc3RyaWN0ZXIgYW5kIHdpbGwgZmFpbCB0byBjb252ZXJ0IGEKCSAgZnJhY3Rpb24gd2hlbiBmb2xsb3dlZCBieSBnYXJiYWdlIHRleHQuCgoyMDEwLTAzLTA5IDE3OjMyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjggPT09CgoyMDEwLTAzLTA4IDIzOjA5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yOAoKMjAxMC0wMy0wOCAyMzowNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDMtMDggMjI6MDU6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBjYXBzOiBBbGxvdyAxL21heCBhcyB0aGUgbWluaW1hbCBmcmFjdGlvbiB2YWx1ZSA+IDAKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGZvcm1hdHMgdGhhdCByZXF1aXJlIGEgdmFsaWQgZnJhbWVyYXRlIChsaWtlCgkgIHRoZW9yYWVuYykuCgoyMDEwLTAzLTA0IDE1OjIxOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHR5cG8gaW4gY29tbWVudHMKCj09PSByZWxlYXNlIDAuMTAuMjcgPT09CgoyMDEwLTAzLTA1IDIzOjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yNwoKMjAxMC0wMy0wNSAyMzo0MTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDMtMDQgMTg6Mzk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogZG9uJ3QgcGFzcyBub24tb2JqZWN0cyBhcyBmaXJzdCBhcmd1bWVudCB0byBHU1RfREVCVUdfT0JKRUNUKCkKCSAgVGhpcyBtYXkgY2F1c2UgY3Jhc2hlcyB3aGVuIGxvZ2dpbmcgaXMgZW5hYmxlZCwgZXNwZWNpYWxseSBvbiB3aW5kb3dzLgoJICBJdCdzIG5vdCBzYWZlIHRvIHBhc3MgcmFuZG9tIHBvaW50ZXJzIHRvIGdfdHlwZV9jaGVja19pbnN0YW5jZV9pc19hKCkuCgkgIEZpeGVzICM2MTE3MTkuCgoyMDEwLTAzLTAzIDE5OjU0OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjQgcHJlLXJlbGVhc2UKCjIwMTAtMDMtMDMgMTk6NDk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wMy0wMyAxMjowNjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZG9jczogZml4IHVwIGJ5dGV3cml0ZXIgZG9jIGNodW5rcyBmb3IgZmxvYXQgZnVuY3Rpb25zIGFzIHdlbGwKCjIwMTAtMDMtMDMgMTE6Mjg6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IGZpeCBoZWFkZXJzIGZvciBmbG9hdC9kb3VibGUgd3JpdGluZyBmdW5jdGlvbnMKCSAgVGhlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGdzdF9ieXRlX3dyaXRlcl9wdXRfe2Zsb2F0MzJ8ZmxvYXQ2NH1fKigpIGFuZCBub3QKCSAgZ3N0X2J5dGVfd3JpdGVyX3B1dF97ZmxvYXR8ZG91YmxlfV8qKCkuCgkgIFNwb3R0ZWQgYnk6IEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCjIwMTAtMDMtMDEgMTI6MDI6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogdHJ5IHRvIG1ha2UgY29tbWVudCBmb3IgdHJhbnNsYXRvcnMgbW9yZSBoZWxwZnVsCgoyMDEwLTAyLTI2IDE1OjQ2OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBlbWVyZ2VuY3kgcmVuZGVyaW5nIHRpbWVzdGFtcCB0cmFja2luZwoJICBTcGVjaWZpY2FsbHksIGlmIGFsbCAoaW5jbHVkaW5nIGluaXRpYWwpIGJ1ZmZlcnMgdHVybiB1cCBsYXRlLAoJICBlbWVyZ2VuY3kgcmVuZGVyaW5nIHNob3VsZCBhbHNvIGtpY2sgaW4gYXBwcm9wcmlhdGVseS4KCSAgRml4ZXMgIzYxMTA4Ny4KCjIwMTAtMDItMjQgMDA6MzA6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuMyBwcmUtcmVsZWFzZQoKMjAxMC0wMi0yNCAwMDoyOToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vZXMucG86CgkqIHBvL25sLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wMi0xOSAxMzoyNjowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogRG9uJ3QgcGFzcyBOVUxMIHBvaW50ZXJzIHRvIEdTZXF1ZW5jZSBBUEkKCSAgVGhpcyBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmVzLiBGaXhlcyBidWcgIzYxMDQ0NC4KCjIwMTAtMDItMTkgMTM6MjA6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBBZGQgY29uc3QgcXVhbGlmaWVycyB0byB2YWx1ZXMgaW4gdGhlIF9zZXQgZnVuY3Rpb25zCgkgIFRoZSB2YWx1ZXMgYXJlIG5vdCBtb2RpZmllZCBhbmQgYXJlIGNvcGllZCwgYSBjb25zdCBiZWZvcmUgdGhlIHBhcmFtZXRlcgoJICBzaG91bGQgbWFrZSB0aGlzIGV2ZW4gbW9yZSBvYnZpb3VzLgoKMjAxMC0wMi0xOCAwOToxNzowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBjb250cm9sbGVyOiBBZGQgc29tZSBGSVhNRSAwLjExIGNvbW1lbnRzCgoyMDEwLTAyLTE3IDEwOjA0OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgY29yZWxlbWVudHM6IENvbWJpbmUgcmVkdW5kYW50IGNvZGUKCjIwMTAtMDItMTcgMDE6Mjc6MjIgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9mIGZkc2luayBhbmQgZmRzcmMgd2l0aCBNU1ZDCgoyMDEwLTAyLTE4IDE0OjU4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi4yIHByZS1yZWxlYXNlCgoyMDEwLTAyLTE4IDEzOjEyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgc29tZSBtb3JlIHRlbXBvcmFyeSBkb2NzIGNydWZ0CgoyMDEwLTAyLTE4IDEzOjA5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IGluZGVudGluZyBpbiB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgIE5vIGlkZWEgd2h5IHdlIG5lZWQgdG8gcnVuIGdzdC1pbmRlbnQgdHdpY2Ugb24gdGhhdCBmaWxlLCBidXQgaXQKCSAgb25seSBzZWVtcyB0byBzZXR0bGUgb24gYSBmaW5hbCBmb3JtYXQgd2l0aCBtaW5pbWFsIGRpZmYgdG8gdGhlCgkgIG9uZSBpbiBnaXQgYWZ0ZXIgdHdvIHJ1bnMuCgoyMDEwLTAyLTE4IDEzOjA4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMC0wMi0xOCAxMTo1MjoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBJbXByb3ZlIGRvY3MgYWJvdXQgJ2RhdGEnIGF0dHJpYnV0ZQoJICBBZGRzIGEgcmVtaW5kZXIgdG8gJ2RhdGEnIGF0dHJpYnV0ZSBkb2MKCSAgRml4ZXMgIzYxMDM2NgoKMjAxMC0wMi0xOCAxNzoxNTozNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIG1lbWluZGV4OiBhdm9pZCBidXN5IGxvb3Agd2hlbiBkb2luZyBFWEFDVCBsb29rdXAKCSAgRml4ZXMgIzYxMDM2Ny4KCjIwMDktMTItMjIgMTE6MDk6MTAgKzA4MDAgIEpvaGFuIEJpbGllbiA8am9iaUBsaXRsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9nZXRfc3RhdGUKCSAgc3RhdGUgYW5kIHBlbmRpbmcgYXJlICJvdXQiIGFyZ3VtZW50cy4KCSAgRml4ZXMgIzYwNTE4OS4KCjIwMTAtMDItMTcgMTI6MTY6MzcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIGZpbGVzcmM6IERvbid0IHVzZSBleHBlbnNpdmUgY2FzdCBjaGVja3MgaW4gX2NyZWF0ZQoJICBfY3JlYXRlKCkgaXMgYSBwYWQgZnVuY3Rpb24gc2V0IGJ5IG91cnNlbHZlcywgdGhlcmVmb3JlIHdlJ3JlIHN1cmUgYmFzZXNyYwoJICBpcyBhIEdzdEZpbGVTcmMuCgkgIFNwZWVkcyB1cCBfY3JlYXRlKCkgYnkgMTclIGFuZCB0aGUgdG90YWwgY2FsbCBieSA4JSAoaW5zdHJ1Y3Rpb24gY2FsbHMgbWVhc3VyZW1lbnRzCgkgIGRvbmUgd2l0aCB2YWxncmluZCkuCgkgIEZpeGVzICM2MTAyNDYKCjIwMTAtMDItMTcgMTI6MTQ6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgdXNlIGV4cGVuc2l2ZSBjYXN0IGNoZWNrcyBpbiBnZXRfcmFuZ2UuCgkgIF9nZXRfcmFuZ2UoKSBpcyBhIHBhZCBmdW5jdGlvbiBzZXQgYnkgb3Vyc2VsdmVzLCB0aGVyZWZvcmUgd2UncmUgY2VydGFpbiB0aGF0CgkgIHRoZSBwYXJlbnQgaXMgYSBHc3RCYXNlU3JjLgoJICBTcGVlZHMgdXAgX2dldF9yYW5nZSBieSAzOCUsIGFuZCB0aGUgdG90YWwgY2FsbCBieSAzMCUuICh2YWxncmluZCBpbnN0cnVjdGlvbgoJICBjYWxscyBtZWFzdXJlbWVudHMpLgoJICBGaXhlcyAjNjEwMjQ2CgoyMDEwLTAyLTE3IDExOjMxOjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBjbGVhbnVwIHBhcmFtZXRlciBpbml0aWFsaXNhdGlvbiBhbmQgYWRkIGNvbWVtbnQrbG9nZ2luZwoJICBJbml0aWFsaXplIG5ld19mZCB3aXRoIERFRkFVTFRfRkQgYW5kIGZkIHdpdGggLTEuIFNldHRpbmcgdGhlIHByb3BlcnR5IHdpbGwgc2V0CgkgIG5ld19mZCBhbmQgaW4gX3VwZGF0ZV9mZCgpIHdlIGNlaGNrIGZkIGFnYWluc3QgLTEuIEFsc28gYWRkIGEgY29tZW50IGFib3V0IHRoZQoJICB3YXJuaW5nIHdlIGdldCBpbiB0aGUgbG9nIGZyb20gZ3N0X3BvbGxfcmVtb3ZlX2ZkKCkuIFdlIGNvdWxkIGdldCByaWQgb2YgdGhlCgkgIHdhcm5pbmcgaWYgd2Ugd2FudCBieSB0cmFja2luZyBpZiBmZCBoYXMgYmVlbiBhZGRlZCB0byBmZHNldC4KCjIwMTAtMDItMTcgMDk6NTU6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSAgZGVzaWduOiB3cml0ZSBhYm91dCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0YWctaGFuZGxpbmcKCSAgRG9jdW1lbnQgdGhlIHRhZ2hhbmRsaW5nIGluIGdzdHJlYW1lci4gTGlzdCBnYXBzIGFuZCBwcm9wb3NlIG5ldyBtZWNoYW5pc21zIHRvCgkgIGRlYWwgd2l0aCB0aGVtLgoKMjAxMC0wMi0xNiAxMDoyNzoxOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVtb3ZlIGJsYW5rIGxpbmVzIGluIHZhcmlhYmxlIGRlY2xhcmF0aW9ucwoKMjAxMC0wMi0xNiAxMTozMDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogY2FsbCBnX3NldF9wcmduYW1lKCkgYmVmb3JlIGRvaW5nIHRoZSBvcHRpb24gcGFyc2luZwoJICBnX3NldHByZ25hbWUgaXMgaW1wbGljaXRseSBjYWxsZWQgYnkgZ19vcHRpb25fY29udGV4dF9uZXcoKSB3aXRoIGEgY2hlY2sKCSAgdG8gc2VlIGlmIGl0J3MgYmVlbiBzZXQgYWxyZWFkeSwgc28gc2V0IGl0IGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpCgkgIE1vdmUgdmVyc2lvbiBwcmludGluZyBiYWNrIHVudGlsIGFmdGVyIHRoZSBvcHRpb25zIGhhdmUgYmVlbiBwYXJzZWQsCgkgIG90aGVyd2lzZSBpdCB3b24ndCB3b3JrLCBzaW5jZSBpdCBldmFsdWF0ZXMgYSBmbGFnIHNldCBieSB0aGUKCSAgb3B0aW9uIHBhcnNlci4KCjIwMTAtMDItMTYgMTE6MjQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uIGNhbGwgdG8gYXZvaWQgd2FybmluZyBmcm9tIG5ldyBHTGliLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5M2RkOTVmMDJlZjNmYTUzMGY1NGNlODFlOGZmYmE5NmYzYjY3OWNiLgoJICBUaGlzIGNvbW1pdCBtYWRlIC0tdmVyc2lvbiBub3Qgd29yayBhbnkgbG9uZ2VyLiBUaGUgZ19zZXRwcmduYW1lKCkKCSAgd2FybmluZyBpcyBmaXhlZCBpbiByZWNlbnQgR0xpYiB2ZXJzaW9ucy4KCjIwMTAtMDItMTYgMDg6MjY6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIGdldHMgaW5zdGFsbGVkIHdoZXJlIHdlIGV4cGVjdCBpdAoJICBBZGQgY2hlY2sgdG8gbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciByZWFsbHkgZ2V0cyBpbnN0YWxsZWQgd2hlcmUKCSAgd2Ugd2lsbCBsb29rIGZvciBpdCBsYXRlciwgaWUuIHBhdGhzIGFuZCBwcmVmaXhlcyBhcmUgc2V0IGF0IGNvbmZpZ3VyZQoJICB0aW1lIGFuZCBub3Qgc3BlY2lmaWVkIHZpYSBtYWtlLgoJICBGaXhlcyAjNjA5OTQxLgoKMjAxMC0wMi0xNSAyMzowMjo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogcHJlZmVyIHNob3J0IGRlc2MgZnJvbSBHc3RFbGVtZW50RGV0YWlscwoKMjAxMC0wMi0xNSAwMToyNDoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBjaHVuayBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEwLTAyLTEzIDE1OjI4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGRhdGF1cmlzcmMKCSAgUmVxdWlyZXMgZml4ZXMgZnJvbSBjb3JlIGdpdCwgc28gYnVtcCBjb3JlIHJlcXVpcmVtZW50IHRvIGdpdCBhcyB3ZWxsLgoKMjAxMC0wMi0xNSAwMDozMToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgcG8gZmlsZXMgZm9yIG5ldyBjb21tZW50cwoKMjAxMC0wMi0xNSAwMDoyOTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiB3cmFwIGxvbmcgc3RyaW5nIGNvbnN0YW50cwoJICBBbmQgZml4IGluZGVudGluZyBpc3N1ZQoKMjAxMC0wMi0xNSAwMDoyMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBhZGQgc29tZSBjb21tZW50cyBmb3IgdHJhbnNsYXRvcnMgc28gdGFnIG1uZW1vbmljcyBnZXQgdHJhbnNsYXRlZCBjb3JyZWN0bHkKCSAgV2Ugd2FudCAncHJldmlldyBpbWFnZScgdHJhbnNsYXRlZCBhcyBhIG5vdW4sIG5vdCBhcyAncHJldmlldyBbdGhlXSBpbWFnZScuCgoyMDEwLTAyLTA0IDE3OjQzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MKCjIwMTAtMDItMTQgMjM6MTU6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NmRjNzkzIHRvIDQ0ZWNjZTcKCjIwMTAtMDItMTMgMTU6MTg6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVzZXQgdGhlIHdvcmtpbmcgbW9kZSB3aGVuIGdvaW5nIHRvIFJFQURZL05VTEwKCSAgVGhpcyBhbGxvd3MgcHJvcGVybHkgcmUtdXNpbmcgdHlwZWZpbmQgKGVsc2UgaXQgd291bGQgdGhpbmsgaXQncwoJICBhbHJlYWR5IGRvbmUgdGhlIHR5cGVmaW5kaW5nIHdoZW4gYmVpbmcgcmUtdXNlZCB3aXRoIGFub3RoZXIKCSAgc3RyZWFtKS4KCjIwMTAtMDEtMjIgMTE6Mzg6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZHMgYSB0ZXN0IGZvciBfZmlsbAoKMjAxMC0wMS0yMiAwOToxOTozMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXdyaXRlcjogYWRkIF9maWxsIGZ1bmN0aW9uCgkgIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gR3N0Qnl0ZVdyaXRlciB0aGF0IHdyaXRlcwoJICBhIGNvbnN0YW50IHZhbHVlIHRvIGEgbWVtb3J5IGFyZWEgKGFrYSBtZW1zZXQpLgoJICBVc2VmdWwgZm9yIGFkZGluZyBwYWRkaW5nIHRvIGJ1ZmZlcnMuCgkgIEFsc28gdXBkYXRlcyAuZGVmIGZpbGUgYW5kIGRvY3MuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGwoKQoKMjAxMC0wMS0yOCAxMTo1NzozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQXZvaWQgbWVzc2luZyBwYWRzIGFjdGl2YXRpb24KCSAgVHlwZWZpbmQgbWlnaHQgbWVzcyB1cCBwYWRzIG1vZGVzIChwdWxsL3B1c2gpIGlmIGEKCSAgZG93bnN0cmVhbSBlbGVtZW50IGlzIHBsdWdnZWQgYW5kIGl0cyBwYWRzIGFjdGl2YXRlZAoJICBpbiAnc3RlcCAyJyBvZiB0eXBlZmluZCBwYWRzIGFjdGl2YXRpb24uCgkgIFRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgc3RlcHMgZG9uJ3QgY2hlY2sKCSAgaWYgd2UgYWxyZWFkeSBlbWl0dGVkIHR5cGVmb3VuZCBkdWUgdG8gdXBzdHJlYW0gc2V0dGluZwoJICBjYXBzIG9uIGJ1ZmZlcnMgYmVpbmcgcHVsbGVkIGluIHRoZSB0eXBlZmluZCBoZWxwZXJzLgoJICBBdm9pZCB0aGF0IGJ5IGNoZWNraW5nIGlmIHR5cGVmb3VuZCBpcyBhbHJlYWR5IGVtbWl0ZWQuCgkgIEZpeGVzICM2MDgwMzYKCjIwMTAtMDItMTIgMTQ6NDk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBNYWtlIGxvY2tpbmcgb2YgdGhlIHNlZ21lbnQgYSBiaXQgbW9yZSBzdHJpY3QgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgkgIFVwZGF0aW5nIHRoZSBzZWdtZW50IHZhbHVlcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGlsZSBob2xkaW5nIHRoZQoJICBTVFJFQU1fTE9DSyBhbmQgT0JKRUNUX0xPQ0suIFRoaXMgbWVhbnMsIHJlYWRpbmcgY2FuIGJlIGRvbmUgYXMKCSAgbG9uZyBhcyBvbmUgb2YgdGhlbSBpcyBoZWxkLCBub3QgYm90aCwgd2hpY2ggcmVtb3ZlcyBzb21lIGxvY2stdW5sb2NrCgkgIGJsb2NrcyBmcm9tIHBlcmZvcm1hbmNlIGNyaXRpY2FsIGNvZGUgcGF0aHMuCgkgIEFsc28gZG9jdW1lbnQsIHRoYXQgZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQoKSAqbXVzdCogYmUgY2FsbGVkIGluCgkgIHN0YXRlcyA8PSBSRUFEWSBhbmQgYWRkIGFuIGFzc2VydGlvbiBmb3IgdGhpcy4gQ2hhbmdpbmcgdGhlIGZvcm1hdAoJICBsYXRlciB3aWxsIGNvbXBsZXRlbHkgbWVzcyB1cCB0aGUgc2VnbWVudCBpbmZvcm1hdGlvbi4KCjIwMTAtMDItMDggMDk6MTI6MDEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IHNldmVyYWwgdHlwbyBmaXhlcwoJICBGaXhlcyAjNjA5Mjg2LgoKMjAxMC0wMi0wOSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUHJvdGVjdCBzZWdtZW50IHZhbHVlcyBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzIGZyb20gZGlmZmVyZW50IHRocmVhZHMKCSAgVGhpcyBjb3VsZCBoYXBwZW4gZWFzaWx5IGluIHRoZSBxdWVyeSBmdW5jdGlvbnMgb3Igd2hlbiB0aGUgc2l6ZSBpcyBzZXQKCSAgb24gYXBwc3JjIGZyb20gc29tZSBub24tc3RyZWFtaW5nIHRocmVhZC4KCjIwMTAtMDItMDQgMjE6MTE6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBQcm90ZWN0IGludGVybmFsIGZpZWxkcyBmcm9tIGNvbmN1cnJlbnQgY2hhbmdlcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIEZpeGVzIGJ1ZyAjNjA4ODc3LgoKMjAxMC0wMi0xMSAyMDoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IGxlYWsgdGltZW91dCBHU291cmNlCgoyMDEwLTAyLTExIDAwOjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IGZsZXNoIG91dCByZWxlYXNlIGRvYyBzb21lIG1vcmUKCjIwMTAtMDItMTEgMDE6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTUFJTlRBSU5FUlM6CgkgIFVwZGF0ZSBNQUlOVEFJTkVSUywgYWRkIG15c2VsZgoKMjAxMC0wMi0xMSAxOTo0OTowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoJICBTbHVzaHkgZnJlZXplIHJlbWFpbnMgaW4gZWZmZWN0LgoKPT09IHJlbGVhc2UgMC4xMC4yNiA9PT0KCjIwMTAtMDItMTAgMTk6MTc6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yNgoKMjAxMC0wMi0xMCAxNTozMjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDItMDkgMTU6NTI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGRlZmluZSBHU1RfUExVR0lOX1NDQU5ORVJfSU5TVEFMTEVEIGluIHdpbjMyIGNvbmZpZy5oCgkgIEV2ZW4gaWYgaXQncyBub3QgdXNlZCwgaXQgc3RpbGwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgdGhpbmdzIHRvCgkgIGNvbXBpbGUuCgoyMDEwLTAyLTA5IDEwOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogTVNWQyBkb2Vzbid0IHNlZW0gdG8gbGlrZSAjd2FybmluZwoJICBWaXN1YWwgU3R1ZGlvIGNvbXBsYWlucyBhYm91dCAiaW52YWxpZCBwcmVwcm9jZXNzb3IgY29tbWFuZCAnd2FybmluZyciCgkgIGV2ZW4gaWYgdGhlIGlmZGVmIGRvZXNuJ3QgdHJpZ2dlciwgc28ganVzdCByZW1vdmUgdGhpcyBhZ2Fpbi4KCjIwMTAtMDItMTAgMTQ6NDA6MTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBGaXggbXVsdGlxdWV1ZSB0ZXN0IGZvciBsYXRlc3QgY29tbWl0cy4KCSAgVGhlIHByb2JsZW0gbGllcyBpbiB0aGUgZmFjdCB0aGF0IG11bHRpcXVldWUgd2lsbCBub3cgb3BlcmF0ZSBzb21ld2hhdAoJICBzaW1pbGFybHkgdG8gdGhlIGZsb3cgYWdncmVnYXRpb24gbG9naWMgb2YgZGVtdXhlcnMgYW5kIHRoZXJlZm9yZQoJICB3aWxsIHN0b3BwIHdoZW5ldmVyIGFsbCBkb3duc3RyZWFtIHBhZHMgcmV0dXJuIE5PVF9MSU5LRUQgYW5kL29yCgkgIFVORVhQRUNURUQgYW5kIHRoZXJlJ3Mgbm8gbW9yZSBidWZmZXJzIHRvIHB1c2guCgkgIFRoZSBsYXRlc3QgY29tbWl0cyBzaG91bGQgbm90IGFmZmVjdCBhbnkgcmVndWxhciB1c2UtY2FzZSwgYnV0IHRoZSBidWcKCSAgcmVwb3J0IHdpbGwgYmUga2VwdCBvcGVuIHNvIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIgY2FuIGJlIHJlLWVzdGFibGlzaGVkCgkgIGlmIG5lZWRlZC4KCSAgRml4ZXMgIzYwOTQ4NgoKMjAxMC0wMi0wOSAxNTo1MToxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBzdG9wIHRocmVhZHMgb24gVU5FWFBFQ1RFRCBhbmQgZm9yd2FyZCBmbG93IHJldHVybnMuCgkgIFdoZW4gYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBHU1RfRkxPV19VTkVYUEVDVEVEIHdlIHdhbnQgdG86CgkgICogbGV0IHRoZSBkYXRhcXVldWUgdGFzayBydW5uaW5nCgkgICogZm9yd2FyZCB0aGUgZmxvdyByZXR1cm4gdXBzdHJlYW0uCgkgIFRoaXMgYWxsb3dzIHVwc3RyZWFtIGVsZW1lbnRzIHRvIHB1c2ggRU9TLCBhbmQgaGF2ZSB0aGF0IEVPUyBldmVudCBjb21lCgkgIGRvd25zdHJlYW0uCgkgIEZpeGVzICM2MDkyNzQKCjIwMTAtMDItMDkgMTM6MzU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXZlcnQgIm11bHRpcXVldWU6IGhhbmRsZSBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gYmV0dGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGZiZGY0ZGNlZGFkODY5MmYxZTNkODgzODU1MTE4ODk4N2U0NjJlNzQuCgkgIFBhcnRseSBmaXhlcyAjNjA5Mjc0CgoyMDEwLTAxLTI4IDA3OjI3OjQ5ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGUuc2g6IEZpeCBpc3N1ZXMKCjIwMTAtMDItMDcgMDk6NTk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgUmV2ZXJ0ICJkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGFlNjBkMDZlOWU0MDFkMWVkNGRlNWVmMjViNWMyODNkYjA2OTZhMzEgKGZpeGVzOiAjNjA5MTY2KQoKMjAxMC0wMi0wNCAxODozMDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNS4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTA0IDE3OjQ1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3BsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB0cmFuc2xhdGlvbiB1cGRhdGVzCgoyMDEwLTAyLTAxIDEyOjUwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBBU0NJSSBhcnQgc28gdGhhdCBpdGVyYXRvcnMgYXJlIGFsaWduZWQgcHJvcGVydHkgdG8gdGhlIGRpYWdyYW0KCjIwMTAtMDItMDEgMTc6NDA6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGdzdGJ5dGV3cml0ZXI6IEZpeCBkaWZmZXJlbnQgZnVuY3Rpb24gbmFtZXMgaW4gLmggYW5kIC5jCgkgIGdzdF9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2J1ZmZlciB3YXNuJ3QgZGVjbGFyZWQKCSAgaW4gLmgsIGluc3RlYWQgdGhlcmUgd2FzIF9yZXNldF9hbmRfZ2V0X2RhdGFfYXNfYnVmZmVyLgoJICBSZXBsYWNlIGl0IHdpdGggdGhlIHJlYWwgZnVuY3Rpb24gbmFtZSwgdGhhdCBpcyBzbWFsbGVyCgkgIGFuZCBtYXRjaGVzIGdzdF9ieXRlX3dyaXRlcl9mcmVlX2FuZF9nZXRfYnVmZmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDg3MjYKCjIwMTAtMDEtMzEgMTc6MzA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBidWZmZXIgbGlzdCBkb2NzCgoyMDEwLTAxLTMwIDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBmaXggdHlwbyBpbiB3YXJuaW5nIG1lc3NhZ2UKCSAgU3BvdHRlZCBieSBic3JlZXJlbmpAZ21haWwuY29tLgoJICBGaXhlcyAjNjA4NDQyLgoKMjAxMC0wMS0zMCAxNToxNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE1ZDQ3YTYgdG8gOTZkYzc5MwoKMjAxMC0wMS0zMCAxMzo0NTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IGRvbid0IHNwZXcgd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKXMgaWYgR0xpYiA+PSAyLjIzLjIKCSAgTGF0ZSBnX3RocmVhZF9pbml0KCkgaXMgZmluZSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMgYW5kIGRvbmUgYXV0b21hdGljYWxseQoJICBmcm9tIGdfdHlwZV9pbml0KCkgdGhlcmUsIHNvIGRvbid0IHdhcm4gaWYgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBjYWxsZWQKCSAgZ190aHJlYWRfaW5pdCgpIHlldCB3aGVuIGdzdF9pbml0KCkgaXMgY2FsbGVkIHdpdGggbmV3IEdMaWIgdmVyc2lvbnMuCgkgIEZpeGVzICM2MDgzOTguCgoyMDEwLTAxLTI5IDA5OjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogZG9uJ3QgcHV0IC1ER19USFJFQURTX01BTkRBVE9SWSBpbnRvIG91ciBwa2ctY29uZmlnIENGTEFHUwoJICBJZiB3ZSBmb3JjZSAtREdfVEhSRUFEU19NQU5EQVRPUlkgb250byBhcHBzLCB0aGVuIGdfdGhyZWFkX3N1cHBvcnRlZCgpCgkgIHdpbGwgYWx3YXlzIGV2YWx1YXRlIHRvIFRSVUUsIHNvIHRoZSB0eXBpY2FsIHRocmVhZCBpbml0aWFsaXNhdGlvbgoJICBib2lsZXJwbGF0ZSBjb2RlIGlmICghZ190aHJlYWRfc3VwcG9ydGVkKCkpIGdfdGhyZWFkX2luaXQoTlVMTCk7IHdpbGwKCSAgbm8gbG9uZ2VyIHdvcmssIGFuZCB0aGUgdGhyZWFkaW5nIHN5c3RlbSBub3QgYmUgaW5pdGlhbGlzZWQgYW5kIHVzCgkgIHByaW50aW5nIGEgd2FybmluZyBpbiBnc3RfaW5pdC4gVGhpcyBtYXkgYmUgZmluZSBpbiBtb3N0IGNhc2VzLCBzaW5jZQoJICBsYXRlIGluaXRpYWxpc2F0aW9uIGlzIGFsbG93ZWQgYW5kIGF1dG9tYXRpY2FsbHkgZG9uZSBpbiBnX3R5cGVfaW5pdCgpCgkgIHNpbmNlIEdMaWIgMi4yMy4yLCBidXQgbGV0J3MgYmUgY2F1dGlvdXMgYW5kIG9ubHkgdXNlIHRoaXMgZGVmaW5lIHdoZW4KCSAgY29tcGlsaW5nIEdTdHJlYW1lciBpdHNlbGYuCgkgIFNlZSAjNjA4Mzk4LgoKMjAxMC0wMS0yOCAxNTo1NToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVGFrZSBzdGFydF90aW1lIGFmdGVyIGNoYWluaW5nIHVwIHRvbwoJICBSZWZhY3RvciB0aGUgY29kZSB0byB0YWtlIHRoZSBjdXJyZW50IHN0YXJ0X3RpbWUgd2hlbiBnb2luZyB0byBQQVVTRUQuCgkgIE1ha2Ugc3VyZSB3ZSBhbHNvIGNhbGwgdGhlIHN0YXJ0X3RpbWUgdXBkYXRlIGNvZGUgYWZ0ZXIgd2UgY2hhaW5lZCB1cCB0byB0aGUKCSAgcGFyZW50IGJpbi4KCSAgRml4ZXMgIzYwNzg0MgoKMjAxMC0wMS0yOCAwMDowNzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogYWRkIHN0YXJ0IGZ1bmN0aW9uIHNvIHdlIGNhbiBlcnJvciBvdXQgcHJvcGVybHkgaWYgbm8gdXJpIGlzIHNldAoJICBBbHNvIHNhdmUgYSBzZXQgVVJJIGFmdGVyIGl0IGhhcyBiZWVuIHBhcnNlZCBzdWNjZXNzZnVsbHksIHNvIHRoYXQgX2dldF91cmkoKQoJICBhY3R1YWxseSB3b3Jrcy4KCjIwMTAtMDEtMjcgMjM6NDY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGRvbid0IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHNldHRpbmcgdGhlIFVSSSBmYWlsZWQKCSAgVGhlcmUncyBhIGdib29sZWFuIHJldHVybiBmb3IgdGhhdCwgYW5kIHRoZSBtZXNzYWdlcyBkb24ndCByZWFsbHkKCSAgYWRkIGFueXRoaW5nIHVzZWZ1bC4KCjIwMTAtMDEtMjcgMjM6Mzk6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IG11c3QgcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHVzaW5nIEdTVF9FTEVNRU5UX0VSUk9SCgoyMDEwLTAxLTI2IDE4OjU5OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yNS4yIHByZS1yZWxlYXNlCgoyMDEwLTAxLTI3IDAwOjIzOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVja3M6IGZpeCBzcHVyaW91cyBnaG9zdCBwYWQgY2hlY2sgZmFpbHVyZQoKMjAxMC0wMS0yNiAxOTozNTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSB3aW5kb3dzIGhlYWRlcnMgdG8gbGF0ZXN0IHZlcnNpb24KCjIwMTAtMDEtMjYgMTk6MzI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogbWlub3IgdXBkYXRlIHRvIHJlbGVhc2Ugbm90ZXMKCjIwMTAtMDEtMjYgMTg6NDU6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9uIGZpbGVzCgoyMDEwLTAxLTI2IDE4OjM5OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgdGVzdHM6IGZpeCB3YXJuaW5nIGluIHJ0cG9vbC10ZXN0CgkgIFRoZSBzdHJlYW0gc3RhdHVzIG1lc3NhZ2Ugb2JqZWN0IG1heSBiZSBvZiBhIG5vbi1HT2JqZWN0IHR5cGUsIGUuZy4KCSAgR19UWVBFX1BPSU5URVIgKHNlZSBHc3RBdWRpb1NyYyksIHNvIHByaW50IHRoYXQgcHJvcGVybHkgaW5zdGVhZAoJICBvZiBhc3N1bWluZyB0aGUgdmFsdWUgaG9sZHMgYW4gb2JqZWN0LgoKMjAxMC0wMS0yNiAxMjo0MzowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGhhbmRsZSBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gYmV0dGVyCgkgIFdoZW4gd2UgcmVjZWl2ZSBhbiBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gZnJvbSBkb3duc3RyZWFtLCB3ZSBtdXN0IG5vdCBzaHV0ZG93bgoJICB0aGUgcHVzaGluZyB0aHJlYWQgYmVjYXVzZSB1cHN0cmVhbSB3aWxsIGF0IHNvbWUgcG9pbnQgcHVzaCBhbiBFT1MgdGhhdCB3ZSBzdGlsbAoJICBuZWVkIHRvIHB1c2ggZnVydGhlciBkb3duc3RyZWFtLgoJICBUbyBhY2hpZXZlIHRoaXMsIGNvbnZlcnQgdGhlIFVORVhQRUNURUQgcmV0dXJuIHZhbHVlIHRvIE9LLiBBZGQgYSBmaXhtZSBzbyB0aGF0CgkgIHdlIGltcGxlbWVudCB0aGUgcmlnaHQgbG9naWMgdG8gcHJvcGFnYXRlIHRoZSBmbG93cmV0dXJuIHVwc3RyZWFtIGF0IHNvbWUgcG9pbnQuCgkgIEFsc28gY2xlYW4gdXAgdGhlIHVuaXQgdGVzdCBhIGxpdHRsZS4KCSAgRml4ZXMgIzYwODEzNgoKMjAxMC0wMS0yNiAwODo1MjoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogRml4IGJhc2ljcy1idXMgZG9jcwoJICBGaXggd3JvbmcgaW5mb3JtYXRpb24gYWJvdXQgYnVzIHdhdGNoIGZ1bmN0aW9ucyBpbiB0aGUKCSAgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgbWFudWFsLgoJICBGaXhlcyAjNjA4MTI3CgoyMDEwLTAxLTI1IDEyOjEyOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBSZW1vdmUgcm9sZSBhdHRyaWJ1dGUgZnJvbSBsaW5rcwoKMjAxMC0wMS0yNSAxMTo1NjozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogQWRkIGRvY3MgYW5kIGludGVncmF0ZSBpbnRvIGJ1aWxkIHN5c3RlbQoJICBGaXhlcyBhZ2FpbiBidWcgIzU5Njg4NS4KCjIwMTAtMDEtMjUgMTE6MTI6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5oOgoJICBkYXRhdXJpc3JjOiBBZGQgZGF0YTogVVJJIHNvdXJjZSBlbGVtZW50CgkgIFRoaXMgaXMgc2xpZ2h0bHkgYmFzZWQgb24gdGhlIFdlYktpdCBkYXRhOiBVUkkgc291cmNlCgkgIGJ1dCBzdXBwb3J0cyBtb3JlIHBhcnRzIG9mIFJGQyAyMzk3LgoJICBGaXhlcyBidWcgIzU5Njg4NS4KCjIwMTAtMDEtMjQgMjM6MTI6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IGFsc28gcmVtb3ZlIHByaXZhdGUgZnVuY3Rpb24gZnJvbSBkZWYgZmlsZQoKMjAxMC0wMS0yNCAyMzowNDoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgYSBpbnRlcmZhY2Ugdm1ldGhvZCBpbXBsZW1lbnRhdGlvbiBzdGF0aWMKCSAgVGhpcyBzaG91bGQgbm90IGNhdXNlIGFueSB0cm91YmxlcyAtIHRoZSBtZXRob2RzIHdhc24ndCBpbiBhbnkgaGVhZGVyLgoKMjAxMC0wMS0yNCAyMjoyMjowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogcmVtb3ZlIDsgYWZ0ZXIgfQoKMjAxMC0wMS0yMiAxODowMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHNvbWUgZG9jcyB0byBtYXJrIG5ldyBwcm9wZXJ0eQoKMjAxMC0wMS0yMiAxNzo1NTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRkIG9wdGlvbiB0byByZW1vdmUgdGhlIHRlbXAtZmlsZQoJICBBZGQgYW4gb3B0aW9uIHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSB0ZW1wIGZpbGUgKFRSVUUgYnkgZGVmYXVsdCkuIFRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBrZWVwIHRoZSB0ZW1wIGZpbGUgYnkgb3RoZXIgbWVhbnMKCSAgdGhhbiBoYXJkbGlua2luZyBvciBob2xkaW5nIGFuIGZkIG9wZW4uCgkgIEZpeGVzICM2MDc3MzkKCjIwMTAtMDEtMjIgMDI6MDI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGxlYWsgdXJpIHN0cmluZwoKMjAxMC0wMS0yMSAxNjoxOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBnc3RpbmRleDogcmV0YWIgLmggZmlsZQoKMjAxMC0wMS0yMCAxNDoxMzoxMSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFJ1biBnX3RocmVhZF9pbml0KCkgdW5jb25kaXRpb25hbGx5CgkgIFNpbmNlIHdlIGRlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZLCBnX3RocmVhZF9zdXBwb3J0ZWQoKSBldmFsdWF0ZXMgdG8KCSAgVFJVRSB1bmNvbmRpdGlvbmFsbHksIHNvIGNhbGxpbmcgZ190aHJlYWRfaW5pdCgpIG5ldmVyIGhhcHBlbmVkLgoKMjAxMC0wMS0yMCAxMDo1ODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgb24gd2luMzIKCSAgTW92ZSB2YXJpYWJsZSB0aGF0J3Mgb25seSB1c2VkIG9uIHVuaXggaW50byB0aGUgdW5peCBibG9jayBzbyB0aGF0CgkgIHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluIGFib3V0IHRoZSB1bnVzZWQgdmFyaWFibGUgb24gd2luMzIKCSAgKHNlZSAjNTk3NjYyKS4KCjIwMTAtMDEtMjAgMDk6NDU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IHRyeSBzY2FubmVyIHNldCB2aWEgZW52IHZhciBiZWZvcmUgdXNpbmcgdGhlIGluc3RhbGxlZCBvbmUKCSAgSWYgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQsIHdlIHNob3VsZCB0cnkKCSAgdGhlIHNjYW5uZXIgc3BlY2lmaWVkIHRoZXJlIGZpcnN0LCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IHNjYW5uZXIgYmluYXJ5CgkgIGlzIHVzZWQgZm9yIHVuaW5zdGFsbGVkIHNldHVwcyBhbmQgYnVpbGRzIGZyb20gc291cmNlIHdoZW4gdGhlcmUncwoJICBhbHJlYWR5IGFuIGluc3RhbGxlZCB2ZXJzaW9uLgoKMjAxMC0wMS0yMCAwNjo1ODoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYnVpbGQ6IERlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZIGV2ZXJ5d2hlcmUKCSAgV2UgcmVxdWlyZSB0aHJlYWRzIHRvIGJlIHN1cHBvcnRlZCBpbiBhbnkgY2FzZSBhbmQgZGVmaW5pbmcgdGhpcwoJICB3aWxsIHNpbXBsaWZ5IHRoZSBtdXRleCwgY29uZGl0aW9uIHZhcmlhYmxlLCBldGMuIG1hY3JvcyBmcm9tIGd0aHJlYWQKCSAgdG8gbm90IGFsd2F5cyBjaGVjayBpZiB0aHJlYWRzIGFyZSByZWFsbHkgc3VwcG9ydGVkLgoJICBGaXhlcyBidWcgIzYwNzQ4MS4KCjIwMTAtMDEtMDggMjA6NTY6MTggKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBwbHVnaW5sb2FkZXI6IGRpc2FibGUgZXh0ZXJuYWwgcGx1Z2luIGxvYWRlciBvbiBXaW5kb3dzIHVudGlsIGl0IGlzIHBvcnRlZCBwcm9wZXJseQoJICBTZWUgIzU5NzY2Mi4KCjIwMTAtMDEtMjAgMDE6MDk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBnc3RfcHJpdmF0ZS5oOiBtYWtlIHN1cmUgZ3N0X3ByaXZhdGUuaCBpcyBpbmNsdWRlZCBiZWZvcmUgZ2xpYi5oCgkgIEZvciB0aGUgcmVhc29uIG91dGxpbmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZ3N0X3ByaXZhdGUuaCAoaW5saW5lCgkgIGZ1bmN0aW9ucyBpbiBnbGliIG1heSBuZWVkIHRoZSBnX2xvZ19kb21haW4gdmFyaWFibGUpLiBBbHNvIGluY2x1ZGUKCSAgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgdXNpbmcgYW55IEdfT1NfKiBkZWZpbmVzLCBlc3AuIGluIHBsdWdpbiBsb2FkZXIuCgoyMDEwLTAxLTIwIDAxOjMzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBtaW5vciBndGstZG9jIG1hcmt1cCBmaXhlcwoKMjAxMC0wMS0yMCAwMDo1MzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE0Y2VjODkgdG8gMTVkNDdhNgoKMjAxMC0wMS0xOSAxNjozOTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgZG9jczogc21hbGwgZG9jcyB1cGRhdGVzCgoyMDEwLTAxLTE5IDE0OjA3OjIzICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGRpcmVjdGx5IHNldCB0aGUgY2FwcyB3aGVuIHB1c2hpbmcgYnVmZmVyIHdpdGggZGlmZmVyZW50IGNhcHMuCgkgIFRoaXMgY2hlY2sgaXMgbm90IG5lY2VzYXJyeSBhcyB3ZSBhcmUgbm90IG5lZ290aWF0aW5nIGFueW1vcmUuIEFuZCBpdCBjYW4KCSAgYmUgd3JvbmcgaWYgdXBzdHJlYW0gY2FuJ3QgcHJvZHVjZSB0aGlzIGNhcHMgYW55bW9yZSwgYnV0IGRvd25zdHJlYW0gY2FuCgkgIHByb2Nlc3MgdGhlbSBmaW5lLgoKMjAxMC0wMS0xOCAxMzo1NzoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBUaGUgR1ZhbHVlIGNvbGxlY3Rpb24gZnVuY3Rpb24gY2FuIG5vdCBhc3N1bWUgdGhhdCB0aGUgZGVzdGluYXRpb24gaXMgaW5pdGlhbGl6ZWQKCSAgLi4uYW5kIGl0IHdpbGwgdXN1YWxseSBiZSBlaXRoZXIgZmlsbGVkIGJ5IHplcm9lcyBvciByYW5kb20gdmFsdWVzLgoJICBGaXhlcyBidWcgIzYwNzI4My4KCjIwMTAtMDEtMTYgMjE6NTI6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE9ubHkgdXNlIHN1Z2dlc3RlZCBjYXBzIGluIGJ1ZmZlciBhbGxvY2F0aW9uIGlmIGEgc2l6ZSB3YXMgc3VnZ2VzdGVkIHRvbwoKMjAxMC0wMS0xNiAxOTo0MToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIHN1cGVyZmx1b3VzIGd1YXJkIGFnYWluc3QgTlVMTAoJICBBbGwgY2FsbGVycyBvZiB0aGlzIHN0YXRpYyBmdW5jdGlvbiBhbHJlYWR5IGNoZWNrIGZvciBOVUxMLW5lc3MKCSAgdGhlbXNlbHZlcywgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2FpbiAoYW5kIGlmIHdlIGRvIGl0LCB3ZSBzaG91bGQKCSAgcHJvYmFibHkgZG8gc28gYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIHBvaW50ZXIgZm9yIHRoZSBmaXJzdCB0aW1lKS4KCjIwMDktMTItMTcgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzZSBzb21lIGdldHRlcnMKCSAgQXZvaWQgY2hlY2tpbmcgdGhlIEdUeXBlIG9mIHRoZSB2YWx1ZSB0d2ljZSAob25jZSBvbiBvdXIgc2lkZSBhbmQKCSAgb25jZSBpbiBnX3ZhbHVlX2dldF8qKCkpIGJ5IGJ5LXBhc3NpbmcgZ192YWx1ZV9nZXQoKSBhbmQgYWNjZXNzaW5nCgkgIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5LgoKMjAxMC0wMS0xNSAxODozNjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHVwZGF0ZSBkb2NzIGEgbGl0dGxlCgoyMDEwLTAxLTE1IDAwOjQ2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHJlbGVhc2UgZG9jcyB1cGRhdGUKCjIwMTAtMDEtMTQgMjA6MTk6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBidWZmZXJzIHdpdGggTlVMTCBjYXBzIGNvcnJlY3RseQoJICBUaGlzIG1lYW5zIHRoYXQgdGhlIGNhcHMgZGlkbid0IGNoYW5nZSBzbyBkb24ndCB0cnkgdG8gaGFuZGxlCgkgIHRoZSBOVUxMIGNhcHMgYXMgdGhlIG5ldyBjYXBzLgoKMjAxMC0wMS0xNCAxMDo0NDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgZG9jczogTW92ZSBmaWVsZCBzcGVjaWZpYyBTaW5jZSBtYXJrZXJzIGF0IHRoZSBzYW1lIGxpbmUKCSAgRml4ZXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmdzIGFib3V0IFNpbmNlIGJlaW5nIGRlZmluZWQgbXVsdGlwbGUgdGltZXMuCgoyMDEwLTAxLTEzIDEwOjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkgIGZhcTogcmVtb3ZlIHJldmlzaW9uIGhpc3RvcnkgdGhhdCBubyBvbmUgdXBkYXRlcyBvciBjYXJlcyBhYm91dCBhbnl3YXkKCjIwMTAtMDEtMTMgMDk6MzI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogZml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG9uIGNnaXQKCSAgRml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG5vdyB0aGF0IGl0J3MgYmVlbiBtb3ZlZCwgYW5kIGZpeCBhIHR5cG8KCSAgd2hpbGUgd2UncmUgYXQgaXQuIEFsc28gYWRkIGEgbmV3IHNlY3Rpb24gdG8gJ0J1aWxkaW5nIEdTdHJlYW1lciBmcm9tCgkgIGdpdCcgdGhhdCBwb2ludHMgdG8gdGhlICdIb3cgZG8gSSBkZXZlbG9wIGFnYWluc3QgYW4gdW5pbnN0YWxsZWQgY29weQoJICBvZiBHU3RyZWFtZXInIHNlY3Rpb24uCgoyMDEwLTAxLTEzIDEwOjMyOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBSRUFETUU6CgkgIGRvY3M6IHdlJ3JlIGluIGdpdCBzaW5jZSBhIHdoaWxlCgoyMDEwLTAxLTEzIDEwOjMxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBtb3ZlIGdzdC11bmluc3RhbGxlZCBmcm9tIGRvY3MvZmFxIHRvIHNjcmlwdHMKCSAgRG9uJ3QgaW5jbHVkZSB0aGUgbG9uZyBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGluIHZlcmJhdGltIGluIHRoZSBmYXEgYW55bW9yZQoJICAodGhlcmUgaXMgYSBsaW5rIHRvIGNnaXQpLiBEaXN0IHRoZSBzY3JpcHQgdW5kZXIgaXRzIG5ldyBsb2NhdGlvbi4KCjIwMTAtMDEtMTIgMjE6MzQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIG1vcmUgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWVzCgoyMDEwLTAxLTEyIDIwOjIxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBzdHJkdXAvZnJlZSB3aGVuIHJlYWRpbmcgdGhlIGJpbmFyeSByZWdpc3RyeQoJICBTdHJpbmdzIGluIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXJlIE5VTC10ZXJtaW5hdGVkLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlbQoJICBkaXJlY3RseSBpZiB3ZSBvbmx5IG5lZWQgdGhlbSB0ZW1wb3JhcmlseSwgYW5kIGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvY3MKCSAgYW5kIGZyZWVzLgoKMjAxMC0wMS0xMiAxNzozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogdXNlIG5ldyB0eXBlZmluZCBmdW5jdGlvbgoJICBSZWZhY3RvciBhIGxpdHRsZS4KCSAgVXNlIHRoZSBuZXcgdHlwZWZpbmQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIHRvIHNwZWVkIHVwCgkgIHR5cGVmaW5kaW5nLgoKMjAxMC0wMS0xMiAxNzozNDozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHR5cGVmaW5kOiBhZGQgYSBuZXcgbWV0aG9kIHRoYXQgYWxzbyB1c2VzIHRoZSBmaWxlIGV4dGVuc2lvbgoJICBBZGQgYSBtZXRob2QgdG8gcGVyZm9ybSBnZXRfcmFuZ2UgdHlwZWZpbmRpbmcgdGhhdCBhbHNvIHVzZXMgdGhlCgkgIHVyaS9sb2NhdGlvbiBleHRlbnNpb24gYXMgYW4gZXh0cmEgaGludC4gSXQgd2lsbCBmaXJzdCB0cnkgdG8gY2FsbCB0aGUKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG9mIHRoZSBmYWN0b3JpZXMgdGhhdCBoYW5kbGUgdGhlIGdpdmVuIGV4dGVuc2lvbi4gVGhlIHJlc3VsdAoJICBpcyB0aGF0IGluIHRoZSBjb21tb24gY2FzZSwgd2Ugb25seSBjYWxsIG9uZSB0eXBlZmluZCBmdW5jdGlvbiwgd2hpY2ggc3BlZWRzIHVwCgkgIHRoZSB0eXBlZmluZGluZyBhIGxvdC4KCjIwMTAtMDEtMTEgMTQ6NTg6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBRb1MgZG9jdW1lZW50CgkgIEFkZCBzb21lIGlkZWFzIGFib3V0IGEgbmV3IFFvUyBtZXNzYWdlLgoJICBTZWUgYWxzbyAjMzIyOTQ3CgoyMDEwLTAxLTExIDExOjM4OjMyICswMTAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBtYWtlIHJlbGVhc2VfcGFkIHRocmVhZHNhZmUKCSAgUHJvdGVjdCB0aGUgLT5yZW1vdmVkIGZpZWxkIHdpdGggdGhlIG9iamVjdCBsb2NrIGFzIHdlbGwuIFRha2UgdGhlIERZTiBsb2NrCgkgIGVhcmxpZXIgc28gdGhhdCB3ZSBjYW4gbWFyayB0aGUgcGFkIHJlbW92ZWQgYW5kIGF2b2lkIGEgcmFjZSBpbiBwYWRfYWxsb2MuCgkgIEZpeGVzICM2MDY0MzUKCjIwMDktMTItMTEgMTc6NDY6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDEwLTAxLTEwIDIxOjQ5OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGRlZmVyIGdldHRpbmcgdGhlIGNsYXNzZXMgdW50aWwgd2UgYWN0dWFseSBuZWVkIHRoZW0KCSAgVGhpcyBmdW5jdGlvbiBoYXMgYSBsb3Qgb2YgZWFybHkgcmV0dXJucy4gR2l2ZSB0aGVtIHNvZW0gbW9yZSBiZW5lZml0LgoKMjAxMC0wMS0xMCAyMTo0MDoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCBleHRyYSBob3AgaW4gZ3N0X2VsZW1lbnRfbGluawoJICBObyBuZWVkIHRvIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkIHdpdGggZmlsdGVyPU5VTEwsIHdoaWNoIHdvdWxkCgkgIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzKCkgaW4gdGhhdCB3YXkuIENhbGwgaXQgZGlyZWN0bHkgdG8gc2F2ZSBhIGNhbGwgYW5kCgkgIGV4cGVuc2l2ZSBnb2JqZWN0IHR5cGUgY2hlY2tzLgoKMjAxMC0wMS0xMCAxNzozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSBoZWFkZXIgZmlsZQoJICBSZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBnc3RjaGVjayBoZWFkZXIgZmlsZSB0aGF0J3Mgbm90IG5lZWRlZAoJICBhbnkgbG9uZ2VyIG5vdyB0aGF0IHdlIHNoaXAgd2l0aCBvdXIgb3duIGNvcHkgb2YgbGliY2hlY2suCgoyMDEwLTAxLTA3IDE3OjQxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1taWRpLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW1vdmUgZW1wdHkgbWlkaSBzZWN0aW9uCgoyMDEwLTAxLTA3IDEzOjQ4OjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAxMC0wMS0wNyAxMzo0Nzo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUKCjIwMTAtMDEtMDYgMjA6MDg6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRlZCBzdHJpbmdzCgoyMDEwLTAxLTA2IDIwOjA2OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IG1pbm9yIGRvY3VtZW50YXRpb24gZml4ZXMgZm9yIHJlY2VudGx5LWFkZGVkIHRhZ3MKCSAgTWVudGlvbiB0aGUgdHlwZSBvZiB0aGUgdGFnIGluIHRoZSBndGstZG9jIGJsdXJiLCBzbyBwZW9wbGUga25vdwoJICB3aGljaCBhY2Nlc3NvciBBUEkgdG8gdXNlLCBhbmQgZml4IHVwIHRoZSBkb2MgYmx1cmJzIHRvIG1hdGNoIHRoZQoJICBhY3R1YWwgdGFnIGRlZmluZS4KCjIwMTAtMDEtMDYgMjA6MDQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogZml4IHVwIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3Igc29tZSBuZXcgdGFncwoJICBGaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIHJlY2VudGx5LWFkZGVkIHRhZ3MgdG8gbWF0Y2ggdGhlCgkgIGV4aXN0aW5nIHN0cmluZ3M6IHdlIHdhbnQgc2hvcnQgbW5lbW9uaWMtbGlrZSBzdHJpbmdzIGhlcmUgdGhhdCBzdGFydAoJICB3aXRoIGEgbG93ZXIgY2FzZSBsZXR0ZXIuCgoyMDEwLTAxLTA2IDE5OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRlcHJlY2F0ZSB1c2VsZXNzIGdzdF9yZWdpc3RyeV94bWxfe3JlYWR8d3JpdGV9X2NhY2hlKCkKCSAgVGhlIG9ubHkgcmVhc29uIHRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIHN0aWxsIGFyb3VuZCBpcyB0aGF0IGF0IHNvbWUKCSAgcG9pbnQgaW4gdGhlIHBhc3QgdGhleSB3ZXJlIGluIGEgcHVibGljIGhlYWRlciwgc28gd2UgY2FuJ3QgcmVhbGx5CgkgIHJlbW92ZSB0aGVtIG5vdyBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBoYXZlIGJlZW4gcHJpdmF0ZSBhbGwgYWxvbmcKCSAgKGFuZCBhcmVuJ3QgcmVhbGx5IHBhcnRpY3VsYXJseSB1c2VmdWwpLiBTaW5jZSB0aGVzZSBhcmUganVzdCBlbXB0eQoJICBzdHVicyBub3cgdGhhdCBkbyBub3RoaW5nIGJ1dCByZXR1cm4gRkFMU0UgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbgoJICAwLjExIGFueXdheSwgd2UgbWF5IGp1c3QgYXMgd2VsbCBkZXByZWNhdGUgdGhlbSBmb3JtYWxseS4KCjIwMTAtMDEtMDYgMTk6MTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICBkb2NzOiBhZGQgU2luY2UgbWFya2VycyB0byB0YXNrIHBvb2wgZG9jcyBhbmQgZG9jdW1lbnQgdGFzayBmdW5jdGlvbgoKMjAxMC0wMS0wNiAxODo1MDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgY2hlY2tzCgkgIE1vdmUgU0hBVkVfSU5JVCBiZWhpbmQgYWxsIG90aGVyIGNoZWNrcywgaW4gcGFydGljdWxhciBBR19HU1RfQ0hFQ0tfQ0hFQ0tTLgoJICBUaGlzIHNob3VsZCBmaXggcHJvYmxlbXMgd2l0aCBoZWFkZXIgY2hlY2tpbmcgYW5kIGNoZWNraW5nIGZvciBsb2NhbHRpbWVfciwKCSAgd2hpY2ggY2F1c2VzIGNvbXBpbGF0aW9uIGVycm9ycyB3aXRoIGNsZWFuIGNoZWNrb3V0cyB3aGVyZSBjb21tb24vc2hhdmUgaGFzCgkgIG5vdCBiZWVuIGNyZWF0ZWQgeWV0IHdoZW4gdGhvc2UgY2hlY2tzIGFyZSBydW4uIEl0IHNlZW1zIGxpa2UgU0hBVkVfSU5JVAoJICBjaGFuZ2VzIHRoZSBlbnZpcm9ubWVudCBzbyB0aGF0IGNoZWNrcyBkZXBlbmRpbmcgb24gYSBjb21waWxlciBuZWVkIHNoYXZlCgkgIHRvIGV4aXN0IGF0IHRoYXQgcG9pbnQsIHdoaWNoIHdpbGwgZmFpbCBpZiBBQ19PVVRQVVQgaGFzbid0IGNyZWF0ZWQgaXQgeWV0LgoJICBGaXhlcyAjNjA1OTMwLgoKMjAxMC0wMS0wNSAwMTozNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJICBjaGVjazogcGF0Y2ggaW50ZXJuYWwgY2hlY2sgY29weSBzb21lIG1vcmUgc28gdGhhdCBmYWlsdXJlcyBhY3R1YWxseSBmYWlsCgkgIEluY2x1ZGUgdW5pc3RkLmggc28gdGhhdCBfUE9TSVhfVkVSU0lPTiBpcyBhY3R1YWxseSBkZWZpbmVkIHdoZW4KCSAgaXQgc2hvdWxkIGJlIGRlZmluZWQuIFdpdGhvdXQgdGhhdCwgc3R1ZmYgbGlrZSBmYWlsX2lmKDEpIGRvZXNuJ3QKCSAgYWN0dWFsbHkgZmFpbCwgcHJlc3VtYWJseSBiZWNhdXNlIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGRvIGluY2x1ZGUKCSAgdW5pc3RkLmggYW5kIHRoZW4gaGF2ZSBfUE9TSVhfVkVSU0lPTiBkZWZpbmVkLgoJICBGaXhlcyAjNjA0NTY1IGV2ZW4gbW9yZS4KCjIwMTAtMDEtMDUgMDA6MDk6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyByZXR1cm5zOiB0YWcKCjIwMDktMTItMzAgMjI6NTY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNldCBpdGVyYXRlX2ludGVyYWxfbGlua3MgZnVuY3Rpb24gb24gc291cmNlIHBhZAoKMjAwOS0xMi0yNyAxOTozMzoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgdW5uZWVkZWQgY2FzdHMKCjIwMDktMTItMDIgMTk6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgc3ViYnVmZmVyIHN1YmNsYXNzCgkgIE1vdmUgdGhlIHBhcmVudCBidWZmZXIgcG9pbnRlciBpbnRvIHRoZSBHc3RCdWZmZXIgc3RydWN0IHNvIHRoYXQgd2UgY2FuCgkgIHJlbW92ZSB0aGUgc3ViYnVmZmVyIGNsYXNzIGFuZCB0eXBlLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgYWxsb3dzIHVzIHRvCgkgIG1vcmUgbmF0dXJhbGx5IGltcGxlbWVudCBtZXRob2RzIHRvIGdldCB0aGUgcmVhbCB0eXBlIGFuZCBwYXJlbnQKCSAgb2YgYSBzdWJidWZmZXIgKFNlZSAjNTQ1NTAxKS4KCSAgSXQgc2hvdWxkIGFsc28gYmUgc2xpZ2h0bHkgZmFzdGVyIGJlY2F1c2UgdGhlcmUgaXMgbm8gZXh0cmEgb2JqZWN0IGhpZXJhcmNoeSB0bwoJICBpbml0aWFsaXplIGFuZCBmcmVlLgoKMjAwOS0xMi0yNCAxOToyNTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGtlZXAgYnVmZmVycyByZWZmZWQgbG9uZ2VyIHRoYW4gbmVlZGVkCgkgIE1ha2Ugc3VyZSB3ZSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGVhcmx5IHdpdGhvdXQgaW5jcmVhc2luZyBpdHMgcmVmY291bnQKCSAgd2hlbiB3ZSBnbyBpbiB0aGUgY29sbGVjdCBmdW5jdGlvbi4gVGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2YgY29waWVzIG5lZWRlZCBpbgoJICBvcmRlciB0byBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgaW4gbW9zdCBjYXNlcy4KCjIwMDktMTItMjQgMTc6MjI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0yNCAxNjo1MzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGF2b2lkIGRvaW5nIHN1YmJ1ZmZlcnMgd2hlbiB3ZSBjYW4KCSAgSW4gc29tZSBjYXNlcyB3ZSBjYW4gYXZvaWQgYWxsb2NhdGluZyBhIHN1YmJ1ZmZlciBhbmQgaW5zdGVhZCBzaW1wbHkgcmVmCgkgIHRoZSBidWZmZXIuIENhbGxlcnMgc2hvdWxkIHBlcmZvcm0gX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBpbiBhbGwKCSAgY2FzZXMgbm93LgoKMjAwOS0xMi0yNCAxNToyNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiBhZGQgYWJpbGl0eSB0byBpbnN0YWxsIGNsaXBwaW5nIGZ1bmN0aW9ucwoJICBBZGQgYSBtZXRob2QgdG8gaW5zdGFsbCBhIGNsaXBwaW5nIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gYSBidWZmZXIgaXMKCSAgcmVjZWl2ZWQuIFVzZXJzIG9mIGNvbGxlY3RwYWRzIGNhbiB0aGVuIHBlcmZvcm0gY2xpcHBpbmcgb24gdGhlIGluY29tbWluZwoJICBidWZmZXJzLgoJICBBbHNvIHJldGFiIHRoZSBoZWFkZXIgZmlsZSBhIGxpdHRsZS4KCSAgU2VlICM1OTAyNjUKCjIwMDktMTItMjQgMTU6MTM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBidWZmZXIyIGlkZWFzCgoyMDA5LTEyLTI0IDE0OjQwOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgYXZvaWQgc29tZSBtb3JlIHR5cGUgY2hlY2tzCgoyMDA5LTEyLTI0IDE0OjIyOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCBzb21lIHR5cGUgY2hlY2tzCgkgIEF2b2lkIHR5cGUgY2hlY2tzIHdoZW4gd2UgY2FuCgkgIERvbid0IG5lZWQgdG8gcGVlayB0aGUgcGFyZW50X2NsYXNzLCB0aGUgYm9pbGVycGxhdGUgZG9lcyB0aGF0IGZvciB1cy4KCjIwMDktMTItMjMgMjE6Mzk6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogYWxzbyBwcmludCBsZWFrZWQgb2JqZWN0cwoJICBNYWtlIHRoZSAtVCBvcHRpb24gYWxzbyBwcmludCB0aGUgbGVha2VkIG9iamVjdHMKCjIwMDktMTItMjMgMjE6Mzc6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGluY2x1ZGUgdHlwZSBuYW1lIGluIGxlYWtlZCBvYmplY3RzCgkgIFdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBhIEdPYmplY3QsIHByaW50IHRoZSB0eXBlIG5hbWUgYWxvbmcgd2l0aAoJICB0aGUgcG9pbnRlciBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KCjIwMDktMTItMjMgMjE6MjA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcHJvYmxlbSB3aXRoIGRlc3Ryb3kgY2FsbGJhY2sgbm90IGJlaW5nIGNhbGxlZAoJICBXaGVuIHdlIHVuYmxvY2sgYSBwYWQgd2l0aCB0aGUgc2FtZSB1c2VyX2RhdGEsIHRoZSBkZXN0cm95IGNhbGxiYWNrIGlzIG5vdAoJICBjYWxsZWQuIFRoaXMgbGVhZHMgdG8gcmVmY291bnRpbmcgbGVha3MgdGhhdCBjYW5ub3QgYmUgYXZvaWRlZC4gSW5zdGVhZCBhbHdheXMKCSAgY2FsbCB0aGUgZGVzdHJveSBub3RpZnkgd2hlbmV2ZXIgd2UgaW5zdGFsbCBhIG5ldyBwYWQgYmxvY2suCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgZml4ZXMgYSBuYXN0eSBwYWQgbGVhayBpbiBkZWNvZGViaW4yLgoJICBBbHNvIHVwZGF0ZSB0aGUgdW5pdCB0ZXN0IHRvIGhhdmUgbW9yZSBhY2N1cmF0ZSBjb21tZW50cyBhbmQgdGVzdCB0aGUgcmVxdWlyZWQKCSAgYmVoYXZpb3VyLgoKMjAwOS0xMi0yMiAyMjo1MjowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogc21hbGwgY2xlYW51cHMsIHVzZSBzb21lIEdfTElLRUxZCgoyMDA5LTEyLTIyIDE1OjI5OjI2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIG5vIHNvdXJjZSBwYWQKCjIwMDktMTItMjEgMTk6MTE6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0N2NiMjNhIHRvIDE0Y2VjODkKCjIwMDktMTItMjEgMTE6NTg6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZ3N0dGFnbGlzdDogQWRkcyBuZXcgdGFncwoJICBBZGRzIHRoZSBmb2xsb3dpbmcgbmV3IHRhZ3M6CgkgIEdTVF9UQUdfU0hPV19OQU1FCgkgIEdTVF9UQUdfU0hPV19TT1JUTkFNRQoJICBHU1RfVEFHX1NIT1dfRVBJU09ERV9OVU1CRVIKCSAgR1NUX1RBR19TSE9XX1NFQVNPTl9OVU1CRVIKCSAgR1NUX1RBR19MWVJJQ1MKCSAgR1NUX1RBR19DT01QT1NFUl9TT1JUTkFNRQoJICBHU1RfVEFHX0dST1VQSU5HCgkgIEZpeGVzICM1OTk3NTkKCjIwMDktMTItMTkgMTQ6Mjc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFsd2F5cyBjYWxsIG91ciBjaGVjayBjaGVja3MgZm9yIHRoZSBTVUJVTklUIGNvbmRpdGlvbmFsCgkgIFRoZSBTVUJVTklUIGNvbmRpdGlvbmFsIG5lZWRzIHRvIGJlIHNldCBldmVuIGlmIGNoZWNrIGlzIGRpc2FibGVkLiBBbHNvCgkgIHJlbW92ZSBhIEZJWE1FIHRoYXQgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyIC8gYWZ0ZXIgYWxsLgoKMjAwOS0xMi0xOCAyMToyODozNSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvIGl0IHdvcmtzIHdpdGggb3VyIGJ1aWxkIHN5c3RlbQoJICBGaXhlcyAjNjA0NTY1LgoKMjAwOS0xMi0xOCAyMToyNjowMSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiB1cGRhdGUgYXV0b3Rvb2xzIGFuZCBkb2NzIHN0dWZmIGZvciBuZXcgY2hlY2sgdmVyc2lvbgoKMjAwOS0xMi0xNyAyMDowOTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiB1cGRhdGUgaW50ZXJuYWwgbGliY2hlY2sgdG8gMC45LjgKCjIwMDktMTItMTUgMTg6NTU6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMDktMTItMTQgMTY6MjI6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZG9jczogbGluayBidXMgYW5kIHRhc2tzCgkgIEFkZCBhIGxpbmsgZnJvbSBidXMgc2VjdGlvbiBkb2NzIHRvIHRoZSB0YXNrIGRvY3MuIEFkZCBhIHBhcmFncmFwaCB0byB0YXNrIGRvY3MKCSAgdG8gdGVsbCBhYm91dCBtZXNzYWdlcyBhbmQgdGhlIGJ1cy4KCjIwMDktMTItMTQgMTU6MTE6NDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IGFkZCBtb3JlIGRvY3MgYXJvdW5kIEdzdFN0YXRlIGFuZCBHc3RTdGF0ZUNoYW5nZQoJICBUYWtlIHJldmlld2VkIGRvY3MgZnJvbSBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlIHRvIGhhdmUgdGhhdCBtb3JlIHByb21pbmVudAoJICBpbnNpZGUgdGhlIGFwaSBkb2NzLiBBZGQgYSBmZXcgc2VudGVuY2VzIHRvIGxpbmsgdGhpbmdzIGJldHRlciB0b2dldGhlci4KCjIwMDktMTItMTQgMTU6MTE6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogcmV2aWV3IGFuZCBmaXggc3BlbGxpbmcKCjIwMDktMTItMTQgMTE6MDU6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBnc3RlbGVtZW50ZmFjdG9yeTogc2V0IG9iamVjdCBuYW1lIGVhcmxpZXIgaWYgYXBwbGljYWJsZQoJICBTZXR0aW5nIGFuIG9iamVjdCBuYW1lIGlzIG5pY2UgZm9yIHByb3BlciBkZWJ1ZyBsb2dnaW5nLiBJZGVhbGx5IHRoaXMgd291bGQKCSAgc3RpbGwgaGFwcGVucyBlYXJsaWVyICguZS5nIHdoZW4gcGFkcyBhcmUgYWRkZWQgdG8gYW4gZWxlbWVudCwgaXRzIG5vdCB5ZXQgc2V0KS4KCjIwMDktMTItMTQgMTE6MDc6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgZml4bWUtMC4xMSBjb21tZW50CgoyMDA5LTEyLTA4IDExOjMwOjM5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IHNtYWxsIGNvbW1lbnQgY29ycmVjdGlvbgoKMjAwOS0xMi0xMSAxNjoyNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBuZXZlciBza2lwIGEgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgTmV2ZXIgc2tpcCB0aGUgc3RhdGUgY2hhbmdlIHRvIHBsYXlpbmcsIGV2ZW4gaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBpbiB0aGUKCSAgcmlnaHQgc3RhdGUuIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHdlIGFsc28gZGlzdHJpYnV0ZSB0aGUgYmFzZV90aW1lIHdoaWxlIGRvaW5nCgkgIHRoZSBzdGF0ZSBjaGFuZ2UgYW5kIHNraXBwaW5nIHRoaXMgc3RlcCB3b3VsZCBsZWF2ZSBzb21lIGVsZW1lbnRzIHdpdGhvdXQgYSBuZXcKCSAgYmFzZV90aW1lLgoJICBGaXhlcyAjNjAwMzEzCgoyMDA5LTEyLTExIDE2OjE5OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMTItMDggMTc6MjE6NDcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogcmVsZWFzZSBwYWRzIGluIGRpc3Bvc2UKCSAgTWFrZSBzdXJlIHRvIHJlbGVhc2UgYWxsIHJlcXVlc3QtcGFkcyBpbiB0aGUgZGlzcG9zZS1tZXRob2QsIGluIGNhc2Ugb2YgYQoJICBzaHV0ZG93bi1yYWNlLCB3aGVyZSBhIHBhZC1hbGxvYyBpcyBhYm91dCB0byBoYXBwZW4uCgkgIEZpeGVzICM2MDQwOTEKCjIwMDktMTItMDkgMTM6Mjc6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1c2UgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIHBvaW50ZXJzCgoyMDA5LTEyLTA5IDA3OjI1OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbigpIGZvciB0aGUgcmVtYWluaW5nIHRvb2xzCgoyMDA5LTEyLTAzIDEyOjMxOjE5ICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4KCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHkuCgkgIEZpeGVzIGJ1ZyAjNjA0MDkzLgoKMjAwOS0xMi0wOCAxNjo0MDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBwcm94eV9zZXRjYXBzIHRvIG9ubHkgaXRlcmF0ZSBwYWRzIG9mIG90aGVyIGRpcmVjdGlvbgoKMjAwOS0xMi0wOCAxNjoyMTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHByb3h5X2dldGNhcHMKCSAgTWFrZSBpdCByZXR1cm4gdGhlIHBhZHRlbXBsYXRlIGNhcHMgb24gZXJyb3JzIGFuZCBubyBwYXJlbnQuCgkgIE9ubHkgaW50ZXJzZWN0IHBhZHMgb2YgdGhlIG9wb3NpdGUgZGlyZWN0aW9uIG9mIHRoZSBzb3VyY2UgcGFkLgoKMjAwOS0xMi0wOCAxNjoxNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFJlbmFtZSBwcm94eSBpdGVyYXRvciBmb2xkIGZ1bmN0aW9ucyB0byBoYXZlIGEgbW9yZSBtZWFuaW5nZnVsIG5hbWUKCjIwMDktMTItMDggMTY6MDk6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBJZiBvbmUgaW50ZXJzZWN0aW9uIGdhdmUgZW1wdHkgY2FwcyBkb24ndCBjb250aW51ZSBpdGVyYXRpbmcgb3ZlciB0aGUgb3RoZXIgcGFkcwoKMjAwOS0xMi0wOCAxNToyNDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbGxvdyB1cGRhdGUgTkVXU0VHTUVOVCBldmVudHMgYWZ0ZXIgRU9TCgkgIFRoaXMgYWxsb3dzIGRlbXV4ZXJzIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCBzdG9wIG9mIGFuIGFscmVhZHkKCSAgZmluaXNoZWQgc3RyZWFtLiBUaGlzIG1pZ2h0IGJlIG5lZWRlZCBpZiBzb21lIHN0cmVhbSBnb2VzIHRvCgkgIEVPUyBiZWZvcmUgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb25nZXN0IHN0cmVhbSBpcyBrbm93biB0byBwcm9wZXJseQoJICBzZXQgdGhlIHNlZ21lbnQgc3RvcCBvZiBhbGwgc3RyZWFtcyB0byB0aGUgc2FtZSB2YWx1ZSBpbiB0aGUgZW5kLgoKMjAwOS0xMi0wNyAyMDo1MjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgVXNlIHBsYWluIGNhc3RpbmcgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcKCjIwMDktMTItMDcgMDk6NDU6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFVzZSBmYXN0IGdzdF92YWx1ZV9saXN0X3tzaXplfGdldF92YWx1ZX0gbWFjcm8gYWNjZXNzb3JzCgkgIGdzdF92YWx1ZV9saXN0X3NpemUgYW5kIGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSB3aWxsIGRvIGEgc2VyaWVzIG9mCgkgIGV4dHJhIGNoZWNrcyBkdWUgdG8gYmVpbmcgcHVibGljIG1ldGhvZHMuCgkgIFdoZW4gd2UgdXNlIHRoZW0gZnJvbSB3aXRoaW4gZ3N0dmFsdWUuYyB3ZSBjYW4gZGlyZWN0bHkgdXNlIHRoZW0gd2l0aG91dAoJICB0aGUgZXh0cmEgY2hlY2tzLgoKMjAwOS0xMi0wNyAwOTo0NDowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBEb24ndCB1c2UgZ19zaWduYWxfZW1pdF9ieV9uYW1lLCB1c2UgdGhlIHNpZ25hbCBJRCBkaXJlY3RseQoKMjAwOS0xMS0xOCAwOTowMTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogYXZvaWQgZXhwZW5zaXZlIHR5cGVjaGVja3MsIGFuZCBhdm9pZCBnZXR0aW5nIHJlZiB0byBwYXJlbnQuCgkgIFNwZWVkcyB1cCB0ZWUgcHJvY2Vzc2luZyAyIHRvIDUgdGltZXMuCgoyMDA5LTExLTEyIDA5OjA3OjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEF2b2lkIGRvdWJsZSBzdHJkdXAgd2hlbiBzZXR0aW5nIE5VTEwgbmFtZXMuCgkgIEluc3RlYWQgb2YgY2hhaW5pbmcgdXAgdG8gZ3N0X29iamVjdF9zZXRfbmFtZSAod2hpY2ggZG9lcyB0eXBlY2hlY2tpbmcKCSAgYW5kIHN0cmR1cCdzIHRoZSBuYW1lIGFnYWluKSwganVzdCB1c2UgdGhlIGFscmVhZHkgYWxsb2NhdGVkIG5ldwoJICBuYW1lLgoKMjAwOS0xMi0wNCAxMjoxNjozMiAtMDgwMCAgUGV0ZXIgdmFuIEhhcmRlbmJlcmcgPHB2aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICBwd2c6IG1ha2UgdGhlIGVudW0gZXhhbXBsZSAoYmFzZWQgb24gdmlkZW90ZXN0c3JjKSBhY3R1YWxseSBtYXRjaCB2aWRlb3Rlc3RzcmMKCjIwMDktMTItMDQgMTY6Mjg6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElnbm9yZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZXMgZnJvbSBjaGlsZHJlbiB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBiaW4gYWxyZWFkeQoJICBGaXhlcyBidWcgIzU4NDQ0MS4KCjIwMDktMTItMDQgMTU6MDA6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgR01hcHBlZEZpbGUgZm9yIHJlYWRpbmcgdGhlIHJlZ2lzdHJ5CgkgIEZpeGVzIGJ1ZyAjNjAzNzg3LgoKMjAwOS0xMi0wMyAxOTo0ODoxMSArMDEwMCAgSmF2aWVyIEphcmTDs24gPGpqYXJkb25AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBTdWJzdGl0dXRlIGRlcHJlY2F0ZWQgR0xpYiBzeW1ib2w6IGdfbWFwcGVkX2ZpbGVfZnJlZQoJICBVc2UgZ19tYXBwZWRfZmlsZV91bnJlZiBpZiBHbGliID49IDIuMjIgaXMgYXZhaWxhYmxlCgkgIEZpeGVzIGJ1ZyAjNTYwNDQyLgoKMjAwOS0xMS0yNyAyMDoxNjoxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNodXQgZG93biB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzLgoJICBTZXQgdGhlIHBhZCBmbHVzaGluZyBhbmQgc3RvcCB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzCgkgIGR1cmluZyBhY3RpdmF0aW9uLiBBdm9pZHMgcmFjeSBjYWxscyBpbnRvIHRoZSBfY3JlYXRlKCkgZnVuY3Rpb24gd2hlbgoJICBCYXNlU3JjOjpzdG9wKCkgaGFzIGFscmVhZHkgcnVuLgoJICBGaXhlczogIzYwMzA1OQoJICBBbHNvLCBmaXggc29tZSBtaXNzcGVsbGVkIGNvbW1lbnRzLgoKMjAwOS0xMi0wMyAyMDo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgkgIChUaGUgcXVldWUyIHN0cmluZ3MgY291bGQgdXNlIHNvbWUgdGlkeWluZyB1cCkKCjIwMDktMTItMDMgMjA6NTM6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNpbmssIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg4oCYc2l6ZV904oCZCgkgIGdzdGZpbGVzaW5rLmM6Mzk5OiBlcnJvcjogZm9ybWF0IOKAmCVk4oCZIGV4cGVjdHMgdHlwZSDigJhpbnTigJksIGJ1dCBhcmd1bWVudCA5IGhhcyB0eXBlIOKAmGdzaXpl4oCZCgkgIGdzdGZpbGVzcmMuYzo1ODg6IGVycm9yOiBmb3JtYXQg4oCYJTA4bGx44oCZIGV4cGVjdHMgdHlwZSDigJhsb25nIGxvbmcgdW5zaWduZWQgaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhvZmZfdOKAmQoKMjAwOS0xMi0wMyAxNjo0NDoyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgc3BlY2lhbCBjYXNlIGZvciBvbmx5IG9uZSBwYWQgY29uZWN0ZWQKCSAgSXQgaXMgbm90IGVhc3kgdG8gc2V0dXAgYSB0ZWUgb24gdGhlIGZseSwgdGh1cyBhcHBzIG5lZWQgdG8gYWRkIHRoZW0gYWx3YXlzIGlmCgkgIHRoZXkgbWlnaHQgbmVlZCB0aGVtLiBUaGlzIGNoYW5nZXMgdGhlIGNvZGUgc28sIHRoYXQgaWYgb25seSBvbmUgc3JjLXBhZCBpcwoJICBhY3RpdmUsIHdlIHB1c2ggYnVmZmVycyBkaXJlY3RseS4gSW4gdGhlIG5vcm1hbCBjb2RlIHBhdGggYWxsIGJ1ZmZlcnMgYXJlIHB1c2hlZAoJICB3aXRoIGFuIGV4dHJhIHJlZiwgdGhhdCBmb3JjZXMgZm9sbG93dXAgaW5wbGFjZSBlbGVtZW50cyB0byBjb3B5IHRoZSBkYXRhLgoKMjAwOS0xMi0wMyAxNjoxMTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBvbmx5IG1lc3NhZ2Ugb25jZSBwZXIgcmVjZWl2ZWQgYnVmZmVyCgkgIEF2b2lkcyBjaGVja2luZyBmb3IgZWFjaCBzb3VyY2UgcGFkLiBUaGUgbWVzc2FnZXMgd291bGQgYmUgYWxtb3N0IGlkZW50aWNhbAoJICBhbnl3YXkuCgoyMDA5LTEyLTAzIDE1OjI3OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIGRyYWZ0czogcGxhbm5pbmcKCjIwMDktMTItMDMgMTY6MDU6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogcmVtb3ZlIHVudXNlZCBvZmZzZXQgbWVtYmVyCgoyMDA5LTEyLTAzIDE2OjAyOjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbm90aWZ5IGFsbG9jLXBhZCBwcm9wZXJ0eSBpZiBjaGFuZ2VkLgoKMjAwOS0xMi0wMiAxMzoyOToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogZml4IGRvY3MgZm9yIF9jb3B5KCkKCjIwMDktMTItMDEgMjI6Mzc6NTEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNoZWNrIGZvciBXaW5kb3dzCgoyMDA5LTEyLTAxIDE4OjA5OjA0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBNYWtlIGdjYyBpbmxpbmUgYXNzZW1ibHkgY29uZGl0aW9uYWwgb24gZ2NjCgoyMDA5LTEyLTAxIDE5OjI5OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGNyZWF0aW5nIHF1ZXVlIGVsZW1lbnRzIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcyBjb250ZW50aW9uIG9uIHRoZQoJICBnbG9iYWwgZnVuY3B0ciBsb2NrLgoKMjAwOS0xMi0wMSAxOToyNzo0NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmMvYmFzZXNpbms6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBNYWtlcyBiYXNlc3JjL2Jhc2VzaW5rIGluaXRpYWxpemF0aW9uIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcwoJICBjb250ZW50aW9uIG9uIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrCgoyMDA5LTEyLTAxIDE3OjU0OjU2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgVGhpcyBtYWtlcyBnaG9zdHBhZC9wcm94eXBhZCBjcmVhdGlvbiA1IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZ2xvYmFsIGZ1bmNwdHIgbG9jay4KCSAgSSBhbHNvIG1vdmVkIHRoZSB0d28gY2xhc3MgaW5pdCBkb3duIGluIHRoZSBjb2RlIHRvIGF2b2lkIGhhdmluZyB0byBmb3J3YXJkCgkgIGRlY2xhcmUgYWxsIHRoZSB2YXJpb3VzIGZ1bmN0aW9ucy4KCjIwMDktMTItMDEgMTc6NTQ6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogT25seSByZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9uY2UuCgkgIFRoaXMgbWFrZXMgcGFkIGluaXRpYWxpemF0aW9uIDIgdGltZXMgZmFzdGVyIGFuZCB3aXRob3V0IGFueSBjb250ZW50aW9uCgkgIG92ZXIgdGhlIGRlYnVnIGZ1bmNwdHIgZ2xvYmFsIGxvY2suCgoyMDA5LTEyLTAxIDE3OjUzOjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQVBJOiBBZGQgR1NUX0RFQlVHX1JFR0lTVEVSX0ZVTkNQVFIgbWV0aG9kLgoJICBUaGlzIGlzIGEgdmFyaWFudCBvZiBHU1RfREVCVUdfRlVOQ1BUUiB3aGljaCBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuCgoyMDA5LTEyLTAxIDE1OjA1OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODdiZjQyOCB0byA0N2NiMjNhCgoyMDA5LTEyLTAxIDE0OjA4OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVc2UgbmV3IEFHX0dTVF9QTEFURk9STSBtYWNybwoKMjAwOS0xMi0wMSAxNDoxMDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRhNGM3NWMgdG8gODdiZjQyOAoKMjAwOS0xMS0yOCAyMjoyOToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsaXAgc3RlcHBpbmcgYm91bmRhcmllcwoJICBSb3VuZGluZyBlcnJvcnMgd2l0aCB0aGUgZmxvYXRpbmcgcG9pbnQgcmF0ZSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgd2UKCSAgZG9uJ3QgZW5kIHVwIGV4YWN0bHkgYXQgdGhlIHJlcXVpcmVkIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBVc2UgdGhlIHNlZ21lbnQgY2xpcHBpbmcgYm91bmRhcmllcywgd2hpY2ggYXJlIG5vdCBzdWJqZWN0IHRvIHJhdGUKCSAgYWRqdXN0ZW1lbnRzLCBpbnN0ZWFkIHRvIGRldGVjdCB3aGVuIHdlIHJlYWNoZWQgdGhlIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIHJlbGF0ZWQgdG8gZ29pbmcgdG8gdGhlIFBBVVNFRCBzdGF0ZS4KCjIwMDktMTEtMjggMTc6MDI6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogZml4IGFub3RoZXIgdHlwbwoKMjAwOS0xMS0yOCAxNTo0MDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDA5LTExLTI3IDE4OjU0OjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1M2EyNDg1IHRvIGRhNGM3NWMKCjIwMDktMTEtMjcgMTM6NDI6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBmaXggZG9jcwoJICBGaXggZmx1c2ggc3RvcHMgZG9jcywgdGhvc2UgYXJlIHNlcmlhbGl6ZWQsIG5vdCBvdXQgb2YgYm91bmRzLgoJICBQcm9iYWJseSBhIGNvcHkgYW5kIHBhc3RlIG1pc3Rha2UuCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgZG9jczogZml4IGJyb2tlbiB4cmVmcwoKMjAwOS0xMS0yNyAxNjozOTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIG1pc3Npbmcgc2VjdGlvbiB0byBsaWJzLWRvY3MKCjIwMDktMTEtMjcgMTQ6MTg6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogbWFrZSBsaW5rcyB3b3JrIChuZWVkcyByZWNlbnQgZ3RrLWRvYykKCjIwMDktMTEtMjcgMTQ6MTc6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3MKCjIwMDktMTEtMjcgMTQ6MTY6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZG9jczogZW5hYmxlIGRvY3MgZm9yIEdzdE9iamVjdENsYXNzIHRvIGZpeCBsaW5rcwoKMjAwOS0xMS0yNyAxNDoxNTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3RvYmplY3Q6IGFkZCBGSVhNRS0wLjExIGNvbW1lbnRzCgoyMDA5LTExLTI1IDE4OjI1OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGRvY3M6IGJldHRlciB3YXkgdG8gbGluayBjbGFzcyBtZXRob2RzCgoyMDA5LTExLTI1IDE4OjI0OjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXNlICcqJyBpbnN0ZWFkIG9mIHh4eCB0byBhdm9pZCBjcmVhdGluZyBhIGJyb2VrbiB4cmVmCgoyMDA5LTExLTI1IDE3OjM3OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBmaXggbW9yZSBib2d1cyB4cmVmcwoKMjAwOS0xMS0yNSAxNzoyNzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgR3N0UGx1Z2luRmxhZ3MKCSAgVGhpcyBhbHNvIG1ha2VzIGxpbmtzIHRvIHRoZW0gd29yay4KCjIwMDktMTEtMjUgMTU6Mzk6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIGRvY3M6IGltcHJvdmUgR3N0TWl4ZXIgYW5kIEdzdFR1bmVyIGRvY3MKCSAgTWVudGlvbiB0aGF0IGVsZW1lbnRzIGltcGxlbWVudGluZyBHc3RNaXhlciBhbmQgR3N0VHVuZXIgbmVlZCB0byBiZQoJICBpbiB0aGUgcmlnaHQgc3RhdGUgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQuIEFsc28gbWVudGlvbiBHTGliCgkgIGZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmaWxlbmFtZXMgdG8gYW5kIGZyb20gVVJJcy4KCSAgRml4ZXMgIzYwMjg3Ny4KCjIwMDktMTEtMjUgMTY6NDQ6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGZpeCB4cmVmcyBpbiBkb2NzCgkgIEZpeCB0eXBvcyBpbiB4cmVmcywgbGlua3MgdG8gbm9uIGV4aXN0aW5nIGZ1bmN0aW9ucyBhbmQgcmV3b3JrIHBsdXJhbCBmb3Jtcy4KCjIwMDktMTEtMjUgMTQ6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgZG9jczogcmVtb3ZlIGd0a2RvYyBoZWFkZXIgYXMgdGhlc2UgdGhpbmdzIGRvbid0IGNvbWUgdXAgb24gb3VyIGRvY3MgZXZlbgoKMjAwOS0xMS0yNSAxNDoyMzo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2Mgc3RyaW5nCgoyMDA5LTExLTI1IDE0OjIxOjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogZG9jdW1lbnQgbmV3IGV2ZW50IGluIGVudW0KCjIwMDktMTEtMjUgMTQ6MTg6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBzeW50YXggZm9yIGRvYy1ibG9iIHN0YXJ0CgoyMDA5LTExLTIzIDExOjM0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTExLTIzIDExOjMzOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGZpeCBncmFtbWFyCgoyMDA5LTExLTIxIDE2OjM3OjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogQWRkIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIE1lcmdlIG5ldyBmdW5jdGlvbiBmcm9tIHJlc2luZHZkIGludG8gdGhlIHByaW1hcnkgR3N0QmFzZVNyYyBmb3IKCSAgc3RhcnRpbmcgYSBuZXcgc2VhbWxlc3Mgc2VnbWVudC4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoKMjAwOS0xMS0yMCAxNjowMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgU29tZSBnY2MgdmVyc2lvbnMgd2FybiBhYm91dCBieXRld3JpdGVyIHdyaXRpbmcgdG8gbWVtb3J5IGFjY2Vzc2VkCgkgIHZpYSBhIGNvbnN0IGd1aW50OCBwb2ludGVyLCBkZXNwaXRlIG91ciBleHBsaWNpdCBjYXN0IHRvIGd1aW50OCAqLgoJICBXb3JrIGFyb3VuZCB0aGF0IGJ5IHVzaW5nIGFuIGludGVybWVkaWFyeSB2YXJpYWJsZS4KCSAgRml4ZXMgIzU5ODUyNi4KCjIwMDktMTEtMjAgMDk6MzM6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogT25seSBjaGVjayBmb3IgZ21wL2dzbCBpZiBidWlsZGluZyBvZiB0ZXN0cyBpcyBub3QgZGlzYWJsZWQKCjIwMDktMTEtMTkgMTk6MDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENsYW1wIHRoZSBiYXNlIHRpbWUgY29ycmVjdGx5IGluIHBvc2l0aW9uIHJlcG9ydGluZwoJICBXaGVuIGNsYW1waW5nIHRoZSBiYXNlIHRpbWUsIGNvcnJlY3RseSB1c2UgJ25vdycsIGluc3RlYWQgb2YKCSAgJy1ub3cnIC0gdGhlIGludGVudCBpcyB0byBwcmV2ZW50ICdub3ctYmFzZScgZXZlciBiZWluZwoJICBuZWdhdGl2ZSwgd2hpY2ggd291bGQgY2F1c2UgYSBwb3NpdGlvbiByZXBvcnQgb3V0c2lkZSB0aGUgc2VnbWVudC4KCSAgRml4ZXM6ICM2MDI0MTkKCjIwMDktMTEtMDkgMTA6NTI6NDIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBnc3RwbHVnaW46IEFkZCBDKysgZXNjYXBlIGZvciBnc3RfcGx1Z2luX2Rlc2MgZGVmaW5lCgkgIEluIG9yZGVyIHRvIHByb3Blcmx5IGV4cG9ydCB0aGUgZ3N0X3BsdWdpbl9kZXNjIHN5bWJvbAoJICBmcm9tIERMTHMgaW4gTVNWQywgaXQgbmVlZHMgdG8gYmUgZXh0ZXJuICJDIi4KCjIwMDktMTEtMTkgMTI6NTk6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UvZ3JhbW1hci55OiByZW1vdmUgdW51c2VkIEVSUk9SIGRlZmluZQoKMjAwOS0xMS0xOSAxMDoyOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE4NjEyNTIgdG8gNTNhMjQ4NQoKMjAwOS0xMS0xNiAxNTo0Nzo1NyArMDIwMCAgUHJpaXQgTGFlcyA8cGxhZXNAcGxhZXMub3JnPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZyB3aGVuIGJ1aWxkaW5nIHVuZGVyIGV0X0VFIGxvY2FsZQoJICBbQS1aXSByZWdleHAgZmFpbHMgdW5kZXIgZXRfRUUgbG9jYWxlIGJlY2F1c2UgWiBpbiBFc3RvbmlhbiBhbHBoYWJldCBpcwoJICBsb2NhdGVkIGFmdGVyIFMgYW5kIHRoZXJlZm9yZSBjaGFyYWN0ZXJzIHN0YXJ0aW5nIHdpdGggJ1RVVi4uLicgYXJlIG5vdAoJICBpbiB0aGUgcmFuZ2UgYW55bW9yZS4KCSAgRml4ZXMgYnVnICM2MDIwOTMuCgoyMDA5LTExLTE4IDA3OjU5OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEhhbmRsZSB0aGUgbmV3IHNpbmstbWVzc2FnZSBldmVudAoKMjAwOS0xMS0xOCAwNzo1MjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQVBJOiBBZGQgc2luay1tZXNzYWdlIGV2ZW50CgkgIGdzdF9ldmVudF9uZXdfc2lua19tZXNzYWdlKCkKCSAgZ3N0X2V2ZW50X3BhcnNlX3NpbmtfbWVzc2FnZSgpCgkgIFRoaXMgZXZlbnQgaXMgdXNlZCBmb3Igc2VuZGluZyBhIEdzdE1lc3NhZ2UgZG93bnN0cmVhbSBhbmQgc3luY2hyb25pemVkCgkgIHdpdGggdGhlIHN0cmVhbSwgdG8gYmUgcG9zdGVkIGJ5IHRoZSBzaW5rIG9uY2UgaXQgcmVhY2hlcyB0aGUgc2luay4KCSAgRml4ZXMgYnVnICM2MDIyNzUuCgoyMDA5LTExLTE2IDAwOjEyOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwbHVnaW4tc2Nhbm5lcjogcmVuYW1lIHBsdWdpbi1zY2FubmVyIGhlbHBlciBiaW5hcnkgdG8gZ3N0LXBsdWdpbi1zY2FubmVyCgkgIGFuZCBpbnN0YWxsIGludG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5ICQobGliZXhlY2Rpci9nc3RyZWFtZXItMC4xMCkgc28gdGhhdAoJICBldmVyeXRoaW5nIGlzIHZlcnNpb25lZCBwcm9wZXJseS4KCSAgTk9URTogcnVuICdtYWtlIGNsZWFuJyBhZnRlciB1cGRhdGluZzsgaWYgeW91IGFyZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIHNldHVwLAoJICB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgKHVubGVzcyBpdCdzIHN5bWxpbmtlZAoJICB0byBnc3RyZWFtZXIgY29yZSBtYXN0ZXIpIGFuZCBleGl0L2VudGVyIHlvdXIgdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQgdG8gZ2V0CgkgIHRoZSB1cGRhdGVkIGVudmlyb25tZW50LiBJZiB5b3UgYXJlIHJ1bm5pbmcgYW4gaW5zdGFsbGVkIHNldHVwLCB5b3Ugc2hvdWxkCgkgIHJ1biAnbWFrZSB1bmluc3RhbGwnIGJlZm9yZSBtZXJnaW5nIHRoaXMgY2hhbmdlIG9yIHJlbW92ZSB0aGUgb2xkCgkgIHBsdWdpbi1zY2FubmVyIGJpbmFyeSBtYW51YWxseS4KCSAgRml4ZXMgIzYwMTY5OC4KCjIwMDktMTEtMTggMDk6MTA6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgInN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmODY0MTg3YmY1ZmRmYWY3MWYyZTAzODk0OWU0MDNhNDJlNmRhZjBlLgoJICBSZXZlcnRpbmcgdGhpcyBhcyBpdCBjaGFuZ2VzIGJlaGF2aW91ciBhbmQgdGhlIGRvY3VtZW50YXRpb24gaXMKCSAgYW1iaWd1b3VzIGFib3V0IHdoZXRoZXIgdGhlIGNhbGxlciBtdXN0IGNoZWNrIHRoZSB0eXBlIGZpcnN0IG9yCgkgIG5vdCAoY2FsbCBtdXN0IGNoZWNrIHR5cGUgdnMuIHJldHVybnMgTlVMTCBpZiBub3QgYSBzdHJpbmcpLiBJZgoJICBHTGliIGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggR19ESVNBQkxFX0NIRUNLUyB0aGVuIGdfdmFsdWVfZ2V0X3N0cmluZygpCgkgIG1heSByZXR1cm4gY29tcGxldGUgZ2FyYmFnZSBldmVuIGlmIHRoZSB2YWx1ZSBkb2VzIG5vdCBjb250YWluCgkgIGEgc3RyaW5nLiBCZXR0ZXIgcGxheSBpdCBzYWZlLCBlc3AuIHNpbmNlIHRoZSBleHRyYSBjaGVjayBpcyBqdXN0CgkgIGFuIGludGVnZXIgY29tcGFyaXNvbi4gRm9yIGZ1bmRhbWVudGFsIHR5cGVzIHdlIGNvdWxkIHJldHVybiB2YWx1ZXMKCSAgZnJvbSB0aGUgR1ZhbHVlIHN0cnVjdHVyZSBkaXJlY3RseSBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJ5cGFzcwoJICB0aGUgZXh0cmEgY2hlY2suCgoyMDA5LTExLTE3IDE3OjA2OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZQoKMjAwOS0xMS0xNyAxODozNTo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBzdGVwIGV2ZW50IHF1YXJrCgoyMDA5LTExLTE3IDEwOjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgcGF0aHMgZm9yIGdzdC1xYS1zeXN0ZW0KCjIwMDktMTEtMTcgMDk6MDY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBzZXQgR1NUX1BMVUdJTl9TQ0FOTkVSIHdoZW4gY2FsbGluZyBndGtkb2Mtc2NhbmdvYmoKCSAgT3RoZXJ3aXNlIHRoZSBkb2NzIGJ1aWxkIHdvbid0IHdvcmsgcHJvcGVybHkKCjIwMDktMTEtMTYgMTM6NTg6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc29tZSBibGFuayBsaW5lcyAocHJldmlvdXMgZ3N0LWluZGVudCBmYWlsdXJlKQoKMjAwOS0xMS0xNiAxMzo1Mzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHVzZSBsb2NhbCB2YXJpYWJsZSBlYXJsaWVyCgoyMDA5LTExLTE2IDEzOjQ5OjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgZW51bSB0eXBlcyB0d2ljZS4KCSAgR19WQUxVRV9IT0xEU19FTlVNKHZhbHVlKSBpcyBkZWZpbmVkIGFzIEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICh2YWx1ZSwKCSAgR19UWVBFX0VOVU0pLiBKdXN0IGNoZWNrIGZvciB0aGUgcmlnaHQgZW51bS10eXBlIHJpZ2h0IGF3YXkuCgoyMDA5LTExLTE0IDIyOjM1OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2hlY2s6IEFkZCBhIGRlYnVnIHN0YXR1cyB0byB0aGUgc3lzdGVtY2xvY2sgdGVzdAoJICBOZXh0IHRpbWUgaXQgZmFpbHMgb24gYSBidWlsZGJvdCB3ZSBjYW4gc2VlIHdoaWNoIGNsb2NrIGlkCgkgIHJldHVybiBpdCBpcyBnZXR0aW5nLgoKMjAwOS0xMS0xNiAxODoyNTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFRPRE86IHJlbW92ZSBzdGVwcGluZyBmcm9tIFRPRE8KCSAgUmVtb3ZlIHRoZSBmcmFtZSBzdGVwcGluZyBBUEkgZnJvbSB0aGUgVE9ETyBsaXN0LgoKMjAwOS0xMS0xNiAxNDowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBwb3NpdGlvbiByZXBvcnRpbmcKCSAgT25seSB1cGRhdGUgdGhlIGN1cnJlbnQgc3RyZWFtIHRpbWUgYWZ0ZXIgd2UgY2hlY2tlZCBpZiB3ZSBnb3QgYSBuZXcgc3RlcAoJICBldmVudC4gVGhpcyBpbXByb3ZlcyB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIGJ5IHRoZSBzaW5rLgoJICBTZWUgIzU5NTk1OAoKMjAwOS0xMS0xNiAwOTo0OTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFQSTogQWRkIG11bHRpcGxpY2F0aW9uIGFuZCBhZGRpdGlvbiBmdW5jdGlvbnMgZm9yIGZyYWN0aW9ucwoJICBnc3RfdXRpbF9mcmFjdGlvbl9hZGQoKQoJICBnc3RfdXRpbF9mcmFjdGlvbl9tdWx0aXBseSgpCgkgIFRoZXNlIHdvcmsgb24gcGxhaW4gaW50ZWdlcnMgaW5zdGVhZCBvZiBHVmFsdWVzIHRvCgkgIGtlZXAgdGhlIG92ZXJoZWFkIGFzIGxvdyBhcyBwb3NzaWJsZS4KCjIwMDktMTEtMTYgMDk6Mjk6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBUEk6IEFkZCBmcmFjdGlvbiBoZWxwZXIgZnVuY3Rpb25zCgkgIGdzdF91dGlsX2dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yKCkKCSAgZ3N0X3V0aWxfZG91YmxlX3RvX2ZyYWN0aW9uKCkKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKCkKCSAgVXNpbmcgdGhlc2UgaW5zdGVhZCBvZiBnb2luZyBvdmVyIEdWYWx1ZSBoYXMgbXVjaCBsb3dlciBvdmVyaGVhZC4KCSAgQWxzbyBhZGQgZmxvYXQ8LT5mcmFjdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb25zIGZvciBHVmFsdWUuCgoyMDA5LTExLTEzIDE1OjQ1OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRlYnVnOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIHRvIGhlbHAgdHJhY2tpbmcgcGFyc2luZyBlcnJvcnMKCjIwMDktMTEtMTMgMTE6NDI6MDIgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCByYWNlIHdoZW4gcmVjeWNsaW5nIGJ1ZmZlcnMKCSAgQXZvaWQgYSByYWNlIHdoZXJlIGEgbWluaW9iamVjdCBpcyByZWN5Y2xlZCBhbmQgcXVpY2tseSBmcmVlZCwgd2hpY2ggY2F1c2VzIHRoZQoJICBnX3R5cGVfZnJlZV9pbnN0YW5jZSgpIHRvIGJlIGNhbGxlZCBvbiB0aGUgc2FtZSBvYmplY3QgdHdpY2UuCgkgIFJlZiB0aGUgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIHRoZSBmaW5hbGl6ZSBtZXRob2QgYW5kIGNoZWNrIGlmIHdlIHN0aWxsIG5lZWQgdG8KCSAgZnJlZSBpdCBhZnRlcndhcmQuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzIGNhc2UuCgkgIEZpeGVzICM2MDE1ODcKCjIwMDktMTEtMTIgMTc6MDI6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB3aGl0ZXNwYWNlOiByZW1vdmUgYmxhbmtzIGluIGRvYy1jb21tZW50CgoyMDA5LTExLTA2IDE1OjQyOjU3ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogSW1wb3J0IF9wcml2X2dzdF9kbGxfaGFuZGxlIGludG8gZ3N0cmVnaXN0cnkuYwoJICBGaXhlcyBidWcgIzYwMTY2OC4KCjIwMDktMTEtMTIgMTQ6MTA6MDYgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogRG8gbm90IGxpc3QgbGliZ3N0Y2hlY2sgYXMgYSByZXF1aXJlbWVudCBmb3IgdGVzdHMvZXhhbXBsZXMvbWFudWFsCgkgIEZpeGVzIGJ1ZyAjNjAxNjY5LgoKMjAwOS0xMS0xMSAxNzoxMjoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IHRyZWF0aW5nIGJhc2VfdGltZSBhcyB1bnNpZ25lZCBpbiBwb3NpdGlvbiBjYWxjdWxhdGlvbgoJICBFbGVtZW50IGJhc2VfdGltZSBpcyBhIHNpZ25lZCBxdWFudGl0eSwgd2hpY2ggbGVhZHMgdG8gYmFzZXNpbmsgcmV0dXJuaW5nCgkgIGEgcG9zaXRpb24gb2YgMCB3aGVuIGRlYWxpbmcgd2l0aCBhIG5lZ2F0aXZlIGJhc2UgdGltZSAtIHdoaWNoIGFyZSBxdWl0ZQoJICBsZWdhbCB3aGVuIGNsb2NrcyAoc3VjaCBhcyB0aGUgYXVkaW8gY2xvY2spIGFyZSBjbG9zZSB0byAwLgoJICBUaGlzIGRvZXNuJ3QgbWFuaWZlc3QgaW4gbm9ybWFsIHBpcGVsaW5lcywgb2YgY291cnNlIC0gYnV0IGNhbiBoYXBwZW4KCSAgKGF0IGxlYXN0KSB3aGVuIG1hbnVhbGx5IHNldHRpbmcgdGhlIGJhc2UgdGltZSBvbiBhIHBpcGVsaW5lLgoKMjAwOS0xMS0xMCAxODowMzo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQVBJOiBBZGQgZ3N0X3tkZWZhdWx0LH1fcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9jb29raWUoKQoJICBUaGlzIHJldHVybnMgdGhlIGludGVybmFsIGZlYXR1cmUgbGlzdCBjb29raWUsIHdoaWNoIGNoYW5nZXMgZXZlcnkKCSAgdGltZSBhIGZlYXR1cmUgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gVGhpcyBjYW4gYmUgdXNlZCBieSBlbGVtZW50cwoJICB0byBjaGVjayBpZiB0aGV5IHNob3VsZCB1cGRhdGUgdGhlaXIgY2FjaGVkIGZlYXR1cmUgbGlzdHMuCgoyMDA5LTExLTEwIDExOjU1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHByaW50ZiBmb3JtYXQKCSAgQ2FzdCB0aGUgdmFyaWFibGUgdG8gZ2ludCB0byBjb25mb3JtIHRvIHRoZSBwcmludGYgZm9ybWF0IHVzZWQuCgkgIEl0IGlzIGNhc3RlZCByYXRoZXIgdGhhbiBjaGFuZ2luZyB0aGUgZm9ybWF0IGJlY2F1c2UgdGhlCgkgIG1lc3NhZ2UgaXMgY3JlYXRlZCB3aXRoIGEgY2FzdCB0byBnaW50IHRvby4KCjIwMDktMTEtMTAgMTA6MTA6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjcmFzaGluZyBkdWUgdG8gbmVnYXRpdmUgcGVyY2VudAoJICBxdWV1ZTIgd291bGQgY3Jhc2ggd2hlbiB1c2luZyBzbWFsbCBidWZmZXIgc2l6ZXMgYmVjYXVzZQoJICBpdCB3b3VsZCBvdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIHRoZSBwZXJjZW50YWdlLCByZXN1bHRpbmcKCSAgaW4gdGhlIGJ1ZmZlcmluZyBHc3RNZXNzYWdlIG5vdCBiZWluZyBjcmVhdGVkIGFuZCB0cnlpbmcgdG8gYmUKCSAgdXNlZC4gVGhpcyBwYXRjaCB1c2VzIGEgZ2ludDY0IGluc3RlYWQgb2YgYSBnaW50IHRvIGRvIHRoZQoJICBwZXJjZW50YWdlIG1hdGgsIG1ha2luZyBpdCBoYXJkZXIgdG8gb3ZlcmZsb3cuCgoyMDA5LTExLTEwIDA5OjUyOjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHNtYWxsIGRvYyB0eXBvCgoyMDA5LTExLTEwIDAwOjU3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZml4IGNvbXBpbGF0aW9uIHdpdGggZGVidWdnaW5nIGRpc2FibGVkCgkgIEFkZCB1Z2x5IGlmZGVmIHRvIGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoCgkgIGRlYnVnIGxvZ2dpbmcgZGlzYWJsZWQuCgoyMDA5LTExLTA5IDE2OjIwOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1yZWdpc3RyeS1jaGFuZ2UtaG9va3MudHh0OgoJICBwbGFubmluZzogYWRkIHRob3VnaHRzIGFib3V0IGZvcmVpZ24gcmVnaXN0cnkgY2FjaGUgdXBkYXRlcwoKMjAwOS0xMS0wOSAxNDo1NTo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWxsb3cgdG8gZ2V0IHBsdWdpbi1pbnN0YWxsLWluZm8gZm9yIGFsbCBpbnN0YWxsZWQgcGx1Z2lucwoJICBJZiBubyBwbHVnaW4gaXMgZ2l2ZW4sIHByaW50IHRoZSBpbmZvIGZvciBhbGwgcGx1Z2lucy4gVGhpcyBjYW4gYmUgdXNlZCBhcyBhCgkgIHN0YXJ0aW5nIHBvaW50IHRvIGdlbmVyYXRlIGEgcHJvZmlsZSBhYm91dCB3aGF0IHRoZSBnc3RyZWFtZXIgaW5zdGFsbGF0aW9uIGNhbgoJICBwb3RlbnRpYWx5IGhhbmRsZSAoZS5nLiBmb3IgTVRQIG9yIERMTkEpLgoKMjAwOS0xMS0wOSAxMjo0MjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgZG9jczogZG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBwYWQKCjIwMDktMTEtMDcgMjA6MjI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiB3YWtlIHVwIGxlc3Mgb2Z0ZW4gdG8gY2hlY2sgaWYgd2UndmUgYmVlbiBpbnRlcnJ1cHRlZAoJICBDaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkIG9ubHkgZm91ciB0aW1lcyBwZXIgc2Vjb25kIGluc3RlYWQKCSAgb2YgdHdlbnR5IHRpbWVzIHBlciBzZWNvbmQsIHRvIHdha2UgdXAgdGhlIGNwdSBsZXNzIG9mdGVuIGFuZAoJICBzYXZlIHBvd2VyIChzZWUgYnVnICM2MDA5MjIpLgoKMjAwOS0xMS0wNSAyMToxODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBhZGQgZGVmaW5lIHRvIGZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzCgkgIEZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzIGlmIEdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04KCSAgaXMgZGVmaW5lZC4gVGhpcyBpcyB1c2VmdWwgdG8gcXVpY2tseSBjaGVjayBjb2RlIGZvciBwcmludGYgZm9ybWF0IG1pc21hdGNoZXMKCSAgaW4gZGVidWdnaW5nIG1lc3NhZ2VzIHRoYXQgd291bGQgdXN1YWxseSBub3QgYmUgY2F1Z2h0ICh3aXRoIGdsaWJjK2djYyBhbmQKCSAgcHJpbnRmIGV4dGVuc2lvbnMgYmVpbmcgdXNlZCkuCgkgIFRvIHVzZTogbWFrZSBjbGVhbjsgbWFrZSBDRkxBR1M9Jy1nIC1PMiAtREdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04nCgoyMDA5LTExLTA1IDIxOjA5OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IE1ha2Ugc3VyZSB3ZSB1c2UgdGhlIGxvY2FsIGxpYmdzdGJhc2UgYW5kIG5vdCBhIHN0cmF5IG91dHNpZGUgb25lLgoJICBUaGVvcmV0aWNhbGx5IHdlIHNob3VsZCBhbHNvIGRvIHRoaXMgZm9yIGFsbCBsb2NhbCBsaWJyYXJpZXMgdG8gbWFrZSBzdXJlCgkgIHdlIGRvbid0IHRlc3Qgd2l0aCBhICdzdHJheScgb3V0c2lkZSBsaWJyYXJ5LgoKMjAwOS0xMS0wNSAxODozNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMDUgMTU6NTk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgbG9va2luZyB1cCBHc3RUYWdJbmZvIHR3aWNlIGluIGEgcm93CgkgIFBhc3MgdGhlIGluZm8gc3RydWN0dXJlIHRvIG91ciBpbnRlcm5hbCBmdW5jdGlvbiBpZiBhbHJlYWR5IGF2YWlsYWJsZS4KCSAgQWxzbyBjbGVhbiB1cCB3YXJuaW5ncyBmb3IgdW5rbm93biB0YWdzLgoKMjAwOS0xMS0wNSAxODo1NTozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBnc3RyZWdpc3RyeWNodW5rczogV2UncmUgY2VydGFpbiBwbHVnaW5fbmFtZSBpcyBhbiBpbnRlcm4gc3RyaW5nLgoJICBUaGUgb25seSBwbGFjZSB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSBjcmVhdGVzIHRoZSBwbHVnaW5fbmFtZSBhcmd1bWVudAoJICB3aXRoIGdfaW50ZXJuX3N0cmluZygpLgoJICBTaGF2ZXMgb2ZmIDElIGZyb20gcmVnaXN0cnkgbG9hZGluZy4KCjIwMDktMTEtMDQgMTk6MzM6NTggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGltcGxlbWVudCBidWZmZXJpbmctbGVmdCBhcmd1bWVudCB0byBidWZmZXIgbWVzc2FnZXMKCSAgVXNpbmcgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbCBvZiB0aGUgcXVldWUsIGFuZCB0aGUgYXZlcmFnZSBpbnB1dAoJICByYXRlLCB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyBsb25nIGl0IHdpbGwgdGFrZSB0byBmaW5pc2ggZG93bmxvYWRpbmcKCSAgdGhlIHdob2xlIHN0cmVhbSB0byB0aGUgdGVtcG9yYXJ5IGZpbGUuCgkgIEZpeGVzICM2MDA3MjYKCjIwMDktMTEtMDUgMTU6MTM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMDUgMTQ6MDI6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBsb2NraW5nCgoyMDA5LTExLTA1IDE0OjI5OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGRvbid0IHJlbGVhc2UgbXV0ZXggdHdpY2UKCjIwMDktMTEtMDUgMTQ6Mjk6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc2tpcCB0eXBlIGNoZWNrIGluIGludGVybmFsIGFwaQoKMjAwOS0xMS0wNSAxMjozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbmRlbnRhdGlvbiBmaXgKCjIwMDktMTEtMDUgMTI6NTQ6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIG5ldyBhcGkgZnJvbSBfcmVmZWQgdG8gX3JlZmZlZC4KCSAgRHVlIHRvIHBvcHVsYXIgZGVtYW5kIHJlbmFtZSB0aGUgbmV3IGFwaSBhcyB3ZSBzdGlsbCBjYW4uCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmZlZCgpCgoyMDA5LTExLTA0IDIyOjQyOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBhY2Nlc3MgcGFkdGVtcGxhdGUgbGlzdCBkaXJlY3RseSB0byBhdm9pZCBjYWxsIGFuZCB0eXBlIGNoZWNrLgoKMjAwOS0xMS0wNCAxODo1ODoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBhIEZJWE1FIDAuMTEgZm9yIGhhdmluZyBmbHVzaCBldmVudHMgdGhhdCBkb24ndCByZXNldCBydW5uaW5nIHRpbWUKCjIwMDktMTEtMDQgMTc6NTI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgcHJpbnRmIGNvbXBpbGUgd2FybmluZyBvbiA2NC1iaXQgcGxhdGZvcm1zCgoyMDA5LTExLTA0IDE3OjE1OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogTWFrZSBzdXJlIHRoYXQgbm9ib2R5IHNldHMgdGhlIHByb3h5cGFkIG9yIGdob3N0cGFkIGl0c2VsZiBhcyB0YXJnZXQKCSAgRG9pbmcgdGhpcyB3aWxsIGxlYWQgdG8gdmVyeSBpbnRlcmVzdGluZyBjcmFzaGVzLCBsaWtlIHN0YWNrIG92ZXJmbG93cy4KCjIwMDktMTEtMDQgMTE6MzU6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHBsdWdpbiBsb2FkZXI6IERvbid0IGZhaWwgYWZ0ZXIgYSBzaG9ydCByZWFkL3dyaXRlCgkgIFRoZSBsb2dpYyB0byBoYW5kbGUgc2hvcnQgcmVhZHMvd3JpdGVzIHdhcyBpbmNvcnJlY3QsIGNhdXNpbmcgdGhlCgkgIHBhY2tldCBoYW5kbGVyIHRvIGF0dGVtcHQgdG8gaGFuZGxlIGluY29tcGxldGUgcGFja2V0cy4KCSAgR3JvdyB0aGUgcGFja2V0IHRyYW5zbWl0IGJ1ZmZlciBpbiBwcm9wb3J0aW9uIHRvIG9ic2VydmVkIHVzYWdlLAoJICBjYXVzaW5nIGZld2VyIHJlYWxsb2NzLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluIHRoZSByZWdpc3RyeSBjaHVua3MgY29kZS4KCjIwMDktMTEtMDQgMDE6NTE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgY3Jhc2ggb24gYm9ndXMgcGx1Z2luIGRldGFpbHMKCSAgV2hlbiBpbnZhbGlkIHJlZ2lzdHJ5IGNodW5rcyBhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgY2hpbGQsIGFuZCBwYXJzaW5nCgkgIGZhaWxzLCBkb24ndCBhY2Nlc3MgYW4gaW52YWxpZCBwbHVnaW4gcG9pbnRlci4gSW5zdGVhZCBhdHRlbXB0IHRvCgkgIGZpZ3VyZSBvdXQgd2hpY2ggcGx1Z2luIGNhdXNlZCB0aGUgcHJvYmxlbSBhbmQgYmxhY2tsaXN0IGl0LgoKMjAwOS0xMS0wNCAwMTo1NDozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogVXNlIHRoZSBzYW1lIGxvZ2ljIHRvIGZpbmQgZ251aW5kZW50IGFzIHRoZSBnaXQgaG9vawoKMjAwOS0xMS0wMyAxNzozMDoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgYnVpbGQ6IGluY2x1ZGUgc3RkaW8uaCBmb3IgRklMRQoKMjAwOS0xMS0wMyAwMToxODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGFkZCBhbm90aGVyIGV4YW1wbGUgdG8gdGhlIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCSAgQWRkIGFuIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gcmVmZXIgdG8gc3BlY2lmaWMgcGFkcyBieSBuYW1lCgkgIHdoZW4gY29uc3RydWN0aW5nIGEgcGlwZWxpbmUgc3RyaW5nLiBGaXhlcyAjNjAwMzgyLgoKMjAwOS0xMS0wMiAwODo0ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IGF2b2lkIG9uZSBtb3JlIHJ1bi10aW1lIHR5cGUgY2hlY2sKCjIwMDktMTEtMDIgMDk6MjI6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkeyxfdHlwZWR9CgoyMDA5LTExLTAyIDA4OjI4OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGdzdHR5cGVmaW5kOiBVc2UgX0NBU1QgdmFyaWFudHMgd2hlbiB0aGUgdHlwZSBoYXMgYWxyZWR5IGJlZW4gY2hlY2tlZC4KCSAgVGhpcyBhdm9pZHMgY2hlY2tpbmcgdGhlIHR5cGUgbl90eXBlZmluZGVycyAqIDQgdGltZXMgd2hlbiBsb2FkaW5nIHRoZQoJICByZWdpc3RyeS4KCjIwMDktMTEtMDEgMTE6MjQ6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBJbXBsZW1lbnQgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcwoJICBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBnaG9zdCBwYWQgaXMgaXRzCgkgIHByb3h5IHBhZCwgd2hpY2ggaXMgdGhlIHBhZCB0aGF0IGlzIGxpbmtlZCB0byB0aGUgZ2hvc3QKCSAgcGFkcyB0YXJnZXQuCgoyMDA5LTEwLTMxIDE2OjU2OjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogTWFrZSBzdXJlIHRoYXQgc2lnbmFsIHVzZXIgZGF0YSBpcyBmcmVlZCBieSBzZXR0aW5nIGEgR0Nsb3N1cmVOb3RpZnkKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBhIHNlY29uZCBtZWNoYW5pc20gYW5kIHN0b3JpbmcgdGhlIHVzZXIgZGF0YQoJICBpbnNpZGUgdGhlIEdPYmplY3RzIHFkYXRhLgoKMjAwOS0xMC0zMSAxNjo0OTowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIHN0cnVjdHMKCjIwMDktMTAtMzEgMTY6NDM6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBBbHdheXMgZ2V0IERlbGF5ZWRMaW5rIGluZm9ybWF0aW9uIGZyb20gdGhlIG9iamVjdHMgcWRhdGEKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgaXQgaXMgYWx3YXlzIHZhbGlkLgoKMjAwOS0xMC0zMSAwOTo0ODoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogcXVldWUyIGhhcyBtb3ZlZCB0byBjb3JlCgoyMDA5LTEwLTI5IDExOjQxOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgcXVldWUyOiBBZGQgdG8gdGhlIGRvY3MKCjIwMDktMTAtMjkgMTE6Mzg6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgIlF1ZXVlIDIiIGFzIGxvbmcgbmFtZQoKMjAwOS0xMC0yOSAxMTozNTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBHU1RfQk9JTEVSUExBVEVfRlVMTCgpIGFuZCBhZGQgcGFkIHRlbXBsYXRlcy9zZXQgZGV0YWlscyBpbiBiYXNlX2luaXQKCjIwMDktMTAtMjkgMTE6MzA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCjIwMDktMTAtMjkgMTE6MzA6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEludGVncmF0ZSBpbnRvIGNvcmVwbHVnaW5zCgoyMDA5LTEwLTI5IDExOjIxOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogTW92ZSBzdHJ1Y3QgZGVjbGFyYXRpb25zIHRvIGEgc2VwYXJhdGUgaGVhZGVyCgoyMDA5LTEwLTI5IDExOjE4OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogTW92ZSBxdWV1ZTIgdG8gZ3N0cmVhbWVyIGNvcmVwbHVnaW5zCgkgIEZpeGVzIGJ1ZyAjNTk5OTk2LgoKMjAwOS0xMC0yOCAwMDo1OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCjIwMDktMTAtMjcgMTU6MjM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgoyMDA5LTA4LTA2IDEyOjE4OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sgaWYgc28gYXBwcm9wcmlhdGUKCSAgSWYgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBhbiBlcnJvciB3aGlsZSB1cHN0cmVhbSBoYXMgYWxyZWFkeQoJICBwdXQgYWxsIGRhdGEgaW50byBxdWV1ZTIgKGluY2x1ZGluZyBFT1MpLCB1cHN0cmVhbSB3aWxsIG5vIGxvbmdlcgoJICBjaGFpbiBpbnRvIHF1ZXVlMiwgc28gaXQgaXMgdXAgdG8gcXVldWUyIHRvIHBlcmZvcm0gc29tZQoJICBFT1MgaGFuZGxpbmcgLyBtZXNzYWdlIHBvc3RpbmcgaW4gc3VjaCBjYXNlcy4gIFNlZSAjNTg5OTkxLgoKMjAwOS0wNy0xNCAxNzowMzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbGVhayBhbmQgaW1wcm92ZSBidWZmZXJpbmcKCSAgS2VlcCB0cmFjayBvZiB0aGUgbWF4IHJlcXVlc3RlZCBwb3NpdGlvbiBhbmQgY29tcGFyZSB0aGlzIHRvIHRoZSB3cml0ZSBwb3NpdGlvbgoJICBpbiB0aGUgdGVtcCBmaWxlIHRvIGdldCB0aGUgY3VycmVudCBhbW91bnQgb2YgYnVmZmVyZWQgZGF0YS4KCSAgRml4IG1lbWxlYWsgb2YgYWxsIGluY29tbWluZyBidWZmZXJzLgoJICBGaXhlcyAjNTg4NTUxCgoyMDA5LTA3LTEwIDIxOjAxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZsdXNoIGRpZmZlcmVudGx5LCBhdm9pZGluZyBkZWFkbG9ja3MKCSAgRG9uJ3QgZmx1c2ggdGhlIGZpbGUgYnkgY2xvc2luZyBhbmQgb3BlbmluZyBpdCBidXQgaW5zdGVhZCB1c2UgZ19mcmVvcGVuLiBUaGlzCgkgIGF2b2lkcyBhIGRlYWRsb2NrIGluIHNodXRkb3duIGJlY2F1c2Ugd2UgZW1pdCB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBjaGFuZ2UKCSAgd2l0aCB0aGUgd3JvbmcgbG9jayBoZWxkLgoKMjAwOS0wNy0xMCAxOTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eQoJICBBZGQgYSBuZXcgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eSBzbyB0aGF0IHF1ZXVlMiBjYW4gc2VjdXJlbHkgYWxsb2NhdGUgYQoJICB0ZW1wb3JhcnkgZmlsZW5hbWUuIERlcHJlY2F0ZSB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBmb3Igc2V0dGluZyB0aGUKCSAgbG9jYXRpb24gYnV0IHN0aWxsIHVzZSBpdCB0byBub3RpZnkgdGhlIGFsbG9jYXRlZCB0ZW1wIGZpbGUuCgoyMDA5LTAzLTIwIDE0OjE3OjE5ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgd2luMzI6IGZpeCBzZWVraW5nIGluIGxhcmdlIGZpbGVzCgkgIEZpeCBTZWVraW5nIGluIGxhcmdlIGZpbGVzIGJ5IHVzaW5nIHRoZSA2NC1iaXQgc2VlayBmdW5jdGlvbnMuCgkgIEZpeGVzICM1NzYwMTkKCjIwMDgtMDgtMDcgMTU6NTg6NTggKzAwMDAgIEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXBsdWdpbi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9jZHBhcmFub2lhL2dzdGNkcGFyYW5vaWFzcmMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6IChnc3Rfb2dnX2RlbXV4X3BsdWdpbl9pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6IChfZG9faW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3BidXRpbHMvcGJ1dGlscy5jOiAoZ3N0X3BiX3V0aWxzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC90YWcvdGFncy5jOiAoZ3N0X3RhZ19yZWdpc3Rlcl90YWdzX2ludGVybmFsKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bC5jOiAocGx1Z2luX2luaXQpOgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIKCSAgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoKMjAwOC0wNy0xMCAyMTowNjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2xlYW51cCBQbHVnaW4gZG9jcy4gTGluayB0byBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLiBGaXggc3ViLXNlY3Rpb24gdGl0bGVzLiBEcm9wIG1lbnRpbmluZyB0aGF0IGFsbCBvdXIgZXhhbXBsZSBwaXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFkZGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvY29udmVydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmVzYW1wbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZHBhcmFub2lhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVjb2RlYmluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmZtcGVnY29sb3JzcGFjZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdub21ldmZzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGlidmlzdWFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb2dnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcGFuZ28ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbGF5YmFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1ZXVlMi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN1YnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGhlb3JhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdHlwZWZpbmRmdW5jdGlvbnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11cmlkZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvc2NhbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b2x1bWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b3JiaXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teHZpbWFnZXNpbmsueG1sOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlci5jOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6CgkgICogZXh0L29nZy9nc3RvZ2dkZW11eC5jOgoJICAqIGV4dC9vZ2cvZ3N0b2dnbXV4LmM6CgkgICogZXh0L3BhbmdvL2dzdGNsb2Nrb3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6CgkgICogZXh0L3BhbmdvL2dzdHRpbWVvdmVybGF5LmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhcGFyc2UuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzdGFnLmM6CgkgICogZ3N0L2FkZGVyL2dzdGFkZGVyLmM6CgkgICogZ3N0L2F1ZGlvY29udmVydC9nc3RhdWRpb2NvbnZlcnQuYzoKCSAgKiBnc3QvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKiBnc3QvZmZtcGVnY29sb3JzcGFjZS9nc3RmZm1wZWdjb2xvcnNwYWNlLmM6CgkgICogZ3N0L2dkcC9nc3RnZHBkZXBheS5jOgoJICAqIGdzdC9nZHAvZ3N0Z2RwcGF5LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgICogZ3N0L3ZpZGVvc2NhbGUvZ3N0dmlkZW9zY2FsZS5jOgoJICAqIGdzdC92aWRlb3Rlc3RzcmMvZ3N0dmlkZW90ZXN0c3JjLmM6CgkgICogZ3N0L3ZvbHVtZS9nc3R2b2x1bWUuYzoKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzoKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbgoJICB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGVsaW5lcyBhcmUgInNpbXBsZSIKCSAgcGlwZWxpbmVzLgoKMjAwOC0wNi0yNCAxNjoyMjo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBEbyBub3QgZG91YmxlIG5vdGlmeS4gUmVtb3ZlIHRoZSB1bnN1ZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgoyMDA4LTA0LTExIDAxOjI1OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OgoJICBGaXggdHlwby4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgU2V0IGJ1ZmZlcmluZyBtb2RlIGluIHRoZSBtZXNzYWdlcy4KCSAgU2V0IGJ1ZmZlcmluZyBwZXJjZW50IGluIHRoZSBxdWVyeS4KCSAgKiB0ZXN0cy9leGFtcGxlcy9zZWVrL3NlZWsuYzogKHVwZGF0ZV9maWxsKSwgKG1zZ19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGRvX3N0cmVhbV9idWZmZXJpbmcpLCAoZG9fZG93bmxvYWRfYnVmZmVyaW5nKSwgKG1zZ19idWZmZXJpbmcpOgoJICBEbyBzb21lIG1vcmUgZmFuY3kgdGhpbmdzIGJhc2VkIG9uIHRoZSBidWZmZXJpbmcgbWV0aG9kIGluIHVzZS4KCjIwMDgtMDQtMDkgMjE6NDA6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbik6CgkgIEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgSW1wbGVtZW50IEJVRkZFUklORyBxdWVyeS4KCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChkb19hc3luY19zdGFydCksCgkgIChkb19hc3luY19kb25lKSwgKHR5cGVfZm91bmQpLCAoc2V0dXBfc3RyZWFtaW5nKSwgKHNldHVwX3NvdXJjZSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKToKCSAgT25seSBhZGQgZGVjb2RlYmluMiB3aGVuIHRoZSB0eXBlIGlzIGZvdW5kIGluIHN0cmVhbWluZyBtb2RlLgoJICBNYWtlIHVyaWRlY29kZWJpbiBhc3luYyB0byBQQVVTRUQgZXZlbiB3aGVuIHdlIGRvbid0IGhhdmUgZGVjb2RlYmluMgoJICBhZGRlZCB5ZXQuCgoyMDA4LTA0LTAyIDExOjA4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVcGRhdGUgdGhlIGVzdGltYXRlZCBpbnB1dCBkYXRhIHdoZW4gd2UgcHVzaCBvdXQgYSBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbyBhYm91dCB0aGUgdGVtcCBmaWxlLgoJICBPbmx5IGZvcndhcmQgc3JjIGV2ZW50cyB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSB0ZW1wIGZpbGUuCgkgIERvbid0IGJsb2NrIHRoZSBkdXJhdGlvbiBxdWVyeSwgd2UgbmVlZCB0byBmaW5kIHNvbWV0aGluZyBiZXR0ZXIuCgkgIERvbid0IGxlYWsgdGhlIHRlbXAgZmlsZW5hbWUuCgoyMDA4LTAzLTI0IDE0OjA4OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBUaGUgcXVldWUgaXMgbmV2ZXIgZmlsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCk6CgkgIFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBGaXhlcyAjNTIzOTkzLgoKMjAwOC0wMy0yMiAxNTowMDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhbWl4ZXJlbGVtZW50LmM6CgkgIChnc3RfYWxzYV9taXhlcl9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6IChnc3RfYWxzYXNpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOiAoZ3N0X2Fsc2FzcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOgoJICAoZ3N0X2NkX3BhcmFub2lhX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NpbmsuYzogKGdzdF9naW9fc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NyYy5jOiAoZ3N0X2dpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6IChnc3RfZ2lvX3N0cmVhbV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc3JjLmM6IChnc3RfZ2lvX3N0cmVhbV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc2luay5jOiAoZ3N0X2dub21lX3Zmc19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NyYy5jOiAoZ3N0X2dub21lX3Zmc19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzogKGdzdF9vZ2dfbXV4X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9jbGFzc19pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dHJlbmRlci5jOiAoZ3N0X3RleHRfcmVuZGVyX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6IChnc3RfdGhlb3JhX2RlY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOiAoZ3N0X3RoZW9yYV9lbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOiAoZ3N0X3RoZW9yYV9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2VuYy5jOiAoZ3N0X3ZvcmJpc19lbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZmlsdGVydGVtcGxhdGUuYzoKCSAgKGdzdF9hdWRpb19maWx0ZXJfdGVtcGxhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NyYy5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9jZGRhL2dzdGNkZGFiYXNlc3JjLmM6CgkgIChnc3RfY2RkYV9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvaW50ZXJmYWNlcy9taXhlcnRyYWNrLmM6CgkgIChnc3RfbWl4ZXJfdHJhY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwZGVwYXlsb2FkLmM6CgkgIChnc3RfYmFzZV9ydHBfZGVwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0YmFzZXJ0cHBheWxvYWQuYzoKCSAgKGdzdF9iYXNlcnRwcGF5bG9hZF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAoZ3N0X2F1ZGlvX2NvbnZlcnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzogKGdzdF9hdWRpb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKGdzdF9hdWRpb3Jlc2FtcGxlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Rlc3RzcmMvZ3N0YXVkaW90ZXN0c3JjLmM6CgkgIChnc3RfYXVkaW9fdGVzdF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzogKGdzdF9nZHBfcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogKGdzdF9wbGF5X2Jhc2VfYmluX2NsYXNzX2luaXQpLAoJICAocHJlcm9sbF91bmxpbmtlZCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmM6IChnc3Rfc3RyZWFtX2luZm9fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N0cmVhbV9zZWxlY3Rvcl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3N1YnBhcnNlL2dzdHN1YnBhcnNlLmM6IChnc3Rfc3ViX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0bXVsdGlmZHNpbmsuYzogKGdzdF9tdWx0aV9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c2luay5jOiAoZ3N0X3RjcF9jbGllbnRfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcGNsaWVudHNyYy5jOiAoZ3N0X3RjcF9jbGllbnRfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNyYy5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6IChnc3RfdmlkZW9fcmF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6IChnc3RfdmlkZW9fc2NhbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKGdzdF92aWRlb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOiAoZ3N0X3ZvbHVtZV9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bGVsZW1lbnQuYzogKGdzdF92NGxlbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzaW5rLmM6IChnc3RfdjRsbWpwZWdzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzcmMuYzogKGdzdF92NGxtanBlZ3NyY19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bHNyYy5jOiAoZ3N0X3Y0bHNyY19jbGFzc19pbml0KToKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzogKGdzdF94aW1hZ2VzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6IChnc3RfeHZpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgIFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlCgkgIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdXNhZ2UsCgkgIGZld2VyIGFsbG9jYXRpb25zIGFuZCB0aHVzIGxlc3MgbWVtb3J5IGRlZnJhZ21lbnRhdGlvbi4gRGVwZW5kCgkgIG9uIGNvcmUgQ1ZTIGZvciB0aGlzLiBGaXhlcyBidWcgIzUyMzgwNi4KCjIwMDctMTItMTQgMTg6NDY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVzZSBzZXBhcmF0ZSB0aW1lcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgcmF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChyZXNldF9yYXRlX3RpbWVyKSwgKHVwZGF0ZV9pbl9yYXRlcyksICh1cGRhdGVfb3V0X3JhdGVzKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgUGF1c2UgbWVhc3VyaW5nIHRoZSBvdXRwdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGZvciBtb3JlIGRhdGEuCgkgIFNlZSAjNTAzMjYyLgoKMjAwNy0xMi0xNCAwOToyNDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogUGF1c2UgdGhlIHRpbWVyIHRvIG1lYXN1cmUgdGhlIGlucHV0IHJhdGUgd2hlbiB3ZSBibG9jayBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBmaWxsZWQuIFNlZSAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1MDMyNjIuCgoyMDA3LTExLTMwIDE3OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuYzogKGNvbXBhcmVfcmFua3MpLCAocHJpbnRfZmVhdHVyZSksCgkgIChnZXRfZmVhdHVyZV9hcnJheSksIChkZWNvZGVyc19maWx0ZXIpLCAoc2lua3NfZmlsdGVyKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X2RlY29kZXJzKSwgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X3NpbmtzKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZmlsdGVyKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZmFjdG9yeWxpc3RzLmg6CgkgIFJlZmFjdG9yIHNvbWUgY29tbW9uIGNvZGUgdG8gZmlsdGVyIGZhY3RvcmllcyBhbmQgY2hlY2sgY2FwcyBjb21wYXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWNvZGVfYmluX2luaXQpLCAoZ3N0X2RlY29kZV9iaW5fZGlzcG9zZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19jb250aW51ZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19mYWN0b3JpZXMpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfc2VsZWN0KSwgKGFuYWx5emVfbmV3X3BhZCksCgkgIChmaW5kX2NvbXBhdGlibGVzKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BsYXlfYmluX2luaXQpLCAoZ3N0X3BsYXlfYmluX2ZpbmFsaXplKSwKCSAgKGF1dG9wbHVnX2ZhY3Rvcmllc19jYiksIChhY3RpdmF0ZV9ncm91cCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKHByb3h5X3Vua25vd25fdHlwZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfY29udGludWVfc2lnbmFsKSwKCSAgKHByb3h5X2F1dG9wbHVnX2ZhY3Rvcmllc19zaWduYWwpLCAocHJveHlfYXV0b3BsdWdfc2VsZWN0X3NpZ25hbCksCgkgIChwcm94eV9kcmFpbmVkX3NpZ25hbCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBhbmQgdXNlIGZhY3RvciBmaWx0ZXJpbmcgY29kZS4KCjIwMDctMTEtMTYgMTU6NDQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBBZGQgcGxheWJpbjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svdGVzdDcuYzogKHVwZGF0ZV9zY2FsZSksICh3YXJuaW5nX2NiKSwgKGVycm9yX2NiKSwKCSAgKGVvc19jYiksIChhYm91dF90b19maW5pc2hfY2IpLCAobWFpbik6CgkgIEFkZCBwbGF5YmluMi4KCSAgQWRkZWQgZ2FwbGVzcyBwbGF5YmFjayBleGFtcGxlLgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5oOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6IChnc3RfcGxheV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svdGVzdC5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKHBhZF9yZW1vdmVkX2NiKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtaW5mby5oOgoJICBDaGFuZ2UgZW1haWwuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLCAoaW5pdF9ncm91cCksIChnc3RfcGxheV9iaW5faW5pdCksCgkgIChnc3RfcGxheV9iaW5fZGlzcG9zZSksIChnc3RfcGxheV9iaW5fc2V0X3VyaSksCgkgIChnc3RfcGxheV9iaW5fc2V0X3N1YnVyaSksIChnc3RfcGxheV9iaW5fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wbGF5X2Jpbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfYmluX2hhbmRsZV9tZXNzYWdlKSwKCSAgKHBhZF9hZGRlZF9jYiksIChwYWRfcmVtb3ZlZF9jYiksIChub19tb3JlX3BhZHNfY2IpLCAocGVyZm9ybV9lb3MpLAoJICAoZHJhaW5lZF9jYiksICh1bmxpbmtfZ3JvdXApLCAoYWN0aXZhdGVfZ3JvdXApLAoJICAoc2V0dXBfbmV4dF9zb3VyY2UpLCAoZ3N0X3BsYXlfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGxheV9iaW4yX3BsdWdpbl9pbml0KToKCSAgQWRkZWQgcmF3IGZpcnN0IHZlcnNpb24gb2YgcGxheWJpbjIuIERvZXMgY2hhaW5lZCBvZ2dzIGFuZCBnYXBsZXNzCgkgIHBsYXliYWNrIGZpbmUuIE5vIHN1cHBvcnQgZm9yIHJhdyBzaW5rcyB5ZXQuIE5vIHZpc3VhbGlzYXRpb25zIG9yCgkgIHN1YnRpdGxlcyB5ZXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmM6IChnc3RfcGxheV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCksIChnc3RfcGxheV9zaW5rX2luaXQpLAoJICAoZ3N0X3BsYXlfc2lua19kaXNwb3NlKSwgKGdzdF9wbGF5X3NpbmtfdmlzX3VuYmxvY2tlZCksCgkgIChnc3RfcGxheV9zaW5rX3Zpc19ibG9ja2VkKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3ZpZGVvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfYXVkaW9fc2luayksIChnc3RfcGxheV9zaW5rX3NldF92aXNfcGx1Z2luKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKHBvc3RfbWlzc2luZ19lbGVtZW50X21lc3NhZ2UpLCAoZnJlZV9jaGFpbiksIChhZGRfY2hhaW4pLAoJICAoYWN0aXZhdGVfY2hhaW4pLCAoZ2VuX3ZpZGVvX2NoYWluKSwgKGdlbl90ZXh0X2VsZW1lbnQpLAoJICAoZ2VuX2F1ZGlvX2NoYWluKSwgKGdlbl92aXNfZWxlbWVudCksIChnc3RfcGxheV9zaW5rX2dldF9tb2RlKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X21vZGUpLCAoZ3N0X3BsYXlfc2lua19yZXF1ZXN0X3BhZCksCgkgIChnc3RfcGxheV9zaW5rX3JlbGVhc2VfcGFkKSwgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudF90b19zaW5rKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudCksIChnc3RfcGxheV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmg6CgkgIEFkZGVkIEVsZW1lbnQgdGhhdCBhYnN0cmFjdHMgdGhlIHNpbmtzIGFuZCB0aGVpciBwaXBlbGluZXMgZm9yIHBsYXliaW4yLgoKMjAwNy0xMC0xNSAxMTozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCjIwMDctMDktMjEgMTQ6Mzc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbiB3cnQgcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoKMjAwNy0wOS0xNyAxNzoyNDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9pbml0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2V0X3Byb3BlcnR5KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOiAodm9yYmlzX2hhbmRsZV9kYXRhX3BhY2tldCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfcmVuZGVyKToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdHJ0Y3BidWZmZXIuYzogKGdzdF9ydGNwX250cF90b191bml4KSwKCSAgKGdzdF9ydGNwX3VuaXhfdG9fbnRwKToKCSAgKiBnc3QtbGlicy9nc3QvcnRzcC9nc3RydHNwbWVzc2FnZS5jOiAoZ3N0X3J0c3BfbWVzc2FnZV9nZXRfdHlwZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAoc2V0X3NjYWxlKToKCSAgRml4IGEgYnVuY2ggb2YgY29tcGlsZSB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICAqIGdzdC9hdWRpb3JhdGUvZ3N0YXVkaW9yYXRlLmM6CgkgIEFsd2F5cyBwdWxsIGluIGNvbmZpZy5oIGJlZm9yZSBpbmNsdWRpbmcgYW55IHN5c3RlbSBoZWFkZXJzLgoKMjAwNy0wOS0xNyAxNjoyMjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFsc28gZml4ICM0NzY1MTQgZm9yIHF1ZXVlMi4KCjIwMDctMDgtMTAgMTA6MDg6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBQcmludGYgZm9ybWF0IGZpeGVzICgjNDY1MDI4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoKMjAwNy0wNi0yOCAxMTowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKToKCSAgVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCjIwMDctMDYtMjggMTA6MjE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAobWFrZV9kZWNvZGVyKSwgKHNldHVwX3NvdXJjZSk6CgkgIFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGFwcGx5X3NlZ21lbnQpLCAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChwbHVnaW5faW5pdCk6CgkgIFR3ZWFrIHRoZSByYXRlIGVzdGltYXRpb24gcGVyaW9kLgoJICBXaGVuIGNhbGN1bGF0aW5nIHRoZSBidWZmZXIgZmlsbGVkbmVzcyBpbiByYXRlIGVzdGltYXRpb24gbW9kZSwgZG9uJ3QKCSAgbWl4IGl0IHdpdGggb3RoZXIgbWV0cmljcy4KCjIwMDctMDYtMTYgMDM6NDI6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsZSBlcnJvciBmcm9tIGlnbm9yZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgoyMDA3LTA2LTEzIDE4OjIwOjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYnVpbGQgb24gTWFjT1NYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBGaXggYnVpbGQgb24gTWFjT1NYLgoKMjAwNy0wNi0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLiBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2hlcyBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKToKCSAgRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLgoJICBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXR1cyB3aGVuIHJlY2VpdmluZyBldmVudHMuIEZpeGVzICM0NDY1NTEuCgoyMDA3LTA2LTExIDExOjMyOjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9wZWVyX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIEZpeGVzICM0NDU1MDUuCgoyMDA3LTA2LTA3IDA5OjExOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpOgoJICBGaXggY29tcGlsYXRpb24uCgoyMDA3LTA2LTA2IDEzOjM2OjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpLCAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFkZCBwdWxsIGJhc2VkIHNjaGVkdWxpbmcgYW5kIGZpeCBzb21lIGRlYWRsb2Nrcy4gRml4ZXMgIzQ0NDUyMy4KCSAgRG9lcyBub3QgeWV0IGNvbXBsZXRlbHkgd29yayBiZWNhdXNlIGR1cmF0aW9uIHF1ZXJpZXMgdXBzdHJlYW0gd29uJ3QKCSAgYmxvY2sgeWV0LgoKMjAwNy0wNi0wNiAwOTowODo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBmc2Vla28gY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKToKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgoyMDA3LTA2LTA1IDE3OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9oYXZlX2RhdGEpLAoJICAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKSwgKGdzdF9xdWV1ZV9yZWFkX2l0ZW1fZnJvbV9maWxlKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgoyMDA3LTA2LTA1IDE2OjE0OjIzICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHN1cHBvcnQgZm9yIGZpbGViYXNlZCBidWZmZXJpbmcuIEZpeGVzICM0NDEyNjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfd3JpdGVfYnVmZmVyX3RvX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9pc19lbXB0eSksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3F1ZXVlX3NldF90ZW1wX2xvY2F0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCjIwMDctMDUtMTcgMTU6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFR3ZWFrIHRoZSBidWZmZXJpbmcgdGhyZXNob2xkcyBhIGxpdHRsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX3JhdGVzKToKCSAgVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBVcGRhdGUgdGhlIGJ1ZmZlciBzaXplIHdpdGggdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlIHJhdGUgaW5zdGVhZCBvZgoJICBvbmx5IHdoZW4gd2UgY2FsY3VsYXRlIGEgbmV3IHJhdGUgc28gdGhhdCB3ZSBnZXQgc21vb3RoZXIgYnVmZmVyaW5nCgkgIHVwZGF0ZXMuCgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2ZpbmFsaXplKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2dldF9wcm9wZXJ0eSksICh1bmtub3duX3R5cGUpLAoJICAoYWRkX2VsZW1lbnRfc3RyZWFtKSwgKG5vX21vcmVfcGFkc19mdWxsKSwgKG5vX21vcmVfcGFkcyksCgkgIChzb3VyY2Vfbm9fbW9yZV9wYWRzKSwgKG5ld19kZWNvZGVkX3BhZCksIChhcnJheV9oYXNfdmFsdWUpLAoJICAoZ2VuX3NvdXJjZV9lbGVtZW50KSwgKGhhc19hbGxfcmF3X2NhcHMpLCAoYW5hbHlzZV9zb3VyY2UpLAoJICAocmVtb3ZlX2RlY29kZXJzKSwgKG1ha2VfZGVjb2RlciksIChyZW1vdmVfc291cmNlKSwKCSAgKHNvdXJjZV9uZXdfcGFkKSwgKHNldHVwX3NvdXJjZSksIChkZWNvZGVyX3F1ZXJ5X2luaXQpLAoJICAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwgKGRlY29kZXJfcXVlcnlfZHVyYXRpb25fZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9wb3NpdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19mb2xkKSwgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfZ2VuZXJpY19mb2xkKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9xdWVyeSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgTmV3IGVsZW1lbnQgdGhhdCBpbnRlcmdyYXRlcyBhIHNvdXJjZSwgb3B0aW9uYWwgYnVmZmVyaW5nIGVsZW1lbnQgYW5kCgkgIGRlY29kZWJpbi4KCjIwMDctMDUtMTcgMTM6MzY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IGZpeCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksICh1cGRhdGVfdGltZV9sZXZlbCksCgkgIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgZml4IGJ1aWxkLgoKMjAwNy0wNS0xNyAxMTo1Nzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZyBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfZ2V0Y2FwcyksIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAodXBkYXRlX2J1ZmZlcmluZyksIChyZXNldF9yYXRlX3RpbWVyKSwKCSAgKHVwZGF0ZV9yYXRlcyksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9pc19lbXB0eSksCgkgIChnc3RfcXVldWVfaXNfZmlsbGVkKSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpLCAocGx1Z2luX2luaXQpOgoJICBPbiBvdXIgd2F5IHRvIHBsYXliaW4yIHRoaXMgaXMgdGhlIG5ldyBuZXR3b3JrIHF1ZXVlIHRoYXQgZG9lcyBidWZmZXJpbmcKCSAgYWxsIGJ5IGl0c2VsZiB1c2luZyBoaWdoIGFuZCBsb3cgd2F0ZXJtYXJrcy4gSXQgY2FuIGFsc28gbWVhc3VyZSB1cCBhbmQKCSAgZG93bnN0cmVhbSBiYW5kd2lkdGggdG8gb3B0aW1hbGx5IHNpemUgdGhlIHF1ZXVlLgoKMjAwOS0xMC0yOCAyMjowMzo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRml4IG1lbWxlYWsgb2YgdW51c2VkIGRlbGF5ZWQgbGlua3MKCSAgQXR0YWNoIHRoZSBEZWxheWVkTGluayBzdHJ1Y3R1cmUgdG8gdGhlIGVsZW1lbnQsIHNvIHRoYXQgd2hlbgoJICB0aGUgZWxlbWVudCBpcyBkaXNwb3NlZCwgdGhlIERlbGF5ZWRMaW5rIGlzIGZyZWVkLgoKMjAwOS0wOS0wOSAxNTozNzoxMSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgX2ZpeGF0ZV9jYXBzKCkgYWxzbyB0cnVuY2F0ZSB3aGVuIG5lZWRlZAoJICBUaGUgZGVmYXVsdCBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgcHJldmlvdXNseSB3b3VsZCBvbmx5IGZpeGF0ZSBlYWNoIGluZGl2aWR1YWwKCSAgc3RydWN0LiBJbiBjYXNlIHRoZXJlIGFyZSBtdWx0aXBsZSBzdHJ1Y3RzLCB0aGUgcmVzdWx0aW5nIGNhcHMgd291bGQgc3RpbGwgbm90CgkgIGJlIGZpeGVkLiBJbiB0aGUgc3Bpcml0IG9mIGhvdyBpbmRpdmlkdWFsIHN0cnVjdHMgYXJlIGZpeGF0ZWQsIHRoaXMgcGF0Y2gKCSAgY2hhbmdlcyBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgdG8gcmVtb3ZlIGFsbCBidXQgdGhlIGZpcnN0IHN0cnVjdC4KCSAgRml4ZXMgIzU5NTg4NgoKMjAwOS0wOS0yMSAxMTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZpeCBkb2NzCgoyMDA5LTEwLTI4IDA5OjI2OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIG9wdGltaXNhdGlvbiA6IFVzZSBnX29iamVjdF9uZXd2IHdoZXJlIHBvc3NpYmxlLgoJICBUaGlzIGF2b2lkczoKCSAgKiB0cmlwbGUtY2hlY2tpbmcgZm9yIHRoZSBHVHlwZSB3aGVuIHR5cGUtY2hlY2tpbmcgaXMgZW5hYmxlZCAoc2VlICM1OTcyNjApCgkgICogQXZvaWRzIGdvaW5nIHRocm91Z2ggYW4gZXhwZW5zaXZlIG5vLWFyZ3VtZW50IGNoZWNraW5nIHdoaWNoIGxhbmRlZCBpbgoJICBnbGliLTIuMjIKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCAyIGV4dHJhYyBmdW5jdGlvbnMgKGdfb2JqZWN0X25ldyAtPiBnX29iamVjdF9uZXdfdmFsaXN0KQoKMjAwOS0xMC0yOCAxMDoxNToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogaW5jbHVkZSBhbm5vdGF0aW9uIGdsb3NzYXJ5IHRvIGhhdmUgd29ya2luZyBsaW5rcy4KCjIwMDktMTAtMjggMTA6MTQ6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgYW5ub3RhdGlvbnM6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfaW5pdF9jaGVjayB0b28KCjIwMDktMTAtMjggMDk6NTg6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogdGVsbCBtb3JlIGFib3V0IHdoYXQgaGFwcGVucyBpbiBnc3RfaW5pdC4KCSAgQWRkIGxpbmtzIHRvIGdzdF91cGRhdGVfcmVnaXN0cnkgYW5kIHRoZSBlbnYtdmFycy4KCjIwMDktMTAtMjggMDk6MjE6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBPR0kgYW5kIHJlcGhyYXNlIHNlY3Rpb25zIGRvY3MKCSAgVGhlIE9HSSBsaW5rcyBhcmUgZGVhZCwgc28gcmVtb3ZlIHRoZW0uIEFsc28gcmVtb3ZlIHRoZSBwYXJhZ3JhcGggdGhhdCBwb2ludGVkCgkgIHRvIE9HSSBhbmQgRFMuIE9ubHkgbWVudGlvbmluZyBEUyB0aGVyZSBtYWRlIGl0IGEgYnV0IHBvaW50bGVzcy4gQWRkIGEgZ2VuZXJpYwoJICBwYXJhZ3JhcGggaW5zdGVhZCB0aGF0IHRlbGxzIGEgYml0IGFib3V0IHRoZSB1c2VjYXNlcyBnc3RyZWFtZXIgY292ZXJzLgoKMjAwOS0xMC0yOCAwMDoyOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgdGVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yOCAwMDowNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogc3ByaW5rbGUgc29tZSBHU1RfREVCVUdfRlVOQ1BUUgoKMjAwOS0xMC0yNyAxNTo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRlc2lnbjogYWRkIHNvbWUgaWRlYXMgZm9yIFNLSVAgbW9kZSB0cmlja21vZGVzCgoyMDA5LTEwLTIzIDEwOjIwOjAyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGJ1ZmZlcmluZyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMDktMTAtMjIgMjE6MjQ6MjQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IG1ha2Ugc3VyZSBwZXJjZW50IGluY3JlYXNlcwoJICBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IHBvc3RlZCBwZXJjZW50IG1lc3NhZ2UgYW5kIG1ha2Ugc3VyZSB0aGUgbmV4dCBwZXJjZW50CgkgIG1lc3NhZ2VzIGFyZSBzdHJpY3RseSBpbmNyZWFzaW5nLgoKMjAwOS0xMC0yMiAxNjozODoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZWZhY3RvciBidWZmZXJpbmcgY29kZQoJICBNb3ZlIHRoZSBidWZmZXJpbmcgdXBkYXRlIGNvZGUgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBjYWxsIGl0CgkgIHdoZW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZSBjaGFuZ2VzIGR1ZSB0byBFT1MuCgkgIEF2b2lkIGRpdmlkaW5nIGJ5IDAuCgoyMDA5LTEwLTIyIDE0OjA5OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBhZGQgYnVmZmVyaW5nIHN1cHBvcnQKCSAgQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlcmluZyBtb2RlIHdoZXJlIHdlIHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2VzIGJhc2VkIG9uIHRoZQoJICBsZXZlbCBvZiB0aGUgcXVldWVzLiBJdCBjdXJyZW50bHkgb3BlcmF0ZXMgb24gdGhlIGZpcnN0IHF1ZXVlIHRoYXQgZ29lcyBvdmVyIG9yCgkgIHVuZGVyIHRoZSBoaWdoL2xvdyB0aHJlc2hvbGRzLgoKMjAwOS0xMC0yMiAxNDowNzozMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkb24ndCBjaGVjayB2aXNpYmxlIGl0ZW1zIGluIGJ1ZmZlcmluZwoJICBJbiBidWZmZXJpbmcgbW9kZSB3ZSB3YW50IHRvIGlnbm9yZSB0aGUgbWF4IHZpc2libGUgaXRlbXMgdG8gZGVjaWRlIHdoZW4gdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gSW5zdGVhZCwgd2Ugb25seSBsb29rIGF0IHRoZSBudW1iZXIgb2YgYnl0ZXMgYW5kL29yIHRpbWUgaW4gdGhlCgkgIHF1ZXVlLgoKMjAwOS0xMC0yMSAxMTozMDo0MCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBsb3cvaGlnaCBwZXJjZW50CgkgIEhvb2sgdXAgdGhlIGxvdy9oaWdoIHBlcmNlbnQgcHJvcGVydGllcyBmb3IgdGhlIGJ1ZmZlcmluZyBtb2RlLgoKMjAwOS0xMC0yMSAxMToyNDo0NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBwcm9wZXJ0eSBmb3IgYnVmZmVyaW5nCgoyMDA5LTEwLTIyIDE1OjIxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW9uCgkgIEZpeCBzb21lIHR5cG8KCjIwMDktMTAtMjIgMDk6NDE6NTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYWRkIEZJWE1FIGZvciB3cm9uZyBjb2RlCgkgIE5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbgoKMjAwOS0xMC0yMSAxNDoyMDoyOSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmaXggZGVidWcgb3V0cHV0CgoyMDA5LTEwLTIxIDE0OjE1OjA1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHNoYWRvd2luZyBmdW5jdGlvbiBhcmd1bWVudAoJICBEb24ndCBzaGFkb3cgdGhlIHNxIGFyZ3VtZW50IGluIHRoZSB1bmRlcnJ1bl9jYiBmdW5jdGlvbiBidXQgdXNlCgkgIGEgZGlmZmVyZW50IHZhcmlhYmxlIG5hbWUgdG8gaXRlcmF0ZSB0aGUgb3RoZXIgcXVldWVzLgoJICBVc2UgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSBpbiB0aGUgb3ZlcnJ1bl9jYiBmdW5jdGlvbi4KCjIwMDktMTAtMjEgMTQ6MTI6MTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogbWFrZSBxdWV1ZSBhcmcgZXhwbGljaXQKCSAgTWFrZSB0aGUgcXVldWUgYXJndW1lbnQgdG8gSVNfRklMTEVEIGV4cGxpY2l0CgoyMDA5LTEwLTIxIDExOjE3OjA4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBwcm9wZXJ0aWVzCgkgIEZpeCBwcm9wZXJ0aWVzLCBtYWtlIHRoZSBleHRyYS1zaXplIHByb3BlcnRpZXMgYXMgbm90IGltcGxlbWVudGVkLgoKMjAwOS0xMC0yNSAyMTozNTowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWxsb3cgdG8gaGlkZS9zaG93IHBhZCBzdGF0dXMgd2l0aCBncmFwaGRldGFpbHMgZmxhZwoKMjAwOS0xMC0yNCAxMzoxNDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBSZW1vdmUgb2Jzb2xldGUgRklYTUUKCSAgSXQncyBub3QgbmVjZXNzYXJ5IChhbmQgbm90IGEgZ29vZCBpZGVhKSB0byBjYWNoZSB0aGUgdHlwZWZpbmQgZmFjdG9yeQoJICBsaXN0IGFueW1vcmUuCgoyMDA5LTEwLTI0IDExOjU4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHByaXZhdGUgaXMgYSBDKysga2V5d29yZCwgZG9uJ3QgdXNlIGl0CgkgIC4uLm90aGVyd2lzZSBDKysgY29tcGlsZXJzIHdpbGwgY29tcGxhaW4gd2hlbiBpbmNsdWRpbmcgZ3N0cmVnaXN0cnkuaAoKMjAwOS0xMC0yNCAxMDoyMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb2NzOiBhZGQgU2luY2UgdGFnIHRvIGRvY3MgZm9yIG5ldyBBUEkKCSAgQW5kIHRlbGwgZ3RrLWRvYyB0aGF0IEdzdFJlZ2lzdHJ5UHJpdmF0ZSBpcyBwcml2YXRlLgoKMjAwOS0xMC0yMSAwOTo0ODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IEtlZXAgdHlwZWZpbmQgZmFjdG9yaWVzIHNvcnRlZCBpbiB0aGUgcmVnaXN0cnkuIEZpeGVzICM1OTkxNDcKCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGRvIHRoZSBzb3J0aW5nIGV2ZXJ5dGltZSB3ZSB1c2UgdHlwZWZpbmQKCSAgVGhlIGJlaGF2aW91ciBvZiBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QgaGFzIHN1YnRsZWx5IGNoYW5nZWQKCSAgaW4gdGhlIHNlbnNlIHRoYXQgdGhlIG9yZGVyIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5lZCwgd2hlcmVhcyBub3cKCSAgaXQgcmV0dXJucyB0aGVtIHNvcnRlZCBieSByYW5rIGFuZCB0aGVuIGJ5IG5hbWUuCgoyMDA5LTEwLTIxIDA5OjQ1OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBDYWNoZSBlbGVtZW50IGFuZCB0eXBlZmluZCBmYWN0b3JpZXMuIEZpeGVzIDU5ODg5NgoJICBUaGlzIGF2b2lkcyB1bm5lZWRlZCBsaXN0L2ZpbHRlcmluZyBpZiB0aGUgcmVnaXN0cnkgaGFzbid0IGNoYW5nZWQKCjIwMDktMTAtMjEgMDk6NDA6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cGx1Z2luZmVhdHVyZTogQVBJIDogbmV3IGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2NvcHkoKSBtZXRob2QKCSAgVGhpcyBhbGxvd3MgY29weWluZyBBTkQgaW5jcmVtZW50aW5nIHRoZSByZWZjb3VudCBhdCB0aGUgc2FtZSB0aW1lLAoJICBhdm9pZGluZyBhIGRvdWJsZSBpdGVyYXRpbyBvZiB0aGUgR0xpc3QKCjIwMDktMTAtMjQgMTA6MDU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGdzdHJlZ2lzdHJ5OiBBZGQgYSBjb29raWUgZm9yIGRldGVjdGluZyBmZWF0dXJlIGxpc3QgY2hhbmdlcwoJICBXZSBhbHNvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLCBzaW5jZSB3ZSB3aWxsIG5lZWQgdG8gYWRkIG1vcmUKCSAgZGF0YSB0aGVyZSBpbiBmb2xsb3dpbmcgcGF0Y2hlcy4KCjIwMDktMTAtMjMgMTM6MTk6MDQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBkb24ndCB1c2UgdHlwZWNoZWNraW5nIGNhc3QgbWFjcm9zCgkgIFNpbXBseSB1c2UgY2FzdGluZyBtYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgbWVzc2FnZSBmaWVsZHMgbGlrZSB3ZSBkbyBmb3IKCSAgYnVmZmVycyBhbmQgZXZlbnRzLiBBdm9pZHMgc29tZSBjb3N0bHkgdHlwZWNoZWNraW5nIHRoYXQgZG9lcyBub3QgcmVhbGx5IGJ1eSB1cwoJICBtdWNoLgoKMjAwOS0xMC0yMyAxMzoxMzo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFJldmVydCAiZ3N0bWVzc2FnZTogQXZvaWQgZXhwZW5zaXZlIHNyYy90eXBlL3RpbWVzdGFtcCBmZXRjaC4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjFjZjkzYTMzNGI3OWEyZDg0OTNlNTMxY2M0NGJhNDVhNDIwOTgwNS4KCjIwMDktMTAtMjMgMTc6NTE6MjcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLgoJICBJZiB3ZSd2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgbWVzc2FnZSwgdXNlIHRoZSBlbnRyaWVzCgkgIGRpcmVjdGx5LgoKMjAwOS0xMC0yMyAxNzo0Nzo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVzZSBpbmxpbmVkIHZlcnNpb24gb2YgX2lzX2FueSgpL19pc19lbXB0eSgpCgkgIENBUFNfSVNfQU5ZIGFuZCBDQVBTX0lTX0VNUFRZIGFyZSB0aGUgZXF1aXZhbGVudCBvZiB0aGVpciBnc3RfY2Fwc18qCgkgIGNvdW50ZXJwYXJ0IGV4Y2VwdCB0aGF0IHRoZXkgYXZvaWQgdGhlIHR5cGVjaGVja2luZyBhbmQgYXJlIGlubGluZWQuCgkgIENBUFNfSVNfRU1QVFlfU0lNUExFIG9ubHkgY2hlY2tzIGZvciBlbXB0eSBjYXBzICh3aXRob3V0IGNoZWNraW5nIGlmCgkgIHRoZSBjYXBzIGlzIEFOWSkuCgoyMDA5LTEwLTIyIDE2OjQyOjEzIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogYWRkIGl0ZW0gdG8gVE9ETyBsaXN0CgkgIFdlIGN1cnJlbnRseSBkbyBhIGxpdHRsZSB0b28gbXVjaCB3b3JrIHdoZW4gd2UgcHVzaCB0aGUgZmlyc3QgYnVmZmVyIGFyb3VuZAoJICByZXN1bHRpbmcgaW4gZXhjZXNzaXZlIGNhcHMgY2hlY2tpbmcuIFdlIGNhbiBwcm9iYWJseSBtYWtlIHRoaXMgYSBsaXR0bGUgbGVzcwoJICBleHBlbnNpdmUuCgoyMDA5LTEwLTIyIDEyOjUyOjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0cGlwZWxpbmU6IFNpbXBsaWZ5IGJhc2UgdGltZSBjaGVja2luZyBzbGlnaHRseQoJICBTaW1wbGlmeSBjaGVja2luZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBiYXNlIHRpbWUgLSBkb24ndCByZS1jaGVjawoJICB0aGUgdmFsdWUgb2YgYSBsb2NhbCB2YXJpYWJsZSB0aGF0IHdhcyBzZXQgMyBsaW5lcyBlYXJsaWVyLgoKMjAwOS0xMC0yMiAxMzoxNToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb246IEF2b2lkIHR5cGUtY2hlY2tpbmcgaW4gc29ydGluZyBtZXRob2QuCgkgIFdlIGFscmVhZHkga25vdyB0aGUgbGlzdCBvbmx5IGNvbnRhaW5zIHBsdWdpbiBmZWF0dXJlcwoKMjAwOS0xMC0yMiAxMzoxMzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb24gOiBDYXN0IHdoZW4gd2UncmUgc3VyZSBvZiB0aGUgdHlwZS4KCSAgQWxzbyBkaXJlY3RseSBhY2Nlc3MgR3N0RWxlbWVudEZhY3RvcnktPnVyaV90eXBlIGluc3RlYWQgb2YgZ29pbmcKCSAgdGhyb3VnaCBhIGZ1bmN0aW9uIHRoYXQgd2lsbCAob25jZSBhZ2FpbikgY2hlY2sgd2hldGhlciBpdCdzIGEKCSAgR3N0RWxlbWVudEZhY3RvcnkKCjIwMDktMTAtMjIgMTI6MzM6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWtlc2luazogQWRkIHNvbWUgZGVidWdnaW5nCgoyMDA5LTEwLTIyIDEyOjMzOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHMvZmFla3Npbms6IExvd2VyIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBhdm9pZCB0aW1lb3V0cwoJICBXZSBqdXN0IGVuZCB1cCB3aXRoIHdheSB0b28gbXVjaCBjb250ZW50aW9uIGluIGdsaWIgb3RoZXJ3aXNlLgoKMjAwOS0xMC0xOSAwOTowNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogVXNlIGhhc2ggdGFibGUgd2hlbiBmaW5kaW5nIGEgZmVhdHVyZS4gRml4ZXMgIzU5ODg5NQoKMjAwOS0xMC0yMSAxNjoyNjowMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIEltcGxlbWVudCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzaW5rcGFkLiBXZSBjYW4gYWNjZXB0IGFueSBjYXBzIGFzCgkgIGxvbmcgYXMgaXQgaXMgYWNjZXB0ZWQgYnkgYWxsIGRvd25zdHJlYW0gcGVlciBlbGVtZW50cy4KCjIwMDktMTAtMjEgMTM6Mzg6NTcgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGF2b2lkIGxvY2sgZm9yIHRha2luZyB0aGUgY291bnRlcgoJICBUaGUgY291bnRlciBmb3IgaW5jb21taW5nIGRhdGEgaXMgYWxyZWFkeSBwcm90ZWN0ZWQgd2l0aCB0aGUgU1RSRUFNX0xPQ0sgc28gd2UKCSAgZG9uJ3QgbmVlZCB0byBhZGQgYW5vdGhlciBsb2NrIGFyb3VuZCBpdC4KCjIwMDktMTAtMjAgMjM6Mjg6NTQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiBoYXNoIHRoZSBwbHVnaW4gYmFzZW5hbWUKCSAgTWFpbnRhaW4gYSBoYXNodGFibGUgb2YgdGhlIHBsdWdpbiBiYXNlbmFtZS4gV2UgY2FuIHRoZW4gdXNlIHRoaXMKCSAgaGFzaHRhYmxlIHRvIHNwZWVkdXAgdGhlIHNlYXJjaCBmb3IgYW4gZXhpc3RpbmcgcGx1Z2luIGFuZCBhdm9pZAoJICBhIHdob2xlIGxvdCBvZiBzdHJjbXAgY2FsbHMuCgoyMDA5LTEwLTIwIDIzOjI3OjQxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBzcGVlZCB1cCBfc3RybGVuCgkgIE1ha2UgdGhlIF9zdHJsZW4gZnVuY3Rpb24gYSBsaXR0bGUgdGlnaHRlcgoKMjAwOS0xMC0yMCAyMTo0Mzo1OCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogbmFtZSBpcyBuZXZlciBOVUxMCgkgIFdoZW4gbG9va2luZyB1cCBhIGZlYXR1cmUgYnkgbmFtZSwgd2UgbmV2ZXIgY2FsbCB0aGlzIGludGVybmFsCgkgIGZ1bmN0aW9uIHdpdGggTlVMTCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciBpdC4KCjIwMDktMTAtMjAgMjE6Mzk6MTEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHJlZmFjdG9yIHBsdWdpbiBsb29rdXAKCSAgV2Uga2VlcCBsb29rdXAgcGx1Z2lucyBieSB0aGVpciBiYXNlbmFtZS4gQXZvaWQgY3JlYXRpbmcgYSBiYXNlbmFtZQoJICBmcm9tIGEgZmlsZW5hbWUgaWYgd2UgY2FuLgoKMjAwOS0xMC0yMCAyMTowMTo1NSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZG8gcXVpY2sgY2hlY2sgZm9yIC4gZmlsZXMKCSAgRG8gYSBxdWljayBjaGVjayBmb3IgLiBmaWxlcyBiZWZvcmUgY2FsbGluZyB0aGUgc3RyY21wIGZ1bmN0aW9ucwoKMjAwOS0xMC0yMCAxMjoyMTowOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6CgkgIFJlbW92ZSBleGVjdXRhYmxlIGJpdHMgb24geG1sIHVuaXQgdGVzdC4KCjIwMDktMTAtMTkgMTY6NDc6MTAgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogRml4IGRvY3MgZm9yIGdzdF9jYXBzX3NldF9zaW1wbGUoKQoKMjAwOS0xMC0xOSAxMzowMjozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogTW9kaWZ5IGRvY3Mgc3RyaW5nIHNsaWdodGx5LgoJICBBcHBhcmVudGx5IHN0YXJ0aW5nIHRoZSBsYXN0IGxpbmUgb2YgYSBkb2NzIHN0cmluZyB3aXRoICdyZXR1cm5zJyBib3RoCgkgIGNvbmZ1c2VzIGFuZCBlbnJhZ2VzIGd0ay1kb2MuIFVzZSBhIHNsaWdodGx5IGRpZmZlcmVudCB3b3JkaW5nIGluc3RlYWQuCgoyMDA5LTEwLTE5IDEyOjI5OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogV2hlbiBhIHBsdWdpbiBpcyBibGFja2xpc3RlZCwgb3V0cHV0IGEgR1NUX0VSUk9SIGxpbmUuCgoyMDA5LTEwLTE5IDEzOjMwOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IENoZWNrIHdlJ3JlIG5vdCBoYW5kbGluZyBOVUxMIHBvaW50ZXJzLgoKMjAwOS0xMC0xOSAxMzoyOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDA5LTEwLTE0IDEwOjU0OjMyICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogRG8gbm90IHBvaXNvbiBnc3RfdHJhY2VfYWRkX2VudHJ5KCkKCSAgU2luY2UgZ3N0X3RyYWNlX2FkZF9lbnRyeSgpIGlzIGEgbWFjcm8sIGdjYyB3aWxsIGJhcmYgd2hlbiBpdCBpcwoJICBkZWZpbmVkIGluIGNhc2UgaXQgaGFzIGJlZW4gcG9pc29uZWQgZHVlIHRvIHRyYWNlIHN1cHBvcnQgYmVpbmcKCSAgZGlzYWJsZWQuCgoyMDA5LTEwLTE4IDIzOjE4OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGp1c3QgY2FzdCBpbiBpbnRlcm5hbCBBUEkgd2hlcmUgd2UgaGF2ZSBjaGVja2VkIHBhcmFtZXRlcnMgYWxyZWFkeQoKMjAwOS0xMC0xOCAyMzoxNTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBnX3NsaWNlIGZvciBjb250cm9sbGVkIHByb3BlcnR5IHN0cnVjdHVyZXMKCSAgVXNlIGdfc2xpZGUgaW5zdGVhZCBvZiBub21hbCBnX25ldywgQWxzbyBkb24ndCBpbml0IHN0cnVjdCB3aXRoIDAgYXMgd2UgbmVlZCB0bwoJICBpbml0IGl0IGFueXdheSB3aXRoIHRoZSByZWFsIHZhbHVlcy4KCSAgQWxzbyBqb2luIHRoZSAzIGZsYWdzIGNoZWNrcyBpbnRvIG9uZS4KCjIwMDktMTAtMTggMTc6MTc6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGxpYnMvYmFzZS90eXBlZmluZGhlbHBlcjogUmVtb3ZlIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRpZ2h0IGxvb3AKCSAgVGhlIGxpc3QgYWdhaW5zdCB3aGljaCB3ZSBydW4gdGhlIGNvbXBhcmVmdW5jIHdpbGwgb25seSBjb250YWluCgkgIEdzdFBsdWdpbkZlYXR1cmUsIHRoZXJlZm9yZSByZW1vdmUgdGhlIDYgZXhwZW5zaXZlIHR5cGUgY2hlY2tzIHdlIGRvCgkgIGZvciBldmVyeSBzaW5nbGUgY29tcGFyaXNpb24uCgoyMDA5LTEwLTE2IDEyOjM5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHR5cG8gaW4gZG9jcwoKMjAwOS0xMC0xNiAwOTo0MzowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBBUEkgc3ltYm9sCgoyMDA5LTEwLTE2IDEwOjEzOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg1ZDE1MzAgdG8gMDcwMmZlMQoKMjAwOS0xMC0wNyAxNTozMjoxOCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBJbXByb3ZlIGNhcHMgc2V0dGVycyBBUEkKCSAgVGhpcyBwYXRjaCBhZGRzIGdzdF9jYXBzX3NldF92YWx1ZSgpIGFuZCBhbGxvd3MgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpIHRvCgkgIHdvcmsgb24gbm9uLXNpbXBsZSBjYXBzLiBTZWUgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgZnVuY3Rpb25zCgkgIGFib3V0IHdoYXQgdGhleSBkby4KCSAgVGhlIGludGVudGlvbiBvZiB0aGVzZSBjaGFuZ2VzIGlzIHRvIGVhc2Ugd29ya2luZyB3aXRoIGNhcHMgaW4gY2FwcwoJICB0cmFuc2Zvcm0gZnVuY3Rpb25zLiBBbiBleGFtcGxlIGZvciB0aGlzIHdvdWxkIGJlIGZmbXBlZ2NvbG9yc3BhY2UsCgkgIHdoZXJlIHRoZSBjYXBzIHRyYW5zZm9ybSBmdW5jdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIHRvIGxvb2sgcm91Z2hseSBsaWtlCgkgIHRoaXMgKHBzZXVkb2NvZGUgYWhlYWQpOgoJICByZXN1bHQgPSBnc3RfY2Fwc19jb3B5ICh0ZW1wbGF0ZV9jYXBzKTsKCSAgdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZSAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoY2FwcywgMCksCgkgICJ3aWRoIik7CgkgIGdzdF9jYXBzX3NldF92YWx1ZSAocmVzdWx0LCB2YWx1ZSk7CgkgIC8qIHNhbWUgZm9yIGhlaWdodCwgZnJhbWVyYXRlIGFuZCBwYXIgKi8KCSAgcmV0dXJuIGNhcHM7CgkgIHdoaWNoIGlzIG11Y2ggY2xlYW5lciBhbmQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgdGhhbiB0aGUgY3VycmVudCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3NjkwCgoyMDA5LTEwLTAyIDEwOjE1OjU1ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgQWRkIFhNTF9MSUJTIHdoZW4gYnVpbGRpbmcgdGVzdHMgdGhhdCB1c2UgeG1sLXNwZWNpZmljIGZ1bmN0aW9ucwoKMjAwOS0xMC0xNSAxNjozNTo1OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBEb24ndCBjcmVhdGUgYmFja3VwIC5wbyBmaWxlcwoJICBBcyB3ZWxsIGFzIHByZXZlbnRpbmcgY3JlYXRpb24gb2YgdXNlbGVzcyBiYWNrdXAgZmlsZXMsIGl0IHdvcmtzCgkgIGFyb3VuZCBhIGJ1ZyBpbiBnZXR0ZXh0IDAuMTcgb24gT1MvWAoKMjAwOS0xMC0xNSAxNjozMDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmFjZSBpbiBQTEFZSU5HLT5QQVVTRUQtPlBMQVlJTkcKCSAgV2hlbiB3ZSBxdWlja2x5IHN3aXRjaCBmcm9tIFBMQVlJTkcgdG8gUEFVU0VEIGFuZCBiYWNrIHRvIFBMQVlJTkcgaXQncyBwb3NzaWJsZQoJICBpbiBzb21lIGNhc2VzIHRoYXQgdGhlIHRhc2sgcmVmdXNlcyB0byBzdGFydCwgVGhpcyBpcyBiZWNhdXNlIHdoZW4gd2UgZ28gdG8KCSAgUEFVU0VELCB3ZSB1bnNjaGVkdWxlIHRoZSBjbG9jayB0aW1lb3V0LCB3aGljaCBjb3VsZCByZXR1cm4gVU5TQ0hFRFVMRUQgd2hlbgoJICB3ZSdyZSBiYWNrIHRvIFBMQVlJTkcsIGNhdXNpbmcgdGhlIHRhc2sgdG8gUEFVU0UgYWdhaW4gd2l0aCBhIHdyb25nLXN0YXRlLgoJICBUaGlzIHBhdGNoIGNoZWNrcyBpZiB3ZSBhcmUgcnVubmluZyB3aGVuIHdlIHJldHVybiB3aXRoIGFuIFVOU0NIRURVTEVEIHJldHVybgoJICB2YWx1ZSBhbmQgaWYgd2UgYXJlLCB0cnkgdG8gY3JlYXRlIGEgbmV3IGJ1ZmZlci4KCSAgRml4ZXMgIzU5NzU1MAoKMjAwOS0xMC0xNSAxMjoxNjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBkb2NzOiBjbGFyaWZ5IHByZXNldCBhcGkgZG9jcwoKMjAwOS0xMC0xNCAxNzo1Nzo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGRvY3M6IGZpeCBjb250cm9sbGVyIHNlY3Rpb25zIGRvY3MKCjIwMDktMTAtMTQgMTA6NDA6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYzODBkNGIgdG8gODVkMTUzMAoKMjAwOS0xMC0xNCAxMDoxNjozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBhIGRvY3VtZW50YXRpb24gdHlwbwoKMjAwOS0xMC0xNCAwODo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IC4uLmFuZCBhZGQgbWlzc2luZyBlbmRpZgoKMjAwOS0xMC0xNCAwODo1NzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IEFsc28gZG9uJ3QgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMTAtMTQgMDg6NTA6MzEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBPbmx5IHJ1biBtYWtlIGNoZWNrLWV4cG9ydHMgaWYgbm8gcHVibGljIEFQSSB3YXMgZGlzYWJsZWQKCSAgRml4ZXMgYnVnICM1OTgyOTcuCgoyMDA5LTEwLTE0IDA4OjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZXBsYWNlIHJlY3Vyc2l2ZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIHdpdGggYW4gaXRlcmF0aXZlIHZlcnNpb24KCSAgVGhpcyBpcyBzbGlnaHRseSBtb3JlIGVmZmljaWVudCBiZWNhdXNlIHRoZSBjb21waWxlciBjYW4ndCBkbyB0YWlsCgkgIHJlY3Vyc2lvbiBoZXJlIGFuZCBoYXMgdG8ga2VlcCBhbGwgc3RhY2sgZnJhbWVzLgoJICBOb3QgdGhhdCBlZmZpY2llbmN5IGlzIHRoYXQgaW1wb3J0YW50IGhlcmUgYnV0IEkgYWxyZWFkeSBoYWQKCSAgdGhlIGl0ZXJhdGl2ZSB2ZXJzaW9uIHNvbWV3aGVyZSBlbHNlIGFuZCBib3RoIGFyZSBlYXN5IHRvIHJlYWQuCgoyMDA5LTEwLTE0IDA4OjI5OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgc2ltcGxlIHVuaXQgdGVzdCBmb3IgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKQoKMjAwOS0xMC0xMyAxOToxMjo1MCArMDMwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLjEubXlvaGFuZW5Abm9raWEuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBmaXggdGltZXN0YW1wIGNvbXBhcmlzc2lvbiwgRml4ZXMgIzU5NzQwNwoKMjAwOS0xMC0xMiAyMTo1MTo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogRGlzYWJsZSB0aGUgdGVzdF9mYWlsX2Fic3RyYWN0X25ldygpIHRlc3QgZW50aXJlbHkgb24gT1MvWAoJICBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgZnJvbSB0aGUgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQgYnV0IG5vdAoJICB1c2VkLgoKMjAwOS0xMC0xMiAxNDo1NzozNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGRlYnVnOiBNYXJrIHRoZSBHU1RfUE9MTCBzeW1ib2wgYXMgZXh0ZXJuIHRvIGF2b2lkIG11bHRpcGx5LWRlZmluZWQgZXJyb3IKCjIwMDktMTAtMTIgMTQ6NDc6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byA2MzgwZDRiMzcwZjA3OGYwY2NhNzI0MDQyOGVhOWY2NjM5NTcxZmY1CgoyMDA5LTEwLTEyIDE0OjI0OjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0cG9sbDogTWFrZSB0aGUgbmV3IEdTVF9QT0xMIGRlYnVnIGNvbXBsZXRlbHkgcHJpdmF0ZQoJICBNYWtlIHRoZSBHU1RfUE9MTCBkZWJ1ZyBjYXRlZ29yeSBzeW1ib2wgcHJpdmF0ZSB0byBsaWJnc3RyZWFtZXIsIGFzCgkgIHRoZXJlIHNob3VsZCBiZSBubyBleHRlcm5hbCB1c2VycyBvZiBpdC4KCjIwMDktMTAtMTIgMTQ6MjI6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBEaXNhYmxlIGEgZmFpcmx5IHNpbGx5IGdzdG9iamVjdCB0ZXN0IG9uIE9TL1gKCSAgVGhpcyB0ZXN0IHVzZWQgdG8gU0lHQlVTIG9uIE9TL1ggYnV0IG5vdyBTSUdTRUdWJ3MgaW5zdGVhZCBvbgoJICBTbm93IExlb3BhcmQuIEl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQgdG8gZmlndXJlIG91dCB3aGljaCBwbGF0Zm9ybQoJICBzaG91bGQgcHJvZHVjZSB3aGljaCBlcnJvciBmb3Igd2hhdCBpcyBmdW5kYW1lbnRhbGx5IGEgcHJldHR5IHNpbGx5CgkgIHRlc3QsIHNvIGp1c3QgZGlzYWJsZSBpdCBvbiBPUy9YCgoyMDA5LTEwLTEyIDEzOjUwOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJICBsaWJzL2dzdC9jaGVjazogTWFrZSB3cml0aW5nIHRocmVhZHNhZmUuIEJhY2twb3J0ZWQgZnJvbSBsaWJjaGVjayB0cnVuawoKMjAwOS0xMC0xMiAxMzo0OTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgbGlicy9nc3QvY2hlY2s6IFJ1biBnc3QtaW5kZW50IG9uIGxpYmNoZWNrLgoKMjAwOS0xMC0xMiAxMjowMjozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgZ3N0cGx1Z2lubG9hZGVyOiBEb24ndCB3YWl0IGZvcmV2ZXIgb24gZ3N0X3BvbGxfd2FpdC4KCSAgVGhpcyBhbGxvd3MgdGhlIG1hY29zeCB2ZXJzaW9ucyB0byBwcm9wZXJseSBlcnJvciBvdXQgd2hlbiBmZHMgYXJlIGNsb3NlZC4KCSAgVGhpcyBpcyBvbmx5IGEgdGVtcG9yYXJ5IGZpeCB1bnRpbCB0aGUgcGx1Z2lubG9hZGVyIGlzIHN3aXRjaGVkIHRvIG5vdAoJICB1c2UgR3N0UG9sbCBidXQgR0lPQ2hhbm5lbHMuCgoyMDA5LTEwLTEyIDEyOjAxOjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogT25seSB0YWtlIGludG8gYWNjb3VudCBhY3RpdmUgZmRzCgkgIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgc2VsZWN0IHByb3Blcmx5IGVycm9ycyBvdXQgb24gbWFjb3N4IChzaWdoKQoKMjAwOS0xMC0xMiAxMDowNzowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEFkZCBzb21lIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA5LTEwLTEyIDEwOjAxOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogVXNlIHRoZSBlcnJvciBmZHNldCB3aGVuIHVzaW5nIHNlbGVjdC9wc2VsZWN0LgoJICBUaGlzIGlzIG5lZWRlZCB0byBwcm9wZXJseSBkZXRlY3QgZmRzIHRoYXQgYXJlIGNsb3NlZCBvciB0aGF0IGdvdAoJICBhbiBlcnJvcgoKMjAwOS0xMC0xMiAwOTo1MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IERvbid0IHVzZSBwb2xsIG9uIHN5c3RlbXMgd2l0aCBicm9rZW4gcG9sbAoKMjAwOS0xMC0xMiAwOTo1MDowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Q6IEFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgR1NUX1BPTEwgZm9yIGdzdHBvbGwKCjIwMDktMTAtMTIgMDk6NDc6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IGJyb2tlbiBwb2xsKCkKCjIwMDktMTAtMDkgMTc6NDQ6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGxldHMga2VlcCAtMSBmb3Igc2VnbWVuc3QgYXMgdGhleSBhcmUgZ3VpbnQ2NCBhbmQgbm90IEdzdENsb2NrVGltZQoKMjAwOS0xMC0wOSAxNzoxMToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIEdTVF9DTE9DS19USU1FX05PTkUgYW5kIEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIG1vcmUKCjIwMDktMTAtMDggMjM6MTA6NDAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggdmFsZ3JpbmQgd2FybmluZ3MgYnkgemVyb2luZyBwYWRkaW5nIGJ5dGVzLgoKMjAwOS0xMC0wOCAxNzoxOTozOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGNoZWNrOiBIb3BlZnVsbHkgZml4IGFuICdtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5nIG9uIE9TL1gKCjIwMDktMTAtMDggMTY6MjE6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgZGVidWcgZm9ybWF0IHN0cmluZyBoYXJkZXIgdG8gc2F0aXNmeSBPUy9YJ3MgZ2NjLgoKMjAwOS0xMC0wOCAxNjowNTowOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggZm9ybWF0IHN0cmluZyBmb3IgZGVidWcgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDggMTU6MjE6NDggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBNb3ZlIHN0ZGluIGFuZCBzdGRvdXQgb3V0IG9mIGhhcm0ncyB3YXkKCSAgSW4gdGhlIHBsdWdpbiBsb2FkZXIgc3VicHJvY2VzcywgbW92ZSBzdGRpbiBhbmQgc3Rkb3V0IHRvIG5ldyBmZCdzCgkgIHNvIHRoYXQgcGx1Z2lucyBwcmludGluZyB0aGluZ3MgZHVyaW5nIHBsdWdpbiBpbml0IG9yICgqZ2FzcCopCgkgIHBvc3NpYmx5IHJlYWRpbmcgZnJvbSBzdGRpbiBkb24ndCBpbnRlcmZlcmUgd2l0aCB0aGUgZGF0YSBzZW50IHRvCgkgIGFuZCBmcm9tIHRoZSBwYXJlbnQuCgoyMDA5LTEwLTA4IDExOjE3OjE0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIHBsdWdpbiBkb2NzOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGluc3BlY3QgZW52aXJvbm1lbnQKCjIwMDktMTAtMDggMTA6NTk6MTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzdmODk4YiB0byBhM2UzY2U0CgoyMDA5LTEwLTA4IDEwOjM5OjI4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgYnl0ZXdyaXRlciBjaGVjayBiaW5hcnkKCjIwMDktMTAtMDggMTA6MzY6NTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRml4IGVycm9yIGhhbmRsaW5nIGluIHRoZSByZWdpc3RyeSBsb2FkZXIKCSAgV2hlbiB0aGUgcGx1Z2luLXNjYW5uZXIgbG9hZCBmYWlscyAoYmVjYXVzZSB0aGUgaGVscGVyIGNhbid0IGJlCgkgIHNwYXduZWQpLCBtYWtlIHN1cmUgdG8gbG9hZCB0aGUgcGx1Z2luIHRoYXQgZmFpbGVkIGluLXByb2Nlc3MsIHNvCgkgIHRoYXQgYWxsIHBsdWdpbnMgZG8gZ2V0IGxvYWRlZC4KCjIwMDktMTAtMDggMTA6MjY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEZpeCB0ZXN0IHJ1biBpbiB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgQWRkIHRoZSBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgY2hlY2sgZW52aXJvbm1lbnQgaGVyZSB0b28KCSAgc28gdGhhdCBpdCBkb2Vzbid0IGZhaWwgd2hlbiBubyBpbnN0YWxsZWQgc2Nhbm5lciBpcyBhdmFpbGFibGUuCgoyMDA5LTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGFkZCBiYWNrIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gcmV2ZXJ0ZWQKCjIwMDktMTAtMDggMTA6NDc6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IG1vcmUgcXVldWUgb3B0aW1pemF0aW9ucwoJICBTcGxpdCBnc3RfcXVldWVfbG9ja2VkX2VucXVldWUoKSBpbnRvIHZhcmlhbnQgZm9yIGJ1ZmZlciBhbmQgZXZlbnQgdG8gZ2V0IHJpZCBvZgoJICB0aGUgaWYoKSBhbmQgbWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlIChjb25zdGFudCBib29sZWFuIHBhcmFtZXRlcnMgYXJlIG5ldmVyCgkgIG5pY2UpLiBSZW1vdmVzIHRoZSBpZiAoaXRlbSkgY2hlY2tzIGFzIHdlIGRlcmVmZXJlbmNlIHRoZSBwb2ludGVyIGJlZm9yZSBhbnl3YXkuCgkgIEFsc28gYXBwbHkgdGhlIHNhbWUgaWRlYSBvZiByZXVzaW5nIHRoZSBwcmV2aW91cyBrbm93bGVkZ2UgaW4KCSAgZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlIHRvIHJlbW92ZSBtb3JlIHR5cGUgY2hlY2tzLgoKMjAwOS0xMC0wOCAxMDo1MTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldwoJICBTcGxpdCBnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcgaW50byBidWZmZXIgYW5kIGV2ZW50IHZhcmlhbnQgdG8gbWFrZSBzYXZlIGFuIGlmCgkgIGFuZCBtYWtlIGNvZGUgbW9yZSByZWFkYWJsZS4KCjIwMDktMTAtMDggMDg6NTU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgcGx1Z2lucy9nc3RmaWxlc3JjOiBNYWtlIGEgZmFzdC1wYXRoIGZvciBsZW5ndGggPT0gMCBidWZmZXIgY3JlYXRpb24uCgkgIElmIHRoZSByZXF1ZXN0ZWQgbGVuZ3RoIGlzIDAsIHdlIGRvbid0IG5lZWQgdG8gcmVhZCBhbnl0aGluZyBmcm9tIHRoZSBmaWxlLgoKMjAwOS0xMC0wOCAwODo1NToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBnc3QvY2hlY2svY29uc2lzdGVuY3ljaGVja2VyOiBDaGVjayB0eXBlIG9mIG1pbmlvYmplY3QgaW4gcHJvYmUKCjIwMDktMTAtMDggMDg6NTM6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdC9iYXNlL2Jhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgY29kZSB3YXMgcHJldmlvdXNseToKCSAgKiBjaGVja2luZyBpZiByZXQgd2FzICE9IE9LCgkgICogLi4gYnV0IGlmIGl0IHdhcyBGTE9XX1NURVAsIHN3aXRoIGl0IHRvIE9LCgkgICogLi4gYW5kIHRoZW4gbm90IHVzaW5nIHJldAoJICBJbnN0ZWFkIHdlIGp1c3QgbWFrZSBpdCBtb3JlIGNvbXBhY3QgYnkgY2hlY2tpbmcgaWYgaXQncyBPSyBvciBTVEVQLgoKMjAwOS0xMC0wOCAwODo1MzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBvYmplY3QgaXMgbm8gbG9uZ2VyIHVzZWQgYWZ0ZXIgdGhhdCBsaW5lCgoyMDA5LTEwLTA4IDA4OjUyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGdzdGluZGV4OiBNYWtlIHN1cmUgd3JpdGVyIGlzIG5vbi1OVUxMLgoJICBGaXhlcyB0aGUgTlVMTCBkZXJlZmVyZW5jZSBhIGZldyBsaW5lcyBsb3dlciAod2hlcmUgaXQgZ2V0cyB0aGUgb2JqZWN0IHR5cGUpLgoKMjAwOS0wOS0yOSAwODoxMzo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IENsZWFuIHVwIGdzdGJ1ZmZlcnN0cmVzcy4KCjIwMDktMTAtMDggMDI6NDI6MTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgYmVuY2htYXJrczogRml4IHRoZSBjb21wbGV4aXR5IGFuZCBtYXNzLWVsZW1lbnRzIGJlbmNobWFya3MKCjIwMDktMTAtMDggMDI6MjA6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoZWNrczogRml4IHN0cmluZyBsZWFrcyBpbiB0aGUgbmV3IGNoaWxkcHJveHkgdGVzdAoKMjAwOS0xMC0wOCAwMjowMzowOCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogSWdub3JlIGFuIGVtcHR5IGRlcGVuZGVuY3kgbGlzdC4KCSAgSWYgYSBwbHVnaW4gcmVnaXN0ZXJzIGFuIGVtcHR5IGRlcGVuZGVuY3kgc2V0LCBqdXN0IGlnbm9yZSBpdCByYXRoZXIKCSAgdGhhbiBzZXJpYWxpc2luZyBhbmQgY2hlY2tpbmcgYW4gZW1wdHkgc2V0LgoKMjAwOS0xMC0wOCAwMjowMTo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBvZmYtYnktb25lIGVycm9yLiBJbXByb3ZlIGRlYnVnLgoJICBGaXggYW4gb2ZmLWJ5LW9uZSBlcnJvciBpbiB0aGUgc2l6ZSBndWFyZCBmb3IgdW5wYWNrX2VsZW1lbnQsIGFuZAoJICBpbXByb3ZlIHZhcmlvdXMgZGVidWcgc3RhdGVtZW50cyBpbiB0aGUgZmFpbHVyZSBwYXRocy4KCSAgQWxzbywgc3dhcCBzb21lIGdfbmV3MCB0byBnX21hbGxvYzAgZm9yIHRoZSBmdW4gb2YgaXQuCgoyMDA5LTEwLTA3IDE2OjAyOjU4IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IFVzZSBfd2ZvcGVuIG9uIHdpbjMyIHRvIG9wZW4gZmlsZXMgd2l0aCBub24tYXNjaWkgZmlsZW5hbWVzIGNvcnJlY3RseS4KCjIwMDktMTAtMDcgMjM6MzE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWdzIGluIGRvY3MgZm9yIG5ld2x5LWFkZGVkIEFQSQoKMjAwOS0xMC0wOCAwMDowODo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmV2ZXJ0IHR3byBvZiB0aGUgY2hhbmdlcwoJICBJdCBvbmx5IG5lZWRlZCBmb3IgdGhlIG5vbiBjb25zdGFudCBzdHJpbmcuCgoyMDA5LTEwLTA3IDIzOjM2OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgYSAiJXMiIGZvcm1hdCBzdHJpbmcgd2hlbiBwcmludGluZyB0aGUgbWVtb3J5IGR1bXAgbGluZQoJICBXZSBrbm93IHRoYXQgdGhlIGNvbnRlbnQgaXMgc2F2ZSwgYnV0IHRoZSBjb21waWxlciBkb2VzIG5vdC4KCjIwMDktMTAtMDcgMjM6MjM6MDggKzAzMDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBkb24ndCBmb3JtYXQgdGhlIHN0cmluZyB0d2ljZQoJICBXZSB3ZXJlIGZvcm1hdHRpbmcgdGhlIHN0cmluZyBvbmNlIGFuZCB0aGVuIHBhc3NpbmcgdGhlIHN0cmluZyBhcyBhIGZvcm1hdAoJICBzdHJpbmcgdG8gdGhlIGxvZyBmdW5jdGlvbnMuCgoyMDA5LTEwLTA3IDExOjQzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCB2YXJpYW50cyBvZiBnc3RfcGFkX2dldF9jYXBzKCkgdGhhdCBkb24ndCBjb3B5IGNhcHMuIEZpeGVzICM1OTA5NDEKCSAgSW4gbW9zdCBwbGFjZXMgaW4gY29yZSBhbmQgYmFzZWNsYXNzZXMgd2UganVzdCBuZWVkIHRoZSBjYXBzIHRvIGRvIGNhcHMtCgkgIGludGVyc2VjdGlvbnMuIEluIHRoYXQgY2FzZSByZWYnZWQgY2FwcyBhcmUgZW5vdWdoIChubyBuZWVkIHRvIGNvcHkpLgoJICBUaGlzIHBhdGNoIGFsc28gc3dpdGNoZXMgdGhlIGNvZGUgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb25zLgoJICBBUEk6IGdzdF9wYWRfZ2V0X2NhcHNfcmVmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmVkKCkKCjIwMDktMDktMjYgMjM6NDM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogYWRkIGdob3N0cGFkIHRlc3QgZm9yIHNldHRpbmcgdGFyZ2V0IGFnYWluIGFmdGVyIHBhZCBpcyBsaW5rZWQKCjIwMDktMDktMjYgMjM6NDI6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogcmVtb3ZlIGVtcHR5IGxpbmVzIGZyb20gd3JvbmcgaW5kZW50IHJ1bgoKMjAwOS0xMC0wNyAyMDozODo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGNoZWNrOiBGaXggY29tcGlsYXRpb24gb2YgdGhlIGJ5dGV3cml0ZXIgdGVzdAoKMjAwOS0xMC0wNyAxODowNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGJ5dGUgd3JpdGVyIGFuZCByZWFkZXIgQVBJIHRvIC5kZWYgZmlsZQoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl8qKCkKCjIwMDktMDgtMjAgMTQ6MjQ6MTkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggc3BlbGxpbmcgaW4gY29tbWVudAoKMjAwOS0xMC0wNyAxODo0MDo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZmx1c2ggcXVldWUgdXBvbiBmYXRhbCBmbG93cmV0dXJuIGFuZCByZWxlYXNlIHVwc3RyZWFtIHRocmVhZAoKMjAwOS0wOS0yMiAxNTo0NDozMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGZpeCBBUEkgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTA3IDE4OjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGJ5dGV3cml0ZXI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0wNSAxMToyNDozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bml0IHRlc3QKCjIwMDktMTAtMDMgMTM6MzA6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgYSBnZW5lcmljIGJ5dGUgd3JpdGVyCgkgIEZpeGVzIGJ1ZyAjNTkwNjY5LgoKMjAwOS0xMC0wMyAxNTo1NzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJpdHJlYWRlci9ieXRlcmVhZGVyOiBBUEk6IEFkZCBnc3RfKGJpdHxieXRlKV9yZWFkZXJfZ2V0X3NpemUoKQoJICAuLi4gYW5kIEdTVF8oQllURXxCSVQpX1JFQURFUigpIGNhc3RzLgoKMjAwOS0xMC0wMyAxMjozNDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcixiaXRyZWFkZXI6IFJlbW92ZSBGSVhNRSAwLjExIHRvIHJlbW92ZSBub24taW5saW5lZCBmdW5jdGlvbnMKCSAgVGhlIG5vcm1hbCBmdW5jdGlvbnMgYXJlIGFsd2F5cyB1c2VmdWwgdG8gaGF2ZSBmb3IgYmluZGluZ3MsIGVzcGVjaWFsbHkKCSAgcnVudGltZS1jcmVhdGVkIGJpbmRpbmdzIGxpa2UgU2VlZCBvciBuZXcgR09iamVjdC1JbnRyb3NwZWN0aW9uIGJhc2VkCgkgIFB5dGhvbiBiaW5kaW5ncy4KCjIwMDktMTAtMDcgMTY6MzY6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBjaGVjazogQXR0ZW1wdCB0byBmaXggdHlwZS1wdW5uaW5nIHdhcm5pbmcgaW4gdGhlIGdzdGl0ZXJhdG9yIHRlc3QKCjIwMDktMTAtMDcgMTY6MDA6MTIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBNYWtlIHN1cmUgdG8gaW5pdCB0aGUgZGF0YXByb3RvY29sIGxpYi4KCSAgQ2FsbCB0aGUgZ3N0X2RwX2luaXQoKSBmdW5jdGlvbiB0byBlbnN1cmUgdGhhdCB0aGUgZGVidWcKCSAgY2F0ZWdvcnkgaXMgaW5pdGlhbGlzZWQsIHRvIGF2b2lkIGdfY3JpdGljYWxzIHdoZW4gcnVubmluZyB3aXRoCgkgIEdTVF9ERUJVRz01CgoyMDA5LTEwLTA3IDE1OjQ3OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogVXNlIEdTVF9ERUJVRyBpbnN0ZWFkIG9mIGdfbWVzc2FnZSBpbiB0aGUgZ2RwIHRlc3QKCjIwMDktMTAtMDcgMTU6MTQ6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudAoKMjAwOS0xMC0wNyAxNDozNDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGltcHJvdmUgcGx1Z2luIGxvYWRlciBmYWlsdXJlIG1lc3NhZ2UgZm9yIHVuaW5zdGFsbGVkIHNldHVwcwoJICBFdmVyeW9uZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIGdpdCBzZXR1cCBpcyBnb2luZyB0byB3b25kZXIgYWJvdXQKCSAgdGhpcyBmYWlsdXJlIG5leHQgdGltZSB0aGV5IHVwZGF0ZSwgc28gbGV0J3MgbWVudGlvbiB0aGUgc29sdXRpb24KCSAgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTEwLTA3IDEzOjU5OjQ3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQmVlZiB1cCB0aGUgdGVzdCBmb3IgX191aW50MTI4X3Qgb24gR0NDCgkgIEdDQyAzLjQuMyBvbiB0aGUgU1BBUkMgYnVpbGRib3QgY3Jhc2hlcyB3aGVuIGFjdHVhbGx5CgkgIHVzaW5nIF9fdWludDEyOF90LiBCZWVmIHVwIHRoZSBjb25maWd1cmUgdGVzdCB0byBkZXRlY3QgdGhhdCB0aGUKCSAgdHlwZSBpcyBhY3R1YWxseSB1c2FibGUuCgoyMDA5LTEwLTA3IDA5OjU2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoJICBBbmQgYWRkIEFQSTogbWFya2VyIGluIGNvbW1pdCBtZXNzYWdlIHRoYXQgd2FzIG9taXR0ZWQgaW4gdGhlIG9yaWdpbmFsCgkgIGNvbW1pdDoKCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpCgoyMDA5LTEwLTA3IDA5OjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgYmVuY2htYXJrczogYWRkIGJ1ZmZlcnN0cmVzcyBiaW5hcnkgdG8gLmdpdGlnbm9yZQoKMjAwOS0xMC0wNyAwOTo0Mjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIDIuMTgKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IGFzIHBlciB0aGUgcmVsZWFzZSBwbGFubmluZyBkb2NzLgoKMjAwOS0xMC0wNyAxMDozNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTAtMDcgMTE6MTI6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGZsaXAgdGhlIEdfVU5MSUtFTFkKCSAgSXRzIGxpa2VseSB0aGF0IHdlIGhhdmUgY2FwcyBhbmQgdW5saWtlbHkgKGVycm9yKSBvdGhlcndpc2UuCgoyMDA5LTEwLTA3IDExOjA0OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHF1ZXVlIGFwaSB0byB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkCgoyMDA5LTA5LTI4IDE1OjI1OjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQXZvaWQgaW5zdGFuY2UgY2hlY2sKCSAgV2Uga25vdyBlYXJsaWVyIG9uIGluIHRoZSBjb2RlIHdoZXRoZXIgd2UncmUgaGFuZGxpbmcgYW4gZXZlbnQgb3IgYSBidWZmZXIsCgkgIGp1c3QgcGFzcyB0aGF0IGluZm9ybWF0aW9uIHRocm91Z2guCgkgIFRoaXMgY29tbWl0IGFuZCB0aGUgcHJldmlvdXMgY29tbWl0IHJlZHVjZSBpbnN0cnVjdGlvbiBmZXRjaDoKCSAgKiB3aGVuIHB1c2hpbmcgYnVmZmVyIChfY2hhaW4pIGJ5IDEwJQoJICAqIHdoZW4gcG9wcGluZyBidWZmZXIgKF9sb29wKSBieSAzJQoKMjAwOS0wOS0yOCAxNToyNDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IENhY2hlIGlucHV0L291dHB1dCB0aW1lLCBhdm9pZCBleHBlbnNpdmUgY2FsbHMuCgkgICogQ2FjaGUgdGhlIGlucHV0L291dHB1dCB0aW1lCgkgICogT25seSByZWNhbGN1bGF0ZSBpdCB3aGVuIG5lZWRlZC4KCSAgQXZvaWRzIDUwJSBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUKCjIwMDktMTAtMDcgMTA6MDA6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYnVpbGQ6IHNwcmludGYsIHNzY2FuZiBuZWVkIHN0ZGlvLmgKCjIwMDktMTAtMDUgMTE6NDY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogaW5pdGlhbGl6ZSBndmFsdWUgaW4gX3ZhbGlzdCBmdW5jdGlvbi4gRml4ZXMgIzU5NTYwMgoJICBSZWZsb3cgdGhlIGNvZGUgdG8gbW92ZSBlcnJvciBoYW5kbGluZyB0byB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbnMuIEluaXRpYWxpemUKCSAgZ3ZhbHVlIGxpa2Ugd2UgZG8gaW4gdGhlIHNldHRlci4gQWRkIGEgdW5pdC10ZXN0IG1vZHVsZSB3aXRoIHR3byBzaW1wbGUgdGVzdHMKCSAgdGhlIGNhdGNoZSB0aGlzIGJ1Zy4KCjIwMDktMTAtMDEgMTc6Mzk6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvbid0IGludGVyc2VjdCB3aXRoIGFueSBpbiBwcm94eV9wYWRfZ2V0X2NhcHMKCSAgV2UgaW5pdGlhbGl6ZSB0aGUgY2FwcyB3aXRoIGFueSBhbmQgaWYgYSBwYWQgaGFzIE5VTEwgY2FwcywganVzdCBza2lwIGl0IGluc3RlYWQKCSAgb2YgaW50ZXJzZWN0aW5nIHdpdGggYW55LiBBbHNvIGFkZCBicmFuY2ggcHJlZGljdGlvbiBoZXJlLgoKMjAwOS0wOS0zMCAxNjo0MTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHJlbmFtZSBhZ2dyZWdhdG9yIHRvIGFkZGVyIGluIHRoZSBkb2NzLgoKMjAwOS0wOS0zMCAwOTo0NzoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IGZpeCBjb3B5IGFuZCBwYXN0IG1pc3Rha2UgZm9yIC1xIG9wdGlvbgoKMjAwOS0xMC0wNyAwOTo1NDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRXh0ZW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhbGxvdyB1c2luZyBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXItc2hhcnAKCjIwMDktMDktMjggMTU6MTk6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgbmV3IEdzdERhdGFRdWV1ZSBjb25zdHJ1Y3RvcgoKMjAwOS0wOS0yOCAxNToxODozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogbmV3IGNvbnN0cnVjdG9yIHdoaWNoIHRha2VzIGNhbGxiYWNrcy4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgZ29pbmcgdGhyb3VnaCBnbGliJ3Mgc2lnbmFsbGluZyBzeXN0ZW0KCjIwMDktMDktMjggMTM6MTk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgY2FjaGVkIHZhbHVlIGluc3RlYWQgb2YgZXhwZW5zaXZlIG9iamVjdCBnZXQuCgkgIFRoZSB0YXNrIHdpbGwgYWx3YXlzIGV4aXN0IGFzIGxvbmcgYXMgaXRzIG93bmVyIChpLmUuIHRoZSBwYWQpIGFuZCB0aGF0CgkgIG93bmVyJ3Mgb3duZXIgKGkuZS4gbXVsdGlxdWV1ZSkgZXhpc3QuCgkgIFJlZHVjZXMgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbiBmZXRjaGVzIGJ5IDM2JS4KCjIwMDktMDktMjggMTU6NDE6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IFVzZSBwcmV2aW91cyBrbm93bGVkZ2Ugb2YgZGF0YSB0eXBlIHRvIGF2b2lkIHR5cGVjaGVjay4KCSAgV2Uga25vdyB3aGV0aGVyIHdlIGhhdmUgYSBidWZmZXIgb3IgYW4gZXZlbnQsIHVzZSB0aGF0IGluc3RlYWQgb2YgZ29pbmcKCSAgdHJvdWdoIHRoZSBleHBlbnNpdmUgR0xpYiB0eXBlY2hlY2suCgkgIFRoZSBvdmVyYWxsIGluc3RydWN0aW9uIGZldGNoIHJlZHVjdGlvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0IGFuZCB0aGUKCSAgMiBwcmV2aW91cyBjb21taXRzOgoJICAqIHJlY2VpdmluZyBhIGJ1ZmZlciAoX2NoYWluKSBieSAyMCUKCSAgKiBwb3BwaW5nIGEgYnVmZmVyIChfbG9vcCkgYnkgMTQlCgkgIE51bWJlcnMgYWNxdWlyZWQgdGhyb3VnaCBjYWxsZ3JpbmQgcGFzc2luZyAxMDAwMDAgYnVmZmVycyB0aHJvdWdoIHF1ZXVlLgoKMjAwOS0wOS0yOCAxNToyMDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBwbHVnaW5zL3F1ZXVlOiBBdm9pZCB1c2VsZXNzIHNlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgY2FsY3VsYXRpb25zLgoJICAqIENhY2hlIHNyYyBhbmQgc2luayB0aW1lCgkgICogVXNlIGEgYm9vbGVhbiB0byBrbm93IHdoZXRoZXIgc3JjL3NpbmsgdGltZSBuZWVkIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDA5LTA5LTI4IDEzOjIxOjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL3F1ZXVlOiBKdXN0IGNhc3QgdG8gdGhlIG9iamVjdCBwYXJlbnQgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcuCgoyMDA5LTA5LTIzIDE2OjE5OjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrOiBOZXcgYmVuY2htYXJrIGZvciB0ZXN0aW5nIGNvbnRlbnRpb24gd2hlbiBjcmVhdGluZyBidWZmZXJzCgoyMDA5LTA5LTIzIDE2OjE3OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBEb24ndCBhY3RpdmF0ZSB0cmFjaW5nIGlmIG5vdCByZXF1ZXN0ZWQuCgoyMDA5LTEwLTA3IDA4OjM3OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBpbml0IG1vcmUgdmFyaWFibGVzIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgb24gb3N4CgkgIEluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBhbmQgbWFrZSB0aGUgYnVpbGQgYm90IGhhcHB5CgkgICh0aGUgY29tcGlsZXIgbW9zdCBsaWtlbHkgY29tcGxhaW5zIGFib3V0IHRoaXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cKCSAgaGVyZSB0aGF0IGZhaWxfdW5sZXNzIHdpbGwgYWJvcnQvZXhpdCBpbiB0aGUgcGF0aCB3aGVyZSBpdCBmYWlscykuCgoyMDA5LTA5LTI2IDExOjQzOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbXByb3ZlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24KCSAgUGFkcyBoYXZlIHRoZWlyIEdzdFNpbmdsZVF1ZXVlIHN0b3JlZCBhcyBlbGVtZW50IHByaXZhdGUgZGF0YQoJICBzbyB0aGVyZSdzIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHNpbmdsZSBxdWV1ZXMKCSAgZXZlcnkgdGltZS4gQWxzbyBldmVyeSBwYWQgb25seSBoYXMgYSBzaW5nbGUgaW50ZXJuYWwgbGluayBzbwoJICB1c2UgYSBzaW5nbGUgaXRlcmF0b3IgaW5zdGVhZCBvZiBhIGNvbXBsZXggY3VzdG9tIGl0ZXJhdG9yLgoJICBTZXQgdGhlIGVsZW1lbnQgcHJpdmF0ZSBkYXRhIG9mIHRoZSBwYWQgdG8gTlVMTCB3aGVuIGZyZWVpbmcgdGhlCgkgIHNpbmdsZSBxdWV1ZS4KCjIwMDktMDktMTcgMTY6MzA6NDMgLTA0MDAgIEpvaGFuIEJpbGllbiA8am9iaUBsaXRsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgYW5ub3RhdGlvbnMgZm9yIGdzdF9lbGVtZW50X3F1ZXJ5X3tkdXJhdGlvbixwb3NpdGlvbn0KCSAgRml4ZXMgYnVnICM1OTU1MTEuCgoyMDA5LTEwLTA1IDAwOjExOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9uIG9mIGdzdF9ieXRlX3JlYWRlcl9za2lwCgoyMDA5LTEwLTA3IDAwOjQ3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcyBmb3IgbmV3IGFuZCBjaGFuZ2VkIHN0cmluZ3MKCjIwMDktMDktMjggMjI6NDM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHRha2UgbG9ja3MgYXJvdW5kIHNtYWxsZXIgc2VjdGlvbgoJICBXZSBkb24ndCBuZWVkIHRoZSBob2xkIHRoZSBwcm94eSBtdXRleCBsb2NrZWQgZm9yIGdldHRpbmcgdGhlIGludGVybmFsIHBhZCBhbmQKCSAgZm9yIGxpbmtpbmcgdGhlIG5ldyB0YXJnZXQgcGFkIHdoZW4gd2UgcmV0YXJnZXQuIFNvIHRha2UgdGhlIGxvY2sgYSBsaXR0bGUgbGF0ZXIKCSAgYW5kIHJlbGVhc2UgaXQgZWFybGllci4KCSAgRml4ZXMgIzU5NjM2NgoKMjAwOS0xMC0wNCAxOTo1MTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMTAtMDMgMjE6MDg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3Q6IHJlbW92ZSBtb3JlIHVubmVjZXNzYXJ5IGNhc3Qgd2hlbiB1c2luZyBnX3NpZ25hbF8qKCkKCjIwMDktMTAtMDMgMjA6NDk6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkYXRhcXVldWUsIGVsZW1lbnRzOiBhdm9pZCB1bm5lY2Vzc2FyeSBydW50aW1lIHR5cGUgY2hlY2tzCgoyMDA5LTEwLTA1IDE2OjQxOjUwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBVcGRhdGUgdGhlIHJlbGVhc2Ugc2NyaXB0CgkgIFJlbW92ZSBvbGQgY3J1ZnQgZnJvbSB0aGUgcmVsZWFzZSBzY3JpcHQsIGFuZCBjaGFuZ2Ugc29tZSBDVlMKCSAgcmVmZXJlbmNlcyB0byBlcXVpdmFsZW50IGdpdCBjb21tYW5kcwoKMjAwOS0xMC0wNCAxNDozMDozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEFkZCBhIG1hZ2ljIG51bWJlciBhbmQgbWF4aW11bSBzaXplIGxpbWl0LgoJICBHdWFyZCBhZ2FpbnN0IGEgaG9zdGlsZSBjaGlsZCBwcm9jZXNzIHRoYXQgc2VuZHMgYm9ndXMgZGF0YQoJICBkdWUgdG8gbWVtb3J5IGNvcnJ1cHRpb24gYnkgYWRkaW5nIGEgbWFnaWMgbnVtYmVyIHRvIGVhY2ggcGFja2V0LAoJICBhbmQgbGltaXQgdGhlIG1heGltdW0gc2l6ZSBvZiBhbnkgbWVzc2FnZSB0byAzMk1CCgoyMDA5LTAyLTA5IDEzOjMzOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHJlZ2lzdHJ5OiBBbHNvIGNoZWNrIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmsgdmVyc2lvbiBvZiB0aGUgY2hpbGQuCgkgIFdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBmdW5jdGlvbiBwbHVnaW4tc2Nhbm5lciwgaW5jbHVkZSBhIGNoZWNrIG9uIHRoZQoJICB2ZXJzaW9uIG9mIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmtzIGl0IHNlbmRzLCB0byBtYWtlIHN1cmUgaXQncwoJICB3aGF0IHdlIHVuZGVyc3RhbmQuCgoyMDA5LTAyLTA2IDA5OjQ5OjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICByZWdpc3RyeTogU3VwcG9ydCBpbnN0YWxsZWQvdW5pbnN0YWxsZWQgcGx1Z2luLXNjYW5uZXIgaGVscGVyCgkgIEFkZCBhIHNpbXBsZSB2ZXJzaW9uIGNoZWNrIHdoZW4gc3RhcnRpbmcgdGhlIHBsdWdpbi1zY2FubmVyIHNvIHdlIGNhbgoJICB2ZXJpZnkgd2UncmUgdGFsa2luZyB0byBvbmUgdGhhdCB0YWxrcyB0aGUgc2FtZSBsYW5ndWFnZS4KCSAgRmlyc3QgdHJ5IGEgcGx1Z2luLXNjYW5uZXIgaW4gdGhlIGluc3RhbGxlZCBwYXRoLCB0aGVuIHRyeSBvbmUgdmlhIHRoZQoJICBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciBpZiB0aGF0IGRvZXNuJ3Qgd29yay4KCSAgVXBkYXRlIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQuCgkgIEluc3RhbGwgdGhlIHBsdWdpbi1zY2FubmVyIHRvIHRoZSBsaWJleGVjIGRpcgoKMjAwOS0wMS0zMCAxNDoxODoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmVtb3ZlIGNoZWNraW5nIGZvciBhbmQgbWVudGlvbnMgb2YgZm9yayB3aGVyZSBwb3NzaWJsZS4KCSAgV2Ugbm8gbG9uZ2VyIHVzZSBmb3JrKCkgZGlyZWN0bHksIGluc3RlYWQgdXNpbmcgZ2xpYidzIHNwYXduCgkgIGZ1bmN0aW9uYWxpdHksIHNvIGRvbid0IGNoZWNrIGZvciBpdCwgYW5kIGRvbid0IHVzZSBpdCBpbiB0aGUKCSAgZG9jdW1lbnRhdGlvbiBub3Rlcy4KCjIwMDktMDEtMzAgMTM6MDY6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZS1lbmFibGUgYW5kIGZpeCBkaXNhYmxlZCBiaXQgb2YgdGhlIHJlZ2lzdHJ5IHRlc3QKCjIwMDktMDEtMzAgMTM6MDQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBPbmx5IGxvYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlIG9uY2UgcGVyIHByb2Nlc3MuCgkgIFdoZW4gdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LCB3ZSBkb24ndCBuZWVkIHRvIHJlLXJlYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlCgkgIGFuZCB3YXN0ZSB0aW1lIHJlcGxhY2luZyBhbGwgb3VyIGV4aXN0aW5nLCBob3BlZnVsbHkgaWRlbnRpY2FsLCBwbHVnaW5zCgkgIGFuZCBmZWF0dXJlcyB0aGF0IHdlJ3JlIGFib3V0IHRvIHJlLXNjYW4gYW55d2F5LgoKMjAwOS0wMS0yOSAxMzoyMjoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyB0aGUgcmVnaXN0cnkuCgkgIEFkZCB0aGUgZnVsbCBzZXQgb2YgZGVidWcgYWJvdXQgd2h5IGl0J3MgZGVjaWRlZCB0aGF0IGEgZ2l2ZW4gcGx1Z2luIGlzCgkgIHN0YWxlIG9yIG5vdCwgYW5kIGluY2x1ZGUgdGhlIHBsdWdpbiBuYW1lIHdoZW4gZmluYWxpemluZyBpdC4KCjIwMDktMDEtMjMgMjE6MTU6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIHJlc3RhcnRpbmcgb2YgdGhlIHBsdWdpbiBsb2FkZXIgYW5kIGJsYWNrbGlzdGluZyBvZiBicm9rZW4gZmlsZXMKCjIwMDktMDEtMjMgMTU6NDc6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUGx1Z2luIGxvYWRlciBwaGFzZSAyCgkgIHBoYXNlIDIgLSBtYWtlIHRoZSBwbHVnaW4gbG9hZGVyIHJlY2VpdmUgdGhlIGxpc3Qgb2YgcGx1Z2lucyB0byBsb2FkIGFuZAoJICBzZW5kIGJhY2sgdGhlIHJlc3VsdHMgYXN5bmNocm9ub3VzbHksIHNvIHdlIGRvbid0IGNvbnRleHQgc3dpdGNoIGJhY2sKCSAgYW5kIGZvcnRoIHNvIG11Y2guCgoyMDA5LTAzLTE0IDIzOjA3OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL3BsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IEFkZCByZWdpc3RyeSBoZWxwZXIgcGhhc2UgMQoJICBQaGFzZSAxIG9mIGFkZGluZyB0aGUgcmVnaXN0cnkgc2NhbiBoZWxwZXIKCjIwMDktMDktMTQgMjM6MzE6MTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBSZWFycmFuZ2Ugc29tZSB0aGluZ3MuCgkgIFByZXBhcmUgdG8gbGFuZCB0aGUgZXh0ZXJuYWwgcGx1Z2luIGhlbHBlciBwcm9jZXNzCgoyMDA5LTEwLTA2IDE5OjQxOjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNS4xCgo9PT0gcmVsZWFzZSAwLjEwLjI1ID09PQoKMjAwOS0xMC0wNSAxMjo1NzowMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDAuMTAuMjUKCjIwMDktMTAtMDUgMTI6NDE6NDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMC0wMSAxNjoyNDo1MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC40IHByZS1yZWxlYXNlCgoyMDA5LTA5LTMwIDE1OjUyOjMzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IERvbid0IHVzZSBjaGFyYWN0ZXIgY2xhc3NlcyBpbiBzZWQgZXhwcmVzc2lvbnMKCSAgQXBwYXJlbnRseSB0aGUgc2VkIHRoYXQgc2hpcHMgb24gU29sYXJpcyAxMCBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyCgkgIGNsYXNzZXMgbGlrZSBbOmFsbnVtOl0sIHNvIGRvbid0IHVzZSB0aGVtLiBXZSBkb24ndCBuZWVkIHRoZW0gZm9yIHRoZQoJICBzeW1ib2wgbmFtZXMgdGhhdCBhcmUgYmVpbmcgZXh0cmFjdGVkIGFueXdheS4KCSAgQWxzbywgdXNlICQoU0VEKSBpbnN0ZWFkIG9mICdzZWQnCgkgIEZpeGVzOiAjNTk2ODc3CgoyMDA5LTA5LTE3IDAxOjIwOjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4zIHByZS1yZWxlYXNlCgoyMDA5LTA5LTE1IDA5OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IEdNUCBzY2FsaW5nIHVuaXQgdGVzdAoJICBHTVAgb25seSB1c2VzICJ1bnNpZ25lZCBsb25nIGludCIsIHdoaWNoIGlzIDMyIGJpdAoJICBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcyBhbmQgY2FuJ3QgaG9sZCBhIGd1aW50NjQuCgkgIFRoaXMgcmVzdWx0ZWQgaW4gZmFsc2UgdW5pdCB0ZXN0IGZhaWx1cmVzIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzLgoJICBGaXhlcyBidWcgIzU5NTEzMy4KCjIwMDktMDktMTQgMTI6NDc6MjYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTE0IDE0OjA3OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2NzOiBHU1RfTUVTU0FHRV9TVFJFQU1fU1RBVFVTIGlzIGltcGxlbWVudGVkIG5vd2FkYXlzLgoJICBEb2NzIHdlcmUgc3RpbGwgbWVudGlvbiBpdCBhcyAibm90IHlldCBpbXBsZW1lbnRlZCIuCgoyMDA5LTA5LTEyIDEzOjUyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHBrZ2NvbmZpZyBiZWZvcmUgYWxsIGxpYnJhcmllcyBhbmQgc2V0IFBLR19DT05GSUdfUEFUSAoJICBUaGlzIHdheSBnLWlyLXNjYW5uZXIgY2FuIGZpbmQgdGhlIGdzdHJlYW1lci0wLjEwIHBrZy1jb25maWcgZmlsZS4KCjIwMDktMDktMTIgMTM6NTE6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBpbnRyb3NwZWN0aW9uOiBEb24ndCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gR3N0U3RydWN0dXJlIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMDktMDktMTEgMjM6MjE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuMiBwcmUtcmVsZWFzZQoKMjAwOS0wOS0xMSAyMjo0Mjo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9uJ3QgdXNlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wOS0xMSAyMjoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRGlzYWJsZSByZXN0cmljdGlvbiB0aGF0IHN0cnVjdHVyZSBjaGFuZ2VzIGFyZSBzaW5rIHBhZHMKCSAgVGhlIHN0cnVjdHVyZV9jaGFuZ2UgbWVzc2FnZSB3YXMgb3JpZ2luYWxseSBlbWl0dGVkIG9uIHNvdXJjZSBwYWRzIGFuZAoJICB0aGVuIHJlY2VudGx5IGNoYW5nZWQgdG8gYmUgc2luayBwYWRzLiBUaGlzIGNhdXNlcyBhIGZhaWx1cmUgaW4gdGhlCgkgIGdzdC1weXRob24gdGVzdHN1aXRlLiBEaXNhYmxlIHRoZSByZXN0cmljdGlvbiBzbyB0aGF0IHRoZSBwdWJsaXNoZWQKCSAgYmVoYXZpb3VyIGlzIHN0aWxsIGFsbG93ZWQuCgoyMDA5LTA5LTExIDE4OjI0OjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGNoZWNrOiBGaXggdmVyc2lvbiBjaGVjayB0ZXN0cwoJICBBY2NvbW9kYXRlIHRoZSBzbGlnaHRseSBjaGFuZ2VkIHNlbWFudGljcyBpbiB0aGUgcGx1Z2luIHZlcnNpb24gY2hlY2sKCSAgd2hlcmUgYSBDVlMgdmVyc2lvbiBqdXN0IGJlZm9yZSBhIHJlbGVhc2UgaXMgYWNjZXB0YWJsZS4KCjIwMDktMDktMTEgMjE6MjA6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgY3Jhc2ggaW4gY2xlYW5pbmcgdXAgb24gZXJyb3IuCgkgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTA3LTIwIDEyOjU0OjAwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRlYnVnOiB1c2UgZHVtbXkgY29kZSB0byBhdm9pZCBzcHVyaW91cyBzZW1pY29sb25zCgkgIEZpeGVzIGJ1ZyAjNTg5MTczLgoKMjAwOS0wOS0xMCAxMTo1MzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0xMCAxMTo0MTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGltcHJvdmUgdmVyc2lvbiBjaGVjawoJICBBbHNvIHBhcnNlIHRoZSBuYW5vIG9mIHRoZSB2ZXJzaW9uIGFuZCBhc3N1bWUgdGhhdCBYLlkuWi0xLjEgPj0gWC5ZLloKCSAgV2l0aCB0aGlzIGNoYW5nZSB3ZSBjYW4gYWxzbyBjaGVjayBkZXZlbG9wbWVudCB2ZXJzaW9ucyBhZ2FpbnN0IHRoZSB2ZXJzaW9uIG9mCgkgIHRoZSB1cGNvbW1pbmcgcmVsZWFzZS4KCjIwMDktMDktMTAgMTA6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIEZJWE1FIGZvciAwLjExIHRvIG5vdCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gYmUgYSBHc3RTdHJ1Y3R1cmUKCSAgU2VlIGJ1ZyAjNTE4OTM0LgoKMjAwOS0wOS0wOSAxNjoyOToxMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggdHlwbyBpbiBpbmxpbmUgZG9jdW1lbnRhdGlvbgoKMjAwOS0wOS0wOSAxNzo1Nzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDktMDkgMTg6Mzg6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBBZGQgYSBjb21tZW50IHRvIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyB0byBleHBsYWluIHdoeSB0aGUgcm91bmRpbmcgaXMgY29ycmVjdAoKMjAwOS0wOS0wOSAxNjo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgdW5yZWYgTlVMTCBjYXBzCgkgIENhcHMgY2FuIGJlIE5VTEwgc28gZG9uJ3QgY2FsbCB1bnJlZiBvbiBpdCB1bmNvbmRpdGlvbmFsbHksIGluc3RlYWQgdXNlIGFuCgkgIGV4aXN0aW5nIGV4aXQgcGFkIGZvciB0aGUgZnVuY3Rpb24uCgoyMDA5LTA5LTA5IDE0OjUzOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ2NjJ3MgX191aW50MTI4X3QgZm9yIDY0Yml0IHVuc2lnbmVkIGludGVnZXIgc2NhbGluZwoJICBUaGlzIGlzIGF2YWlsYWJsZSBpbiBuZXdlciBnY2MgcmVsZWFzZXMgYW5kIGl0IHNob3VsZCBvbmx5IGV4aXN0CgkgIG9uIHBsYXRmb3JtcyB0aGF0IHByb3ZpZGUgc29tZSBuYXRpdmUgMTI4Yml0IGludGVnZXIgYXJpdGhtZXRpYwoJICBpbnN0cnVjdGlvbnMuCgkgIFRoZSB4ODYtNjQgYXNzZW1ibHkgZm9yIHRoaXMgaXMgc3RpbGwga2VwdCBmb3Igbm9uLWdjYyBjb21waWxlcnMKCSAgdGhhdCBkb24ndCBwcm92aWRlIF9fdWludDEyOF90IG1hZ2ljLgoKMjAwOS0wOS0wOSAwOTozODo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkgIGRlc2lnbjogYWRkIGlkZWFzIGZvciBidWZmZXIgbWFuYWdlbWVudAoJICBSaWdodCBub3cgd2UncmUgb3BlcmF0aW5nIHN1Ym9wdGltYWwgd2hlbiB0YWxraW5nIHRvIGtlcm5lbCBpbnRlcmZhY2VzLiBXcml0ZQoJICBkb2VzbiBzb21lIGlkZWFzLgoKMjAwOS0wOS0wNyAxODoyNzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDMgMTk6MDY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDcgMTY6MTQ6NTcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IEZpeCB0eXBvIGluIGdzdF92YWx1ZV91bmlvbigpCgoyMDA5LTA5LTA2IDE5OjQzOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBiaXRyZWFkZXIsIGJ5dGVyZWFkZXI6IGFkZCBzb21lIEZJWE1FIDAuMTEgY29tbWVudHMgYW5kIGZpeCBpbmRlbnRpbmcKCjIwMDktMDktMDQgMTc6MTU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgdW5jaGVja2VkIGFuZCBpbmxpbmUgdmVyc2lvbnMgb2YgdGhlIGZsb2F0IGdldHRlcnMvcGVla2VycwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfZmxvYXQqX3VuY2hlY2tlZCgpCgoyMDA5LTA5LTA0IDE2OjUyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgbW9zdCBjb21tb24gZ2V0dGVycyBhbmQgc2V0dGVycwoKMjAwOS0wOS0wMiAxMToyMDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lZCBfdW5jaGVja2VkKCkgdmFyaWFudHMgZm9yIHNvbWUgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla18qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF8qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3twZWVrLGdldCxkdXB9X2RhdGFfdW5jaGVja2VkKCkKCjIwMDktMDktMDUgMTI6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBTdHJpcCBHc3QgcHJlZml4IGZyb20gYWxsIHR5cGVzL2Z1bmN0aW9ucwoKMjAwOS0wOS0wNSAxMjoyMjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzCgoyMDA5LTA5LTA1IDEyOjA0OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTA1IDExOjUxOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGJ1aWxkIGlmIGdpci1yZXBvc2l0b3J5IGlzIG5vdCBpbnN0YWxsZWQKCjIwMDktMDktMDUgMDk6MzY6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOTozNDozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgIGRhdGFwcm90b2NvbDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIEJlY2F1c2Ugb2YgYSBidWcgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRoaXMgaXMgZGlzYWJsZWQgZm9yIG5vdy4KCjIwMDktMDktMDUgMDk6Mjg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjI3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjIzOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBnc3RiYXNlOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDQgMjA6NTY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU1MDYxNi4KCjIwMDktMDktMDUgMTA6MTk6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGY5NWUzIHRvIDE5ZmE0ZjMKCjIwMDktMDktMDQgMTk6Mzc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBkb2NzIGZvciBnc3RfYnl0ZV9yZWFkZXJfe2dldHxwZWVrfV9mbG9hdCooKQoKMjAwOS0wOS0wNCAxMTozNTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wNCAwOTo1MToyNiArMDIwMCAgQXVyZWxpZW4gR3JpbWF1ZCA8Z3N0ZWx6ekB5YWhvby5mcj4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHVucmVmIEVPUyBtZXNzYWdlIGFmdGVyIGl0IGlzIG5vdCB1c2VkIGFueW1vcmUKCSAgRml4ZXMgYnVnICM1OTQxMDcuCgoyMDA5LTA5LTAyIDE4OjU0OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHN0YXRlczogcG9zdCBzdHJ1Y3R1cmUgY2hhbmdlIG9uIHNpbmtwYWRzCgkgIFBvc3QgdGhlIHN0cnVjdHVyZSBjaGFuZ2UgbWVzc2FnZXMgb24gdGhlIHNpbmtwYWRzIG9mIHRoZSBlbGVtZW50cy4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gY2F0Y2ggdW5saW5rZWQgcGFkcyBlYXJsaWVyIHdpdGhvdXQgZW5kaW5nIHVwIHdpdGggaW5jb25zaXN0ZW50IGVsZW1lbnQKCSAgZGVncmVlcy4KCjIwMDktMDktMDIgMTg6MTM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYXZvaWQgZmFsc2UgJ2xvb3AgZGV0ZWN0ZWQnIHdhcm5pbmdzCgkgIFdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBpbiBwcm9ncmVzcywgd2Ugd2lsbCBub3QgYmUgdXBkYXRpbmcgdGhlIGRlZ3JlZSBvZgoJICB0aGUgcGFyZW50IGVsZW1lbnQuIFRoaXMgY2FuIGNhdXNlIGZhbHNlIGxvb3AgZGV0ZWN0ZWQgd2FybmluZ3MgYmVjYXVzZSB0aGUKCSAgZGVncmVlIGNvdW50ZXIgaXMgaW52YWxpZC4gSGFuZGxlIHRoaXMgY2FzZSBieSBtYXJraW5nIHRoZSBpdGVyYXRvciBhcyAnZGlydHknCgkgIHdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBhbmQgYXZvaWQgZW1pdGluZyB0aGUgd2FybmluZyBpbiB0aGlzIGNhc2UuIFdlIGhhdmUKCSAgdG8gY29udGludWUgb3VyIHN0YXRlIGNoYW5nZSBhcyBnb29kIGFzIHdlIGNhbiwgd2Ugd2lsbCBldmVudHVhbGx5IHJlc3luYyB3aGVuCgkgIHRoZSBwYWQgdW5saW5rIGNvbXBsZXRlZC4KCjIwMDktMDktMDEgMTY6NDk6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDEgMTY6NDk6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxMjowNzozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IERvbid0IGxpc3QgdGhlIHN0cmVhbXMgc3ViZGlyIHR3aWNlIGluIGV4YW1wbGVzIE1ha2VmaWxlCgkgIExpc3RpbmcgdGhlICdzdHJlYW1zJyBzdWJkaXIgdHdpY2UgaW4gRElTVF9TVUJESVJTIGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA5LTA5LTAxIDEyOjA1OjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgcHJvcGFnYXRlIGEgTlVMTCBjYWNoZWQgaW5kZXggdG8gYWRkZWQgZWxlbWVudHMKCSAgV2hlbiBhbiBlbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBiaW4sIG9ubHkgc2V0IHRoZSBpbmRleCBpZiB3ZSBoYXZlIGEKCSAgY2FjaGVkIGluZGV4LCByYXRoZXIgdGhhbiBzZXR0aW5nIGEgTlVMTCBpbmRleCBvbiBlbGVtZW50cyB0aGF0IG1pZ2h0CgkgIGhhdmUgYSBkZWZhdWx0IGluZGV4IG9iamVjdCBvZiB0aGVpciBvd24uCgoyMDA5LTA3LTE5IDIxOjIzOjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBBZGQgYSBub3RlIGFib3V0IHJlZ2VuZXJhdGluZyB0aGUgY2hhbmdlbG9nIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wOS0wMSAxMDowMzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCB0YWtlIG9iamVjdCBsb2NrIGZvciBnX2NyaXRpY2FsKCkgYW5kIGZsZXNoIG91dCB3YXJuaW5nIG1lc3NhZ2Ugc29tZSBtb3JlCgoyMDA5LTA5LTAxIDEwOjIxOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOS0wMSAxMDoyMDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IE9ubHkgdmlzaXQgdGhlIGVsZW1lbnQgYSBzaW5nbGUgdGltZSBpbiB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDA3OjI3OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IHNpbmdsZSBpdGVyYXRvciBmb3IgTlVMTCBvYmplY3RzIGFuZCBub24tR1R5cGVJbnN0YW5jZSBvYmplY3RzCgkgIEZpeGVzIGJ1ZyAjNTkzNzE5LgoKMjAwOS0wOS0wMSAwMDowMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZGVidWc6IG1vcmUgZGV0YWlsIGluIHdyb25nLXN0YXRlLW9uLWRpc3Bvc2UgZXJyb3IuCgkgIEFsc28gdGVsbCBpbiB3aGljaCBzdGF0ZSB0aGUgZWxlbWVudCBhY3R1YWx5IGlzIGFuZCBpZiBpdCBpcyBldmVudHVhbHkKCSAgc3RhdGUtbG9ja2VkLgoKMjAwOS0wOC0zMSAyMDozODowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogZml4IGRvY3MgZm9yIF9uZXdfc2luZ2xlKCkuCgoyMDA5LTA4LTMxIDE2OjU2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGRvY3M6IGl0J3MgaXRzCgkgIFRoZSBwYW5kYSBzYXlzIG5vIQoKMjAwOS0wOC0yOSAyMDo0NDozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgcmVnaXN0cnk6IGZpbGwgaW4gZWxlbWVudGZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBlbGVtZW50CgkgIGVsZW1lbnRmYWN0b3J5IGZpZWxkIGlzIGZpbGxlZCBpbiBieSBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQsCgkgIGJ1dCBpdCBuZWVkcyBzb21lIGluZm8gc2V0IG9uIHRoZSBlbGVtZW50J3MgdHlwZSwgc28gaGF2ZSBpdAoJICBhdmFpbGFibGUgcHJpb3IgdG8gY2xhc3Mgc3RydWN0dXJlIGNyZWF0aW9uIHNwaW5uaW5nIHVwLgoJICBUaGlzIGFmZmVjdHMgZWxlbWVudHMgdGhhdCBoYXZlIGEgd2VsbC1rbm93bi9wdWJsaWMgdHlwZSAoZS5nLiBwaXBlbGluZSkKCSAgYW5kIGNhbiBiZSBjcmVhdGVkIGJ5IG90aGVyIG1lYW5zIHRoYW4gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlCgkgICh3aGljaCB3aWxsIGFsc28gZmlsbCBpbiB0aGUgZWxlbWVudCdzIGZhY3RvcnkpLgoKMjAwOS0wOC0zMSAxMTo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIDEyOGJpdHMgZGl2aXNpb24gb24geDg2XzY0CgoyMDA5LTA4LTI5IDA0OjQ0OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4IGNvbXBpbGF0aW9uIG9mIHdpbjMyIGNvZGUKCSAgRml4ZXMgIzU5MzQ2MC4KCjIwMDktMDgtMjggMTg6Mzc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogY2FjaGUgaW5kZXgKCSAgQ2FjaGUgdGhlIGxhc3QgaW5kZXggdGhhdCB3YXMgc2V0IHdpdGggX3NldF9pbmRleCgpIGFuZCByZXR1cm4gdGhpcyBpbiB0aGUKCSAgX2dldF9pbmRleCgpIGNhbGwuCgkgIFNldCB0aGUgY2FjaGVkIGluZGV4IG9uIG5ld2x5IGFkZGVkIGVsZW1lbnRzLgoJICBGaXhlcyAjNTY2ODgxCgoyMDA5LTA4LTI4IDE4OjM1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYmV0dGVyIHR5cGUgY2hlY2tzCgkgIEFkZCBHU1RfQ0xPQ0sgdHlwZWNoZWNrIGZvciBfc2V0X2Nsb2NrKCkuCgkgIEFsbG93IHNldHRpbmcgTlVMTCBpbmRleGVzIG9uIGVsZW1lbnQgKGNsZWFyIHRoZSBjdXJyZW50IGluZGV4KQoJICBTb21lIHdoaXRlc3BhY2UgZml4ZXMuCgoyMDA5LTA4LTI4IDE4OjE0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDsgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxODowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUgdG8gZGVmcwoKMjAwOS0wOC0yOCAxODowMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjU5OjE1ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIENoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYwoJICBCZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBhIHN1Z2dlc3Rpb24gaGVyZSB3ZSBkb24ndCBuZWVkCgkgIHRvIGNoZWNrIG9uIGNhcHMgZm9yIHByb3h5X2FsbG9jIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIG9uIHRoZQoJICBzdWdnZXN0ZWQgY2FwcyBpbnN0ZWFkLgoKMjAwOS0wOC0yOCAxNzo0OToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxNzowMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdXNlIHByZWZvcm1hbmNlIGNvdW50ZXJzIG9uIHdpbmRvd3MKCSAgQmFzZWQgb24gY2xvY2sgaW1wbGVtZW50YXRpb24gYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCSAgVHJ5IHRvIGdldCB0aGUgdGltZSBvbiB3aW5kb3dzIHVzaW5nIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVycy4gVGhlc2UgaGF2ZSBhIG11Y2gKCSAgaGlnaGVyIHJlc29sdXRpb24gYW5kIGFjY3VyYWN5IHRoYW4gdGhlIHJlZ3VsYXIgZ2V0Y3VycmVudHRpbWUoKS4gQmUgY2FyZWZ1bCB0bwoJICBmYWxsIGJhY2sgdG8gcmVndWxhciBnZXRjdXJyZW50dGltZSgpIG9yIHBvc2l4IGNsb2NrcyB3aGVuIHBlcmZvcm1hbmNlIGNvdW50ZXJzCgkgIGFyZSBub3QgYXZhaWxhYmxlLgoKMjAwOS0wOC0yOCAxNjowNzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogZml4IGluZGVudGF0aW9uCgoyMDA5LTA4LTI4IDE1OjMyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2Ugc2hpZnQgaW5zdGVhZCBvZiBkaXZpc2lvbgoJICBXZSBjYW4gdXNlIGEgc2hpZnQgZm9yIHNjYWxpbmcgdGhlIGRlbm9taW5hdG9yIGluc3RlYWQgb2YgYSBkaXZpZGUgc2luY2UgdGhlCgkgIGRlbm9tIGlzIGFsd2F5cyBwb3NpdGl2ZS4gVGhpcyBhdm9pZHMgaGF2aW5nIHRoZSBjb21waWxlciBnZW5lcmF0ZSBjb2RlIGZvciB0aGUKCSAgZGlmZmVyZW50IHJvdW5kaW5nIHJ1bGVzIHdoZW4gc2NhbGluZyBuZWdhdGl2ZSB2YWx1ZXMuCgoyMDA5LTA4LTI4IDEzOjQ1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtYWtlIGlubGluaW5nIGV4cGxpY2l0CgoyMDA5LTA4LTI4IDEyOjQzOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBvcHRpbWl6ZSBmb3IgeDg2XzY0IHdpdGggc29tZSBpbmxpbmUgYXNtCgkgIDY0Yml0IHg4NiBoYXMgbmF0aXZlIDY0eDY0LT4xMjggYml0IG11bHRpcGx5IHRoYXQgd2UgY2FuIHVzZSB3aXRoIHNvbWUgaW5saW5lCgkgIGFzc2VtYmxlciB0byBzcGVlZCB1cCBsYXJnZSBtdWx0aXBsaWNhdGlvbnMuCgkgIFVzZSBic3IgdG8gZmluZCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgbW9yZSBlZmZpY2llbnRseS4KCjIwMDktMDgtMjggMTI6MzM6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZhY3RvciBvdXQgdGhlIGxlYWRpbmcgemVybyBjb3VudCBjb2RlCgoyMDA5LTA4LTI4IDEyOjMwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBwYXNzIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZAoJICBQYXNzIHRoZSBjb3JyZWN0aW9uIGZhY3RvciBhcm91bmQgdG8gZ2V0IHJpZCBvZiB0aGUgZW51bSwgc29tZSBjb2RlCgkgIGFuZCBzb21lIGJyYW5jaGVzLgoKMjAwOS0wOC0yOCAxMjoyMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxMjoxOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbW92ZSBjb21tb24gY29ycmVjdGlvbiBjb2RlIGluIGEgbWFjcm8KCjIwMDktMDgtMjQgMTg6MDE6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI2IDE2OjUxOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWxsb3cgdG8gdXNlIE5VTEwgYXMgb2JqZWN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA4LTI2IDE2OjM5OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IEFQSTogQWRkIGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlKCkKCSAgVGhpcyBhbGxvd3MgIml0ZXJhdGlvbiIgb3ZlciBhIHNpbmdsZSBvYmplY3Qgb2Ygc29tZSB0eXBlLAoJICB3aGljaCBoYXBwZW5zIG9mdGVuIGZvciB0aGUgR3N0UGFkSXRlckludExpbmtzRnVuY3Rpb24gZm9yIGV4YW1wbGUuCgoyMDA5LTA4LTI0IDE3OjU3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHVybiByZXN1bHQgb2YgX3NldF9jYXBzKCkKCjIwMDktMDgtMjQgMTc6NTY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTIyIDE0OjIyOjMxIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R4bWwuaDoKCSAgSXQncyBfX0dOVUNfXywgbm90IF9HTlVDXwoJICBUaGlzIGFwcGVhcnMgdG8gYmUgYW4gOCB5ZWFyIG9sZCBidWcuCgoyMDA5LTA4LTIxIDA5OjU5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6IGFkZCBsaW5rIHRvIGNnaXQgdGFyYmFsbCBkb3dubG9hZCBvZiBnc3QtdGVtcGxhdGUgaW4gUFdHCgkgIFNvIHBlb3BsZSB3aG8gY2FuJ3QgdXNlIGdpdCBmb3Igc29tZSByZWFzb24gc3RpbGwgY2FuIGdldCBob2xkCgkgIG9mIHRoZSBjb2RlLiBTZWUgIzU5MTA2OS4KCjIwMDktMDgtMjAgMTE6NTQ6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGd1YXJkIHRvIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyCgkgIFNvIHdlIGRvbid0IGp1c3QgY3Jhc2ggaWYgdGhlcmUncyBhIHJlZmNvdW50aW5nIGJ1ZyBzb21ld2hlcmUgZWxzZS4KCjIwMDktMDgtMTkgMTY6MjQ6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBEb24ndCB0YWxrIGFib3V0IHRoZSBkZXByZWNhdGVkIGxpYmdub21lIGFuZCBHTk9NRS1WRlMKCSAgSW5zdGVhZCB0YWxrIGFib3V0IEdJTyBhbmQgY2hhbmdlIHRoZSBvcHRpb24gcGFyc2luZyBleGFtcGxlIHRvCgkgIG5vdCBpbml0aWFsaXplIGxpYmdub21lIGJ1dCBvbmx5IEdUSy4KCSAgRml4ZXMgYnVnICM1OTIyMzMuCgoyMDA5LTA4LTE5IDE1OjI1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogTGluayBydHBvb2wtdGVzdCB0byBsaWJwdGhyZWFkIGZvciB1c2luZyB0aGUgUE9TSVggdGhyZWFkcwoJICBBbHNvIHRoZSBvdGhlciBzdHJlYW1zIGV4YW1wbGUgY2FuIHJ1biB3aXRob3V0IHB0aHJlYWRzIHRoZXJlZm9yZQoJICBlbmFibGUgaXQgZXZlbiBpZiBwdGhyZWFkcyBhcmUgbm90IGF2YWlsYWJsZS4KCSAgRml4ZXMgYnVnICM1OTIzMTQuCgoyMDA5LTA4LTE4IDE0OjQ1OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjQ1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogVXNlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldF9pbnRlcm5hbF9saW5rcwoKMjAwOS0wOC0xOCAxNDowNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBBZGQgc29tZSBESVNBQkxFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgaGVhZGVyIHRvbwoJICBUaGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBzaW5jZSBzb21lIHRpbWUgYW5kCgkgIHRoZXJlIGFscmVhZHkgd2VyZSBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgc291cmNlIGZpbGUsCgkgIG5vdyBhZGQgdGhlbSB0byB0aGUgaGVhZGVyIHRvby4KCSAgRml4ZXMgYnVnICM1OTIyMDkuCgoyMDA5LTA4LTE4IDExOjM4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogVXBkYXRlIHRoZSBkZXNpZ24gZG9jcyBmb3IgYmluIHN0YXRlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIGxhc3QgY29tbWl0CgoyMDA5LTA4LTE4IDExOjM2OjM2ICswMjAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IERvbid0IHRyeSB0byBjaGFuZ2UgY2hpbGRyZW4ncyBzdGF0ZSBpZiB0aGV5J3JlIGFscmVhZHkgaW4gdGhlIHN0YXRlIHdlIHdhbnQKCSAgRml4ZXMgYnVnICMzNjg1MzYuCgoyMDA5LTA4LTE4IDExOjMzOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWx3YXlzIGdldCB0aGUgcHJveHlwYWQncyBnaG9zdHBhZCB2aWEgdGhlIGdob3N0cGFkIGluIHRoZSBzcmMgY2FwcyBjaGFuZ2Ugbm90aWZ5IGhhbmRsZXIKCSAgQmVmb3JlIHRoZSBzaWduYWwgaGFuZGxlciB3b3VsZCBnZXQgdGhlIGdob3N0cGFkIHBhc3NlZCBhcyBzZWNvbmQKCSAgYXJndW1lbnQgYnV0IGl0IGNvdWxkJ3ZlIGFscmVhZHkgYmVlbiB1bnJlZmZlZCBhbmQgZGVzdHJveWVkLgoJICBUaGlzIHdvdWxkIHRoZW4gbGVhZCB0byBjcmFzaGVzIGFuZCBhbGwgdGhhdC4KCSAgTm93IHdlIGdldCB0aGUgZ2hvc3RwYWQgZnJvbSB0aGUgcHJveHkgcGFkLCB3aGljaCB3ZSBnZXQgZnJvbSB0aGUKCSAgdGFyZ2V0IHBhZCBhcyBpdCdzIHBlZXIuCgkgIEZpeGVzIGJ1ZyAjNTkxMzE4LgoKMjAwOS0wOC0xOCAwODo0NTowOCArMDIwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBBZGQgcHJvcGVydHkgdG8gYWxsb3cgdG8gYXBwZW5kIHRvIGFuIGFscmVhZHkgZXhpc3RpbmcgZmlsZQoJICBGaXhlcyBidWcgIzU5MTQ0MS4KCjIwMDktMDgtMTQgMTE6NTM6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSBkdXBsaWNhdGVkIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgoyMDA5LTA4LTE0IDExOjEyOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkIHNwZWNpYWwgcmFuZG9tIHVuaXQgdGVzdCBmb3IgNjQgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhpcyB0ZXN0cyAxMDAwMDAgcmFuZG9tIG11bHRpcGxpY2F0aW9ucy9kaXZpc2lvbnMgb2YgYWxsIHNjYWxpbmcKCSAgZnVuY3Rpb24gdmFyaWFudHMgYW5kIGNvbXBhcmVzIHRoZSByZXN1bHQgd2l0aCB0aGUgcmVzdWx0IHRoYXQgaXMKCSAgZ2VuZXJhdGVkIGJ5IEdNUCBvbiB0aGUgc2FtZSBpbnB1dC4KCSAgRm9yIHRoaXMgY2hlY2sgZm9yIEdTTCBhbmQgR01QIGR1cmluZyBjb25maWd1cmUgYnV0IG9ubHkgdXNlCgkgIGl0IGZvciB0aGlzIHNpbmdsZSB1bml0IHRlc3QuCgkgIFRlc3RpbmcgZnVuY3Rpb25zIHdlcmUgcHJvdmlkZWQgYnkgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCjIwMDktMDgtMTMgMTY6MzE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBZGQgbmV3IHNjYWxpbmcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTEzIDE2OjIwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkICh2ZXJ5KSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgdGhlIG5ldyByb3VuZGluZyBzY2FsaW5nIGZ1bmN0aW9ucwoKMjAwOS0wOC0xMyAxNjoxMDozMSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIHJvdW5kaW5nIHRvIG5lYXJlc3QgYW5kIG5leHQgaW50ZWdlciB2ZXJzaW9ucyBvZiB0aGUgNjQgYml0IGludGVnZXIgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhlIG5ldyBmdW5jdGlvbnMgYXJlCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50X2NlaWwoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfY2VpbCgpCgkgIEZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMiAxMToxMDowNSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogUmV2ZXJ0IHBhcnRzIG9mIGxhc3QgY2hhbmdlIHRvIG9wdGltaXplIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyBhZ2FpbgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDA5OjE2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRml4IHZpb2xhdGlvbnMgb2Ygc3RyaWN0LWFsaWFzaW5nIHJ1bGVzIGluIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgoyMDA5LTA4LTExIDA5OjEwOjQ3ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZWZhY3RvciBnc3RfdXRpbF91aW50NjRfc2NhbGUoKQoJICBUaGlzIHdpbGwgbGF0ZXIgbWFrZSBpdCBwb3NzaWJsZSB0byBwcm92aWRlIHJvdW5kaW5nIHZlcnNpb25zCgkgIG9mIGl0IHdpdGhvdXQgbXVjaCBjb2RlIGR1cGxpY2F0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDE1OjIwOjE4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiB1cGRhdGUgZG9jIHN0cmluZwoKMjAwOS0wOC0xMSAxMzoyMTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBBY3R1YWxseSBzdGFydD09c3RvcD09c2VnbWVudF9zdGFydCBpcyBpbnNpZGUgdGhlIHNlZ21lbnQKCSAgU3RpbGwgdGhlIG9sZCBjb2RlIHdhcyB3cm9uZyBhcyBpdCBjbGFpbWVkIHRoYXQgc3RhcnQ9PXN0b3A8c2VnbWVudF9zdGFydAoJICB3b3VsZCBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHJldHVybmVkIGluc2FuZSBjbGlwcGluZyBkaWZmZXJlbmNlcy4KCjIwMDktMDgtMTEgMTM6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogRml4IHVuaXQgdGVzdCBhbmQgYWRkIGFuIGFkZGl0aW9uYWwgdGVzdAoJICBUaGUgcHJldmlvdXMgdGVzdCBhc3N1bWVkIHRoYXQgc3RhcnQ9c3RvcD1zZWdtZW50X3N0YXJ0IHdpbGwKCSAgYmUgaW5zaWRlIHRoZSBzZWdtZW50IGJ1dCB0aGlzIGlzIHdyb25nLgoKMjAwOS0wOC0xMSAxMjo1OToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBDbGlwcGluZyBzaG91bGQgZGV0ZWN0IHN0YXJ0PXN0b3A8c2VnbWVudF9zdGFydCBhcyBvdXRzaWRlIHRoZSBzZWdtZW50CgkgIEJlZm9yZSBpdCByZXR1cm5lZCB0aGF0IFtzdGFydCxzdG9wXSBpcyBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHRoYXQgdGhlCgkgIGRpZmZlcmVuY2UgYmV0d2VlbiBzZWdtZW50X3N0YXJ0IGFuZCBzdGFydCBuZWVkcyB0byBiZSBjbGlwcGVkLiBJZiB0aGUKCSAgY2xpcHBpbmcgaXMgZG9uZSBvbiBhIGJ1ZmZlciAobGlrZSBpbiBiYXNlYXVkaW9zaW5rKSB0aGlzIHdpbGwgcmVzdWx0CgkgIGluIHRoZSBkYXRhIHBvaW50ZXIgYmVpbmcgYXQgYSBpbnZhbGlkIG1lbW9yeSBwb3NpdGlvbi4KCSAgRml4ZXMgYnVnICM1ODk4NDkuCgoyMDA5LTA4LTExIDA1OjQ3OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgZ3N0YnVzOiBVbnJlZiBwaXBlbGluZSBhZnRlciB1c2FnZSBpbiB0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQgdW5pdCB0ZXN0CgkgIFRoaXMgbWFrZXMgdGhlIGNvcmUgdW5pdCB0ZXN0cyB2YWxncmluZCBjbGVhbiBhZ2Fpbi4KCjIwMDktMDgtMTEgMDI6NTQ6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogYWRkIEVkd2FyZCdzIGdpdCBwbHVnaW4gbW92aW5nIGhvd3RvIHRvIG1vdmluZy1wbHVnaW5zIGRvY3VtZW50CgoyMDA5LTA4LTEwIDE0OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBkb24ndCBmb3JnZXQgdG8gaW5jbHVkZSBjb25maWcuaCBpbiB0aGUgR3N0T2JqZWN0IHVuaXQgdGVzdAoKMjAwOS0wOC0xMCAxMzowNTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiB0cnkgdG8gZml4IEdzdE9iamVjdCB1bml0IHRlc3Qgb24gT1NYCgkgIFNlZW1zIGxpa2Ugd2UgZ2V0IFNJR0JVUyBpbnN0ZWFkIG9mIFNJR1NFR1YgaGVyZSB3aGVuIEdMaWIgY3Jhc2hlcwoJICB3aGVyZSBpdCBzaG91bGRuJ3QgY3Jhc2ggKGFuZCB3ZSBldmVuIGhhdmUgYSB1bml0IHRlc3QgZm9yIHRoYXQhKS4KCjIwMDktMDgtMTAgMTI6MDE6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZXMgdG8gTlVMTCBzdGF0ZSBpbiBwYXJzZS1sYXVuY2ggdW5pdCB0ZXN0CgkgIEZpeGVzIHRpbWVvdXRzIGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgY2hlY2tzOiBzZXQgcGlwZWxpbmUgYmFjayB0byBOVUxMIHN0YXRlIGluIEdzdEJ1cyB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dCBpbiBnc3RfdGFza19jbGVhbnVwX2FsbCgpLgoKMjAwOS0wOC0xMCAxMTo0Mzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIHNvbWUgbG9nZ2luZyBiZWZvcmUgY2FsbGluZyBnc3RfdGFza19jbGVhbnVwX2FsbCgpCgoyMDA5LTA4LTA4IDIyOjI3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBDYWxsIGdzdF90YXNrX2NsZWFudXBfYWxsKCkgaW4gR1NUX0VORF9URVNUCgkgIFRoaXMgZml4ZXMgbWFueSB1bml0IHRlc3RzIHVuZGVyIHZhbGdyaW5kIHRoYXQgc2hvd3MKCSAgbGVha2luZyBHc3RUYXNrcyB0aGF0IGFyZSBub3QgcmVhbGx5IGxlYWtlZCBidXQganVzdAoJICBub3QgdW5yZWZmZWQgYnkgdGhlIHRhc2sgdGhyZWFkIGJlZm9yZSB0aGUgdW5pdCB0ZXN0CgkgIHN0b3BwZWQuCgkgIEZpeGVzIGJ1ZyAjNTkxMDQ1LgoKMjAwOS0wOC0wOCAxNDo0Nzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA4IDE0OjQ3OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA3IDAyOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IGlnbm9yZSBuZXcgcXVldWUtZXJyb3IgdGVzdAoKMjAwOS0wOC0wNiAyMDo0MDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbC1jaGVjay5oIHRvIEJVSUxUX1NPVVJDRVMgaW4gYXR0ZW1wdCB0byBmaXggdGhlIGJ1aWxkCgkgIEZvciBzb21lIHBlb3BsZSB0aGUgYnVpbGQgb2YgbGliZ3N0Y2hlY2sgd2FzIGJyb2tlbiBiZWNhdXNlIHRoZSBtYWtlCgkgIHRhcmdldCB0aGF0IGNyZWF0ZXMgdGhlIGludGVybmFsLWNoZWNrLmggZmlsZSB3YXNuJ3QgZXhlY3V0ZWQgZm9yCgkgIHNvbWUgcmVhc29uLiBUaGlzIHNob3VsZCBob3BlZnVsbHkgZml4IHRoaXMuCgoyMDA5LTA4LTA2IDE4OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IG9sZGVyIGFjbG9jYWxzIGRvbid0IGxpa2UgLUkuIHNvIHVzZSAtSSAuIGluc3RlYWQKCjIwMDktMDgtMDYgMTg6NDc6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogYWRkIGFkZGl0aW9uYWwgY2hlY2tpbmcgZm9yIHdyaXRhYmlsaXR5CgkgIENoZWNrIGZvciBtZXRhZGF0YSB3cml0YWJpbGl0eSB3aGVuIHNldHRpbmcgY2FwcyBvbiBidWZmZXIgb3Igd2hlbiBjb3B5aW5nCgkgIG1ldGFkYXRhIGZsYWdzLiBPbmx5IGVuYWJsZSB0aGVzZSBleHRyYSBhc3NlcnRpb25zIGluIGdpdCB2ZXJzaW9ucy4KCSAgVGhpcyBzaG91bGQgaGVscCB1cyBmaW5kIGJhZCBlbGVtZW50cy4KCjIwMDktMDgtMDQgMTA6MjI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogZGlzYWJsZSB1bml0IHRlc3Qgc3VwcG9ydCBvbiB3aW4zMiBmb3Igbm93CgkgIFVudGlsIHdlIG1ha2UgdGhlIGludGVybmFsIGxpYmNoZWNrIHdvcmsgb24gd2luZG93cy4KCjIwMDktMDctMTkgMTc6MDQ6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZwoKMjAwOS0wNy0xNyAwMDo0NjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2stY2hlY2tzLm00OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGNoZWNrOiBmaXggaXNzdWVzIHdpdGggJ21ha2UgZGlzdGNoZWNrJwoJICBTZWVtcyB0byB3b3JrIG5vdywgYXQgbGVhc3Qgb24gKm5peC4gT25lIG9mIHRoZSBjb25maWd1cmUgY2hlY2tzCgkgIGNhdXNlZCB0aGVzZSB3ZWlyZCBpc3N1ZXMgLSBidXQgd2hpY2ggb25lPwoKMjAwOS0wOC0wNiAxNzoyNzoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgY2hlY2s6IHVzZSBwcml2YXRlIGNvcHkgb2YgY2hlY2sgZm9yIGxpYmdzdGNoZWNrCgkgIFNlZSAjNTc3Mjc1LiBTZWVtcyB0byB3b3JrIGZpbmUsIGJ1dCBkb2Vzbid0IGRpc3RjaGVjayB5ZXQuCgoyMDA5LTA3LTE2IDE4OjM5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiBhZGQgaW50ZXJuYWwgY29weSBvZiBjaGVjay0wLjkuNgoJICBOb3QgaG9va2VkIHVwIHlldC4gU2VlICM1NzcyNzUuCgoyMDA5LTA4LTA2IDE0OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpIGZ1bmN0aW9uCgoyMDA5LTA3LTIyIDExOjI0OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDExOjI0OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6NTQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTozODoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IGFkZCBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCSAgT2Z0ZW4gd2UgZG9uJ3QgbmVlZCB0aGUgcmVzdWx0IG9mIHRoZSBpbnRlcnNlY3Rpb24uIEFkZCBhIHZhcmlhbnQgdGhhdCBvbmx5CgkgIHRyaWVzIHRvIGludGVyc2VjdC4gSXQgY2FuIGJyZWFrIG91dCBlYXJsaWVyIGFuZCBkb2VzIGxlc3MgR1ZhbHVlIGNvcHlpbmcuCgkgIEFQSTogZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjI0OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBjaGVjayBjYXBzX2lzX2ZpeGVkKCkgaWYgdGhleSBjaGFuZ2VkCgkgIFRoZSBwcmV2aW91cyBjb2RlIGNvdWxkIGNhbGwgZ3N0X2NhcHNfaXNfZml4ZWQoKSBmb3IgdGhlIHNhbWUgY2FwcyBtYW55IHRpbWVzLgoKMjAwOS0wNy0yMSAxMzozMToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BsaXQgY2FsbGJhY2sgZm9yIHN0cnVjdHVyZSBpbnRlcnNlY3QgaW50byB0d28gZnVuY3Rpb25zCgkgIFdlIGNhbGwgdGhpcyBzZXBhcmF0ZWx5LiB0aGVyZSBpcyBubyBtdWNoIGJlbmVmaXQgaW4gcmV1c2luZyB0aGUgY2FsbGJhY2suCgkgIFNwbGl0dGluZyBpcyBsZXQgdXMgcmVtb3ZlIGEgYnJhbmNoIGFsc28uCgoyMDA5LTA3LTIxIDEzOjI3OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBsb2dnaW5nOiBsb2cgaWYgd2UgY29weSBjYXBzIHRvIGJlIGFibGUgdG8gdHJhY2sgaXQKCjIwMDktMDctMjEgMTE6MzI6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBjb21tZW50cyBhYm91dCBnX3B0cl9hcnJheSBzaXplIGJlaGF2aW91cgoJICBKdXN0IGV4cGxhaW4gdGhlIGJlaGF2aW91ciB0byBhdm9pZCB0aGF0IHNvbWVvbmUgZWxzZSBpcyB3YXN0aW5nIHRpbWUgdHJ5aW5nIHRvCgkgIGltcHJvdmUgdGhpcyB0b28uCgoyMDA5LTA3LTIxIDExOjE0OjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgZXhhbXBsZTogdW5yZWYgdGhlIGNsb2NrIGlkCgoyMDA5LTA3LTIxIDEwOjU2OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGNvcnJlY3QgdmFyaWFibGUgaW4gdGVzdAoKMjAwOS0wNy0yOCAxNjoxMzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgZmlsZW5hbWUgdG8gZGVidWcgbWVzc2FnZSwgbGlrZSBlbHNld2hlcmUKCjIwMDktMDctMjEgMTA6Mzg6MTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggY29tcGlsZXIgd2FybmluZyBhYm91dCB1bnVzZWQgdmFyIHdoZW4gZGlzYWJsaW5nIGRlYnVnIGxvZ2dpbmcKCjIwMDktMDgtMDYgMTM6Mjk6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gcGF1c2luZyB0YXNrCgkgIElmIGRvd25zdHJlYW0gcmV0dXJucyBlcnJvciBhbmQgdXBzdHJlYW0gaGFzIGFscmVhZHkgZGVsaXZlcmVkCgkgIGV2ZXJ5dGhpbmcgKGluY2x1ZGluZyBFT1MpIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBhcm91bmQgdG8gZmluZAoJICBvdXQgdGhhdCB3ZSBwYXVzZWQgKGFuZCB3aHkpLCBwb3N0IGVycm9yIG1lc3NhZ2UuICBGaXhlcyAjNTg5OTkxLgoKMjAwOS0wNy0yOCAxMjowMzozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHF1ZXVlOiBhZGQgdW5pdCB0ZXN0CgkgIE1ha2UgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJuIGFuIGVycm9yIGFmdGVyIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlIChpbmNsdWRpbmcgRU9TKS4gIEFzIHN1Y2gsIHVwc3RyZWFtCgkgIHdpbGwgbm90IGJlIGFyb3VuZCB0byBwaWNrIHVwIHRoZSBlcnJvciwgc28gaXQgaXMgdXAgdG8gcXVldWUgdG8KCSAgYWN0IGFwcHJvcHJpYXRlbHkuICBTZWUgIzU4OTk5MS4KCSAgTm90ZSB0aGVyZSBtYXkgYmUgZG93bnN0cmVhbSBmYXRhbCBlcnJvcnMgKGUuZy4gbmVnb3RpYXRpb24pIHRoYXQgZG8KCSAgbm90IHdhcnJhbnQgYW4gZXJyb3IgbWVzc2FnZSBhbHJlYWR5IGhhdmluZyBiZWVuIHBvc3RlZC4KCjIwMDktMDgtMDUgMTg6MDI6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2xhcmlmeSBfY2Fwc19pc19lcXVhbCgpCgoyMDA5LTA4LTA1IDE3OjU4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZmFjdG9yIG1ldGFkYXRhIG1vZGlmaWNhdGlvbnMKCSAgQ2hlY2sgd2hlbiB3ZSBuZWVkIHRvIHRvdWNoIHRoZSBtZXRhZGF0YSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBhZnRlciBzZWxlY3RpbmcKCSAgdGhlIG91dHB1dCBidWZmZXIgc28gdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gb25lIHBsYWNlLgoJICBBbHNvIHRha2UgZmxhZ3MgYW5kIHRpbWVzdGFtcCBtb2RpZmljYXRpb25zIGludG8gYWNjb3VudC4KCjIwMDktMDgtMDUgMTc6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogb25seSBzZXQgY2FwcyB3aGVuIGRpZmZlcmVudAoJICBXaGVuIHdlIGhhdmUgYW4gaW5wdXQgYnVmZmVyIHdpdGggY2FwcyBhbmQgd2hlbiB0aG9zZSBjYXBzIGFyZSBkaWZmZXJlbnQgZnJvbQoJICB0aGUgY2FwcyB3ZSB3YW50LCBvbmx5IHRoZW4gbWFrZSBhIHdyaXRhYmxlIGNvcHkgb2YgdGhlIGlucHV0IGJ1ZmZlciBhcyB0aGUKCSAgb3V0cHV0IGJ1ZmZlciBhbmQgc2V0IHRoZSBjYXBzIG9uIHRoYXQgb3V0cHV0IGJ1ZmZlci4gVGhpcyBhdm9pZHMgc29tZSBjYXNlcwoJICB3aGVyZSB3ZSB0b29rIGEgc3ViYnVmZmVyIGZvciBzZXR0aW5nIGNhcHMgdGhhdCB3ZXJlIHRoZSBzYW1lLgoKMjAwOS0wOC0wNSAxNToyODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBlbmFibGUgb3B0aW1pc2F0aW9uCgkgIFdoZW4gd2UgaGF2ZSB0aGUgc2FtZSBpbnB1dCBhcyBvdXRwdXQgY2FwcywgcmV1c2UgdGhlIGlucHV0IGNhcHMgb2JqZWN0LiBBZnRlcgoJICB0aGUgY2FwcyByZWZjb3VudGluZyBoYXMgYmVlbiBzb3J0ZWQgb3V0IG5vdywgd2UgY2FuIGZpbmFsbHkgZW5hYmxlIHRoaXMKCSAgb3B0aW1pc2F0aW9uLgoKMjAwOS0wOC0wNSAxMzo0ODo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGRvbid0IHNldCBjYXBzIG9uIHVud3JpdGFibGUgYnVmZmVycwoJICBUYWtlIHRoZSByZWYgYWZ0ZXIgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlciBiZWNhdXNlIGVsc2UgdGhlIGJ1ZmZlciBpcwoJICB0ZWNoaW5pY2FsbHkgbm90IHdyaXRhYmxlLgoKMjAwOS0wOC0wNSAxMzo0NzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGdldCBjYXBzIGFmdGVyIG1ha2luZyB3cml0YWJsZQoJICBHZXQgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciBhZnRlciB3ZSBtYWRlIHRoZSBidWZmZXIgd3JpdGFibGUuIFRoaXMgZGlkIG5vdAoJICBjYXVzZSBhbnkgcHJvYmxlbXMgYnV0IGl0J3MgbmljZXIgdGhpcyB3YXkuCgoyMDA5LTA4LTA1IDEzOjQ2OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIE1ha2Ugc3VyZSB0aGUgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgdGhlIGNhcHMgb24gYSBidWZmZXIuCgoyMDA5LTA4LTA1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFrZSBzdXJlIHRoYXQgdGhlIG91dHB1dCBidWZmZXIgaGFzIHdyaXRhYmxlIG1ldGFkYXRhIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHNldAoJICBjYXBzIG9uIGl0LgoJICBmaXhlcyAjNTgzOTk5CgoyMDA5LTA4LTA1IDEzOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW4gX3JlcGxhY2UKCjIwMDktMDgtMDUgMTM6NDM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMDgtMDUgMTM6NDE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNtYWxsIGltcHJvdmVtZW50cwoJICBVbnJlZiB0aGUgdGFyZ2V0IHBhZCBhZnRlciB3ZSB1c2VkIGl0IGZvciBkZWJ1Z2dpbmcuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE9ubHkgcmVwbGFjZSBjYXBzIHdoZW4gdGhleSBjaGFuZ2VkLgoKMjAwOS0wNy0yOSAxMzo0NjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFudXBzIGluIHBvc2l0aW9uIHF1ZXJpZXMKCSAgVXNlIGV4aXN0aW5nIGJvb2xlYW4gZmxhZyB0byBwYXNzIHBvc2l0aW9uIHF1ZXJpZXMgdXBzdHJlYW0uIEFsc28gYWRkIHVwc3RyZWFtCgkgIHF1ZXJpZXMgZm9yIHRoZSBsYXN0IHBvc2l0aW9uIHF1ZXJpZXMuCgoyMDA5LTA4LTA1IDEzOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmaXggbGlieG1sMiBjaGVjaywgd2hpY2ggaXMgb25seSBuZWVkZWQgZm9yIHhtbCBsb2FkL3NhdmUgbm93CgkgIFNpbmNlIHRoZSByZWdpc3RyeSBkb2Vzbid0IHVzZSBsaWJ4bWwyIGFueSBsb25nZXIsIGl0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeQoJICB0byBkaXNhYmxlIGJvdGggeG1sIGxvYWQvc2F2ZSAqYW5kKiB0aGUgcmVnaXN0cnkgdG8gZ2V0IHJpZCBvZiB0aGUgbGlieG1sMgoJICBkZXBlbmRlbmN5LCBkaXNhYmxpbmcganVzdCB4bWwgbG9hZGluZy9zYXZpbmcgaXMgZW5vdWdoLiBGaXhlcyAjNTkwODQxLgoKMjAwOS0wOC0wMiAxNDozMzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVuYW1lIHVuaW5zdGFsbGVkIHJlZ2lzdHJ5IGZpbGUgdG8gcmVnaXN0cnkuZGF0CgkgIFdlJ3JlIG5vdCB1c2luZyB0aGUgeG1sIHJlZ2lzdHJ5IGFueSBsb25nZXIgYWZ0ZXIgYWxsLgoKMjAwOS0wOC0wMiAxNDoyODozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVmaW5lIHNlYXJjaCBwYXRocyBmb3IgdW5pbnN0YWxsZWQgcGx1Z2luIG1vZHVsZXMKCSAgVXNlIG1vcmUgcmVmaW5lZCBzZWFyY2ggcGF0aHMgZm9yIG91ciBwbHVnaW4gbW9kdWxlcy4gTm90IG9ubHkgZG9lcwoJICB0aGlzIG1ha2UgdGhpbmdzIG11Y2ggZmFzdGVyIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwLCBpdCBhbHNvIG1ha2VzCgkgIHN1cmUgd2UncmUgbm90IGFjY2lkZW50YWxseSB1c2luZyBvdXQtb2YtZGF0ZSBwbHVnaW5zIGJ1aWx0IGFnZXMKCSAgYWdvIGFzIHBhcnQgb2YgYSAoZmFpbGVkKSAnbWFrZSBkaXN0Y2hlY2snIHdoZW4gd2UgZm9yZ2V0IHRvIGNsZWFuCgkgIHVwIHRoZSBkaXN0Y2hlY2sgYnVpbGQgZGlyZWN0b3J5LgoKMjAwOS0wNy0yOSAyMzo0MjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogZGlzdCBHU3RyZWFtZXItMS4wIGJ1ZmZlciBkZXNpZ24gZHJhZnQKCjIwMDktMDgtMDYgMDY6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdGFnbGlzdDogQWRkIG5ldyBBTEJVTV9BUlRJU1QgdGFnIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTA0IDE0OjEzOjM0ICswMjAwICBKb2huIE1pbGxpa2luIDxqbWlsbGlraW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIHN1cHBvcnQgZm9yIEFMQlVNX0FSVElTVCB0YWcKCSAgVGhlICJhbGJ1bSBhcnRpc3QiIHRhZyBpcyB1c2VkIHdoZW4gdGhlIGFydGlzdCBvZiBhbiBlbnRpcmUKCSAgYWxidW0gZGlmZmVycyBmcm9tIHRoZSBhcnRpc3Qgb2YgYW4gaW5kaXZpZHVhbCB0cmFjazsgZm9yIGV4YW1wbGUsCgkgIHdoZW4gYSAiZ3Vlc3QgYXJ0aXN0IiBhcHBlYXJzIG9uIGFuIGFsYnVtLCBvciBvbiBjb21waWxhdGlvbnMuCgkgIEZpeGVzIGJ1ZyAjNTkwNDMwLgoKMjAwOS0wNy0yOSAxMzozMzoxMSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUXVlcnkgdXBzdHJlYW0gZm9yIHRoZSBwb3NpdGlvbiBpZiBjb252ZXJzaW9uIGluIFBBVVNFRCBmYWlsZWQKCSAgRml4ZXMgYnVnICM1OTAwNDUuCgoyMDA5LTA3LTI4IDIwOjQyOjIwICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcHJvdmUgZGVidWcgb3V0cHV0IGluIGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKCkKCSAgRml4ZXMgYnVnICM1ODk1MjQuCgoyMDA5LTA3LTIyIDA5OjAxOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCB1bnNldCBHQVAgZmxhZyBpZiB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUKCSAgRml4ZXMgYnVnICM1ODkzMTQuCgoyMDA5LTA4LTA2IDAxOjQzOjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNC4xCgo9PT0gcmVsZWFzZSAwLjEwLjI0ID09PQoKMjAwOS0wOC0wNSAwMDo1MToxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNAoKMjAwOS0wOC0wNCAyMzowNToyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDgtMDMgMTU6MzE6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGF2b2lkIHdyYXAtYXJvdW5kIGluIGJ1ZmZlciBzaXplIGNoZWNrcy4gIEZpeGVzICM1OTA2MjIuCgoyMDA5LTA3LTMwIDE0OjQxOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuNSBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yOCAyMToxNTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEdldCB0aGUgZmx1c2hpbmcgc3RhdGUgd2l0aCB0aGUgb2JqZWN0IGxvY2sgdGFrZW4uCgkgIEZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTQ6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBNYWtlIHN1cmUgdGhlIENvbGxlY3REYXRhIGxpc3QgaXMgdXAtdG8tZGF0ZSB3aGVuIHJlYWRpbmcvc2V0dGluZyBpdAoJICBXaXRob3V0IHRoaXMsIHdlIHJpc2tlZDoKCSAgKiBDaGVja2luZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gYW4gdW5leGlzdGluZyBsaXN0CgkgICogTm90IHNldHRpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9uIHBhZHMgdGhhdCBoYWQganVzdCBiZWVuIGFkZGVkCgkgIFBhcnRpYWxseSBmaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDIxOjEyOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogU3BsaXQgb3V0IF9jaGVja19wYWRzIGludG8gYSB2ZXJzaW9uIHdpdGhvdXQgbG9jayB0YWtpbmcuCgkgIFRoaXMgaXMgc28gd2UgY2FuIHVzZSBfY2hlY2tfcGFkcyBpbiBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeSB0YWtlbgoJICB0aGUgbG9jayBpbiBxdWVzdGlvbi4KCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMTU6MjM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBjaGVjazogbWFrZSBuZXcgR3N0U3RyZWFtQ29uc2lzdGVuY3kgc3RydWN0dXJlIHByaXZhdGUKCSAgVGhlcmUncyBubyBuZWVkIHRvIGhhdmUgR3N0U3RyZWFtQ29uc2lzdGVuY3kgaW4gYSBwdWJsaWMgaGVhZGVyIGZvcgoJICB0aGUgdGltZSBiZWluZywgc28gbWFrZSBpdCBwcml2YXRlLiBXaGlsZSB3ZSdyZSBhdCBpdCwgYWRkIGEgZ3RrLWRvYwoJICBibHVyYiBmb3IgaXQgdGhvdWdoLiBSZS1maXhlcyAjNTg4NzQ0LgoKMjAwOS0wNy0yNCAxMzo1MDoxOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjIzLjQgcHJlLXJlbGVhc2UKCjIwMDktMDctMjQgMDk6NTA6MTkgKzAxMDAgIFJvYmluIFN0b2NrZXIgPHJvYmluQG5pYm9yLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBoYW5kbGUgU0VFS0lORyBxdWVyaWVzIGZvciBmb3JtYXRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIG9uZSB0aGUgc291cmNlIG9wZXJhdGVzIGluCgkgIFJldHVybiBGQUxTRSBpbiBiYXNlc3JjJ3MgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHdoZW4gd2UgZ2V0IGEgU0VFS0lORyBxdWVyeSBmb3IKCSAgYSBmb3JtYXQgdGhhdCdzIG5vdCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4uIFByZXZpb3VzbHkgKGllLiBiZWZvcmUsIGluCgkgIHRoZSBnaXQgdmVyc2lvbikgd2Ugd291bGQgcmV0dXJuIFRSVUUgaW4gdGhhdCBjYXNlIGFuZCBzZWVrYWJsZT1GQUxTRSwgd2hpY2gKCSAgaXMgbW9yZSBjb3JyZWN0LCBidXQgY2F1c2VzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHByb2JsZW1zLiAoQmVmb3JlIHRoYXQKCSAgd2Ugd291bGQgY2hhbmdlIHRoZSBmb3JtYXQgb2YgdGhlIHF1ZXJ5IHdoZW4gYW5zd2VyaW5nLCB3aGljaCB3YXMgY29tcGxldGVseQoJICBicm9rZW4gc2luY2UgY2FsbGVycyBkb24ndCBleHBlY3QgdGhhdCBvciBjaGVjayBmb3IgaXQpLiBTaW5jZSB0aGUgU0VFS0lORwoJICBxdWVyeSBpcyBhIGZhaXJseSByZWNlbnQgYWRkaXRpb24sIG5vdCBhbGwgZGVtdXhlcnMsIHBhcnNlcnMgYW5kIGRlY29kZXJzCgkgIGltcGxlbWVudCBpdCB5ZXQsIGluIHdoaWNoIGNhc2UgYW55IFNFRUtJTkcgcXVlcnkgYnkgYW4gYXBwbGljYXRpb24gd2lsbAoJICBqdXN0IGJlIHBhc3NlZCB1cHN0cmVhbSB3aGVyZSBpdCB3aWxsIHRoZW4gYmUgaGFuZGxlZCBieSBiYXNlc3JjLiBOb3csIGlmCgkgIGUuZy4gdG90ZW0gZG9lcyBhIFNFRUtJTkcgcXVlcnkgZm9yIFRJTUUgZm9ybWF0IGFuZCB3ZSBoYXZlIGEgZGVtdXhlciB0aGF0CgkgIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBxdWVyeSwgYmFzZXNyYyB3b3VsZCBhbnN3ZXIgaXQgd2l0aCBzZWVrYWJsZT1GQUxTRSBpbgoJICBtb3N0IGNhc2VzLCBhbmQgdG90ZW0gY2FuIG9ubHkgdGFrZSB0aGF0IGFzIGF1dGhvcml0YXRpdmUgYW5zd2VyLCBub3Qga25vd2luZwoJICB0aGF0IHRoZSBkZW11eGVyIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBTRUVLSU5HIHF1ZXJ5LiBUbyBhdm9pZCB0aGlzLCB3ZSBtYWtlCgkgIGJhc2VzcmMgcmV0dXJuIEZBTFNFIHRvIFNFRUtJTkcgcXVlcmllcyBpbiB1bmhhbmRsZWQgZm9ybWF0cy4gVGhhdCB3YXkKCSAgYXBwbGljYXRpb25zIGxpa2UgdG90ZW0gY2FuIGZhbGwgYmFjayBvbiBhc3N1bWluZyBzZWVrYWJpbGl0eSBkZXBlbmRpbmcgb24KCSAgd2hldGhlciBhIGR1cmF0aW9uIGlzIGF2YWlsYWJsZSwgb3Igc29tZXN1Y2guIERvd25zdHJlYW0gZWxlbWVudHMgZG9pbmcKCSAgc3VjaCBxdWVyaWVzIGFyZSBsaWtlbHkgdG8gZXF1YXRlIGFuIHVuaGFuZGxlZCBxdWVyeSB3aXRoIGEgbm9uLXNlZWthYmxlCgkgIHJlc3BvbnNlIGFzIHdlbGwsIHNvIHRoaXMgc2hvdWxkIGJlIGFuIGFjY2VwdGFibGUgZml4IGZvciB0aGUgdGltZSBiZWluZy4KCSAgU2VlICM1ODQ4MzgsICM1ODg5NDQsICM1ODk0MjMgYW5kICM1ODk0MjQuCgoyMDA5LTA3LTI0IDAwOjQxOjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZlZGFhZWUgdG8gOTRmOTVlMwoKMjAwOS0wNy0yMCAxNjoxMTowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBhZGQgKzEgYWZ0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgVGhlIGN1cnJlbnQgY29kZSBtYWRlIHRoZSBlcnJvciBjaGVja2luZyBwb2ludGxlc3MgYnkgY2hhbmdpbmcgLTEgdG8gMCBpbiBlcnJvcgoJICBjYXNlcy4gQWxzbyBkb24ndCBsZWFrIGEgcGFkIHRlbXBsYXRlIG9uIGVycm9yLgoKMjAwOS0wNy0yMCAxNTo1MToyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMy4zIHByZS1yZWxlYXNlCgoyMDA5LTA3LTIwIDE4OjAzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSB0aGUgdGFza3MgYXJlIGpvaW5lZAoJICBDYWxsIF9jbGVhbl9hbGwoKSBvbiB0aGUgdGFzayB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBqb2luZWQgYW5kIHN0b3BwZWQuCgkgIFNlZSAjNTg5MTI3CgoyMDA5LTA3LTIwIDE1OjQ0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZml4IHRhc2twb29sIGxlYWsKCSAgR3N0VGFrcyBkb2VzIG5vdCBhbHdheXMgdW5yZWYgdGhlIHRhc2twb29sIGl0IHdhcyBjcmVhdGVkIGZyb20gYmVjYXVzZSBpdAoJICBkZXBlbmRzIG9uIHdoZW4gdGhlIHBvb2wgcHJvdmlkZWQgYW4gSUQgZm9yIGpvaW5pbmcgdGhlIHRhc2suCgkgIFJld29yayBzb21lIGNvZGUgc28gdGhhdCB3ZSBhbHdheXMgdW5yZWYgdGhlIHBvb2wgYW5kIG9wdGlvbmFsbHkgam9pbiB3aGVuIHRoZQoJICBwb29sIHByb3ZpZGVkIGFuIGlkLgoJICBGaXhlcyAjNTg5MTI3CgoyMDA5LTA3LTIwIDEzOjI2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2UgdGFnIHF1ZXVpbmcgdGhyZWFkc2FmZQoJICBTZWUgIzU4ODc0NQoKMjAwOS0wNy0xMyAwOToyMjowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGdzdGNoZWNrOiBBZGQgYSBzdHJlYW0gY29uc2lzdGVuY3kgY2hlY2tpbmcgaGVscGVyIHJvdXRpbmUuIEZpeGVzICM1ODg3NDQKCjIwMDktMDctMjAgMTE6MDQ6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgdW5yZWYgTlVMTCBpZiB3ZSBoYXZlIGFuIGVhcmx5IHJlYWQgZXJyb3IKCjIwMDktMDctMTIgMTA6MDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VyaWFsaXplIHRhZ3MgaW50byB0aGUgZGF0YWZsb3cuIEZpeGVzICM1ODg3NDUKCjIwMDktMDctMTYgMTQ6MTc6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggQVBJIGRvY3MgZm9yIGdzdF97YWRhcHRlcnxieXRlX3JlYWRlcn1fbWFza2VkX3NjYW5fdWludDMyCgkgIENsYXJpZnkgYnl0ZSByZWFkZXIgZG9jcyBhIGJpdDogb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50CgkgIHBvc2l0aW9uIG9mIHRoZSByZWFkZXIsIG5vdCB0byB0aGUgc3RhcnQgb2YgdGhlIGRhdGEuIEFsc28sIHRoZQoJICBleGFtcGxlcyBpbiBib3RoIHRoZSBhZGFwdGVyIGRvY3MgYW5kIHRoZSBieXRlIHJlYWRlciBkb2NzIGhhdmUKCSAgdGhlIG1hc2sgYW5kIHBhdHRlcm4gYXJndW1lbnRzIHN3YXBwZWQgKHNlZSAjNTg3NTYxKS4gU3BvdHRlZAoJICBieSBDYXJsLUFudG9uIEluZ21hcnNzb24uCgoyMDA5LTA3LTE2IDEzOjU5OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdzOiBvbmx5IGVtaXQgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgZm9yIGdpdCB2ZXJzaW9ucwoJICBGb3Igbm93LCBkb24ndCBzaG93IGEgZ193YXJuaW5nKCkgZm9yIGVtcHR5IHRhZyBzdHJpbmdzIGFuZCBOVUxMCgkgIHRhZ3Mgd2l0aCBub24tZ2l0IHZlcnNpb25zOyB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGZpeGVzIGluIG91cgoJICBwbHVnaW4gbW9kdWxlcyB0byBtYWtlIGl0IGludG8gYSByZWxlYXNlIGJlZm9yZSB3ZSBlbmFibGUgdGhpcwoJICB1bmNvbmRpdGlvbmFsbHkuCgoyMDA5LTA3LTE0IDE4OjU5OjEzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuMiBwcmUtcmVsZWFzZQoKMjAwOS0wNy0xNCAxMjoxNTowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgZXhwbGFuYXRpb24gZm9yIHNob3J0Y3V0CgoyMDA5LTA3LTEwIDIwOjA0OjQ4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdGFrZSBzaXplIG9uY2UKCjIwMDktMDctMTAgMTk6MTc6MDQgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNhbl9pbnRlcnNlY3QgdG8gYmVoYXZlIGxpa2UgaW50ZXJzZWN0CgkgIEFkZCBhIHF1aWNrIHJldHVybiBpZiB0d28gdHlwZXMgYXJlIHRoZSBzYW1lLiBDaGFuZ2UgdGhlIGNoZWNrIGZvciB0aGUKCSAgaW50ZXJzZWN0aW9uIGZ1bmN0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBvbmUgdXNlZCBpbiBpbnRlcnNlY3QoKS4gVGhlCgkgIGxhdGVyIHRyaWVzIGJvdGggZGlyZWN0aW9ucy4KCjIwMDktMDctMTQgMDA6MDQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogbWFpbnRhaW4gQUJJIGNvbXBhdGliaWxpdHkgZXZlbiBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMDctMDIgMTI6NDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHN0cnVjdHVyZTogQ2hhbmdlIE5VTEwgYW5kIGVtcHR5IHN0cmluZyBoYW5kbGluZwoJICBEb24ndCBmb3JiaWQgdGhlIGVtcHR5IHN0cmluZyAiIiBpbiBnZW5lcmljIHN0cnVjdHVyZXMsIG9ubHkgaW4gdGFnbGlzdHMuCgkgIFByb3Blcmx5IGFsbG93IHRoZSBOVUxMIHN0cmluZyBieSBhZGRpbmcgc3BlY2lhbCBjYXNlcyBmb3Igc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgaXQuIHByb3AxPShzdHJpbmcpTlVMTCBpcyB0aGUgTlVMTCBzdHJpbmcsCgkgIHByb3AxPShzdHJpbmcpIk5VTEwiIGlzIHRoZSBhY3R1YWwgc3RyaW5nIHdpdGggdGhlIHZhbHVlICJOVUxMIgoKMjAwOS0wNy0xMyAxMjoyMzowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ODQ1YjYzIHRvIGZlZGFhZWUKCjIwMDktMDctMTMgMTI6MDA6NDcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIDx5bGF0dXlhIGF0IGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBzZWdmYXVsdCB3aXRoIE1TVkMKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgZmlsZW5vIG9uIE1TVkMgYnV0IHJlcGxhY2Ugd2l0aCBfZmlsZW5vCgkgIEZpeGVzICM1ODcwNTIKCjIwMDktMDctMTMgMDk6MzI6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jcy9kZXNpZ246IFVwZGF0ZSBNYWtlZmlsZS5hbSBmb3IgY2hhbmdlZCBmcmFtZXN0ZXAgZG9jdW1lbnQgbmFtZS4KCjIwMDktMDctMTAgMTk6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHRoZSBwbHVnaW4gZmVhdHVyZXMgbGlzdGVkIGJ5IGdzdC1pbnNwZWN0IGFyZSB0eXBlZmluZGVycywgbm90IHR5cGVzCgoyMDA5LTA3LTEwIDE4OjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBmb3IgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YSBpZGVhCgoyMDA5LTA3LTEwIDE4OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJICBkb2NzOiBtb3JlIGZyYW1lc3RlcCBkb2NzIG91dCBvZiBkcmFmdAoKMjAwOS0wNy0xMCAxODozMzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQKCSAgUmVtb3ZlIGV4cGVyaW1lbnRhbCBzdGF0dXMgZnJvbSB0aGUgZnJhbWVzdGVwIGRyYWZ0LgoKMjAwOS0wNy0wOCAxNToxNTowNCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IEZpeCBjb21waWxhdGlvbiBpZiBvcHRpb24gcGFyc2luZyBpcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU4Nzk3Ni4KCjIwMDktMDctMDggMTU6MTA6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgZ19idWlsZF9maWxlbmFtZSgpIGluc3RlYWQgb2YgZ19zdHJqb2luKCkgd2l0aCAvCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBnZW5lcmF0ZWQgZmlsZW5hbWVzIHVzZSB0aGUgcGxhdGZvcm0KCSAgc3BlY2lmaWMgZGlyZWN0b3J5IHNlcGFyYXRvciBpbnN0ZWFkIG9mIC8uCgkgIEZpeGVzIGJ1ZyAjNTg3OTczLgoKMjAwOS0wNy0wNyAyMDoxMzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBhZGQgJ1NpbmNlJyB0YWcgZm9yIG5ldyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIG1hY3JvCgoyMDA5LTA3LTA3IDAwOjIzOjQxICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtYWtlIGl0IHRoZSBiZXN0IG9mIHdpbXMgYW5kIGVkd2FyZHMgcGF0Y2guCgkgIENoZWNrIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLCBidXQgc3RpbGwgYWRkIGl0IHRvIHRoZSBwYWQtbGlzdC4KCjIwMDktMDYtMzAgMTE6MjY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBhbGxvdyBnZXR0aW5nIG90aGVyIGxvZyBjYXRlZ29yaWVzLiBGaXhlcyAjNTg3NDE3CgkgIEFkZCBhIG5ldyBtYWNybyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIHRvIGdldCBhIGxvZyBjYXRlZ29yeSBieSBuYW1lLiBUaGlzCgkgIGFsbG93cyBwbHVnaW5zIHRvIHVzZSBlLmcuIGNvcmUgY2F0ZWdvcmllcyBsaWtlIFBFUkZPUk1BTkNFIG9yIENMT0NLLgoJICBBUEk6IEdTVF9ERUJVR19DQVRFR09SWV9HRVQKCjIwMDktMDctMDYgMTk6NTE6NTcgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIGNvbW1lbnQgYSBGSVhNRSBjb21tZW50CgoyMDA5LTA3LTA2IDE5OjUwOjUyICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBsb2dnaW5nOiBsb2cgb2JqZWN0IHR5cGUgaW4gbWVzc2FnZQoKMjAwOS0wNy0wNiAxOTo0ODo1OCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2dnaW5nOiB1c2UgcGVyZiBjYXRlZ29yeSBmb3IgZHJvcHBlZCBidWZmZXJzCgoyMDA5LTA2LTI5IDExOjI2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgZm9yd2FyZCBGTFVTSF9TVE9QIGlmIHNvbWUgaW5wdXQgc3RyZWFtcyBhcmUgc3RpbGwgZmx1c2hpbmcuCgkgIFRoaXMgZ3VhcmFudGVlcyB0aGF0IG9ubHkgb25lIEZMVVNIX1NUT1AgZXZlbnQgKHRoZSBsYXN0IG9uZSkgd2lsbCBiZSBzZW50CgkgIGRvd25zdHJlYW0gd2hlbiBhIGZsdXNoaW5nIHNlZWsgaXMgYmVpbmcgZG9uZSB0aHJvdWdoIGNvbGxlY3RwYWRzLgoKMjAwOS0wNi0yNCAxMToxMTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVwZGF0ZSB0aGUgY29va2llIHdoZW4gc2V0dGluZyBvdXJzZWx2ZXMgYXMgZmx1c2hpbmcuCgkgIFRoaXMgZm9yY2VzIHRoZSBwYWQgc3RhdHVzIHRvIGJlIHJlLWV2YWx1YXRlZCBvbiB0aGUgbmV4dCBfY2hlY2tfcGFkcygpLgoKMjAwOS0wNi0wOSAxNDo1NDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRvY3M6IGZpeCBndGstZG9jIC8qPCBwcml2YXRlID4qLyBtYXJrZXIKCjIwMDktMDYtMDkgMTQ6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBsb2cgcHJvYmFiaWxpdHkgaW4gZGVidWcgbWVzc2FnZQoKMjAwOS0wNi0zMCAxODoyMjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBwYXJzaW5nIG9mIHRoZSBzdGVwIGRvbmUgbWVzc2FnZQoJICBQYXJzZSB0aGUgZHVyYXRpb24gZmllbGQgdG9vLgoKMjAwOS0wNi0yOSAxMToyNDoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogVXNlIGxvY2FsIHZhbHVlcyBpbiB3aGlsZS9mb3IgbG9vcHMsIHVzZSBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MKCjIwMDktMDYtMjkgMTE6MjM6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBTcHJlYWQgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zLgoJICBUaGVzZSBhcmUgYmFzZWQgb24gcHJvZmlsaW5nIHNldmVyYWwgcGxheWJhY2sgc2NlbmFyaW9zIHVzaW5nIHBsYXliaW4yLgoKMjAwOS0wNi0yOSAxMToyMDoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluIGZvci93aGlsZSBsb29wcy4KCSAgVGhpcyBtYWtlcyB0aGUgZ2VuZXJhdGVkIGNvZGUgZmFzdGVyIHNpbmNlOgoJICAqIEl0IHdvbid0IGhhdmUgdG8gcmVhZCBhbiB1bmRpcmVjdCB2YWx1ZSAod2hpY2ggd2lsbCBtb3N0IGxpa2VseSBiZQoJICBvdXRzaWRlIG9mIHRoZSBMMS9MMiBjYWNoZSkKCSAgKiBXZSBrbm93IHRoYXQgdmFsdWUgbmV2ZXIgY2hhbmdlcyAodGhlIGNvbXBpbGVyIGhhcyBubyBjbHVlIHRoYXQgaXQgZG9lc24ndCkuCgoyMDA5LTA2LTA5IDE5OjA4OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBsaWJzL2NvbnRyb2xsZXI6IFNldCBkZWZhdWx0IGdzdCBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgoyMDA5LTA2LTI5IDExOjU3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLnNjbToKCSAgdGVzdHM6IGZpeCBleGFtcGxlCgoyMDA5LTA2LTI5IDExOjU2OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJ1ZmZlcmxpc3Q6IHVzZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpCgkgIFVzZSB0aGUgZmFzdGVyIGdzdF9idWZmZXJfbGlzdF9nZXQoKSB0byBnZXQgdGhlIGZpcnN0IGJ1ZmZlciBvZiBhIGxpc3QuCgoyMDA5LTA2LTI5IDExOjU1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGV4YW1wbGUKCSAgVGhlIF9kbyBmdW5jdGlvbiBub3cgdGFrZXMgdXNlcl9kYXRhIGluIGFsbCBjYXNlcy4KCjIwMDktMDYtMjkgMTE6NDY6MDAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0YWtlIHRpbWVzdGFtcCBsYXRlcgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGNhc3QgYSBidWZmZXJsaXN0IG9mIGEgYnVmZmVyIGFuZCB0cnkgdG8gdGFrZQoJICB0aGUgdGltZXN0YW1wIG9mIGl0LgoJICBSZWZpeGVzICM1ODU5NjAKCjIwMDktMDYtMjkgMTE6MDc6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDA5LTA2LTI5IDExOjI0OjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBsb2dnaW5nOiBhZGQgYSBwZXJmb3JtYWNlIGxvZyBjYXRlZ29yeQoJICBUaGlzIGNhdGVnb3J5IGNhbiBiZSB1c2VkIHRvIGxvZyBzbG93IGNvZGUgcGF0aCBhbmQgaGVscCBhdWRpdGluZyB0aGUKCSAgcGVyZm9ybWFuY2UuIEFkZCBGSVhNRS0wLjExIHRvIHNvbWUgcXVlc3Rpb25hYmxlIGNhdGVnb3JpZXMuCgoyMDA5LTA2LTI3IDE2OjM0OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IGludC0+Z2ludCB0byBiZSBpbiBzeW5jIHdpdGggdGhlICouaCAgYW5kIHVzYWdlCgoyMDA5LTA2LTI2IDEzOjMzOjUwICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicuIENoZWNrIGZvciBhdXRvbWFrZS0xLjFbMDFdCgkgIENoZWNrIGZvciBtb3JlIGF1dG9tYWtlIGNvbW1hbmQgdmFyaWFudHMuIFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicKCSAgZm9yIHBvcnRhYmlsaXR5CgoyMDA5LTA2LTI2IDEzOjQxOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4MTAwMzAgdG8gNTg0NWI2MwoKMjAwOS0wNi0yNiAxMjo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgcmVxdWVzdC1wYWQ6IHRlbGwgYWJvdXQgcmVmIGNvdW50cyBpbiByZWxlYXNlX3JlcXVlc3RfcGFkIGRvY3MuCgkgIEl0IGlzIG5vdCB0b28gb2J2aW91cyB0aGF0IGdldHRpbmcgYW5kIHJlbGVhc2luZyByZXF1ZXN0IHBhZHMgaXMgbm90IGVudGllcmx5CgkgIHN5bWV0cmljYWwgcmVnYXJkaW5nIHRvIHRoZSBwYWQgcmVmY291bnQuIEFkZCBhIG5vdGUgYWJvdXQgdGhhdCB0byB0aGUgZG9jcy4KCSAgVGhpcyBtaWdodCBkZXNlcnZlIGEgRklYTUUtMC4xMSB0b28uCgoyMDA5LTA2LTI1IDExOjI1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IGRvIHRoaW5ncyB3aXRoIHNpZGUgZWZmZWN0cyB3aXRoaW4gYSBnX2Fzc2VydCgpCgkgIE1ha2UgdGhlIGJ1ZmZlcmxpc3Qgc3R1ZmYgd29yayBwcm9wZXJseSB3aGVuIHRoaW5ncyBhcmUgY29tcGlsZWQKCSAgd2l0aCAtREdfRElTQUJMRV9BU1NFUlQuCgoyMDA5LTA2LTI0IDE4OjMxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgZG9pbmcgbG9naWMgaW4gZ19hc3NlcnQKCSAgTWFrZSBzdXJlIHdlIHN0aWxsIGRvIHRoZSByaWdodCB0aGluZyB3aGVuIGdsaWIgaXMgY29tcGlsZWQgd2l0aG91dAoJICBhc3NlcnRpb25zLgoKMjAwOS0wNi0yMiAwNTowMDo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpcmUgdGhlIG92ZXJydW4gc2lnbmFsIG9uIEVPUwoJICBGaXhlcyBzdGFydHVwIG9mIHNvbWUgc2hvcnQgTVBFRyBmaWxlcyB3aXRoIGRlY29kZWJpbjIvcGxheWJpbjIKCSAgd2hlcmUgYWxsIHRoZSBkYXRhIGZpdHMgaW4gdGhlIG11bHRpcXVldWUgYW5kIEVPUyBhcnJpdmVzIGJlZm9yZQoJICB0aGUgZ3JvdXAgaXMgZXhwb3NlZC4KCjIwMDktMDYtMjQgMTU6MTM6MzcgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmM2JiNTFiIHRvIGY4MTAwMzAKCjIwMDktMDMtMjggMTM6NTk6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEdzdFN0cnVjdHVyZTogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAxMDo0NTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0czogRG9uJ3QgY2hhaW4gdXAgdG8gZW1wdHkgZmluYWxpemUgbWV0aG9kLgoJICBJZiBldmVyIHdlIGRvIGFueXRoaW5nIGluIG1pbmlfb2JqZWN0X2ZpbmFsaXplLCB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoZSA0CgkgIGNvcmUgbWluaW9iamVjdCBmaW5hbGl6ZSBtZXRob2RzIGNoYWluIGJhY2sgdXAgYWdhaW4uCgoyMDA5LTAzLTI3IDIwOjE3OjE1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAwOToyODowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBtYWtlIGNoZWNrOiBhZGQgY2hlY2sgZm9yIGVudW0gdHlwZSBjbGFzcyB1bnJlZnMgaW4gZ3N0X2RlaW5pdCgpIHRvbwoJICBKdXN0IGJlY2F1c2Ugd2UgY2FuIHJlYWxseS4KCjIwMDktMDYtMjMgMTM6NDQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZTogdXNlIHByb3BlciBsb2NraW5nIGluIEdzdFRyYWNlCgkgIFByb3RlY3QgdGhlIGFsbG9jYXRlZCBsaXN0IG9mIG9iamVjdHMgd2l0aCBhIGxvY2sgc28gdGhhdCB0cmFjZSBhY3R1YWxseSB3b3JrcwoJICByZWxpYWJseS4KCSAgU2hvcnRjdXQgdGhlIGFsbG9jIHRyYWNlIHNvb25lciB3aGVuIGRpc2FibGVkLgoKMjAwOS0wNi0yMyAxMzozNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBhbHNvIGFkZCBwb2ludGVycyB0byBkZWJ1ZwoJICBBZGQgdGhlIG9iamVjdCBwb2ludGVycyBpbiB0aGUgZGVidWcgaW5mbyBmb3IgX3JlcGxhY2UuCgoyMDA5LTA2LTIzIDEyOjU2OjU5ICswMjAwICBDaGFkIEhhbm5hIDxjaGFubmFAbGlnby5jYWx0ZWNoLmVkdT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgR0FQIGZsYWcgc3VwcG9ydAoJICBjYXBzZmlsdGVyIGRvZXNuJ3QgYWN0dWFsbHkgdG91Y2ggdGhlIGRhdGEgc28gd2UgZG9uJ3Qgd2FudCB0aGUgR0FQIGZsYWcgdG8KCSAgYmUgdW5zZXQgYnkgYmFzZXRyYW5zZm9ybS4KCSAgRml4ZXMgYnVnICM1ODY1NjYuCgoyMDA5LTA2LTIzIDEwOjA1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IGJ5dGUgcmVhZGVyIG1ldGhvZHMKCjIwMDktMDUtMjIgMTQ6NDc6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYWRkIGEgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHN0cmluZ3MgYW5kIGEgZGF0YSBkdXAgZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGEKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjMyCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMTYKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmdfdXRmOAoJICBBbmQgc29tZSBiYXNpYyB1bml0IHRlc3RzLiBGaXhlcyAjNTg2NTY4LgoKMjAwOS0wNi0yMiAxODoxNzoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IHR5cG8gaW4gdGFnIGRlc2NyaXB0aW9uCgoyMDA5LTA2LTIxIDAwOjI2OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBmaXggY3Jhc2ggYW5kIGxlYWsgaW4gYnVmZmVybGlzdHMgdW5pdCB0ZXN0CgkgIERvbid0IGFjY2VzcyBhbHJlYWR5LWZyZWVkIGl0ZXJhdG9yLCBtYWtlcyBjaGVjay12YWxncmluZCB3b3JrIGFuZCBmaXhlcwoJICBjcmFzaCBvbiBQUEM7IHVucmVmIGJ1ZmZlciB3ZSdyZSBnb2luZyB0byBzdGVhbCB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoKMjAwOS0wNi0yMSAwMDowOTo1MyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBGaXggaW5kZW50LCBhbmQgcmVmIHRoZSBnc3RfYnVmZmVyX2xpc3RfaXRlbV9nZXRfdHlwZSgpIGNsYXNzCgkgIEZpeCB0aGUgY2hlY2sgdGVzdHMgYnkgcmVmZmluZyB0aGUgR3N0QnVmZmVyTGlzdCBjbGFzcy4gUnVuIGdzdC1pbmRlbnQKCSAgdG8gbWFrZSBnaXQgaGFwcHkgYWJvdXQgc29tZSBleGlzdGluZyBzdHVmZgoKMjAwOS0wNi0xOSAyMTowMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGJyb2tlbiBmbGFncyB0byBmbGFnIHN0cmluZyBzZXJpYWxpc2F0aW9uCgkgIGUuZy4gY2RwYXJub2lhc3JjIHdvdWxkIHNob3cgZnJhZ21lbnR8ZnVsbCBmb3IgYSBmbGFncyB2YWx1ZSBvZiAyLgoKMjAwOS0wNi0xOSAxOTozNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIGJ1ZmZlci1saXN0IHN1cHBvcnQKCjIwMDktMDYtMTkgMTk6MjQ6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiByZW1vdmUgb2xkIGVudW0gZnJvbSBkb2NzCgoyMDA5LTA2LTE5IDE0OjQ1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGRlZmluZSBfX2dzdF9kZWJ1Z19taW4gdG8gTE9HX0xFVkVMX05PTkUgaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIEp1c3QgaW4gY2FzZSBzb21lb25lIHdobyBjbGVhcmx5IGNhbid0IGJlIGRldGVycmVkIGJ5IGFueSBudW1iZXIgb2YgbGVhZGluZwoJICB1bmRlcnNjb3JlcyB1c2VzIHRoaXMgdmVyeSBwcml2YXRlIGJ1dCBzdGlsbCBzb21ld2hhdCBkb2N1bWVudGVkIHN5bWJvbAoJICBkaXJlY3RseSBpbiB0aGVpciBjb2RlICgqY291Z2gqIHF0ZGVtdXggKmNvdWdoKikuCgoyMDA5LTA2LTE5IDE1OjI5OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IFZhcmlvdXMgY2xlYW51cHMKCSAgQWRkIG5ldyBtZXRob2QgdG8gaXRlcmF0ZSBhIGJ1ZmZlcmxpc3Qgd2l0aG91dCBoYXZpbmcgdG8gYWxsb2NhdGUgYW4gaXRlcmF0b3IuCgkgIEFkZCBjb252ZW5pZW5jZSBtZXRob2QgZm9yIGdldHRpbmcgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGJhc2VkIG9uIHRoZSBncm91cCBhbmQKCSAgaW5kZXguCgkgIFJlbW92ZSByZWR1bmRhbnQgX2RvX2RhdGEgY2FsbGJhY2sgYW5kIG1ldGhvZC4KCSAgVXBkYXRlIHVuaXQtdGVzdHMgYW5kIGFkZCBzb21lIG1vcmUgZm9yIHRoZSBuZXcgbWV0aG9kcy4KCjIwMDktMDYtMTkgMTQ6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBtYWtlIGd0ay1kb2MgaGFwcHkKCjIwMDktMDYtMTkgMTM6NTE6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgoyMDA5LTA2LTE5IDEzOjQ4OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogY2xlYW4gdXAgc29tZSBtb3JlIGVycm9yIGFuZCBkZWJ1ZyBtZXNzYWdlcwoKMjAwOS0wNi0xOSAxMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFza3Bvb2w6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyBpbiBjYXNlIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNi0xOSAxMzo0MDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggZXhwb3J0IG9mIEdTVF9DQVRfQlVGRkVSX0xJU1Qgd2hlbiAtLWdzdC1kaXNhYmxlLWRlYnVnIGlzIHVzZWQKCSAgTW92ZSBhbGwgdGhlIGNhdGVnb3JpZXMgdG8gZXhwb3J0IHRvIG9uZSBzaW5nbGUgcGxhY2UsIHNvIHdlIGRvbid0CgkgIGFjY2lkZW50YWxseSB1cGRhdGUgb3IgYWRkIHZhcnMgaW4gb25lIHBsYWNlIGJ1dCBub3QgdGhlIG90aGVyLgoKMjAwOS0wNi0xOCAxNjo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHVzZSB0aGUgcmlnaHQgZmx1c2hpbmcgZmxhZy4KCSAgV2UgbmVlZCB0byB1c2UgdGhlIHBhZCBwcml2YXRlIGZsYWcgYmVjYXVzZSB0aGUgb3RoZXIgcGFkIGZsYWcgaXMgcHJvdGVjdGVkIHdpdGgKCSAgdGhlIHBhZCBsb2NrIGluc3RlYWQuCgoyMDA5LTA2LTE4IDE2OjQxOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogUHJvcGVybHkgaGFuZGxlIGZsdXNoaW5nIHBhZHMuCgkgIElmIGEgcGFkIGlzIGZsdXNoaW5nLCBpdCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYXMgZWl0aGVyIGVvcyBvcgoJICBjb250YWluaW5nIGRhdGEuCgoyMDA5LTA2LTE4IDExOjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZml4IGVycm9yIG1lc3NhZ2UKCSAgVXNlcnMgc2hvdWxkIG5ldmVyIHNlZSB0aGUgdGVybSAnZmlsZSBkZXNjcmlwdG9yJywgbXVjaCBsZXNzIGEgZmlsZQoJICBkZXNjcmlwdG9yIG51bWJlciwgaW4gYW4gZXJyb3IgbWVzc2FnZS4gUHV0IHRoYXQgaW50byB0aGUgZGVidWcKCSAgc3RyaW5nIGluc3RlYWQgYW5kIHVzZSB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlLgoKMjAwOS0wNi0xOCAxMTo0OTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogYWRkIHRoZSBuZXcgZmllbGQgaW4gdGhlIGhlYWRlcgoKMjAwOS0wNi0xOCAxMDo1NTozOSArMDIwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluIGF0IGdhaWduYXJkLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogbWFrZSBmZHNpbmsgc2Vla2FibGUKCSAgSW1wbGVtZW50IHRoZSBzYW1lIGxvZ2ljIGFzIGZpbGVzaW5rIHRvIGltcGxlbWVudCBzZWVraW5nLgoJICBGaXhlcyAjNTc4OTA4CgoyMDA5LTA2LTE3IDE2OjQ1OjE3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiBtb3ZlZCB0aGUgY2xvY2sgdW5yZWYgdG8gdGhlIHJpZ2h0IHBsYWNlCgoyMDA5LTA2LTE3IDE2OjE3OjI3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiB1bnJlZiB0aGUgY2xvY2sgd2hlbiB0aGUgZWxlbWVudCBjaGFuZ2VzIHRvIG51bGwgc3RhdGUKCjIwMDktMDYtMTcgMDA6Mjk6NDAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBSZXBsYWNlZCBkZXByZWNhdGVkIHdpbjMyLWNvbXBhdGliaWxpdHkgZnVuY3Rpb24gd2l0aCB1bmRlcHJlY2F0ZWQgb25lLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOS0wNi0xNiAxODozMjoxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHN3YXAgdGhlIGxpbmVzIG9mIG15IHByZXZpb3VzIGNvbW1pdAoJICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIG15IHByZXZpb3VzIGNvbW1pdCB0aGF0IHJlbGVhc2VkIHRoZQoJICBjbG9jayBwcm92aWRlciBhbmQgYWZ0ZXIgdXNlZCBpdCB0byBjcmVhdGUgdGhlIGNsb2NrIGxvc3QgbWVzc2FnZS4KCjIwMDktMDYtMTYgMTc6NTE6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiByZW1vdmUgY2xvY2sgcmVmZXJlbmNlcyB3aGVuIGNsb2NrIGxvc3QgaGFwcGVucwoJICBSZW1vdmUgcmVmZXJlbmNlIHRvIGNsb2NrIGFuZCBjbG9jayBwcm92aWRlciBzdG9yZWQgaW4gdGhlIGJpbgoJICB3aGVuIHRoZSBjbG9ja3Byb3ZpZGVyIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBiaW4uCgoyMDA5LTA2LTE2IDEzOjM0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIFNpbmNlIHRhZyBmb3IgbmV3IG1ldGhvZAoKMjAwOS0wNi0xNiAxMzozMjozNyArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3QKCSAgRml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0xNiAxMTozNDo1NCArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBZGQgc3VwcG9ydCBmb3IgR3N0QnVmZmVyTGlzdHMKCSAgRml4ZXMgIzU4NTgzNAoKMjAwOS0wNi0xNiAxMToyMTo0MiArMDIwMCAgQ2hyaXN0b3BoZXIgSGFsc2UgUm9nZXJzIDxjaGFsc2Vyb2dlcnMgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBFeHBsaWNpdGx5IG1lbnRpb24gcmVmY291bnRpbmcgaW4gZG9jcwoJICBGaXhlcyAjNTg1OTM4CgoyMDA5LTA2LTE2IDA4OjQzOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R4bWw6IGZpeCAoZGUpc2VyaWFsaXNhdGlvbiBvZiBwcm9wZXJ0aWVzIG9mIHR5cGUgR3N0U3RydWN0dXJlCgkgIHNvdXBodHRwc3JjIGhhcyBhIHByb3BlcnR5IG9mIHR5cGUgR3N0U3RydWN0dXJlLCB3aGljaCBjYXVzZXMgYW4KCSAgYXNzZXJ0aW9uIHdoZW4gc2VyaWFsaXNpbmcgaXQgdG8geG1sLiBGaXhlcyAjNTg1MTM3LgoKMjAwOS0wNi0xNSAyMDoxMTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBUaGUgY29tcGlsZXIgc3VnZ2VzdHMgdG8gYWRkIHNvbWUgKCkgdG8gaW5kaWNhdGUgaWYgdGhlICYmIG9yIHRoZSB8fCB0YWtlcwoJICBwcmlvcml0eSwgc28gcmVmbG93IGNvZGUgYSBiaXQgc28gd2UgZG9uJ3QgaGF2ZSB0byBhZGQgeWV0IGFub3RoZXIgbGF5ZXIKCSAgb2YgKCkuIEhvcGVmdWxseSB0aGlzIHdhcyB0aGUgaW50ZW5kZWQgbWVhbmluZyBvZiB0aGUgY29kZS4KCjIwMDktMDYtMTEgMTU6MDA6NTIgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZG9uJ3QgbG9jayB3aGVuIG1pbi10aHJlc2hvbGQgYW5kIG1heC1zaXplIGNvbmZsaWN0LgoJICBXaGVuIG1pbi10aHJlc2hvbGQgaXMgc2V0IG9uIGEgcXVldWUsIGl0IGlzIHBvc3NpYmxlIHRoYXQgb25lIG9mCgkgIHRoZSBtaW5pbWEgcmVtYWlucyB1bnNhdGlzZmllZCB3aGlsZSBvbmUgb2YgdGhlIG1heGltYSBpcyBhbHJlYWR5CgkgIHJlYWNoZWQuIFRoZXJlZm9yZSwgYWx3YXlzIGNvbnNpZGVyIHRoZSBxdWV1ZSBub24tZW1wdHkgaWYgaXQgaXMgZnVsbC4KCSAgRml4ZXMgIzU4NTQzMy4KCjIwMDktMDYtMTUgMTg6NDQ6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBzdXJlIHdlIHNldCB0aGUgbmV4dCBzdGF0ZSBjb3JyZWN0bHkKCSAgV2hlbiB0aGUgY29udGludWUgZnVuY3Rpb24gaXMgc2NoZWR1bGVkLCBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGluc3RlYWQKCSAgb2YgdGhlIHBlbmRpbmcgc3RhdGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgZml4ZXMgIzU4NTU2OQoKMjAwOS0wNi0xNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCAuaCBpbmRlbnRhdGlvbgoKMjAwOS0wNi0xNSAxODo0Mzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDA5LTA2LTE1IDE4OjQyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBkZWJ1ZzogYWRkIHNvbWUgbW9yZSBkZWJ1ZyB0byBlbGVtZW50IGFuZCBwYWRzCgoyMDA5LTA2LTE0IDE2OjU2OjMyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGZpeCBpbmNsdWRlIG9yZGVyIHRvIGdldCBjb25maWcuaCBiZWZvcmUgX21pbmd3LmgKCSAgY29uZmlnLmggbXVzdCBhbHdheXMgYmUgaW5jbHVkZWQgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlcywgZWl0aGVyCgkgIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdmlhIGdzdF9wcml2YXRlLmguIEZpeGVzICM1ODU3MzMuCgoyMDA5LTA2LTE0IDE2OjE3OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZ2xpc3Qgd2l0aCB0YWdzIGluIG9uZSBnbwoJICBBZGQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIG5ldyB0YWcgbGlzdCBhbmQgc2V0IHRhZ3MgaW4gb25lIGdvLCB3aGljaAoJICBpcyBuaWNlIGZvciB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBmdW5jdGlvbnMgdGhhdCB0YWtlIG93bmVyc2hpcCBvZgoJICB0aGUgdGFnbGlzdCwgc3VjaCBhcyBnc3RfZXZlbnRfbmV3X3RhZygpIG9yIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKS4KCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsKCkKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsX3ZhbGlzdCgpCgoyMDA5LTA2LTEzIDE0OjU1OjQzICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgZ2l0LXZlcnNpb24uc2g6IG1ha2UgZXhlY3V0YWJsZQoKMjAwOS0wNi0xMyAxNDo1MzoyNCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgVXBkYXRlIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaCB0byBnaXQtdXBkYXRlLnNoOyBhZGQgZ2l0LXZlcnNpb24uc2gKCSAgYWRkIHNjcmlwdCB0byBnZXQgZ2l0IHZlcnNpb25zCgkgIGZpcnN0IHVwZGF0ZSBhbGwsIHRoZW4gYnVpbGQKCSAgYWRkIGdub25saW4gdG9vCgkgIHNwZWNpZnkgd2hlcmUgdG8gcHVsbCBmcm9tCgkgIGFsc28gdXBkYXRlIHN1Ym1vZHVsZQoJICByZW5hbWUgYW5kIGNoYW5nZSBjdnMtdXBkYXRlIHNjcmlwdCB0byBnaXQtdXBkYXRlCgoyMDA5LTA2LTEyIDE4OjM2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBBZGQgYSBwYXR0ZXJuIHNjYW4gZnVuY3Rpb24gc2ltaWxhciB0byB0aGUgb25lIHJlY2VudGx5IGFkZGVkIHRvCgkgIEdzdEFkYXB0ZXIsIGFuZCBhIHVuaXQgdGVzdCAoYmFzZWQgb24gdGhlIGFkYXB0ZXIgb25lKS4KCSAgRml4ZXMgIzU4NTU5Mi4KCSAgQVBJOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgoyMDA5LTA0LTE3IDE3OjU5OjM4ICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCByZW1haW5pbmcgLS1kaXNhYmxlLWdzdC1kZWJ1ZyBBQkkgYnJlYWthZ2UuCgkgIEZpeGVzICM1NzkxNzcuCgoyMDA5LTA2LTEyIDE3OjUxOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IHR1cm4gdGhlIGJ1cyBtZXNzYWdlcyBpbnRvIGdfd2FybmluZwoJICBJdHMgYSBwcm9ncmFtbWluZyBlcnJvci4KCjIwMDktMDYtMTIgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggZG9jcwoKMjAwOS0wNi0xMiAxMzoxODoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiBtb3JlIHN0ZXBwaW5nIGltcHJvdmVtZW50cwoJICBVcGRhdGUgZGVzaWduIGRvYyB3aXRoIHN0ZXAtc3RhcnQgZG9jcy4KCSAgQWRkIGVvcyBmaWVsZCB0byBzdGVwIGRvbmUgbWVzc2FnZQoJICB3aGVuIHN0ZXBwaW5nIGluIHJldmVyc2UsIHVwZGF0ZSB0aGUgc2VnbWVudCB0aW1lIGZpZWxkLgoJICBGbHVzaCBvdXQgdGhlIGN1cnJlbnQgc3RlcCB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCjIwMDktMDYtMTAgMTU6NTE6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IHN0ZXAtc3RhcnQKCSAgd2hlbiB3ZSBjbGlwLCBhbHNvIHN0b3AgdGhlIHN0ZXBwaW5nLgoJICBEb24ndCBkbyBRb1Mgd2hlbiBzdGVwcGluZwoJICBQb3N0IHN0ZXAtc3RhcnQgd2hlbiBxdWV1ZWluZyBhbmQgYWN0aXZhdGluZyB0aGUgc3RlcC4KCjIwMDktMDYtMTAgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgc3RlcC1zdGFydCBtZXNzYWdlCgoyMDA5LTA2LTExIDE0OjE4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogbW9yZSBlZmZpY2llbnQgdmFsdWUgdGFibGUgbG9va3VwIGZvciBmdW5kYW1lbnRhbCB0eXBlcwoJICBTbWFsbCBtaWNyby1vcHRpbWlzYXRpb246IGxvb2sgdXAgdmFsdWUgdGFibGUgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIHZpYSBhbiBhcnJheSBkZWRpY2F0ZWQgdG8gZnVuZGFtZW50YWwgdHlwZXMgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoCgkgIGEgaGFzaCB0YWJsZSBsb29rdXAuIFNpbmNlIHRoZXJlIGNhbiBiZSBvbmx5IDI1NSBmdW5kYW1lbnRhbCB0eXBlcywKCSAgdGhlIHRhYmxlIHNpemUvZWZmaWNpZW5jeSB0cmFkZS1vZmYgc2hvdWxkIGJlIGFjY2VwdGFibGUsIGVzcC4gc2luY2UKCSAgdGhlIG1vc3QgY29tbW9ubHktdXNlZCB0eXBlcyBhcmUgYWxsIGZ1bmRhbWVudGFsIHR5cGVzLiBUaGUgc2l6ZSBvZgoJICB0aGUgdGFibGUgY291bGQgcHJvYmFibHkgYmUgbWluaW1pc2VkIGZ1cnRoZXIgaWYgbmVlZGVkIGJ5IGFsbG9jYXRpbmcKCSAgdGhlIHRhYmxlIGR5bmFtaWNhbGx5IGFuZCBvbmx5IGV4cGFuZGluZyBpdCBvbiBkZW1hbmQuCgoyMDA5LTA2LTExIDEzOjE2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZG9uJ3QgcHV0IEdUeXBlcyBpbnRvIGludCB2YXJpYWJsZXMKCSAgR1R5cGVzIGFyZSBub3QgaW50cyBhbmQgYXMgc3VjaCBhcmUgbm90IGd1YXJhbnRlZWQgdG8gZml0IGludG8gYW4gaW50CgkgICh3aXRoIHRoZSBleGNlcHRpb24gb2YgZnVuZGFtZW50YWwgdHlwZXMpLCBzbyB3ZSByZWFsbHkgc2hvdWxkbid0IHB1dAoJICB0aGVtIGludG8gaW50IHZhcmlhYmxlcy4gRXZlbiBpZiBhIHJhdGhlciB1bmxpa2VseSBvYnNjdXJlIGNvcm5lciBjYXNlLAoJICB0aGlzIGhhcyBhY3R1YWxseSBiZWVuIGEgcHJvYmxlbSBhdCBzb21lIHBvaW50IGluIHRoZSBwYXN0LCBzZWUgY29tbWl0CgkgIDk5ZjE2NjU1ZjRjZmJjOGUwNmI1OTcyNDE3YmExMTI3OTA4M2E2NGUuCgoyMDA5LTA2LTExIDE3OjAzOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IGltcHJvdmUgd2FybmluZyBtZXNzYWdlIGEgYml0ICh3cm9uZyBzdGF0ZSkKCSAgVW5pZnkgYW5kIHR1cm4gdGhvc2UgaW50byBlbGVtZW50IHdhcm5pbmdzLgoKMjAwOS0wNi0xMSAxNDowMDowOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGaXggYSBjb21waWxlciB3YXJuaW5nCgkgIFVzZSAoZ3BvaW50ZXIpIGluc3RlYWQgb2YgKGdwb2ludGVyICopIHRvIGZpeCBhIHN0cmljdC1hbGlhc2luZyBidWlsZCB3YXJuaW5nLgoKMjAwOS0wNi0xMSAxMzoxNjoyOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgIGRvY3M6IEJ1bXAgY29tbW9uLCBmaXggdGhlIHVwbG9hZCBsb2dpYyBpbmNsdXNpb24KCSAgVXBkYXRlIHRoZSBjb21tb24gc3VibW9kdWxlLCBhbmQgZml4IHRoZSBkb2NzIHVwbG9hZCBydWxlcyB0byBpbmNsdWRlCgkgIHRoZSByaWdodCBtYWtlZmlsZSBzbmlwcGV0IGZyb20gY29tbW9uLgoKMjAwOS0wNi0wOSAxMToxMzowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVzZSB0aGUgc2xpY2UgYWxsb2NhdG9yIGZvciBNdWx0aVF1ZXVlSXRlbXMKCjIwMDktMDYtMTAgMjA6Mjk6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBNYWtlIHN1cmUgY29uZmlnLmggaXMgb25seSBpbmNsdWRlZCBvbmNlCgkgIEZpeGVzIGJ1aWxkIHByb2JsZW0gb24gd2luMzIgKCM1ODUwNzUpLgoKMjAwOS0wNi0xMCAxODowNTo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCBzaW5jZTogdGFncyBmb3IgdGhlIGFwaSBkb2NzLgoJICBUaGUgcHJldmlvdXMgcmVsYXRlZCBjb21taXQgYWRkZWQgbmV3IEFQSS4KCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9nZXRfY2FjaGVfZGF0YSwgZ3N0X3BsdWdpbl9zZXRfY2FjaGVfZGF0YQoKMjAwOS0wNi0xMCAxMjowMjoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGZpeCBsZWFrcyBpbnRyb2R1Y2VkIGJ5IGZpeCBmb3IgIzU4NDM4OQoKMjAwOS0wNi0wOCAyMzo0MzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV8qX2dldCooKSB2YXJhcmcgZnVuY3Rpb25zCgkgIEFkZCBhIGJ1bmNoIG9mIHZhcmFyZyBnZXR0ZXIgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGNvbXBsZW1lbnQKCSAgdGhlIHZhcmFyZyBzZXR0ZXIgZnVuY3Rpb25zLCBhbmQgYSBiYXNpYyB1bml0IHRlc3QuIEZpeGVzICM1MzQyMDguCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF92YWxpc3QoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0X3ZhbGlzdCgpCgoyMDA5LTA2LTA5IDAwOjE2OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGEgZmV3IHNtYWxsIEFQSSBkb2MgZml4ZXMgYW5kIGFkZGl0aW9ucwoKMjAwOS0wNi0wOCAxOTozMzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBsb2dnaW5nOiB3aGVuIGxvZ2dpbmcgdGFnbGlzdHMsIHNob3J0ZW4gbG9uZyBidWZmZXIgZHVtcHMKCSAgRG9uJ3QgZHVtcCBodW5kcmVkcyBvZiBrQiBvZiBoZXhkYXRhIGludG8gZGVidWcgbG9ncyB3aGVuIGNvbnZlcnRpbmcKCSAgdGFnbGlzdHMgY29udGFpbmluZyBodWdlIGltYWdlcyBpbnRvIGEgc3RyaW5nLiBJbnN0ZWFkLCBzaG9ydGVuIHRoZQoJICBidWZmZXIgZGF0YSBzbyB0aGF0IHRoZSBzdHJpbmcgaXMgc3RpbGwgcmVhZGFibGUgYW5kIGRlYnVnIGxvZ3MKCSAgc3RheSBtYW5hZ2FibGUuIENhbiBiZSB0dXJuZWQgb2ZmIHdpdGggR1NUX0RFQlVHX09QVElPTlM9ZnVsbC10YWdzLgoJICBTZWUgIzU4NDk4OC4KCjIwMDktMDYtMDkgMTM6MDc6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2hlY2sgYnl0ZSByYW5nZSBldmVuIHdoZW4gd2UgaGF2ZSB0aW1lc3RhbXBzCgkgIEFzIGZvdW5kIGJ5IHRoYXl0YW4gb24gSVJDLgoJICBBbHNvIGNoZWNrIHRoZSBieXRlIGxpbWl0LCBldmVuIGlmIHdlIGhhdmUgdGltZXN0YW1wcyBiZWNhdXNlIHRoZXJlIG1pZ2h0IGp1c3QKCSAgbm90IGJlIGEgdGltZSBsaW1pdC4KCjIwMDktMDYtMDkgMTI6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1cGRhdGUgc2VnbWVudCBzdGFydC9zdG9wIGZvciBjbGlwcGluZwoJICBXaGVuIHdlIHN0YXJ0IHN0ZXBwaW5nLCBzdG9yZSB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIHNlZ21lbnQgYmVmb3JlIHdlCgkgIGluc3RhbGwgbmV3IHN0YXJ0L3N0b3AgdmFsdWVzIGZvciBjbGlwcGluZyBpbiBub24tZmx1c2hpbmcgc3RlcHMuCgkgIGZvciBub24tZmx1c2hpbmcgc3RlcHMsIHVwZGF0ZSB0aGUgZWxlbWVudCBzdGFydCB0aW1lLiBGb3IgZmx1c2hpbmcgc3RlcHMsIGl0CgkgIGRvZXMgbm90IGNoYW5nZSBiZWNhdXNlIHJ1bm5pbmdfdGltZSBkb2VzIG5vdCBhZHZhbmNlCgkgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcGVyZm9ybSB0aGUgc3RvcF9zdGVwcGluZyBvcGVyYXRpb25zIGV2ZW4gd2hlbiB3ZSBkcm9wCgkgIGZyYW1lcy4KCjIwMDktMDYtMDkgMTA6MjU6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkbyBwcm9wZXIgY2xpcHBpbmcgaW4gc3RlcHBpbmcKCSAgVXBkYXRlIHRoZSBzdG9wIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHNvIHRoYXQgd2UgY2xpcCBjb3JyZWN0bHkuCgkgIEFmdGVyIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBtb2RlLCByZXJlbmRlciB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXIuCgoyMDA5LTA2LTA5IDEwOjIzOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogbWFrZSBjb252ZXJzaW9uIG1vcmUgcHJlY2lzZQoJICBNYWtlIHN1cmUgdGhlIGNvbnZlcnNpb24gZnJvbSBhbmQgdGhlIGNvbnZlcnNpb24gdG8gZ2l2ZSB0aGUgc2FtZSByZXN1bHRzLgoKMjAwOS0wNi0wOCAxNTozOTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGdzdF91dGlsX3VpbnQ2NF9zY2FsZSooKSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIFNwcmlua2xlIEdfTElLRUxZL0dfVU5MSUtFTFk7IGFkZCBpbmxpbmVkIF9zY2FsZV9pbnRfdW5jaGVja2VkKCkKCSAgc28gd2UgZG9uJ3QgZG8gc29tZSBjaGVja3MgdHdpY2Ugd2hlbiBjYWxsaW5nIGl0IGZyb20gX3NjYWxlKCkuCgoyMDA5LTA2LTA3IDIyOjQ5OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgUmVtb3ZlIGRvdWJsZSBzZW1pY29sb25zIGF0IGVuZCBvZiBsaW5lCgoyMDA5LTA2LTA4IDE3OjM5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBzdGVwcGluZzogZG8gZmx1c2hpbmcgc3RlcHMgY29ycmVjdGx5CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCBhIGZsdXNoaW5nIHN0ZXAgaW4gUExBWUlORyBicmluZ3MgdGhlIHBpcGVsaW5lIHRvIHRoZSBsb3N0CgkgIHN0YXRlIGFuZCBza2lwcyB0aGUgZGF0YSBiZWZvcmUgcHJlcm9sbGluZyBhZ2Fpbi4KCSAgSW1wbGVtZW50IHRoZSBmbHVzaGluZyBzdGVwIGNvcnJlY3RseSBieSBpbnZhbGlkYXRpbmcgdGhlIGN1cnJlbnQgc3RlcAoJICBvcGVyYXRpb24sIHdoaWNoIHdvdWxkIGFjdGl2YXRlIHRoZSBuZXcgc3RlcCBvcGVyYXRpb24uCgoyMDA5LTA2LTA4IDE2OjE2OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDaGFuZ2UgYXdrd2FyZCB3b3JkaW5nIGluIGEgdHJhbnNsYXRlYWJsZSBtZXNzYWdlLgoKMjAwOS0wNi0wOCAxNjoyNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBub24tZmx1c2hpbmcgc3RlcHMKCSAgQWRkIHN1cHBvcnQgZm9yIG5vbi1mbHVzaGluZyBzdGVwcyBhbmQgd2l0aCBkaWZmZXJlbnQgcmF0ZXMuCgkgIENsZWFyIHN0ZXAgaW5mbyB3aGVuIGZsdXNoaW5nCgoyMDA5LTA2LTA3IDIzOjQ2OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBhbGxvdyBwbHVnaW5zIHRvIGNhY2hlIGV4dHJhIGRhdGEgaW4gcmVnaXN0cnkuIEZpeGVzICM1NzAyMzMKCSAgQWRkIGEgR3N0U3RydWN0dXJlIHRvIEdzdFBsdWdpbi4gUGx1Z2lucyBjYW4gcmV0aWV2ZSBpdCBpbiBwbHVnaW5faW5pdCBhbmQKCSAgYWNjZXNzIHRoZSBjYWNoZWQgaW5mbyBvciBidWlsZCB0aGUgY2FjaGUgYW5kIHN0b3JlIGl0IHRoZXJlLgoKMjAwOS0wNi0wNyAyMjowOToxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBkb24ndCByZWNyZWF0ZSBmZWF0dXJlcyBvbiBmaXJzdCB1c2UuIEZpeGVzICM1ODQzODkKCSAgVGhlIGZpcnN0IHRpbWUgb25lIGNhbGxzIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpLCBnc3QgcmVjcmVhdGVzIHRoZSBwbHVnaW4KCSAgZmVhdHVyZSBhbmQgdGhlIGVsZW1lbnQgZmFjdG9yeS4gQXMgYSBzaWRlIGVmZmVjdCB3ZSByZWYgdGhlIGNsYXNzIHRvIGZpbGwKCSAgaW4gZGV0YWlsIHdlIGFscmVhZHkgaGF2ZSBmaWxsZWQgZnJvbSB0aGUgcmVnaXN0cnkgY2FjaGUuIFRoaXMgcGF0Y2ggY2hhbmdlcwoJICB0aGUgYmVoYXZpb3VyIHRvIGp1c3QgdXBkYXRlIHRoZSBleGlzdGluZyBlbnRyaWVzLiBUaGUgZmFjdG9yeSBpcyBub3cgYXR0YWNoZWQKCSAgdG8gdGhlIHR5cGUgYW5kIHNldCBpbiBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQoKS4KCjIwMDktMDYtMDcgMjI6MjA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogY29uZGl0aW9uYWxseSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUKCSAgRGV0ZWN0IHB0aHJlYWRzLmggaW4gY29uZmlndXJlLmFjCgkgIE9ubHkgY29tcGlsZSB0aGUgc3RyZWFtcyBleGFtcGxlIHdoZW4gcHRocmVhZHMuaCBpcyBwcmVzZW50LgoJICBGaXhlcyAjNTg1MDM5CgoyMDA5LTA2LTA3IDE3OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgdHlwZSBjaGVja3MgYW5kIHJlZHVuZGFudCBjb2RlCgoyMDA5LTA2LTA3IDE1OjQzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggZnJhY3Rpb24gcmFuZ2UgbGNvcHkgZnVuY3Rpb24KCSAgVGhpcyBmdW5jdGlvbiBzZWVtcyB0byBiZSBicm9rZW4gZm9yIDMuNSB5ZWFycy4gTHVja2lseSBub2JvZHkgZXZlciB0cmllZCB0bwoJICBtYWtlIGEgZnJhY3Rpb24gcmFuZ2Ugb2JqZWN0IHByb3BlcnR5Li4uCgoyMDA5LTA2LTA3IDE1OjM1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMKCSAgQWRkIGEgR1R5cGUtPkdzdFZhbHVlVGFibGUgaGFzaHRhYmxlIG1hcHBpbmcuCgkgIEF2b2lkIF9nZXRfdHlwZSgpIG11bHRpcGxlIHRpbWVzIHdoZW4gd2UgY2FuLgoJICBVc2UgR1NsaWNlIGZvciBmcmFjdGlvbiByYW5nZSBkeW5hbWljIG1lbW9yeQoJICBBZGQgR19MSUtFTFkgd2hlbiB3ZSBjYW4KCSAgSW1wcm92ZSBsb29rdXAgb2YgdGhlIHZhbHVlIHRhYmxlIHVzaW5nIHRoZSBoYXNodGFibGUKCjIwMDktMDYtMDcgMTQ6MzA6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbm8gbmVlZCB0byBjbGVhciBvbiBpbml0CgkgIFdlIGRvbid0IG5lZWQgdG8gY2xlYXIgdGhlIGZpZWxkIG9uIGluaXQgYmVjYXVzZSB3ZSB3aWxsIGRvIHRoYXQgYWdhaW4gYmVmb3JlIHdlCgkgIGFyZSBnb2luZyB0byB1c2UgdGhlIGZpZWxkIGxhdGVyLgoKMjAwOS0wNi0wNSAyMDo1NzowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0c3RydWN0dXJlOiBGaXggc29tZSBtZW1vcnkgbGVha3MuIFNwcmlua2xlIEdfTElLRUxZL1VOTElLRUxZCgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBzaG93biBieSB0aGUgbmV3IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIHVuaXQKCSAgdGVzdC4gU3BsaXQgdGhlIGdzdF9zdHJpbmdfd3JhcCBmdW5jdGlvbiBpbiBnc3R2YWx1ZS5jIGludG8gY29tcG9uZW50cyBhbmQKCSAgdXNlIHRoZW0gdG8gbWFrZSBnc3Rfc3RyaW5nX3Rha2VfYW5kX3dyYXAsIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUKCSAgc3RyaW5nLCBhdm9pZGluZyBhIHN0cmR1cC4KCSAgQWRkIHNvbWUgR19MSUtFTFkvVU5MSUtFTFksIGFuZCBjbGVhbiB1cCBzb21lIGxlYWtzIGluIGVycm9yIHBhdGhzLgoKMjAwOS0wNi0wNSAxMTozNzoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVwbHkgdG8gUVVFUllfU0VFS0lORyB3aXRoIG9yaWdpbmFsIGZvcm1hdC4gIEZpeGVzICM1ODQ4MzguCgoyMDA5LTA2LTA0IDE5OjQ0OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgY29uZmlndXJlOiByZW1vdmUgQUNfQ19JTkxJTkUgYW5kIHVwZGF0ZSB3aW4zMiBmaWxlcyB0byBnaXQKCSAgUmVtb3ZlIEFDX0NfSU5MSU5FIGNoZWNrLCBzbyB3ZSBkb24ndCBlbmQgdXAgd2l0aCBhbiAjdW5kZWYgaW5saW5lIGluCgkgIGNvbmZpZy5oLCB3aGljaCBjYXVzZXMgcHJvYmxlbXMgd2l0aCBzb21lIHZlcnNpb25zIG9mIE1TQ1YgYXBwYXJlbnRseS4KCSAgR0xpYiBkZWZpbmVzIGlubGluZSBmb3IgdXMgaW4gYSBzdWl0YWJsZSB3YXkgYWxyZWFkeSBhbnl3YXkuCgkgIEZpeGVzICM1ODQ4MzUuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhbHNvIHVwZGF0ZSB0aGUgb3RoZXIgd2luMzIgZmlsZXMgdG8gZ2l0IChidW1wCgkgIHZlcnNpb24sIGFkZCBuZXcgZGVmaW5lcyBhbmQgZW51bXMpLgoKMjAwOS0wNi0wNCAxODoyNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYXZvaWQgZXhjZXNzaXZlIG5vdGlmeSBmb3IgY2FwcwoJICBBdm9pZCBhbiBvYmplY3QgcHJvcGVydHkgbm90aWZ5IGlmIHRoZSBjYXBzIG9uIHRoZSBvdGhlciBwYWQgd2VyZSBhbHJlYWR5CgkgIHNldCAoYW5kIHRodXMgbm90aWZpZWQpLgoKMjAwOS0wNi0wNCAxNzoyNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBjbGlwcGVkIHN0YXJ0L3N0b3AgYWZ0ZXIgc3RlcAoJICBVc2UgdGhlIHNlZ21lbnQgaGVscGVycyB0byBnZXQgYSBtb3JlIGFjY3VyYXRlIGNsaXBwZWQgc3RhcnQvc3RvcCBwb3NpdGlvbiBhZnRlcgoJICBhIHN0ZXBwaW5nIG9wZXJhdGlvbiBlbmRlZC4KCjIwMDktMDYtMDQgMTI6MzQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbW9yZSBjb3JyZWN0IHNlZ21lbnQgbWV0aG9kcwoJICBVc2UgdGhlIG1vcmUgY29ycmVjdCBuZXcgc2VnbWVudCBtZXRob2RzIGZvciB1cGRhdGluZyB0aGUgc2VnbWVudCBiZWZvcmUgYW5kCgkgIGFmdGVyIGEgc3RlcC4KCjIwMDktMDYtMDQgMTI6NDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUKCSAgQWRkZWQgbmV3IG1ldGhvZCBmb3IgY2xvc2luZyB0aGUgc2VnbWVudCB0byBhIHNwZWNpZmljIHJ1bm5pbmcgdGltZS4KCSAgQVBJOiBHc3RTZWdtZW50Ojpnc3Rfc2VnbWVudF9zZXRfcnVubmluZ190aW1lKCkKCjIwMDktMDYtMDQgMDA6Mzc6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBzdHJpbmcgY2hhbmdlcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBwZW9wbGUgd2hvIGdldCB0aGVtc2VsdmVzIGEgZnJlc2ggY2hlY2tvdXQKCSAgZG9uJ3QgaW1tZWRpYXRlbHkgaGF2ZSBjaGFuZ2VkICpwbyBmaWxlcyBhZnRlciBydW5uaW5nIG1ha2UsIHdoaWNoCgkgIHdvdWxkIGNhdXNlIGEgYml0IG9mIGhhc3NsZSBuZXh0IHRpbWUgdGhlIGZpbGVzIGFyZSB1cGRhdGVkLiBCZXR0ZXIKCSAgdG8ga2VlcCB0aGVtIHVwLXRvLWRhdGUgd2hlbiBzdHJpbmdzIGNoYW5nZS4KCjIwMDktMDYtMDQgMDA6NTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGVycm9yczogcmV3b3JkIHN0YXRlIGNoYW5nZSBmYWlsZWQgZXJyb3IgbWVzc2FnZSBhbmQgcmVtb3ZlIGJ1Z3ppbGxhIGxpbmsKCSAgUmV3b3JkIHRoaXMgbWVzc2FnZSBhIGJpdCB0byBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpdCBtZWFucywgbmFtZWx5IHRoYXQKCSAgdGhlIHN0YXRlIGNoYW5nZSBtYXkgaGF2ZSBmYWlsZWQgZm9yIGdvb2QgcmVhc29ucywgYnV0IHRoYXQgdGhlIGVsZW1lbnQKCSAganVzdCBmYWlsZWQgdG8gcG9zdCBhIHByb3BlciBlcnJvciBvbiB0aGUgYnVzLiBUaGlzIGlzIG5vdCBhbiBpbnRlcm5hbAoJICBHU3RyZWFtZXIgYnVnLCBhbmQgd2UgcmVhbGx5IGRvbid0IG5lZWQgcGVvcGxlIHRvIGZsb29kIGJ1Z3ppbGxhIHdpdGgKCSAgYnVnIHJlcG9ydHMgaWYgb25lIHN1Y2ggcGx1Z2luIGJ1ZyBldmVyIG1ha2VzIGl0IGludG8gdGhlIHdpbGQuCgoyMDA5LTA2LTA0IDAwOjI5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVmZXIgdG8gZWxlbWVudCwgcGFkLCBvciBvYmplY3QgaW4gc29tZSBtZXNzYWdlIHN0cmluZ3MKCSAgUmV2aXNpdCB0aGVzZSBzdHJpbmdzIG5vdyB0aGF0IHRoZSBjaGFuZ2UgcmVnYXJkaW5nIHRoZSBtZXNzYWdlIHNvdXJjZQoJICBvYmplY3QgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKCkgZ290IHJldmVydGVkLiBUcnkgdG8gcmVmZXIKCSAgZXhwbGljaXRseSB0byB3aGF0IGtpbmQgb2YgZWxlbWVudCBpdCBpcyAoZWxlbWVudCwgcGFkLCBldGMuKSBpbiBzb21lCgkgIGNhc2VzLCB3aGljaCBpcyBuaWNlciB0aGFuIGhhdmluZyB0byBkZWR1Y2UgdGhpcyBpbmZvIChhbmQgd2UgY2FuCgkgIHJlLXVzZSB0aGUgYWxyZWFkeSBleGlzdGluZyB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHRoZSBtb3N0IGNvbW1vbgoJICBjYXNlKS4gSXQgYWxzbyBtYWtlcyBmb3IgYmV0dGVyIGV4YW1wbGUgY29kZSwgc2luY2UgaXQncyBjbGVhciBub3cKCSAgdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Ugb2JqZWN0IGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBlbGVtZW50LgoKMjAwOS0wNi0wMyAyMToxMDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBUEk6IGFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybwoJICBBZGQgR1NUX01FU1NBR0VfU1JDX05BTUUgbWFjcm8gdGhhdCBhbHdheXMgcmV0dXJucyBhIG5vbi1OVUxMIHN0cmluZy4KCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIGxvZ2dpbmcgcHVycG9zZXMuCgoyMDA5LTA2LTAzIDE5OjA2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgdG8gcG9zaXRpb24KCSAgQWRkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkgdGhhdCBjb252ZXJ0cyBhIHJ1bm5pbmdfdGltZSB0byBhIHBvc2l0aW9uIGluIHRoZQoJICBzZWdtZW50LiBBIGZhdWx0eSB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gaXMgY3VycmVudGx5IHVzZWQgaW4gaW5wdXRzZWxlY3RvcgoJICBidXQgd2UnbGwgbmVlZCBpdCBmb3IgZnJhbWUgc3RlcHBpbmcgdG9vLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkKCjIwMDktMDYtMDMgMTU6Mzk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOyBoYW5kbGUgRU9TIGNvcnJlY3RseS4KCSAgSGFuZGxlIEVPUyBhbmQgYnVmZmVycyB3aXRob3V0IGEgdGltZXN0YW1wIGdyYWNlZnVsbHkuCgkgIFJlbW92ZSBhIHdhcm5pbmcgdGhhdCBpcyBub3Qgc28gbXVjaCBhIHdhcm5pbmcgbm93IGFueW1vcmUuCgoyMDA5LTA2LTAzIDA5OjQ1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgImdvIGJhY2sgdG8gYWxsb3dpbmcgZ2V0dGV4dCAwLjExLjUsIGJ1dCBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMWMwOWQ3MzhjZTdmNDdiZmY5ZDI5Mjk5NmU5NDg5YzI3NWU1NWExLgoJICBSZXZlcnRpbmcgdGhpcywgc2luY2UgaXQgYnJlYWtzIGF1dG9nZW4uc2ggZm9yIG1lIG9uIGRlYmlhbiBzaWQuCgkgIEZhaWx1cmUgaXM6ICJsaWJ0b29sIDIuMiByZXF1aXJlcyBhdXRvcG9pbnQgMC4xNyBvciBoaWdoZXIiIGV2ZW4gdGhvdWdoCgkgIDAuMTcgd2FzIGZvdW5kLgoKMjAwOS0wNi0wMyAwOTo0MToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBSZXZlcnQgIm9ubHkgdXBkYXRlIHN1Ym1vZHVsZSB3aGVuIGl0IGlzIG5vdCBvbiBhIHNwZWNpZmljIGJyYW5jaCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5M2I4MzMzM2FhZDUxOWM1NTU1MTU2NTc2ZjBiYWEzYmU3YjI2M2YzLgoJICBSZXZlcnRpbmcgc2luY2UgdGhpcyBmYWlscyBvbiBhIGZyZXNoIGNoZWNrb3V0LiBBbHNvLCB3ZSBzaG91bGRuJ3QKCSAgZGVwZW5kIG9uIHBvc3NpYmx5IHRyYW5zbGF0ZWQgc3RyaW5ncy4KCjIwMDktMDYtMDMgMDE6NTY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBmaXggdXAgcmVmZXJlbmNlIHRvIGdzdC1sYXVuY2gtMC44CgkgIEFsc28gbWVudGlvbiBkZWNvZGViaW4yLCB1cmlkZWNvZGViaW4sIGFuZCBwbGF5YmluMgoKMjAwOS0wNi0wMyAxMDozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZvcmdldCBwcmV2aW91cyB0aW1lcyB3aGVuIHN0ZXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgYSBmbHVzaGluZyBzdGVwIG9wZXJhdGlvbiwgZm9yZ2V0IGFib3V0IHRoZSBwcmV2aW91cyBzdHJlYW0gdGltZQoJICBzbyB0aGF0IHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgd29ya3MgY29ycmVjdGx5LgoKMjAwOS0wNi0wMyAwMToyNToyNiArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yCgoyMDA5LTA2LTAzIDAxOjAxOjU3ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgb25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoCgoyMDA5LTA2LTAyIDEzOjQ1OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IFNldCBwaXBlbGluZSB0byBQQVVTRUQgYmVmb3JlIHdhaXRpbmcgZm9yIG1haW4gbG9vcCBpZGxlCgkgIFdoZW4gaXQgaXMgc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lIGFmdGVyIGN0cmwtYywgc2V0IHBpcGVsaW5lIHRvCgkgIHBhdXNlZCBiZWZvcmUgd2FpdGluZyBmb3IgdGhlIG1haW4gbG9vcCB0byBjb21wbGV0ZSBhbGwgcGVuZGluZwoJICB0cmFuc2FjdGlvbnMuICBGaXhlcyAjNTg0NjU3LgoJICBJZiBzb21lIHBhcnQgb2YgdGhlIHBpcGVsaW5lIGlzIGdlbmVyYXRpbmcgc2lnbmFscyBvciBpZGxlIGZ1bmN0aW9ucwoJICBhdCBhIGZhc3QgcmF0ZSwgd2FpdGluZyBmb3IgYSBtYWluIGxvb3AgaXRlcmF0aW9uIG1heSBuZXZlciByZXR1cm4uCgoyMDA5LTA2LTAyIDE4OjM2OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBzZXJpYWxpc2F0aW9uIG9mIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBVc2Ugc3RyaW5nX3dhcnAvdW53cmFwIHRvIGVzY2FwZSBkZWxpbWl0ZXJzLCBvdGhlcndpc2UgZGVzZXJpYWxpc2F0aW9uIGZhaWxzLgoJICBBbHNvIG1vdmUgR1NUX0FTQ0lJX0lTX1NUUklORyB0byBwcml2YXRlIGhlYWRlciB0byBhdm9pZCBrZWVwaW5nIGl0IGluIHN5bmMuCgkgIEFsc28gdXNlICdcMCcgd2hlbiB0ZXJtaW5hdGluZyBhIHN0cmluZyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAwOS0wNi0wMiAxNTozNzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCByZWdyZXNzaW9uIGluIHVuaXQgdGVzdHMKCSAgU3RvcmUgdGhlIHRpbWVzdGFtcCBvZiB0aGUgYnVmZmVyIGFmdGVyIHByZXJvbGxpbmcuIFdoaWxlIHdlIGFyZSBwcmVyb2xsZWQgd2UKCSAgd2FudCB0byByZXBvcnQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHN0YXJ0IHZhbHVlLgoKMjAwOS0wNi0wMSAyMDoyNjo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB3aWRlbiBsb2cgbGV2ZWwgc3RyaW5ncyB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgbmV3IE1FTURVTVAKCjIwMDktMDYtMDEgMTk6Mzc6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IGEgd2FybmluZyBvbiBleGNlc3NpdmUgZnJhbWVkcm9wcwoJICBXaGVuIHdlIGdvIGludG8gZW1lcmdlbmN5IHJlbmRlcmluZywgcG9zdCBhIHdhcm5pbmcgaW5mb3JtaW5nIHRoZSB1c2VyIGFib3V0CgkgIHRoaXMgZmFjdC4KCjIwMDktMDUtMzEgMTk6MTA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UKCSAgRml4IHN0ZXBwaW5nIGFuZCBwb3NpdGlvbiByZXBvcnRpbmcgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDktMDUtMjkgMTY6MDY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2Ugc3RhcnRfdGltZSBhcyB0aGUgc3RlcCBzdGFydAoJICBVc2UgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGVsZW1lbnQgYXMgdGhlIHBvaW50IGZyb20gd2hlcmUgdGhlIHN0ZXAgb3BlcmF0aW9uCgkgIHN0YXJ0cy4gVGhpcyBmaXhlcyBzdGVwcGluZyBpbiBhbGwgcGF1c2VkIHN0YXRlcy4KCjIwMDktMDUtMTkgMTk6NDU6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjYXRjaCBzdGVwIGNhc2VzIGluIF93YWl0X3ByZXJvbGwoKQoJICBXaGVuIGEgc3ViY2xhc3MgaXMgYmxvY2tpbmcgaW4gX3dhaXRfcHJlcm9sbCgpIGluIHRoZSBfcmVuZGVyIG1ldGhvZCwgbWFrZSBzdXJlCgkgIHdlIGNhbiB1bmxvY2sgdGhlIHN1YmNsYXNzIGFuZCBkZXRlY3QgdGhpcyByZXR1cm4gdmFsdWUgZnJvbSB0aGUgcmVuZGVyIG1ldGhvZC4KCjIwMDktMDUtMTkgMTA6NTA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UgZml4ZXMKCjIwMDktMDUtMTggMTg6NDE6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xOCAxNTo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBmcmFtZXN0ZXA6IGltcGxlbWVudCBiYWNrd2FyZHMgZnJhbWVzdGVwCgkgIFVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQsIHdlIHdhbnQgdG8gcGFzcyB0aGUgZmx1c2ggZmxhZyBpbiB0aGUgc3RlcC1kb25lCgkgIG1lc3NhZ2UuCgkgIEFkZCBmbHVzaCBmbGFnIHRvIHRoZSBnc3RtZXNzYWdlLgoJICBVcGRhdGUgZXhhbXBsZXMgdG8gdXNlIHRoZSBuZXcgc3RlcC1kb25lIG1lc3NhZ2UgYXBpLgoJICBJbXBsZW1lbnQgZnJhbWVzdGVwIHdpdGggcGxheWJhY2sgcmF0ZXMgPCAwLjAgdG9vLgoKMjAwOS0wNS0xNSAxNToyNTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBmcmFtZXN0ZXBwaW5nIGluIHRpbWUKCjIwMDktMDUtMTUgMTU6MjQ6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGVzOiBzdGVwIGluIHRpbWUgYXMgd2VsbAoKMjAwOS0wNS0xNSAxMjowMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZTogcHJpbnQgc3RlcF9kb25lIG1lc3NhZ2UgYW5kIHN5bmMKCSAgRHVtcCB0aGUgc3RlcF9kb25lIG1lc3NhZ2UgY29udGVudHMuCgkgIFN5bmMgYWdhaW5zdCB0aGUgY2xvY2sgd2hlbiBnb2luZyB0byBQTEFZSU5HLgoKMjAwOS0wNS0xNSAxMjowNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGtlZXAgdHJhY2sgb2Ygc3RlcHBlZCB0aW1lCgkgIFBhc3MgcnVubmluZ190aW1lIGFyb3VuZCBzbyB0aGF0IHRoZSBzdGVwcGluZyBjb2RlIGNhbiBjYWxjdWxhdGUgdGhlIGVsYXBzZWQKCSAgdGltZSBjb3JyZWN0bHkuCgoyMDA5LTA1LTE0IDE5OjI5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBzdHVmZiBhcm91bmQsIG1vcmUgc3RlcHBpbmcKCSAgTWFrZSBzdGFydCBhbmQgc3RvcF9zdGVwcGluZyBtZXRob2RzIGFuZCBtb3ZlIHRoZWlyIGludm9jYXRpb24gaW4gdGhlIHJpZ2h0CgkgIHBsYWNlcy4KCSAgUGVyZm9ybSB0aGUgYXR1YWwgc3RlcHBpbmcgb3BlcmF0aW9uIHdoZXJlIHdlIGhhdmUgZnVsbCBjb250ZXh0IGFib3V0IHRoZQoJICB0aW1lc3RhbXBzLgoKMjAwOS0wNS0xMSAxODo1NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIEFkZCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQgZXhhbXBsZQoKMjAwOS0wNS0xMSAxODo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpcnN0IHN0YWIgYXQgZnJhbWUgc3RlcHBpbmcgaW4gUEFVU0VECgkgIFVubG9jayB0aGUgcHJlcm9sbGVkIGZyYW1lIGFuZCByZWNoZWNrIGlmIHdlIG5lZWQgdG8gc3RlcC4KCSAgS2VlcCBhIHNpbXBsZSBjb3VudGVyIGZvciB0aGUgZnJhbWVzIHdlJ3JlIGFib3V0IHRvIHNraXAgd2hpbGUgc3RlcHBpbmcgYW5kCgkgIHByZXJvbGwvcG9zdCBzdGVwX2RvbmUgd2hlbiBzdGVwcGluZyBmaW5pc2hlZC4KCjIwMDktMDYtMDEgMTI6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBuZXcgQVBJIGZvciBmcmFtZXN0ZXBwaW5nCgkgIEFkZCBuZXcgU1RFUCBldmVudCBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcvcGFyc2luZyB0aGUgZXZlbnQKCSAgVXBkYXRlIGRlc2lnbiBkb2NzLgoJICBBZGQgbmV3IFNURVBfRE9ORSBtZXNzYWdlIGFuZCBtZXRob2QgdG8gY3JlYXRlL3BhcnNlLgoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfbmV3X3N0ZXAoKQoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfcGFyc2Vfc3RlcCgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfbmV3X3N0ZXBfZG9uZSgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfcGFyc2Vfc3RlcF9kb25lKCkKCjIwMDktMDYtMDEgMTA6MDU6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmVzOiBkb24ndCBsZWFrIGludmFsaWQgb3IgZW1wdHkgc3RyaW5ncyB3aGVuIHdlIHdhcm4KCSAgRml4ZXMgbWlub3IgbWVtb3J5IGxlYWsgaW4gdW5pdCB0ZXN0cyBjYXVzZWQgYnkgdGhlIHJlY2VudCBjaGFuZ2VzLgoJICBTaW5jZSB3ZSdyZSBleHBlY3RlZCB0byB0YWtlIG93bmVyc2hpcCBvZiB0aGUgR1ZhbHVlIGluIHRoZSBzdHJ1Y3R1cmUKCSAgZmllbGQgc3RydWN0IGhlcmUsIHdlIG5lZWQgdG8gdW5zZXQgaXQgaWYgd2UgZG9uJ3QgdXNlIGl0LgoKMjAwOS0wNi0wMSAxMTowODozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCB0ZXN0IGZvciBjdWJpYyBpbnQuIGFuZCB0b28gZmV3IGNvbnRyb2wgcG9pbnRzCgkgIEFkZGVkIGFub3RoZXIgdGVzdHMgdG8gY2hlY2sgc29tZSB3b3JyaWVzIGluIEJ1ZyAjNTgyNTY0LgoKMjAwOS0wNS0yOCAxMjozMTowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGFkZCBhIEZJWE1FIGNvbW1lbnQgZm9yIGJsb2Nrc2l6ZSB2cy4gc2l6ZS1tYXggcHJvcGVydHkgaXNzdWUKCjIwMDktMDUtMzEgMjE6Mjc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBoYWNrIGFyb3VuZCBnX29iamVjdF9ub3RpZnkoKSBidWcgYnkgcHJvdGVjdGluZyBpdCB3aXRoIGEgbG9jawoJICBPdXQtb2YtYmFuZCBldmVudHMgbWlnaHQgbGVhZCB0byB1cyBjYWxsaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZyb20gYQoJICBub24tc3RyZWFtaW5nIHRocmVhZCwgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMgaWYgZ19vYmplY3Rfbm90aWZ5KCkgaXMKCSAgYmVpbmcgY2FsbGVkIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgYXQgdGhlIHNhbWUgdGltZS4gU2VlICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDIyOjM3OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIHJlYWwgd29ybGQgbnVtYmVyIGluIGJlbmNobWFyawoKMjAwOS0wNS0zMSAyMjozNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tbWVudCBmb3JtYXR0aW5nCgoyMDA5LTA1LTMwIDIwOjM2OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGhhY2sgYXJvdW5kIGNyYXNoZXIgYnVnIGluIGdfb2JqZWN0X25vdGlmeSgpIGZvciBvdXQtb2YtYmFuZCBldmVudHMKCSAgR09iamVjdCBtYXkgY3Jhc2ggaWYgdHdvIHRocmVhZHMgZG8gY29uY3VycmVudCBnX29iamVjdF9ub3RpZnkoKSBvbiB0aGUgc2FtZQoJICBvYmplY3QuIFRoaXMgbWF5IGhhcHBlbiBpZiBmYWtlc2luayByZWNlaXZlcyBhbiBvdXQtb2YtYmFuZCBldmVudCBzdWNoIGFzCgkgIEZMVVNIX1NUQVJUIHdoaWxlIHByb2Nlc3NpbmcgYSBidWZmZXIgb3Igc2VyaWFsaXNlZCBldmVudCBpbiB0aGUgc3RyZWFtaW5nCgkgIHRocmVhZC4gU2luY2UgdGhpcyBtYXkgaGFwcGVuIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MgZHVyaW5nIGEgY29tbW9uCgkgIG9wZXJhdGlvbiBsaWtlIGEgc2VlaywgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIGxpdHRsZSBjaGFuY2Ugb2YgYSB0aW1lbHkgZml4CgkgIGluIEdPYmplY3QgKHNlZSAjMTY2MDIwKSwgd2Ugc2hvdWxkIGhhY2sgYXJvdW5kIHRoaXMgaXNzdWUgYnkgcHJvdGVjdGluZyBhbGwKCSAgb2YgZmFrZXNpbmsncyBkaXJlY3QgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMgd2l0aCBhIGxvY2suCgkgIEFsc28gYWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoJICBGaXhlcyAjNTU0NDYwLgoKMjAwOS0wNS0zMSAxNjoxNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0czogbWFrZSBfZ2V0X3tzdHJpbmd8cG9pbnRlcn0gcmV0dXJuIEZBTFNFIGZvciBOVUxMIHZhbHVlcwoJICBNYWtlIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKCkgcmV0dXJuIEZBTFNFIGZvciBOVUxMIHN0cmluZ3MgYW5kCgkgIGVtcHR5IHN0cmluZ3MsIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X3BvaW50ZXIoKSByZXR1cm4gRkFMU0UgZm9yCgkgIE5VTEwgcG9pbnRlcnMsIGxpa2Ugd2UgZG8gd2l0aCBkYXRlcyBhbmQgYnVmZmVycy4KCSAgRml4ZXMgIzU2MDM0NS4KCjIwMDktMDUtMzAgMjA6NTA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnbGlzdHM6IHdhcm4gaWYgc29tZW9uZSB0cmllcyB0byBhZGQgZW1wdHkgb3IgTlVMTCBzdHJpbmcgdGFncyB0byBhIHRhZ2xpc3QKCSAgQWxzbyB3YXJuIGlmIGFuIGVsZW1lbnQgb3IgYXBwbGljYXRpb24gdHJpZXMgdG8gYWRkIGEgZmllbGQgd2l0aCBhbgoJICBlbXB0eSBzdHJpbmcgdG8gYSBzdHJ1Y3R1cmUgKE5VTEwgc3RyaW5ncyBhcmUgc3RpbGwgbmVlZGVkIGFuZAoJICBhbGxvd2VkIHRob3VnaCkgYW5kIGRvIGFsbCB0aG9zZSBjaGVja3MgaW4gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU5NjQzLgoKMjAwOS0wNS0yOSAxODoyMjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSBjb252ZW5pZW5jZSBmdW5jdGlvbgoJICBBZGQgY29udmVuaWVuY2Ugd3JhcHBlciBmb3IgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSBwbHVzCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfc2V0KCkgYW5kIHVzZSBpdCBpbiBhIGZldyBwbGFjZXMuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKQoKMjAwOS0wNS0yOSAxODowMDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWljcm8tb3B0aW1pc2F0aW9uOiB1c2UgR1NUX1FVQVJLIGluIG1vcmUgcGxhY2VzCgkgIFVzZSBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIGluIGNvbWJpbmF0aW9uIHdpdGggR1NUX1FVQVJLCgkgIHJhdGhlciB0aGFuIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgd2hlbiBjcmVhdGluZyBtZXNzYWdlLCBldmVudCwKCSAgcXVlcnkgYW5kIHRhZ2xpc3Qgc3RydWN0dXJlcy4gTW9zdGx5IGp1c3QgYmVjYXVzZSB3ZSBjYW4uCgoyMDA5LTA1LTI5IDE2OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVzZXQgc3RhcnRfdGltZSBpbiBsb3N0IHN0YXRlCgoyMDA5LTA1LTI5IDEzOjAzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBlbGVtZW50IGFuIHBpcGVsaW5lIGRvY3MKCjIwMDktMDUtMjkgMTI6NDg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBkb2NzOiByZW1vdmUgYSBUT0RPIGl0ZW0gdGhhdCBpcyBmaXhlZCBub3cKCjIwMDktMDUtMjkgMTI6MjE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZGVwcmVjYXRlIG9sZCBtZXRob2RzLCBmaXggdGVzdAoJICBEZXByZWNhdGUgdGhlIG9sZCBfc2V0X3N0cmVhbV90aW1lIGFuZCBfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUgbWV0aG9kcyBiZWNhdXNlCgkgIHRoZXkgYXJlIG5vdyBlcXVpdmFsZW50IHRvIHRoZSBiZXR0ZXIgbmFtZWQgX3NldC9fZ2V0X3N0YXJ0X3RpbWUuCgoyMDA5LTA1LTI4IDE2OjMwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBwaXBlbGluZTogdXNlIFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aW1lCgkgIFVzZSB0aGUgZWxlbWVudCBTVEFSVF9USU1FIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bm5pbmcgdGltZSB3aGVuIHRoZSBwaXBlbGluZQoJICBwYXVzZWQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBiYXNlX3RpbWUuCgkgIFRha2UgdGhlIHN0YXJ0X3RpbWUgYmVmb3JlIHNldHRpbmcgdGhlIGNoaWxkcmVuIHRvIFBBVVNFRCBzbyB0aGF0IHdlIGNhbgoJICBkaXN0cmlidXRlIHRoZSBzdGFydF90aW1lIHRvIHRoZSBjaGlsZHJlbi4KCjIwMDktMDUtMjggMTU6NDA6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogc2V0IHRoZSBiYXNlX3RpbWUgYW5kIHN0YXJ0X3RpbWUgYmV0dGVyCgkgIFNpbXBseSBzZXQgdGhlIHN0YXJ0X3RpbWUgYW5kIGJhc2VfdGltZSBvbiB0aGUgZWxlbWVudCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlCgkgIHNldHRlcnMuCgoyMDA5LTA1LTI3IDExOjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgdGhlIGJpbiBzZXQgdGhlIHN0YXJ0X3RpbWUgb24gZWxlbWVudHMKCSAgU2V0IHRoZSBzdGFydF90aW1lIG9mIHRoZSBiaW4gb24gdGhlIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gdGhlCgkgIHBpcGVsaW5lIGFuZCB3aGVuIGEgc3RhdGUgY2hhbmdlIGhhcHBlbnMuCgoyMDA5LTA1LTI2IDExOjUzOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBzdGFydF90aW1lIGZpZWxkIGFuIG1ldGhvZHMKCSAgQWRkIGEgc3RhcnRfdGltZSBmaWVsZCBhbmQgc29tZSBtZXRob2RzLiBUaGUgc3RhcnRfdGltZSB3aWxsIGNvbnRhaW4gdGhlCgkgIHJ1bm5pbmdfdGltZSBvZiB3aGVuIHRoZSBlbGVtZW50IGxhc3Qgd2VudCB0byBwYXVzZWQuIFRoaXMgdGltZSBjYW4gYmUgdXNlciB0bwoJICByZXBvcnQgdGhlIHBvc2l0aW9uIGluIFBBVVNFRCBidXQgYWxzbyB0byBkbyBtb3JlIGNvcnJlY3QgY2xpcHBpbmcgYW5kCgkgIHN0ZXBwaW5nIGxhdGVyLgoKMjAwOS0wNS0yOCAyMjowMjoyMSArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggX21hc2tlZF9zY2FuX3VpbnQzMigpIGF0IGJvdW5kYXJpZXMKCSAgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyIGNvdWxkIHJldHVybiB2YWx1ZXMgc21hbGxlciB0aGFuIG9mZnNldAoJICBpZiB0aGUgZmlyc3QgYnl0ZShzKSBvZiB0aGUgbWFzayBhcmUgMCBhbmQgdGhlIHBhdHRlcm4gbWF0Y2hlcyB0aGUKCSAgYmVnaW5uaW5nIG9mIHRoZSBhZGFwdGVyLgoJICBBZGRlZCBleGFtcGxlcyB0byBkb2N1bWVudGF0aW9uIG9mIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpLgoJICBBbHNvIGFkZGVkIHNvbWUgbW9yZSBtYXNrZWQgYm91bmRhcnkgdGVzdHMuCgkgIEZpeGVzICM1ODQxMTgKCjIwMDktMDUtMjggMTY6MzY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcGFkIHByaXZhdGUgc3RydWN0dXJlCgkgIEFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUgYW5kIG1vdmUgdGhlIG5ldyBjaGFpbmxpc3RmdW5jIGludG8gdGhlIHByaXZhdGUKCSAgc3RydWN0LiBUaGlzIGF2b2lkcyBBQkkgYnJlYWthZ2UgYW5kIGFsbG93cyB1cyB0byBleHBhbmQgaW4gdGhlIGZ1dHVyZS4KCjIwMDktMDUtMjcgMTY6MzQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWlzc2luZyBzeW1ib2wgdG8gdGhlIHdpbjMyIGV4cG9ydHMKCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIGJ5IG15IGxhc3QgY29tbWl0LgoKMjAwOS0wNS0yNyAxNjoxNzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCBtZW1vcnkgbGVha3MKCSAgQXZvaWQgbGVha2luZyB0aGUgY2FwcyBvZiB0aGUgZGVzdCBidWZmZXIgYW5kIGF2b2lkIGRvaW5nIG5lZWRsZXNzIGNhcHMKCSAgcmVmcy4KCSAgV2hlbiB0aGUgc291cmNlIGFuZCB0YXJnZXQgYnVmZmVycyBhcmUgdGhlIHNhbWUsIHJldHVybiBpbW1lZGlhdGx5LgoKMjAwOS0wNS0yNyAxNDozMjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X21lc3NhZ2Vfe25ldyxwYXJzZX1fdGFnX2Z1bGwoKSB0byBnZXQvc2V0IHRoZSBzb3VyY2UgcGFkCgkgIEZpeGVzIGJ1ZyAjNTgyNTg4LgoKMjAwOS0wNS0yNyAxNDowNjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmViZmRlNzUwMjdlOTc1YjdlN2M3NGM2MzU4YzViZTgzZWE0YWM5Zi4KCSAgVGhpcyBjaGFuZ2Ugc2hvdWxkbid0IGJlIGRvbmUgaW4gYSBzdGFibGUgcmVsZWFzZSBzZXJpZXMgYXMKCSAgYXBwbGljYXRpb25zIGFyZSBhY3R1YWxseSBleHBlY3RpbmcgdGhlIHNlbmRlciB0byBiZSBhbgoJICBHc3RFbGVtZW50LiBPbmUgZXhhbXBsZSBpcyB0b3RlbS4KCjIwMDktMDUtMjYgMTE6MzU6NDkgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA1LTI2IDEwOjQxOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBGaXggJ21ha2UgZGlzdGNoZWNrJwoJICBUaGUgY2hlY2stZW51bS1nZXR0eXBlcyBydWxlIGRpZG4ndCB3b3JrIGZvciAnbWFrZSBkaXN0Y2hlY2snIHNpbmNlCgkgIGl0IG1ha2VzIGFzc3VtcHRpb25zIGFib3V0IHRoZSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGZpbGVzIGZyb20gdGhlCgkgIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hpY2ggaXNuJ3QgdHJ1ZSBkdXJpbmcgZGlzdGNoZWNraW5nLgoKMjAwOS0wNS0yNiAxMDozODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBtYW51YWxzLm1hazogYXR0ZW1wdCB0byBtYWtlICdtYWtlIGRpc3RjaGVjaycgd29yayB3aXRoIC1qTgoJICBBdHRlbXB0IHRvIGZpeCB0aGUgJ2Nhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlIGJ1aWxkL2ltYWdlLmVudGl0aXRlczoKCSAgZmlsZSBleGlzdHMnIGVycm9yIEkgZ290LgoKMjAwOS0wNS0yNSAyMzo1ODozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZpeCBjZHBhcmFub2lhIGV4YW1wbGUgcGlwZWxpbmUgaW4gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAwOS0wNS0yNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgoyMDA5LTA1LTI1IDE3OjQzOjMyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBGaXggdGhlIG5hbWUgb2YgdGhlIGhlYWRlciB0byBkaXN0OiB0ZXN0cnRwb29sLmgsIG5vdCBydHBvb2wtdGVzdC5oCgoyMDA5LTA1LTI1IDE3OjAzOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjUgMTY6NTQ6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBhc3NlcnRpb24KCSAgUmVtb3ZlIGFuIGFzc2VydGlvbiwgdGhpcyBpcyBub3QgcmVhbGx5IGFuIGVycm9yIGluIGFsbCBjYXNlcy4KCSAgRml4ZXMgIzU4MjAxMAoKMjAwOS0wNS0yNSAxNjoyMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZW5hYmxlIG1vbm90b25pYyBjbG9jayB3aGVuIHdlIGNhbgoJICBFbmFibGUgdGhlIG1vbm90b25pYyBjbG9jayBieSBkZWZhdWx0IHdoZW4gd2UgY2FuLgoJICBGaXhlcyAjNTgzNTU0CgoyMDA5LTA1LTI1IDE0OjUyOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBkb2NzOiBhZGQgSW1hZ2UgdG8gZHJhZnQga2xhc3MgZG9jdW1lbnRhdGlvbgoKMjAwOS0wNS0yNSAxMzowMzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBrZWVwIHRhc2sgcmVmIGJlZm9yZSByZWxlYXNpbmcgdGhlIGxvY2sKCSAgS2VlcCBhIHJlZiB0byB0aGUgdGFzayBvbiB0aGUgcGFkIHNvIHRoYXQgYSBjb25jdXJyZW50IHN0b3AgY2FuIHN0b3AgYW5kIGpvaW4KCSAgdGhlIHRhc2suCgoyMDA5LTA1LTI1IDExOjU2OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0dGFzazogYXZvaWQgam9pbiB0byByZXR1cm4gZWFybHkKCSAgVW5zZXQgdGhlIHJ1bm5pbmcgZmxhZyBhZnRlciB3ZSByZWxlYXNlZCB0aGUgbG9jayBmb3IgcG9zdGluZyB0aGUgc3RyZWFtLXN0YXR1cwoJICBtZXNzYWdlLiBJZiB3ZSBzZXQgdGhlIHJ1bm5pbmcgZmxhZyB0byBGQUxTRSB0b28gZWFybHksIHRoZSBqb2luIG1ldGhvZCB3aWxsCgkgIGp1c3QgY29udGludWUgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgbWVzc2FnZSB0byBiZSBwb3N0ZWQsIGxlYWRpbmcgdG8gcG90ZW50aWFsCgkgIGNyYXNoZXMuCgoyMDA5LTA1LTI0IDIzOjE0OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IHVwZGF0ZSBydWxlCgkgIE9ubHkgdXBkYXRlIHRoZSBwcmVzZXQgZnJvbSBzeXN0ZW0sIGlmIHdlIGhhZCBhIHByZXNldCBiZWZvcmUgYW5kIHN5c3RlbQoJICB2ZXJzaW9uIGlzIG5ld2VyLgoKMjAwOS0wNS0yMiAyMzo0NzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgYmVuY2htYXJrIHRvIHZlcmlmeSB0aGUgc3dpdGNoIHRvIGdzZXF1ZW5jZQoKMjAwOS0wNS0yMiAyMzo1MDo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIGVycm9yIGhhbmRsaW5nIHRvIGV4YW1wbGUKCjIwMDktMDUtMjIgMjM6MTQ6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuIChzb3JyeSBmb3IgY29tbWl0dGluZyB3cm9uZyBmaXggYmVmb3JlKS4KCjIwMDktMDUtMjIgMjM6MTA6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuCgoyMDA5LTA1LTIyIDE0OjE3OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgR19MSUtFTFkgYW5kIGpvaW4gdHdvIGlmIGZvciBzYW1lIGNvbmRpdGlvbgoJICBBIEdfTElLRUxZIGZvciB0aGUgc2VxdWVuY2UhPU5VTEwgY2hlY2tzLiBKb2luIHR3byBpZnMgdG8gYW4gaWYtZWxzZS4gQWRkCgkgIGluZGVudCBndWlkZXMgdG8ga2VlcCBpbmRlbnQgZm9ybSBicmVha2luZyB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24KCjIwMDktMDUtMjIgMTI6NTc6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGdzdHR5cGVmaW5kaGVscGVyOiBGaXggaW5kZW50YXRpb24KCjIwMDktMDUtMjIgMTI6MjQ6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyB3YXJuaW5ncwoJICBNb3ZlIE1UIHNhZmV0eSB0byBtYWluIGRlc2NyaXB0aW9uIChpdCBkb2VzIG5vdCBiZWxvbmcgdG8gUmV0dXJuOiBvciBTaW5jZToKCSAgc3RhdGVtZW50KS4gQWRkIGEgZmV3IG1pc3NpbmcgcmV0dXJuIGRvY3MuIERvd25ncmFkZSBhIG5vcm1hbCBjb21tZW50IGZyb21hIGRvYwoJICBjb21tZW50LiBGaXggYSBkb2MgaGVhZGVyIHRvIG9ubHkgY29udGFpbiBzeW1ib2wgbmFtZS4KCjIwMDktMDUtMjIgMTA6MTk6MzYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDNhOGZhYiB0byA4ODhlMGEyCgoyMDA5LTA1LTIyIDA5OjUxOjQ0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBBZGQgcnRwb29sLXRlc3QuaCB0byB0aGUgc291cmNlcyBsaXN0IHNvIGl0IGdldHMgZGlzdGVkLgoJICBGaXhlcyB0aGUgZGlzdGNoZWNrCgoyMDA5LTA1LTIyIDA5OjQ0OjI1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgY2xvY2tzdHJlc3MgYmVuY2htYXJrIGJpbmFyeQoKMjAwOS0wNS0yMiAwOTo0MTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IFNpbGVuY2UgYSB3YXJuaW5nIGZyb20gdGhlIEdTZXF1ZW5jZSBiZWluZyBOVUxMLgoJICBGaXggYSB3YXJuaW5nIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHNlbGYtPnByaXYtPnZhbHVlcyBpcyBOVUxMIGFuZAoJICB0aGUgY29kZSB0cmllcyB0byByZXRyaWV2ZSBhbiBpdGVyYXRvciBmcm9tIGl0LiBUaGUgd2FybmluZyB3YXMgc2hvd2luZwoJICB1cCBpbiB0aGUgY2hlY2tzIGZvciB0aGUgdm9sdW1lIGVsZW1lbnQuCgoyMDA5LTA1LTIyIDA5OjMzOjAyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBGaXggdXAgc29tZSBkb2N1bWVudGF0aW9uIHdhcm5pbmdzLgoJICBTaW5jZTogdGFncyBzaG91bGQgYWx3YXlzIGJlIHRoZSBsYXN0IHRoaW5nIGluIGEgZG9jIGJsb2NrLCBhcHBhcmVudGx5LgoJICBBZGQgc29tZSBSZXR1cm5zOiBkZXNjcmlwdGlvbnMgdG8gc29tZSByZWNlbnQgZnVuY3Rpb25zLgoKMjAwOS0wNS0yMSAxNzozMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGZvciBzdHJlYW1fdGltZS0+cnVubmluZ190aW1lCgkgIENoYW5nZSBzb21lIGluc3RhbmNlcyB3aGVyZSB3ZSB3cm9uZ2x5IHJlZmVyIHRvIHN0cmVhbSB0aW1lIHdoZXJlIGl0IHNob3VsZCBoYXZlCgkgIGJlZW4gcnVubmluZyB0aW1lLgoKMjAwOS0wNS0yMSAxMDo1Nzo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHVzZSBHX0dVSU5UMzJfRk9STUFUIGluIHRyYW5zbGF0YWJsZSBzdHJpbmcKCSAgeGdldHRleHQgZG9lc24ndCBoYW5kbGUgdGhpcyB2ZXJ5IHdlbGwuIEZpeGVzICM1ODM0MTkuCgoyMDA5LTA1LTIwIDE3OjA3OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGNhbiByZW1vdmUgdGhlIC1Xbm8tcG9ydGFiaWxpdHkgZnJvbSBoZXJlIG5vdwoJICBzaW5jZSB3ZSBhZGRlZCBpdCB0byBjb25maWd1cmUuYWMuCgoyMDA5LTA1LTIwIDIyOjE4OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGltcHJvdmUgdGhlIGZsdXNoIGZ1bmN0aW9uCgkgIFJlbW92ZSBhIGNvbXBhcmUgYW5kIGJyYW5jaCBmcm9tIGZsdXNoLgoKMjAwOS0wNS0yMCAxNzoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggYXNzZXJ0aW9uIHdoZW4gZnJlZWluZyB0aGUgY29udHJvbCBzb3VyY2UKCjIwMDktMDUtMjAgMTI6NDg6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcG90ZW50aWFsbHkgc2F2ZSBhIG1lbWNweSBpbiBfdGFrZQoJICBEaXJlY3RseSB1c2UgdGhlIGFzc2VtYmxlZF9kYXRhIGluIF90YWtlKCkgZnVuY3Rpb25zIHdoZW4gd2UgY2FuIGluc3RlYWQgb2YKCSAgY29weWluZyBpdCBvdXQuCgoyMDA5LTA1LTIwIDExOjM2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1pY3JvIG9wdGltaXNhdGlvbnMKCjIwMDktMDUtMjAgMTE6MTI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgY29tcGFyaXNpb25zIGluIGZhc3QgcGF0aAoJICBTbWFsbCB0d2Vha3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgdXNlbGVzcyBjb21wYXJlcyBpbiBsb29wcy4KCjIwMDktMDUtMjAgMTA6Mjg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IG9uZSBtb3JlIGFkYXB0ZXIgdGVzdAoKMjAwOS0wNS0yMCAxMDoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBicmFuY2ggaW4gY29weSBjb2RlCgoyMDA5LTA1LTIwIDEwOjU2OjExICswMzAwICBIYW5uZXMgQmlzdHJ5IDxiaXN0cnlAaW5mb3JtYXRpay51bmktaGFtYnVyZy5kZT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2Fkc2F2ZTogZml4IHJlcXVlc3RwYWQgaGFuZGxpbmcgYW5kIHNlcmlhbGlzYXRpb24gb3JkZXIuCgkgIFN1cHBvcnQgcmVxdWVzdCBwYWRzIHdoZW4gbG9hZGluZy4gUmV2ZXJzZSBwYWQgc2VyaWFsaXNhdGlvbiBvcmRlciB0bwoJICBwcmVzZXJ2ZSBpdCB3aGVuIHJlY3JlYXRpbmcgdGhlIHBpcGVsaW5lLgoKMjAwOS0wNS0yMCAwMDo0NToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wKCjIwMDktMDUtMjAgMDA6NDQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN5bWJvbCB0byBkb2NzCgoyMDA5LTA1LTIwIDAwOjM3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIF9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQWRkIGEgcmVhc29uYWJseSBvcHRpbWl6ZWQgbmV3IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpIGZ1bmN0aW9uCgkgIHRvIHNjYW4gdGhlIGFkYXB0ZXIgZm9yIGEgcGF0dGVybiBhZnRlciBhcHBseWluZyBhIG1hc2suCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgkgIEFQSTogR3N0QWRhcHRlcjo6Z3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCSAgRml4ZXMgIzU4MzE4NwoKMjAwOS0wNS0xOSAyMjoxMzowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtb3JlIG9wdGltaXNhdGlvbnMKCSAgUmVtb3ZlIGR1cGxpY2F0ZSBjb3B5IGNvZGUgKF9wZWVrX2ludG8gYW5kIF9jb3B5KSBhbmQgbWFrZSBhIHVuaWZpZWQKCSAgb3B0aW1pemVkIGNvcHkgZnVuY3Rpb24uCgoyMDA5LTA1LTE5IDE3OjEyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBwYXNzIC1Xbm8tcG9ydGFiaWxpdHkgdG8gYXV0b21ha2UgdG8gc3VwcHJlc3Mgd2FybmluZ3MKCSAgR05VIG1ha2UgaXMgcmVxdWlyZWQsIG5vIHBvaW50IHByZXRlbmRpbmcgb3RoZXJ3aXNlLgoKMjAwOS0wNS0xOCAwMTowMDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgIGRvY3M6IG1lbnRpb24gdGhhdCBHU1RfRk9STUFUX3tQRVJDRU5UfEJVRkZFUlN9IGFyZSBub3QgaW1wbGVtZW50ZWQKCjIwMDktMDUtMTcgMTA6NDY6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEFCSSBicmVha2FnZSBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcwoJICBUaGUgcGFkZGluZyBvZiBHc3RDbG9jayBpcyBhIEdzdENsb2NrVGltZSBhbmQgbm90IGEKCSAgZ3BvaW50ZXIsIHNvIGFkZGluZyBhIHBvaW50ZXIgcmVxdWlyZXMgdGhlIHBhZGRpbmcKCSAgc2l6ZSB0byBiZSBjaGFuZ2VkIGRlcGVuZGluZyBvbiB0aGUgcG9pbnRlciBzaXplLgoJICBVc2UgYW4gdW5pb24gaW5zdGVhZC4KCSAgRml4ZXMgYnVnICM1ODI4NzguCgoyMDA5LTA1LTE1IDE1OjI0OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBbZ3N0dmFsdWVdIGFkZHMgc2FmZXR5IHBhcmVudGhlc2lzIHRvIG1hY3JvcyBtaXNzaW5nIHRoZW0uCgoyMDA5LTA1LTE1IDE0OjQyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBbZ3N0dXRpbHNdIEFkZHMgbW9yZSBzYWZldHkgdG8gR1NUX1dSSVRFXyogYW5kIEdTVF9SRUFEXyBtYWNyb3MuCgkgIEFkZHMgc2FmZXR5ICggKSB0byBwYXJhbWV0ZXJzIGluIF9HU1RfUFVUIGFuZCBfR1NUX0dFVCBtYWNyb3MuCgkgIEZpeGVzICM1ODI3MDguCgoyMDA5LTAzLTE5IDExOjM3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogdXNlIHNlcWxvY2tzIHRvIHBhcmFsbGVsbGl6ZSByZWFkZXJzCgoyMDA5LTA0LTE2IDE1OjUzOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBzdHJlc3M6IGFkZCBhIGNsb2NrIHN0cmVzc3Rlc3QKCSAgQWRkIGEgc3RyZXNzdGVzdCBmb3IgZ3N0X2Nsb2NrX2dldF90aW1lKCkuCgoyMDA5LTA1LTE1IDExOjAwOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgTWFrZWZpbGUuYW06IHVwZGF0ZSBmb3IgYWRkZWQvbW92ZWQvcmVtb3ZlZCBmaWxlcyB0aGF0IHdlcmVuJ3QgZGlzdC1lZC4KCjIwMDktMDUtMTIgMTE6Mjk6MjEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFJlbGVhc2Ugc2NyaXB0IG1vZGlmaWNhdGlvbnMKCjIwMDktMDUtMTQgMjI6MTE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogVXNlIG9yZGVyZWQgR1NlcXVlbmNlIGluc3RlYWQgb2YgR0xpc3QKCSAgVGhpcyBtYWtlcyBsb29rdXBzIGFuZCBpbnNlcnRpb25zIE8obG9nIG4pIGluc3RlYWQgb2YKCSAgYWx3YXlzIE8obikgZm9yIGluc2VydGlvbnMgYW5kIE8obikgaW4gd29yc3QgY2FzZSBmb3IKCSAgbG9va3Vwcy4KCSAgRml4ZXMgYnVnICM1ODI1NjQuCgoyMDA5LTA1LTE0IDEyOjMwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkb2NzOiByZW5hbWUgYW5kIGRlbGV0ZSBzb21lIGRlc2lnbiBkb2NzCgoyMDA5LTA1LTE0IDEyOjMwOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogUHJpbnQgdGhlIHBhdGggc3RyaW5nIGZvciBtZXNzYWdlIHNvdXJjZXMKCSAgVGhpcyByZWR1Y2VzIGNvbmZ1c2lvbiBpZiB0aGUgbWVzc2FnZSBzb3VyY2UgaXMgYSBwYWQKCSAgYW5kIG9ubHkgInNyYyIgaXMgcHJpbnRlZCBhcyBzb3VyY2UuCgoyMDA5LTA1LTE0IDEyOjI1OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTE0IDExOjM2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoJICBBZGQgYSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKSB3aXRoIGFuIGV4dHJhIGFyZ3VtZW50IHRvIGNvbnRyb2wKCSAgZGlzdHJpYnV0aW9uIG9mIGEgbmV3IGJhc2VfdGltZS4gV2Ugd2lsbCBuZWVkIHRoaXMgZm9yIGZsdXNoaW5nIHN0ZXAKCSAgb3BlcmF0aW9ucy4KCSAgQVBJOiBHc3RFbGVtZW50Ojpnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoKMjAwOS0wNS0xMyAyMzo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBkb24ndCB1c2UgcmVhbGxvYywgaXQgZG9lcyBhIG1lbWNweQoJICBEb24ndCB1c2UgcmVhbGxvYyB0byBncm93IHRoZSBzY3JhdGNoIGFyZWEgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRoZSBtZW1jcHkgdGhlCgkgIG9sZCB1c2VsZXNzIGRhdGEgaW50byB0aGUgbmV3IGFyZWEgYmVmb3JlIHdlIHdyaXRlIG91ciBuZXcgc3R1ZmYgaW4gaXQuCgoyMDA5LTA1LTEzIDIzOjM4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogdXBkYXRlIHRyaWNrbW9kZSBkb2N1bWVudAoKMjAwOS0wNS0xMyAyMjo1MToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1c2UgZ19yZWFsbG9jIGZvciByZXNpemluZyB0aGUgYnVmZmVyCgkgIFVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBpbnRlcm5hbCBidWZmZXIgaW5zdGVhZCBvZiBhCgkgIGxlc3MgZmFuY3kgX2ZyZWUvX21hbGxvYyBwYWlyLgoKMjAwOS0wNS0xMyAyMTozNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogbW92ZSBuZXcgbWVtYmVyIHRvIHByaXZhdGUgc3RydWN0CgkgIE1vdmUgdGhlIG5ldyBtZW1iZXJzIHRvIGEgcHJpdmF0ZSBzdHJ1Y3QgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGVub3VnaCBwYWRkaW5nCgkgIGFueW1vcmUgb24gMzItYml0cyBwbGF0Zm9ybXMuCgoyMDA5LTA1LTEzIDE4OjUwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVwZGF0ZSBzb21lIGRvY3MKCjIwMDktMDUtMTMgMTc6MDk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZG9jcy9mYXEvc3RhcnQueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEZBUTogdXBkYXRlIGZvciBnaXQgYW5kIG1pc2NlbGxhbmVvdXMgc21hbGwgZml4ZXMgYW5kIGFkZGl0aW9ucwoJICBSZXBsYWNlIGFsbCBtZW50aW9ucyBvZiBDVlMgd2l0aCBnaXQuIEFkZCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gY2dpdCBhbmQgdG8gU3VibWl0dGluZ1BhdGNoZXMgcGFnZSBpbiB3aWtpLiBGaXggc29tZSB0eXBvcy4gVXBkYXRlIGluZGVudGluZyBydWxlcyB0byB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoIzU3MTY0NikuCgoyMDA5LTAyLTEzIDE2OjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlICoucG8gZmlsZXMgZm9yIG5ld2x5LWFkZGVkIHRyYW5zbGF0YWJsZSBzdHJpbmdzCgkgIFRoZSBvbmx5IHBlb3BsZSB3aG8gc2hvdWxkIGdldCBjb25mbGljdHMgbm93IGFyZSBwZW9wbGUgd2hvIGhhdmUgY2xvbmVkIGFuZCBidWlsdCBnc3RyZWFtZXIgYmV0d2VlbiB0aGUgdGltZSB0aG9zZSBzdHJpbmdzCgkgIHdlcmUgYWRkZWQgYW5kIHRoaXMgY29tbWl0LgoKMjAwOS0wMi0xMiAxMDozODowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+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+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoKMjAwNS0wOC0yMCAxMjozOTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCjIwMDUtMDgtMjAgMTI6MTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgbW92ZSBjaGVjayBzdHVmZiB0byBpdHMgb3duIGxpYnJhcnkgdG8gYmUgdXNlZCBieSBvdGhlciBtb2R1bGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCjIwMDUtMDgtMTkgMDk6NTg6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkgICogZ3N0L2dzdC5jOgoJICBlbGltaW5hdGUgYW5vdGhlciB0bXBsIGZpbGUsIGZpeCBzcGVsbGluZyBpbiB0aGUgbG9uZy1kZXNjcmlwdGlvbgoKMjAwNS0wOC0xOCAxNjo0Mjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoKMjAwNS0wOC0xOCAxNjoyMDoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiBhIHBpcGVsaW5lIGdvZXMgdG8gUExBWUlORywgdGhhdCBkYXRhIGhhcyBhY3R1YWxseSBoaXQgdGhlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzCgkgIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zaW5rKTogQSBzaW5rIHRoYXQgZG9lc24ndCBnZXQgYW55CgkgIGRhdGEgc2hvdWxkbid0IHJldHVybiBTVUNDRVNTIGZvciBnb2luZyB0byBlaXRoZXIgUExBWUlORyBvcgoJICBQQVVTRUQuIFRlc3QgYWxzbyB0aGUgcmV0dXJuIHZhbHVlcyBvbiB0aGUgd2F5IGJhY2sgZG93bi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOiBXaGVuIGNoYW5naW5nIHRoZQoJICBzdGF0ZSBvZiBhbiBlbGVtZW50IGN1cnJlbnRseSBjaGFuZ2luZyBzdGF0ZSBhc3luY2hyb25vdXNseSwgZ28gdG8KCSAgbG9zdC1zdGF0ZSBhZnRlciBjb21taXRpbmcgdGhlIHBlbmRpbmcgc3RhdGUuIE1ha2VzIGZ1dHVyZSBjYWxscwoJICB0byBnZXRfc3RhdGUgY29udGludWUgdG8gcmV0dXJuIEFTWU5DLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUmV0dXJuCgkgIEFTWU5DIHdoZW4gZ29pbmcgdG8gUExBWUlORyBpZiB3ZSBzdGlsbCBkb24ndCBoYXZlIHByZXJvbGwsIGFzIGNhbgoJICBoYXBwZW4gd2l0aCBsaXZlIHNvdXJjZXMuCgoyMDA1LTA4LTE4IDE2OjE1OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEhhY2sgbG9uZyBwYXJhZ3JhcGggaW50byAyIGNodW5rcyBhcyBhIHdvcmthcm91bmQgZm9yIGJ1Z2d5CgkgIGphZGV0ZXggdmVyc2lvbiBpbiBzaWQgYW5kIGJyZWV6eSB0aGF0IGxvb3BzIGluZmluaXRlbHkgYW5kCgkgIGVhdHMgYWxsIFJBTS4KCjIwMDUtMDgtMTggMTY6MDA6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IKCSAgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCjIwMDUtMDgtMTggMTU6NDc6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZSB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgRml4IGVycm9yIG1lc3NhZ2Ugb3V0cHV0IHNvIEkgbWlnaHQgYmUgYWJsZSB0byB0ZWxsIHdoeSB0aGUKCSAgdGVzdCB3b3JrcyBoZXJlIGJ1dCBmYWlscyBvbiB0aGUgYnVpbGQgZmFybS4KCjIwMDUtMDgtMTggMTU6MzE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBJIHdyb3RlIGEgdGVzdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpLCAobWFpbik6CgkgIEkgd3JvdGUgYSB0ZXN0IQoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb24KCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIERvY3MgdXBkYXRlcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgVHJlYXQgYSBidWZmZXItd2l0aG91dC1uZXdzZWdtZW50IHRoZSBzYW1lIGFzIGEgcmVjZWl2aW5nCgkgIGEgbmV3c2VnbWVudCBub3QgaW4gdGltZSBmb3JtYXQsIGFuZCBkaXNhYmxlIHN5bmNpbmcgdG8gdGhlIGNsb2NrCgkgIHdpdGggYSB3YXJuaW5nLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIEFzc2VydCBpZiBhbnlvbmUgdHJpZXMgdG8gcmVwbGFjZSB0aGUgZXhpc3Rpbmcgc3luY19oYW5kbGVyIGZvciBidXMsCgkgIGFzIG9ubHkgdGhlIG93bmVyIHNob3VsZCBiZSBzZXR0aW5nIGl0LgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBIYXZlIGEgZml4ZWQgc2V0IG9mIGN1c3RvbSBldmVudCBlbnVtcyB3aXRoIGV2ZW50cyBpZGVudGlmaWVkIGJ5CgkgIHRoZWlyIHN0cnVjdHVyZSBuYW1lIChhcyBpbiAwLjgpLCByYXRoZXIgdGhhbiBhIGZyZWUtZm9yLWFsbAoJICBhbGxvd2luZyBjb2xsaXNpb25zIGJldHdlZW4gZW51bSB2YWx1ZXMgZnJvbSBkaWZmZXJlbnQgcGx1Z2lucy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICBEb2NzIGNoYW5nZS4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEhhbmRsZSBvdXQtb2YtYmFuZCBkb3duc3RyZWFtIGV2ZW50cyBmcm9tIHRoZSBzZW5kaW5nIHRocmVhZC4KCjIwMDUtMDgtMTcgMTY6NTc6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0IHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IEludGVycHJldAoJICBwbGF5LXRpbWVvdXQ9PTAgdG8gbWVhbiBubyB0aW1lb3V0IGF0IGFsbC4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBib3RoZXIgd2l0aCBhIGdldF9zdGF0ZSBvciBhIHdhcm5pbmcsIGp1c3QgcmV0dXJuIGRpcmVjdGx5LCBldmVuCgkgIGlmIGl0J3MgQVNZTkMuCgoyMDA1LTA4LTE3IDE2OjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERlYnVnIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlKTogQWRkIGZ1bmN0aW9uIHRvCgkgIGVuc3VyZSBiaW5zIHBvc3Qgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzLiBBIGJpdCBvZiBhIGhhY2sgYnV0IEkgY2FuJ3QKCSAgdGhpbmsgb2YgYSB3YXkgdG8gYXZvaWQgaXQuCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGRlZCB0ZXN0LgoKMjAwNS0wOC0xNiAxNzoyMzo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci4qOiBOZXcgZnVuY3Rpb24sIGxpa2UgcGVlaygpIGJ1dCB5b3Ugb3duIHRoZSBkYXRhLiBOb3QgdGVycmlibHkgZWZmaWNpZW50IGF0bS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYyAoZ3N0X2FkYXB0ZXJfdGFrZSk6IE5ldyBmdW5jdGlvbiwgbGlrZQoJICBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoKMjAwNS0wOC0xNiAxNjoyOTowNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpLCAocHVzaF9hbmRfcmVmKSwKCSAgKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0YWcgaGFuZGxpbmcuCgoyMDA1LTA4LTE2IDEyOjE1OjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBGaXggZG9jcyB0byB1c2UgX2Jpbl9hZGQoKSBiZWZvcmUgX2xpbmsoKSwgd2hpY2ggZml4ZXMgdGhlIGV4YW1wbGVzCgkgIHdpdGggcmVjZW50IGNvcmUgdmVyc2lvbnMgKHJlcG9ydGVkIGJ5IE1hZGhhbiBSYWogTQoJICA8cmFqX21hZGFuQHJlZGlmZm1haWwuY29tPiwgIzMxMzE5OSkuCgoyMDA1LTA4LTE2IDA5OjQyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBzdWJ0cmFjdCBjaGVja3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIG1vcmUgZG9jcyBhYm91dCBuZXdzZWdtZW50CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IEZJWE1FCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIEFkZCBjb21tZW50cywgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgIGNsZWFudXBzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3N0cmluZ191bndyYXApLCAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCksIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludCksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJvbV9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9saXN0KSwKCSAgKGdzdF92YWx1ZV9jYW5fY29tcGFyZSksIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIENsZWFudXBzLCBhZGQgY29tbWVudHMsIHJlbW92ZSB1bm5lZWRlZCBhc3NlcnRzLgoKMjAwNS0wOC0xNSAxODoxNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RidXMuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgoyMDA1LTA4LTE1IDE2OjU3OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtYWRlIHNvbWUgZGVmaW5lcyBwcml2YXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICBkb2N1bWVudGVkIGFsbCB1bmRvY3VtZW50ZWQgc2lnbmFsIGlubGluZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgYWRkZWQgcGFkZGluZwoKMjAwNS0wOC0xNSAwOTo1NjoxOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6IERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBfc2V0X2xpbmtfZnVuY3Rpb24gLT4gX3NldF9zZXRjYXBzX2Z1bmN0aW9uLgoKMjAwNS0wOC0xNCAyMjoyOTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhIC5jaGVjayB0YXJnZXQgZm9yIHJ1bm5pbmcgdGhlIGNoZWNrCgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBjb3NtZXRpYyBmaXh1cHMKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIGNvbXBsZXRlIGNoZWNrcyBmb3IgZ3N0YnVmZmVyOyB3b3VsZCBiZSBuaWNlIGlmIEkgY291bGQgZ2V0IHRoZQoJICBnY292IHN0dWZmIHRvIHdvcmsgc28gSSBjYW4gc2VlIGlmIEkgYWN0dWFsbHkgY29tcGxldGVkIGdzdGJ1ZmZlci5jCgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIEFTU0VSVF9CVUZGRVJfUkVGQ09VTlQKCjIwMDUtMDgtMTMgMTE6NDU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3BpZGVyIGZyb20gZGlzdAoKMjAwNS0wOC0xMyAxMTo0MzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9nc3RzcGlkZXIudmNwcm9qOgoJICByZW1vdmVkIGZyb20gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmcm9tIEhFQUQKCjIwMDUtMDgtMTMgMTA6MzM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3Qgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGlzIHJlLXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnLmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKSwgKGdzdF90YWdfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgQWRkIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSBhcyB3ZSBoYXZlIGluIDAuOCwgYW5kIGRvbid0CgkgIHNwZXcgb3V0IGEgd2FybmluZyBpZiBhIHRhZyB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZAoJICBpcyByZS1yZWdpc3RlcmVkLCB1bmxlc3MgaXQgaXMgcmUtcmVnaXN0ZXJlZCB3aXRoIGEKCSAgZGlmZmVyZW50IHR5cGUgKCMzMDg0MzgpLgoKMjAwNS0wOC0xMiAxNDozMDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIEFkZCBzb21lIHBhcmFncmFwaHMgYWJvdXQgc3RhdGUgY2hhbmdlcyBpbiAwLjkgdG8gdGhlIFBXRwoJICBhbmQgdGhlIHBvcnRpbmcgZ3VpZGUsIGluIHBhcnRpY3VsYXIgYWJvdXQgdGhlIG5ldyBtZWFuaW5nCgkgIG9mIEdTVF9TVEFURV9QQVVTRUQgYW5kIGhvdyB0byB3cml0ZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zCgkgIHdpdGggY29uY3VycmVudCBhY2Nlc3MgYnkgbXVsdGlwbGUgdGhyZWFkcyBpbiBtaW5kLgoKMjAwNS0wOC0xMSAxNzozOTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMgYWRkZWQgc2luY2UgdGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMKCSAgYWRkZWQgc2luY2UgdGFncwoKMjAwNS0wOC0xMSAxNDoyNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgQWN0dWFsbHkgaW1wbGVtZW50IChyZSlzZXR0aW5nIHRoZSB0YXJnZXQgb24gYSBnaG9zdHBhZAoJICBhcyBkZXNjcmliZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTA4LTEwIDIxOjE5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDaGVjayB3aGV0aGVyIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgYW5kIGRpc2FibGUgY29sb3VyZWQgZGVidWcgb3V0cHV0IGlmIHRoYXQgaXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrX3dpdGhfcG9wdF90YWJsZSksIChpbml0X3ByZSk6CgkgIENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzCgkgIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyB0aGUgY2FzZS4KCjIwMDUtMDgtMTAgMTU6MDg6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvCgkgIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGVmaW5kIGZ1bmN0aW9uLCBhbmQKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG1heSBrZWVwIHJlc3VsdHMgZnJvbSBkaWZmZXJlbnQKCSAgb2Zmc2V0cyBhcm91bmQsIHNvIHdlIGNhbid0IGp1c3QgdW5yZWYgdGhlIGJ1ZmZlciBmcm9tCgkgIHRoZSBwcmV2aW91cyBfcGVlaygpLCBidXQgaGF2ZSB0byBzYXZlIGFsbCBidWZmZXJzCgkgIHJldHVybmVkIGJ5IF9wZWVrKCkgdW50aWwgdHlwZWZpbmRpbmcgaXMgZG9uZSBhbmQgb25seQoJICBmcmVlIHRoZW0gdGhlbi4KCjIwMDUtMDgtMDkgMTY6MjU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgbWFjcm9zOiBHU1RfUk9VTkRfVVBfMigpIHRocm91Z2ggR1NUX1JPVU5EX1VQXzY0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCjIwMDUtMDgtMDggMTY6MDE6MTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgoyMDA1LTA4LTA4IDE1OjA4OjE0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGaXggYSBwcmV0dHkgZ29vZCBtZW1sZWFrLgoKMjAwNS0wOC0wOCAxMzo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBGaXggd3JvbmcgaW5jbHVkZSBhbmQgJ21ha2UgZGlzdGNoZWNrJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoKMjAwNS0wOC0wOCAxMzozODozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgVXNlIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIGluc3RlYWQuCgoyMDA1LTA4LTA4IDEzOjMxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZCB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBwYWRkaW5nIHRvIG91ciBiYXNlIGVsZW1lbnRzJyBjbGFzcyBhbmQgaW5zdGFuY2Ugc3RydWN0cyBhbmQKCSAgdG8gR3N0SXRlcmF0b3IgKHlvdSB3aWxsIG5lZWQgdG8gcmVidWlsZCBhbGwgcGx1Z2lucyBhbmQgYXBwcyEpCgoyMDA1LTA4LTA4IDEzOjE3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2UgZGVmYXVsdCBtZXNzYWdlIGZvcndhcmRpbmcgZnJvbSBjaGlsZC0+YnVzIHRvIGJpbi0+YnVzIHRocmVhZHNhZmUgYW5kIG1ha2UgaXQgbm90IGVtaXQgd2FybmluZ3MgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMKCSAgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZiB0aGUgcGFyZW50IGhhcyBubyBidXMuCgoyMDA1LTA4LTA4IDEyOjE0OjIwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpOgoJICBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkCgkgIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMgcGxheWJhY2sgb2Ygc2VyaWVzIG9mCgkgIG1lZGlhIGZpbGVzIHdoZW4gdmlzdWFsaXphdGlvbiBpcyBlbmFibGVkIGluIFRvdGVtLgoKMjAwNS0wOC0wNyAxMzozNzowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoKMjAwNS0wOC0wNSAxNzoyODozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRpbmcgbW9yZSBlbnRyaWVzIHRvIHRoZSBkb2NzIGFuZCBmaXggc21hbGwgZG9jLWJ1Z3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoKMjAwNS0wOC0wNSAxMzo0MjoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svZ3N0LWxpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoKMjAwNS0wOC0wNSAxMjo1OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZGVkIGxvbmcvc2hvcnQgZGVzYyBmb3IgY29udHJvbGxlciBkb2NzIGFkZGVkIGNvbGxlY3RwYWRzIGJhc2UgY2xhc3MgZG9jcyBhZGRlZCBjb3JyZWN0IGluY2x1ZGVzIHRvIGJhc2UtY2xhc3MgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MKCSAgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzCgkgIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgoyMDA1LTA4LTA1IDEwOjAyOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyCgkgIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCjIwMDUtMDgtMDUgMDY6NTc6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29zbWV0aWMgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljIGZpeGVzCgoyMDA1LTA4LTA1IDA2OjU1OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBzaXpldHlwZSB0ZXN0cyBmb3IgZmFrZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgoyMDA1LTA4LTA0IDE5OjQwOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLCBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLAoJICBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJldmVydCBwYXRjaCB0byBnc3RiYXNldHJhbnNmb3JtIGZyb20gNy0yOCByZW1vdmluZwoJICBkZWxheV9jb25maWd1cmUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oIChHc3RCYXNlVHJhbnNmb3JtQ2xhc3MuZ2V0X3NpemUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKToKCSAgU2VtYW50aWNzIGNoYW5nZWQsIHNob3VsZCByZXR1cm4gbm90IHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyCgkgIGJ1dCB0aGUgYnl0ZSBzaXplIG9mIGEgYnVmZmVyIHdpdGggYSBnaXZlbiBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBCZXR0ZXIKCSAgZGVidWcgb2JqZWN0LgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKTogRG9uJ3Qgc2V0IG91dF9zaXplIGhlcmU6IChpbiwKCSAgb3V0KSBhcmUgbm90IHRoZSBwYWQgY2FwcyB1bnRpbCBzZXRjYXBzIGZpbmlzaGVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6IFByb3h5IHRoZSBidWZmZXJfYWxsb2MgZm9yIHRoZQoJICBub3QtaW4tcGxhY2UgY2FzZSBhcyB3ZWxsLiBEZWFsIHdpdGggY2hhbmdpbmcgZnJvbSBpbi1wbGFjZSB0bwoJICBub3QtaW4tcGxhY2Ugd2l0aGluIGNhbGxpbmcgcGFkX2FsbG9jX2J1ZmZlci4gU3RpbGwgYSBiaXQKCSAgY29uY2VybmVkIGFib3V0IHRoZSBvdmVyaGVhZCBoZXJlLi4uCgoyMDA1LTA4LTA0IDExOjU2OjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOiBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCjIwMDUtMDgtMDMgMTY6MTA6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4ZWQgZGlzdGNoZWNrIGJyZWFrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCjIwMDUtMDgtMDMgMTU6NTk6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlciBmaXhlZCBhIGRvYyB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlcgoJICBmaXhlZCBhIGRvYyB0eXBvCgoyMDA1LTA4LTAzIDEzOjMwOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgYWRkIHNob3J0L2xvbmcgZGVzY3JpcHRpb24gZG9jcyB0byBiYXNlIGNsYXNzZXMgYWRkIHB1c2hzcmMgdG8gdGhlIGRvY3MgcmVtb3ZlIGNvbnNvbGlkYXRlZCBkb2MgZnJhZ21lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcwoJICBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcwoJICByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCjIwMDUtMDgtMDIgMjE6Mzk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdGhhdCBvbmUgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGF0IG9uZSB0b28KCjIwMDUtMDgtMDIgMjE6Mzg6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoKMjAwNS0wOC0wMiAyMTozNTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wucGMuaW46CgkqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSAgYWRkZWQgY29udHJvbGxlciBjb2RlIHJlbW92ZWQgZHBhcmFtIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUKCSAgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCjIwMDUtMDgtMDEgMjE6MTc6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQnJvYWRjYXN0IHRoZSBjb25kaXRpb24gd2hlbiBzaHV0dGluZyBkb3duLCB0byBtYWtlIHN1cmUgd2Ugd2FrZSBhbGwgdGhyZWFkcyB1cC4gU2h1dCBkb3duLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApOgoJICBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbAoJICB0aHJlYWRzIHVwLiBTaHV0IGRvd24gcGFkcyBvbiBmaW5hbGl6ZSwgZm9yIHNhZmV0eS4KCjIwMDUtMDgtMDEgMTc6MjY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24gb2NjdXJyZWQgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMDEgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIFBBVVNFRC0+UkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIGFmdGVyIG5lZ290aWF0aW9uCgkgIG9jY3VycmVkIGFscmVhZHkuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpOgoJICBFeHRyYSBwaWVjZSBvZiBkZWJ1ZyBmb3IgbmV3IG1lc3NhZ2VzLgoKMjAwNS0wOC0wMSAxNjo0Mzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICByZW1vdmUgZHBhcmFtcyBkZXBzIGZyb20gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoKMjAwNS0wOC0wMSAxNjoxNzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvY29udHJvbC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1fc21vb3RoLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtY29tbW9uLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGxpbmVhcmludGVycC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvdW5pdGNvbnZlcnQuYzoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGRlYWN0aXZhdGUgYW5kIHJlbW92ZSBkcGFyYW1zIChsaWJnc3Rjb250cm9sKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgoyMDA1LTA4LTAxIDExOjE1OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCjIwMDUtMDgtMDEgMDk6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciB3aGVuIHdlJ3ZlIGZvdW5kIHRoZSB0eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja19zZXRfYnVmZmVyX2NhcHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgoyMDA1LTA4LTAxIDA4OjUyOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvOiBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgUmVtb3ZlIHNvbWUgb2xkIGNydWZ0IGZyb20gZG9jcy4KCjIwMDUtMDctMzEgMTE6NTk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBGaXggaW5saW5lIGRvY3MgZm9yIEdzdFBhZExpbmtSZXR1cm4uCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBBUEk6IGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoKS4KCjIwMDUtMDctMzAgMTU6MDA6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NCBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQUNfU1lTX0xBUkdFRklMRSwgd2hpY2ggd2lsbCBzZXQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKCSAgYW5kIF9MQVJHRUZJTEVfU09VUkNFIGluIGNvbmZpZy5oIGFzIHJlcXVpcmVkLiBEbyBub3QKCSAgZXhwb3J0IHRob3NlIGZsYWdzIGluIG91ciAucGMgZmlsZXMgYW55IGxvbmdlciAoIzE0MjIwOSkuCgkgIFJlbW92ZSB1bnVzZWQgR1NUX0RJU0FCTEVfT01FR0FfQ09USFJFQURTIHN0dWZmLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgUmVkbyBzZWVrL3RlbGwgY2FsbHMgd2l0aCBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gbWluZDsgYWRkIHNvbWUKCSAgZGVidWdnaW5nIG1lc3NhZ2VzOyBhZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlCgkgIGZpbGUgc3VwcG9ydCBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgQWRkIGxvZyBtZXNzYWdlIHRoYXQgdGVsbHMgdXMgd2hlbiBsYXJnZSBmaWxlIHN1cHBvcnQKCSAgaXMgdW5hdmFpbGFibGUgb3Igbm90IGVuYWJsZWQgZm9yIHNvbWUgcmVhc29uLgoKMjAwNS0wNy0yOSAxOToyMjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgcmVtb3ZpbmcgYW4gZWxlbWVudCB3aXRoIGdob3N0cGFkIGZyb20gYSBiaW4uCgkgIEZpeGVkIHRlc3QgYXMgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIHRoZSByaWdodCB0aGluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5X3R5cGUpLCAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5KSwgKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksCgkgIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9wcm94eV9wYWRfZmluYWxpemUpLAoJICAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfbmV3KSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBDbGVhbiB1cCBnaG9zdHBhZHMsIHJlbW92ZSBwcm9wZXJ0aWVzIGZvciBpbnRlcm5hbCBzdHVmZi4KCSAgTWFrZSB0aHJlYWRzYWZlLgoJICBGaXggcmVmY291bnRpbmcuCgkgIFByZXBhcmUgZm9yIHN3aXRjaGluZyB0YXJnZXRzLCBub3QgYWxsIHVzZSBjYXNlcyB3b3JrIHlldC4KCjIwMDUtMDctMjkgMTk6MTk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGlua2luZyBwYWRzIHdoaWxlIGhvbGRpbmcgdGhlIGJpbiBMT0NLIGlzIG5vdCBhIGdvb2QKCSAgaWRlYS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBObyBwcm9iIHNldHRpbmcgdGVtcGxhdGUgYWZ0ZXIgY3JlYXRpbmcgdGhlIHBhZC4KCjIwMDUtMDctMjkgMTU6MzQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBnc3RfYnVzX3BvbGwgbWF5IGJlIGNhbGxlZCBmcm9tIG90aGVyIHRocmVhZHMuIEhhbmRsZSB0aGlzIG5pY2VseSBieSBub3QgbWFraW5nIHBvbGxfZGF0YSBkaXNhcHBlYXIgb2ZmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9idXNfcG9wKSwKCSAgKGdzdF9idXNfcGVlayksIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwgKHBvbGxfaGFuZGxlciksIChwb2xsX3RpbWVvdXQpLAoJICAocG9sbF9kZXN0cm95KSwgKHBvbGxfZGVzdHJveV90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgIGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlCgkgIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYgdGhlCgkgIHN0YWNrIG9uY2UgZ3N0X2J1c19wb2xsIHJldHVybnMuCgkgIGdzdF9idXNfcGVlayBub3cgaW5jcmVtZW50cyB0aGUgcmVmY291bnQgb24gdGhlIHJldHVybmVkCgkgIG1lc3NhZ2UuCgoyMDA1LTA3LTI5IDExOjI5OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZSBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZQoJICBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCjIwMDUtMDctMjggMTU6Mzg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIGNoZWNrcyBmb3IgaGllcmFyY2h5IGNvbnNpc3RlbmN5IHdoYW4gYWRkaW5nIGxpbmtlZCBlbGVtZW50cyB0byBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkCgkgIGVsZW1lbnRzIHRvIGJpbnMuCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBlbGVtZW50IHNjaGVkdWxpbmcgd2l0aG91dCBiaW4vcGlwZWxpbmUuCgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRmlyc3QgYWRkIGVsZW1lbnRzIHRvIGJpbiwgdGhlbiBsaW5rLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGluayBwYWRzIGZyb20gZWxlbWVudHMgYWRkZWQvcmVtb3ZlZCBmcm9tIGJpbiB0byBtYWludGFpbgoJICBoaWVyYXJjaHkgY29uc2lzdGVuY3kuCgoyMDA1LTA3LTI4IDExOjQ5OjU2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IFJlbW92ZSBicm9rZW4gZGVsYXlfY29uZmlndXJlIChmaXhlcyByZW5lZ290aWF0aW9uIG9mIHNvZnR3YXJlIHNjYWxpbmcgcGlwZWxpbmVzKTsgcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUKCSAgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdmUgc29tZSBsZWZ0b3ZlciBwcmludGYoKXMuCgoyMDA1LTA3LTI4IDExOjI0OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIFNvbWUgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X3NlZWspLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFNvbWUgbW9yZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIENoZWNrIGZvciBjb3JyZWN0IGhpZXJhcmNoeSB3aGVuIGxpbmtpbmcgcGFkcy4gTW92aW5nIHRvCgkgIHN0cmljdCByZXF1aXJlbWVudCBmb3IgZ2hvc3RwYWRzIHdoZW4gbGlua2luZyBlbGVtZW50cyBpbgoJICBkaWZmZXJlbnQgYmlucy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENsZWFuIHVwcy4gQWRkZWQgV1JPTkdfSElFUkFSQ0hZIHJldHVybiB2YWx1ZS4KCjIwMDUtMDctMjggMTA6Mzg6MDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQmV0dGVyIGRlYnVnIGlmIG5vIHRyYW5zZm9ybSBpcyBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoKMjAwNS0wNy0yNyAyMDoyMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvbmV0d29yay10cmFuc3A6IFNvbWUgb2xkIGRvYyBJIGhhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDoKCSAgU29tZSBvbGQgZG9jIEkgaGFkLgoKMjAwNS0wNy0yNyAxOTowMDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IHNlcmlhbGl6YXRpb24gb2Ygc2VlayBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCjIwMDUtMDctMjcgMTg6NDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoKMjAwNS0wNy0yNyAxODozMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIGRvY3MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgRXZlbnQgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFVzZSBmYXN0ZXIgY2FzdHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFVwZGF0ZSBnc3RfZWxlbWVudF9zZWVrLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwgKF9nc3RfZXZlbnRfY29weSksCgkgIChnc3RfZXZlbnRfbmV3KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwgKGdzdF9ldmVudF9nZXRfc3RydWN0dXJlKSwKCSAgKGdzdF9ldmVudF9uZXdfZmx1c2hfc3RhcnQpLCAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdG9wKSwKCSAgKGdzdF9ldmVudF9uZXdfZW9zKSwgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfZmlsbGVyKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE1ha2UgR3N0RXZlbnQgdXNlIEdzdFN0cnVjdHVyZS4gQWRkIHBhcnNpbmcgY29kZSwgbWFrZSBzdXJlIHRoZQoJICBBUEkgaXMgc3VmZmljaWVudGx5IGdlbmVyaWMuCgkgIE1hcmsgcG9zc2libGUgZGlyZWN0aW9ucyBvZiBldmVudHMgYW5kIHNlcmlhbGl6YXRpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLAoJICAoX2dzdF9tZXNzYWdlX2NvcHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXBkYXRlIGZvciBuZXcgZXZlbnRzLgoJICBDYXRjaCBldmVudHMgc2VudCBpbiB3cm9uZyBkaXJlY3Rpb25zLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIFJlbW92ZSBldmVudCBjb2RlIGZyb20gdGhpcyBmaWxlLgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBFdmVudCB1cGRhdGVzLgoKMjAwNS0wNy0yNyAxNTowNTo0NSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgoyMDA1LTA3LTI1IDEyOjMxOjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKSBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKSwgKGdzdF9wYWRfZGVmYXVsdF9maXhhdGUpLAoJICAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6CgkgIEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKQoJICBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm9iYWJseSBuZWVkcyB0byBiZSBzb21lCgkgIHNvcnQgb2YgYSBsYXN0IHJlc29ydCwgYW5kIHVzZSBwcm9maWxlLWJhc2VkIGZpeGF0aW9uIGZpcnN0LCBidXQKCSAgc2luY2UgdGhhdCBkb2Vzbid0IGV4aXN0IHlldCwgdGhpcyBpcyB0aGUgYmVzdCB3ZSBoYXZlLiBGaXhlcwoJICB2aXN1YWxpemF0aW9uIGluIFRvdGVtLgoKMjAwNS0wNy0yMiAxMTo0NzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgU29tZSBtb3JlIGNvbW1lbnRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgRml4IGhhbmRvZmYgbWFyc2hhbGwuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgV2UncmUgYSByZWFsIGlucGxhY2UgZWxlbWVudC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoJICAqIHRlc3RzL2xhdC5jOiAoZmFrZXNyYyksIChmYWtlc2luayksIChzaW1wbGUpLCAocXVldWUpLCAobWFpbik6CgkgICogdGVzdHMvbXV4aW5nL2Nhc2UxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9keW5hbWljLXBpcGVsaW5lLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQyLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3NjaGVkLXN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvc2Vla2luZy9zZWVraW5nMS5jOiAoZXZlbnRfcmVjZWl2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6IChidXNfaGFuZGxlciksICh0aW1lb3V0X2Z1bmMpLAoJICAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUzLmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTQuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNS5jOiAobWFpbik6CgkgIEZpeCB0aGUgdGVzdHMuCgoyMDA1LTA3LTIxIDE3OjIyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDogU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgc21hbGwgYWRkaXRpb25zLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGRpc2NvbnQgdmFsdWVzIGFyZSBnaW50NjQsIGhhbmRsZSB0aGUgbWF0aCBjb3JyZWN0bHkuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBNYWtlIHRoZSBiYXNlc3JjIHJlcG9ydCBlcnJvciBpZiB0aGUgc291cmNlIHBhZCBpcyBub3QgbGlua2VkLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIHF1ZXVlIGNvbGxlY3QgZGF0YSBldmVuIGlmIHRoZSBzcmNwYWQgaXMgbm90IGxpbmtlZC4KCSAgU3RhcnQgcHVzaGluZyBvdXQgZGF0YSBhcyBzb29uIGFzIGl0IGlzIGxpbmtlZC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksIChnc3RfZmxvd19nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZGVkIGdzdF9mbG93X2dldF9uYW1lKCkgdG8gZWFzZSBlcnJvciByZXBvcnRpbmcuCgoyMDA1LTA3LTIwIDE4OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIGEgYnVuY2ggb2YgbWVzc2FnZXMgZm9yIGFkdmFuY2VkIHNlZWtpbmcuCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuYzogKGdzdF9kcG1hbl9zZXRfcGFyZW50KSwKCSAgKGdzdF9kcG1hbl9zdGF0ZV9jaGFuZ2VkKToKCSAgRml4IHNvbWUgbmV3LXBhZCAtPiBwYWQtYWRkZWQgc2lnbmFscwoKMjAwNS0wNy0yMCAxNzoyMjoyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy86IERvY3VtZW50IG5ldy1wYWQvc3RhdGUtY2hhbmdlIHNpZ25hbCByZW5hbWVzIGFuZCB0aGUgRml4ZWRMaXN0IHR5cGUgcmVuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QKCSAgdHlwZSByZW5hbWUuCgoyMDA1LTA3LTIwIDE3OjE2OjQ0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+IHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfZWxlbWVudF9zZWVrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9hcnJheSksIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwKCSAgKGdzdF92YWx1ZV9saXN0X3ByZXBlbmRfdmFsdWUpLCAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV9saXN0X2dldF9zaXplKSwgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FycmF5X3N0cmluZyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2FycmF5KSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9hcnJheSksIChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KSwKCSAgKGdzdF92YWx1ZV9pc19maXhlZCksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+CgkgIHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCBmb3JtYXQgYW5kCgkgIGZsYWdzIGFzIHRoZWlyIG93biBhcmd1bWVudHMgaW4gZ3N0X2VsZW1lbnRfc2VlaygpIChzaG91bGQgaW1wcm92ZQoJICAiYmluZGVhYmlsaXR5IiksIHJlbW92ZSBmdW5jdGlvbiBnZW5lcmF0b3JzIHNpbmNlIHRoZXkgZG9uJ3Qgd29yawoJICB1bmRlciBhIHdob2xlIGJ1bmNoIG9mIGNvbXBpbGVycyAodGhleSB3ZXJlIGRlcHJlY2F0ZWQgYWxyZWFkeQoJICBhbnl3YXkpLgoKMjAwNS0wNy0yMCAxNzoxNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGZyb20gRWRnYXJkIHRvIHByb3Blcmx5IHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzCgoyMDA1LTA3LTIwIDE2OjIwOjM5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0aW5mby4qOiBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCjIwMDUtMDctMjAgMTE6MzU6MTggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgX25ld19jdXN0b20sIG1ha2UgX25ld19hcHBsaWNhdGlvbiBhIG1hY3JvIHRvIF9uZXdfY3VzdG9tLgoKMjAwNS0wNy0yMCAxMDo1ODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICBTb21lIGNsZWFudXBzLgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMS5jOiAobWFpbik6CgkgIE1ha2UgYSB0aHJlYWQgdGVzdCBjb21waWxlIGFuZCBydW4uLi4gdmVyeSBzaWxseS4uCgoyMDA1LTA3LTIwIDEwOjEzOjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDogTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mCgkgIGVsZW1lbnRzLgoKMjAwNS0wNy0yMCAwODoyOTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMgYW5kIGxpbmtzIGFuZCB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW9uZXRvbi54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRG9jdW1lbnQgYmFzZSBjbGFzc2VzLCB1cGRhdGUgc2VjdGlvbnMgb2Ygbi10by0xIGFuZCAxLXRvLW4gKG11eGVyLAoJICBkZW11eGVyKSwgcmVtb3ZlIG4tdG8tbiAod2FzIG5ldmVyIHdyaXR0ZW4pLCBmaXggc29tZSBjb2RlIGV4YW1wbGVzCgkgIGFuZCBsaW5rcyBhbmQgdXBkYXRlIHRoZSBwb3J0aW5nIHNlY3Rpb24gdG8gaW5jbHVkZSBhbGwgdGhpcy4KCjIwMDUtMDctMTkgMTc6NDY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuKjogUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIG1vcmUgaW50ZWxsaWdlbnRseSB1cHN0cmVhbSBhbmQgb3V0cHV0CgkgIGFuIEVSUk9SL0VPUyB3aGVuIHN0cmVhbWluZyBzdG9wcGVkIGR1ZSB0byBmYXRhbCBlcnJvci4KCjIwMDUtMDctMTkgMTQ6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZSBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKSwgKG1haW4pOgoJICBEb24ndCBibG9jayBmb3JldmVyIGZvciB0aGUgc3RhdGUgY2hhbmdlIHRvIGNvbXBsZXRlLCB0aGUKCSAgcGlwZWxpbmUgYWxyZWFkeSBkaWQgd2l0aCBhIHNlbnNpYmxlIHRpbWVvdXQuCgoyMDA1LTA3LTE5IDEzOjQzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHN1cmUgd2UgbmV2ZXIgY2FsbCB0aGUgY3JlYXRlIGZ1bmN0aW9uIGlzIHdlIGdvdCBkZWFjdGl2YXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UKCSAgZ290IGRlYWN0aXZhdGVkLgoKMjAwNS0wNy0xOSAxMToyNzowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCjIwMDUtMDctMTkgMTA6NDA6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcGFyc2UvcGFyc2UubDogQXR0ZW1wdCB0byBzb2x2ZSBidWcgIzE3MjgxNS4KCjIwMDUtMDctMTkgMDk6MTk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspOgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9ubHkgdXBkYXRlIHRoZSBzZWVraW5nIHZhbHVlcyB3aGVuIHdlIGFyZSBub3QKCSAgYnVzeSBzdHJlYW1pbmcuCgoyMDA1LTA3LTE4IDE3OjQzOjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgT29wcywgaWdub3JlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50IGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCjIwMDUtMDctMTggMTc6MTI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcyBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU2VuZCBkaXNjb250IGV2ZW50IGZyb20gdGhlIGxvb3AgZnVuY3Rpb24sIGFzIHBhZHMKCSAgYXJlbid0IGFjdGl2YXRlZCB5ZXQgaW4gdGhlIGFjdGl2YXRlX3B1c2ggaGFuZGxlci4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb24ndCBsZWFrIGVsZW1lbnQgbmFtZS4KCjIwMDUtMDctMTggMTQ6NDc6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFTX0xJQlRPT0xfVEFHUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoKMjAwNS0wNy0xOCAxMjo1ODoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgoyMDA1LTA3LTE4IDEyOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBSZW1vdmVkIFNjaGVkdWxlci9NYW5hZ2VyIGZyb20gZWxlbWVudHMuCgkgIFJlbW92ZWQgZ3N0dHlwZXMuaCwgcmVhcnJhbmdlZCBpbmNsdWRlcy4KCSAgUmVtb3ZlZCBkZXBlbmRlbmN5IHBhZDwtPmVsZW1lbnQsIGVsZW1lbnQ8PnBpcGVsaW5lLCBhbmQKCSAgdmFyaW91cyBvdGhlcnMsICBmaXggaW5jbHVkZXMuCgkgIGltcGxlbWVudCBnc3RfcGFkX2dldF9wYXJlbnQoKSB3aXRoIGdzdF9vYmplY3RfZ2V0X3BhcmVudCgpCgkgIE1ha2UgR3N0VGFzayBzZWZjb250YWluZWQuCgkgIEZpeCBfZ2V0X3N0YXRlKCkgb24gR3N0QmluLCBpdCBkaWQgbm90IHJldHVybiBBU1lOQyB3aXRoIGEgMAoJICB0aW1lb3V0LgoJICBGaXggZW5kbGVzcyBsb29wIGluIGl0ZXJhdG9yX2ZvbGRfd2l0aF9yZXN5bmMuCgoyMDA1LTA3LTE4IDA5OjIyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIG9sZCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGFyY2guaDoKCSAgUmVtb3ZlIG9sZCBmaWxlLgoKMjAwNS0wNy0xOCAwODo1MTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogTm8gbW9yZSBjb3RocmVhZHMuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIE5vIG1vcmUgY290aHJlYWRzLmgKCjIwMDUtMDctMTggMDg6NDM6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvY290aHJlYWRzLio6IExldCdzIHJlbW92ZSB0aGVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2NvdGhyZWFkcy5jOgoJICAqIGdzdC9jb3RocmVhZHMuaDoKCSAgTGV0J3MgcmVtb3ZlIHRoZXNlLgoKMjAwNS0wNy0xOCAwODoyODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MgaW4gdGhlIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3BvbGwpOgoJICBDbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgIFNldCBTUkMgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksCgkgIChnc3RfcGFkX2dldF9wYXJlbnRfZWxlbWVudCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIF9nZXRfcGFyZW50X2VsZW1lbnQoKSB0byBnZXQgYSBwYWRzIHBhcmVudCBhcyBhbiBlbGVtZW50LgoKMjAwNS0wNy0xNyAyMjo0NDowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogUmVtb3ZlIGJvZ3VzIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGJvZ3VzIHRlc3QuCgoyMDA1LTA3LTE3IDIyOjI2OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmY291bnRpbmcgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgRml4IGxvZ2ljIGZvciByZXR1cm5pbmcgQVNZTkMgd2hlbiBub3QgcHJlcm9sbGVkLgoKMjAwNS0wNy0xNyAyMjoyMjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBGaXggbmFzdHkgcmVmY291bnQgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgoyMDA1LTA3LTE2IDE5OjI1OjQxICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBNb3ZlZCBmZHNyYyB0byBnc3QtcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoKMjAwNS0wNy0xNiAxNTo0MzoxMCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoKMjAwNS0wNy0xNiAxNTo0MTowNCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmggZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2IFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaAoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIFBvcnRlZCBmZHNyYyB0byAwLjkuCgoyMDA1LTA3LTE2IDE0OjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IGNvbXBpbGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRml4IGNvbXBpbGUgZXJyb3IuCgoyMDA1LTA3LTE2IDE0OjQxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFN0b3JlIGFuZCB1c2UgZGlzY29udCB2YWx1ZXMgd2hlbiBzeW5jaW5nIGJ1ZmZlcnMgYXMgZGVzY3JpYmVkCgkgIGluIGRlc2lnbiBkb2NzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgUHVzaCBkaXNjb250IGV2ZW50IHdoZW4gc3RhcnRpbmcuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcyBpbiBiYXNlX3RpbWUgIGRpc3RyaWJ1dGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSksCgkgIChnc3RfZWxlbWVudF9nZXRfYmFzZV90aW1lKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3IgdGhlIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCSAgU29tZSBNVCBmaXhlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9sYXN0X3N0cmVhbV90aW1lKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgTVQgZml4ZXMuCgkgIEhhbmRsZSBzZWVraW5nIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jLCByZW1vdmUgc3RyZWFtX3RpbWUKCSAgaGFjay4KCSAgQ2xlYW51cHMgY2xvY2sgYW5kIHN0cmVhbV90aW1lIHNlbGVjdGlvbiBjb2RlLiBBZGRlZCBhY2Nlc3NvcnMKCSAgZm9yIHRoZSBzdHJlYW1fdGltZS4KCjIwMDUtMDctMTYgMTQ6MDY6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KTogVXNlIHRoZSBtYWdpYyB3b3JkLi4KCjIwMDUtMDctMTYgMTM6NTA6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZSBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGVsZW1lbnRzIHNpbGVudCBhcyB0aGUgZGVlcF9ub3RpZnkgcmVmcyB0aGUKCSAgcGFyZW50LCB3aGljaCBtaWdodCBtYWtlIHRoZSB0ZXN0IGZhaWwuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBEb24ndCBob2xkIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KCjIwMDUtMDctMTYgMTI6MzM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVucmVmIHRoZSBjYXBzIHdlIHBhc3NlZCB0byBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgYWZ0ZXIgcGFzc2luZyB0aGVtLiBnc3RfY2Fwc19tYWtlX3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlcgoJICBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSB3aWxsIGRvIHRoYXQgZm9yIHVzLgoKMjAwNS0wNy0xNSAxNjoxMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvICgjMTU3MzExKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvCgkgICgjMTU3MzExKS4KCjIwMDUtMDctMTUgMTQ6NTk6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKTogV3JpdGUgb3VyCgkgIG93biBtYXJzaGFsbGluZyBmdW5jdGlvbiBmb3IgdGhlIGhhbmRvZmYgc2lnbmFsLiBQcm9wZXJseSB0eXBlIHRoZQoJICBidWZmZXIgYXMgYSBidWZmZXIuIEZpeGVzIHNvbWUgd2FybmluZ3MuIFNob3VsZCBkbyBhIG1vcmUgZ2VuZXJhbAoJICBzb2x1dGlvbi4KCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KTogUGx1ZyBpbnRvIHRoZSByaWdodCBtYXJzaGFsbGVyLgoKMjAwNS0wNy0xNSAxMzo0NDoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlZCBkb2NzLCBtb3N0bHkgRElTQ09OVCByZWxhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgoyMDA1LTA3LTE1IDEyOjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6IHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICBzL0dTVF9QQURfTElOS19SRUZVU0VEL0ZBTFNFLyBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKQoKMjAwNS0wNy0xNSAxMTowNTo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCjIwMDUtMDctMTUgMTE6MDQ6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBOb3JtYWxpemUgYW5kIHRydW5jYXRlIGNhcHMgYmVmb3JlIGZpeGF0aW9uLgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNhcHMuYyAoZ3N0X2NhcHNfdHJ1bmNhdGUpOiBOZXcgZnVuY3Rpb24sIGRlc3RydWN0aXZlbHkKCSAgZGlzY2FyZHMgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0dXJlIGZyb20gaXRzIGFyZ3VtZW50LgoKMjAwNS0wNy0xNSAxMDo0MTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgQ2hhbmdlZCBBUEkgYSBiaXQsIHN1YmNsYXNzZXMgaGF2ZSB0byB3cml0ZSBpbnRvIGEgYnVmZmVyCgkgIHByb3ZpZGVkIGJ5IHRoZSBiYXNlIGNsYXNzLgoJICBNb3JlIGRlYnVnIGluZm8gaW4gbmVnbyBmdW5jdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgUG9ydCB0byBuZXcgYmFzZSBjbGFzcy4KCjIwMDUtMDctMTUgMTA6MzA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgVG90YWxseSBkdW1wIG1lc3NhZ2VzIGluIC1sYXVuY2ggd2l0aCB0aGUgLW0gb3B0aW9uLgoJICBGaXggbWVzc2FnZSBuYW1lIGZvciBTdGF0ZSBtZXNzYWdlcywKCjIwMDUtMDctMTQgMTg6NDU6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoKMjAwNS0wNy0xNCAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpOgoJICBSZW1vdmUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgRGVmaW5lIGVycm9yIGZvciBzdHJlYW0gc3RvcHBlZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKToKCSAgRG8gcHJvcGVyIHJldHVybiB2YWx1ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpOgoJICBCZXR0ZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFJlb3JnYW5pc2UgcmV0dXJuIHZhbHVlcywgYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBmYXRhbCBlcnJvcnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZXR1cm4gcHJvcGVyIEdzdEZsb3dSZXR1cm4gdmFsdWVzLAoKMjAwNS0wNy0xNCAwOTozNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwYXJhbS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGxpbmludC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcHNtb290aC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdHVuaXRjb252ZXJ0LnNnbWw6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgoyMDA1LTA3LTEzIDE4OjI5OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGZpeCBkZWJ1ZyBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRlYnVnIGlmZGVmCgoyMDA1LTA3LTEzIDE2OjI2OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19zdGFydCk6IFBvc3QgYW4gZXJyb3IgaWYgdGhlIHNvdXJjZSBjb3VsZG4ndCBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUKCSAgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCjIwMDUtMDctMTMgMTM6MTQ6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LnN1cHA6CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZnJvbSBFZGdhcmQKCjIwMDUtMDctMTMgMTM6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2NvbXBhcmUuYzoKCSAgKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9pbnRlcnNlY3QuYzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIG1vdmUgdHdvIHRlc3RzdWl0ZSBhcHBzIG92ZXIgdG8gdGhlIGNoZWNrIGRpcgoKMjAwNS0wNy0xMiAxNzoxNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkZWQgbW9yZSBkZWJ1ZyBpbmZvIGluIHRoZSBuZWdvdGlhdGUgcHJvY2Vzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFByZXBhcmUgZm9yIHNlZ21lbnQgcGxheWJhY2suCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU29tZSBtb3JlIGRvY3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIE5VTEwgcGlwZWxpbmUgb24gZXJyb3JzLgoKMjAwNS0wNy0xMiAxNzowNDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3Igbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfY29weSk6IENvcHkgdGhlIGJ1ZmZlciB3aGV0aGVyIG9yCgkgIG5vdCBpdCBjb21lcyBmcm9tIGEgbWFsbG9jIHJlZ2lvbi4gTWFrZSBzdXJlIG91ciBjb3B5IGdldHMgZnJlZWQuCgoyMDA1LTA3LTEyIDE2OjI4OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGZpeCByZWZjb3VudGluZyBvZiB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgoyMDA1LTA3LTEyIDEzOjI2OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlLWVuYWJsZSBsZWFrIGNoZWNraW5nIDopCgoyMDA1LTA3LTEyIDEyOjIwOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHBlci10ZXN0IHZhbGdyaW5kIHRhcmdldHMKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9kYXRhX3Byb3RvY29sX3N1aXRlKSwgKG1haW4pOgoJICBjbGVhbiB1cAoKMjAwNS0wNy0xMiAwOTo0MTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICAqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGNoYWluX2Z1bmMpLCAoZXZlbnRfZnVuYyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChmYWtlc3JjX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggdGVzdCBsZWFrcwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZmluYWxpemUpOgoJICBmaXggdGhlIHN0YXRpYyBtdXRleCBsZWFrCgoyMDA1LTA3LTExIDE4OjQxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHRlc3QgcmVmY291bnQgb2YgZGVzZXJpYWxpemVkIGJ1ZmZlciwgZm91bmQgYSBsZWFrCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgYWRkIG1pbmlvYmplY3QgdG8gZG9jcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3N0cmluZ191bndyYXApOgoJICBmaXggYSBoYXJkLXRvLWZpbmQgaW52YWxpZCB3cml0ZSBmb3Igb25lIG9mIHRoZSB0ZXN0cwoJICBmaXggYSBsZWFrIGZvciBkZXNlcmlhbGl6ZWQgYnVmZmVycwoKMjAwNS0wNy0xMSAxNTo0MTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCBhcyBwYXJ0IG9mIG1ha2UgY2hlY2sgZm9yIG5vdwoKMjAwNS0wNy0xMSAxNToyMjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNwZWNpZnkgdG9vbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3BlY2lmeSB0b29sCgoyMDA1LTA3LTExIDE1OjE4OjMyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgIFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMKCSAgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGFjdGl2YXRpb24sIGxvb3AoKSBhbmQKCSAgZ2V0cmFuZ2UoKSBmdW5jdGlvbnMgYW5kIGEgYml0IG1vcmUuIFJlbW92ZSBvbGQgY29tbWVudHMgcG9pbnRpbmcKCSAgdG8gbG9vcC1mdW5jdGlvbnMuCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgbG9vcC9nZXRyYW5nZSBleGFtcGxlcy4KCjIwMDUtMDctMTEgMTU6MTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YWxncmluZCB1bml0IHRlc3RzIGFzIGNoZWNrLWxvY2FsOyBhZGQgZ3N0X2RlaW5pdAoKMjAwNS0wNy0xMSAxNTowNjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gYmFzZXNyYwoKMjAwNS0wNy0xMCAxMjowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNybyBzcGxpdHRpbmcKCjIwMDUtMDctMTAgMDA6MDc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogYWRkIGRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgYWRkIGRlYnVnCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKToKCSAgZml4IGJ1cyBsZWFrcwoKMjAwNS0wNy0wOSAyMzo1MjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpeCBjYXBzIGxlYWsgaW4gYm90aCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgoyMDA1LTA3LTA5IDIzOjQ4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wNy0wOSAyMzo0NzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGEgY2FwcyBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBjYXBzIGxlYWsKCjIwMDUtMDctMDkgMjM6MzM6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZmluYWxpemUpOgoJICBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOgoJICBhZGQgZGVidWcKCjIwMDUtMDctMDkgMjM6MTU6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZ2V0IHNyYyBmb3IgYWxsIG1lc3NhZ2VzOyBvbmx5IGZvciBlb3MKCjIwMDUtMDctMDkgMjI6NTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIG1vcmUgZGVidWcKCjIwMDUtMDctMDkgMTY6MzY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmg6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBhZGQgZGVidWdnaW5nIGNhdGVnb3J5IHVzZSBHU1RfU1RBUlRfVEVTVCBub3csIHNvIHdlIGFkZCBhIGRlYnVnIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkKCSAgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNy0wOSAxNToxODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChTVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgdGVzdCBmb3Igc3RhdGUgY2hhbmdlIG1lc3NhZ2Ugb24gYSBiaW4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIHRlc3QKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3KToKCSAgKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkgIHZhcmlvdXMgZGVidWdnaW5nIGFkZGl0aW9ucyBhbmQgY2xlYW51cHMKCjIwMDUtMDctMDggMTY6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCjIwMDUtMDctMDggMTY6MTY6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgbW9yZSBsZWFrcy4gIEEgc2ltcGxlIGdzdF9pbml0KCkgbm93IGlzIGxlYWtmcmVlLCB5YXkuCgoyMDA1LTA3LTA4IDE2OjA4OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWcgYW5vdGhlciBtZW1sZWFrIGluIHJlZ2lzdHJ5IGxvYWRpbmcgLSBJIGhhdmUgTk8gaWRlYSB3aHkgdGhpcyB3YXMgcmV0dXJuaW5nIGEgR3N0UGx1Z2luCgoyMDA1LTA3LTA4IDE0OjUwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCjIwMDUtMDctMDggMTQ6Mzk6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBhZGQgcmlnaHQgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoKMjAwNS0wNy0wOCAxNDozNTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGNoYW5nZSB0byBFUlJPUl9DRkxBR1MKCjIwMDUtMDctMDggMTQ6MDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBhZGQgYSBub3RlIGFib3V0IGVycm9yIENGTEFHUwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGNvbW1lbnQgb3V0IHNvbWUgdW51c2VkIGNvZGUKCSAgKiBnc3QvZ3N0LmM6IChzcGxpdF9hbmRfaXRlcmF0ZSk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgc29tZSBtZW1sZWFrcwoKMjAwNS0wNy0wNyAxNTowNzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbGlicyB1c2Ugc2FtZSBndGstZG9jLm1hawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgoyMDA1LTA3LTA3IDE0OjE2OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmYWN0b3Igb3V0IGd0ay1kb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoKMjAwNS0wNy0wNyAxNDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgVW5sb2NrIHRoZSBTVFJFQU1fTE9DSyBjb21wbGV0ZWx5LgoKMjAwNS0wNy0wNyAxMzoxNDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTM6MTI6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA3LTA3IDExOjU5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgoyMDA1LTA3LTA3IDExOjA5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKTogUmVtb3ZlIGludGVuc2VseSBpcnJpdGF0aW5nIGRlYnVnIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcKCSAgZGVidWcgbWVzc2FnZS4KCjIwMDUtMDctMDcgMTA6MDM6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGFub3RoZXIgZG9jIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBkb2MgZml4CgoyMDA1LTA3LTA3IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL0JVSUxEOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbWFjb3N4IG1hZG5lc3MgZml4aW5nCgoyMDA1LTA3LTA3IDA4OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IFJlbW92ZSBvbGQgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbW92ZSBvbGQgdHlwZXMKCjIwMDUtMDctMDcgMDg6MTY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSk6CgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCjIwMDUtMDctMDYgMTc6MTc6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgZGVzaWduIG5vdGVzIHRvIHJlZmxlY3QgdGhlIG1vdmVtZW50IG9mIHJlc3BvbnNpYmlsaXR5IGZvciBidXMgaGFuZGxpbmcgZnJvbSBHc3RQaXBlbGluZSB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YKCSAgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIEdzdEJpbgoKMjAwNS0wNy0wNiAxNjo0NTo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoKMjAwNS0wNy0wNiAxNjoyMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleGFtcGxlcy86IFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzogKG1haW4pOgoJICBVcGRhdGUgYSBjb3VwbGUgb2YgdGhlIGV4YW1wbGVzIHRvIHdvcmsgYWdhaW4uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICBTcGVsbGluZyBjb3JyZWN0aW9ucyBhbmQgZXh0cmEgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksIChpc19lb3MpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9kaXNwb3NlKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNb3ZlIHRoZSBidXMgaGFuZGxlciBmb3IgY2hpbGRyZW4gdG8gdGhlIEdzdEJpbiwgYW5kIGNyZWF0ZSBhCgkgIHNlcGFyYXRlIGJ1cyBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gY2hpbGRyZW4gdG8gdGhlIG9uZSB0aGUKCSAgYnVzIHNlbmRzICd1cHdhcmRzJyBvbi4KCjIwMDUtMDctMDYgMTM6MjU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IE1ha2UgYmFzZXNyYyBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldGNhcHMpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgZmFpbHMgaW4gYmFzZXNpbmsuCgkgIFVwZGF0ZSBSRUFETUUuCgoyMDA1LTA3LTA2IDEzOjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maXhhdGVfY2FwcyksIChnc3RfcGFkX2FjY2VwdF9jYXBzKToKCSAgSW1wbGVtZW50IHRoZSBmaXhhdGUgZnVuY3Rpb24uCgkgIENsZWFuIHVwIGFjY2VwdGNhcHMuCgoyMDA1LTA3LTA2IDEyOjI0OjUwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJlbW92ZSBuZXZlci13cml0dGVuIGZpbHRlci1mYWN0b3J5IGNoYXB0ZXI7IEknbGwgYWRkIHRoZSB2YXJpb3VzIGJhc2UgY2xhc3NlcyB0byBwYXJ0IDQgKCJvdGhlciBlbGVtZW50IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctZmlsdGVyZmFjdG9yeS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMKCSAgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdHlwZXMiKSBsYXRlciBvbi4KCjIwMDUtMDctMDYgMTI6MTg6MDAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBhIGNoYXB0ZXIgb24gY2FwcyBuZWdvdGlhdGlvbiwgc2ltcGxpZnkgdGhlIG9yaWdpbmFsIGNvZGUgc2FtcGxlcyBhIGJpdCB3LnIudC4gY2FwcyBuZWdvdGlhdGlvbiwgYWRkIGxpbmsgdG8gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZQoJICBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgYWR2YW5jZWQKCSAgc2VjdGlvbi4gQWRkIGEgYnVuY2ggb2YgZXhhbXBsZXMgc2hvd2luZyBkaWZmZXJlbnQgdXNlIGNhc2VzIG9mCgkgIGRpZmZlcmVudCB0eXBlcyBvZiBjYXBzIG5lZ290aWF0aW9uLiBVcHN0cmVhbSByZW5lZ290aWF0aW9uIGlzbid0CgkgIGZ1bGx5IGRvY3VtZW50ZWQgeWV0IHNpbmNlIG5vYm9keSBrbm93cyBob3cgdGhhdCB3b3Jrcy4KCjIwMDUtMDctMDYgMTE6MzQ6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICBwYyBmaWxlIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYyBmaWxlIGNsZWFudXBzCgoyMDA1LTA3LTA2IDExOjMxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiBjaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBpZiBwYWQgaGFzIG5vIHBhcmVudCwgcmV0dXJuIE5VTEwgYXMgbGlzdCBvZiBpbnRlcm5hbCBsaW5rcwoKMjAwNS0wNy0wNSAxNjozODoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0Lzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgoyMDA1LTA3LTA1IDE1OjI4OjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDctMDUgMTI6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkgIGJldHRlciByZXBvcnQgZ2VucmF0aW9uIHRhcmdldCAobGNvdiBuZWVkcyBhIHBhdGNoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgoyMDA1LTA3LTA1IDEwOjU4OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzLCB0ZXN0c3VpdGU6IE51bGwgaWYgd2UgZ290IGl0Li4uCgoyMDA1LTA3LTA1IDEwOjIwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF92YWxpZGF0ZV9wYWNrZXQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIFBvcnRlZCBkYXRhcHJvdG9sIHRvIDAuOS4KCSAgQWRkZWQgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0wNy0wNSAwOTozNToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBEZWZhdWx0IHRvIHJldHVybmluZyBUUlVFIGZvciB0aGUgY2FzZSB3aGVuIHRyYW5mb3JtX2NhcHMgcmV0dXJucwoJICBhIGZpeGVkIGNhcHMsIGxpa2UgZm9yIGlkZW50aXR5IG9yIHZvbHVtZS4KCjIwMDUtMDctMDUgMDg6NDc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrLzogQXBwbGljYXRpb24gbWVzc2FnZSBBUEkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jIChTVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChnb3RfaGFuZG9mZik6IEFwcGxpY2F0aW9uCgkgIG1lc3NhZ2UgQVBJIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogTW9yZQoJICBsb2dpYyB3ZWFrcyBoZXJlOiBhbHdheXMgcnVuIHRyYW5zZm9ybV9jYXBzLCB0cnlpbmcgcGFzc3Rocm91Z2gKCSAgb3BlcmF0aW9uIG9ubHkgaWYgdGhlIG9yaWdpbmFsIGNhcHMgaW50ZXJzZWN0cyB3aXRoIHRoZSB0cmFuc2Zvcm0uCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6IERlYnVnCgkgIHNvdXJjZSBhbmQgc2luayBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIgY2FwcyB3aXRoIHRoZSBwYWQgdGVtcGxhdGUgYmVmb3JlIGdvaW5nIGludG8KCSAgdHJhbnNmb3JtX2NhcHMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOiBNb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOiBUYWtlIGEgR3N0T2JqZWN0CgkgIHNyYyBhcmd1bWVudC4KCjIwMDUtMDctMDQgMTU6MDg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuKjogbm93IHJldHVybnMgdGhlIHNpZ25hbCBpZCBmb3IgYmV0dGVyIHdyYXBwaW5nIGluIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKGdzdF9wYWRfYWRkXypfcHJvYmUpOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcKCSAgaW4gYmluZGluZ3MuCgoyMDA1LTA3LTA0IDA5OjIyOjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiBPbmx5IHNldCBleHBsaWNpdCBjYXBzIG9uIHBhZHMuCgoyMDA1LTA3LTAxIDE2OjQ2OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogQ29tbWVudGFyeSB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoUFJPUF9EVVBMSUNBVEUpOiBHb25lIGRhZGR5IGdvbmUuCgkgIERpZG4ndCByZWFsbHkgbWFrZSBzZW5zZSwgbm90IGltcGxlbWVudGFibGUgd2l0aCBiYXNldHJhbnNmb3JtLAoJICBldGMuCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKTogVW5yZWYgaW5idWYgdmlhIG1ha2Vfd3JpdGFibGUuIEZlZWJsZQoJICBhdHRlbXB0IGF0IGltcGxlbWVudGluZyB0aGUgc3luYyBwcm9wZXJ0eSwgbmVlZHMgYW4gdW5sb2NrIG1ldGhvZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIE5ldyBmdW5jLCBieSBkZWZhdWx0IHJldHVybnMgdGhlIHNhbWUgY2FwcyAodGhlIGlkZW50aXR5CgkgIHRyYW5zZm9ybWF0aW9uKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKTogVXNlcyB0cmFuc2Zvcm1fY2FwcyB0byByZXR1cm4KCSAgc29tZXRoaW5nIHNlbnNpYmxlLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBDb21wbGljYXRlZCBsb2dpYyB0byBnZXQgY2FwcyBvbgoJICBib3RoIHBhZHMsIGV2ZW4gaWYgdGhleSBhcmUgZGlmZmVyZW50LCBhbmQgdG8gY2FsbCBzZXRfY2FwcyBvbmNlCgkgIGZvciBldmVyeSB0aW1lIGJvdGggcGFkcyBnZXQgdGhlaXIgY2FwcyBzZXQuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6IEdpdmUgdGhlIHJlZiB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uLiBBbGxvd3MgaW4tcGxhY2UgbW9kaWZpY2F0aW9uIG9mIHRoZSBidWZmZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oICh0cmFuc2Zvcm1fY2Fwcyk6IE5ldyBjbGFzcyBtZXRob2QuCgkgIEdpdmVuIGNhcHMgb24gb25lIHNpZGUsIHdoYXQgY2FuIEkgZG8gb24gdGhlIG90aGVyLgoJICAoc2V0X2NhcHMpOiBUYWtlIHR3byBjYXBzLCBvbmUgZm9yIGVhY2ggc2lkZSBvZiB0aGUgZWxlbWVudC4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hhbmdlIHByb3RvdHlwZSB0byBtb2RpZnkKCSAgY2FwcyBpbiBwbGFjZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ugd2UgY2FuIGNoZWNrIHRoZSBtdXRhYmlsaXR5IG9mCgkgIHRoZSBjYXBzLCBhbmQgYSBnb29kIGlkZWEgYmVjYXVzZSBmaXhhdGUgZnVuY3Rpb25zIGFyZSBqdXN0IGNhbGxlZAoJICBhcyBhIG1hdHRlciBvZiBsYXN0IHJlc29ydC4gKE5vdCBhY3R1YWxseSBpbXBsZW1lbnRlZC4pCgkgIChnc3RfcGFkX3NldF9jYXBzKTogSWYgdGhlIGNhcHMgd2UncmUgc2V0dGluZyBpcyBhY3R1YWxseSB0aGUgc2FtZQoJICBhcyB0aGUgZXhpc3RpbmcgcGFkIGNhcHMsIGp1c3QgdXBkYXRlIHRoZSBwb2ludGVyIHdpdGhvdXQgY2FsbGluZwoJICBzZXRjYXBzLiBBc3NlcnQgdGhhdCBjYXBzIGlzIGVpdGhlciBOVUxMIG9yIGZpeGVkLCBhcyBwZXIgdGhlCgkgIGRvY3MuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IFVwZGF0ZSBmb3IgZml4YXRlIGNoYW5nZXMuCgoyMDA1LTA3LTAxIDE0OjM2OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LCBub3QgYSBncG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDIgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6CgkgIFB1dCB0aGUgbWluaV9vYmplY3QgaW50byBHVmFsdWUgYXMgYSBtaW5pX29iamVjdCwKCSAgbm90IGEgZ3BvaW50ZXIuCgoyMDA1LTA3LTAxIDE0OjIwOjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06IEZpeCBidWlsZGJvdCBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QgYWdhaW4uCgoyMDA1LTA3LTAxIDEzOjAxOjQ3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogQWRkIGV4dHJhIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIGV4dHJhIGNoZWNrLgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkYm90LgoKMjAwNS0wNy0wMSAxMjo0MzowMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkgIEVuYWJsZSBidWlsZGluZyB0aGUgUFdHIGV4YW1wbGVzLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBBZGQgVVJJIGludGVyZmFjZSBzdHViLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1hdXRvcGx1Z2dlci54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgQWRkIHBvcnRpbmcgZ3VpZGUgKG1vc3RseSBzdHVicyksIHJlbW92ZSBhdXRvcGx1Z2dpbmcgKHNlZSBBRE0pLgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgVXBkYXRlIHRoZSBidWlsZGluZy0qLnhtbCBwYXJ0cyBmb3IgMC45IGNoYW5nZXMuIEFsbCBleGFtcGxlcwoJICBjb2RlIGJsb2NrcyBjb21waWxlIGluIGV4YW1wbGVzL3B3Zy8qLgoKMjAwNS0wNi0zMCAxMjozMjoxNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cyBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cwoJICBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lbnRpb24ga21wbGF5ZXIgYW5kCgkgIGthZmZlaW5lIHNpbmNlIHRoZXkgaGF2ZSBhIHdvcmtpbmcgR1N0cmVhbWVyIGJhY2tlbmQgaW4gdGhlIEtERQoJICBzZWN0aW9uLgoKMjAwNS0wNi0zMCAxMjoyNjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgoyMDA1LTA2LTMwIDEyOjE4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDSEFOR0VTLTAuOToKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgIEFkZGVkIENIQU5HRVMtMC45IGRvYywgdXBkYXRlZCBzdGF0dXMgb2Ygb3RoZXIgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlICJobW0iIG1hY3JvCgoyMDA1LTA2LTMwIDEyOjE0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgoyMDA1LTA2LTMwIDExOjM5OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6IFByb3h5CgkgIGFjdGl2YXRlX3B1c2ggZG93biB0byB0aGUgaW50ZXJuYWwgcGFkIGFzIHdlbGwuCgoyMDA1LTA2LTMwIDEwOjU5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogIFJvbmFsZCBTLiBCdWx0amUgIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICBTb21lIGRvY3VtZW50YXRpb24gZml4ZXMgKCMzMDczOTQgYW5kICMzMDczOTcpLgoKMjAwNS0wNi0zMCAxMDoyMzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMzAgMTA6MjI6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnbyBiYWNrIHRvIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoKMjAwNS0wNi0zMCAxMDoxMDowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCk6CgkgIEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCjIwMDUtMDYtMzAgMDk6NTk6MjcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggZmFrZXNyYyBleGFtcGxlIHRvIGNvbXBpbGU7IGRvZXNuJ3Qgd29yaywgYnVnIHNvbWV3aGVyZS4uLj8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgQWRkIHJlZmVyZW5jZSBmb3IgZmlsdGVyZWQgY2FwcyB0byBhYm92ZSBjaGFwdGVyLgoKMjAwNS0wNi0zMCAwOTo0MToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0IG1vcmUgcmVhZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGNsZWFyX3F1ZXVlKSwgKHJlbW92ZV9hbGxfZnJvbV9xdWV1ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIExhbWUgYXR0ZW1wdCBhdCBtYWtpbmcgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhIGJpdAoJICBtb3JlIHJlYWRhYmxlLgoKMjAwNS0wNi0zMCAwOTozMzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoKMjAwNS0wNi0zMCAwOToyMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZWQgYXRvbWljIG9wZXJhdGlvbnMsIHVzZSBleGlzdGluZyBMT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChkZWZhdWx0X2hhdmVfZGF0YSksIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KSwgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE1vdmUgZXhjZXB0aW9uIGhhbmRsaW5nIG91dCBvZiBtYWluIGNvZGUgcGF0aC4KCjIwMDUtMDYtMzAgMDc6NDU6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHJvcCBjaXJjdWxhciByZWZlcmVuY2UKCjIwMDUtMDYtMjkgMTk6MjA6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoc2lsbHlfcmV0dXJuX3RydWVfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkCgkgIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCjIwMDUtMDYtMjkgMTY6NTc6NTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKToKCSAgTWFrZSB3b3JrICg/PykuCgoyMDA1LTA2LTI5IDE2OjQ1OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCjIwMDUtMDYtMjkgMTY6MTE6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0IHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZXNpbmtfcmVuZGVyKToKCSAgU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0CgkgIHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGFuIGVycm9yIG9jY3VyZWQuCgoyMDA1LTA2LTI5IDE2OjA1OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgcHJvYmVzIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJlbW92ZSBwcm9iZXMgbW9yZS4KCjIwMDUtMDYtMjkgMTU6NTE6MjUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cHJvYmUuc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgb2xkIHByb2JlcywgYWRkIG5ldyBnLXNpZ25hbC1iYXNlZCBwcm9iZXMgYW5kIHNvbWUgdXRpbGl0eQoJICBmdW5jdGlvbnMuCgoyMDA1LTA2LTI5IDE1OjE3OjI1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vdmVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX1tzaW5rfHNyY11fY2FwcygpIHRvIGdzdHV0aWxzIGFuZCBhZGRlZAoJICB0aGUgZGVmaW5pdGlvbiB0byB0aGUgaGVhZGVyIGZpbGUuCgoyMDA1LTA2LTI5IDE0OjU2OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbSAoc2Nhbi1idWlsZC5zdGFtcCk6IFRvdGFsbHkgb25seSBjaGVjayBwbHVnaW5zIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrCgkgIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMDUtMDYtMjkgMTQ6NTI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC90bXBsLzogU29tZSBmaXhpbmdzIGZvciBibGFudGVudGx5IHdyb25nIHRleHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJICBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCjIwMDUtMDYtMjkgMTI6NDA6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9naWMgd2FzIHJldmVyc2VkLCBkdWgKCjIwMDUtMDYtMjkgMTI6MjU6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQgc3lzdGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzogKGFkZF9wYXRoX2Z1bmMpLCAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsCgkgIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQKCSAgc3lzdGVtIGxvY2F0aW9ucwoKMjAwNS0wNi0yOSAxMjoyMzozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBmaXhlcwoKMjAwNS0wNi0yOSAxMjowMjoxMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogRml4IGF1dG9wbHVnZ2luZyBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgoyMDA1LTA2LTI5IDExOjQ2OjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQKCSAgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgoyMDA1LTA2LTI5IDExOjEwOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZGVidWcgbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRlYnVnIGxpbmUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIG1hcCBTSUdOQUwgYW5kIEJST0FEQ0FTVCB0byB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBSZW1vdmUgcmVkdW5kYW50IGJyYWNlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKToKCSAgRG9uJ3QgY2FsbCBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gcmVzZXRpbmcgY2FwcyB0byBOVUxMLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBVc2UgQlJPQURDQVNUIGFzIHRoaXMgaXMgd2hhdCB3ZSBkby4KCjIwMDUtMDYtMjkgMTA6MjQ6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZQoJICBjaGFuZ2UuCgoyMDA1LTA2LTI5IDA5OjI1OjUxICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFVwZGF0ZSAodW50aWwgdGhyZWFkcy9zY2hlZHVsaW5nKSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7IHJlbW92ZSBHc3RUaHJlYWQsIGFkZCBHc3RCdXMsIGFkZCBzaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXNjaGVkdWxlcnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLmZpZzoKCSAgVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsKCSAgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbXBsZSBwb3J0aW5nIGNoZWNrbGlzdCwgYWRkCgkgIGRvY3VtZW50YXRpb24gZm9yIHRhZyB3cml0aW5nLCBjbG9ja3MsIG1ha2UgYWxsIGV4YW1wbGVzIHVudGlsIHRoaXMKCSAgcGFydCBjb21waWxlIGFuZCBydW4uCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBVcGRhdGUgZnJvbSBjaGFuZ2VzIHRvIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgYWRkIGJ1cwoJICBleGFtcGxlLCByZW1vdmUgdGhyZWFkIGV4YW1wbGUuCgoyMDA1LTA2LTI4IDE5OjQ1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLAoJICAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19wZWVrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgQWRkIGRlYnVnZ2luZyBtZXNzYWdlcy4KCSAgTWFrZSBpbnRlcm5hbCBtZXRob2RzIHN0YXRpYy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBidXMgaXMgZmx1c2hlZCBpbiB0aGUgaGFuZGxlci4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgIEZpeCByZWZjb3VudCBpbiBfZ2V0X2J1cygpOwoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrX2Z1bmMpOgoJICBDbG9jayByZWZjb3VudGluZyBmaXhlcy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgdGltZWQgb3V0IG1vcmUgZ3JhY2VmdWxseS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZGlzcG9zZSk6CgkgIENsZWFuIHVwIHRoZSBpbnRlcm5hbCB0aHJlYWQgaW4gZGlzcG9zZS4gVGhpcyBpcyBuZWVkZWQKCSAgZm9yIHN1YmNsYXNzZXMgdGhhdCBhY3R1YWxseSBnZXQgZGlzcG9zZWQuCgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9jbGFzc19pbml0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZGlzcG9zZSk6CgkgIEZyZWUgdGhyZWFkIHBvb2wgaW4gZGlzcG9zZS4KCjIwMDUtMDYtMjggMTY6NTc6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCpkZWJ1ZyosICp3aXRoLWdyYXBoKik6IE5ldyBwYXJhbWV0ZXJzLgoJICAoKnBhY2tldC1sb3NzKik6IFVuaWZpZWQgbG9zcyBwcm9iYWJpbGl0eS4KCSAgKG5ldHdvcmstdGltZSk6IFJlcG9ydCBvdXQtb2YtYmFuZCBldmVudHMuCgkgICogdGVzdHMvcGxvdC1kYXRhOiBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWJhbmQgZXZlbnRzLiBIYWNrIGl0CgkgIGludG8gdGhpcyBzY3JpcHQgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IGRvd24gdGhlIHBpcGU7IHNob3VsZCBmaXgKCSAgdGhpcyBsYXRlci4KCjIwMDUtMDYtMjggMTU6MzY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC86IERvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICBEb2NzIGZpeGVzLgoKMjAwNS0wNi0yOCAxMzo0MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDb3JyZWN0bHkgcHJveHkgdGhlIGNoZWNrX3B1bGxfcmFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCjIwMDUtMDYtMjggMTI6NDU6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZpeCBmYWtlIGVsZW1lbnRzIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgoyMDA1LTA2LTI4IDEyOjAxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkaWQgcy9iYXNlcyhyYy9pbmspXy9iYXNlX3MocmMvaW5rKV8vOyB3aW0gd2FudHMgdG8gcmVtb3ZlIGJhc2UgY29tcGxldGVseSwgYnV0IHRoYXQncyBmb3IgbGF0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoKMjAwNS0wNi0yOCAxMTo0ODo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCjIwMDUtMDYtMjggMTE6MzY6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcGFkX2Z1bmN0aW9ucyksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3VwZGF0ZV9wYWRfZnVuY3Rpb25zKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgVGhlIGRlcHJlY2F0ZWQgcGFkIGxvb3AgZnVuY3Rpb24gaXMgcmVtb3ZlZCBub3cuCgoyMDA1LTA2LTI4IDExOjMzOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOiBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp0aW1lb3V0KiwgKnNlbmQtbG9zcyosICpyZWN2LWxvc3MqKToKCSAgTmV3IHBhcmFtZXRlcnMsIHNpbXVsYXRlIG5ldHdvcmsgcGFja2V0IGxvc3MuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206IEluaXRpYWxpemUgdGhlIFJORy4KCjIwMDUtMDYtMjggMTE6MDI6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kZWFjdGl2YXRlKToKCSAgRmx1c2hpbmcgdGhlIHByZXJvbGwgcXVldWUgYWx3YXlzIG5lZWRzIHRvIHVubG9jayB0aGUgd2FpdGVycy4KCjIwMDUtMDYtMjggMTA6NDU6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIFdoZWVuIGEgc2VlayB3YXMgc3VjY2Vzc2Z1bCBvbiBhIHBpcGVsaW5lLCBzZXQgdGhlIHN0cmVhbV90aW1lIHRvIHRoZQoJICBzZWVrIG9mZnNldCBpbiBvcmRlciB0byBoYXZlIGEgc3luY2hyb25pemVkIHN0cmVhbV90aW1lLgoKMjAwNS0wNi0yOCAxMDozNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpOgoJICBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uCgkgIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbmcgYW5kIHdoYXRtb3JlLgoKMjAwNS0wNi0yOCAxMDoyODozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQ09OTkVDVEVEIC0+IExJTktFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDT05ORUNURUQgLT4gTElOS0VELgoKMjAwNS0wNi0yOCAwOTo1OTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2Ugc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqICouYzogRG9uJ3QgY2FzdCB0byBHU1RfT0JKRUNUIHdoZW4gcmVmZmluZyBvciB1bnJlZmZpbmcuIExhcmdlCgkgIHNvdXJjZS1tdW5naW5nIGNvbW1pdCEhIQoKMjAwNS0wNi0yOCAwOToxNzoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgKGdzdF9vYmplY3Rfc2luayk6IFRha2UgZ3BvaW50ZXIgYXJndW1lbnRzLCBub3QgR3N0T2JqZWN0IC0tCgkgIGF2b2lkcyBjYXN0cy4gTGlrZSBHTGliLgoKMjAwNS0wNi0yOCAwODo0MTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eSBhY3RpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eQoJICBhY3RpdmF0ZS4KCjIwMDUtMDYtMjcgMTg6Mzk6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgc2h1dCB1cCBnY2MzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaHV0IHVwIGdjYzMKCjIwMDUtMDYtMjcgMTg6MzU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55IHJlbWFpbmluZyBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55CgkgIHJlbWFpbmluZyBidWZmZXIuCgkgICogZ3N0L2dzdHRyYWNlLmMgKGdzdF9hbGxvY190cmFjZV9saXN0X3NvcnRlZCk6IE5ldyBoZWxwZXIsCgkgIHJldHVybnMgYSBzb3J0ZWQgY29weSBvZiB0aGUgdHJhY2UgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludF9saXZlKTogTmV3IEFQSSwgb25seSBwcmludHMgdHJhY2VzIHdpdGgKCSAgbGl2ZSBvYmplY3RzLiBTb3J0IHRoZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2FsbCk6IFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnQpOiBBbGlnbiBjb2x1bW5zLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogQWRhcHQgZm9yIHBhZCBhY3RpdmF0aW9uIGNoYW5nZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogVW5yZWYgYWZ0ZXIgcGFyZW50aW5nCgkgIHNjaGVkLgoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOiBEcm9wIHJlZiBvbiBzY2hlZC4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfaW5pdCk6IFNldCB0aGUgZGVmYXVsdCBhY3RpdmF0ZSBmdW5jLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9kZWZhdWx0KTogUHVzaCBtb2RlIGJ5IGRlZmF1bHQuCgkgIChwcmVfYWN0aXZhdGVfc3dpdGNoLCBwb3N0X2FjdGl2YXRlX3N3aXRjaCk6IE5ldyBzdHVicywgdGhpbmdzIHRvCgkgIGRvIGJlZm9yZSBhbmQgYWZ0ZXIgc3dpdGNoaW5nIGFjdGl2YXRpb24gbW9kZXMgb24gcGFkcy4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IFRha2UgYSBib29sZWFuIGFuZCBub3QgYSBtb2RlLCBkaXNwYXRjaCB0bwoJICB0aGUgcGFkJ3MgYWN0aXZhdGUgZnVuY3Rpb24gdG8gY2hvb3NlIHdoaWNoIG1vZGUgdG8gYWN0aXZhdGUuCgkgIFNob3J0Y3V0IG9uIGRlYWN0aXZhdGlvbiBhbmQgY2FsbCB0aGUgcmlnaHQgZnVuY3Rpb24gZGlyZWN0bHkuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBOZXcgQVBJLCAoZGUpYWN0aXZhdGVzIGEgcGFkIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IE5ldyBBUEksIHNhbWUgZm9yIHB1c2ggbW9kZS4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdWxsX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKTogU2V0dGVycyBmb3IgbmV3IEFQSS4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfbWluaV9vYmplY3RfbmV3LCBnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgIFRyYWNlIGFsbCBtaW5pb2JqZWN0cy4KCSAgKGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKTogVW5yZWYgdGhlIGFyZyBpZiB3ZSBjb3B5LCBsaWtlCgkgIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpOiBObyB0cmFjZSBpbml0LgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKQoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwsIGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdXNoKToKCSAgQWRhcHQgZm9yIG5ldyBwYWQgQVBJLgoJICAqIGdzdC9nc3RldmVudC5jIChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOiBEb24ndCBpbml0aWFsaXplIHRyYWNlLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcykKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzKTogTmV3IEFQSSBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYyk6IE5ldyB1dGlsaXR5LAoJICBzaG91bGQgZm9sZCBpbnRvIGdzdGl0ZXJhdG9yLmMgaW4gc29tZSBmb3JtLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFNpbXBsaWZpZWQgdmlhIHVzZSBvZiBmb2xkIGFuZAoJICBkZWxlZ2F0aW9uIG9mIGRlY2lzaW9ucyB0byBnc3RwYWQtPmFjdGl2YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpOiBTZXQgdGhlIGJ1cyB0byBOVUxMLAoJICBoZWxwIGluIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOiBSZWYgdGhlIGJ1ZmZlciB0eXBlCgkgIGNsYXNzIG9uY2UgaW4gaW5pdCwgbGlrZSBnc3RtZXNzYWdlLiBEaWRuJ3QgcnVuIGludG8gdGhpcyBpc3N1ZQoJICBidXQgaXQgc2VlbXMgY29ycmVjdC4gRG9uJ3QgaW5pdGlhbGl6ZSBhIHRyYWNlLCBnc3RtaW5pb2JqZWN0IGRvZXMKCSAgdGhhdC4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0X3N0b3BfZnJvbV9hcHApOiBOZXcKCSAgdGVzdCwgcnVucyBmYWtlc3JjICEgZmFrZXNpbmssIHN0b3BwaW5nIG9uIDo6aGFuZG9mZiB2aWEgYSBtZXNzYWdlCgkgIHRvIHRoZSBidXMuCgkgIChhc3NlcnRfbGl2ZV9jb3VudCk6IE5ldyB1dGlsIGZ1bmN0aW9uLCB1c2VzIGFsbG9jIHRyYWNlcyB0byBjaGVjawoJICBjbGVhbnVwLgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNb3JlIHJlZmNvdW50IGNoZWNrcy4KCSAgVG8gYmUgbW9kaWZpZWQgd2hlbiB1bmxpbmsgZHJvcHMgdGhlIGludGVybmFsIHBhZC4KCjIwMDUtMDYtMjcgMTg6MTE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF9zdGF0ZSksIChnc3RfYmluX2l0ZXJhdGVfc3RhdGVfb3JkZXIpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbnVwIHRoZSBnZXRfc3RhdGUoKSBmdW5jdGlvbiBhIGxpdHRsZSwgbWFrZSBzdXJlIGl0CgkgIGl0ZXJhdGVzIHRoZSBzYW1lIHNldCBvZiBlbGVtZW50cy4KCSAgQWRkZWQgc3R1YiBpdGVyYXRlX3N0YXRlX29yZGVyKCkuCgoyMDA1LTA2LTI3IDE0OjQwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYmFzZXRyYW5zZm9ybSBhbmQgaXRlcmF0b3IgZG9jcwoKMjAwNS0wNi0yNyAxMzoyNTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkCgkgIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCjIwMDUtMDYtMjcgMDg6NTQ6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCjIwMDUtMDYtMjcgMDg6MTY6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkb2MgYW5kIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMDYtMjUgMTk6NTM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlIGZpeGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2NoYWluKToKCSAgQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlCgkgIGZpeGluZy4KCjIwMDUtMDYtMjUgMTk6Mzc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSaWdodCwgdHdvIHByb2JsZW1zIGhlcmU6IGdob3N0cGFkcyBkb24ndCB0YWtlIGxvY2tzIGFuZCBnbGliIF9yZWNfbXV0ZXhfbG9ja19mdWxsKCkgd2l0aCBkZXB0aD09MCBzdGlsbCBsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlc2lua19ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kCgkgIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBDYXRjaCBpbGxlZ2FsIGxvY2tpbmcgYW5kIGdfd2FybiB0aGVtLgoKMjAwNS0wNi0yNSAxOToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBIYXZlIHRvIGNoZWNrIGZvciBjb21wbGV0aW9uIG5vdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgoyMDA1LTA2LTI1IDE5OjA5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVW5sb2NrIFNUUkVBTV9MT0NLIHdoYXRldmVyIHRoZSByZWN1cnNpb24gd2FzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgoyMDA1LTA2LTI1IDE3OjU0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbiBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwgKGdzdF9iYXNlc2lua19oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbiksIChnc3RfYmFzZXNpbmtfbG9vcCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJld29ya2VkIHRoZSBiYXNlIHNpbmssIGhhbmRsZSBldmVudCBhbmQgYnVmZmVyIHNlcmlhbGlzYXRpb24KCSAgY29ycmVjdGx5IGFuZCByZW1vdmVkIHBvc3NpYmxlIGRlYWRsb2NrLgoJICBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCjIwMDUtMDYtMjUgMTc6NTE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBbGxvdyBlbGVtZW50cyB0byBwb3N0IEVPUyBpbiB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGlzX2VvcyksIChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIEZpeCB1cCAtbGF1bmNoLCBtYWtlIGl0IGV4aXQgdGhlIHBvbGwgbG9vcCB3aGVuIHRoZQoJICBwaXBlbGluZSBhY3R1YWxseSBjaGFuZ2VkIHN0YXRlLgoJICBGaXggdXAgd2FybmluZyBwYXJzaW5nIGluIC1sYXVuY2guCgoyMDA1LTA2LTI1IDE3OjQ0OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiBDb3JlIHRha2VzIFNUUkVBTV9MT0NLIGZvciB1cyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2hhaW4pLCAoZ3N0X3RlZV9sb29wKSwKCSAgKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgIENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCjIwMDUtMDYtMjUgMTc6NDI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgdGFyZ2V0IHN0YXRlIHdoaWxlIHBlcmZvcm1pbmcgYSBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBkbyBzb21ldGhpbmcgaW50ZXJlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyk6CgkgIEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdGluZy4KCSAgRml4IHBhcnNpbmcgb2Ygd2FybmluZy9lcnJvciBtZXNzYWdlcyB3aGVuIEdFcnJvciBpcyBOVUxMLgoKMjAwNS0wNi0yNCAxODoxNjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIHN0YXJ0IHB1bGxpbmcgaW4gYmFzZSBjbGFzc2VzIGFuZCBlbGVtZW50cyBmb3IgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgoyMDA1LTA2LTI0IDA3OjQ5OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCjIwMDUtMDYtMjMgMTc6MTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTCB3aGVuIGl0IG1hdHRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiB0aGUgc3RhdGUgZGlkIG5vdCBjaGFuZ2UsIGFsc28gcmVwb3J0IE5PX1BSRVJPTEwKCSAgd2hlbiBpdCBtYXR0ZXJzLgoKMjAwNS0wNi0yMyAxNzowOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBObyB1bnNhZmUgdGFzayBwYXVzaW5nIHBsZWFzZS4KCjIwMDUtMDYtMjMgMTc6MDc6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfcGF1c2UpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIFJlZiB0aGUgdGFzayBiZWZvcmUgcHVzaGluZyBpdCBvbiB0aGUgdGhyZWFkcG9vbC4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgd2UgaGF2ZSBhIHJlZiB3aGVuIHRoZSB0aHJlYWRmdW5jdGlvbiBpcwoJICBhY3R1YWxseSBjYWxsZWQuCgoyMDA1LTA2LTIzIDE1OjI2OjA5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZSBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpOiBDaGVjayBpZiB0aGUKCSAgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlsZSdzIHNpemUuCgoyMDA1LTA2LTIzIDE1OjA0OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmggKEdTVF9DTEFTU19MT0NLLCBHU1RfQ0xBU1NfVFJZTE9DSykgKEdTVF9DTEFTU19VTkxPQ0ssIEdTVF9DTEFTU19HRVRfTE9DSywgR3N0T2JqZWN0Q2xhc3MpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKQoJICAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgdGhlIGNsYXNzIGxvY2sKCSAgcmVjdXJzaXZlLiBXaW0gd29uJ3QgbGV0IG1lIGRyb3AgZGVlcF9ub3RpZnkuIERlY29kZWJpbiB3b3JrcwoJICBhZ2Fpbiwgd2hvb3BkeSBkb28uCgoyMDA1LTA2LTIzIDE0OjE4OjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZSBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKG9uX2ludF9ub3RpZnkpOiBDYXRjaGVzIG5vdGlmeTo6Y2FwcyBvbiB0aGUKCSAgaW50ZXJuYWwgcGFkLCBhbmQgaGFja3MgYWNjb3JkaW5nbHkuIERvZXNuJ3QgZG8gaXQgb24gdGhlIHRhcmdldAoJICBwYWQgYmVjYXVzZSB3ZSBjaGFuZ2UgaXRzIGNhcHMuIFByb2JhYmx5IGNhdGNoZXMgYWxsIGNhc2VzIG9mCgkgIGludGVyZXN0IHRoby4KCSAgKGdzdF9naG9zdF9wYWRfc2V0X3Byb3BlcnR5KTogQ29ubmVjdCB0byBub3RpZnk6OmNhcHMgYXMKCSAgYXBwcm9wcml0YXRlLgoKMjAwNS0wNi0yMyAxMzoyMDo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUKCSAgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVmaW5lLXBhcmFtZXRlcik6IE5ldyBtYWNybywKCSAgZGVmaW5lcyBhIHBhcmFtZXRlciB0aGF0IGNhbiBiZSBzZXQgdmlhIHRoZSBjb21tYW5kIGxpbmUuCgkgIChzZXQtcGFyYW1ldGVyISwgcGFyc2UtcGFyYW1ldGVyLWFyZ3VtZW50cyk6IENvbW1hbmQgbGluZSBhcmdzCgkgIHBhcnNlci4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IFNpbXBsZSBtYXRwbG90bGliLWJhc2VkIHBsb3R0ZXIsIHRha2VzIGlucHV0IG9uCgkgIHN0ZGluLgoKMjAwNS0wNi0yMyAxMzoyMDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgaW1wb3J0YW50IGRvY3VtZW50YXRpb24KCjIwMDUtMDYtMjMgMTE6NDM6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgcmVzdGFydCB0eXBlZmluZGluZyBvbiBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIERlYnVnIHNwZWxsaW5nIGZpeC4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQWxsb3cgY2hhbmdpbmcgbW9kZSBvZiBhbiBhY3RpdmUgcGFkLgoJICBEZWJ1ZyBvdXRwdXQgZml4ZXMuCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIERvbid0IGNhc3QgYSBzdGF0aWMgcGFkIHRlbXBsYXRlIHRvIGEgbm9ybWFsIHBhZCB0ZW1wbGF0ZS4KCjIwMDUtMDYtMjMgMTE6MjU6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIHJlbW92ZSBnc3Rfc3RydG9sbCBjb21wbGV0ZWx5LCBzaW5jZSBpdCBkaWRuJ3QgYWN0dWFsbHkgZG8KCSAgYW55dGhpbmcgbW9yZSB0aGFuIHdoYXQgZ19hc2NpaV9zdHJ0b3VsbCBhbHJlYWR5IGRvZXMuCgkgIGNoZWNrIGZvciByYW5nZSBlcnJvcnMgd2hlbiBkZXNlcmlhbGl6aW5nCgkgIGRvIGEgY2FzdCBmb3IgdGhlIHVuc2lnbmVkIGNhc2VzOyBidXQgZnVydGhlciBmaXhpbmcgbmVlZHMKCSAgYSBkZWNpc2lvbiBvbiB3aGF0IHRoZSBpbnRlcnByZXRhdGlvbiBvZiAiKGludCkiIGFuZAoJICBkZXNlcmlhbGl6YXRpb24gc2hvdWxkIGJlIGZvciB2YWx1ZXMgdGhhdCBmYWxsIG91dHNpZGUgdGhlCgkgIHR5cGUncyBib3VuZGFyaWVzIChpZSwgcmVmdXNlLCBvciBpbnRlcnByZXQgYXMgY2FzdGluZykKCjIwMDUtMDYtMjMgMTA6Mzc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0IGNhbm5vdCBkbyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0CgkgIGNhbm5vdCBkbyBwcmVyb2xsLgoJICBVcGRhdGVkIGRlc2lnbiBkb2NzLCBhZGRlZCBsaXZlLXNvdXJjZSBkZXNpZ24gZG9jLgoJICBJbXBsZW1lbnRlZCBsaXZlIHNvdXJjZSBmdW5jdGlvbmFsaXR5IGluIGJhc2VzcmMKCSAgRml4IGVycm9yIGNvbmRpdGlvbiBpbiBfYmluX2dldF9zdGF0ZSgpCgkgIEltcGxlbWVudCBsaXZlIHNvdXJjZSBoYW5kbGluZyBpbiAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgbGl2ZSBzb3VyY2VzLgoJICBGaXhlZCBjYXNlIGluIEdzdEJpbiB3aGVyZSBlbGVtZW50cyB3ZXJlIGNoYW5nZWQgc3RhdGUKCSAgbXVsdGlwbGUgdGltZXMuCgoyMDA1LTA2LTIzIDA5OjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmMgKHRlc3RfZ2V0X2FsbG93ZWRfY2FwcywgdGVzdF9yZWZjb3VudCk6IEZpeCBib3JrZW4gcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4CgkgIGJvcmtlbiByZWZjb3VudGluZy4KCjIwMDUtMDYtMjMgMDk6NDE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29tbWl0IHRoZSBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgdGhlIGZpbGUKCjIwMDUtMDYtMjMgMDk6NDE6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLCBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLAoJICBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgoyMDA1LTA2LTIzIDA5OjI4OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbCBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2Fwcyk6IENhbGwgdGhlIGZ1bGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBvbiB0aGUgdGFyZ2V0LCBub3QganVzdCBpdHMgc2V0Y2FwcygpIGZ1bmN0aW9uLgoKMjAwNS0wNi0yMyAwMDozOToyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogQSBuZXR3b3JrIGNsb2NrIHNpbXVsYXRvci4KCSAgU29tZXRoaW5nIG9mIGFuIGFsZ29yaXRobWljIHRlc3RiZWQgYmVmb3JlIGRvaW5nIHNvbWV0aGluZyBpbiBDLgoKMjAwNS0wNi0yMiAxOTo1NzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHN1cmUgY2Fwc2xpc3QuaCBnZXRzIGRpc3RlZAoKMjAwNS0wNi0yMiAxOTo0ODo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIGZyb21zdHJpbmcuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNi0yMiAxOToyMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aCAoaW50KSAweEZGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjb3B5IG92ZXIgZnJvbSAwLjgsIGFuZCBhZGQgdHdvIHdpdGggYml0bWFza3Mgc3BlY2lmaWVkIHdpdGgKCSAgKGludCkgMHhGRi4uLgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgYWRkIHRlc3QgdG8gcGFyc2UgZXZlcnl0aGluZyBmcm9tIGNhcHNsaXN0LmgKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSksCgkgIChtYWluKToKCSAgYWRkIHRlc3QgZm9yIHN0cnVjdHVyZSBkZXNlcmlhbGl6YXRpb24KCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBkZXNlcmlhbGl6YXRpb24gb2Ygc3RyaW5ncyB0byBpbnQgdHlwZXMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX250aF9maWVsZF9uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIHdheSB0byBnZXQgdGhlIG5hbWUgb2YgYSBmaWVsZCByZWZlcmVuY2VkIGJ5IGluZGV4CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIGluc3RlYWQgb2YgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdGluZyBsb25nIGxvbmcgbGllcyBiZXR3ZWVuCgkgIG1pbiBhbmQgbWF4LCB3ZSBjaGVjayBpZiB0aGUgbG9uZyBsb25nIHdvdWxkIGZpdCBpbnRvCgkgIGEgbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGUgZmluYWwgdHlwZS4KCSAgVGhpcyBmaXhlcyBjYXNlcyB3aGVyZSBhIHN0cmluZyByZXByZXNlbnRzIDJeMzIgLSAxLCB3aGljaAoJICB3aGVuIGNhc3QgdG8gaW50IHdvdWxkIGJlIHRoZSAodmFsaWQpIC0xLCBidXQgaXMgYmlnZ2VyIHRoYW4KCSAgR19NQVhJTlQKCjIwMDUtMDYtMjIgMTE6MDI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBhZGQgYSBsb2cgbGluZSBmb3IgdHlwZSBkZXNlcmlhbGl6YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoKMjAwNS0wNi0yMiAxMDo1MjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZXR1cm4gbG9uZyBsb25nLCBub3QgaW50LCBzbyBnaW50NjQgZGVzZXJpYWxpemF0aW9uIGFjdHVhbGx5IHdvcmtzLiAgSXMgdGhlcmUgYW55IGZsYWcgdGhhdCBtYWtlcyB0aGUgY29tcGlsZXIgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZSk6CgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkKCSAgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjayB0aGlzID8KCSAgRml4ZXMgIzMwODU1OQoKMjAwNS0wNi0yMiAwOTo1NToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZGVkIGNvbnZlbmllbmNlIG1hY3JvcyBmb3Igc2V0dGluZyBidWZmZXJzIGluIEdWYWx1ZS4KCjIwMDUtMDYtMjEgMTc6NDE6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0LzogYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlIGl0IGZhaWxzLCB5YXkgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlCgkgIGl0IGZhaWxzLCB5YXkgIQoKMjAwNS0wNi0yMSAxNjo1MzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoKMjAwNS0wNi0yMSAxNjo0ODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy92YWx1ZV9zZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvdGVzdF9nc3RfaW5pdC5jOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBvdmVyIGEgdmFsdWVfc2VyaWFsaXplIHRlc3QKCjIwMDUtMDYtMjAgMTU6MTg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfYnVmZmVyKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgRml4IHNlcmlhbGlzYXRpb24gb2YgYnVmZmVycywgdGhleSBhcmUgbm90IGJveGVkIHR5cGVzIGFueW1vcmUKCjIwMDUtMDYtMjAgMTU6MTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgVGVzdGNhc2UgdG8gc2hvdyBlcnJvciBpbiBidWZmZXItb24tY2FwcyBzZXJpYWxpc2F0aW9uLgoKMjAwNS0wNi0yMCAxNToxMzo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvcmFuZG9tL3dpbmdvL3BvcnRpbmctcGx1Z2lucy10by0wLjk6IEEgcGl0aWZ1bCBkb2N1bWVudCBJCgkgIHdpbGwgYmUgYWRkaW5nIHRvIGxhdGVyLgoKMjAwNS0wNi0yMCAxMTo0MToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sKCSAgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgKGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluKTogU2V0IHRoZSBuYW1lIG9uIG9iamVjdCBjb25zdHJ1Y3Rpb24uCgkgIEF2b2lkIGRvdWJsZS1jaGVja2VkIGxvY2tpbmcuCgoyMDA1LTA2LTIwIDExOjMyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBGaXggcG90ZW50aWFsIGVuZGxlc3MgbG9vcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgIEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoKMjAwNS0wNi0yMCAxMToyNzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvZ2hvc3RwYWRzLmM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5vdGhlciB0ZXN0IHRoYXQncyBvYnNvbGV0ZQoKMjAwNS0wNi0yMCAxMToyMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY2xvY2sgdGVzdHN1aXRlLCBpbXBvcnRhbnQgc3R1ZmYgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0yMCAxMToxODo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCjIwMDUtMDYtMTkgMTE6MzI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBnc3R0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBnc3R0YWcKCSAgKiBjaGVjay9nc3QvZ3N0dGFnLmM6IChjaGVja190YWdzKSwgKFNUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSksCgkgIChtYWluKToKCSAgbW92ZSBvdmVyIGZyb20gdGVzdHN1aXRlIGRpciBhbmQgY2xlYW4gdXAKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdGFncy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzdWl0ZS90YWdzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzL21lcmdlLmM6CgkgIHJlbW92ZSB0ZXN0c3VpdGUvdGFncwoKMjAwNS0wNi0xOSAxMDo1NDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCjIwMDUtMDYtMTkgMTA6MzE6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvLmdpdGlnbm9yZToKCSogdGVzdHMvYnVmc3BlZWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2J1ZnNwZWVkL1JFQURNRToKCSogdGVzdHMvYnVmc3BlZWQvZ3N0bWVtcG9vbC5jOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmg6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QxLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QyLmM6CgkqIHRlc3RzL3NwaWRleV9iZW5jaC5jOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGJ1ZnNwZWVkIGFuZCBzcGlkZXlfYmVuY2gKCjIwMDUtMDYtMTkgMTA6MjI6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoKMjAwNS0wNi0xOSAwMDo1MjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3RjaGVjay5oOiBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0cwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpOgoJICBmaXggbGVha2VkIHJlZmNvdW50cyAoSSBob3BlIDopKSBzbyB1bml0dGVzdCB3b3JrcwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsCgoyMDA1LTA2LTE4IDIyOjMzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNS0wNi0xNyAxMjowMDozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wNi0xNyAxMTo1ODo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19jaGFpbik6IFJlbW92ZSBib2d1cwoJICBhc3NlcnQ7IGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIGluCgkgIGJldHdlZW4gdGhlIGNoZWNrcyBpbiBnc3RwYWQuYyBhbmQgdGhlIGltcGxlbWVudGF0aW9uLiBSZWx5IG9uCgkgIGZpbmlzaF9wcmVyb2xsKCkgdG8gcmV0dXJuIGEgRkxVU0hJTkcgb3Igc2ltaWxhciBpbnN0ZWFkIG9mIG9uIHRoZQoJICBhc3NlcnQuCgoyMDA1LTA2LTE3IDExOjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZSBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2V2ZW50KTogT25seSB3YWl0IGZvciB0aGUKCSAgY2xvY2sgYW5kIHBvc3QgYW4gRU9TIG1lc3NhZ2UgaWYgd2UgY29tZSBvdXQgb2YgZmluaXNoX3ByZXJvbGwgaW4KCSAgdGhlIHBsYXlpbmcgc3RhdGUuCgoyMDA1LTA2LTE3IDA5OjU4OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluY29ycG9yYXRlIHBsdWdpbnMgc3R1ZmYgYW5kIHVuaW5zdGFsbGVkIHN0dWZmCgoyMDA1LTA2LTE3IDA5OjMyOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwOToxMjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogZ3N0L2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMTcgMDg6NTk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogLmdpdGlnbm9yZToKCSogQ2hhbmdlTG9nOgoJKiBSRUFETUU6CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmU7IGZpeCBSRUFETUUKCjIwMDUtMDYtMTYgMTc6NTA6MTYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBwb3NzaWJsZSB2YWx1ZSBmb3IgZmlsdGVyX2NhcHMgcHJvcGVydHksIGluZGljYXRpbmcgR1NUX0NBUFNfQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlCgkgIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgoyMDA1LTA2LTA5IDEzOjMzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IGZpeCBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgIGZpeCBkZWJ1ZyBvdXRwdXQKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgdXNlIGxpYmdzdCBwcmVmaXgKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHNwZWMgZm9yIGl0CgoyMDA1LTA2LTA5IDEyOjIzOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdHJlYW1lci5zcGVjLmluOiBjbGVhbiB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAKCjIwMDUtMDYtMDkgMTI6MDk6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowMzowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBUT0RPOgoJKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCjIwMDUtMDYtMDkgMTI6MDA6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBwbyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbyB1cGRhdGVzCgoyMDA1LTA2LTA5IDExOjEyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0wNi0wOCAyMjoxNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgKiBwYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBSUEFEIGZpeGVzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBOZXcgZ2hvc3QgcGFkIGltcGxlbWVudGF0aW9uIGFzIGZ1bGwgcHJveHkKCSAgcGFkcy4gVGhlIHRyaWNreSB0aGluZyBpcyB0aGV5IHByb3ZpZGUgYm90aCBzb3VyY2UgYW5kIHNpbmsKCSAgaW50ZXJmYWNlcywgc2luY2UgdGhleSBwcm94eSB0aGUgaW50ZXJuYWwgcGFkIGZvciB0aGUgZXh0ZXJuYWwKCSAgcGFkLCBhbmQgdmljZSB2ZXJzYS4gSW1wbGVtZW50IHdpdGggbG93ZXItbGV2ZWwgUHJveHlQYWQgb2JqZWN0cywKCSAgd2l0aCB0aGUgaW50ZXJpb3IgcHJveHkgcGFkIGFzIGEgY2hpbGQgb2YgdGhlIGV4dGVyaW9yIGdob3N0IHBhZC4KCSAgU2hvdWxkIHdyaXRlIGEgZG9jIG9uIHRoaXMuCgkgICogZ3N0L2dzdHBhZC5oOiBzL1JQQUQvUEFELywgcy9SZWFsUGFkL1BhZC8uCgkgIChnc3RfcGFkX3NldF9uYW1lLCBnc3RfcGFkX3NldF9wYXJlbnQpOiBNYWNyb3MgcmVtb3ZlZCwgdXNlCgkgIGdzdF9vYmplY3QgQVBJLgoJICAqIGdzdC9nc3RwYWQuYzogQmlnIGNoYW5nZXMuIE5vIG1vcmUgc3R1YiBiYXNlIEdzdFBhZCwgbm93IGFsbAoJICBwYWRzIGFyZSByZWFsIHBhZHMuIE5vIGdob3N0IHBhZHMgaW4gdGhpcyBmaWxlLiBOb3QgZG9jdW1lbnRpbmcKCSAgdGhlIG15cmlhZCBzL1JQQUQvUEFELyBhbmQgUkVBTElaRSBmaXhlcy4KCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCk6IEFkZCBwcm9wZXJ0aWVzIGZvciAiZGlyZWN0aW9uIiBhbmQKCSAgInRlbXBsYXRlIi4gQm90aCBhcmUgY29uc3RydWN0LW9ubHksIHNvIHRoZXkgY2FuJ3QgY2hhbmdlIGR1cmluZwoJICB0aGUgbGlmZSBvZiB0aGUgcGFkLiBGaXhlcyBwcm9wZXJseSBkZXJpdmluZyBmcm9tIEdzdFBhZC4KCSAgKGdzdF9wYWRfY3VzdG9tX25ldywgZ3N0X3BhZF9jdXN0b21fbmV3X2Zyb21fdGVtcGxhdGUpOiBHb25lLiBGb3IKCSAgZGVyaXZlZCBvYmplY3RzLCBqdXN0IHNldCBwcm9wZXJ0aWVzIHdoZW4gY3JlYXRpbmcgdGhlIG9iamVjdHMgdmlhCgkgIGdfb2JqZWN0X25ldy4KCSAgKGdzdF9wYWRfZ2V0X3BhcmVudCk6IEltcGxlbWVudCBhcyBhIGZ1bmN0aW9uLCByZXR1cm4gTlVMTCBpZiB0aGUKCSAgcGFyZW50IGlzIG5vdCBhbiBlbGVtZW50LgoJICAoZ3N0X3BhZF9nZXRfcmVhbF9wYXJlbnQsIGdzdF9wYWRfYWRkX2dob3N0X3BhZCkKCSAgKGdzdF9wYWRfcmVtb3ZlX2dob3N0X3BhZCwgZ3N0X3BhZF9yZWFsaXplKTogUmVtb3ZlZC4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgbmFtZSBhIGNvbnN0cnVjdAoJICBwcm9wZXJ0eS4gRG9uJ3Qgc2V0IGl0IGluIHRoZSBvYmplY3QgaW5pdC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9hZGRfcGFkKTogRG9uJ3QgYWxsb3cgYWRkaW5nIHBhZHMKCSAgd2l0aCBVTktOT1dOIGRpcmVjdGlvbi4KCSAgKGdzdF9lbGVtZW50X2FkZF9naG9zdF9wYWQpOiBSZW1vdmUgbm9uLW9ydGhvZ29uYWwgQVBJLiBSZXBsYWNlCgkgIHdpdGggZ3N0X2VsZW1lbnRfYWRkX3BhZCAoZSwgZ3N0X2dob3N0X3BhZF9uZXcgKG5hbWUsIHBhZCkpLgoJICAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCk6IFJlbW92ZSBnaG9zdC1wYWQgc3BlY2lhbCBjYXNlcy4KCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOiBSZW1vdmUgcnBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogVXNlIGdzdF9wYWRfZ2V0X3BhcmVudCB0bwoJICBjYXRjaCB0aGUgcGFkJ3MtcGFyZW50LW5vdC1hbi1lbGVtZW50IGNhc2UuCgkgICogZ3N0L2dzdC5oOiBJbmNsdWRlIGdzdGdob3N0cGFkLmguCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiBObyBtb3JlIHJlYWwsIGdob3N0IHBhZHMuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBBZGQgZ3N0Z2hvc3RwYWQuW2NoXS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IENoZWNrIHRoYXQgbGlua2luZwoJICBpbnRvIGEgYmluIGNyZWF0ZXMgZ2hvc3QgcGFkcywgYW5kIHRoYXQgdGhlIHJlZmNvdW50cyBhcmUgcmlnaHQuCgkgIFBhcnRseSBtb3ZlZCBmcm9tIGdzdGJpbi5jLgoKMjAwNS0wNi0wOCAxNDowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHNldHVwX3BpcGVsaW5lKSwgKHJ1bl9waXBlbGluZSksCgkgIChTVEFSVF9URVNUKSwgKGNsZWFudXBfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBzb21lIHRlc3RzIHJlbGF0ZWQgdG8gY2xlYW51cCBhZnRlciBydW5uaW5nIHBpcGVsaW5lcwoKMjAwNS0wNi0wOCAxMzo1NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgoyMDA1LTA2LTA4IDEzOjQ1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXZpb3VzIGNvbW1pdCBhY2NpZGVudGFsbHkgYWxzbyBhZGRlZCByZWZjb3VudCBkZWZpbmVzIGZvciBnc3RtaW5pb2JqZWN0LCBsb2dnaW5nIHRoYXQgbm93CgoyMDA1LTA2LTA4IDEzOjQyOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSAncGx1Z2lucycgZGlyIHRvIHRoZSBQTFVHSU5fUEFUSCBpbiB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IHRvIGRyb3AgcmFuZG9tIG90aGVyIHBsdWdpbi1oYXZpbmcgcHJvamVjdHMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoKMjAwNS0wNi0wOCAxMzo0MTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCjIwMDUtMDYtMDggMTM6NDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBPQkpFQ1QgYWN0cyBvbiBvYmogbm90IGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoKMjAwNS0wNi0wOCAxMzo0MTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNi0wOCAxMzo0MDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlIHNwYWNlIGZpeGVzCgoyMDA1LTA2LTAzIDE4OjI2OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCjIwMDUtMDYtMDIgMTU6NDU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRnJlZSBleGlzdGluZyBjYXBzIGlmIHRoZSBjYXBzZmlsdGVyIGNoYW5nZXMuIEFkZCBhIEZJWE1FIGFib3V0IHNldHRpbmcgdGhvc2UgY2FwcyBvbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQKCSAgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHRoZSBwYWRzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKSwgKGdob3N0X3VwKToKCSAgQmVmb3JlIGFkZGluZyBhIGdob3N0IHBhZCB0byBhIHBhcmVudCBiaW4sIGNoZWNrIHRoYXQgdGhlcmUgaXNuJ3QKCSAgYWxyZWFkeSBvbmUgZm9yIHRoZSBlbGVtZW50IG9uIHRoZSBiaW4uIFByZXZlbnRzIGluZmluaXRlIHJlY3Vyc2lvbgoJICB3aGVuIHVzaW5nIGRlY29kZWJpbiBpbiBwYXJzZSBwaXBlbGluZXMuIEFuZHkgc2F5cyBoZSdsbCByZXdyaXRlIHRoZQoJICB3YXkgdGhpcyB3b3JrcyBhbnl3YXksIHNvIGlnbm9yZSB0aGUgaGFjay4KCjIwMDUtMDYtMDIgMTE6MTI6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZSBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZQoJICBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19kb19zZWVrKTogU2V0IHRoZQoJICBzZWdtZW50X3N0YXJ0IGFuZCBzZWdtZW50X2VuZCBwcm9wZXJseSBhY2NvcmRpbmcgdG8gdGhlIHNlZWsKCSAgbWV0aG9kLiBTZWdtZW50X2VuZCBpcyBzdGlsbCBhIGJpdCBmbGFreSBiZWNhdXNlIG9mZnNldCBjYW4gYmUKCSAgbmVnYXRpdmUgZm9yIENVUiBhbmQgRU5EIGNhc2VzLCBidXQgaXQgdGFrZXMgLTEgYXMgYW4gInVuc2V0IgoJICB2YWx1ZS4KCjIwMDUtMDYtMDIgMDk6NDI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0IHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pOgoJICBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0CgkgIHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCjIwMDUtMDYtMDIgMDk6Mzk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoKMjAwNS0wNi0wMiAwODoyNjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICBTbWFsbCBkb2MgdXBkYXRlcwoKMjAwNS0wNS0zMCAxNjoyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBQcm90ZWN0IGxhc3RfbWVzc2FnZSBwcm9wZXJ0eSBhcyBpdCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgIFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20KCSAgbXVsdGlwbGUgdGhyZWFkcy4KCjIwMDUtMDUtMzAgMTU6NTM6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgU2xpY2tlciBwYWQgYWN0aXZhdGlvbiBjb2RlLgoKMjAwNS0wNS0zMCAxNTo1MTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgZWxlbWVudGZhY3RvcnkgbWV0aG9kcyB0byBzZXBhcmF0ZSAuaCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0dHlwZXMuaDoKCSAgTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgoyMDA1LTA1LTMwIDE1OjQ4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgdHlwbyBmaXhlcywgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCjIwMDUtMDUtMzAgMTU6NDY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0LmM6IFJlbW92ZSBjcHUtb3B0IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9wb3B0X3RhYmxlKSwgKGluaXRfcG9zdCksCgkgIChpbml0X3BvcHRfY2FsbGJhY2spOgoJICBSZW1vdmUgY3B1LW9wdCBmbGFnLgoKMjAwNS0wNS0zMCAxNTo0NDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogQXZvaWQgdHlwZWNoZWNraW5nIGluIHBsYWNlcyB3aGVyZSBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIEFkZGVkIGFjY2Vzc29yIGZvciBtYWxsb2NfZGF0YS4KCjIwMDUtMDUtMzAgMTU6NDE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9wYWRfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBQcm9wYWdhdGUgZXJyb3JzIGZyb20gX3NldF9jYXBzKCkgaW4gY29uZmlndXJlX3NyYy9zaW5rCgkgIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJldHVybmluZyBUUlVFLgoJICBGTFVTSCBldmVudHMgY2FuIHRyYXZlbCB1cCBhbmQgZG93bnN0cmVhbQoKMjAwNS0wNS0zMCAxNTozNjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEhhbmRsZSBFT1MgaW4gcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoKMjAwNS0wNS0zMCAxNTozNDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBSZW1vdmUgb2xkIHBpZWNlcyBvZiBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCk6CgkgIFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgRmx1c2hpbmcgdGhlIHF1ZXVlIGluIGFuIHVwc3RyZWFtIGV2ZW50IGlzIGEgdmVyeSBiYWQgaWRlYS4KCjIwMDUtMDUtMjkgMTM6NTY6NTUgKzAwMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0c2ltcGxlc2NoZWR1bGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUNPTVBBTlkuCgoyMDA1LTA1LTI3IDA5OjI4OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29uZmxpY3QgZG9vYmVycwoKMjAwNS0wNS0yNyAwOToyNzozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb2xsZWN0KTogVXNlCgkgIGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3Qgc28gYXMgdG8gYWRkIGEgcmVmIG9uIHRoZSBvYmplY3QgKHdoaWNoCgkgIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIHRoZSB2YWx1ZSBpcyB1bnNldCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19jbGFzc19pbml0KTogRml4IHNpZ25hbAoJICBhcmcgdHlwZSBpbiA6OmhhbmRvZmYuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKTogQWxzbyBkZWFjdGl2YXRlCgkgIHBhZHMgaW4gUkVBRFktPk5VTEwsIGp1c3QgaW4gY2FzZSB0aGUgZWxlbWVudCBkaWRuJ3QgbWFrZSBpdCB0bwoJICBQQVVTRUQuIFdpbmdvIHRlc3RlZCwgV2ltIGFwcHJvdmVkLgoKMjAwNS0wNS0yNiAxMDo1MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQSBmbHVzaGluZyBwYWQgY2Fubm90IGJlIHVzZWQgdG8gYWxsb2NfYnVmZmVyIGZyb20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCjIwMDUtMDUtMjYgMTA6NDg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLio6IEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9jaGVjayksCgkgIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvCgkgIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCjIwMDUtMDUtMjUgMTk6MzM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2luayksIChoYXNfYW5jZXN0b3IpLAoJICAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGFwcGVuZF9jaGlsZCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGUpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgRml4IHN0YXRlIGNoYW5nZXMgZm9yIG5vbiBzaW5rcy4gV2Ugbm93IGNoYW5nZSBzaW5rcywgdGhlbiBlbGVtZW50cwoJICB3aXRoIHVuY29ubmVjdGVkIHNyY3BhZHMsIHRoZW4gdGhlIHJlc3QuCgkgIE1vcmUgZWZmaWNpZW50IHF1ZXVlIHVubG9ja2luZyBpbiBmbHVzaCBhbmQgc3RhdGUgY2hhbmdlcy4KCSAgU2V0IHRoZSBwYWQgYWN0aXZhdGUgbW9kZSBldmVuIGlmIGl0IGRvZXMgbm90IGhhdmUgYW4gYWN0aXZhdGUKCSAgZnVuY3Rpb24uCgoyMDA1LTA1LTI1IDE2OjA5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgaGFwcGlmeSBidWlsZGJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGFwcGlmeSBidWlsZGJvdAoKMjAwNS0wNS0yNSAxNTo1Nzo1NyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCBnbyBpbiBwdWxsIG1vZGUgZm9yIG5vbi1zZWVrYWJsZSBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgIERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Rpc3Bvc2UpLCAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGZyZWVfZW50cnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwgKGZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZG9fcHVsbF90eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWxsb3cgdHlwZWZpbmRpbmcgKHcvbyBzZWVraW5nKSBpbiBwdXNoLW1vZGUsIHNpbXBsaWZpZWQgdmVyc2lvbgoJICBvZiB3aGF0IHdhcyBpbiAwLjguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX2pvaW4pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBnc3RfYnVmZmVyX2pvaW4oKSBmcm9tIDAuOC4KCjIwMDUtMDUtMjUgMTM6NTk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCjIwMDUtMDUtMjUgMTE6NTA6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jayBpbiB0YXNrIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwKCSAgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZXNyY19sb29wKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSksIChnc3RfcmVhbF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcmVhbF9wYWRfaW5pdCksIChnc3RfcmVhbF9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfaXNfYWN0aXZlKSwgKGdzdF9wYWRfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9wYWRfdW5saW5rKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCksCgkgIChnc3RfcmVhbF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9nZXRfcGVlciksIChnc3RfcGFkX3JlYWxpemUpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcmVhbF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfaW5pdCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpOgoJICBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jawoJICBpbiB0YXNrIGZ1bmN0aW9uLgoJICBSZW1vdmUgQUNUSVZFIHBhZCBmbGFnLCB1c2UgRkxVU0hJTkcgZXZlcnl3aGVyZQoJICBBZGRlZCBfcGFkX2NoYWluKCksIF9wYWRfZ2V0X3JhbmdlKCkgdG8gY2FsbCBjaGFpbi9nZXRyYW5nZQoJICBmdW5jdGlvbnMuCgkgIEFkZCBsb2NrcyBhcm91bmQgSVNfRkxVU0hJTkcgd2hlbiByZWFkaW5nLgoJICBUYWtlIFNUUkVBTSBsb2NrIGluIGNoYWluKCksIGdldF9yYW5nZSgpIGZ1bmN0aW9ucyBzbyBwbHVnaW5zCgkgIGRvbid0IG5lZWQgdG8gdGFrZSBpdCBhbnltb3JlLgoKMjAwNS0wNS0yNSAxMToyNjoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogVW5yZWYgbWVzc2FnZSBhZnRlciB1c2luZyBpdHMgY29udGVudHMgaW5zdGVhZCBvZiBiZWZvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mCgkgIGJlZm9yZS4KCjIwMDUtMDUtMjQgMTY6NDc6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgRG9jcyB1cGRhdGVzLgoJICBBZGRlZCBnZW5lcmFsIG92ZXJ2aWV3IGRvYy4KCSAgQWRkZWQgZHJhZnQgZ2hvc3RwYWQgcmVwbGFjZW1lbnQgaWRlYS4KCjIwMDUtMDUtMjIgMDQ6MjY6NDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvdG1wbC9vbGQvOiBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJ1ZmZlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDbG9jay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdERhdGEuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RXZlbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RJbmRleC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFN0cnVjdHVyZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFRhZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkc19jb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nZXR0ZXh0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ29iamVjdDJndGsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ncmFtbWFyLnRhYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWFwcC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWxpYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdF9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YWdncmVnYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGFyY2guc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhdG9taWNfaW1wbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGJ1ZmZlcnN0b3JlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGF0YV9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGlza3Npbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RleHRyYXR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmFrZXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmaWxlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RodHRwc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtYXJzaGFsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bWQ1c2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZGlza3NyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGlwZWZpbHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzZWFyY2hmdW5jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNoYXBlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlcmlkZW50aXR5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3RhdGlzdGljcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRlZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRpbWVjYWNoZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHhtbHJlZ2lzdHJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3RocmVhZC1jb3RocmVhZHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC90eXBlcy5zZ21sOgoJICBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgoyMDA1LTA1LTIwIDEyOjQ3OjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNS0xOSAxOTo1NDowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0IHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBVc2UgLW5vLWNvbW1vbiBldmVyeXdoZXJlLiAgSW4gYSBzYW5lIHdvcmxkLCBpdAoJICB3b3VsZCBiZSB0aGUgZGVmYXVsdCBpbiBsaWJ0b29sLCBiZWNhdXNlIHdpdGhvdXQgaXQsIHlvdSBjYW4ndAoJICBidWlsZCBETExzIG9uIFdpbmRvd3MuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIEdzdENwdSwgR3N0RGF0YSwgR3N0VGhyZWFkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNwdS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGhyZWFkLnNnbWw6CgoyMDA1LTA1LTE5IDE5OjQxOjEyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0Lio6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0KSwKCSAgKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KSwgKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgoyMDA1LTA1LTE5IDE2OjI2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLiBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9zdWJidWZmZXJfY2xhc3NfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9zdWJidWZmZXJfaW5pdCksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgIE1ha2Ugc3ViYnVmZXIgdW5yZWYgdGhlIHBhcmVudCBpbiBmaW5hbGl6ZS4KCSAgc29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0wNS0xOSAxNjoyMzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfaW5pdCksIChnc3RfYmFzZXNpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBmcmVlIHByZXJvbGwgcXVldWUgdG9vIGVhcmx5LgoKMjAwNS0wNS0xOSAxNDo1MjoxNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0LzogSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L1JPQURNQVA6CgkgIEhpLCBJJ20gb3V0ZGF0ZWQuIFBsZWFzZSBzaG9vdCBtZS4KCjIwMDUtMDUtMTkgMTI6MDc6MzUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgRG8gbm90IGFjY2VzcyB2YXJpYWJsZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZGVsZXRlZC4KCjIwMDUtMDUtMTkgMDg6NDE6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlIG9iamVjdCBuYW1lIHlldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKToKCSAgQSBwbHVnaW4gZmVhdHVyZSBkb2VzIHVuZm9ydHVuYXRseSBub3QgdXNlIHRoZQoJICBvYmplY3QgbmFtZSB5ZXQuLi4KCjIwMDUtMDUtMTggMTc6MzU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwgKGdzdF9idWZmZXJfc3Bhbik6CgkgIFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgoyMDA1LTA1LTE4IDEzOjQ5OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzIGJlZW4gc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBGaXggY2xvY2sgc2V0dGVyeSBpbiBiaW5zIHdoZW4gYWRkaW5nIGtpZHMgYWZ0ZXIgdGhlIGNsb2NrIGhhcwoJICBiZWVuIHNlbGVjdGVkLgoKMjAwNS0wNS0xOCAxMzoyMzoyNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBXb3JrYXJvdW5kIHVudGlsIHNpZ25hbHMgc3VwcG9ydCBHc3RNaW5pT2JqZWN0LgoKMjAwNS0wNS0xOCAxMTozNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBPb3BzLCBmaXggYSB0eXBvIEdTVF9UWVBFX0JVRkZFUiAtPiBHU1RfVFlQRV9TVUJCVUZGRVIuCgoyMDA1LTA1LTE4IDA5OjU1OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBQb3J0ZWQgYW5kIGFkZGVkIGFkYXB0ZXIgdG8gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2NsYXNzX2luaXQpLCAoZ3N0X2FkYXB0ZXJfaW5pdCksCgkgIChnc3RfYWRhcHRlcl9kaXNwb3NlKSwgKGdzdF9hZGFwdGVyX2ZpbmFsaXplKSwgKGdzdF9hZGFwdGVyX25ldyksCgkgIChnc3RfYWRhcHRlcl9jbGVhciksIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfZmx1c2gpLCAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlKSwKCSAgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoKMjAwNS0wNS0xNyAxNzo1MDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZmZlZC91bnJlZmZlZCBvbmNlIGJlZm9yZSB0aHJlYWRzIGNhbiBiZSB1c2VkLiAgRml4ZXMgIzMwNDU1MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlCgkgIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoKMjAwNS0wNS0xNyAxNzozNzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIFVucmVmIGJ1ZmZlciB3aGVuIGZsdXNoaW5nIGluIGJhc2VzaW5rLgoJICBGbHVzaCBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFVucmVmIGJ1ZmZlciB3aGVuIF9wdXNoKCkgcmV0dXJucyBhbiBlcnJvci4KCSAgRG9uJ3QgZnJlZSBNaW5pT2JqZWN0IGluc3RhbmNlIHdoZW4gcmVmY291bnQgaXMgaW5jcmVtZW50ZWQKCSAgaW4gX2ZpbmFsaXplKCkgc28gdGhhdCB3ZSBjYW4gcmVjb3ZlciBvYmplY3RzLgoKMjAwNS0wNS0xNyAxNzoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJICBzbWFsbCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGRvYyBmaXhlcwoKMjAwNS0wNS0xNyAxNDoxMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFyIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfcHVzaCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgUmVtb3ZlIElOX1NFVENBUFMgZmxhZyB0b28uCgoyMDA1LTA1LTE3IDE0OjAxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZW1vdmUgaW1wbGljaXQgY2FzdCBmcm9tIGdib29sZWFuIHRvIEdzdEVsZW1lbnRTdGF0ZVJldHVybjsgbWFrZSBzdXJlIHdlIHN0aWxsIHJldHVybiBmYWlsdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOwoJICBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUgaW4gcGF1c2VkID0+IHJlYWR5IGNhc2UgaWYKCSAgdGhlIHBhcmVudCBjbGFzcyBmYWlscyB0byBjaGFuZ2Ugc3RhdGUgYW5kIG91ciBvd24gc3RvcAoJICB2ZnVuYyBzdWNjZWVkcy4KCjIwMDUtMDUtMTcgMTA6NDE6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1lc3NhZ2Ugd2FzIHVucmVmZmVkIHRvbyBzb29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgoyMDA1LTA1LTE2IDIxOjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogRXJyLi4uIHVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE5ldyB0ZXN0IGZvciB0aGUKCSAgZ2hvc3RpbmctaWYtZWxlbWVudHMtbm90LWluLXNhbWUtYmluIGJlaGF2aW9yLgoKMjAwNS0wNS0xNiAyMTowNToyMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YKCSAgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoKMjAwNS0wNS0xNiAyMDoyMTo1NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmVtb3ZlIEdzdERhdGEgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKFNUQVJUX1RFU1QpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L01ha2VmaWxlLmFtOiBhZGQgbWluaW9iamVjdCwgcmVtb3ZlIGRhdGEKCSAgKiBnc3QvZ3N0Lmg6IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3RkYXRhLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhLmg6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVzLmg6IHJlbW92ZSBHc3RFdmVudCBhbmQgR3N0TWVzc2FnZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L2dzdG1hcnNoYWwubGlzdDogY2hhbmdlIEJPWEVEIC0+IE9CSkVDVAoJICBJbXBsZW1lbnQgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIE1vZGlmeSB0byBiZSBzdWJjbGFzc2VzIG9mIEdzdE1pbmlPYmplY3QuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSksIChnc3RfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfYnVmZmVyX2ZpbmFsaXplKSwgKF9nc3RfYnVmZmVyX2NvcHkpLAoJICAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfbmV3KSwgKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyksCgkgIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwgKGdzdF9zdWJidWZmZXJfaW5pdCksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLAoJICAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpLCAoZ3N0X2V2ZW50X2dldF90eXBlKSwKCSAgKGdzdF9ldmVudF9jbGFzc19pbml0KSwgKGdzdF9ldmVudF9pbml0KSwgKGdzdF9ldmVudF9maW5hbGl6ZSksCgkgIChfZ3N0X2V2ZW50X2NvcHkpLCAoZ3N0X2V2ZW50X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKSwKCSAgKGdzdF9tZXNzYWdlX2dldF90eXBlKSwgKGdzdF9tZXNzYWdlX2NsYXNzX2luaXQpLAoJICAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3Rwcm9iZS5jOiAoZ3N0X3Byb2JlX3BlcmZvcm0pLAoJICAoZ3N0X3Byb2JlX2Rpc3BhdGNoZXJfZGlzcGF0Y2gpOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKSwgKGdzdF9xdWVyeV9nZXRfdHlwZSksCgkgIChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpLCAoZ3N0X3F1ZXJ5X2luaXQpLAoJICAoX2dzdF9xdWVyeV9jb3B5KSwgKGdzdF9xdWVyeV9uZXcpOgoJICBVcGRhdGUgZWxlbWVudHMgZm9yIEdzdERhdGEgLT4gR3N0TWluaU9iamVjdCBjaGFuZ2VzCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZmluYWxpemUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9hZGRfYnVmZmVyX2Z1bmMpLAoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9jbGVhcmVkX2Z1bmMpLCAoZ3N0X2J1ZmZlcl9zdG9yZV9nZXRfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwgKGZyZWVfZW50cnlfYnVmZmVycyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCjIwMDUtMDUtMTUgMjM6MTg6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IERvbid0IGluY2x1ZGUgaGVhZGVycyB0aGF0IHdlcmUganVzdCByZW1vdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZQoJICBqdXN0IHJlbW92ZWQuCgoyMDA1LTA1LTE1IDIzOjE2OjI5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndAoJICBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RwaXBlZmlsdGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuaDoKCSAgKiBwby9QT1RGSUxFUy5pbjogUmVtb3ZlIGFib3ZlIGZpbGVzLgoKMjAwNS0wNS0xNCAxODowMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBVc2Ugc2lua19pdGVyYXRvcl9maWx0ZXIgc28gYXMgdG8gZ2V0IHRoZSByZWZzIHJpZ2h0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlcgoJICBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IE5ldyBmdW5jdGlvbiwgd3JhcHMgYmluX2VsZW1lbnRfaXNfc2luaywKCSAgdW5yZWZmaW5nIG9iamVjdHMgdGhhdCBkb24ndCBwYXNzIHRoZSBmaWx0ZXIuCgoyMDA1LTA1LTE0IDE3OjEyOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogRHJvcCByZWYgb24gYnVzIGFmdGVyCgkgIGdzdF9lbGVtZW50X3NldF9idXMuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IFNldCB0aGUgYnVzIG9uIHRoZSBwaXBlbGluZSB0byBOVUxMLiBJbgoJICBub3JtYWwgY2FzZXMsIHRoaXMgd2lsbCBkZXN0cm95IHRoZSBidXMuCgkgICogZ3N0L2dzdHV0aWxzLmMgKHByZXBhcmVfbGlua19tYXliZV9naG9zdGluZyk6IERyb3AgcmVmIG9uIHJvb3QKCSAgb2JqZWN0LgoKMjAwNS0wNS0xNCAxNTo1NDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluIGhhcyBubyBzaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluCgkgIGhhcyBubyBzaW5rcy4KCjIwMDUtMDUtMTQgMTU6MzI6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogSW5zdGVhZCBvZiBjYWxsaW5nCgkgIGdzdF9wYWRfbGluaywgY2FsbCBwYWRfbGlua19tYXliZV9naG9zdGluZywKCSAgKHBhZF9saW5rX21heWJlX2dob3N0aW5nKTogTGlua3MgcGFkcywgbWFraW5nIHN1cmUgdGhhdCB0aGUKCSAgZWxlbWVudHMgYmVpbmcgbGlua2VkIGFyZSBpbiB0aGUgc2FtZSBiaW4uCgkgIChmaW5kX2NvbW1vbl9yb290LCBvYmplY3RfaGFzX2FuY2VzdG9yLCBnaG9zdF91cCwgcmVtb3ZlX3BhZCk6CgkgIEhlbHBlcnMgZm9yIHBhZF9saW5rX21heWJlX2dob3N0aW5nLgoKMjAwNS0wNS0xMyAxMjo1Mzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgPj0gMi40LjAgKGZvciB0aGUgZ19hdG9taWNfKiBmdW5jcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoKMjAwNS0wNS0xMyAxMDoxODo0MSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyAuaCBmaWxlIHRvIHNwZWMgZmlsZQoKMjAwNS0wNS0xMyAwOToyNzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgIE1lbnRpb24gR3N0UHVzaFNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgoyMDA1LTA1LTEyIDE5OjQ1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQgY2hlY2tzIChmb3cgbm93KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwKCSAgKGdzdF9iYXNlc3JjX2lzX3NlZWthYmxlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoYmluX2VsZW1lbnRfaXNfc2luayksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIElkZW50aWZ5IHNpbmtzIGJ5IHRoZWlyIGZsYWcgdG8gYXZvaWQgb3Zlcmx5IGNvbXBsaWNhdGVkCgkgIGNoZWNrcyAoZm93IG5vdykuCgkgIERvIHN0YXRlIGNoYW5nZXMgZXZlbiBmb3IgZWxlbWVudHMgbm90IHJlYWNoYWJsZSBmcm9tIHRoZQoJICBzaW5rcy4KCSAgQmFzZVNpbmsgaXMgYSBzaW5rIG5vdyA6KQoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8gaW4gdGhlIGJhc2VzcmMuCgoyMDA1LTA1LTEyIDE1OjA5OjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEltcGxlbWVudCBfcXVlcnkgb24gYSBiaW4sIHNpbWlsYXIgdG8gX3NlbmRfZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3F1ZXJ5KToKCSAgSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCjIwMDUtMDUtMTIgMTM6NTk6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywgbm90IEdTVF9GT1JNQVRfVElNRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZG9fc2Vlayk6CgkgIERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywKCSAgbm90IEdTVF9GT1JNQVRfVElNRS4KCjIwMDUtMDUtMTIgMTM6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpOgoJICBTYW1lIGZpeCBhcyBSb25hbGQncyBidXQgd2l0aG91dCB0aGUgc2lnbmFsLgoKMjAwNS0wNS0xMiAxMjoyNzowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbik6CgkgIE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCjIwMDUtMDUtMTIgMTI6MTc6MjMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGNiX3BhcmVudF91bnNldCksCgkgIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIElmIGEgY2hpbGQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIHdoaWxlIHdlIHJlbW92ZSB0aGUgY2hpbGQgZnJvbQoJICB0aGUgYmluIGFuZCB3aGlsZSB3ZSdyZSByZXRyaWV2aW5nIGl0cyBzdGF0ZSwgc2lnbmFsIHRoaXMgdG8gdGhlCgkgIGdldF9zdGF0ZSBmdW5jdGlvbiBzbyB3ZSBhYm9ydCB0aGUgd2FpdCAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvcgoJICBhIHRpbWVvdXQpIGFuZCBjYW4gaW1tZWRpYXRlbHkgcmUtaXRlcmF0ZSBvdmVyIGFsbCBvdGhlciBlbGVtZW50cy4KCjIwMDUtMDUtMTIgMTA6NDM6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaHNyY19nZXRfdHlwZSksCgkgIChnc3RfcHVzaHNyY19iYXNlX2luaXQpLCAoZ3N0X3B1c2hzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVzaHNyY19pbml0KSwgKGdzdF9wdXNoc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBBZGRlZCBpc19zZWVrYWJsZSB0byBCYXNlU3JjCgkgIEFkZGVkIHNpbXBsZSBQdXNoU3JjLgoKMjAwNS0wNS0xMSAwOToyMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksIChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KSwgKGludGVyc2VjdF9jYXBzX2Z1bmMpLAoJICAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbiksIChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICBGaXggcmVmY291bnRpbmcgaW4gdXRpbHMgZnVuY3Rpb24uCgkgIE5vIHBvaW50IGluIHRyeWluZyB0byBhY3RpdmF0ZSBhIHBhZCB3aGVuIGl0J3MgYWRkZWQsIGl0IGNvdWxkCgkgIGJlIGFkZGVkIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhbmQgdGhlbiB3ZSBkZWFkbG9jaywgdGhlCgkgIGVsZW1lbnQgaGFzIHRvIGRlY2lkZSB3aGF0IHRvIGRvLgoKMjAwNS0wNS0xMSAwMzozNzoxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfcmVuZGVyKTogRXIsIGVtaXQgd2l0aAoJICAqYWxsKiB0aGUgYXJndW1lbnRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KTogR3JhYiB0aGUKCSAgc3RyZWFtIGxvY2sgaWYgaXQncyBhIEZMVVNIX0RPTkU7IG5vcm1hbCBmbHVzaGVzIGRvbid0IGdldCB0aGUKCSAgbG9jayAoYWNjb3JkaW5nIHRvIHRoZSBkb2NzIC0tIGlmIHRoaXMgaXMgd3JvbmcgY2hhbmdlIHRoZSBkb2NzKS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IFNldCB0aGUgYnVzIHRvCgkgIGZsdXNoIG1lc3NhZ2VzIGluIHRoZSBOVUxMIHN0YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19wb3N0KTogSWYgYSBidXMgaXMgZmx1c2hpbmcsIHVucmVmIHRoZQoJICBtZXNzYWdlIGltbWVkaWF0ZWx5IGFuZCByZXR1cm4uCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyk6IE5ldyBmdW5jdGlvbi4gSWYgYSBidXMgaXMgZmx1c2hpbmcsIGl0CgkgIGZsdXNoZXMgb3V0IGFueSBxdWV1ZWQgbWVzc2FnZXMgYW5kIGltbWVkaWF0ZWx5IHVucmVmcyBuZXcKCSAgbWVzc2FnZXMuIFRoaXMgaXMgc28gd2hlbiBhbiBlbGVtZW50IGdvZXMgdG8gTlVMTCwgYWxsIG9mIHRoZQoJICB1bmhhbmRsZWQgbWVzc2FnZXMgY29taW5nIGZyb20gaXQgY2FuIGJlIGZyZWVkLCBhbmQgdGhlaXIKCSAgcmVmZXJlbmNlcyB0byB0aGUgZWxlbWVudCBkcm9wcGVkLiBJbiBvdGhlciB3b3JkczogbWVzc2FnZSBzb3VyY2UKCSAgcmVmIGNvbnNpZGVyZWQgaGFybWZ1bCA6UAoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVbnJlZiBwZWVyIGVsZW1lbnQgd2hlbgoJICB3ZSdyZSBmaW5pc2hlZCB3aXRoIGl0LgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCjIwMDUtMDUtMTAgMTQ6NTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVwaWQgcHJpbnRmCgoyMDA1LTA1LTEwIDE0OjUwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIGZsYWdzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS9jb21wYXJlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCjIwMDUtMDUtMDkgMjE6Mzc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOiBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgoyMDA1LTA1LTA5IDE1OjU0OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIYW5kbGUgbmVnYXRpdmUgb2Zmc2V0cyBiZXR0ZXIuIEZpeGVzIGRlY29kZWJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayk6CgkgIEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoKMjAwNS0wNS0wOSAxNDo0NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpOgoJICBJbXBsZW1lbnQgYWNjZXB0X2NhcHMuCgkgIEZpeCBzaWxseSBsb2NrL3VubG9jayBtaXNtYXRjaCBpbiBiYXNlIGNsYXNzLgoKMjAwNS0wNS0wOSAxMDo1MzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgb2xkIHF1ZXJ5IGZ1bmN0aW9ucy4gUG9ydGVkIG9sZCBjb2RlLgoJICBBZGRlZCBwb3NpdGlvbi9jb252ZXJ0IGhlbHBlciBmdW5jdGlvbnMgdG8gZ3N0dXRpbHMuCgkgIFJlb3JkZXJlZCBnc3RwYWQuYyBjb2RlLCBncm91cGluZyByZWxldmFudCB0aGluZ3MuCgkgIFJlbW92ZSBnc3RfbWVzc2FnZV9uZXcoKSwgYWx3YXlzIG5lZWQgdG8gc3BlZmljeSBhIHNwZWNpZmljCgkgIG1lc3NhZ2UuCgoyMDA1LTA1LTA5IDA2OjIxOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuaDogQWRkIHNvbWUgaW5jbHVkZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5oOiBJbmNsdWRlIG1vcmUgaGVhZGVycy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKTogTmV3IHJvdXRpbmUsIHJlcGxhY2VzCgkgIHNvbWUgdXNlcyBvZiBnc3RfcGFkX3F1ZXJ5LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6IEJ1aWxkIGZpeGVzLiBNYWtlIHBhcnNlIGZ1bmN0aW9ucyBpZ25vcmUKCSAgTlVMTCBvdXQgcGFyYW1ldGVycy4KCSAgKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pOiBOZXcgcHJvYywgYWxsb2NhdGVzIGEgbmV3IHBvc2l0aW9uCgkgIHF1ZXJ5LgoJICAqIGdzdC9NYWtlZmlsZS5hbSAobGliZ3N0cmVhbWVyX0BHU1RfTUFKT1JNSU5PUkBfbGFfU09VUkNFUyk6IEFkZAoJICBnc3RxdWVyeXV0aWxzLmMgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KTogSW1wbGVtZW50IHdpdGgKCSAgdGhlIGdlbmVyaWMgR19WQUxVRV9DT0xMRUNULgoKMjAwNS0wNS0wOCAxNzowNzowNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogKGdzdF9oZWFkZXJzKToKCSAgQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMKCSAgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgoyMDA1LTA1LTA2IDIxOjQxOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuaAoJICAqIGdzdC9nc3RxdWVyeS5jIChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpOiBFeHRlbmQgR3N0UXVlcnkgZnJvbQoJICBHc3REYXRhLCBpbml0IGEgbWVtY2h1bmsuCgkgIChzdGFuZGFyZF9kZWZpbml0aW9ucyk6IEFkZCBhIGZldyBxdWVyeSB0eXBlcywgZGVwcmVjYXRlIGEgZmV3LgoJICAoZ3N0X3F1ZXJ5X2dldF90eXBlKTogTmV3IHByb2MuCgkgIChfZ3N0X3F1ZXJ5X2NvcHksIF9nc3RfcXVlcnlfZnJlZSwgZ3N0X3F1ZXJ5X25ldyk6IEdzdERhdGEKCSAgaW1wbGVtZW50YXRpb24uCgkgIChnc3RfcXVlcnlfbmV3X2FwcGxpY2F0aW9uLCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSk6IE5ldyBwdWJsaWMKCSAgcHJvY3MuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OiBSZW1vdmVkIExJTktTIGZyb20gdGhlIHF1ZXJ5IHR5cGVzLAoJICBiZWNhdXNlIGFsbCB0aGUgcmVzdCBjYW4gYmUgZGlzcGF0Y2hlZCB0byBvdGhlciBwYWRzIC0tIHNlZW1lZAoJICB1Z2x5IHRvIGhhdmUgYSBxdWVyeSB0aGF0IGNvdWxkbid0IGJlIGRpc3BhdGNoZWQuIGludGVybmFsX2xpbmtzCgkgIGlzIGZpbmUgYXMgYSBwYWQgbWV0aG9kLgoJICAqIGdzdC9nc3RwYWQuaDogQWRkIHF1ZXJ5MiBhcyBhIHBhZCBtZXRob2QsIGFkZCB0aGUgbmV3IGZ1bmN0aW9ucwoJICBpbiBnc3RwYWQuYywgYnV0IG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IGZvciB0aGUgbW9tZW50LgoJICBXaWxsIGZpeCBiZWZvcmUgMC45IGlzIG91dC4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IE5ldyBmaWxlcywgaW1wbGVtZW50IDMgbWV0aG9kcyBmb3IgZWFjaAoJICBxdWVyeSB0eXBlOiBwYXJzZV9xdWVyeSwgcGFyc2VfcmVzcG9uc2UsIGFuZCBzZXQuIFByb2JhYmx5IG5lZWQgYW4KCSAgYWxsb2NhdG9yIGFzIHdlbGwuCgkgICogZ3N0L2dzdC5oOiBBZGQgZ3N0cXVlcnkuaCBhbmQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZXNpbmtfcXVlcnkyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3F1ZXJ5Mik6IFJlcGxhY2Ugb2xkIHF1ZXJ5LAoJICBxdWVyeV90eXBlcywgYW5kIGZvcm1hdHMgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnkyLCBnc3RfcGFkX3F1ZXJ5Ml9kZWZhdWx0KQoJICAoZ3N0X3BhZF9zZXRfcXVlcnkyX2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9ucy4KCSAgKGdzdF9yZWFsX3BhZF9pbml0KTogU2V0IHF1ZXJ5Ml9kZWZhdWx0IGFzIHRoZSBkZWZhdWx0IHF1ZXJ5MgoJICBmdW5jdGlvbi4gQmFzaWNhbGx5IGp1c3QgZGlzcGF0Y2hlcyB0byBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoJICBOZWVkcyByZXZpZXchCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oIChfR1NUX0RBVEFfSU5JVCk6IFNldCBkYXRhLT5yZWZjb3VudCB0byAxCgkgIHdpdGhvdXQgdXNpbmcgdGhlIGF0b21pYyBvcGVyYXRpb25zLiBPbmx5IG9uZSB0aHJlYWQgY2FuIHBvc3NpYmx5CgkgIGJlIGFjY2Vzc2luZyB0aGUgZGF0YSBhdCB0aGlzIHBvaW50LiBDaGFuZ2VkIHNvIGFzIHRvIGF2b2lkCgkgIGdzdF9hdG9taWMgb3BlcmF0aW9ucy4KCjIwMDUtMDUtMDYgMTk6NTA6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcHVzaCk6CgkgIEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgoyMDA1LTA1LTA2IDE3OjMzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJICAqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvTWFrZWZpbGU6CgkgIFB1cmdlIEdzdEF0b21pYyBzdHVmZiBmcm9tIGRvY3MgYW5kIHdpbjMyIG1ha2VmaWxlcyBhcyB3ZWxsCgoyMDA1LTA1LTA2IDE3OjEwOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfZ2V0Y2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9nZXRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChpbnRlcnNlY3RfY2Fwc19mdW5jKToKCSAgRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIEFsd2F5cyB0YWtlIFFVRVVFX0xPQ0sgYWZ0ZXIgU1RSRUFNX0xPQ0sgb3Igd2UgbWlnaHQgZGVhZGxvY2suCgkgIFNvbWUgZml4ZXMgZm9yIHRoZSBwZWVyX2dldF9jYXBzKCkgY2hhbmdlLgoKMjAwNS0wNS0wNiAxNjoxOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2ggZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgIEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2gKCSAgZnVuY3Rpb25zLgoKMjAwNS0wNS0wNiAwODoyNToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBGaXhlZCBzY2hlZHVsaW5nIGRlY2lzaW9uIGluIF9wYWRzX2FjdGl2YXRlKCkuCgoyMDA1LTA1LTA1IDIxOjU5OjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpbmFsIGNydWZ0IGZpeGFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgoyMDA1LTA1LTA1IDIxOjQ1OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgY3J1ZnQgcmVtb3ZhbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY3J1ZnQgcmVtb3ZhbAoKMjAwNS0wNS0wNSAyMTo0MjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICByZXZlcnQgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBjcnVmdAoKMjAwNS0wNS0wNSAyMTozNzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCjIwMDUtMDUtMDUgMTU6MDI6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiIHRoZSB0ZXN0IHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0XzJfZWxlbWVudHMpOiAiRml4IgoJICB0aGUgdGVzdCBzdWl0ZS4KCjIwMDUtMDUtMDUgMTE6NDM6MDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJyb2tlbiBzcGVjIGZpbGUKCjIwMDUtMDUtMDUgMDk6MzE6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksCgkgIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0cGFkc19uZXcpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksCgkgIChmaW5kX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdHBhZHNfaXNfYWN0aXZlKSwgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0cGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCksIChnc3RfY29sbGVjdHBhZHNfcGVlayksCgkgIChnc3RfY29sbGVjdHBhZHNfcG9wKSwgKGdzdF9jb2xsZWN0cGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3JlYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX2ZsdXNoKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNpbmtfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlc2lua19ldmVudCksCgkgIChnc3RfZmFrZXNpbmtfcHJlcm9sbCksIChnc3RfZmFrZXNpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlc2lua19pbml0KSwgKGdzdF9maWxlc2lua19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVzaW5rX29wZW5fZmlsZSksIChnc3RfZmlsZXNpbmtfY2xvc2VfZmlsZSksCgkgIChnc3RfZmlsZXNpbmtfcGFkX3F1ZXJ5KSwgKGdzdF9maWxlc2lua19ldmVudCksCgkgIChnc3RfZmlsZXNpbmtfcmVuZGVyKSwgKGdzdF9maWxlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIFBvcnRlZCBmaWxlc2luay4KCSAgTWFrZSBldmVudCBmdW5jdGlvbiBpbiBzaW5rIGJhc2VjbGFzcyByZXR1cm4gZ2Jvb2xlYW4uCgoyMDA1LTA1LTA1IDA5OjI4OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZW5kX2V2ZW50KSwgKGNvbXBhcmVfbmFtZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19maW5hbGl6ZSk6CgkgICogZ3N0L2dzdGRhdGEuYzogKGdzdF9kYXRhX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwKCSAgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKToKCSAgRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgQWRkZWQgX2RhdGFfcmVwbGFjZSgpIGZ1bmN0aW9uIGFuZCBfYnVmZmVyX3JlcGxhY2UoKQoJICBVc2UgZmluYWxpemUgbWV0aG9kIHRvIGNsZWFuIHVwIGNsb2NrLgoJICBGaXggcmVmY291bnRpbmcgb24gcmVxdWVzdCBwYWRzLgoJICBGaXggcGFkIHNjaGVkdWxlIG1vZGUgZXJyb3IuCgkgIFNvbWUgbW9yZSBvYmplY3QgcmVmY291bnRpbmcgZGVidWcgaW5mbywKCjIwMDUtMDUtMDQgMjE6Mjk6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEdDQyA0IGZpeGVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKSwKCSAgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX2VsZW1lbnRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2F2ZV90aHlzZWxmKSwgKGdzdF9iaW5fcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLCAoZ3N0X2NhcHNfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9jYXBzX2xvYWRfdGh5c2VsZik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKSwgKGdzdF9lbGVtZW50X3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKSwgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9naG9zdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfd3JpdGUpLCAoZ3N0X3htbF9wYXJzZV9kb2MpLAoJICAoZ3N0X3htbF9wYXJzZV9maWxlKSwgKGdzdF94bWxfcGFyc2VfbWVtb3J5KSwKCSAgKGdzdF94bWxfZ2V0X2VsZW1lbnQpLCAoZ3N0X3htbF9tYWtlX2VsZW1lbnQpOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoX2ZpbGVfaW5kZXhfaWRfc2F2ZV94bWwpLCAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAocmVhZF9zdHJpbmcpLCAocmVhZF91aW50KSwKCSAgKHJlYWRfZW51bSksIChsb2FkX3BhZF90ZW1wbGF0ZSksIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pLAoJICAobG9hZF9wYXRocyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllcyk6CgkgIEdDQyA0IGZpeGVuLgoKMjAwNS0wNS0wNCAxOTo0MTowNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZpbGUgdG8gd29yayBmb3IgMC45IGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgoyMDA1LTA1LTAzIDEyOjQ2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19tb2R1bGUpLAoJICAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCjIwMDUtMDUtMDIgMTY6NTA6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNS0wMiAxNTozMTozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBwcmludCBmb3JtYXQgZml4ZXMKCjIwMDUtMDUtMDIgMTU6MjA6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJICBtZXJnZXMgZnJvbSAwLjggZm9yIDY0IGJpdCBpc3N1ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoKMjAwNS0wNS0wMiAxMzo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICBBZGRlZCBkcmFmdCBmb3IgbmV3IHF1ZXJ5IEFQSS4KCSAgQWRkZWQgZHJhZnQgZm9yIGJldHRlciBzZWxlY3Rpbmcgc2NoZWR1bGluZyBtZXRob2RzLgoJICBNYWtlIGJhc2VzcmMgaWdub3JlIGxlbmd0aCBpZiB0aGUgc3ViY2xhc3MgZG9lcyBub3Qgc3VwcG9ydAoJICBpdC4KCjIwMDUtMDUtMDIgMTE6NTQ6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGF1dG9tYWtlIDEuNSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b21ha2UgMS41IGZpeGVzCgoyMDA1LTA1LTAyIDExOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgoyMDA1LTA0LTI4IDE2OjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQmV0dGVyIGRlYnVnZ2luZyBvZiBjbG9ja2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAocGlwZWxpbmVfYnVzX2hhbmRsZXIpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIEFsbG93IE5VTEwgdmFsdWVzIHdoZW4gZ2V0dGluZyBkaXNjb250IHZhbHVlcy4KCjIwMDUtMDQtMjcgMTQ6MTk6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvOiBJbmNyZWFzZSB0aW1lb3V0IGZvciBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCjIwMDUtMDQtMjcgMTM6NTI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcyBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggdGhlIGJyb2tlbiBydWxlIGZvciBjbGVhbnVwLiAgQXBwYXJlbnRseSB0aGlzIHJ1bGUgaXMKCSAgb25seSBuZWVkZWQgb24gRkMyLCBzbyBtYXliZSB0aGlzIHdhcnJhbnRzIGZ1cnRoZXIgYXV0b3Rvb2wKCSAgaW5zcGVjdGlvbi4KCjIwMDUtMDQtMjYgMTg6MDc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dHJhc2hzdGFjay5oOiBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgT29vaGguIGEgbmFzdHkgb25lISBBZnRlciBoYXZpbmcgYSBmYWlsZWQgcG9wKCkgZnJvbSB0aGUgc3RhY2ssCgkgIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3RhY2sgaXMgZW1wdHkuIEluIHRoYXQgY2FzZSwgZG9uJ3QKCSAgZm9sbG93IHRoZSBOVUxMIHBvaW50ZXIuCgoyMDA1LTA0LTI1IDEzOjAwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGggdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGgKCSAgdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgUmV2ZXJ0IGJvZ3VzIGNhcHMgdGVtcGxhdGUgY2hlY2sgaW4gcGFkIGxpbmtpbmcsIHBhZCBjYXBzCgkgIGFyZSBpbXBvcnRhbnQgd2hlbiBsaW5raW5nIG5vdCB0aGUgdGVtcGxhdGUsIHdoaWNoIGlzIG1vcmUKCSAgZ2VuZXJhbCB0aGFuIHRoZSBjdXJyZW50IGNhcHMuCgoyMDA1LTA0LTI1IDExOjUxOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICB0aGVyZSBpcyBubyBzcGVlZC4gIHJlYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoKMjAwNS0wNC0yNSAwOTo1MTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2F1dG9wbHVnLzogRGllLCBzcGlkZXIsIGRpZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9wbHVnLy5jdnNpZ25vcmU6CgkgICogZ3N0L2F1dG9wbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5oOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5Lmg6CgkgICogZ3N0L2F1dG9wbHVnL3NwaWRlcnRlc3QuYzoKCSAgRGllLCBzcGlkZXIsIGRpZS4KCjIwMDUtMDQtMjUgMDk6NDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCjIwMDUtMDQtMjUgMDM6NTQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yNCAyMzo1MzowNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwgcGxlYXNlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOiBEaXNhYmxlIHNvbWUgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuICBXaW0sCgkgIHBsZWFzZSBmaXguCgoyMDA1LTA0LTI0IDIyOjQ5OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kIHJlbW92ZSBnc3RhdG9taWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb252ZXJ0IGV2ZXJ5dGhpbmcgZnJvbSBHc3RBdG9taWNJbnQgdG8gZ19hdG9taWNfaW50XyosIGFuZAoJICByZW1vdmUgZ3N0YXRvbWljLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXRvbWljLmM6CgkgICogZ3N0L2dzdGF0b21pYy5oOgoJICAqIGdzdC9nc3RhdG9taWNfaW1wbC5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRhdGEuYzoKCSAgKiBnc3QvZ3N0ZGF0YS5oOgoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IEFkZCBnc3RfYXRvbWljX2ludF9zZXQoKSBjb21wYWl0aWJpbGl0eSBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCjIwMDUtMDQtMjQgMjI6NDQ6MTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvCgkgIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8KCSAgbG9uZ2VyIHRydWUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX3RlbXBsYXRlc19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgRGlzYWJsZSB3YXJuaW5nIGZvciBwYWRzIHdpdGhvdXQgdGVtcGxhdGVzLgoKMjAwNS0wNC0yNCAyMToxNjo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiBSZW1vdmUgaGFuZGxpbmcgb2YgZmlsdGVyZWQgY2Fwcy4gIEZpeC9tZXJnZQoJICBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgZmlsdGVyZWQgbGlua3MuCgkgICogZ3N0L2dzdHBhZC5oOiBSZW1vdmUgJ2FwcGZpbHRlcicgZmllbGQgYW5kIHByb3RvdHlwZXMgb2YKCSAgcmVtb3ZlZCBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IEZpeC9yZW1vdmUgdXRpbGl0eSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUKCSAgZmlsdGVyZWQgY2Fwcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogQWRkIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uIG9mIGNhcHMKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiBJZ25vcmUgZmlsdGVyZWQgY2FwcyB3aGVuIGxpbmtpbmcuICBUaGlzCgkgIHJlcXVpcmVzIGZpeGluZyBzbyB0aGF0IHRoZSBmaWx0ZXIgY2FwcyBub3RhdGlvbiBjcmVhdGVzCgkgIGEgY2Fwc2ZpbHRlciBlbGVtZW50IGFuZCBzZXRzIHRoZSBmaWx0ZXJfY2FwcyBwcm9wZXJ0eS4gIEkKCSAgdGhpbmsgZXZlcnlvbmUgcHJvYmFibHkgd2FudHMgdG8ga2VlcCB0aGUgc2hvcnRoYW5kIG5vdGF0aW9uLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOiB1cGRhdGVzIGZvciBBUEkgY2hhbmdlcy4KCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBSZWdpc3RlciBjYXBzZmlsdGVyIGVsZW1lbnQuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBmaXggc3BhY2luZwoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczogcmFuZG9tCgoyMDA1LTA0LTIzIDIzOjI5OjQ3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy86IE5ldyBlbGVtZW50IHRoYXQgYWN0cyBsaWtlIGFuIGlkZW50aXR5LCBidXQgZmlsdGVycyBjYXBzLiAgV2lsbCBldmVudHVhbGx5IHJlcGxhY2UgZmlsdGVyZWQgY2FwcyBpbiBwYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4KCSAgaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZAoJICBjYXBzIGluIHBhZCBsaW5raW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfY3JlYXRlX2FsbF9wYWRzKTogTmV3IGZ1bmN0aW9uCgkgIHRvIGNyZWF0ZSBhbGwgdGhlIEFMV0FZUyBwYWRzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCBhbgoJICBlbGVtZW50IGNsYXNzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IHNob3VsZCBldmVudHVhbGx5IGJlCgkgIG1lcmdlZCBpbiB3aXRoIEdzdEVsZW1lbnQgaW5pdGlhbGl6YXRpb24uCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOiBwYXJ0IG9mIHRyaWdnZXIgdGVzdCBjb2RlIHRoYXQgc2hvdWxkCgkgIGhhdmUgYmVlbiBjaGVja2VkIGluIGEgbG9uZyB0aW1lIGFnby4KCjIwMDUtMDQtMjMgMjM6MjU6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdCBhbmQgaGFyZCB0byBjYXJyeSBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogUmVtb3ZlIGFzLWxpYnRvb2wgc3R1ZmYuICBJdCdzIGxpa2VseSBub3QKCSAgbmVlZGVkIHdpdGggbmV3IHZlcnNpb25zIG9mIGxpYnRvb2wgKG5vYm9keSB3aWxsIGNvbmZpcm0gdGhpcyksCgkgIGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgoyMDA1LTA0LTIxIDE3OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBNYWtlZmlsZS5hbSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMjEgMDk6Mzc6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgU29tZSBtb3JlIGRvY3MuCgoyMDA1LTA0LTIxIDA5OjMzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSksIChfZ3N0X21lc3NhZ2VfZnJlZSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfcGFyZW50X3JlZmNvdW50KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIFVzZSBwYXJlbnQgcmVmY291bnQgaW4gR3N0TWVzc2FnZSB0byBlbnN1cmUgR3N0U3RydWN0dXJlCgkgIGNvbnNpc3RlbmN5LgoJICBDbGVhbmVkIHVwIGhlYWRlcnMgYSBiaXQuCgoyMDA1LTA0LTIwIDA5OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpLCAoZG9fdHlwZWZpbmQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9zdWJfZnJlZSksCgkgIChnc3RfYnVmZmVyX2RlZmF1bHRfZnJlZSksIChnc3RfYnVmZmVyX2RlZmF1bHRfY29weSksCgkgIChnc3RfYnVmZmVyX3NldF9jYXBzKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKSwKCSAgKGdzdF9jYXBzX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlX2ZpbHRlcmVkKSwgKGdzdF9wYWRfcmVsaW5rX2ZpbHRlcmVkKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgIE1ha2UgZ3N0X2NhcHNfcmVwbGFjZSgpIHdvcmsgbGlrZSBvdGhlciBfcmVwbGFjZSgpIGZ1bmN0aW9ucy4KCSAgVXNlIF9jYXBzX3JlcGxhY2UoKSB3aGVyZSBwb3NzaWJsZS4KCSAgTWFrZSBzdXJlIF9tZXNzYWdlX25ldygpIGluaXRpYWxpc2VzIGl0cyBmaWVsZC4KCSAgQWRkIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKCkKCjIwMDUtMDQtMTggMDg6NTM6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgoyMDA1LTA0LTE4IDA4OjI0OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSkKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSk6IEJMT0NLU0laRSBpcyBhIFVMT05HLiBSZW5hbWUgQVJHXy4uLgoJICB0byBQUk9QXy4uLi4KCjIwMDUtMDQtMTYgMjA6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTkVXUzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIE5FV1MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5FV1MgYnVpbGQKCjIwMDUtMDQtMTYgMjA6MTY6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgc29tZSBsaW5lCgoyMDA1LTA0LTE2IDE2OjI4OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlIHRvIHBrZ2NvbmZpZyBwYXRoCgoyMDA1LTA0LTE0IDE3OjE3OjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2ZhcS91c2luZy54bWw6IEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBBZGQgbm90ZSBvbiBnc3RyZWFtZXItcHJvcGVydGllcyAoIzE1NDk5NikuCgoyMDA1LTA0LTEzIDE3OjQxOjI5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczogU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczoKCSAgU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoKMjAwNS0wNC0xMiAxNTowMDozMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4gZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jbGVhbnVwKSwgKGdzdF9lbGVtZW50X3JlZ2lzdGVyKSwKCSAgKF9fZ3N0X2VsZW1lbnRfZmFjdG9yeV9hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9zdGF0aWNfcGFkX3RlbXBsYXRlcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zcmNfY2FwcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zaW5rX2NhcHMpOgoJICAqIGdzdC9yZWdpc3RyaWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChnc3RfeG1sX3JlZ2lzdHJ5X2dldF90eXBlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfY2xhc3NfaW5pdCksIChnc3RfeG1sX3JlZ2lzdHJ5X2luaXQpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9uZXcpLCAoZ3N0X3htbF9yZWdpc3RyeV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcHJvcGVydHkpLCAoZ2V0X3RpbWUpLCAobWFrZV9kaXIpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcGVybXNfZnVuYyksCgkgIChwbHVnaW5fdGltZXNfb2xkZXJfdGhhbl9yZWN1cnNlKSwgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfb3Blbl9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9mdW5jKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfY2xvc2VfZnVuYyksCgkgIChhZGRfdG9fY2hhcl9hcnJheSksIChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLCAocmVhZF9lbnVtKSwKCSAgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksIChsb2FkX3BhdGhzKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfbG9hZCksIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9jYXBzKSwgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkX3JlY3Vyc2UpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BhZF90ZW1wbGF0ZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFVzZSBsaWJ4bWwyIGZvciByZWdpc3RyeSBwYXJzaW5nLCB1c2Ugc3RhdGljcGFkdGVtcGxhdGVzIGluCgkgIGVsZW1lbnRmYWN0b3JpZXMuIE1ha2VzIGdzdF9pbml0KCkgKy8tIDEweCBmYXN0ZXIuCgoyMDA1LTA0LTEyIDEwOjUyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgU21hbGwgcHJlcm9sbCBmaXggaW4gdGhlIGJhc2Ugc2luay4KCSAgRGlzYWJsZSB0eXBlZmluZCBjb2RlIGluIGJhc2VzcmMuCgkgIENydWRlIHBvcnQgb2YgdHlwZWZpbmRlbGVtZW50LgoJICBGYWtlc3JjIGNsZWFudXBzLgoKMjAwNS0wNC0xMiAwOToxNjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbmNyZWFzZSB0aW1lb3V0IHNvbWUgbW9yZQoKMjAwNS0wNC0xMSAxMjowMjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG9ubHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25seSBkaXJzCgoyMDA1LTA0LTExIDExOjQwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wNC0xMSAxMToyNDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAodGhyZWFkX3JlZiksIChnc3RfZGF0YV9zdWl0ZSk6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCjIwMDUtMDQtMTEgMDk6NTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICBkaXN0IHRyaWdnZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc3QgdHJpZ2dlcgoKMjAwNS0wNC0xMCAyMTo0MjozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wNC0xMCAyMDoyOTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDE4OjE5OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCjIwMDUtMDQtMDggMTE6MzQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHBhcmVudC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA2IDE3OjMwOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX2dldF9mb3JtYXRzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwgKGdzdF9iYXNlc3JjX2dldF9zaXplKSwgKGdzdF9iYXNlc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlc3JjX3N0b3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKSwgKGJhc2VzcmNfZmluZF9wZWVrKSwKCSAgKGJhc2VzcmNfZmluZF9zdWdnZXN0KSwgKGdzdF9iYXNlc3JjX3R5cGVfZmluZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfY2xhc3NfaW5pdCksIChnc3RfZmlsZXNyY19pbml0KSwKCSAgKGdzdF9maWxlc3JjX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlc3JjX2ZyZWVfcGFyZW50X21tYXApLCAoZ3N0X2ZpbGVzcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZXNyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlc3JjX2NyZWF0ZV9tbWFwKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKSwgKGdzdF9maWxlc3JjX2NyZWF0ZSksCgkgIChnc3RfZmlsZXNyY19nZXRfc2l6ZSksIChnc3RfZmlsZXNyY19zdGFydCksIChnc3RfZmlsZXNyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywKCSAgcXVlcnkuCgkgIE1ha2UgZmlsZXNyYyBleHRlbmQgdGhlIGJhc2Ugc291cmNlIGNsYXNzLgoJICBBZGRlZCBnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uIHRvIEdzdFBhZC4KCjIwMDUtMDQtMDYgMTE6MDg6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBrZ2NvbmZpZy86IE5ldyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjogTmV3IGZpbGVzLgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBnc3RyZWFtZXItYmFzZSBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA0LTA1IDE3OjQxOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIG5vdGUKCjIwMDUtMDQtMDUgMDg6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19wYWRfc2V0Y2FwcyksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2xvb3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZXNyY19jbGFzc19pbml0KSwgKGdzdF9mYWtlc3JjX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVzcmNfZ2V0cmFuZ2UpLAoJICAoZ3N0X2ZpbGVzcmNfb3Blbl9maWxlKSwgKGdzdF9maWxlc3JjX2xvb3ApLAoJICAoZ3N0X2ZpbGVzcmNfYWN0aXZhdGUpLCAoZmlsZXNyY19maW5kX3BlZWspLAoJICAoZ3N0X2ZpbGVzcmNfdHlwZV9maW5kKToKCSAgTWFkZSBiYXNlIHNvdXJjZSBjbGFzcywgbWFrZSBmYWtlc3JjIGV4dGVuZCBpdC4KCSAgQWRkIGNvbW1lbnRzIHRvIGJhc2VzaW5rIGNsYXNzLgoJICBTb21lIGZpbGVzcmMgY2xlYW51cC4KCjIwMDUtMDQtMDEgMTA6MTQ6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHN1cHBvcnQgZm9yIGdvb2dsZSBtYWxsb2MgaWYgYXZhaWxhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCjIwMDUtMDQtMDEgMDI6NDE6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBTd2l0Y2ggdG8gdXNpbmcgR19NT0RVTEVfQklORF9MT0NBTCwgd2hpY2ggbWVhbnMgcGx1Z2lucyBhcmUgbm93IGV4cGVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fY2hlY2tfZmlsZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cKCSAgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lcgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogc2FtZQoKMjAwNS0wMy0zMSAxNTowMDoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvaW5zdGFudGlhdGUvOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weSBhbmQgZnJlZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaW5zdGFudGlhdGUvY2Fwcy5jOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weQoJICBhbmQgZnJlZS4KCSAgKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmMgKG1haW4pOiBVc2UgYWxsb2Mgb25seSBvbiB0aGUKCSAgR01lbUNodW5rIHRvIGJlIGZhaXIuCgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDogUmVtb3ZlIHdhcm5pbmcgYWJvdXQgdXNpbmcgdGhlIGZhbGxiYWNrCgkgIHRyYXNoIHN0YWNrIGltcGxlbWVudGF0aW9uLCBpdCdzIHN0aWxsIGZhc3RlciB0aGFuIG1hbGxvYy4KCjIwMDUtMDMtMzEgMTA6MTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gdHJhbnNmb3JtIGJhc2UgY2xhc3Mgc28gc3ViY2xhc3NlcyBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBzdGF0ZSBjaGFuZ2VzIGV2ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9ldmVudCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9zdGFydCksCgkgIChnc3RfaWRlbnRpdHlfc3RvcCk6CgkgIEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzCgkgIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCjIwMDUtMDMtMzEgMTA6MTA6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBwZXItdGhyZWFkIHN0YXRzCgoyMDA1LTAzLTMxIDA5OjQ2OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgcmF0ZSB0byB0aGUgZGlzY29udCBldmVudCB0byBwcmVwYXJlIGZvciB2YXJpYWJsZSBzcGVlZCBhbmQgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2Rpc2NvbnRpbnVvdXNfdmFsaXN0KSwKCSAgKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91cyksIChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkCgkgIGFuZCByZXZlcnNlIHBsYXliYWNrLgoKMjAwNS0wMy0zMCAxNDowOTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBDb21taXQgbWVtIGNodW5rIHRlc3Q7IHByb2JhYmx5IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoKMjAwNS0wMy0zMCAwMzo1NzozOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdyBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzogQSBsaXR0bGUgZXhhbXBsZSBwcm9ncmFtIHRvIHNob3cKCSAgaG93IHRyaWdnZXItYmFzZWQgZWxlbWVudHMgY2FuIHdvcmsuCgoyMDA1LTAzLTI5IDE2OjE4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLCAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdHlwZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYmFzZV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZmluYWxpemUpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLCAoZ3N0X2lkZW50aXR5X2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpbXBsaWZ5IHBhZCBhY3RpdmF0aW9uLgoJICBBZGRlZCBmdW5jdGlvbiB0byBjaGVjayBpZiBwdWxsX3JhbmdlIGNhbiBiZSBwZXJmb3JtZWQuCgkgIEVycm9yIG91dCB3aGVuIHB1bGxpbmcgaW5hY3RpdmUgb3IgZmx1c2hpbmcgcGFkcy4KCSAgUmVtb3ZlZCBjb25zdCBmcm9tIHJlZmNvdW50ZWQgdHlwZXMgYXMgaXQgZG9lcyBub3QgbWFrZSBzZW5zZS4KCSAgU2ltcGxpZnkgcGFkIHRlbXBsYXRlcyBpbiBiYXNlc2luawoJICBBZGRlZCBiYXNlIGNsYXNzIGZvciBzaW1wbGUgMS10by0xIHRyYW5zZm9ybXMuCgkgIE1ha2UgaWRlbnRpdHkgc3ViY2xhc3MgdGhlIGJhc2UgdHJhbnNmb3JtLgoKMjAwNS0wMy0yOSAxNDozNDo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudCBncmVlbiBidWlsZGJvdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLW92ZXJyaWRlcy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLW92ZXJyaWRlcy50eHQ6IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJCgkgIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudAoJICBncmVlbiBidWlsZGJvdCEKCjIwMDUtMDMtMjkgMTQ6MTI6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRGlzdCB0aGUgb3ZlcnJpZGVzIGZpbGVzLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjbGVhbi1sb2NhbCk6IFJlbW92ZSAubGlicyBkaXJlY3Rvcmllcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgYWxsIHRoZSBhdHRpYwoJICBlbGVtZW50cyB0byBFWFRSQV9ESVNULCBzbyBwby8gZmlsZXMgYXJlIGhhcHB5LgoKMjAwNS0wMy0yOSAxMzoxMDoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBtaXNzaW5nIHRlc3RzdWl0ZSBtYWtlZmlsZXMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBSZW1vdmUgdGhlIHNlY3Rpb24gb24KCSAgYnl0ZXN0cmVhbS4KCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmMgKG1haW4pOiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgcHJlcm9sbCBxdWV1ZQoJICBvbiB0aGUgc2lua3MgdG8gcHJldmVudCBhIGxvY2t1cC4KCjIwMDUtMDMtMjkgMTE6Mzk6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC86IFJlbW92ZSB0ZXN0LCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4gY2hlY2svZ3N0LWxpYnMvZ2RwLmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLXRlc3QuYzogUmVtb3ZlIHRlc3QsIGl0J3MKCSAgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCjIwMDUtMDMtMjkgMTA6NTU6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtIChsaWJnc3RlbGVtZW50c19sYV9MREZMQUdTKTogTGluayB0bwoJICB0aGUgdmVyc2lvbmVkIGxpYmdzdGJhc2UuCgkgICogY2hlY2svTWFrZWZpbGUuYW06IERlcGVuZCBvbiBhbiB1bnZlcnNpb25lZCBnc3QtcmVnaXN0ZXIsIHNlZW1zCgkgIHRvIG1ha2UgYXV0b2NvbmYgaGFwcGllci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogTWFrZSBsaWJnc3RiYXNlIGEgdmVyc2lvbmVkIGxpYi4KCjIwMDUtMDMtMjggMTQ6NTQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGRlZCBzdGF0ZSBjaGFuZ2UgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBBZGRlZC91cGRhdGVkIGRvY3MuCgkgIEFkZGVkIHNpbmsgYmFzZSBjbGFzcywgbWFrZSBmYWtlc2luayBleHRlbmQgdGhlIGJhc2UgY2xhc3MuCgkgIFNtYWxsIGNsZWFudXBzIGluIEdzdFBpcGVsaW5lLgoKMjAwNS0wMy0yNiAyMjowNzo1MyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgZ3N0Y3B1LltjaF0uICBUaGUgZ3N0X2NwdSBmdW5jdGlvbmFsaXR5CgkgIGlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxpYnJhcnkuCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KTogZG9uJ3QgY2FsbCBfZ3N0X2NwdV9pbml0aWFsaXplKCkKCSAgKiBnc3QvZ3N0Lmg6IHJlbW92ZSBnc3RjcHUuaAoJICAqIGdzdC9nc3RjcHUuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGNwdS5oOiByZW1vdmUKCSAgKiBnc3QvTWFrZWZpbGUuYW0uZnV0dXJlOiBSZW1vdmUgdGhpcyBmaWxlLiAgSXQncyBhbmNpZW50LgoKMjAwNS0wMy0yNSAwOTo1Nzo0MiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgZGVmYXVsdCBldmVudC9zZXRfbWFuYWdlciBoYW5kbGVycy4gVGhlIHNldF9tYW5hZ2VyIGhhbmRsZXIgdGFrZXMgY2FyZSB0aGF0IHRoZSBtYW5hZ2VyIGlzIGRpc3RyaWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3NldF9tYW5hZ2VyKSwKCSAgKGdzdF9iaW5fc2VuZF9ldmVudCk6CgkgIEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlcgoJICB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnV0ZWQgb3ZlciBraWRzIHRoYXQgd2VyZQoJICBhbHJlYWR5IGluIHRoZSBiaW4gYmVmb3JlIHRoZSBtYW5hZ2VyIHdhcyBzZXQuIFRoZSBldmVudCBoYW5kbGVyCgkgIGlzIGEgdXRpbGl0eSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgc2VuZHMgdGhlIGV2ZW50IG92ZXIgYWxsIHNpbmtzLAoJICBzbyB0aGF0IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQgKGJpbiwgZXZlbnQpOyBoYXMgdGhlIGV4cGVjdGVkCgkgIGJlaGF2aW91ci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBSZS1pbnN0YWxsIGRlZmF1bHQgZXZlbnQgaGFuZGxpbmcgZm9yIGRpc2NvbnRpbnVpdGllcywgc28gdGhhdAoJICBzZWVraW5nIHdvcmtzIHdpdGhvdXQgcmVxdWlyaW5nIGhhY2tzIGluIGFwcGxpY2F0aW9ucyBvciBleHRyYQoJICBjb2RlIGluIHNpbmtzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBIYWxmIGhhY2ssIGhhbGYgdXRpbGl0eTogc2V0IGEgcGlwZWxpbmUgdG8gUEFVU0VEIGZvciBzZWVrIGV2ZW50cywKCSAgc2luY2UgdGhhdCBpcyB0aGUgb25seSB3YXkgd2UgY2FuIGd1YXJhbnRlZSBhL3Ygc3luYy4gTWVhbnMgdGhhdAoJICB5b3UgY2FuIGRvIGdzdF9lbGVtZW50X3NlZWsgKHBpcGVsaW5lLCBtZXRob2QsIHBvcyk7IG9uIGEgcGlwZWxpbmUKCSAgYW5kIGl0ICJqdXN0IHdvcmtzIi4KCjIwMDUtMDMtMjUgMDk6MzU6MDEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBMb2NrL3VubG9jayBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKToKCSAgTG9jay91bmxvY2sgbWlzbWF0Y2guCgoyMDA1LTAzLTI1IDAwOjM1OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogYWRkIGdzdC1wbHVnaW5zLWJhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb24ndCBlcnJvciBvdXQgdW50aWwgZG9jcyBhcmUgZml4ZWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIHJlbW92ZSB0aHJlYWQKCjIwMDUtMDMtMjIgMTQ6MjM6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBY3RpdmF0ZWQgbW9yZSB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBBZGRlZCBtZXNzYWdlIHRlc3QuCgkgIEFkZGVkIEdfVFlQRV9QT0lOVEVSIHRvIEdzdFN0cnVjdHVyZS4KCjIwMDUtMDMtMjIgMTE6MzI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9jcyB1cGRhdGVzCgoyMDA1LTAzLTIxIDE4OjE3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggY29weS1hbmQtcGFzdGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCjIwMDUtMDMtMjEgMTc6MzQ6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRhLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHByb2JlLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dGhyZWFkLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L3NjaGVkdWxlcnMvY290aHJlYWRzX2NvbXBhdC5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2d0aHJlYWQtY290aHJlYWRzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgTmV4dCBiaWcgbWVyZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgQWRkZWQgR3N0QnVzIGZvciBtYWlubG9vcCBpbnRlZ3JhdGlvbi4KCSAgQWRkZWQgR3N0TWVzc2FnZSBmb3Igc2VuZGluZyBub3RpZmljYXRpb25zIG9uIHRoZSBidXMuCgkgIEFkZGVkIEdzdFRhc2sgYXMgYW4gYWJzdHJhY3Rpb24gZm9yIHBpcGVsaW5lIGVudHJ5IHBvaW50cy4KCSAgUmVtb3ZlZCBHc3RUaHJlYWQuCgkgIFJlbW92ZWQgU2NoZWR1bGVycy4KCSAgU2ltcGxpZmllZCBHc3RRdWV1ZSBmb3IgbXVsdGl0aHJlYWRlZCBjb3JlLgoJICBNYWRlIF9saW5rIHRocmVhZHNhZmUsIHJlbW92ZWQgb2xkIGNhcHNuZWdvLgoJICBBZGRlZCBTVFJFQU1fTE9DSyBhbmQgUFJFUk9MTF9MT0NLIGluIEdzdFBhZC4KCSAgQWRkZWQgcGFkIGJsb2NraW5nIGZ1bmN0aW9ucy4KCSAgUmV3b3JrZWQgc2NoZWR1bGluZyBmdW5jdGlvbnMgaW4gR3N0UGFkIHRvIHByZXBhcmUgZm9yCgkgIHNjaGVkdWxpbmcgdXBkYXRlcyBzb29uLgoJICBNb3ZlZCBldmVudHMgb3V0IG9mIGRhdGEgc3RyZWFtLgoJICBTaW1wbGlmaWVkIEdzdEV2ZW50IHR5cGVzLgoJICBBZGRlZCByZXR1cm4gdmFsdWVzIHRvIHB1c2gvcHVsbC4KCSAgUmVtb3ZlZCBjbG9ja2luZyBmcm9tIEdzdEVsZW1lbnQuCgkgIEFkZGVkIHByb3RvdHlwZXMgZm9yIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmb3IgbmV4dCBtZXJnZS4KCSAgUmVtb3ZlZCBpdGVyYXRlIGZyb20gYmlucyBhbmQgc3RhdGUgY2hhbmdlIG1hbmFnZW1lbnQuCgkgIEZpeGVkIHNvbWUgZWxlbWVudHMsIGRpc2FibGVkIG90aGVycyBmb3Igbm93LgoJICBGaXhlZCAtaW5zcGVjdCBhbmQgLWxhdW5jaC4KCSAgQWRkZWQgY2hlY2sgZm9yIEdzdEJ1cy4KCjIwMDUtMDMtMTAgMTI6NTE6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6IChnc3RfY2xvY2tfZGVidWcpLCAoZWxlbWVudF93YWl0KSwKCSAgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOiAoZG9fdGVzdCk6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOiAoYWRkX3JlbW92ZV90ZXN0MSksCgkgIChhZGRfcmVtb3ZlX3Rlc3QyKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBkb2MgYWJvdXQgY2xvY2suCgkgIHJlbW92ZWQgZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2VfdXAoKSwgbWFya2VkIG1ldGhvZHMKCSAgZm9yIHJlbW92YWwuCgkgIEZpeCBtb3JlIHRlc3RzdWl0ZXMuCgoyMDA1LTAzLTA5IDE3OjI4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IF9wYWRfZ2V0X2RpcmVjdGlvbiB3cnQgZ2hvc3RwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoX2dzdF9wYWRfZGVmYXVsdF9maXhhdGVfZm9yZWFjaCksIChnc3RfcGFkX2NvbGxlY3R2KSwKCSAgKGdzdF9wYWRfY29sbGVjdF92YWxpc3QpOgoJICAqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOiAodGVzdF9jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6ICh0ZXN0MSksICh0ZXN0MiksICh0ZXN0Myk6CgkgICogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6IChteV9maXhhdGUpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc2V0cy5jOiAoY2hlY2tfY2Fwcyk6CgkgICogdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzogKGNoZWNrX2NhcHMpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzogKGNoZWNrX2NhcHMpOgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIEZpeCBjYXBzIHRlc3RzdWl0ZS4KCjIwMDUtMDMtMDkgMTY6MTA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgQWRkZWQgR3N0QmluIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgQWRkZWQgR3N0U3lzdGVtQ2xvY2sgdGVzdC4KCSAgSW1wbGVtZW50ZWQgY2xvY2sgZGlzdHJpYnV0aW9uIGNvZGUgaW4gR3N0QmluLgoJICBJbXBsZW1lbnRlZCBpdGVyYXRlIHNpbmtzIG1ldGhvZCBmb3IgZnV0dXJlIHVzZS4KCSAgUmVhcnJhbmdlZCBnc3RlbGVtZW50LmgKCSAgRml4IEdzdEl0ZXJhdG9yIGNvbXBhcmlzb24gYnVnLgoJICBNb3ZlZCBzb21lIGNvZGUgdG8gR3N0UGlwZWxpbmUsIG1vc3RseSBjbG9ja2luZyByZWxhdGVkLgoKMjAwNS0wMy0wOSAxMTowODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWVfcmVjdXJzZV91cCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfcmVmKSwgKGdzdF9jbG9ja19pZF91bnJlZiksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pbml0KSwKCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwKCSAgKGdzdF9wYWRfY29sbGVjdHYpLCAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCksIChnc3RfcGFkX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBBZGQgZnV0dXJlIGRlYnVnZ2luZyBjYXRlZ29yeS4KCSAgRml4IE5VTEwgX3VucmVmKCkgaW4gX2dldF9ieV9uYW1lX3JlY3Vyc2VfdXAKCSAgUmVhcnJhbmdlIGdzdHBhZC5oLgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNS0wMy0wOCAxNzo0MjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBSZW1vdmUgdGhyZWFkc2FmZSBwcm9wZXJ0aWVzLiBGaXggZWxlbWVudHMgYmVjYXVzZSBHT2JqZWN0IGNvbXBsYWlucyB3aGVuIGluc3RhbGxpbmcgYSBwcm9wZXJ0eSBiZWZvcmUgZGVjbGFyaW5nIGEgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QKCSAgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYQoJICBzZXQvZ2V0X3Byb3BlcnR5IGhhbmRsZXIuCgkgIFJlYXJyYW5nZSBnc3RlbGVtZW50LmggZmlsZSwgdXNlIFNUQVRFIG1hY3JvcyBmb3Igc3RhdGUgbG9ja3MuCgkgIEZyZWUgbXV0ZXhlcyBpbiB0aGUgZmluYWxpemUgbWV0aG9kIGluc3RlYWQgb2YgZGlzcG9zZS4KCjIwMDUtMDMtMDggMTU6NTc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogZ3N0L2dzdHRocmVhZC5jOiAoZ3N0X3RocmVhZF9yZWxlYXNlX2NoaWxkcmVuX2xvY2tzKToKCSAgQWRkZWQgcGFyZW50YWdlIGNoZWNrLgoJICBGaXggYnVpbGQgb2cgR3N0VGhyZWFkIGFnYWluLgoKMjAwNS0wMy0wOCAxNDozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLCAoZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2UpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZSksIChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X2xvb3BfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpLCAoZ3N0X29iamVjdF9zaW5rKSwgKGdzdF9vYmplY3RfZGlzcG9zZSksCgkgIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCksIChnc3Rfb2JqZWN0X3NldF9uYW1lKSwKCSAgKGdzdF9vYmplY3Rfc2V0X3BhcmVudCksIChnc3Rfb2JqZWN0X3VucGFyZW50KSwKCSAgKGdzdF9vYmplY3RfY2hlY2tfdW5pcXVlbmVzcyk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2NzIHVwZGF0ZXMsIGNsZWFuIHVwIHNvbWUgaGVhZGVycy4KCSAgRnJlZSBpdGVyYXRvcnMgaW4gR3N0QmluLgoJICBHc3RPYmplY3QgaXMgbm93IGxvb2tpbmcgZ29vZC4KCjIwMDUtMDMtMDcgMTg6MzM6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEFkZGVkIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svLmN2c2lnbm9yZToKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKSwgKHB1bGxfbWVzc2FnZXMpLAoJICAoU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGRhdGEuYzogKFNUQVJUX1RFU1QpLCAodGhyZWFkX3JlZiksICh0aHJlYWRfdW5yZWYpLAoJICAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChtYWtlX2xpc3Rfb2ZfaW50cyksIChTVEFSVF9URVNUKSwKCSAgKGFkZF9mb2xkX2Z1bmMpLCAoZ3N0aXRlcmF0b3Jfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X2Zha2Vfb2JqZWN0X2dldF90eXBlKSwgKFNUQVJUX1RFU1QpLAoJICAodGhyZWFkX25hbWVfb2JqZWN0KSwgKHRocmVhZF9uYW1lX29iamVjdF9kZWZhdWx0KSwKCSAgKGdzdF9vYmplY3RfbmFtZV9jb21wYXJlKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfbGlua191bmxpbmspLAoJICAoZ3N0X3BhZF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKSwgKGdzdF9jaGVja19pbml0KToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChydW5fcGlwZWxpbmUpLCAoU1RBUlRfVEVTVCksIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBjaGVja3MuCgoyMDA1LTAzLTA3IDE4OjI5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEFkZGVkIG1pc3NpbmcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2luaXQpLCAoZ3N0X2l0ZXJhdG9yX25ldyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9saXN0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9mcmVlKSwgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksCgkgIChnc3RfaXRlcmF0b3JfcG9wKSwgKGdzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9pdGVyYXRvcl9yZXN5bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX3B1c2gpLCAoZmlsdGVyX25leHQpLAoJICAoZmlsdGVyX3Jlc3luYyksIChmaWx0ZXJfdW5pbml0KSwgKGZpbHRlcl9mcmVlKSwKCSAgKGdzdF9pdGVyYXRvcl9maWx0ZXIpLCAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLCAoZm9yZWFjaF9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZvcmVhY2gpLCAoZmluZF9jdXN0b21fZm9sZF9mdW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZGVkIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTAzLTA3IDE4OjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RjcHUuYzoKCSogZ3N0L2dzdGRhdGEuYzoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwcm9iZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcG8vbmIucG86CgkqIHBvL3J1LnBvOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6CgkqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgRmlyc3QgVEhSRUFERUQgYmFja3BvcnQgYXR0ZW1wdCwgZm9jdXNpbmcgb24gYWRkaW5nIGxvY2tzIGFuZCBtYWtpbmcgc3VyZSB0aGUgQVBJIGlzIHRocmVhZHNhZmUuIE5lZWRzIG1vcmUgd29yay4gTW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kCgkgIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3JlIGRvY3MKCSAgZm9sbG93IHRoaXMgd2Vlay4KCjIwMDUtMDItMjUgMDA6MTA6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgbm8tZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDIzOjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDE3OjEyOjE5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IE5ldyBmaWxlcywgZ29vZCBmb3IgcnVubmluZyBjb21wbGV4aXR5IGJlbmNobWFya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuZ251cGxvdDogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkKCSAgYmVuY2htYXJrcy4KCjIwMDUtMDItMjQgMTU6MzY6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbCB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmM6IE5ldyB0ZXN0LCBzZXRzIHVwIE4gZWxlbWVudHMsIGF0IGVhY2ggbGV2ZWwKCSAgdGVlaW5nIGludG8gTSBzdHJlYW1zIHBlciBlbGVtZW50LiBFZWVlbnRlcmVzdGluZy4KCjIwMDUtMDItMjQgMTI6MzE6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cyBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmdudXBsb3Q6IGdudXBsb3QgZmlsZSBmb3IgdGhlIG1hc3NfZWxlbWVudHMKCSAgYmVuY2htYXJrLiBSdW4gYXMgZ251cGxvdCBtYXNzX2VsZW1lbnRzLmdudXBsb3QgPiBmb28ucHMsIGFmdGVyCgkgIHJ1bm5pbmcgYmVuY2gtbWFzc19lbGVtZW50cy5zY20uCgkgICogdGVzdHMvYmVuY2gtbWFzc19lbGVtZW50cy5zY206IE5ldyBzY3JpcHQsIHJ1bnMgbWFzc19lbGVtZW50cwoJICBmb3IgdmFyaW91cyBudW1iZXJzIG9mIGlkZW50aXRpZXMsIG91dHB1dHRpbmcgdGhlIHJlc3VsdHMgdG8gYQoJICBmaWxlLiBSZXF1aXJlcyBndWlsZSAxLjYuIEp1c3QgZm9yIHRlc3RpbmcuCgoyMDA1LTAyLTIzIDE1OjE0OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgb25lIG1vcmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmUgbW9yZSBmaXgKCjIwMDUtMDItMjMgMTU6MDY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkgIGNvbXBpbGUgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTAyLTIyIDE2OjM0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBodW50aW5nIHNlYXNvbiBvbiAwLjkgaXMgbm93IE9QRU4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoK