PT09IHJlbGVhc2UgMS4xMC4yID09PQoKMjAxNi0xMS0yOSAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY29heGlvbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAxLjEwLjIKCjIwMTYtMTEtMjkgMTQ6MDg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9oci5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMTEtMjggMTM6NDg6MTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEZpeCBhIHBhZCBsZWFrCgkgIFdoZW4gcmVxdWVzdGluZyBhIHBhZCBmcm9tIGEgdGVtcGxhdGUgYW5kIGl0J3MgYWxyZWFkeSBsaW5rZWQsIHRoaXMKCSAgbWVhbnMgaXQgd2FzIGEgc3RhdGljIHBhZC4gU2luY2Ugd2Ugb25seSB3YW50IHRvIHJldHVybiBhbiAqYXZhaWxhYmxlKgoJICBwYWQsIHdlIG11c3QgcmV0dXJuIE5VTEwgLi4uIGJ1dCB3ZSBtdXN0IGFsc28gcmVtb3ZlIHRoZSByZWZlcmVuY2UKCSAgd2UgZ290IGZyb20gZ2V0dGluZyB0aGF0IHN0YXRpYyBwYWQuCgkgIFRoZSAiTm8gbmVlZCB0byB1bnJlZiIgbWVzc2FnZSAod2hpY2ggd2Fzbid0IHRydWUgZm9yIHF1aXRlIHNvbWUgdGltZSkKCSAgZGF0ZXMgYmFjayBmcm9tIHRoZSB2ZXJ5IHZlcnkgdmVyeSBmaXJzdCBjb21taXQgaW50cm9kdWNpbmcgdGhlIDAuMTAKCSAgZmVhdHVyZXMuCgoyMDE2LTExLTI4IDEyOjI4OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRW5zdXJlIHRoYXQgdGhlICJkZWJ1ZyIgZmllbGQgb2YgZXJyb3Ivd2FybmluZy9pbmZvIG1lc3NhZ2VzIGlzIHZhbGlkIFVURi04CgkgIFRoZSBjYWxsZXIgbWlnaHQgcGFzcyBhcmJpdHJhcnkgZGF0YSBoZXJlIHRoYXQgY2F1c2VkIHRoZSBlcnJvciwgYW5kCgkgIHRyeWluZyB0byBzZXQgaW52YWxpZCBVVEYtOCBpbiBhIEdzdFN0cnVjdHVyZSBjYXVzZXMgaXQgdG8gYmUgbm90IHNldCBhdAoJICBhbGwuIExhdGVyIHdoZW4gdHJ5aW5nIHRvIHBhcnNlIGl0LCB0aGUgZmllbGQgd2lsbCBub3QgZXhpc3QgYW5kIHRoZQoJICByZXR1cm4gdmFsdWUgd2lsbCBwb2ludCB0byBpbnZhbGlkIG1lbW9yeS4gUHJldmVudCB0aGlzIGJ5IHN0b3JpbmcgTlVMTAoJICBpbnN0ZWFkLgoJICBBbHNvIHByaW50IGEgZ193YXJuaW5nKCksIHRoZSBjYWxsZXIgc2hvdWxkIG5ldmVyIGV2ZXIgZG8gdGhpcyB0byBiZWdpbgoJICB3aXRoLgoKMjAxNi0xMS0xNSAyMjozOTo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcXVldWVzOiBEb24ndCByZXR1cm4gbmVnYXRpdmUgcG9zaXRpb24gcXVlcmllcy4KCSAgV2hlbiBzdWJ0cmFjdGluZyBxdWV1ZWQgZGF0YSBzaXplcyBmcm9tIHVwc3RyZWFtIHF1ZXJpZXMKCSAgaW4gcXVldWUsIHF1ZXVlMiwgZG93bmxvYWRidWZmZXIgYW5kIHR5cGVmaW5kLCBjbGFtcCB0aGUKCSAgcmVzdWx0IHRvIG5vdCBnbyBuZWdhdGl2ZSwgaW4gY2FzZSB1cHN0cmVhbSByZXR1cm5lZAoJICBhIG5vbnNlbnNlIHZhbHVlIHRoYXQncyB0b28gc21hbGwgKGFzIGNvdWxkIGhhcHBlbiBpZgoJICB1cHN0cmVhbSBpcyBlc3RpbWF0aW5nLCBvciBqdXN0IGJyb2tlbikKCjIwMTYtMTEtMjAgMTQ6NTE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHVwZGF0ZSB2ZXJzaW9uCgo9PT0gcmVsZWFzZSAxLjEwLjEgPT09CgoyMDE2LTExLTE3IDE1OjUxOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMTAuMQoKMjAxNi0xMS0xNyAxNDo0NjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMTEtMTcgMTQ6NDI6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9pZC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0xMS0xNyAxNDozOTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMTEtMTYgMjM6MTk6MjggKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2Ugc3VyZSBub3QtbGlua2VkIHN0cmVhbXMgZ2V0IHdva2VuIHVwCgkgIFdoZW4gcnVubmluZyBpbiBzeW5jLWJ5LXJ1bm5pbmctdGltZSBtb2RlLCBwYWQgZ3JvdXBzCgkgIHRoYXQgaGF2ZSBleGFjdGx5IDEgcGFkIGFuZCBpdCdzIG5vdC1saW5rZWQgbWlnaHQgbmV2ZXIKCSAgd2FrZSB1cCBhZnRlciBjb21wdXRpbmcgYSBoaWdoIHRpbWUsIGFzIHRoZSBwZXItcGFkLWdyb3VwCgkgIGhpZ2ggdGltZSB3YXMgb25seSByZWNvbXB1dGVkIHdoZW4gYSBwYWQgaW4gdGhlIGdyb3VwCgkgIGFkdmFuY2VzLgoJICBXYWtlIHRob3NlIHVwIHVzaW5nIHRoZSBnbG9iYWwgbXVsdGlxdWV1ZSBoaWdoLXRpbWUgYWNyb3NzCgkgIGFsbCBvdGhlciBncm91cHMgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyMgoKMjAxNi0wMy0yOSAxMDozODowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogU2V0IEdTVF9QQURfRkxBR19QUk9YWV9DQVBTIGJlZm9yZSBmb3J3YXJkaW5nIHN0aWNreSBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjIxMwoKMjAxNi0wNC0yNyAxMDo1NzoyOSArMDIwMCAgTmljb2xhcyBIdWV0IDxuaWNvbGFzLmh1ZXRAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggZGlzdGFuY2Ugd2hlbiBnZXR0aW5nIHByZXYgcHRzL2R0cyBhdCBvZmZzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTY2MgoKMjAxNi0wNy0yMSAxMDo1MjozMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHBvb2wgbGVhayB3aGVuIGVhcmx5IHJldHVybmluZyBpbiBkZWNpZGVfYWxsb2NhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MDIzCgoyMDE2LTExLTExIDA0OjQxOjM5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIEdzdEJhc2UtMS4wLmdpciB0byBnc3RfYmFzZV9kZXAKCSAgV2l0aG91dCB0aGlzLCBHSVIgZ2VuZXJhdG9ycyBjYW4ndCBmaW5kIGFuZCB1c2UgaXQKCjIwMTYtMTEtMDggMTc6MDk6NTMgKzAxMDAgIFZpY3RvciBUb3NvIDxtZUB2aWN0b3J0b3NvLmNvbT4KCgkqIHRlc3RzL21pc2MvbmV0Y2xvY2stcmVwbGF5LmM6CgkgIHRlc3RzOiBGaXggY29tcGlsZSB3YXJuaW5nIG9uIG1pbmd3NjQKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uL2xpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzozNTowLAoJICBmcm9tIG5ldGNsb2NrLXJlcGxheS5jOjI1OgoJICAuLi8uLi9jb25maWcuaDo1NDY6MDogZXJyb3I6ICJfX01TVkNSVF9WRVJTSU9OX18iIHJlZGVmaW5lZCBbLVdlcnJvcl0KCSAgI2RlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gMHgwNjAxCgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL3g4Nl82NC13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL2NydGRlZnMuaDoxMDowLAoJICBmcm9tIC91c3IveDg2XzY0LXc2NC1taW5ndzMyL3N5cy1yb290L21pbmd3L2luY2x1ZGUvc3RkaW8uaDo5LAoJICBmcm9tIG5ldGNsb2NrLXJlcGxheS5jOjIxOgoJICAvdXNyL3g4Nl82NC13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL19taW5ndy5oOjIyMDowOiBub3RlOgoJICB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbgoJICAjIGRlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gMHgwNzAwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQxMDgKCjIwMTYtMTEtMDggMTY6NTg6NTMgKzAxMDAgIFZpY3RvciBUb3NvIDxtZUB2aWN0b3J0b3NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvb2w6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uIG1pbmd3NjQKCSAgZ3N0cG9sbC5jOiBJbiBmdW5jdGlvbiAncmVsZWFzZV9ldmVudCc6CgkgIGdzdHBvbGwuYzoyMzk6MzogZXJyb3I6IHN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGFzc2lnbm1lbnQgdXNlZCBhcwoJICB0cnV0aCB2YWx1ZSBbLVdlcnJvcj1wYXJlbnRoZXNlc10KCSAgaWYgKHN0YXR1cyA9IFdhaXRGb3JTaW5nbGVPYmplY3QgKHNldC0+d2FrZXVwX2V2ZW50LCBJTkZJTklURSkpIHsKCSAgXn4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDEwOAoKMjAxNi0xMS0wMiAxNDoxMTo0MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2xvY2tfZ2V0dGltZS5jOgoJICBjbG9ja19nZXR0aW1lLmM6IFVzZSBfX0FQUExFX18gaW5zdGVhZCBvZiBfX01BQ0hfXwoJICBIdXJkIGFsc28gZGVmaW5lcyBfX01BQ0hfXywgYnV0IGl0IGRvZXMgbm90IGhhdmUgbWFjaF9hYnNvbHV0ZV90aW1lLiBVc2UKCSAgdGhlIG1vcmUgc3RyaWN0IF9fQVBQTEVfXyBpbnN0ZWFkLgoJICBIYXMgYWxzbyBiZWVuIHNlbnQgdXBzdHJlYW06IGh0dHBzOi8vZ2l0aHViLmNvbS9saWJjaGVjay9jaGVjay9wdWxsLzY1CgoyMDE2LTExLTA0IDEwOjE5OjE3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogVW5zZXQgdGhlIHBsdWdpbiBwYXRocyB0byBnZW5lcmF0ZSB0aGUgLmdpciBmaWxlcwoJICBBdm9pZGluZyBwcm9ibGVtcyB3aGVuIHVzaW5nIHN1YnByb2plY3Q6CgkgIEZhaWxlZCB0byBsb2FkIHBsdWdpbiAnc29tZXRoaW5nLnNvOiBmaWxlIHRvbyBzaG9ydAoKMjAxNi0xMS0wOSAxNDowNzoyOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZHZlcnRpc2UgZGVwZW5kZW5jeSBvbiBnc3RfZGVwIGdlbmVyYXRpbmcgZ2lycwoJICBBbmQgZG8gbm90IHNpbXBseSBsaW5rIHRvIGxpYmdzdCBhcyB0aGUgZ2lyIGluZm9ybWF0aW9uCgkgIGxvY2F0aW9uIG9ubHkgZXhpc3QgaW4gZGVjbGFyZV9kZXBlbmRlY3kKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDA0NAoKMjAxNi0xMS0wMiAxNDowMTozOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogRml4IEFNX0NPTkRJVElPTkFMIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgkgIEl0IHdhcyBhbHdheXMgZXZhbHVhdGluZyB0byBmYWxzZSwgc28gY2xvY2tfZ2V0dGltZS5jIHdhcyBhbHdheXMgYmVpbmcKCSAgaW5jbHVkZWQgaW50byBsaWJjaGVjay4gVGhpcyBicmVha3MgYnVpbGRpbmcgb24gSHVyZCBhbmQgY2F1c2VzIHVzIHRvCgkgIGFsd2F5cyBvdmVycmlkZSBjbG9ja19nZXR0aW1lKCkgZXZlbiB3aGVuIGl0IGlzIGF2YWlsYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzgxMwoKMjAxNi0xMS0wMSAxOTo0MDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogdXBkYXRlIHZlcnNpb24KCj09PSByZWxlYXNlIDEuMTAuMCA9PT0KCjIwMTYtMTEtMDEgMTc6NTA6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEwLjAKCjIwMTYtMTEtMDEgMTc6NDA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9uYi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0xMS0wMSAxNzozODo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL25iLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0xMS0wMSAxNzozNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMTAtMjUgMTI6MjE6MDcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IEFkZCBhbiBvcHRpb24gdG8gZXhwbGljaXRseSBkaXNhYmxlIGd0ay1kb2MKCSAgU2ltaWxhciB0byBob3cgQXV0b3Rvb2xzIHByb3ZpZGVzIGFuIG9wdGlvbiwgZGVmYXVsdCBpcyAnZW5hYmxlZCcuCgoyMDE2LTEwLTI0IDExOjQ1OjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIFJldmVydCAiY29sbGVjdHBhZHM6IEFzc3VtZSBQVFMgaXMgZXF1YWwgRFRTIGlmIFBUUyBpcyBtaXNzaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDliMGQ0MmNlZWNiMzE5ODM5OWQ3ZTA1ZTNkNWYwODBhN2NhMjdjYTkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIyMDcKCjIwMTYtMTAtMTggMTE6NTk6MjUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBNYXJrIHJlZ2lzdGVyZWQgYWxsb2NhdG9yIGZvciBsZWFrCgoyMDE2LTA2LTIxIDA4OjAwOjMwIC0wNTAwICBBbmRyZXcgRWlrdW0gPGFlaWt1bUBjb2Rld2VhdmVycy5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3RtZXNzYWdlLmg6IEF2b2lkIGdjYyBiaXQgc2hpZnQgb3ZlcmZsb3cgY29tcGlsZXIgd2FybmluZwoJICBBdm9pZHMgYml0IHNoaWZ0IG92ZXJmbG93IHdhcm5pbmcgd2l0aCBnY2M2LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODgyIChnbGliKQoJICBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD03MTgwMyAoZ2NjKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODgzCgoyMDE2LTEwLTIzIDIyOjExOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBlcnJvbmVvdXMgdXNlIG9mIF8oIiIpCgkgIEZpeGVzIHhnZXR0ZXh0IHdhcm5pbmdzIHdoZW4gZG9pbmcgJ21ha2UgdXBkYXRlLXBvJzoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueToyMTc6IHdhcm5pbmc6IEVtcHR5IG1zZ2lkLiAgSXQgaXMgcmVzZXJ2ZWQgYnkgR05VIGdldHRleHQ6CgkgIGdldHRleHQoIiIpIHJldHVybnMgdGhlIGhlYWRlciBlbnRyeSB3aXRoCgkgIG1ldGEgaW5mb3JtYXRpb24sIG5vdCB0aGUgZW1wdHkgc3RyaW5nLgoKMjAxNi0xMC0yMiAxNzowNTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBpbmRleCBmb3IgQVBJIG5ldyBpbiAxLjEwCgoyMDE2LTEwLTIyIDE3OjA1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGluZGV4IGZvciBBUEkgbmV3IGluIDEuOAoKMjAxNi0xMC0yMSAxNTo0MDo0NyArMDIwMCAgSmVzcGVyIExhcnNlbiA8a25vcnIuamVzcGVyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBGaXggbWl4LXVwIGJldHdlZW4gRFRTIGFuZCBQVFMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzMxOQoKMjAxNi0xMC0yMSAxNToyMjoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTogRml4IHJhY2Ugd2hlbiBjYWxjdWxhdGluZyBjdXJfbGV2ZWwudGltZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkMDNiZDU0NzgwOWY4NDk0MDVhM2Y3MDY5MjAwOTFkOWIwMzE0N2IwLgoJICBJdCBicmVha3MgdGhlIHVuaXQgdGVzdCwgYWx0aG91Z2ggaXQgZW5zdXJlcyB0aGF0IG9ubHkgY29ycmVjdCB2YWx1ZXMKCSAgYXJlIHVzZWQgZm9yIGNhbGN1bGF0aW9ucy4gTmVlZHMgdG8gYmUgZml4ZWQgdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwOTYKCjIwMTYtMTAtMjAgMTc6MTk6MjUgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBSZXZlcnQgIm1lc29uOiBVc2UgdGhlIG5ldyBgcGljYCBhcmd1bWVudCBvbiBzdGF0aWMgbGlicyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhNTc1MjI0MGExNzhjMmM2NTFlZDEwMTY3MDI1ZmFkOGI5YzRlN2JkLgoJICBwaWMgd2FzIGFkZGVkIGFmdGVyIDAuMzUgYW5kIHdpbGwgYmUgcHJlc2VudCBpbiAwLjM2IChtZXNvbgoJICBkb2N1bWVudGF0aW9uIHdhcyB3cm9uZykuCgoyMDE2LTEwLTIwIDE1OjM4OjQ2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSB0aGUgbmV3IGBwaWNgIGFyZ3VtZW50IG9uIHN0YXRpYyBsaWJzCgkgIFdlIGRlcGVuZCBvbiBtZXNvbiAwLjM1IHdoaWNoIG1ha2VzIGl0IHNpbXBsZXIgdG8gaGFuZGxlCgkgIFJlbW92ZXMgYSBtZXNvbiB3YXJuaW5nCgoyMDE2LTA5LTE0IDE0OjIzOjU2ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZpeCByYWNlIHdoZW4gY2FsY3VsYXRpbmcgY3VyX2xldmVsLnRpbWUKCSAgT24gdGhlIGZpcnN0IGJ1ZmZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHNpbmtfc2VnbWVudCBpcyBzZXQgYnV0CgkgIHNyY19zZWdtZW50IGhhcyBub3QgYmVlbiBzZXQgeWV0LiBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3ZSBzaG91bGQgbm90CgkgIGNhbGN1bGF0ZSBjdXJfbGV2ZWwudGltZSBzaW5jZSBzaW5rX3NlZ21lbnQucG9zaXRpb24gbWF5IGJlIGxhcmdlIGFuZAoJICBzcmNfc2VnbWVudC5wb3NpdGlvbiBkZWZhdWx0IGlzIDAsIHdpdGggdGhlIHJlc3VsdGluZyBkaWZmIGJlaW5nIGxhcmdlcgoJICB0aGFuIG1heC1zaXplLXRpbWUsIGNhdXNpbmcgdGhlIHF1ZXVlIHRvIHN0YXJ0IGxlYWtpbmcgKGlmCgkgIGxlYWt5PWRvd25zdHJlYW0pLgoJICBPbmUgcG90ZW50aWFsIGNvbnNlcXVlbmNlIG9mIHRoaXMgaXMgdGhhdCB0aGUgc2VnbWVudCBldmVudCBtYXkgYmUKCSAgc3RvcmVkIG9uIHRoZSBzcmNwYWQgYmVmb3JlIHRoZSBjYXBzIGV2ZW50IGlzIHB1c2hlZCBkb3duc3RyZWFtLCBjYXVzaW5nCgkgIGEgZ193YXJuaW5nICgiU3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nLCBnb3QgJ3NlZ21lbnQnIGJlZm9yZSAnY2FwcyciKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA5NgoKMjAxNi0wOS0yNyAwMDowMDozMCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdXNlIGdfc3RyY21wMCBpbiBzZXRfY29udGV4dAoJICBJdCdzIE5VTEwtc2FmZSB3aGlsZSB0aGUgbGliYyBpbXBsZW1lbnRhdGlvbiBtYXkgbm90IGJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNzczCgoyMDE2LTA5LTI2IDIzOjU5OjI5ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBjaGVjayBmb3IgaW52YWxpZCBnc3Rjb250ZXh0J3MgYmVpbmcgcHJvdmlkZWQgdG8gc2V0X2NvbnRleHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTc3MwoKMjAxNi0xMC0xOCAwOTozODowNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtZXNvbi5idWlsZDoKCSAgYnVpbGQ6IEFwcGx5IFhDb2RlIDggd29ya2Fyb3VuZCBmb3IgaU9TIHRvbwoJICBjbG9ja19nZXR0aW1lIHdhcyBhbHNvIGFkZGVkIGZvciBpT1MgMTAuMCwgc28gZG9uJ3QgdXNlIGl0IGlmIHdlJ3JlCgkgIHRhcmdldHRpbmcgYW4gb2xkZXIgdmVyc2lvbi4gVGhhdCB3b3VsZCd2ZSBjYXVzZWQgdGhlIHN5bWJvbCB0byBub3QgYmUKCSAgZm91bmQgYXQgcnVudGltZSBvbiBvbGRlciBkZXZpY2VzLgoKMjAxNi0xMC0xNSAyMTo0OToyMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEb24ndCB1c2UgY19zdGQ9Yzk5CgkgIEp1c3QgdXNlIHRoZSBkZWZhdWx0IGNfc3RkIHVzZWQgYnkgdGhlIGNvbXBpbGVyLiBXaXRoIEdDQyBvbiBMaW51eCB0aGlzCgkgIGlzIGdudTg5LgoJICBUb25zIG9mIGVycm9ycyByZWxhdGVkIHRvIHRpbWUuaCwgc2lnbmFsLmgsIGV0YyB3aGVuIHVzaW5nIGM5OToKCSAgRkFJTEVEOiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubwoJICBjYyAgJy1JbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhJyAnLWZkaWFnbm9zdGljcy1jb2xvcj1hbHdheXMnICctSS4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrJyAnLUlsaWJzL2dzdC9jaGVjay9saWJjaGVjaycgJy1JLicgJy1JLi4vLicgJy1JbGlicy9nc3QvY2hlY2svbGliY2hlY2svLi4nICctSS4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrLy4uJyAnLXBpcGUnICctV2FsbCcgJy1XaW52YWxpZC1wY2gnICctc3RkPWM5OScgJy1ESEFWRV9DT05GSUdfSCcgJy1mUElDJyAnLU8yJyAnLWcnICctZlBJQycgJy1NTUQnICctTVEnICdsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubycgJy1NRicgJ2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YS9jaGVja19ydW4uYy5vLmQnIC1vICdsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubycgLWMgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmMKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOjIxOjA6CgkgIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOjE2NzoxODogd2FybmluZzog4oCYc3RydWN0IGl0aW1lcnNwZWPigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24KCSAgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgKm5ld192YWx1ZSwgc3RydWN0IGl0aW1lcnNwZWMgKm9sZF92YWx1ZSk7CgkgIF5+fn5+fn5+fn4KCSAgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6OTg6MjU6IGVycm9yOiBhcnJheSB0eXBlIGhhcyBpbmNvbXBsZXRlIGVsZW1lbnQgdHlwZSDigJhzdHJ1Y3Qgc2lnYWN0aW9u4oCZCgkgIHN0YXRpYyBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZF9hY3Rpb25bM107CgkgIF5+fn5+fn5+fn4KCSAgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6OTk6MjU6IGVycm9yOiBhcnJheSB0eXBlIGhhcyBpbmNvbXBsZXRlIGVsZW1lbnQgdHlwZSDigJhzdHJ1Y3Qgc2lnYWN0aW9u4oCZCgkgIHN0YXRpYyBzdHJ1Y3Qgc2lnYWN0aW9uIG5ld19hY3Rpb25bM107CgkgIF5+fn5+fn5+fn4KCSAgWy4uLl0KCSAgbmluamE6IGJ1aWxkIHN0b3BwZWQ6IHN1YmNvbW1hbmQgZmFpbGVkLgoJICBUaGUgY2hhbmdlIHdhcyBvcmlnaW5hbGx5IG1hZGUgYmVjYXVzZSBnbnU5OSB3YXMgY2F1c2luZyBpc3N1ZXMgb24gT1MgWC4KCjIwMTYtMTAtMTQgMTE6NTk6MjQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBGaXggd2FybmluZwoKMjAxNi0xMC0wNCAwOToyMDozNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBNYWtlIHVzZSBvZiBuZXcgZW52aXJvbm1lbnQgb2JqZWN0IGFuZCBzZXQgcGx1Z2luIHBhdGggdG8gYnVpbGRkaXIKCSAgLSBQcm9wZXJseSBzZXQgd2hlcmUgdG8gZmluZCBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgLSBVc2UgR1NUX0xPQURJTkdfV0hJVEVMSVNUIHNvIHRoYXQgb25seSBjb3JlIHBsdWdpbnMgYXJlIHVzZWQKCSAgQnVtcCBtZXNvbiByZXF1aXJlbWVudCB0byAwLjM1CgoyMDE2LTEwLTEzIDE4OjIwOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZzogU3RvcmUgb2JqZWN0IGluIGEgdGhyZWFkLXNhZmUgR1dlYWtSZWYKCSAgZ19vYmplY3Rfd2Vha19yZWYoKSBpcyBub3QgdGhyZWFkLXNhZmUuCgoyMDE2LTEwLTEzIDE4OjAyOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSAgYXJnYmNvbnRyb2xiaW5kaW5nOiBnc3Rfb2JqZWN0X3JlcGxhY2UoKSBpcyB0cmFuc2ZlciBub25lCgoyMDE2LTEwLTEzIDE4OjAxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogQ2xhcmlmeSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYWJzb2x1dGUgYW5kIG5vdCBpcwoKMjAxNi0xMC0xMyAxNzo1NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IFJlbW92ZSBtaXNsZWFkaW5nIHNlbnRlbmNlIGZyb20gdGhlIGRvY3VtZW50YXRpb24KCSAgY29udHJvbCBzb3VyY2VzIGFyZSBub3QgcmVxdWlyZWQgdG8gcmV0dXJuIHZhbHVlcyBiZXR3ZWVuIDAuMCBhbmQgMS4wLgoJICBUaGlzIGlzIGNvbXBsZXRlbHkgdXAgdG8gdGhlIGNvbnRyb2wgYmluZGluZyB0aGF0IGlzIHVzZWQuCgoyMDE2LTEwLTEzIDE3OjIxOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEZpeCBicm9rZW4gc2VudGVuY2Ugc3RydWN0dXJlIGluIGRvY3MKCjIwMTYtMTAtMTMgMTI6MTg6MTIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGZpeCBzdHJ1Y3R1cmUgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyODUxCgoyMDE2LTEwLTEzIDEyOjAzOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSAgc3RyZWFtczogRXh0ZW5kIEdzdFN0cmVhbVR5cGUgZG9jdW1lbnRhdGlvbgoJICBVc2VycyBzaG91bGRuJ3QgYXNzdW1lIGl0IHdpbGwgYmUgYSBzaW5nbGUgdmFsdWUgc2luY2UgaXQncyBhIGZsYWcuCgoyMDE2LTEwLTAzIDIwOjIyOjUzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSogbWVzb24uYnVpbGQ6CgkgIGJ1aWxkOiBGaXggY2xvY2tfZ2V0dGltZSBjaGVjayB3aXRoIFhDb2RlIDgKCSAgV2l0aCBYQ29kZSA4LCBjbG9ja19nZXR0aW1lIHdpbGwgYmUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgYXMgYmVpbmcKCSAgYXZhaWxhYmxlIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBPUyBYIHZlcnNpb24gd2UncmUgdGFyZ2V0dGluZyBiZWNhdXNlIHRoZQoJICBzeW1ib2wgaXMgYXZhaWxhYmxlIGluIHRoZSAudGJkIGxpYnJhcnkgYXMgYSB3ZWFrIHN5bWJvbC4KCSAgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vSG9tZWJyZXcvaG9tZWJyZXctY29yZS9pc3N1ZXMvMzcyNyNpc3N1ZS0xNzAwODYyNzMKCSAgSXQncyBvbmx5IHN0YXJ0aW5nIGZyb20gbWFjT1MgMTAuMTIgdGhhdCBjbG9ja19nZXR0aW1lIGlzIGFjdHVhbGx5CgkgIGF2YWlsYWJsZSwgc28gd2UgY2FuIHVuY29uZGl0aW9uYWxseSBkaXNhYmxlIGl0IHdoZW4gdGFyZ2V0dGluZyBvbGRlcgoJICB2ZXJzaW9ucy4gV2UgY2Fubm90IHNpbXBseSBkbyBBQ19DSEVDS19GVU5DUyB3aXRoIC1XbCwtbm9fd2Vha19pbXBvcnRzCgkgIGJlY2F1c2UgdGhlIGF1dG9jb25mIGNoZWNrIGRvZXMgaXRzIG93biBwcm90b3R5cGUgZGVjbGFyYXRpb24gdGhhdAoJICBkb2Vzbid0IHRyaWdnZXIgdGhhdCBjb21waWxlciBmbGFnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNDUxCgoyMDE2LTEwLTExIDEyOjEyOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJICBiaW46IEFkZCBhIG5ldyBHU1RfQklOX0ZMQUdfU1RSRUFNU19BV0FSRSBmbGFnCgkgIFRoaXMgZmxhZyBpcyB0byBpbmRpY2F0ZSB0byBjaGlsZCBlbGVtZW50cyB0aGF0IHRoZXkgY2FuIGFkZCBhbmQKCSAgcmVtb3ZlIHBhZHMgYXQgYW55IHBvaW50IGluIHRpbWUgd2l0aG91dCByZS1hZGRpbmcgZXhpc3Rpbmcgb25lcy4KCSAgRWxlbWVudHMgc2hvdWxkIHBvc3QgYmVmb3JlLWhhbmQgYSBHU1RfTUVTU0FHRV9TVFJFQU1fQ09MTEVDVElPTgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNzQxCgoyMDE2LTEwLTEwIDEwOjU5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHBhdGhzIGluIGVudiB2YXJzIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyBvbiB3aW5kb3dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI0MzEKCjIwMTYtMTAtMDcgMTc6MDI6NDcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jczogZml4IEdTVF9MRUFLU19UUkFDRVJfU0lHIGRvYwoJICBUaGUgZG9jdW1lbnRhdGlvbiB3YXNuJ3QgbWVudGlvbmluZyB0aGUgU0lHVVNSMiBzaWduYWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI1NzEKCjIwMTYtMTAtMDggMTc6MjM6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRml4IGl0ZXJhdG9yIHJlc3luYydpbmcKCSAgV2hlbiB3ZSBnZXQgR1NUX0lURVJBVE9SX1JFU1lOQywgd2UgbmVlZCB0byBjYWxsIGdzdF9pdGVyYXRvcl9yZXN5bmMoKQoJICBvdGhlcndpc2Ugd2Ugd2lsbCBhbHdheXMgZ2V0IEdTVF9JVEVSQVRPUl9SRVNZTkMgKGFuZCB0aGF0IGxvb3Agd291bGQKCSAgcnVuIGZvcmV2ZXIpLgoKMjAxNi0xMC0wOCAxMzo1NDo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogSW1wbGVtZW50IGdzdF9ldmVudF9mdWxsX2Z1bmMgaGFuZGxpbmcKCSAgU2FtZSBhcyB3ZSBkbyBmb3IgcXVldWUKCjIwMTYtMTAtMDggMTM6MjA6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlci9ydXNhZ2U6IGZpeCBmb3JtYXQgc3RyaW5nIGFyZ3MKCSAgVGhlIGZvcm1hdCBzdHJpbmcgY29udGFpbnMgYSBwcm9jZXNzIGlkLCBidXQgd2UgZGlkIG5vdCBwcm92aWNlIG9uZS4gVGhpcwoJICBjYXVzZWQgdXMgdG8gbG9nIGdhcmJhZ2Ugc2luY2UgYWxsIGFyZ3MgZ290IHNoaWZ0ZWQuCgoyMDE2LTEwLTAxIDE2OjQ3OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRml4IHR5cG8gaW4gZ3N0X21lc3NhZ2VfbmV3X3Byb2dyZXNzKCkgZG9jcwoJICB0ZXN0IC0+IHRleHQKCjIwMTYtMDktMzAgMDk6NTc6NTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogaG9va3MvcHJlLWNvbW1pdC5ob29rOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFNldHVwIHByZS1jb21taXQgaG9va3Mgd2hlbiBjb25maWd1cmluZwoKMjAxNi0wOS0zMCAxMTozODozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogdXBkYXRlIHZlcnNpb24KCj09PSByZWxlYXNlIDEuOS45MCA9PT0KCjIwMTYtMDktMzAgMTM6MDE6MTcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjkwCgoyMDE2LTA5LTMwIDEyOjA4OjUyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wOS0zMCAxMTo0MToxNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RlLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wOS0yNyAxODowMDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB0cmFjZXJzOiBzaWduYWwgYXZhaWxhYmlsaXR5IG9mIGxpYnVud2luZCBhbmQgYmFja3RyYWNlKCkgdG8gY29kZQoJICBOb3Qgc2V0dGluZyBjZGF0YSBoZXJlIG9uIHB1cnBvc2UgYmVjYXVzZSBvZiAuLiBjb21wbGljYXRpb25zLgoKMjAxNi0wOS0yNiAxODoyMToxOSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEJ1aWxkIHRyYWNlcnMKCjIwMTYtMDktMjMgMjA6NDA6MzkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSogZG9jcy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBndGtkb2MgdXNpbmcgbmV3IG1lc29uIGZlYXR1cmVzCgoyMDE2LTA5LTI2IDEyOjE0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIHZhbGdyaW5kIHN0dWZmCgkgIENvZGUgd2FzIGFsc28gY2hlY2tpbmcgdGhlIHdyb25nIGRlZmluZSBhbnl3YXkuCgoyMDE2LTA5LTI2IDEyOjEyOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IHBhcnNlLWxhdW5jaDogbG9va3MgY2xlYW4gbm93YWRheXMsIHNvIHJlLWVuYWJsZSBmb3IgdmFsZ3JpbmQKCSAgQWxzbywgdGhlIHZhbGdyaW5kIGJpdHMgd2VyZW4ndCBob29rZWQgdXAgcHJvcGVybHkgYW55d2F5LAoJICBjaGVja2luZyB0aGUgd3JvbmcgZGVmaW5lLgoKMjAxNi0wOS0yNCAxODoyMjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHJlbW92ZSBpbmNvcnJlY3QgYW5kIHVubmVlZGVkIGNoZWNrIGZvciBwdHJkaWZmX3QKCSAgTmVlZCB0byBpbmNsdWRlIHN0ZGRlZi5oIGZvciBpdCwgc28gdGhpcyB3b3VsZCd2ZSB3b3JrZWQ6CgkgIGlmIGNjLmhhc190eXBlKCdwdHJkaWZmX3QnLCBwcmVmaXg6ICcjaW5jbHVkZSA8c3RkZGVmLmg+JykKCjIwMTYtMDktMjQgMTg6MDY6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGludGVybmFsIHByaW50ZiBmb3IgJWxsIGZvcm1hdCBtb2RpZmllciBvbiAzMi1iaXQgc3lzdGVtcwoJICBnc3QvZ3N0cHJpbnRmIHVuaXQgdGVzdCB3b3VsZCBmYWlsIG9uIDMyLWJpdCB4ODYgd2l0aDoKCSAgZ3N0cHJpbnRmLmM6ODM6cHJpbnRmX0kzMl9JNjQ6MDogJ3N0cicgKDY0LWJpdCB4IHZhbHVlID0gYjVhNjk3OGYpIGlzIG5vdCBlcXVhbCB0byAnIjY0LWJpdCB4IHZhbHVlID0gZjFlMmQzYzRiNWE2OTc4ZiInCgoyMDE2LTA5LTIzIDA0OjE5OjQ3ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIFJldmVydCAibWVzb246IEZvcmNlIGdzdGVudW1faCB0byBiZSBidWlsdCB3aGVuIHVzaW5nIGdzdF9kZXAiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgY2ZjNTY1ZTJkODhhOGU3ZDY1NmI2OGM1YzJhMWI3YWNiMDhjZGI3Zi4KCSAgVGhlIGNvbW1pdCB3YXMgcmVkdW5kYW50IHNpbmNlIGdzdF9nZW5fc291cmNlcyBhbHJlYWR5IGNvbnRhaW5zCgkgIGdzdGVudW1faC4gV2UncmUgc3RpbGwgaW52ZXN0aWdhdGluZyB3aHkgc29tZSBwZW9wbGUgYXJlIHN0aWxsIHNlZWluZwoJICBhIHJhY3kgYnVpbGQgZmFpbHVyZS4KCjIwMTYtMDktMjMgMDA6Mjg6NTMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZvcmNlIGdzdGVudW1faCB0byBiZSBidWlsdCB3aGVuIHVzaW5nIGdzdF9kZXAKCSAgVGhpcyBmb3JjZXMgZ3N0ZW51bXR5cGVzLmggdG8gYmUgYnVpbHQgd2hlbmV2ZXIgc29tZXRoaW5nIHVzZXMgZ3N0X2RlcAoJICBhcyBhIHN1YnByb2plY3QgZGVwZW5kZW5jeS4gVGhpcyBpcyBuZWVkZWQgc2luY2UgZ3N0L2dzdC5oIGluY2x1ZGVzCgkgIGdzdGVudW10eXBlcy5oCgkgIENsb3NlcyBodHRwczovL2dpdGh1Yi5jb20vbWVzb25idWlsZC9tZXNvbi9pc3N1ZXMvNzE0IHdoaWNoIGlzIG5vdAoJICBhY3R1YWxseSBhIE1lc29uIGJ1Zy4KCjIwMTYtMDktMTkgMTA6MDc6NTEgLTA0MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWRkIGZvcmdvdHRlbiAiZ2l0IGNvbW1pdCAtLWFtZW5kIiBmb3IgbGFzdCBjb21taXQKCSAgTmVlZCB0byBjYXN0IGF3YXkgdGhlIGNvbnN0IGFzIGdfcXVldWVfZm9yZWFjaCgpIHRha2VzIGEgbm9uLWNvbnN0IEdRdWV1ZSoKCjIwMTYtMDktMTkgMTA6MDQ6NTUgLTA0MDAgIEtvdWhlaSBTdXRvdSA8a291QGNsZWFyLWNvZGUuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFdoZW4gY29weWluZyB0aGUgc29ydCBpdGVyYXRvciwgYWxzbyBjb3B5IGl0cyBpbnRlcm5hbCBxdWV1ZQoJICBPdGhlcndpc2UgYm90aCBpdGVyYXRvcnMgc2hhcmUgdGhlIHNhbWUgcmVmZXJlbmNlcywgdGhlIHNlY29uZCBvbmUKCSAgdXN1YWxseSByZXN1bHRpbmcgaW4gYSBjcmFzaCB3aGVuIGJlaW5nIGZyZWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNjQ5CgoyMDE2LTA5LTExIDE1OjI4OjQzICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggd2F0ZXJtYXJrIHRlc3QKCSAgVGhpcyBjYXJyaWVzIG92ZXIgY29kZSBmb3IgYSBzaW1pbGFyIHRlc3QgZnJvbSBtdWx0aXF1ZXVlIHRvIGVuc3VyZSBmdWxsCgkgIGNvbnRyb2wgb3ZlciB0aGUgZGF0YWZsb3cgd2hpbGUgdGVzdGluZy4gKFRoZSBwcmV2aW91cyBhdHRlbXB0IHdhcyByYWN5CgkgIHNpbmNlIHRoZSBmaWxsIGxldmVsIGNoYW5nZWQgd2l0aG91dCBhbnkgdGhyZWFkIHN5bmMgd2l0aCB0aGUgdGVzdCBjb2RlLikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTIxMAoKMjAxNi0wOS0xMSAxNToyNjoyNiArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVcGRhdGUgYnVmZmVyaW5nIGlmIGl0cyBlbmFibGVkIGFuZCBsb3cvaGlnaCB3YXRlcm1hcmtzIGFyZSBjaGFuZ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEyMTAKCjIwMTYtMDktMTUgMTc6Mzg6NDkgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24oKQoJICBTZWVtcyBsaWtlIHRoZXJlIHdhcyBzb21lIGRvY3VtZW50YXRpb24gbGVmdCBvdmVyIGZyb20gd2hlbiB0aGlzIHdhcwoJICBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24oKS4KCjIwMTYtMDktMTIgMTc6NDE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZW1vdmUgdW51c2VkIGZpZWxkcyBhbmQgYWx3YXlzIHVzZSB0aGUgYnVmZmVyIHRpbWVzdGFtcCBkaWZmZXJlbmNlIGZvciBjYWxjdWxhdGluZyB0aGUgUW9TIHByb3BvcnRpb24KCSAgVGhlIGJ1ZmZlciB0aW1lc3RhbXBzIGFyZSBvbmx5IGhpbnRzIGFuZCBtb3JlIG9mdGVuIHRoYW4gbm90IGhhdmUKCSAgbm90aGluZyB0byBkbyB3aXRoIHJlYWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEzMDYKCjIwMTYtMDktMDggMTI6NTg6NTQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBtZXNvbi5idWlsZDoKCSAgZ3N0Y29uZmlnOiBVc2UgX19kZWNsc3BlYyB3aGVuIGJ1aWx0IHdpdGggTWluR1cgYW5kIGxpbmtpbmcgd2l0aCBNU1ZDCgkgIEVhcmxpZXIgd2Ugd2VyZSBvbmx5IHVzaW5nIF9fZGVjbHNwZWMoZGxsZXhwb3J0L2ltcG9ydCkgd2hlbiB3ZSB3ZXJlCgkgIGJ1aWx0IHdpdGggTVNWQyBiZWNhdXNlIHdoZW4gYnVpbHQgd2l0aCBNaW5HVyBhbmQgbGlua2luZyB3aXRoIE1pbkdXIHdlCgkgIGRvbid0IG5lZWQgaXQgKGFuZCB3ZSBnZXQgbGlua2VyIGVycm9ycyBiZWNhdXNlIG9mIGl0KS4KCSAgSG93ZXZlciwgd2hlbiB3ZSdyZSBidWlsdCB3aXRoIE1pbkdXIGFuZCBzb21lb25lIHdhbnRzIHRvIGxpbmsgdG8gdXMKCSAgd2l0aCBNU1ZDLCB3ZSBzdGlsbCBuZWVkIHRoZSBwcm90b3R5cGVzIHRvIGhhdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpCgkgIHNpbmNlIE1TVkMgY2Fubm90IGRvIGF1dG8taW1wb3J0IGxpa2UgR0NDIGNhbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTAyOQoKMjAxNi0wOS0xMiAxNzowNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHNvIGRvbid0ICp1bnNldCogZWxlbWVudCBmbGFncyBpZiB0aGV5J3JlIGluIHRoZSBzdXBwcmVzc2VkIGZsYWdzCgkgIE90aGVyd2lzZSBvdXIgYmluIG1pZ2h0IGxvc2UgdmFyaW91cyBmbGFncyB0aGF0IHdlcmUgZXhwbGljaXRseSBzZXQgb24KCSAgaXQgYXQgYXJiaXRyYXJ5IHRpbWVzLgoKMjAxNi0wOS0xMCAxMTo1OToxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBnc3RiaW46IGFkZCB0ZXN0cyBmb3Igc3VwcHJlc3NlZCBmbGFncwoJICBTb21lIHNpbXBsZSB0ZXN0cyB0byBtYWtlIHN1cmUgaXQga2VlcHMgd29ya2luZwoKMjAxNi0wOS0wMiAxNzozOToxNyArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogQWRkIHNldHRlciBhbmQgZ2V0dGVyIHRvIHN1cHByZXNzIGVsZW1lbnQgZmxhZ3MKCSAgU3VwcHJlc3MtZmxhZ3MgaXMgZm9yIHByZXZlbnRpbmcgcHJvcGFnYXRpb24gb2YgY2hpbGQgZWxlbWVudCdzIHNwZWNpZmljCgkgIGZsYWcgd2hlbiBpdCBpcyBhZGRlZCB0byB0aGUgYmluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI3CgoyMDE2LTA5LTEwIDIwOjUwOjQ4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjE4ZDgyMCB0byBmOTgwZmQ5CgoyMDE1LTExLTEzIDE2OjAwOjAyICswMDAwICBHcmFoYW0gTGVnZ2V0dCA8bWluZnJpbkBzaGFycC5mbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBFbnN1cmUgZ3N0X3ZhbHVlIGlzIGluaXRpYWxpc2VkIGJlZm9yZSBnc3RfdGFnCgkgIE90aGVyd2lzZSBHU1RfVFlQRV9GUkFDVElPTiB3aWxsIHdvcmsgY29ycmVjdGx5IGluIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM5MjIKCjIwMTYtMDktMDkgMTE6NDY6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogUmVzZXQgdGhlIHN0b3AgcG9zaXRpb24gdG8gTk9ORSBpbiBzZWVrX3NpbXBsZSgpCgkgIFdoZW4gdXNpbmcgc2Vla19zaW1wbGUoKSBpbiBjb21iaW5hdGlvbiB3aXRoIG90aGVyIGtpbmRzIG9mIHNlZWtzLCB0aGlzCgkgIGJlY29tZXMgcHJvYmxlbWF0aWMuIHNlZWtfc2ltcGxlKCkgZG9lcyBub3QgcmVzZXQgdGhlIHN0b3AgcG9zaXRpb24gdG8KCSAgR1NUX0NMT0NLX1RJTUVfTk9ORSBidXQga2VlcHMgd2hhdGV2ZXIgYSBwcmV2aW91cyBzZWVrIGRpZC4gU28gZm9yIGV4YW1wbGUKCSAgd2hlbiBkb2luZyBhIHNlZWtfc2ltcGxlKCkgYWZ0ZXIgYSByYXRlPS0xIHNlZWssIHdlIHdvdWxkIHVzdWFsbHkgZ2V0CgkgIGFzc2VydGlvbnMgdGhhdCBzdGFydD5zdG9wIChhbmQgc3RvcCBiZWluZyB0aGUgb2xkIHN0b3AgZnJvbSB0aGUgcmF0ZT0xIHNlZWspLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMTA0CgoyMDE2LTA5LTEwIDA5OjUzOjQyICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjQ5YzU1ZSB0byBiMThkODIwCgoyMDE2LTA5LTA5IDA5OjM2OjQwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjp0ZXN0czogQnVtcCB0aW1lb3V0IHRvIDMgbWludXRlcwoJICBCYXNpY2FsbHkgd2UgYWxyZWFkeSBoYXZlIGVhY2ggdGVzdCB3aXRoIGEgMjBzZWMgdGltZW91dCwKCSAgYW5kIHRlc3RzdWl0ZSBjYW4gbGFzdCBtb3JlIHRoYW4gdGhlIGRlZmF1bHQgMzBzZWNzIGZyb20KCSAgbWVzb24uIDMgbWludXRlcyBpcyBhbm90aGVyIGFyYml0cmFyeSB0aW1lb3V0IGJ1dCBzaG91bGQKCSAgYmUgZ29vZCBlbm91Z2guCgoyMDE2LTA5LTA4IDE1OjE5OjM4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXNlIHRoZSBhdmVyYWdlIGR1cmF0aW9ucyBiYXNlZCBvbiB0aW1lc3RhbXBzIGZvciB0aGUgUW9TIHByb3BvcnRpb24gd2hlbiBkb2luZyB0cmlja21vZGVzCgkgIFRoZSBkdXJhdGlvbnMgb2YgdGhlIGJ1ZmZlcnMgYXJlICh1c3VhbGx5KSBhc3N1bWluZyB0aGF0IG5vIGZyYW1lcyBhcmUgYmVpbmcKCSAgZHJvcHBlZCBhbmQgYXJlIGp1c3QgdGhlIGR1cmF0aW9ucyBjb21pbmcgZnJvbSB0aGUgc3RyZWFtLiBIb3dldmVyIGlmIHdlIGRvCgkgIHRyaWNrbW9kZXMsIGZyYW1lcyBhcmUgYmVpbmcgZHJvcHBlZCByZWd1bGFybHkgZXNwZWNpYWxseSBpZiBvbmx5IGtleSB1bml0cwoJICBhcmUgc3VwcG9zZWQgdG8gYmUgcGxheWVkLgoJICBGaXhlcyBjb21wbGV0ZWx5IGJvZ3VzIFFvUyBwcm9wb3J0aW9uIHZhbHVlcyBpbiB0aGUgYWJvdmUgY2FzZS4KCjIwMTYtMDktMDUgMTg6MDc6NDkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggYnVpbGRpbmcgd2l0aCBtZXNvbiAwLjM0CgoyMDE2LTA4LTI2IDIwOjA2OjU5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IEFsbG93IG90aGVycyB0byBidWlsZCBHSVIgZmlsZXMgd2hlbiB1c2luZyBHU3RyZWFtZXIgYXMgc3VicHJvamVjdAoJICBBbmQgYWRkIGEgd2F5IHRvIGRpc2FibGUgdGhlIGludHJvc3BlY3Rpb24gYW5kIGJ1bXAgdmVyc2lvbiB0byAxLjkuMgoKMjAxNi0wOS0wNSAxMToxMToyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmguaW46IEFkZCBhbm90aGVyIHZlcnNpb24gb2YgdGhlIFNINCAjZGVmaW5lIGFuZCBTMzkweAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNzMxCgoyMDE2LTA5LTA1IDA5OjUwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgY29uZmlnOiBuZXdlciBnY2MgZG9lc24ndCBrbm93IF9fcHBjX18gYW5kIF9fcHBjNjRfXyBhbnltb3JlCgkgIF9fcHBjX18gYW5kIF9fcHBjNjRfXyBhcmUgbm9uLXN0YW5kYXJkIGRlZmluZXMsIHdlIHNob3VsZCB1c2UKCSAgX19wb3dlcnBjX18gYW5kIF9fcG93ZXJwYzY0X18gaW5zdGVhZCBiZWNhdXNlIG5ld2VyIGdjYyBkb2Vzbid0IGtub3cKCSAgdGhlbSBhbnltb3JlLgoKMjAxNi0wOS0wNCAyMDozOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogYWRkICogZm9yIHBvaW50ZXIgc2lnbmFsIGFyZ3VtZW50cyB3aGVyZSBuZWVkZWQKCSAgUHJpbnQgR09iamVjdCBhcmd1bWVudCBwcm9wZXJseSB3aXRoIHBvaW50ZXIgbWFya2VyOgoJICAiY2xpZW50LWFkZGVkIiA6ICB2b2lkIHVzZXJfZnVuY3Rpb24gKEdzdEVsZW1lbnQqIG9iamVjdCwKCSAgR09iamVjdCogYXJnMCwKCSAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKCSAgaW5zdGVhZCBvZgoJICAiY2xpZW50LWFkZGVkIiA6ICB2b2lkIHVzZXJfZnVuY3Rpb24gKEdzdEVsZW1lbnQqIG9iamVjdCwKCSAgR09iamVjdCBhcmcwLAoJICBncG9pbnRlciB1c2VyX2RhdGEpOwoJICBmb3IgZ3N0LWluc3BlY3QtMS4wIHRjcHNlcnZlcnNpbmsuCgoyMDE2LTA5LTAyIDIzOjIyOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkb24ndCBidWlsZCBtaXNjIHN1YmRpciBpZiBib3RoIGV4YW1wbGVzIGFuZCBiZW5jaG1hcmtzIGhhdmUgYmVlbiBkaXNhYmxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNzQwCgoyMDE2LTA5LTAxIDE0OjEzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgY29uZmlnOiBzdXBwb3J0IFN5c3RlbSB6CgoyMDE2LTA5LTAxIDEyOjI1OjIzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjkuMiA9PT0KCjIwMTYtMDktMDEgMTI6MjQ6NDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjIKCjIwMTYtMDktMDEgMTE6MjI6NDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wOC0zMSAwOTo0OTowMyArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIGhpZ2hlci1yZXNvbHV0aW9uIGxvdy9oaWdoLXdhdGVybWFyayBwcm9wZXJ0aWVzCgkgIGxvdy9oaWdoLXdhdGVybWFyayBhcmUgb2YgdHlwZSBkb3VibGUsIGFuZCBnaXZlbiBpbiByYW5nZSAwLjAtMS4wLiBUaGlzCgkgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNldCBsb3cvaGlnaCB3YXRlcm1hcmtzIHdpdGggZ3JlYXRlciByZXNvbHV0aW9uLAoJICB3aGljaCBpcyB1c2VmdWwgd2l0aCBsYXJnZSBtdWx0aXF1ZXVlIG1heCBzaXplcyBhbmQgd2F0ZXJtYXJrcyBsaWtlIDAuNSUuCgkgIEFsc28gYWRkaW5nIGEgdGVzdCB0byBjaGVjayB0aGUgZmlsbCBhbmQgd2F0ZXJtYXJrIGxldmVsIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI4CgoyMDE2LTA4LTMxIDA5OjQ4OjUzICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IERpc3Rpbmd1aXNoIGJldHdlZW4gYnVmZmVyaW5nIHBlcmNlbnRhZ2UgYW5kIGJ1ZmZlcmluZyBsZXZlbAoJICBUbyBtYWtlIHRoZSBjb2RlIGNsZWFyZXIsIGFuZCB0byBmYWNpbGl0YXRlIGZ1dHVyZSBpbXByb3ZlbWVudHMsIGludHJvZHVjZQoJICBhIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGJ1ZmZlcmluZyBsZXZlbCBhbmQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50YWdlLgoJICBCdWZmZXJpbmcgbGV2ZWw6IHRoZSBxdWV1ZSdzIGN1cnJlbnQgZmlsbCBsZXZlbC4gVGhlIGxvdy9oaWdoIHdhdGVybWFya3MKCSAgYXJlIGluIHRoaXMgcmFuZ2UuCgkgIEJ1ZmZlcmluZyBwZXJjZW50YWdlOiBwZXJjZW50YWdlIHJlbGF0aXZlIHRvIHRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgICgwJSA9IGxvdyB3YXRlcm1hcmssIDEwMCUgPSBoaWdoIHdhdGVybWFyaykuCgkgIFRvIHRoYXQgZW5kLCBnZXRfcGVyY2VudGFnZSgpIGlzIHJlbmFtZWQgdG8gZ2V0X2J1ZmZlcmluZ19sZXZlbCgpLiBBbHNvLAoJICBsb3cvaGlnaF9wZXJjZW50IGFyZSByZW5hbWVkIHRvIGxvdy9oaWdoX3dhdGVybWFyayB0byBhdm9pZCBjb25mdXNpb24uCgkgIG1xLT5idWZmZXJpbmdfcGVyY2VudCB2YWx1ZXMgYXJlIG5vdyBub3JtYWxpemVkIGluIHRoZSAwLi4xMDAgcmFuZ2UgZm9yCgkgIGJ1ZmZlcmluZyBtZXNzYWdlcyBpbnNpZGUgdXBkYXRlX2J1ZmZlcmluZygpLCBhbmQgbm90IGp1c3QgYmVmb3JlIHNlbmRpbmcKCSAgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLiBGaW5hbGx5IHRoZSBidWZmZXJpbmcgbGV2ZWwgcmFuZ2UgaXMgcGFyYW1ldGVyaXplZAoJICBieSBhZGRpbmcgYSBuZXcgY29uc3RhbnQgY2FsbGVkIE1BWF9CVUZGRVJJTkdfTEVWRUwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjgKCjIwMTYtMDgtMzEgMDk6NDg6MzggKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogUmVuYW1lIHBlcmNlbnQvcGVyY2VudF9jaGFuZ2VkIHRvIGJ1ZmZlcmluZ19wZXJjZW50KF9jaGFuZ2VkKQoJICBUaGlzIGlzIGEgcHJlcmVxdWlzaXRlIGZvciBzdWJzZXF1ZW50IGNvbW1pdHMsIGFuZCBtYWtlcyBxdWV1ZTIgYW5kCgkgIG11bHRpcXVldWUgY29kZSBhIGxpdHRsZSBtb3JlIGNvbnNpc3RlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjgKCjIwMTYtMDgtMjMgMTQ6NTc6MzMgKzA5MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhpZ2hfdGltZSB3YWtldXAgbG9naWMKCSAgV2hlbiBjYWxjdWxhdGluZyB0aGUgaGlnaF90aW1lLCBjYWNoZSB0aGUgZ3JvdXAgdmFsdWUgaW4gZWFjaCBzaW5nbGVxdWV1ZS4KCSAgVGhpcyBmaXhlcyB0aGUgaXNzdWUgYnkgd2hpY2ggd2FrZV91cF9uZXh0X25vbl9saW5rZWQoKSB3b3VsZCB1c2UgdGhlIGdsb2JhbAoJICBoaWdoLXRpbWUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gd2FrZS11cCBhIHdhaXRpbmcgdGhyZWFkLCBpbnN0ZWFkIG9mIHRoZSBncm91cAoJICBvbmUsIHJlc3VsdGluZyBpbiB0aG9zZSB0aHJlYWRzIGNvbnN0YW50bHkgc3Bpbm5pbmcuCgkgIFRpZHkgdXAgYSBiaXQgdGhlIHdhaXRpbmcgbG9naWMgd2hpbGUgd2UncmUgYXQgaXQuCgkgIFdpdGggdGhpcyBwYXRjaCwgd2UgZ28gZnJvbSAyMTIlIHBsYXlpbmcgYSA4IGF1ZGlvIC8gOCB2aWRlbyBmaWxlIGRvd24gdG8gbGVzcwoJICB0aGFuIDEwJSAobW9zdCBvZiBpdCBiZWluZyB0aGUgdmlkZW8gZGVjb2RpbmcpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMjI1CgoyMDE2LTA4LTI4IDE2OjAyOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBkb24ndCBwcmludCBpbnRlcm5hbCBwYWQgcmVxdWVzdCBmdW5jdGlvbiBuYW1lCgkgIFRoaXMganVzdCBjb25mdXNlcyBwZW9wbGUsIHRoZXkgbG9vayBhdCBpdCBhbmQgdHJ5IHRvIGNhbGwgaXQKCSAgZGlyZWN0bHkgYnkgbmFtZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcHVibGljIEdzdEVsZW1lbnQgQVBJLgoJICBJdCBzdGFuZHMgdG8gcmVhc29uIHRoYXQgaXQgZ29lcyB3aXRob3V0IHNheWluZyB0aGF0IHdoZW4gYW4KCSAgZWxlbWVudCBwcm92aWRlcyByZXF1ZXN0IHBhZHMgdGhhdCB0aGV5IGNhbiBhY3R1YWxseSBiZQoJICByZXF1ZXN0ZWQgdXNpbmcgdGhlIHN0YW5kYXJkIEFQSSwgYW5kIHRoZXJlJ3Mgbm8gcG9pbnQgaW4KCSAgcHJpbnRpbmcgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiB0aGUgZWxlbWVudC4KCjIwMTYtMDgtMjMgMTM6Mjc6NTggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgTWFrZSB1c2Ugb2YgdGhlIG5ldyBHU1RfRUxFTUVOVF9GTE9XX0VSUk9SIEFQSSBhbGwgYXJvdW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTU4CgoyMDE2LTA4LTIzIDEzOjI3OjIwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgQVBJIHRvIG1vcmUgZWFzaWx5IHBvc3QgbWVzc2FnZXMgYWJvdXQgZmxvd2luZyBpc3N1ZXMKCSAgSW4gbWFueSBwYXJ0cyBvZiB0aGUgY29kZSB3ZSByYWlzZSBzdHJlYW1pbmcgZXJyb3Igd2hlbiB0aGUgZmxvdwoJICBnb2VzIHdyb25nLCBhbmQgZWFjaCB0aW1lIHdlIGNyZWF0ZSBtb3JlIG9yIGxlc3Mgc2ltaWxhcmUgZXJyb3IKCSAgbWVzc2FnZS4gQWxzbyB0aGF0IG1lc3NhZ2UgZG9lcyBub3QgbGV0IHRoZSBhcHBsaWNhdGlvbiBrbm93IHdoYXQKCSAgaGFzIGFjdHVhbGx5IGdvbmUgd3JvbmcuIEluIHRoZSBuZXcgQVBJIHdlIGFkZCBhICJmbG93LXJldHVybiIgZGV0YWlsCgkgIGZpZWxkIGluc2lkZSB0aGUgR3N0TWVzc2FnZSBzbyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbgoJICBpZiBpdCBuZWVkcyBpdC4KCSAgQVBJOgoJICBHU1RfRUxFTUVOVF9GTE9XX0VSUk9SCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxNTgKCjIwMTYtMDgtMjYgMTk6Mjc6MjIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBtZXNvbi5idWlsZDoKCSAgZ3N0Y29uZmlnOiBEZWNpZGUgR1NUX0VYUE9SVCBkZWNsYXJhdGlvbiBzdHlsZSBhdCBidWlsZCB0aW1lCgkgIFdlIG9ubHkgdXNlIEdTVF9FWFBPUlQgY29uc2lzdGVudGx5IHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDIGJ5IHVzaW5nIHRoZQoJICB2aXN1YWwgc3R1ZGlvIGRlZmluaXRpb25zIGZpbGVzICh3aW4zMi9jb21tb24vKi5kZWYpLCBzbyBhbHdheXMgZGlzYWJsZQoJICBpdCB3aGVuIGJ1aWxkaW5nIHdpdGggQXV0b3Rvb2xzIGFuZCBvbmx5IGVuYWJsZSBpdCB3aXRoIE1lc29uIHdoZW4KCSAgYnVpbGRpbmcgd2l0aCBNU1ZDLgoJICBUaGlzIGFsbG93cyB5b3UgdG8gdXNlIE1pbkdXIHRvIGxpbmsgdG8gYSBHU3RyZWFtZXIgYnVpbHQgd2l0aCBNU1ZDIGFuZAoJICBnZXQgdGhlIGNvcnJlY3QgZnVuY3Rpb24gcHJvdG90eXBlcyB0byBmaW5kIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGluCgkgIERMTHMuCgoyMDE2LTA4LTI2IDE2OjIxOjMwICswOTAwICBXb25jaHVsIExlZSA8d29uY2h1bC5sZWVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXNlbGVjdGlvbi50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvIGluIHN0cmVhbSBzZWxlY3Rpb24gZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc3MDQyOAoKMjAxNi0wOC0yNiAxMjo1NTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiByZW5hbWUgZ3N0X2VsZW1lbnRfbWVzc2FnZV9uZXdfZGV0YWlscygpIHRvIGdzdF9tYWtlX2VsZW1lbnRfbWVzc2FnZV9kZXRhaWxzKCkKCSAgRml4ZXMgZy1pIHdhcm5pbmcgIkdzdDogQ29uc3RydWN0b3IgcmV0dXJuIHR5cGUgbWlzbWF0Y2gKCSAgc3ltYm9sPSdnc3RfZWxlbWVudF9tZXNzYWdlX25ld19kZXRhaWxzJyBjb25zdHJ1Y3RlZD0nR3N0LkVsZW1lbnQnCgkgIHJldHVybj0nR3N0LlN0cnVjdHVyZSciLgoJICBUaGlzIGlzIGEgbmV3bHktYWRkZWQgZnVuY3Rpb24gaW4gZ2l0IHRoYXQgaGFzIG5vdCBiZWVuIGluIGEgc3RhYmxlCgkgIHJlbGVhc2UgeWV0LCBzbyBpdCdzIGZpbmUgdG8gcmVuYW1lIGl0LiBJdCdzIGFsc28gb25seSB1c2VkIGluZGlyZWN0bHkKCSAgdmlhIG1hY3Jvcy4KCjIwMTYtMDgtMjYgMTI6MzU6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgZG9jczogZml4IHZhcmlvdXMgZ3RrLWRvYyB3YXJuaW5ncwoJICBlLmcuICJ3YXJuaW5nOiBtdWx0aS1saW5lIHNpbmNlIGRvY3MgZm91bmQiCgoyMDE2LTA4LTI2IDEyOjA0OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZy1pOiBpbmZvOiBhbGxvdyBwYXNzaW5nIE5VTEwgdG8gZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24oKQoJICBVc2VmdWwgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGhhbmRsZXIgZnJvbSBiaW5kaW5ncy4KCjIwMTYtMDgtMjUgMTU6MDQ6MDYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZG9jOiBGaXggYnVpbGRpbmcgZG9jdW1lbnRhdGlvbiB3aGVuIHVzaW5nIHN1YnByb2plY3RzCgkgIGFuZCBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgZ3RrLWRvYyBiZWZvcmUgYnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb24KCjIwMTYtMDgtMjYgMDM6MTc6NDEgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogSW1wbGVtZW50IGNhbl9pbnRlcnNlY3QgZm9yIEdzdEZsYWdTZXQgdHlwZXMKCSAgTWFrZSBzdXJlIHRoYXQgZ3N0X3ZhbHVlX2Nhbl9pbnRlcnNlY3QgcmV0dXJucyBUUlVFCgkgIGZvciBHc3RGbGFnU2V0IGNvbWJpbmF0aW9ucyB0aGF0IGNhbiBzdWNjZXNzZnVsbHkKCSAgaW50ZXJzZWN0CgoyMDE2LTA4LTAzIDE1OjIwOjIwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBBZGQgaGlnaGVyLXJlc29sdXRpb24gbG93L2hpZ2gtd2F0ZXJtYXJrIHByb3BlcnRpZXMKCSAgbG93L2hpZ2gtd2F0ZXJtYXJrIGFyZSBvZiB0eXBlIGRvdWJsZSwgYW5kIGdpdmVuIGluIHJhbmdlIDAuMC0xLjAuIFRoaXMKCSAgbWFrZXMgaXQgcG9zc2libGUgdG8gc2V0IGxvdy9oaWdoIHdhdGVybWFya3Mgd2l0aCBncmVhdGVyIHJlc29sdXRpb24sCgkgIHdoaWNoIGlzIHVzZWZ1bCB3aXRoIGxhcmdlIHF1ZXVlMiBtYXggc2l6ZXMgYW5kIHdhdGVybWFya3MgbGlrZSAwLjUlLgoJICBBbHNvIGFkZGluZyBhIHRlc3QgdG8gY2hlY2sgdGhlIGZpbGwgYW5kIHdhdGVybWFyayBsZXZlbCBiZWhhdmlvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTQ0OQoKMjAxNi0wOC0wMyAxNToyNzo0MCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGJ1ZmZlcmluZyBwZXJjZW50YWdlIGFuZCBidWZmZXJpbmcgbGV2ZWwKCSAgVG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLCBhbmQgdG8gZmFjaWxpdGF0ZSBmdXR1cmUgaW1wcm92ZW1lbnRzLCBpbnRyb2R1Y2UKCSAgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHRoZSBidWZmZXJpbmcgbGV2ZWwgYW5kIHRoZSBidWZmZXJpbmcgcGVyY2VudGFnZS4KCSAgQnVmZmVyaW5nIGxldmVsOiB0aGUgcXVldWUncyBjdXJyZW50IGZpbGwgbGV2ZWwuIFRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgIGFyZSBpbiB0aGlzIHJhbmdlLgoJICBCdWZmZXJpbmcgcGVyY2VudGFnZTogcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgbG93L2hpZ2ggd2F0ZXJtYXJrcwoJICAoMCUgPSBsb3cgd2F0ZXJtYXJrLCAxMDAlID0gaGlnaCB3YXRlcm1hcmspLgoJICBUbyB0aGF0IGVuZCwgZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkgaXMgcmVuYW1lZCB0byBnZXRfYnVmZmVyaW5nX2xldmVsKCksCgkgIGFuZCB0aGUgY29kZSBhdCB0aGUgZW5kIHRoYXQgdHJhbnNmb3JtcyB0byB0aGUgYnVmZmVyaW5nIHBlcmNlbnRhZ2UgaXMKCSAgZmFjdG9yZWQgb3V0IGludG8gYSBuZXcgY29udmVydF90b19idWZmZXJpbmdfcGVyY2VudCgpIGZ1bmN0aW9uLiBBbHNvLAoJICB0aGUgYnVmZmVyaW5nIGxldmVsIHJhbmdlIGlzIHBhcmFtZXRlcml6ZWQgYnkgYWRkaW5nIGEgbmV3IGNvbnN0YW50IGNhbGxlZAoJICBNQVhfQlVGRkVSSU5HX0xFVkVMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NDQ5CgoyMDE2LTA4LTIzIDEwOjUyOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogcmVsZWFzZTogYWRkIHRhZyBzaWduaW5nIGNvbW1hbmQKCjIwMTYtMDctMDcgMDg6MDE6MjQgKzAyMDAgIEFyamVuIFZlZW5odWl6ZW4gPGFyamVuLnZlZW5odWl6ZW5AdG5vLm5sPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBleHBsaWNpdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBidWZmZXIgZmxhZ3MKCSAgVGhlc2UgY2FuIGJlIHVzZWQgZnJvbSBiaW5kaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODMwMQoKMjAxNi0wOC0yMiAwMDowMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogaW5zdGFsbCBsaWJnc3RjaGVjay0xLjAgYW5kIGFkZCBhcGkgdmVyc2lvbiB0byBuYW1lCgoyMDE2LTA4LTIwIDA4OjU0OjI3ICswOTAwICBIb29uaGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkgIHN0cmVhbXM6IHVwZGF0ZSBhbmQgZW1pdCBub3RpZnkgc2lnbmFsIG9ubHkgaWYgdGFnbGlzdCBhY3R1YWxseSBjaGFuZ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxNjEKCjIwMTYtMDgtMTIgMjA6MjU6MTcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIGNvbmZpZy5oLm1lc29uOgoJKiBkb2NzL2dzdC9tZXNvbi5idWlsZDoKCSogZG9jcy9saWJzL21lc29uLmJ1aWxkOgoJKiBkb2NzL21lc29uLmJ1aWxkOgoJKiBnc3QvYnVpbGRfbWtlbnVtLnB5OgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIGdzdC9wYXJzZS9nZW5fZ3JhbW1hci5weS5pbjoKCSogZ3N0L3BhcnNlL2dlbl9sZXgucHkuaW46CgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJKiBsaWJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy9lbGVtZW50cy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy9tZXNvbi5idWlsZDoKCSogcG8vbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2JlbmNobWFya3MvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvcHRwL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9tZXNvbi5idWlsZDoKCSogdGVzdHMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL21pc2MvbWVzb24uYnVpbGQ6CgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBBZGQgc3VwcG9ydCBmb3IgTWVzb24gYXMgYWx0ZXJuYXRpdmUvcGFyYWxsZWwgYnVpbGQgc3lzdGVtCgkgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvbmJ1aWxkL21lc29uCgkgIFdpdGggY29udHJpYnV0aW9ucyBmcm9tOgoJICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoJICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgkgIEp1c3NpIFBha2thbmVuIDxqcGFra2FuZUBnbWFpbC5jb20+IChvcmlnaW5hbCBwb3J0KQoJICBIaWdobGlnaHRzIG9mIHRoZSBmZWF0dXJlcyBwcm92aWRlZCBhcmU6CgkgICogRmFzdGVyIGJ1aWxkcyBvbiBMaW51eCAofjQwLTUwJSBmYXN0ZXIpCgkgICogVGhlIGFiaWxpdHkgdG8gYnVpbGQgd2l0aCBNU1ZDIG9uIFdpbmRvd3MKCSAgKiBHZW5lcmF0ZSBWaXN1YWwgU3R1ZGlvIHByb2plY3QgZmlsZXMKCSAgKiBHZW5lcmF0ZSBYQ29kZSBwcm9qZWN0IGZpbGVzCgkgICogTXVjaCBmYXN0ZXIgYnVpbGRzIG9uIFdpbmRvd3MgKG9uLXBhciB3aXRoIExpbnV4KQoJICAqIFNlcmlvdXNseSBmYXN0IGNvbmZpZ3VyZSBhbmQgYnVpbGRpbmcgb24gZW1iZWRkZWQKCSAgLi4uIGFuZCBtYW55IG1vcmUuIEZvciBtb3JlIGRldGFpbHMgc2VlOgoJICBodHRwOi8vYmxvZy5uaXJiaGVlay5pbi8yMDE2LzA1L2dzdHJlYW1lci1hbmQtbWVzb24tbmV3LWhvcGUuaHRtbAoJICBodHRwOi8vYmxvZy5uaXJiaGVlay5pbi8yMDE2LzA3L2J1aWxkaW5nLWFuZC1kZXZlbG9waW5nLWdzdHJlYW1lci11c2luZy5odG1sCgkgIEJ1aWxkaW5nIHdpdGggTWVzb24gc2hvdWxkIHdvcmsgb24gYm90aCBMaW51eCBhbmQgV2luZG93cywgYnV0IG1heQoJICBuZWVkIGEgZmV3IG1vcmUgdHdlYWtzIG9uIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLgoKMjAxNi0wOC0xMyAxMzo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgTW92ZSBnc3Rjb25maWcuaCBiYWNrIHRvIG5vcm1hbCBpbmNsdWRlIGRpcgoJICBOb3cgdGhhdCBpdCdzIGFyY2gtaW5kZXBlbmRlbnQgYWdhaW4uIFdpbGwgbmVlZCBmaXhlcyBpbiBjZXJiZXJvIHRvby4KCjIwMTYtMDYtMjEgMTg6NTk6NDkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogRGV0ZWN0IHVuYWxpZ25lZCBhY2Nlc3Mgc3VwcG9ydCBhdCBjb21waWxlLXRpbWUKCSAgVGhpcyBtYWtlcyBnc3Rjb25maWcuaCBjb21wbGV0ZWx5IGFyY2gtaW5kZXBlbmRlbnQuIFNob3VsZCBjb3ZlciBhbGwKCSAgY29tcGlsZXJzIHRoYXQgZ3N0cmVhbWVyIGlzIGtub3duIHRvIGJ1aWxkIG9uLCBhbmQgYWxsIGFyY2hpdGVjdHVyZXMKCSAgdGhhdCBJIGNvdWxkIGZpbmQgaW5mb3JtYXRpb24gb24uIFBlb3BsZSBhcmUgZW5jb3VyYWdlZCB0byBmaWxlIGJ1Z3MgaWYKCSAgdGhlaXIgcGxhdGZvcm0vYXJjaCBpcyBtaXNzaW5nLgoKMjAxNi0wOC0xMyAwOTo1NTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogcG8vUE9URklMRVMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgb2xkIGFsbG9jIHRyYWNpbmcgY29kZSBub3cgdGhhdCB3ZSBoYXZlIGEgR3N0VHJhY2VyLWJhc2VkIHJlcGxhY2VtZW50CgkgIEl0J3MgYmVlbiBpbnRlcm5hbCBBUEkgb25seSBpbiAxLnguCgoyMDE2LTA4LTEyIDE2OjE1OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQb3N0IGJ1ZmZlcmluZyBtZXNzYWdlcyBlYXJsaWVyIGluIHJpbmdidWZmZXIgbW9kZQoJICBJbiByaW5nYnVmZmVyIG1vZGUgd2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgcG9zdCBidWZmZXJpbmcgbWVzc2FnZXMgKmJlZm9yZSoKCSAgYmxvY2tpbmcgdG8gd2FpdCBmb3IgZGF0YSB0byBiZSBkcmFpbmVkLgoJICBXaXRob3V0IHRoaXMsIHdlIHdvdWxkIGVuZCB1cCBpbiBzaXR1YXRpb25zIGxpa2UgdGhpczoKCSAgKiBwaXBlbGluZSBpcyBwcmUtcm9sbGluZwoJICAqIERvd25zdHJlYW0gZGVtdXhlci9kZWNvZGVyIGhhcyBwdXNoZWQgZGF0YSB0byBhbGwgc2lua3MsIGFuZCBkZW11eGVyIHRocmVhZAoJICBpcyBibG9ja2luZyBkb3duc3RyZWFtIChpLmUuIG5vdCBwdWxsaW5nIGZyb20gdXBzdHJlYW0vcXVldWUyKS4KCSAgKiBUaGVyZWZvcmUgcGlwZWxpbmUgaGFzIHByZS1yb2xsZWQgLi4uCgkgICogLi4uIGJ1dCBxdWV1ZTIgaGFzbid0IGZpbGxlZCB1cCB5ZXQsIHRoZXJlZm9yZSB0aGUgYXBwbGljYXRpb24gd2FpdHMgZm9yCgkgIHRoZSBidWZmZXJpbmcgMTAwJSBtZXNzYWdlcyBiZWZvcmUgc2V0dGluZyB0aGUgcGlwZWxpbmUgdG8gUExBWUlORwoJICAqIEJ1dCBxdWV1ZTIgY2FuJ3QgcG9zdCB0aGF0IG1lc3NhZ2UsIHNpbmNlIHRoZSAxMDAlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQKCSAgKmFmdGVyKiB0aGVyZSBpcyByb29tIGF2YWlsYWJsZSBmb3IgdGhhdCBsYXN0IGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTgwMgoKMjAxNi0wOC0wOCAxNjo0MjowNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJlbW92ZWQgcmVkdW5kYW50IGNhbGwgdG8gZ190aHJlYWRfc2VsZgoJICBSZW1vdmUgYW4gdW5uZWVkZWQgY2FsbCB0byBnX3RocmVhZF9zZWxmIGFuZCBtaW5vciBjb2Rpbmcgc3R5bGUgZml4LgoKMjAxNi0wMy0xNiAxODowMDoxNSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSGFuZGxlIHN0cmVhbS1ncm91cC1kb25lCgkgIEhhbmRsZSB0aGUgbmV3IHN0cmVhbS1ncm91cC1kb25lIG1lc3NhZ2UgdG8gdW5ibG9jayBwYWRzIHdoaWNoCgkgIGFyZSB3YWl0aW5nIGZvciB0aGUgcnVubmluZyB0aW1lIHRvIGFkdmFuY2Ugb24gdGhhdCBncm91cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk5NQoKMjAxNi0wMy0xNCAxNDoyMDo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50czogSW1wbGVtZW50IHRoZSBzdHJlYW0tZ3JvdXAtZG9uZSBldmVudAoJICBBIG5ldyBldmVudCB3aGljaCBwcmVjZWRlcyBFT1MgaW4gc2l0dWF0aW9ucyB3aGVyZSB3ZQoJICBuZWVkIGRvd25zdHJlYW0gdG8gdW5ibG9jayBhbnkgcGFkcyB3YWl0aW5nIG9uIGEgc3RyZWFtCgkgIGJlZm9yZSB3ZSBjYW4gc2VuZCBFT1MuIEUuZywgZGVjb2RlYmluIGRyYWluaW5nIGEgY2hhaW4KCSAgc28gaXQgY2FuIHN3aXRjaCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTk1CgoyMDE2LTA3LTI1IDExOjIyOjM2ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBBZGQgcmVkaXJlY3QgbWVzc2FnZQoJICBSZWRpcmVjdGlvbiBtZXNzYWdlcyBhcmUgYWxyZWFkeSB1c2VkIGluIGZyYWdtZW50ZWQgc291cmNlcyBhbmQgaW4KCSAgdXJpZGVjb2RlYmluLCBzbyBpdCBtYWtlcyBzZW5zZSB0byBpbnRyb2R1Y2UgdGhlc2UgYXMgYW4gb2ZmaWNpYWwgbWVzc2FnZQoJICB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMxNjczCgoyMDE2LTA3LTI1IDE5OjE1OjE1ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWtlIG90aGVyIHBhZHMgd2hlbiBzZWxlY3RlZCBnb2VzIEVPUwoJICBPdGhlciBwYWRzIHRoYXQgYXJlIHdhaXRpbmcgZm9yIHRoZSBzdHJlYW0gb24gdGhlIHNlbGVjdGVkCgkgIHBhZCB0byBhZHZhbmNlIGJlZm9yZSB0aGV5IGZpbmlzaCB3YWl0aW5nIHRoZW1zZWx2ZXMKCSAgc2hvdWxkIGJlIGdpdmVuIHRoZSBjaGFuY2UgdG8gZG8gc28gd2hlbiB0aGUgc2VsZWN0ZWQgcGFkCgkgIGdvZXMgRU9TLiBGaXhlcyBwcm9ibGVtcyB3aGVyZSBpbnB1dCBzdHJlYW1zIGNhbiBlbmQgdXAKCSAgd2FpdGluZyBmb3JldmVyIGlmIHRoZSBhY3RpdmUgc3RyZWFtIGdvZXMgRU9TIGVhcmxpZXIgdGhhbgoJICB0aGVpciBvd24gZW5kIHRpbWUuCgoyMDE2LTA3LTI0IDAxOjM1OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogZml4IEdTVF9FTEVNRU5UX0VSUk9SKCkgZXJyb3IgY29kZSBleHBhbnNpb24KCSAgSW4gc29tZSBjb3JuZXIgY2FzZXMsIHRoZSBlcnJvciAnY29kZScgcGFydCBwYXNzZWQgdG8KCSAgR1NUX0VMRU1FTlRfRVJST1IoKSBpcyBhIHZhbGlkIGRlZmluZSBhcyB3ZWxsLCBpbiB3aGljaAoJICBjYXNlIGl0IHdvbid0IHN1cnZpdmUgdHdvIGxldmVscyBvZiBtYWNybyBleHBhbnNpb24sIGJ1dAoJICBvbmx5IG9uZS4gRml4ZXM6CgkgIG9zczQtc2luay5jOiBJbiBmdW5jdGlvbiDigJhnc3Rfb3NzNF9zaW5rX29wZW7igJk6CgkgIGVycm9yOiDigJhHU1RfUkVTT1VSQ0VfRVJST1JfMHgwMDAwMDAwMuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKCSAgR1NUXyAjIyBkb21haW4gIyMgX0VSUk9SXyAjIyBjb2RlLCBfX3R4dCwgX19kYmcsIF9fRklMRV9fLAoJICB3aGljaCBpcyBmcm9tIEdTVF9FTEVNRU5UX0VSUk9SKGVsLFJFU09VUkNFLE9QRU5fV1JJVEUsLi4pCgkgIGFuZCBPUEVOX1dSSVRFIGhhcHBlbnMgdG8gYmUgZGVmaW5lZCB0byAyIGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MDYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTExNwoKMjAxNi0wNy0yMiAxNzozMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBzb21lIG5vbnNlbnNpY2FsIGFubm90YXRpb25zCgoyMDE2LTA3LTIyIDE1OjI1OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBHU1RfRUxFTUVOVF8qX1dJVEhfREVUQUlMUyB0byBkb2MgbGlzdAoKMjAxNi0wNy0yMiAxNTowNDo1OCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBsaXN0IG5ldyBtZXNzYWdlIGRldGFpbHMgYXBpcyB3aGVyZSB0aGV5IHNlZW0gdG8gYmVsb25nCgoyMDE2LTA3LTIyIDE0OjU5OjU2ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBsaWJnc3RyZWFtZXIuZGVmOiBmaXggbWVudGlvbnMgb2YgbmV3IG1lc3NhZ2UgZGV0YWlscyBhcGkKCSAgSSBoYWQgbm90IHVwZGF0ZWQgaXQgYWZ0ZXIgdGhlIHJldmlldyBjaGFuZ2VzCgoyMDE2LTAzLTAyIDExOjIyOjIzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBuZXcgQVBJIGZvciBhZGRpdGlvbmFsIGN1c3RvbSBkYXRhIHRvIGVycm9yIG1lc3NhZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MDYKCjIwMTYtMDctMjAgMTI6MjI6MTAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICB0cmFjZXJzOiBsZWFrczogdXBkYXRlIHR5cGUgZmlsdGVyIGxhdGVyIGZvciB1bmtub3duIHR5cGVzCgkgIFRoaXMgYWxsb3cgdXMgdG8gZmlsdGVyIHVzaW5nIGFuIG9iamVjdCB0eXBlIHdoaWNoIGlzIGltcGxlbWVudGVkCgkgIGJ5IGEgcGx1Z2luIGxpa2UsIHNheSwgR3N0R3RrR0xTaW5rLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTg5CgoyMDE2LTA3LTE5IDE0OjQ1OjUzICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIGctaSB0cmFuc2ZlciBhbm5vdGF0aW9ucyB0byBwZWVrL3BvcC9yZWFkX2J1ZmZlci90YWtlX2J1ZmZlciBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk0OAoKMjAxNi0wNy0xOSAyMzoxODoyNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBVc2UgZ3N0X2Nsb2NrX3dhaXRfZm9yX3N5bmMgKCkgZm9yIG5ldCBjbGllbnQgY2xvY2sKCSAgSW5zdGVhZCBvZiBsb29waW5nLCB1c2UgdGhlIGdzdF9jbG9ja193YWl0X2Zvcl9zeW5jKCkgZnVuY3Rpb24KCSAgdG8gZ2l2ZSBjbG9ja3MgdXAgdG8gMSBzZWNvbmQgdG8gc3luY2hyb25pc2UKCjIwMTYtMDctMTMgMTU6NDM6MjEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IGFubm90YXRpb24gb2YgcGFyc2Vfc3RyZWFtX3tjb2xsZWN0aW9uLHN0cmVhbXNfc2VsZWN0ZWR9CgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgcmV0dXJucyBhIG5ldyByZWZlcmVuY2Ugc28gdGhlIHJldHVybmVkIG9iamVjdCBpcwoJICBhY3R1YWxseSAodHJhbnNmZXIgZnVsbCkuCgkgIFRoZSB1bml0IHRlc3RzIHdhcyBhbHJlYWR5IHVucmVmZmluZyB0aGUgb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3NgoKMjAxNi0wNy0xMyAxNTo0MzoyMSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggYW5ub3RhdGlvbiBvZiBwYXJzZV9kZXZpY2Vfe2FkZGVkLHJlbW92ZWR9CgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgcmV0dXJucyBhIG5ldyByZWZlcmVuY2Ugc28gdGhlIHJldHVybmVkIGRldmljZSBpcwoJICBhY3R1YWxseSAodHJhbnNmZXIgZnVsbCkuCgkgIFRoZSBjb2RlIHVzaW5nIHRoaXMgQVBJIHdhcyBhbHJlYWR5IGNvcnJlY3QgYnV0IHRoZSBjb2RlIGV4YW1wbGUgaW4KCSAgY29tbWVudHMgd2FzIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3NgoKMjAxNi0wNy0xNCAxNjo0MDoyMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGctaSB0cmFuc2ZlciBhbm5vdGF0YXRpb24gdG8gX3N0b3JlX3N0aWNreV9ldmVudCgpCgkgIEZvciBjbGFyaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4ODEwCgoyMDE2LTA3LTEyIDEyOjMyOjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBhdXRvbWF0aWMtZW9zPWZhbHNlIG1vZGUgaWYgYSBzZWdtZW50LnN0b3AgaXMgZ2l2ZW4KCSAgSWYgc2VnbWVudC5zdG9wIHdhcyBnaXZlbiwgYW5kIHRoZSBzdWJjbGFzcyBwcm92aWRlcyBhIHNpemUgdGhhdCBtaWdodCBiZQoJICBzbWFsbGVyIHRoYW4gc2VnbWVudC5zdG9wIGFuZCBhbHNvIHNtYWxsZXIgdGhhbiB0aGUgYWN0dWFsIHNpemUsIHdlIHdvdWxkCgkgIGFscmVhZHkgc3RvcCB0aGVyZS4KCSAgSW5zdGVhZCB0cnkgcmVhZGluZyB1cCB0byBzZWdtZW50LnN0b3AsIHRoZSBnb2FsIGlzIHRvIGlnbm9yZSB0aGUgKHBvc3NpYmx5CgkgIGluYWNjdXJhdGUpIHNpemUgdGhlIHN1YmNsYXNzIGdpdmVzIGFuZCBmaW5pc2ggdW50aWwgc2VnbWVudC5zdG9wIG9yIHdoZW4gdGhlCgkgIHN1YmNsYXNzIHRlbGxzIHVzIHRvIHN0b3AuCgoyMDE2LTA3LTExIDIxOjEzOjI4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMzYzYjMyIHRvIGY0OWM1NWUKCjIwMTYtMDctMTEgMTg6NDU6NDkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogRml4IHBvdGVudGlhbCBzdGFjayBjb3JydXB0aW9uIGluIGNhcHNuZWdvIHRlc3QKCSAgZmxhdm91cl9zdHIgaXMgYSBub24tY29uc3QgcG9pbnRlciB0aGF0IHdpbGwgYmUgd3JpdHRlbiB0byBpZiB0aGUgLWYKCSAgb3B0aW9uIGlzIHBhc3NlZAoKMjAxNi0wNy0xMSAxMTozNDowMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3M6IGNoZWNrIHJldHVybiB2YWx1ZXMgb2YgbGlidW53aW5kIGNhbGxzCgoyMDE2LTA3LTExIDA5OjU4OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYXZlcmFnZSBpbnB1dCByYXRlIGNhbGN1bGF0aW9uIG9uIHNtYWxsIGlucHV0IHJhbmdlCgkgIFdoZW4gZGVhbGluZyB3aXRoIHNtYWxsLWlzaCBpbnB1dCBkYXRhIGNvbWluZyBpbnRvIHF1ZXVlMiwgc3VjaCBhcwoJICBhZGFwdGl2ZWRlbXV4IGZyYWdtZW50cywgd2Ugd291bGQgbmV2ZXIgdGFrZSBpbnRvIGFjY291bnQgdGhlIGxhc3QKCSAgPDIwMG1zIG9mIGRhdGEgY29taW5nIGluLgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHVzdWFsbHkgb24gVENQIGNvbm5lY3Rpb24gdGhlIGRvd25sb2FkIHJhdGUKCSAgZ3JhZHVhbGx5IGluY3JlYXNlcyAoaS5lLiB0aGUgcmF0ZSBpcyBsb3dlciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEKCSAgZG93bmxvYWQgdGhhbiBpdCBpcyBsYXRlciBvbikuIENvbWJpbmVkIHdpdGggc21hbGwgZG93bmxvYWQgdGltZSAobGVzcwoJICB0aGFuIGEgc2Vjb25kKSB3ZSB3b3VsZCBlbmQgdXAgd2l0aCBhIGNvbXB1dGVkIGF2ZXJhZ2UgaW5wdXQgcmF0ZQoJICB3aGljaCB3YXMgc29tZXRpbWVzIHVwIHRvIDMwLTUwJSBvZmYgZnJvbSB0aGUgKmFjdHVhbCogYXZlcmFnZSBpbnB1dAoJICByYXRlIGZvciB0aGF0IGZyYWdtZW50LgoJICBJbiBvcmRlciB0byBmaXggdGhpcywgZm9yY2UgdGhlIGF2ZXJhZ2UgaW5wdXQgcmF0ZSBjYWxjdWxhdGlvbiB3aGVuCgkgIHdlIHJlY2VpdmUgYW4gRU9TIHNvIHRoYXQgd2UgdGFrZSBpbnRvIGFjY291bnQgdGhhdCBmaW5hbCB3aW5kb3cKCSAgb2YgZGF0YS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODY0OQoKMjAxNi0wNy0wOCAxNjozMTo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiB3ZWFrX3VucmVmOiBkaXNwbGF5IHRoZSBwb2ludGVyIG9mIHRoZSBvYmplY3QgaWYgZmFpbGluZwoJICBUaGF0J3MgZ2VuZXJhbGx5IHRoZSBtb3N0IHVzZWZ1bCBpbmZvcm1hdGlvbiB0byBoZWxwIGRlYnVnZ2luZyB0aGUKCSAgcHJvYmxlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3OQoKMjAxNi0wNy0wOCAxNjoyOTozOCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcHJvcGVybHkgZGlzcGxheSB0aGUgdHlwZSBvZiB0aGUgcmVtb3ZlZCBtZXNzYWdlCgkgIE1ha2VzIGRlYnVnZ2luZyBlYXNpZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzkKCjIwMTYtMDctMDggMTc6NDY6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZS1jcmVhdGUgdGhyZWFkcG9vbCBhZnRlciBjbGVhbmluZyB1cCB0YXNrcwoJICBXZSBkb24ndCBmcmVlIHRoaXMgZnJvbSBnc3RfZGVpbml0KCkgYnV0IGZyb20gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKSwKCSAgc28gbW9yZSBHU3RyZWFtZXIgQVBJIG1heSBiZSBjYWxsZWQuIEluIHBhcnRpY3VsYXIgbWFrZXMgdW5pdCB0ZXN0cwoJICB3b3JrIGFnYWluIHdpdGggQ0tfRk9SSz1uby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3NwoKMjAxNi0wNy0wOCAxNjo1Mzo1MSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzOiB3YXJuIGlmIG9iamVjdCBpcyBkZXN0cm95ZWQgd2hpbGUgdGhlIHRyYWNlciBpcyBkaXNwb3NpbmcKCSAgVGhpcyBzaG91bGQgbm90IGhhcHBlbiBhbmQgZ2VuZXJhbGx5IG1lYW5zIHNvbWUgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzgKCjIwMTYtMDctMDggMTY6MzY6MDEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGVsZW1lbnQ6IGNsZWFuIHVwIHRocmVhZCBwb29sIGZyb20gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKQoJICBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgYXN5bmMgb3BlcmF0aW9ucyAoc3RhcnRlZCBmcm9tIGdzdF9lbGVtZW50X2NhbGxfYXN5bmMoKSkKCSAgaGF2ZSBiZWVuIGNvbXBsZXRlZCBhbmQgc28gdGhlcmUgaXMgbm8gZXh0cmEgdGhyZWFkIHJ1bm5pbmcuCgkgIEZpeCByYWNlcyB3aGVuIGNoZWNraW5nIGZvciBsZWFrcyBvbiB1bml0IHRlc3RzIGFzIHNvbWUgb2YgdGhvc2UKCSAgb3BlcmF0aW9ucyB3ZXJlIHN0aWxsIHJ1bm5pbmcgd2hlbiB0aGUgbGVha3MgdHJhY2VyIHdhcyBjaGVja2luZyBmb3IKCSAgbGVha2VkIG9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzcKCjIwMTYtMDctMDggMTE6MTU6MDYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3MgdHJhY2VyOiB1c2UgR19PU19VTklYIHRvIGNoZWNrIGZvciBzaWduYWwgc3VwcG9ydAoJICBDaGVja2luZyBmb3Igc2lnbmFsLmggaXMgbm90IGdvb2QgZW5vdWdoIGFzIGl0J3MgcHJlc2VudCBpbiBXaW5kb3dzLgoJICBUaG9zZSBzaWduYWxzIGFyZSBVTklYIHNwZWNpZmljIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg1NwoKMjAxNi0wNi0yMiAxNjoyNToxNiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrcyB0cmFjZXI6IGFkZCBjcmVhdGlvbiBzdGFjayB0cmFjZSBzdXBwb3J0CgkgIFRoaXMgYWxsb3cgdXMgdG8gcHJvdmlkZSB0aGUgdHJhY2Ugb2YgbGVha2VkIG9iamVjdHMgbWFraW5nIGl0IGVhc2llcgoJICB0byBkZWJ1Zy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg2MgoKMjAxNi0wNi0wMSAxMTowODozOSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzIHRyYWNlcjogYWRkIGNoZWNrcG9pbnQgc3VwcG9ydCB1c2luZyBTSUdVU1IyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4NTcKCjIwMTYtMDUtMzEgMTY6NTY6MjYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3MgdHJhY2VyOiBsb2cgYWxpdmUgb2JqZWN0cyB3aGVuIHJlY2VpdmluZyBTSUdVU1IxCgkgIFdlIGRvbid0IHdhbnQgdG8gYXV0b21hdGljYWxseSBjYXRjaCBzaWduYWxzIHNvIHVzZSBhbiBlbnYgdmFyaWFibGUgdG8KCSAgZW5hYmxlIHRoaXMgZmVhdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg1NwoKMjAxNi0wNy0wNyAxMzoxNTo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogT25seSBmb3J3YXJkIHN0aWNreSBldmVudHMgb24gR0FQIGV2ZW50cyBpZiBuZWVkZWQKCSAgVGhhdCBpcywgaWYgdGhlIGFjdGl2ZSBwYWQgY2hhbmdlZCBhbmQgaWYgZm9yd2FyZGluZyBvZiBzdGlja3kgZXZlbnRzIGlzCgkgIHJlcXVlc3RlZCBhdCBhbGwuIFdlIG90aGVyd2lzZSBmb3J3YXJkIGV2ZW50cyB0b28gb2Z0ZW4uCgoyMDE2LTA3LTA1IDE2OjUwOjE2ICswMjAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBxdWVyeSBjYXBzIGFuc3dlcmVkIGFuZCBjYXBzIG5vdCBOVUxMCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg0NTAKCjIwMTYtMDctMDYgMTM6NTA6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuOS4xID09PQoKMjAxNi0wNy0wNiAxMzowNTowMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjEKCjIwMTYtMDctMDYgMTE6Mzc6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTA3LTA2IDEwOjE3OjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL2hyLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc2sucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTA3LTA1IDEyOjE3OjE4ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBhZGQgY2FsY3VsYXRlZCBiaXRyYXRlcyB1bnRpbCB0aHJlc2hvbGQKCSAgV2FpdGluZyBiZWZvcmUgcG9zdGluZyBjYWxjdWxhdGVkIGJpdHJhdGVzIHNlZW1zIHRvIGJlIHRoZQoJICBpbnRlbnQgb2YgdGhlIGNvZGUsIHNvIGF2b2lkIGFkZGluZyB0aGVtIHRvIHRoZSB0YWcgbGlzdAoJICBwdXNoZWQgd2l0aCB0aGUgZmlyc3QgZnJhbWUuCgkgIFdoZW4gdGhlIHRocmVzaG9sZCBpcyByZWFjaGVkLCBnc3RfYmFzZV9wYXJzZV91cGRhdGVfYml0cmF0ZXMKCSAgc2V0cyB0YWdzX2NoYW5nZWQsIHNvIHRoaXMgcG9zdHMgdGhlIGNhbGN1bGF0ZWQgb25lcyByaWdodAoJICB0aGF0IG1vbWVudC4KCSAgVGhpcyBwcmV2ZW50cyBhbiBpbnNhbmUgYXZlcmFnZSBjYWxjdWxhdGVkIGZyb20ganVzdCB0aGUKCSAgZmlyc3QgKGtleSkgZnJhbWUgZnJvbSBnZXR0aW5nIHBvc3RlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODQzOQoKMjAxNi0wNy0wNCAxMDowMDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTWFrZSBzdXJlIHRvIG5vdCBjcmVhdGUgYW4gaW52YWxpZCBldmVudCBvcmRlciB3aGVuIGdlbmVyYXRpbmcgdGhlIGRlZmF1bHQgQ0FQUyBldmVudCBiZWNhdXNlIG9mIGEgR0FQIGV2ZW50CgkgIFRoZXJlIG11c3QgYmUgYSBTRUdNRU5UIGV2ZW50IGJlZm9yZSB0aGUgR0FQIGV2ZW50LCBhbmQgU0VHTUVOVCBldmVudHMgbXVzdAoJICBjb21lIGFmdGVyIGFueSBDQVBTIGV2ZW50LiBXZSBob3dldmVyIGRpZCBub3QgcHJvZHVjZSBhbnkgQ0FQUyB5ZXQsIHNvIHdlIG5lZWQKCSAgdG8gZW5zdXJlIHRvIGluc2VydCB0aGUgQ0FQUyBldmVudCBiZWZvcmUgdGhlIFNFR01FTlQgZXZlbnQgaW50byB0aGUgcGVuZGluZwoJICBldmVudHMgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njk3MAoKMjAxNi0wNy0wMSAyMjozNDo1OSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBdm9pZCBnY2MgNiB3YXJuaW5nIHRoYXQgYnJlYWtzIHRoZSB0ZXN0cyBidWlsZAoJICBnY2MgNiBoYXMgcHJvYmxlbXMgZGV0ZWN0aW5nIGFuZCBhdm9pZGluZyB0aHJvd2luZwoJICBhIHdhcm5pbmcgZm9yIHRhdXRvbG9naWNhbCBjb21wYXJlcyBpbiBtYWNyb3MgKHRoZXkKCSAgc2hvdWxkIG9ubHkgdHJpZ2dlciBmb3IgY29tcGFyZXMgb3V0c2lkZSBtYWNyb3MpLgoJICBBdm9pZCB0aGVtIHdpdGggYSBuYXN0eSBjYXN0IG9mIG9uZSBwYXJhbWV0ZXIgdG8gdm9pZCAqCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1MjYKCjIwMTYtMDctMDEgMDk6NDQ6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGJlaGF2aW91ciB3aXRoIG5vdC1saW5rZWQgYW5kIGVvcyBwYWRzCgkgIFRoaXMgaXMgYW4gdXBkYXRlIG9uIGM5YjY4NDg4ODVmNDY3NWQ0NDdlODIzYzhmYjExN2UyNDc2NTgyNTIKCSAgbXVsdGlxdWV1ZTogRml4IG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIGF0IEVPUwoJICBXaGlsZSB0aGF0IGNvbW1pdCBkaWQgZml4IHRoZSBiZWhhdmlvdXIgaWYgdXBzdHJlYW0gc2VudCBhIEdTVF9FVkVOVF9FT1MsCgkgIGl0IHdvdWxkIGJyZWFrIHRoZSBzYW1lIGlzc3VlIHdoZW4gKmRvd25zdHJlYW0qIHJldHVybnMgR1NUX0ZMT1dfRU9TCgkgICh3aGljaCBjYW4gaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gZG93bnN0cmVhbSBkZWNvZGVycyByZWNlaXZlIGRhdGEKCSAgZnJvbSBhZnRlciB0aGUgc2VnbWVudCBzdG9wKS4KCSAgR1NUX1BBRF9JU19FT1MoKSBpcyBvbmx5IFRSVUUgd2hlbiBhIEdTVF9FVkVOVF9FT1MgaGFzIGZsb3duIHRocm91Z2ggaXQKCSAgYW5kIG5vdCB3aGVuIGEgR1NUX0VWRU5UX0VPUyBoYXMgZ29uZSB0aHJvdWdoIGl0LgoJICBJbiBvcmRlciB0byBoYW5kbGUgYm90aCBjYXNlcywgYWxzbyB0YWtlIGludG8gYWNjb3VudCB0aGUgbGFzdCBmbG93CgkgIHJldHVybi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wNi0zMCAxNTowNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHN0cmVhbXM6IHNwcmlua2xlIHNvbWUgU2luY2U6IG1hcmtlcnMgZm9yIGRvY3MKCjIwMTYtMDYtMzAgMTQ6Mzc6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYWRkIGd0ay1kb2MgYmx1cmIgZm9yIG5ldyBwYWQgcHJvcGVydHkKCjIwMTYtMDItMTAgMTE6NDI6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBhIHBhZCBwcm9wZXJ0eSB0byAiZ3JvdXAiIHN0cmVhbXMKCSAgV2hlbiBzeW5jaW5nIGJ5IHJ1bm5pbmcgdGltZSwgbXVsdGlxdWV1ZSB3aWxsIHRocm90dGxlIHVubGlua2VkIHN0cmVhbXMKCSAgYmFzZWQgb24gYSBnbG9iYWwgImhpZ2gtdGltZSIgYW5kIHRoZSBwZW5kaW5nICJuZXh0X3RpbWUiIG9mIGEgc3RyZWFtLgoJICBUaGUgaWRlYSBpcyB0aGF0IHdlIGRvbid0IHdhbnQgdW5saW5rZWQgc3RyZWFtcyB0byBiZSAiYmVoaW5kIiB0aGUgZ2xvYmFsCgkgIHJ1bm5pbmcgdGltZSBvZiBsaW5rZWQgc3RyZWFtcywgc28gdGhhdCBpZi93aGVuIHRoZXkgZ2V0IGxpbmtlZCAobGlrZSB3aGVuCgkgIHN3aXRjaGluZyB0cmFja3MpIGRlY29kaW5nL3BsYXliYWNrIGNhbiByZXN1bWUgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiBhcwoJICB0aGUgb3RoZXIgc3RyZWFtcy4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCBpdCBhc3N1bWVzIGVsZW1lbnRzIGRvd25zdHJlYW0gd2lsbCBoYXZlIGEgbW9yZSBvciBsZXNzCgkgIGVxdWFsIGJ1ZmZlcmluZy9sYXRlbmN5IC4uLiB3aGljaCBpc24ndCB0aGUgY2FzZSBmb3Igc3RyZWFtcyBvZiBkaWZmZXJlbnQKCSAgdHlwZS4gVmlkZW8gZGVjb2RlcnMgdGVuZCB0byBoYXZlIGhpZ2hlciBsYXRlbmN5IChhbmQgdGhlcmVmb3JlIGNvbnN1bWUgbW9yZQoJICBmcm9tIHVwc3RyZWFtIHRvIG91dHB1dCBhIGdpdmVuIGRlY29kZWQgZnJhbWUpIGNvbXBhcmVkIHRvIGF1ZGlvIG9uZXMsIHJlc3VsdGluZwoJICBpbiB0aGUgY29tcHV0ZWQgImhpZ2hfdGltZSIgYmVpbmcgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB2aWRlbyBzdHJlYW0sCgkgIG11Y2ggZnVydGhlciB0aGFuIHRoZSBhdWRpbyBzdHJlYW1zLgoJICBUaGlzIG1lYW5zIHRoZSB1bmxpbmtlZCBhdWRpbyBzdHJlYW1zIGVuZCB1cCBiZWluZyBxdWl0ZSBhIGJpdCBhZnRlciB0aGUgbGlua2VkCgkgIGF1ZGlvIHN0cmVhbXMsIHJlc3VsdGluZyBpbiBnYXBzIHdoZW4gc3dpdGNoaW5nIHN0cmVhbXMuCgkgIEluIG9yZGVyIHRvIG1pdGlnYXRlIHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyAiZ3JvdXAtaWQiIHBhZCBwcm9wZXJ0eQoJICB3aGljaCBhbGxvd3MgdXNlcnMgdG8gImdyb3VwIiBzdHJlYW1zIHRvZ2V0aGVyLiBDYWxjdWxhdGluZyB0aGUgaGlnaC10aW1lIHdpbGwKCSAgbm93IGJlIGRvbmUgbm90IG9ubHkgZ2xvYmFsbHksIGJ1dCBhbHNvIHBlciBncm91cC4gVGhpcyBlbnN1cmVzIHRoYXQgd2l0aGluCgkgIGEgZ2l2ZW4gZ3JvdXAgdW5saW5rZWQgc3RyZWFtcyB3aWxsIGJlIHRocm90dGxlZCBieSB0aGF0IGdyb3VwJ3MgaGlnaC10aW1lCgkgIGluc3RlYWQuCgkgIFRoaXMgZml4ZXMgZ2FwcyB3aGVuIHN3aXRjaGluZyBkb3duc3RyZWFtIGVsZW1lbnRzIChsaWtlIHN3aXRjaGluZyBhdWRpbyB0cmFja3MpLgoKMjAxNS0wNi0xMiAxMDo1MzoyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXNlbGVjdGlvbi50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJlYW0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cmVhbS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBOZXcgU3RyZWFtIGxpc3Rpbmcvc2VsZWN0aW9uIHN5c3RlbQoJICAqIEdzdFN0cmVhbQoJICAqIEdzdFN0cmVhbUNvbGxlY3Rpb24KCSAgKiBHU1RfRVZFTlRfU0VMRUNUX1NUUkVBTVMKCSAgKiBHU1RfTUVTU0FHRV9TVFJFQU1fQ09MTEVDVElPTgoKMjAxNi0wNi0yOSAyMzoyNDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogI2RlZmluZSBFV09VTERCTE9DSyB0byBFQUdBSU4gaWYgaXQncyBub3QgZGVmaW5lZCBvbiBXaW5kb3dzCgoyMDE2LTA2LTI5IDE0OjA1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRml4IGhhbmRsaW5nIG9mIHRoZSBHc3RQb2xsCgkgIEVzcGVjaWFsbHkgaWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUgd2FpdGluZyBmb3IgYnVmZmVycyB0byBiZSBhdmFpbGFibGUgYWdhaW4sCgkgIHRoZSBjdXJyZW50IGNvZGUgd2FzIHdyb25nLiBGaXggdGhpcyBhbmQgZG9jdW1lbnQgY2xlYXJseSBob3cgdGhlIEdzdFBvbGwgaXMKCSAgc3VwcG9zZWQgdG8gYmUgdXNlZC4KCSAgQWxzbyBmaXggc29tZSBwb3RlbnRpYWwgcmFjZXMgd2l0aCByZWFkaW5nIGZyb20gdGhlIEdzdFBvbGwgYmVmb3JlIHdyaXRpbmcKCSAgYWN0dWFsbHkgaGFwcGVuZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc5NzkKCjIwMTYtMDYtMjkgMTQ6MDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogTWFrZSBzdXJlIHRvIGFsd2F5cyByZWFkIHRoZSBjb250cm9sIGFmdGVyIHBvcHBpbmcgYSBtZXNzYWdlCgkgIEl0IG1pZ2h0IGhhcHBlbiB0aGF0IHdlIHBvcHBlZCB0aGUgbWVzc2FnZSBiZWZvcmUgd3JpdGluZyBvZiB0aGUgY29udHJvbAoJICBoYXBwZW5lZC4gSW4gdGhpcyBjYXNlIHdlIGp1c3QgaGF2ZSB0byByZXRyeSBhZ2FpbiBhIGJpdCBsYXRlciwgYW5kIGZhaWx1cmUgdG8KCSAgZG8gc28gd2lsbCBjYXVzZSBhbiBhZGRpdGlvbmFsIGJ5dGUgaW4gdGhlIGNvbnRyb2wgYW5kIHRoZSBHU291cmNlIC8KCSAgZ3N0X3BvbGxfd2FpdCgpIHRvIGFsd2F5cyB3YWtlIHVwIGFnYWluIGltbWVkaWF0ZWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDEzOjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBJbXByb3ZlIEdzdFBvbGwgaGFuZGxpbmcgYW5kIGRvbid0IGNoZWNrIGZvciBpbXBvc3NpYmxlIGVycm5vIHZhbHVlcwoJICBBbHNvIGp1c3QgcmVhZC93cml0ZSBjb250cm9sIGV2ZXJ5IHRpbWUsIEdzdFBvbGwgaXMgb3B0aW1pemVkIGJ5IGl0c2VsZgoJICBhbHJlYWR5IHRvIG9ubHkgZG8gSS9PIGlmIHN3aXRjaGluZyBiZXR3ZWVuIGVtcHR5IGFuZCBvbmUgYnl0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzozNTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IENsYXJpZnkgd2hlbiBGQUxTRSBpcyByZXR1cm5lZCBmcm9tIHJlYWQvd3JpdGVfY29udHJvbCgpCgkgIEFuZCBhbHNvIG1lbnRpb24gd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWVzIG9mIGVycm5vIGFyZSBnb2luZyB0byBiZS4KCSAgd3JpdGVfY29udHJvbCgpIHdpbGwgb25seSBldmVyIHJldHVybiBGQUxTRSBpZiB0aGVyZSB3YXMgYSBjcml0aWNhbCBlcnJvci4gSXQKCSAgd2lsbCBuZXZlciByZXR1cm4gYmVjYXVzZSBvZiBFSU5UUiwgRUFHQUlOIG9yIEVXT1VMREJMT0NLLgoJICByZWFkX2NvbnRyb2woKSB3aWxsIHJldHVybiBGQUxTRSBpZiB0aGVyZSB3YXMgbm8gYnl0ZSB0byByZWFkLCBpbiB3aGljaCBjYXNlCgkgIGVycm5vIHdvdWxkIGJlIEVXT1VMREJMT0NLLgoJICBJbiBhbGwgb3RoZXIgY2FzZXMgdGhlcmUgd2FzIGEgY3JpdGljYWwgZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTM6MjY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBzZXRfY29udHJvbGxhYmxlKCksIHJlc3RhcnQoKSBhbmQgc2V0X2ZsdXNoaW5nKCkgYXJlIG9ubHkgdmFsaWQgZm9yIG5vbi10aW1lciBHc3RQb2xscwoJICBPbiB0aW1lciBHc3RQb2xscyBpdCB3aWxsIGNhdXNlIHRoZSBjb250cm9sIHNvY2tldCBzdGF0ZSB0byBiZWNvbWUKCSAgaW5jb25zaXN0ZW50IGFzIG5vdyBvbmUgbGVzcyByZWFkX2NvbnRyb2woKSB0aGFuIHdyaXRlX2NvbnRyb2woKSBiZSB3b3VsZAoJICBuZWVkZWQuCgkgIFNpbWlsYXJseSwgcmVhZF9jb250cm9sKCkgYW5kIHdyaXRlX2NvbnRyb2woKSBhcmUgb25seSB2YWxpZCBvbiB0aW1lcgoJICBHc3RQb2xscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzoxMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmg6CgkgIHBvbGw6IFdhcm4gaWYgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcG9sbF9yZWFkX2NvbnRyb2woKSBpcyB1bnVzZWQKCSAgVGhpcyBtaWdodCBmYWlsIGV2ZW4gdW5kZXIgY29ycmVjdCB1c2FnZSwgZS5nLiBpZiByZWFkX2NvbnRyb2woKSBpcyBjYWxsZWQKCSAgZnJvbSBhbm90aGVyIHRocmVhZCBiZWZvcmUgd3JpdGVfY29udHJvbCgpIGZpbmlzaGVkIGluIGFub3RoZXIuIEl0IGhhcyB0byBiZQoJICByZXRyaWVkIHRoZW4sIG9yIG90aGVyIG1lYXN1cmVzIGhhdmUgdG8gYmUgdGFrZW4sIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgdXNlZAoJICBieSB0aGUgc3Vycm91bmRpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxODo1Nzo0MiArMDIwMCAgTWF0dGhldyBHcnVlbmtlIDxtZ3J1ZW5rZUB0eWNvaW50LmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCB2YXJpb3VzIHJhY2UgY29uZGl0aW9ucyB3aXRoIHJlYWRfY29udHJvbCgpIGFuZCB3cml0ZV9jb250cm9sKCkKCSAgVGhpcyBhZGRyZXNzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IHJhY2UgY29uZGl0aW9ucyBvbiBMaW51eCBhbmQgV2luZG93cywgYW5kCgkgIGZpeGVzIGdzdF9wb2xsX3JlYWRfY29udHJvbCgpIHdoZW4gY29udHJvbF9wZW5kaW5nID09IDAuCgkgIE9uIExpbnV4LCB0aGUgc29ja2V0cGFpcigpIHVzZWQgZm9yIGNvbnRyb2wgc2hvdWxkIG5vdCBiZSBtYWRlIE9fTk9OQkxPQ0suCgkgIElmIHRoZXJlJ3MgYW55IHByb3BhZ2F0aW9uIGRlbGF5IGJldHdlZW4gc2V0LT5jb250cm9sX3dyaXRlX2ZkLmZkIGFuZAoJICBzZXQtPmNvbnRyb2xfcmVhZF9mZC5mZCwgZXZlbiB0aGUgbXV0ZXggbm93IGhlbGQgd2lsbCBub3QgYmUgc3VmZmljaWVudCB0bwoJICBwcmV2ZW50IGEgcmFjZSBjb25kaXRpb24uICBUaGVyZSdzIG5vIGJlbmVmaXQgdG8gdXNpbmcgT19OT05CTE9DSywgaGVyZS4KCSAgT25seSBsaWFiaWxpdGllcy4KCSAgRm9yIFdpbmRvd3MsIGl0J3MgbmVjZXNzYXJ5IHRvIGZpeCB0aGUgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0ZXN0aW5nCgkgIHNldC0+Y29udHJvbF9wZW5kaW5nIGFuZCBwZXJmb3JtaW5nIFdBS0VfRVZFTlQoKS9SRUxFQVNFX0VWRU5UKCkuICBUaGlzIGlzCgkgIGFjY29tcGxpc2hlZCBieSBhY3F1aXJpbmcgYW5kIGhvbGRpbmcgc2V0LT5sb2NrLCBmb3IgYm90aCBvZiB0aGVzZSBvcGVyYXRpb25zLgoJICBXZSBjb3VsZCBvcHRpbWl6ZSB0aGUgTGludXggdmVyc2lvbiBieSBtYWtpbmcgdGhpcyBXaW5kb3dzLXNwZWNpZmljLgoJICBGb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgTGludXggaW1wbGVtZW50YXRpb24sIFdpbmRvd3MnIFJFTEVBU0VfRVZFTlQoKQoJICBoYXMgYWxzbyBiZWVuIG1hZGUgdG8gYmxvY2ssIGFsdGhvdWdoIGl0IHNob3VsZCBuZXZlciBoYXBwZW4uCgkgIEFsc28sIGNoYW5nZWQgcmVsZWFzZV93YWtldXAoKSB0byByZXR1cm4gVFJVRSBhbmQgZGVjcmVtZW50IGNvbnRyb2xfcGVuZGluZwoJICBvbmx5IHdoZW4gPiAwLiAgRnVydGhlcm1vcmUsIFJFTEVBU0VfRVZFTlQoKSBpcyBjYWxsZWQgb25seSB3aGVuCgkgIGNvbnRyb2xfcGVuZGluZyA9PSAxLgoJICBGaW5hbGx5LCBjaGFuZ2VkIGNvbnRyb2xfcGVuZGluZyB0byB1c2Ugbm9ybWFsLCBub24tYXRvbWljIGFyaXRobWV0aWMKCSAgb3BlcmF0aW9ucywgc2luY2UgaXQncyBub3cgcHJvdGVjdGVkIGJ5IHNldC0+bG9jay4KCSAgTm90ZTogZXZlbiB0aG91Z2ggdGhlIHVuZGVybHlpbmcgc2lnbmFsaW5nIG1lY2hhbmlzbXMgYXJlIGJsb2NraW5nLAoJICByZWxlYXNlX3dha2V1cCgpIGlzIGVmZmVjdGl2ZWx5IG5vbi1ibG9ja2luZywgYXMgaXQgd2lsbCBvbmx5IGF0dGVtcHQgdG8gcmVhZAoJICBmcm9tIGNvbnRyb2xfcmVhZF9mZC5mZCBhZnRlciBhIGJ5dGUgaGFzIGJlZW4gd3JpdHRlbiB0byBjb250cm9sX3dyaXRlX2ZkLmZkCgkgIG9yIFdhaXRGb3JTaW5nbGVPYmplY3QoKSBhZnRlciBpdCdzIGJlZW4gc2lnbmFsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjggMTU6MDE6MTcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGNoYWluIHVwIEdPYmplY3Q6OmNvbnN0cnVjdGVkKCkgdG8gdGhlIHBhcmVudCBjbGFzcycgaW1wbGVtZW50YXRpb24KCSAgTmVlZGVkIHNvIEdzdEJ1cyBjYW4gYmUgdHJhY2tlZCBieSB0aGUgbGVha3MgdHJhY2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MTQxCgoyMDE2LTA2LTI0IDA1OjI2OjA5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBEb24ndCB1c2UgZXh0ZXJuIHdpdGggZGxsZXhwb3J0CgkgIEdDQyBlbWl0cyBhbiBlcnJvciBmb3IgdGhpcyB3aXRoIC1XZXJyb3I6CgkgIHBsdWdpbi5jOjIyOjE6IGVycm9yOiAnZ3N0X3BsdWdpbl9kZXNjJyBpbml0aWFsaXplZCBhbmQgZGVjbGFyZWQgJ2V4dGVybicgWy1XZXJyb3JdCgkgIFRoaXMgbWF0Y2hlcyBob3cgZ2xpYiBkb2VzIHN5bWJvbCBleHBvcnRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc0NjMKCjIwMTYtMDYtMjEgMTk6NDk6MTUgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICB3aW4zMjogRG9uJ3QgdXNlIGRsbGV4cG9ydC9pbXBvcnQgd2hlbiBvbmx5IGJ1aWxkaW5nIHN0YXRpY2FsbHkKCSAgSWYgdGhlIHByb3RvdHlwZXMgaW4gdGhlIHB1YmxpYyBBUEkgaGF2ZSBkbGxpbXBvcnQgaW4gdGhlbSB3aGVuIGJ1aWxkaW5nCgkgIHN0YXRpY2FsbHkgb24gV2luZG93cywgdGhlIGNvbXBpbGVyIHdpbGwgbG9vayBmb3Igc3ltYm9scyB3aXRoIHN5bWJvbAoJICBtYW5nbGluZyBhbmQgaW5kaXJlY3Rpb24gY29ycmVzcG9uZGluZyB0byBhIERMTC4gVGhpcyB3aWxsIGNhdXNlIGEgYnVpbGQKCSAgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBsaW5rIHRlc3RzL2V4YW1wbGVzL2V0Yy4KCSAgRXh0ZXJuYWwgdXNlcnMgb2YgR1N0cmVhbWVyIGFsc28gbmVlZCB0byBkZWZpbmUgLURHU1RfU1RBVElDX0NPTVBJTEFUSU9OCgkgIGlmIHRoZXkgd2FudCB0byBsaW5rIHRvIHN0YXRpYyBnc3RyZWFtZXIgbGlicmFyaWVzIG9uIFdpbmRvd3MuCgkgIEEgc2ltaWxhciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggaGFzIGJlZW4gY29tbWl0dGVkIHRvIGFsbCBnc3RyZWFtZXIKCSAgcmVwb3NpdG9yaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3NDYzCgoyMDE2LTA2LTIxIDExOjQ1OjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFjMmY2NDcgdG8gZjM2M2IzMgoKMjAxNi0wNi0xNSAxNjoyNDoyNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGFkZCBhIHRlc3QgZm9yIHNtYWxsIHJpbmcgYnVmZmVyIHNpemVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc2ODgKCjIwMTYtMDYtMTUgMTM6NDM6NTkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY3Jhc2ggZGVsZXRpbmcgY3VycmVudCByZWdpb24gZm9yIHNtYWxsIHJpbmcgYnVmZmVycwoJICBFbnN1cmUgd2UgZG8gbm90IGF0dGVtcHQgdG8gZGVzdHJveSB0aGUgY3VycmVudCByYW5nZS4gRG9pbmcgc28KCSAgY2F1c2VzIHRoZSBjdXJyZW50IG9uZSB0byBiZSBsZWZ0IGRhbmdsaW5nLCBhbmQgaXQgbWF5IGJlIGRlcmVmZXJlbmNlZAoJICBsYXRlciwgbGVhZGluZyB0byBhIGNyYXNoLgoJICBUaGlzIGNhbiBoYXBwZW4gd2l0aCBhIHZlcnkgc21hbGwgcXVldWUyIHJpbmcgYnVmZmVyICgxMDAwMCBieXRlcykKCSAgYW5kIDQga0IgYnVmZmVycy4KCSAgcmVwcm8gY2FzZToKCSAgZ3N0LWxhdW5jaC0xLjAgZmFrZXNyYyBzaXpldHlwZT0yIHNpemVtYXg9NDA5NiAhIFwKCSAgcXVldWUyIHJpbmctYnVmZmVyLW1heC1zaXplPTEwMDAgISBmYWtlc2luayBzeW5jPXRydWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzY4OAoKMjAxNi0wNi0yMCAxMTozNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgdGVzdHM6IGdzdG9iamVjdDogZml4IHR5cG8gaW4gdGVzdCBuYW1lCgoyMDE2LTA2LTE2IDE0OjA4OjAxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmc6IGZpeCByZWZlcmVuY2UgdG8gcmVuYW1lZCBmdW5jCgoyMDE2LTA2LTA4IDEyOjM0OjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFByb3Blcmx5IGhhbmRsZSByZXR1cm4gdmFsdWUgd2hlbiBvbmx5IDEgcGFkCgkgIFRoaXMgcGF0Y2ggaGFuZGxlIHRoZSBjYXNlIHdoZW4geW91IGhhdmUgMSBwYWQgKHNvIHRoZSBmYXN0IHBhdGggaXMKCSAgYmVpbmcgdXNlZCkgYnV0IHRoaXMgcGFkIGlzIHJlbW92ZWQuIElmIHdlIGFyZSBpbiBhbGxvdy1ub3QtbGlua2VkLCB3ZQoJICBzaG91bGQgcmV0dXJuIEdTVF9GTE9XX09LLCBvdGhlcndpc2UsIHdlIHNob3VsZCByZXR1cm4gR1NUX0ZMT1dfVU5MSU5LRUQKCSAgYW5kIGlnbm9yZSB0aGUgbWVhbmluZ2xlc3MgcmV0dXJuIHZhbHVlIG9idGFpbmVkIGZyb20gcHVzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzQxMwoKMjAxNi0wNi0xNiAxNTo1MjoxNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXBsb3QtdHJhY2VzLnNoOgoJICBnc3QtcGxvdC10cmFjZXMuc2g6IGFkZCBhIHNjcmlwdCB0byBwbG90IGdzdC10cmFjZXIgZ3JhcGhzCgkgIFRoZSBzY3JpcHQgZXh0cmFjdHMgY3B1LXVzYWdlIGRhdGEgZnJvbSBhIHRyYWNlbG9nIGFuZCBwbG90cyBpdCB2aWEgZ251cGxvdC4KCjIwMTYtMDYtMTUgMTY6MTI6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogRml4IHR5cG8KCSAgcGFyYW1hdGVyIC0+IHBhcmFtZXRlcgoKMjAxNi0wNi0xNCAxOToxNjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZsZXNoIG91dCBHU1RfUFRSX0ZPUk1BVCBkb2NzIGEgYml0CgoyMDE2LTA2LTEzIDE4OjMzOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXBkYXRlIHN0YXJ0IHRpbWUgd2hlbiBsb3Npbmcgc3RhdGUgb25seSBpZiB3ZSB3ZXJlIGluIFBMQVlJTkcKCSAgSWYgd2Ugd2VyZSBpbiBQQVVTRUQsIHRoZSBjdXJyZW50IGNsb2NrIHRpbWUgYW5kIGJhc2UgdGltZSBkb24ndCBoYXZlIG11Y2ggdG8KCSAgZG8gd2l0aCB0aGUgcnVubmluZyB0aW1lIGFueW1vcmUgYXMgdGhlIGNsb2NrIG1pZ2h0IGhhdmUgYWR2YW5jZWQgd2hpbGUgd2UKCSAgd2VyZSBQQVVTRUQuIFRoZSBzeXN0ZW0gY2xvY2sgZG9lcyB0aGF0IGZvciBleGFtcGxlLCBhdWRpbyBjbG9ja3Mgb2Z0ZW4gZG9uJ3QuCgkgIFVwZGF0aW5nIHRoZSBzdGFydCB0aW1lIGluIFBBVVNFRCB3aWxsIGNhdXNlIGEpIHRoZSB3cm9uZyBwb3NpdGlvbiB0byBiZQoJICByZXBvcnRlZCwgYikgc3RlcCBldmVudHMgdG8gc3RlcCBub3QganVzdCB0aGUgcmVxdWVzdGVkIGFtb3VudCBidXQgdGhlIGFtb3VudAoJICBvZiB0aW1lIHdlIHNwZW50IGluIFBBVVNFRC4gVGhlIHN0YXJ0IHRpbWUgc2hvdWxkIG9ubHkgZXZlciBiZSB1cGRhdGVkIHdoZW4KCSAgZ29pbmcgZnJvbSBQTEFZSU5HIHRvIFBBVVNFRCB0byByZW1lbWJlciB0aGUgY3VycmVudCBydW5uaW5nIHRpbWUgKHRvIGJlIGFibGUKCSAgdG8gY29tcGVuc2F0ZSBsYXRlciB3aGVuIGdvaW5nIHRvIFBMQVlJTkcgZm9yIHRoZSBjbG9jayB0aW1lIGFkdmFuY2luZyB3aGlsZQoJICBQQVVTRUQpLCBub3Qgd2hlbiB3ZSBhcmUgYWxyZWFkeSBpbiBQQVVTRUQuCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgS2lzaG9yZSBBcmVwYWxsaSA8a2lzaG9yZS5hcmVwYWxsaUBnbWFpbC5jb20+CgkgIFRoZSB1cGRhdGluZyBvZiB0aGUgc3RhcnQgdGltZSB3aGVuIHRoZSBzdGF0ZSBpcyBsb3N0IHdhcyBhZGRlZCBpbiBjb21taXQKCSAgYmE5NDNhODJjMGJiZmQxN2M5ZWU5ZjUwNjhkNDRjOWQ5Mjc0ZmQxMyB0byBmaXggdGhlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGVuCgkgIHRoZSBzdGF0ZSBpcyBsb3N0LiBUaGlzIHN0aWxsIHdvcmtzIGNvcnJlY3RseSBhZnRlciB0aGlzIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTI4OQoKMjAxNi0wNi0xMSAyMjoxODowNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBMb2cgcGFkIG9mZnNldHMgYXMgc2lnbmVkIHRpbWVzCgoyMDE2LTA2LTExIDIxOjU2OjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsc28gY2hlY2sgdGhlIG51bWJlciBvZiBzZWdtZW50IGV2ZW50cyBhbmQgaWYgb3RoZXIgc2VyaWFsaXplZCBldmVudHMgYW5kIHF1ZXJpZXMgdHJpZ2dlciBzZWdtZW50IHVwZGF0aW5nIHRvbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDQ5CgoyMDE2LTA2LTExIDIxOjM3OjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB1bml0IHRlc3QgZm9yIHBhZCBvZmZzZXQgaGFuZGxpbmcgb24gc3JjIHBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA0OQoKMjAxNi0wNi0wNyAxMTozMjo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogUmVuYW1lIGZ1bmN0aW9ucyBhbmQgaW1wbGVtZW50IG5ldyBmdW5jdGlvbnMsIHVwZGF0ZSB0ZXN0CgkgIFdlIGRvbid0IGRvIGNhbGN1bGF0aW9ucyB3aXRoIGRpZmZlcmVudCB1bml0cyAoYnVmZmVyIG9mZnNldHMgYW5kIGJ5dGVzKQoJICBhbnltb3JlIGJ1dCBoYXZlIGZ1bmN0aW9ucyBmb3I6CgkgIDEpIGdldHRpbmcgdGhlIG51bWJlciBvZiBieXRlcyBzaW5jZSB0aGUgbGFzdCBkaXNjb250CgkgIDIpIGdldHRpbmcgdGhlIG9mZnNldCAoYW5kIHB0cy9kdHMpIGF0IHRoZSBsYXN0IGRpc2NvbnQKCSAgYW5kIHRoZSBwcmV2aW91c2x5IGFkZGVkIGZ1bmN0aW9uIHRvIGdldCB0aGUgbGFzdCBvZmZzZXQgYW5kIGl0cyBkaXN0YW5jZSBmcm9tCgkgIHRoZSBjdXJyZW50IGFkYXB0ZXIgcG9zaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NDcKCjIwMTYtMDUtMTkgMTA6MzE6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBtZXRob2RzIHRvIHF1ZXJ5IGN1cnJlbnQgb2Zmc2V0CgkgIEFQSTogZ3N0X2J1ZmZlcl9wcmV2X29mZnNldAoJICBBUEk6IGdzdF9idWZmZXJfZ2V0X29mZnNldF9mcm9tX2Rpc2NvbnQKCSAgVGhlIGdzdF9idWZmZXJfZ2V0X29mZnNldF9mcm9tX2Rpc2NvbnQoKSBtZXRob2QgYWxsb3dzIHJldHJpZXZpbmcgdGhlIGN1cnJlbnQKCSAgb2Zmc2V0IGJhc2VkIG9uIHRoZSBHU1RfQlVGRkVSX09GRlNFVCBvZiB0aGUgYnVmZmVycyB0aGF0IHdlcmUgcHVzaGVkIGluLgoJICBUaGUgb2Zmc2V0IHdpbGwgYmUgc2V0IGluaXRpYWxseSBieSB0aGUgR1NUX0JVRkZFUl9PRkZTRVQgb2YKCSAgRElTQ09OVCBidWZmZXJzLCBhbmQgdGhlbiBpbmNyZW1lbnRlZCBieSB0aGUgc2l6ZXMgb2YgdGhlIGZvbGxvd2luZwoJICBidWZmZXJzLgoJICBUaGUgZ3N0X2J1ZmZlcl9wcmV2X29mZnNldCgpIG1ldGhvZCBhbGxvd3MgcmV0cmlldmVudCB0aGUgcHJldmlvdXMKCSAgR1NUX0JVRkZFUl9PRkZTRVQgcmVnYXJkbGVzcyBvZiBmbGFncy4gSXQgd29ya3MgaW4gdGhlIHNhbWUgd2F5IGFzCgkgIHRoZSBvdGhlciBnc3RfYnVmZmVyX3ByZXZfKigpIG1ldGhvZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NDcKCjIwMTYtMDYtMDkgMTc6NDI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oLmluOiBpbmRlbnQgI2lmICNlbHNlIGp1bmdsZSBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDE2LTA2LTA4IDEyOjExOjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcoKSBmb3IgY29uc2lzdGVuY3kKCSAgV2UgYWxyZWFkeSBoYWQgYSBfZnVsbCgpIHZlcnNpb24sIGJ1dCBoYXZpbmcgdGhhdCBhbG9uZSBzZWVtcyBpbmNvbnNpc3RlbnQuCgkgIEFkZCBhIG5vbi1mdWxsIHZlcnNpb24gdGhhdCBtaXJyb3JzIHRoZSBiZWhhdmlvdXIgb2YgZ3N0X3BhZF9saW5rKCkgdnMKCSAgZ3N0X3BhZF9saW5rX2Z1bGwoKS4KCjIwMTYtMDUtMjIgMTM6MTA6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1ha2Ugc3VyZSBESVNDT05UIGZsYWdzIGFyZSBwcm9wZXJseSBwcm9wYWdhdGVkCgkgIElmIHdlIGRyb3AgYSBmcmFtZSB0aGF0IGNvbnRhaW5lZCBhIGRpc2NvbnRpbnVpdHksIHdlIG11c3QgcmVtZW1iZXIKCSAgdGhhdCBmb3IgdGhlIG5leHQgZnJhbWUgdGhhdCAqd2lsbCogYmUgcHVzaGVkIGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY3OTUKCjIwMTYtMDYtMDQgMTM6MzE6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSAgZGV2aWNlcHJvdmlkZXI6IHJlbW92ZSBiYXNlX2NsYXNzX2ZpbmFsaXplIGZ1bmN0aW9uCgkgIEl0J3Mgbm90IGdvaW5nIHRvIGdldCBjYWxsZWQgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTQwCgoyMDE2LTA2LTA0IDEzOjExOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIGJhc2VfY2xhc3NfZmluYWxpemVfZnVuYyB3aGljaCBpcyBuZXZlciBjYWxsZWQKCSAgV29uJ3QgYmUgY2FsbGVkIGZvciBzdGF0aWMgdHlwZXMsIHNvIG5vIHBvaW50IGtlZXBpbmcgaXQgYXJvdW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTQwCgoyMDE2LTA2LTAzIDEzOjU1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIHRyYWNlcnM6IGxlYWtzOiBzb21lIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgLSB3ZSBrbm93IG51bWJlciBvZiBmaWx0ZXIgaXRlbXMgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSwKCSAgYnV0IGNvbXBpbGVyIGRvZXNuJ3QKCSAgLSBvbmx5IGRvIEdTVF9JU19UUkFDRVIgY2hlY2sgZm9yIEdPYmplY3RzLCBub3QgbWluaSBvYmplY3RzCgkgIC0gdXNlIG5vbi10eXBlIGNoZWNrIGNhc3QgbWFjcm9zIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzCgoyMDE2LTA1LTEwIDA5OjI5OjEyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBhZGQgbGVha3MgdHJhY2VyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMzAgMTI6MTE6MTMgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBVc2UgTUFZX0JFX0xFQUtFRF9GTEFHCgkgIFRoaXMgaGVscHMgaGF2aW5nICJtYWtlIGNoZWNrIiBwYXNzaW5nIHdpdGggdGhlIGxlYWtzIHRyYWNlciBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MDA4CgoyMDE2LTA1LTA5IDE2OjMxOjM2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjaW5nOiBhZGQgaG9va3Mgd2hlbiBvYmplY3RzIG9yIG1pbmlvYmplY3RzIGFyZSBjcmVhdGVkIGFuZCBkZXN0cm95ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0wOSAxNjo1Njo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdF9kZWluaXQ6IG1vdmUgZG93biB0cmFjZXJzIGNsZWFuaW5nCgkgIFdlIHdhbnQgdGhlIHRyYWNlciBkZXRlY3RpbmcgbGVha3MgdG8gYmUgZmluYWxpemVkIGFzIGxhdGUgYXMgcG9zc2libGUKCSAgdG8gZ2l2ZSB0aGUgY2hhbmNlIHRvIG90aGVyIGdzdCBjb21wb25lbnRzIHRvIGJlIHByb3Blcmx5IGNsZWFuZWQgZmlyc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMTAgMTE6MDY6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogcGx1Z2luOiByZW1vdmUgZmVhdHVyZSByZWZjb3VudCBhc3NlcnQKCSAgVGhpcyBjaGVjayBmYWlscyBpZiBvbmUsIG9yIG1vcmUsIHRyYWNlcnMgYXJlIGxvYWRlZCB3aGlsZSBydW5uaW5nIHRoZQoJICB0ZXN0LiBUaGUgbmV3ICJsZWFrcyIgdHJhY2VyIHdpbGwgYmUgYWJsZSB0byBjaGVjayBmb3IgbGVha3MgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA0LTE0IDEyOjI1OjQzICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdHJhY2VycmVjb3JkOiBhbGxvdyBHX1RZUEVfUE9JTlRFUiBmb3IgZmllbGQgdHlwZXMKCSAgVHJhY2VycyBtYXkgd2FudCB0byBkaXNwbGF5IHRoZSBhZGRyZXNzIG9mIGFuIG9iamVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0zMCAxMzo0MjozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBzcGxpdCB1cCBuYW1lIHRlc3RzCgkgIEl0IGlzIGJldHRlciB0byBoYXZlIHNlcGFyYXRlIHRlc3RzOgoJICAxKSB0aGUgdGVzdCBuYW1lIHdpbGwgdGVsbCB3aGF0IGlzIGJyb2VrbiB3aGVuIHRoZSB0ZXN0IGZhaWxzCgkgIDIpIHdlIHN0aWxsIHJ1biB0aGUgb3RoZXIgdGVzdHMgd2hlbiBvbmUgYXNzZXJ0IGZhaWxzCgkgIDMpIHRoZSB0ZXN0cyBhcmUgZWFzaWVyIHRvIHVuZGVyc3RhbmQKCSAgNCkgd2UgZG9uJ3QgcmVseSBvbiBzaWUgZWZmZWN0IG9mIHByZXZpb3VzIGFjdGlvbnMKCSAgNSkgLi4uCgkgIEFsc28gaXggdGhlIGFzc2VydGlvbiBtZXNzYWdlIGZvciB0aGUgbmFtZSBjaGVja3MgKEdzdCAtPiBmYWtlb2JqZWN0KS4KCjIwMTYtMDUtMzAgMDI6MDY6MDEgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jCgkgIFNvbWUgb2YgdGhlIGFwaSB3YXMgcmVuYW1lZCBiZWZvcmUgdGhlIG1lcmdlLgoKMjAxNi0wNS0zMCAwMjowNDoxOCAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB4cmVmIHRoZSBmcmVlIGZ1bmN0aW9uIGFuZCBleHBhbmQgYWxsb2NhdGlvbiBxdWVyeSBkb2NzCgkgIEFkZCB4cmVmcyBmb3IgaG93IHRvIHBhcnNlIHBvb2wgZGV0YWlscyBmcm9tIGFuIGFsbG9jYXRpb24gcXVlcnkuCgoyMDE2LTA1LTI2IDE0OjQzOjEwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogQWRkIF9zZXRfbmFtZSgpIHRlc3Qgb24gcGFyZW50ZWQgb2JqZWN0CgkgIFRoaXMgaXMgbm90IGFsbG93ZWQsIGFuZCBzZXRfbmFtZSgpIHNob3VsZCBmYWlsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2OTIzCgoyMDE2LTA1LTI2IDE0OjQxOjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogQ2hlY2sgdGhhdCBuYW1lIGNoYW5nZSBhcmUgbm90aWZpZWQgb25jZQoJICBHT2JqZWN0IGFsbG93IGNhbGxpbmcgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aGluIHNldF9wcm9wZXJ0eSgpIGFuZAoJICB3b24ndCBub3RpZnkgaXQgdHdpY2UuIEFzIGl0IHdhcyByYWlzZWQgZHVyaW5nIHJldmlldywgYWRkIGEgdW5pdCB0ZXN0IHRvCgkgIG1ha2Ugc3VyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjkyMwoKMjAxNi0wNS0yNiAxMzoxNzozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IE5vdGlmeSBuYW1lIGNoYW5nZSB3aGVuIHVzaW5nIF9zZXRfbmFtZSgpCgkgIFRoZXJlIHdhcyBhIDAuMTEgRklYTUUgYWJvdXQgbm90aWZ5aW5nIHRoZSBuYW1lIGNoYW5nZSBvciByZW1vdmluZyB0aGF0CgkgIGZ1bmN0aW9uLiBDbGVhcmx5IHdlIGNhbid0IHJlbW92ZSB0aGlzIGZ1bmN0aW9uLCBzbyBsZXQncyBub3RpZnkgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY5MjMKCjIwMTYtMDUtMjUgMTU6MzA6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IEZpeCBnc3Rjb25maWcgaW5jbHVkZQoJICBTaW5jZSBpdCdzIGEgZ2VuZXJhdGVkIGhlYWRlciwgd2UgbmVlZCB0byBzcGVjaWZ5IHRoZSBnc3Qgc3ViZGlyIHNvCgkgIHRoYXQgaXQgZ2V0cyBwcm9wZXJseSBpbmNsdWRlZCBpbiBvdXQtb2YtZGlyIGNvbXBpbGF0aW9uCgoyMDE2LTA1LTI1IDEwOjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdDogbWFrZSBzdXJlIHRvIGluY2x1ZGUgZ3N0Y29uZmlnLmggYWxzbyBpbiBnc3RfcHJpdmF0ZS5oCgkgIEZvciBHU1RfRVhQT1JUIGRlZmluZSBhbmQgYWxzbyB0aGluZ3MgbGlrZSBHU1RfRElTQUJMRV9SRUdJU1RSWS4KCSAgSG9wZWZ1bGx5IGZpeGVzIHRoZSBmb2xsb3dpbmcgYnVpbGQgZmFpbHVyZSBvbiBjZXJiZXJvLWNyb3NzLW1pbmd3MzI6CgkgIGhlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6NTA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pbXBfX19nc3RfZGlzYWJsZV9yZWdpc3RyeV9jYWNoZScKCjIwMTYtMDUtMjQgMDA6NDA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGctaTogcGFzcyBjb21waWxlciBlbnYgdG8gZy1pci1zY2FubmVyCgkgIEl0J3Mgd2hhdCBpbnRyb3NwZWN0aW9uLm1hayBkb2VzIGFzIHdlbGwuIFNob3VsZAoJICBmaXggc3B1cmlvdXMgYnVpbGQgZmFpbHVyZXMgb24gZ25vbWUtY29udGludW91cy4KCjIwMTYtMDUtMjMgMjE6MTU6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogZy1pOiBwYXNzIGNvbXBpbGVyIHdpdGggcXVvdGVzCgkgIFNvIENDPSJjY2FjaGUgZ2NjIiB3b3JrcyBwcm9wZXJseS4KCjIwMTYtMDUtMjMgMjE6MDY6NTMgKzAxMDAgIFJheSBTdHJvZGUgPHJzdHJvZGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBhdHRlbXB0IHRvIGZpeC90cmFjay1kb3duIG15c3RlcmlvdXMgZ25vbWUtY29udGludW91cyBidWlsZCBmYWlsdXJlcwoKMjAxNi0wNS0yMyAxODowMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogb25seSB1bnNldCBHVmFsdWUgaWYgaXQgd2FzIGluaXRlZAoJICBBbmQgYWRkIHNvbWUgZnVuY3Rpb24gZ3VhcmRzLiBGcm9tIEdMaWIgMi40OCBvbiBpdCBpcwoJICBhbGxvd2VkIHRvIHBhc3MgYW4gdW5pbml0aWFsaXNlZCBHVmFsdWUgdG8gZ192YWx1ZV91bnNldCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzYyCgoyMDE2LTA1LTIzIDE4OjQ0OjAxICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGdzdC9wYXJzZTogQWxzbyBwYXNzIC1ER1NUX0VYUE9SVFMgaGVyZQoJICBUaGlzIHN0YXRpYyBsaWJyYXJ5IGdldHMgaW5jbHVkZWQgZGlyZWN0bHkgaW50byBsaWJnc3RyZWFtZXItMS4wLnNvLCBzbyBpdCBuZWVkcwoJICB0aGUgc2FtZSBHU1RfRVhQT1JUUyBkZWZpbml0aW9uIGFzIHRoZSByZXN0IG9mIHRoZSBjb2RlIHRoYXQncyBjb21waWxlZCBpbnRvCgkgIHRoYXQgb3RoZXJ3aXNlIGl0IHdpbGwgdHJ5IHRvIGZpbmQgdGhlIGNvbnN0YW50cyBpdCB1c2VzIGZyb20gZ3N0aW5mbyB2aWEgRExMCgkgIGltcG9ydGluZyAoX19kZWNsc3BlYyhkbGxpbXBvcnQpKS4KCSAgRml4ZXMgaHR0cHM6Ly9jaS5nc3RyZWFtZXIubmV0L2pvYi9jZXJiZXJvLWNyb3NzLW1pbmd3MzIvNDM5My8KCjIwMTYtMDUtMjAgMDA6MjQ6NTQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IEFsd2F5cyB1c2UgZGxsZXhwb3J0L2ltcG9ydCBvbiBXaW5kb3dzCgkgIF9fZGVjbHNwZWMoZGxsZXhwb3J0L2ltcG9ydCkgYXJlIHN1cHBvcnRlZCBieSBHQ0MgYW5kIGFyZSBuZWVkZWQgZm9yCgkgIHByb3Blcmx5IGdlbmVyYXRpbmcgY29kZSB0aGF0IGZldGNoZXMgdGhlIHZhbHVlcyBvZiBjb25zdGFudHMgZnJvbSBETExzCgkgIGJ1aWx0IHdpdGggX19kZWNsc3BlYyhkbGxleHBvcnQpIHdoaWNoIGhhcHBlbnMgd2hlbiBhbnl0aGluZyB1c2luZwoJICBHU1RfRVhQT1JUIGlzIGJ1aWx0IHdpdGggTVNWQy4KCSAgU2VlOiBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5LzYxOXcxNGRzLmFzcHgKCSAgRXNzZW50aWFsbHksIGlmIHlvdSBidWlsdCBnc3RyZWFtZXIgd2l0aCBNU1ZDIGFuZCB0aGVuIHRyaWVkIHRvIHVzZQoJICBjb25zdGFudHMgZnJvbSBpdCAoc3VjaCBhcyBHU1RfVFlQRV9DQVBTKSBpbiBhIHBsdWdpbiwgR0NDIHdvdWxkCgkgIHJldHJpZXZlIHRoZSBhZGRyZXNzIG9mIHRoZSB2YWx1ZSBpbnN0ZWFkIG9mIHRoZSB2YWx1ZSBpdHNlbGYuCgoyMDE2LTA1LTE5IDExOjI3OjM2IC0wMzAwICBEYW5pbG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgPGRhbmlsby5jZXNhckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IG1ha2UgZ2l0LXVwZGF0ZS5zaCBidWlsZCB3aXRoIGFsbCBjb3JlcyBhdmFpbGFibGUKCSAgVGhlIGdpdC11cGRhdGUuc2ggbm93IGJ1aWxkcyB3aXRoIGFsbCBjb3JlcyBhdmFpbGFibGUuIEluIGNhc2Ugb2YKCSAgZmFpbHVyZSBpdCBkZWZhdWx0cyB0byAxCgkgIFRoZSBkZXZlbG9wZXIgY2FuIHN0aWxsIG92ZXJyaWRlIHRoaXMgYnkgc2V0dGluZyAtaiB0byBzb21ldGhpbmcgZWxzZQoJICBpbiBNQUtFRkxBR1MsIGFzIHN0YXRlZCBieSAyOTk2MDVkZmUyZjk3ZmNhMzMwMTYxZmYwMWEzOTJlMWE4NWZlNDIyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NjY2CgoyMDE2LTA1LTA0IDEzOjUzOjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgKG1pbmkpb2JqZWN0OiBhZGQgTUFZX0JFX0xFQUtFRCBmbGFnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYwMDgKCjIwMTYtMDUtMTUgMTQ6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBlbWl0IGRlZXAtZWxlbWVudC17YWRkZWQscmVtb3ZlZH0gZm9yIGNoaWxkcmVuIG9mIG5ld2x5LWFkZGVkL3JlbW92ZWQgYmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzg5MzMKCjIwMTYtMDUtMTQgMTA6NTU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFkZCAiZGVlcC1lbGVtZW50LWFkZGVkIiBhbmQgImRlZXAtZWxlbWVudC1yZW1vdmVkIiBzaWduYWxzCgkgIFRoaXMgbWVhbnMgYXBwbGljYXRpb25zIGFuZCBiaW4gc3ViLWNsYXNzZXMgY2FuIGVhc2lseSB0cmFjayB3aGVuCgkgIGEgbmV3IGNoaWxkIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIHBpcGVsaW5lIHN1Yi1oaWVyYXJjaHkgb3IKCSAgcmVtb3ZlZC4KCSAgQ3VycmVudGx5IGRvZXNuJ3Qgc2lnbmFsIGRlZXAgYWRkZWQvcmVtb3ZlZCBmb3IgZWxlbWVudHMgaW5zaWRlCgkgIGEgYmluIGlmIGEgYmluIGlzIGFkZGVkL3JlbW92ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzg5MzMKCjIwMTYtMDUtMTUgMTU6MDI6NDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogSW1wcm92ZSBJRExFIHByb2JlIGRvY3MKCSAgTWFrZSBpdCBleHBsaWNpdCB0aGF0IHRoZSBwYWQgaXMgb25seSBibG9ja2VkIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBydW5uaW5nLAoJICBhbmQgdGhlIHBhZCB3aWxsIGJlIHVuYmxvY2tlZCBhZ2FpbiBvbmNlIHRoZSBjYWxsYmFjayByZXR1cm5lZC4KCSAgSWYgQkxPQ0sgYW5kIElETEUgYmVoYXZpb3VyIGlzIG5lZWRlZCwgYm90aCBuZWVkIHRvIGJlIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYwMDIKCjIwMTYtMDUtMTUgMTM6Mjk6NTUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogVXBkYXRlIGZvciBnaXQgbWFzdGVyCgoyMDE2LTAzLTExIDE2OjA0OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogT25seSB1bmJsb2NrIHVwc3RyZWFtIHdhaXRpbmcgZm9yIHRoZSBxdWVyeSBvbmNlIGRvd25zdHJlYW0gaXMgZmluaXNoZWQKCSAgLi4uIHdoZW4gZmx1c2hpbmcgYW5kIGRlYWN0aXZhdGluZyBwYWRzLiBPdGhlcndpc2UgZG93bnN0cmVhbSBtaWdodCBoYXZlIGEKCSAgcXVlcnkgdGhhdCB3YXMgYWxyZWFkeSB1bnJlZmZlZCBieSB1cHN0cmVhbSwgY2F1c2luZyBjcmFzaGVzIG9yIG90aGVyCgkgIGludGVyZXN0aW5nIGVmZmVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTYKCjIwMTYtMDUtMTQgMTc6MzE6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc2luay9zcmM6IFBvc3QgYW4gZXJyb3IgbWVzc2FnZSBpZiA6OnN0YXJ0KCkgZmFpbHMKCSAgVGhlIHN1YmNsYXNzIHNob3VsZCBkbyB0aGF0IGFscmVhZHksIGJ1dCBqdXN0IGluIGNhc2UgZG8gaXQgb3Vyc2VsdmVzIHRvbyBhcyBhCgkgIGZhbGxiYWNrLiBXaXRob3V0IHRoaXMsIGUuZy4gcGxheWJpbiB3aWxsIGp1c3Qgd2FpdCBmb3JldmVyIGlmIHRoaXMgZmFpbHMKCSAgYmVjYXVzZSBpdCBpcyB0cmlnZ2VyZWQgYXMgcGFydCBvZiBhbiBBU1lOQyBzdGF0ZSBjaGFuZ2UuCgoyMDE2LTA1LTE0IDIzOjM2OjQzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBGaXggRU9TIGZvcndhcmRpbmcgb24gUExBWUlORy0+UExBWUlORwoJICBXaGVuIGRvaW5nIGEgdHJhbnNpdGlvbiBmcm9tIFBMQVlJTkcgdG8gUExBWUlORywgd2Ugd2lsbCBmYWlsCgkgIHRvIGZvcndhcmQgYW4gRU9TIG1lc3NhZ2Ugb24gdGhlIGJ1cywgYW5kIG5vb25lIGVsc2Ugd2lsbCBldmVyCgkgIHNlbmQgaXQgYmVjYXVzZSB0aGVyZSdsbCBiZSBubyBhY3R1YWwgc3RhdGUgY2hhbmdlZCBtZXNzYWdlLgoJICBBbGxvdyBFT1MgdGhyb3VnaCBkaXJlY3RseSBpbiB0aGF0IGNhc2UuCgoyMDE2LTA1LTEzIDA5OjQzOjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGRyb3AgTEFURU5DWSBxdWVyaWVzIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgoJICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBwYWQgaW4gdGhlIGludGVybmFsIHBhZHMsIHdoZW4gZm9sZGluZyBmb3IKCSAgTEFURU5DWSBxdWVyaWVzIGl0IHdpbGwganVzdCBkcm9wIHRoZSByZXNwb25zZSBpZiBpdCdzIG5vdCBsaXZlLgoJICBUaGlzIGlzIG1heWJlIG5vdCB0aGUgcHJvcGVyIGZpeCwgYnV0IGl0IHdpbGwganVzdCBhY2NlcHQgdGhlIGZpcnN0CgkgIHBlZXIgcmVzcG9uc2VzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwYWRzLCBpdCB3aWxsIG9ubHkgdGFrZQoJICB0aGVtIGludG8gYWNjb3VudCBpZiB0aGUgcmVzcG9uc2UgaXMgbGl2ZS4KCSAgVGhpcyAqc2hvdWxkKiBwcm9wZXJseSBoYW5kbGUgdGhlIGFnZ3JlZ2F0aW9uL2ZvbGRpbmcgYmVoYXZpb3VyIG9mCgkgIG11bHRpcGxlIGxpdmUgcGVlciByZXNwb25zZXMsIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgaGFuZGxpbmcgdGhlCgkgIHNpbXBsZSBvbmUtcGFkLW9ubHktYW5kLWZvcndhcmQgdXNlLWNhc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjM2MAoKMjAxNi0wNC0wNyAwMDo0NjoyMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVwZGF0ZSB0aGUgZXhhbXBsZXMgaW4gdGhlIGdzdC1sYXVuY2gtMS4wIG1hbnBhZ2UKCSAgUmVwbGFjZSBlbGVtZW50cyB0aGF0IGRvbid0IGV4aXN0IGFueSBtb3JlIHdpdGggb25lcwoJICB0aGF0IGRvLCBhbmQgaW5zZXJ0IGVsZW1lbnRzIGxpa2UgbXBlZ2F1ZGlvcGFyc2Ugd2hlcmUKCSAgdGhleSBhcmUgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MTA1CgoyMDE2LTA0LTAyIDAxOjA1OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZGVidWc6IEluc3RhbnRpYXRlIEdUeXBlIHdoZW4gZHVtcGluZyBkZWJ1ZyBjYXRlZ29yaWVzLgoJICBBIGxvdCBvZiBkZWJ1ZyBjYXRlZ29yaWVzIGFyZSBkZWNsYXJlZCBpbiBlbGVtZW50IGNsYXNzX2luaXQKCSAgZnVuY3Rpb25zLCB3aGljaCBkb24ndCBnZXQgcnVuIHVudGlsIHRoZSBlbGVtZW50IGlzIGZpcnN0IGNyZWF0ZWQKCSAgKG5vdCBqdXN0IHJlZ2lzdGVyZWQgaW4gdGhlIHBsdWdpbiBsb2FkIGZ1bmN0aW9uKS4gVGhpcyBtZWFucwoJICB0aGF0IC0tZ3N0LWRlYnVnLWhlbHAgZG9lc24ndCBwcmludCBvdXQgYSBsb3Qgb2YgY2F0ZWdvcmllcy4KCSAgQ3JlYXRpbmcgYW4gaW5zdGFuY2Ugb2YgZWFjaCBlbGVtZW50IGZyb20gdGhlIGVsZW1lbnQgZmFjdG9yeQoJICBtYWtlcyB0aGVtIHZpc2libGUsIGF0IHNvbWUgZXh0cmEgY29zdCAtIDItMyB0aW1lcyBsb25nZXIsIHdoaWNoIGNhbgoJICBiZSBhIGZ1bGwgc2Vjb25kIG9yIHR3byBvZiBleHRyYSB3YWl0aW5nLiBZaWtlcyEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTAwMQoKMjAxNi0wNS0xMSAxNTowNjozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQgaXMgbm90IGluIFBVTEwgbW9kZQoJICBUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0eXBlLWZvdW5kIHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCgkgIHR5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCgkgIGRlYWRsb2NrcyBhbmQgaXMgaW4gZ2VuZXJhbCB1bmV4cGVjdGVkIGJ5IGVsZW1lbnRzIHRoYXQgYXJlIGluIFBVTEwgbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwNgoKMjAxNi0wNS0xMSAxMjoxNjowOSArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggd2FybmluZyBvbiBlbnVtIHByb3BlcnRpZXMgcHJpbnRpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjI1MQoKMjAxNi0wNS0xMCAxNTowMTo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcGFkIHN0YXRlIHdoZW4gZGVhY3RpdmF0aW5nIGZyb20gb25lIG1vZGUgYW5kIHRoZW4gdHJ5aW5nIHRvIGFjdGl2YXRlIGFub3RoZXIgYW5kIGZhaWxpbmcKCSAgV2hlbiBhY3RpdmF0aW5nIGEgcGFkIGluIFBVTEwgbW9kZSwgaXQgbWlnaHQgYWxyZWFkeSBiZSBpbiBQVVNIIG1vZGUuIFdlIG5vdwoJICBmaXJzdCB0cnkgdG8gZGVhY3RpdmF0ZSBpdCBmcm9tIFBVU0ggbW9kZSBhbmQgdGhlbiB0cnkgdG8gYWN0aXZhdGUgaXQgaW4gUFVMTAoJICBtb2RlLiBJZiB0aGUgYWN0aXZhdGlvbiBmYWlscywgd2Ugd291bGQgc2V0IHRoZSBwYWQgdG8gZmx1c2hpbmcgYW5kIHNldCBpdAoJICBiYWNrIHRvIGl0cyBvbGQgbW9kZS4gSG93ZXZlciB0aGUgb2xkIG1vZGUgaXMgd3JvbmcsIHRoZSBwYWQgaXMgbm90IGluIFBVU0gKCSAgbW9kZSBhbnltb3JlIGJ1dCBpbiBOT05FIG1vZGUuCgkgIFRoaXMgZml4ZXMgZS5nLiB0eXBlZmluZCBpbiBkZWNvZGViaW4gcmVhY3RpdmF0aW5nIFBVU0gvUFVMTCBtb2RlIGlmIHVwc3RyZWFtCgkgIGFjdHVhbGx5IGZhaWxzIHRvIGdvIGludG8gUFVMTCBtb2RlIGFmdGVyIGZpcnN0IFBVU0hJTkcgZGF0YSB0byB0eXBlZmluZC4KCjIwMTYtMDMtMTMgMTE6MDU6MjkgLTA0MDAgIEFudGhvbnkgRy4gQmFzaWxlIDxibHVlbmVzc0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svc3Ryc2lnbmFsLmM6CgkgIGxpYmNvbXBhdC5oOiBzdHJzaWduYWwoKSBzaG91bGQgYmUgbm90IGJlIGRlY2xlYXJlZCBjb25zdAoJICBQT1NJWCBzdGFuZGFyZHMgcmVxdWlyZXMgc3Ryc2lnbmFsKCkgdG8gcmV0dXJuIGEgcG9pbnRlciB0byBhIGNoYXIsCgkgIG5vdCBhIGNvbnN0IHBvaW50ZXIgdG8gYSBjaGFyLiBbMV0gIE9uIHVDbGliYywgYW5kIHBvc3NpYmx5IG90aGVyCgkgIGxpYmMncywgdGhhdCBkbyBub3QgSEFWRV9ERUNMX1NUUlNJR05BTCwgbGliY29tcGF0LmggZGVjbGFyZXMKCSAgY29uc3QgY2hhciAqc3Ryc2lnbmFsIChpbnQgc2lnKSB3aGljaCBjYXVzZXMgYSB0eXBlIGVycm9yLgoJICBbMV0gbWFuIDMgc3Ryc2lnbmFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NjcKCjIwMTYtMDUtMDUgMTg6NTA6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBOb3QgdGhhdCBpdCBsb2dzIG11Y2guCgoyMDE2LTA1LTA1IDE4OjAyOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZG9jcyBmb3IgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKQoKMjAxNi0wNS0wNCAxMDowNDozMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlLWxhdW5jaDogZml4IGZhY3RvcnkgbGVhayBpbiB0ZXN0CgkgIFdlIGdldCAyIHJlZmVyZW5jZXMgb25lIGZyb20gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCkgYW5kIHRoZSBvdGhlcgoJICBmcm9tIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NzYKCjIwMTYtMDUtMDQgMTM6NDY6NDYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHJlZiBjb3VudCBsZWFrcyBpbiB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTc4CgoyMDE2LTA1LTA0IDA5OjUzOjMyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHV0aWxzOiBmaXggZWxlbWVudCBsZWFrIGluIGZpbmRfY29tbW9uX3Jvb3QoKQoJICBUaGUgcm9vdCBlbGVtZW50IHdhcyBub3QgdW5yZWZmZWQgd2hlbiBpdGVyYXRpbmcgb3ZlciBhbmNlc3RvcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NjEKCjIwMTYtMDUtMDIgMTc6MzU6MjkgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogZml4IGZlYXR1cmUgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTU3CgoyMDE2LTA1LTAzIDExOjQ5OjAzICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiB1bnJlZiBpbnN0ZWFkIG9mIHVzaW5nIF9nc3RfdXJpX2ZyZWUoKSBkaXJlY3RseQoJICBUaGlzIGNvbmZ1c2VzIGdzdF90cmFjaW5nIGFzIHdlIHNob3J0Y3V0IHRoZSBtaW5pIG9iamVjdCByZWZlcmVuY2UKCSAgc3lzdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTU4CgoyMDE2LTA1LTAyIDA5OjMyOjQ3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHBpcGVsaW5lOiBmaXggYnVzIGxlYWsgaW4gc2VlayB0ZXN0CgkgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKCkga2VlcHMgYSByZWYgb24gdGhlIGJ1cyB3aGljaCBzaG91bGQKCSAgYmUgcmVsZWFzZWQgdXNpbmcgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDk6Mjk6MzEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJICBzdHJlYW1pZGRlbXV4OiBmaXggbGlzdCBhbmQgZXZlbnQgbGVha3MgaW4gdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA4OjQzOjA0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBmaXggcGFkIGxlYWtzIGluIHRlc3RzCgkgIHNldHVwX2lucHV0X3BhZCgpIGNyZWF0ZXMgYSBuZXcgcGFkIHNvIHdlIHNob3VsZCB1bnJlZiBpdCBvbmNlIHdlJ3JlCgkgIGRvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDg6MzM6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBmaXggYnVmZmVyIGxlYWtzIGluIHRlc3RzCgkgIGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCgpIGludGVybmFsbHkgdXNlcyBnc3RfY2hlY2tfY2hhaW5fZnVuYygpIHNvIHdlCgkgIHNob3VsZCBjYWxsIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMoKSB3aGVuIHRlYXJpbmcgZG93biB0ZXN0cyB0byBmcmVlIHRoZQoJICBidWZmZXJzIHdoaWNoIGhhdmUgYmVlbiBleGNoYW5nZWQgdGhyb3VnaCB0aGUgcGlwZWxpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDg6Mjk6MDAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGZpeCBwaXBlbGluZSBsZWFrIGluIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwNzozNTo0NSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBmYWN0b3J5IGxlYWsgaW4gdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDE2OjAwOjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBmaXggZmFjdG9yeSBsZWFrCgkgIFRoZSBjb2RlIHBhdGggd2hlbiBlYXJseSByZXR1cm5pbmcgd2FzIGxlYWtpbmcgdGhlIGV4dHJhIHJlZmVyZW5jZSBvbgoJICB0aGUgZmFjdG9yeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwNAoKMjAxNi0wNC0xMCAxMTo0MjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgQzQxNDY6IHVuYXJ5IG1pbnVzIG9wZXJhdG9yIGFwcGxpZWQgdG8gdW5zaWduZWQgdHlwZSwgcmVzdWx0IHN0aWxsIHVuc2lnbmVkCgoyMDE2LTA0LTI4IDE0OjU5OjUxICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggbGVha3MgaW4gdW5pdCB0ZXN0cwoJICBUaGUgdGVzdCByZWx5IG9uIGJ1cyBiZWluZyBmbHVzaGVkIHdoZW4gc2V0dGluZyB0aGUgYmluIHRvIHRoZSBOVUxMIHN0YXRlIHdoaWNoCgkgIGlzIG5vdCB0aGUgY2FzZS4gVGhpcyBhcHBseSBvbmx5IHdoZW4gc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgdG8KCSAgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTcyMAoKMjAxNi0wNC0yOCAxNDo1NjoxOCArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJ1ZmZlciBsZWFrcyBpbiB0ZXN0cwoJICBUaGUgYnVmZmVyIHJlY2VpdmVkIHRocm91Z2ggdGhlIHBhZCBoYXZlIHRvIGJlIHVucmVmZmVkIHVzaW5nCgkgIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTcxOQoKMjAxNi0wNC0zMCAxNDoxNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgRml4IHNvbWUgbm9uc2Vuc2ljYWwgZy1pIGFubm90YXRpb25zCgoyMDE2LTA0LTI5IDE0OjU1OjAyICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IElnbm9yZSB0aW1lIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBzcGFyc2Ugc3RyZWFtIGxpbWl0cyBoYXZlIGJlZW4gcmVhY2hlZAoJICBCYXNpY2FsbHksIHNxLT5tYXhfc2l6ZS52aXNpYmxlIGlzIG5ldmVyIGluY3JlYXNlZCBmb3Igc3BhcnNlIHN0cmVhbXMgaW4KCSAgb3ZlcnJ1bmNiIHdoZW4gZW1wdHkgcXVldWUgaGFzIGJlZW4gZm91bmQ7CgkgIElmIHRoZSBxdWV1ZSBpcyBzcGFyc2UgaXQganVzdCBza2lwIHRoZSBlbnRpcmUgbG9naWMgZGV0ZXJtaW5pbmcgd2hldGhlcgoJICBtYXhfc2l6ZS52aXNpYmxlIHNob3VsZCBiZSBpbmNyZWFzZWQsIGRlYWRsb2NraW5nIHRoZSBkZW11eGVyLgoJICBXaGF0IHNob3VsZCBiZSBkb25lIGluc3RlYWQgaXMgdGhhdCB3aGVuIGRldGVybWluaW5nIGlmIGxpbWl0cyBoYXZlIGJlZW4KCSAgcmVhY2hlZCwgdG8gaWdub3JlIHRpbWUgZm9yIHNwYXJzZSBzdHJlYW1zLCBhcyB0aGUgYnVmZmVyIG1heSBiZSBmYXIgaW4gdGhlCgkgIGZ1dHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTczNgoKMjAxNi0wMi0yOCAxMjowNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogQWRkIGdzdF9lbGVtZW50X2NhbGxfYXN5bmMoKQoJICBUaGlzIGNhbGxzIGEgZnVuY3Rpb24gZnJvbSBhbm90aGVyIHRocmVhZCwgYXN5bmNocm9ub3VzbHkuIFRoaXMgaXMgdG8gYmUKCSAgdXNlZCBmb3IgY2FzZXMgd2hlbiBhIHN0YXRlIGNoYW5nZSBoYXMgdG8gYmUgcGVyZm9ybWVkIGZyb20gYSBzdHJlYW1pbmcKCSAgdGhyZWFkLCBkaXJlY3RseSB2aWEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKCkgb3IgaW5kaXJlY3RseSBlLmcuIHZpYSBTRUVLCgkgIGV2ZW50cy4KCSAgQ2FsbGluZyB0aG9zZSBmdW5jdGlvbnMgZGlyZWN0bHkgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aWxsIGNhdXNlCgkgIGRlYWRsb2NrcyBpbiBtYW55IHNpdHVhdGlvbnMsIGFzIHRoZXkgbWlnaHQgaW52b2x2ZSB3YWl0aW5nIGZvciB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZCB0byBzaHV0IGRvd24gZnJvbSB0aGlzIHZlcnkgc3RyZWFtaW5nIHRocmVhZC4KCSAgVGhpcyBpcyBtb3N0bHkgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiBhcm91bmQgYSBHVGhyZWFkUG9vbCBhbmQgaXMgZm9yIGV4YW1wbGUKCSAgdXNlZCBieSBHc3RCaW4gdG8gY29udGludWUgYXN5bmNocm9ub3VzIHN0YXRlIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1MzIKCjIwMTYtMDQtMjcgMDk6MjE6MzEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggYnVmZmVyIG1lbW9yeSBsZWFrIGluIGFwcHNyYyBleGFtcGxlCgkgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSgpIGlzIG5vdCBsaWtlIGdzdF9hcHBfc3JjX3B1c2hfYnVmZmVyKCkgZHVlIHRvIHJlZmVyZW5jZQoJICBjb3VudGluZyBsaW1pdGF0aW9ucyBvZiBzaWduYWxzLCBpdCBkb2VzICpub3QqIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBidWZmZXIuCgoyMDE2LTA0LTI2IDE2OjAyOjE0ICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBjbGVhbnVwIHByaXYgZnVuY3Rpb24KCSAgVGhvc2UgYXJlIGFsbG9jYXRlZCBpbiBfcHJpdl9nc3RfY2Fwc19pbml0aWFsaXplKCkgc28gaXQgbWFrZXMKCSAgc2Vuc2UgdG8gaGF2ZSBhIHN5bWV0cmljIGNsZWFudXAgZnVuY3Rpb25zIGNhbGxlZCBieSBnc3RfZGVpbml0KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2MDYKCjIwMTYtMDQtMjYgMTY6MDI6MTQgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZTogYWRkIGNsZWFudXAgcHJpdiBmdW5jdGlvbgoJICBUaG9zZSBhcmUgYWxsb2NhdGVkIGluIF9wcml2X2dzdF9jYXBzX2ZlYXR1cmVzX2luaXRpYWxpemUoKSBzbyBpdCBtYWtlcwoJICBzZW5zZSB0byBoYXZlIGEgc3ltZXRyaWMgY2xlYW51cCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGdzdF9kZWluaXQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTYwNgoKMjAxNi0wNC0yMSAxNDo0NTozOSArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIGNsb2NrLXR5cGUgcHJvcGVydHkKCSAgVG8gYWxsb3cgdGhlIEdzdFRlc3RDbG9jayB0byBiZSB1c2VkIGFzIGEgR3N0U3lzdGVtQ2xvY2ssIGl0IGlzCgkgIHVzZWZ1bCB0byBpbXBsZW1lbnQgdGhlIGNsb2NrLXR5cGUgcHJvcGVydHkgdGhhdCBHc3RTeXN0ZW1DbG9jawoJICBwcm92aWRlcy4gVGhpcyBhbGxvd3MgR3N0VGVzdENsb2NrIHRvIGJlIHVzZWQgYXMgdGhlIHN5c3RlbSBjbG9jawoJICB3aXRoIGNvZGUgdGhhdCBleHBlY3RzIGEgR3N0U3lzdGVtQ2xvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIxNDcKCjIwMTYtMDQtMjEgMTM6NDk6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IFNhbml0eSBjaGVjayB5ZWFyLCBtb250aCBhbmQgZGF5IHdoZW4gcGFyc2luZyBJU08tODYwMSBzdHJpbmdzCgkgIFBhc3NpbmcgeWVhcnMgPiA5OTk5LCBtb250aHMgPiAxMiBvciBkYXlzID4gMzEgdG8gZ3N0X2RhdGVfdGltZV9uZXcoKSB3aWxsCgkgIGNhdXNlIGFuIGFzc2VydGlvbiBhbmQgZ2VuZXJhbGx5IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZS4gSW5zdGVhZCBjb25zaWRlciBpdAoJICBhcyBhIHBhcnNpbmcgZXJyb3IgbGlrZSBob3VycyA+IDI0IGFuZCByZXR1cm4gTlVMTC4KCjIwMTYtMDQtMjAgMTE6NDY6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbWVtYmVyIGlmIHdlIGludGVycG9sYXRlZCBEVFMgZnJvbSBQVFMgYW5kIHJlZnJlc2ggaXQgd2hlbmV2ZXIgd2UgdXBkYXRlIHRoZSBQVFMKCSAgT3RoZXJ3aXNlIFBUUyBhbmQgRFRTIHdpbGwgY29tZSBvdXQgb2Ygc3luYyBpZiB1cHN0cmVhbSBjb250aW51ZXMgdG8gcHJvdmlkZQoJICBQVFMgYW5kIG5vdCBEVFMsIGFuZCB3ZSBoYXZlIHRvIHNraXAgc29tZSBkYXRhIGZyb20gdGhlIHN0cmVhbSBvciBQVFMgYXJlIG5vdAoJICBleGFjdGx5IGluY3JlYXNpbmcgd2l0aCB0aGUgZHVyYXRpb24gb2YgZWFjaCBwYWNrZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyNjAKCjIwMTYtMDQtMjAgMTE6NDU6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBGaXggZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmcgYWJvdXQgaW52YWxpZCB0cmFuc2ZlciBhbm5vdGF0aW9uCgkgIGdzdHR5cGVmaW5kaGVscGVyLmM6NDg1OiBXYXJuaW5nOiBHc3RCYXNlOiBpbnZhbGlkICJ0cmFuc2ZlciIgYW5ub3RhdGlvbiBmb3IgZ3NpemU6IG9ubHkgdmFsaWQgZm9yIGFycmF5LCBzdHJ1Y3QsIHVuaW9uLCBib3hlZCwgb2JqZWN0IGFuZCBpbnRlcmZhY2UgdHlwZXMKCjIwMTYtMDQtMTggMTM6MDU6NDAgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGFkZCBjbGVhbnVwIG1ldGhvZAoJICBNYWtlIHRyYWNraW5nIG1lbW9yeSBsZWFrcyBlYXNpZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyMTIKCjIwMTYtMDMtMjUgMTU6NTU6MTggKzAxMDAgIEZyYW5jaXNjbyBWZWxhenF1ZXogPGZyYW5jaXN2QGlmaS51aW8ubm8+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiBwbHVnaW46IGltcHJvdmUgZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MTk5CgoyMDE2LTA0LTE0IDExOjU0OjMyICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNoZWNrIGJ1ZmZlcmluZyBzdGF0dXMgYWZ0ZXIgY2hhbmdpbmcgbG93IHRocmVzaG9sZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzU3CgoyMDE2LTA0LTE0IDAwOjA5OjQ0ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNhbGN1bGF0ZSBmaWxsIGxldmVsIGFmdGVyIGNoYW5naW5nIGhpZ2gtdGhyZXNob2xkCgkgIFRoaXMgZW5zdXJlcyB0aGUgZm9sbG93aW5nIHNwZWNpYWwgY2FzZSBpcyBoYW5kbGVkIHByb3Blcmx5OgoJICAxLiBRdWV1ZSBpcyBlbXB0eQoJICAyLiBEYXRhIGlzIHB1c2hlZCwgZmlsbCBsZXZlbCBpcyBiZWxvdyB0aGUgY3VycmVudCBoaWdoLXRocmVzaG9sZAoJICAzLiBoaWdoLXRocmVzaG9sZCBpcyBzZXQgdG8gYSBsZXZlbCB0aGF0IGlzIGJlbG93IHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwKCSAgU2luY2UgbXEtPnBlcmNlbnQgd2Fzbid0IGJlaW5nIHJlY2FsY3VsYXRlZCBpbiBzdGVwICMzIHByb3Blcmx5LCB0aGlzCgkgIGNhdXNlZCB0aGUgbXVsdGlxdWV1ZSB0byBzd2l0Y2ggb2ZmIGl0cyBidWZmZXJpbmcgc3RhdGUgd2hlbiBuZXcgZGF0YSBpcwoJICBwdXNoZWQgaW4sIGFuZCBuZXZlciBwb3N0IGEgMTAwJSBidWZmZXJpbmcgbWVzc2FnZS4gVGhlIGFwcGxpY2F0aW9uIHdpbGwKCSAgaGF2ZSByZWNlaXZlZCBhIDwxMDAlIGJ1ZmZlcmluZyBtZXNzYWdlIGZyb20gc3RlcCAjMiwgYnV0IHdpbGwgbmV2ZXIgc2VlCgkgIDEwMCUuCgkgIEZpeCB0aGlzIGJ5IHJlY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbCBwZXJjZW50YWdlIGR1cmluZwoJICBoaWdoLXRocmVzaG9sZCBwcm9wZXJ0eSBjaGFuZ2VzIGluIHRoZSBzYW1lIG1hbm5lciBhcyBpdCBpcyBkb25lIHdoZW4KCSAgdXNlLWJ1ZmZlcmluZyBpcyBtb2RpZmllZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1NwoKMjAxNi0wNC0xNSAxMzo1MDozMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogV2hlbiBpbml0aWFsaXppbmcgRFRTIGZyb20gUFRTLCByZW1lbWJlciB0aGF0IHdlIGRpZCBzbwoJICBJZiB3ZSBkb24ndCBzdG9yZSB0aGUgdmFsdWUgaW4gcHJldl9kdHMsIHdlIHdvdWxkIG92ZXIgYW5kIG92ZXIgYWdhaW4KCSAgaW5pdGlhbGl6ZSB0aGUgRFRTIGZyb20gdGhlIGxhc3Qga25vd24gdXBzdHJlYW0gUFRTLiBJZiB1cHN0cmVhbSBvbmx5IHByb3ZpZGVzCgkgIFBUUyBldmVyeSBub3cgYW5kIHRoZW4sIHRoZW4gdGhpcyBjYXVzZXMgRFRTIHRvIGJlIHJhdGhlciBzdGF0aWMuCgkgIEZvciBleGFtcGxlIGluIGFkYXB0aXZlIHN0cmVhbWluZyBzY2VuYXJpb3MgdGhpcyBtZWFucyB0aGF0IGFsbCBidWZmZXJzIGluIGEKCSAgZnJhZ21lbnQgd2lsbCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgRFRTIHdoaWxlIHRoZSBQVFMgaXMgcHJvcGVybHkgdXBkYXRlZC4gQXMKCSAgb3VyIHF1ZXVlcyBhcmUgbm93IHByZWZlcnJpbmcgdG8gZG8gYnVmZmVyIGZpbGwgbGV2ZWwgY2FsY3VsYXRpb25zIG9uIERUUywKCSAgdGhpcyBpcyBjYXVzaW5nIGh1Z2UgcHJvYmxlbXMgdGhlcmUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxI2MyNyB3aGVyZSB0aGlzIHBhcnQgb2YKCSAgdGhlIGNvZGUgd2FzIGludHJvZHVjZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwOTYKCjIwMTYtMDQtMTQgMDk6NTg6MDQgKzAxMDAgIEp1bGllbiBJc29yY2UgPGouaXNvcmNlQHNhbXN1bmcuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZmMmQyMDkgdG8gYWMyZjY0NwoKMjAxNi0wNC0xMyAxNjowODozMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2F0Y2ggZXJyb3JzIGFuZCBmbHVzaGluZyBjYXNlIGFmdGVyIGxvY2sKCSAgVGhpcyBlbnN1cmVzIHdlIGNhbiBub3QgZ2V0IGludG8gYW4gaW5kZWZpbml0ZSB3YWl0IG9uIHRoZQoJICBmb2xsb3dpbmcgY29uZCB2YXIgd2FpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDk5OQoKMjAxNi0wNC0xMyAxNjo0MDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGZpeCB1cCBjYXBzIHByaW50aW5nIGluIHZlcmJvc2UgbW9kZQoJICBBZGQgbWlzc2luZyAnZWxzZScgYW5kIHByaW50IGNhcHMgYW5kIHRhZ2xpc3RzIHdpdGhvdXQgdGhlCgkgIGFubm95aW5nIGR1cGxpY2F0ZSBzdHJpbmcgZXNjYXBpbmcsIG1ha2luZyBib3RoIG5pY2VyIHRvIHJlYWQuCgkgIEZpeGVzIHN0cmluZyBsZWFrIGFuZCBjb3Zlcml0eSBDSUQgMTM1ODQ5Mi4KCjIwMTYtMDQtMTMgMTI6Mzg6MDUgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICBydXNhZ2U6IHByb3Blcmx5IGZyZWUgdGhlIHF1ZXVlIG1lbW9yeQoJICBUaGUgcXVldWUgaXMgYWxsb2NhdGVkIGFzIHBhcnQgb2YgdGhlIHRyYWNlciBzdHJ1Y3Qgc28gd2Ugc2hvdWxkIG5vdAoJICB1c2UgZ19xdWV1ZV9mcmVlKCkgdG8gZnJlZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDk4NQoKMjAxNi0wNC0xMyAxMDoyMToxNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogV2FybiBpZiBhIG1ldGEgaW1wbGVtZW50YXRpb24gaXMgcmVnaXN0ZXJlZCB3aXRob3V0IGluaXQgZnVuY3Rpb24KCSAgVGhpcyBwcmV2aW91c2x5IGNhdXNlZCB1bmluaXRpYWxpemVkIG1lbW9yeSB1bmxlc3Mgc29tZXRoaW5nIGVsc2Ugd2FzCgkgIGluaXRpYWxpemluZyBhbGwgdGhlIGZpZWxkcyBleHBsaWNpdGx5IHRvIHNvbWV0aGluZy4KCSAgVG8gYmUgb24gdGhlIHNhZmUgc2lkZSwgd2UgYWxzbyBhbGxvY2F0ZSBtZXRhcyB3aXRob3V0IGluaXQgZnVuY3Rpb24gdG8gYWxsCgkgIHplcm9lcyBub3cgYXMgaXQgd2FzIHJlbGF0aXZlbHkgY29tbW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTAyCgoyMDE2LTA0LTEyIDE1OjE3OjM2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBSZXZlcnQgImJhc2VzaW5rOiBUYWtlIFBSRVJPTExfTE9DSyBpbiB3YWl0X2V2ZW50KCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODI4YTQ2MjdkYjBjYjZhNjcwNmI5NmQ5YmU5N2U1ZTVjN2QyMjIxNS4KCSAgVGhlIGxvY2sgd2FzIGFscmVhZHkgdGFrZW4gZWxzZXdoZXJlLCBpbiBnc3RfYmFzZV9zaW5rX2V2ZW50KCkuCgoyMDE2LTA0LTEyIDE1OjExOjMwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVGFrZSBQUkVST0xMX0xPQ0sgaW4gd2FpdF9ldmVudCgpCgkgIEl0IGlzIGNhbGxpbmcgZG9fc3luYygpLCB3aGljaCByZXF1aXJlcyB0aGUgU1RSRUFNX0xPQ0sgYW5kIFBSRVJPTExfTE9DSyB0byBiZQoJICB0YWtlbi4gVGhlIFNUUkVBTV9MT0NLIGlzIGFscmVhZHkgdGFrZW4gaW4gYWxsIGNhbGxlcnMsIHRoZSBQUkVST0xMX0xPQ0sgbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTM5CgoyMDE2LTAyLTExIDA5OjMzOjI4ICswMTAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogYWRkIFBUSFJFQURfQ0ZMQUdTIGZvciBtYWtlIGNoZWNrIHRvIHBhc3Mgb24gT1MgWAoJICBDdXJyZW50bHkgIm1ha2UgY2hlY2siIGZhaWxzIHdpdGg6CgkgICJlcnJvcjogYXJndW1lbnQgdW51c2VkIGR1cmluZyBjb21waWxhdGlvbjogJy1wdGhyZWFkJyIKCSAgUFRIUkVBRF9DRkxBR1Mgbm93IGNvbnRhaW5zIC1RdW51c2VkLWFyZ3VtZW50cyB0byBmaXggdGhhdC4KCSAgRXhwbGFuYXRpb24gaGVyZTogaHR0cDovL3NhdmFubmFoLmdudS5vcmcvcGF0Y2gvPzgxODYjY29tbWVudDIxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc5NTQKCjIwMTYtMDQtMTEgMTA6NDQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBtYWtlIHdvcmsgd2l0aCBDS19GT1JLPW5vCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0NjkKCjIwMTYtMDQtMTEgMTA6Mjc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTIuYzoKCSAgdGVzdHM6IHRyYW5zZm9ybTE6IG1ha2UgdGVzdCB3b3JrIHdpdGggQ0tfRk9SSz1ubwoJICBXZSBuZWVkIHRvIGNsZWFyIHNvbWUgZ2xvYmFsIHN0YXRlIGFuZCByZWdpc3RlciBhIG5ldyB0ZXN0CgkgIGJhc2V0cmFuc2Zvcm0gc3ViY2xhc3MgZm9yIGVhY2ggdGVzdCBiZWNhdXNlIHdlIGRvIHRoaW5ncwoJICBpbiBjbGFzc19pbml0IGJhc2Ugb24gZ2xvYmFsIHN0YXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjQ1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IGZpeCBmb3IgQ0tfRk9SSz1ubwoJICBSZXNldCBnbG9iYWwgc3RhdGUgd2hlbiBkb25lLCBhbmQgdW5yZWYgc2luayBwYWRzIHRvbwoJICBpbiB0ZWFyZG93biBmdW5jdGlvbiB0byBtYWtlIGl0IHZhbGdyaW5kIGNsZWFuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjI1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJICB0ZXN0czogc3RyZWFtaWRkZW11eDogZml4IHdpdGggQ0tfRk9SSz1ubwoJICBDbGVhciBnbG9iYWwgc3RhdGUgd2hlbiBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjA0OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgdGVzdHM6IGJ1ZmZlcnBvb2w6IGZpeCB3cm9uZyBhc3N1bXB0aW9ucyBhYm91dCBwb2ludGVycyBhbmQgb2JqZWN0IGxpZmVjeWNsZXMKCSAgVGhlIHRlc3QgYXNzdW1lZCB0aGF0IGlmIGEgYnVmZmVyIGhhcyB0aGUgc2FtZSBwb2ludGVyIGFkZHJlc3MgYXMKCSAgYmVmb3JlIGl0IGlzIGluIGZhY3QgdGhlIHNhbWUgbWluaSBvYmplY3QgYW5kIGhhcyBiZWVuIHJlLXVzZWQgYnkKCSAgdGhlIHBvb2wuIFRoaXMgc2VlbXMgdG8gYmUgbW9zdGx5IHRydWUsIGJ1dCBub3QgYWx3YXlzLiBUaGUgYnVmZmVyCgkgIG1pZ2h0IGJlIGRlc3Ryb3llZCBhbmQgd2hlbiBhIG5ldyBidWZmZXIgaXMgY3JlYXRlZCB0aGUgYWxsb2NhdG9yCgkgIG1pZ2h0IHJldHVybiB0aGUgc2FtZSBtZW1vcnkgdGhhdCB3ZSBqdXN0IGZyZWVkLgoJICBJbnN0ZWFkIGF0dGFjaCBhIHFkYXRhIHdpdGggZGVzdHJveSBub3RpZnkgZnVuY3Rpb24gdG8gYnVmZmVyCgkgIGluc3RhbmNlcyB3ZSB3YW50IHRvIHRyYWNrIHRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyIGFjdHVhbGx5CgkgIGdldHMgZmluYWxpemVkIHJhdGhlciB0aGFuIHJlc3VycmVjdGVkIGFuZCBwdXQgYmFjayBpbnRvIHRoZSBwb29sLgoKMjAxNi0wNC0xMCAxODozNzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IHB3ZzogcmVtb3ZlIGJyb2tlbiByZWZlcmVuY2VzIHRvIGV4YW1wbGUgY29kZQoJICBXZSBwb2ludCB0byBnc3QtdGVtcGxhdGUgYXQgdGhlIGJlZ2lubmluZyB0aGF0IHNob3VsIGJlCgkgIGVub3VnaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzU3NQoKMjAxNi0wNC0wOCAxMzoyNjo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZG9uJ3QgcnVuIHRyYWNlcnJlY29yZCBpbiB2YWxncmluZCBmb3Igbm93CgkgIEJlY2F1c2Ugb2YgdGhlIHdheSB3ZSBpbXBsZW1lbnQgbG9nZ2luZyBhbmQgYWRkaW5nL3JlbW92aW5nCgkgIGxvZyBmdW5jdGlvbnMgY3VycmVudGx5ICh3ZSBsZWFrIGEgR0xpc3Qgb24gcHVycG9zZSkgdGhpcwoJICB0ZXN0IGxlYWtzLgoKMjAxNi0wMy0wNSAxNzo1MTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHVzZSBuZXcgYXN5bmMgcHJvcGVydHkgY2hhbmdlIG5vdGlmaWNhdGlvbiBBUEkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzE0MgoKMjAxNi0wMy0wNSAxNDoxMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBBUEkgdG8gZ2V0IHByb3BlcnR5IGNoYW5nZSBub3RpZmljYXRpb25zIHZpYSBtZXNzYWdlcwoJICBCZSBub3RpZmllZCBpbiB0aGUgYXBwbGljYXRpb24gdGhyZWFkIHZpYSBidXMgbWVzc2FnZXMgYWJvdXQKCSAgbm90aWZ5OjoqIGFuZCBkZWVwLW5vdGlmeTo6KiBwcm9wZXJ0eSBjaGFuZ2VzLCBpbnN0ZWFkIG9mCgkgIGhhdmluZyB0byBkZWFsIHdpdGggaXQgaW4gYSBub24tYXBwbGljYXRpb24gdGhyZWFkLgoJICBBUEk6IGdzdF9lbGVtZW50X2FkZF9wcm9wZXJ0eV9ub3RpZnlfd2F0Y2goKQoJICBBUEk6IGdzdF9lbGVtZW50X2FkZF9wcm9wZXJ0eV9kZWVwX25vdGlmeV93YXRjaCgpCgkgIEFQSTogZ3N0X2VsZW1lbnRfcmVtb3ZlX3Byb3BlcnR5X25vdGlmeV93YXRjaCgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3Byb3BlcnR5X25vdGlmeSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfcHJvcGVydHlfbm90aWZ5KCkKCSAgQVBJOiBHU1RfTUVTU0FHRV9QUk9QRVJUWV9OT1RJRlkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzE0MgoKMjAxNi0wNC0wNyAyMDoyOToxMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgdGVzdHM6IEFkZCBDKysgdGVzdHMgZm9yIHRoZSBvdGhlciBJTklUIG1hY3JvcyB3ZSBoYXZlCgoyMDE2LTA0LTA2IDE3OjE5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSAgdGVzdHM6IGdzdGNwcDogZmxlc2ggb3V0IEMrKyB0ZXN0IHNvIHdlIGNhbiBhZGQgbW9yZSBiaXRzCgkgIExpa2UgYSBjaGVjayBmb3IgR1NUX01BUF9JTkZPX0lOSVQuCgoyMDE2LTA0LTA2IDE2OjQ4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogdXNlIGNhdGNoLWFsbCBpbmNsdWRlcyBmb3IgYysrIGdzdCBsaWJzIGluY2x1ZGUgdGVzdAoJICBTbyB3ZSBnZXQgYW55IG5ldyBoZWFkZXIgZmlsZXMgYXMgd2VsbCBhcyB0aGV5J3JlIGFkZGVkLgoKMjAxNi0wNC0wNiAxNzoyMzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggQysrIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggR1NUX01BUF9JTkZPX0lOSVQKCjIwMTYtMDQtMDQgMTA6Mjg6MTggKzAwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGNoZWNrIHRoZSBjb3JyZWN0IGVsZW1lbnQncyBzdGF0ZSBvbiBnaG9zdGluZyBwYWRzCgkgIENoZWNraW5nIHRoZSBjdXJyZW50IGVsZW1lbnQncyBzdGF0ZSB3aGVuIHdlJ3JlIGFkZGluZyBwYWRzIHRvCgkgIHRoZSBwYXJlbnQgZWxlbWVudCBpcyBjaGVja2luZyB0aGUgd3JvbmcgdGhpbmcuCgkgIFNpbGVuY2VzIGEgJ2F0dGVtcHRpbmcgdG8gYWRkIGFuIGluYWN0aXZlIHBhZCB0byBhIHJ1bm5pbmcgZWxlbWVudCcKCSAgd2FybmluZyB3aGVuIGFkZGluZyBhIGdob3N0IHBhZCB0byBhIHJ1bm5pbmcgcGFyZW50IGJpbiBvZiB0aGUgcGFyZW50CgkgIGJpbiBvZiB0aGUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDE3NgoKMjAxNi0wMy0yNSAwMToyODoxOCArMDAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IGV4cG9zZSBwYWRfbGlua19tYXliZV9naG9zdGluZwoJICBUaGlzIGlzIGEgdXNlZnVsIGZ1bmN0aW9uIHRvIGF1dG9tYXRpY2FsbHkgYWRkIGdob3N0IHBhZHMgd2hlbiBsaW5raW5nCgkgIHR3byBlbGVtZW50cyBhY3Jvc3MgYmluIGJvdW5kYXJpZXMgd2l0aG91dCBrbm93IHRoZWlyIGV4YWN0IHBhcmVudGFnZS4KCSAgZS5nLiB3aGVuIHVzaW5nIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiAod2l0aCBvciB3aXRob3V0IGl0IGdob3N0aW5nIHBhZHMpLAoJICBvbmUgY2FuIHNpbXBseSByZXRyZWl2ZSB0aGUgc3JjL3NpbmsgcGFkcyBmcm9tIHRoZSBiaW4gdG8gbGluayB0byBhbm90aGVyIHBhZC4KCSAgU2ltaWxhciBmdW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkIGJ5IGdzdF9lbGVtZW50X2xpbmtfcGFkc3tfZnVsbH0oKSBob3dldmVyIG9ubHkKCSAgYnkgcGFkIG5hbWUgcmF0aGVyIHRoYW4gYnkgYWN0dWFsIHBhZHMuCgkgIEFQSTogZ3N0X3BhZF9saW5rX21heWJlX2dob3N0aW5nX2Z1bGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDE3NgoKMjAxNi0wNC0wMyAyMzozNTo0NiAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IHNwZWxsaW5nIGZpeAoKMjAxNS0wNS0xNSAxMzozNjowNCArMDEwMCAgTWFyayBDb21iZWxsYWNrIDxnbm9tZS1idWd6aWxsYUBjb21iZWxsYWNrLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBHU1RfUkVGQ09VTlRJTkc6IEFkZCBsb2dnaW5nIG9mIHBvaW50ZXIgYWRkcmVzcyBmb3IgZGlzcG9zZSwgZmluYWxpemUsIGV0YyBtZXNzYWdlcwoJICBVcGRhdGVkIHRoZSBHU1RfUkVGQ09VTlRJTkcgbG9nZ2luZyBzbyB0aGF0IGl0IGluY2x1ZGVzIHRoZSBwb2ludGVyCgkgIGFkZHJlc3Mgb2YgdGhlIG9iamVjdCB0aGF0IGlzIGJlaW5nIGRpc3Bvc2VkIG9yIGZpbmFsaXplZC4KCSAgV2l0aCB0aGlzIGNoYW5nZSBpcyBpcyB0aGVuIHBvc3NpYmxlIHRvIG1hdGNoIHVwIEdTVF9SRUZDT1VOVElORyBsb2cgbWVzc2FnZXMKCSAgZm9yIG9iamVjdCBhbGxvY2F0aW9uL2Rpc3Bvc2FsL2ZpbmFsaXphdGlvbi4gVGhpcyBjYW4gaGVscCB3aXRoIGRpYWdub3NpbmcKCSAgIm1lbW9yeSBsZWFrcyIgaW4gYXBwbGljYXRpb25zIHRoYXQgaGF2ZSBub3QgY29ycmVjdGx5IGRpc3Bvc2VkIG9mIGFsbCB0aGUKCSAgR1N0cmVhbWVyIG9iamVjdHMgaXQgY3JlYXRlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTQyNwoKMjAxNi0wMy0zMSAxMTo0NjowMyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG9ubHkgb3BlbiBsb2cgZmlsZSB3aGVuIGFkZGluZyBpdCB0byB0aGUgbG9nIGZ1bmN0aW9uCgkgIFRoaXMgYXZvaWRzIHRoZSBsZWFrIG9mIG9wZW5pbmcgaXQgYW5kIHRoZW4gbm90IHBhc3NpbmcgaXQgb3IgY2xvc2luZyBpdAoJICBiZWZvcmUgaXQgZ29lcyBvdXQgb2Ygc2NvcGUuCgoyMDE2LTA0LTAxIDIyOjQxOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBSZXR1cm4gRkFMU0UgaW4gYWxsIHBhdGhzIHRoYXQgZG9uJ3Qgc2V0IG91dCBwYXJhbWV0ZXJzIGluIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkKCSAgSXQgcmV0dXJuZWQgVFJVRSB3aGVuIHJlZ3Jlc3Npb24gZmFpbGVkLCB3aGlsZSBub3Qgc2V0dGluZyBhbnkgb2YgdGhlIG91dAoJICBwYXJhbWV0ZXJzLiBUaGlzIGNhdXNlZCB1bmluaXRpYWxpemVkIGRhdGEgZnJvbSB0aGUgc3RhY2sgdG8gYmUgdXNlZCBmb3IKCSAgc2V0dGluZyB0aGUgY2xvY2sgY2FsaWJyYXRpb24uCgoyMDE2LTAzLTI0IDE3OjM0OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHByb2JlJ3MgaG9va19tYXJzaGFsbCBmdW5jdGlvbgoJICBQVVNIIGFuZCBQVUxMIG1vZGUgaGF2ZSBvcHBvc2l0ZSBzY2VuYXJpb3MgZm9yIElETEUgYW5kIEJMT0NLCgkgIHByb2Jlcy4KCSAgRm9yIFBVU0ggaXQgd2lsbCBCTE9DSyB3aXRoIHNvbWUgZGF0YSB0eXBlIGFuZCBJRExFIHdvbid0IGhhdmUgYSB0eXBlLgoJICBGb3IgUFVMTCBpdCB3aWxsIEJMT0NLIGJlZm9yZSBnZXR0aW5nIHNvbWUgZGF0YSBhbmQgd2lsbCBiZSBJRExFIHdoZW4KCSAgc29tZSBkYXRhIGlzIG9idGFpbmVkLgoJICBUaGUgY2hlY2sgaW4gaG9va19tYXJzaGFsbCB3YXMgc3BlY2lmaWMgZm9yIFBVU0ggbW9kZSBhbmQgd291bGQgY2F1c2UKCSAgUFVMTCBwcm9iZXMgdG8gZmFpbCB0byBiZSBjYWxsZWQuIEFkZGluZyBkaWZmZXJlbnQgY2hlY2tzIGZvciB0aGUgbW9kZQoJICB0byBmaXggdGhpcyBpc3N1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMy0yNCAxNzozNDo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBleHRyYSB0ZXN0cyBmb3IgcGFkIHB1bGwgcHJvYmVzCgkgIEZvciBCVUZGRVIgYW5kIElETEUgcHJvYmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDEtMjggMTY6MjI6MTcgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMy0yNCAxMjoxMzozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNvbnNpZGVyIFBST0JFX1RZUEVfRVZFTlRfRkxVU0ggd2hlbiB1c2luZyBQUk9CRV9UWVBFX0FMTF9CT1RICgkgIFdoZW4gR1NUX1BBRF9QUk9CRV9FVkVOVF9GTFVTSCBpcyB1c2VkLCB0aGUgcHJvYmVzIGFscmVhZHkgaGF2ZQoJICBhIGRhdGEgdHlwZSBhbmQgaXQgaXMgbm90IG5lZWRlZCB0byBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgZGVmYXVsdAoJICB0eXBlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMzMAoKMjAxNi0wMi0xOSAxNjoxODoxMiArMDEwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZCB0ZXN0czogQWRkIGEgdGVzdCBmb3IgZmx1c2ggZXZlbnQgb25seSBwcm9iZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMzMAoKMjAxNi0wMy0yNiAxNzoyMTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBlbnVtL2ZsYWcgcHJvcGVydGllcyBwcmludGluZyBmb3IgZWxlbWVudHMKCSAgV2Ugd2FudCB0byB1c2UgdGhlIGZsYWcvZW51bSBuaWNrcyBoZXJlLCBub3Qgb25seSBiZWNhdXNlIHRoZXkKCSAgYXJlIHNob3J0ZXIgYnV0IGFsc28gYmVjYXVzZSBpbiBjYXNlIG9mIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMKCSAgYW5kIGZsYWdzIHdlIGFidXNlIHRoZSBlbnVtL2ZsYWcgbmFtZSBmaWVsZCBmb3IgdGhlIGRlc2NyaXB0aW9uLAoJICBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0IHByaW50ZWQgaW4gdGhlIGRvdCBmaWxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzODE0CgoyMDE2LTAzLTIzIDEwOjMxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGFsbG9jdHJhY2U6IHByaW50IHNpemUgYW5kIGFsbG9jYXRvciBkZXRhaWxzIGZvciBidWZmZXJzIGFuZCBtZW1vcmllcwoKMjAxNi0wMi0yOSAxOTowNDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgaXQgcG9zc2libGUgdG8gcmVtb3ZlIGRlZmF1bHQgbG9nIGhhbmRsZXIgYmVmb3JlIGdzdF9pbml0KCkKCSAgTWFrZSBzdXJlIGl0J3Mgbm90IGV2ZW4gYWRkZWQgdGhlbiwgc28gdGhhdCB3ZSBuZXZlciBvdXRwdXQKCSAgYW55dGhpbmcgdmlhIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyIHRoZW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE1MzgKCjIwMTYtMDMtMDUgMTQ6Mjc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgbWluaW9iamVjdCwgbWVtb3J5LCB1cmk6IHdhcm4gb24gdW51c2VkIHJldHVybiB2YWx1ZSBvZiBzb21lIGZ1bmNzCgkgIE1ha2UgY29tcGlsZXIgaXNzdWUgYSB3YXJuaW5nIGZvciBjb21tb24gYmVnaW5uZXIgbWlzdGFrZXMgc3VjaCBhczoKCSAgLi4uCgkgIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSAoYnVmKTsKCSAgZ3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9XUklURSk7CgkgIC4uLgoJICBhbmQgc2ltaWxhci4gT25seSBkbyB0aGlzIGZvciBzb21lIGZ1bmN0aW9ucyBmb3Igbm93LgoKMjAxNi0wMy0yNiAxMToxNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmUgbmV3IG5ldGNsb2NrLXJlcGxheSB0ZXN0aW5nIHRvb2wgYmluYXJ5CgoyMDE1LTEwLTE3IDE4OjAxOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhbGxvdyBwbHVnaW4gYW5kIGZlYXR1cmUgZmlsdGVyIGZ1bmNzIHRvIGNhbGwgcmVnaXN0cnkgQVBJCgkgIERvbid0IGtlZXAgdGhlIHJlZ2lzdHJ5IGxvY2tlZCB3aGlsc3QgaXRlcmF0aW5nIG92ZXIgdGhlIHBsdWdpbnMKCSAgb3IgZmVhdHVyZXMgd2l0aCBhIGZpbHRlciBmdW5jdGlvbi4gVGhpcyB3b3VsZCBkZWFkbG9jayBpZiB0aGUKCSAgY2FsbGJhY2sgdHJpZWQgdG8gYWNjZXNzIHRoZSByZWdpc3RyeSBmcm9tIHRoZSBmdW5jdGlvbi4gSW5zdGVhZCwKCSAgbWFrZSBhIGNvcHkgb2YgdGhlIGZlYXR1cmUvcGx1Z2luIGxpc3QgYW5kIHRoZW4gZmlsdGVyIGl0IHdpdGhvdXQKCSAgaG9sZGluZyB0aGUgcmVnaXN0cnkgbG9jay4gVGhpcyBpcyBzdGlsbCBjb25zaWRlcmFibHkgZmFzdGVyIHRoYW4KCSAgdGhlIGFsdGVybmF0aXZlIHdoaWNoIHdvdWxkIGJlIHRvIHVzZSBhIEdzdEl0ZXJhdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NzM4CgoyMDE2LTAzLTI1IDEyOjU5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSB1bm5lZWRlZCBwYXJlbnRoZXNpcyBmcm9tIEFHX0dTVF9DSEVDS19DSEVDS1MKCjIwMTYtMDMtMjUgMTI6MDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogRml4IHVuaXQgdGVzdCBieSBzZW5kaW5nIGNhcHMgYmVmb3JlIGJ1ZmZlcnMKCSAgVW5leHBlY3RlZCBjcml0aWNhbC93YXJuaW5nOiBnc3RwYWQuYzo0NDAwOmdzdF9wYWRfcHVzaF9kYXRhOjwnJzpzcmM+IEdvdCBkYXRhIGZsb3cgYmVmb3JlIHNlZ21lbnQgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1MwoKMjAxNi0wMy0yNSAxMDoyMzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL21pc2MvTWFrZWZpbGUuYW06CgkgIG5ldGNsb2NrOiBMaW5rIHRoZSByZXBsYXkgZXhhbXBsZSB0byBHSU8KCjIwMTYtMDMtMDMgMjE6NDU6NTQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvbWlzYy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbWlzYy9uZXRjbG9jay1yZXBsYXkuYzoKCSAgdGVzdHM6IEFkZCBzb21lIGNvZGUgdG8gcmVwbGF5IGFuZCBhbmFseXNlIG5ldGNsaWVudGNsb2NrCgkgIFRoaXMgdGFrZXMgcmVhZGluZ3MgaW4gdGhlIGZvcm0gb2YgLi4uCgkgIDxsb2NhbF8xPiA8cmVtb3RlXzE+IDxyZW1vdGVfMj4gPGxvY2FsXzI+CgkgIC4uLiB3aXRoIG9uZSBvYnNlcnZhdGlvbiBwZXIgbGluZSwgYW5kIHRoZW4gcmVwbGF5cyBpdCB1c2luZyB0aGUKCSAgbmV0Y2xpZW50Y2xvY2sgY29kZS4KCSAgVGhlIG91dHB1dCBpcyB0aGUgc3RhdGlzdGljcyBzdHJ1Y3R1cmUgZW1pdHRlZCBieSB0aGUgbmV0Y2xpZW50Y2xvY2ssCgkgIHdoaWNoIGNhbiB0aGVuIGJlIGFuYWx5c2VkIGFuZCB0dW5lZCBvbmNlIHdlIGdldCB0aG9zZSByZWFkaW5ncyBmb3IKCSAgcG90ZW50aWFsIGVkZ2UtY2FzZXMuCgkgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBmaW5kIHNvbWUgaW5wdXRzIHdpdGggImJhZCIgZGF0YSBhbmQgY29udmVydAoJICB0aGlzIGludG8gYSB1bml0IHRlc3QgZm9yIGZ1dHVyZSB0d2Vha3MgdG8gcnVuIGFnYWluc3QuCgoyMDE2LTAzLTAzIDIxOjQ0OjM1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWx3YXlzIGR1bXAgY2xvY2sgb2JzZXJ2YXRpb25zIGluIGxvZ3MKCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBleGFtaW5lIHdoYXQgdmFsdWVzIHdlIGdldCBpbiBsb2dzLCBhbmQKCSAgcG90ZW50aWFsbHkgdHVuZSBvdXIgZmlsdGVyaW5nL2V4dHJhcG9sYXRpb24gaW4gdmFyaW91cyBzY2VuYXJpb3MuCgoyMDE2LTAzLTE2IDE1OjEzOjM5ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBkb24ndCBzZW5kIHN0aWNreSBldmVudHMgYXMgYSBkaXJlY3QgcmVzcG9uc2UgdG8gdXBzdHJlYW0gZXZlbnRzCgkgIEFsc28gcmVmYWN0b3IgdGhlIGV4aXN0aW5nIHZhbHZlIHRlc3QgdG8gYWN0dWFsbHkgdGVzdCB0aGUgdmFsdmUsCgkgIGFuZCBub3QganVzdCB0ZXN0IHRoZSBFT1MgbWVjaGFuaXNtIG9mIGEgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzUzCgoyMDE2LTAzLTExIDA5OjIzOjA0ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogQWRkIGZsYWcgZm9yIHBsYWNpbmcgZWxlbWVudHMgaW4gYSBiaW4gaW5zdGVhZCBvZiBhIHBpcGVsaW5lCgkgIEJ5IGRlZmF1bHQsIGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpIGNyZWF0ZXMgYSBHc3RQaXBlbGluZSBpZiB0aGVyZSdzIG1vcmUKCSAgdGhhbiBvbmUgdG9wbGV2ZWwgZWxlbWVudC4gQWRkIGEgZmxhZyB0byBsZXQgaXQgdXNlIGEgR3N0QmluIGluc3RlYWQuCgkgIEFsc28gZml4IHRoZSBwYXJzZXIgdG8gbGV0IGl0IHVzZSB0aGlzIGZsYWcgZm9yIEdTVF9UWVBFX0VMRU1FTlQgcHJvcGVydHkKCSAgdmFsdWVzLCB0byBhdm9pZCBoYXZpbmcgR3N0UGlwZWxpbmVzIGluc2lkZSBvdGhlciBHc3RQaXBlbGluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0NTcKCjIwMTYtMDMtMDggMTk6MDg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IG9wdGltaXNhdGlvbjogYXZvaWQgdW5uZWNlc3NhcnkgZ3N0X3BhZF9oYXNfY3VycmVudF9jYXBzKCkgY2hlY2tzCgkgIE5vIG5lZWQgdG8gZG8gdGhpcyBmb3IgZXZlcnkgaW5wdXQgYnVmZmVyLCBzaW5jZSBpdCBpbnZvbHZlcwoJICBsb2NraW5nIGFuZCBpdGVyYXRpbmcgb2YgdGhlIHN0aWNreSBldmVudHMgYXJyYXkgYW5kIHN1Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMzMzcKCjIwMTYtMDMtMDMgMTQ6MTU6MDAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgZ3N0cmVhbWVyOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzAyMAoKMjAxNi0wMy0wMiAxNzo0NzozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogVXNlIGZ1bGwgcnVubmluZyB0aW1lIGZvciBsZXZlbCBjYWxjdWxhdGlvbgoJICBFbnN1cmVzIHdlIGhhdmUgcHJvcGVyIHRpbWUgbGV2ZWwgZXN0aW1hdGlvbiBmb3IgdGhlIGNhc2VzIHdoZXJlCgkgIHRoZSBpbmNvbWluZyBidWZmZXJzIGhhdmUgUFRTL0RUUyBvdXRzaWRlIG9mIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AKCSAgdmFsdWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyOTk1CgoyMDE2LTAxLTI3IDExOjQ2OjA2ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmFjZSBiZXR3ZWVuIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQgYW5kIHN0YXRlIGNoYW5nZQoJICBXaGVuIGdvaW5nIGZyb20gUkVBRFkgdG8gTlVMTCBhbGwgZWxlbWVudCBwYWRzIGFyZSBkZWFjdGl2YXRlZC4gSWYKCSAgc2ltdWx0YW5lb3VzbHkgdGhlIHBhZCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGVsZW1lbnQgd2l0aAoJICBnc3RfZWxlbWVudF9yZW1vdmVfcGFkKCkgYW5kIHRoZSBwYWQgaXMgdW5wYXJlbnRlZCwgdGhlcmUgaXMgYSByYWNlCgkgIHdoZXJlIHRoZSBkZWFjdGl2YXRpb24gd2lsbCBhc3NlcnQgKGdfY3JpdGljYWwpIGlmIHRoZSBwYXJlbnQgaXMgbG9zdCBhdAoJICB0aGUgd3JvbmcgdGltZS4KCSAgVGhlIHByb3Bvc2VkIGZpeCB3aWxsIGNoZWNrIHBhcmVudCBvbmx5IG9uY2UgYW5kIHJldGFpbiBpdCB0byBhdm9pZCB0aGUKCSAgcmFjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMgoKMjAxNi0wMy0wMiAyMToxMTo1MSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQXNzdW1lIFBUUyBpcyBlcXVhbCBEVFMgaWYgUFRTIGlzIG1pc3NpbmcKCSAgVGhpcyBpcyB0aGUgYmVzdCBndWVzcyB3ZSBjYW4gbWFrZSBpZiBzdWNoIGEgYnVmZmVyIHJlYWNoZWQgdGhlIGNvbGxlY3QKCSAgcGFkLiBUaGlzIGlzIHVuY29tbW9uLCB3ZSBkbyBleHBlY3QgcGFyc2VycyB0byBoYXZlIHRyaWVkIGFuZCBmaXhlZCB0aGF0CgkgIGlmIHBvc3NpYmxlIChvciBuZWVkZWQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjA3CgoyMDE2LTAzLTI0IDEzOjMyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50CgoyMDE2LTAzLTI0IDExOjQ5OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudAoJICBDSUQgMTM1NzE1OAoKPT09IHJlbGVhc2UgMS44LjAgPT09CgoyMDE2LTAzLTI0IDExOjQ5OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuOC4wCgoyMDE2LTAzLTI0IDExOjM1OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wMy0xMyAxMTowNToyOSAtMDQwMCAgQW50aG9ueSBHLiBCYXNpbGUgPGJsdWVuZXNzQGdlbnRvby5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSAgbGliY29tcGF0Lmg6IHN0cnNpZ25hbCgpIHNob3VsZCBiZSBub3QgYmUgZGVjbGVhcmVkIGNvbnN0CgkgIFBPU0lYIHN0YW5kYXJkcyByZXF1aXJlcyBzdHJzaWduYWwoKSB0byByZXR1cm4gYSBwb2ludGVyIHRvIGEgY2hhciwKCSAgbm90IGEgY29uc3QgcG9pbnRlciB0byBhIGNoYXIuIFsxXSAgT24gdUNsaWJjLCBhbmQgcG9zc2libHkgb3RoZXIKCSAgbGliYydzLCB0aGF0IGRvIG5vdCBIQVZFX0RFQ0xfU1RSU0lHTkFMLCBsaWJjb21wYXQuaCBkZWNsYXJlcwoJICBjb25zdCBjaGFyICpzdHJzaWduYWwgKGludCBzaWcpIHdoaWNoIGNhdXNlcyBhIHR5cGUgZXJyb3IuCgkgIFsxXSBtYW4gMyBzdHJzaWduYWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzU2NwoKMjAxNi0wMy0yMiAxOTowNDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBVc2UgR1NUX1BSRVNFVF9QQVRIIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgc3lzdGVtIHBhdGgsIG5vdCBhIHJlcGxhY2VtZW50IG9mIHRoZSB1c2VyIHBhdGgKCSAgRmlyc3QgbG9hZCBhbGwgc3lzdGVtIHByZXNldHMsIHRoZW4gYWxsIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGVuCgkgIGZyb20gdGhlIGFwcCBkaXJlY3RvcnksIHRoZW4gZnJvbSB0aGUgdXNlciBkaXJlY3RvcnkuIEFueSBvbmUgaW4gdGhlIGNoYWluCgkgIHdpdGggdGhlIGhpZ2hlc3QgdmVyc2lvbiBjb21wbGV0ZWx5IHJlcGxhY2VzIGFsbCBwcmV2aW91cyBvbmVzLCBsYXRlciBvbmVzCgkgIHdpdGggbG93ZXIgdmVyc2lvbnMgYXJlIG1lcmdlZCBpbiB3aXRob3V0IHJlcGxhY2luZyBleGlzdGluZyBwcmVzZXRzLgoJICBUaGlzIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgYmVmb3JlLCBqdXN0IHRoYXQgR1NUX1BSRVNFVF9QQVRIIGlzCgkgIGluc2VydGVkIGFzIGFub3RoZXIgc291cmNlIG9mIGRpcmVjdG9yaWVzIGJldHdlZW4gdGhlIHN5c3RlbSBhbmQgYXBwIHByZXNldHMuCgkgIEl0IHdhcyBhZGRlZCBpbiBjYTA4YWYxZjE3ZDJjZTM2YjgzOTk4YTBiYTNhN2I4YmNhZmQ3ODcyLCBidXQgd2FzCgkgIGFjY2lkZW50aWFsbHkgb3ZlcnJpZGluZyB0aGUgdXNlciBwcmVzZXQgcGF0aCB0aGVyZS4gV2hpY2ggY2F1c2VkIGluY29uc2lzdGVudAoJICBiZWhhdmlvdXIgYXMgbmV3IHByZXNldHMgd2VyZSBzdGlsbCBzdG9yZWQgaW4gdGhlIHN5c3RlbSBwYXRoLCBqdXN0IG5vdCBsb2FkZWQKCSAgZnJvbSB0aGVyZS4gTWVhbmluZyB5b3UgY291bGQgc3RvcmUgYSBuZXcgcHJlc2V0IChpbiB0aGUgdXNlciBwYXRoKSwganVzdCBmb3IKCSAgR3N0UHJlc2V0IHRvIG5vdCBmaW5kIGl0IGFueW1vcmUgbGF0ZXIgKGJlY2F1c2UgaXQgb25seSBsb29rZWQgaW4gdGhlCgkgIEdTVF9QUkVTRVRfUEFUSCBpbnN0ZWFkIG9mIHRoZSB1c2VyIHBhdGgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MDM0CgoyMDE2LTAzLTE5IDEyOjU1OjA5ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWRkICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9uIHRvIGdzdF9wYWRfcGVlcl9xdWVyeV9jYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM5MTIKCjIwMTYtMDMtMTkgMTI6Mzk6MTggKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5kICdudWxsYWJsZScgYW5ub3RhdGlvbnMgdG8gZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzCgkgIGFuZCBhbHNvIGNoYW5nZSB0aGUgZGVzY3JpcHRpb24gYWNjb3JkaW5nbHkgc2luY2UgZnVuY3Rpb24gcmV0dXJucyBhbgoJICBpbmNyZW1lbnRlZCBjYXBzIG9iamVjdCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGNhcHMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTEyCgoyMDE2LTAzLTE4IDE2OjAyOjQzIC0wNDAwICBCZW4gSW9mZWwgPGlvZmVsYmVuQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGdpciBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzg5NQoKMjAxNi0wMy0xNyAwMTo0Mjo1NSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBDaGVjayBtdWx0aXF1ZXVlIG5vdC1saW5rZWQgRU9TIGhhbmRsaW5nCgkgIEFkZCBhIHRlc3Qgd2hpY2ggY2hlY2tzIHRoYXQgbm90LWxpbmtlZCBwYWRzIGNvbnRpbnVlCgkgIHRvIG91dHB1dCBkYXRhIGFmdGVyIGxpbmtlZCBwYWRzIGhhdmUgZ29uZSBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wMy0xOCAwMzowODozOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIGF0IEVPUwoJICBFbnN1cmUgdGhhdCBub3QtbGlua2VkIHBhZHMgd2lsbCBkcmFpbiBvdXQgYXQgRU9TIGJ5CgkgIGNvcnJlY3RseSBkZXRlY3RpbmcgdGhlIEVPUyBjb25kaXRpb24gYmFzZWQgb24gdGhlIEVPUwoJICBwYWQgZmxhZyAod2hpY2ggaW5kaWNhdGVzIHdlIGFjdHVhbGx5IHB1c2hlZCBhbiBFT1MpLAoJICBhbmQgbWFrZSBzdXJlIHRoYXQgbm90LWxpbmtlZCBwYWRzIGFyZSB3b2tlbiB3aGVuIGRvaW5nCgkgIEVPUyBwcm9jZXNzaW5nIG9uIGxpbmtlZCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzcwCgoyMDE2LTAzLTE1IDE2OjM3OjMzICswMTAwICBSb21haW4gUGljYXJkIDxyb21haW4ucGljYXJkQG9ha2JpdHMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFsbG93IGNhcHMgcXVlcnkgaW4gImhhdmUtdHlwZSIgc2lnbmFsIGhhbmRsZXJzCgkgIElmIGFuIGFwcGxpY2F0aW9uIGNhbGxzIGdzdF9wYWRfcXVlcnlfY2FwcyBmcm9tIGl0cyAiaGF2ZS10eXBlIiBzaWduYWwgaGFuZGxlciwKCSAgdGhlbiB0aGUgcXVlcnkgZmFpbHMgYmVjYXVzZSB0eXBlZmluZC0+Y2FwcyBoYXMgbm90IGJlZW4gc2V0IHlldC4KCSAgVGhpcyBwYXRjaCBzZXRzIHR5cGVmaW5kLT5jYXBzIGluIHRoZSBvYmplY3QgbWV0aG9kIGhhbmRsZXIsIGJlZm9yZSB0aGUgc2lnbmFsCgkgIGhhbmRsZXJzIGFyZSBjYWxsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCj09PSByZWxlYXNlIDEuNy45MSA9PT0KCjIwMTYtMDMtMTUgMTE6NTY6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjkxCgoyMDE2LTAzLTE1IDExOjQ0OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3RyLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wMy0xNSAxMTozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAzLTExIDE0OjE3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgoyMDE2LTAzLTEzIDEwOjMzOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZWNoZWNrIGFmdGVyIHByZV9wdXNoX2ZyYW1lKCkgaWYgdGhlcmUgYXJlIHRhZ3MgcGVuZGluZwoJICBNYW55IHBhcnNlcnMgYXJlIHN0b3JpbmcgdGFncyBvbmx5IGluIHByZV9wdXNoX2ZyYW1lKCksIGlmIHdlIHdvdWxkbid0IGNoZWNrCgkgIGFmdGVyd2FyZHMgd2Ugd291bGQgcHVzaCBidWZmZXJzIGJlZm9yZSB0aG9zZSB0YWdzIGFuZCBhIGxvdCBvZiBjb2RlIGFzc3VtZXMgdGhhdAoJICB0YWdzIGFyZSBhdmFpbGFibGUgYmVmb3JlIHByZXJvbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NTMKCjIwMTYtMDMtMTQgMTE6MTU6MDcgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogRml4IGNvbW1lbnQgdHlwbwoKMjAxNi0wMy0xMiAxMjo1NjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJldmVydCAidHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwODM1YzNkNjU2OWRkZTBlYzllNTUyNDQzNjM2N2M3Njc4Y2M0YTRhLgoJICBJdCBjYXVzZXMgZGVhZGxvY2tzIGluIGRlY29kZWJpbiwgd2hpY2ggY3VycmVudGx5IHdvdWxkIGRlYWRsb2NrIGlmIHRoZSBjYXBzCgkgIGFyZSBhbHJlYWR5IG9uIHRoZSBwYWQgaW4gaGF2ZS10eXBlIGFuZCBhcmUgZm9yd2FyZGVkIHdoaWxlIGNvcHlpbmcgdGhlIHN0aWNreQoJICBldmVudHMgKHdoaWxlIGhvbGRpbmcgdGhlIGRlY29kZWJpbiBsb2NrKS4uLiBhcyB0aGF0IG1pZ2h0IGNhdXNlIHRoZSBuZXh0CgkgIGVsZW1lbnQgdG8gZXhwb3NlIHBhZHMsIHdoaWNoIHRoZW4gY2FsbHMgYmFjayBpbnRvIGRlY29kZWJpbiBhbmQgdGFrZXMgdGhlCgkgIGRlY29kZWJpbiBsb2NrLgoJICBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMTYtMDMtMTEgMTQ6MTc6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCjIwMTYtMDMtMTAgMTA6MzU6NDAgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZG9jczogRmxlc2ggb3V0IGVsZW1lbnQgYW5kIG9iamVjdCBtYWNybyBhY2Nlc3NvciBkb2NzIGEgYml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyMTMKCjIwMTYtMDMtMDkgMTY6MDY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFJlbW92ZSBzb21lIG9ic29sZXRlIGNvZGUgdGhhdCBjYW4gY2F1c2Ugd2FybmluZ3MKCjIwMTYtMDMtMDkgMTM6NDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERvbid0IHJlc2V0IGNhbGlicmF0aW9uIG9mIGludGVybmFsIGNsb2NrIHdoZW5ldmVyIGEgbmV3IG5ldGNsaWVudCBjbG9jayBpcyBjcmVhdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMzMjUKCjIwMTYtMDMtMDQgMTg6MjM6MTggKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogZml4IEdzdFBhcmVudEJ1ZmZlck1ldGEgR1R5cGUgbmFtZQoJICBUaGUgYWxpYXMgZGVmaW5lIEdTVF9UWVBFX1BBUkVOVF9CVUZGRVJfTUVUQV9BUElfVFlQRSBpcyB3cm9uZyBhbmQKCSAgYnJlYWtzIHRoZSB1c2FnZSBvZiBnc3RfYnVmZmVyX2dldF9wYXJlbnRfYnVmZmVyX21ldGEoKS4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgR1R5cGUgYWxpYXMgYW5kIG1ha2UgYW5vdGhlciBhbGlhcyB0byBrZWVwIHRoZSBBUEkKCSAgY29tcGF0aWJpbGl0eSBndWFyZGVkIGJ5IEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQuCgkgIEFsc28gYWRkZWQgYSB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMxMTIKCjIwMTYtMDMtMDIgMTA6Mzc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogUmVtb3ZlIHVzZWxlc3MgTlVMTCBjaGVjayBhbmQgYWRkIGFzc2VydGlvbiBmb3IgbWFraW5nIGFzc3VtcHRpb25zIGV4cGxpY2l0CgkgIGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCkgaXMgbm90IHJldHVybmluZyBOVUxMIGluIGFueSB2YWxpZCBzY2VuYXJpb3MsCgkgIGNoZWNraW5nIGZvciBOVUxMIGhlcmUgaXMgdXNlbGVzcy4gRXNwZWNpYWxseSBiZWNhdXNlIHdlIHdvdWxkIGRlcmVmZXJlbmNlIGFueQoJICBOVUxMIHJpZ2h0IGFmdGVyIHRoZSBOVUxMIGNoZWNrIGFnYWluLgoJICBDSUQgMTM1MjAzNy4KCSAgV2UgcHJldmlvdXNseSBjaGVjayBpZiB0aGUgc3RyaW5nIGVuZHMgb24gLmNsYXNzLCBhcyBzdWNoIHN0cnJjaHIoKSBzaG91bGQKCSAgcmV0dXJuIHNvbWV0aGluZyBub24tTlVMTC4gQWRkIGFuIGFzc2VydGlvbiBmb3IgdGhhdC4KCSAgQ0lEIDEzNDk2NDIuCgoyMDE2LTAzLTAxIDE5OjUwOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWlub3IgZG9jcyBmaXgKCSAgTWFrZSBndGstZG9jIGhhcHB5LgoKPT09IHJlbGVhc2UgMS43LjkwID09PQoKMjAxNi0wMy0wMSAxODoxNDowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuOTAKCjIwMTYtMDMtMDEgMTY6NTI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMi0yOSAyMzozMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIFJldmVydCAiYnVzOiBjaGFuZ2UgR3N0QnVzU291cmNlIHRvIGhvbGQgYSB3ZWFrIHJlZiB0byBHc3RCdXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODk0YzY3ZTY0MmMwZjg1OGI1YjE4MDk3ZmE3Yzk5NWJmM2NjNTBjMS4KCjIwMTYtMDItMjkgMjM6MzI6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBNYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBHUG9sbEZEIGZyb20gdGhlIEdTb3VyY2VzIHdoZW4gZGVzdHJveWluZyB0aGUgYnVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwYTcwODJjMTQ1MDU3Y2NjMGJlNzYzMDY3YmNjMjYzMjM5ZWIuCgoyMDE2LTAyLTI5IDE3OjA2OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogUmVtb3ZlIEdTVF9TVEFURV9MT0NLX0ZVTEwoKSAvIFVOTE9DS19GVUxMKCkKCSAgVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBBUEkgZm9yIHRoYXQgaW4gR0xpYiBhbmQgbm9ib2R5IGNvdWxkJ3ZlIGV2ZXIgdXNlZAoJICB0aGVzZSBtYWNyb3Mgd2l0aG91dCBjb21waWxlciBlcnJvcnMgYW55d2F5LgoKMjAxNi0wMi0yOSAxMDowMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBNYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBHUG9sbEZEIGZyb20gdGhlIEdTb3VyY2VzIHdoZW4gZGVzdHJveWluZyB0aGUgYnVzCgkgIE90aGVyd2lzZSB0aGUgR1NvdXJjZSBjYW4gbG9vayBpbnRvIG91ciBhbHJlYWR5IGRlc3Ryb3llZCBidXMgd2hlcmUgdGhlCgkgIEdQb2xsRkQgaXMgc3RvcmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyODQ5CgoyMDE2LTAyLTI5IDExOjA2OjUwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBnaG9zdHBhZDogRml4IG1lbW9yeSBsZWFrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyODQ1CgoyMDE2LTAyLTI4IDEzOjU5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIGd1YXJkIHRvIGNoZWNrIHdyaXRhYmlsaXR5IHdoZW4gcmVtb3ZpbmcgdGFncyBmcm9tIGEgdGFnbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzkzCgoyMDE2LTAyLTI3IDE1OjM2OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc3OAoKMjAxNi0wMi0yNyAxNToyODo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBQcmV0dHkgbXVjaCBldmVyeSBzaW5nbGUgZWxlbWVudCBkb2VzCgkgIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUgKGVsZW1lbnRfY2xhc3MsCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCAoJnNvbWVfdGVtcGwpKTsKCSAgd2hpY2ggaXMgYm90aCBjb25mdXNpbmcgYW5kIHVubmVjZXNzYXJ5LiBXZSBtaWdodCBqdXN0CgkgIGFzIHdlbGwgYWRkIGEgZnVuY3Rpb24gdG8gZG8gdGhhdCBpbiBvbmUgc3RlcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc3OAoKMjAxNi0wMi0yNyAxNTozMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggaW5kZW50YXRpb24KCjIwMTYtMDItMjYgMTI6NDA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI2NGYwM2YgdG8gNmYyZDIwOQoKMjAxNi0wMi0yNSAyMjozNjoxNCArMDAwMCAgSmFtZXMgU3RldmVuc29uIDxqYW1lc0BzdGV2Lm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBQcmV2ZW50IGdzdF9idXNfYWRkX3dhdGNoX2Z1bGxfdW5sb2NrZWQgZnJvbSBhIHNlZ2ZhdWx0IGlmIHByaXYtPnBvbGwgPT0gTlVMTAoJICBUaGlzIGhhcHBlbnMgaWYgdGhlIHByb2Nlc3MgcnVucyBvdXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4gQmV0dGVyIHByaW50CgkgIGEgY3JpdGljYWwgd2FybmluZyBpbnN0ZWFkIG9mIGp1c3QgY3Jhc2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3MDIKCjIwMTYtMDItMjQgMTA6NTY6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJ1czogY2hhbmdlIEdzdEJ1c1NvdXJjZSB0byBob2xkIGEgd2VhayByZWYgdG8gR3N0QnVzCgkgIFdoZW4gaG9sZGluZyBhIHJlZ3VsYXIgcmVmIGl0IHdpbGwgY2F1c2UgdGhlIEdzdEJ1cyB0byBuZXZlcgoJICByZWFjaCAwIHJlZmVyZW5jZXMgYW5kIGl0IHdvbid0IGJlIGRlc3Ryb3llZCB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uCgkgIGV4cGxpY2l0bHkgY2FsbHMgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKCkuCgkgIFN3aXRjaGluZyB0byB3ZWFrcmVmIHdpbGwgYWxsb3cgdGhlIEdzdEJ1cyB0byBiZSBkZXN0cm95ZWQuCgkgIFRoZSBhcHBsaWNhdGlvbiBpcyBzdGlsbCByZXNwb25zaWJsZSBmb3IgZGVzdHJveWluZyB0aGUKCSAgR1NvdXJjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjU1MgoKMjAxNi0wMi0yNSAxNDoxMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEFkZCBhICIgIiBhZnRlciBwdHM6IGluIHRoZSBzaWxlbnQ9ZmFsc2Ugb3V0cHV0CgoyMDE0LTA0LTE2IDExOjQyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBleGFtcGxlcyB0byBjaGVjayBmb3IgZ3N0X2J1ZmZlcl9tYXAgcmV0dXJuIHZhbHVlcwoJICBPdGhlcndpc2UgcGVvcGxlIHJlYWRpbmcgdGhlIG1hbnVhbCB3aWxsIGV4cGVjdCBpdCB0byBhbHdheXMKCSAgc3VjY2VlZCA6KQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE0LTA0LTE2IDExOjQwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X2J1ZmZlcl9tYXAKCSAgV2UgY2FuJ3QgY2hlY2sgY29udGVudHMgaWYgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNC0wNC0xNiAxMTozOToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6IENoZWNrIHJldHVybiB2YWx1ZXMgb2YgZ3N0X2J1ZmZlcl9tYXAoKQoJICBUaGV5IGNhbiBmYWlsIGZvciB2YXJpb3VzIHJlYXNvbnMuCgkgIEZvciBub24tZmF0YWwgY2FzZXMgKHN1Y2ggYXMgdGhlIGR1bXAgZmVhdHVyZSBvZiBpZGVudGl5IGFuZCBmYWtlc2luayksCgkgIHdlIGp1c3Qgc2lsZW50bHkgc2tpcCBpdC4KCSAgRm9yIG90aGVyIGNhc2VzIHBvc3QgYW4gZXJyb3IgbWVzc2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNi0wMi0yMyAxNzoyMzo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X21lbW9yeV9tYXAoKQoJICBPbmx5IGRvIG1lbW9yeSBvcGVyYXRpb25zIGlmIHRoZSBtZW1vcnkgd2FzIHN1Y2Nlc2Z1bGx5IG1hcCdlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE1LTEyLTEwIDE1OjMyOjI3ICswMTAwICBBZGFtIE1pYXJ0dXMgPGFkYW0ubWlhcnR1c0BzdHJlYW11bmxpbWl0ZWQuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIEdTVF9UQUdfQ09ORFVDVE9SCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBtZXRhZGF0YSB3aGljaCBleHBsaWNpdGVseSBkaXN0aW5ndWlzaGVzCgkgIGJldHdlZW4gYXJ0aXN0L2NvbXBvc2VyIGFuZCBjb25kdWN0b3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI0NTAKCjIwMTYtMDItMjIgMTQ6MDk6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uIG9uIHN0cmVhbS1pZAoJICAuLi4gd2hlcmUgaXQgbWlnaHQgZW5kIHVwIGJlaW5nIHVzZWQgZm9yLgoKMjAxNi0wMS0yMiAxMToyNTozMCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogSW5pdGlhbGl6ZSBHc3RUcmFjZXIgX3ByaXZfdHJhY2VycyBhbmQgcXVhcmtzIHVuY29uZGl0aW9ubmFsbHkKCSAgU29tZSBwZW9wbGUgbWlnaHQgdXNlIHRyYWNlciBob29rcyBldmVuIGlmIEdTVF9UUkFDRVJfUExVR0lOUyBpcyBub3QKCSAgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/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+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgdG8gZ2l0CgoyMDE1LTExLTEwIDEyOjM4OjU5IC0wNTAwICBYYXZpZXIgQ2xhZXNzZW5zIDx4YXZpZXIuY2xhZXNzZW5zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBjb3JlOiBBZGQgZ19hdXRvcHRyKCkgc3VwcG9ydCB0byBhbGwgdHlwZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDQ2NAoKMjAxNS0xMi0xNCAxMzowNjo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogQ2hlY2sgaWYgcGFyc2luZyB0aGUgbmFtZSB0ZW1wbGF0ZSB3aXRoIHNzY2FuZigpIHdhcyBzdWNjZXNzZnVsCgkgIElmIG5vdCwgZ28gYmFjayB0byB0aGUgYXV0b21hdGljIHBhZCBudW1iZXJpbmcuCgkgIENJRCAxMTk1MTI5CgoyMDE1LTEyLTE0IDExOjIwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWUvbXVsdGlxdWV1ZTogRG9uJ3Qgc3BlY2lhbC1jYXNlIENBUFMgZXZlbnRzIGluIHRoZSBldmVudCBoYW5kbGVycwoJICBGb3IgQ0FQUyBldmVudHMgd2Ugd2lsbCBuZXZlciBldmVyIGhhdmUgYSBGQUxTRSByZXR1cm4gdmFsdWUgaGVyZSwgc28ganVzdAoJICByZW1vdmUgdGhlIGRlYWQgY29kZSBpbnN0ZWFkIG9mIGNhdXNpbmcgZnV0dXJlIGNvbmZ1c2lvbi4KCjIwMTUtMTItMTQgMTE6MTY6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAicXVldWU6IElsbGVnYWwgbWVtb3J5IGFjY2VzcyBvZiBzaW5rIGV2ZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc4NjE0YzUwNWEyYTc2MWNiNGRjYjdmNGU1ZjNlOWY5N2M5YThlODguCgkgIFRoZSBjb2RlIGl0IHdhcyBmaXhpbmcgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IGFueXdheSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIHRoZSBuZXh0IGNvbW1pdC4KCjIwMTUtMTItMTQgMTA6MzI6MTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBJbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mgb2Ygc2luayBldmVudAoJICBPbmNlIGV2ZW50IGlzIHB1c2hlZCB0byBwYWQsIHRoZW4gcXVldWUgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGV2ZW50LgoJICBUaGlzIGlzIGxlYWRpbmcgdG8gaW52YWxpZCByZWFkIHZhbGdyaW5kIGVycm9ycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDMwCgoyMDE1LTEyLTE0IDEwOjEwOjA0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVW5yZWYgZXZlbnQgaWYgR3N0RWxlbWVudDo6c2VuZF9ldmVudCgpIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBPdGhlcndpc2Ugd2UnbGwgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IG9ubHkgaWYgaXQncyBpbXBsZW1lbnRlZCwgYW5kCgkgIGxlYWsgdGhlIGV2ZW50IGluIGFsbCBvdGhlciBzaXR1YXRpb25zLgoKMjAxNS0xMi0xNCAxMDowNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBkeW5hbWljIHBpcGVsaW5lIGV4YW1wbGUKCSAgVXNlIEdTVF9QQURfUFJPQkVfUEFTUyB0byBwYXNzIHRocm91Z2ggYWxsIGV2ZW50cyBvdGhlciB0aGFuIEVPUyBpbnN0ZWFkIG9mCgkgIGJsb2NraW5nIG9uIHRoZSBmaXJzdCBub24tRU9TIGV2ZW50IGZvcmV2ZXIuIEFsc28gZml4IGEgdHlwbyBpbiBhIGNvbW1lbnQgaW4KCSAgdGhhdCBmdW5jdGlvbi4KCSAgVGhhbmtzIHRvIERhdmlkIEphZ2dhcmQgZm9yIHJlcG9ydGluZyB0aGlzIG9uIHRoZSBtYWlsaW5nIGxpc3QuCgoyMDE1LTEyLTEzIDAwOjM3OjM5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogIHR5cG8gaW4gdGhlIGxvY2F0aW9uIG9mIG1ha2VfZWxlbWVudCB0b29sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzNTIKCjIwMTUtMTItMTIgMDE6MTM6NTkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGRyb3AgdW5uZWVkZWQgbWFjcm9zIGZvciBHX09TX1dJTjMyCgoyMDE1LTEyLTEyIDAxOjA5OjIwIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBkcm9wIHVubmVlZGVkIG1hY3JvcyBmb3IgR19PU19XSU4zMgoKMjAxNS0xMi0xMiAwMTowNjo0MyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjI6MTQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjA6NTI6NTcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHNvbWUgdHlwb3MKCjIwMTUtMTItMTEgMjA6NDI6MDUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMTk6MTE6MDEgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGZpeCBzb21lIHR5cG9zCgoyMDE1LTEyLTExIDE4OjU5OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAxNDozNjoyOSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGRyb3AgYm9ndXMgcmVmZXJlbmNlIHRvIGZpbGUgZGVzY3JpcHRvcgoJICArZml4IHR5cG8gb24gcmV0dXJuIHZhbHVlIGNvbW1lbnQKCjIwMTUtMTItMTEgMTQ6MDc6MjcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMCAxNDozMjoyNyArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVucmVmIG1lc3NhZ2UgaW4gX3Bvc3RfbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIGltcGxlbWVudGF0aW9uCgkgICdnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UnIHRha2VzIHRoZSBvd25lcnNoaXAgb2YgdGhlIG1lc3NhZ2UsIHNvIGl0CgkgIHNoYWxsIHVucmVmIGl0IHdoZW4gdGhlcmUgaXMgbm8gcG9zdF9tZXNzYWdlIGltcGxlbWVudGF0aW9uLiBPdGhlcndpc2UKCSAgbWVzc2FnZSBpcyBsZWFrZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzMDAKCjIwMTUtMTItMTAgMTE6MzU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQKCSAgVGhpcyBsb2NrIHNlZW1zIHRvIGV4aXN0IG9ubHkgdG8gcHJldmVudCBlbGVtZW50cyBmcm9tIGNoYW5naW5nIHN0YXRlcyB3aGlsZQoJICBldmVudHMgYXJlIGJlaW5nIHByb2Nlc3NlZC4gSG93ZXZlciBldmVudHMgYXJlIGdvaW5nIHRvIGJlIHByb2Nlc3NlZAoJICBub25ldGhlbGVzcyBpbiB0aG9zZSBlbGVtZW50cyBpZiBzZW50IGRpcmVjdGx5IHZpYSBwYWRzLCBzbyBwcm90ZWN0aW9uIG11c3QKCSAgYWxyZWFkeSBiZSBpbXBsZW1lbnRlZCBpbnNpZGUgdGhlIGVsZW1lbnRzIGZvciBldmVudCBoYW5kbGluZyBpZiBpdCBpcyBuZWVkZWQuCgkgIEFzIHN1Y2ggaGF2aW5nIHRoZSBsb2NrIGhlcmUgaXMgbm90IHZlcnkgdXNlZnVsIGFuZCBpcyBhY3R1YWxseSBjYXVzaW5nCgkgIHZhcmlvdXMgZGVhZGxvY2tzIGluIGRpZmZlcmVudCBzaXR1YXRpb25zIGFzIGRlc2NyaWJlZCBpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MDQwCgoyMDE1LTEyLTA3IDIwOjI3OjQ1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMDMgMTU6MDQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTAzIDE1OjAxOjI3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IGluZGVudGF0aW9uIGZpeGVzCgoyMDE1LTEyLTA5IDE3OjQwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHVzZSByYW5kb20gc2VnbWVudC5wb3NpdGlvbiBmcm9tIHVwc3RyZWFtCgkgIHNlZ21lbnQucG9zaXRpb24gaXMgbWVhbnQgZm9yIGludGVybmFsIHVzYWdlIG9ubHksIGJ1dCB0aGUgdmFyaW91cwoJICBHU1RfRVZFTlRfU0VHTUVOVCBjcmVhdGlvbmcvcGFyc2luZyBmdW5jdGlvbnMgd29uJ3QgY2xlYXIgdGhhdCBmaWVsZC4KCSAgVXNlIHRoZSBhcHByb3ByaWF0ZSBzZWdtZW50IGJvdW5kYXJ5IGFzIGFuIGluaXRpYWwgdmFsdWUgaW5zdGVhZAoKMjAxNS0xMi0wNyAxNzoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQb3N0IGEgTEFURU5DWSBtZXNzYWdlIHdpdGggYXN5bmMtaGFuZGxpbmc9VFJVRSBpZiB0aGUgUExBWUlORyBzdGF0ZSBpcyByZWFjaGVkCgkgIE90aGVyd2lzZSBlYWNoIGJpbiBtaWdodCBoYXZlIGEgZGlmZmVyZW50IGxhdGVuY3kgaW4gdGhlIGVuZCwgY2F1c2luZwoJICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMuCgkgIFRoZSBiaW4gd2lsbCBzdGlsbCBmaXJzdCBoYW5kbGUgbGF0ZW5jeSBpbnRlcm5hbGx5IGFzIGJlZm9yZSwgYnV0IGdpdmVzIHRoZQoJICBvdmVyYWxsIHBpcGVsaW5lIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlIGxhdGVuY3kgb2YgdGhlIHdob2xlIHBpcGVsaW5lCgkgIGFmdGVyd2FyZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkxMjUKCjIwMTUtMTItMDcgMTg6MjA6MzUgKzAyMDAgIEF0aGFuYXNpb3MgT2lrb25vbW91IDxhdGhvaWtAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IHRhZyBsaXN0IHdoZW4gYXZnIGJpdHJhdGUgY2hhbmdlcyBhdCBsZWFzdCAyJQoJICBXYXRjaGluZyB2aWRlb3Mgd2l0aCB2YXJpYW50IGJpdHJhdGUgaXMgY29tbW9uIHRvIGhhdmUgZGVsdGEKCSAgbW9yZSB0aGFuIDEwIGticHMsIHJlc3VsdGluZyBpbiB0YWcgbGlzdCBzcGFtLgoJICBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gZml4ZWQgMTAga3BicyBkZWx0YSwgaXQgaXMgYmV0dGVyIHRvCgkgIGNhbGN1bGFsZSB0aGUgZGlmZmVyZW5jZSBpbiBwZXJjZW50YWdlIGFuZCB1cGRhdGUgdGFnIGxpc3QKCSAgb25seSB3aGVuIGJpdHJhdGUgY2hhbmdlcyBtb3JlIHRoYW4gMiUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwNTUKCjIwMTUtMTItMDcgMDk6MDg6MDEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMzE5OTA5IHRvIDg2ZTQ2NjMKCjIwMTUtMTItMDcgMTI6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDaGVjayBmb3IgYW4gYWN0aXZhdGVkIHBhZCBiZWZvcmUgYWRkaW5nLCBub3QgYSBub24tZmx1c2hpbmcgb25lCgkgIFRoZSBwYWQgY291bGQgYmUgYWN0aXZhdGVkIGJ1dCBmbHVzaGluZyBiZWNhdXNlIG9mIGEgRkxVU0hfU1RBUlQgZXZlbnQuIFRoYXQncwoJICBub3Qgd2hhdCB3ZSdyZSBsb29raW5nIGZvciBoZXJlLCB3ZSB3YW50IHRvIGNoZWNrIGZvciBhY3RpdmF0ZWQgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODkyOAoKMjAxNS0xMS0xOSAxNTozMzowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBmdW5uZWw6IHJlbW92ZSBzdGF0ZSBjaGFuZ2UgZnJvbSBzdHJlc3MgdGVzdHMKCSAgQ2hhbmdpbmcgc3RhdGVzIHVwIGFuZCBkb3duIHdoaWxlIGJ1ZmZlcnMgYXJlIGJlaW5nIHB1c2hlZCBpcyBub3QKCSAgYSB2YWxpZCB1c2UgY2FzZS4gSWYgYSBwYWQgaXMgZGVhY3RpdmF0ZWQgYW5kIHJlYWN0aXZhdGVkIGR1cmluZwoJICBhIGJ1ZmZlciBwdXNoIGl0IGlzIHJhY3kgd2l0aCB0aGUgY2hlY2sgb2YgcHVzaGVkIHN0aWNreSBldmVudHMKCSAgYW5kIHRoZSBhY3R1YWwgY2hhaW5mdW5jdGlvbiBjYWxsLiBBcyBpdCBtaWdodCBjYWxsIHRoZSBjaGFpbgoJICB3aXRob3V0IG5vdGljaW5nIHRoZSBwZWVyIHBhZCBsb3N0IGl0cyBwcmV2aW91cyBzdGlja3kgZXZlbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MzQwCgoyMDE1LTEyLTA0IDEwOjIyOjU2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHByb2Nlc3MgcmV0dXJuIHZhbHVlIG9uIGVycm9yCgkgIEluIGNhc2Ugb2YgYSBydW4tdGltZSBlcnJvciBtZXNzYWdlLCB0aGUgcHJvY2VzcyByZXR1cm4gdmFsdWUgd2FzIGxlZnQKCSAgdW5zZXQuIFRoaXMgd291bGQgbGVhZCB0byBlcnJvciBub3QgYmVpbmcgY2F1Z2h0IGF0IHNoZWxsIGxldmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDE5CgoyMDE1LTEyLTA0IDEwOjQ1OjI1IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogZ3N0LWxhdW5jaDogcmV0dXJuIG5vbi0wIGV4aXQgY29kZSBvbiBhc3luYyBlcnJvciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyZWU0Y2JhMjQ4NWQ3ZjE2NDZkNDhlNDU1OTQyNmFlZDRiYTk5Yzg1LgoKMjAxNS0xMi0wNCAxNTowOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHJldHVybiBub24tMCBleGl0IGNvZGUgb24gYXN5bmMgZXJyb3IKCSAgV2hlbiBhbiBlcnJvciBoYXBwZW5zIGluIHBsYXlpbmcgc3RhdGUsIHN0aWxsIHJldHVybiBhCgkgIG5vbi0wIGV4aXQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTAxOQoKMjAxNS0xMi0wNCAxNDozOToyOSArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlYWxseSBmaXggaW5zdGFsbCByYWNlCgkgIE15IHByZXZpb3VzIGZpeCBmb3IgIzc1ODAyOSB3YXNuJ3QgcXVpdGUgcmlnaHQgYW5kIHNpbXBseSBtYWRlIHRoZSByYWNlIHJhcmVyLgoJICBTb21lIG9mIHRoZSBmaWxlcyBhcmUgaW5zdGFsbGVkIGJ5IGluc3RhbGwtZXhlYyBhbmQgb3RoZXJzIGJ5IGluc3RhbGwtZXhlYywgc28KCSAgdGhlIGhvb2tzIG5lZWQgdG8gYmUgc3BsaXQgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDI5CgoyMDE1LTEyLTA0IDExOjU2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGRvY3MKCSAgVGhlIGFsbG9jYXRpb24gcXVlcnkgaGFzIHBhcmFtZXRlcnMgd2l0aCB0aGUgbWV0YSBBUEksIG5vdCBmbGFncy4KCjIwMTUtMTItMDIgMTU6MDI6MjUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIERyb3AgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBnLWlyLXNjYW5uZXIgLS1zdHJpcC1wcmVmaXggZmxhZwoKMjAxNS0xMi0wMiAxNjoyODoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggc2V0L2dldCBwcm9wZXJ0eQoJICBCbGFtZSBpdCBvbiB0aGUgcmViYXNpbmcgOikKCjIwMTUtMTEtMTIgMTc6MTU6MzcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogSW1wbGVtZW50IEdzdFBhZEV2ZW50RnVsbEZ1bmN0aW9uCgkgIEFQSTogR3N0UGFkRXZlbnRGdWxsRnVuY3Rpb24KCSAgUmV0dXJucyBhIEdzdEZsb3dSZXR1cm4sIGFsbG93cyBhc3luY2hyb25vdXMgZWxlbWVudHMgdG8gcHJvcGVybHkKCSAgcHJvcGFnYXRlIGZsb3cgcmV0dXJucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3ODIxCgoyMDE1LTExLTMwIDE3OjA5OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2Ugc2lnbmVkIGNsb2NrIHZhbHVlcyBmb3IgcnVubmluZyB0aW1lIGNhbGN1bGF0aW9uCgkgIFRoaXMgaW1wcm92ZXMgdGhlIGFjY3VyYWN5IG9mIHF1ZXVlIGxldmVscyBhbmQgd2hlbiB0byBwdXNoIGJ1ZmZlcnMKCSAgZm9yIGJ1ZmZlcnMgZmFsbGluZyBvdXRzaWRlIG9mIHRoZSBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTMKCjIwMTUtMTEtMjcgMDk6NDU6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBhbiBleHRyYSBjYWNoZSB0aW1lIGZvciB1bmxpbmtlZCBzdHJlYW1zCgkgIFdoZW4gc3luY2hyb25pemluZyB0aGUgb3V0cHV0IGJ5IHRpbWUsIHRoZXJlIGFyZSBzb21lIHVzZS1jYXNlcyAobGlrZQoJICBhbGxvd2luZyBnYXBsZXNzIHBsYXliYWNrIGRvd25zdHJlYW0pIHdoZXJlIHdlIHdhbnQgdGhlIHVubGlua2VkIHN0cmVhbXMKCSAgdG8gc3RheSBzbGlnaHRseSBiZWhpbmQgdGhlIGxpbmtlZCBzdHJlYW1zLgoJICBUaGUgInVubGlua2VkLWNhY2hlLXRpbWUiIHByb3BlcnR5IGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IGJ5IGhvdwoJICBtdWNoIHRpbWUgdGhlIHVubGlua2VkIHN0cmVhbXMgc2hvdWxkIHdhaXQgYmVmb3JlIHB1c2hpbmcgYWdhaW4uCgoyMDE1LTEwLTI2IDA4OjA2OjAxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBPcHRpbWl6ZSBtdWx0aXF1ZXVlIHNpemVzIGJhc2VkIG9uIGludGVybGVhdmUKCSAgTXVsdGlxdWV1ZSBzaG91bGQgb25seSBiZSB1c2VkIHRvIGNvcGUgd2l0aDoKCSAgKiBkZWNvdXBsaW5nIHVwc3RyZWFtIGFuZCBkb3dzdHJlYW0gdGhyZWFkaW5nIChpLmUuIGhhdmluZyBzZXBhcmF0ZSB0aHJlYWRzCgkgIGZvciBlbGVtZW50YXJ5IHN0cmVhbXMpLgoJICAqIEVuc3VyaW5nIGluZGl2aWR1YWwgcXVldWVzIGhhdmUgZW5vdWdoIHNwYWNlIHRvIGNvcGUgd2l0aCB1cHN0cmVhbSBpbnRlcmxlYXZlCgkgIChkaXN0YW5jZSBpbiBzdHJlYW0gdGltZSBiZXR3ZWVuIGNvLWxvY2F0ZWQgc2FtcGxlcykuIFRoaXMgaXMgdG8gZ3VhcmFudGVlCgkgIHRoYXQgd2UgaGF2ZSBlbm91Z2ggcm9vbSBpbiBlYWNoIGluZGl2aWR1YWwgcXVldWVzIHRvIHByb3ZpZGUgbmV3IGRhdGEgaW4KCSAgZWFjaCwgd2l0aG91dCBiZWluZyBibG9ja2VkLgoJICAqIExpbWl0IHRoZSBxdWV1ZSBzaXplcyB0byB0aGF0IGludGVybGVhdmUgZGlzdGFuY2UgKGFuZCBhbiBleHRyYSBtaW5pbWFsCgkgIGJ1ZmZlcmluZyBzaXplKS4gVGhpcyBpcyB0byBlbnN1cmUgd2UgZG9uJ3QgY29uc3VtZSB0b28gbXVjaCBtZW1vcnkuCgkgIEJhc2VkIG9uIHRoYXQsIG11bHRpcXVldWUgbm93IGNvbnRpbnVvdXNseSBjYWxjdWxhdGVzIHRoZSBpbnB1dCBpbnRlcmxlYXZlCgkgIChwZXIgaW5jb21pbmcgc3RyZWFtaW5nIHRocmVhZCkuIEJhc2VkIG9uIHRoYXQsIGl0IGNhbGN1bGF0ZXMgYSB0YXJnZXQKCSAgaW50ZXJsZWF2ZSAoY3VycmVudGx5IDEuNSB4IHJlYWxfaW50ZXJsZWF2ZSArIDI1MG1zIHBhZGRpbmcpLgoJICBJZiB0aGUgdGFyZ2V0IGludGVybGVhdmUgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IG1heF9zaXplLnRpbWUsIGl0IHdpbGwKCSAgdXBkYXRlIGl0IGFjY29yZGluZ2x5ICh0byBhbGxvdyBlbm91Z2ggbWFyZ2luIHRvIG5vdCBibG9jaykuCgkgIElmIHRoZSB0YXJnZXQgaW50ZXJsZWF2ZSBnb2VzIGRvd24gYnkgbW9yZSB0aGFuIDUwJSwgd2UgcmUtYWRqdXN0IGl0IG9uY2UKCSAgd2Uga25vdyB3ZSBoYXZlIGdvbmUgcGFzdCBhIHNhZmUgZGlzdGFuY2UgKDIgeCBjdXJyZW50IG1heF9zaXplLnRpbWUpLgoJICBUaGlzIG1vZGUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgaW5jb21pbmcgc3RyZWFtcyB0aGF0IGFyZSBndWFyYW50ZWVkIHRvIGJlCgkgIHByb3Blcmx5IHRpbWVzdGFtcGVkLgoJICBGdXJ0aGVybW9yZSwgd2UgaWdub3JlIHNwYXJzZSBzdHJlYW1zIHdoZW4gY2FsY3VsYXRpbmcgaW50ZXJsZWF2ZSBhbmQgbWF4aW11bQoJICBzaXplIG9mIHF1ZXVlcy4KCSAgRm9yIHRoZSBzaW1wbGVzdCBvZiB1c2UtY2FzZXMgKHNpbmdsZSBzdHJlYW0pLCBtdWx0aXF1ZXVlIGFjdHMgYXMgYSBzaW5nbGUKCSAgcXVldWUgd2l0aCBhIHRpbWUgbGltaXQgb2YgMjUwbXMuCgkgIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBpbnB1dHMsIGJ1dCBlYWNoIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBzdHJlYW1pbmcgdGhyZWFkLAoJICB0aGUgbWF4aW11bSB0aW1lIGxpbWl0IHdpbGwgYWxzbyBlbmQgdXAgYmVpbmcgMjUwbXMuCgkgIE9uIHJlZ3VsYXIgZmlsZXMgKG1vcmUgdGhhbiBvbmUgaW5wdXQgc3RyZWFtIGZyb20gdGhlIHNhbWUgdXBzdHJlYW0gc3RyZWFtaW5nCgkgIHRocmVhZCksIGl0IGNhbiByZWR1Y2UgdGhlIHRvdGFsIG1lbW9yeSB1c2VkIGFzIG11Y2ggYXMgMTB4LCBlbmRpbmcgdXAgd2l0aAoJICBtYXhfc2l6ZS50aW1lIGFyb3VuZCA1MDBtcy4KCSAgRHVlIHRvIHRoZSBhZGFwdGl2ZSBuYXR1cmUsIGl0IGNhbiBhbHNvIGNvcGUgd2l0aCBjaGFuZ2luZyBpbnRlcmxlYXZlICh3aGljaAoJICBjYW4gaGFwcGVuIGNvbW1vbmx5IG9uIHNvbWUgZmlsZXMgYXQgc3RhcnR1cC9wcmUtcm9sbCB0aW1lKQoKMjAxMy0wMS0wOCAyMToxNjo0MiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdXNlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQgc3BhcnNlIGZsYWcgdG8gYXZvaWQgb3ZlcnJlYWRpbmcgc3VidGl0bGVzCgkgIFRoaXMgd2lsbCBtZWFuIGEgbXVjaCBsb3dlciBkZWxheSBiZWZvcmUgYSBzdWJ0aXRsZXMgdHJhY2sgY2hhbmdlcyB0YWtlCgkgIGVmZmVjdC4gQWxzbyBhdm9pZHMgZXhjZXNzaXZlIG1lbW9yeSB1c2FnZSBpbiBtYW55IGNhc2VzLgoJICBUaGlzIHdpbGwgYWxzbyBjb25zaWRlciBzcGFyc2Ugc3RyZWFtcyBhcyAoaW5kaXZpZHVhbGx5KSBuZXZlciBmdWxsLCBzbwoJICBhcyB0byBhdm9pZCBibG9ja2luZyBhbGwgcGxheWJhY2sgZHVlIHRvIG9uZSBzcGFyc2Ugc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNjQ4CgoyMDE1LTEwLTMwIDEwOjIyOjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoaWdoX3RpbWUgY29tcHV0YXRpb24KCSAgKiBBdm9pZCB0aGUgY29tcHV0YXRpb24gY29tcGxldGVseSBpZiB3ZSBrbm93IHdlIGRvbid0IG5lZWQgaXQgKG5vdCBpbgoJICBzeW5jIHRpbWUgbW9kZSkKCSAgKiBNYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgaGlnaGVzdCB0aW1lIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSBvbgoJICB1bmxpbmtlZCBwYWRzCgkgICogRW5zdXJlIHRoZSBoaWdoX3RpbWUgZ2V0cyBwcm9wZXJseSB1cGRhdGVkIGlmIGFsbCBwYWRzIGFyZSBub3QgbGlua2VkCgkgICogRml4IHRoZSBjb21wYXJpc2lvbiBpbiB0aGUgbG9vcCB3aGV0aGVyIHRoZSB0YXJnZXQgaGlnaCB0aW1lIGlzIHRoZSBzYW1lCgkgIGFzIHRoZSBjdXJyZW50IHRpbWUKCSAgKiBTcGxpdCB3YWtlX3VwX25leHRfbm9uX2xpbmtlZCBtZXRob2QgdG8gYXZvaWQgdXNlbGVzcyBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MzUzCgoyMDE1LTExLTA2IDAzOjAyOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRG9uJ3QgcmVwb3J0IDAlIHVubGVzcyBlbXB0eQoJICBXaGVuIHByZXBhcmluZyBhIGJ1ZmZlcmluZyBtZXNzYWdlLCBkb24ndCByZXBvcnQgMCUgaWYgdGhlcmUKCSAgaXMgYW55IGJ5dGVzIGxlZnQgaW4gdGhlIHF1ZXVlIGF0IGFsbC4gV2Ugc3RpbGwgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHVzaCwgc28gZG9uJ3QgdGVsbCB0aGUgYXBwIHRvIHN0YXJ0IGJ1ZmZlcmluZyAtIG1heWJlCgkgIHdlJ2xsIGdldCBtb3JlIGRhdGEgYmVmb3JlIGFjdHVhbGx5IHJ1bm5pbmcgZHJ5LgoKMjAxNS0xMS0zMCAxNzoxMTozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEdTVF9TVElNRV9BUkdTCgkgIEl0IHdhc24ndCBwcm9wZXJseSBoYW5kbGluZyBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSBhbmQgYWx3YXlzIHVzZSB0aGUKCSAgc2lnbiBtYXJrZXIgKCsvLSkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgc2lnbmVkIHZhbHVlcyBpbgoJICBsb2dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg4NzAKCjIwMTUtMTEtMzAgMjM6MDg6NTAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IEFubm90YXRlIGdldF92YWx1ZVtfYXJyYXldIGFzIChtZXRob2QpCgkgIEFzIHRoZSBuYW1lcyBjbGFzaCB3aXRoIGdzdF9vYmplY3RfZ2V0X3ZhbHVlW19hcnJheV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njk1MAoKMjAxNS0xMS0xMyAxNzozMjo1NyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogQWRkIHByZWZpeCBzdXBwb3J0IHRvIGRlcGVuZGVuY2llcwoJICBUaGlzIGFkZHMgYSBuZXcgZmxhZ3MsIEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX0ZJTEVfTkFNRV9JU19QUkVGSVgsCgkgIHdoaWNoIGFsbG93IHVzaW5nIHRoZSBuYW1lcyBhcyBwcmVmaXggZm9yIHBsdWdpbiBkZXBlbmNpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODMKCjIwMTUtMTEtMTMgMTY6MzI6MzEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBBbGxvdyBkZXZpY2Ugbm9kZXMgYXMgZGVwZW5kZW5jeQoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgZmVhdHVyZSB0aGF0IGFyZSBwcm9kdWNlZCBhZnRlciBwcm9iaW5nIGEgc3BlY2lmaWMKCSAgbm9kZS4gWW91IHdhbnQgdG8gcmVsb2FkIHRoaXMgcGx1Z2luIGlmIHRoZSBzcGVjaWZpYyBub2RlKHMpIGhhdmUgYmVlbgoJICByZW1vdmVkLCBhZGRlZCwgb3IgcmVsb2FkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODAKCjIwMTUtMTEtMTMgMTY6MjA6NDIgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBEb24ndCBkbyBsb3NzeSBzaGlmdCBvbiBoYXNoCgkgIEluIHBsdWdpbiBpcyByZXNwb25zaWJsZSBmb3IgY2FsY3VsYXRpbmcgYSBoYXNoIG9mIHRoZSBkZXBlbmRlbmNpZXMKCSAgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjYWNoZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgb3Igbm90LgoJICBDdXJyZW50bHksIHRoZSBoYXNoIGNvbWJpbmluZyBtZXRob2QgcmVtb3ZlcyBhIGJpdCBvZiB0aGUgb3JpZ2luYWwKCSAgaGF2ZSBiZWZvcmUgY29tYmluaW5nIHdpdGggYW4gYWRkaXRpb24uIEFzIHdlIHVzZSAzMmJpdHMgZm9yIG91ciBoYXNoCgkgIGFuZCBzaGlmdCAxIGJpdCBmb3IgZWFjaCBmaWxlIGFuZCBkaXJlY3RvcnksIHRoYXQgcmVzdWx0aW5nIGhhc2ggb25seQoJICBhY2NvdW50IGZvciB0aGUgbGFzdCAzMiBmaWxlcy4gQW5kIGlzIG1vcmUgYWZmZWN0ZWQgYnkgdGhlIGxhc3QgZmlsZS4KCSAgUm90YXRpbmcgdGVjaG5pcXVlIChzaGlmdGluZywgYW5kIGFkZGluZyBiYWNrIHRoZSBlbmRpbmcgYml0KSwgY2FuIGJlCgkgIHVzZSB0byBtYWtlIHRoZSBhZGRpdGlvbiBub24tY29tbXV0YXRpdmUuIEluIGEgd2F5IHRoYXQgZGlmZmVyZW50IG9yZGVyCgkgIGdpdmVzIGRpZmZlcmVudCBoYXNoZXMuIEluIHRoaXMgY2FzZSwgSSBkb24ndCBwcmVzZXJ2ZSB0aGlzIGJlaGF2aW91cgoJICBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgZmlsZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBPUyBpcwoJICBpcnJlbGV2YW50LgoJICBJbiBtb3N0IGNhc2VzLCB0aGUgWE9SIG9wZXJhdGlvbiBpcyB1c2VkIHRvIGNvbWJpbmUgaGFzaGVzLiBJbiB0aGlzCgkgIGNvZGUgd2UgdXNlIHRoZSBhZGRpdGlvbi4gSSBkZWNpZGVkIHRvIHByZXNlcnZlIHRoZSBhZGRpdGlvbiBiZWNhdXNlCgkgIHdlIG1ha2UgdXNlIG9mIG5vbi1yYW5kb20gaGFzaCAoKGd1aW50KSAtMSkgaW4gdGhlIGFsZ29yaXRobSBmb3IKCSAgbWF0Y2hpbmcgZmlsZXMgdGhhdCBhcmUgbm90IHJlYWxseSBwYXJ0IG9mIHRoZSBoYXNoIChzeW1saW5rcywgc3BlY2lhbAoJICBmaWxlcykuIERvaW5nIHN1Y2Nlc3NpdmUgWE9SIG9uIHRoaXMgdmFsdWUsIHdpbGwgc2ltcGx5IHN3aXRjaCBmcm9tCgkgIGZ1bGwgb25lcywgdG8gZnVsbCB6ZXJvLiBUaGUgWE9SIHVzZWQgd2l0aCB3aGl0ZWxpc3QgaGFzIGJlZW4gcHJlc2VydmVkCgkgIGFzIGl0J3MgYmFzZWQgb24gYSBmYWlybHkgcmFuZG9taXplZCBoYXNoIChnX3N0cl9oYXNoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA3OAoKMjAxNS0xMS0yMyAyMTo0MDozNCArMDAwMCAgTHVrYXN6IEZvcnluc2tpIDxsdWthc3ouZm9yeW5za2lAeW91dmlldy5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIC1XcGVkYW50aWMgYW5kIGdjYyA1CgkgIEdzdHJlYW1lciBjb21waWxlZCB3aXRoIGdjYyA1LjIgYW5kIC1XcGVkYW50aWMgcHJvZHVjZXMgdGhlCgkgIGZvbGxvd2luZyB3YXJuaW5nOgoJICAnSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCAnX19GVU5DVElPTl9fJyBwcmVkZWZpbmVkIGlkZW50aWZpZXIgWy1XcGVkYW50aWNdCgkgIGNvbnN0IGNoYXIgKnMgPSBfX0ZVTkNUSU9OX187JwoJICBTaW5jZSBnY2MgNSBlbmFibGVzIEM5OSBieSBkZWZhdWx0LCB1c2UgX19mdW5jX18gaWYgaXQncyBhdmFpbGFibGUKCSAgaW5zdGVhZCBvZiB0aGUgbm9uLXN0YW5kYXJkIF9fRlVOQ1RJT05fXyAoYXMgc3VnZ2VzdGVkIGluIFsyXSkuCgkgIFsxXTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9nY2MtNS9jaGFuZ2VzLmh0bWwKCSAgWzJdOiBodHRwczovL2djYy5nbnUub3JnL2djYy01L3BvcnRpbmdfdG8uaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTQxCgoyMDE1LTExLTIwIDE5OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgY29udHJvbGxlcjogZml4IGFubm90YXRpb24gdG8gbWFrZSBnLWlyLXNjYW5uZXIgaGFwcHkKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDo1OTogV2FybmluZzogR3N0Q29udHJvbGxlcjogbWlzc2luZyAiOiIgYXQgY29sdW1uIDUxOgoJICAqIEBHU1RfSU5URVJQT0xBVElPTl9NT0RFX0NVQklDX01PTk86IChTaW5jZSAxLjgpIG1vbm90b25pYyBjdWJpYyBpbnRlcnBvbGF0aW9uLCB3aWxsIG5vdAoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOjU5OiBXYXJuaW5nOiBHc3RDb250cm9sbGVyOiB1bmtub3duIGFubm90YXRpb246IHNpbmNlCgoyMDE0LTA5LTI5IDE0OjAzOjEzICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBHU1RfVEFHX1BSSVZBVEVfREFUQQoJICBDYW4gYmUgdXNlZCB0byByZXByZXNlbnQgcHJpdmF0ZSBkYXRhIHRoYXQgbWF5IGJlCgkgIGNvbnRhaW5lZCBpbiB0YWdzLCBzdWNoIGFzIElEM3YyIFBSSVYgZnJhbWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTI2CgoyMDE1LTExLTE5IDAwOjUxOjQ0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+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+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1pbm9yIGRvY3MgZml4CgoyMDE0LTA5LTAzIDE3OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZml4IHR5cG8gaW4gc2FtcGxlIGNvZGUgaW4gZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1OTc1CgoyMDE0LTA4LTI1IDExOjM0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZCB0ZXN0CgkgIENoZWNrIHRoYXQgcHVzaGluZyBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCBkb2VzIG5vdCBjbGVhciB0aGUKCSAgZmx1c2hpbmcgZmxhZy4KCjIwMTQtMDgtMjEgMTU6NDk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGFjY2VwdCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZHMKCSAgSW5hY3RpdmUgcGFkcyBzaG91bGQgYXQgYWxsIHRpbWVzIGhhdmUgdGhlIGZsdXNoaW5nIGZsYWcgc2V0LiBUaGlzIG1lYW5zCgkgIHRoYXQgd2hlbiB3ZSBnZXQgYSBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCB3ZSBtdXN0IGlnbm9yZSBpdC4KCSAgT24gc2lua3BhZHMsIG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0LiBXZSB1c2VkIHRvIG5vdCBjbGVhciB0aGUgZmx1c2gKCSAgZmxhZyBidXQgcmVtb3ZlIHRoZSBldmVudHMgYW5kIHRoZW4gcmV0dXJuIGFuIGVycm9yIGJlY2F1c2UgdGhlIGZsdXNoaW5nCgkgIGZsYWcgd2FzIHNldC4gTm93IGp1c3Qgc2ltcGx5IHJlZnVzZSB0aGUgZXZlbnQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KCSAgT24gc3JjcGFkcywgY2hlY2sgdGhhdCB3ZSBhcmUgdHJ5aW5nIHRvIHB1c2ggYSBmbHVzaC1zdG9wIGV2ZW50IGFuZAoJICByZWZ1c2UgaXQuIFdlIHdvdWxkIGFsbG93IHRoaXMgYW5kIG1hcmsgdGhlIHNyY3BhZCBhcyBub24tZmx1c2hpbmcKCSAgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTM1NwoKMjAxNC0wOC0yNyAxNzowNjo1NyArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogU2VuZCBhbGwgZXZlbnRzIHRvIGFjdGl2ZSBzcmMgcGFkIGFuZCBFT1MgdG8gYWxsIHNyYyBwYWRzCgkgIEZpeGVzIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk4MTEKCjIwMTQtMDgtMjggMTc6MjQ6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IHR5cG8gaW4gYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTYwOQoKMjAxNC0wOC0yNiAyMDoxNDo0MCArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+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/aWQ9NzMyNTM0CgoyMDE0LTA2LTMwIDA4OjU5OjE4ICswMDAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFN0b3AgdXNpbmcgZ19jbGVhcl9wb2ludGVyKCkKCSAgV2UgZG9udCd0IHdhbnQgdG8gZGVwZW5kIG9uIEdMaWIgMi4zNCBmb3Igbm93LgoKMjAxNC0wNi0yOSAxOToxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBJbml0aWFsaXplIG1lbW9yeSBpbiB1bml0IHRlc3QgdG8gbWFrZSB2YWxncmluZCBoYXBweQoJICBXZSB3ZXJlIHdyaXRpbmcgdW5pdGlhbGl6ZWQgc3RhY2sgbWVtb3J5IHRvIHRoZSBmaWxlLgoKPT09IHJlbGVhc2UgMS4zLjkwID09PQoKMjAxNC0wNi0yOCAxMDo0NToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuOTAKCjIwMTQtMDYtMjggMTA6NDE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+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+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGFsaWdubWVudCBvZiByYW5rLCBldGMuCgoyMDEyLTExLTA2IDE2OjU4OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBlbGVtZW50czogZml4IGxlYWRpbmcgc3BhY2UgaW4gcGx1Z2luIGRlc2NyaXB0aW9uIHN0cmluZwoKMjAxMi0xMS0wMyAyMDo0NDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENPUFlJTkc6CgkqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkqIGdzdC9nZXR0ZXh0Lmg6CgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9pbml0LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWRpc2FibGVkLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmg6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJKiB0ZXN0cy9taXNjL25ldHdvcmstY2xvY2suc2NtOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEZpeCBGU0YgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIwCgoyMDEyLTEwLTMxIDE5OjMzOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkICJmbHVzaC1vbi1lb3MiIHByb3BlcnR5CgkgIEluIGZsdXNoLW9uLWVvcz10cnVlIG1vZGUgYW55IGRhdGEgcmVtYWluaW5nIGluIHRoZSBxdWV1ZSBpcwoJICBkaXNjYXJkZWQgd2hlbiBhbiBFT1MgZXZlbnQgaXMgcmVjZWl2ZWQsIGFuZCB0aGUgRU9TIHBhc3NlZAoJICBkb3duc3RyZWFtIGFzIHNvb24gYXMgcG9zc2libGUgKGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgYWxsCgkgIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIHRvIGdldCBwcm9jZXNzZWQgYnkgZG93bnN0cmVhbSBmaXJzdCkuCgkgIE1heSBvciBtYXkgbm90IGJlIHVzZWZ1bCBpbiBjYXB0dXJlL2VuY29kaW5nIHNjZW5hcmlvcy4KCjIwMTItMTAtMzEgMTg6MzI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBweXRob24gZGV0ZWN0aW9uCgkgIEZpeGVzIGRvY3MgYnVpbGQuCgoyMDEyLTEwLTMxIDE3OjM3OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbGV0IEFHX0dTVF9QTFVHSU5fRE9DUyBjaGVjayBmb3IgcHl0aG9uCgkgIEFuZCB1cGRhdGUgY29tbW9uIGZvciBtb3ZlIGZyb20gQVNfUEFUSF9QWVRIT04gdG8gQU1fUEFUSF9QWVRIT04sCgkgIHdoaWNoIGFzIGEgc2lkZS1lZmZlY3Qgc2hvdWxkIHBpY2sgdXAgbmV3ZXIgcHl0aG9uIHZlcnNpb25zIGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5MDMKCjIwMTItMTAtMzAgMTA6MDQ6NDQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IENsYXJpZnkgZG9jcyBhYm91dCB0aGUgYnVmZmVyIGhhbmRsZXIgY2FsbGJhY2suCgkgIENsYXJpZnkgdGhhdCB0aGUgY2FsbGJhY2sgb3ducyBhIHJlZiBvbiBhIHBhc3NlZCBidWZmZXIuCgoyMDEyLTEwLTMwIDEwOjA0OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIEVPUyBzdGF0dXMgdG8gZGVidWcgb3V0cHV0IGFib3V0IGZpbGxlZC91bmZpbGxlZAoKMjAxMi0xMC0yMiAwMDozMTowOSArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjaGVjazogQWRkIGEgc2ltcGxlIHRlc3QgZm9yIHRoZSBDb2xsZWN0UGFkcyBidWZmZXIgY29sbGVjdCBjYWxsYmFjawoKMjAxMi0xMC0yOSAxMzoyNjoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnLWk6IGZpeCAiY2FuJ3QgcmVzb2x2ZSBsaWJyYXJpZXMgdG8gc2hhcmVkIGxpYnJhcmllczogZ3N0Y2hlY2stMS4wIiBidWlsZCBlcnJvcgoJICBSZXZlcnQgLS1saWJyYXJ5PWxpYmZvby0xLjAubGEgLT4gLS1saWJyYXJ5PWZvby0xLjAgY2hhbmdlIG1hZGUKCSAgaW4gcHJldmlvdXMgY29tbWl0LiBUdXJucyBvdXQgdGhhdCB3YXMgd3JvbmcsIGRlc3BpdGUgd2hhdCB0aGUKCSAgbWFuIHBhZ2Ugc2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMzcxMAoKMjAxMi0xMC0yOSAxMTozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvd25ncmFkZSAnY3JlYXRpbmcgcmFuZG9tIHN0cmVhbS1pZCcgZGVidWcgbG9nIG1lc3NhZ2UKCSAgTm8gbmVlZCBmb3IgaXQgdG8gYmUgYSB3YXJuaW5nLgoKMjAxMi0wNi0xMyAxMzowMjo0OCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgZXhjZXNzaXZlbHkgaGlnaCBtZW1vcnkgdXNhZ2Ugd2l0aCBsb25nIHN0cmVhbXMKCSAgTGFyZ2Ugc3RyZWFtcyB3b3VsZCBpbmRleCBvbmUgZnJhbWUgZXZlcnkgc2Vjb25kLCB3aGljaCBjYW4gZ2V0IHF1aXRlCgkgIGxhcmdlIHdpdGggbXVsdGktaG91ciBzdHJlYW1zLCBzbyBhZGQgYW4gYWRkaXRpb25hbCBieXRlLWJhc2VkCgkgIG1pbmltdW0gZGlzdGFuY2UgYXMgd2VsbCwgd2hpY2ggd2lsbCBraWNrIGluIGZvciBsb25nIHN0cmVhbXMKCSAgYW5kIG1ha2Ugc3VyZSB3ZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBhIGNvdXBsZSBvZiB0aG91c2FuZCBpbmRleAoJICBlbnRyaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MDUzCgoyMDEyLTEwLTI4IDE3OjE3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZy1pOiBhdm9pZCBtdWx0aXBsZSBsaWJyYXJpZXMgaW4gdGhlIHNoYXJlZC1saWJyYXJ5IHRhZwoJICBVc2luZyBtdWx0aXBsZSBsaWJyYXJpZXMgY2F1c2VzIHByb2JsZW1zIGZvciB0aGUgQyMgYmluZGluZ3MgYW5kCgkgIHdpbGwgZm9yIHNpbWlsaWFyIGxhbmd1YWdlcyBzdWNoIGFzIEphdmEgd2hlbiB0aGVyZSBhcmUgYmluZGluZ3MKCSAgZm9yIHRoZW0uCgkgIEFsc28gY2hhbmdlIC0tbGlicmFyeT1saWJnc3Rmb28tWC5sYSB0byAtLWxpYnJhcnk9Z3N0Zm9vLVggYXMKCSAgdGhlIG1hbiBwYWdlIHN1Z2dlc3RzIGl0IHNob3VsZCBiZSBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MzE1CgoyMDEyLTEwLTI4IDE1OjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbl9uYW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTgzMgoKMjAxMi0xMC0yNyAxNDo0MDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsbG93IHNldHRpbmcgb2YgR1NUX0RFQlVHIGxldmVscyBieSBuYW1lCgkgIGUuZy4gR1NUX0RFQlVHPSo6SU5GTywqc3JjOkxPRwoKMjAxMi0wNi0yOSAxMjozODo1MiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IG1ha2UgdXMgb2YgdGhlIG5ldyBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZyBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTA2LTI5IDEyOjA1OjM2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogYWRkIGEgZnVuY3Rpb24gdG8gc2V0IGRlYnVnIHRocmVzaG9sZCBmcm9tIGEgR1NUX0RFQlVHLXN0eWxlIHN0cmluZwoJICBVc2UgdGhlIHNhbWUgZm9ybWF0IGFzIHdpdGggdGhlIEdTVF9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQVBJOiBnc3RfZGVidWdfc2V0X3RocmVzaG9sZF9mcm9tX3N0cmluZygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNTIKCjIwMTItMTAtMjUgMTU6Mjc6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IEZpeCB1bml0IHRlc3QKCjIwMTItMTAtMjIgMTA6MTM6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWUvcXVldWVhcnJheTogTWFrZSBwdWJsaWMgQVBJIGFnYWluCgkgIFRoZXNlIGFyZSBhY3R1YWxseSB1c2VkIG91dHNpZGUgb2YgY29yZWVsZW1lbnRzIG5vd2FkYXlzLgoJICBBbHNvIGhpZGUgbG90cyBvZiBpbnRlcm5hbHMgYW5kIGFkZCBwYWRkaW5nIGFuZCBkb2N1bWVudGF0aW9uLgoKMjAxMi0xMC0yNSAxMjoxMDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBmZWF0dXJlIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjAuMiA9PT0KCjIwMTItMTAtMjUgMDA6MDQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjIKCjIwMTItMTAtMjQgMTY6MTM6MzQgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogbGluayB0ZXN0cnRwb29sIHRvIHB0aHJlYWRzCgkgIEZpeGVzICM2ODY3ODcKCjIwMTItMTAtMjQgMTE6NDY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBbGxvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIGR1cmF0aW9uIGZvciBHQVAgZXZlbnRzCgoyMDEyLTEwLTI0IDExOjE2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgR0NvbmQgZm9yIGFzeW5jIHN0YXRlIGNoYW5nZQoJICBVc2UgYSBuZXcgR0NvbmQsIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jaywgdG8gc2lnbmFsIGNvbXBsZXRpb24KCSAgb2YgdGhlIGFzeW5jIHN0YXRlIGNoYW5nZS4gV2UgY2FuJ3QgcmV1c2UgdGhlIGxpdmUgbG9jayBiZWNhdXNlIHRoYXQKCSAgb25lIGNhbiBiZSBsb2NrZWQgd2hlbiB0aGUgY3JlYXRlIGZ1bmN0aW9uIGJsb2Nrcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjcyMwoKMjAxMi0xMC0yMiAyMDoyNTo0MyArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogZml4IG1lbW9yeSBsZWFrIGluIF9mYWxsYmFja19tZW1fY29weQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NjU4CgoyMDEyLTEwLTIyIDIwOjMzOjA2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiByZW1vdmUgdmFyaWFibGUgbm90IHJlYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OQoKMjAxMi0xMC0yMiAxNTowNDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBtNC9heF9wdGhyZWFkLm00OgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IFByb3Blcmx5IGNoZWNrIGZvciBwdGhyZWFkCgkgIFRoZSBvbGQgY2hlY2sgZmFpbGVkIG9uIEFuZHJvaWQgZm9yIGV4YW1wbGUuCgoyMDEyLTEwLTIyIDEwOjI1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IERvbid0IHVzZSBHU1RfREVCVUcoKSBpbiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkKCSAgSWYgR1N0cmVhbWVyIHdhcyBub3QgaW5pdGlhbGl6ZWQgeWV0IHRoaXMgd2lsbCBjYXVzZSBnX3dhcm5pbmdzKCkuCgoyMDEyLTEwLTIwIDE5OjQ0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IGctaSBhbm5vdGF0aW9uIGZvciBHc3RDb2xsZWN0UGFkc0J1ZmZlckZ1bmN0aW9uCgkgIFdlIHBhc3Mgb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgdG8gdGhlIGZ1bmN0aW9uLgoKMjAxMi0xMC0yMCAxMjo1NDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBnX3R5cGVfaW5pdCgpIGlzIG5vIGxvbmdlciByZXF1aXJlZCBhbmQgZGVwcmVjYXRlZCBpbiBnbGliID49IDIuMzUuMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NDU2CgoyMDEyLTEwLTE5IDEzOjM2OjMzIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIEdzdFNhbXBsZTogZml4IHR5cG8gaW4gRy1JIGFubm90YXRpb25zLCBhbGxvd3MgY3JlYXRpbmcgR3N0U2FtcGxlcyBmcm9tIGJpbmRpbmdzLgoKMjAxMi0xMC0xOCAxNTozMToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggY29tcGlsZXIgd2FybmluZyBhYm91dCBjb25zdG5lc3MKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X2xvY2snIGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoJICBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2dfbXV0ZXhfdW5sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCjIwMTItMTAtMTcgMTY6NDk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYmluLCBwaXBlbGluZTogdXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoJICBTbyB0aGUgc3RyaW5ncyBhcmVuJ3QgY29waWVkLgoKMjAxMi0xMC0xNiAxMjozMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBUEk6IEFkZCBHc3RFbGVtZW50Ojpwb3N0X21lc3NhZ2UoKSB2ZnVuYwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50LmgKCjIwMTItMTAtMTYgMTE6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICBwd2c6IGxpbmsgdG8gY2FwcyBhbmQgcW9zIGNoYXB0ZXJzCgoyMDEyLTEwLTE2IDExOjIwOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogYWRkIHNlY3Rpb24gYWJvdXQgcXVlcnkgZnVuY3Rpb24KCjIwMTItMTAtMTYgMTE6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSAgcHdnOiBmaXggZXZlbnQgZnVuY3Rpb24KCjIwMTItMTAtMTUgMTk6NTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBtaW5vciBkb2NzIGZpeGVzCgoyMDEyLTEwLTE1IDE5OjU1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBidWZmZXIgbGVhayBpbiBjbGlwX3RpbWUKCjIwMTItMTAtMTUgMTg6NDQ6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogY2FsbCBjbGlwIGZ1bmN0aW9uIHdpdGggdXNlciBkYXRhCgoyMDEyLTEwLTE1IDE0OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW9yZGVyIHNvbWUgY2hhcHRlcnMKCSAgUmVvcmRlciBzb21lIGNoYXB0ZXIgc28gdGhhdCB0aGV5IG1hdGNoIHRoZSBzdGVwcyBkb25lIGluIHRoZQoJICBlbGVtZW50LgoKMjAxMi0xMC0xNSAxMzo1OTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBzbWFsbCB0d2Vha3MgdG8gbmVnb3RpYXRpb24KCjIwMTItMTAtMTUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBuZWdvdGlhdGlvbiBkb2N1bWVudGF0aW9uIHNvbWUgbW9yZQoKMjAxMi0xMC0xNSAxMjoxMDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogdXBkYXRlIG5lZ290aWF0aW9uIHBhcnQKCjIwMTItMTAtMTUgMTI6MTA6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzeW5jaHJvbml6YXRpb24gZG9jcwoKMjAxMi0xMC0xMiAxNjo1ODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiB3b3JrIG9uIHJld3JpdGluZyBjYXBzIG5lZ290aWF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6MDk6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZGVzaWduOiByZW5hbWUgcGFzc3Rocm91Z2ggbmVnb3RpYXRpb24KCSAgUmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uIHRvIHRyYW5zZm9ybSBuZWdvdGlhdGlvbiB0byBhdm9pZAoJICBjb25mdXNpb24gd2l0aCBwYXNzdGhyb3VnaCBvcGVyYXRpb24uCgoyMDEyLTEwLTEyIDEzOjE1OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBtYW51YWw6IG5vIG1vcmUgbmV3LWRlY29kZWQtcGFkCgoyMDEyLTEwLTEyIDEzOjEzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNvbXBpbGluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogbW92ZSBlbWJlZGRpbmcgZWxlbWVudHMgdG8gc2VwYXJhdGUgY2hhcHRlcgoKMjAxMi0xMC0xMiAxMzowMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkgIHB3Zzogc21hbGwgZXhhbXBsZSBmb3IgdGhyb3R0bGUKCjIwMTItMTAtMTIgMTI6NTU6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBpbmZvIGFib3V0IFFvUwoKMjAxMi0xMC0xMiAxMjo1NToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIHB3ZzogYWRkcyBzb21lIG1vcmUgbGlua3MKCjIwMTItMTAtMTIgMTI6NTU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIHFvczogbWVzc2FnZXMgYXJlIHBvc3RlZCwgbm90IGRyb3BwZWQKCjIwMTItMTAtMTIgMTA6MzU6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSAgbWFudWFsOiB1cGRhdGUgZ3JhcGhpY3MKCjIwMTItMTAtMTEgMTc6MTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBleGFtcGxlIG9mIG5vLXJlYnVmZmVyIGJ1ZmZlcmluZyBzdHJhdGVneQoKMjAxMi0xMC0xMSAxNzoxMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBtYW51YWw6IHNtYWxsIHR3ZWFrcwoKMjAxMi0xMC0xMSAxNzowOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYnVmZmVyaW5nIHRpbWUgbGVmdCBpcyBpbiBtaWxsaXNlY29uZHMKCjIwMTItMTAtMTEgMTc6MDc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgIG1hbnVhbDogYWRkIHNvbWUgdGV4dCBhYm91dCBiaW4gc3RhdGUgY2hhbmdlIG9yZGVyCgoyMDEyLTEwLTEwIDE2OjQzOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHRhbGsgYWJvdXQgcGxheXNpbmsKCSAgVGFsayBhYm91dCBwbGF5c2luayBhbmQgZ2l2ZSBhbiBleGFtcGxlIG9mIGl0cyB1c2FnZS4KCjIwMTItMTAtMTAgMTM6MDg6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHNvbWV0aGluZyBhYm91dCB1cmlkZWNvZGViaW4KCjIwMTItMTAtMTAgMTE6MzU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZW5zdXJlIGFsbCB0aW1lc3RhbXBzIGFyZSBpbiBzYW1lIHRpbWUgZG9tYWluCgkgIC4uLiBieSBub3Qgb25seSBwcm9jZXNzaW5nIGluY29taW5nIGJ1ZmZlcnMgdGhyb3VnaCBhIGNsaXAgZnVuY3Rpb24sCgkgIGJ1dCBhbHNvIG90aGVyIHRpbWVzdGFtcHMgc3VjaCBhcyB0aG9zZSBjb21pbmcgZnJvbSBHQVAgZXZlbnQuCgoyMDEyLTEwLTEwIDEwOjM2OjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBhZGp1c3Qgc29tZSBwYXJhbWV0ZXIgbWlzbWF0Y2hlcwoKMjAxMi0xMC0xMCAxMTozNDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG93bmdyYWRlIEdTVF9XQVJOSU5HIHRvIEdTVF9JTkZPCgkgIEl0J3MgdXN1YWxseSBub3QgYSBwcm9ibGVtIGlmIGEgcXVlcnkgZmFpbHMgaWYgdGhlcmUncyBubyBwZWVyLAoJICBlc3BlY2lhbGx5IGFzIGl0IHdpbGwgaGFwcGVuIGR1cmluZyBwYWQgbGlua2luZyAoY2FwcyBxdWVyeSkKCSAgcXVpdGUgb2Z0ZW4gYW5kIHNwYW1zIHRoZSBsb2dzLgoKMjAxMi0xMC0wOSAxNzowNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcmVtb3ZlIG91dGRhdGVkIGF1dG9wbHVnZ2luZyBzZWN0aW9uCgkgIFJlbW92ZSBhdXRvcGx1Z2dpbmcgY2hhcHRlciBhbmQgcG9pbnQgdG8gZGVjb2RlYmluL3BsYXliaW4gZXhhbXBsZXMuCgoyMDEyLTEwLTA5IDE2OjEyOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogVGFsayBhYm91dCB0aHJlYWRpbmcKCSAgUmV3b3JrIHRoZSB0aHJlYWRpbmcgY2hhcHRlci4KCSAgVGFsayBhYm91dCBzdHJlYW0tc3RhdHVzIGFuZCBnaXZlIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIGNoYW5nZQoJICB0aGUgdGhyZWFkIHByaW9yaXRpZXMuCgoyMDEyLTEwLTA5IDE1OjU3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBpbXByb3ZlIHN0cmVhbS1zdGF0dXMgZG9jdW1lbnQKCjIwMTItMTAtMDkgMTU6MzE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIHN0YXJ0X2NvbXBsZXRlCgkgIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIGNhbiBmYWlsIHdoZW4gdGhlIHRocmVhZCBjb3VsZCBub3QgYmUKCSAgc3RhcnRlZCwgZm9yIGV4YW1wbGUuIE1ha2Ugc3VyZSBpdCBjYXVzZXMgdGhlIHN0YXRlIGNoYW5nZSB0byBmYWlsIGJ5CgkgIHJldHJpZXZpbmcgdGhlIHJlc3VsdCBmcm9tIF9zdGFydF9jb21wbGV0ZSgpLgoKMjAxMi0xMC0wOSAxNTozMTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEwLTA5IDEwOjI0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHNtYWxsIGRvY3MgZml4ZXMgYW5kIHJlbW92ZSBhIDAuMTEgZml4bWUKCjIwMTItMTAtMDggMTY6NDI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogdGFsayBhIGJpdCBhYm91dCBidWZmZXJpbmcKCjIwMTItMTAtMDggMTM6MjI6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgIGRvY3M6IGltcHJvdmUgY2xvY2sgY2hhcHRlcgoKMjAxMi0xMC0wOCAxMDozOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGV4YW1wbGUgZm9yIGVmZmVjdCBzd2l0Y2hpbmcKCjIwMTItMTAtMDggMDk6MTE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBkb2NzOiBzbWFsbCB1cGRhdGVzCgoyMDEyLTEwLTA3IDE2OjQ4OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWctZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjEgPT09CgoyMDEyLTEwLTA3IDEzOjEwOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjEKCjIwMTItMTAtMDcgMDA6MTU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICB0ZXN0czogdXBkYXRlIHN0cnVjdF9pMzg2LmggZm9yIEFCSSBjaGVja3MKCSAgRml4ZXMgbWFrZSBjaGVjayBvbiAzMi1iaXQgeDg2LgoKMjAxMi0xMC0wNiAxNzoyNjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSAgdGVzdHM6IHVwZGF0ZSBzdHJ1Y3RfcHBjMzIuaCBmb3IgQUJJIGNoZWNrcwoJICBGaXhlcyBtYWtlIGNoZWNrIG9uIDMyLWJpdCBQb3dlclBDLgoKMjAxMi0xMC0wNiAxNDo1NTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmMwYjUyYyB0byA2YmI2OTUxCgoyMDEyLTEwLTA2IDEyOjA4OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGV4YW1wbGVzOiAuZ2l0aWdub3JlIG1vcmUgYmluYXJpZXMgZnJvbSB0aGUgbWFudWFsCgoyMDEyLTEwLTA1IDE2OjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBvYnNvbGV0ZSBwYXJ0LWJsb2NrIGRvY3VtZW50CgkgIE1lcmdlIHRoZSBwYXJ0LWJsb2NrIGRvY3VtZW50IGludG8gcGFydC1wcm9iZXMKCjIwMTItMTAtMDUgMDk6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVzZW5kIGRyb3BwZWQgZXZlbnRzCgkgIElmIHdlIHRyeSB0byBwdXNoIHN0aWNreSBldmVudHMgYnV0IGEgcHJvYmUgZHJvcHBlZCB0aGVtLCB3ZSBkb24ndCBtYXJrCgkgIHRoZSBldmVudCBhcyByZWNlaXZlZCBhbmQgbWFyayB0aGUgcGFkIGFzIFBFTkRJTkdfRVZFTlRTLiBUaGlzIGVuc3VyZXMKCSAgdGhhdCB3ZSByZXNlbmQgdGhlIGV2ZW50IHRoZSBuZXh0IHRpbWUuIEZvciB0aGlzIHdlIG5lZWQgdG8gbGV0IHRoZQoJICBjdXN0b20gZmxvdyByZXR1cm4gZnJvbSB0aGUgcHJvYmUgdHJpY2tsZSB1cCB0bwoJICBnc3RfcGFkX3B1c2hfZXZlbnRfdW5jaGVja2VkKCkgc28gdGhhdCB3ZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuCgkgIE9LIGFuZCBEUk9QUEVEIHByb2JlIHJldHVybnMuCgoyMDEyLTEwLTA1IDA3OjE0OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcvRU9TIHBhZHMKCSAgRG9uJ3Qgc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZyBvciBFT1MgcGFkcy4gVGhpcyB3YXMgZG9uZQoJICBjb3JyZWN0bHkgZm9yIHNvdXJjZSBwYWRzIGJ1dCBub3QgZm9yIHNpbmsgcGFkcy4KCjIwMTItMTAtMDQgMTE6MjQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkgYW5kIGFkZCBpdCB0byBkb2NzIGFuZCAuZGVmIGZpbGUKCjIwMTItMTAtMDQgMTE6NTA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBkeW5hbWljIGNhcHNmaWx0ZXIgZXhhbXBsZQoKMjAxMi0xMC0wNCAxMToxODoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkb24ndCBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBzaG91bGQgbm90IHRyeSB0byBuZWdvdGlhdGUgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQKCSAgcmVzcGVjdCB0aGUgb3JkZXIgb2Ygd2hhdCB3ZSByZXR1cm4gaW4gdGhlIHRyYW5zZm9ybV9jYXBzIG1ldGhvZC4KCSAgQSB0eXBpY2FsIGNhc2UgaXMgdGhhdCB5b3Ugc3BlY2lmeSBzb21lIHNwZWNpZmljIG5ldyBjYXBzIGluIHRoZQoJICBjYXBzIHByb3BlcnR5IGJ1dCBhbHNvIGFsbG93IHRoZSBjdXJyZW50IGNhcHMgdG8gcGFzcy4KCjIwMTItMTAtMDQgMTE6MTU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogYWRkIGFuIG9wdGlvbiB0byBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBhdHRlbXB0cyB0byBkbyBwYXNzdGhyb3VnaCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIG9mCgkgIHRoZSB0cmFuc2Zvcm1fY2FwcyBtZXRob2QuIEFkZCBhIG1ldGhvZCB0byBkaXNhYmxlIHRoaXMuCgkgIFRoaXMgaXMgbmVlZGVkIGZvciBlbGVtZW50cyBsaWtlIGNhcHNmaWx0ZXIgdGhhdCB3YW50IHRvIHRyYW5zZm9ybSBjYXBzCgkgIGJhc2VkIG9uIHRoZSBvcmRlciBvZiB0aGUgY2FwcyBwcm9wZXJ0eS4KCjIwMTItMTAtMDQgMTA6MDE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIHNvbWUgY29tbWVudHMKCjIwMTItMTAtMDMgMTc6MTc6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB0YWxrIHNvbWUgbW9yZSBhYm91dCBkeW5hbWljIHBpcGVsaW5lcwoKMjAxMi0xMC0wMyAxMzo0OTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvbid0IHB1dCBlc3NlbnRpYWwgbG9naWMgaW4gZ19yZXR1cm5fdmFsXyoKCjIwMTItMTAtMDMgMTM6NDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvIG1ldGFkYXRhIHJlZ2lzdHJhdGlvbiB0aHJlYWRzYWZlCgkgIFdlIG5lZWQgdG8gdXNlIGdfb25jZSB0byByZWdpc3RlciB0aGUgbWV0YWRhdGEgaW1wbGVtZW50YXRpb25zCgkgIG9ubHkgb25jZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODUzMzIKCjIwMTItMTAtMDMgMTM6MzU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBoYW5kbGUgbXVsdGlwbGUgaW1wbGVtZW50YXRpb24gcmVnaXN0cmF0aW9uCgkgIEZpcnN0IGNoZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWZvcmUKCSAgbWFraW5nIGEgR3N0TWV0YUluZm8uIElmIHdlIGNhbid0IHJlZ2lzdGVyIHdlIHdvdWxkIG90aGVyd2lzZSBlbmQKCSAgdXAgd2l0aCBhbiB1bmRlZmluZWQgdHlwZSBhbmQgYW4gaW52YWxpZCBHc3RNZXRhSW5mby4KCSAgSXQncyBwb3NzaWJsZSB0aGF0IHR5cGUgcmVnaXN0cmF0aW9uIGZhaWxzIGJlY2F1c2UgYW5vdGhlciBtZXRhZGF0YQoJICB3aXRoIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uIG5hbWUgd2FzIGFscmVhZHkgcmVnaXN0ZXJlZC4KCjIwMTItMTAtMDMgMTM6MTI6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB1c2UgQ0RBVEEgZm9yIGNvZGUgYmxvY2tzCgkgIHRoZW4gd2UgZG9uJ3QgaGF2ZSB0byBlc2NhcGUgc3BlY2lhbCB0b2tlbiBhbnltb3JlLgoKMjAxMi0xMC0wMyAxMzowOTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHBhcnRpYWwgcHJlcm9sbCBleGFtcGxlIHdpdGggcHJvYmVzCgoyMDEyLTEwLTAzIDEwOjUzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogYWRkIG1vcmUgc3R1ZmYgYWJvdXQgcHJvYmVzCgoyMDEyLTEwLTAyIDE3OjIzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogc3RhcnQgdGFsa2luZyBhYm91dCBkeW5hbWljIHBpcGVsaW5lIGNoYW5nZXMKCjIwMTItMTAtMDIgMTY6NDc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBtb3ZlIHNlY3Rpb24gYXJvdW5kCgoyMDEyLTEwLTAyIDE2OjQ0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiBhZGQgYXBwc2luayBkb2NzCgoyMDEyLTEwLTAyIDE2OjE1OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiByZXdpdGUgZGF0YS1hY2Nlc3MgY2hhcHRlcgoJICBSZXdyaXRlIHRoZSBkYXRhLWFjY2VzcyBjaGFwdGVyIHNvIHRoYXQgd2UgdGFsayBhYm91dCBhcHBzcmMgaW5zdGVhZAoJICBvZiB0aGUgZmFrZXNyYyBoYWNrcy4KCjIwMTItMTAtMDIgMTM6MjI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBwby9SRUFETUU6CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBkb2NzOiBzb21lIDAuMTAgLT4gMS4wIGNoYW5nZXMKCjIwMTItMTAtMDIgMTM6MTI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBleGFtcGxlCgoyMDEyLTEwLTAyIDEyOjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMi0xMC0wMiAxMTozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogZmxlc2ggb3V0IGFsbG9jYXRpb24gZG9jcwoJICBBZGQgbW9yZSBleGFtcGxlcy4KCSAgQWRkIGV4YW1wbGUgZm9yIGltcGxlbWVudGluZyBuZXcgbWV0YWRhdGEuCgkgIEFkZCBwcm9ncmFtcyB0byB0aGUgZG9jcyAoYWdhaW4/KSwgaXQgc2VlbXMgdG8gY29udGFpbiB1c2VmdWwgaW5mby4KCjIwMTItMTAtMDEgMTY6NTk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBwd2c6IGFkZCBuZXcgYXV0aG9yCgoyMDEyLTEwLTAxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGFsbG9jYXRpb24gZG9jcwoKMjAxMi0xMC0wMSAxNjo0NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDEyLTEwLTAxIDEzOjI4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogbW9yZSBkb2NzIGZpeGVzCgkgIEZpeCBhbGxvY2F0b3IgZGVzaWduIGRvYwoJICBBZGQgYmVnaW5uaW5nIG9mIGFsbG9jYXRpb24gY2hhcHRlciBpbiB0aGUgcHdnCgoyMDEyLTEwLTAxIDExOjQ3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICBwd2c6IGZpbmFsIGNsZWFudXBzIGZvciAxLjAKCjIwMTItMTAtMDEgMTE6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgcHdnOiBmaXggZXZlbnRzIGFuZCBiYXNlIGNsYXNzZXMKCjIwMTItMTAtMDEgMTA6NDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgcHdnOiBmaXh1cCB0YWcgZG9jcwoKMjAxMi0xMC0wMSAwOTo0ODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHBhdGNoIHVwIHRoZSBzZWN0aW9uIGFib3V0IGludGVyZmFjZXMKCjIwMTItMDktMzAgMDQ6MDU6MzYgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggc2VhbWxlc3Mgc2VnbWVudCBmdW5jdGlvbgoJICBUaGUgM3JkIHBhcmFtZXRlciBvZiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQgaW4KCSAgMC4xMCBpcyB0aGUgdGltZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VnbWVudCwKCSAgbm90IHRoZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHNlZ21lbnQuIEZpeCB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLAoJICB0aGUgZG9jcywgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmVlZHMgb2YgdGhlIG9ubHkKCSAgZXh0YW50IGNvbnN1bWVyOiBEVkQgcGxheWJhY2suCgoyMDEyLTA5LTI5IDE0OjM1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB2YWx1ZTogYXZvaWQgZHVwbGljYXRlcyB3aGVuIGludGVyc2VjdGluZyBsaXN0cwoJICBGaXhlcyBuZWdvdGlhdGlvbiB0YWtpbmcgYSByaWRpY3Vsb3VzIGFtb3VudCBvZgoJICB0aW1lIChtdWx0aXBsZSAxMHMgb2Ygc2Vjb25kcyBvbiBhIGNvcmUyKSB3aGVuCgkgIHRoZXJlIGFyZSBkdXBsaWNhdGUgZW50cmllcyBpbiBsaXN0cy4KCSAgQ291bGQgaGF2ZSBhIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBvdGhlcgoJICBzY2VuYXJpb3MgYmVjYXVzZSB3ZSBub3cgaGF2ZSB0byBpdGVyYXRlIHRoZQoJICBkZXN0IGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcywgYnV0IHdlIGRvbid0CgkgIGhhdmUgYSBsb3Qgb2YgbGlzdHMgYW55IG1vcmUgdGhlc2UgZGF5cywgYW5kCgkgIHRoZXkgdGVuZCB0byBiZSBzbWFsbCBhbnl3YXkuIFRoZSBuZWdhdGl2ZXMKCSAgYXJlIGhvcGVmdWxseSBjb3VudGVyZWQgYnkgdGhlIHBvc2l0aXZlIGVmZmVjdHMKCSAgb2YgcmVkdWNpbmcgdGhlIGxpc3QgbGVuZ3RoIGVhcmx5IG9uIGluIHRoZQoJICBwcm9jZXNzLiBBbmQgaW4gYW55IGNhc2UsIGl0J3MgdGhlIHJpZ2h0IHRoaW5nCgkgIHRvIGRvLgoJICBCYXNlZCBvbiBwYXRjaCBieSBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk4MQoKMjAxMi0wOS0yOSAwMDoyNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogbWlub3IgdXBkYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjExMjEKCjIwMTItMDktMjggMjM6NTM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJICBmYXE6IGFkZCBtaXNzaW5nIDwvcGFyYT4gdGFnCgoyMDEyLTA5LTI4IDE1OjE3OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtaW5pb2JqZWN0OiBBbHdheXMgcmVqZWN0IFdSSVRFIGxvY2tzIG9uIFJFQURPTkxZIG1pbmlvYmplY3RzCgkgIFZlcmlmeSB0aGF0IG1hcHBpbmcgYSByZWFkLW9ubHkgbWVtb3J5IGFzIHJlYWQgZG9lc250IG1ha2UgaXQgd3JpdGFibGUKCjIwMTItMDktMjggMjA6Mzg6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBwdXJnZSBhbGwgbWVudGlvbiBvZiBsaWJvaWwsIHVwZGF0ZSBGQVEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzI4NQoKMjAxMi0wOS0yOCAxNjowMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgMS4wCgkgIFJld3JpdGUgY2xvY2sgcGFydC4KCSAgc3RhcnQgb24gaW50ZXJmYWNlcwoKMjAxMi0wOS0yOCAxMzoyNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICBwd2c6IHJld29yayBkeW5hbWljIHBhZHMgZG9jcwoKMjAxMi0wOS0yOCAxMzoyNTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IHJld29yayBzY2hlZHVsaW5nIGRvY3MKCjIwMTItMDktMjggMTM6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBwd2c6IHJlbW92ZSBzb21lIEdTVF9CT0lMRVJQTEFURQoKMjAxMi0wOS0yOCAxMToxODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBhY3RpdmF0aW9uIGRlc2lnbiBkb2NzCgoyMDEyLTA5LTI4IDEwOjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGFjdGl2YXRlIGRvY3MKCjIwMTItMDktMjggMTA6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogZml4IG1vcmUgbmVnb3RpYXRpb24gZm9yIDEuMAoKMjAxMi0wOS0yNyAxNjo1OTowNCArMDIwMCAgT2xpdmllciBCbGluIDxvbGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkbyBub3QgcmVnaXN0ZXIgcHJpbnRmIGV4dGVuc2lvbiBmb3IgJXAKCSAgVGhpcyBoYXBwZW5lZCB3aGVuIGdsaWIgd2FzIG5vdCB1c2luZyBzeXN0ZW0gcHJpbnRmLCBhbmQgY2F1c2VkIHRoZQoJICBpbnRlcm5hbCBnc3RyZWFtZXIgcHJpbnRmIGV4dGVuc2lvbnMgdG8gYmUgdXNlZCBmb3IgYWxsICVwIHByaW50ZnMsCgkgIGNhdXNpbmcgY3Jhc2hlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk3MAoKMjAxMi0wOS0yNyAxNzoyMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBmaXggc29tZSBuZWdvdGlhdGlvbiB0byAxLjAKCjIwMTItMDktMjcgMTQ6NDI6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIHB3ZzogbW9yZSB1cGRhdGVzIGZvciAxLjAKCjIwMTItMDktMjcgMTM6NTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IG1vcmUgdXBkYXRlcyBmb3IgMS4wCgoyMDEyLTA5LTI3IDExOjUzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiB1cGRhdGUgYm9pbGVyIHRvIDEuMAoKMjAxMi0wOS0yNyAxMTowNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWxzbyByZWYgdGhlIGludGVybmFsIHBhZCBmb3IgYWN0aXZhdGUgZnVuY3Rpb25zCgkgIEFsc28gdGFrZSBhIHJlZiB0byB0aGUgaW50ZXJuYWwgcGFkIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTItMDktMjQgMTg6MjY6MTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcHJveHlwYWQ6IEhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIHBhZCB3aGlsZSBwdXNoaW5nIHRocm91Z2ggaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDgwOQoKMjAxMi0wOS0yNSAxNDo0NDo1NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogVGVzdCB0aGUgY2FzZSB3aGVyZSBnaG9zdCBwYWRzIGFyZSByZW1vdmVkIHdoaWxlIHN0cmVhbWluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0ODA5CgoyMDEyLTA5LTI3IDA5OjQ0OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogZW5hYmxlIGxpYnJhcnkgYWJpIGNoZWNrcwoKMjAxMi0wOS0yNiAyMzozMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCB1cCBiYXNlc3JjL2Jhc2VzaW5rIGRvY3MgZm9ybWF0dGluZwoKMjAxMi0wOS0yNiAxNzowODozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrcwoJICBFbmFibGUgYWJpIGNoZWNrcyBhZ2Fpbi4KCSAgRml4IGFiaSBzaXplcyBmb3IgeDg2XzY0LCBjb3B5IHRoZSBmaWxlIHRvIG90aGVyIGFyY2hzLgoKMjAxMi0wOS0yNiAxNjoyNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHVwZGF0ZSBkb2NzIGZvciAxLjAgQVBJCgoyMDEyLTA5LTI2IDE0OjE1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiB1c2UgcHJvcGVyICd0cmFuc2ZlciBmbG9hdGluZycgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MDk5CgoyMDEyLTA5LTI2IDEzOjE5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IHNlbmQgU1RSRUFNLVNUQVJUIGV2ZW50CgkgIFNlbmQgYSBTVFJFQU1fU1RBUlQgZXZlbnQgd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIGluIHB1bGwgbW9kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQyNAoKMjAxMi0wOS0yNiAxMDo1NToyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBtYXJrIEdzdFNlZ21lbnRGbGFncyBhcyBmbGFncyByYXRoZXIgdGhhbiBlbnVtCgkgIC4uLiB3aGljaCByZWFsbHkgbWFrZXMgYSBkaWZmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZQoJICBhIGZsYWdzIHZhbHVlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgZmxhZ3MsIHdoaWNoIGlzIGhhcmQKCSAgdG8gZG8gYXMgYW4gZW51bSB0eXBlLgoKMjAxMi0wOS0yNiAxMDo1NDowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZXRpbWVzdGFtcCBib3RoIHB0cyBhbmQgZHRzIHdoZW4gZG9pbmcgc28KCjIwMTItMDktMjYgMTU6MDE6NDIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTW92ZSBzb21lIHJ1biBvZiB0aGUgbWlsbCBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIExPRyBsZXZlbAoKMjAxMi0wOS0yNiAxNDoyMzo1MiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPdXRwdXQgdGltZXN0YW1wcyBhZnRlciBhIHNlZWsuCgkgIFJlaW5pdGlhbGlzZSB0aGUgRFRTIGFmdGVyIGEgc2VlayBzbyBhcyB0byBjb250aW51ZQoJICBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgd2hlbiBiYXNlcGFyc2UgaXMgbm90IGRvd25zdHJlYW0KCSAgb2YgYSBkZW11eGVyLgoJICBGaXhlczogIzY4NDUzOAoKMjAxMi0wOS0yNSAxNzowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICBkb2NzOiB1cGRhdGVzCgkgIE1JTUUtdHlwZSAtPiBNZWRpYSB0eXBlCgkgIEZpeCBzb21lIG9sZCBnc3QtaW5zcGVjdCBvdXRwdXQKCjIwMTItMDktMjUgMTY6NTM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIDEuMCBBUEkKCjIwMTItMDktMjUgMTU6MTE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgc2VjdGlvbiBmb3IgbWV0YWRhdGEKCjIwMTItMDktMjUgMTM6MDk6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGYWlsIGlmIG5vIHZhbGlkIGVsZW1lbnQgZmFjdG9yeSBtZXRhZGF0YSBpcyBzZXQKCjIwMTItMDktMjUgMTM6MDk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEZhaWwgaWYgbm8gdmFsaWQgcGx1Z2luIG1ldGFkYXRhIGlzIHNldAoKMjAxMi0wOS0yNSAxNTowNjo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhbHNvIHRyYWNrIGFuZCBzdG9yZSBzZWdtZW50IGluZm8gaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0yNSAxNDo0MDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGZpeCB1cCB0aGUgbWFudWFsCgkgIE1JTUUtdHlwZSAtPiBtZWRpYSB0eXBlcwoJICBGaXggdXAgdGhlIG1hbnVhbCBpbiB2YXJpb3VzIHBsYWNlcyB3aXRoIHRoZSAxLjAgd2F5IG9mIGRvaW5nIHRoaW5ncwoJICBzdWNoIGFzIHByb2Jlcywgc3RhdGljIGVsZW1lbnRzLCBzY2hlZHVsaW5nLCAuLi4KCSAgQWRkIHBvcnRpbmcgZnJvbSAwLjEwIHRvIDEuMCBjaGFwdGVyLgoJICBBZGQgcHJvYmUgZXhhbXBsZSB0byBidWlsZC4KCSAgUmVtb3ZlIHNvbWUgZG9jcyBmb3IgcmVtb3ZlIGNvbXBvbmVudHMgc3VjaCBhcyBHc3RNaXhlciBhbmQKCSAgR3N0UHJvcGVydHlQcm9iZSwgWE1MLi4uCgoyMDEyLTA5LTI0IDE2OjUwOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgZG9jczogZ3N0LXB5dGhvbiBpcyBubyBtb3JlCgkgIGdzdC1weXRob24gaXMgbm8gbW9yZSBhbmQgZ3N0LWxpYmF2IGlzIG9uZSBvZiB0aGUgbWFpbiBtb2R1bGVzIHRoYXQKCSAgd2UgcmVsZWFzZS4KCjIwMTItMDktMjQgMTY6MzE6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCBiYXNlc2luayBkb2NzCgoyMDEyLTA5LTI0IDE2OjI1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgZG9jczogdXBkYXRlIEZBUQoJICBDaGFuZ2UgdmVyc2lvbnMuCgkgIFVzZSB0b29scyB3aXRoIHZlcnNpb24gcHJlZml4LgoKMjAxMi0wOS0yNSAxMzoxNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciB0eXBvIGZpeAoKMjAxMi0wOS0yNSAxMzoxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0cmFuc2xhdGVkIHN0cmluZwoJICBTcG90dGVkIGJ5IENocmlzIExlb25hcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3NTUKCjIwMTItMDktMjUgMDk6Mjc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogUmVtb3ZlIDAuMTEuOVgtPjEuMC4wIHZlcnNpb24gbWFuZ2xpbmcKCjIwMTItMDktMjUgMDE6MDI6MDMgKzAxMDAgIEpvc2VwIFRvcnJhIFZhbGxlcyA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IHByaW50ZiBmb3JtYXQgZml4ZXMgdG8gbWFrZSBpbnRlbCBjb21waWxlciBoYXBweQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjU3CgoyMDEyLTA5LTI1IDAwOjU1OjU5ICswMTAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy90b29scy5oOgoJICBNYWtlIGludGVsIGNvbXBpbGVyIGhhcHBpZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MjY1NwoKMjAxMi0wOS0yNCAxNjozMTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgKGJ1ZyBmaXhpbmcpCgo9PT0gcmVsZWFzZSAxLjAuMCA9PT0KCjIwMTItMDktMjQgMTI6MTk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMAoKMjAxMi0wOS0yNCAwMDozOToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIDAuMTEgcmVmZXJlbmNlcyBpbiBwb3J0aW5nIGd1aWRlCgoyMDEyLTA5LTI0IDAwOjM3OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW5hbWUgcG9ydGluZy10by0wLjExLnR4dCB0byBwb3J0aW5nLXRvLTEuMC50eHQKCjIwMTItMDktMjMgMTk6NTY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IEZJWE1FIHByaW50aW5nIGZvciB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkKCjIwMTItMDktMjMgMTc6MzA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB1cGRhdGUgcmVsZWFzZSBkb2MKCSAgQ3JlYXRlIHRhZ3MgZm9yIHJlbGVhc2VzIHdpdGhvdXQgdGhlIHVnbHkgUkVMRUFTRS0gcHJlZml4LgoKMjAxMi0wOS0yMyAxMjo0MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGZvcndhcmQgcmFuZG9tIHN0cmVhbS1zdGFydCBldmVudAoJICBJdCdzIG5vdCByaWdodCwgYW5kIHdlIGRvbid0IGtub3cgd2hhdCBleHRyYSBwcm9wZXJ0aWVzCgkgIHRoYXQgZXZlbnQgbWlnaHQgaGF2ZSBzZXQgaW4gZnV0dXJlIChlLmcuIHNwYXJzZW5lc3MpLgoJICBUaGlzIGNoYW5nZSBtZWFucyBjb2xsZWN0cGFkIHVzZXJzIG5lZWQgdG8gY3JlYXRlIHRoZWlyCgkgIG93biBzdHJlYW0tc3RhcnQgZXZlbnQgbm93LiBXZSBjb3VsZCBhZGQgYSB1dGlsaXR5CgkgIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIHN0cmVhbS1zdGFydCBldmVudCBiYXNlZCBvbgoJICB0aGUgaW5wdXQgc3RyZWFtLXN0YXJ0IGV2ZW50cy4KCjIwMTItMDktMjIgMTY6MDc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRmOTYyZjcgdG8gNmMwYjUyYwoKMjAxMi0wOS0yMSAyMToxMzoyNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTIxIDIxOjEzOjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTE4IDE1OjIyOjAzICswMjAwICBCYXN0aWFuIFdpbmtsZXIgPGJ1ekBuZXRidXoub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IEZpeCBzeW50YXggZm9yIHZhbHVlIGxpc3RzIGluIGNhcHMgc3RyaW5ncwoJICBWYWx1ZSBsaXN0cyB1c2UgY3VybHkgYnJhY2tldHMgaW5zdGVhZCBvZiBwYXJlbnRoZXNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MjkzCgoyMDEyLTA5LTIwIDE0OjQ4OjE3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHBhZCBwcm9iZXMgb25seSBvbmNlCgkgIEFsc28gYWRkIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgaWYgYSBwYWQgcHJvYmUgaXMgcmVtb3ZlZCB3aGlsZSBpdCdzCgkgIGNhbGxiYWNrIGlzIHJ1bm5pbmcsIHRoZSBjbGVhbnVwX2hvb2sgaXNuJ3QgY2FsbGVkIGFnYWluIGlmIGl0CgkgIHJldHVybnMgR1NUX1BBRF9QUk9CRV9SRU1PVkUKCjIwMTItMDktMTkgMTU6MDE6NDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogQWRkIGZ1bmN0aW9ucyB0byBzYWZlbHkgYWNjZXNzIEdzdFByb2JlSW5mbyBkYXRhIHBvaW50ZXIKCSAgVGhpcyBpcyBzbyB0aGF0IGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgY2FuIGFjY2VzcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQwMgoKMjAxMi0wOS0xOSAyMzoyNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byAwLjggR3N0QmluIEFQSSBmcm9tIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MDQ4CgoyMDEyLTA5LTE5IDE1OjE0OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHRyYW5zZm9ybSBHQVAgZXZlbnQgaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0xOSAwOTo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogY29sbGVjdHBhZHMgZG9jIGZpeGVzCgoyMDEyLTA5LTE4IDIxOjQ5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNoZWNrIGFjcXVpcmUgcmVzdWx0IHZhbHVlCgkgIENoZWNrIHRoZSByZXN1bHQgdmFsdWUgZnJvbSBfYnVmZmVyX3Bvb2xfYWNxdWlyZSgpIGFuZCByZXR1cm4gdGhlCgkgIHZhbHVlIHdoZW4gYWxsb2NhdGlvbiBmYWlsZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQyODUKCjIwMTItMDktMTggMTI6MTQ6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByZWZjb3VudCBidWcgYnkgdW5yZWZmaW5nIHRoZSBjb3JyZWN0IHZhcmlhYmxlCgo9PT0gcmVsZWFzZSAwLjExLjk5ID09PQoKMjAxMi0wOS0xNyAxNzo1Njo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTkKCjIwMTItMDktMTcgMTM6MzU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkgIFJlbW92ZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBndWFyZCBhbmQgZGVmaW5lcwoKMjAxMi0wOS0xNyAxMzowOTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHBhZDogQWRkIHBhcmVudCBwYXJhbWV0ZXIgdG8gdGhlIGxpbmsgYW5kIHVubGluayBmdW5jdGlvbnMKCSAgRml4ZXMgcGFydCBvZiBidWcgIzY4Mzk5NS4KCjIwMTItMDktMTYgMjM6MjA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHNhbXBsZTogYWRkIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIGZ1bmN0aW9ucyBmb3IgR3N0U2FtcGxlCgkgIFNpbmNlIHRoZXNlIHRoaW5ncyBhcmUgaW5zaWRlIHRhZ2xpc3RzIG5vdywgaXQgd291bGQgYmUgZ29vZCB0byBiZQoJICBhYmxlIHRvIHByaW50IHRoZW0gYW5kIGRlc2VyaWFsaXNlIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEzMjIKCjIwMTItMDktMTUgMjE6NTY6MDcgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBTd2l0Y2ggdG8gRjE4IG5hbWluZyBvZiB0aGUgcGFja2FnZQoKMjAxMi0wOS0xNSAxODo0MzozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB1c2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEgdG8gcmVwbGFjZSBvYnNvbGV0ZSBBUEkKCjIwMTItMDktMTQgMTc6NTI6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgcmVwbGFjZSBnc3RfdGFnX2xpc3RfZnJlZSB3aXRoIGdzdF90YWdfbGlzdF91bnJlZgoKMjAxMi0wOS0xNCAxNzowMDoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZXhjbHVzaXZlIGxvY2svdW5sb2NrIHJhY2UKCjIwMTItMDctMDkgMjE6NTE6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBiYXNlc3JjLCBiYXNlc2luaywgYmFzZXBhcnNlLCB0eXBlZmluZDogdXNlIEdTVF9TRUdNRU5UX0ZMQUcgd2l0aCBzZWdtZW50IGZsYWdzCgoyMDEyLTA3LTA5IDIyOjExOjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogYWxzbyBjb3B5IHRoZSBzZWdtZW50IGZsYWcKCSAgRml4ZXMgc2VnbWVudGVkIHNlZWtzIChhcyB0ZXN0ZWQgZS5nLiBpbiB0aGUgYWRkZXIgdGVzdHMgaW4gYmFzZSkuCgoyMDEyLTA3LTA5IDIwOjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIHBsdWdpbnM6IHNwcmlua2xlIEdfR05VQ19JTlRFUk5BTCBmb3IgZGF0YXF1ZXVlIGZ1bmN0aW9ucwoJICBBbmQgcmVtb3ZlIHBhZGRpbmcsIHNpbmNlIHRoaXMgaXMgbm90IHB1YmxpYyBBUEkgYW55IG1vcmUuCgoyMDEyLTA3LTA5IDIwOjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgZ3N0OiBzcHJpbmtsZSBzb21lIEdfR05VQ19JTlRFUk5BTCBmb3IgaW50ZXJuYWwgZnVuY3Rpb25zCgoyMDEyLTA3LTA5IDIwOjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0ZXN0czogZml4IHRvYyB1bml0IHRlc3RzCgkgIE1lYW50IHRvIGNoZWNrIHN1YnN1YmVudHJ5LCBub3Qgc3ViZW50cnkuCgoyMDEyLTA3LTA5IDE4OjU4OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IG1pbm9yIHRvYyB0ZXN0IGNsZWFuLXVwCgoyMDEyLTA3LTA5IDE4OjUxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0ZXN0czogdHVybiB0b2MgY2hlY2sgbWFjcm9zIGludG8gcHJvcGVyIGZ1bmN0aW9ucwoJICBTbyB3ZSBjYW4gc2VlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY2hlY2sgdGhhdCBmYWlscy4KCjIwMTItMDctMDkgMjA6MzE6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlIGZvciBBUEkgY2hhbmdlcy9hZGRpdGlvbgoKMjAxMi0wNy0wOSAyMDoyOToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGNoZWNrOiBVcGRhdGUgdGVzdHMgZm9yIG5ldyBTVFJFQU1fU1RBUlQgbWVzc2FnZQoKMjAxMi0wNy0wOSAyMDoyODo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrOiBFbnN1cmUgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgaXMgcG9zdGVkCgkgIEEgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgaXMgcG9zdGVkIGlmIGFuZCBvbmx5IGlmIGFsbCBzaW5rcyBpbiB0aGUKCSAgYmluL3BpcGVsaW5lIHJlY2VpdmVkIHRoZSBTVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMjA6Mjg6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUG9zdCBhIFNUUkVBTV9TVEFSVCBtZXNzYWdlIHdoZW4gd2Ugc2VlIHRoZSBldmVudAoKMjAxMi0wNy0wOSAyMDoyNzo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogY29sbGVjdCBhbmQgYWdncmVnYXRlIFNUUkVBTV9TVEFSVCBtZXNzYWdlcwoJICB3aGVuIGFsbCBzaW5rcyBoYXZlIHBvc3RlZCBhIFNUUkVBTV9TVEFSVCwgdGhlIGJpbiB3aWxsIGZvcndhcmQgYQoJICBuZXcgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgdG8gdGhlIHBhcmVudCBiaW4gb3IgYXBwbGljYXRpb24KCjIwMTItMDctMDkgMjA6MDg6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG1lc3NhZ2U6IE5ldyBHU1RfTUVTU0FHRV9TVFJFQU1fU1RBUlQKCSAgbWVzc2FnZSBjb3VudGVycGFydCB0byB0aGUgR1NUX0VWRU5UX1NUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAxOTo1OTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrOiBVbml0IHRlc3QgZm9yIEVPUyBtZXNzYWdlCgkgIE1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGFnZ3JlZ2F0ZWQgbWVzc2FnZSBpZiBhbmQgb25seSBpZiBhbGwgc2lua3MKCSAgcmVjZWl2ZWQgYW4gRU9TIGV2ZW50CgoyMDEyLTA3LTA5IDE5OjU2OjE1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIFNUUkVBTV9TVEFSVCBoYW5kbGluZwoJICBVc2UgYSBmbGFnIHRvIGZvcndhcmQgdGhlIGZpcnN0IFNUUkVBTV9TVEFSVAoKMjAxMi0wNy0wOSAxNjoyMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBkb2NzOiB1cGRhdGUgc3RyZWFtIGRvY3MgZm9yIFNFR01FTlRfU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMTY6NDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBmaXggbW9yZSBkb2NzCgoyMDEyLTA3LTA5IDE2OjIyOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJICBkb2NzOiBmaXggZG9jcyBhIGxpdHRsZSBtb3JlCgoyMDEyLTA3LTA5IDE2OjAyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBtZW1vcnk6IE1ha2UgR3N0QWxsb2NhdG9yIGEgR3N0T2JqZWN0CgkgIE1ha2UgR3N0QWxsb2NhdG9yIGEgR3N0T2JqZWN0IGluc3RlYWQgb2YgYSBHc3RNaW5pT2JqZWN0LCBsaWtlIGJ1ZmZlcnBvb2wuCgkgIE1ha2UgYSBuZXcgZ3N0YWxsb2NhdG9yLmMgZmlsZS4gTWFrZSBhIEdzdEFsbG9jYXRvciBzdWJjbGFzcyBmb3IgdGhlIGRlZmF1bHQKCSAgYWxsb2NhdG9yLgoKMjAxMi0wNy0wOSAxMzoyMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiByZW1vdmUgdW51c2VkIG1hY3JvcwoKMjAxMi0wNy0wOSAxMzoyMDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IG1ha2UgYWJzdHJhY3QKCSAgTWFrZSB0aGUgR3N0Q2xvY2sgdHlwZSBhYnN0cmFjdC4KCSAgRml4IGEgaG9ycmlibGUgaGFjayBpbiB0aGUgY2xvY2sgdW5pdCB0ZXN0LgoKMjAxMi0wNy0wOSAxNTozNzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBGaXggaGFuZGxpbmcgb2YgbWluLXRocmVzaG9sZCBhbmQgc2VyaWFsaXplZCBxdWVyaWVzCgkgIE9ubHkgY29uc2lkZXIgdGhlIHF1ZXVlIGVtcHR5IGlmIHRoZSBtaW5pbXVtIHRocmVzaG9sZHMKCSAgYXJlIG5vdCByZWFjaGVkIGFuZCBkYXRhIGlzIGF0IHRoZSBxdWV1ZSBoZWFkLiBPdGhlcndpc2UKCSAgd2Ugd291bGQgYmxvY2sgZm9yZXZlciBvbiBzZXJpYWxpemVkIHF1ZXJpZXMuCgkgIFRoaXMgYWxzbyBtYWtlcyBzZW5kaW5nIG9mIHNlcmlhbGl6ZWQgZXZlbnRzLCBsaWtlIGNhcHMsIGhhcHBlbgoJICBmYXN0ZXIgYW5kIHBvdGVudGlhbGx5IGltcHJvdmVzIG5lZ290aWF0aW9uIHBlcmZvcm1hbmNlLgoJICBGaXhlcyBidWcgIzY3OTQ1OC4KCjIwMTItMDctMDkgMTM6MTU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHJlbW92ZSBwYWRkaW5nIG5vdyB0aGF0IHRoZSBzdHJ1Y3RzIGFyZSBwcml2YXRlCgoyMDEyLTA3LTA5IDEzOjEyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogYWRkIGdzdF90b2NfZHVtcCgpIGZ1bmN0aW9uIGZvciBkZWJ1Z2dpbmcKCSAgQVBJOiBnc3RfdG9jX2R1bXAoKQoKMjAxMi0wNy0wMyAwMDowNzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYnVzLCBjbG9jazogbWFrZSBzdXJlIHRoZXNlIG5ldmVyIGhhdmUgYSBmbG9hdGluZyByZWYKCSAgQ2xlYXIgdGhlIGluaXRpYWwgZmxvYXRpbmcgcmVmIGluIHRoZSBpbml0IGZ1bmN0aW9uIGZvcgoJICBidXNzZXMgYW5kIGNsb2Nrcy4gVGhlc2Ugb2JqZWN0cyBjYW4gYmUgc2V0IG9uIG11bHRpcGxlCgkgIGVsZW1lbnRzLCBzbyB0aGVyZSdzIG5vIGNsZWFyIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXAKCSAgaGVyZS4gSWRlYWxseSB3ZSdkIGp1c3Qgbm90IG1ha2UgdGhlbSBkZXJpdmUgZnJvbQoJICBHSW5pdGlhbGx5VW5vd25lZCBhdCBhbGwsIGJ1dCBzaW5jZSB3ZSB3YW50IHRvIGtlZXAKCSAgdXNpbmcgR3N0T2JqZWN0IGZlYXR1cmVzIGZvciBkZWJ1Z2dpbmcsIHdlJ2xsIGp1c3QgZG8KCSAgaXQgbGlrZSB0aGlzLgoJICBUaGlzIHNob3VsZCBhbHNvIGZpeCBzb21lIHByb2JsZW1zIHdpdGggYmluZGluZ3MsIHdoaWNoCgkgIHNlZW0gdG8gZ2V0IGNvbmZ1c2VkIHdoZW4gdGhleSBnZXQgZmxvYXRpbmcgcmVmcyBmcm9tCgkgIG5vbi1jb25zdHJ1Y3RvciBmdW5jdGlvbnMgKG9yIGZ1bmN0aW9ucyBhbm5vdGF0ZWQgdG8KCSAgaGF2ZSBhICd0cmFuc2ZlciBmdWxsJyByZXR1cm4gdHlwZSkuIFRoaXMgd29ya3Mgbm93OgoJICBmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IEdPYmplY3QsIEdzdAoJICBHT2JqZWN0LnRocmVhZHNfaW5pdCgpCgkgIEdzdC5pbml0KE5vbmUpCgkgIHBpcGVsaW5lPUdzdC5QaXBlbGluZSgpCgkgIGJ1cyA9IHBpcGVsaW5lLmdldF9idXMoKQoJICBwaXBlbGluZS5zZXRfc3RhdGUoR3N0LlN0YXRlLk5VTEwpCgkgIGRlbCBwaXBlbGluZTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTI4NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3MjAyCgoyMDEyLTA3LTA4IDIwOjE1OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogc3VwcHJlc3MgZ2xpYiBkZXByZWNhdGlvbnMgd2FybmluZ3MgZm9yIEdfVkFMVUVfQVJSQVkKCjIwMTItMDctMDcgMjM6MTM6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIHRlc3RzIGZvciBkYXRldGltZSB2YWx1ZSBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbgoJICBFc3AuIG9mIHBhcnRpYWwgZGF0ZXRpbWVzLgoKMjAxMi0wNy0wNyAyMjo0NjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB1c2UgZGF0ZXRpbWUgc2VyaWFsaXNlL2Rlc2VyaWFsaXNlIGZ1bmN0aW9ucyBmb3IgZGF0ZXRpbWVzCgkgIFRoaXMgcmUtdXNlcyBleGlzdGluZyBjb2RlIGFuZCBtYWtlcyBzdXJlIHdlIHByb3Blcmx5IHNlcmlhbGlzZQoJICBhbmQgZGVzZXJpYWxpc2UgZGF0ZXRpbWVzIHdoZXJlIG5vdCBhbGwgZmllbGRzIGFyZSBzZXQgKHRodXMKCSAgZml4aW5nIHNvbWUgd2FybmluZ3Mgd2hlbiBzZXJpYWxpc2luZyBzdWNoIGRhdGV0aW1lcykuCgoyMDEyLTA3LTA3IDIyOjQwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBkbyBvdXIgb3duIHNlcmlhbGlzYXRpb24gc28gd2UgY2FuIHNlcmlhbGlzZSBtaWNyb3NlY29uZHMgYXMgd2VsbAoJICBXZSBzdGlsbCBkb24ndCBkbyB0aGF0IGluIF90b19pc284NjAxX3N0cmluZygpIHRob3VnaCwgc2luY2UKCSAgdGhpcyB3aWxsIHByb2JhYmx5IG1vc3RseSBiZSB1c2VkIGluIHRhZ3MsIHdoZXJlIGl0IGRvZXNuJ3QKCSAgbWF0dGVyIHNvIG11Y2ggYW5kIHRoZSBtaWNyb3NlY29uZCBhcmd1bWVudCBtaWdodCBub3QgYmUKCSAgd2VsbC1yZWNlaXZlZCBieSBzb21lIHRhZyByZWFkZXJzLgoKMjAxMi0wNy0wNyAxOTo0Mzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogd2hlbiBkZXNlcmlhbGlzaW5nIHBhcnNlIG1pY3Jvc2Vjb25kcyBpZiBhdmFpbGFibGUKCjIwMTItMDctMDcgMTY6MDE6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGZpeCBzZWNvbmQgcGFyc2luZyBmYWlsdXJlIGNhc2Ugd2hlbiBkZXNlcmlhbGlzaW5nIGRhdGV0aW1lCgkgIFdoZW4gd2UgZmFpbCB0byBwYXJzZSB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIHJlc2V0IHRoZSB2YWx1ZSB0byAtMQoJICBpbnN0ZWFkIG9mIHBhc3Npbmcgc29tZSBlcnJvciB2YWx1ZSBhcyBzZWNvbmRzLiBBbHNvLCB3ZSBjYW4gc3RpbGwKCSAgdHJ5IHRvIHBhcnNlIHRpbWV6b25lIGluZm9ybWF0aW9uLgoKMjAxMi0wNy0wNyAxNTo0NDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBleGFtcGxlczogZml4IGRlYnVnIGxvZyBwcmludCBmb3JtYXRzIGluIG1lbW9yeSBleGFtcGxlcwoKMjAxMi0wNy0wNyAwMTozNzo1MCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBBZGQgZGVzdHJveSBub3RpZnkgYXJndW1lbnRzIHRvIGRlYnVnIHN0dWJzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MzUKCjIwMTItMDctMDYgMjA6Mzc6MDYgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFNldCBsY29weSBzdHJpbmcgY29uc3QgZXhhY3RseSBhcyBnbGliJ3MgbWFjcm8KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUzNAoKMjAxMi0wNy0wNiAxNzoxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgbWVtb3J5OiBleHBvc2UgdGhlIEdzdEFsbG9jYXRpb24gc3RydWN0dXJlCgkgIEV4cG9zZSB0aGUgR3N0QWxsb2NhdGlvbiBzdHJ1Y3R1cmUgYW5kIHByb3ZpZGUgYW4gX2luaXQgZnVuY3Rpb24uIFRoaXMgbWFrZXMgaXQKCSAgZWFzaWVyIHRvIG1ha2UgJ3N1YmNsYXNzZXMnIG9mIHRoZSBhbGxvY2F0b3IgdGhhdCBjb250YWluIG1vcmUgaW5mby4KCSAgSXQgYWxzbyBhbGxvd3MgdXMgdG8gZXhwb3NlIHRoZSBmbGFncyBvbiB0aGUgYWxsb2NhdG9yIG1pbmlvYmplY3QuCgkgIE1ha2UgYSBmbGFnIHRvIG5vdGUgdGhhdCB0aGUgYWxsb2NhdG9yIHVzZXMgYSBjdXN0b20gYWxsb2MgZnVuY3Rpb24uCgoyMDEyLTA3LTA2IDEyOjQ1OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEZW1vdGUgV0FSTklORyB0byBJTkZPCgkgIEl0IGlzIGNvbW1vbiB0byB1c2UgZ3N0X3N0cnVjdHVyZV9nZXQoKSB0byBrbm93IGlmIGEgZmllbGQgaXMgcHJlc2VudAoJICBvciBub3QuCgoyMDEyLTA3LTA2IDExOjQxOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBSZW1vdmUgdW51c2VkIGRlZmluZQoKMjAxMi0wNy0wNiAxMTo0MTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgY2hlY2s6IGdzdGNvbnRyb2xsZXIuaCBkb2Vzbid0IGV4aXN0IGFueW1vcmUKCjIwMTItMDctMDYgMTE6NDA6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGNoZWNrOiBVc2UgY29uc2lzdGVuY3ljaGVjayBvbiBiYXNlc3JjCgoyMDEyLTA3LTA2IDExOjM4OjU4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IENoZWNrIGZvciBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgQ2hlY2sgdGhhdCBpdCBpcyBhbHdheXMgYmVmb3JlIGFueSBzZXJpYWxpemVkIGV2ZW50LgoKMjAxMi0wNy0wNiAxMDoxMzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlbW92ZSB1bmltcGxlbWVudGVkIG1heGltdW0gcHJvcGVydHkKCjIwMTItMDctMDYgMTA6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBoYXMtc2luay1sb29wIHByb3BlcnR5CgoyMDEyLTA3LTA2IDEwOjA3OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIGRlcHJlY2F0ZWQgdGVtcC1sb2NhdGlvbiB1c2UsIG1ha2UgaXQgcmVhZC1vbmx5CgoyMDEyLTA3LTA2IDA5OjU3OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogcmVtb3ZlIGRlcHJlY2F0ZWQgY2hlY2stcGVyZmVjdCBwcm9wZXJ0eQoJICBSZXBsYWNlZCBieSB0aGUgbW9yZSBzcGVjaWZpYyBjaGVjay1pbXBlcmZlY3Qte3RpbWVzdGFtcCxvZmZzZXR9CgoyMDEyLTA3LTA2IDExOjQ5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHF1ZXJ5OiB1c2UgbW9yZSBnZW5lcmljIHN0cnVjdHVyZSBmb3IgbWV0YSBwYXJhbXMKCjIwMTItMDctMDYgMTE6MjI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBtYWtlIGZpbmRfYWxsb2NhdGlvbl9tZXRhIG1ldGhvZAoJICBNYWtlIGdzdF9xdWVyeV9maW5kX2FsbG9jYXRpb25fbWV0YSgpIHRoYXQgYWxzbyByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBtZXRhZGF0YQoJICBhbmQgcmVwbGFjZXMgZ3N0X3F1ZXJ5X2hhc19hbGxvY2F0aW9uX21ldGEoKS4KCjIwMTItMDctMDYgMTE6MDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcXVlcnk6IGFkZCBmbGFncyB0byBhbGxvY2F0aW9uIHF1ZXJ5CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gYWRkIEFQSSBzcGVjaWZpYyBmbGFncyB0byB0aGUgQUxMT0NBVElPTiBxdWVyeS4gVGhpcyBtYWtlcwoJICBpdCBwb3NzaWJsZSB0byBhbHNvIGNoZWNrIHdoYXQga2luZHMgb2Ygc3ViZmVhdHVyZXMgb2YgdGhlIG1ldGFkYXRhIEFQSSBhcmUKCSAgc3VwcG9ydGVkLgoKMjAxMi0wNy0wNiAwOToxMTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCBpbmNsdWRlcwoKMjAxMi0wNy0wNSAxODowNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmg6CgkgIG1lbW9yeTogYWRkIG1vcmUgZXhhbXBsZXMKCSAgQWRkIGFuIGV4YW1wbGUgb2YgYSBjdXN0b20gYWxsb2NhdG9yIHdpdGggYSBjdXN0b20gQVBJLgoKMjAxMi0wNy0wNSAxNzoxMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgZ3N0X21lbW9yeV9pbml0KCkKCSAgQWRkIGEgbWV0aG9kIHRoYXQgbWVtb3J5IGltcGxlbWVudGF0aW9ucyBjYW4gY2FsbCB0byBpbml0aWFsaXplIHRoZSBzdGFuZGFyZAoJICBHc3RNZW1vcnkgc3RydWN0dXJlLgoJICBNb3ZlIHRoZSBwYXJlbnQgaGFuZGxpbmcgaW4gdGhlIF9mcmVlIGhhbmRsZXIuCgkgIFJlYXJyYW5nZSBzb21lIGludGVybmFsIGZ1bmN0aW9uIHBhcmFtZXRlcnMgc28gdGhhdCB0aGUgb3JkZXIgaXMgY29uc2lzdGVudC4KCSAgQWRkIG1vcmUgbWVtb3J5IGV4YW1wbGVzCgoyMDEyLTA3LTA1IDE2OjE3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHNvbWUgbWluaW9iamVjdCBkb2NzCgoyMDEyLTA3LTA1IDE0OjI1OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkgIHRlc3RzOiBhZGQgbWVtb3J5IGV4YW1wbGUKCjIwMTItMDctMDUgMTI6MjU6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogZml4IHRvYyB1bml0IHRlc3QgYnVpbGQgYnkgcmVtb3ZpbmcgdG9jIHF1ZXJ5IHN0dWZmIHRoZXJlIHRvbwoKMjAxMi0wNy0wNSAxMzowMzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgZm9ybWF0IGFuZCBwb3NpdGlvbiB0byB0aGUgc2VnbWVudC1kb25lIGV2ZW50CgoyMDEyLTA3LTA1IDEyOjUzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWluaW9iamVjdC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTA3LTA1IDEyOjE3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogaW5jcmVhc2UgYW1vdW50IG9mIHBvc3NpYmxlIGZsYWdzCgoyMDEyLTA3LTA1IDEyOjUyOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZXZlbnQ6IEltcGxlbWVudCBzZWdtZW50LWRvbmUgZXZlbnQKCjIwMTItMDctMDUgMTI6Mzc6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogUmVtb3ZlIHNlY3Rpb24gYWJvdXQgVE9DIHF1ZXJ5CgoyMDEyLTA3LTA1IDEyOjM0OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0ZWQgc3ltYm9scyBsaXN0CgoyMDEyLTA3LTA1IDEyOjMxOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IFJlbW92ZSB0aGUgVE9DIHF1ZXJ5LCBpdCdzIG5vdCB2ZXJ5IHVzZWZ1bCBub3cgdGhhdCB3ZSBoYXZlIHN0aWNreSBldmVudHMKCjIwMTItMDctMDMgMTg6NDk6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFyazogUmVtb3ZlIHVubmVlZGVkIHF1YXJrcwoKMjAxMi0wNy0wMyAxODo0NTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBNYWtlIHN0cnVjdHVyZXMgb3BhcXVlIGFuZCBjbGVhbiB1cCBmdW5jdGlvbiBuYW1lcyBhbmQgZmllbGRzIGEgYml0CgoyMDEyLTA3LTA0IDE3OjAyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6Zml4IGRlYnVnIGNhdGVnb3J5CgoyMDEyLTA3LTA0IDE2OjM4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgbG9jayBmdW5jdGlvbmFsaXR5IHRvIEdzdE1pbmlPYmplY3QKCSAgTW92ZSB0aGUgbG9ja2luZyBtZXRob2RzIGZyb20gR3N0TWVtb3J5IHRvIEdzdE1pbmlPYmplY3QuCgkgIEFkZCBhIG1pbmlvYmplY3QgZmxhZyB0byBlbmFibGUgTE9DS0FCTEUgb2JqZWN0cy4gTE9DS0FCTEUgb2JqZWN0cyBjYW4KCSAgdXNlIHRoZSBsb2NrL3VubG9jayBBUEkgdG8gY29udHJvbCB0aGUgYWNjZXNzIHRvIHRoZSBvYmplY3QuCgkgIEFkZCBhIG1pbm9iamVjdCBmbGFnIHRoYXQgYWxsb3dzIHlvdSB0byBsb2NrIGFuIG9iamVjdCBpbiByZWFkb25seSBtb2RlLgoJICBNb2RpZnkgdGhlIF9pc193cml0YWJsZSgpIG1ldGhvZCB0byBjaGVjayB0aGUgc2hhcmVkIGNvdW50ZXIgZm9yIExPQ0tBQkxFCgkgIG9iamVjdHMuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnRyb2wgd3JpdGFiaWxpdHkgc2VwYXJhdGVseSBmcm9tIHRoZSByZWZjb3VudCBmb3IKCSAgTE9DS0FCTEUgb2JqZWN0cy4KCjIwMTItMDctMDQgMTY6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIG5ldyBsb2NraW5nIGRlYnVnIGNhdGVnb3J5CgoyMDEyLTA3LTA0IDEyOjI4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBpc19leGNsdXNpdmUKCjIwMTItMDctMDQgMTI6MDM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIExPQ0tfRkxBR19SRUFEV1JJVEUgZGVmaW5lCgoyMDEyLTA3LTA0IDExOjQ4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBtZW1vcnk6IHVwZGF0ZSBkb2NzCgoyMDEyLTA3LTA0IDEwOjEyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHNtYWxsIGNsZWFudXAKCjIwMTItMDctMDMgMTM6NTA6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDEyLTA3LTAzIDEzOjQ3OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEZpeCB0aGUgTk9fU0hBUkUgZmxhZyBpbiB0aGUgY29uc3RydWN0b3IKCSAgVGhlIE5PX1NIQVJFIGZsYWcgZG9lcyBub3QgaW5mbHVlbmNlIHRoZSBleGNsdXNpdmVuZXNzIG9mIHRoZSBidWZmZXIgaW5pdGlhbGx5CgkgIGJ1dCBvbmx5IGlmIGEgX3NoYXJlIG9wZXJhdGlvbiBjYW4gYmUgZG9uZS4gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBub3QgYmUgYWJsZSB0bwoJICBXUklURSBtYXAgYSBidWZmZXIgbWVtb3J5IGJlY2F1c2UgaXQgd291bGQgaGF2ZSBhIHNoYXJlIGNvdW50IG9mIGF0IGxlYXN0IDIuCgoyMDEyLTA3LTAzIDEzOjQ3OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG9ubHkgY2hlY2sgdGhlIGxvY2tpbmcgcmVmY291bnQKCjIwMTItMDctMDMgMTM6NDY6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHJlc2l6ZQoJICBDb3JyZWN0bHkgdXBkYXRlIHRoZSBleGNsdXNpdmUgbG9ja3MKCjIwMTItMDctMDMgMTM6NDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogVXNlIGxvY2sgZmxhZ3MgZm9yIG1hcCBmbGFncwoJICBXZSBpbXBsZW1lbnQgdGhlIGxvY2tpbmcgaW4gZ3N0X21lbW9yeV9tYXAgd2l0aCB0aGUgbG9jayBmbGFncywgbWFrZSBtYXRjaGluZwoJICBmbGFncyB0aGUgc2FtZSBudW1iZXIgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBtYXAgZmxhZ3MgZGlyZWN0bHkgYXMgbG9jayBmbGFncy4KCjIwMTItMDctMDMgMTI6MTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbG9jayBtZW1vcnkgRVhDTFVTSVZFCgkgIGxvY2sgdGhlIG1lbW9yeSB0aGF0IHRoZSBidWZmZXIgcmVmZXJlbmNlcyBhcyBFWENMVVNJVkUuIFRoaXMgbWFrZXMgc3VyZSB0aGF0CgkgIHdoZW4gd2Ugc2hhcmUgdGhlIG1lbW9yeSB3aXRoIG90aGVyIGJ1ZmZlcnMgdGhhdCBpdCBiZWNvbWVzIHVud3JpdGFibGUuCgoyMDEyLTA3LTAzIDEyOjE2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNsZWFudXAgdGhlIGxvY2tpbmcgY29kZQoJICBjbGVhbnVwIGFuZCBmaXggdGhlIGxvY2tpbmcgY29kZQoKMjAxMi0wNy0wMyAwOTo0ODozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZXhwb3NlIHRoZSBpbnRlcm5hbCBsb2NraW5nIGFwaQoJICBFeHBvc2UgdGhlIGludGVybmFsbHkgdXNlZCBtZXRob2RzIGZvciBsb2NraW5nIGFuZCB1bmxvY2tpbmcgdGhlIG9iamVjdC4gUGFzcwoJICB0aGUgYWNjZXNzIG1vZGUgdG8gdGhlIHVubG9jayBmdW5jdGlvbiBmb3IgZXh0cmEgY2hlY2tzIGFuZCBiZWNhdXNlIHdlIG5lZWQgaXQKCSAgZm9yIHRoZSBFWENMVVNJVkUgbG9ja3MuCgkgIE1ha2Ugc29tZSBuZXcgZGVmaW5lcyB0byBzcGVjaWZ5IHRoZSBkZXNpcmVkIGxvY2tpbmcuCgkgIEFkZCBhIG5ldyBFWENMVVNJVkUgbG9jayBtb2RlIHdoaWNoIHdpbGwgaW5jcmVtZW50IHRoZSBzaGFyZWQgY291bnRlci4gT2JqZWN0cwoJICB3aXRoIGEgc2hhcmVkIGNvdW50ZXIgPiAxIHdpbGwgbm90IGJlIGxvY2thYmxlIGluIFdSSVRFIG1vZGUuCgoyMDEyLTA2LTI5IDE2OjM3OjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogZXh0ZW5kIGJ1ZmZlciBjb3B5IHRlc3QKCSAgLi4uIHRvIGNoZWNrIGZvciBpbmRlcGVuZGVuY2Ugb2YgY29waWVkIGJ1ZmZlci4KCjIwMTItMDctMDQgMTg6MzI6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgb3V0ZGF0ZWQgYml0cyBvZiB3YXJuaW5nIG1lc3NhZ2UKCSAgSSB0aGluayB3ZSBjYW4gYmUgcmVhc29uYWJsZSBzdXJlIHBlb3BsZSBhcmUgdXNpbmcgYW4gdXAtdG8tZGF0ZQoJICBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IG5vdy4KCjIwMTItMDctMDQgMTg6MTY6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgQWRkIHZlcnNpb25lZCB2YXJpYW50cyBvZiBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBJbXByb3ZlIHBhcmFsbGVsIGluc3RhbGxhYmlsaXR5IGluIHNldHVwcyBsaWtlIGpoYnVpbGQgYnkKCSAgcHJvdmlkaW5nIHZlcnNpb25lZCB2YXJpYW50cyBvZiBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlczoKCSAgR1NUX1JFR0lTVFJZXzFfMAoJICBHU1RfUExVR0lOX1BBVEhfMV8wCgkgIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEhfMV8wCgkgIEdTVF9QTFVHSU5fU0NBTk5FUl8xXzAKCSAgd2lsbCBub3cgYmUgY2hlY2tlZCBiZWZvcmUgY2hlY2tpbmcgdGhlIHVudmVyc2lvbmVkIG9uZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk0MDcKCjIwMTItMDctMDQgMTc6NTU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBkb2NzOiBmaXggdHlwbyBpbiBHc3RTYW1wbGUgZG9jcwoKMjAxMi0wNy0wNCAxNzozNjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiB0aGVyZSBhcmUgdmFsaWQgVVJJIHByb3RvY29scyB3aXRoIG9ubHkgdHdvIGxldHRlcnMsIGxpa2UgZmQ6Ly8KCSAgV2UgYWRkZWQgYSBtaW5pbXVtIGxlbmd0aCBvZiB0aHJlZSBsZXR0ZXJzIG9yaWdpbmFsbHkgc28gd2Ugd291bGQKCSAgZmFpbCB0byByZWNvZ25pc2UgRE9TL1dpbmRvd3Mtc3R5bGUgZmlsZW5hbWVzIGFzIHZhbGlkIFVSSXMgKGFzIHdlCgkgIHNob3VsZCkuIFR3byBzaG91bGQgYmUganVzdCBmaW5lIGFzIHdlbGwuCgoyMDEwLTEwLTEzIDEzOjM2OjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogQVBJIGFkZGl0aW9ucwoKMjAwOS0wOS0yOSAwOTo1NDoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRhdGFxdWV1ZTogVXNlIEdzdFF1ZXVlQXJyYXkKCjIwMDktMDktMjggMTc6MzE6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFVzZSBuZXcgR3N0UXVldWVBcnJheSBmb3IgbG9jYWwgc3RvcmFnZS4KCSAgTWFrZXMgX2NoYWluKCkgYW5kIF9sb29wKCkgMjUlIGZhc3RlcgoKMjAwOS0wOS0yOSAwOTowNjoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgY2hlY2s6IE5ldyB1bml0IHRlc3QgZm9yIEdzdFF1ZXVlQXJyYXkKCjIwMDktMDktMjggMTc6MzA6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgbGliczogTmV3IGdyb3dpbmctb25seSBxdWV1ZS4KCSAgVGhpcyBpcyBhIHF1ZXVlIHdoaWNoIGhhcyB0aGUgc2FtZSBBUEkgYXMgR1F1ZXVlLCBleGNlcHQgdGhhdDoKCSAgKiBJdCB1c2VzIGFuIGFycmF5LCBpbnN0ZWFkIG9mIGEgZG91YmxlZC1saW5rZWQtbGlzdAoJICAqIFRoZSBhcnJheSBjYW4gb25seSBncm93LgoJICBUaGlzIGNvZGUgaXMgbm90LXRocmVhZHNhZmUuIEl0IGlzIHVwIHRvIHRoZSBvd25lciB0byBtYWtlIHN1cmUgdGhlCgkgIHByb3BlciBsb2NraW5nIGlzIHRha2VuIGJlZm9yZSBjYWxsaW5nIHRoaXMgQVBJLgoKMjAxMi0wNy0wNCAxNjoxNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogbWFrZSBzdXJlIHdlIGRvbid0IGhhdmUgdW5tYXBwZWQgc2VlayBmbGFncyBsaXR0ZXJpbmcgb3V0IHNlZ21lbnQgZmxhZ3MKCSAgTWFrZSBHc3RTZWVrRmxhZyB0byBHc3RTZWdtZW50RmxhZyBjb252ZXJzaW9uIGV4cGxpY2l0LCBhbmQKCSAgc2V0IG9ubHkgdGhvc2Ugc2VlayBmbGFncyBpbiB0aGUgc2VnbWVudCBmbGFncyB3aGljaCBhcmUKCSAgbWFwcGVkLiBUaGlzIG1ha2VzIHN1cmUgd2UgZG9uJ3QgaGF2ZSBleHRyYW5lb3VzIGZsYWdzCgkgIGxpdHRlcmluZyBvdXIgc2VnbWVudCBmbGFnIGZpZWxkLCB3aGljaCBhbHNvIGZpeGVzIHRoZQoJICBkZWJ1ZyBwcmludGluZy9zZXJpYWxpc2F0aW9uIG9mIHNlZ21lbnQgZXZlbnRzIGluIHRoZQoJICBkZWJ1ZyBsb2cuCgoyMDEyLTA3LTA0IDEwOjI0OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWlub3IgcG9ydGluZy10by0wLjExLnR4dCB1cGRhdGUKCjIwMTItMDctMDQgMTA6MjM6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IG1ha2UgY2hlY2tzIGZvciBmcm9tL3RvX2dfZGF0ZV90aW1lKCkgYWN0dWFsbHkgd29yayBwcm9wZXJseQoKMjAxMi0wNi0yOSAyMTo1Mjo0NyAtMDQwMCAgSm9zaHVhIE0uIERvZSA8am9zaEBqb3NoZG9lLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogYWRkIGNvbnZlcnNpb24gdG8vZnJvbSBHRGF0ZVRpbWUKCSAgRXhwb3NlcyBleGlzdGluZyBjb25zdHJ1Y3Rvci4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3RvX2dfZGF0ZV90aW1lKCkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2dfZGF0ZV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTA4MAoKMjAxMi0wNy0wNCAwODo1MjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgdW51c2VkIGdzdF9wcmludF8qIGZ1bmN0aW9ucwoKMjAxMi0wNy0wMyAyMjoyNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogbm8gbmVlZCB0byBkZWFjdGl2YXRlIHBhZHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBQQURfTU9ERV9OT05FCgoyMDEyLTA3LTAzIDIyOjIwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IG1ha2UgcGFkIGFjdGl2YXRpb24gZGVidWcgbG9ncyBhIGJpdCBtb3JlIHJlYWRhYmxlCgoyMDEyLTA3LTAzIDE5OjE1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGVsZW1lbnQgcmUtdXNlIHVzaW5nIGZha2VzcmMKCjIwMTItMDctMDMgMTk6MDQ6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFyIEVPUyBmbGFnIHdoZW4gZGVhY3RpdmF0aW5nIHBhZHMgZml4aW5nIGVsZW1lbnQgcmUtdXNlCgoyMDEyLTA3LTAzIDE3OjI1OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBvc3QgVE9DIG1lc3NhZ2VzIG9uIHRoZSBidXMgaW4gdGhlIHNpbmtzLCBzaW1pbGFyIHRvIHRhZ3MKCjIwMTItMDctMDMgMTI6Mzg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHRoZSBfZ2V0X21hcHBlZCBmdW5jdGlvbgoJICBGaXggdGhlIGludGVybmFsIF9nZXRfbWFwcGVkIGZ1bmN0aW9uLiBnc3RfbWVtb3J5X21ha2VfbWFwcGVkKCkgdGFrZXMgb3duZXJzaGlwCgkgIG9mIHRoZSBtZW1vcnkgc28gd2UgbmVlZCB0byBrZWVwIGFuIGFkZGl0aW9uYWwgcmVmIHVudGlsIHdlIGFyZSBkb25lLgoKMjAxMi0wNy0wMyAxMjoyMzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZyBsb2cKCjIwMTItMDctMDMgMTA6MDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBUaGUgR0FQIGV2ZW50IGlzIChwYXJ0aWFsbHkpIGltcGxlbWVudGVkIG5vdywgU1RSRUFNX0NPTkZJRyBpc24ndAoKMjAxMi0wNi0yOCAxNjo0MjowOCArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogaW5jbHVkZSBnc3QvbWF0aC1jb21wYXQuaCBmb3IgaXNuYW4oKQoJICBEdWUgdG8gdGhlIHVzYWdlIG9mIGlzbmFuKCksIHdoZXJlIGFuIGltcGxlbWVudGF0aW9uIGlzIGFkZGVkIGludG8KCSAgZ3N0L21hdGgtY29tcGF0LmguIEZpeGVzIGJ1aWxkIG9uIFZpc3VhbCBDKysuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDYtMjkgMTY6NTI6MzEgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0Lmg6IGFkZCBpbXBsZW1lbnRhdGlvbiBmb3IgaXNuYW4oKSBmb3IgVmlzdWFsIEMrKwoJICBWaXN1YWwgQysrIGRvZXMgbm90IGhhdmUgaXNuYW4oKSwgc28gYWRkIGZhbGxiYWNrIHRvCgkgIG1hdGgtY29tcGF0LmggKGNvdWxkIHVzZSBfaXNuYW4oKSBpbiB0aGlzIGNhc2UsIGJ1dAoJICB0aGlzIG1ha2VzIGl0IHdvcmsgZm9yIGFsbCBjYXNlcyB3aGVyZSBpc25hbiBpcyBtaXNzaW5nKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNi0yOSAxMDo1NjozNCArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbmsuYzogZml4IEdfT1NfV0lOMzIgI2lmZGVmCgkgIFBvc3Rwb25lIHRoZSAjaWZkZWYgdG8gYSBwb2ludCBhZnRlciBnbGliLmggKHZpYSBnc3RmZHNpbmsuaCkgaXMgaW5jbHVkZWQKCSAgc28gdGhhdCB0aGUgbmVlZGVkIGRlZmluZXMgYW5kIGhlYWRlciBpbmNsdWRlcyBjYW4gYmUgZG9uZSBjb3JyZWN0bHksCgkgIGVzcGVjaWFsbHkgb24gVmlzdWFsIEMrKyBidWlsZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDUtMjcgMjM6MDk6NDMgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBmaXggYnVpbGQgb2YgZGF0ZXRpbWUgdW5pdCB0ZXN0IGluIFdpbmRvd3MKCSAgQWxzbyBpbmNsdWRlIGNvbmZpZy5oIGZvciBhbGwgdGhlICNpZmRlZiBIQVZFX1hZWi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjkzNQoKMjAxMi0wNi0yOSAxMToxOTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBkb24ndCB1c2UgZ19zdHJkdXBfdmFsdWVfY29udGVudHMoKQoJICBnX3N0cmR1cF92YWx1ZV9jb250ZW50cygpIGRvZXMgc29tZSBleHRyYSBlc2NhcGluZywgcHJldmVudGluZyB1cyBmcm9tIHVzaW5nIHRoZQoJICBvdXRwdXQgb24gdGhlIGNvbnNvbGUgdG8gYmUgdXNlZCBkaXJlY3RseS4KCjIwMTItMDYtMjggMTQ6NDE6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGV4cGFuZCBhIGJpdCBtb3JlIG9uIEdTVF9ERUJVRyBkb2NzCgoyMDEyLTA2LTI4IDExOjAyOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBfYXBwZW5kX3JlZ2lvbiBmdW5jdGlvbgoJICBNYWtlIGEgZ3N0X2J1ZmZlcl9hcHBlbmRfcmVnaW9uKCkgZnVuY3Rpb24gdGhhdCBhbGxvd3MgeW91IHRvIGFwcGVuZCBhIG1lbW9yeQoJICByZWdpb24gZnJvbSBvbmUgYnVmZmVyIHRvIGFub3RoZXIuIFRoaXMgaXMgYSBtb3JlIGdlbmVyYWwgdmVyc2lvbiBvZgoJICBnc3RfYnVmZmVyX2FwcGVuZCgpLgoKMjAxMi0wNi0yOCAwOTozNjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgRFRTIGFuZCBQVFMKCSAgVXNlIERUUyBhbmQgUFRTIG9mIHRoZSBzdWJjbGFzcy4KCSAgQ2FsY3VsYXRlIFBUUyBmcm9tIERUUyBvbiBrZXlmcmFtZXMuCgoyMDEyLTA2LTI3IDIzOjAxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiB0ZXN0IGRhdGV0aW1lIGRlc2VyaWFsaXNhdGlvbiBhIGJpdCBtb3JlCgoyMDEyLTA2LTI3IDIzOjAwOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBpZ25vcmUgMCBkYXlzIG9yIG1vbnRocyBpbiBkYXRlcwoJICBIYW5kbGUgMCBtb250aHMgb3IgZGF5cyBjb3JyZWN0bHkgaW4gZGF0ZSBzdHJpbmdzLCBzbyB0aGF0CgkgIDIwMTItMDYtMDAgaXMgcGFyc2VkIHRoZSBzYW1lIGFzIDIwMTItMDYsIGZvciBleGFtcGxlLgoKMjAxMi0wMS0wMSAxNjozODowOCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogTWFrZSBzdXJlIEFDX0lOQ0xVREVTX0RFRkFVTFQgaXMgdXNlZAoJICBXaXRob3V0IHVzaW5nIEFDX0lOQ0xVREVTX0RFRkFVTFQgZXhwbGljaXRseSwKCSAgY2VydGFpbiBwbGF0Zm9ybXMgd2lsbCBjb21wbGFpbiB0aGF0IHRoZSBoZWFkZXIKCSAgd2FzIGZvdW5kLCBidXQgbm90IHVzYWJsZSBieSB0aGUgY29tcGlsZXIuCgkgIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugb24gU29sYXJpcyB3aGVyZSBjZXJ0YWluCgkgIGhlYWRlcnMgYXJlIG5lZWRlZCB0byBwdWxsIGluIHByb3BlciBkZWZpbmVzLgoJICBBbHNvIHVwZ3JhZGUgdG8gbmV3ZXIgYXV0b2NvbmYgc3ludGF4IGFuZCB1c2UgcHJvcGVyIHF1b3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTMKCjIwMTItMDYtMjcgMjA6NTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBmaXggYnVzIGxlYWsgaW4gR3N0QmluIHRlc3Rfc3RhdGVfY2hhbmdlX3NraXAgdGVzdAoJICBTdGlsbCBub3QgdmFsZ3JpbmQgY2xlYW4gdGhvdWdoLgoKMjAxMi0wNi0yNyAxOTo1OToyOSArMDEwMCAgQ2hyaXN0b3BoZSBGZXJnZWF1IDx0ZXVmQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogZXNjYXBlIFwgd2l0aCBhIFwgYXMgd2VsbCwgc28gdGhhdCB3ZSBkb24ndCBsb3NlIHRoZSBcIHdoZW4gdW5lc2NhcGluZwoJICBJZiB3ZSBoYXZlIGEgZmlsZSBjYWxsZWQgRm9vXEJhci5vZ2csIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzCgkgIHRoYXQgZmlsZW5hbWUgcHJvcGVybHkgdG8gZmlsZXNyYyBpbiBnc3RfcGFyc2VfbGF1bmNoKCksIHNpbmNlCgkgIGdzdF9wYXJzZV91bmVzY2FwZSgpIHdpbGwganVzdCB1bmVzY2FwZSBceCB0byB4LgoJICBOb3QgY2hlcnJ5LXBpY2tpbmcgdGhpcyBpbnRvIDAuMTAgc2luY2UgdGhlcmUgYXJlIGFwcGFyZW50bHkKCSAgYXBwcyB0aGF0IHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSBhbmQgd2hpY2ggd291bGQgYnJlYWsgaWYKCSAgd2UgZml4ZWQgaXQgdGhlcmUgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMzE5CgoyMDEyLTA2LTI3IDE2OjM3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYW5ub3RhdGUgc29tZSBvZiB0aGUgdHlwZSBkZWZpbmVzIGZvciBnLWkKCSAgVHlwZSBpcyBub3QgcGlja2VkIHVwIHlldCB0aG91Z2gsIGFuZCB3ZSBzdGlsbCBuZWVkCgkgIHRvIGFubm90YXRlIHZhbHVlcyBmb3IgdGhlICdzaW1wbGUnIGRlZmluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc5MjUKCjIwMTItMDYtMjcgMTQ6NDg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhbm5vdGF0ZSBHU1RfQ0xPQ0tfVElNRV9OT05FIHdpdGggaXRzIHZhbHVlIGZvciBnLWkKCSAgVGhlIHZhbHVlIG5vdyBnZXRzIHBpY2tlZCB1cCwgYnV0IGl0IHN0aWxsIHRoaW5rcyB0aGUgdHlwZQoJICBpcyBhICdnaW50Jy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODkyOAoKMjAxMi0wNi0yNyAxMzoxOToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGRhdGV0aW1lIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMzEKCjIwMTItMDYtMjcgMTM6MTY6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZGF0ZXRpbWU6IGZpeCBjb21wYXJlIGZ1bmN0aW9uCgkgIFRha2UgaW50byBhY2NvdW50IHRoYXQgbm90IGFsbCBmaWVsZHMgbWlnaHQgYmUgdmFsaWQgKHRob3VnaCB0aGV5CgkgIGFyZSB2YWxpZCBpbiB0aGUgR0RhdGVUaW1lIHN0cnVjdHVyZSkuIEJ1dCB3ZSBzaG91bGQganVzdCByZXR1cm4KCSAgdW5vcmRlcmVkIGlmIHRoZSBzZXQgZmllbGRzIGRvbid0IG1hdGNoLiBBbHNvLCBkb24ndCBjaGVjawoJICBtaWNyb3NlY29uZHMgd2hlbiBjb21wYXJpbmcgZGF0ZXRpbWVzLCBzaW5jZSB3ZSBkb24ndCBzZXJpYWxpc2UKCSAgdGhvc2UgYnkgZGVmYXVsdCBpZiB0aGV5J3JlIGF2YWlsYWJsZS4gVGhpcyBlbnN1cmVzIGRhdGUgdGltZXMgYXJlCgkgIHN0aWxsIHJlZ2FyZGVkIGFzIGVxdWFsIGFmdGVyIHNlcmlhbGlzaW5nK2Rlc2VyaWFsaXNpbmcuCgoyMDEyLTA2LTE4IDA4OjA2OjQ5ICswMjAwICBPbGVrc2lqIFJlbXBlbCA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IGFkZCBzZXJpYWxpc2F0aW9uIHRvIGFuZCBkZXNlcmlhbGlzYXRpb24gZnJvbSBJU08gODYwMSBzdHJpbmdzCgkgIFNvbWUgdGFnIHBhcnNlcnMgYW5kIHdyaXRlcnMgdXNlIHNhbWUgZGF0ZXRpbWUgZm9ybWF0IGJhc2VkIG9uIElTTyA4NjAxLgoJICBXZSBjYW4gcmVkdWNlIHNvbWUgY29kZSBieSBjcmVhdGluZyBzb21lIGdlbmVyYWwgZnVuY3Rpb25zIGZvciBpdC4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3RvX2lzbzg2MDFfc3RyaW5nKCkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2lzbzg2MDFfc3RyaW5nKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAzMQoKMjAxMi0wNi0wNyAxMTozMDo0OCArMDEwMCAgTGlvbmVsIExhbmR3ZXJsaW4gPGxsYW5kd2VybGluQGdtYWlsLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IGFkZCAtLWRpc2FibGUtdG9vbHMgYW5kIC0tZGlzYWJsZS1iZW5jaG1hcmtzIG9wdGlvbnMKCSAgQWRkIG9wdGlvbiB0byBhdm9pZCBidWlsZCBiaW5hcmllcy4gV2hlbiBidWlsZGluZyBmb3IgcGxhdGZvcm1zIGxpa2UKCSAgYW5kcm9pZCwgeW91IG1pZ2h0IHdhbnQgdG8gbm90IGxpbmsgYW55ICJmaW5hbCIgYmluYXJ5LCBtb3N0bHkgYmVjYXVzZQoJICBpdCByZXF1aXJlcyBzcGVjaWFsIGxpbmsgZmxhZ3Mgb3Igb3RoZXIgcGFydHMgb2YgY29kZSB0aGF0IGFyZW4ndAoJICBpbiB0aGUgQyBsaWJyYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NjIxCgoyMDEyLTA2LTI2IDIwOjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogcHV0IHRvYyBkaXJlY3RseSBpbnRvIGV2ZW50L21lc3NhZ2UvcXVlcnkgc3RydWN0dXJlCgkgIE5vdyB0aGF0IFRPQ3MgYXJlIHJlZmNvdW50ZWQgYW5kIGhhdmUgYSBHVHlwZSwgd2UgY2FuIGp1c3QKCSAgc3R1ZmYgYSByZWYgb2YgdGhlIFRPQyBkaXJlY3RseSBpbnRvIHRoZSB2YXJpb3VzIHRvYwoJICBldmVudC9tZXNzYWdlL3F1ZXJ5IHN0cnVjdHVyZXMgYW5kIGdldCByaWQgb2YgbG90cyBvZgoJICBjcmFja3Rhc3RpYyBHc3RTdHJ1Y3R1cmUgPC0+IEdzdFRvYyBzZXJpYWxpc2F0aW9uIGFuZAoJICBkZXNlcmlhbGlzYXRpb24gY29kZS4gV2UgbG9zZSBzb21lIFRPQyBzYW5pdHkgY2hlY2tpbmcKCSAgaW4gdGhlIHByb2Nlc3MsIGJ1dCB0aGF0IHNob3VsZCByZWFsbHkgYmUgZG9uZSB3aGVuCgkgIGl0J3MgYmVpbmcgY3JlYXRlZCBhbnl3YXkuCgoyMDEyLTA2LTI2IDE4OjIyOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IHNraXAgZ3N0X2J1c19jcmVhdGVfd2F0Y2ggYXMgR1NvdXJjZSBpcyBub3QgaW50cm9zcGVjdGFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTMwZTM2YTg5YmM1YzJhMGYyZTRhYjdhNzNiZmE2MzBjMWUwMzM2YS4KCSAgVGhpcyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHB1c2hlZCwgc2luY2UgR1NvdXJjZSBpcyBub3cgaGFuZGxlZAoJICAoaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzcyNSkKCjIwMTEtMDgtMjkgMTM6NTc6MDMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHNraXAgZ3N0X2J1c19jcmVhdGVfd2F0Y2ggYXMgR1NvdXJjZSBpcyBub3QgaW50cm9zcGVjdGFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMi0wNi0yNiAxNzozNToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzb21lIG1vcmUgYWRkaXRpb25zIHRvIHRoZSBwb3J0aW5nLXRvLTAuMTEgZ3VpZGUKCjIwMTItMDYtMjYgMTc6Mjc6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IG1pbm9yIGNsZWFuLXVwCgkgIEdldCByaWQgb2Ygc3VwZXJmbHVvdXMgYXJndW1lbnQuCgoyMDEyLTA2LTI2IDE3OjA0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiByZW1vdmUgdXNlbGVzcyBnX3NldF9wcmduYW1lKCkgd3JhcHBlcgoKMjAxMi0wNi0yNiAxNjo1NTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwb2ludCBwZW9wbGUgdG8gcmlnaHQgYmluYXJ5IHdoZW4gYSBjcmFzaCBoYXBwZW5zCgkgICJnc3QtbGF1bmNoIiBpcyB0aGUgMC4xMCB3cmFwcGVyIHNjcmlwdCwgdXNpbmcgdGhhdCB3aXRoCgkgIGdkYiBpcyBub3QgZ29pbmcgdG8geWllbGQgZ3JlYXQgcmVzdWx0cy4KCjIwMTItMDYtMjYgMTY6NDI6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byBub3ctcmVsZWFzZWQgc3RhYmxlIHZlcnNpb24KCjIwMTItMDYtMjYgMTY6NDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSBzb21lIGRlYWQgY29kZSBmb3Igb2xkIEdMaWIgdmVyc2lvbnMKCjIwMTItMDYtMjUgMjM6MTc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogYWRkIG1vcmUgZW50cnkgdHlwZXMKCSAgTWFrZSBlbnRyeSB0eXBlcyBsZXNzIGFic3RyYWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA2LTE3IDEyOjQ4OjA0ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBhIGNvdXBsZSBvZiBub3RlcyBmb3IgdGhlIDAuMTEgcG9ydGluZyBndWlkZQoKMjAxMi0wNi0yNiAwOTo1MToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgc3RlYWxfcWRhdGEKCSAgUmV3b3JrIHRoZSBxZGF0YSBjb2RlIGEgbGl0dGxlCgoyMDEyLTA2LTI1IDE5OjUyOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvY3NldHRlcjogY2xlYW4gdXAgYW5kIHVwZGF0ZSBBUEkgZm9yIHJlZmNvdW50ZWQgVE9DcwoJICBMZXQncyBrZWVwIGl0IHNpbXBsZSBmb3Igbm93OgoJICBnc3RfdG9jX3NldHRlcl9yZXNldF90b2MoKSAtPiBnc3RfdG9jX3NldHRlcl9yZXNldCgpCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfY29weSgpIC0+IHJlbW92ZWQKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvYygpIC0+IHJldHVybnMgYSByZWYgbm93CgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfZW50cnlfY29weSgpIC0+IHJlbW92ZWQsCgkgIHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19lbnRyeSgpIC0+IHJlbW92ZWQsCgkgIHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCSAgZ3N0X3RvY19zZXR0ZXJfYWRkX3RvY19lbnRyeSgpIC0+IHJlbW92ZWQsCgkgIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggKHJlZmNvdW50LWRlcGVuZGVudCkKCSAgd3JpdGFiaWxpdHkgb2YgVE9DOyB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgoyMDEyLTA2LTI1IDA5OjMyOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGltcHJvdmUgZG9jcwoJICBNZW50aW9uIHRoYXQgY3VzdG9tIGFsbG9jYXRvciBmdW5jdGlvbnMgY2FuIHBhc3Mgd2hhdGV2ZXIgdGhleSB3YW50IHRvIHRoZQoJICB1c2VyX2RhdGEuCgoyMDEyLTA0LTA2IDE4OjAwOjMzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVzZSBHX0RFRklORV9JTlRFUkZBQ0VfKiBtYWNybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjQxCgoyMDEyLTA0LTA2IDE3OjU5OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIHRvY3NldHRlcjogdXNlIEdfREVGSU5FX0lOVEVSRkFDRV8qIG1hY3JvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM2NDEKCjIwMTItMDYtMjUgMDA6MTA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcyBmb3IgVE9DIEFQSSBjaGFuZ2VzIHRvbwoKMjAxMi0wNi0yNCAyMDoxMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9jc2V0dGVyLCBnc3QtbGF1bmNoLCB0ZXN0czogdXBkYXRlIGZvciBHc3RUb2MgQVBJIGNoYW5nZXMKCjIwMTItMDYtMjQgMjA6MDg6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogbWFrZSBHc3RUb2MgYW5kIEdzdFRvY0VudHJ5IG1pbmkgb2JqZWN0cwoJICBCZWNhdXNlIHdlIGNhbiwgYW5kIGluIG9yZGVyIHRvIG1ha2UgdGhlbSByZWZjb3VudGVkLgoKMjAxMi0wNi0yMyAyMTo0Mjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCBjb25mdXNpbmcgbG9nIG1lc3NhZ2UKCjIwMTItMDYtMjMgMjE6MzU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBpbnQ2NCAtIGludDY0IHJhbmdlIGludGVyc2VjdGlvbiBvbiBiaWcgZW5kaWFuIHN5c3RlbXMKCSAgV29ya3MgYmV0dGVyIGlmIHdlIHVzZSB0aGUgdl9pbnQ2NCBmaWVsZCBvZiB0aGUgR1ZhbHVlIGluc3RlYWQgb2Ygdl9pbnQuCgoyMDEyLTA2LTIzIDE5OjU2OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaW5pb2JqZWN0czogcGFzcyBjb3B5LCBkaXNwb3NlIGFuZCBmcmVlIGZ1bmN0aW9uIHRvIGdzdF9taW5pX29iamVjdF9pbml0KCkKCSAgU28gbWluaSBvYmplY3RzIGRvbid0IGhhdmUgdG8gcG9rZSBpbnRvIHRoZSBHc3RNaW5pT2JqZWN0IHBhcnQKCSAgb2YgdGhlIHN0cnVjdHVyZS4gU2F2ZXMgbGluZXMgb2YgY29kZSwgYW5kIHNlZW1zIHNsaWdodGx5IGNsZWFuZXIuCgkgIFdlIGRvbid0IGhhdmUgcHJvcGVyIE9PIGhpZXJhcmNoaWVzIG9yIG1ldGhvZHMgaGVyZSBhZnRlciBhbGwuCgoyMDEyLTA2LTIzIDE3OjA1OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVtb3ZlIHNvbWUgb3V0ZGF0ZWQgRklYTUVzIGFuZCBjb21tZW50cwoKMjAxMi0wNi0yMyAxNzowNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBzb21lIG1vcmUgZy1pIGFubm90YXRpb25zCgoyMDEyLTA2LTIzIDE2OjU5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgc2FtcGxlOiBhZGQgY29tcGFyZSBmdW5jdGlvbiBmb3IgR3N0U2FtcGxlCgkgIFNob3VsZCBtYWtlIGdzdF90YWdfbGlzdF9pc19lcXVhbCgpIHdvcmsgcHJvcGVybHkgd2l0aCBpbWFnZSB0YWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNjM3CgoyMDEyLTA2LTIzIDE2OjMwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggYnVmZmVyIGNvbXBhcmUgZnVuY3Rpb24KCjIwMTItMDYtMjMgMTQ6NDE6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTQ2NwoKMjAxMi0wNi0yMyAxNDo0MToxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiB1cGRhdGUgZm9yIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKSBjaGFuZ2UKCjIwMTItMDYtMjMgMTQ6NDA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBhZGQgZXJyb3IgYXJndW1lbnQgdG8gZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpCgkgIFNvIGNhbGxlcnMgY2FuIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGVyZSBub3QgYmVpbmcgYQoJICBoYW5kbGVyIGZvciB0aGUgcHJvdG9jb2wsIGFuZCB0aGVtIG5vdCBhY2NlcHRpbmcgdGhlIFVSSQoJICBmb3Igc29tZSByZWFzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU0NjcKCjIwMTItMDYtMjMgMTI6Mzc6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFubm90YXRlIEdzdE1hcEluZm8gZGF0YSBhcyBhcnJheSBmb3IgZy1pCgoyMDEyLTA2LTIwIDEyOjUzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSBwb2ludGxlc3MgZ2V0X3N0YXRlKCkgaW4gZ3N0LWxhdW5jaAoJICBTdGF0ZSBjaGFuZ2VzIHRvIE5VTEwgc3RhdGUgYXJlIGFsd2F5cyBzeW5jLgoKMjAxMi0wNi0yMSAwMToyODo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGF2b2lkIG5vdGlmeS10YWdzIGhvbGRpbmcgbG9jawoJICB1bmxvY2sgYmVmb3JlIGlzc3VpbmcgdGhpcyBub3RpZmljYXRpb24gdG8gcHJldmVudAoJICBkZWFkbG9ja3Mgd2hlbiBvdGhlciBlbGVtZW50cyByZWFjdHMgdG8gbmV3IHRhZ3MuCgkgIEZpeGVzICM2NzgyMjAKCjIwMTItMDYtMTggMTY6NTQ6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcC1iYWQgZ3N0LWxpYnMgdG8gdGhlIHBhdGgKCSAgTWFrZXMgdmlkZW9wYXJzZXJzIGFuZCBjYW1lcmFiaW5zIGZyb20gYmFkIHVzYWJsZSBmcm9tIGFuIHVuaW5zdGFsbGVkCgkgIGVudmlyb25tZW50IGF0IG9zeAoKMjAxMi0wNi0yMCAxMzoyODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBkZXN0cm95IG5vdGlmeSB0byBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpCgoyMDEyLTA2LTIwIDEzOjI3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9uCgoyMDEyLTA2LTIwIDEyOjI5OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYnVzOiBhZGQgR0Rlc3Ryb3lOb3RpZnkgdG8gc2V0X3N5bmNfaGFuZGxlcigpCgoyMDEyLTA2LTIwIDEyOjA2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wNi0yMCAxMTo1OTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogYWRkIHNlcGFyYXRlIG1ldGhvZHMgdG8gYWRkIGVudGVyL2xlYXZlIGNhbGxiYWNrCgkgIFJlbW92ZSB0aGUgc3RydWN0dXJlIG9mIGNhbGxiYWNrcyBhbmQgcmVwbGFjZSB3aXRoIHNlcGFyYXRlIG1ldGhvZHMgdG8gcmVnaXN0ZXIKCSAgZWFjaCBjYWxsYmFjay4gVGhpcyBpcyBtdWNoIG1vcmUgYmluZGluZyBmcmllbmRseS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Nzg5OAoKMjAxMi0wNi0yMCAxMDozMTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgR0Rlc3Ryb3lOb3RpZnkgdG8gX25ldwoJICBBZGQgYSBHRGVzdHJveU5vdGlmeSB0byB0aGUgdXNlcl9kYXRhIHdlIHBhc3MgdG8gZ3N0X3Rhc2tfbmV3KCkKCSAgQ2hhbmdlIGdzdF9wYWRfc3RhcnRfdGFzaygpIHRvIGFsc28gdGFrZSB0aGUgbm90aWZ5CgoyMDEyLTA2LTIwIDA5OjU4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogcmVtb3ZlIF9mdWxsIHZlcnNpb24KCSAgUmVuYW1lIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSB0byBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpCgkgIGFuZCByZW1vdmUgdGhlIG9sZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpIHZlcnNpb24uCgoyMDEyLTA2LTIwIDA5OjIyOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgbmV0dGltZXBhY2tldDogbWFrZSBib3hlZAoKMjAxMi0wNi0xOSAxOTo1NTozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXQ6IGZpeCBzb21lIGFyZ3VtZW50IG5hbWVzIGluIGRvY3VtZW50YXRpb24KCjIwMTItMDYtMTkgMTk6NTU6MDIgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBhc3NvcnRlZCBtaW5vciBpbnRyb3NwZWN0aW9uIGZpeGVzCgoyMDEyLTA2LTE5IDE5OjUzOjU0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBhZGQgc29tZSBtaXNzaW5nIGRvY3VtZW50YXRpb24sIGluY2x1ZGluZyBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxODo0MTowNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJhc2U6IGFkZCBzb21lIG1pc3NpbmcgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNzozNzo1OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFzayBwb29sOiBzZXQgc2NvcGUgb2YgZ3N0X3Rhc2tfcG9vbF9wdXNoIGNhbGxiYWNrIHRvIGFzeW5jCgoyMDEyLTA2LTE5IDE3OjMzOjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE2OjA5OjEwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBpbnRyb3NwZWN0aW9uOiByZW5hbWUgc29tZSAiZGF0YSIgYXJndW1lbnRzIHRvICJ1c2VyX2RhdGEiCgkgIEdPYmplY3QgSW50cm9zcGVjdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgdHJlYXQgInVzZXJfZGF0YSIgYXJndW1lbnRzCgkgIGFzIGNsb3N1cmUgZGF0YS4KCjIwMTItMDYtMTkgMTY6MDg6NDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGFkZCBzb21lIG1pc3NpbmcgZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE2OjA2OjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlciBwb29sOiBwdXQgR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMgdHlwZWRlZiBiZWZvcmUgc3RydWN0CgkgIFdvcmtzIGFyb3VuZCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxNTI1CgoyMDEyLTA2LTE5IDE2OjE0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcHJlcm9sbCBhbmQgc3luYyBvbiBnYXAgZXZlbnRzCgoyMDEyLTA2LTE5IDE2OjA4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVvcmdhbml6ZSB0aGUgY29kZSBhIGxpdHRsZQoJICBNb3ZlIHRoZSBjb2RlIHRvIGdldCB0aGUgc3luYyB0aW1lcyB0b2dldGhlci4KCjIwMTItMDYtMTkgMTQ6MzA6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEZpeCBkb2NzIHR5cG8KCjIwMTItMDYtMTkgMTQ6MDU6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFzc2VydCBhYm91dCB0aW1lc3RhbXAgb3ZlcmZsb3dzCgkgIEFzc2VydCB3aGVuIGNvbnZlcnRpbmcgdG8gdGltZXZhbCBhbmQgdGltZXNwZWMgYWJvdXQgb3ZlcmZsb3dzLiBUaGlzIGNhbiBoYXBwZW4KCSAgb24gcGxhdGZvcm1zIHdpdGggMzJiaXRzIGxvbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgxODEKCjIwMTItMDYtMTkgMTA6MTM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogcmVtb3ZlIGdzdF9wYWRfc2V0X2NhcHMKCjIwMTItMDYtMTkgMTA6MzI6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgcHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgZm9yIHRoZSBhY3RpdmUgcGFkIGFuZCBzZW5kIHJlY29uZmlndXJlIGV2ZW50cyB0byB0aGUgb2xkL25ldyBwYWQgd2hlbiBzd2l0Y2hpbmcgcGFkcwoKMjAxMi0wNi0xOCAxNjoxNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW92ZSBnc3RfcGFkX3NldF9jYXBzKCkgdG8gY29tcGF0CgkgIFdlIHdhbnQgY29kZSB0byBleHBsaWNpdGx5IHNlbmQgYSBjYXBzIGV2ZW50IGluc3RlYWQuCgoyMDEyLTA2LTE4IDE2OjEzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggc29tZSBkb2NzCgoyMDEyLTA2LTE4IDE1OjUyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc21hbGwgZG9jIGZpeAoKMjAxMi0wNi0xOCAxNToyODoyMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIENhc3QgdG8gdGhlIHJpZ2h0IHZhbHVlLCBpdCBtaWdodCBpbmRlZWQgb3ZlcmZsb3cgYnV0IHdlIHdhbnQgdGhlIGNvbXBpbGVyIHRvCgkgIGlnbm9yZSB0aGF0LgoKMjAxMi0wNi0xOCAxNToyMjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGhpZGUgcWRhdGEgYXJyYXkgbGF5b3V0CgoyMDEyLTA2LTE4IDE1OjIxOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogY2xhcmlmeSBxZGF0YSB3cnQgdG8gbWV0YWRhdGEKCjIwMTItMDYtMTggMTU6MjE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgYXBpCgoyMDEyLTA2LTE1IDE2OjU2OjQ2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBpbnRyb3NwZWN0aW9uOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzIGluIGJhc2UKCjIwMTItMDYtMTUgMTg6MzU6MDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBtaXNzaW5nIGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xNSAxNjoxNDo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pYyBxdWV1ZTogcmVnaXN0ZXIgYXMgYm94ZWQgdHlwZQoKMjAxMi0wNi0xNSAxNjo0MzozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBpbnRyb3NwZWN0aW9uOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCgkgIFRoZXNlIGNoYW5nZXMgYXJlIHRvIGNsZWFuIHVwIHN5bnRheCBpc3N1ZXMgc3VjaCBhcyBtaXNzaW5nIGNvbG9ucywKCSAgbWlzc2luZyBzcGFjZXMsIGV0Yy4sIGFuZCBtaW5vciBpc3N1ZXMgc3VjaCBhcyBhcmd1bWVudCBuYW1lcyBpbgoJICBoZWFkZXJzIG5vdCBtYXRjaGluZyB0aGUgaW1wbGVtZW50YXRpb24gYW5kL29yIGRvY3VtZW50YXRpb24uCgoyMDEyLTA2LTE1IDE0OjUwOjQ4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICB0b2Mgc2V0dGVyOiBjaGFuZ2UgR3N0VG9jU2V0dGVySUZhY2UgdG8gR3N0VG9jU2V0dGVySW50ZXJmYWNlCgkgIFdpdGhvdXQgdGhpcyBHT2JqZWN0IEludHJvc3BlY3Rpb24gZG9lcyBub3QgcmVjb2duaXplIHRoZSBjb25uZWN0aW9uCgkgIHRvIEdzdFRvY1NldHRlci4KCjIwMTItMDYtMTggMTI6MTU6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1cGRhdGUgZG9jcyBhIGxpdHRsZQoKMjAxMi0wNi0xOCAxMTozNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiB3YWl0X2VvcygpIC0+IHdhaXQoKQoJICBSZW5hbWUgZ3N0X2Jhc2Vfc2lua193YWl0X2VvcygpIHRvIGdzdF9iYXNlX3Npbmtfd2FpdCgpIHRvIGF2b2lkIGNvbmZ1c2lvbiBhbmQKCSAgaW50cm9zcGVjdGlvbiBwcm9ibGVtcyB3aXRoIHRoZSA6OndhaXRfZW9zIHZtZXRob2QuIEFsc28gdGhpcyBtZXRob2QgY2FuIGJlIHVzZWQKCSAgdG8gd2FpdCBmb3Igb3RoZXIgdGhpbmdzIHRoYW4gRU9TLiBVcGRhdGUgdGhlIGRvY3MgYSBsaXR0bGUuCgoyMDEyLTA2LTE4IDEwOjEzOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDpjaGVjayBjYXBzIGFyZ3VtZW50CgkgIENhcHMgc2hvdWxkIGJlIE5VTEwgb3IgZml4ZWQgd2hlbiBjb25maWd1cmVkIGluIGEgYnVmZmVycG9vbAoKMjAxMi0wNi0xNSAxNzowMTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE5VTEwgaXMgbm90IGEgdmFsaWQgY2FwcyBhbnltb3JlCgoyMDEyLTA2LTE1IDE1OjQ4OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkb2NzOiByZXZpZXcgdGhlIGJ1ZmZlcmluZyBkb2NzCgoyMDEyLTA2LTE1IDE1OjM2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcGVyY2VudCBzY2FsaW5nCgkgIFVzZSBfc2NhbGUgZnVuY3Rpb25zIHRvIHNjYWxlIHRoZSBwZXJjZW50IHZhbHVlcy4KCSAgQ29ycmVjdGx5IHNjYWxlIHRoZSBwZXJjZW50IHZhbHVlcyBpbiB0aGUgYnVmZmVyaW5nIHJhbmdlcy4KCjIwMTItMDYtMTUgMTQ6NTQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgZmx1c2ggd2hlbiBzdGFydGluZwoJICBXaGVuIHdlIGFyZSBkb2luZyB0aGUgaW5pdGlhbCBzZWVrIGluIHN0YXJ0dXAsIGF2b2lkIGRvaW5nIGEgZmx1c2gKCSAgKGFuZCB1bmxvY2spIGJlY2F1c2Ugd2Uga25vdyB0aGF0IHRoZSB0YXNrIGlzIG5vdCBzdGFydGVkIHlldC4KCjIwMTItMDYtMTUgMTI6NTg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTA2LTE1IDEyOjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBkb2NzOiBpbXByb3ZlIEFQSSBkb2NzCgoyMDEyLTA2LTE1IDAwOjAwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgYWxsbG9jYXRvcjogbm8gbmVlZCB0byBzdG9yZSBzdHJ1Y3R1cmUgc2l6ZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo1NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo1Mjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0OToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgY2FwcyBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDE6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogbm8gbmVlZCB0byBzdG9yZSBzaXplIG9mIHRoZSBtZXNzYWdlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzozODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc2FtcGxlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSB0YWcgbGlzdCBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTUgMTE6MjQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBleHBhbmQgZG9jcyBhIGxpdHRsZQoJICBBZGQgYmx1cmIgYWJvdXQgcWRhdGEgYW5kIHdlYWsgcmVmcy4KCjIwMTItMDYtMTUgMTA6NDQ6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIHFkYXRhCgkgIEtlZXAgdHJhY2sgb2YgcWRhdGEgZm9yIG1pbmlvYmplY3RzLiBSZXVzZSB0aGUgd2VhayByZWYgYXJyYXkgZm9yIHRoaXMgYmVjYXVzZQoJICB3ZSBjYW4uCgoyMDEyLTA2LTE1IDEwOjU2OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGVycm9yIGluIHRoZSB3ZWFrIHJlZiBoYW5kbGluZwoJICBXaGVuIDIgd2VhayByZWZzIGFyZSBhZGRlZCwgdGhlIGFycmF5IGlzIG5vdCByZXNpemVkIGJpZyBlbm91Z2guCgkgIFNpbXBsaWZ5IHRoZSB3ZWFrIHJlZiBoYW5kbGluZyBjb2RlLgoJICBGcmVlIG1lbW9yeSB3aGVuIHdlIHJlbW92ZSBhbGwgd2VhayByZWZzLgoJICBBbGxvdyBpbnN0YWxsaW5nIHRoZSBzYW1lIHdlYWsgcmVmIG11bHRpcGxlIHRpbWVzLCBsaWtlIGluIGdvYmplY3QuCgoyMDEyLTA2LTE0IDE3OjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaW5pb2JqZWN0OiByZW1vdmUgdGhlIHNpemUgZmllbGQKCSAgVGhlIHNpemUgZmllbGQgaXMgdXNlZCBieSBzdWJjbGFzc2VzIHRvIHN0b3JlIHRoZSB0b3RhbCBhbGxvY2F0ZWQgc2l6ZSBvZiB0aGUKCSAgbWVtb3J5IGZvciB0aGlzIG1pbmlvYmplY3QuIEJlY2F1c2UgbWluaW9iamVjdCBkb2Vzbid0IHJlYWxseSBkbyBhbnl0aGluZyB3aXRoCgkgIHRoaXMgZmllbGQgd2UgY2FuIG1vdmUgaXQgdG8gdGhlIHN1YmNsYXNzZXMuCgoyMDEyLTA2LTE0IDE2OjMwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIEdzdE1lbW9yeSBhIG1pbmlvYmplY3QKCjIwMTItMDYtMTQgMTY6Mjc6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGFsd2F5cyBwcmludCBtaW5pb2JqZWN0IHJlZmNvdW50CgoyMDEyLTA2LTE0IDE1OjQwOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBjb3B5IGZ1bmN0aW9uCgkgIE1ha2UgdGhlIGNvcHkgZnVuY3Rpb24gbWFwIHRvIHJlZiBiZWNhdXNlIHdlIGNhbid0IHNhZmVseSBjb3B5IHRoZSB1c2VyX2RhdGEuCgoyMDEyLTA2LTE0IDE1OjMzOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgR3N0QWxsb2NhdG9yIGEgbWluaW9iamVjdAoKMjAxMi0wNi0xMiAxMzoyNjozNSArMDIwMCAgRGF2aWQgU3ZlbnNzb24gRm9ycyA8ZGF2aWRzZkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGdzdGZ1bm5lbDogYXZvaWQgYWNjZXNzIG9mIGZyZWVkIHBhZAoJICBTYXZlIHRoZSB2YWx1ZSBvZiB0aGUgcGFkJ3MgZ290X2VvcyBpbiBnc3RfZnVubmVsX3JlbGVhc2VfcGFkLAoJICBiZWZvcmUgY2FsbGluZyBnc3RfZWxlbWVudF9yZW1vdmVfcGFkLiBUaGlzIGlzIGJlY2F1c2UKCSAgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCBtYXkgZnJlZSB0aGUgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDE3CgoyMDEyLTA2LTE0IDE0OjA1OjE1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwYWQgdHJhbnNmZXIgYW5ub3RhdGlvbiBmcm9tIG5vbmUgdG8gZnVsbAoJICBzaW5jZSB0aGUgcGFkIHdpbGwgYmUgdW5yZWZmZWQuCgoyMDEyLTA2LTEzIDEwOjUyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG1lc3NhZ2U6IGFkZCB0aGUgcnVubmluZy10aW1lIHRvIHRoZSBhc3luYy1kb25lIG1lc3NhZ2UKCSAgQWRkIHRoZSBydW5uaW5nLXRpbWUgb2YgdGhlIGJ1ZmZlciB0aGF0IGNhdXNlZCB0aGUgYXN5bmMgb3BlcmF0aW9uIHRvIGNvbXBsZXRlCgkgIHRvIHRoZSBhc3luYy1kb25lIG1lc3NhZ2UuCgkgIFVwZGF0ZSBiaW4gdG8gaGFuZGxlIHRoZSBuZXcgYXN5bmMtZG9uZSBtZXNzYWdlLgoKMjAxMi0wNi0xMyAxMDo1MTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHBpcGVsaW5lOiB1c2UgcmVzZXRfdGltZSBtZXNzYWdlIHRvIHJlc2V0IHRoZSBzdGFydCB0aW1lCgkgIFVzZSB0aGUgbmV3IFJFU0VUX1RJTUUgbWVzc2FnZSB0byByZXNldCB0aGUgc3RhcnQtdGltZSBvZiB0aGUgcGlwZWxpbmUgdG8gdGhlCgkgIHJlcXVlc3RlZCB0aW1lLgoJICBNYWtlIGJhc2VzaW5rIHJlcXVlc3QgYSBuZXcgcnVubmluZy10aW1lIHdoZW4gdGhlIGZsdXNoLXN0b3AgbWVzc2FnZSB0ZWxscyBpdCB0bwoJICBpbnN0ZWFzZCBvZiB3YWl0aW5nIGZvciBwcmVyb2xsLgoKMjAxMi0wNi0xMyAxMDoxNjoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBhIG5ldyBtZXNzYWdlIHRvIHJlc2V0IHRpbWUKCSAgQWRkIGEgbmV3IG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHBpcGVsaW5lIHJ1bm5pbmdfdGltZS4gQ3VycmVudGx5IHJlc2V0aW5nIHRoZQoJICBwaXBlbGluZSBjYW4gb25seSBiZSByZXF1ZXN0ZWQgaW4gdGhlIGFzeW5jX2RvbmUgbWVzc2FnZSB3aGljaCBtZWFucyB0aGF0IHRoZQoJICBwaXBlbGluZSBuZWVkcyB0byBiZSBwcmVyb2xsZWQuIEl0IGlzIGJldHRlciB0byBtb3ZlIHRoaXMgdG8gYSBzZXBhcmF0ZSBtZXNzYWdlLgoKMjAxMi0wNi0xMiAxNzoxMTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhbHdheXMgcmVjdXJzZSBpbnRvIGJpbnMgd2hlbiBkb2luZyBzdGF0ZSBjaGFuZ2VzCgkgIE5ldmVyIHNraXAgdGhlIHN0YXRlIGNoYW5nZSBvZiBhIGJpbiBiZWNhdXNlIGl0IG5lZWRzIHRvIHVwZGF0ZSB0aGUgYmFzZSB0aW1lIG9mCgkgIGl0cyBjaGlsZHJlbiB3aGVuIG5lZWRlZC4KCjIwMTItMDYtMTMgMDA6MzA6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlIGZvciBuZXcgZGF0ZXRpbWUgYXBpCgoyMDEyLTA2LTEzIDAwOjI4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbGF0ZXN0IEFQSQoKMjAxMi0wNi0xMyAwMDoyNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGRhdGV0aW1lIEFQSQoKMjAxMi0wNi0xMyAwMDoyMTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIHBhcnRpYWwgZGF0ZSB0aW1lIGZpZWxkcwoKMjAxMi0wNi0xMiAyMzo1MjowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBjbGVhbi11cHMgYW5kIG5ldyBBUEkgYWRqdXN0bWVudHMKCSAgUmVtb3ZlIGNvbnN0cnVjdG9ycyB3ZSBkb24ndCB3YW50OgoJICBnc3RfZGF0ZV90aW1lX25ld195bWRfaCgpIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwoJICBzdXBwb3J0IGhvdXItb25seSBmb3Igbm93OwoJICBnc3RfZGF0ZV90aW1lX25ld195bWRfaG0oKSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KCSAgYWRkIGNvbnN0cnVjdG9ycyB3aXRoIHRpbWUgaW5mbyB3aGVyZSB0aGUgY2FsbGVyIGRvZXNuJ3QKCSAgaGF2ZSB0byB0aGluayBhYm91dCB3aGF0IHRpbWV6b25lIHRoZSB0aW1lIGlzIGluLgoJICBMb3RzIG9mIGNvbXB1bHNpdmUgY2xlYW4tdXAuIERvY3MgZml4ZXMuIFJlcGxhY2UKCSAgaGFzX21pbnV0ZSgpIGFuZCBoYXNfaG91cigpIHdpdGggaGFzX3RpbWUoKS4KCjIwMTItMDYtMTIgMjI6MzU6NDIgKzAyMDAgIE9sZWtzaWogUmVtcGVsIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBhbGxvdyBHc3REYXRlVGltZSB3aGVyZSBub3QgYWxsIGZpZWxkcyBhcmUgc2V0CgkgIEluIG9yZGVyIHRvIGRlc2VyaWFsaXNlIGFuZCByZS1zZXJpYWxpc2UgZGF0ZXMgYW5kIGRhdGUgdGltZXMKCSAgZnJvbSB0YWdzIHByb3Blcmx5LCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gZXhwcmVzcyBwYXJ0aWFsCgkgIGRhdGVzIChlLmcuIFlZWVkgb3IgWVlZWS1NTSkgYW5kIGRhdGUgdGltZXMuCgkgIFdlIG9ubHkgc3VwcG9ydCBwYXJ0aWFsIGRhdGUgdGltZXMgd2hlcmUgYWxsIHRoZSBtb3JlCgkgIHNpZ25pZmljYW50IGZpZWxkcyBhYm92ZSB0aGUgZmlyc3QgdW5zZXQgZmllbGQgYXJlIHNldAoJICAoZS5nLiBZWVlZLTAwLUREIGlzIG5vdCBzdXBwb3J0ZWQpLgoJICBDYWxsaW5nIF9nZXRfZm9vKCkgd2hlbiBmb28gaXMgbm90IHNldCBpcyBub3QgYWxsb3dlZAoJICBhbnkgbW9yZSwgY2FsbGVycyBuZWVkIHRvIGNoZWNrIHdoaWNoIGZpZWxkcyBhcmUgc2V0CgkgIGZpcnN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NzU3CgoyMDEyLTA2LTEyIDIyOjQ1OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogZml4IHVwIG1pbm9yIGluY29uc2lzdGVuY3kgaW4gc3RydWN0dXJlIG5hbWUgb2Ygc3RhdGUtY2hhbmdlZCBtZXNzYWdlCgoyMDEyLTA2LTEyIDExOjQyOjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIGludHJvc3BlY3Rpb246IGFkZCBzb21lIG1pc3NpbmcgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTIgMTQ6MjQ6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGZsdXNoIGV2ZW50cyBvbiB0aGUgZWxlbWVudCBhcyB3ZWxsCgkgIEhhbmRsZSBmbHVzaC1zdGFydCBhbmQgZmx1c2gtc3RvcCBzZW50IG9uIHRoZSBlbGVtZW50IGFzIHdlbGwgYW5kIHNlbmQgdGhlbQoJICBkb3duc3RyZWFtLiBNYWtlIHN1cmUgdG8gc2VuZCBhIHNlZ21lbnQgZXZlbnQgYWZ0ZXIgdGhlIGZsdXNoIHN0b3AuCgoyMDEyLTA2LTEyIDExOjA1OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogYWRkIGEgZmV3IG1vcmUgY29tbWVudHMKCjIwMTItMDYtMTEgMjA6MzQ6MDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBmaXggc2lnbmFsIGhhbmRsZXIgc2lnbmF0dXJlcyBpbiBjbGFzcwoJICBXaGVuIGFkZGluZyB0aGUgbmFtZSBwYXJhbWV0ZXIsIHdlIGZvcmdvdCB0byBhZGQgaXQgaGVyZSB0b28uCgoyMDEyLTA2LTExIDEwOjU5OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiB1c2UgR3N0Q2hpbGRQcm94eSBpbnN0ZWFkIG9mIEdPYmplY3Qgb24gdGhlIHB1YmxpYyBhcGkKCSAgRml4IHVzYWdlIGFuZCBhbHNvIGNsZWFudXAgZ3N0X29iamVjdCBhcGkgdXNlIG9uIGdvYmplY3RzLgoKMjAxMi0wNi0xMSAxNTo0OToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IHJlbW92ZSB1bnVzZWQgVU5QQVJFTlRJTkcgZmxhZwoKMjAxMi0wNi0xMSAxNTo0MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW9yZ2FuaXplIF9yZW1vdmVfZnVuYyB0byBhdm9pZCByYWNlcwoJICBNYWtlIHRoZSBnc3RfYmluX3JlbW92ZV9mdW5jIG1vcmUgbGlrZSB0aGUgYWRkX2Z1bmMuIENoZWNrIGlmIHRoZSBlbGVtZW50IHdlIHRyeQoJICB0byByZW1vdmUgZnJvbSB0aGUgYmluIGhhcyB0aGUgYmluIGFzIHRoZSBwYXJlbnQgYW5kIHNldCB0aGUgcGFyZW50IGZsYWcgdG8gTlVMTAoJICBpbW1lZGlhdGVseSwgdGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgY29uY3VycmVudCByZW1vdmUgb3BlcmF0aW9ucyB3aXRob3V0IHVzaW5nCgkgIHRoZSBVTlBBUkVOVElORyBlbGVtZW50IGZsYWcuIEFmdGVyIHdlIHVucGFyZW50ZWQgdGhlIGVsZW1lbnQgZnJvbSB0aGUgYmluLCB3ZQoJICB1cGRhdGUgdGhlIGJpbiBzdGF0ZSBhbmQgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIGxpc3QuIEZpbmFsbHkgd2UgdW5saW5rCgkgIGFsbCB0aGUgcGFkcy4KCSAgVGhpcyBhdm9pZHMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgZWxlbWVudCBjb3VsZCBzdGlsbCBjbGFpbSB0byBoYXZlIHRoZQoJICBiaW4gYXMgdGhlIHBhcmVudCB3aGlsZSB0aGUgYmluIGRpZG4ndCBoYXZlIGEgcG9pbnRlciB0byB0aGUgZWxlbWVudCBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3NzU5CgoyMDEyLTA2LTEwIDEyOjQ4OjAwIC0wNDAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBPbmx5IHNlbmQgY2FwcyB3aGVuIHBhZCBpcyBiZWluZyBhY3RpdmF0ZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzgxOQoKMjAxMi0wNi0xMCAxMjo0MToxMiAtMDQwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IFN0YXJ0IG92ZXIgaWYgc3ViY2xhc3MgcmVtb3ZlZCB0aGUgbmV4dCBwYWQgdG9vCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4MTgKCjIwMTItMDYtMDkgMTg6MDU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiByZW1vdmUgZmFsbGJhY2sgY29kZSBmb3Igb2xkIEdMaWJzCgoyMDEyLTA2LTA5IDE3OjEzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBhZGQgY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwIHNjcmlwdAoJICBMaXR0bGUgc2NyaXB0IHRoYXQgc2V0cyB1cCB0aGluZ3MgaW4gfi9nc3QgYW5kIGNsb25lcwoJICB0aGUgbWFpbiBtb2R1bGVzIGFuZCBwcmludHMgc29tZSBpbnN0cnVjdGlvbnMuCgkgIEZyb20gaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9Vbmluc3RhbGxlZFNldHVwCgoyMDEyLTA2LTA4IDE1OjQ1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBlbGVtZW50czogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgZG9uJ3QgaWdub3JlIGl0cyByZXR1cm4gdmFsdWUKCjIwMTItMDYtMDggMTU6NDE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgY2FsbCBpdCBhZnRlciB0aGUgdmZ1bmMKCjIwMTItMDYtMDggMTU6MzY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIHRoZSBtYW51YWwgZXZlbnQgZmlkZGxpbmcKCjIwMTItMDYtMDggMTU6MzI6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHJldHVybiB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfc2V0X2NhcHMoKQoJICBlLmcuIGl0IHJldHVybnMgRkFMU0UgaWYgaW5jb21wYXRpYmxlIGNhcHMgYXJlIHNldCBvbiB0aGUgcGFkLgoKMjAxMi0wNi0wNiAxOTowMjowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEZhc3RlciByZWFkIG1hY3JvcwoJICBPbiBwbGF0Zm9ybXMgdGhhdCBjYW4gZG8gdW5hbGlnbmVkIHJlYWQvd3JpdGUsIHdlIGNhbiByZWFkL3dyaXRlIG11Y2ggZmFzdGVyCgkgIGJ5IGp1c3QgY2FzdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5OTU0NgoKMjAxMi0wNi0wNyAxMjo0OToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgY2hlY2s6IEFkZCBhIHRlc3QgZm9yIEdTVF9SRUFEXyogbWFjcm9zCgoyMDEyLTA2LTA4IDE0OjQ5OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTItMDYtMDcgMTc6NTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlY29uZmlndXJlCgkgIFVzZSB0aGUgcGFkIG1ldGhvZHMgdG8gc2V0IGFuZCBjaGVjayB0aGUgcmVjb25maWd1cmUgZmxhZ3MKCSAgQ2xlYXIgdGhlIHJlY29uZmlndXJlIGZsYWcgYmVmb3JlIHdlIG5lZ290aWF0ZSBzbyB0aGF0IHdlIGRvbid0IG1pc3MgYW55CgkgIHJlY29uZmlndXJlIGV2ZW50cyB3aGlsZSBuZWdvdGlhdGluZwoKMjAxMi0wNi0wNyAxNTo1Njo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTIgPT09CgoyMDEyLTA2LTA3IDE1OjU2OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgUmVsZWFzZSAwLjExLjkyCgoyMDEyLTA2LTA3IDE1OjUzOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNi0wNyAxNToyODozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBzb29uZXIKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHdlIGdldCB0aGUgdGltZSBvZiB0aGUgY2xvY2sgYmVjYXVzZSB0aGF0IGNvZGUKCSAgbWlnaHQgdGFrZSBvdGhlciBsb2Nrcy4KCSAgRml4IHBvdGVudGlhbCBjbG9jayByZWZjb3VudCBlcnJvciBiZWNhdXNlIHdlIHJlbGVhc2VkIHRoZSBvYmplY3QgbG9jayBidXQKCSAgZGlkbid0IHJlZiB0aGUgY2xvY2suCgoyMDEyLTA2LTA3IDEwOjM0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSAwLjExIGZpeG1lCgkgIFdlIGFsd2F5cyByZXF1aXJlIGVsZW1lbnRzIHRvIGhhdmUgYW4gdW5sb2NrX3N0b3Agdm1ldGhvZC4KCjIwMTItMDYtMDYgMTg6MTE6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBXZSBuYW1lIHRoZSByZWdpc3RyeSBhZnRlciB0aGUgdGFyZ2V0IGNwdQoJICBBbmQgbm90IHRoZSBob3N0IGNwdQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RyZWdpc3RyeS5jCgoyMDEyLTA2LTA2IDE4OjE4OjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWZhYjM1OSB0byAwM2EwZTU3CgoyMDEyLTA2LTA2IDE1OjQ1OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdCBhZnRlciBldmVudCBjaGFuZ2UKCSAgU29tZW9uZSBmb3Jnb3QgdG8gcnVuIG1ha2UgY2hlY2sgYmVmb3JlIHB1c2hpbmcuLi4KCjIwMTItMDYtMDYgMTE6MDY6MzIgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBnc3RhZGFwdGVyOiBBbGlnbiB0aGUgY29tbWVudCBkZXNjcmlwdGlvbiB3aXRoIHB1YmxpYyBhcGkgaW5zdGVhZCBvZiBpbnRlcm5hbCBvbmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc1MzYKCjIwMTItMDYtMDYgMTU6Mjk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcGFkIGNsZWFudXAgaW4gZGlzcG9zZQoJICBJbiB0aGUgZGlzcG9zZSBoYW5kbGVyIHdlIGZpcnN0IG5lZWQgdG8gcmVsZWFzZSBhbGwgdGhlIHJlcXVlc3QgcGFkcyBhbmQgdGhlbgoJICByZW1vdmUgdGhlIHJlbWFpbmluZyBwYWRzLiBUaGlzIGlzIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhhdCByZWxlYXNpbmcgdGhlCgkgIHJlcXVlc3QgcGFkIG1pZ2h0IGFsc28gY2xlYW5seSByZW1vdmUgc29tZSBvZiB0aGUgb3RoZXIgZHluYW1pYyBwYWRzLCBsaWtlCgkgIHdoYXQgcnRwc2Vzc2lvbiBkb2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NDM2CgoyMDEyLTA2LTA2IDE0OjE0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IERvbid0IG1ha2UgdGhlIFRPQyBldmVudCBhIG11bHRpLXN0aWNreSBldmVudAoJICBFbGVtZW50cyBhcmUgc3VwcG9zZWQgdG8gbWVyZ2UgdXBzdHJlYW0gZXZlbnRzLgoKMjAwOS0xMC0xMyAxNzoyNDozNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBNYWtlIHN1cmUgdGhhdCB1bmxpbmtlZCBwYWRzIGRvIG5vdCBjYXVzZSBhIHJldHVybiBmYWxzZSBvbiBsYXRlbmN5IGV2ZW50cy4KCSAgQ29udGV4dDogTGF0ZW5jeSBjb25maWd1cmF0aW9uIHNob3VsZCBub3QgYmUKCSAgbWVzc2VkIHVwIGJlY2F1c2Ugb2Ygbm90LWxpbmtlZCBwYWRzLiBJbiBnZW5lcmFsLAoJICBvbmUgcmV0dXJuIEZBTFNFIG9uIGxhdGVuY3kgZGlzdHJpYnV0aW9uIGNhdXNlcwoJICB0aGUgIm92ZXJhbGwiIHBpcGVsaW5lIGxhdGVuY3kgY29uZmlndXJhdGlvbiB0bwoJICBmYWlsLiBUaGlzIHNob3dzIHVwIGFzIG5vaXNlIGluIGxvZ3MgKHdhcm5pbmcpLgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMi0wNi0wNiAxMjo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGV2ZW50OiBhZGQgbmFtZSB0byBzdGlja3lfbXVsdGkgZXZlbnRzCgkgIFRoZSBuYW1lIG9mIHRoZSBldmVudCBpcyB1c2VkIHRvIHN0b3JlIG11bHRpcGxlIHN0aWNreSBldmVudHMgb2YgYSBjZXJ0YWluIHR5cGUKCSAgb24gYSBwYWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY4NTkKCjIwMTItMDYtMDYgMDk6NTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRlc2lnbjogQWxzbyBtZW50aW9uIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBmaWx0ZXIgY2FwcyBpcyBpbXBvcnRhbnQKCjIwMTItMDYtMDYgMDk6MTU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGltcHJvdmUgZG9jcwoKMjAxMi0wNi0wNiAwOToxMzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IHNlcmlhbGl6ZWQgZXZlbnRzIGNhbid0IHBhc3MgYWZ0ZXIgRU9TCgkgIE9ubHkgc2VyaWFsaXplZCBldmVudHMgY2FuJ3QgYmUgc2VudCBvbiBwYWRzIHRoYXQgYXJlIEVPUy4gT3RoZXJ3aXNlIGEgc2VlawoJICBldmVudCB3b3VsZCBiZSByZWZ1c2VkIGFzIHdlbGwuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc1MjAKCjIwMTItMDYtMDUgMTQ6Mzg6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdGFsayBhYm91dCB0aGUgZmlsdGVyIGNhcHMKCjIwMTItMDYtMDIgMTY6NDQ6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgdGFnIGxpc3Qgd3JpdGFiaWxpdHkKCjIwMTItMDYtMDIgMTY6Mzg6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgZ3N0X3RhZ19saXN0X2ZyZWUgLT4gZ3N0X3RhZ19saXN0X3VucmVmCgoyMDEyLTA2LTAyIDE2OjI5OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGV4cGFuZCB0YWdsaXN0IHNlY3Rpb24gaW4gcG9ydGluZy10by0wLjExIGRvY3MgYSBiaXQKCjIwMTItMDYtMDUgMTE6Mjg6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIG5lZ290aWF0aW9uIGRvY3MKCSAgTWVudGlvbiB0aGF0IHRoZSBhY2NlcHRjYXBzIHF1ZXJ5IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVjdXJzaXZlCgoyMDEyLTA2LTA1IDA5OjQwOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgb2Jzb2xldGUgY2FwcyBjb2RlCgoyMDEyLTA2LTA1IDA5OjM5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA2LTA1IDA5OjIxOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgkgIEJlZm9yZSB3ZSBjYW4gY2hhbmdlIHRoZSBjYXBzIG9uIGEgc2lua3BhZCB3aXRoIGZpeGVkIGNhcHMgd2UgbmVlZCB0byB1bmZpeCB0aGUKCSAgcGFkIGNhcHMuCgoyMDEyLTA2LTA1IDA5OjEwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHBhdXNlIHRhc2sgb24gRU9TCgkgIEVsZW1lbnRzIHNob3VsZCBub3QgcmVseSBvbiBjb3JlIHRvIHBhdXNlIHRhc2tzIG9uIEVPUy4KCjIwMTItMDYtMDUgMDk6MDA6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGV2ZW50IHR5cGUgY2hlY2sKCjIwMTItMDYtMDQgMTY6MTk6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4ICdyZXMnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoKMjAxMi0wNi0wNCAxMzowMDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTA2LTA0IDEyOjU3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTA2LTA0IDExOjQ2OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IERvbid0IGFjY2VwdCBhbnkgYnVmZmVycyBvciBldmVudHMgYWZ0ZXIgRU9TCgoyMDEyLTA2LTA0IDExOjEzOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBwZXJmb3JtIHN0YXRlIHByb2Nlc3NpbmcgdXBvbiBub24tT0sgcmV0dXJuCgkgIC4uLiBzaW5jZSBwcm9jZXNzaW5nIG1pZ2h0IHN0aWxsIGNvbnRpbnVlIChpZiBlLmcuIE5PVF9MSU5LRUQpCgkgIGFuZCB0aGVuIHByb3BlciBzdGF0ZSAoZS5nLiBvZmZzZXQpIG5lZWRzIHRvIGJlIG1haW50YWluZWQKCSAgKGUuZy4gdG8gYXJyYW5nZSBmb3IgYSBuZXcgZnJhbWUgc2V0dXApLgoKMjAxMi0wNi0wNCAxMToyNTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWx3YXlzIHJldHVybiBlcnJvcnMgZm9yIEVPUyBldmVudHMgaW1tZWRpYXRlbHkKCSAgRm9yIG5vbi1FT1MgZXZlbnRzIHRoaW5ncyB3aWxsIGVycm9yIG91dCBsYXRlciBkdXJpbmcgZGF0YQoJICBmbG93IGJ1dCBhZnRlciBFT1MgZXZlbnRzIG5vIGRhdGEgZmxvdyBpcyBoYXBwZW5pbmcuCgkgIFNlZSBidWcgIzY3NzM0MC4KCjIwMTItMDYtMDQgMDk6Mjc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgZm9yd2FyZCBjYXBzIGV2ZW50cyB0byBhIHBhZCBpZiBpdCBhY2NlcHRzIHRoZSBjYXBzCgkgIEZpeGVzIGJ1ZyAjNjc3MzM1LgoKMjAxMi0wNi0wMiAyMDowMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBSZXR1cm4gRkFMU0UgaWYgcHVzaGluZyBvZiBzdGlja3kgZXZlbnRzIGZhaWxlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwZjkyNGI5MjJjNzEyMDU5ZDc3NTJmYzE1YjgzMjU1MTc0NWZmMjdlLgoJICBTdGlja3kgZXZlbnRzIHNob3VsZCBhbHdheXMgcmV0dXJuIFRSVUUgd2hlbiBwdXNoaW5nIGFuZCB3aWxsCgkgIG9ubHkgY2F1c2UgZmFpbHVyZXMgZHVyaW5nIGRhdGEgZmxvdyBsYXRlci4KCjIwMTItMDYtMDIgMTY6MTg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB2YXJpYWJsZS1zZXQtYnV0LW5vdC11c2VkIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDYtMDIgMTY6NTU6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHB1c2hpbmcgYSBzdGlja3kgZXZlbnQgZmFpbGVkLCBtYWtlIHN1cmUgdG8gYXQgbGVhc3QgcHVzaCBhbnkgcGVuZGluZyBFT1MgZXZlbnRzCgkgIE90aGVyd2lzZSBhIHBpcGVsaW5lIHdoZXJlIG9uZSBzdGlja3kgZXZlbnQgZmFpbHMgdG8gYmUgc2VudCB3aWxsCgkgIG5ldmVyIGZvcndhcmQgRU9TIGV2ZW50cyBkb3duc3RyZWFtLiBUaGlzIGNhbiBjYXVzZSBwaXBlbGluZXMgdG8KCSAgd2FpdCBmb3JldmVyIGZvciBFT1Mgb24gZXJyb3JzLgoKMjAxMi0wNi0wMiAxNjowMjowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV0dXJuIEZBTFNFIGlmIHB1c2hpbmcgb2Ygc3RpY2t5IGV2ZW50cyBmYWlsZWQKCSAgSW5zdGVhZCBvZiBqdXN0IGlnbm9yaW5nIGZhaWx1cmUgb2YgcHVzaGluZyBzdGlja3kgZXZlbnRzIGFuZAoJICByZXR1cm5pbmcgVFJVRSBhcyBpZiBldmVyeXRoaW5nIGlzIGZpbmUuCgoyMDEyLTA2LTAxIDE2OjM0OjE2ICswMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IENvcnJlY3RseSBnZXQgY3VycmVudCBydW5uaW5nIHRpbWUgd2hlbiBzeW5jaW5nIHRvIHRoZSBzZWdtZW50IGluZm9ybWF0aW9uCgkgIEZpeGVzIGJ1ZyAjNjc3MjYzLgoKMjAxMi0wNi0wMSAxMDoyODozMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYxYjVhOTYgdG8gMWZhYjM1OQoKMjAxMi0wNS0yNSAyMjo1ODo1NyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IEFkZCBmdW5uZWwgdGVzdCB0byBjb3ZlciBFT1MgZXZlbnQgaGFuZGxpbmcKCSAgUG9ydGVkIGZyb20gZjNiMmRkNmYgaW4gdGhlIDAuMTAgYnJhbmNoCgoyMDEyLTA1LTI1IDIyOjUyOjMzIC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogT25seSBlbWl0IEVPUyBldmVudCBpZiBhbGwgc2lua3BhZHMgaGF2ZSByZWNlaXZlZCBvbmUKCSAgSWYgbXVsdGlwbGUgc291cmNlcyBhcmUgcGx1Z2dlZCBpbnRvIHRoZSBmdW5uZWwgYW5kIG9uZSBvZiB0aGUKCSAgc291cmNlcyBlbWl0cyBhbiBFT1MsIHRoYXQgZXZlbnQgaXMgcHJvcG9nYXRlZCB0aHJvdWdoIHRoZSBmdW5uZWwKCSAgZXZlbiB0aG91Z2ggb3RoZXIgc291cmNlcyBjb25uZWN0ZWQgdG8gdGhlIGZ1bm5lbCBtYXkgc3RpbGwgYmUKCSAgcHVzaGluZyBkYXRhLiBUaGlzIHBhdGNoIHdhaXRzIHRvIHNlbmQgYW4gRU9TIGV2ZW50IHVudGlsIHRoZQoJICBmdW5uZWwgaGFzIHJlY2VpdmVkIGFuIEVPUyBldmVudCBvbiBlYWNoIHNpbmtwYWQuCgkgIFBvcnRlZCBmcm9tIGQzOTdlYTk3IGluIDAuMTAgYnJhbmNoLgoKMjAxMi0wNS0yOSAxOToyNDoyNSAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IEZpeCBpbnZhbGlkIHJlYWQgd2hlbiByZWxlYXNpbmcgcmVxdWVzdCBwYWRzIGluIGZ1bm5lbCB0ZXN0cwoKMjAxMi0wNS0yOSAxOToyMzowNyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCBidWZmZXIgbGVhawoKMjAxMi0wNS0zMSAxNzo0NToyOSArMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCB0cnkgdG8gc3luYyBvbiB0aGUgc2VnbWVudCBpZiBpdCBoYXMgbm8gVElNRSBmb3JtYXQKCSAgLi4uYW5kIHdhaXQgdW50aWwgaXQgaXMgYWN0dWFsbHkgY29uZmlndXJlZCBhbmQgaGFzIGEgZm9ybWF0IGJlZm9yZQoJICB0cnlpbmcgdG8gc3luYy4KCjIwMTItMDUtMzEgMTc6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE5vIG5lZWQgdG8gYnJvYWRjYXN0IHRoZSBzaWduYWwgaW4gZmx1c2gtc3RvcAoJICBFdmVyeXRoaW5nIHN0b3BwZWQgYXQgdGhpcyBwb2ludCBhbHJlYWR5LgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgoyMDEyLTA1LTMxIDEzOjA3OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTJiNzI2NiB0byBmMWI1YTk2CgoyMDEyLTA1LTMxIDEwOjEwOjQxICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBwcm9wZXJ0eSBuYW1lIGluIHRoZSBkb2NzCgkgIHRlbXAtdGVtcGxhdGUsIG5vdCB0ZW1wLXRtcGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzE3MAoKMjAxMi0wNS0yOCAxNDoyOTowMCAtMDMwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogUHJvcGVybHkgc3luYyB3aGVuIGNoYW5naW5nIHN0cmVhbXMKCSAgVGhpcyBhZGRzIHByb3BlcnRpZXMgdG8gdXNlIHRoZSBjbG9jayB0aW1lIGZvciBkZWNpZGluZyB3aGVuCgkgIHRvIGRyb3AgYnVmZmVycyBmb3IgaW5hY3RpdmUgcGFkcyBhbmQgYSBwcm9wZXJ0eSB0byBidWZmZXIgYWxsCgkgIG5vdCByZW5kZXJlZCBidWZmZXJzIGZvciB0aGUgYWN0aXZlIHBhZCB0byBhbGxvdyBwYWQgc3dpdGNoaW5nCgkgIHdpdGhvdXQgbG9zaW5nIGFueSBidWZmZXJzIGF0IGFsbC4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoKMjAxMi0wNS0zMCAxMjo0NDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGVjMWM0YTggdG8gOTJiNzI2NgoKMjAxMi0wNS0zMCAxMToxODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM0MjliYTYgdG8gZWMxYzRhOAoKMjAxMi0wNS0yOSAwODo0ODozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgZ3VhcmRzIHRvIG1ha2Ugc3VyZSB0YWdsaXN0IGlzIHdyaXRhYmxlIHdoZW4gbW9kaWZ5aW5nIGl0CgkgIE5vdyB0aGF0IHRhZ2xpc3RzIGFyZSByZWZjb3VudGVkIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhleSdyZQoJICB3cml0YWJsZSBiZWZvcmUgbW9kaWZ5aW5nIHRoZW0uCgoyMDEyLTA1LTI4IDIzOjU0OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhdm9pZCB1bm5lY2Vzc2FyeSBzdHJpbmcgY29weWluZyB3aGVuIHJlZ2lzdGVyaW5nIHRhZ3MKCSAgQWRkIGdzdF90YWdfcmVnaXN0ZXJfc3RhdGljKCkgLSBubyBuZWVkIHRvIGNvcHkgYWxsIHRob3NlCgkgIHN0cmluZyBjb25zdGFudHMsIHdoZXRoZXIgdHJhbnNsYXRlZCBvciBub3QuCgkgIEFQSTogZ3N0X3RhZ19yZWdpc3Rlcl9zdGF0aWMoKQoKMjAxMi0wNS0yOCAwMDowODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogY2hlY2sgZm9yIEdMaWItR0lPIGNyaXRpY2FscyBhcyB3ZWxsCgoyMDEyLTA1LTI4IDAwOjA4OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3RfdGFnX2xpc3RfZnJlZSgpIC0+IGdzdF90YWdfbGlzdF91bnJlZigpCgoyMDEyLTA1LTI3IDIzOjU4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogbWFrZSBHc3RUYWdMaXN0IGEgR3N0TWluaU9iamVjdAoJICBXaGljaCBhZGRzIHJlZmNvdW50aW5nIHN1cHBvcnQsIGFuZCBvdGhlciB0aGluZ3MuCgoyMDEyLTA1LTI3IDIwOjMxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGxvZyBmcmVlaW5nIG9mIGNhcHMgYXQgc2FtZSBsb2cgbGV2ZWwgYXMgY3JlYXRpb24sIGkuZS4gVFJBQ0UKCjIwMTItMDUtMjYgMTE6Mzc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZSwgZXZlbnQ6IHVwZGF0ZSBmb3IgdGFnIGxpc3RzIG5vdCBiZWluZyBzdHJ1Y3R1cmVzIGFueSBtb3JlCgoyMDEyLTA1LTIxIDAwOjMxOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2UgcHJvcGVyIHN0cnVjdCBub3QganVzdCBhIEdzdFN0cnVjdHVyZQoKMjAxMi0wNS0yNSAxMDoyODo0MCArMDIwMCAgSm9zZXAgVG9ycmEgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggc3RhdGljIGxpbmtpbmcgb24gT1MgWAoJICBUaGUgbGlua2luZyBiZWhhdmlvdXIgb2YgZXh0ZXJuYWwgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCBpbml0aWFsaXplZAoJICBpbiB0aGUgY29tcGlsYXRpb24gdW5pdCB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkIGlzIHVuZGVmaW5lZC4gT24gT1MgWAoJICB0aGlzIGNhdXNlcyBhIGxpbmtpbmcgZmFpbHVyZSB3aGVuIHN0YXRpY2FsbHkgbGlua2luZyBHU3RyZWFtZXIuCgoyMDEyLTA1LTI1IDA5OjE3OjE3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIGZpdmUtYnVncy1hLWRheTogdXNlIHNwbGljZSB0byB0cmltIHRoZSBidWcgbGlzdAoKMjAxMi0wNS0yNCAyMzozMDoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIGZha2VzcmM6IHB1dCBieXRlIHBvc2l0aW9uIHJhdGhlciB0aGFuIGJ1ZmZlciBjb3VudCBpbnRvIEdTVF9CVUZGRVJfT0ZGU0VUCgkgIElmIHdlJ3JlIHNlbmRpbmcgYSBzZWdtZW50IGluIEJZVEUgZm9ybWF0LCB0aGUgb2Zmc2V0CgkgIHNob3VsZCBiZSBpbiBieXRlcyBhcyB3ZWxsLgoKMjAxMi0wNS0yNCAxMTo0ODoxOSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBkb2NzOiBmaXggYSB0eXBvIGluIHBhcnQtc2VnbWVudHMudHh0CgoyMDEyLTA1LTI0IDExOjAyOjUzICswMjAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uIGF0IG9yYWNsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBmaXggcHJvdG90eXBlIG9mIGhlbHBlcl9maW5kX3N1Z2dlc3QKCSAgVGhlIHByb3RvIGZvciBoZWxwZXJfZmluZF9zdWdnZXN0IGhhcyBhIGRpZmZlcmVudCBhcmd1bWVudCB0aGFuIHRoZSBhY3R1YWwKCSAgZnVuY3Rpb24gaW4gdGhlIHNhbWUgZmlsZSBoYXMuICBUaGlzIGNhdXNlcyB0aGUgU3VuIFN0dWRpbyBjb21waWxlciB0byBmYWlsLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2NjI0CgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgoyMDEyLTA1LTI0IDA4OjA3OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiByZW1vdmUgYSBzdHJheSBwcmludCBmcm9tIGRlYnVnZ2luZyBhbmQgZml4IHVwIGNyb24gZW50cnkgZG9jcwoKMjAxMi0wNS0yNCAwOTowMzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgZml2ZS1idWdzLWEtZGF5OiBNYWtlICMhIHRvIHBlcmwgbW9yZSBwb3J0YWJsZQoKMjAxMi0wNS0yNCAwNzo1Njo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogcmVtb3ZlIGZpeGVkICdrbm93biBpc3N1ZScgZnJvbSBmaXZlLWJ1Z3MtYS1kYXkgc2NyaXB0CgkgIFRoaXMgd2FzIHdpdGggY29tbWFzIGFjdHVhbGx5LCBhbmQgc2hvdWxkIGJlIGZpeGVkIG5vdy4KCjIwMTItMDUtMjQgMDc6NTQ6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IGFkZCBmaXZlLWJ1Z3MtYS1kYXkgc2NyaXB0CgkgIENyb24gZm9kZGVyLgoKMjAxMi0wNS0yMiAxNDoyNzo0OCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIHRlc3RzOiByZW5hbWUgcGxheWJpbjIgdG8gcGxheWJpbiBhbmQgYWRkaW5nIHNvbWUgZGVidWcgaW5mbwoKMjAxMi0wNS0yMiAxODoyNzozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMi0wNS0yMiAxMzo1MTo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUKCjIwMTItMDUtMjEgMDk6MTQ6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogcG9ydCB1bml0IHRlc3QgdG8gMC4xMQoKMjAxMi0wNS0yMSAxNToxNDo1MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBzZWVraW5nIGRvY3MgbW9yZS4KCSAgQWxzbyBtZW50aW9uIGl0IG9uIF9lbGVtZW50X3NlZWt7LF9zaW1wbGV9IGFuZCBiZSBtb3JlIHByZWNpc2Ugd2h5IGl0IGhhcHBlbnMuCgoyMDEyLTA1LTIxIDEzOjE3OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCBhIHR5cG8gYW5kIGNsYXJpZnkgZXZlbnQgaGFuZGxpbmcgYSBiaXQgbW9yZQoJICBUZWxsIGFib3V0IGFzeW5jX2RvbmUgbWVzc2FnZXMgZm9yIHNvbWUgZXZlbnRzIGFuZCByZXZpZXcgdGhlIF9ldmVudF9uZXdfc2VlawoJICBkb2NzLgoKMjAxMi0wNS0xOCAxNTowNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IHRyeSBoYXJkZXIgdG8gYXZvaWQgc3RhdGUgY2hhbmdlcyBpbiB3cm9uZyBkaXJlY3Rpb24KCSAgV2hlbiB0aGUgYmluIGRvZXMgYW4gdXB3YXJkIHN0YXRlIGNoYW5nZSwgdHJ5IHRvIGF2b2lkIGRvaW5nIGEgZG93bndhcmQgc3RhdGUKCSAgY2hhbmdlIG9uIHRoZSBjaGlsZCBhbmQgdmljZSB2ZXJzYS4KCSAgQWRkIHNvbWUgbW9yZSB1bml0IHRlc3RzIGZvciB0aGlzIGZpeC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTgzMwoKMjAxMi0wNS0xOCAyMDoxMTo1NSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggLWMsIC0tdG9jIG1lc3NhZ2UKCjIwMTItMDUtMjEgMDE6NDg6MjkgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IEFkZCBib3hlZCB0eXBlcyBmb3IgR3N0VG9jIGFuZCBHc3RUb2NFbnRyeQoKMjAxMi0wNS0yMCAxODoyMzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBmaXggdHlwZSBvZiBwYWQgcGFyYW1ldGVyIHRvIGdzdF90b2NfZW50cnlfbmV3X3dpdGhfcGFkKCkKCjIwMTItMDUtMjAgMTg6MTY6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHVzZSBjb3JyZWN0IEdUeXBlIGZvciB0YWcgbGlzdHMKCjIwMTItMDUtMjAgMTg6MDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGF2b2lkIHVubmVjZXNzYXJ5IEdWYWx1ZSBhY3JvYmF0aWNzCgoyMDEyLTA1LTIwIDE3OjQ4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHVzZSBnbG9iYWwgcXVhcmsgdGFibGUKCjIwMTItMDUtMjAgMTc6MTA6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkgIHRvYzogZml4IGludGVybmFsIFRPQyBxdWVyeSBhbmQgZXZlbnQgc3RydWN0dXJlIG5hbWVzCgkgIE1ha2UgdGhlbSBjb25zaXN0ZW50IHdpdGggYWxsIHRoZSBvdGhlciBxdWVyeSBhbmQgZXZlbnQgbmFtZXMuCgoyMDEyLTA1LTE5IDE3OjI0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBwbHVnaW5mZWF0dXJlOiBtYWtlIEdzdFBsdWdpbkZlYXR1cmUgc3RydWN0dXJlIHByaXZhdGUKCSAgTWFrZSBHc3RQbHVnaW5GZWF0dXJlIG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8KCSAgY2xlYW4gaXQgdXAgYSBsaXR0bGUuIE9ubHkgR3N0RWxlbWVudEZhY3RvcnkgYW5kCgkgIEdzdFR5cGVmaW5kRmFjdG9yeSBkZXJpdmUgZnJvbSBpdCwgYW5kIHRoZXkgYXJlCgkgIG9wYXF1ZSBhbHJlYWR5LCBhbmQgd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQKCSAgY3VzdG9tIHBsdWdpbiBmZWF0dXJlcyBpbiB0aGUgcmVnaXN0cnkgYW55d2F5LgoKMjAxMi0wNS0xOSAxNzoyMzo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzLCB0ZXN0czogZG9uJ3QgYWNjZXNzIHRoZSBHc3RQbHVnaW5GZWF0dXJlIHN0cnVjdHVyZSBkaXJlY3RseQoKMjAxMi0wNS0xOSAxNzoxNjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luKCkKCSAgQWRkIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHBsdWdpbiB0aGF0IHByb3ZpZGVzIHRoaXMgZmVhdHVyZS4KCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbigpCgoyMDEyLTA1LTE5IDE2OjIxOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIGdzdHNjYW5vYmogY2hhbmdlcwoKMjAxMi0wNS0xOSAxNTo1MTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWFrZSBvYmplY3Qgc3RydWN0IG9wYXF1ZSBmb3Igbm93CgkgIE1ha2UgR3N0RWxlbWVudEZhY3Rvcnkgb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0bwoJICBjbGVhbiBpdCB1cCBhIGxpdHRsZS4gSXQncyBub3Qgc29tZXRoaW5nIGFueW9uZQoJICB3b3VsZCBuZWVkIHRvIGRlcml2ZSBmcm9tLgoKMjAxMi0wNS0xOSAxNDo1OToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZG9uJ3QgdXNlIHByaXZhdGUgR3N0RWxlbWVudEZhY3RvcnkgQVBJIGluIGdzdC1pbnNwZWN0CgoyMDEyLTA1LTE5IDE0OjUyOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGFfa2V5cygpCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGFfa2V5cygpCgoyMDEyLTA1LTE4IDA5OjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGltcHJvdmUgRU9TIG9uIHNodXRkb3duIGhhbmRsaW5nCgkgIFdoZW4gdGhlIC1lIG9wdGlvbiBpcyBzZWxlY3RlZCwgYWxzbyB3YWl0IGZvciBFT1Mgd2hlbiB0aGUgcGlwZWxpbmUgcHJvZHVjZWQgYW4KCSAgZXJyb3IuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA5OTcKCjIwMTItMDUtMTYgMTg6NTM6MTUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogZml4IGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKCkgZG9jcwoKMjAxMi0wNS0xNiAxMzoyNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRocm90dGxlLXRpbWUgaXMgdXNlZAoKMjAxMi0wNS0xNiAxMjowODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHByZXBhcmUgbWV0aG9kCgkgIEFkZCBhIHByZXBhcmUgbWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSBzeW5jIGhhcHBlbnMuIFRoZSBwdXJwb3NlIG9mIHRoaXMKCSAgbWV0aG9kIGlzIHRvIHByZXBhcmUgdGhlIHJlbmRlcmluZyBvZiB0aGUgZ2l2aW5nIGJ1ZmZlciBzbyB0aGF0IHRoZSBmb2xsb3dpbmcKCSAgcmVuZGVyKCkgY2FsbCBhZnRlciBzeW5jIGlzIGEgcXVpY2sgYXMgcG9zc2libGUuCgoyMDEyLTA1LTE2IDA5OjE2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHBvdGVudGlhbCBkZWFkbG9jawoJICBJbiBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKSB3ZSBkbyBhIHBlcmZvcm1fc2VlaygpIHRoYXQgd2lsbCBldmVudHVhbGx5CgkgIHN0YXJ0IHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdoaWNoIGFjcXVpcmVzIHRoZSBsaXZlIGxvY2sgYW5kIHRoZW4gZ29lcyB0byBzbGVlcAoJICBpbiB0aGUgY2FzZSBvZiBhcHBzcmMuIFJpZ2h0IGFmdGVyIHdlIHBlcmZvcm0gc2VlayB3ZSBhbHNvIHRyeSB0byBhY3F1aXJlIHRoZQoJICBsaXZlIGxvY2sgd2hpY2ggbWlnaHQgdGhlbiBkZWFkbG9jay4KCSAgZml4IHRoaXMgYnkgdGFraW5nIHRoZSBzdHJlYW0gbG9jayBiZWZvcmUgcGVyZm9ybWluZyB0aGUgc2Vlay4gVGhpcyBtYWtlcyBzdXJlCgkgIHRoYXQgdGhlIHN0cmVhbWluZyB0aHJlYWQgY2Fubm90IHN0YXJ0IGFuZCBncmFiIHRoZSBsaXZlIGxvY2sgdW50aWwgd2UgYXJlIGRvbmUKCSAgYW5kIHJlbGVhc2UgdGhlIHN0cmVhbSBsb2NrIGFnYWluLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MDQ4CgoyMDEyLTA1LTE1IDE5OjExOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgcmVmZXJlbmNlcyB0byBtbWFwIGluIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwoKMjAxMi0wNS0xNSAxNjozODozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBSZW5hbWUgZ3N0X3RvY19lbnRyeV90eXBlX3RvX3N0cmluZygpIHRvIGdzdF90b2NfZW50cnlfdHlwZV9nZXRfbmljaygpCgkgIEl0J3MgbW9yZSBjb25zaXN0ZW50LgoKMjAxMi0wNS0xNSAxNDo1OTowNyArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggcHJpbnRfdG9jX2VudHJ5KCkKCjIwMTItMDUtMTUgMTQ6NDg6MzUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBBUEk6IEFkZCBnc3RfdG9jX2VudHJ5X3R5cGVfdG9fc3RyaW5nKCkKCjIwMTItMDUtMTQgMDM6NTc6NTAgKzAyMDAgIEFsYmFuIEJyb3dhZXlzIDxwcmFoYWxAeWFob28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBpZiBzaW5rIHBhZCBpcyBhY3RpdmF0ZWQgZG8gbm90IGNoYW5nZSBtb2RlCgkgIEluIGNvbW1pdCBiZjA5NjRiNiBhIGNoZWNrIGZvciBwYWQgaXMgYWN0aXZhdGVkIHdhcyBub3QgY2FycmllZC4KCSAgVGhpcyBsZWFkcyB0byBhdHRlbXB0IHRvIHB1bGwgd2hpbGUgaW4gcHVzaCBtb2RlIHdoZW4gZm9yY2VfY2FwcwoJICBpcyBzZXQuIEluIHRoaXMgY2FzZSB3aXRob3V0IHRoZSBhdHRhY2hlZCBjaGVjayBldmVuIHdoZW4gYWN0aXZhdGVkCgkgIGluIHB1bGwgbW9kZSB3ZSBhY3RpdmF0ZSBiYWNrIHRvIHB1c2ggbW9kZS4KCSAgVGhpcyBpcyBmcm9tIGNvbW1lbnQgaW4gcHJldmlvdXMgY29kZSAsIGNhc2UgbnVtYmVyIGVpZ2h0OgoJICA4LiBpZiB0aGUgc2luayBwYWQgaXMgYWN0aXZhdGVkLCB3ZSBhcmUgaW4gcHVsbCBtb2RlLiBzdWNjZWVkLgoJICAtICAgICBvdGhlcndpc2UgYWN0aXZhdGUgYm90aCBwYWRzIGluIHB1c2ggbW9kZSBhbmQgc3VjY2VlZC4KCSAgUHV0dGluZyBpdCBiYWNrIGZpeGVzIHBsYXliYWNrIG9mIHdlYm0gaW4gd2Via2l0K2dzdHJlYW1lciAxLjAgLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MDAzCgoyMDEyLTA1LTEzIDE2OjU5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MSA9PT0KCjIwMTItMDUtMTMgMTY6MDI6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgUmVsZWFzZSAwLjExLjkxCgoyMDEyLTA1LTEzIDE2OjAyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNS0xMyAxNTo1NTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRjNzAyMDMgdG8gMzQyOWJhNgoKMjAxMi0wNS0wOSAxNDoyMjoyMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogT25seSBpbmNsdWRlIGluaXQvZGVpbml0IG9mIGFsbG9jIHRyYWNpbmcgd2hlbiBlbmFibGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MDYKCjIwMTItMDUtMTEgMDk6MDc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IGRvY3MKCSAgR1NUX0ZMT1dfV1JPTkdfU1RBVEUgLT4gR1NUX0ZMT1dfRkxVU0hJTkcKCjIwMTItMDUtMTAgMTI6MTU6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBpbXByb3ZlIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMi0wNS0wOCAyMDoxMjo0MiArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCB0YWdzIGluIHRvYwoKMjAxMi0wNS0wNSAyMjoxNzo0MyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0OiBGaXggY29tcGlsZXIgd2FybmluZ3Mgb24gbWluZ3ctdzY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1MjUKCjIwMTItMDUtMDIgMTQ6MDA6NDMgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgdG8gZGVmYXVsdF9tZW1fbWFwKCkKCSAgRml4ZXMgZnVuY3Rpb24gc2lnbmF0dXJlIGZvciBjb3JyZWN0bmVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTI4OQoKMjAxMi0wNS0wMiAwODowODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTItMDUtMDEgMjI6MzU6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgdHlwZWZpbmRmYWN0b3J5OiBtYWtlIG9iamVjdCBzdHJ1Y3Qgb3BhcXVlIGZvciBub3cKCSAgTWFrZSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvIGNsZWFuIGl0IHVwIGEgbGl0dGxlLgoKMjAxMi0wNS0wMSAyMjozMDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgdHlwZWZpbmRmYWN0b3J5OiBmaXggcmV0dXJuIHR5cGUgb2YgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9leHRlbnNpb25zKCkKCjIwMTItMDUtMDEgMjI6Mjg6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scywgYmFzZTogZG9uJ3QgcG9rZSBpbnRvIEdzdFR5cGVGaW5kRmFjdG9yeSBzdHJ1Y3QsIHVzZSBwdWJsaWMgQVBJCgoyMDEyLTA1LTAxIDIyOjMzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kZmFjdG9yeTogYWRkIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9oYXNfZnVuY3Rpb24oKQoJICBBZGQgQVBJIHNvIHBlb3BsZSBkb24ndCBoYXZlIHRvIHBva2UgdGhlIHN0cnVjdCBmb3IgdGhpcy4KCjIwMTItMDUtMDEgMTU6NTI6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVwZGF0ZSBkb2NzIGZvciBnc3RfY2Fwc19pc19lcXVhbAoJICBOVUxMIGNhcHMgYXJlbid0IHZhbGlkIGNhcHMgaW4gMS4wIGFuZCBhcmVuJ3QgYWNjZXB0ZWQgaW4KCSAgZ3N0X2NhcHNfaXNfZXF1YWwKCjIwMTItMDUtMDEgMTk6NDc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogcmVxdWlyZSBVUkkgcHJvdG9jb2wgYml0IHRvIGJlIGF0IGxlYXN0IDMgY2hhcmFjdGVycyB0byBiZSB2YWxpZAoJICBXZSB3YW50IHRvIHJldHVybiBGQUxTRSB3aGVuIHJ1biBvbiBhIHdpbmRvd3Mtc3R5bGUgZmlsZSBwYXRoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0Mjk2CgoyMDEyLTA0LTI2IDE3OjI2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybS9iYXNlc3JjOiBEbyBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb24gaW5zaWRlIHRoZSBkZWZhdWx0IGRlY2lkZV9hbGxvY2F0aW9uKCkgaW1wbGVtZW50YXRpb24KCSAgVGhpcyBhbGxvd3Mgc3ViY2xhc3NlcyB0byBvdmVycmlkZSBpdCwgYXMgaXMgbmVjZXNzYXJ5IGZvciBlLmcuIHRoZQoJICB2aWRlby1jcm9wIG1ldGEuIEl0IGlzIG5vdyBuZWNlc3NhcnkgdGhhdCBhZnRlciBkZWNpZGVfYWxsb2NhdGlvbigpCgkgIHRoZXJlIGlzIGFsd2F5cyBhIGFsbG9jYXRvciBhbmQgYSBjb25maWd1cmVkIGJ1ZmZlciBwb29sIGluc2lkZSB0aGUKCSAgcXVlcnkuCgoyMDEyLTA0LTI4IDIxOjM3OjU2ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBzZXQgcmVzdWx0IG9uIGFjY2VwdCBjYXBzIHF1ZXJ5IHdoZW4gdGhlcmUgaXMgbm8gcGVlcgoKMjAxMi0wNS0wMSAxMDo1MDozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIF90cnlfdG9fbWVyZ2VfdXAoKQoJICBJdCBjYXVzZXMgdGhlIHRpbWVzdGFtcCB0byBnbyB3cm9uZywgc2hvdWxkIG5vdCBjYXVzZSBtdWNoIG9mIGEgcGVyZm9ybWFuY2UKCSAgaW5jcmVhc2UgYW5kIGluIHRoZSBjYXNlcyB3aGVyZSBpdCBpcyBmYXN0ZXIsIGl0IGlzIGJyb2tlbiBpbiAwLjEwIGFzIHdlbGwuCgkgIFdlIHNob3VsZCB0cnkgdG8gcmV2aWV3IHRoaXMgd2hlbiByZXdyaXRpbmcgdGhlIGFkYXB0ZXIgZm9yIDAuMTEgbWVtb3J5CgkgIGZlYXR1cmVzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0NzkxCgoyMDEyLTA1LTAxIDA5OjI1OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBtYWtlIGludGVybmFscyBwcml2YXRlCgkgIE1ha2UgdGhlIGFkYXB0ZXIgZmllbGRzIHByaXZhdGUuCgoyMDEyLTA0LTMwIDIwOjI5OjIxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZWFycmFuZ2Ugc3lzL3N0YXQuaCBpbmNsdXNpb24gcG9pbnQgZm9yIE1pbkdXCgkgIGdzdHBsdWdpbi5oIHVzZWQgdG8gaW5jbHVkZSB0aGlzIGZvciB1cywgYnV0IGRvZXNuJ3QgYW55IGxvbmdlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTE3MQoKMjAxMi0wNC0zMCAwOTo1ODowOSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIGV2ZW50OiBhZGQgbmV3IHNlZWsgc25hcCBmbGFncwoJICBUaGV5IGNhbiBiZSB1c2VkIHRvIHNlbGVjdCBzbmFwcGluZyBiZWhhdmlvciAodG8gcHJldmlvdXMsIG5leHQsIG9yCgkgIG5lYXJlc3QgbG9jYXRpb24sIHdoZXJlIHJlbGV2YW50KSB3aGVuIHNlZWtpbmcuCgkgIFRoZSBzZWVraW5nIGltcGxlbWVudGF0aW9uIChlZywgZGVtdXhlcikgbWF5IGN1cnJlbnRseSBpZ25vcmUgc29tZQoJICBvciBhbGwgb2YgdGhlc2UgZmxhZ3MuCgoyMDEyLTA0LTI5IDIwOjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byByZW1vdmVkIEFQSSBpbiBwbHVnaW4gZG9jcwoKMjAxMi0wNC0yOSAyMDowNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYXZvaWQgc29tZSByZWxvY2F0aW9ucwoKMjAxMi0wNC0yOSAxODozNToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IHJlbW92ZSBnc3RfcGx1Z2luX25hbWVfZmlsdGVyCgkgIEl0J3Mgb25seSB1c2VkIGludGVybmFsbHksIG1vc3Qgb3RoZXIgdXNlcnMgd2lsbCBsaWtlbHkKCSAgd2FudCB0byB1c2UgZ3N0X3JlZ2lzdHJ5X2ZpbmRfcGx1Z2luKCkgZGlyZWN0bHkgaW5zdGVhZAoJICAoYW5kIGlmIG5vdCwgdGhleSBjYW4gZWFzaWx5IHdhbGsgdGhlIGxpc3QgYW5kIGRvaW5nIHRoZQoJICBzdHJjbXAgdGhlbXNlbHZlcykuCgoyMDEyLTA0LTI5IDE3OjQ2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGx1Z2luOiB1c2UgR3N0T2JqZWN0IGZsYWdzIGZvciBwbHVnaW4gZmxhZ3MKCjIwMTItMDQtMjkgMTc6MDM6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBtYWtlIEdzdFBsdWdpbiBvYmplY3Qgc3RydWN0dXJlIG9wYXF1ZSBmb3Igbm93CgkgIFRoZXJlJ3Mgbm8gcmVhc29uIGFueW9uZSB3b3VsZCB3YW50IHRvIGRlcml2ZSBmcm9tIHRoaXMsIHNvCgkgIGp1c3QgbWFrZSBvcGFxdWUgdW50aWwgd2UgbWFuYWdlIHRvIG1ha2UgYWxsIHRoZSBwcml2YXRlIGJpdHMKCSAgcHJpdmF0ZSBwcm9wZXJseSAod2hpY2ggSSdtIG5vdCBkb2luZyByaWdodCBub3cgYmVjYXVzZSBpdCdzCgkgIG1vcmUgaW52YXNpdmUgYW5kIEkgaGF2ZSByZWdpc3RyeSBtb2RpZmljYXRpb25zIGxvY2FsbHkgd2hpY2gKCSAgdG91Y2ggYWxsIHRoYXQgY29kZSBhcyB3ZWxsKS4KCjIwMTItMDQtMjkgMTY6NDk6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHVzZSBwdWJsaWMgYWNjZXNzb3JzIGZvciBwbHVnaW4gZGVzY3JpcHRpb24gZGV0YWlscwoJICBNb3N0bHkgYW55d2F5IChmbGFncyBzdGlsbCBuZWVkIHNvcnRpbmcgb3V0KS4KCjIwMTItMDQtMjkgMTY6NDY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IHJlbW92ZSBnc3RfcGx1Z2luX2dldF9tb2R1bGUoKQoJICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCByZWFsbHksIGFuZCBpdCdzIG5vdAoJICBjbGVhciB3aGF0IGFueW9uZSB3b3VsZCBkbyB3aXRoIHRoaXMuIEl0J3MgdW51c2VkIGFzCgkgIGZhciBhcyBJJ20gYXdhcmUsIHNvIGp1c3QgcmVtb3ZlIGl0IGZvciBub3cuCgoyMDEyLTA0LTI5IDE2OjIwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiBhZGQgYWNjZXNzb3IgZm9yIHJlbGVhc2UgZGF0ZSB0aW1lIHN0cmluZyBpbiBwbHVnaW4gZGVzY3JpcHRpb24KCSAgQVBJOiBnc3RfcGx1Z2luX2dldF9yZWxlYXNlX2RhdGVfc3RyaW5nKCkKCjIwMTItMDQtMjkgMTU6NTM6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogdXNlIHB1YmxpYyBhY2Nlc3NvcnMgdG8gZ2V0IHBsdWdpbiBkZXNjcmlwdGlvbiBkZXRhaWxzCgoyMDEyLTA0LTI5IDEzOjI4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBnaXZlIHRoZSAyMHRoIHF1ZXVlIGVsZW1lbnQgYSBkaWZmZXJlbnQgbmFtZSB0aGFuIHRoZSBmaXJzdCBxdWV1ZTIgb25lCgkgIEZpeGVzIGlzc3VlIHdpdGggdGhlIGRlZmF1bHQgbmFtaW5nIHNjaGVtZS4KCjIwMTItMDQtMTggMTc6Mzc6MjUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IGZvcm1hdCBzdHJpbmcgaW4gZ3JhbW1hci55CgkgIEZpeGVzICM2NzQ4NDkKCjIwMTItMDQtMjUgMjA6MTQ6MTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogYWRkIGNvbW1lbnRzIGZvciBzcGFyc2UgY29udHJvbCBzb3VyY2UKCjIwMTItMDQtMjUgMjA6MTA6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZW11bGF0ZSBfZ2V0X2dfdmFsdWVfYXJyYXkoKQoJICBBZGQgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9uIHRoZSBiYXNlY2xhc3MuCgoyMDEyLTA0LTI1IDA5OjQ3OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogZXhwYW5kIHRoZSBhcGkgdG8gb2ZmZXIgZnVuY3Rpb25zIGZvciBwbGFpbiBhbmQgR1ZhbHVlIGFycmF5cwoJICBSZW5hbWUgdGhlIF9nZXRfdmFsdWVfYXJyYXkoKSBmdW5jdGlvbnMgdG8gX2dldF9nX3ZhbHVlX2FycmF5KCkgYW5kIHJlaW50cm9kdWNlCgkgIHRoZSBmb3JtZXIgdG8gb3BlcmF0ZSBvbiBwbGFpbiB1bmJveGVkIGMgZGF0YXR5cGVzIChsaWtlIGluIDAuMTApLiBUaGUgX2dfdmFsdWUKCSAgdmFyaWFudHMgYXJlIGZvciBiaW5kaW5ncyB3aGlsZSB0aGUgX3ZhbHVlIG9uZXMgYXJlIG1vcmUgc3VpdGVkIHRvIHByb2Nlc3NpbmcKCSAgaW4gZWxlbWVudHMuCgoyMDEyLTA0LTI1IDE4OjExOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBpbnNhbml0eSwgaW5zYW5pdHktZ3N0IGFuZCBnc3QtZWRpdGluZy1zZXJ2aWNlcwoKMjAxMi0wNC0yNSAwOTowNjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IFJlc2V0IHRoZSBidWZmZXIgYmVmb3JlIHJlbGVhc2luZyBpbnRvIHBvb2wKCSAgUmVzZXQgdGhlIGJ1ZmZlciBub3QgYWZ0ZXIgd2UgYWNxdWlyZSBidXQgYmVmb3JlIHdlIHJlbGVhc2UgaW50byB0aGUgcG9vbC4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgdGhlIHBvb2wgb25seSBoYXMgYnVmZmVycyBpbiBhIGNsZWFuIHN0YXRlIGFuZCB0aGF0IHdlIGNhbiBzZXQKCSAgZXh0cmEgbWV0YWRhdGEgb24gYnVmZmVycyBpbiB0aGUgYWNxdWlyZSBtZXRob2QuIHRoaXMgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvCgkgIHJlbW92ZSBhbiBhcmd1bWVudCBmcm9tIHRoZSBtZXRob2QuCgoyMDEyLTA0LTIzIDE1OjMyOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IE1BUktFUiBpcyBmb3IgdGhlIHN0YXJ0IG9mIGEgdGFsa3NwdXJ0CgoyMDEyLTA0LTI0IDE2OjAxOjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwbHVnIHNvbWUgbGVha3MKCjIwMTItMDQtMjMgMTc6MDQ6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG8gbm90IHVucmVmIGZsdXNoX3N0YXJ0IHR3aWNlCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoyMDEyLTA0LTIzIDE2OjU3OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZWZyZXNoIHNraXAgZm9sbG93aW5nIG1lcmdlX3VwIGF0dGVtcHQKCSAgLi4uIGFzIHRoZSBsYXR0ZXIgbWlnaHQgbm93IGFkanVzdCBza2lwIGFzIHdlbGwuCgoyMDEyLTA0LTIzIDA5OjE4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bSBsaXN0CgkgIFRoaXMgY29tbWEgY29uZnVzZXMgc29tZSBjb21waWxlcnMuCgoyMDEyLTA0LTE4IDE1OjMxOjIzICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogUmVtb3ZlIHVubmVlZGVkIHVubG9jawoKMjAxMi0wNC0xOCAwNToxMjo1NSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBoYXJkY29kZWQgMC4xMCB2ZXJzaW9uIGluIHdpbjMyIHBsdWdpbnNjYW5uZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDI5NAoKMjAxMi0wNC0xNyAxNTozNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogYWRkIExPQ0tFRCBmbGFnCgkgIEFkZCBhIG5ldyBMT0NLRUQgZmxhZyB0byB0aGUgbWV0YWRhdGEuIFJlZnVzZSByZW1vdmluZyBMT0NLRUQgbWV0YWRhdGEgZnJvbQoJICBhIGJ1ZmZlci4KCSAgTWFyayB0aGUgbWV0YWRhdGEgZnJvbSB0aGUgYnVmZmVycG9vbCBMT0NLRUQuCgkgIEFkZCB1bml0IHRlc3QgZm9yIExPQ0tFRCBmbGFnCgoyMDEyLTA0LTE3IDE0OjM4OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkgIGNvbGxlY3RwYWRzMjogcmVuYW1lIHRvIGNvbGxlY3RwYWRzCgoyMDEyLTA0LTE3IDEyOjU0OjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgd3JpdGFibGUgaGVhZCBidWZmZXIgYmVmb3JlIHNraXBwaW5nIHBhcnQgb2YgaXQKCjIwMTItMDQtMTcgMTI6Mjk6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMi0wNC0xNyAxMjoyMzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFsd2F5cyByZWNvcmRpbmcgaW5jb21pbmcgc2VnbWVudCBpbmZvIGlmIG5vIGJ1ZmZlcl9mdW5jIHNldAoKMjAxMi0wNC0xNyAxMDozODowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiB1cGRhdGUgdGhlIGRlYnVnIGFuZCB0cmFjZSBlbnYgdmFyIGRvY3MKCjIwMTItMDQtMTcgMTA6MzM6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IHVzZSBnX3BhcnNlX2RlYnVnX3N0cmluZyBpbnN0ZWFkIG9mIGF0b2kKCSAgTWFrZSB0aGUgR1NUX1RSQUNFIGVudiB2YXJpYWJsZSB0YWtlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncwoJICBkZXNjcmliaW5nIHRoZSBvcHRpb25zIHRvIGVuYWJsZSBpbnN0ZWFkIG9mIGEgbnVtYmVyLgoKMjAxMi0wNC0xNiAyMToxNDoxNyArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJZiBydW5uaW5nIHdpdGggLS1wcmludC1hbGwsIGZpeCBwcmludGluZyBvZiB0aGUgQ2hpbGRyZW46IGxpbmUKCjIwMTItMDQtMTYgMjE6MTQ6MDIgKzAwMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSWYgcnVubmluZyB3aXRoIC0tcHJpbnQtYWxsLCBmaXggcHJpbnRpbmcgb2Ygc2lnbmFsIG5hbWVzCgoyMDEyLTA0LTE2IDE2OjM2OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgY29sbGVjdHBhZHMyIEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDQtMTYgMTY6Mjk6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMi0wNC0xNiAxNjoyNDoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IHByb3ZpZGUgcXVlcnkgZGVmYXVsdCBhbmQgY2FsbGJhY2sgaGFuZGxpbmcKCSAgLi4uIHdoaWNoIHByZXNlbnRseSBtYWlubHkgc2VydmVzIHRvIGFuc3dlciBTRUVLSU5HIHF1ZXJ5IG5lZ2F0aXZlbHkKCSAgdG8gZGlzc3VhZGUgdXBzdHJlYW0gZW5jb2RlcnMgZnJvbSBkb2luZyBhbnkgc2Vla2luZyBhbmQKCSAgImhlYWRlciBmaW5hbGl6YXRpb24iIChzaW5jZSB0aGUgcmV0dXJuZWQgcmVzdWx0IG9mIHB1c2hpbmcgYQoJICBzdGlja3kgZXZlbnQgaXMgZmFpcmx5IHVzZWxlc3Mgbm93YWRheXMpLgoKMjAxMi0wNC0xNiAxNjoyNDoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IG1vZGlmeSBldmVudCBoYW5kbGluZyB1c2luZyBhIGRlZmF1bHQgZXZlbnQgaGFuZGxlcgoJICAuLi4gdGhhdCBlbGVtZW50cyBzaG91bGQgImNoYWluIHVwIiB0by4KCjIwMTItMDQtMTYgMTU6MzU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgc2VnbWVudDogYWRkIHJ1ZGUgc2VyaWFsaXphdGlvbgoJICBBc3Mgc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBmdW5jdGlvbnMgZm9yIEdzdFNlZ21lbnQgc28gdGhhdCBnZHAgYW5kCgkgIGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nIHNob3cgdGhlIHNlZ21lbnQgdmFsdWVzLiBXZSBjb252ZXJ0IHRvIGEgR3N0U2VnbWVudAoJICBmaXJzdCB0byBtYWtlIHRoaW5ncyBlYXNpZXIuLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MTAwCgoyMDEyLTAyLTAzIDE3OjA4OjM1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYXNzdW1lIDAgYmFzZWQgc2VnbWVudCBpZiBubyB0aW1lIHNlZ21lbnQgd2FzIHByb3ZpZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkzMDUKCjIwMTItMDQtMTYgMTA6Mjg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIHNpemUgdG8gZGVidWcgbG9nCgoyMDEyLTA0LTE2IDEwOjI3OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZXQgc2VxdWVuY2UgbnVtYmVyIG9uIHNlZ21lbnQgZXZlbnRzCgoyMDEyLTA0LTE2IDEwOjIyOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGb3J3YXJkIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gc3dpdGNoaW5nIHBhZHMKCjIwMTItMDQtMTYgMTA6MDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBTdG9yZSBwYWQgc3RhdGUgZGlyZWN0bHkgaW5zaWRlIHRoZSBwYWRzIGluc3RlYWQgb2YgR09iamVjdCBxZGF0YQoKMjAxMi0wNC0xNiAwOTo0NToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2VuZCByZWNvbmZpZ3VyZSBldmVudCBvbiB0aGUgbmV3IGFjdGl2ZSBwYWQgd2hlbiBwYWRzIGFyZSBzd2l0Y2hlZAoKMjAxMi0wNC0xNiAwOTowODo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZkYjI1YmUgdG8gZGM3MDIwMwoKMjAxMi0wNC0xNCAwMzoyNzoyOSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBSZW1vdmUgc2tpcHBlZCBwYXJ0IG9mIGJ1ZmZlciB3aGVuIG1hcHBpbmcgdGhlIGFkYXB0ZXIKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDA4NQoKMjAxMi0wNC0xNCAxMDoyNDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgYWRhcHRlciB0ZXN0CgkgIFRlc3QgcGVyZm9ybWFuY2Ugb2YgbWVyZ2luZwoKMjAxMi0wNC0xNCAxMDoyMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA0LTEzIDE0OjIyOjM0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGdzdF9zaW5nbGVfcXVldWVfZmx1c2ggdW5sb2NrcyB0aGUgcXVldWUgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDA0NAoKMjAxMi0wNC0xMyAxMzozNjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogTW9kZXJuaXplIGF1dG90b29scyBzZXR1cCBhIGJpdAoJICBBbHNvIHdlIG5vdyBvbmx5IGNyZWF0ZSB0YXIuYnoyIGFuZCB0YXIueHogdGFyYmFsbHMuCgoyMDEyLTA0LTEzIDEzOjM2OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDY0ZmUxNSB0byA2ZGIyNWJlCgoyMDEyLTA0LTEzIDExOjU4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTA0LTEzIDA4OjEwOjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBvbmx5IHRha2UgYSB3ZWFrIHJlZiBvbiB0aGUgb2JqZWN0CgkgIEZpeGVzIHRoZSBsZWFrcyBpbiB0aGUgdGVzdHMuIEFkZGVkIGEgVE9ETyBjb21tZW50IHRvIGV2ZW50dWFsbHkgcmV3b3JrIHRoaXMKCSAgc29tZSBtb3JlICh3aGlsZSB3ZSBjYW4pLgoKMjAxMi0wNC0xMiAxODoxNToyNyAtMDQwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9AY29sbGFib3JhLmNvbT4KCgkqIEFuZHJvaWQubWs6CgkgIFN5bmMgQW5kcm9pZC5tayBlbnRyaWVzIHRvIHRoZSBuZXcgbWFqb3IgdmVyc2lvbgoJICBDaGFuZ2UgbmFtaW5nIG9uIHRoZSBwa2djb25maWcgZmlsZXMgdG8gcmVmbGVjdAoJICB0aGUgMC4xMCAtPiAxLjAgYnVtcC4KCjIwMTItMDQtMTIgMTQ6NTk6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgZGlzcG9zZS9maW5hbGl6ZQoJICBBdm9pZHMgbGVha3MKCjIwMTItMDQtMTIgMTQ6NTk6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogVXNlIGdzdF9vYmplY3Rfe3JlZnx1bnJlZn0gd2hlcmUgYXBwbGljYWJsZQoJICBBbGxvd3MgdXMgdG8gZGVidWcgb2JqZWN0IGxpZmUKCjIwMTItMDQtMTIgMTQ6NTg6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBnc3Q6IFVzZSBnc3Rfb2JqZWN0X3tyZWZ8dW5yZWZ9IHdoZXJlIGFwcGxpY2FibGUKCSAgQWxsb3dzIHVzIHRvIGRlYnVnIG9iamVjdCBsaWZlCgoyMDEyLTA0LTEyIDExOjUzOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgYXJnIGNoZWNraW5nCgkgIEFsbG93IGlkeCA9PSAwIGFuZCBsZW5ndGggPT0gLTEgb24gZW1wdHkgYnVmZmVycyBmb3IgdGhlIF9yYW5nZSBtZXRob2RzLgoKMjAxMi0wNC0xMiAxMToxODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTAgPT09CgoyMDEyLTA0LTEyIDA5OjU3OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTAKCjIwMTItMDQtMTIgMDk6NTY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA0LTExIDEzOjIwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVyZ2UgZXJyb3IKCjIwMTItMDQtMTEgMTI6NTg6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyIHRvIE5VTEwgYmVmb3JlIHB1bGwKCjIwMTItMDQtMTEgMTI6NTQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IHBvcnQgcXVldWUyIHRlc3RzIHRvIDAuMTEKCjIwMTItMDQtMTEgMTI6NTA6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dG9jLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0xMSAxMjozNDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2lnbmFsIGRlbGV0ZSBiZWZvcmUgd2FpdGluZwoJICBXaGVuIHdlIGRvbid0IGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGluIHRoZSByaW5nYnVmZmVyIGFuZCB3ZSBtb3ZlIG91ciByZWFkCgkgIHBvaW50ZXIgdG8gdGhlIHJlcXVlc3RlZCBwb3NpdGlvbiwgc2lnbmFsIHRoZSBkZWxldGUgY29uZCB0byBpbmZvcm0gdGhlIHdyaXRlcgoJICB0aGF0IHdlIGNoYW5nZWQgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbC4gSWYgd2UgZG9uJ3QsIHRoZSB3cml0ZXIgbWlnaHQgc3RheQoJICBibG9ja2VkIGFuZCB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIuCgoyMDEyLTA0LTExIDEyOjE1OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHRlc3QgZm9yIHJpbmdidWZmZXIgZGVhZGxvY2sKCjIwMTItMDQtMTEgMTI6MDI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBjdXJyZW50IHJlYWQgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcKCSAgV2hlbiB3ZSBkb24ndCBoYXZlIGVub3VnaCBieXRlcyBpbiB0aGUgcmluZ2J1ZmZlciB0byBzYXRpc2Z5IHRoZSBjdXJyZW50CgkgIHJlcXVlc3QsIGZpcnN0IHVwZGF0ZSB0aGUgY3VycmVudCByZWFkIHBvc2l0aW9uIGJlZm9yZSB3YWl0aW5nLiBJZiB3ZSBkb24ndCBkbwoJICB0aGF0LCB0aGUgcmluZ2J1ZmZlciBtaWdodCBhcHBlYXIgZnVsbCBhbmQgdGhlIHdyaXRlciB3aWxsIG5ldmVyIHdyaXRlIG1vcmUKCSAgYnl0ZXMgdG8gd2FrZSB1cyB1cC4KCjIwMTItMDQtMTEgMTI6MDA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCByYW5nZSBvbmx5IG9uIHNpbmtwYWQKCSAgT25seSBhZGQgdGhlIHJhbmdlIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQgb24gdGhlIHNpbmtwYWQuIFRoZSBhZGRfcmFuZ2UKCSAgbWV0aG9kIHdpbGwgbW9kaWZ5IHRoZSB3cml0ZSBwb3NpdGlvbiwgd2hpY2ggb25seSBtYWtlcyBzZW5zZSB0byBkbyBvbiB0aGUKCSAgc2lua3BhZC4KCjIwMTItMDQtMTEgMTE6NTU6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBkZWJ1ZyBtZXNzYWdlCgkgIFdlJ3JlIG5vdCB3cml0aW5nIHRvIHRoZSBvZmZzZXQgb2YgdGhlIGJ1ZmZlcgoKMjAxMi0wNC0xMSAxMTo1NToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkX3JhbmdlIGFscmVhZHkgdXBkYXRlcyB0aGUgbGV2ZWwKCjIwMTItMDQtMTAgMTQ6MTE6MjYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyB3aGlsZSBjb3B5aW5nIGNvbnRlbnQKCjIwMTItMDQtMTAgMTQ6MTg6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTY6NTAgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTg6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTY6NTAgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTE6MjYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyB3aGlsZSBjb3B5aW5nIGNvbnRlbnQKCjIwMTItMDQtMTAgMTk6Mzk6NTggKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDbGVhbiB1cCBoZWFkZXIgZmlsZXMKCjIwMTItMDQtMTAgMTY6MDc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMTAgMTY6MDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFyIHNlZWtpbmcgZmxhZyBpbiBhbGwgY2FzZXMKCSAgQWxzbyBjbGVhciB0aGUgc2Vla2luZyBmbGFnIHdoZW4gZG93bnN0cmVhbSBpcyBpbiBwdWxsIG1vZGUuCgoyMDEyLTA0LTEwIDEyOjU1OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdC5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMTAgMTI6NDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHRvYyBlbnRyeSByZWYvdW5yZWYKCjIwMTItMDQtMTAgMTI6MDk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBzZWVraW5nIGZsYWcgd2l0aCB0aGUgcXVldWUgbG9jawoKMjAxMi0wNC0xMCAxMToyMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogS2VlcCB0cmFjayBvZiB0aGUgc2Vla2luZyBzdGF0ZQoJICBTZXQgdGhlIHNlZWtpbmcgZmxhZyByaWdodCBiZWZvcmUgd2Ugc2VuZCBhIHNlZWsgZXZlbnQgdXBzdHJlYW0gYW5kIGRpc2NhcmQgYWxsCgkgIGRhdGEgdW50aWxsIHdlIHNlZSBhIGZsdXNoLXN0b3AgYWdhaW4uIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIHdlIGFjdGl2YXRlCgkgIHRoZSByYW5nZSB0aGF0IHdlIHNlZWsgdG8gaW1tZWRpYXRlbHkgYWZ0ZXIgc2VuZGluZyB0aGUgc2VlayBldmVudCBhbmQgaXQgaXMKCSAgcG9zc2libGUgdGhhdCB3ZSByZWNlaXZlIGRhdGEgaW4gb3VyIGNoYWluIGZ1bmN0aW9uIGZyb20gYmVmb3JlIHRoZSBzZWVrCgkgIHdoaWNoIHdvdWxkIHRoZW4gYmUgYWRkZWQgdG8gdGhlIHdyb25nIHJhbmdlIHJlc3VsdGluZyBpbiBkYXRhIGNvcnJ1cHRpb24uCgoyMDEyLTA0LTEwIDExOjE2OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBtYWtlIHJhbmdlIG9uIG5ld3NlZ21lbnQgZm9yIHJpbmdidWZmZXIKCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciwgaGFuZGxlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGxpa2Ugd2UgaGFuZGxlIGl0IHdoZW4KCSAgdXNpbmcgdGhlIHRlbXAtZmlsZSBtb2RlOiBjcmVhdGUgYSBuZXcgcmFuZ2UgZm9yIHRoZSBuZXcgYnl0ZSBzZWdtZW50LiBUaGUgbmV3CgkgIHNlZ21lbnQgc2hvdWxkIG5vcm1hbGx5IGFscmVhZHkgYmUgY3JlYXRlZCB3aGVuIHdlIGRvIGEgc2Vlay4KCjIwMTItMDQtMDkgMTY6NDI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA5IDE2OjQwOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCB1c2UgYnVmZmVyIGFmdGVyIHB1c2hpbmcgaXQgZG93bnN0cmVhbQoKMjAxMi0wNC0wOSAxNjowNDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDkgMTU6NTg6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRmFpbCBpZiBhIHBhZCBmb3IgYSBub24tcmVxdWVzdCB0ZW1wbGF0ZSBpcyByZXF1ZXN0ZWQKCjIwMTItMDQtMDkgMTM6NDA6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBlbGVtZW50OiB1c2UgcXVhcmtzIHdoZW4gc3RvcmluZyBzdGFuZGFyZCBtZXRhZGF0YSBpbiBzdHJ1Y3R1cmVzCgoyMDEyLTA0LTA5IDEzOjA1OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBwbHVnaW5zOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoKMjAxMi0wNC0wOSAxMjo0Nzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX3tzZXQsYWRkfV9zdGF0aWNfbWV0YWRhdGEoKQoJICBBZGQgZ3N0X2VsZW1lbnRfY2xhc3Nfe2FkZCxzZXR9X21ldGFkYXRhKCkgdmFyaWFudHMgZm9yIHN0YXRpYyBzdHJpbmdzLAoJICBzbyB3ZSBjYW4gYXZvaWQgdW5uZWNlc3NhcnkgZ19zdHJkdXAoKXMuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19tZXRhZGF0YSgpCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgoyMDEyLTA0LTA4IDIxOjE3OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0YXNrOiByZW1vdmUgZ3N0X3Rhc2tfc2V0X3ByaW9yaXR5KCkKCSAgSXQgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZy4KCjIwMTItMDEtMTQgMDA6MzE6MzIgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB3aW4zMi92czEwL0NvbW1vbi5wcm9wczoKCSogd2luMzIvdnMxMC9MaWJyYXJ5LnByb3BzOgoJKiB3aW4zMi92czEwL1BsdWdpbi5wcm9wczoKCSogd2luMzIvdnMxMC9SZWFkTWUudHh0OgoJKiB3aW4zMi92czEwL1Rvb2wucHJvcHM6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvai5maWx0ZXJzOgoJICB3aW4zMjogYWRkIFZTIDEwIFByb2plY3QgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjIxOQoKMjAxMi0wNC0wOCAxODoyNTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGZvciB2ZXJzaW9uIGNoYW5nZXMKCjIwMTItMDQtMDcgMTY6MzU6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA3IDE2OjA2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBUT0MgQVBJIHRvIGxpYmdzdHJlYW1lci5kZWYKCSAgRml4ZXMgJ21ha2UgY2hlY2snLgoKMjAxMi0wNC0wNyAxNjowNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGFkZCBuZXcgdG9jIHRlc3QgYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxMi0wNC0wNyAxNjowNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgZ3N0OiBkb24ndCBleHBvcnQgcHJpdmF0ZSBUT0MgZnVuY3Rpb25zCgoyMDEyLTA0LTA3IDE1OjQyOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RhdG9taWNxdWV1ZS5jCgoyMDEyLTAyLTI0IDE1OjI0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggcmFjZQoJICBBZnRlciBhIHdyaXRlciBoYXMgd3JpdHRlbiB0byBpdHMgcmVzZXJ2ZWQgd3JpdGUgbG9jYXRpb24sIGl0IGNhbiBvbmx5IG1ha2UgdGhlCgkgIGxvY2F0aW9uIGF2YWlsYWJsZSBmb3IgcmVhZGluZyBpZiBhbGwgb2YgdGhlIHdyaXRlcnMgd2l0aCBsb3dlciBsb2NhdGlvbnMgaGF2ZQoJICBmaW5pc2hlZC4KCjIwMTItMDItMjQgMTI6NTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBzdWJ0bGUgcmFjZQoJICBGaXggYSByYWNlIHdoZXJlIHRoZSByZWFkZXIgd291bGQgc2VlIHRoZSB1cGRhdGVkIHRoZSB0YWlsIHBvaW50ZXIgYmVmb3JlIHRoZQoJICB3cml0ZSBjb3VsZCB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBxdWV1ZS4gRml4IHRoaXMgYnkgaGF2aW5nIGEgc2VwYXJhdGUgcmVhZGVyCgkgIHRhaWwgcG9pbnRlciB0aGF0IGlzIG9ubHkgaW5jcmVtZW50ZWQgYWZ0ZXIgdGhlIHdyaXRlciB3cm90ZSB0aGUgZGF0YS4KCjIwMTItMDQtMDcgMTU6MjA6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHNldCBkZWZhdWx0IGJsb2NrIHNpemUgZnJvbSBsb2NhbCBkZWZpbmUKCSAgRG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgdGhlIGRlZmF1bHQgdmFsdWUsIGp1c3QgbWFrZXMgdXNlIG9mIHRoZQoJICBkZWZpbmUgdGhlcmUgaXMuIFN1cGVyZmljaWFsIHRlc3Rpbmcgd2l0aCBmYWtlc2luayBhbmQganBlZ2RlYyBkaWQKCSAgbm90IHJldmVhbCBpbXByb3ZlZCBwZXJmb3JtYW5jZSBmb3IgYmlnZ2VyIGJsb2NrIHNpemVzLCBzbyBsZWF2ZQoJICBkZWZhdWx0IGFzIGl0IGlzLgoKMjAxMi0wNC0wNiAxNjo0Njo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdXBkYXRlIHRoZSBjdXJyZW50IHJlYWRpbmdfcG9zIGluIGZsdXNoCgkgIEEgZmx1c2ggZnJvbSB0aGUgdXBzdHJlYW0gZWxlbWVudCBzaG91bGQgbm90IG1ha2UgYnVmZmVyaW5nIGdvIHRvIDAsIHRoZSBuZXh0CgkgIHB1bGwgcmVxdWVzdCBtaWdodCBiZSBpbnNpZGUgYSByYW5nZSB0aGF0IHdlIGhhdmUgYW5kIHRoZW4gd2UgZG9uJ3QgbmVlZCB0bwoJICBidWZmZXIgYXQgYWxsLiBJZiB0aGUgbmV4dCBwdWxsIGlzIG91dHNpZGUgYW55dGhpbmcgd2UgaGF2ZSwgYnVmZmVyaW5nIHdpbGwKCSAgaGFwcGVuIGFzIHVzdWFsIGFueXdheS4KCjIwMTItMDQtMDYgMTI6NDI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmb3IgbWVyZ2VkIGNoYW5nZXMKCjIwMTItMDQtMDYgMTI6Mzc6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgoyMDEyLTA0LTA2IDEyOjMyOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjaGVjayB0aGUgcGFkIG1vZGUgb24gdGhlIHJpZ2h0IHBhZAoKMjAxMi0wNC0wNiAxMjoyNDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZm9yd2FyZCBmbHVzaCBldmVudHMgY29ycmVjdGx5CgkgIFdlIHdhbnQgdG8gZm9yd2FyZCB0aGUgZmx1c2ggZXZlbnRzIHJlY2VpdmVkIG9uIHRoZSBzaW5rcGFkIHdoZW5ldmVyIHRoZSBzcmNwYWQKCSAgaXMgYWN0aXZhdGVkIGluIHB1c2htb2RlLCB3aGljaCBjYW4gYWxzbyBoYXBwZW4gd2hlbiB1c2luZyB0aGUgUklOR0JVRkZFUiBvcgoJICBET1dOTE9BRCBtb2RlIGFuZCBkb3duc3RyZWFtIGZhaWxlZCB0byBhY3RpdmF0ZSB1cyBpbiBwdWxsIG1vZGUuCgoyMDEyLTA0LTA1IDIxOjU2OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBjaGFpbiB1cCBvbiBkaXNwb3NlIGFuZCBmaW5hbGl6ZQoKMjAxMi0wNC0wNSAyMTo1NTowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiB1bnBhcmVudCB0aGUgY29udHJvbGJpbmRpbmcgb24gZGlzcG9zZQoKMjAxMi0wNC0wNSAyMTowNzo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZHVwIHRoZSBvYmplY3RzIHRvIGF2b2lkIHByZW1hdHVyZSBmcmVlcwoKMjAxMi0wNC0wNSAyMTowNjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIGZpbmFsaXplciBmb3IgdGhlIHRlc3QgY29udHJvbGJpbmRpbmdzCgkgIE5vIGlkZWEgd2h5IHZhbGdyaW5kIHN0aWxsIGluaXN0cyB0aGF0IHRoZXJlIGFyZSBsZWFrcy4KCjIwMTItMDQtMDUgMTg6NDI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3ZmRhNTI0IHRvIDQ2NGZlMTUKCjIwMTItMDQtMDUgMTQ6MTc6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGdzdDogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIEdTVF9QTFVHSU5fREVGSU5FKCkgdG8gbm90IHRha2UgYSBzdHJpbmcgYW55bW9yZQoJICBUaGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gd2UgbGF0ZXIgYWRkIHN1cHBvcnQgZm9yIHN0YXRpYyBsaW5raW5nCgkgIG9mIHBsdWdpbnMgd2l0aG91dCBpbnRyb2R1Y2luZyBuZXcgQVBJIG9yIGNoYW5naW5nIGV4aXN0aW5nIEFQSS4KCjIwMTItMDQtMDUgMTM6MjM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBnc3RwbHVnaW46IEFkZCBoYWNrIGZvciBoYW5kbGluZyAwLjExLjlYIGFuZCAwLjExLjg5Llggd2l0aCBYPjAgdGhlIHNhbWUgYXMgMS4wLjAKCSAgQWxzbyB1cGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIHRvIDAuMTEuODkuMQoKMjAxMi0wNC0wNSAxMjoyMjoxMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogY2xlYXIgbXV0ZXggdXBvbiBmcmVlCgoyMDEyLTA0LTA1IDEwOjU2OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICByZWdpc3RyeTogU2V0IHJlZ2lzdHJ5IHZlcnNpb24gdG8gMS4wLjAgdG9vCgoyMDEyLTA0LTA1IDEwOjM2OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMDUgMTA6MDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHN0b3Agd2FpdGluZyBmb3IgbW9yZSBkYXRhIGFmdGVyIEVPUwoJICBXaGVuIHdlIGhhdmUgRU9TLCByZWFkIHRoZSByZW1haW5pbmcgYnl0ZXMgaW4gdGhlIGJ1ZmZlciBhbmQgbWFrZSBzdXJlIHdlIGRvbid0CgkgIHdhaXQgZm9yIG1vcmUgZGF0YS4gQWxzbyBjbGlwIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHRoZSBhbW91bnQgb2YgcmVtYWluaW5nCgkgIGJ5dGVzLgoKMjAxMi0wNC0wNSAwOTo1Njo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2hlY2sgZm9yIGZpbGxlZCBidWZmZXIgY29ycmVjdGx5CgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIgbW9kZSwgdGhlIGJ1ZmZlciBpcyBmaWxsZWQgd2hlbiB3ZSByZWFjaGVkIHRoZQoJICBtYXhfbGV2ZWwuYnl0ZXMgbWFyayBvciB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgcmluZ2J1ZmZlciwgd2hpY2hldmVyIGlzIHNtYWxsZXIuCgoyMDEyLTA0LTA0IDEzOjA3OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCB3YWl0aW5nIGZvciBhIGZpbGxlZCBidWZmZXIKCSAgVXNlIGEgdGhyZXNob2xkIHZhcmlhYmxlIHRvIGhvbGQgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbgoJICBmb3Igd2l0aCB3ZSB3aWxsIHdhaXQgaW5zdGVhZCBvZiBkb2luZyBhIHNlZWsuCgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIgYW5kIHRoZSByZXF1ZXN0ZWQgb2Zmc2V0IGlzIG5vdCBhdmFpbGFibGUsIGF2b2lkCgkgIHdhaXRpbmcgdW50aWwgdGhlIGNvbXBsZXRlIHJpbmdidWZmZXIgaXMgZmlsbGVkIGJ1dCBpbnN0ZWFkIGRvIGEgc2VlayB3aGVuIHRoZQoJICByZXF1ZXN0ZWQgZGF0YSBpcyBmdXJ0aGVyIHRoYW4gdGhlIHRocmVzaG9sZC4KCSAgQXZvaWQgZG9pbmcgdGhlIHNlZWsgdHdpY2UgaW4gdGhlIHJpbmdidWZmZXIgY2FzZS4KCSAgVXNlIHRoZSBzYW1lIHRocmVzaG9sZCBmb3IgcmluZ2J1ZmZlciBhbmQgZG93bmxvYWQgYnVmZmVyaW5nLgoKMjAxMi0wNC0wNSAwOTowNzoxOCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogZml4IGNvbXBpbGUgd2FybmluZwoKMjAxMi0wNC0wNCAxMzoxMzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBnc3Q6IENoYW5nZSB2ZXJzaW9uaW5nCgkgIFJlbW92ZSBHU1RfTUFKT1JNSU5PUiBhbmQgcmVwbGFjZSBpdCBieSBHU1RfQVBJX1ZFUlNJT04KCSAgQWxzbyBzZXQgR1NUX1ZFUlNJT05fe01BSk9SLE1JTk9SLE1JQ1JPLE5BTk99IGV4cGxpY2l0ZWx5CgkgIG5vdy4KCSAgQWxsIHZlcnNpb25zIGFyZSBhdCAxLjAuMCBub3cgZm9yIHRoZSByZWxlYXNlIHNvb24gYnV0CgkgIEFQSS9BQkkgY2FuIHN0aWxsIGNoYW5nZSB1bnRpbCB0aGUgMS4wLjAgcmVsZWFzZS4KCSAgTmV4dCByZWxlYXNlIHZlcnNpb25zIHVudGlsIDEuMC4wIHdpbGwgYmUgMC4xMC45WCBhbmQKCSAgdGhlc2Ugd2lsbCBiZSByZWxlYXNlIGNhbmRpZGF0ZXMuIEdTVF9WRVJTSU9OXyogd2lsbAoJICBub25ldGhlbGVzcyBzdGF5IGF0IDEuMC4wLjAuCgoyMDEyLTA0LTA0IDEyOjI1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIGdzdC9nc3QuYwoJICBnc3QvZ3N0LmgKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdG1lc3NhZ2UuYwoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RxdWFyay5jCgkgIGdzdC9nc3RxdWFyay5oCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RxdWVyeS5oCgkgIGdzdC9nc3R0b2MuYwoJICBnc3QvZ3N0dG9jLmgKCSAgZ3N0L2dzdHRvY3NldHRlci5jCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYwoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmMKCjIwMTItMDQtMDMgMTY6NTE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBfc2V0X3NpemUoKQoKMjAxMi0wNC0wMyAxNjo0NDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtYWtlIGdldF9zaXplcyBhbmQgX3Jlc2l6ZSB3aXRoIHJhbmdlcwoJICBNYWtlIHRoZSBfZ2V0X3NpemVzIGFuZCBfcmVzaXplIG1ldGhvZHMgd29yayBvbiBhIHJhbmdlIG9mIG1lbW9yeSB0byBtYWtlIHRoZW0KCSAgbW9yZSBwb3dlcmZ1bGwuCgoyMDEyLTA0LTAzIDE4OjI1OjQwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFsbG93IHNvbWUgbW9yZSBldmVudHMgYmVmb3JlIGEgc2VnbWVudCBldmVudAoKMjAxMi0wNC0wMyAxNTo0NjoyOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiB1c2UgbmV3IGdsaWIgbXV0ZXggYXBpCgoyMDEyLTA0LTAyIDIzOjE3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdC1sYXVuY2guYzogSW4gZnVuY3Rpb24g4oCYcHJpbnRfdG9jX2VudHJ54oCZOgoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB0aGUgc2l6ZSBvZiBhcnJheSDigJhzcGPigJkgY2Fu4oCZdCBiZSBldmFsdWF0ZWQgWy1XZXJyb3I9dmxhXQoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZAoKMjAxMi0wNC0wMiAyMzoyOToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGFkZCBuZXcgdW5pdCB0ZXN0IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTItMDQtMDIgMjM6Mjg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZiBuZXcgZW50cnkgZW51bSB0eXBlcwoJICBGaXhlcyAnbWFrZSBjaGVjaycsIGFnYWluLgoKMjAxMi0wNC0wMiAyMzoyNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoJICBGaXhlcyAnbWFrZSBjaGVjaycuCgoyMDEyLTA0LTAyIDIzOjIzOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBkb24ndCBleHBvcnQgcHJpdmF0ZSBmdW5jdGlvbnMKCjIwMTItMDQtMDIgMjM6MTc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0LWxhdW5jaC5jOiBJbiBmdW5jdGlvbiDigJhwcmludF90b2NfZW50cnnigJk6CgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHRoZSBzaXplIG9mIGFycmF5IOKAmHNwY+KAmSBjYW7igJl0IGJlIGV2YWx1YXRlZCBbLVdlcnJvcj12bGFdCgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHZhcmlhYmxlLXNpemVkIG9iamVjdCBtYXkgbm90IGJlIGluaXRpYWxpemVkCgoyMDEyLTA0LTAyIDIzOjE2OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDEyLTA0LTAyIDIzOjAxOjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicKCjIwMTItMDQtMDIgMjI6MDk6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jOiBwb3J0IHRvIDAuMTEKCjIwMTItMDMtMjIgMDg6MzY6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtYywgLS10b2MgdG8gcHJpbnQgdGhlIHRvYwoJICBQcmludCB0aGUgbmVzdGVkIGNoYXB0ZXIgYW5kIGVkaXRpb24gc3RydWN0dXJlIG9mIHRoZSBjaGFwdGVycyBtZXNzYWdlLgoKMjAxMi0wMy0yOCAyMzoxNTo0MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IGFkZCBvdmVydmlldyBvZiBHc3RUb2MgdXNhZ2UKCjIwMTItMDMtMTQgMjE6MTQ6MjMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0VG9jIGFuZCBHc3RUb2NTZXR0ZXIgc2VjdGlvbnMgd2l0aCByZWxhdGVkIGZ1bmN0aW9ucwoKMjAxMi0wMy0xNCAyMToxMzoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvY1NldHRlcgoKMjAxMi0wMy0xNCAyMToxMjoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvYwoKMjAxMi0wMy0xNCAyMDo0NTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgQWRkIG5ldyBHc3RUb2NTZXR0ZXIgaW50ZXJmYWNlCgoyMDEyLTAzLTE0IDIwOjQyOjU2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgbmV3IFRPQyBxdWVyeQoKMjAxMi0wMy0xNCAyMDo0MTo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBuZXcgVE9DIG1lc3NhZ2UKCjIwMTItMDMtMTQgMjA6NDA6MzIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIG5ldyBUT0MgYW5kIFRPQyBzZWxlY3QgZXZlbnRzCgoyMDEyLTAzLTE0IDIwOjAxOjUxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBBZGQgZ2VuZXJpYyB0YWJsZSBvZiBjb250ZW50cyAoVE9DKSBzdXBwb3J0CgoyMDEyLTA0LTAyIDIxOjE1OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIGdzdC9nc3QuYwoJICBnc3QvZ3N0LmgKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0cXVhcmsuYwoJICBnc3QvZ3N0cXVhcmsuaAoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cXVlcnkuaAoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoKMjAxMi0wNC0wMiAxNTozMDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDEyLTA0LTAyIDE1OjEzOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWx3YXlzIGF0dGVtcHQgdG8gcHVzaCBpZiBub3QtbGlua2VkCgkgIFRoaXMgYXZvaWRzIGVuZGluZyB1cCB3aXRoIHBsZW50eSBvZiBwZW5kaW5nIGRhdGEgKHNpbmNlIHdlJ2xsIG9ubHkKCSAgdHJ5IHRvIHBhcnNlL3B1c2ggb25lIGZyYW1lIGZyb20gdGhlIGluY29taW5nIGJ1ZmZlcikuCgkgIEZpeGVzIGluY3JlYXNpbmcgbWVtb3J5IGNvbnN1bXB0aW9uIHdoZW4gcGFyc2VycyBhcmVuJ3QgbGlua2VkCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMi0wNC0wMiAxNToxMzoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsd2F5cyBhdHRlbXB0IHRvIHB1c2ggaWYgbm90LWxpbmtlZAoJICBUaGlzIGF2b2lkcyBlbmRpbmcgdXAgd2l0aCBwbGVudHkgb2YgcGVuZGluZyBkYXRhIChzaW5jZSB3ZSdsbCBvbmx5CgkgIHRyeSB0byBwYXJzZS9wdXNoIG9uZSBmcmFtZSBmcm9tIHRoZSBpbmNvbWluZyBidWZmZXIpLgoJICBGaXhlcyBpbmNyZWFzaW5nIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHBhcnNlcnMgYXJlbid0IGxpbmtlZAoKMjAxMi0wNC0wMSAwMzozMDo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFRpbWVvdXQgaXMgbm90IHVzZWQgb24gVzMyCgkgIEZpeGVzICM2NzMyNjcKCjIwMTItMDQtMDIgMTE6MDk6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHRyYW5zOiBhZGQgdHJhbnNmb3JtX2lwX29uX3Bhc3N0aHJvdWdoCgkgIEFkZCBhbiBvcHRpb24gdG8gY29udHJvbCBpZiB0cmFuc2Zvcm1faXAgaXMgY2FsbGVkIGluIHBhc3N0aHJvdWdoIG1vZGUgb3Igbm90LgoJICBmb3IgZWxlbWVudHMgdGhhdCBkb24ndCB3YW50IHRvIGxvb2sgYXQgdGhlIGRhdGEgaW4gcGFzc3Rocm91Z2ggbW9kZSwgdGhpcyBjYW4KCSAgYXZvaWQgc29tZSBleHRyYSBwcm9jZXNzaW5nLCBtb3N0bHkgaW4gc3ViY2xhc3Nlcy4KCjIwMTItMDMtMjIgMDg6MzY6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtYywgLS10b2MgdG8gcHJpbnQgdGhlIHRvYwoJICBQcmludCB0aGUgbmVzdGVkIGNoYXB0ZXIgYW5kIGVkaXRpb24gc3RydWN0dXJlIG9mIHRoZSBjaGFwdGVycyBtZXNzYWdlLgoKMjAxMi0wMy0yOCAyMzoxNTo0MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IGFkZCBvdmVydmlldyBvZiBHc3RUb2MgdXNhZ2UKCjIwMTItMDMtMTQgMjE6MTQ6MjMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0VG9jIGFuZCBHc3RUb2NTZXR0ZXIgc2VjdGlvbnMgd2l0aCByZWxhdGVkIGZ1bmN0aW9ucwoKMjAxMi0wMy0xNCAyMToxMzoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvY1NldHRlcgoKMjAxMi0wMy0xNCAyMToxMjoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvYwoKMjAxMi0wMy0xNCAyMDo0NTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgQWRkIG5ldyBHc3RUb2NTZXR0ZXIgaW50ZXJmYWNlCgoyMDEyLTAzLTE0IDIwOjQyOjU2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgbmV3IFRPQyBxdWVyeQoKMjAxMi0wMy0xNCAyMDo0MTo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBuZXcgVE9DIG1lc3NhZ2UKCjIwMTItMDMtMTQgMjA6NDA6MzIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIG5ldyBUT0MgYW5kIFRPQyBzZWxlY3QgZXZlbnRzCgoyMDEyLTAzLTE0IDIwOjAxOjUxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBBZGQgZ2VuZXJpYyB0YWJsZSBvZiBjb250ZW50cyAoVE9DKSBzdXBwb3J0CgoyMDEyLTA0LTAxIDEyOjAxOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJldXNlIG1vcmUgY29kZQoKMjAxMi0wNC0wMSAxMTo0Mjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1ha2UgZnVuY3Rpb24gdG8gZmluZCBtZW1vcnkgaW4gYSBidWZmZXIKCSAgTWFrZSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG1lbW9yeSBibG9ja3MgZm9yIGEgcmVnaW9uIGluIGEgYnVmZmVyLgoKMjAxMi0wMy0zMSAyMToyNjoyMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBtb3JlIG1pc3NpbmcgR1NUX09CSkVDVCAtPiBHX09CSkVDVCB1c2UKCjIwMTItMDMtMzEgMTg6MzQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXNlIGJ1ZmZlcl93cmFwCgoyMDEyLTAzLTMxIDE3OjEwOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBwZWVrX21lbW9yeSBtZXRob2QKCSAgQWRkIGEgcGVlcmtfbWVtb3J5IG1ldGhvZCB0aGF0IHNpbXBseSBmZXRjaGVzIHRoZSBtZW1vcnkgYXQgYW4gb2Zmc2V0IHdpdGhvdXQKCSAgcmVmY291bnRpbmcgb3IgbWVyZ2luZy4KCjIwMTItMDMtMzEgMTI6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBncmFtbWFyLnk6IGZpeCBjaGlsZHByb3h5IGNvZGUKCSAgSXQgdGFrZXMgR09iamVjdCBhbmQgbm90IEdzdE9iamVjdCBub3cKCjIwMTItMDMtMzAgMjI6NDY6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IGluY2x1ZGUgdGhlIGNoaWxkIG5hbWUgaW4gdGhlIHNpZ25hbAoKMjAxMi0wMy0zMCAyMjo0NDozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogdXBkYXRlIGZvciBjaGlsZHByb3h5IGFwaSBjaGFuZ2VzCgoyMDEyLTAzLTMwIDIyOjM2OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IHNpZ25hbCBwYXJhbWV0ZXIgdHlwZXMKCjIwMTItMDMtMzAgMjI6MTc6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHVzZSBHT2JqZWN0IGluc3RlYWQgb2YgR3N0T2JqZWN0CgkgIFRoaXMgbWFrZXMgaXQgcHJvc3NpYmxlIHRvIGJlIHVzZWQgbW9yZSB3aWRlbHkuIEZpeCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBBUEkKCSAgY2hhbmdlLgoKMjAxMi0wMy0zMCAyMjowMTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IG1ha2UgZ2V0X2NoaWxkX2J5X25hbWUgdmlydHVhbAoJICBBbGxvd3MgaW1wbGVtZW50YXRpb25zIHRvIHVzZSBjdXN0b20gbmFtZS0+b2JqZWN0IG1hcHBpbmdzLgoKMjAxMi0wMy0zMCAyMjowMToyNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBpbmRlbnRhdGlvbgoKMjAxMi0wMy0zMCAxODowNDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogaW1wcm92ZSB0aGUgYnVmZmVyIG1lbW9yeSBtZXRob2RzCgkgIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkgLT4gZ3N0X2J1ZmZlcl9pbnNlcnRfbWVtb3J5IGJlY2F1c2UgaW5zZXJ0IGlzIHdoYXQgdGhlCgkgIG1ldGhvZCBkb2VzLgoJICBNYWtlIGFsbCBtZXRob2RzIGRlYWwgd2l0aCByYW5nZXMgc28gdGhhdCB3ZSBjYW4gcmVwbGFjZSwgbWVyZ2UsIHJlbW92ZSBhbmQgbWFwCgkgIGEgY2VydGFpbiBzdWJzZXQgb2YgdGhlIG1lbW9yeSBpbiBhIGJ1ZmZlci4gV2l0aCB0aGUgbmV3IG1ldGhvZHMgd2UgY2FuIG1ha2UKCSAgc29tZSBjb2RlIG5pY2VyIGFuZCByZXVzZSBtb3JlIGNvZGUuIEJlaW5nIGFibGUgdG8gZGVhbCB3aXRoIGEgc3Vic2V0IG9mIHRoZQoJICBidWZmZXIgbWVtb3J5IGFsbG93cyB1cyB0byBvcHRpbWl6ZSBtb3JlIGNhc2VzIGxhdGVyIChtb3N0IG5vdGFibHkgUlRQIGhlYWRlcnMKCSAgYW5kIHBheWxvYWQgdGhhdCBjb3VsZCBiZSBpbiBkaWZmZXJlbnQgbWVtb3J5IG9iamVjdHMpLgoJICBNYWtlIHNvbWUgbW9yZSBjb252ZW5pZW50IG1hY3JvcyB0aGF0IGNhbGwgdGhlIG1vcmUgZ2VuZXJpYyByYW5nZSBtZXRob2RzLgoKMjAxMi0wMy0zMCAxNjo1MzowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHBsdWcgY2FwcyBsZWFrcwoKMjAxMi0wMy0zMCAxNjo1MzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBhbHNvIHVubWFwIGNvbGxlY3RlZCBtYXBwZWQgYnVmZmVycwoKMjAxMi0wMy0zMCAxNjo1MzowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcGx1ZyBjYXBzIGxlYWsKCjIwMTItMDMtMzAgMTE6NTg6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBSZW5hbWUgOjpldmVudCgpIHRvIDo6c2lua19ldmVudCgpIGZvciBjb25zaXN0ZW5jeQoKMjAxMi0wMy0zMCAxMTo0OToxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNpbms6IGxvd2VyIEdTVF9CQVNFX1NSQ19GTEFHX0xBU1QKCSAgSXQgd291bGRuJ3QgbGVhdmUgdGhhdCBtdWNoIHJvb20gZm9yIHN1YmNsYXNzIHVzZXJzCgoyMDEyLTAzLTMwIDA4OjU1OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUKCjIwMTItMDMtMjkgMTg6MDM6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFjdHVhbGx5IGNvbW1pdCB0aGUgLmMgZmlsZSBjaGFuZ2VzIHRvbwoKMjAxMi0wMy0yOSAxNzo1OToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuY2hlY2tlZC9pbmxpbmUgdmFyaWFudCBvZiBnc3RfYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcigpCgoyMDEyLTAzLTI5IDE3OjUzOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogRml4IGFubm90YXRpb24KCjIwMTItMDMtMjkgMTc6NDQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRmx1c2ggdGhlIGludGVybmFsIHF1ZXVlIHdoZW4gd2Ugc2VlIEdTVF9GTE9XX0ZMVVNISU5HCgkgIEVuc3VyZXMgdGhhdCB3ZSBkb24ndCBlbmQgdXAgd2l0aCBzdGFsZSBjb250ZW50cyAobGlrZSBHc3RRdWVyeSkgaW4KCSAgdGhlIGludGVybmFsIEdRdWV1ZSBhZnRlciBhbnkgYmxvY2tpbmcgdXBzdHJlYW0gdGhyZWFkIHJldHVybnMuCgoyMDEyLTAzLTI5IDE3OjQzOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IHVucmVmIEdzdFF1ZXJ5IHRyYXZlbGxpbmcgdGhyb3VnaCB0aGUgcXVldWUKCSAgVW5saWtlIGV2ZW50cyBhbmQgYnVmZmVycywgdGhlIHJlZmVyZW5jZSBpcyBub3QgZ2l2ZW4gdG8gdXMKCjIwMTItMDMtMjkgMTc6MDg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBwYXJzaW5nIGFsbG9jYXRpb24gcXVlcnkgbmVlZCBub3QgcHJvdmlkZSByZWZmZWQgY2FwcwoJICAuLi4gaW4gbGluZSB3aXRoIG90aGVyIHF1ZXJ5IHBhcnNpbmcgZnVuY3Rpb24uCgoyMDEyLTAzLTI5IDE1OjQ1OjAwICswMjAwICBGYWJyaXppbyAoTWlzdG8pIE1pbG8gPG1pc3RvYmFhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzcGVsbGluZyBmaXhlcwoKMjAxMi0wMy0yOSAxNToyODo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RlbGVtZW50OiBsb3dlciBHU1RfRUxFTUVOVF9GTEFHX0xBU1QKCSAgSXQgd291bGRuJ3QgbGVhdmUgdGhhdCBtdWNoIHJvb20gZm9yIHN1YmNsYXNzIHVzZXJzCgoyMDEyLTAzLTI5IDE1OjE4OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZQoJICBnY2MgNC41IGNvbXBsYWlucyBvdGhlcndpc2UgOigKCjIwMTItMDMtMjkgMTQ6NTQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmMKCjIwMTItMDMtMjkgMTQ6NDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgYWxsIG5vdC1saW5rZWQgc3RyZWFtcyB3aGVuIGEgc3RyZWFtIHN3aXRjaGVzIGZyb20gbGlua2VkIHRvIG5vdC1saW5rZWQKCSAgV2UgcmVzZXQgYWxsIHRoZSB3YWl0aW5nIHN0cmVhbXMsIGxldCB0aGVtIHB1c2ggYW5vdGhlciBidWZmZXIgdG8KCSAgc2VlIGlmIHRoZXkncmUgbm93IGFjdGl2ZSBhZ2Fpbi4gVGhpcyBhbGxvd3MgZmFzdGVyIHN3aXRjaGluZwoJICBiZXR3ZWVuIHN0cmVhbXMgYW5kIHByZXZlbnRzIGRlYWRsb2NrcyBpZiBkb3duc3RyZWFtIGRvZXMgYW55CgkgIHdhaXRpbmcgdG9vLgoJICBBbHNvIGltcHJvdmUgbG9ja2luZyBhIGJpdCwgc3JjcmVzdWx0IG11c3QgYmUgcHJvdGVjdGVkIGJ5IHRoZQoJICBtdWx0aXF1ZXVlIGxvY2sgdG9vIGJlY2F1c2UgaXQncyB1c2VkL3NldCBmcm9tIHJhbmRvbSB0aHJlYWRzLgoKMjAxMi0wMy0yOSAxNDozMjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVjb21wdXRlIGhpZ2gtdGltZSB0b28gd2hlbiBmbHVzaGluZywgbm90IG9ubHkgaGlnaC1pZAoKMjAxMi0wMy0yOSAxMzozOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogT25seSB3YWl0IHVudGlsIHRoZSBhY3RpdmUgcGFkJ3MgcnVubmluZyB0aW1lIGlzIHJlYWNoZWQgaWYgdGhlIGFjdGl2ZSBwYWQgYWxyZWFkeSBzYXcgZGF0YQoJICBPdGhlcndpc2Ugd2UgbWlnaHQgYmxvY2sgZm9yZXZlciBiZWNhdXNlIHVwc3RyZWFtIChlLmcuIG11bHRpcXVldWUpIGlzIHdhaXRpbmcKCSAgZm9yIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBzdHJlYW0gdG8gcmV0dXJuIGZvcmV2ZXIgKHdoaWNoIGlzIHdhaXRpbmcgaGVyZQoJICBpbiBpbnB1dHNlbGVjdG9yKSBiZWZvcmUgcHVzaGluZyBzb21ldGhpbmcgb24gdGhlIG5ld2x5IHNlbGVjdGVkIHN0cmVhbS4KCjIwMTItMDMtMjkgMTM6MzQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiB1cGRhdGUgbW9yZSBkb2N1bWVudGF0aW9uCgoyMDEyLTAzLTI4IDE4OjEyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICByZXZpZXcgc29tZSBkb2NzCgoyMDEyLTAzLTI4IDE2OjQ0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHNpbXBsaWZ5IGFuZCByZWZhY3RvciBfc3BhbiBhbmQgX21lcmdlCgkgIFVuaWZ5IHRoZSBfc3BhbiBhbmQgX21lcmdlIGNvZGUgcGF0aHMgYW5kIHNpbXBsaWZ5IG5vdyB0aGF0IHdlIG9ubHkgdXNlIHRoaXMKCSAgaW50ZXJuYWxseS4KCjIwMTItMDMtMjggMTU6MTY6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogd2UgYWx3YXlzIGNhbGwgX3NwYW4gd2l0aCB0aGUgYnVmZmVyIHNpemUKCjIwMTItMDMtMjggMTU6MTI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbW92ZSBzb21lIGNvZGUgYXJvdW5kCgoyMDEyLTAzLTI4IDE1OjA4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHdlIGNhbGwgX3NwYW4gYWx3YXlzIHdpdGggMCBvZmZzZXQKCjIwMTItMDMtMjggMTM6MDg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVtb3ZlIGFsd2F5cyBGQUxTRSBmdW5jdGlvbiBhcmd1bWVudAoKMjAxMi0wMy0yOCAxNjozOTo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZGVsYXkgYnVmZmVyIHVucmVmIHVudGlsIGJ1ZmZlciBubyBsb25nZXIgbmVlZGVkCgoyMDEyLTAzLTI4IDEyOjQ0OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogdW5pZnkgYnVmZmVyIG1lcmdlIG1ldGhvZHMKCSAgQWRkIGdzdF9idWZmZXJfYXBwZW5kKCkgd2hpY2ggYXBwZW5kcyB0aGUgbWVtb3J5IGJsb2NrcyBmcm9tIG9uZSBidWZmZXIgdG8KCSAgYW5vdGhlci4gUmVtb3ZlIHRoZSBvbGQgaW5lZmZpY2llbnQgX21lcmdlKCkgYW5kIF9qb2luKCkgbWV0aG9kcyB3aGljaCBmb3JjZWQgYQoJICBwcmVtYXR1cmUgbWVtY3B5IGluIG1vc3QgY2FzZXMuCgkgIFJlbW92ZSB0aGUgX2lzX3NwYW4oKSBhbmQgX3NwYW4oKSBtZXRob2RzIHRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZSBub3cgdGhhdAoJICB3ZSBjYW4gX2FwcGVuZCgpLiBNZXJnaW5nIGFuZCBzcGFubmluZyB3aWxsIGJlIGRlbGF5ZWQgdW50aWwgbWFwcGluZyBvciBtYXliZQoJICBub3QgYXQgYWxsIHdoZW4gdGhlIGVsZW1lbnQgY2FuIGRlYWwgd2l0aCB0aGUgZGlmZmVyZW50IG1lbW9yeSBibG9ja3MuCgoyMDEyLTAzLTI3IDE1OjI0OjQ5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IHR5cG8gaW4gZG9jc3RyaW5nCgoyMDEyLTAzLTI3IDE1OjI0OjQ5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IHR5cG8gaW4gZG9jc3RyaW5nCgoyMDEyLTAzLTI3IDE1OjE2OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlLWVuYWJsZSBfc3BhbiBvZmZzZXQgY2FsY3VsYXRpb25zCgkgIHdoZW4gd2UgX3NwYW4gdHdvIGNvbXBsZXRlIGJ1ZmZlcnMsIHdlIGNhbiBjb3B5IG9mZnNldHMgYW5kIHRpbWVzdGFtcHMuCgoyMDEyLTAzLTI3IDE1OjAwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBhZGQgcmVmY291bnQgdG8gdHJhY2UgZGVidWcKCjIwMTItMDMtMjcgMTQ6NTk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgX2lzX3dyaXRhYmxlIGNoZWNrcwoJICBBZGQgc29tZSBjaGVja3MgdG8gYXNzZXJ0IG9uIHdyaXRhYmlsaXR5IGZvciBmdW5jdGlvbnMgdGhhdCBtb2RpZnkgbWV0YWRhdGEuCgoyMDEyLTAzLTI3IDEyOjQwOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogcmVtb3ZlIGNvbnN0IGZyb20gZ2V0L3NldF9wYXJhbQoJICBSZW1vdmUgdGhlIGNvbnN0IGZyb20gdGhlIEdzdENhcHMgaW4gZ2V0L3NldF9wYXJhbS4gc2V0X3BhcmFtIG1vZGlmaWVzCgkgIHRoZSByZWZjb3VudCBvZiB0aGUgY2Fwcy4KCSAgRG9uJ3QgaW5jcmVtZW50IHRoZSByZWZjb3VudCBvZiB0aGUgY2FwcyByZXN1bHQgb2YgZ2V0X3BhcmFtIGxpa2Ugd2UKCSAgZG8gd2l0aCBvdGhlciBvYmplY3RzLgoJICBVcGRhdGUgc29tZSBhbm5vdGlhdGlvbnMuCgoyMDEyLTAzLTI3IDEyOjM5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGFubm90YXRpb24gZm9yIF9yZWxlYXNlCgkgIF9yZWxlYXNlIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyCgoyMDEyLTAzLTI3IDEyOjMxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IENoYW5nZSB0aGUgdGltZW91dCBhcmd1bWVudCB0eXBlIG9mIGdzdF9idXNfcG9sbCgpIGZyb20gR3N0Q2xvY2tUaW1lRGlmZiB0byBHc3RDbG9ja1RpbWUKCSAgVGhpcyBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXIgR3N0QnVzIG1ldGhvZHMgdGhhdCBoYXZlIGEgdGltZW91dC4KCjIwMTItMDMtMjYgMTk6MTM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiByZW1vdmUgb2xkIGNvZGUKCSAgUmVtb3ZlIGF0dGVtcHQgdG8gZGVsYXkgX21ha2Vfd3JpdGFibGUKCjIwMTItMDMtMjYgMTg6MDc6MzUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZW5zdXJlIHdyaXRhYmxlIGNhcHMgcHJpb3IgdG8gbW9kaWZpY2F0aW9uCgoyMDEyLTAzLTI2IDE3OjM4OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogY2hlY2sgbWluL21heF9idWZmZXJzCgoyMDEyLTAzLTI2IDE3OjM1OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OmZpeCBjb3B5LWFuZC1wYXN0ZSBwcm9ibGVtCgoyMDEyLTAzLTI2IDExOjU0OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgUmVwbGFjZSBtYXN0ZXIgd2l0aCAwLjExCgoyMDEyLTAzLTIzIDE4OjUxOjUyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWRkIGFuZCBpbXByb3ZlIGRlYnVnIG1lc3NhZ2VzCgkgIC4uLiBzbyB0aGV5IGVuZCB1cCBpbiBhIG1vcmUgZXhwZWN0ZWQgZGVidWcgY2F0ZWdvcnkgcmF0aGVyIHRoYW4gb2JsaXZpb24uCgoyMDEyLTAzLTIyIDE1OjU0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGRldmVsCgoyMDEyLTAzLTIyIDE1OjQ5OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC1idWlsZC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3Quc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTEuMwoKMjAxMi0wMy0yMiAxNToyMjo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIGF1dG9tYXRpYyBhbmQgdW5kb2N1bWVudGVkIHNldHRpbmcgb2YgYWx3YXlzX2luX3BsYWNlCgkgIC4uLiB3aGljaCBjb250cm9scyBob3cgdG8gKGZvcmNpYmx5KSBkZWFsIHdpdGggKG5vbi0pd3JpdGFibGUgZGF0YSBhbmQKCSAgaXMgbm90IG5lY2Vzc2FyaWx5IHJlbGF0ZWQgdG8gaWRlbnRpY2FsIGNhcHMuCgkgIEluIHBhcnRpY3VsYXIsIGl0IGlzIGFsc28gbm90IHNvIGhlbHBmdWwgYW55bW9yZSB3aXRoIGEgbW9yZSBhZHZhbmNlZAoJICBHc3RWaWRlb0ZpbHRlciBzdWJjbGFzcyB3aGljaCBhbHdheXMgaGFzIGEgdHJhbnNmb3JtX2lwIG1ldGhvZCBjdXJyZW50bHksCgkgIGV2ZW4gdGhvdWdoIGl0cyBzdWJjbGFzcyBtYXkgbm90IGhhdmUgYSBjb3JyZXNwb25kaW5nIF9pcCBtZXRob2QuCgoyMDEyLTAzLTIyIDEwOjQ1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoKMjAxMi0wMy0yMiAwODozNToyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3Qgc2hhZG93IGdsb2JhbCB2YXJpYWJsZQoKMjAxMi0wMy0yMSAxMjoxMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBkaXN0IG5ldCBkaXJlY3Rvcnkgb25seSBvbmNlCgoyMDEyLTAzLTIxIDA5OjAwOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogT25seSBhbGxvdyBmaXhlZCBjYXBzIGluIHRoZSBhY2NlcHQtY2FwcyBxdWVyeQoKMjAxMi0wMy0yMCAxNzowODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gcXVlcmllcyBtb3JlIGRpcmVjdGx5CgkgIEp1c3QgY2FsbCBvdXIgaW50ZXJuYWwgcXVlcnkgZnVuY3Rpb24gaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIHRoZSBwYWQgYW5kIHRoZQoJICBxdWVyeSBoYW5kbGVyIGV0Yy4KCjIwMTItMDMtMjAgMTc6MDg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIHNvbWUgcGVyZm9ybWFuY2UgZGVidWcKCjIwMTItMDMtMjAgMTM6MTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwYWQ6IGltcHJvdmUgZG9jcyBvZiBnZXQvcHVsbF9yYW5nZQoJICBJbXByb3ZlIHRoZSBkb2NzIG9mIHRoZSBnZXQvcHVsbF9yYW5nZSBmdW5jdGlvbnMsIGRlZmluZSB0aGUgbGlmZXRpbWUgb2YgdGhlCgkgIGJ1ZmZlciBpbiBjYXNlIG9mIGVycm9ycyBhbmQgc2hvcnQgcmVhZHMuCgkgIE1ha2Ugc3VyZSB0aGUgY29kZSBkb2VzIHdoYXQgdGhlIGRvY3Mgc2F5LgoKMjAxMi0wMy0yMCAxMDoyMDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbCgpCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gd3JhcCBhbGwga2luZHMgb2YgbWVtb3J5IGJ5IGV4cG9zaW5nIGFsbCBwcm9wZXJ0aWVzIHRvCgkgIGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbCgpLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFsc28gY3JlYXRlIHdyaXRhYmxlCgkgIG1lbW9yeSB3aXRob3V0IGEgZnJlZSBmdW5jdGlvbiBvciBtZW1vcnkgd2l0aCBleHRyYSBwYWRkaW5nLgoKMjAxMi0wMy0xOSAxMTo0NToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBoYW5kbGUgc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE2IDIyOjUxOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMy0xNiAyMjoyNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wMy0xNiAyMTozNzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgcGFkOiBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZiBnZXQvcHVsbF9yYW5nZSBhIGxpdHRsZQoJICBNYWtlIGl0IHNvIHRoYXQgb25lIGNhbiBzcGVjaWZ5IGEgYnVmZmVyIGZvciBnZXQvcHVsbF9yYW5nZSB3aGVyZSB0aGUgZG93bnN0cmVhbQoJICBlbGVtZW50IHNob3VsZCB3cml0ZSBpbnRvLiBXaGVuIHBhc3NpbmcgTlVMTCwgdXBzdHJlYW0gc2hvdWxkIGFsbG9jYXRlIGEgYnVmZmVyLAoJICBsaWtlIGluIDAuMTAuCgkgIFdlIGFsc28gbmVlZCB0byBjaGFuZ2UgdGhlIHByb2JlcyBhIGxpdHRsZSBiZWNhdXNlIGJlZm9yZSB0aGUgcHVsbCBwcm9iZSwgdGhlcmUKCSAgY291bGQgYWxyZWFkeSBiZSBhIGJ1ZmZlciBwYXNzZWQuIFRoaXMgdGhlbiBhbGxvd3MgdXMgdG8gdXNlIHRoZSBzYW1lIFBST0JFCgkgIG1hY3JvIGZvciBiZWZvcmUgYW5kIGFmdGVyIHB1bGxpbmcuCgkgIFdoaWxlIHdlJ3JlIGF0IHRoZSBwcm9iZXMsIG1ha2UgdGhlIHF1ZXJ5IHByb2JlIG1vcmUgcG93ZXJmdWwgYnkgaGFuZGxpbmcgdGhlCgkgIEdTVF9QQURfUFJPQkVfRFJPUCByZXR1cm4gdmFsdWUuIFJldHVybmluZyBfRFJPUCBmcm9tIGEgcXVlcnkgcHJvYmUgd2lsbCBub3cKCSAgcmV0dXJuIFRSVUUgdXBzdHJlYW0gYW5kIHdpbGwgbm90IGZvcndhcmQgdGhlIHByb2JlIHRvIHRoZSBwZWVyIG9yIGhhbmRsZXIuCgkgIEFsc28gaGFuZGxlIF9EUk9QIGZvciBnZXQvcHVsbF9yYW5nZSBwcm9wZXJseSBieSBub3QgZGlzcGF0Y2hpbmcgdG8gdGhlCgkgIHBlZXIvaGFuZGxlciBvciBieSBnZW5lcmF0aW5nIEVPUyB3aGVuIHRoZSBwcm9iZSByZXR1cm5zIERST1AgYW5kIG5vIGJ1ZmZlci4KCSAgTWFrZSBmaWxlc3JjIGhhbmRsZSB0aGUgbm9uLU5VTEwgYnVmZmVyIHBhc3NlZCBpbiB0aGUgZ2V0X3JhbmdlIGZ1bmN0aW9uIGFuZAoJICBza2lwIHRoZSBhbGxvY2F0aW9uIGluIHRoYXQgY2FzZSwgd3JpdGluZyBkaXJlY3RseSBpbnRvIHRoZSBkb3duc3RyZWFtIHByb3ZpZGVkCgkgIGJ1ZmZlci4KCSAgVXBkYXRlIHRlc3RzIGJlY2F1c2Ugbm93IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRvIG5vdCBwYXNzIGEgcmFuZG9tIHZhbHVlIGluIHRoZQoJICBidWZmZXIgcG9pbnRlciB0byBnZXQvcHVsbF9yYW5nZQoKMjAxMi0wMy0xNiAyMTozNjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEyLTAzLTE2IDE4OjM5OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZG9jcyBhIGxpdHRsZSwgYWxsb2NfYnVmZmVyIGlzIGdvbmUKCjIwMTItMDMtMTUgMjI6MDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogc3BsaXQgYnVmZmVycG9vbCBjb25maWd1cmF0aW9uCgkgIE1ha2Ugc2VwYXJhdGUgbWV0aG9kcyB0byBjb250cm9sIHRoZSBidWZmZXJwb29sIGFuZCB0aGUgYWxsb2NhdG9yIHVzZWQgYnkgdGhlCgkgIGJ1ZmZlcnBvb2wuCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBhbGxvY2F0b3Igb2YgYSBwb29sLgoKMjAxMi0wMy0xNSAyMDoyMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IHJld29yayB0aGUgQUxMT0NBVElPTiBxdWVyeQoJICBTZXBhcmF0ZSB0aGUgYnVmZmVycG9vbCBhbmQgYWxsb2NhdG9yIGhpbnRzIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LCBzb21lCgkgIG9mIHRoZSB2YWx1ZXMgZG9uJ3QgYWx3YXlzIG1ha2Ugc2Vuc2UgdG9nZXRoZXIuCgkgIEtlZXAgdGhlIGJ1ZmZlcnBvb2wgYW5kIGl0cyBjb25maWd1cmF0aW9uIHRvZ2V0aGVyLgoJICBLZWVwIHRoZSBhbGxvY2F0b3IgYW5kIGl0cyBwYXJhbWV0ZXJzIHRvZ2V0aGVyLgoJICBBbGxvdyBmb3IgbXVsdGlwbGUgYnVmZmVycG9vbCBjb25maWd1cmF0aW9ucyBpbiB0aGUgcXVlcnkuCgoyMDEyLTAzLTE1IDE2OjUwOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNvbW1lbnQgYW5kIGRlYnVnIGltcHJvdmVtZW50CgoyMDEyLTAzLTE1IDE2OjQ5OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIGRlYnVnCgkgIGFsc28gZml4IGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrCgoyMDEyLTAzLTE1IDE0OjI4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMy0xNSAxNDowMTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgR3N0QnVmZmVyUG9vbFBhcmFtcyAtPiBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcwoJICBCZWNhdXNlIHRob3NlIGZsYWdzIGFyZSBub3QgZnJvbSB0aGUgYnVmZmVycG9vbCBidXQgZm9yIHRoZSBhY3F1aXJlIGZ1bmN0aW9uLgoKMjAxMi0wMy0xNSAxMzoyODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogZ3JvdXAgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIGEgc3RydWN0CgkgIEdyb3VwIHRoZSBleHRyYSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gYSBHc3RBbGxvY2F0aW9uUGFyYW1zIHN0cnVjdHVyZSB0byBtYWtlCgkgIGl0IGVhc2llciB0byBkZWFsIHdpdGggdGhlbSBhbmQgc28gdGhhdCB3ZSBjYW4gZXh0ZW5kIHRoZW0gbGF0ZXIgaWYgbmVlZGVkLgoJICBNYWtlIGdzdF9idWZmZXJfbmV3X2FsbG9jYXRlKCkgdGFrZSB0aGUgR3N0QWxsb2NhdGlvblBhcmFtcyBmb3IgYWRkZWQKCSAgZnVuY3Rpb25hbGl0eS4KCSAgQWRkIGJveGVkIHR5cGUgZm9yIEdzdEFsbG9jYXRpb25QYXJhbXMuCgoyMDEyLTAzLTE1IDAwOjI1OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG9ubHkgdXBkYXRlIGJ1ZmZlciBzaXplIG9uIHNob3J0IHJlYWQKCjIwMTItMDMtMTUgMDA6MjQ6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBjb3B5IGZ1bmN0aW9uCgkgIENvcHkgdGhlIHN0cnVjdHVyZSB0b28uCgoyMDEyLTAzLTE1IDAwOjIzOjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtYXhzaXplIGFmdGVyIGFsaWduCgkgIHdoZW4gd2UgYWxpZ24gdGhlIGRhdGEgcG9pbnRlciwgbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgbWF4c2l6ZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0wMy0xNCAyMjo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IHJlbW92ZSB1c2VsZXNzIFBST1hZX0FMTE9DQVRJT04gZmxhZwoKMjAxMi0wMy0xNCAyMTozMjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogQWRkIDAgcGFkZGluZwoJICBDaGFuZ2UgZ3N0X2FsbG9jYXRvcl9hbGxvYygpIHNvIHRoYXQgd2UgY2FuIGFsc28gc3BpY2lmeSBmbGFncyBhbmQgcGFkZGluZy4KCSAgQWRkIDIgbmV3IGZsYWdzIHRvIG1hcmsgdGhlIG1lbW9yeSAwIHByZWZpeGVkL3BhZGRlZC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgcmVtb3ZlIHNvbWUgcmVzaXplcyBpbiB0aGUgYmFzZSBjbGFzc2VzLgoJICBXaGVuIGFsbG9jYXRpbmcgbWVtb3J5LCBtZW1zZXQgcHJlZml4IGFuZCBwYWRkaW5nIHdpdGggMCB3aGVuIHRoZSBmbGFncyB0ZWxsCgkgIHVzIHRvLgoJICBPbiByZXNpemUsIGNsZWFyIHRoZSB6ZXJvIHBhZGRpbmcgZmxhZ3MgaWYgd2UgY2FuJ3QgZ3VhcmFudGVlIHRoZSBtZW1vcnkgaXMKCSAgc3RpbGwgMCBmaWxsZWQuCgkgIFVwZGF0ZSB0ZXN0cy4KCjIwMTItMDMtMTQgMTk6Mzc6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogYWxzbyBpbmNsdWRlIHBhZGRpbmcgaW4gQUxMT0NBVElPTiBxdWVyeQoJICBOZWdvdGlhdGluZyBwYWRkaW5nIGlzIG5lZWRlZCBvbiBzZWNvbmQgdGhvdWdodCBzbyBpbmNsdWRlIGl0IGluIHRoZQoJICBBTExPQ0FUSU9OIHF1ZXJ5LgoJICBNYWtlIHRoZSBidWZmZXJwb29sIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQgd2hlbiBhbGxvY2F0aW5nLgoJICBNYWtlIGJhc2VzcmMgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudC4KCSAgVXNlIHBhZGRpbmcgYW5kIHByZWZpeCB3aGVuIGFsbG9jYXRpbmcgaW4gYmFzZXRyYW5zZm9ybS4KCjIwMTItMDMtMTQgMTg6NDU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdGFrZSBwcmVmaXggaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZwoJICBUYWtlIGludG8gYWNjb3VudCB0aGUgcHJlZml4IHRoYXQgd2UgcmVjZWl2ZWQgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBhbmQgdXNlCgkgIGl0IHRvIGFsbG9jYXRlIGFuZCByZXNpemUgYSBsYXJnZXIgYnVmZmVyLgoKMjAxMi0wMy0xNCAxNzoxNjozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmcmVlIG93bmVkIGRpc2NhcmRlZCBwb29sIGNvbmZpZwoKMjAxMi0wMy0xNCAxNjoyNzozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBwYWQ6IGltcGxlbWVudCBEUkFJTiBoYW5kbGluZwoJICBXaGVuIHdlIGZvcndhcmQgdGhlIERSQUlOIHF1ZXJ5IGFuZCB0aGVyZSBpcyBub3RoaW5nIHRvIGZvcndhcmQgaXQgdG8sIGFzc3VtZSB3ZQoJICBhcmUgZHJhaW5lZC4KCSAgV2hlbiBhIGJhc2VzaW5rIHJlY2VpdmVzIGEgZHJhaW4gcXVlcnksIHJlcGx5IHdpdGggVFJVRS4KCjIwMTItMDMtMTQgMTY6MTQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgbmV3IGRyYWluIHF1ZXJ5CgkgIFdpdGggdGhlIG5ldyBzZXJpYWxpemVkIGRvd25zdHJlYW0gcXVlcmllcyB3ZSBjYW4gaW1wbGVtZW50IGEgZHJhaW4gcXVlcnkgdGhhdAoJICBtYWtlcyBhbiBlbGVtZW50IHdhaXRzIHVudGlsIGEgZG93bnN0cmVhbSBlbGVtZW50IHJlcGxpZXMgdG8gdGhlIHF1ZXJ5LgoKMjAxMi0wMy0xNCAxNjowMToxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNlcmlhbGl6ZWQgcXVlcmllcyBwdXNoIHN0aWNreSBldmVudHMgZmlyc3QKCSAgQmVmb3JlIHdlIGNhbiBwcm9jZWVkIHdpdGggYSBzZXJpYWxpemVkIHF1ZXJ5LCB3ZSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBhbGwKCSAgc3RpY2t5IGV2ZW50cyB3ZXJlIHB1c2hlZC4KCjIwMTItMDMtMTQgMTU6NDI6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVzOiB3YXJuIHdoZW4gcmVjZWl2aW5nIGEgc2VyaWFsaXplZCBldmVudAoJICAuLiB1bnRpbCB3ZSBpbXBsZW1lbnQgaXQuCgoyMDEyLTAzLTE0IDE1OjQyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE0IDE1OjI5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRha2Ugc3RyZWFtIGxvY2sgb24gc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE0IDE1OjE2OjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGVuZm9yY2UgY29ycmVjdCBxdWVyeSBkaXJlY3Rpb24KCjIwMTItMDMtMTQgMTQ6NTE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiByZWdpc3RlciBxdWVyaWVzIGxpa2UgZXZlbnRzCgkgIEFsc28gcmVnaXN0ZXIgcXVlcmllcyB3aXRoIGEgUXVlcnlUeXBlIHRoYXQgYWxsb3dzIHVzIHRvIGNoZWNrIGlmIHRoZSBldmVudCBpcwoJICBzZW50IGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEFkZCBhIHNlcmlhbGl6ZWQgcXVlcnkgdHlwZSBiZWNhdXNlIHdlIHdpbGwgbmVlZAoJICB0aGlzIGZvciB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgUmVtb3ZlIHRoZSBRdWVyeVR5cGVEZWZpbml0aW9uIHN0dWZmLCBpdCBpcyBub3QgdXNlZCBhbnltb3JlIGFuZCB3ZSBub3cgdXNlCgkgIGN1c3RvbSBxdWVyaWVzIGFuZCBzZXBhcmF0ZSBBUEkgZm9yIHRoZW0uCgkgIFVwZGF0ZSBkZWZzLgoKMjAxMi0wMy0xNCAxMjo0MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wMy0xMyAxNTo0MDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgb2xkIGNvbXBhdCBtb2RlCgoyMDEyLTAzLTEzIDE1OjQwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgZG9jcyB1cGRhdGUKCjIwMTItMDMtMTMgMTA6MDQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW1vdmUgZ3N0X2NhcHNfdW5pb24oKQoJICBSZW1vdmUgZ3N0X2NhcHNfdW5pb24oKSwgdXNlIGdzdF9jYXBzX21lcmdlKCkuIFRoaXMgZnVuY3Rpb24gd2FzIG5vdCB1c2VkCgkgIGFueW1vcmUgYW5kIGl0IGlzIHVuY2xlYXIgd2hhdCB0aGUgZGlmZmVyZW5jZSBpcyB3aXRoIF9tZXJnZSgpLgoKMjAxMi0wMy0xMiAyMzowNTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBBU19MSUJUT09MIHZlcnNpb24KCSAgQVBJIHdhcyBhZGRlZCB0byBjb2xsZWN0cGFkczIKCjIwMTItMDMtMTIgMjM6MDI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2twb3J0IEFTX0xJQlRPT0wgdmVyc2lvbiBmcm9tIDAuMTAuMzYgcmVsZWFzZQoJICBNaWdodCBmaXggaXNzdWVzIHdpdGggbWlzc2luZyBzeW1ib2xzIGZvciBwZW9wbGUgd2hvIGluc3RhbGwgR1N0cmVhbWVyCgkgIGZyb20gc291cmNlIGFuZCBhdCBzb21lIHBvaW50IGp1bXBlZCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGdpdCBtYXN0ZXIKCSAgYW5kIHRoZSAwLjEwLjM2IHJlbGVhc2UgKG9yIDAuMTAuIGJyYW5jaCkuCgoyMDEyLTAzLTEyIDIzOjA4OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgZG9jczogZml4IGZ1bmN0aW9uIG5hbWUgYW5kIHR5cG8KCjIwMTItMDMtMTIgMTk6NTI6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZ2V0IHRlbXBsYXRlIGNhcHMgb25seSBvbmNlCgkgIEdldCB0aGUgdGVtcGxhdGUgY2FwcyBvZiB0aGUgcGFkcyBvbmx5IG9uY2UsIGF2b2lkcyB1bmVjZXNzYXJ5IHJlZgoJICBhbmQgdW5yZWZzLgoKMjAxMi0wMy0xMiAxODozNDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGRlbGF5IF9tYWtlX3dyaXRhYmxlKCkgdW50aWwgbmVlZGVkIGluIF9ub3JtYWxpemUoKQoJICBEZWxheSBfbWFrZV93cml0YWJsZSgpIHVudGlsIHdlIGFjdHVhbGx5IGZvdW5kIGEgbGlzdCBhbmQgbmVlZCB0byB1cGRhdGUgdGhlCgkgIGNhcHMuCgoyMDEyLTAzLTEyIDE4OjI1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc2hvcnRjdXQgc2ltcGxpZnkgZWFybGllcgoJICBBIHNpbXBsZSBjYXBzIGlzIGFscmVhZHkgc2ltcGxpZmllZCwgbm8gbmVlZCB0byBjaGVjayBmb3IgZml4ZWRuZXNzLgoKMjAxMi0wMy0xMiAxODoyMjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGNsZWFudXAsIHJlbW92ZSBjb25zdAoKMjAxMi0wMy0xMiAxODowMjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGNsZWFudXBzCgoyMDEyLTAzLTEyIDE2OjQwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgZG9jIGltcHJvdmVtZW50CgoyMDEyLTAzLTEyIDE2OjE4OjQ1ICswMjAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogYnVtcCByZXF1aXJlZCBHTGliIHRvIDIuMzEuMTQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTkxMQoKMjAxMi0wMy0xMiAxMzo1MDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZy10by0wLjExLnR4dCBhIGxpdHRsZQoKMjAxMi0wMy0xMiAxMjozNTowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBzb21lIDAuMTEgRklYTUVzCgoyMDEyLTAzLTEyIDEyOjIxOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbWFrZSBfbm9ybWFsaXplIHRha2Ugb3duZXJzaGlwIG9mIGlucHV0CgkgIE1ha2UgZ3N0X2NhcHNfbm9ybWFsaXplKCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGlucHV0IHNvIHRoYXQgaXQgY2FuIG1vcmUKCSAgaW50ZWxsaWdlbnRseSBkZWNpZGUgd2hlbiB0byBjb3B5IG9yIG5vdC4KCjIwMTItMDMtMTIgMTE6Mzg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogX2RvX3NpbXBsaWZ5KCkgLT4gX3NpbXBsaWZ5KCkKCSAgUmVuYW1lIF9kb19zaW1wbGlmeSgpIHRvIF9zaW1wbGlmeSgpLiBUaGUgbmFtZSB3YXMgaW50cm9kdWNlZCBhcyBhIHJlcGxhY2VtZW50CgkgIG1ldGhvZCBmb3IgYSBkZXByZWNhdGVkIG1ldGhvZCBidXQgd2UgY2FuIG5vdyByZW5hbWUgaXQgYWdhaW4uCgkgIEZpeCBzb21lIGRvY3MuCgoyMDEyLTAzLTEyIDEwOjQyOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBpbXByb3ZlIF9kb19zaW1wbGlmeQoJICBNYWtlIGdzdF9jYXBzX2RvX3NpbXBsaWZ5KCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGlucHV0IGNhcHMgYW5kIHByb2R1Y2UgYQoJICBzaW1wbGlmaWVkIG91dHB1dCBjYXBzLiBUaGlzIHJlbW92ZXMgdGhlIHJlcXVpcmVtZW50IG9mIGhhdmluZyB3cml0YWJsZSBpbnB1dAoJICBjYXBzIGFuZCB0aGUgbWV0aG9kIGNhbiBtYWtlIHRoZSBjYXBzIHdyaXRhYmxlIG9ubHkgd2hlbiBuZWVkZWQuCgoyMDEyLTAzLTEyIDEwOjQxOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoJICB3aXRoIHRoZSBuZXcgY2FwcyBBUEksIHRoZXJlIGlzIG1vcmUgc2hhcmluZyBhbmQgbGVzcyBjb3B5aW5nIGdvaW5nIG9uIHNvIHRoZQoJICB1bml0IHRlc3QgcmVmY291bnRzIGFyZSBkaWZmZXJlbnQuCgoyMDEyLTAzLTEyIDA5OjAzOjQyICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIHVwZGF0ZSBsaWNlbnNlIGxpbmsgdG8gcG9pbnQgdG8gMi4xIGxpY2Vuc2UsIGluc3RlYWQgb2YganVzdCBnZW5lcmljIGxncGwgZmlsZSwgd2hpY2ggaXMgYWx3YXlzIHRoZSBsYXRlc3QgYW5kIHRodXMgbm90IGNvcnJlY3QgZm9yIGdzdHJlYW1lcgoKMjAxMi0wMy0xMSAxODo1Nzo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhdm9pZCB1c2luZyBpbi1wbGFjZSBvcHJhdGlvbnMKCSAgUmV3b3JrIHNvbWUgY2FwcyBvcGVyYXRpb25zIHNvIHRoZXkgZG9uJ3QgcmVseSBvbiB3cml0YWJsZSBjYXBzIGJ1dCBpbnN0ZWFkIHRha2UKCSAgb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBjYXBzIGFuZCBkbyBfbWFrZV93cml0YWJsZSgpIG9ubHkgd2hlbiBuZWVkZWQuCgkgIFJlbW92ZSBzb21lIGNvbnN0IGZyb20gY2FwcyBmdW5jdGlvbnMsIGl0IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZSBmb3IKCSAgcmVmY291bnRlZCBvYmplY3RzIGFuZCBkb2VzIG5vdCBhbGxvdyB1cyB0byByZXR1cm4gYSByZWZjb3VudCB0byB0aGUgY29uc3QgaW5wdXQKCSAgY2Fwcy4KCSAgUmV3b3JrIHRoZSBiYXNlIGNsYXNzZXMgZml4YXRlIHZtZXRob2RzIHRvIG5vdCBvcGVyYXRlIG9uIHRoZSBjYXBzIGluLXBsYWNlLgoJICBBbGwgdGhpcyBzYXZlcyB1cyBhcm91bmQgMzAlIG9mIGNhcHMgYW5kIHN0cnVjdHVyZSBjb3B5IGFuZCBuZXcgb3BlcmF0aW9ucy4KCjIwMTItMDMtMTEgMTc6MjI6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIGFsbG9jYXRpb24gZGVidWcKCjIwMTItMDMtMTAgMDk6MjU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IHJlbW92ZSBjb25zdCBmcm9tIHJlZmNvdW50ZWQgR3N0Q2FwcwoJICBIYXZpbmcgY29uc3Qgb24gcmVmY291bnRlZCBvYmplY3RzIHJlcXVpcmUgdXMgdG8gbWFrZSBjb3BpZXMgaW5zdGVhZCBvZiBzaW1wbHkKCSAgdGFraW5nIGEgcmVmLCBkb24ndCBkbyB0aGF0LgoKMjAxMi0wMy0xMCAwOToxNTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgY29weSB3aGVuIGNhcHMgYXJlIGZpeGVkCgkgIEF2b2lkIGRvaW5nIGEgdXNlbGVzcyBjb3B5IHdoZW4gdGhlIGNhcHMgYXJlIGZpeGVkIGFuZCBzaW1wbGlmeSB3aWxsIG5vdCBkbwoJICBhbnl0aGluZy4KCjIwMTItMDMtMDkgMTY6MTQ6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogc21hbGwgb3B0aW1pemF0aW9ucwoJICBzaG9ydGN1dCBoZWF2eSB3b3JrIHdoZW4gYnVmZmVyX3Jlc2l6ZSBkb2VzIG5vdGhpbmcuCgkgIEF2b2lkIGFuIGV4dHJhIF9yZWYgd2hlbiBtYXBwaW5nIGEgYnVmZmVyLgoJICBBZGQgc29tZSBHX0xJS0VMWS4KCjIwMTItMDMtMDkgMTU6MDM6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBidWZmZXJwb29sOiBmaXggYXJyYXkgdHlwZXMKCjIwMTItMDMtMDkgMTQ6MzA6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTAzLTA5IDExOjUzOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFsc28gcHVzaCBzdGlja3kgZXZlbnRzIG9uIG5ldyBldmVudAoJICBNYWtlIGEgaGVscGVyIGZ1bmN0aW9uIGNoZWNrX3N0aWNreSB0byBjaGVjayBhbmQgcHVzaCBwZW5kaW5nIHN0aWNreSBldmVudHMuCgkgIE1vdmUgdGhlIGhhbmRsaW5nIG9mIHRoZSByZXN1bHQgb2YgcHVzaGluZyB0aGUgc3RpY2t5IGV2ZW50IGluc2lkZSB0aGUKCSAgcHVzaF9ldmVudCBmdW5jdGlvbiwgd2UgbmVlZCB0byBtYXJrIHRoZSBldmVudCBhcyByZWNlaXZlZCB3aGVuIGl0IHdhcyBwdXNoZWQKCSAgY29ycmVjdGx5LgoJICBNb3ZlIHRoZSBzdGlja3kgZXZlbnRzIGNvZGUgb3V0c2lkZSBvZiBnc3RfcGFkX3B1c2hfZXZlbnRfdW5jaGVja2VkIGFuZAoJICBtYWtlIGl0IHB1cmVseSBoYW5kbGUgc2VuZGluZyB0aGUgZXZlbnQgdG8gdGhlIHBlZXIuCgkgIHdoZW4gcHVzaGluZyBhIHN0aWNreSBldmVudCwgZmlyc3Qgc3RvcmUgaXQgb24gdGhlIHBhZC4gVGhlbiBjaGVjayBhbmQgcHVzaCBhbnkKCSAgcGVuZGluZyBzdGlja3kgZXZlbnRzIHdoZW4gd2UgZ2V0IGEgc2VyaWFsaXplZCBvciBzdGlja3kgZXZlbnQgb24gYSBzcmNwYWQuIFRoaXMKCSAgZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHN0aWNreSBldmVudHMgYXJlIG5vdCBwdXNoZWQgd2hlbiBhbiBldmVudCBpcyBwdXNoZWQuCgoyMDEyLTAzLTA5IDExOjUyOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHN0b3JlIHRoZSByZWNlaXZlZCByZXN1bHQgZnJvbSBfZm9yZWFjaAoJICBJZiB0aGUgZm9yZWFjaCBmdW5jdGlvbiBjaGFuZ2VzIHRoZSByZWNlaXZlZCBzdGF0ZSBvZiB0aGUgc3RpY2t5IGV2ZW50LCBtYWtlCgkgIHN1cmUgd2UgcmVtZW1iZXIgdGhhdC4KCjIwMTItMDMtMDkgMTE6NTI6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGNvbW1lbnQKCjIwMTItMDMtMDkgMTE6NDk6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IGFkZCB0ZXN0IHRvIGNoZWNrIHN0aWNreSBldmVudHMgb3JkZXIKCSAgU3RpY2t5IGV2ZW50cyBwdXNoZWQgb24gYW4gdW5saW5rZWQgcGFkIHNob3VsZCBiZSBzdG9yZWQgb24gdGhlIHBhZC4gV2hlbiB0aGUKCSAgcGFkIGlzIHRoZW4gbGlua2VkIGFuZCBhbiBldmVudCBpcyBwdXNoZWQsIHRoZSBldmVudCBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlCgkgIGFscmVhZHkgZXhpc3Rpbmcgc3RpY2t5IGV2ZW50cyBhbmQgdGhlbiB0aGUgc3RpY2t5IGV2ZW50cyBzaG91bGQgYmUgcHVzaGVkIGluCgkgIHRoZSBvcmRlciB0aGF0IHRoZXkgd2VyZSBvcmlnaW5hbGx5IHB1c2hlZC4KCjIwMTItMDMtMDkgMTE6NDg6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdDogZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMi0wMy0wOCAyMDowODoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogcG9ydCBwaXBlbGluZS9zZWVrIHRlc3QgdG8gMC4xMQoJICBEb2Vzbid0IGZhaWwgaW4gMC4xMSBvZiBjb3Vyc2UsIGF0IGxlYXN0IG5vdCBvbiBteSBtYWNoaW5lLgoKMjAxMi0wMy0wOCAxOTo1NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb21tb24KCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3R0YXNrLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaAoKMjAxMi0wMy0wOCAxNjozMDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHBhZCwgdGFzazogaW1wcm92ZSBkZWJ1ZyBsb2dnaW5nCgoyMDEyLTAzLTA4IDE2OjI2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgcGFkcywgY29sbGVjdHBhZHMyOiBnZXQgcmlkIG9mIHN1cGVyZmx1b3VzIGJyYWNrZXRzIGFyb3VuZCBzdGF0aWMgcmVjIG11dGV4IGNhbGxzCgkgIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGRlZmluZSB0aG9zZSBjYWxscyB0byBzb21ldGhpbmcgZm9yIHRyYWNpbmcuCgoyMDEyLTAzLTA4IDE2OjI1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgY29tbW9uIG1vZHVsZQoJICBGb3IgbWFrZSBmb28vYmFyLmNoZWNrLW5vcmVwZWF0IHRhcmdldC4KCjIwMTItMDMtMDggMTU6MjM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogYWRkIG1pbmltYWwgYmFzZXNyYyAhIHNpbmsgc2Vla2luZyB1bml0IHRlc3QKCSAgU2hvdWxkIHJlcHJvZHVjZSAnR1N0cmVhbWVyLVdBUk5JTkcgKio6IHdyb25nIFNUUkVBTV9MT0NLIGNvdW50IDAnCgkgIHdhcm5pbmdzICh3aXRoIG1ha2UgcGlwZWxpbmVzL3NlZWsudG9ydHVyZSBvciBwaXBlbGluZXMvc2Vlay5mb3JldmVyCgkgIGFueXdheSwgc2luY2UgaXQgYXBwZWFycyB0byBiZSByYWN5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MDg0NgoKMjAxMS0xMi0yNiAwMDoxODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogcmVtb3ZlIGdzdF92YWx1ZV9yZWdpc3Rlcl97c3VidHJhY3QsdW5pb24saW50ZXJzZWN0fV9mdW5jKCkgQVBJCgkgIFRoZXJlIGlzbid0IHJlYWxseSBhbnkgbmVlZCB0byBwcm92aWRlIHB1YmxpYyBBUEkgZm9yIHRoYXQuIEl0J3Mgbm90CgkgIHVzZWQgYW55d2hlcmUgaW4gcHJhY3RpY2UsIGFuZCB3ZSBhaW0gdG8gcHJvdmlkZSBhbiBBUEkgdGhhdCB3b3JrcwoJICBmb3IgR3N0Q2Fwcywgbm90IHNvbWUga2luZCBvZiBnZW5lcmljIHNldCBtYW5pcHVsYXRpb24gQVBJIGJhc2VkIG9uCgkgIEdWYWx1ZS4gTWFraW5nIHRoaXMgcHJpdmF0ZSBhbHNvIG1ha2VzIGl0IGVhc2llciB0byBvcHRpbWlzZSB0aGlzCgkgIGxhdGVyLiBXZSBjYW4gYWx3YXlzIHB1dCBpdCBiYWNrIGlmIHNvbWVvbmUgYWN0dWFsbHkgbmVlZHMgaXQuCgoyMDEyLTAzLTA4IDEwOjQ3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggcmVmY291bnQgZXJyb3IKCjIwMTItMDMtMDggMDk6NDU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXR1cm4gQU5ZIGZvciBhIHBhZCB3aXRob3V0IHRlbXBsYXRlCgkgIEJlY2F1c2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlX2NhcHMoKSByZXR1cm5zIEFOWSB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlLAoJICB0aGUgcXVlcnkgY2FwcyBmdW5jdGlvbiBzaG91bGQgYWxzbyByZXR1cm4gQU5ZIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUgKGFuZCBubwoJICBwYWQgY3VycmVudCBjYXBzKSBpbnN0ZWFkIG9mIEVNUFRZLgoKMjAxMi0wMy0wOCAwOTo0NDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDEyLTAzLTA3IDE1OjM0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBjb21tZW50CgoyMDEyLTAzLTA4IDEwOjMyOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IG1lcmdlIG1pc3Rha2UKCjIwMTItMDMtMDggMTA6MTk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYwoKMjAxMi0wMy0wNyAxMToyMzo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFycmFuZ2UgZm9yIHByb3Blcmx5IGRpc2pvaW50IGZyYW1lIGZsYWdzCgoyMDEyLTAzLTA2IDE1OjE3OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRlbGF5IHBvb2wgYWN0aXZhdGlvbgoJICBEZWxheSB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgYnVmZmVycG9vbCB1bnRpbCB3ZSBhY3R1YWxseSBuZWVkIGEgYnVmZmVyIGZyb20gdGhlCgkgIHBvb2wuCgoyMDEyLTAzLTA2IDEyOjI4OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4ICdzZWxmLWNvbXBhcmlzb24gYWx3YXlzIGV2YWx1YXRlcyB0byB0cnVlJwoJICBUaGlzIHdhcyByZWFsbHkgYSBidWcuCgoyMDEyLTAzLTA2IDEyOjI0OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRml4ICd1c2Ugb2YgbG9naWNhbCAnJiYnIHdpdGggY29uc3RhbnQgb3BlcmFuZCcgY29tcGlsZXIgd2FybmluZwoJICBUaGlzIGlzIGFjdHVhbGx5IGEgcmVhbCBidWcuCgoyMDEyLTAzLTA2IDEyOjIzOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggJ2VxdWFsaXR5IGNvbXBhcmlzb24gd2l0aCBleHRyYW5lb3VzIHBhcmVudGhlc2VzJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAzLTA2IDEyOjE2OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggJ2NvbXBhcmlzb24gb2YgdW5zaWduZWQgZW51bSBleHByZXNzaW9uID49IDAgaXMgYWx3YXlzIHRydWUnIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDMtMDUgMTU6MjM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgcHJvcG9zZV9hbGxvY2F0aW9uIGJlZm9yZSBuZWdvdGlhdGlvbgoJICBBbnN3ZXIgdGhlIGFsbG9jYXRpb24gcXVlcnkgd2l0aCBGQUxTRSB3aGVuIHdlIGFyZSBub3QgbmVnb3RpYXRlZCB5ZXQgYmVjYXVzZSBhdAoJICB0aGF0IHBvaW50IHdlIGhhdmUgbm8gaWRlYSBpZiB3ZSBuZWVkIHRvIHByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IG9yIG5vdC4KCjIwMTItMDMtMDUgMTQ6NDE6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmV3c2VnbWVudCBldmVudHMKCSAgUHJldmlvdXNseSBvbmx5IHRoZSBsYXN0IHdvdWxkIGJlIHB1c2hlZCwgd2hpY2ggd291bGQgY2F1c2UKCSAgaW52YWxpZCBydW5uaW5nIHRpbWVzIGRvd25zdHJlYW0uIFRoaXMgYWxzbyBmaXhlcyB0aGUgaGFuZGxpbmcKCSAgb2YgdXBkYXRlIG5ld3NlZ21lbnQgZXZlbnRzLgoKMjAxMi0wMy0wNSAxNDoyNTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFsc28gZmx1c2ggdGhlIGNsb3NlX3NlZ21lbnQKCSAgUHVzaGluZyB0aGlzIGFmdGVyIGZsdXNoaW5nIHdpbGwgY29uZnVzZSBkb3duc3RyZWFtLgoKMjAxMi0wMy0wNSAxNDoyMzoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSBvYnNvbGV0ZSBjb2RlIGFuZCBtb3ZlIGdhcCBoYW5kbGluZyB0byB0aGUgY29ycmVjdCBwbGFjZQoJICBUaGUgc2VnbWVudCBzdGFydCBhZGp1c3RtZW50IGNvZGUgaW4gcHVsbCBtb2RlIHNob3VsZCBuZXZlciB0cmlnZ2VyCgkgIGFueW1vcmUgYmVjYXVzZSB0aGUgYmlzZWN0aW9uIGNvZGUgZWFybGllciB3b3VsZCBoYXZlIGFscmVhZHkgbWFkZQoJICBzdXJlIHRoYXQgd2UncmUgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24uCgkgIEFsc28gbW92ZSB0aGUgZ2FwIGhhbmRsaW5nIHNvbWUgbGluZXMgYmVsb3cgYWZ0ZXIgc2VuZGluZyB0aGUgY3VycmVudGx5CgkgIGNvbmZpZ3VyZWQgc2VnbWVudHMuIE90aGVyd2lzZSB3ZSBtaWdodCBmaWxsIGdhcHMgaW4gYSBzZWdtZW50IHRoYXQgaXMKCSAgbm90IGNvbmZpZ3VyZWQgZG93bnN0cmVhbSB5ZXQuCgoyMDEyLTAzLTA1IDEzOjEyOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQ2xlYXIgc29tZSBtb3JlIHN0YXRlIHdoZW4gcmVjZWl2aW5nIEZMVVNIX1NUT1AKCSAgTGlrZSBwZW5kaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCB0aGUgY3VycmVudGx5IGNhY2hlZCBidWZmZXIuCgoyMDEyLTAzLTA1IDEzOjAwOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT25seSBxdWV1ZSBzZXJpYWxpemVkIGV2ZW50cyBmb3Igc2VuZGluZyB0aGVtIGxhdGVyCgoyMDEyLTAzLTA1IDAwOjM0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJnc3RjaGVjazogZXhwb3J0IGdzdF9jb25zaXN0ZW5jeV9jaGVja2VyX2FkZF9wYWQoKQoJICBGaXggYnVpbGQgb2YgdGhlIGFkZGVyIHVuaXQgdGVzdCBpbiAtYmFzZSBhZ2Fpbi4KCjIwMTItMDMtMDIgMTc6MzI6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZmluZSBtZXRhZGF0YSBmaWx0ZXIgYW5kIHRyYW5zZm9ybQoJICBBZGQgYSB2bWV0aG9kIHRvIGZpbHRlciBtZXRhZGF0YSB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdXBzdHJlYW0uIEJ5IGRlZmF1bHQsCgkgIGRvbid0IHBhc3MgYW55dGhpbmcuCgkgIEFkZCBhIHZtZXRob2QgdG8gdHJhbnNmb3JtIG1ldGFkYXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlciB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KCSAgQnkgZGVmYXVsdCwgbm90aGluZyBpcyB0cmFuc2Zvcm1lZCBvciBjb3BpZWQuCgoyMDEyLTAzLTAyIDE3OjA0OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJICBnc3Q6IGluY2x1ZGUgZ3N0bWV0YS5oCgoyMDEyLTAzLTAyIDE3OjAzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIG1vcmUgZGVidWcgaW5mbwoKMjAxMi0wMy0wMiAxMzowMjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDMtMDIgMTM6MDI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogaW1wcm92ZSBtZXRhZGF0YSB0ZXN0CgoyMDEyLTAzLTAyIDEyOjQ1OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgYm9vbGVhbiB0byBzaWduYWwgYSByZWdpb24gY29weQoJICBBZGQgYSBib29sZWFuIHRvIHRoZSBtZXRhZGF0YSBjb3B5IHRyYW5zZm9ybSB0aGF0IHNpZ25hbHMgaWYgYSBvbmx5IGEKCSAgcmVnaW9uIGlzIGNvcGllZC4KCjIwMTItMDMtMDIgMTI6MTY6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2l0ZW5jeWNoZWNrZXI6IGRvbid0IGZhaWwgb24gbXVsdGlwbGUgZmx1c2hfc3RhcnQgZXZlbnRzCgkgIFRoaXMgc2VlbXMgdG8gYmUgb2theSBhZnRlciBhIGlyYyBkaXNjdXNzaW9uLgoKMjAxMi0wMy0wMiAxMTo1Nzo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHRyYW5zZm9ybSBkb2NzCgkgIFVzZSBnc3QtIHByZWZpeCBmb3IgbWV0YWRhdGEgdHJhbnNmb3JtIHR5cGVzLgoKMjAxMi0wMy0wMiAxMTowNDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGZpeCBjb21tZW50CgoyMDEyLTAzLTAyIDExOjA1OjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIE1ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIGdzdDogUmVtb3ZlIGdzdG1hcnNoYWwuW2NoXSBjb21wbGV0ZWx5IGFuZCB1c2UgdGhlIGdlbmVyaWMgbWFyc2hhbGxlcgoJICBGaXhlcyBidWcgIzY3MTEzMC4KCjIwMTItMDMtMDIgMTA6NTE6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IERvbid0IGluc3RhbGwgZ3N0bWFyc2hhbC5oCgkgIFRoZSBnZW5lcmljLCBGRkkgYmFzZWQgbWFyc2hhbGxlciBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZXNlCgkgIGFuZCB3ZSBkZWZpbml0ZWx5IHNob3VsZG4ndCBleHBvcnQgdGhlIG1hcnNoYWxsZXJzIGluIG91ciBwdWJsaWMgQVBJLgoKMjAxMi0wMy0wMSAxNzozOToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBpbXByb3ZlIGRlYnVnZ2luZwoJICBBZGQgY2F0ZWdvcnkgZm9yIG1ldGFkYXRhIGRlYnVnCgoyMDEyLTAzLTAxIDE3OjM4OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAzLTAxIDE3OjM4OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAzLTAxIDE1OjE4OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgbWV0YWRhdGEgdGFnZ2VkIHdpdGggdGhlIG1lbW9yeSB0YWcKCSAgUmVtb3ZlIG1ldGFkYXRhIHRoYXQgZGVzY3JpYmVzIHRoZSBwYXJ0aWN1bGFyIG1lbW9yeSBvZiB0aGUgYnVmZmVyIGl0IGlzCgkgIGF0dGFjaGVkIHRvLiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSBpbiBub24tcGFzc3Rocm91Z2ggbW9kZSB3ZSB3aWxsIGFsbG9jYXRlCgkgIG5ldyBtZW1vcnkgZm9yIG91ciBvdXRwdXQgYnVmZmVyLgoKMjAxMi0wMy0wMSAxNToxNzozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCB0YWcgZm9yIG1lbW9yeSBtZXRhZGF0YQoKMjAxMi0wMy0wMSAxNDo0OTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBtZXRob2QgdG8gcmVtb3ZlIGFsbG9jYXRpb25fbWV0YQoJICBBbHNvIGdfcmV0dXJuX2lmX2ZhaWwgZm9yIG91dC1vZi1ib3VuZHMgYWNjZXNzIGluc3RlYWQgb2Ygc2lsZW50bHkgZmFpbGluZy4KCjIwMTItMDMtMDEgMTQ6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIEltcHJvdmUgdGhlIHByb3Bvc2UgYWxsb2NhdGlvbiB2bWV0aG9kIGJ5IHBhc3NpbmcgdGhlIGRvd25zdHJlYW0gYWxsb2NhdGlvbgoJICBxdWVyeSB0byBpdC4gVGhpcyB3YXkgdGhlIHZtZXRob2QgaW1wbGVtZW50YXRpb24gY2FuIHVzZSBwcm9wZXJ0aWVzIG9mIHRoZQoJICBkb3duc3RyZWFtIGFsbG9jYXRpb24gdG8gZ2VuZXJhdGUgdGhlIHVwc3RyZWFtIHF1ZXJ5IHJlc3VsdC4gSWYgdGhlcmUgaXMgbm8KCSAgZG93bnN0cmVhbSBxdWV0eSwgaXQgbWVhbnMgdGhhdCB0aGUgZWxlbWVudCBpcyB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUuCgkgIEltcGxlbWVudCBhIGRlZmF1bHQgZGVjaWRlX2FsbG9jYXRpb24uCgoyMDEyLTAzLTAxIDExOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNsZWFyIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBwYXNzdGhyb3VnaAoJICBDbGVhciB0aGUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHdoZW4gd2Ugb3BlcmF0ZSBpbiBwYXNzdGhyb3VnaC4KCjIwMTItMDMtMDEgMTE6MDY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdGVzdHM6IGZpeCBvbGQgY2FwcyBpbiB0ZXN0cyBub3cgdGhhdCBjb3JlIHdhcm5zCgoyMDEyLTAzLTAxIDE0OjUxOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBsaWJzOiBGaXggc29tZSBtZXJnZSBtaXN0YWtlcwoKMjAxMi0wMy0wMSAxNDo0MzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYwoKMjAxMi0wMi0yOCAxMjowMzo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHNvbWUgZGVidWcgbWVzc2FnZSB0eXBvcwoKMjAxMi0wMi0yOSAyMTo1NzowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgY29uc2l0ZW5jeWNoZWNrZXI6IGFkZCBoYW5kbGluZyBmb3Igc2luay1wYWRzCgkgIEFkZCBhIHBhZC1wcm9iZSBmb3Igc2luay1wYWRzLiBPbmUgY2FuIG5vdyBhZGQgZXh0cmEgcGFkcyAoYmVsb25naW5nIHRvIHRoZSBzYW1lCgkgIGVsZW1lbnQpIHRvIGEgY2hlY2tlci4gVGhpcyBhbGxvd3MgdXMgdG8gZXh0ZW5kIHRoZSBjaGVja3MuCgoyMDEyLTAyLTI5IDE3OjIwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IHNwbGl0IHJlZ2lzdHJhdGlvbiBvZiBBUEkgYW5kIGltcGxlbWVudGF0aW9uCgkgIFNwbGl0IG91dCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBtZXRhZGF0YSBBUEkgYW5kIGl0cyBpbXBsZW1lbnRhdGlvbi4gTWFrZSBhCgkgIEdUeXBlIGZvciBlYWNoIG1ldGFkYXRhIEFQSS4gVGhpcyBhbGxvd3MgdXMgdG8gc3RvcmUgZXh0cmEgaW5mb3JtYXRpb24gd2l0aCB0aGUKCSAgQVBJIHR5cGUgc3VjaCBhcyB0aGUgdGFncy4KCSAgQ2hhbmdlIHRoZSBidWZmZXIgQVBJIHNvIHRoYXQgd2UgY2FuIGdldCB0aGUgbWV0YWRhdGEgdXNpbmcgdGhlIEFQSSBHVHlwZS4KCSAgQ2hhbmdlIHRoZSBxdWVyeSBBUEkgc28gdGhhdCB3ZSB1c2UgdGhlIG1ldGFkYXRhIEFQSSBHVHlwZSBpbiB0aGUgYWxsb2NhdGlvbgoJICBxdWVyeSBpbnN0ZWFkIG9mIGEgc3RyaW5nLgoJICBVcGRhdGUgbmV0YWRkcmVzcyBhbmQgdW5pdCB0ZXN0cwoKMjAxMi0wMi0yOSAxNjowMDoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbm9iamVjdDogc21hbGwgLmggaW5kZW50IGZpeAoKMjAxMi0wMi0yOSAxMjo0MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcHJpbnQgYSBnX3dhcm5pbmcoKSBpZiBzb21lb25lIHRyaWVzIHRvIGNvbnN0cnVjdCAwLjEwLXN0eWxlIHJhdyBhdWRpby92aWRlbyBjYXBzCgoyMDEyLTAyLTI5IDA4OjQ0OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWxzbyBjaGVjayBmb3IgZHVwbGljYXRlZCBmbHVzaF9zdGFydHMKCjIwMTItMDItMjggMjA6MzY6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFkZCBtb3JlIGxvZ2dpbmcKCjIwMTItMDItMjggMTY6MTc6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogYWRkIHJldHVybiB2YWxlIHRvIHRyYW5zZm9ybQoJICBBZGQgYSBib29sZWFuIHJldHVybiB2YWx1ZSBzbyB0aGF0IHdlIGNhbiBzZWUgd2hlbiBhIHRyYW5zZm9ybSBmYWlscy4KCjIwMTItMDItMjggMTI6NTI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgYSB0YWcKCjIwMTItMDItMjggMTI6NTE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoKMjAxMi0wMi0yOCAxMTozNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJICBtZXRhOiBhZGQgc3VwcG9ydCB0byB0YWdnaW5nIHRoZSBtZXRhZGF0YQoJICBBZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHRhZ3MgdG8gdGhlIG1ldGFkYXRhLiB3aXRoIHNvbWUgc3RhbmRhcmQga2V5cywgdGhpcwoJICBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBkZXNjcmliZSB3aGF0IHRoZSBtZXRhZGF0YSByZWZlcnMgdG8uIFdlIHNob3VsZCBiZQoJICBhYmxlIHRvIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIGRlY2lkZSBpZiBhIHRyYW5zZm9ybWF0aW9uIGRlc3Ryb3lzIHRoZSBtZXRhZGF0YQoJICBvciBub3QuCgoyMDEyLTAyLTI3IDEzOjM1OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBTdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBpbiBzZWxlY3RlZCBmaWxlcywgZm9yIGdfdmFsdWVfYXJyYXlfKiBtb3N0bHkKCjIwMTItMDItMjcgMTE6NDY6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBpbmNyZWFzZSBidXMgdGVzdCB0aW1lb3V0CgoyMDEyLTAyLTIxIDIwOjQzOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogbWFrZSBkYXRldGltZSB0ZXN0IG1vcmUgcmVsaWFibHkgd2hlbiBjb21wYXJpbmcgdHdvIGFsbW9zdCBpZGVudGljYWwgbm93cwoJICBBY2NvdW50IGZvciByb3VuZGluZyBlcnJvcnMgaW4gc29tZSBwbGFjZXMsIGFuZCB0aGF0IHR3byBub3dzIGFyZQoJICBub3QgYWx3YXlzIGVudGlyZWx5IGlkZW50aWNhbCwgc28gYWxsb3cgc29tZSBsZWV3YXkgd2hlbiBjb21wYXJpbmcKCSAgbWljcm9zZWNvbmRzIGFuZCBzZWNvbmRzLiBSYW4gaW50byB0aGlzIHRvbyBvZnRlbiwgZXNwLiB3aGVuIHRoZQoJICBzeXN0ZW0gaXMgdW5kZXIgbG9hZC4KCjIwMTItMDItMjcgMDk6NDg6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICByZW1vdmUgc29tZSB1c2VsZXNzIGluY2x1ZGVzIGluIC5oCgoyMDEyLTAyLTI3IDA5OjAyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgkgIEV4cG9zZSBtZXRob2RzIHRvIGdldCBhbmQgc2V0IHRoZSB0aW1lb3V0IGJlY2F1c2Ugc3ViY2xhc3NlcyB1c2VzIHRoaXMuCgoyMDEyLTAyLTI2IDIwOjQ1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDItMjYgMjA6NDQ6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMi0yNiAxNjozMjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IG1ha2UgbW9yZSBmaWVsZHMgcHJpdmF0ZQoKMjAxMi0wMi0yNyAwMDowOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGZpeCBjb21waWxhdGlvbiBhZnRlciBtZXJnZQoKMjAxMi0wMi0yNyAwMDowODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBORVdTCgkgIFJFTEVBU0UKCSAgY29uZmlndXJlLmFjCgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWwKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYwoJICB3aW4zMi9jb21tb24vY29uZmlnLmgKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jCgkgIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmgKCjIwMTItMDItMjYgMjM6MTE6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IHJlc2N1ZSB0aGUgYW5ub3RhdGlvbiBmcm9tIGNvbGxlY3RwYWRzCgoyMDEyLTAyLTI2IDIzOjEwOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBmaXggYSB0eXBvIGluIGNvbW1lbnQKCjIwMTItMDItMjYgMjI6NTc6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IG1vdmUgIk1UIHNhdmUiIHRhZ3MgdG8gZG9jIGJvZHkKCSAgSXQgaXMgbm90IHVzZWZ1bCB0byBoYXZlICJNVCBzYWZlIiB0YWdzIHJhbmRvbWx5IGluIGJvZHksIHJldHVybnMgb3Igc2luY2UgcGFyYWdyYXBocy4KCjIwMTItMDItMjUgMTU6MTg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgR3N0QmFzZVNpbms6OnF1ZXJ5IGluc3RlYWQgb2YgbWVzc2luZyB3aXRoIHRoZSBwYWQKCjIwMTItMDItMjUgMTU6MDg6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBXZSBtYXkgb3IgbWF5IG5vdCBzdXBwb3J0IHNlZWtpbmcuIHN0ZG91dCB0byBhCgkgIHRlcm1pbmFsIGRvZXNuJ3Qgc3VwcG9ydCBzZWVraW5nLCBmb3IgZXhhbXBsZSwgYnV0CgkgIC4uLiAhIGZkc2luayA+IGZpbGUuZm9vIGp1c3QgbWlnaHQuCgoyMDEyLTAyLTI1IDE1OjA3OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgkgIFdlIG1heSBvciBtYXkgbm90IGRvIHNlZWtpbmcsIGRlcGVuZHMgb24gdGhlCgkgIG91dHB1dCBmaWxlL2RldmljZSByZWFsbHksIGl0IGRvZXNuJ3QgaGF2ZSB0bwoJICBiZSBhIGZpbGUgYWZ0ZXIgYWxsLgoKMjAxMi0wMi0yNSAxNTowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBhbnN3ZXIgU0VFS0lORyBxdWVyeQoJICBXZSBkb24ndCBkbyBzZWVraW5nLCBpbiBjYXNlIGFueW9uZSB3YW50cyB0byBrbm93LgoKMjAxMi0wMi0yNCAyMzozOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBsc2VlaygpIHJldHVybiBjb2RlIGhhbmRsaW5nCgkgIGxzZWVrKCkgcmV0dXJucyB0aGUgb2Zmc2V0IGlmIHN1Y2Nlc3NmdWwsIGFuZCB0aGlzIGlzICE9IDAgYW5kCgkgIGRvZXMgbm90IGluZGljYXRlIGFuIGVycm9yLiBBbmQgaWYgaXQgZG9lcyBhY3R1YWxseSBmYWlsLCBkb24ndAoJICByZXR1cm4gRkFMU0UgKDApIGFzIGFuIGludCwgYnV0IC0xLiBOb25lIG9mIHRoZXNlIHRoaW5ncyBhcmUKCSAgbGlrZWx5IHRvIGhhdmUgbWFkZSBhIGRpZmZlcmVuY2UsIGV2ZXIuIEkgZG9uJ3QgdGhpbmsgdGhlIG9mZnNldAoJICBzZWVrIGNhbiBldmVyIGFjdHVhbGx5IGhhcHBlbiwgdGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbiBhbmQgdGhlCgkgIGN1cnJlbnQgb2Zmc2V0IHNob3VsZCBhbHdheXMgYmUgaW5jcmVhc2VkIGluIGxvY2sgc3RlcCwgdW5sZXNzCgkgIHRoZXJlIHdhcyBhbiBlcnJvciBpbiB3aGljaCBjYXNlIHdlJ2QganVzdCBlcnJvciBvdXQuCgoyMDEyLTAyLTI0IDIzOjE5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZm9yZ2V0IHRvIGNsZWFuIHVwIHJlZ2lzdHJ5IHRlbXAgZmlsZSBpbiBhbm90aGVyIGVycm9yIGNhc2UKCSAgQWxzbyBjbGVhbiB1cCB0ZW1wIGZpbGUgaWYgd2UgZ2V0IGFuIGVycm9yIGR1cmluZyB3cml0ZSgpIHJhdGhlcgoJICB0aGFuIGp1c3Qgd2hlbiBkb2luZyBmc3luYygpIG9yIGNsb3NlKCkuCgoyMDEyLTAyLTI0IDE1OjI0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggcmFjZQoJICBBZnRlciBhIHdyaXRlciBoYXMgd3JpdHRlbiB0byBpdHMgcmVzZXJ2ZWQgd3JpdGUgbG9jYXRpb24sIGl0IGNhbiBvbmx5IG1ha2UgdGhlCgkgIGxvY2F0aW9uIGF2YWlsYWJsZSBmb3IgcmVhZGluZyBpZiBhbGwgb2YgdGhlIHdyaXRlcnMgd2l0aCBsb3dlciBsb2NhdGlvbnMgaGF2ZQoJICBmaW5pc2hlZC4KCjIwMTItMDItMjQgMTI6NTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBzdWJ0bGUgcmFjZQoJICBGaXggYSByYWNlIHdoZXJlIHRoZSByZWFkZXIgd291bGQgc2VlIHRoZSB1cGRhdGVkIHRoZSB0YWlsIHBvaW50ZXIgYmVmb3JlIHRoZQoJICB3cml0ZSBjb3VsZCB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBxdWV1ZS4gRml4IHRoaXMgYnkgaGF2aW5nIGEgc2VwYXJhdGUgcmVhZGVyCgkgIHRhaWwgcG9pbnRlciB0aGF0IGlzIG9ubHkgaW5jcmVtZW50ZWQgYWZ0ZXIgdGhlIHdyaXRlciB3cm90ZSB0aGUgZGF0YS4KCjIwMTItMDItMjQgMTE6MDA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWNvbmZpZ3VyZSBtZXRob2RzCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc2luayBiZWNhdXNlCgkgIHRoYXQgaXMgd2hhdCBpdCBkb2VzLiBBbHNvIHJlbW92ZSB0aGUgY2FwcyBhbmQgc2l6ZSBiZWNhdXNlIHRoYXQgaXMgbm90IG5lZWRlZC4KCSAgUmVuYW1lIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc3JjLgoJICBSZW1vdmUgc29tZSBvbGQgdW51c2VkIGNvZGUgaW4gY2Fwc2ZpbHRlci4KCjIwMTItMDItMjQgMTA6MjM6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogZmxlc2ggb3V0IHRoZSBtZXRhZGF0YSB0cmFuc2Zvcm0KCSAgRmxlc2ggb3V0IHRoZSB0cmFuc2Zvcm0gbWV0aG9kLiBBZGQgYSB0eXBlIGFuZCBleHRyYSBpbmZvIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24gc28gdGhhdCBpbXBsZW1lbnRhdGlvbiBjYW4gdHJhbnNmb3JtIHRoZSBtZXRhZGF0YS4KCSAgUmVtb3ZlIHRoZSBjb3B5IGZ1bmN0aW9uIGFuZCByZXBsYWNlIHdpdGggdGhlIG1vcmUgZ2VuZXJpYyB0cmFuc2Zvcm0uCgoyMDEyLTAyLTI0IDEwOjIzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDItMjMgMDg6NDg6MjIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEZpeCBnYXAgaW4gTWFrZWZpbGUKCjIwMTItMDItMjMgMDg6NDg6MTAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBzcGVsbGluZyBmaXgKCjIwMTEtMTItMjYgMTY6NDU6MjAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogZml4IHNwZWxsaW5nIG9mIHdyaXRhYmxlCgoyMDEyLTAyLTIzIDE1OjMyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCB1c2VyX2RhdGEgdG8gR3N0TWFwSW5mbwoJICBBZGQgZXh0cmEgcG9pbnRlcnMgdG8gR3N0TWFwSW5mbyBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gdXNlIHRoZXNlIHRvIHN0b3JlCgkgIGV4dHJhIGluZm8uCgoyMDEyLTAyLTIzIDE1OjMyOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTIzIDEyOjA5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkgIFVwZGF0ZSBORVdTIGFuZCBSRUxFQVNFIGFzIHdlbGwKCjIwMTItMDItMjMgMTE6NTk6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCjIwMTItMDItMjMgMTA6MzY6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCdW1wIHZlcnNpb24gYWZ0ZXIgcmVsZWFzZXMKCjIwMTItMDItMjMgMTE6MDg6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSB0cmFuc2Zvcm0gbG9jawoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZSBieSB0aGUgYmFzZWNsYXNzLiBzdWJjbGFzc2VzIHNob3VsZCBkbyB0aGVpciBvd24KCSAgbG9ja2luZyB3aGVuIG5lZWRlZC4KCjIwMTItMDItMjMgMTA6MTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBjbGVhbnVwcwoJICBDbGVhbiB1cCB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhlIHBhc3N0aHJvdWdoIHZhcmlhYmxlIGlzIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jay4KCjIwMTItMDItMjIgMTU6MjY6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIEFsd2F5cyBjYWxsIHRoZSBwcm9wb3NlX2FsbG9jYXRpb24gbWV0aG9kIGFuZCBwcm92aWRlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgoJICB0aGF0IHBhc3NlcyB0aGUgcXVlcnkgb24gaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGFsc28gY2FsbAoJICB0aGlzLiBBbHNvIHBhc3MgaWYgdGhlIHRyYW5zZm9ybSBpcyBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoYXQgdGhlCgkgIGltcGxlbWVudGF0aW9uIGNhbiBhZGp1c3QgaXRzIGFsZ29yaXRobS4KCjIwMTItMDItMjIgMTI6MjQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBmaXhhdGVfY2FwcyBmdW5jdGlvbgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFsc28gaW1wbGVtZW50IG5vbi1pbnBsYWNlIGZpeGF0ZSBmdW5jdGlvbnMuIExldCB0aGUgZml4YXRlCgkgIGZ1bmN0aW9uIG1ha2UgdGhlIGNhcHMgd3JpdGFibGUgd2hlbiBuZWVkZWQgYmVjYXVzZSBzb21lIGZpeGF0ZSBmdW5jdGlvbnMgbWlnaHQKCSAgbm90IG5lZWQgdG8gbW9kaWZ5IHRoZSBjYXBzLgoKMjAxMi0wMi0yMiAwMjowMjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1ha2UgX25ld193cmFwcGVkIHRha2UgdXNlcl9kYXRhIGFuZCBub3RpZnkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb25maWd1cmUgYSBHRGVzdHJveU5vdGlmeSBhbmQgdXNlcl9kYXRhIGZvcgoJICBnc3RfbWVtb3J5X25ld193cmFwcGVkKCkgdGhpcyBhbGxvd3MgZm9yIG1vcmUgZmxleGlibGUgd3JhcHBpbmcgb2YgZm9yZWlnbgoJICBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMi0wMiAxMzo0NToyNSAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGF2b2lkIHRvdWNoaW5nIC5wbyBmaWxlcyBkdXJpbmcgJ21ha2UnCgkgIEEgc2ltcGxlIHdvcmthcm91bmQgdG8gZGVhbCB3aXRoIEdOVSBnZXR0ZXh0IGF1dG9tYWtlIGludGVncmF0aW9uCgkgIGZhaWxpbmcgdG8gZGVhbCB3aXRoIGdpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTIwNwoKMjAxMi0wMi0yMSAyMTowNjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IGRlZmF1bHQgdG8gc3luYy1zdHJlYW1zPXRydWUKCSAgSSB0aGluayB0aGlzIGlzIHRoZSBleHBlY3RlZCBiZWhhdmlvdXIsIGFuZCB3ZSBjb3VsZG4ndCBkbyB0aGlzCgkgIGluIDAuMTAgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNvIGNoYW5nZSBpdCBub3cuCgoyMDEyLTAyLTIxIDE2OjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBxdWV1ZSB1bml0IHRlc3QgYWZ0ZXIgcXVldWUgY2hhbmdlcwoKMjAxMi0wMi0yMSAxNjozODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBzb21lIG9sZCBjb2RlCgoyMDEyLTAyLTIxIDE2OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGhhbmRsZSBOVUxMIGNhbGxiYWNrcwoJICBXaGVuIHdlIGhhdmUgYSBtYXRjaGluZyBOVUxMIGNhbGxiYWNrLCBhbHNvIGNvbnNpZGVyIHRoZSAnY2FsbGJhY2snIG1hcnNoYWxsZWQsCgkgIHRoaXMgd2F5IGJsb2NraW5nIHByb2JlcyB3aXRoIGEgTlVMTCBjYWxsYmFjayBhY3R1YWxseSB3b3JrLgoKMjAxMi0wMi0yMSAxMjo1Mjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB3ZWlyZCBsaW5rIGJlaGF2aW91cgoJICBSZW1vdmUgdGhlIGxpbmsgZnVuY3Rpb25zIGFuZCBhbHdheXMgc3RhcnQgdGhlIHBhZCB0YXNrIG9uIHRoZSBzcmNwYWQuIElmCgkgIGFwcGxpY2F0aW9ucyBuZWVkIHRvIGF1dG9wbHVnIHRoZXkgY2FuIHB1dCBhIGJsb2NraW5nIHByb2JlIG9uIHRoZSBzcmNwYWQgbGlrZQoJICB0aGV5IHdvdWxkIHdpdGggYW55IG90aGVyIGVsZW1lbnQuCgoyMDEyLTAyLTIxIDEyOjUyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGhhbmRsZSBwdHMvZHRzCgoyMDEyLTAyLTIxIDEyOjQ2OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDEyLTAyLTIxIDEyOjQzOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWxzbyBkZWJ1ZyBkdHMvcHRzCgoyMDEyLTAyLTIxIDEyOjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogZGVidWcgcHRzIGFuZCBkdHMKCjIwMTItMDItMjEgMTI6MTI6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCjIwMTEtMTEtMjQgMTg6NDA6NDAgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFVuaXQgdGVzdCBmb3IgcXVldWUgc3JjIGNhcHMgbm90aWZpY2F0aW9uCgoyMDEyLTAyLTIwIDE0OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCB1c2VsZXNzIHNlZ21lbnQgdGVzdAoKMjAxMi0wMi0yMCAxNDoyOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGRvbid0IHVzZSBkdXJhdGlvbiBpbiBjbGlwcGluZwoJICBEb24ndCB1c2UgdGhlIGR1cmF0aW9uIGluIHRoZSBzZWdtZW50IGZvciBjYWxjdWxhdGluZyBjbGlwcGluZyB2YWx1ZXMuCgkgIFRoZSBkdXJhdGlvbiBpcyBleHByZXNzZWQgaW4gc3RyZWFtIHRpbWUgYW5kIGNsaXBwaW5nIGlzIGRvbmUgb24gdW5yZWxhdGVkCgkgIHRpbWVzdGFtcCB2YWx1ZXMuCgkgIFRoaXMgdXNlZCB0byBiZSBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgdGhhdCB1c2VkIHRoZSBzZWdtZW50IHN0cnVjdHVyZSB0bwoJICBpbXBsZW1lbnQgc2Vla2luZyBiZWNhdXNlIHRoZW4gdGhleSB3b3VsZCB1c2Ugc3RyZWFtLXRpbWUgZm9yIHRoZSBzZWdtZW50CgkgIHN0YXJ0L3N0b3AgdmFsdWVzIGFuZCB0aGUgZHVyYXRpb24gY291bGQgYmUgdXNlZCBhcyBhIGZhbGxiYWNrIHdoZW4gdGhlIHN0b3AKCSAgcG9zaXRpb24gd2FzIG5vdCBzZXQuIE5vdyB0aGF0IHRoZSBjb21wbGV0ZSBzZWdtZW50IGV2ZW50IGlzIHBhc3NlZCBiZXR3ZWVuCgkgIGVsZW1lbnRzIHdlIGNhbm5vdCBkbyB0aGlzIGFueW1vcmUgYmVjYXVzZSBzb21lIGVsZW1lbnRzIG1pZ2h0IHN0b3JlIHRoZQoJICBkdXJhdGlvbiBhbmQgc3RhcnQvc3RvcCB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgdGltZSBiYXNlcyBpbiB0aGUgc2VnbWVudC4KCjIwMTItMDItMjAgMTQ6MjI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkZWJ1ZyBzZWdtZW50IGR1cmF0aW9uIGFzIHdlbGwKCjIwMTItMDItMjAgMTE6NDY6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY29weSBtZXRhZGF0YSB3aGVuIHVzaW5nIGEgcG9vbAoJICBhbHNvIGNvcHkgdGhlIG1ldGFkYXRhIHdoZW4gd2UgYWxsb2NhdGVkIGEgbmV3IGJ1ZmZlciBmcm9tIGEgcG9vbAoKMjAxMi0wMS0yNiAwMzowMjo0OCAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldHRpbWVwYWNrZXQ6IGZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcgaW4gZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDEyLTAyLTE4IDAxOjA0OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtb3JlIGRvY3MKCjIwMTItMDItMTcgMTU6NTM6NTggLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgZG9jIGZpeHVwcwoKMjAxMi0wMi0xNyAxNTowOTo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTW92ZSB2YXJpYWJsZSBhbmQgYXNzaWdubWVudCB0byB3aGVyZSBpdCdzIG5lZWRlZAoKMjAxMi0wMi0xNyAxNTowOTowNiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIHJldHVybiB2YWx1ZSBvZiBkZWNpZGVfYWxsb2NhdGlvbiB2bWV0aG9kCgkgIElmIGl0IGZhaWxzLCBwcm9wZXJseSBwcm9wYWdhdGUgdGhlIGVycm9yCgoyMDEyLTAyLTE3IDE1OjA4OjMyIC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUmVtb3ZlIHVzZWxlc3MgYXNzaWdubWVudAoKMjAxMi0wMi0xNyAxNTowNzo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEdyYWNlZnVsbHkgaGFuZGxlIE5VTEwgR3ZhbHVlCgkgIEF2b2lkcyB1bnJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcgoKMjAxMi0wMi0xOCAwMDowMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNvbWUgZXJyb3JzIGNyaXRpY2FsCgkgIFdoZW4gd2UgaGF2ZSBubyBjaGFpbiBmdW5jdGlvbiBvciB3aGVuIHdlIGFyZSBvcGVyYXRpbmcgdGhlIHBhZCBpbiB0aGUgd3JvbmcKCSAgbW9kZSwgZW1pdCBhIGNyaXRpY2FsIGluc3RlYWQgb2YgcG9zdGluZyBhbiBlcnJvciBtZXNzYWdlLiBUaGlzIGlzIGNlcnRhaW5seSBhCgkgIHByb2dyYW1taW5nIGVycm9yIGFuZCB3ZSBjYW5ub3QgYWx3YXlzIHBvc3QgYSBtZXNzYWdlIChsaWtlIHdoZW4gdGhlIHBhZCBoYXMgbm8KCSAgcGFyZW50KQoKMjAxMi0wMi0xOCAwMDowMzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsc28gZGVidWcgcG9zaXRpb24gb2Ygc2VnbWVudAoKMjAxMi0wMi0xNyAyMzo1OToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTItMDItMTcgMTE6MDI6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4yID09PQoKMjAxMi0wMi0xNyAxMTowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEuMgoKMjAxMi0wMi0xNSAxNzoxMjowOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHR3ZWFrIHNvbWUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMi0xNSAxNzoxMTo1NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHNpbXBsaWZ5IGFuZCBpbXByb3ZlIGZyYW1lIHN0YXRlIGhhbmRsaW5nCgkgIFVzZSBhIGZyYW1lIGZsYWcgdG8gc2lnbmFsIHRvIHN1YmNsYXNzIGl0IHNob3VsZCByZXNldCBhbnkgcmV0YWluZWQKCSAgc3RhdGUgdy5yLnQuIGZyYW1lIHBhcnNpbmcgc2luY2UgdGhlIGZyYW1lIGJlaW5nIHBhc3NlZCBpcyAnbmV3JywKCSAgaS5lLiBub3QgcmVsYXRlZCB0byBwcmV2aW91c2x5IHBhc3NlZCBhbmQgcHJvY2Vzc2VkIGRhdGEuCgoyMDEyLTAyLTE1IDEzOjE1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGV2ZW50CgkgIEluIHRoZSB1bmxpa2VseSBjYXNlIHdoZXJlIHRoZSBzdWJjbGFzcyBzZXQgdGhlIGV2ZW50IGZ1bmN0aW9uIHRvIE5VTEwsIGRvbid0CgkgIGxlYWsgdGhlIGV2ZW50LgoKMjAxMi0wMi0xNSAxMjoxOToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBhY3RpdmF0aW9uIGNvZGUgbW9yZSBsaWtlIG90aGVyCgkgIE1ha2UgdGhlIHBhZCBhY3RpdmF0aW9uIGNvZGUgbG9vayBtb3JlIGxpa2Ugb3RoZXIgYWN0aXZhdGlvbiBjb2RlLgoJICBPbmx5IHN0YXJ0IHRoZSBzaW5rcGFkIHRhc2sgd2hlbiB3ZSBkZWNpZGUgdG8gYWN0aXZhdGUgaW4gcHVsbCBtb2RlLCB3aGVuIHdlCgkgIGxhdGVyIGFkZCBzcmNwYWQgcHVsbG1vZGUgdGhpcyB3aWxsIGJlIG5lZWRlZC4KCjIwMTItMDItMTUgMTI6MTg6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMToxMToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMDo1ODowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyYWNrIGNvbnN1bWVkIGlucHV0IHNpemUKCSAgLi4uIGFzIHVzZWQgYnkgc3Vic2VxdWVudCBpbnB1dCBkYXRhIHJhdGUgZXN0aW1hdGlvbiAoYW5kIHNlZWtpbmcpLgoKMjAxMi0wMi0xNSAxMDoxMTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2hhaW4gdXAgdG8gcGFyZW50IGZvciBkZWZhdWx0cwoJICBDaGFpbiB1cCB0byB0aGUgcGFyZW50IGluc3RlYWQgb2YgdXNpbmcgdGhlIEZBTFNFIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBldmVudAoJICBmdW5jdGlvbiAoYmVjYXVzZSBpdCdzIG90aGVyd2lzZSBpbXBvc3NpYmxlIHRvIHJldHVybiBhbiBlcnJvcikuCgoyMDEyLTAyLTE1IDEwOjEwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgd2hlbiBzdGFydGluZyBhIHRhc2sKCjIwMTItMDItMTQgMjA6MTc6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXZlcnQgImJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjM2MzQ5MGVmNWE5ZmU4ZDQxNDM2OWQyNGZjYWE2NWE5ZGZhODNhYy4KCjIwMTItMDItMTQgMTk6MzM6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZGVhZCBjb2RlIGFuZCBzdXBlcmZsdW91cyBsb29wIGxldmVsCgoyMDEyLTAyLTE0IDE5OjMzOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbW9kaWZ5IHJldmVyc2UgcGxheWJhY2sgaGFuZGxpbmcKCSAgLi4uIHNvIGFzIHRvIGFsbG93IHRoZSBwdXNoLW1vZGUgY2FzZSB0byBwcm92aWRlIGRhdGEgdG8gc3ViY2xhc3MKCSAgb24gYSBidWZmZXIgYnkgYnVmZmVyIGJhc2lzIChhcyBpbiByZWd1bGFyIGZvcndhcmQgY2FzZSksIHJhdGhlcgoJICB0aGFuIGFsbCBidWZmZXJzIG9mIGEgZnJhZ21lbnQgY2h1Y2tlZCB0b2dldGhlci4KCSAgQWxzbyByZWZhY3RvciBidWZmZXIgaGFuZGxpbmcgc29tZSBtb3JlLCBhbmQgYWRkIHNvbWUgZGVidWcuCgoyMDEyLTAyLTE0IDE5OjMzOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MKCjIwMTItMDItMTQgMTM6MjQ6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY2xlYW4gdXAgc3JjIHF1ZXJ5IGhhbmRsZXIKCjIwMTItMDItMTQgMTI6NTc6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcGFzcyByZXN1bHRzIGZyb20gYWN0aXZhdGlvbgoKMjAxMi0wMi0xNCAxMDozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTQgMTA6MzA6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxODoyMjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vZGlmeSBBUEkgdG8gYSBfZmluaXNoX2ZyYW1lIGJhc2VkIGFwcHJvYWNoCgkgIC4uLiB3aGljaCBhbGlnbnMgaXQgd2l0aCBvdGhlciBiYXNlY2xhc3MgaW4gdGhlIHdpbGQsIGFuZCBzaG91bGQgZ2l2ZQoJICBjb252ZXJ0ZXIgcGFyc2VycyBhIGJpdCBjbGVhbmVyIGZyZWVkb20uCgoyMDEyLTAyLTEzIDE4OjA5OjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGVzcGVjaWFsbHkgZm9yIGFsbC1rZXlmcmFtZSAoYXVkaW8pIGNhc2VzLgoKMjAxMi0wMi0xMyAxNjozMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiByZWZjb3VudCBhbmQgd3JpdGFiaWxpdHkKCSAgUmVuYW1lIF9pc193cml0YWJsZSgpIHdpdGggX2lzX2V4Y2x1c2l2ZSBiZWNhdXNlIHRoZSB3cml0YWJpbGl0eSBkb2VzIG5vdCBkZXBlbmQKCSAgb24gdGhlIGFtb3VudCBvZiByZWZlcmVuY2VzIHRvIHRoZSBtZW1vcnkgb2JqZWN0IGFueW1vcmUuCgkgIEFkZCBhY2Nlc3NvciBtYWNyb3MgZm9yIHRoZSBtZW1vcnkgZmxhZ3MuCgkgIFJlbmFtZSB0aGUgR3N0QnVmZmVyIF9wZWVrX21lbW9yeSgpIG1ldGhvZCB0byBfZ2V0X21lbW9yeSgpIGFuZCByZXR1cm4gYQoJICByZWZlcmVuY2UgdG8gdGhlIG1lbW9yeSBub3cgdGhhdCB3ZSBjYW4gZG8gdGhpcyB3aXRob3V0IGFmZmVjdGluZyB3cml0YWJpbGl0eQoJICBvZiB0aGUgbWVtb3J5IG9iamVjdC4gTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIG1ha2UgdGhpcyBmdW5jdGlvbiBtZXJnZSB0aGUKCSAgYnVmZmVyIG1lbW9yeS4KCSAgQWRkIG1ldGhvZHMgdG8gcmVwbGFjZSBtZW1vcnkgaW4gYSBidWZmZXIuIE1ha2Ugc29tZSBjb252aWVuY2UgbWFjcm9zIGZvciB0aGUKCSAgYnVmZmVyIG1lbW9yeSBmdW5jdGlvbnMuCgkgIEZpeCB1bml0IHRlc3RzLgoKMjAxMi0wMi0xMyAxNzoyMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxNToxODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGZpeCB0eXBvcwoKMjAxMi0wMi0xMiAyMToxNzo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IGFkZCBhIHBhcmFncmFwaCBhYm91dCB0aGUgU1RSRUFNIENPTkZJRyBldmVudCB0byB0aGUgZGVzaWduIGRvY3MKCjIwMTItMDItMTIgMjE6MDQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBfcGFyc2VfbnRoX3N0cmVhbV9jb25maWdfaGVhZGVyKCkgYW5kIF9wYXJzZV9zZXR1cF9kYXRhKCkgcmV0dXJuIGEgYm9vbGVhbgoJICBBcyB0aGV5IGNhbiBmYWlsIChvbmx5IG9uZSBvZiBzdHJlYW0gaGVhZGVycyBvciBzZXR1cCBkYXRhCgkgIGlzIHVzdWFsbHkgcHJlc2VudCkuCgoyMDEyLTAyLTEyIDIwOjUxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlbmFtZSBnc3RfZXZlbnRfe3NldCxwYXJzZX1fc3RyZWFtX2NvbmZpZ19jb2RlY19kYXRhKCkgdG8gX3NldHVwX2RhdGEoKQoJICBNb3JlIGdlbmVyaWMuCgoyMDEyLTAyLTEwIDE1OjAzOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xMCAxNDo1ODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgY2xlYW4gdXAgb2JqZWN0IGluaXQKCSAgTWFrZSBhbiBfaW5pdCBtZXRob2Qgd2hlcmUgdGhlIHBhcmVudCBtaW5pLW9iamVjdCBhbmQgb3RoZXIgZmllbGRzIGFyZQoJICBpbml0aWFsaXplZC4KCSAgQ2hlY2sgdGhhdCB0aGUgcGFzc2VkIHN0cnVjdHVyZSBkb2Vzbid0IGFscmVhZHkgaGF2ZSBhIHBhcmVudC4KCSAgVXNlIHRoZSBfbmV3X2N1c3RvbSAoKSBjb25zdHJ1Y3RvcnMKCjIwMTItMDItMDcgMTE6Mjg6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBiaXRyYXRlIG1lY2hhbmljcyBzaG91bGQgbm90IGRlYWwgd2l0aCBkdXJhdGlvbiB1cGRhdGUKCSAgLi4uIHNpbmNlIHRoYXQgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IF91cGRhdGVfZHVyYXRpb24sIG9yIHNob3VsZCBub3QgYmUgZG9uZQoJICBhbHRvZ2V0aGVyIGlmIHRoZSBkdXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IG5vbi1lc3RpbWF0ZWQgbWVhbnMuCgkgIEZpeGVzICM2Njk1MDIuCgoyMDEyLTAyLTEwIDEyOjQ1OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogcHVzaF9ldmVudCBkb2Vzbid0IHJldHVybiBhIGZsb3cgdmFsdWUgYWZ0ZXIgYWxsCgoyMDEyLTAyLTEwIDEyOjA1OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbGVuY2UgcHJvYmUgZGVidWcgYSBsaXR0ZQoKMjAxMi0wMi0xMCAxMToyNDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcGxlbWVudCBmYXN0ZXIgQUNDRVBUX0NBUFMgcXVlcnkKCjIwMTItMDItMTAgMTE6MDk6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogYWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZwoJICBBZGQgc29tZSBwZXJmb3JtYW5jZSBsb2dnaW5nIGZvciBjYXBzIGNvcHkgYW5kIHRoZSBzbG93IGRlZmF1bHQgYWNjZXB0Y2FwcwoJICBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0xNCAxOToxNjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGFuZCBpbXByb3ZlIGRvY3MKCjIwMTItMDItMDkgMDA6MTQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfZWxlbWVudF9jbGFzc19pbnN0YWxsX3N0ZF9wcm9wcygpCgkgIEl0J3Mgb25seSB1c2VkIGluIG9uZSBwbGFjZSAocnRtcCksIGFuZCB0aGVyZSBub3QgdmVyeSB3ZWxsLgoKMjAxMi0wMi0wOCAyMzo0Nzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzcmMsIGlkZW50aXR5LCBmYWtlc2luazogZG8gbm90IGdlbmVyYXRlIGxhc3QtbWVzc2FnZSB1cGRhdGVzIGJ5IGRlZmF1bHQKCSAgRGVmYXVsdCB0byBub3QgY3JlYXRpbmcgbG90cyBvZiBvdmVyaGVhZCBieSBkb2luZyBhIGNvdXBsZSBvZgoJICBnX3N0cmR1cF9wcmludGYoKS9nX2ZyZWUoKSBwZXIgYnVmZmVyIG9yIGV2ZW50IGp1c3QgdG8gZ2VuZXJhdGUKCSAgYSBsYXN0LW1lc3NhZ2UgdXBkYXRlIHRoYXQgcmFyZWx5IGFueW9uZSBsaXN0ZW5zIHRvLiBUaGlzIG1lYW5zCgkgIHRoYXQgeW91IG5lZWQgdG8gZW5hYmxlIHNpbGVudD10cnVlIGV4cGxpY2l0bHkgaW4gb3JkZXIgdG8gZ2V0CgkgIGxhc3QtbWVzc2FnZSBkdW1wcyBpbiBnc3QtbGF1bmNoIC12IG5vdy4gT24gdGhlIHVwc2lkZSwgcGVvcGxlCgkgIHdvbid0IGluYWR2ZXJ0ZW50bHkgZW5kIHVwIGJlbmNobWFya2luZyBnX3N0cmR1cF9wcmludGYoKQoJICBwZXJmb3JtYW5jZSBpbnN0ZWFkIG9mIGdzdHJlYW1lciBkYXRhIGhhbmRsaW5nIHBlcmZvcm1hbmNlIGFueQoJICBtb3JlLgoJICBNYXliZSB0aGUgc2lsZW50IHByb3BlcnR5IHNob3VsZCBiZSByZW5hbWVkIHRvIGVuYWJsZS1sYXN0LW1lc3NhZ2UKCSAgb3Igc29tZXRoaW5nIGxpa2UgdGhhdD8KCjIwMTItMDItMDggMTU6MTY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wMi0wOCAxNTozNDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiB1c2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiB0byBvcHRpb25hbGx5IGZvcndhcmQgcXVlcnkKCSAgLi4uIHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHBlZXIgdW5jb25kaXRpb25hbGx5IHdpdGggcG9zc2libHkgdW5kZXNpcmFibGUKCSAgb3V0Y29tZSBpbiBjYXNlIG9mIGUuZy4gU0NIRURVTElORyBxdWVyeS4KCjIwMTItMDItMDggMTU6MDM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhbiB1cCBhIGZldyBtaW5vciBleHRyYW5lb3VzIHRva2VucwoKMjAxMi0wMi0wNyAxMjo0ODo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjbG9zaW5nIHNlZ21lbnQgaGFuZGxpbmcKCjIwMTItMDItMDggMTQ6NDU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTA4IDE0OjMyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCByYWNlIGluIHBhZCBtb2RlIGNoYW5nZQoJICBGaXhlcyAjNjY4OTA5IGFuZCBwcmVzdW1hYmx5IGFsc28gIzY2OTQ4MwoKMjAxMi0wMi0wOCAxMjo1NzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlcnJvciB3aGVuIGFjdGl2YXRpb24gbW9kZSBpcyB3cm9uZwoJICBQb3N0IGFuIGVycm9yIHdoZW4gd2UgdHJ5IHRvIHB1c2ggb24gYSBwYWQgYWN0aXZhdGVkIGluIHB1bGwgbW9kZSBhbmQgcHVsbCBvbiBhCgkgIHBhZCBpbiBwdXNoIG1vZGUuCgoyMDEyLTAyLTA4IDA5OjMwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgbWV0aG9kIGRlY2xhcmF0aW9uIHRvbwoKMjAxMi0wMi0wNyAxMzo0MToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IHJlbW92ZSB1bmltcGxlbWVudGVkIHN0YXRzIHByb3BlcnR5IHdoaWxlIHdlIGNhbgoKMjAxMi0wMi0wNyAxMDo0NDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCSAgUmVtb3ZlIG91ciBjdXN0b20gbWFyc2hhbGxlci4KCSAgTWFrZSB0aGUgYnVmZmVyIGluIHRoZSBoYW5kb2ZmIHNpZ25hbCBzdGF0aWNfc2NvcGUgc28gdGhhdCBpdCBpcyBhY3R1YWxseQoJICB3cml0YWJsZS4KCjIwMTItMDItMDYgMDk6NDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMS0wNCAxNzoxMDoxNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtcmVnaXN0cnkKCSAgX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lciBpcyBvbmx5IGRlZmluZWQgd2hlbgoJICBHU1RfRElTQUJMRV9SRUdJU1RSWSBpcyBub3QgZGVmaW5lZC4KCSAgZ3N0cmVnaXN0cnkuYzogSW4gZnVuY3Rpb24gJ2dzdF9yZWdpc3RyeV9zY2FuX3BsdWdpbl9maWxlJzoKCSAgZ3N0cmVnaXN0cnkuYzoxMTMxOjg6IGVycm9yOiAnX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODQKCjIwMTItMDItMDIgMTc6MTg6MjIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlc2V0IHRoZSBFT1MgZGV0ZWN0aW9uIG1hY2hpbmVyeSBhZnRlciBzZW5kaW5nIGFuIEVPUyBtZXNzYWdlCgkgIFRoaXMgd2lsbCBhbGxvdyBkZXRlY3RpbmcgZnVydGhlciBFT1MsIGZvciBpbnN0YW5jZSBhZnRlciBsb29waW5nCgkgIGEgc3RyZWFtIHdpdGhvdXQgY2hhbmdpbmcgc3RhdGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4Mjg5CgoyMDEyLTAxLTA3IDIzOjAwOjEyIC0wNTAwICBSeWFuIExvcnRpZSA8ZGVzcnRAZGVzcnQuY2E+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBhbGxvdyBjYWxsaW5nIGZyb20gb3V0LW9mLXRyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY2NAoKMjAxMi0wMi0wMiAxNjo1OToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogcHJpbnQgY2FwcyBpbiBkdW1wCgoyMDEyLTAyLTAyIDE2OjA0OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0wMiAxNTo1Nzo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgZGVidWcgYW5kIHRyYWNlIGZvciBHc3RNZW1vcnkKCjIwMTItMDItMDIgMTU6NTU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZG9uJ3QgY2hlY2sgcmFuZG9tIHBvaW50ZXJzIGZvciBvYmplY3RzCgkgIE9ubHkgc2VlIGlmIHRoZSB0cmFjZWQgcG9pbnRlciBpcyBhIEdPYmplY3Qgd2hlbiBpdCB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZQoJICBzcGVjaWFsIG9mZnNldCBvZiAtMi4KCjIwMTItMDItMDIgMTU6NTQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVXBkYXRlIGRlYnVnIGNhdGVnb3JpZXMKCSAgUmVtb3ZlIHNvbWUgY2F0ZWdvcmllcyBtYXJrZWQgZm9yIGRlbGV0aW9uLgoJICBBZGQgYSBjYXRlZ29yeSBmb3IgR3N0TWVtb3J5LgoKMjAxMi0wMi0wMiAxNTo1MjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICByZW1vdmUgVFJBQ0VfTkFNRSBmcm9tIGhlYWRlcnMKCjIwMTItMDItMDIgMTM6MTc6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG5ldyB0ZXN0CgoyMDEyLTAyLTAyIDEzOjE1OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBkZW50aXR5OiByZW1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENvcnJlY3RseSBtYXJrIHBhc3N0aHJvdWdoIG9uIHRoZSBiYXNlY2xhc3Mgc28gdGhhdCBpdCBjYW4gY29ycmVjdGx5IGRvIHRoZQoJICBhbGxvY2F0aW9uIG9mIHRoZSBvdXRwdXQgYnVmZmVycy4KCSAgUmVtb3ZlIG91ciBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uIG5vdyB0aGF0IHRoZSBiYXNlY2xhc3MgaXMKCSAgc21hcnRlci4KCjIwMTItMDItMDIgMTM6MTA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgQ2xlYW4gdXAgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4KCSAgUmV1c2UgdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGl0IGlzIHdyaXRhYmxlIGFuZCB3aGVuIGRvaW5nIGFuCgkgIGluLXBsYWNlIGJ1dCBub24tcGFzc3Rocm91Z2ggdHJhbnNmb3JtLgoJICBNb3ZlIHRoZSBjb3B5LW1ldGFkYXRhIGZ1bmN0aW9uIGNhbGwgdG8gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBkZWZhdWx0CgkgIGZ1bmN0aW9uLiBJZiBzdWJjbGFzc2VzIGltcGxlbWVudCBhIGN1c3RvbSBwcmVwYXJlX291dHB1dF9idWZmZXIsIHRoZXkgbXVzdCBhbHNvCgkgIGNvcHkgdGhlIG1ldGFkYXRhIHRoZW1zZWx2ZXMuCgkgIFJlbW92ZSBhIHVzZWxlc3MgbWVtb3J5IGNvcHkgYmVjYXVzZSBwcmVwYXJlX291dHB1dF9idWZmZXIgYWxyZWFkeSBkaWQgdGhhdC4KCjIwMTItMDItMDIgMTI6MzI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBvbmx5IG1hcCB3aGVuIHVzaW5nIHRoZSBtZW1vcnkKCjIwMTItMDItMDIgMTI6MzI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEyLTAyLTAyIDEyOjMwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNpbXBsaWZ5IGNvZGUKCSAgV2UgYWxyZWFkeSBjaGVja2VkIHBhc3N0aHJvdWdoIGEgZmV3IGxpbmVzIGFib3ZlLgoKMjAxMi0wMi0wMiAxMjowNzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBzb21lIHBlcmZvcm1jZSBkZWJ1ZyBpbmZvCgkgIEFkZCBzb21lIFBFUkZPUk1BTkNFIGRlYnVnIGxpbmVzIHdoZXJlIHdlIGNvcHkgYW5kIGRvIG90aGVyIHN1Ym9wdGltYWwgdGhpbmdzLgoKMjAxMi0wMi0wMiAxMjowNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBmbGFnIHRvIHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCSAgQWRkIGEgZmxhZyB0byBmb3JjZSB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHRvIGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkKCSAgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIGl0LgoJICBSZW9yZGVyIHRoZSBwYWQgZmxhZ3MgYSBiaXQuCgoyMDEyLTAyLTAyIDAxOjMwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogcGFzcyBleHRlbnNpb25zIGFzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGluIGEgc2ltcGxlIHN0cmluZwoJICBGaXggYW5ub3lpbmcgZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQSBzaW1wbGUKCSAgc3RyaW5nIHdpdGggY29tbWEtc2VwYXJhdGVkIGV4dGVuc2lvbnMgd29ya3MganVzdCBhcyB3ZWxsIGFuZCBzYXZlcwoJICBsaW5lcyBvZiBjb2RlLCBjYXN0cywgcmVsb2NhdGlvbnMgYW5kIHVsdGltYXRlbHkga2l0dGVucy4KCjIwMTItMDEtMzEgMTc6NDE6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJhY2UgaW4gc3RhcnR1cAoJICBNYXJrIHJlbmVnb3RpYXRlIGJlZm9yZSBzdGFydGluZyB0aGUgcHVzaGluZyB0aHJlYWQuCgkgIERvIGFsc28gY2hlY2sgaWYgd2UgYXJlIHN0YXJ0aW5nIGluIHRoZSBnZXRfcmFuZ2UgZnVuY3Rpb24uCgoyMDEyLTAxLTMxIDE2OjI3OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgY3Jhc2ggb24gbWlzc2luZyB0ZW1wbGF0ZQoJICBTb21lIHJlcXVlc3QgcGFkcyBkb24ndCBoYXZlIGEgcGFkdGVtcGxhdGUgKG1vc3RseSB0aG9zZSBmcm9tIGVuY29kZWJpbikuIEF2b2lkCgkgIGNyYXNoaW5nIGluIHRoaXMgY2FzZS4KCjIwMTItMDEtMzEgMTI6MjA6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogY29uc3RydWN0dXJlcyBmb3IgY29udHJvbCBzb3VyY2VzIHJldHVybiBHc3RDb250cm9sU291cmNlCgkgIERvbid0IHJldHVybiB0aGUgc3BlY2lmaWMgdHlwZXMuIEluIG1vc3QgY2FzZXMgdGhlcmUgaXMgbm8gc3BlY2lmaWMgYXBpIHRoZXJlCgkgIGFueXdheS4KCjIwMTItMDEtMzEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGRvbid0IGRvIGxvZ2ljIGluIGdfYXNzZXJ0Li4uCgoyMDEyLTAxLTMwIDE5OjE3OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW5hbWUgY29udHJvbC1iaW5kaW5ncwoJICBnc3RfY29udHJvbF9iaW5kaW5nX3h4eCAtPiBnc3RfeHh4X2NvbnRyb2xfYmluZGluZyBmb3IgY29uc2lzdGVuY3kuCgoyMDEyLTAxLTMwIDE0OjQ4OjQ0IC0wMjAwICBKb8OjbyBQYXVsbyBQaXphbmkgRmxvciA8am9hb3BpemFuaUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEZpeGVzIHRoZSBsYWNrIG9mIGFuIGluY2x1ZGUgZGlyZWN0aXZlIGluIGdzdC9nc3RwcmVzZXQuaAoJICBJdCBibG9ja2VkIHRoZSBidWlsZCBvZiBleHRlcm5hbCBsaWJyYXJpZXMgZGVwZW5kaW5nIG9uIGdzdHJlYW1lci1jb3JlIChuYW1lbHksIGdzdHJlYW1lcm1tKS4KCSAgQ29tcGxldGUgYnVnIHJlcG9ydCBhdCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MDM2CgoyMDEyLTAxLTMwIDE4OjE3OjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogc2luayB0aGUgZmxvYXRpbmcgcmVmCgkgIGNvbnRyb2wgc291cmNlcyBjYW4gYmUgdXNlZCBvbiBzZXZlcmFsIGNvbnRyb2wgYmluZGluZ3MuCgoyMDEyLTAxLTMwIDE3OjE1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI7IHJlbW92ZSBJTl9DQVBTIGJ1ZmZlciBmbGFnCgkgIFRoZSBJTl9DQVBTIGJ1ZmZlciBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZSBIRUFERVIKCSAgZmxhZy4KCjIwMTItMDEtMzAgMTY6MDk6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczsgdXBkYXRlIGZvciBuZXcgYXBpCgoyMDEyLTAxLTMwIDE1OjU5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBwYXNzIGFsbG9jYXRvciBpbiBxdWVyeQoJICBQbGFjZSB0aGUgYWxsb2NhdG9yIG9iamVjdCBpbiB0aGUgQUxMT0NBVElPTiBxdWVyeSBpbnN0ZWFkIG9mIHRoZSBuYW1lLiBUaGlzCgkgIGFsbG93cyB1cyB0byBleGNoYW5nZSBhbGxvY2F0b3JzIHRoYXQgYXJlIG5vdCBpbiB0aGUgZ2xvYmFsIHBvb2wgb2YgYWxsb2NhdG9ycy4KCSAgVXBkYXRlIGVsZW1lbnRzIGZvciB0aGUgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZW1vcnkgdHlwZQoJICBBZGQgbWVtb3J5IHR5cGUgd2hlbiByZWdpc3RlcmluZyBtZW1vcnkgYWxsb2NhdG9ycy4gQWRkIGdldHRlciBmb3IgdGhlIG1lbW9yeQoJICB0eXBlLgoKMjAxMi0wMS0yOSAyMjo1ODo1MSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogUmVwdXNoIHN0aWNreSBldmVudHMgYWZ0ZXIgZGlzYWJsaW5nIGRyb3BwaW5nCgoyMDEyLTAxLTMwIDEzOjI4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGJveGVkIEdUeXBlIGZvciB0aGUgYWxsb2NhdG9yCgoyMDEyLTAxLTMwIDEzOjAyOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgdGhlIGFsbG9jYXRvciByZWZjb3VudGVkCgkgIEFkZCByZWZjb3VudGluZyB0byB0aGUgR3N0QWxsb2NhdG9yIG9iamVjdC4KCSAgUmVtb3ZlIGNvbnN0IGZyb20gZnVuY3Rpb25zIGJlY2F1c2UgdGhlIGFsbG9jYXRvciBpcyByZWZjb3VudGVkIG5vdy4KCSAgUmVuYW1lIHRoZSB2bWV0aG9kcyBmb3IgY29uc2lzdGVuY3kKCSAgRXhwb3NlIHRoZSBjb25zdHJ1Y3RvciBmb3IgR3N0QWxsb2NhdG9yIGFuZCBhZGQgYSBkZXN0cm95IG5vdGlmeSBmb3IgdGhlCgkgIHVzZXJfZGF0YS4gVGhpcyBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QKCSAgcmVnaXN0ZXJlZCBhbmQgc2hhcmVkIGdsb2JhbGx5IGFsb25nIHdpdGggdGhlIHBvc3NpYmlsaXR5IHRvIGRlc3Ryb3kgdGhlbQoJICBwcm9wZXJseS4KCSAgVXBkYXRlIGRlZnMgd2l0aCBuZXcgc3ltYm9scy4KCjIwMTItMDEtMzAgMTA6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBnYXAgZXZlbnQKCjIwMTItMDEtMzAgMTA6MDc6NTEgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSAgY29yZTogZG9uJ3Qgc2hpcCBnc3R0cmFjZS5oIHByaXZhdGUgaGVhZGVyCgkgIEluY2x1ZGUgaXQgZXhwbGljaXRlbHkgaW4gZ3N0LmMgYW5kIG5vIGxvbmdlciBpbmNsdWRlIGl0IGluIGdzdC5oLgoJICBUaGF0IGhlYWRlciB3YXMgbWFkZSBwcml2YXRlIGluIDE5NjliOTQyNjdiNGYzNzdlYTI2NjM4NzZhZTg3MjA3MTc4ODk2OTMuCgoyMDEyLTAxLTI4IDE4OjUwOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogcmVxdWlyZSBhIHZhbGlkIGR1cmF0aW9uIGZvciB0aGUgR0FQIGV2ZW50CgoyMDEyLTAxLTI4IDE4OjQ5OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdCgpCgoyMDEyLTAxLTI3IDE4OjU3OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBhZGQgc29tZSAob3V0KSBhbm5vdGF0aW9ucyBmb3Igc3RyZWFtIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zCgoyMDEyLTAxLTI3IDE4OjU2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3RvciBhbmQgcGFyc2UgZnVuY3Rpb24gZm9yIG5ldyBHQVAgZXZlbnQKCSAgKFdoYXRldmVyIHlvdSBkbywgZG9uJ3QgbWVudGlvbiB0aGUgZmlsbGVyIGV2ZW50LikKCjIwMTItMDEtMjcgMTg6Mzc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IEdTVF9FVkVOVF9TVFJFQU1fQ09ORklHIGlzIGltcGxlbWVudGVkIG5vdwoKMjAxMi0wMS0yNyAxNzo1Nzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIGNvZGVjIGRhdGEgLyBzdHJlYW0gaGVhZGVyIGNoYW5nZSBpbiBwb3J0aW5nIGRvY3MKCjIwMTItMDEtMjggMTQ6MzU6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgVXNlIG1hY3JvcyB0byByZWdpc3RlciBib3hlZCB0eXBlcyB0aHJlYWQgc2FmZWx5CgoyMDEyLTAxLTI4IDA4OjM4OjAzICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IFVwZGF0ZSBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlciB0byAwLjExIHN0eWxlIGNhcHMKCSAgUGFzcyB0aGUgZGVzaXJlZCBjYXBzIGV4cGxpY2l0ZWx5CgoyMDEyLTAxLTI3IDE5OjAwOjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggbWVtb3J5IGxlYWsKCjIwMTItMDEtMjcgMTg6NTM6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IERvbid0IHVucmVmIHBsdWdpbiBmZWF0dXJlcyBtdWx0aXBsZSB0aW1lcwoJICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKCkgdW5yZWZzIHRoZW0gdG9vLgoKMjAxMi0wMS0yNyAxNzo1MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN0cmVhbSBjb25maWcgZnVuY3Rpb25zIHRvIGRvY3MKCjIwMTItMDEtMjcgMTc6NDk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBzaW1wbGUtbGF1bmNoLWxpbmVzIGNvbXBpbGF0aW9uCgkgIERvbid0IHVzZSByZW1vdmVkIEFQSS4KCjIwMTItMDEtMjcgMTg6NDY6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogQWRkIHBhZGRpbmcgdG8gdGhlIHB1YmxpYyBzdHJ1Y3QKCjIwMTItMDEtMjcgMTc6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRvbid0IHJlZiBHVHlwZSBmb3IgcHJpdmF0ZSBlbnVtIGZvciB3aGljaCB0aGVyZSdzIG5vIEdUeXBlIGFueSBtb3JlCgoyMDEyLTAxLTI3IDE3OjQ1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBhbmQgcmVtb3ZlZCBBUEkKCjIwMTItMDEtMjcgMTc6Mzk6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGNvbnN0cnVjdCBhbmQgcGFyc2UgQVBJIGZvciB0aGUgbmV3IFNUUkVBTSBDT05GSUcgZXZlbnQKCSAgY29kZWMgZGF0YSBhbmQgc3RyZWFtIGhlYWRlcnMgZG9uJ3QgYmVsb25nIGludG8gY2Fwcywgc2luY2UgdGhleQoJICBhcmUgbm90IG5lZ290aWF0ZWQuIFdlIHNpZ25hbCB0aGVtIHVzaW5nIHRoZSBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGluc3RlYWQuCgoyMDEyLTAxLTI3IDE4OjI0OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB0cmFjZTogcmVtb3ZlIGZyb20gcHVibGljIGhlYWRlcnMKCjIwMTItMDEtMjcgMTI6MTY6MDUgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2N1bWVuYXRpb24gdHlwbwoKMjAxMi0wMS0yNyAxNzo1MDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRyYWNlOiByZXdvcmsgYWxsb2MgdHJhY2luZwoJICBSZW1vdmUgdHJhY2UsIHdlIHVzZSBkZWJ1ZyBsb2cgZm9yIHRoYXQKCSAgTWFrZSBhbGxvYyB0cmFjZSBzaW1wbGVyLCByZW1vdmluZyBzb21lIG1ldGhvZHMuCgkgIEFjdGl2YXRlIGFsbG9jIHRyYWNlIHdpdGggYSBHU1RfVFJBQ0U9MyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgRHVtcCBsZWFrZWQgb2JqZWN0cyBhdGV4aXQuCgkgIFByb3ZpZGUgYW4gb2Zmc2V0IGluIHRoZSBvYmplY3Qgd2hlcmUgdGhlIEdUeXBlIGNhbiBiZSBmb3VuZCBzbyB0aGF0IG1vcmUKCSAgdmVyYm9zZSBpbmZvIGNhbiBiZSBnaXZlbiBmb3Igb2JqZWN0cy4KCSAgUmVtb3ZlIC1UIG9wdGlvbiBmcm9tIGdzdC1sYXVuY2ggYmVjYXVzZSB0cmFjaW5nIGlzIG5vdyB0cmlnZ2VyZWQgd2l0aCB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDEyLTAxLTI1IDEyOjM1OjQzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhbnN3ZXIgY2FwcyBxdWVyaWVzIHdpdGggb3VyIHR5cGVmb3VuZCBjYXBzCgkgIFRoaXMgYXZvaWRzIG1lcmVseSBmb3J3YXJkaW5nIHRoZSBldmVudCB0byB0aGUgc2luaywgYW5kIGdldHRpbmcKCSAgc29tZXRoaW5nIHVzZWxlc3Mgc3VjaCBhcyBBTlkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc1NzEKCjIwMTItMDEtMjcgMTY6MTg6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IERvIHR5cGVmaW5kaW5nIGZyb20gYSBzZXBhcmF0ZSB0aHJlYWQgYW5kIG5vdCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24KCjIwMTItMDEtMjcgMTU6MzI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZW1vcnkgbGVhawoJICB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeSBvbiBlcnJvcnMuCgoyMDEyLTAxLTI3IDE1OjMyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdHJhY2U6IG1ha2UgYWxsb2MgdHJhY2Ugd29yayBmb3IgbWluaW9iamVjdCBhZ2FpbgoKMjAxMi0wMS0yNyAxNTowOTozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oCgoyMDEyLTAxLTI3IDE1OjAyOjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTW92ZSBwcml2YXRlIGZpZWxkcyBmcm9tIHRoZSBwdWJsaWMgc3RydWN0cyB0byBwcml2YXRlIHN0cnVjdHMKCSAgRml4ZXMgYnVnICM2Njg3NjQuCgoyMDEyLTAxLTI3IDEzOjA1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IG5vIGZhbmN5IHV0ZjggY2hhcnMgaW4gdGhlIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjUwOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogZml4IHNvbWUgbW9yZSBsZWFrcwoKMjAxMi0wMS0yNyAxMjozMzozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEZpeCBoYW5kbGluZyBvZiB0aGUgbmV3IHN0cmVhbS1zdGFydCBldmVudAoKMjAxMi0wMS0yNyAxMTozMjoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogYWRkIGEgZmV3IGNvbnN0cyB0byByZWFkIG9ubHkgZGF0YQoKMjAxMi0wMS0yNyAxMjoyMjo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgZ2kgYW5ub3RhdGlvbnMKCjIwMTItMDEtMjcgMTI6MTQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTAxLTI3IDEyOjEwOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBmaXggbGVha3MKCjIwMTItMDEtMjcgMTE6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYXZvaWQgbWVtb3J5IGxlYWsKCSAgVW5yZWYgdGhlIG9sZCBtZW1vcnkgaW4gbWFrZV9tYXBwZWQuCgkgIEFkZCBzb21lIGRlYnVnIGluZm8KCjIwMTItMDEtMjcgMTE6NDA6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgY2FwcyBsZWFrCgoyMDEyLTAxLTI3IDExOjAxOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHkvZmFrZXtzcmMsc2lua306IEluY2x1ZGUgZXZlbnQgdHlwZSBuYW1lIGluIHRoZSBkZWJ1ZyBvdXRwdXQKCjIwMTItMDEtMjcgMTA6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogTWFyayB0aGUgbmV3IEdBUCBldmVudCBhcyBub24tc3RpY2t5CgoyMDEyLTAxLTI3IDEwOjQ2OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRHJvcCB0aGUgc3RyZWFtLXN0YXJ0IGFuZCBzdHJlYW0tY29uZmlnIGV2ZW50cyBieSBkZWZhdWx0CgoyMDEyLTAxLTI3IDEwOjQyOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudCByZWJhc2UKCjIwMTItMDEtMjcgMTA6NDE6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgdGhlIHN0cmVhbS1zdGFydCBldmVudCBhcyBmaXJzdCBldmVudCBldmVyCgoyMDEyLTAxLTI3IDEwOjMwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgY29uc3RydWN0b3IgYW5kIGRvY3MgZm9yIHRoZSBuZXcgU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTAxLTI2IDE5OjI4OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHVzZXIgZGF0YSB0byBjaGFpbiBmdW5jdGlvbnMKCjIwMTItMDEtMjYgMTg6NTY6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHR5cG8KCjIwMTItMDEtMjYgMTg6MjI6MjkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVzdG9yZSBkYXRlL3RpbWUgdHlwZSB0byBHc3REYXRlVGltZQoJICBUaGUgY2hhbmdlIHRvIEdEYXRlVGltZSB3YXMgYXBwYXJlbnRseSBhY2NpZGVudGFsLCBhbmQKCSAgYnJlYWtzIHBsdWdpbnMgdHJ5aW5nIHRvIGZlZWQgYSBHc3REYXRlVGltZSB0byB0aGUgdGFnbGlzdCBBUGkuCgoyMDEyLTAxLTI2IDE5OjEyOjE2ICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBnc3Q6IGdzdF9wYXJzZV9sYXVuY2ggbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UKCjIwMTItMDEtMjYgMTg6NTM6NTEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFNldCAidHJhbnNmZXIgbm9uZSIgdG8gcmV0dXJuIHZhbHVlcyB0aGF0IHNob3VsZG4ndCBiZSBmcmVlZAoKMjAxMC0xMi0wNCAxODo1Mzo1NSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBjYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjAxMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyNTYyCgoyMDEyLTAxLTI2IDE2OjMxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIHNvbWUgbW9yZSBldmVudHMKCSAgQWRkIHNvbWUgbW9yZSBuZXcgZXZlbnRzIHRoYXQgd2Ugd2FudCB0byBpbXBsZW1lbnQgbGF0ZXIuCgoyMDEyLTAxLTI2IDE1OjE1OjIxICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGdzdG1lbW9yeTogYWRkIG1pc3NpbmcgcGFyYW1ldGVyCgoyMDEyLTAxLTI2IDE0OjU3OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAxLTI2IDE0OjU1OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFVzZSBjb3JyZWN0IHNpemUgZm9yIGNhcHMgYWxsb2NhdGlvbgoKMjAxMi0wMS0yNiAxNDo0NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBNYWtlIEdzdENhcHMgcHVibGljIHN0cnVjdCBtb3JlIG9wYXF1ZSBieSBtb3ZpbmcgdGhlIHByaXZhdGUgcG9pbnRlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0yNiAxNDozMzoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGNhcHM6IFN0b3JlIGEgcG9pbnRlciB0byBHc3RDYXBzIGluIEdzdFN0YXRpY0NhcHMKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBoYWNraXNoIHN1YmNsYXNzIG9mIEdzdENhcHMsIHdoaWNoIGFsc28KCSAgaGFkIHNvbWUgdGhyZWFkLXNhZmV0eSBwcm9ibGVtcy4KCjIwMTItMDEtMjYgMTM6MjQ6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IHJlbW92ZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4CgkgIFdlIGRvbid0IHVzZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4IGFueW1vcmUsIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgYXJlIGhvdyB0aGV5CgkgIHdlcmUgc2VudCBpbml0aWFsbHkuCgkgIEFkZCBzb21lIG1vcmUgcGFkZGluZyBiZXR3ZWVuIHRoZSBldmVudCBudW1iZXJzIHNvIHRoYXQgd2UgY2FuIGluc2VydCBuZXcgZXZlbnRzCgkgIGxhdGVyLgoKMjAxMi0wMS0yNiAxMDo0ODowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZG9jczogcmVtb3ZlIGNvbGxlY3RwYWRzIGZyb20gZG9jcywgZml4IGJ1aWxkCgoyMDEyLTAxLTI2IDEwOjIyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBHc3RWYWx1ZUFycmF5IGluc3RlYWQgb2YgR1ZhbHVlQXJyYXkgZm9yIHN0b3Jpbmcgb3B0aW9ucyBpbiB0aGUgY29uZmlnCgkgIFNpbmNlIEdWYWx1ZUFycmF5IGlzIGRlcHJlY2F0ZWQuIEl0J3MgYWxsIG9ubHkgaW50ZXJuYWwgYW55d2hlcmUgaGVyZSwKCSAgYnV0IGlmIHdlIHVzZSBHc3RWYWx1ZUFycmF5IHRoZSBvcHRpb24gc3RyaW5ncyBnZXQgc2VyaWFsaXplZCBuaWNlbHkKCSAgaW4gdGhlIGRlYnVnIGxvZ3MgYXQgbGVhc3QuCgoyMDEyLTAxLTI2IDA5OjI2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogc3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIEdfVFlQRV9WQUxVRV9BUlJBWQoJICBGb3Igbm93IGFueXdheS4KCjIwMTItMDEtMjYgMTE6NDI6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNvbGxlY3RwYWRzMjogVW5pdCB0ZXN0IGlzIHZhbGdyaW5kIGNsZWFuIG5vdwoKMjAxMi0wMS0yNiAxMTo0MDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCB1bml0IHRlc3QgdG8gYWN0dWFsbHkgd29yayBhZ2FpbgoKMjAxMi0wMS0yNiAxMTozODoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgY29sbGVjdHBhZHMyOiBQb3J0IGNvbGxlY3RwYWRzIHVuaXQgdGVzdCB0byBjb2xsZWN0cGFkczIKCSAgQ3VycmVudGx5IGZhaWxzIGJ1dCByZWFsbHkgc2hvdWxkbid0LgoKMjAxMi0wMS0yNiAxMTowMToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwcm9iZSBpZCB0byB0aGUgaW5mbwoKMjAxMi0wMS0yNiAxMDo0ODo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogUmVtb3ZlIG9sZCBjb2xsZWN0cGFkcwoJICBTdGlsbCBoYXZlIHRvIHJlbmFtZSBjb2xsZWN0cGFkczIgdG8gY29sbGVjdHBhZHMgYmVmb3JlIHRoZSAxLjAgcmVsZWFzZS4KCjIwMTItMDEtMjYgMTA6MzA6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBEb24ndCBmb3J3YXJkIENBUFMgZXZlbnQgYXV0b21hdGljYWxseQoKMjAxMi0wMS0yNSAxODo0OToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IEZpeCBoYW5kbGluZyBvZiB0aGUgZXZlbnQgZnVuY3Rpb24gYW5kIGRvY3VtZW50IGl0CgkgIFRoZSBldmVudCBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byBmb3J3YXJkL2Ryb3AgdGhlIGV2ZW50IGluIGFueSBjYXNlCgkgIG5vdyBhbmQgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCjIwMTItMDEtMjUgMTg6MzY6NDIgKzAxMDAgIEphc29uIERlUm9zZSA8amRlcm9zZUBub3ZhY3V0LmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBnc3RfcGFkX3RlbXBsYXRlX25ldygpIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE5OjQxOjAzICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RfcGlwZWxpbmVfbmV3IG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlLgoKMjAxMi0wMS0yNSAxNzoyNzo0MCArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24gcmV0dXJucyBhIG5ldyByZWZlcmVuY2UKCjIwMTItMDEtMjUgMTU6MTQ6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB1c2UgR0FycmF5IGZvciBpbnRlcm5hbCBhcnJheXMgaW5zdGVhZCBvZiB0aGUgbm93LWRlcHJlY2F0ZWQgR1ZhbHVlQXJyYXkKCjIwMTItMDEtMjUgMTY6MDE6MDIgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IENoYW5nZWQgaW50cm9zcGVjdGlvbiB0cmFuc2ZlciBmbGFnIHRvICh0cmFuc2ZlciBmbG9hdGluZykKCSAgZm9yIGdzdF9wYWRfbmV3LCBnc3RfZ2hvc3RfcGFkX25ldyBhbmQgZ3N0X2Jpbl9uZXcgY29uc3R1Y3RvcnMuIEZpeGVzCgkgIHNlZ2ZhdWx0cyBkdWUgb2YgdHJhbnNmZXIgZnVsbCBhbmQgZmxvYXRpbmcgcmVmIHByb2JsZW0uCgoyMDEyLTAxLTI1IDEzOjQ2OjEzICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDYzYmMwIHRvIDdmZGE1MjQKCjIwMTItMDEtMjQgMTQ6Mzc6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgZmxhZ3MgdG8gdGhlIG1hcGluZm8KCjIwMTItMDEtMjAgMTY6MTA6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSBndWludDggKiBmb3IgZWFzeSB1c2FnZQoKMjAxMi0wMS0yMCAxNDo1Njo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY3JlYXRlIG1hcHBlZCBtZW1vcnkKCSAgQWRkIGEgbWV0aG9kIHRvIGNyZWF0ZSBhIEdzdE1lbW9yeSB3aXRoIHRoZSBkZXNpcmVkIG1hcHBpbmcuIE1ha2VzIGEgY29weSBvZiB0aGUKCSAgbWVtb3J5IGlmIGl0IGlzIGN1cnJlbnRseSBpbiB1c2UuCgoyMDEyLTAxLTIwIDE0OjIzOjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSAgQWRkIG5ldyBHc3RNYXBJbmZvCgkgIFVzZSBhIHN0cnVjdHVyZSB0byBob2xkIGluZm8gYWJvdXQgdGhlIG1hcHBpbmcuIFRoZSBhcHBsaWNhdGlvbiB0aGVuIGtlZXBzIHRyYWNrCgkgIG9mIHRoaXMgc3RhdGUgYW5kIHdlIGNhbiB1c2UgaXQgdG8gdW5tYXAgdGhlIG1lbW9yeSBhZ2FpbiBsYXRlci4KCjIwMTItMDEtMjUgMTE6NDk6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nczogbmFtZSBpcyBub3QgYSBjb25zdAoJICBJdCBnZXRzIG1vZGlmaWVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUgb2JqZWN0LiBGaXhlcyBidWlsZC4KCjIwMTItMDEtMjUgMTE6NDM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMS0yNSAxMTozNzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhNTkwMTYgdG8gYzQ2M2JjMAoKMjAxMi0wMS0yNCAyMTo1MzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgY29udHJvbC1iaW5kaW5nIGNvbnN0cnVjdGlvbgoJICBUaGlzIGlzIG5vdyBiaW5kaW5ncyBmaXJlbmRseSBhcyBfbmV3IGlzIGp1c3QgYSBjbGFzc2ljIGMgY29udmVuaWVuY2UgYW5kIGFsbAoJICB0aGUgd29yayBpcyBkb25lIGluIGEgY29uc3RydWN0b3IuIEFzIGEgc2lkZSBlZmZlY3QgX25ldyBuZXZlciBmYWlscy4KCSAgRml4IHRoZSB0ZXN0cy4KCjIwMTItMDEtMjQgMTQ6NDA6MzMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBoYW5kbGUgTlVMTCBkZXN0IGluIGJpdG1hc2svYml0bWFzayBpbnRlcnNlY3Rpb24KCjIwMTEtMTItMDEgMTI6NDM6MDMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBhZGQgYmFzaWMgdGVzdHMgZm9yIG5ldyBzdGVwcGVkIHJhbmdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE0OjQ1OjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IGFkZCBzdGVwcGVkIHJhbmdlcwoJICBpbnQgYW5kIGludDY0IHJhbmdlcyBjYW4gbm93IGhhdmUgYW4gb3B0aW9uYWwgc3RlcCAoZGVmYXVsdGluZyB0byAxKS4KCSAgTWVtYmVycyBvZiB0aGUgcmFuZ2UgYXJlIHRob3NlIHZhbHVlcyB3aXRoaW4gdGhlIG1pbiBhbmQgbWF4IGJvdW5kcwoJICB3aGljaCBhcmUgYSBtdWx0aXBsZSBvZiB0aGlzIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMzAgMTc6NTg6MDcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogYWRkIGEgNjQgYml0IHZlcnNpb24gb2YgR0NEIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMDQgMTg6MjY6MTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBlbmZvcmNlIGlkZW50aWNhbCBiYXNpYyB0eXBlcyBpbiBsaXN0cywgYXJyYXlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI1ODcKCjIwMTItMDEtMjMgMTA6MzI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGJlbmNobWFya3M6IGFkZCBtaXNzaW5nIGluY2x1ZGUKCjIwMTItMDEtMjMgMTE6MDM6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogcmVnaXN0ZXIgYWxsIHByb3BlcnRpZXMgaW4gb25lIGdvCgoyMDEyLTAxLTIzIDExOjAyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgYXBpIGRlc2lnbgoKMjAxMi0wMS0yMSAyMDowMzo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogYWxsb3cgZGlmZmVyZW50IGNvbnRyb2xiaW5kaW5ncwoJICBNYWtlIGNvbnRyb2xiaW5kaW5nIGFuIGFic3RyYWN0IGJhc2VjbGFzcy4gTW92ZSBpbXBsZW1lbnRhdGlvbiB0byBjb250cm9sLQoJICBiaW5kaW5nLWRpcmVjdCBhbmQgYWRkIGEgY29udHJvbC1iaW5kaW5nLWFyZ2IuIEFkZCBhbiBleGFtcGxlLgoKMjAxMi0wMS0yMiAyMjo0NDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXBsYWNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IHdpdGggR011dGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyMDcKCjIwMTItMDEtMjIgMTU6MjM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGZpeCB0eXBvIGluIGdzdC1pbnNwZWN0IGRlYnVnIG1lc3NhZ2UKCjIwMTItMDEtMjIgMDE6Mzk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVzZSBHTGliJ3MgdHlwZSBmb3IgR0Vycm9yIGluc3RlYWQgb2Ygb3VyIG93bgoJICBXZSBpbnRyb2R1Y2VkIG91ciBvd24gd2hlbiBHTGliIGRpZG4ndCB3YW50IHRvIGFkZCBhIEdUeXBlCgkgIGZvciBHRXJyb3IuIEJ1dCBub3cgdGhhdCB0aGVyZSBpcyBvbmUsIHdlIGNhbiB1c2UgR0xpYidzCgkgIHVuY29uZGl0aW9uYWxseSBhbmQgcmVtb3ZlIG91ciB2ZXJzaW9uLgoKMjAxMi0wMS0yMiAwMToyNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogZml4IHNpemUgb2YgYXRvbWljIGNvdW50ZXIKCjIwMTItMDEtMjIgMDE6MjU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICBVc2UgcmVjZW50IEdMaWIgQVBJIHVuY29uZGl0aW9uYWxseSBub3cgdGhhdCB3ZSBkZXBlbmQgb24gdGhlIGxhdGVzdCBHTGliCgoyMDEyLTAxLTIyIDAwOjQyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IEFQSSBpbiAoc3RpbGwpIHB1YmxpYyBoZWFkZXIKCjIwMTItMDEtMjEgMTI6NTY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IHNldCBHSV9UWVBFTElCX1BBVEggaW4gZ3N0LXVuaW5zdGFsbGVkCgkgIFNvIHB5Z2kgZmluZHMvdXNlcyB0aGUgbG9jYWwgZy1pIGZpbGVzLgoKMjAxMi0wMS0yMCAxODowNjowNCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBsaWJjaGVjazogbWFrZSB0aGUgZGVmaW5pdGlvbiBvZiBmYWlsIG5vdCBmYWlsIHdpdGggbm9uIEdDQyBjb21waWxlcnMKCjIwMTItMDEtMjAgMTQ6NDI6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGltcHJvdmUgY29udHJvbCBiaW5kaW5nIGhhbmRsaW5nCgkgIENoYW5nZSBfc2V0X2NvbnRyb2xfYmluZGluZyB0byBfYWRkX2NvbnRyb2xfYmluZGluZyBhbmQgdGFrZSBvd25lcnNoaXAuIEFkZCBhCgkgIF9yZW1vdmVfY29udHJvbF9iaW5kaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMS0yMCAwODoyNzo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW1vdmUgY29udmVuaWVuY2UgYXBpIGZvciBjb250cm9sIHNvdXJjZXMKCSAgVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBraW5kcyBvZiBjb250cm9sLWJpbmRpbmdzLgoKMjAxMi0wMS0xOSAxNToxNzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgTlVMTCBmcm9tIGdldGNhcHMKCSAgSWYgdGhlIGdldGNhcHMgZnVuY3Rpb25zIHJldHVybnMgTlVMTCwgcmV0dXJuIEZBTFNFIGZyb20gdGhlIENBUFMgcXVlcnkuCgoyMDEyLTAxLTE5IDE1OjE3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIGxpc3RzIGNvcnJlY3RseQoKMjAxMi0wMS0xNyAxNjoyMzozMyAtMDUwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBhZGQgLS1kaXNhYmxlLWZhdGFsLXdhcm5pbmdzIGNvbmZpZ3VyZSBvcHRpb24KCSAgSXQncyByZWFzb25hYmxlIHRvIGJ1aWxkIGZyb20gZ2l0LCBidXQgbm90IHdhbnQgdG8gdHVybiBhbGwgY29tcGlsZXIKCSAgd2FybmluZ3MgaW50byBmYXRhbCBlcnJvcnMuICBGb3IgZXhhbXBsZSwgR05PTUUncyBqaGJ1aWxkIGhlbHBzIHBlb3BsZQoJICBnZXQgbmV3ZXIgdmVyc2lvbnMgb2Ygc29mdHdhcmUgdGhhbiBjYW1lIGZyb20gdGhlaXIgZGlzdHJpYnV0aW9uLCBidXQKCSAgdGhleSBtYXkgbm90IG5lY2Vzc2FyaWx5IHdhbnQgdG8gaGFjayBvbiBpdC4KCjIwMTItMDEtMTkgMTI6NTc6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICB0ZXN0czogY2xvY2tzdHJlc3M6IHBlcmZvcm0gc2FuaXR5IGNoZWNrIG9uIHRocmVhZCBudW1iZXIgYXJndW1lbnQKCjIwMTItMDEtMTkgMDk6MTI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeSBpbXByb3ZlbWVudHMKCSAgTWFrZSB0aGUgbWVtb3J5IG9iamVjdCBzaW1wbHkgbWFuYWdlIHRoZSBkYXRhIHBvaW50ZXIgYW5kIHRoZSBtYXhzaXplIGFuZCBtb3ZlCgkgIHRoZSBvZmZzZXQgYW5kIHNpemUgaGFuZGxpbmcgdG8gY29tbW9uIGZ1bmN0aW9uYWxpdHkuCgkgIFVzZSB0aGUgUkVBRE9OTFkgZmxhZyB0byBzZXQgYSByZWFkb25seSBsb2NrLgoJICBSZW1vdmUgdGhlIGRhdGEgYW5kIHNpemUgZmllbGRzIGZyb20gdGhlIHVubWFwIG1ldGhvZC4gV2UgbmVlZCBhbiBleHBsaWNpdAoJICByZXNpemUgb3BlcmF0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIHVubWFwIGZ1bmN0aW9uLgoJICBNYWtlIGludGVybmFsIGhlbHBlciBsb2NrIGFuZCB1bmxvY2sgZnVuY3Rpb25zLgoJICBVcGRhdGUgdW5pdCB0ZXN0IGFuZCB1c2VycyBvZiB0aGUgb2xkIEFQSS4KCjIwMTItMDEtMTkgMTE6NDM6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBidXMgZG9jcwoKMjAxMi0wMS0xMyAxNzo0NToxNyAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGFkZCB2aXN1YWwgc3R1ZGlvIElERSBmaWxlcyBhbmQgT1MgWCAuRFNfU3RvcmUgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Nzg5OQoKMjAxMi0wMS0xOSAwOToyNzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgVXBkYXRlIGZvciBuZXcgZ3RocmVhZCBBUEkKCjIwMTItMDEtMTggMTY6NTI6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IEdJTyBjaGVjayBpcyBub3cgaW4gZ3N0LWdsaWIyLm00CgoyMDEyLTAxLTE4IDE2OjQ1OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDgwNzE4NyB0byAyYTU5MDE2CgoyMDEyLTAxLTE4IDE2OjE0OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4zMS4xMCBhbmQgaW1wcm92ZSBHSU8gY2hlY2sKCjIwMTItMDEtMTggMTI6MDc6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgY2FsbCA6OnByb3Bvc2VfYWxsb2NhdGlvbiB2ZnVuYwoJICBBbmQgb25seSBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGlmIHdlJ3JlIHdvcmtpbmcgaW4KCSAgcGFzc3Rocm91Z2ggbW9kZSBpZiBubyA6OnByb3Bvc2VfYWxsb2NhdGlvbiBpcyBpbXBsZW1lbnRlZC4KCSAgSW4gcGxhY2UgYnVmZmVyIHRyYW5zZm9ybWF0aW9ucyB3aWxsIGNoYW5nZSB0aGUgYnVmZmVyCgkgIGNvbnRlbnQgYW5kIHJlcXVpcmUgZXhwbGljaXQgaGFuZGxpbmcgb2YgYWxsIG1ldGFzLgoKMjAxMi0wMS0xOCAxMTozNzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBieSBkZWZhdWx0CgkgIFRoaXMgaGFzIHRvIGJlIGhhbmRsZWQgZXhwbGljaXRlbHkgYnkgZWxlbWVudHMgdG8KCSAgbWFrZSBzdXJlIHRoYXQgdGhleSBzdXBwb3J0IGFsbCB0aGUgbWV0YXMgcGFzc2VkCgkgIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBNZXRhcyBoYXZlIHRvIHN1cHBvcnRlZCBleHBsaWNpdGVseSwgb3RoZXJ3aXNlIHRoZQoJICBxdWVyeSB3aWxsIGZhaWwuIEFsbCBlbGVtZW50cyBpbiBhIGNoYWluIG5lZWQgdG8KCSAgc3VwcG9ydCBhIHNwZWNpZmljIG1ldGEgdG8gYWxsb3cgaXRzIHVzYWdlLgoKMjAxMi0wMS0xOCAwMTozMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdDogc3VwcHJlc3Mgc29tZSBtb3JlIGRlcHJlY2F0ZWQgdGhyZWFkIGFwaSB1bnRpbCB3ZSBmaXggaXQgdXAKCSAgV2hpY2ggc2hvdWxkIGJlIHNvb24sIHNpbmNlIHdlIGFscmVhZHkgZGVwZW5kIG9uIGFuIHVuc3RhYmxlIGdsaWIgZm9yIC1iYXNlLgoKMjAxMi0wMS0xOCAwMToxODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgYXBpIGNoYW5nZXMKCjIwMTItMDEtMTcgMjM6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgIC0tZGlzYWJsZS1uZXQgb3B0aW9uIGFuZCBhbHdheXMgYnVpbGQgbGliZ3N0bmV0CgkgIEl0IHNob3VsZCB3b3JrIGV2ZXJ5d2hlcmUgbm93LCBhbmQgLWJhc2UgYW5kIC1nb29kIGRlcGVuZCBvbgoJICB0aGUgR3N0TmV0TWV0YSBBUEkuCgoyMDEyLTAxLTE3IDIzOjUyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IHJlbW92ZSBzb21lIHNvY2tldCBjcnVmdAoKMjAxMC0wNS0wNSAxNjozMzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogcG9ydCB0byB1c2UgZ2lvJ3MgbmV0d29ya2luZyBBUEkKCSAgU29tZSB3YXJ0cyBzdGlsbCwgYnV0IGl0J3MgYSBzdGFydC4KCjIwMTItMDEtMTcgMTY6NTA6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBHSU8gdG8gdGhlIGdpLXNjYW5uZXIgcGFja2FnZXMKCjIwMTItMDEtMTYgMTM6MzQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICBuZXRhZGRyZXNzbWV0YTogVXNlIEdTb2NrZXRBZGRyZXNzIGluc3RlYWQgb2Ygb3VyIG93biB3cmFwcGVyIHR5cGUKCjIwMTItMDEtMTYgMTU6NTc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSB3cml0YWJpbGl0eSBjaGVjayBpbnRvIGEgbWV0aG9kCgkgIFVzZSBhIG1ldGhvZCB0byBjaGVjayBmb3Igd3JpdGFiaWxpdHkgaW5zdGVhZCBvZiBhIG1hY3JvIHNvIHRoYXQgd2UgY2FuIGNoYW5nZQoJICB0aGUgaW1wbGVtZW50YXRpb24gbW9yZSBlYXNpbHkuCgoyMDEyLTAxLTE2IDEyOjI0OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogaW1wcm92ZSBtZW1vcnkgdGVzdAoKMjAxMi0wMS0xNiAxMjoyNDoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTItMDEtMTEgMTA6NTk6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGVuc3VyZSBhdXRvbWFnaWMgX3VubWFwIGluIHNvbWUgbW9yZSBjYXNlcwoKMjAxMS0xMS0xNSAxNzo0Mjo1NiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXV0b21hdGljYWxseSB1bm1hcCBvbiBjbGVhcmluZwoJICBXaGVuIF9jbGVhciBnZXRzIGNhbGxlZCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwgYnVmZmVycwoJICB3aWxsIGJlIHVucmVmZmVkLiBJZiB0aGUgYWRhcHRlciB3YXMgbWFwcGVkLCBtZW1vcnkgbGVha3MKCSAgbWF5IG9jY3VyLgoJICBXaGlsZSBjYWxsaW5nIF9jbGVhciBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCBkb2VzIG5vdCBzZWVtCgkgIGxpa2Ugc3VjaCBhIGdyZWF0IGlkZWEsIHRoaXMgaXMgcG9zc2libGUgaW4gdGhlIGF1ZGlvCgkgIGVuY29kZXIgYmFzZSBjbGFzcywgYXMgX2NsZWFyIG1heSBiZSBjYWxsZWQgaW4gX2ZpbmlzaF9mcmFtZS4KCSAgU2luY2UgdGhlIGF1ZGlvIGVuY29kZXIgcmVsaWVzIG9uIGZsdXNoaW5nIHRvIGtlZXAgdHJhY2sgb2YKCSAgdGltZXN0YW1wcywgZGVsYXlpbmcgZmx1c2hpbmcgdGlsbCBhZnRlciBoYW5kbGVfZnJhbWUgc2VlbXMKCSAgZGFuZ2Vyb3VzLgoJICBTbywgd2UgdW5tYXAgb24gY2xlYXIsIGFzIHRoZSBuZXh0IHVubWFwIHdpbGwgZG8gbm90aGluZy4KCSAgVGhpcyBtYWtlcyBfY2xlYXIgc2FmZSB0byBjYWxsIGJldHdlZW4gX21hcCBhbmQgX3VubWFwLAoJICB3aGlsZSBhdm9pZGluZyBsZWFraW5nIHRoZSBtYXBwZWQgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MTMzCgoyMDEyLTAxLTEzIDE0OjIwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmV2ZW50IHVubGlrZWx5IGNhcHMgbGVhawoKMjAxMi0wMS0xMyAxMDo0MzoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcGx1ZyBmYWN0b3J5IGxlYWsgb24gZXJyb3IKCjIwMTItMDEtMTMgMDA6MjI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYwoKMjAxMi0wMS0xMiAyMDo0NjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgR1NUX1RZUEVfREFURSwgb3VyIG93biBHRGF0ZSB0eXBlCgkgIFdoaWNoIHdlIGhhZCB0byBhZGQgYmVjYXVzZSBHTGliIGRpZG4ndCBoYXZlIGl0CgkgIGJhY2sgaW4gdGhlIGRheS4gUG9ydCBldmVyeXRoaW5nIHRvIHBsYWluIG9sZAoJICBHX1RZUEVfREFURSwgd2hpY2ggaXMgYWxzbyBhIGJveGVkIHR5cGUuIElkZWFsbHkKCSAgd2UnZCBqdXN0IHVzZSBHRGF0ZVRpbWUgZm9yIGV2ZXJ5dGhpbmcsIGJ1dCBpdAoJICBkb2Vzbid0IHN1cHBvcnQgbm90IHNldHRpbmcgc29tZSBvZiB0aGUgZmllbGRzCgkgIHVuZm9ydHVudGVseSAod2hpY2ggd291bGQgYmUgdmVyeSB1c2VmdWwgZm9yCgkgIHRhZyBoYW5kbGluZyBpbiBnZW5lcmFsLCBpZiB3ZSBjb3VsZCBleHByZXNzCgkgIDIwMTItMDEgZm9yIGV4YW1wbGUpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MzUxCgoyMDEyLTAxLTEyIDE5OjUzOjExICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhciBhZGFwdGVyIGluIHJlc2V0IHNvIGJhc2VwYXJzZSBpcyByZXVzYWJsZQoJICBHc3RCYXNlUGFyc2Ugd2FzIG5vdCBjbGVhcmluZyBpdHMgYWRhcHRlciBvbiByZXNldCBjYXVzaW5nCgkgIHByb2JsZW1zIHdoZW4gYSBwaXBlbGluZSB3ZW50IGZvciBleGFtcGxlIGZyb20gUExBWUlORyB0byBOVUxMCgkgIHN0YXRlIGFuZCB0aGVuIGJhY2sgdG8gUExBWUlORyBhZ2Fpbi4gVGhlIGRhdGEgZnJvbSB0aGUgbGFzdAoJICBzdHJlYW0gd291bGQgYmUgdXNlZCBpbiB0aGUgcGFyc2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NDQ0CgoyMDEyLTAxLTEyIDE1OjUwOjUzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdGluc3BlY3Q6IGZpeCBmZWF0dXJlcyBhbmQgbGlzdCBsZWFrcwoKMjAxMi0wMS0xMiAxMTowMzoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0xMSAxMjoxOToyMCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogY2xhcmlmeSBfZ2V0IGRvY3MgYWJvdXQgdGhlIHJldHVybmVkIHJlZmVyZW5jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Njg5CgoyMDEyLTAxLTEwIDEzOjAwOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMDYgMTY6Mzk6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNlbmQgY2FwcyBhZ2FpbiBhZnRlciBhY3RpdmF0aW9uCgkgIEF2b2lkcyBlbmRpbmcgdXAgaW4gY2FzZXMgd2hlcmUgdHlwZWZpbmQgZ2V0cyBhY3RpdmF0ZWQgaW4gcHVsbC1tb2RlCgkgIGFuZCBjYXBzIG5ldmVyIGdldCBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MzM3CgoyMDEyLTAxLTA5IDE1OjU5OjA5ICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIEFkZCBsYXRlc3Qgc3BlY2ZpbGUgY2hhbmdlcwoKMjAxMi0wMS0wOSAxNTo1ODo0NSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIEFsc28gYWRkIGhlYWRlcmZpbGUKCjIwMTItMDEtMDkgMTU6NTc6NTEgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggZG90ZmlsZSBBUEkgdG8gYmUgZXhwb3J0ZWQgc2luY2UgbWFjcm9zIGNhbid0IGJlIEdJIGJvdW5kCgoyMDEyLTAxLTA5IDEzOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBtZW1vcnkgdGVzdCBiaW5hcnkKCjIwMTItMDEtMDkgMDM6MTQ6NDEgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgRml4IHByaW50ZiBmb3JtYXQgYnVpbGQgd2FybmluZ3MKCjIwMTItMDEtMDkgMTM6MTA6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHN0cmluZ3MKCjIwMTItMDEtMDYgMTU6MDE6MjQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBbGxvdyBOVUxMIGRlc3Qgd2hlbiBzdWJ0cmFjdGluZyBiaXRtYXNrCgkgIEhhcHBlbnMgd2hlbiBjaGVja2luZyBmb3Igc3Vic2V0cyBvZiBjYXBzCgoyMDEyLTAxLTA2IDEzOjMyOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGVuc3VyZSB3cml0YWJsZSBtZW1vcnkgaW4gbWVtc2V0CgoyMDEyLTAxLTA2IDEzOjEwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNoZWNrIHNlbWFudGljcyBvZiBuZXN0ZWQgbWFwcGluZ3MKCSAgQ291bnQgaG93IG1hbnkgbWFwcGluZ3MgYXJlIGN1cnJlbnRseSBhY3RpdmUgYW5kIGFsc28gd2l0aCB3aGF0IGFjY2VzcyBwYXR0ZXJuLgoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2Mgd2l0aCByZXN0cmljdGlvbnMgb24gdGhlIGFjY2VzcyBwYXR0ZXJucyBmb3IgbmVzdGVkCgkgIG1hcHBpbmdzLgoJICBDaGVjayBpZiBuZXN0ZWQgbWFwcGluZ3Mgb2JleSB0aGUgYWNjZXNzIG1vZGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBkZXNpZ24gZG9jLgoJICBBZGQgdmFyaW91cyB1bml0IHRlc3RzIHRvIGNoZWNrIHRoZSBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTItMDEtMDYgMTM6MDY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVubWFwIHdpdGggdGhlIHJpZ2h0IGRhdGEgcG9pbnRlcgoJICBVc2UgdGhlIG9yaWdpbmFsIGRhdGEgcG9pbnRlciB0byB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeS4KCjIwMTItMDEtMDYgMTA6Mzk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGRvY3M6IGltcHJvdmUgbWVtb3J5IGRvY3MKCjIwMTItMDEtMDYgMDc6MDI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBoYW5kbGUgLTEgc2l6ZSBpbiB1bm1hcAoJICBoYW5kbGUgLTEgaW4gdW5tYXAgY29ycmVjdGx5IHdoZW4gdGhlIG9mZnNldCBpcyBtb2RpZmllZC4KCjIwMTItMDEtMDYgMDY6NDM6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBpbXByb3ZlIHNlbWFudGljcyBvZiB1bm1hcAoJICBNYWtlIGFuIHVubWFwIGNhbGwgd2l0aCBhIGRpZmZlcmVudCBkYXRhIHBvaW50ZXIgdGhhbiB0aGUgbWFwIGNhbGwgdXBkYXRlIHRoZQoJICBvZmZzZXQgZmllbGQuIFRoaXMgYWxsb3dzIGZvciBib3RoIG9mZnNldCBhbmQgc2l6ZSBhZGp1c3RlbWVudHMgaW4gdGhlIHVubWFwCgkgIGNhbGwuCgoyMDExLTExLTI5IDE0OjIyOjQ0ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCBjb21wZW5zYXRlIGZvciByZW5kZXItZGVsYXkgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5OAoKMjAxMi0wMS0wNSAxODoxNToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBtb3JlIGNoZWNrcwoJICBBZGQgY2hlY2sgZm9yIG1hcHBpbmcgYW5kIHJlc2l6aW5nCgoyMDEyLTAxLTA1IDE3OjI4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQKCSAgVGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudCB3aGVtIG1hcHBpbmcgYW5kIHVubWFwcGluZyB0aGUgYnVmZmVyLgoKMjAxMi0wMS0wNSAxNzowMjo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogY2xhcmlmeSByZXNpemUgYW5kIGN1cnJlbnQgbWFwcGluZ3MKCjIwMTItMDEtMDUgMTY6NDE6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjbGFyaWZ5IG5lc3RlZCBtYXBwaW5ncywgYWRkIHVuaXQgdGVzdAoKMjAxMi0wMS0wNSAxMjozMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0wNSAxMzoyMjo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIG1lbW9yeSB1bml0IHRlc3RzCgkgIENoZWNrIGZvciB1bm1hcCB3aXRoIGludmFsaWQgc2l6ZQoKMjAxMi0wMS0wNSAxMzoxMTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIEdzdE1lbW9yeQoJICBBZGQgYSBHc3RNZW1vcnkgdW5pdCB0ZXN0CgkgIEFkZCBzb21lIG1vcmUgYXNzZXJ0cyBpbiBHc3RNZW1vcnkgdG8gY2F0Y2ggaW52YWxpZCBjYXNlcy4KCjIwMTItMDEtMDUgMTM6MDk6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBtZW1vcnkgcmVmY291bnQKCjIwMTItMDEtMDUgMTI6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMS0xMi0xNiAxMzoxMTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCB0ZXN0cyBmb3IgdGhlIGJpdG1hc2sgdHlwZQoKMjAxMS0xMi0xNiAxMjozOToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkICJiaXRtYXNrIiBhcyBhbGlhcyBmb3IgKEdzdEJpdG1hc2spIHdoZW4gKGRlLSlzZXJpYWxpemluZyB2YWx1ZXMKCjIwMTEtMTItMTYgMTI6MzI6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogQWRkIDY0LWJpdCBiaXRtYXNrIHR5cGUKCjIwMTItMDEtMDEgMTY6MzI6MjcgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBidWlsZDogZG9uJ3Qgb3V0cHV0IGNvbmZpZ3VyZSBvcHRpb25zIHZpYSBhdXRvZ2VuIGlmICROT0NPTkZJR1VSRSBpcyBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5NgoKMjAxMi0wMS0wNSAwMDozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgZ3N0OiBpbmNsdWRlIGxvY2FsZS5oIGJlZm9yZSBhbnkgb3RoZXIgaTE4biBoZWFkZXJzCgkgIFRoaXMgaXMgYWxzbyBob3cgd2UgZG8gaXQgaW4gLWJhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTAKCjIwMTItMDEtMDEgMTY6NDY6MDQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogYWRkcyBhbmQgdXNlcyBTdW5Qcm8gdmlzaWJpbGl0eSBhdHRyaWJ1dGUgZm9yIHByb3BlciBmdW5jdGlvbiBleHBvcnRzCgkgIERlZmluZSBHU1RfRVhQT1JUIGZvciBTdW5Qcm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODkKCjIwMTItMDEtMDEgMTY6NDc6MTQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBwbHVnaW5zOiBleHBsaWNpdGx5IGNhc3QgaW5pdGlhbGl6YXRpb24gdmFsdWVzIHRvIHRoZSBjb3JyZWN0IHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4OAoKMjAxMi0wMS0wMSAyMDoxNzo0MSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGluY2x1ZGUgY29ycmVjdCBwb2xsLmggYmFzZWQgb24gYXV0b2NvbmYgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDIzOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjaGVjayBmb3Igc3lzL3BvbGwuaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDE5OjUwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTYyZjNkNCB0byAwODA3MTg3CgoyMDEyLTAxLTA0IDEwOjA0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzCgkgIE9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzIGluc3RlYWQgb2YgMTAgc28gdGhhdCBtb3JlIG1lZGlhIHNwZWNpZmljIGZsYWdzCgkgIGFyZSBhdmFpbGFibGUuCgoyMDEyLTAxLTAzIDE1OjI1OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMi0wMS0wMyAxNTowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiByZXN0b3JlIFVORVhQRUNURUQKCjIwMTItMDEtMDMgMTU6MDM6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZml4IHNvbWUgZG9jcwoKMjAxMi0wMS0wMyAxNDo0NTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDEtMDMgMTQ6NDM6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhdm9pZCBleHBvc2luZyB0aGUgbGlzdHMgaW4gdGFncwoKMjAxMi0wMS0wMyAxMzo0MjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBtaXNzaW5nIGZ1bmN0aW9ucwoJICBBZGQgbWlzc2luZyBhbmQgZXNzZW50aWFsIGZ1bmN0aW9ucyBub3cgdGhhdCB3ZSBjYW4ndCBkaXJlY3RseSB1c2UgR3N0U3RydWN0dXJlCgkgIG1ldGhvZHMgb24gdGhlIHRhZ2xpc3QgYW55bW9yZS4KCjIwMTItMDEtMDMgMTA6NDI6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IGFkZCBtYWNybyB0byBjaGVjayBpZiBhIGd2YWx1ZSBob2xkcyBhIHNhbXBsZQoKMjAxMi0wMS0wMiAxNTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIGRvY3M6IGZpeCBidWlsZCBvZiBkb2NzIGV4YW1wbGVzCgkgIFVwZGF0ZSBmb3IgcmVnaXN0cnkgbWV0aG9kIHJlbmFtZQoKMjAxMi0wMS0wMiAxNTozOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVybiBhc3NlcnQgaW50byBhIHJlYWwgZXJyb3IKCSAgUG9zdCBhIHJlYWwgZXJyb3IgaW5zdGVhZCBvZiBqdXN0IGFzc2VydGluZy4KCjIwMTItMDEtMDIgMTU6Mzg6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGxhdGVuY3kgZXZlbnQKCjIwMTItMDEtMDIgMDI6MzI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogZ2V0IHJpZCBvZiBnc3RfZGVmYXVsdF9yZWdpc3RyeV8qKCkgY29udmVuaWVuY2UgbWFjcm9zCgkgIFRoZXkncmUgbm90IHJlYWxseSB3b3J0aCBpdDogaGFyZGx5IHNhdmUgYW55IHR5cGluZywgYW5kIGFyZW4ndAoJICBncmVhdCBmb3IgYmluZGluZ3Mgb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uLgoKMjAxMi0wMS0wMiAwMjoyMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogcmVuYW1lIGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCgpIHRvIGdzdF9yZWdpc3RyeV9nZXQoKQoJICBJdCdzIG5vdCByZWFsbHkgYSBkZWZhdWx0IGlmIHRoZXJlIGlzIG9ubHkgb25lIHRoYXQgY2FuJ3QgYmUgY2hhbmdlZC4KCSAgU2hvdWxkIHdlIHJldHVybiBhIHJlZiBsaWtlIGUuZy4gZ192b2x1bWVfbW9uaXRvcl9nZXQoKSBkb2VzPwoKMjAxMi0wMS0wMiAwMjoyMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dGFnbGlzdC5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoKMjAxMi0wMS0wMiAwMDoxNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgR1NUX1RBR19MQU5HVUFHRV9OQU1FCgkgIEFQSTogR1NUX1RBR19MQU5HVUFHRV9OQU1FCgoyMDEyLTAxLTAxIDIwOjU5OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgZGVzaWduIGRvYwoKMjAxMi0wMS0wMSAyMDo1NzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW5hbWUgc29tZSB0ZXN0cwoKMjAxMi0wMS0wMSAyMDo1NToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3VwcG9ydCBjb250cm9sIG1hcHBpbmcgZm9yIGVudW1zCgkgIEFkZCBhIG1hcHBpbmcgZm9yIGVudW0gdHlwZXMgKHN1cHBvcnRpbmcgc3BhcnNlIGVudW1zKS4gQWRkIGEgdGVzdC4KCjIwMTItMDEtMDEgMjA6NDM6NTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG5vbnNlbnNlIHBhcnRzIGZyb20gdGVzdCBvYmplY3QgcHJvcGVydHkgZGVzY3JpcHRpb25zCgoyMDEyLTAxLTAxIDE4OjU0OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogZml4IGN1YmljIGludGVycG9sYXRpb24gZm9yIGFycmF5cwoKMjAxMi0wMS0wMSAxODo1MDo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGF1ZGlvLWV4YW1wbGU6IGFsc28gcGxvdCByZXZlcnNlLXNhdwoKMjAxMi0wMS0wMSAxODo0MzoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBjbGVhbnVwcyBhbmQgZml4IHRyaWFuZ2xlIGNhbGN1bGF0aW9ucwoKMjAxMi0wMS0wMSAxODozNDoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBhdWRpby1leGFtcGxlOiBmaXggdGhlIGV4YW1wbGUKCSAgV2UgbmVlZCB0byBzY2FsZSB0aGUgZnJlcXVlbmN5IHZhbHVlcy4KCjIwMTItMDEtMDEgMTU6MTY6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogbWFrZSBjaGFpbmFibGUKCSAgTm93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgY29udHJvbHNvdXJjZSBhcmUgaW4gdHVybiBjb250cm9sYWJsZS4gQWRkIGFuIGV4YW1wbGUKCSAgdG8gc2hvdyB0aGUgdXNhZ2UuCgoyMDEyLTAxLTAxIDE1OjAxOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgbG9nZ2luZyBhbmQgZml4IGFycmF5IGZ1bmN0aW9ucwoKMjAxMi0wMS0wMSAxNDo1NTozNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIHRoZSB0ZXN0cwoKMjAxMi0wMS0wMSAxNDoyODo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nCgoyMDExLTEyLTMxIDE3OjM3OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IE1ha2VmaWxlIHNwYWNlcyB0byB0YWJzCgoyMDExLTEyLTMxIDE1OjUyOjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogYWxzbyB0ZXN0IGFycmF5IGZ1bmN0aW9ucwoJICBJbXByb3ZlIHRoZSBleGFtcGxlIHRvIGFsc28gY29sbGVjdCB2YWx1ZSBhcnJheXMgYW5kIHBsb3QgdGhlbS4KCjIwMTEtMTItMzEgMTU6MjY6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBvYnNvbGV0ZSBGSVhNRSBjb21tZW50CgoyMDExLTEyLTMxIDA5OjU2OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB0ZXN0cwoJICBTZXQgYSBkZWZpbmVkIHZhbHVlIHRvIGNoZWNrIGZvciBuby1jaGFuZ2UuCgoyMDExLTEyLTMwIDE4OjM1OjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbC1zb3VyY2VzOiB0dXJuIGludG8gR3N0T2JqZWN0cwoJICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGNoYWluaW5nIHRoZW0uCgoyMDExLTEyLTMwIDE5OjM3OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHJlbW92ZSBwYWRkaW5nIGFuZCBzaWduYWwgdmZ1bmNzCgkgIEFuZCBmaXggc2lnbmFsIEdUeXBlcyBhbmQgbWFyc2hhbGxlci4gTm8gb25lIHdpbGwgZXZlcgoJICBuZWVkIHRvIHN1YmNsYXNzIG91ciByZWdpc3RyeSwgc28ganVzdCByZW1vdmUgdGhlIHBhZGRpbmcKCSAgYW5kIHRoZSBzaWduYWwgdmZ1bmNzLgoKMjAxMS0xMi0zMCAxNTozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRpc2FibGUgR3N0SW5kZXggdW5pdCB0ZXN0CgoyMDExLTEyLTMwIDE1OjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkgIGluZGV4OiByZW5hbWUgR3N0QXNzb2NGbGFncyB0byBHc3RJbmRleEFzc29jaWF0aW9uRmxhZ3MKCSAgSnVzdCBpbiBjYXNlIHdlIHJlc3VycmVjdCB0aGlzIGxhdGVyLgoKMjAxMS0xMi0zMCAxNToyNDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBiYXNlOiBkaXNhYmxlIHVudXNlZCBpbmRleCBBUEkgYW5kIG1ha2UgZnVuY3Rpb25zIHN0YXRpYwoJICBJdCdzIHNpbXBseSBwcml2YXRlIGhlbHBlciBBUEkgZm9yIG5vdywgdW50aWwgc29tZW9uZQoJICBmaXhlcyB1cCBHc3RCYXNlUGFyc2Ugbm90IHRvIG5lZWQgaXQgYW55IG1vcmUuCgoyMDExLTEyLTMwIDE1OjI0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogcmVtb3ZlIGluZGV4IEFQSSBmcm9tIC5kZWYgZmlsZQoKMjAxMS0xMi0zMCAxNTowNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgTEFSR0UgcGFkZGluZyB0byBjbGFzcyBzdHJ1Y3R1cmUKCSAgRm91ciBzbG90cyBmb3IgZXhwYW5zaW9uIGlzIG5vdCBhIGxvdC4KCjIwMTEtMTItMzAgMTU6MDM6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBpbmRleDogcmVtb3ZlIEdzdEluZGV4IGFuZCBHc3RJbmRleEZhY3RvcnkgZm9yIG5vdwoJICBUaGVyZSBhcmUgbWFueSBnb29kIHVzZSBjYXNlcyBmb3IgR3N0SW5kZXggYW5kIHdlIHdhbnQKCSAgdG8gYWRkIGl0IGJhY2sgYWdhaW4gaW4gc29tZSBmb3JtLCBidXQgcG9zc2libHkgbm90IHdpdGgKCSAgdGhlIGN1cnJlbnQgQVBJLCB3aGljaCBpcyB2ZXJ5IHBvd2VyZnVsIChtYXliZSB0b28gcG93ZXJmdWwpLAoJICBidXQgYWxzbyBhIGJpdCBjb25mdXNpbmcuIEF0IHRoZSB2ZXJ5IGxlYXN0IHdlJ2QgbmVlZCB0bwoJICBtYWtlIHRoZSBBUEkgYmluZGluZ3MtZnJpZW5kbHkuCgoyMDExLTEyLTMwIDE3OjU3OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVucmVmIHRoZSB0d28gY290bnJvbGxlciB0eXBlcyBpbiBfZGVpbml0KCkKCjIwMTEtMTItMzAgMTc6NTE6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSB0ZXN0cyB0byBjb3JlIGNvbnRyb2xsZXIgc3VpdGUKCSAgRXh0ZW5kIHRoZSBkdW1teSBjb250cm9sLXNvdXJjZSB0byBhbGxvdyB0ZXN0aW5nIHRoZSBzeW5jIGNvZGUgcGF0aC4gQWRkIHRlc3QKCSAgZm9yIDE6MSBhbmQgMjoxIHZhbHVlIDwtPiBjb250cm9sLXNvdXJjZSBzeW5jLgoKMjAxMS0xMi0zMCAxMzo1MjowOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIHRlc3QgZm9yIGJpbmRpbmdzIGNvbnRyb2wgc291cmNlcyBtdWx0aXBsZSB0aW1lcwoKMjAxMS0xMi0zMCAxMjo1OTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQ6IG1vdmUgc3RhdGljIHZhcmlhYmxlIGZvciBOQU4gaW50byAjaWZuZGVmIE5BTiBibG9jawoJICBBbmQgdXNlIEdfR05VQ19VTlVTRUQgaW5zdGVhZCBvZiBfX2F0dHJpYnV0ZV91c2VkX18KCjIwMTEtMTItMzAgMTM6MzI6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBOQU4gaW5zdGVhZCBvZiBGUF9OQU4gKHdoaWNoIGlzIHRoZSBjbGFzcykKCSAgQWxzbyBhZGQgYSBmYWxsYmFjayBkZWZpbmUgdG8gbWF0aC1jb21wYXQuaC4KCSAgRml4ZXMgIzY2Njg4NwoKMjAxMS0xMi0yOSAxNjo1Njo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IERvIG5vdCBmYWxzZSB3YXJuIGFib3V0IHVubGlua2VkIHBhZAoJICBXaGVuIG91dHB1dC1zZWxlY3RvciBkaWRuJ3QgcmVjZWl2ZSBhIG5ld3NlZ21lbnQgZXZlbnQgaXQgd291bGQKCSAgd2FybiBhYm91dCBwYWQgYmVpbmcgdW5saW5rZWQgd2hlbiBzd2l0Y2hpbmcgcGFkcy4gTWFraW5nIHRoZSBsb2dzCgkgIHdyb25nIGFuZCBtaXNsZWFkaW5nLgoKMjAxMS0xMi0yOSAxNjo0OTozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMjggMTU6MTM6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogRml4IGxlYWsgaW4gcGFkIGNoZWNrCgoyMDExLTEyLTI4IDE0OjUxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRlaW5pdCBtZXRhIGZsYWdzIHRvbwoKMjAxMS0xMi0yOCAxMjoyNTo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogSW5pdGlhbGl6ZSBuZXcgR3N0TWV0YUZsYWdzIGluIGluaXRfcG9zdCgpCgoyMDExLTEyLTAxIDE5OjA1OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogU21hbGwgZG9jIGZpeHVwcwoKMjAxMS0xMi0xNiAwMjoyMDoyNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB3aW4zMjogZml4IGV4cG9ydGVkIHZhcmlhYmxlcyBmb3IgVlMgMjAxMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MjE5CgoyMDExLTEyLTI3IDEzOjQ4OjM2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogZml4IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KCSAgUmV0dXJuIE5BTiBhbmQgY2hlY2sgdGhlIHZhbHVlIGZ1cnRoZXIgdXAuCgkgIEZpeGVzICM2NjY4OTAKCjIwMTEtMTItMjcgMTE6NDA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBxdWljay1maXggY29tcGlsZXIgd2FybmluZyBicmVha2luZyB0aGUgYnVpbGQKCSAgVGhpcyBpcyBsaWtlbHkgbm90IHRoZSBwcm9wZXIgZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2ODkwCgoyMDExLTEyLTI3IDExOjM1OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IGNhbid0IGFjY2VzcyBwcml2YXRlIHJlZ2lzdHJ5IHN0cnVjdHVyZSBtZW1iZXJzIGRpcmVjdGx5IGFueSBsb25nZXIKCjIwMTEtMTItMjcgMTE6MjQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBpbiBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlCgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6NTQ6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkCgkgIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4OTAKCjIwMTEtMTItMjYgMTg6NDQ6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSAiZmQiIHByb3BlcnR5CgkgIEl0J3Mgbm8gbG9uZ2VyIHVzZWZ1bCwgc2luY2Ugd2UgZG9uJ3QgdXNlIG1tYXAgYW55IG1vcmUgYW55d2F5LAoJICBhbmQgd2UgbWlnaHQgdXNlIGEgZGlmZmVyZW50IEFQSSBmb3IgSS9PIGluIGZ1dHVyZSAoc3VjaCBhcyBHSU8pLgoKMjAxMS0xMi0yNiAxODo0MToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogbW92ZSBwcml2YXRlIGJpdHMgaW50byBwcml2YXRlIHN0cnVjdAoKMjAxMS0xMi0yNiAxMToyNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IG1pY3JvLW9wdGltaXNhdGlvbjogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBnX3ZhbHVlX3Vuc2V0KCkKCSAgV2Uga25vdyB0aGVyZSdzIG5vdGhpbmcgdG8gZG8gaGVyZSBhbmQgY2FuIHNhdmUgdXMgdGhlIGZ1bmN0aW9uCgkgIGNhbGxzIGFuZCBHVmFsdWVUYWJsZSBsb29rdXBzLgoKMjAxMS0xMi0yNSAyMzo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICBsaWJzOiByZW1vdmUgZ2RwIGRhdGFwcm90b2NvbCBsaWJyYXJ5CgkgIE1hZGUgcHJpdmF0ZSBhbmQgbW92ZWQgdG8gZ2RwIHBsdWdpbiBpbiAtYmFzZSBmb3IKCSAgdGhlIHRpbWUgYmVpbmcsIHVudGlsIHdlIGZpZ3VyZSBvdXQgd2hhdCB3ZSBkbyB3aXRoCgkgIGdkcCBhbmQgMC4xMS4KCjIwMTEtMTItMjUgMjE6MDI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBmaXggdW51c2VkLXZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTEtMTItMjUgMjE6MDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZvciBuZXcgQVBJCgoyMDExLTEyLTI1IDIwOjQ5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogYWRkIHRoZSBzdGFydCBvZiBhIGRlc2lnbiBkb2N1bWVudCBmb3IgY29udHJvbGxlcgoKMjAxMS0xMi0yNSAxODo0OTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3BsaXQgYW5kIGNsZWFudXAgdGhlIHRlc3RzCgkgIFRoZSBjb250cm9sbGVyIG9iamVjdCB3YXMgb25jZSBjb3BpZWQgZnJvbSBidXp6dGFyZHMgdW5pdCB0ZXN0cy4gQ2hhbmdlCgkgIFRlc3RNb25vU291cmNlIHRvIFRlc3RPYmogYXMgaXQgaXMgbm90IGEgZnVsbCBmbGVkZ2VkIGVsZW1lbnQuIFNwbGl0IHRoZSB0ZXN0cwoJICBpbnRvIGEgY29yZSBhbmQgbGlicmFyeSB0ZXN0IHN1aXRlLgoKMjAxMS0xMi0yMiAyMzo0ODozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiBtb3ZlIEdWYWx1ZSBoYW5kbGluZyBmcm9tIGNvbnRyb2wtc291cmNlcyB0byAtYmluZGluZwoJICBDb250cm9sU291cmNlcyBhcmUgbm93IGdkb3VibGUgYmFzZWQuIEEgY29udHJvbCBzb3VyY2UgaXMgbWFwcGVkIHRvIGEKCSAgcGFydGljdWxsYXIgR09iamVjdCBwcm9wZXJ0eSB1c2luZyBhIENvbnRyb2xCaW5kaW5nLgoKMjAxMS0xMi0yMCAyMjozNjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgR3N0Q29udHJvbGxlZFByb3BlcnR5IGludG8gYSBzZXBhcmF0ZSBjbGFzcwoJICBBZGQgYSBHc3RDb250cm9sQmluZGluZyBjbGFzcy4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBtYWtpbmcgdGhlCgkgIGNvbnRyb2xzb3VyY2VzIGdlbmVyYXRlIGRvdWJsZSB2YWx1ZWQgY29udHJvbCBjdXJ2ZXMgYW5kIGRvIHRoZSBncGFyYW1zcGVjCgkgIG1hcHBpbmcgaW4gdGhlIGNvbnRyb2wgYmluZGluZy4gTm93IHRoZSBBUEkgaW4gR3N0T2JqZWN0IGlzIGFnYWluIG1vc3RseQoJICBmb3IgY29udmVuaWVuY2UuCgoyMDExLTEyLTI1IDEyOjQ3OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jCgoyMDExLTEyLTI1IDEyOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZXR1cm4gYW55IHJlbWFpbmluZyBkYXRhIG9uIEVPUyBiZWZvcmUgcmV0dXJuaW5nIEZMT1dfVU5FWFBFQ1RFRAoKMjAxMS0xMi0yNSAxMjoyOTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogbWlub3IgY29zbWV0aWMgY2hhbmdlcwoJICBSZW5hbWUgd29mZnNldCB2YXJpYWJsZSwgbWFpbnRhaW4gc2VwYXJhdGUgYnl0ZXNfcmVhZCBpbiBhZGRpdGlvbgoJICB0byBsZW5ndGggdmFyaWFibGUuCgoyMDExLTEyLTI1IDEyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogZml4IHVwIGNvbXBpbGF0aW9uIGFmdGVyIG1lcmdlCgoyMDExLTEyLTI1IDExOjU4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYwoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYwoJICBEaXQgbm90IG1lcmdlIGNvbnRyb2xsZXIgb3IgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzLgoKMjAxMS0xMi0yNCAxNDo1OToxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmctdG8tMC4xMQoJICBVcGRhdGUgZ3N0X3BhZF9nZXRfY2FwcyAtPiBnc3RfcGFkX3F1ZXJ5X2NhcHMgY2hhbmdlCgoyMDExLTEyLTIzIDE1OjM3OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2xlYW51cCBtZXRhZGF0YSBpbiByZXNldF9idWZmZXIKCSAgVXNlIHRoZSByZXNldF9idWZmZXIgdm1ldGhvZCB0byByZW1vdmUgdGhlIHVucG9vbGVkIG1ldGFkYXRhIGZyb20gdGhlIGJ1ZmZlci4KCjIwMTEtMTItMjIgMTY6MDA6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTEyLTIyIDE1OjU1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogaGFuZGxlIG1ldGFkYXRhIGluIHRoZSBwb29sCgkgIE1hcmsgYWxsIG1ldGFkYXRhIG9uIHRoZSBhbGxvY2F0ZWQgYnVmZmVycyB3aXRoIGEgUE9PTEVEIGZsYWcuIFdoZW4gYSBidWZmZXIKCSAgcmV0dXJucyB0byB0aGUgcG9vbCwgcmVtb3ZlIGFsbCBtZXRhZGF0YSB0aGF0IGRpZCBub3QgaGF2ZSB0aGUgUE9PTEVEIGZsYWcuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHdlIG5ldmVyIGxlYXZlIHVua25vd24gbWV0YWRhdGEgdG8gdGhlIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgoyMDExLTEyLTIyIDE1OjU0OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGZvcmVhY2ggZnVuY3Rpb24gZm9yIHRoZSBtZXRhZGF0YQoKMjAxMS0xMi0yMiAxNTo1MzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHNtYWxsIGRvYyBmaXgKCjIwMTEtMTItMjIgMTU6NTI6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCBtZXRhZGF0YSBmbGFncwoJICBBZGQgbWV0YWRhdGEgZmxhZ3Mgc28gdGhhdCB3ZSBjYW4gc2V0IGV4dHJhIHByb3BlcnRpZXMgb2YgdGhlIG1ldGFkYXRhCgoyMDExLTEyLTAyIDE0OjEwOjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogb25seSBoYXZlIGEgdG9wLWxldmVsIHBpcGVsaW5lIGRvIHBpcGVsaW5lIG1hbmFnZW1lbnQKCSAgRml4ZXMgIzY2NTM5MC4KCjIwMTEtMTItMjIgMTE6MDg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggR1R5cGUgbmFtZSBvZiBpbnRlcnBvbGF0aW9uIG1vZGUgZW51bQoKMjAxMS0xMi0yMSAxMToxMzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMS0xMi0yMSAxMTowODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbmFtZSB2YXJpYWJsZSBmb3IgY29uc2lzdGVuY3kKCSAgUmVuYW1lIHRoZSB2YXJpYWJsZSBmb3IgR1NUX0NBUFNfTk9ORSB0byBfZ3N0X2NhcHNfbm9uZSBmb3IgY29uc2lzdGVuY3kgYW5kIHRvCgkgIGhpZSB0aGUgZmFjdCB0aGF0IE5PTkUgY2FwcyBhcmUgYWxzbyBhY2NpZGVudGFsbHkgZW1wdHkgY2Fwcy4KCjIwMTEtMTItMTkgMTQ6Mjc6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZSBmaWx0ZXJlZCBwZWVyIGNhcHMgYXJlIGFscmVhZHkgZW1wdHkgZXJyb3Igb3V0IGVhcmx5CgoyMDExLTEyLTIwIDEzOjIxOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlIGRlZnMKCjIwMTEtMTItMjAgMTM6MTQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgQU5ZIGFuZCBFTVBUWSBzaW5nbGV0b25zCgkgIEFkZCBhIHNpbmdsZXRvbiBmb3IgQU5ZIGFuZCBFTVBUWSBjYXBzIGFuZCBtYWtlIHRoZSBHU1RfQ0FQU19BTlkgYW5kCgkgIEdTVF9DQVBTX05PTkUgcG9pbnQgdG8gdGhlbS4gVGhpcyBtYWtlcyB0aGUgQVBJIG1vcmUgY29uc2lzdGVudCBub3cKCSAgdGhhdCB0aGUgbWFjcm8gZG9lcyBub3QgbWFnaWNhbGx5IGNyZWF0ZSBhIHJlZi4gSXQgYWxzbyBzb2x2ZXMgc29tZSBsZWFrcyBpbgoJICBwbGFjZXMgd2hlcmUgdGhlIG1hY3JvIHdhcyB1c2VkIHRvIHJlZ2lzdGVyIGEgcGFkdGVtcGxhdGUuCgoyMDExLTEyLTIwIDEzOjEzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICByZW1vdmUgY29uc3QgaW4gZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpCgkgIFJlbW92ZSB0aGUgY29uc3QgZnJvbSB0aGUgR3N0Q2FwcyBpbiBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkgYmVjYXVzZSB0aGUKCSAgZnVuY3Rpb24gdGFrZXMgYSByZWYgdG8gdGhlIGNhcHMuCgoyMDExLTEyLTIwIDEyOjU5OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTItMjAgMTE6Mzg6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgdW51c2VkIHBhcmVudF9jbGFzcyB2YXJyaWFibGUgZnJvbSBjb250cm9sc291cmNlCgoyMDExLTEyLTE5IDIzOjMyOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgaW50ZXJwb2xhdGlvbiBtb2RlcwoJICBSZW1vdmUgZGVwcmVjYXRlZC91bmltcGxlbWVudGVkIG1vZGVzLiBUdXJuIGludGVycG9sYXRpb24gbW9kZSBpbnRvIGEgZ29iamVjdAoJICBwcm9wZXJ0eS4gVXBkYXRlIGRvY3MgYW5kIGV4YW1wbGVzLgoKMjAxMS0xMi0xOSAxMToxMzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbHNvdXJjZXM6IHJlZmFjdG9yIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UKCSAgTW92ZSBtb3N0IG9mIHRoZSBjb2RlIHRvIGEgR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2UuIFNwbGl0IG91dCB0aGUgdHJpZ2dlcgoJICAnaW50ZXJwb2xhdGlvbiBtb2RlJyB0byBhIG5ldyBjb250cm9sIHNvdXJjZSBjbGFzcy4gTW92ZSB0ZXN0cyBhbmQgZXhhbXBsZXMgdG8KCSAgbmV3IGFwaS4gVXBkYXRlIGRvY3MuCgkgIEZpeGVzICM2MTAzMzgKCjIwMTEtMTItMTkgMjI6MDE6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogY2xlYW4gdXAgbGZvIGNvbnRyb2wgc291cmNlCgkgIFJlbW92ZSBwYXJlbnRfY2xhc3MgYW5kIHVzZSB2YXIgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvLiBSZW1vdmUgdW51c2VkIGRpc3Bvc2UKCSAgaW1wbGVtZW50YXRpb24uCgoyMDExLTEyLTE5IDIwOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgY29sbGVjdHBhZHMyIGZ1bmN0aW9uIHRvIC5kZWYgZmlsZQoKMjAxMS0xMi0xNiAxNzo1OToyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IGFkZCBjb252ZW5pZW5jZSBjbGlwcGluZyBmdW5jdGlvbgoJICAuLi4gd2hpY2ggYWxzbyBjb252ZXJ0cyB0byBydW5uaW5nIHRpbWU7IHVzZWZ1bCBmb3IgdHlwaWNhbCBtdXhlci4KCjIwMTEtMTItMTkgMTc6Mzg6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvIG5vdCBkZWxheSBzcGFyc2Ugc3RyZWFtIG5ld3NlZ21lbnQgdXBkYXRlcwoKMjAxMS0xMi0xOSAxNzowMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtYWtlIHN1YmNsYXNzZXMgYWRkIG90aGVyIGZsYWdzCgkgIEFkZCBHU1RfTUFQX0ZMQUdfTEFTVCBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gYWRkIGFkZGl0aW9uYWwgZmxhZ3Mgd2hlbgoJICBtYXBwaW5nIG1lbW9yeS4KCjIwMTEtMTItMTkgMTI6MzM6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHN1Z2dlc3Rpb24gY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtIGlzIG5vdCBtdWNoIG9mIGEgc3VnZ2VzdGlvbgoJICAuLi4gaW4gdGhhdCB1cHN0cmVhbSBpcyBhbHJlYWR5IGNvbXBseWluZyB3aXRoIHRoYXQgc3VnZ2VzdGlvbi4KCSAgRml4ZXMgIzY2NjE3NC4KCjIwMTEtMTItMTUgMTQ6MzE6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBkZWxheSBjb2xsZWN0aW5nIGJ1ZmZlciBpZiBhIHBhZCBuZXdseSBzZXQgd2FpdGluZwoJICAuLi4gYXMgY29tbWVudGVkOyBtYWtlIGNvZGUgY29ycmVzcG9uZCB0byBpdCAoYWdhaW4pLgoKMjAxMS0xMi0xNSAxNjowNjozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZXIgdGhlIHBhcmVudF9jbGFzcyB2YXJzIGZyb20gR19ERUZJTkVfVFlQRQoKMjAxMS0xMi0xNCAxMjoxMzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBhbGxvdyBOVUxMIGFzIGZpbHRlciBjYXBzIGFyZ3VtZW50IHdpdGggcXVlcnlfY2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYxNTQKCjIwMTEtMTItMTIgMTM6MDU6MzYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGRvIG5vdCBtaXN0YWtlIHNob3J0IHJlYWRzIGZvciBFT1MKCSAgV2hpbGUgbG9jYWwgZmlsZXN5c3RlbXMgd2lsbCB1c3VhbGx5IG5vdCBjYXVzZSBzaG9ydCByZWFkcywKCSAgdGhpcyBtYXkgaGFwcGVuIG9uIHNlZWthYmxlIGZpbGVzIG9uIHNvbWUgcmVtb3RlIGZpbGVzeXN0ZW1zLgoJICBJbnN0ZWFkLCBsb29wIHRpbGwgd2UgZ2V0IHRoZSByZXF1ZXN0ZWQgYW1vdW50IG9mIGRhdGEsIG9yCgkgIGFuIGFjdHVhbCBFT1MgKGllLCAwIGJ5dGVzKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTkyMQoKMjAxMS0xMS0xNCAwMjoyNjozMSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQ2xlYXIgcXVldWVkIGZyYW1lcyB3aXRoIG90aGVyIHF1ZXVlcwoKMjAxMS0xMi0xMiAxMjoxMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIG5ldyAndHJhbnNmZXIgZmxvYXRpbmcnIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpCgkgIFJlcXVpcmVzIGdvYmplY3QtaW50cm9zcGVjdGlvbiAxLjMxLjEgKG9sZGVyIHZlcnNpb25zIHdpbGwKCSAgZXJyb3Igb3V0IHdpdGggdGhhdCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQwOTkKCjIwMTEtMTItMTIgMTI6MDk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vY3MucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vc3IucG86CgkgIHBvOiB1cGRhdGUgbGFuZ3VhZ2VzCgoyMDExLTEyLTEyIDEyOjAwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0xMiAxMTo1NDo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgZ2xpYi1jb21wYXQ6IEFkZCBsaWNlbnNlIGJvaWxlcnBsYXRlIGZvciBMR1BMCgoyMDExLTEyLTEwIDAxOjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2NzLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2dsLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3IucG86CgkqIHBvL3VrLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0xMi0xMCAxMTowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzYXkgd2UgaGFuZGxlIFJFQ09ORklHVVJFIGV2ZW50CgkgIFdlIGhhbmRsZSB0aGUgUkVDT05GSUdVUkUgZXZlbnQgc28gcmV0dXJuIFRSVUUgZnJvbSB0aGUgZXZlbnQgaGFuZGxlci4KCjIwMTEtMTItMTAgMTE6MDc6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZm9yd2FyZCBvbiBOVUxMIHBhZHMKCSAgVGhlIGl0ZXJhdG9yIGNhbiByZXR1cm4gTlVMTCBpbiBzb21lIGNhc2VzLCBhdm9pZCBwdXNoaW5nIG9uIHRob3NlCgkgIE5VTEwgcGFkcy4KCjIwMTEtMTItMDcgMTY6MDE6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByZXNldDogYWxsb3cgYXBwbGljYXRpb25zIHRvIHNwZWNpZnkgYW4gZXh0cmEgcHJlc2V0IGRpcgoJICBBbiBleHRyYSBhcHBsaWNhdGlvbiBwcmVzZXQgZGlyIGhlbHAgdG8gb3JnYW5pemUgcHJlc2V0cyBjcmVhdGVkIGZvciBzcGVjaWFsCgkgIHB1cnBvc2VzLiBGaXhlcyAjNjYwNzYwCgkgIEFQSTogZ3N0X3ByZXNldF9zZXRfYXBwX2RpcigpLCBnc3RfcHJlc2V0X2dldF9hcHBfZGlyKCkKCjIwMTEtMTItMDkgMTA6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc3RvcCB3aGVuIG5lZ290aWF0aW9uIGZhaWxzCgoyMDExLTEyLTA4IDE3OjMyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0wOCAxODowMDowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGNvZGUgcGF0aCB0byBjb21lIHVwIHdpdGggcG9zc2libGUgY2FwcyBpZiBpbmNvbXBhdGlibGUgY2FwcyBhcmUgcHJvdmlkZWQgdG8gYnVmZmVyX2FsbG9jKCkKCSAgUHJldmlvdXMgY29kZSBjb3VsZCBhbG1vc3QgbmV2ZXIgd29yayBhbmQgdGhpcyBzaG91bGQgYmUgc2xpZ2h0bHkKCSAgYmV0dGVyLgoKMjAxMS0xMi0wOCAxNzoyMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRmFsbCBiYWNrIHRvIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgaWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNpbmtwYWQKCjIwMTEtMTItMDggMTc6MDc6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZhbGwgYmFjayB0byB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGlmIGZpeGF0aW9uIG9mIHN1Z2dlc3RlZCBjYXBzIGZhaWxlZAoKMjAxMS0xMi0wOCAxNzowMjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYygpIGNvZGUKCSAgRG9uJ3QgY2hlY2sgaWYgdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtCgkgIGFuZCBkb24ndCB0cnkgdG8gZml4YXRlIHRoZXNlIGNhcHMuIFRoZXkgbXVzdCBiZSBmaXhhdGVkIGluIGFueSBjYXNlLgoKMjAxMS0xMi0wOCAwMDo0OToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGxhdGVzdCBBUEkgYWRkaXRpb25zCgoyMDExLTEyLTA4IDAwOjQ3OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBmaXggdXAgc2VsZWN0b3IgdGVzdCBhZnRlciBtZXJnZQoKMjAxMS0xMi0wOCAwMDozOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0aW5kZXhmYWN0b3J5LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCSAgTm90ZTogZGlkIG5vdCBtZXJnZSBhbnkgb2YgdGhlIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcyBmcm9tIDAuMTAuCgoyMDExLTEyLTA3IDE3OjU3OjQ5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IHVzZSBhIGJ5dGUgdmFsdWUgaW5zdGVhZCBvZiBhIHRpbWUgdmFsdWUgd2hlbiBiaXNlY3RpbmcKCSAgVGhpcyBmaXhlcyBGTEFDIHNlZWtpbmcgb24gc29tZSBGTEFDIGZpbGVzLgoKMjAxMS0xMi0wNyAxMTowNDo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogUHVzaCBuZXdzZWdtZW50IGV2ZW50cyBiZWZvcmUgYW55IGJ1ZmZlcnMgYXJlIHB1c2hlZCBpbiB0aGUgdW5pdCB0ZXN0CgoyMDExLTEyLTA3IDExOjAxOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGEgTkVXU0VHTUVOVCBldmVudCBpZiBhIGJ1ZmZlciBhcnJpdmVkIGJlZm9yZSB0aGUgc2VnbWVudCB3YXMgY29uZmlndXJlZAoKMjAxMS0xMi0wNyAxMTowMTozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGxhc3Qgc2VnbWVudC9idWZmZXIgd2hlbiBubyBzZWdtZW50IHdhcyBjb25maWd1cmVkIHlldAoKMjAxMS0xMi0wNyAwOTo1MDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0gdHJ5IHRvIGNvbWUgdXAgd2l0aCBjb21wYXRpYmxlIGNhcHMKCSAgRml4ZXMgYnVnICM2NjIxOTkuCgoyMDExLTEyLTA2IDIzOjUyOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSAgaW5kZXhmYWN0b3J5OiBmaXggbWVtb3J5IGxlYWsKCSAgSW50cm9kdWNlZCBieSBjb21taXQgYmQzMDJiYjYgcGx1Z2luZmVhdHVyZTogYXZvaWQgZHVwbGljYXRpbmcgZmVhdHVyZS0+bmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5NDY2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MDMKCjIwMTEtMTItMDYgMTg6MDk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBwdXQgbmV3IGV2ZW50IHByb2JlIHR5cGUgbmV4dCB0byBvdGhlciBldmVudCB0eXBlcwoKMjAxMS0xMi0wNSAyMToyMDo1MiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBBZGQgR1NUX1BBRF9QUk9CRV9UWVBFX0hBTkRMRV9GTFVTSAoKMjAxMS0xMi0wNiAxNDo1NToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBNYWtlIGV2ZW50L2J1ZmZlciB2ZXJib3NlIG91dHB1dCBjb25zaXN0ZW50IHdpdGggaWRlbnRpdHkKCjIwMTEtMTItMDYgMTQ6NTU6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogUHJpbnQgYnVmZmVyIGZsYWdzIGluIHRoZSB2ZXJib3NlIG91dHB1dAoKMjAxMS0xMi0wNiAxNDo1Mzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogTWFrZSBldmVudC9idWZmZXIgdmVyYm9zZSBvdXRwdXQgY29uc2lzdGVudCB3aXRoIGlkZW50aXR5IGFuZCBwcmludCBidWZmZXIgZmxhZ3MKCjIwMTEtMTItMDYgMTQ6NDY6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBkb24ndCBpbmNsdWRlIGdsaWIvZ3RocmVhZC5oIGRpcmVjdGx5CgkgIFRoZSBnX3RocmVhZCBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSBhZnRlciBpbmNsdWRpbmcgZ2xpYi5oIGFzIHBlciBkb2NzLgoKMjAxMS0xMi0wNiAxNDoyMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRoZSB0ZXN0IHRvIG5ldyBhcGkgYXMgd2VsbAoKMjAxMS0xMi0wNiAxNDoyMzoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiBmaXggZ3BvaW50ZXIgdnMuIGdwb2ludGVyKiBtZXNzIHVwCgoyMDExLTEyLTA2IDE0OjI0OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgR1NUX0ZMT1dfUkVTRU5ECgkgIEl0IGlzIHVudXNlZCBhbmQgdW5kZWZpbmVkLgoKMjAxMS0xMi0wNiAxNDowMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBhc3luYyBzdGFydCBvcHRpb24KCSAgQWRkIGEgbWV0aG9kIHRvIGVuYWJsZSBhc3luYyBzdGFydCBiZWhhdmlvdXIuIFRoZSBzdWJjbGFzcyBjYW4gdGhlbiBjb21wbGV0ZSB0aGUKCSAgc3RhcnQgb3BlcmF0aW9uIGZyb20gYW55IG90aGVyIHRocmVhZCBieSBjYWxpbmcgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkuCgkgIFRoZSBiYXNlIGNsYXNzIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgdG8gY29tcGxldGUgd2l0aAoJICBnc3RfYmFzZV9zcmNfc3RhcnRfd2FpdCgpLgoKMjAxMS0xMi0wNiAxMzo1ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTItMDYgMTM6NDc6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogY2xlYW51cCBlcnJvciBwYXRoCgoyMDExLTEyLTA2IDEzOjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMi0wNiAwODo0ODo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogdXNlIF9PQkpFQ1QgbG9nZ2luZyB2YXJpYW50cyBtb3JlCgoyMDExLTEyLTA2IDA4OjM1OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBHc3RWYWx1ZUFycmF5CgkgIEluc3RlYWQgcGFzcyB0aGUgdmFsdWVzIGFzIGFyZ3VtZW50cy4gVGhpcyBzaW1wbGlmaWVzIHRoYXQgY29kZSBhbmQgaGVscHMKCSAgYmluZGluZ3MuCgoyMDExLTEyLTA2IDA4OjM1OjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMKCSAgT25lIGNhbiBlYXNpbGx5IGxvb3Agb3ZlciB0aGUgY29udHJvbGxlZCBwcm9wZXJ0aWVzIG1hbnVhbGx5LiBUaGlzIGlzIHN0ZXAgMSBpbgoJICByZW1vdmluZyBHc3RWYWx1ZUFycmF5LgoKMjAxMS0xMi0wNCAwNzozMzozMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29ycmVjdCByZXR1cm4gdmFsdWUgaW4gZ3N0X3B1c2hfc3RpY2t5CgoyMDExLTEyLTA1IDExOjA3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1ha2Ugc29tZSBtYWNyb3MgaW50byBpbmxpbmUgZnVuY3Rpb25zCgoyMDExLTEyLTA1IDEwOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbWFrZSBzb21lIG1vcmUgbWFjcm9zIGFzIGlubGluZSBmdW5jdGlvbnMKCSAgTWFrZSBzb21lIG1hY3JvcyBhcyBpbmxpbmUgZnVuY3Rpb25zIGZvciBhZGRlZCB0eXBlIGNoZWNraW5nLgoJICBVU2UgbmV3IGdzdF9jYXBzX3Rha2UoKSBpbiB0eXBlZmluZAoKMjAxMS0xMi0wNSAxMDoyMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG9sZCBtZXRob2RzCgoyMDExLTEyLTA0IDIxOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhbGxvdyBub24tam9pbmFibGUgdGhyZWFkcyBpbiBwcml2YXRlIGdfdGhyZWFkX2NyZWF0ZSgpIGNvcHkKCSAgTG9va3MgbGlrZSBzb21lIHRlc3RzIHVzZSBub24tam9pbmFibGUgdGhyZWFkcyBhZnRlciBhbGwuCgoyMDExLTEyLTA0IDE1OjQyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSByZW1vdmVkIHRhZyBsaXN0IGZ1bmN0aW9ucyBmcm9tIGRvY3MgYXMgd2VsbAoKMjAxMS0xMi0wNCAxNTozODowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0b2JqZWN0LmgKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaAoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYwoKMjAxMS0xMi0wNCAxNDozODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3N0YXRpY19yZWNfbXV0ZXhfKiBtb3N0bHkKCSAgR1N0YXRpY1JlY011dGV4IGlzIHBhcnQgb2Ygb3VyIEFQSS9BQkksIG5vdCBtdWNoIHdlIGNhbiBkbyBoZXJlIGluIDAuMTAuCgoyMDExLTEyLTA0IDEzOjM1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBXb3JrIGFyb3VuZCBkZXByZWNhdGVkIHRocmVhZCBBUEkgaW4gZ2xpYiBtYXN0ZXIKCSAgQWRkIHByaXZhdGUgcmVwbGFjZW1lbnRzIGZvciBkZXByZWNhdGVkIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfbXV0ZXhfbmV3KCksIGdfbXV0ZXhfZnJlZSgpLCBnX2NvbmRfbmV3KCkgZXRjLiwgbW9zdGx5CgkgIHRvIGF2b2lkIHRoZSBkZXByZWNhdGlvbiB3YXJuaW5ncy4gV2UgY2FuJ3QgY2hhbmdlIG1vc3Qgb2YKCSAgdGhlc2UgaW4gMC4xMCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiBvdXIgQVBJIGFuZCBBQkkuCgoyMDExLTEyLTA0IDEzOjA5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IGdfdGhyZWFkX2NyZWF0ZSgpIGlzIGRlcHJlY2F0ZWQgaW4gR0xpYiBtYXN0ZXIsIHVzZSBnX3RocmVhZF90cnlfbmV3KCkgaW5zdGVhZAoKMjAxMS0xMi0wNCAxMzowNDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IGluaXRpYWxpc2UgR0Vycm9yIHZhcmlhYmxlcyB0byBOVUxMCgoyMDExLTEyLTA0IDExOjQzOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlcwoKMjAxMS0xMi0wNCAxMTo0MjozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgoyMDExLTEyLTA0IDExOjMyOjU3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogSW5pdGlhbGl6ZSB3aXRoIHByb3BlciB0eXBlCgoyMDExLTEyLTAzIDE3OjQwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZ190aHJlYWRfaW5pdCgpIGlzIGRlcHJlY2F0ZWQgaW4gZ2xpYiBtYXN0ZXIKCSAgSXQncyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDExLTEyLTAzIDE2OjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1cGRhdGUgZm9yIHRocmVhZCBBUEkgZGVwcmVjYXRpb25zIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTAzIDE1OjM2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHVwZGF0ZSBmb3IgdGhyZWFkIEFQSSBkZXByZWNhdGlvbnMgaW4gZ2xpYiBtYXN0ZXIKCjIwMTEtMTItMDMgMTU6MTg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogcmVtb3ZlIGdzdF90YWdfbGlzdF9nZXRfe2NoYXIsdWNoYXJ9CgkgIFRob3NlIGFyZSB1bnVzZWQgYW5kIHNob3VsZCBuZXZlciBiZSB1c2VkIGFueXdoZXJlIGFueXdheQoJICByZWFsbHkuCgoyMDExLTEyLTAzIDE0OjA2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG1hY3JvcyB0aGF0IG5vIGxvbmdlciBleGlzdAoKMjAxMS0xMi0wMyAxMzo1ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZ190aHJlYWRfY3JlYXRlKCkgaXMgZGVwcmVjYXRlZCBpbiBHTGliIG1hc3RlciwgdXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkCgoyMDExLTEyLTAzIDA3OjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIGR0cyBhbmQgcHRzIGZvciBzeW5jCgkgIEZpcnN0IHVzZSBEVFMsIHRoZW4gZmFsbCBiYWNrIHRvIFBUUyBmb3Igc3luY2hyb25pemF0aW9uLgoKMjAxMS0xMi0wMyAwNzowMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDExLTEyLTAzIDA2OjQ1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcHJlcm9sbCBmdW5jdGlvbnMKCSAgSW5saW5lIGEgZnVuY3Rpb24gdGhhdCBpcyBvbmx5IGNhbGxlZCBmcm9tIG9uZSBwbGFjZSB0byBtYWtlIHRoaW5ncyBhIGxpdHRsZQoJICBlYXNpZXIgdG8gZm9sbG93LgoKMjAxMS0xMi0wMyAwNjoyOTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgY2xlYW51cHMKCSAgRG9uJ3QgcGFzcyBhcm91bmQgdGhlIG9iamVjdCB0eXBlLCB3ZSBjYW4gZmluZCB0aGF0IHZlcnkgZWZmaWNpZW50bHkgZnJvbSB0aGUKCSAgb2JqZWN0IGl0c2VsZiBub3cuCgoyMDExLTEyLTAyIDIzOjEzOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgbWV0aG9kIG5hbWVzCgoyMDExLTEyLTAyIDIyOjUwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcmVuZGVyX29iamVjdCBpbnRvIGNoYWluCgkgIE1lcmdlIHRoZSByZW5kZXJfb2JqZWN0IGNvZGUgd2l0aCB0aGUgY2hhaW4gbWV0aG9kLiBJdCBpcyBvbmx5IGNhbGxlZCBmcm9tIHRoZXJlCgkgIGFuZCB0aGVyZSBhcmUgcXVpdGUgYSBmZXcgdmFyaWFibGVzIHRoYXQgY2FuIGJlIHJldXNlZCB0byBtYWtlcyB0aGluZ3MgbGVzcwoJICBjb25mdXNpbmcuCgoyMDExLTEyLTAyIDIyOjM2OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgbW9yZSBjb2RlIG5vdyB0aGF0IHRoZSByZW5kZXJfb2JqZWN0IGV0aG9kIGlzIG9ubHkKCSAgY2FsbGVkIHdpdGggYnVmZmVycyBvciBidWZmZXJsc3RzLgoKMjAxMS0xMi0wMiAyMjoyMDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIGV2ZW50IGhhbmRsaW5nCgkgIEFkZCBuZXcgd2FpdF9lb3Mgdm1ldGhvZCB0byB3YWl0IGZvciB0aGUgZW9zIHRpbWVvdXQgYmVmb3JlIHBvc3RpbmcgdGhlIEVPUwoJICBtZXNzYWdlIG9uIHRoZSBidXMuCgkgIEFkZCBkZWZhdWx0IGV2ZW50IGhhbmRsZXIuIE1vdmUgdGhlIGRlZmF1bHQgZXZlbnQgYWN0aW9ucyBpbiB0aGVyZS4gQ2FsbCB0aGUKCSAgZXZlbnQgdm1ldGhvZCBmcm9tIHRoZSBwYWQgZXZlbnQgaGFuZGxlci4gU3ViY2xhc3NlcyBhcmUgbm93IHN1cHBvc2VkIHRvIGNoYWluCgkgIHVwIHRvIHRoZSBwYXJlbnQgZXZlbnQgaGFuZGxlciBvciB1bnJlZiB0aGUgZXZlbnQgYW5kIGRvIHRoZWlyIG93biB0aGluZy4KCSAgQXZvaWQgcGFzc2luZyB1bnVzZWQgcGFyYW1ldGVycyB0byBmdW5jdGlvbnMuCgoyMDExLTEyLTAyIDEzOjE5OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHVubG9jayBjbG9jayB3YWl0IHdoZW4gYXBwcm9wcmlhdGUKCSAgLi4uIG5vdGFibHkgRkxVU0ggYW5kIHN0YXRlIGNoYW5nZSB0byBSRUFEWS4KCjIwMTEtMTItMDIgMTM6MzU6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwCgkgIEF2b2lkIHBhc3NpbmcgYXJvdW5kIHRoZSBzZWdtZW50LgoKMjAxMS0xMi0wMiAxMzoyODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVtb3ZlIGNsaXBfc2VnbWVudAoJICBXZSBvbmx5IG5lZWQgb25lIHNlZ21lbnQgbm93IHRoYXQgdGhlIHByZXJvbGwgcXVldWUgaXMgZ29uZS4KCjIwMTEtMTItMDIgMTI6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIGNsZWFudXBzCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucywgaW5saW5lIHRoZSBjb2RlLgoJICBSZW1vdmUgdGhlIHF1ZXVlX29iamVjdCBmdW5jdGlvbnMsIHdlIGNhbiBwcm9jZWVkIHdpdGggdGhlIHJlbmRlcmluZwoJICBpbW1lZGlhdGVseS4KCjIwMTEtMTItMDIgMTI6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSB0aGUgcHJlcm9sbCBxdWV1ZSBhbmQgcHJvY2VlZCBkaXJlY3RseSB0byB0aGUgcmVuZGVyaW5nIG9mIG9iamVjdHMuCgoyMDExLTEyLTAxIDIzOjM1OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZXZlbnQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMi0wMSAxODo1MDozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2Ugc29tZSB0YWdzIG9mIHR5cGUgR3N0U2FtcGxlCgkgIE1ha2UgdGhlIGltYWdlIGFuZCBhdHRhY2htZW50IHRhZ3Mgb2YgdHlwZSBHc3RTYW1wbGUgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZQoJICBleHRyYSBjYXBzIGFuZCBpbmZvIGFsb25nIHdpdGggdGhlIGJ1ZmZlciBkYXRhLgoKMjAxMS0xMi0wMSAxODo0OTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IHJlbW92ZSBjb25zdAoJICBUaGUgd3JpdGFiaWxpdHkgb2YgdGhlIHN0cnVjdHVyZSBpcyBlbnN1cmVkIGJ5IHRoZSByZWZjb3VudCBvZiB0aGUgcGFyZW50CgkgIG1pbmlvYmplY3QgYW5kIHdlJ3JlIGZpbmUgaWYgdGhlIHBhcmVudCBpcyB3cml0YWJsZS4KCjIwMTEtMTItMDEgMTY6NDY6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBsYXN0LWJ1ZmZlciAtPiBsYXN0LXNhbXBsZQoJICBSZW5hbWUgdGhlIGxhc3QtYnVmZmVyIHByb3BlcnR5IHRvIGxhc3Qtc2FtcGxlIGFuZCBtYWtlIGl0IHJldHVybiB0aGUgbmV3CgkgIEdzdFNhbXBsZSB0eXBlIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUgY2FwcyBhbmQgdGltaW5nIGluZm8gaW4gb25lIG5pY2UgYnVuZGxlLgoKMjAxMS0xMi0wMSAxNjozNzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNhbXBsZTogYWRkIG5ldyBzYW1wbGUgbWluaW9iamVjdAoJICBBZGQgYSBuZXcgc2ltcGxlIG1pbmlvYmplY3QgdGhhdCBpcyBhIGNvbWJpbmF0aW9uIG9mIGEgR3N0QnVmZmVyLCBHc3RDYXBzLAoJICBHc3RTZWdtZW50IGFuZCBvdGhlciBhcmJpdHJhcnkgaW5mbyBvcmdhbml6ZWQgaW4gYSBHc3RTdHJ1Y3R1cmUuIFRoaXMgb2JqZWN0IGNhbgoJICBiZSB1c2VkIHRvIGV4Y2hhbmdlIHNhbXBsZXMgYmV0d2VlbiBhbiBlbGVtZW50IGFuZCB0aGUgYXBwbGljYXRpb24gb3IgZm9yCgkgIHN0b3JpbmcgYWxidW0gYXJ0IGluIHRhZ3MgZXRjLgoKMjAxMS0xMi0wMSAxNjoyNTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB1c2UgR1NUX01FU1NBR0VfU09VUkNFX05BTUUoKSB3aGljaCBhbHNvIHRha2VzIGNhcmUgb2Ygc3JjPU5VTEwuCgoyMDExLTEyLTAxIDE1OjM1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0xMi0wMSAxNTozNTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTEyLTAxIDE1OjM0OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNvcHkgZmxhZyBmb3IgbWV0YQoJICBBZGQgYSBmbGFnIHRvIGNvbnRyb2wgaWYgdGhlIG1ldGEgc2hvdWxkIGJlIGNvcGllZCBvciBub3QgaW5zdGVhZCBvZiBhbHdheXMKCSAgY29weWluZy4KCjIwMTEtMTEtMjkgMTk6MDg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2xkIHByb3BlcnR5CgoyMDExLTExLTMwIDEzOjU5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgaW50ZXJzZWN0IHRoZSBzdWdnZXN0ZWQgc2luayBjYXBzIHdpdGggdGhlIHBlZXIgY2FwcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBnZXQgY29ycmVjdCBhbmQgY29tcGxldGUgY2Fwcy4gVGhlIHN1Z2dlc3RlZCBjYXBzCgkgIGNvdWxkIGJlIGluY29tcGxldGUsIGUuZy4gdmlkZW8veC1yYXctcmdiIHdpdGhvdXQgYW55IGZpZWxkcywgYW5kIGJ5CgkgIGludGVyc2VjdGluZyB3aXRoIHRoZSBwZWVyIGNhcHMgd2UgZ2V0IHNvbWV0aGluZyB1c2FibGUuCgkgIEZpeGVzIGJ1ZyAjNjYyMTk5LgoKMjAxMS0xMS0zMCAxMjozOTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtb3ZlIEZJWE1FIGxvZyBsZXZlbCBhZnRlciBXQVJOSU5HCgkgIFNvIGl0J3Mgbm93IEVSUk9SIDwgV0FSTklORyA8IEZJWE1FIDwgSU5GTyBhbmQgKjo1IGJlY29tZXMgKjo2LgoKMjAxMS0xMS0zMCAwMDoyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHdhcm4gYW5kIGZhaWwgaW5zdGVhZCBvZiBjcmVhdGluZyBuZXdzZWdtZW50IGV2ZW50cyBpbiBHU1RfRk9STUFUX1VOREVGSU5FRAoKMjAxMS0xMS0yOSAxNTo1MzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBrZWVwIHRoZSBlbGVtZW50IGZsYWdzIHVwLXRvLWRhdGUKCSAgS2VlcCB0aGUgcmVxdWlyZS9wcm92aWRlX2Nsb2NrIGZsYWdzIHVwIHRvIGRhdGUuCgoyMDExLTExLTI5IDExOjQ3OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHNvdXJjZSBhbmQgc2luayBwYWRzIHByb3h5IGNhcHMKCjIwMTEtMTEtMjggMjE6MTU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI4IDE4OjIzOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgdXBkYXRlIGZvciBpbmRleGFibGUgY2hhbmdlCgoyMDExLTExLTI4IDE4OjEyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBpbmRleGFibGUgZmxhZwoJICBSZW1vdmUgdGhlIGlzX2luZGV4YWJsZSBtZXRob2QgY2hlY2sgYW5kIHVzZSBhbiBlbGVtZW50IGZsYWcgdG8gY2hlY2sgaWYgdGhlCgkgIGVsZW1lbnQgY2FuIHVzZSBhbiBpbmRleC4KCjIwMTEtMTEtMjggMTc6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTExLTI4IDE3OjIyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBlbGVtZW50OiB1c2UgZmxhZ3MgZm9yIHJlcXVpcmUvcHJvdmlkZSBjbG9jawoJICBSZW1vdmUgdGhlIF9yZXF1aXJlL19wcm92aWRlX2Nsb2NrKCkgbWV0aG9kcyBhbmQgdXNlIGVsZW1lbnQgZmxhZ3MgdG8gbWFyawoJICBlbGVtZW50cyBpbnN0ZWFkIG9mIGxvb2tpbmcgYXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB2bWV0aG9kLgoKMjAxMS0xMS0yOCAxNjo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBlbGVtZW50OiBjbGVhbiB1cCBlbGVtZW50IGZsYWdzCgkgIENsZWFuIHVwIHRoZSBlbGVtZW50IGZsYWdzCgoyMDExLTExLTI4IDE1OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgc3RpY2t5IGN1c3RvbSBxdWFyawoKMjAxMS0xMS0yOCAxNDoyNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IF9DQVBTX0ZMQUdTXyAtPiBDQVBTX0ZMQUdfCgoyMDExLTExLTI4IDEyOjMwOjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZV9mcm9tX3N0YXRpYwoJICBUaGlzIGZ1bmN0aW9uIGhlbHBzIGVuc3VyZSB0aGUgcGFkIHRlbXBsYXRlIGlzIHVucmVmZmVkCgkgIHdpdGhvdXQgaGF2aW5nIHRvIGNvbXBsaWNhdGUgdGhlIGNhbGxpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY2NAoKMjAxMS0xMS0yOCAxMzo1NDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBIYW5kbGUgc3RpY2t5IGV2ZW50IGVycm9ycwoJICBVc2UgR3N0Rmxvd1JldHVybiB0byBpbnRlcm5hbGx5IHBhc3MgZXZlbnRzIGJldHdlZW4gcGFkcy4KCSAgV2hlbiB3ZSBzdGlja3kgZXZlbnRzIGNhdXNlIGFuIGVycm9yLCB0cmFuc2xhdGUgdGhpcyBlcnJvciBpbnRvIGEgR3N0Rmxvd1JldHVybi4KCSAgQ2FwcyBldmVudHMgd2lsbCwgZm9yIGV4YW1wbGUsIGdlbmVyYXRlIGEgTk9UX05FR09USUFURUQgcmV0dXJuIHdoZW4gdGhlIGV2ZW50CgkgIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IuCgkgIFRoaXMgYWxsb3dzIHVzIHRoZW4gdG8gcmVmdXNlIHNlbmRpbmcgYnVmZmVycyBpZiBvbmUgb2YgdGhlIHN0aWNreSBldmVudHMgaXMKCSAgcmVmdXNlZCBhbmQgZ2VuZXJhdGUgYSBjb3JyZWN0IGVycm9yIHJldHVybiB2YWx1ZS4KCjIwMTEtMTEtMjggMTM6NTI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBkb24ndCByZXR1cm4gRkFMU0UgZnJvbSBldmVudHMKCSAgUmV0dXJuaW5nIEZBTFNFIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIgc2h1dHMgZG93biB0aGUgc2VuZGVyLgoKMjAxMS0xMS0yOCAxMzo1MToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogZml4IHJlZmNvdW50IGVycm9yCgoyMDExLTExLTI4IDExOjE1OjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdG1ldGE6IFNvbWUgbW9yZSBkb2NzCgoyMDExLTExLTI4IDEwOjU1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgY3VzdG9tIGRvd25zdHJlYW0gc3RpY2t5IGV2ZW50CgoyMDExLTExLTI4IDAxOjEyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHVwIGNvbW1lbnQgYWZ0ZXIgbWVyZ2UgZnJvbSAwLjEwCgoyMDExLTExLTI4IDAxOjExOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAwMToxMDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCByZWZhY3RvcmluZyBvZiBkcmFpbmluZy1vbi1lb3MsIG11bmdlIGZsb3cgcmV0dXJuIHRvIEZMT1dfT0sKCjIwMTEtMTEtMjggMDE6MDA6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdXAgbmV3IGJ1ZmZlcmxpc3QgY29kZSBmb3IgMC4xMQoKMjAxMS0xMS0yOCAwMDo0MDo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDExLTExLTAzIDEwOjM0OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGJ1ZmZlcmxpc3Qgc3VwcG9ydAoJICBXZSB3YW50IHRvIG1haW50YWluIGJ1ZmZlciBsaXN0cyBpZiBwb3NzaWJsZS4KCjIwMTEtMTEtMDMgMTM6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzcGxpdCBvdXQgZHJhaW5pbmcgb2YgcXVldWUgb24gRkxPV19VTkVYUEVDVEVEIGludG8gc2VwYXJhdGUgZnVuY3Rpb24KCjIwMTEtMTEtMDMgMDg6NTU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwYXNzIGl0ZW0gdHlwZSBlbnVtIHRvIF9lbnF1ZXVlIGluc3RlYWQgb2Ygc2ltcGxlIGlzYnVmZmVyIGJvb2xlYW4KCSAgQXZvaWRzIHNvbWUgdW5uZWNlc3NhcnkgR1NUX0lTX0VWRU5UKCkKCjIwMTEtMTEtMjcgMjA6MzI6MTQgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBmaXggY29tcGlsYXRpb24gd2FybmluZwoJICBHU1RfU1RBVElDX0NBUFMgaXMgbWlzc2luZyBpbml0aWFsaXplciBmb3IgR3N0TWluaU9iamVjdCdzIG5fd2Vha19yZWZzIGFuZAoJICB3ZWFrX3JlZnMgcmVzdWx0aW5nIGluIGNvbXBpbGF0aW9uIHdhcm5pbmcgKGxsdm0tZ2NjICAtV2FsbCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDkyNwoKMjAxMS0xMS0yNyAyMjoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjcgMjA6MzY6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHdhcm5pbmdzOiBhdm9pZCBzZXQtYnV0LXVudXNlZCB3YXJuaW5ncyB3aXRoIGxvYWQtc2F2ZSBkaXNhYmxlZAoKMjAxMS0xMS0yNiAxNzozNDoxMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJyb2tlbiBkZWZhdWx0IGNhcHMgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDg4MAoKMjAxMS0xMS0yNiAxOTo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjYgMTk6NDU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGZpeCB3cm9uZyBHX0dOVUNfTUFMTE9DCgkgIF9nZXRfcHJvdG9jb2xzKCkgcG9pbnRzIHRvIGNvbnN0IG1lbW9yeSBpbiAwLjEwCgkgIGRlc3BpdGUgdGhlIG5vbi1jb25zdCByZXR1cm4gdmFsdWUuCgoyMDExLTExLTI2IDE5OjQ0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXIuaAoJICBnc3QvZ3N0YnVmZmVybGlzdC5oCgkgIGdzdC9nc3RjYXBzLmgKCSAgZ3N0L2dzdGRhdGV0aW1lLmgKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmgKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmgKCSAgZ3N0L2dzdGluZGV4ZmFjdG9yeS5oCgkgIGdzdC9nc3RpdGVyYXRvci5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdG1pbmlvYmplY3QuaAoJICBnc3QvZ3N0cGlwZWxpbmUuaAoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0c2VnbWVudC5oCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuaAoJICBnc3QvZ3N0dGFnbGlzdC5oCgkgIGdzdC9nc3R1cmkuaAoJICBnc3QvZ3N0dmFsdWUuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oCgkgIE5vdGU6IGNhbid0IHVzZSBHX0dOVUNfTUFMTE9DIHdpdGggR3N0Q2FwcyByZXR1cm4KCSAgdmFsdWVzIGluIDAuMTEgYmVjYXVzZSBvZiB0aGUgRU1QVFkrQU5ZIHNpbmdsZXRvbnMuCgoyMDExLTExLTI2IDE4OjU4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGxpYnM6IHNwcmlua2xlIHNvbWUgR19HTlVDX01BTExPQwoJICBNYXliZSBnY2MgY2FuIGRvIHNvbWV0aGluZyBjbGV2ZXIgd2l0aCB0aGF0LCBvciBhdCBsZWFzdAoJICB3YXJuIHVzIGlmIHdlIGRvbid0IHNhdmUgdGhlIHJldHVybiB2YWx1ZSBzb21ld2hlcmUuCgoyMDExLTExLTI2IDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGdzdDogc3ByaW5rbGUgc29tZSBHX0dOVUNfTUFMTE9DCgkgIE1heWJlIGdjYyBjYW4gZG8gc29tZXRoaW5nIGNsZXZlciB3aXRoIHRoYXQsIG9yIGF0IGxlYXN0CgkgIHdhcm4gdXMgaWYgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlIHNvbWV3aGVyZS4KCjIwMTEtMTEtMjUgMjM6NTQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI1IDIzOjE1OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jcy4KCjIwMTEtMTEtMTYgMDE6MDQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfe3NldCxnZXR9X3FkYXRhKCkKCSAgQWxsb3dzIHBlb3BsZS91cyB0byBhdHRhY2ggYXJiaXRyYXJ5IG1ldGFkYXRhIHRvIGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ3MjAKCSAgQVBJOiBnc3RfYnVmZmVyX3NldF9xZGF0YSgpCgkgIEFQSTogZ2V0X2J1ZmZlcl9nZXRfcWRhdGEoKQoKMjAxMS0xMS0yNSAwNzoxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBibG9ja2luZyBwcm9iZSBlbWlzc2lvbgoJICBJZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgYmxvY2tpbmcgcHJvYmUsIG9ubHkgdGhlbiBjaGVjayBpZiBvbmUgdGhlCgkgIGJsb2NraW5nIGZsYWdzIG9mIHRoZSBob29rIG1hdGNoZXMuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE1ha2UgdGhlIHBhZCB1bml0IHRlc3QgbGVzcyByYWN5LgoKMjAxMS0xMS0yNCAxNzo0NzowOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgQWRkIHRlc3QgZm9yIFBBRF9QUk9CRV9UWVBFX0JMT0NLIGFuZCBQQURfUFJPQkVfVFlQRV9CTE9DS0lORwoKMjAxMS0xMS0yNSAwNTo1NDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRlYnVnIG9mIHF1ZXJ5IHJlc3VsdAoKMjAxMS0xMS0yNCAyMjo1MjoxOSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IHR5cG8gaW4gZG9jCgkgIENhdXNlcyBhIHdhcm5pbmcgZnJvbSB0aGUgaW50cm9zcGVjdGlvbiBzY2FubmVyLgoKMjAxMS0xMS0yNCAyMTozNjoxMiArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIGNoZWNrOiBkcm9wIGNhcHMgYXJndW1lbnQgZnJvbSBnc3RfY2hlY2tfc2V0dXBfe3NyYyxzaW5rfV9wYWQKCSAgQ2FsbGluZyBzZXRfY2FwcyBhdCB0aGF0IHBvaW50IGlzIG5vdCB1c2VmdWwgaW4gMC4xMCAoRklYTUUgY29tbWVudCEpLCBhbmQgaW4KCSAgMC4xMSBpdCBpcyB0b3RhbGx5IHBvaW50bGVzczogdGhlIGNhcHMgZXZlbnQgZG9lc24ndCBzdGljayB0byBhIGZsdXNoaW5nIHBhZC4KCjIwMTEtMTEtMjQgMTQ6MDc6MTQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcgoKMjAxMS0xMS0yNCAxMToyMzowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTEtMjQgMTE6MTU6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0ZWQgY2FwcyB0aGF0IGFyZSBub3QgYSBzdWJzZXQgb2YgdGhlIHBhZCBjYXBzCgkgIFRoaXMgY2hlY2sgaXMgY29ycmVjdCBidXQgdW5mb3J0dW5hdGVseSBpdCdzIGltcG9zc2libGUgdG8gaW1wbGVtZW50CgkgIGluIGEgdGhyZWFkc2FmZSB3YXkgYmVjYXVzZSB0aGUgY2FwcyBjb3VsZCBoYXZlIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoJICBGaXhlcyBidWcgIzY1OTYwNi4KCjIwMTEtMTAtMDMgMTI6MzQ6MjAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNoZWNrIGZpbGxlZCBzdGF0ZSBvZiBxdWV1ZXMgZXZlbiBpZiBhbm90aGVyIG9uZSBpcyBlbXB0eQoJICBUaGlzIHdpbGwgYXZvaWQgYSBjYXNlIHdoZXJlIG92ZXJydW4gaXMgbmV2ZXIgc2lnbmFsbGVkIGlmIHNvbWUKCSAgc3RyZWFtIG5ldmVyIHByb2R1Y2VzIGFueSBkYXRhLCBjYXVzaW5nIHBsYXliaW4yIHRvIG5vdCBlbmQgcHJlcm9sbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDc3OAoKMjAxMS0xMS0yNCAwOTozMToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBDaGVjayBmb3IgZGF0YWZsb3cgd2l0aCBpbmNvbXBhdGlibGUgY2FwcwoJICBUaGlzIHRlc3QgY3VycmVudGx5IGZhaWxzLCBidXQgaXMgdGhlcmUgdG8gZW5zdXJlIHdlIGZpeCB0aGlzIGlzc3VlCgkgIGFuZCBrZWVwIGl0IGZpeGVkLCBzaW5jZSBpdCBjb21wbGV0ZWx5IGJyZWFrcyBkZWxheWVkIG5lZ290aWF0aW9uCgkgIHVzZS1jYXNlcy4KCSAgVGhpcyBiZWhhdmlvdXIgc3RhcnRlZCBicmVha2luZyBzaW5jZQoJICBkZDY1YWFlOWExNzdmN2IxMWRjZWYwZjY5MGE3OGQ2OThmNjY3Y2Q0CgoyMDExLTExLTI0IDA5OjMxOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IEFkZCBjb21tZW50cyB0byBnc3RwYWQgdGVzdHMKCjIwMTEtMTEtMjQgMDk6MzA6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlICIjaWYgMCIgYmxvY2sgZm9yIGJlaGF2aW91ciB0aGF0IG5vdyB3b3JrcwoKMjAxMS0xMS0yNCAwOToyODozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgY29tbWVudGVkIGJsb2NrCgkgIFRoaXMgYmVoYXZpb3VyIGlzIGFjdHVhbGx5IHRlc3RlZCBpbiB0ZXN0X3B1c2hfdW5saW5rZWQKCjIwMTEtMTEtMjQgMDE6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG1ha2UgZ3N0LWluc3BlY3QgcHJpbnQgYSBuYXN0eSBkZWJ1ZyBtZXNzYWdlIGZvciBub24tZ3JhdGEgcHJvcGVydHkgdHlwZQoJICBUcnkgdG8gZXJhZGljYXRlIHByb3BlcnRpZXMgb2YgbG9uZy91bG9uZy9jaGFyL3VjaGFyIHR5cGUuCgoyMDExLTExLTIzIDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGV2ZW50OiBhZGQgU1RJQ0tZX01VTFRZIGV2ZW50cwoJICBBZGQgYSBuZXcgZXZlbnQgZmxhZyBmb3Igc3RpY2t5IGV2ZW50cyBzbyB0aGF0IG11bHRpcGxlIGV2ZW50cyBvZiB0aGF0IHR5cGUgY2FuCgkgIGJlIHN0b3JlZCBvbiBhIHBhZCBhdCB0aGUgc2FtZSB0aW1lLiBDaGFuZ2UgdGhlIF9nZXRfc3RpY2t5X2V2ZW50KCkgZnVuY3Rpb24gdG8KCSAgbG9vcCBvdmVyIHRoZSBtdWx0aXBsZSBldmVudHMgb2YgYSB0eXBlLgoJICBDaGFuZ2UgdGhlIGZvcmVhY2ggZnVuY3Rpb24gdG8gbWFrZSBpdCBwb3NzaWJsZSB0byByZW1vdmVkIGFuZCBtb2RpZnkgdGhlIHN0aWNreQoJICBldmVudHMgb24gYSBwYWQuCgkgIFVzZSBhbiB2YXJpYWJsZSBzaXplIGFycmF5IG5vdyB0byBzdG9yZSB0aGUgZXZlbnRzLiBUaGlzIGNvdWxkIGxhdGVyIGJlCgkgIG9wdGltaXplZCBzb21lIG1vcmUuCgoyMDExLTExLTIzIDE3OjM5OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhhbmRsZSBOVUxMIG1lc3NhZ2Ugc3JjIGluIGRlYnVnCgoyMDExLTExLTIzIDE3OjM4OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogYXZvaWQgcmVhZGluZyBwYXN0IHRoZSBhcnJheQoJICBXaGVuIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHRvbGQgdXMgdG8gcmVtb3ZlIHRoZSBidWZmZXIgZnJvbSB0aGUgbGlzdCwgZGVjcmVhc2UKCSAgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgb3IgZWxzZSB3ZSBtaWdodCByZWFkIHBhc3QgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCgoyMDExLTExLTIzIDEzOjQyOjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBvdGhlciBzaWRlJ3MgcGVlciBjYXBzIGlmIGdldF9zaW5rX2NhcHMgdmZ1bmMgaXMgbm90IGltcGxlbWVudGVkCgkgIFVzaW5nIGdzdF9wYWRfcHJveHlfZ2V0X2NhcHMoKSBicmVha3MgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQKCSAgcGFyc2VycyBiZWNhdXNlIGl0IHdpbGwgcHJvcGFnYXRlIHRoZSBvdGhlciBzaWRlJ3MgZmllbGRzIGxpa2UgInBhcnNlZCIKCSAgYW5kICJmcmFtZWQiIGFuZCBhbHNvIGJyZWFrcyBwYXJzZXIvY29udmVydGVycy4KCSAgRml4ZXMgYnVnICM2NjQyMjEuCgoyMDExLTExLTIzIDExOjAzOjE5ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBhZGQgbWV0aG9kIHRvIHdyaXRlIG91dCBhIGJ1ZmZlcgoJICBJbiAwLjEwLCB0aGlzIGNhbiBiZSBkb25lIHdpdGggYSBvbmUtbGluZXIgYnkgdXNpbmcgR1NUX0JVRkZFUl9EQVRBL1NJWkUgd2l0aAoJICBwdXRfZGF0YS4gQSAwLjExIHVzZXIgaGFzIHRvIHJlc29ydCB0byBnc3RfYnVmZmVyX21hcCwgd2hpY2ggaXMgbGVzcyBjb252ZW5pZW50CgkgIGFuZCBtaWdodCByZXF1aXJlIGEgbWVtY3B5IGludGVybmFsbHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMS0xMS0yMyAwODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHBlZXJwYWQgY29ycmVjdGx5CgkgIERvbid0IHRha2UgdGhlIHBlZXJwYWQgdG9vIGVhcmx5LCBpdCBtaWdodCBjaGFuZ2UgYmVjYXVzZSBvZiB0aGUKCSAgcHJvYmVzLgoKMjAxMS0xMS0yMiAxODozMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJld29yayBzdGlja3kgZXZlbnRzCgkgIFJld3JpdGUgc3RpY2t5IGV2ZW50cywgdHJ5aW5nIHRvIG1ha2UgaXQgYSBiaXQgbW9yZSBzaW1wbGUuCgkgIFdoZW4gc3RpY2t5IGV2ZW50cyBhcmUgcHVzaGVkIG9uIGEgc3JjcGFkLCBzdG9yZSB0aGVtIGluIHRoZSBzdGlja3kgZXZlbnQKCSAgYXJyYXkgYW5kIG1hcmsgdGhlIGV2ZW50IHdpdGggcmVjZWl2ZWQgPSBGQUxTRS4KCSAgV2hlbiB0aGUgc3RpY2t5IGV2ZW50IGlzIHN1Y2Nlc3NmdWxseSBzZW50IHRvIHRoZSBwZWVyIHBhZCwgbWFrZQoJICByZWNlaXZlZCA9IFRSVUUuCgkgIEtlZXAgYSBQRU5ESU5HX0VWRU5UUyBwYWQgZmxhZyB0aGF0IGlzIHNldCB3aGVuIG9uZSBvZiB0aGUgZXZlbnRzIGlzIGluCgkgIHRoZSByZWNlaXZlZCA9IEZBTFNFIHN0YXRlIGZvciBzb21lIHJlYXNvbi4KCSAgd2hlbiBhY3RpdmF0aW5nIGEgc2lua3BhZCwgbWFyayBhbGwgZXZlbnRzIHJlY2VpdmVkID0gRkFMU0Ugb24gdGhlIHBlZXIKCSAgc3JjcGFkLgoJICBXaGVuIHB1c2hpbmcgYSBidWZmZXIsIGNoZWNrIHRoZSBQRU5ESU5HX0VWRU5UUyBmbGFnIGFuZCBpZiBpdCBpcyBzZXQsIHB1c2ggYWxsCgkgIGV2ZW50cyB0byB0aGUgcGVlciBwYWQgZmlyc3QuCgoyMDExLTExLTIyIDE4OjMyOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIGxldCBjYXBzIGV2ZW50cyBnbyB0aHJvdWdoCgoyMDExLTExLTIyIDE2OjQzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBuZXcgZmxhZ3MKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBfbWFwKCkgdG8gZ2NvbnN0cG9pbnRlcgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyBvbiBPU1g6CgkgIGdzdGFkYXB0ZXIuaDo4Mjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgZ3N0YWRhcHRlci5jOjQxMjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgY29uc3QgZ3BvaW50ZXIgaXMgbm90IHRoZSBzYW1lIGFzIGdjb25zdHBvaW50ZXIgb3IgY29uc3Qgdm9pZCAqLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIyIDEyOjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMgZmlsZXMKCjIwMTEtMTEtMjIgMTI6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJICBwYWRkIHJldHVybiB2YWx1ZSBmcm9tIF9taW5pX29iamVjdF9yZXBsYWNlKCkKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TWC82NGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIxIDE3OjQ2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogaW1wcm92ZSBwYWQgdGVzdHMKCjIwMTEtMTEtMjEgMTc6NDM6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGxvY2tpbmcgb3JkZXIgZXJyb3IKCjIwMTEtMTEtMjEgMTc6NDM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBwcmludCBmb3JtYXQKCjIwMTEtMTEtMjEgMTU6NDc6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZGVzdHJveSBub3RpZnkgdG8gcGFkIGZ1bmN0aW9ucwoJICBBZGQgX2Z1bGwgdmFyaWFudHMgb2YgdGhlIHBhZCBmdW5jdGlvbiBzZXR0ZXJzIHRoYXQgdGFrZSBhIGRlc3Ryb3kgbm90aWZ5LgoJICBNYWtlIHNvbWUgbWFjcm9zIHRoYXQgbWFrZSB0aGUgb2xkIG1ldGhvZCBuYW1lIHBhc3MgTlVMTCB0byB0aGlzIG5ldwoJICBmdW5jdGlvbi4KCjIwMTEtMTEtMjEgMTM6Mjk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBwYWQ6IE1lcmdlIHBhZCBtb2RlIGFjdGl2YXRpb24gZnVuY3Rpb25zCgkgIEFkZCB0aGUgcGFkIG1vZGUgdG8gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGZ1bmN0aW9uCgkgIGZvciBhbGwgYWN0aXZhdGlvbiBtb2Rlcy4gVGhpcyBtYWtlcyB0aGUgY29yZSBsb2dpYyBzbWFsbGVyIGFuZCBhbGxvd3MgZm9yIHNvbWUKCSAgZWxlbWVudHMgdG8gbWFrZSB0aGVpciBhY3RpdmF0aW9uIGNvZGUgZWFzaWVyLiBJdCB3b3VsZCBhbGxvdyB1cyB0byBhZGQgbW9yZQoJICBzY2hlZHVsaW5nIG1vZGVzIGxhdGVyIHdpdGhvdXQgaGF2aW5nIHRvIGFkZCBtb3JlIGFjdGl2YXRlIGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTggMTg6MDg6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2MKCSAgYWxzbyBmaXggZGVmYXVsdCBhbGlnbm1lbnQgdmFsdWUgKDAgPT0gbm8tYWxpZ25tZW50KQoKMjAxMS0xMS0xOCAxNzoyNzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBxdWVyeTogaW1wcm92ZSBzY2hlZHVsaW5nIHF1ZXJ5CgkgIFR1cm5zIHNvbWUgYm9vbGVhbiBhcmd1bWVudHMgaW4gdGhlIHNjaGVkdWxpbmcgcXVlcnkgdG8gZmxhZ3MsIHdoaWNoIGFyZSBlYXNpZXIKCSAgdG8gZXh0ZW5kIGFuZCBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZC4KCSAgTWFrZSBleHRyYSBtZXRob2RzIGZvciBjb25maWd1cmluZyBhbmQgcXVlcnlpbmcgdGhlIHN1cHBvcnRlZCBzY2hlZHVsaW5nIG1vZGVzLgoJICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhZGQgbmV3IG1vZGVzIGxhdGVyLgoKMjAxMS0xMS0xOCAxNDowODo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogbW92ZSBmbGFncyBjbG9zZXIgdG8gYnVmZmVyaW5nIHF1ZXJ5CgoyMDExLTExLTE4IDEzOjQ2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTEtMTEtMTggMTI6MzU6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBwYWQ6IGZpeCBzY2hlZHVsaW5nIG1vZGUgZW51bXMKCSAgR3N0UGFkQWN0aXZhdGVNb2RlIC0+IEdzdFBhZE1vZGUKCSAgR1NUX1BBRF9BQ1RJVkFURV8qIC0+IEdTVF9QQURfTU9ERV8qCgoyMDExLTExLTE3IDE2OjE0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggZm9yIG5ldyBnZXRyYW5nZSBtZXRob2Qgc2lnbmF0dXJlCgkgIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZV9leHQgLT4gZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlCgoyMDExLTExLTE3IDEyOjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIG90aGVyIGZ1bmN0aW9ucwoJICBBZGQgcGFyZW50IHRvIGNoYWluLCBjaGFpbl9saXN0LCBnZXRyYW5nZSBhbmQgZXZlbnQgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNyAwODoyMTowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtb3ZlIGZpZWxkcyBvdXQgb2YgcmVzZXJ2ZWQgYW5kIHJlc3RvcmUgcGFkZGluZwoJICBEbyB0aGUgMC4xMSBBQkkgY2hhbmdlcy4gQWRkIGV4dHJhIGZpZWxkcyBmb3IgZGVzdHJveV9ub3RpZnkgYW5kIGRyb3AgdGhlIHFkYXRhCgkgIGhhY2suIFJlbmFtZSBfYWRkX3BhZF9mdWxsIHRvIF9hZGRfcGFkIGFuZCByZW1vdmUgdGhlIG9sZCBfYWRkX3BhZC4KCjIwMTEtMTEtMTYgMTc6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGFkZCBwYXJlbnQgdG8gaW50ZXJuYWwgbGlua3MKCjIwMTEtMTEtMTYgMTc6MjI6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byB0aGUgcXVlcnkgZnVuY3Rpb24KCjIwMTEtMTEtMTYgMTI6MzY6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIEdzdFBhZEZsYWdzOiByZW5hbWUgZmxhZ3MgR1NUX1BBRF8qIC0+IEdTVF9QQURfRkxBR18qCgoyMDExLTExLTE2IDEyOjEwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBwbHVnaW5zOiByZW1vdmUgb2Jzb2xldGUgcGFyZW50IGNoZWNrcwoKMjAxMS0xMS0xNiAxMjowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGtlZXAgdGhlIHBhcmVudCBhbGl2ZSB3aGVuIHJlcXVlc3RlZAoJICBBZGQgYSBuZXcgcGFkIGZsYWcgTkVFRF9QQVJFTlQgdGhhdCBlbnN1cmVzIHRoYXQgdGhlIHBhcmVudCBvZiBhIHBhZCBpcwoJICByZWZmZWQgYW5kIG5vdCBOVUxMIHdoZW4gdGhlIGV2ZW50LCBxdWVyeSBhbmQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zCgkgIGFyZSBjYWxsZWQuCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdG8gYW4gZWxlbWVudCBhdXRvbWF0aWNhbGx5IG1ha2Ugc3VyZSB0aGUgTkVFRF9QQVJFTlQgZmxhZwoJICBpcyBlbmFibGVkLgoKMjAxMS0xMS0xNiAxMDoyOTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb24ndCByZXF1aXJlIHBhcmVudCBlbGVtZW50IHRvIHByb3h5CgoyMDExLTExLTE2IDEwOjE2OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTExLTE1IDE4OjE2OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgcGFkOiBtb3ZlIHF1ZXJ5IGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0b2dldGhlcgoJICBNb3ZlIHRoZSBjYXBzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byB0aGUgb3RoZXIgcXVlcnkgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNSAxNzo1MDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBfcXVlcnlfcGVlcl8qKCkgLT4gX3BlZXJfcXVlcnlfKigpCgoyMDExLTExLTE1IDE3OjQwOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgX2FjY2VwdF9jYXBzKCkgLT4gX3F1ZXJ5X2FjY2VwdF9jYXBzKCkKCjIwMTEtMTEtMTUgMTc6MTE6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBfcGVlcl9nZXRfY2FwcygpIC0+IHBlZXJfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjQ2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBfZ2V0X2NhcHMoKSAtPiBfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjE2OjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZG9jcwoKMjAxMS0xMS0xNSAxNjoxMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHRoZSBwcm94eSBmdW5jdGlvbnMKCSAgZml4IHRoZSBwcm94eSBmdW5jdGlvbnMgZm9yIHF1ZXJ5X2FjY2VwdF9jYXBzIGFuZCBxdWVyeV9jYXBzIHRvIHVzZSB0aGUgcGFkCgkgIGZvcndhcmQgaGVscGVyIGZ1bmN0aW9ucyB3aGljaCBjb3JyZWN0bHkgZm9yd2FyZHMgb24gdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgoyMDExLTExLTE1IDE2OjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGltcHJvdmUgc29tZSBmbGFnIG1hY3JvcwoKMjAxMS0xMS0xNSAxNjoxMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVidWcgbGluZQoKMjAxMS0xMS0xNSAxMToyMDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiByZW1vdmUgZ2V0Y2FwcyBhbmQgdXNlIGNhcHMgcXVlcnkKCSAgUmVtb3ZlIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBwYWQgYW5kIHVzZSB0aGUgQ0FQUyBxdWVyeSBmb3IKCSAgdGhlIHNhbWUgZWZmZWN0LgoJICBBZGQgUFJPWFlfQ0FQUyB0byB0aGUgcGFkIGZsYWdzLiBUaGlzIGluc3RydWN0cyB0aGUgZGVmYXVsdCBjYXBzIGV2ZW50IGFuZCBxdWVyeQoJICBoYW5kbGVycyB0byBwYXNzIG9uIHRoZSBDQVBTIHJlbGF0ZWQgcXVlcmllcyBhbmQgZXZlbnRzLiBUaGlzIHNpbXBsaWZpZXMgYSBsb3QKCSAgb2YgZWxlbWVudHMgdGhhdCBwYXNzdHJvdWdoIGNhcHMgbmVnb3RpYXRpb24uCgkgIE1ha2UgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIHRvIHByb3h5IGNhcHMgcXVlcmllcyBhbmQgYWdncmVnYXRlIHRoZSByZXN1bHQuIE5lZWRzCgkgIHRvIHVzZSB0aGUgcGFkIGZvcndhcmQgZnVuY3Rpb24gaW5zdGVhZCBsYXRlci4KCSAgTWFrZSB0aGUgX3F1ZXJ5X3BlZXJfIHV0aWxpdHkgZnVuY3Rpb25zIHVzZSB0aGUgZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkgZnVuY3Rpb24gdG8KCSAgbWFrZSBzdXJlIHRoZSBwcm9iZXMgYXJlIGVtaXRlZCBwcm9wZXJseS4KCjIwMTEtMTEtMTQgMTE6MjY6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBjYXBzIHF1ZXJ5CgoyMDExLTExLTE0IDA5OjU3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogcmVtb3ZlIEdTVF9RVUVSWV9MQVNUCgoyMDExLTExLTE0IDEwOjI3OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBmaXggZG9jcwoKMjAxMS0xMS0xMiAxMDoyOTozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgZnVuY3Rpb25zIHRvIGFkZC9yZW1vdmUgY29udHJvbGxlZCBwcm9wZXJ0aWVzCgkgIE1ha2UgdGhhdCBpbXBsaXppdCB3aXRoIGF0dGFjaGluZy9kZXRhY2hpbmcgY29udHJvbHNvdXJjZXMuIFRoaXMgaXMgYSBsb3QgZWFzaWVyCgkgIGFuZCBoYXMgbGVzcyBpbnZhbGlkIHN0YXRlIChjb250cm9sbGVkIHByb3BlcnR5IHdpdGhvdXQgY29udHJvbCBzb3VyY2UpLgoKMjAxMS0xMS0xMyAyMzoyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZml4IGRvY3Mgc29tZSBtb3JlCgoyMDExLTEwLTI4IDE2OjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI4IDE2OjA4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCBzZWdtZW50IGNoZWNrCgoyMDExLTEwLTI4IDE1OjUyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogcmVtb3ZlIEdTVF9TRUVLX1RZUEVfQ1VSCgoyMDExLTEwLTI4IDE1OjUyOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0yOCAxMzowMjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSAgYml0cmVhZGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMzowMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTI6MzE6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjg6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMS0xMC0yOCAxMjoxNzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjaGVjazogYWxzbyBkZWJ1ZyB0aGUgRFRTCgoyMDExLTEwLTI4IDEyOjE2OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiB1c2UgcHRzL2R0cyBvbiBidWZmZXJzCgoyMDExLTEwLTI4IDEyOjI0OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCB0aW1lc3RhbXAgY29tcGF0IGRlZmluZXMKCjIwMTEtMTAtMjggMTI6MTU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgYnVmZmVyOiBhZGQgcHRzL2R0cyB0byBidWZmZXJzCgoyMDExLTEwLTI4IDExOjUzOjMyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHNvIGZ1c2ggdGhlIGNhY2hlIHdoZW4gY2hhbmdpbmcgdGhlIHVwc3RyZWFtIGNhcHMgc3VnZ2VzdGlvbgoKMjAxMS0xMC0yOCAxMTo1MDoyMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIGRlYnVnIG91dHB1dCB3aGVuIHJldHVybmluZyBhIGNhY2hlZCB0cmFuc2Zvcm0KCjIwMTEtMTAtMjggMTE6MzM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDExOjMwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29vbGVjdHBhZHMyOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMjggMTE6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDEwOjU0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogRml4IHJlZmNvdW50IGhhbmRsaW5nIGlmIGEgYnVmZmVyIHdhcyBkcm9wcGVkIGR1ZSB0byBjbGlwcGluZwoKMjAxMS0xMC0yOCAxMDozNzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgdGhlIGNsaXAgYW5kIHByZXBhcmVfYnVmZmVyIGZ1bmN0aW9uIGludG8gb25lCgoyMDExLTEwLTI4IDEwOjE3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgY2xpcHBpbmcgQVBJIGZyb20gb2xkIGNvbGxlY3RwYWRzCgoyMDExLTEwLTI4IDA5OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiBuYW1lIHNob3cgdXAgaW4gZ3N0LWluc3BlY3QKCjIwMTEtMDktMjcgMTU6NDg6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhdm9pZCBoYW5naW5nIGluIGNhc2Ugb2Ygc3BhcnNlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIC4uLiBpbiB0aGUgZXh0ZW50IHRoYXQgYSBub24td2FpdGluZyBwYWQgKHNvIGluZGljYXRlZCBieSBuZXdzZWdtZW50KQoJICB0dXJucyBvdXQgdG8gcHJvdmlkZSB0aGUgYmVzdCBidWZmZXIsIHdoaWNoIGlzIHRoZW4gZm9yY2VkIHRvIHdhaXRpbmcKCSAgZm9yIGJvb2sta2VlcGluZyBwdXJwb3NlcywgYnV0IHRoYXQgc2hvdWxkIG9ubHkgYmUgdGVtcG9yYXJ5LgoJICBTZWUgYnVnICM0MTU3NTQuCgoyMDExLTEwLTI4IDA5OjM4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMTAtMjggMDk6MzU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgY29sbGVjdHBhZHMyOiBBZGQgdG8gdGhlIGRvY3VtZW50YXRpb24KCjIwMTEtMTAtMjggMDk6MjY6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBjb2xsZWN0cGFkczIgQVBJCgoyMDExLTEwLTI4IDA5OjE4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGJhc2U6IEFkZCBjb2xsZWN0cGFkczIKCSAgVGhpcyBoYW5kbGVzIG11eGluZyBvZiBzcGFyc2Uvc3VidGl0bGUgc3RyZWFtcyBhbmQgaGFzCgkgIGxvdHMgb2YgY2xlYW51cC4gU3RpbGwgbWlzc2luZyBpcyBzcGVjaWFsIHN1cHBvcnQgZm9yCgkgIGxpdmUgc3RyZWFtcyBidXQgdGhpcyBjYW4gYmUgYWRkZWQgbGF0ZXIgd2l0aG91dCBicmVha2luZwoJICBBUEkvQUJJLgoJICBCYXNlZCBvbiB0aGUgdmVyc2lvbiBmcm9tIHRoZSB2aWRlb21peGVyIHBsdWdpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTc1NAoKMjAxMS0xMC0yNyAxNzowOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNzowOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTAtMjcgMTc6MDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgZW1wdHlfc2ltcGxlIHZhcmlhbnRzCgoyMDExLTEwLTI3IDE2OjUxOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNDo1NjoyNCArMDEwMCAgSm9oYW4gQm91bMOpIDxib2hhbi5nbm9tZUByZXRyb3BhZ2FuZGEuaW5mbz4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVEIGZvciBnc3RfY2Fwc19uZXdfc2ltcGxlKCkgYW5kIGdzdF9jYXBzX25ld19mdWxsKCkKCSAgSWYgeW91IGdldCB3YXJuaW5ncywgdXNlIGdzdF9jYXBzX25ld19lbXB0eSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDE1OjI3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI3IDEzOjI1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X3N0cnVjdHVyZV9uZXcoKQoJICBJZiB5b3UgZ2V0IGEgd2FybmluZywgdXNlIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMzNDYKCjIwMTEtMTAtMjcgMjM6MDg6MTQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggcmVmY291bnQgbGVhawoJICBEb24ndCBsZWFrIHBlZXJjYXBzIGFuZCBhIHJlZiB0byB0aGUgYmFzZXRyYW5zZm9ybSB3aGVuIHJldHVybmluZwoJICB0aGUgY2FjaGVkIGNhcHMuCgoyMDExLTEwLTI3IDEwOjM4OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB3cm9uZyBvcmRlciBvZiBjYWxscyBpbiB0aGUgZG9jcy4KCjIwMTEtMTAtMjYgMTI6MjM6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGNsYXJpZnkgZG9jcyBmb3Igc3RlcCBldmVudAoKMjAxMS0xMC0xOCAyMzoxOTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBzdXBwb3J0IGZvciBHU1RfUkVHSVNUUllfUkVVU0VfUExVR0lOX1NDQU5ORVI9bm8KCSAgVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBzcGF3biBhIG5ldyBwbHVnaW4gc2Nhbm5lciBoZWxwZXIgZm9yIGVhY2ggcGx1Z2luCgkgIHRvIGJlIGludHJvc3BlY3RlZCwgd2hpY2ggaGVscHMgd2l0aCBtYWtpbmcgc3VyZSB3ZSBkb24ndCBsb2FkIHRvbyBtYW55CgkgIHNoYXJlZCBvYmplY3RzIChsaWJzLCBwbHVnaW5zKSBhdCB0aGUgc2FtZSB0aW1lIG9uIHN5c3RlbXMgd2hlcmUgdGhlcmUKCSAgaXMgYSBoYXJkIGxpbWl0IGxpa2Ugb24gQW5kcm9pZC4KCSAgQSBiZXR0ZXIgdmVyc2lvbiBtaWdodCByZS11c2UgdGhlIHNjYW5uZXIgZm9yIHVwIHRvIE4gdGltZXMsIHRob3VnaAoJICBpdCdzIG5vdCBjbGVhciB3aGV0aGVyIHRoYXQgd291bGQgYWN0dWFsbHkgaW1wcm92ZSB0aGluZ3MgZHJhbWF0aWNhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMDkxCgoyMDExLTEwLTIxIDEwOjIzOjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBObyBuZWVkIHRvIHJlcXVpcmUgd3JpdGFibGUgY2FwcyBmb3IgX2FwcGVuZC9fbWVyZ2Ugc2Vjb25kIGNhcHMKCSAgVGhlIHNlY29uZCBjYXBzIG93bmVyc2hpcCBpcyB0cmFuc2ZlcmVkLCBubyBuZWVkIHRvIHJlcXVpcmUgaXQgdG8KCSAgYmUgd3JpdGFibGUgZnJvbSB0aGUgY2FsbGVyIGZ1bmN0aW9uLiBJbnN0ZWFkLCBfYXBwZW5kIGFuZCBfbWVyZ2UKCSAgbWFrZSBpdCB3cml0YWJsZSBvbiB0aGVpciBvd24uCgkgIERpc2NvdmVyZWQgYmVjYXVzZSBvZiBhbiBhc3NlcnRpb24gb24gZW5jb2RpbmctcHJvZmlsZS5jIGluCgkgIF9nZXRfaW5wdXRfY2FwcyB1c2luZyBfbWVyZ2UgYnV0IG5vdCBwYXNzaW5nIHdyaXRhYmxlIGNhcHMuCgoyMDExLTEwLTIxIDE0OjIwOjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaW50ZXJmYWNlczogY2xlYW4gdXAgdGhlIHVzZSBvZiBpZmFjZSBhbmQgY2xhc3Mva2xhc3MKCjIwMTEtMTAtMjEgMTE6MTU6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBkb2NzL3JhbmRvbS9zdGF0dXMtMC4xMS0xNC1qdW4tMjAxMS50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBzcGVsbGluZyBhbmQgZm9ybWF0dGluZyBmaXhlcwoKMjAxMS0xMC0yMSAxMDo1Mjo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnaW5nIG9yaWdpbi9tYXN0ZXIKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YmluLmMKCSAgZ3N0L2dzdGJ1cy5jCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMTAtMjAgMTY6NTk6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBGaXggZG9jdW1lbnRhdGlvbiwgaXQncyBwcmVfcHVzaF9mcmFtZSBhbmQgbm90IHByZV9wdXNoX2J1ZmZlcgoKMjAxMS0xMC0yMCAxNDowMjo0NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2FjaGUgdHJhbnNmb3JtZWQgY2FwcyB3aGVyZSBhcHByb3ByaWF0ZQoJICBTcGVlZHMgdXAgbmVnb3RpYXRpb24gYSBmYWlyIGJpdCBvbiBhIGNvbnRyaXZlZCBwaXBlbGluZQoJICB3aXRoIGEgZG96ZW4gY29sb3JzcGFjZSBjb252ZXJzaW9ucy4KCSAgSG9wZWZ1bGx5IGNsZWFycyBvdXQgdGhlIGNhY2hlIGV2ZXJ5IHRpbWUgaXQgb3VnaHQgdG8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyOTEKCjIwMTEtMTAtMjAgMTA6NDU6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBGaXggYnJva2VuIGFuZHJvaWQgYnVpbGRpbmcgZHVlIHRvIG5hbWUgY2hhbmdlIGluIDAxZDg3MjUwYTg0NWU1NWQ2CgoyMDExLTEwLTIwIDA4OjMxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2ViYXJzZTogQWRkIGRldGVjdCB2ZnVuYyB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIGRvIGZvcm1hdCBkZXRlY3Rpb24gYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6ZGV0ZWN0KCkKCSAgVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgZmlyc3QgYnVmZmVycyB1bnRpbCB0aGUgc3ViY2xhc3MgaGFzIGZpbmlzaGVkIGRldGVjdGlvbgoJICBhbmQgb25seSBhZnRlcndhcmRzIHRoZSBvcmlnaW5hbCBidWZmZXJzIGFyZSBoYW5kbGVkIGFzIGJlZm9yZS4gVGhlIHZmdW5jIGFsbG93cwoJICBkZXRlY3Rpb24gb2YgdGhlIHN0cmVhbSBmb3JtYXQgd2l0aG91dCBicmVha2luZyB0aGUgdXBzdHJlYW0gZnJhbWluZy4KCjIwMTEtMTAtMjAgMDg6NTc6NTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90IG9ubHkgZGVzY3JpYmUgY29uZGl0aW9ucyBpbiB0aGUgZG9jcywgYWxzbyBjaGVjayB0aGVtIGluIHRoZSBjb2RlCgkgIFdoZW4gYmxvY2tpbmcgcGFkcywgY2hlY2sgaWYgdGhlIHBhZCBpcyBpbiB0aGUgcmlndCBkaXJlY3Rpb24uIExvZyBzb21lIGluZm8KCSAgZm9yIHRoZSBkZXZlbG9wZXIgYW5kIHJldHVybiBGQUxTRSwgaW5zdGVhZCBvZiBqdXN0IGxvY2tpbmcgdXAuCgoyMDExLTEwLTE5IDIzOjA3OjQ2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZXZlcnQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9uYW1lIHRvIGNvbnN0IHN0cmluZyByZXR1cm4KCSAgUmV0dXJuaW5nIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBtYWtlcyBubyBzZW5zZS4gSXQncyB1bmV4cGVjdGVkIGZvciBhCgkgIGdldHRlciwgYW5kIGFsc28gdGhpcyBiZWhhdmVzIGRpZmZlcmVudGx5IGluIDAuMTAsIHNvIGl0IHdvdWxkIG1ha2UgZnV0dXJlCgkgIG1lcmdlcyBoYXJkZXIuCgkgIEV4Y2VwdCBmb3IgdGhlc2UgdHdvIHBsYWNlcyBoZXJlIGluIGNvcmUgd2hpY2ggd2VyZSB1cGRhdGVkIGZvciB0aGUgbmV3CgkgIHNlbWFudGljLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGdldHRpbmcgbGVha2VkIGFsbCBvdmVyIHRoZSBwbGFjZS4KCjIwMTEtMTAtMTkgMTI6MTI6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCAoc2tpcCkgYW5ub3RhdGlvbiB0byBnc3Rfb2JqZWN0X3JlZl9zaW5rCgoyMDExLTEwLTE5IDExOjU5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBnc3RpdGVyYXRvcjogQWRkIHNraXAgYW5ub3RhdGlvbiBmb3IgY3JlYXRpbmcgR3N0SXRlcmF0b3IKCSAgTm90IHJlYWxseSB1c2VmdWwgZm9yIGJpbmRpbmdzCgoyMDExLTA4LTI5IDEzOjU2OjE5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGludHJvc3BlY3Rpb246IFNraXAgZ3N0X3BvbGwgYXBpcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU1OjEzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIEdUeXBlIGFuZCBHVmFsdWUgdHJhbnNmb3JtIGFwaXMKCSAgVGhlc2UgZG8gbm90IG1ha2Ugc2Vuc2UgdG8gZXhwb3NlIHRvIGxhbmd1YWdlIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTQ6MjEgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAKCSAgSXQgdXNlcyBHT3B0aW9uR3JvdXAgd2hpY2ggaXMgbm90IHdyYXBwYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUzOjM5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBtaXNzaW5nIGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTI6MjYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBpbnRyb3NwZWN0aW9uOiBSZW5hbWUgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCB0byBnc3RfYnVzX2FkZF93YXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUwOjQwIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBTeW5jIGRvY3VtZW50YXRpb24gYXJndW1lbnRzCgkgIFRoZSBpbnRyb3NwZWN0aW9uIHNjYW5uZXIgd2FybnMgaWYgdGhlIGhlYWRlciBhbmQgdGhlIHNvdXJjZQoJICB1c2VzIG1pc21hdGNoaW5nIHBhcmFtZXRlciBuYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDowMiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3Rfc3RydWN0dXJlX2dldF90eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMTAtMTggMTk6MjE6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHByb3RlY3QgYWdhaW5zdCBudWxsIG1lc3NhZ2Ugc291cmNlcwoJICBNZXNzYWdlIHNvdXJjZXMgY2FuIGJlIG51bGwsIGNoZWNrIGlmIGl0IGlzIGJlZm9yZSB0cnlpbmcgdG8KCSAgYWNjZXNzIGl0cyBuYW1lLgoKMjAxMS0xMC0xOCAwODo0ODozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgc2luY2UgZG9jIHRvIG5ldyBnZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTEwLTE4IDE0OjA4OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nZ2luZzogbW9yZSBsb2dnaW5nIGFuZCBwcmVmZXIgaHVtYW4gcmVhZGFibGUgZGV0YWlscyBvdmVyIG1lbW9yeSBsb2NhdGlvbnMKCjIwMTEtMTAtMTggMTQ6MDU6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBpbXByb3ZlIGRpc3BsYXkgb2YgZ2hvc3QtIGFuZCBwcm94eXBhZHMKCSAgSGFuZGxlIHZpcnR1YWwgbGlua3MgYmV0d2VlbiBnaG9zdCBhbmQgcHJveHlwYWRzIHdoZW4gaXRlcmF0aW5nIHBhZHMgaW5zdGVhZCBvZgoJICB3aGVuIGxpbmtpbmcuIEJlc2lkZXMgdXNpbmcgbGVzcyBjb2RlIHRoaXMgcHJvdmlkZXMgYSBtb3JlIGFjY3VyYXRlIHBpY3R1cmUuCgoyMDExLTEwLTE4IDEzOjU0OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBnLWkgYW5ub3RhdGlvbnMgYW5kIHJlbW92ZSAiU2luY2U6IiBtYXJrZXJzCgoyMDExLTEwLTE3IDE0OjQyOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnZXRjYXBzIGZ1bmN0aW9uCgkgIEFkZHMgYSBnZXRjYXBzIGZ1bmN0aW9uIHRvIHRoZSBzaW5rIHBhZCB0byBtYWtlIHBhcnNlcnMgcHJvcGFnYXRlCgkgIGRvd25zdHJlYW0gY2FwcyByZXN0cmljdGlvbnMgdG8gdXBzdHJlYW0uCgkgIFRoZSBwaXBlbGluZSAiYXVkaW90ZXN0c3JjIG51bS1idWZmZXJzPTEwMCAhIGZhYWMgISBhYWNwYXJzZSAhCgkgICJhdWRpby9tcGVnLCB2ZXJzaW9uPShpbnQpNCwgc3RyZWFtLWZvcm1hdD0oc3RyaW5nKWFkdHMiICEgZmlsZXNpbmsiCgkgIHdvdWxkbid0IHdvcmsgYmVjYXVzZSBhYWNwYXJzZSB3b3VsZG4ndCBwcm9wYWdhdGUgdGhlIGFkdHMgcmVzdHJpY3Rpb24KCSAgdXBzdHJlYW0gdG8gZmFhYy4KCSAgVGhpcyBwYXRjaCBhZGRzIGEgZGVmYXVsdCBnZXRjYXBzIHRvIHRoZSBzaW5rIHBhZCB0byBzaW1wbHkgcHJveHkKCSAgZG93bnN0cmVhbSBjYXBzIGFuZCBhbHNvIGFkZHMgYSAnZ2V0X3NpbmtfY2FwcycgZnVuY3Rpb24gcG9pbnRlcgoJICB0byBHc3RCYXNlUGFyc2VDbGFzcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgbW9yZSByZWZpbmVkIGdldGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjE4NzQKCjIwMTEtMTAtMTggMTI6Mzk6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWxzbyB1cGRhdGUgdGhlIHN0cmVhbSB0aW1lCgoyMDExLTEwLTE4IDEwOjU4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIHF1ZXVlZCBmcmFtZXMKCSAgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9mcmFtZSgpIGFscmVhZHkgZnJlZXMgdGhlIGZyYW1lLCBubyBuZWVkIHRvCgkgIGRvIGl0IGFub3RoZXIgdGltZSBhZ2Fpbi4KCjIwMTEtMTAtMTcgMjE6Mzg6NTYgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogZml4IHBhZHRlbXBsYXRlIGxlYWsgaW4gc2VsZWN0b3IgdGVzdAoJICBJbiAwLjExLCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgcmV0dXJucyBhIHJlZmVyZW5jZS4KCjIwMTEtMTAtMTcgMjE6Mzc6MTcgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJ1ZmZlci9ldmVudCBsZWFrIHdoZW4gcGFkIGlzIGZsdXNoaW5nCgkgIEFwcGFyZW50bHkgdGhpcyBnb3QgbG9zdCB3aGlsZSByZWZhY3RvcmluZyBwcm9iZXMuCgoyMDExLTEwLTE3IDE3OjAwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgdGhlIG1lbW9yeSBmcm9tIHRoZSB0bXBidWYKCSAgV2UgdXNlIGEgdG1wYnVmIHRvIGhvbGQgYSB0ZW1wb3JhcnkgcG9pbnRlciB0byB0aGUgYWRhcHRlciBtZW1vcnkuIFdlIG5lZWQgdG8KCSAgcmVtb3ZlIHRoYXQgbWVtb3J5IHdoZW4gd2Ugbm8gbG9uZ2VyIG5lZWQgaXQuCgoyMDExLTEwLTE3IDEzOjU1OjM1ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHJhY2UgY29uZGl0aW9uIGFuZCBtZW1vcnkgbGVhayBpbiBnc3Rfc3RhdGljX2NhcHNfZ2V0CgkgIFRoaXMgd2FzIGxlYWtpbmcgdGhlIFB0ckFycmF5IGZyb20gY2Fwcy0+cHJpdiwgYXMgc2V0IHVwIGJ5IHRoZSBvdGhlciBjYWxsIHRvCgkgIGdzdF9jYXBzX2luaXQuIEFsc28sIHRoZSB0aHJlYWQgc2FmZXR5IGlzc3VlIHByZXNlbnRlZCBpbiB0aGUgY29tbWVudCBhYm92ZSB3YXMKCSAgbm90IHRha2VuIGNhcmUgb2YgYW55bW9yZS4gV2Ugbm93IHplcm8gdGhlIHJlZmNvdW50IGFnYWluIHdoZW4gcHVibGlzaGluZyB0aGUKCSAgc3RydWN0dXJlLgoJICBGaXhlcyAjNjYxNjI5LgoKMjAxMS0xMC0xNyAwOToyODo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogTWFrZSBBU1NFUlRfTUlOSV9PQkpFQ1RfUkVGQ09VTlQgbW9yZSB1c2VmdWwKCSAga25vd2luZyB3aGljaCBtaW5pb2JqZWN0IGZhaWxlZCBoZWxwcyB1cyBsb2NhdGUgaXQgaW4gZGVidWcgbG9ncwoKMjAxMS0xMC0xNyAwOToyODoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogTWFrZSBfY2hlY2tfYnVmZmVyX2RhdGEgYSBiaXQgbW9yZSB2ZXJib3NlCgoyMDExLTEwLTE3IDA5OjI3OjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBjaGVjazogRG9uJ3QgbGVhayB0aGUgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE3IDA5OjI3OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogRG9uJ3QgbGVhayBmZWF0dXJlIG5hbWUKCjIwMTEtMTAtMTYgMjE6MTI6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGdpdmUgd2F0Y2ggc291cmNlIGEgbmFtZQoJICBHaXZlIG91ciBHU291cmNlIGEgbWVhbmluZ2Z1bCBuYW1lLiBTb3VyY2UgbmFtZXMgY2FuIGJlCgkgIHVzZWQgZm9yIGRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nLCBmb3IgZXhhbXBsZSB3aXRoCgkgIHN5c3RlbXRhcCBvciBnZGIuCgoyMDExLTEwLTE0IDA5OjM1OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RidWZmZXI6IEFkZCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgZ3N0X2J1ZmZlcl9qb2luKCkKCjIwMTEtMTAtMTYgMTc6NDI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTE2IDE3OjAzOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTE2IDE0OjQ1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGZpeCBtb3JlIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNiAxNDoyMDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZXZlbnQuaAoKMjAxMS0xMC0xNiAxNDoxNzoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogY2xlYW4gdXAgcGFyZW50X2NsYXNzCgoyMDExLTEwLTE0IDEyOjU3OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFuIHVwIHBhcmVudF9jbGFzcyBoYW5kbGluZwoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE0IDA5OjI3OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlIGxpc3QKCjIwMTEtMTAtMTMgMTc6MzM6MDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHR5cG8gaW4gdGhlIGRvY3MKCjIwMTEtMTAtMTMgMTY6NDg6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBzaG93IGlmIGFuIGVsZW1lbnQgaXMgc3RhdGUtbG9ja2VkCgoyMDExLTEwLTEzIDE2OjQyOjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBsb2dnaW5nOiB1c2UgX09CSkVDVCB2YXJpYW50cyBtb3JlCgoyMDExLTEwLTEzIDEyOjIzOjU5ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBjYXBzIGxlYWsKCjIwMTEtMTAtMTMgMTA6MTk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfYnVmZmVyX3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAxMDoxODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfZXZlbnRfcmVwbGFjZSgpCgkgIFRoaXMgZ2l2ZXMgdXMgdHlwZSBjaGVja3MgYnkgdGhlIGNvbXBpbGVyIGFuZCBtb3JlIHVzZWZ1bCBjb21waWxlciBlcnJvcnMuCgoyMDExLTEwLTEzIDA4OjUxOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTEyIDE4OjE0OjAwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvIG5vdCB1bnJlZiB0aGUgaW50ZXJuYWwgcGFkIHR3aWNlCgkgIGdfdmFsdWVfdW5zZXQgc2hvdWxkIGFscmVhZHkgdW5yZWYgdGhlIGludGVybmFsIHByb3h5cGFkLCBubwoJICBuZWVkIHRvIGRvIGl0IGFnYWluCgoyMDExLTEwLTEyIDE3OjE3OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByb3Blcmx5IGFkanVzdCBzdGFydCB0aW1lCgkgIFdoZW4gd2UgZG8gYSBub24tZmx1c2hpbmcgc2VlayBhbmQgY2xvc2VkIHRoZSBjdXJyZW50IHNlZ21lbnQsCgkgIG1ha2Ugc3VyZSB0aGF0IHdlIG9wZW4gdGhlIG5leHQgc2VnbWVudCBmcm9tIHdoZXJlIHdlIGNsb3NlZC4KCjIwMTEtMTAtMTIgMTQ6Mzc6MzEgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCB0cmFuc2ZlciB0eXBlIGZvciBnc3RfZXZlbnRfbmV3X2NhcHMgYXJndW1lbnQKCSAgVGhlc2UgYW5ub3RhdGlvbnMgYXJlIHVzZWZ1bCB0byBodW1hbnMgYXMgd2VsbC4uLgoKMjAxMS0xMC0xMiAxNDozNDoyNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggY2FwcyBsZWFrCgkgIGdzdF9ldmVudF9uZXdfY2FwcyBkb2VzIG5vdCBzdGVhbCBhIHJlZmVyZW5jZSB0byB0aGUgY2Fwcy4KCjIwMTEtMTAtMTIgMTM6MzE6NDggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgdHJhbnNmZXIgdHlwZQoKMjAxMS0xMC0xMSAxMzo1NDo0NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogRml4IG1vcmUgbGVha3MKCjIwMTEtMTAtMTEgMTM6NTM6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERvbid0IGxlYWsgY2FwcwoKMjAxMS0xMC0xMSAxMzo1MTo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGEgY2FwcyBsZWFrIGFuZCBtb3ZlIGEgY29kZWJsb2NrCgkgIFRoZSByZXN1bHQgZnJvbSB0aGUgYmxvY2sgb2YgY29kZSB0aGF0IHdhcyBtb3ZlZCB3b3VsZCBvbmx5IGhhdmUKCSAgYmVlbiB1c2VkIGlmICdwZWVyY2Fwcycgd2FzIHByZXNlbnQuCgoyMDExLTEwLTExIDEzOjUxOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBNb3JlICd0cmFuc2ZlcicgYW5ub3RhdGlvbnMKCjIwMTEtMTAtMTAgMTk6NDE6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBjYXRjaCBpbnZhbGlkIGluc3RhbmNlIHNpemVzIGluIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgQWRkIGd1YXJkcyB0byBjYXRjaCBvdmVybHkgbGFyZ2UgaW5zdGFuY2Ugc2l6ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTk6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEl0IHdhcyBvbmx5IHJlYWxseSB1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURSwgYW5kIHRoYXQgaXMgbm8gbW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDk1NQoKMjAxMS0xMC0xMCAxMTo0Nzo0MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHRyeWluZyB0byBhbGxvYyBlbm9ybW91cyBidWZmZXIKCSAgSWYgYSBjbGFzcyBleHRlbmRpbmcgYmFzZXNyYyBkb2Vzbid0IHNldCBibG9ja3NpemUsIGJhc2VzcmMKCSAgd291bGQgdHJ5IHRvIGFsbG9jYXRlIGEgKGd1aW50KS0xIHNpemVkIGJ1ZmZlciwgd2hpY2ggaXMgZW5vcm1vdXMKCSAgYW5kIGxpa2VseSB3b3VsZCBmYWlsLgoJICBBdm9pZCBpdCBhbmQgZXJyb3Igb3V0LgoKMjAxMS0xMC0xMCAxNzoxNzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDE3OjA0OjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogSWYgd2UgZG9uJ3QgY29udHJvbCBhIHBhZC90ZW1wbGF0ZSwgcmV0dXJuIHByb3BlciBjYXBzCgkgIElmIHRoZXJlJ3MgYSBmaWx0ZXIsIHdlIGNhbiByZXR1cm4gdGhhdCBpbiBfZ2V0X2NhcHMoKQoKMjAxMS0xMC0xMCAxNjo1Mjo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogU3BlY2lmeSB0cmFuc2ZlciBmdWxsIGZvciBnc3RfcGFkX2dldF9jYXBzKCkKCSAgSXQgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSByZXR1cm5lZCBjYXBzLgoKMjAxMS0xMC0xMCAxMTowMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQWRkIGRlYnVnIHRvIGtub3cgd2hhdCBldmVudHMgYXJlIHRyYW5zZmVycmVkIGJldHdlZW4gcGFkcwoKMjAxMS0xMC0xMCAxMDozODoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogVW5zZXQgRU9TIGV2ZW50IG9uIEZMVVNIX1NUT1AKCjIwMTEtMTAtMDcgMTE6NDk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IERvbid0IGlnbm9yZSBkb3duc3RyZWFtIEZsb3dSZXR1cm4gd2l0aCBJRExFIHByb2JlcwoJICBJZiBwdXNoZ2luIGRvd25zdHJlYW0gcmV0dXJuZWQgYSBub24tb2sgdmFsdWUgKGxpa2UgR1NUX0ZMT1dfV1JPTkdfU1RBVEUpLAoJICB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCByZXR1cm5pbmcgYSBkaWZmZXJlbnQgdmFsdWUgKEdTVF9GTE9XX09LIGluIHRoaXMKCSAgY2FzZSkgaWYgSURMRSBwcm9iZXMgYXJlIHByZXNlbnQuCgoyMDExLTEwLTEwIDEzOjIzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjo1NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjI3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMTo0OTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6MzY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogYWRkIGNvbXBhdCBkZWZpbmUgZm9yIFVORVhQRUNURUQKCjIwMTEtMTAtMTAgMTE6MzM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTEtMTAtMTAgMTE6MzA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA5IDExOjQ5OjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVzdHM6IHRlZTogUmVtZW1iZXIgdG8gaW5pdGlhbGl6ZSB2YXJpYWJsZXMgdG8gTlVMTAoJICBhcHBfdGhyZWFkIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIHRvIE5VTEwsIG90aGVyd2lzZSB0ZXN0cwoJICB3aWxsIHRyeSB0byB1c2UgaXQgYW5kIGNyYXNoCgoyMDExLTEwLTA4IDIwOjU2OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBmb3IgY2hlY2stZXhwb3J0cyBzY3JpcHQgY2hhbmdlcwoKMjAxMS0xMC0wOCAyMDo0NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnRmYWN0b3J5OiBkb24ndCBleHBvcnQgcHJpdmF0ZSBfZ3N0X2VsZW1lbnRjbGFzc19mYWN0b3J5IHF1YXJrCgoyMDExLTEwLTA4IDIwOjE1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1ha2UgX2dzdF9kZWJ1Z19pbml0KCkgcHJpdmF0ZSBmb3Igbm93CgkgIFRoaXMgd2FzIGEgRklYTUUgZm9yIDAuMTEuIEkgZ3Vlc3MgYSBjYXNlIGNvdWxkIGJlIG1hZGUgdG8ga2VlcCBpdCBhcm91bmQKCSAgc2VwYXJhdGVseSBmb3IgYXBwcyBvciBsaWJyYXJpZXMgdGhhdCBvbmx5IHdhbnQgdG8gdXNlIEdTdHJlYW1lcidzIGRlYnVnZ2luZwoJICBzeXN0ZW0sIGJ1dCBpdCBzZWVtcyBtb3JlIGxpa2VseSB0aGV5J2QganVzdCBjb3B5IHRoZSB0d28gc291cmNlIGZpbGVzIGludG8KCSAgdGhlaXIgb3duIHRyZWUgaWYgdGhlIGNhc2UuIEFsc28sIHRoaW5ncyBsaWtlIHR5cGVzIHdvdWxkbid0IGJlIGluaXRpYWxpc2VkCgkgIHdpdGhvdXQgZ3N0X2luaXQoKS4gV2UgY2FuIHN0aWxsIG1ha2UgaXQgcHVibGljIGFnYWluIGlmIGFueW9uZSBuZWVkcyBpdCwKCSAgYnV0IHRoZW4gd2Ugc2hvdWxkIG1ha2UgaXQgYSBwcm9wZXIgZnVuY3Rpb24gYW5kIG5vdCBoaWRlIGl0IGJlaGluZAoJICB1bmRlcnNjb3Jlcy4KCjIwMTEtMTAtMDggMTk6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byBzeW1ib2wtZXhwb3J0cwoKMjAxMS0xMC0wOCAxNDoxNzoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGdzdHBhcnNlOiBwcmVmaXggZ2VuZXJhdGVkIHBhcnNlciBmdW5jdGlvbnMgc28gdGhleSBkb24ndCBnZXQgZXhwb3J0ZWQKCSAgRG9uJ3QgZXhwb3J0IHRob3NlIDM1LXNvbWV0aGluZyByYW5kb20gX2dzdF9wYXJzZV95eSogc3ltYm9scy4gVGhlc2Ugd2VyZQoJICBuZXZlciBpbiBhbnkgaGVhZGVyIGZpbGVzIGFuZCBhbHNvIGJsYWNrbGlzdGVkIGZyb20gb3VyIC5kZWYgZmlsZXMsIGluCgkgIGNhc2UgYW55b25lIHdvbmRlcnMuCgoyMDExLTEwLTA4IDEzOjM3OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogcmVuYW1lIF9fZ3N0X2RlYnVnXyogdG8gX2dzdF9kZWJ1Z18qIGFuZCBmaXggc3ltYm9sIGV4cG9ydCByZWdleHAKCSAgT25seSBleHBvcnQgR1N0cmVhbWVyIHN5bWJvbHMgd2l0aCBvbmUgbGVhZGluZyB1bmRlcnNjb3JlLCBub3QgdHdvCgkgIG9yIG1vcmUgbGVhZGluZyB1bmRlcnNjb3Jlcy4KCSAgUmVxdWlyZXMgYSByZWJ1aWxkIG9mIHRoZSBlbnRpcmUgc3RhY2ssIHNvcnJ5LgoKMjAxMS0xMC0wOCAxNToxNjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgZG9jCgoyMDExLTEwLTA4IDE0OjI1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wOCAxNDoyMzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMDggMTI6MDg6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA4IDA5OjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcG9ydCB0byAwLjExCgoyMDExLTEwLTA4IDA5OjI4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0xMC0wNyAwOTo0NToyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgcGlwZWxpbmUgY2F0ZWdvcnkgZm9yIG9uZSBtb3JlIGxvZyBtZXNzYWdlCgkgIE1ha2VzIGRlYnVnZ2luZyBlYXNpZXIuCgoyMDExLTEwLTA3IDE2OjM2OjEwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdTVF9QVFJfRk9STUFUOiBBZGQgR3N0QnVmZmVyIHB0ciBmb3JtYXQgYW5kIHVzZSBpbiBHU1RfU0NIRURVTElORwoJICBHc3RCdWZmZXIgcG9pbnRlcnMgY2FuIG5vdyBiZSBwcmludGVkIHVzaW5nIEdTVF9QVFJfRk9STUFULiBUaGlzIGlzIHVzZWQKCSAgaW4gdGhlIHZlcnkgdXNlZnVsIEdTVF9TQ0hFRFVMSU5HIGRlYnVnIGxvZ3MgaW4gZ3N0cGFkLmMgYW5kIGFsbG93cyBmb3IKCSAgZWFzaWVyIGFuZCBtb3JlIGluZm9ybWF0aW9uIHRyYWNraW5nIG9mIGJ1ZmZlciBwcm9ncmVzcyB0aHJvdWdoIGEKCSAgcGlwZWxpbmUgd2l0aCBqdXN0IGRlYnVnIGxvZ2dpbmcuCgoyMDExLTEwLTA3IDEzOjU1OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5ncyBpbiBzaW5rcyB0ZXN0CgoyMDExLTEwLTA3IDEzOjU0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IG1ha2UgR3N0RGF0YVF1ZXVlIHByaXZhdGUgQVBJIGZvciBtdWx0aXF1ZXVlCgkgIFRoZXJlJ3Mgbm8gY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbiBtdWx0aXF1ZXVlLCBzbyBtYWtlIGl0IHByaXZhdGUKCSAgdG8gbXVsdGlxdWV1ZSBmb3Igbm93LiBUaGF0IHdheSB3ZSBjYW4gYWxzbyBkbyBvcHRpbWlzYXRpb25zIHRoYXQKCSAgcmVxdWlyZSBBUEkvQUJJIGJyZWFrcy4gSWYgYW55b25lIGV2ZXIgd2FudHMgdG8gdXNlIGl0LCB3ZSBjYW4gc3RpbGwKCSAgbWFrZSBpdCBwdWJsaWMgYWdhaW4uCgoyMDExLTEwLTA2IDE3OjI3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wNiAxNzoyNjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxNDozNDowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlbmQgZHVyYXRpb24gbWVzc2FnZSB3aGVuIHVwZGF0aW5nIGludGVybmFsIGR1cmF0aW9uCgoyMDExLTEwLTA2IDE0OjA0OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA2IDEwOjU5OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDUgMjA6MDY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDUgMTM6NDM6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgc3RhdHVzCgoyMDExLTEwLTA1IDExOjIwOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGdzdGJ1ZmZlcnBvb2w6IFVzZSBnbGliIGNvbXBhdCBtYWNyb3MgZm9yIGF0b21pYyBwb2ludGVycwoKMjAxMS0xMC0wNCAxODo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA0IDE4OjU1OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0wNCAxNzozOToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDQgMTc6MzY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxNTo1NTowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IHNwZWNpZnkgKHRyYW5zZmVyKSBmb3IgZ3N0X2V2ZW50X25ld19zZWdtZW50CgoyMDExLTEwLTA0IDEzOjE2OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIGFkZCBwb3J0aW5nIGxpc3QKCjIwMTEtMDktMjYgMTQ6MzY6NDYgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiBzdWNjZXNzIGlmIG9wdGlvbmFsIHN0YXJ0L3N0b3AgbWV0aG9kIGlzIG5vdCBwcm92aWRlZAoJICBUaGlzIGFsbG93cyB0byBub3QgaW1wbGVtZW50IHRoZSBvcHRpb25hbCBzdGFydC9zdG9wIG1ldGhvZHMuCgoyMDExLTEwLTAzIDEwOjA2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTAtMDMgMDk6Mjk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBNYWtlIGRlYnVnZ2luZyBtZXNzYWdlIG1vcmUgaW5mb3JtYXRpdmUKCSAgRm9yIGFsbCB0aGUgbmV3Y29tZXJzIG91dCB0aGVyZSB3aG8gc3RpbGwgZG9uJ3Qga25vdyB0aGUgdmFsdWVzIG9mCgkgIEdzdFF1ZXJ5VHlwZSBlbnVtIGJ5IGhlYXJ0Li4uCgkgIC4uLiBhbmQgb2xkLXRpbWVycyB3aG8ndmUgZ290IGJldHRlciB0aGluZ3MgdG8gZG8gOikKCjIwMTEtMDktMzAgMTU6MjU6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGVzdGltYXRpbmcgdGhlIHBvc2l0aW9uIGluIHF1ZXJ5IGhhbmRsZXIgYWN0dWFsbHkgd29yawoJICBObyBwb2ludCBlc3RpbWF0aW5nIGlmIHdlIGRvbid0IHNldCB0aGUgcmVzdWx0IGFmdGVyd2FyZHMuCgoyMDExLTA5LTI2IDEzOjE0OjQyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYW5zd2VyIHBvc2l0aW9uIHF1ZXJ5IGluIHN0cmVhbSB0aW1lIGFuZCB0cnkgdXBzdHJlYW0gZmlyc3QKCSAgTGV0IHRoZSBkZW11eGVyIGhhdmUgZmlyc3Qgc2F5IGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk0ODUKCjIwMTEtMDktMzAgMTQ6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJICBnc3QuaDogaW5jbHVkZSBoZWFkZXIgZm9yIGF0b21pYyBxdWV1ZQoKMjAxMS0wOS0zMCAxNDo1MDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICB0ZXN0czogYWRkIG1pbmltYWwgdGVzdCBmb3IgR3N0QXRvbWljUXVldWUKCSAgSnVzdCBuZXcgKyBmcmVlLgoKMjAxMS0wOS0yOSAxODowNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZSByZWxlYXNlIG5vdGVzCgkgIENoYW5nZSB0aGUgbWFpbCBhZGRyZXNzZXMgdG8gdGhlIGZyZWVkZXNrdG9wIG9uZXMKCjIwMTEtMDktMjkgMTc6MDQ6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4xID09PQoKMjAxMS0wOS0yOSAxNjo1MDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMS4xCgoyMDExLTA5LTI4IDE4OjQ2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtZW1vcnkgYWxpZ25tZW50CgkgIEZpeCBjb21waWxhdGlvbiB3aGVuIFBPU0lYX01FTUFMSUdOIGlzIG5vdCBzZXQuCgkgIERlYnVnIHRoZSBjb25maWd1cmVkIGFsaWdubWVudC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMwMAoKMjAxMS0wOS0yOCAxODo0NDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnCgoyMDExLTA5LTI4IDExOjI4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZml4IGFmdGVyIG1lcmdlCgoyMDExLTA5LTI4IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOS0yOCAxMToxNjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGZpeCBzb21lIG1vcmUgZG9jcwoKMjAxMS0wOS0yNiAxOTo1MjoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc2VuZCBkZWxheWVkIGV2ZW50cyBlYXJsaWVyCgkgIFNvbWUgZWxlbWVudHMgKHN1Y2ggYXMgdmlkZW9yYXRlKSBtaWdodCBwdXNoIGJ1ZmZlcnMgZWFybHksCgkgIGZvciBpbnN0YW5jZSBpbiBpbiB0cmFuc2Zvcm1faXAuIFdlIHdhbnQgZXZlbnRzIChhbmQgaW4gcGFydGljdWxhcgoJICBhbnkgTkVXU0VHTUVOVCBldmVudCkgdG8gYmUgcHVzaGVkIGJlZm9yZSB0aGF0LgoJICBUaGlzIGZpeGVzIHRyYW5zbWFnZWRkb24gd2VkZ2luZyBvbiBjb252ZXJ0aW5nIGEgZmlsZSBzdGFydGluZwoJICB3aXRoIGEgbm9uIHplcm8gb2Zmc2V0IHRvIE9nZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDE2NQoKMjAxMS0wOS0yNiAyMDo0NzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogZml4IGRvY3MKCjIwMTEtMDktMjYgMTk6MjU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA5LTI2IDE5OjI0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogaW1wcm92ZSBBUEkgZG9jcyBhIGxpdHRsZQoKMjAxMS0wOS0yNiAwMDozMDo0NyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3Q6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiA2NCBiaXQgbWluZ3ctdzY0CgkgIEZpeGVzIGJ1ZyAjNjYwMDgzLgoKMjAxMS0wOS0yNSAxNjoxMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IGZpeCBib2d1cyBnX29iamVjdF91bnJlZiBpbiBoZWxsb3dvcmxkIGV4YW1wbGUKCSAgR01haW5Mb29wIGlzIG5vdCBhIEdPYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQxNDMKCjIwMTEtMDktMjMgMTM6MDk6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGNhcHMuYwoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0wOS0yMSAxMzo0Mzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byAwLjExIGJyYW5jaAoKMjAxMS0wOS0yMCAxMzowNDowNiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZGVsYXkgc2VyaWFsaXplZCBldmVudHMgd2hlbiBzcmMgY2FwcyBhcmUgbm90IHNldCB5ZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTU3MQoKMjAxMS0wOS0xMyAxNzowNDozMSArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZXQgY2FwcyBvbiBwYWQgYmVmb3JlIGNoZWNraW5nIGlmIHRoZSBwYWQgaXMgbGlua2VkCgkgIFRoaXMgYWxsb3dzIHRoZSBzZXRjYXBzIGhhbmRsZXIgYW5kIG5vdGlmeTo6Y2FwcyB0byBsaW5rCgkgIHRoZSBwYWQgZG93bnN0cmVhbSBhbmQgZG9lc24ndCByZXF1aXJlIGhhY2tzIHRvIGFsd2F5cwoJICBwcm92aWRlIGEgcGVlciB0byB0aGUgcGFkLCBsaWtlIGluIGRlY29kZWJpbjIuCgoyMDExLTA5LTE1IDExOjQ5OjQzIC0wNzAwICBGYWJyaXppbyAoTWlzdG8pIE1pbG8gPG1pc3RvYmFhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGFuZCBnc3RfdmFsdWVfZ2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBpbnRlcm5hbCBmaWVsZHMKCjIwMTEtMDktMTYgMTM6Mzg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIG90aGVyIGNoYWluIGZ1bmN0aW9uIGNvZGUgcGF0aCBhcyB3ZWxsCgoyMDExLTA5LTE2IDEzOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdXAgcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgkgIFdoaWNoIEkgbWVzc2VkIHVwLgoKMjAxMS0wOS0xNSAxMzoyMDoxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGRlYnVnIHRyYWNlcyBtb3JlIHVzZWZ1bAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MTM5CgoyMDExLTA5LTE0IDIyOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0Y3ZzdGVzdC5zaDoKCSAgc2NyaXB0czogcmVtb3ZlIGdzdGN2c3Rlc3Quc2gKCjIwMTEtMDktMTMgMjM6MDQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBjbGFuZyBjb21waWxlciB3YXJuaW5nCgkgIENhc3QgZW51bSB0byBpbnQgYmVmb3JlIGNoZWNraW5nIGZvciBuZWdhdGl2ZSB2YWx1ZXMsIHdoaWNoIGFyZQoJICBpbXBvc3NpYmxlIGFjY29yZGluZyB0byB0aGUgZW51bSBsaXN0LgoJICBnc3RsZm9jb250cm9sc291cmNlLmM6NjUyOjQ1OiBlcnJvcjogY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBlbnVtIGV4cHJlc3Npb24gPCAwCgkgIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJvciwtV3RhdXRvbG9naWNhbC1jb21wYXJlXQoJICBpZiAod2F2ZWZvcm0gPj0gbnVtX3dhdmVmb3JtcyB8fCB3YXZlZm9ybSA8IDApIHsKCSAgfn5+fn5+fn4gXiB+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTMxMzcKCjIwMTEtMDktMTMgMjE6NTg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogbWFrZSBzdXJlIGZpbGVzcmMgcmV0dXJucyBlc2NhcGVkIFVSSXMgZXZlbiBpZiB0aGUgaW5wdXQgd2FzIHVuZXNjYXBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NjczCgoyMDExLTA5LTEwIDE4OjE1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1vdmUgbG9nIG1lc3NhZ2VzIGZvciBjYXBzIGNyZWF0aW9uL2ZyZWVpbmcgaW50byBUUkFDRSBjYXRlZ29yeQoJICBSZWR1Y2UgU1BBTSBmb3IgR1NUX0NBUFM6NS4KCjIwMTEtMDktMDkgMTI6NTY6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgZG8gdGhlIHN1YnNldCBjaGVjayBpbiBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaWYgdGhlIHBhZCBjbGFpbXMgdG8gYWNjZXB0IHRoZSBjYXBzCgoyMDExLTA5LTA3IDE3OjIxOjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBpdCBlYXN5IHRvIG92ZXJyaWRlIHRoZSBwYWQgcXVlcnkKCSAgQWRkIGEgdm1ldGhvZCB0byBoYW5kbGUgdGhlIHBhZCBxdWVyeS4KCSAgSW5zdGFsbCBhIGRlZmF1bHQgaGFuZGxlciBmb3IgdGhlIHBhZCBxdWVyeS4KCSAgVXNlIHRoZSBuZXcgcXVlcnkgZnVuY3Rpb24gaW4gZmlsZXNpbmsKCjIwMTEtMDktMDggMTQ6Mzk6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiUmV2ZXJ0ICJiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBiYzZkNDljOTUwMjEwYmY0MjI2MTVmYjhkYzk4YzVhZGNkNWU0NTYuCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMDktMDggMTQ6MzE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgIlJldmVydCAicGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJiZmFkYTU1ODFlMzVhMmQzNzE4OGY0OGEyYzc0NDI2NDRmMTBiYjMuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIEZvciAwLjExIHdlIHdhbnQgdG8gZW5mb3JjZSB0aGF0IG9ubHkgc3Vic2V0cyBvZiB0aGUgcGFkCgkgIGNhcHMgYXJlIGFsbG93ZWQuIFRoaXMgYnJlYWtzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yCgkgIHNvbWUgZWxlbWVudHMsIHdoaWNoIGlzIHdoeSB3ZSBvbmx5IHByaW50IGEgd2FybmluZyBpbgoJICAwLjEwLgoKMjAxMS0wOS0wOCAxNDozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTA5LTA4IDE0OjI5OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkM2NhZDI4ZGE5MzZiMDM3ZDg3N2RjNzBjMDIyODZiODFiNjgwMjg0LgoJICBJdCBjYXVzZXMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgYmVjYXVzZSBhY2NlcHRjYXBzKCkgcHJvcGFnYXRlcyBkb3duc3RyZWFtLgoKMjAxMS0wOS0wOCAxNDoyMzo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0CgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdGludGVyZmFjZS5jCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYwoJICB0b29scy9nc3QtbGF1bmNoLjEuaW4KCjIwMTEtMDktMDggMTM6NDE6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZAoKMjAxMS0wOS0wOCAxMzo0MDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUHJpbnQgYSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0IGNhcHMgdGhhdCBhcmUgbm90IGEgc3Vic2V0IG9mIGl0cyBjYXBzCgkgIEluIDAuMTEgb25seSBzdWJzZXRzIGFyZSBzdXBwb3J0ZWQgYWdhaW4gYXMgZG9jdW1lbnRlZCBpbnN0ZWFkIG9mIGFsc28KCSAgYWxsb3dpbmcgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMuCgoyMDExLTA5LTA4IDEzOjI2OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgImJhc2V0cmFuc2Zvcm06IFVzZSBjaGVjayBmb3Igc3Vic2V0cyBhbmQgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZTVjYzVlODllN2UyODU4YTYzNTJmYTRjODFhMzc0ZjZlNWE2Mjk3LgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA4IDEzOjI2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwYzVkNTAyMDczMjZkNzRhNDgwNWJjZDg5OGJmYWM4ODc1NDBmMTJiLgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA3IDEzOjE0OjM4ICswMjAwICBQaW90ciBGdXNpayA8Zm94QHNjZW5lLnBsPgoKCSogUkVBRE1FOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcmFuZG9tL2F1dG9wbHVnMjoKCSogZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6CgkqIGRvY3MvcmFuZG9tL2JiYi9zdHJlYW1zZWxlY3Rpb246CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL2NvbXBhbnkvZ3ZhZGVjLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3BsdWdpbmRvY3MudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkqIGRvY3MvcmFuZG9tL2VvczoKCSogZG9jcy9yYW5kb20vaGllcmFyY2h5OgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJKiBkb2NzL3JhbmRvbS9pbnRlcmZhY2VzOgoJKiBkb2NzL3JhbmRvbS9uZWdvdGlhdGlvbjoKCSogZG9jcy9yYW5kb20vb21lZ2Evc2NoZWQvY2hhaW5zOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS90ZXN0aW5nL2ZyYW1ld29yazoKCSogZG9jcy9yYW5kb20vcGx1Z2luczoKCSogZG9jcy9yYW5kb20vcnRwOgoJKiBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDoKCSogZG9jcy9yYW5kb20vc291cmNlczoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJKiBkb2NzL3JhbmRvbS90ZXN0aW5nL3N5bnRheDoKCSogZG9jcy9yYW5kb20vdHlwZXMyOgoJKiBkb2NzL3JhbmRvbS91cmFldXMvZ3N0cmVhbWVyX2FuZF9taWRpLnR4dDoKCSogZG9jcy9yYW5kb20vdmlzLXRyYW5zZm9ybToKCSogZG9jcy9yYW5kb20vd3RheS9jYXBzLW5lZ29jaWF0aW9uOgoJKiBkb2NzL3JhbmRvbS93dGF5L3RocmVhZGluZzoKCSogZG9jcy9yYW5kb20vd3RheS90aHJlYWRzX2hpbGV2ZWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJICBkb2NzLCBnc3Q6IHR5cG8gZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODQ0OQoKMjAxMS0wOS0wNyAxNTowNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgTm8gcG9pbnQgcmVtb3ZpbiB0aG9zZSBlbXB0eSBvdmVycmlkZSBmaWxlcyBmcm9tIGdpdCwgdGhleSdsbAoJICBqdXN0IGJlIHJlLWNyZWF0ZWQgbGF0ZXIsIHNvIGxldCdzIHRlbGwgZ3RrLWRvYyBhYm91dCB0aGVtLCBzbwoJICBpdCBjYW4gY2xlYW4gdGhlbSB1cCBwcm9wZXJseS4KCjIwMTEtMDktMDcgMTY6MDI6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZXJlJ3Mgbm8gcGVlciB3ZSBzdGlsbCBoYXZlIHRvIHRyYW5zZm9ybSBBTlkgY2FwcyBpbiBnZXRjYXBzKCkKCSAgT3RoZXJ3aXNlIGVsZW1lbnRzIGxpa2UgY2Fwc2ZpbHRlciB3aWxsIHJldHVybiBBTlkgY2FwcyBpZiBubwoJICBwZWVyIGlzIHByZXNlbnQgaW5zdGVhZCBvZiB0aGUgZmlsdGVyIGNhcHMuIFRoZSB0cmFuc2Zvcm1fY2FwcygpCgkgIHZmdW5jIGNvdWxkIGRvIHRyYW5zZm9ybWF0aW9ucyB0byB0aGUgdGVtcGxhdGUgY2FwcyB0aGF0IGRvIG5vdAoJICByZXN1bHQgaW4gdGhlIHVubW9kaWZpZWQgdGVtcGxhdGUgY2Fwcy4KCjIwMTEtMDktMDcgMTQ6MDU6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGNsZWFudXAgbWFrZWZpbGVzCgkgIFJlbW92ZSBjb21tZW50ZWQgb3V0IHBhcnRzIHRoYXQgd2UgZG9uJ3QgbmVlZC4gUmVtb3ZlICJ0aGUgd2luZ28gYWRkaXRpb24iIC0gbm8KCSAgc28gdXNlZnVsIGFmdGVyIGFsbC4gTmFycm93IGRvd24gZmlsZS1nbG9icyBmb3IgcGx1Z2luIGRvY3MuCgoyMDExLTA5LTA3IDEzOjUwOjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogZXNjYXBlICUgaW4gZG9jYmxvYgoKMjAxMS0wOS0wMiAxOTo0NjowNiArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdGFzQHN0YXMuKG5vbmUpPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hhbmdpbmcgY2FwcwoJICBnc3RfcGFkX3NldF9jYXBzKCkgZG9lcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBidXQgYWRkaXRpb25hbGx5IGNhbGxzCgkgIHRoZSBwYWQncyBzZXRjYXBzIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzY1ODA3Ni4KCjIwMTEtMDktMDYgMjE6MjQ6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGEzOWViODMgdG8gMTFmMGNkNQoKMjAxMS0wOS0wNiAxNTozOTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjA1Y2Q5YSB0byBhMzllYjgzCgoyMDExLTA5LTA2IDEyOjE3OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUKCjIwMTEtMDktMDYgMTI6MTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZQoJICBQYWRzIHNob3VsZCBvbmx5IGFjY2VwdCBjYXBzIHRoYXQgYXJlIGEgc3Vic2V0IG9mIHRoZSBwYWQgY2FwcywgZS5nLgoJICB0aGV5IHNob3VsZCBhY2NlcHQgb25seSBjYXBzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gYW5kCgkgIGF0IGxlYXN0IGFsbCBmaWVsZHMgb2YgdGhlIHBhZCBjYXBzLgoJICBXaXRob3V0IHRoaXMgYSBwYWQgdGhhdCB3YW50cyBmb3IgZXhhbXBsZQoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0iCgkgIHdpbGwgYmUgaGFwcHkgdG8gYWNjZXB0CgkgICJ2aWRlby94LWgyNjQiLgoKMjAxMS0wOC0yOSAxNzowNjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogY2hhbmdlIHRvIEdTVF9ERUZJTkVfTUlOSV9PQkpFQ1RfVFlQRQoJICBBcHBlbmQgX1RZUEUgdG8gdGhlIG1hY3JvIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHNpbWlsYXIgbWFjcm9zLgoKMjAxMS0wOC0yOSAxNTozNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluaXQ6IGFkZCBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMKCSAgUmVtb3ZlIGdzdF9taW5pX29iamVjdF9yZWdpc3RlcigpIGFuZCBhZGQgYSBHU1RfREVGSU5FX01JTklfT0JKRUNUIG1hY3JvIHRvCgkgIGRlZmluZSBhIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciB0aGUgYm94ZWQgbWluaW9iamVjdC4KCSAgUmVtb3ZlIGEgYnVuY2ggb2YgY3VzdG9tIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyBhbmQgcmVwbGFjZSB0aGVtIHdpdGggdGhlCgkgIG1pbmlvYmplY3QgbWFjcm8uCgkgIFJlbmFtZSBzb21lIF9pbml0IG1ldGhvZCB0byBfcHJpdl8qX2luaXRpYWxpemUoKSBsaWtlIHRoZSByZXN0IG9mIHRoZW0uCgkgIEluc3BpcmVkIGJ5IHBhdGNoIGZyb20gSm9oYW4gRGFobGluIGFuZCBzZWUgYnVnICM2NTc2MDMKCjIwMTEtMDgtMjkgMTM6Mjc6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogYWRkIHNvbWUgX3ByaXYgcHJlZml4ZXMgdG8gcHJpdmF0ZSBtZXRob2RzCgoyMDExLTA4LTI5IDEyOjM4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaS1vYmplY3Q6IHVzZSByZWYvdW5yZWYgZGlyZWN0bHkgaW4gYm94ZWQgY29weS9mcmVlCgkgIEdMaWIgd2lsbCBub3QgY2FsbCBvdXIgY29weS9mcmVlIHdpdGggYSBOVUxMIG9iamVjdAoKMjAxMS0wOC0yNiAxNDozNzo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0bWVzc2FnZS5jCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jCgkgIGdzdC9nc3RzZWdtZW50LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmgKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKCjIwMTEtMDgtMjYgMTQ6MTg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2U6IHJlbmFtZSBhbGxvY2F0aW9uIHZtZXRob2RzCgkgIE5hbWUgdGhlIGFsbG9jYXRpb24gdm1ldGhvZCBvbiBzcmNwYWQgZGVjaWRlX2FsbG9jYXRpb24gYmVjYXVzZSBzb3VyY2UgcGFkcyB3aWxsCgkgIGhhdmUgdG8gZGVjaWRlIHdoYXQgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHdpbGwgYmUgdXNlZC4KCSAgTmFtZSB0aGUgYWxsb2NhdGlvbiB2bWV0aG9kIG9uIHNpbmtwYWRzIHByb3Bvc2VfYWxsb2NhdGlvbiBiZWNhdXNlIHRoZXkgd2lsbAoJICBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgYWxsb2NhdGlvbiBxdWVyeSB3aXRoIGEgcHJvcG9zZWQgdmFsdWVzIGZvciB1cHN0cmVhbS4KCjIwMTEtMDgtMjYgMTQ6MTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBmbGFncwoJICBSZW5hbWUgRFJPUCB0byBERUNPREVfT05MWS4KCSAgQWRkIERST1BQQUJMRSBmbGFnIHRvIG1hcmsgYnVmZmVycyB0aGF0IGNhbiBiZSBkcm9wcGVkIHRvIHNhdmUgYmFuZHdpZHRoIHdpdGhvdXQKCSAgZGVzdHJveWluZyB0aGUgc3RyZWFtLgoKMjAxMS0wOC0yNiAxNDowOTo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBkb2NzOiBhZGQgc2luY2UgMC4xMC4zNiBvbiB0aGUgbmV3IF9OT05FIGVudW0gdmFsdWVzCgoyMDExLTA4LTI2IDAwOjEzOjE2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiB1c2UgdGhlIHByb3BlciBhcmd1bWVudCBvcmRlcgoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjA2OjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICBmaWxlaW5kZXg6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjAwOjI1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVyOiB1c2UgR1NUX1RZUEVfRklORF9OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjUzOjU4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzo0OTozOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGFkZCBHU1RfVFlQRV9GSU5EX05PTkUgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjI2OjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSB0aGUgZW51bSB2YWx1ZXMgZm9yIDAgYW5kIGRvbid0IGFidXNlIG9uIGdib29sZWFuIGNvaW5jaWRlbmNlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6MDY6NTYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHV0IHRoZSBhcmd1bWVudHMgb2YgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgaW4gdGhlIHByb3BlciBvcmRlcgoKMjAxMS0wOC0yNSAyMjo0ODo1NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiB1c2UgR1NUX1BBUlNFX0ZMQUdfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjo0MjowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjI5OjQ1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1pbm9yIGNoYW5nZXMgcmVsYXRlZCB0byBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6MDU6MjYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGFkZCBHU1RfQUxMT0NfVFJBQ0VfTk9ORSBmb3IgY29uc2lzdGVuY3kgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjUyOjA1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjQ5OjI5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVzZSBHU1RfVEFHX01FUkdFX1VOREVGSU5FRCBpbnN0ZWFkIG9mIEZBTFNFCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MzA6NTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHVzZSBHU1RfU0VFS19GTEFHX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MjU6NDYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MTg6MTUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWlub3IgY2hhbmdlcyByZWxhdGVkIHRvIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTowMzo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMzowMDo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjo1MToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6NDE6MzIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6Mzc6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjoyOTo1OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJICBmb3JtYXQ6IHVzZSBHU1RfRk9STUFUX1VOREVGSU5FRCBhbmQgZmV3IGNhc3RzIHRvIEdzdEZvcm1hdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDEzOjAyOjM0ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBGaXggYm9kZ2VkIHByZXZpb3VzIGNvbW1pdAoKMjAxMS0wOC0yNiAxMjozNzo0MyArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBHc3RQYWREaXJlY3Rpb24gaW4gdGhlIHF1ZXJ5IHZmdW5jCgkgIFdpbSBzdWdnZXN0ZWQgdGhhdCB1c2luZyBHc3RQYWREaXJlY3Rpb24gaW5zdGVhZCBvZiBhIEdzdFBhZCBpbiB0aGUKCSAgYXJndW1lbnRzIHRvIHRoZSBuZXcgcXVlcnkgdmZ1bmMgd291bGQgYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyCgkgIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMjYgMTM6NDA6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVuYW1lIF9DTElQIHRvIF9EUk9QIGZsYWcKCSAgV2UgY2FuIGFsc28gdXNlIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgZnJhbWUgc2hvdWxkIGJlIGRlY29kZWQgYnV0IG5vdAoJICBkaXNwbGF5ZWQgcmVnYXJkbGVzcyBvZiB0aGUgdGhlIHNlZ21lbnQgYm91bmRhcmllcyBzbyB3ZSB1c2UgdGhlIG1vcmUgZ2VuZXJpYwoJICBfRFJPUC4KCjIwMTEtMDgtMjYgMTI6Mjg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKCjIwMTEtMDgtMjYgMTE6NDQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCB2bWV0aG9kIHRvIGNvbmZpZ3VyZSB1cHN0cmVhbSBidWZmZXJwb29sCgkgIEFkZCBhIHZtZXRob2QgdGhhdCBjYW4gYmUgaW1wbGVtZW50ZWQgdG8gaW5mbHVlbmNlIHRoZSBidWZmZXJwb29sIHRoYXQgdXBzdHJlYW0KCSAgZWxlbWVudHMgd2lsbCB1c2UuCgoyMDExLTA4LTI2IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgcGFkIGRpcmVjdGlvbiBsaWtlIG90aGVyIHZtZXRob2RzCgoyMDExLTA4LTI2IDExOjA5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oCgoyMDExLTA4LTI2IDEwOjU3OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IHNvbWUgZG9jIGZpeGVzCgoyMDExLTA4LTI1IDExOjAyOjE2ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQmFzZVRyYW5zZm9ybTogQWRkIGEgcXVlcnkgdmZ1bmMKCjIwMTEtMDctMjAgMTQ6MDU6MjcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvbid0IGFzc3VtZSBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIF9zZXRfY2FwcyBvbmx5IGdldHMgY2FsbGVkIHdoZW4gdGhlIGJ1ZmZlciBpcyBhY3R1YWxseSBwdXNoZWQsIHNvIHRoZXJlCgkgIGlzIGEgcmVhc29uYWJseSBiaWcgd2luZG93IGJldHdlZW4gd2hlbiB0aGUgaW5pdGlhbCBjYXBzIGFyZSByZXRyaWV2ZWQKCSAgYW5kIHdoZW4gdGhlIGNhcHMgYXJlIHNldCBvbiBvdXIgc3JjIHBhZC4gU28gd2UgY2FuJ3QgYXNzdW1lIHRoZSBub3QKCSAgaGF2aW5nIG5lZ290aWF0ZWQgY2FwcyBvbiBvdXIgc3JjIHBhZCBtZWFucyBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIGNhbGxlZC4KCSAgSW5zdGVhZCBzaW1wbHkgYWx3YXlzIHN1Z2dlc3QgdGhlIG5ldyBjYXBzIG9uIGJ1ZmZlcl9hbGxvYy4KCjIwMTEtMDgtMjUgMTg6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNsaXAgZmxhZwoKMjAxMS0wOC0yNSAxNjoyMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZXdvcmsgZmxhZ3MgYSBsaXR0bGUKCSAgUmVvcmRlciBidWZmZXIgZmxhZ3MgYW5kIGFkZCBzb21lIG5ldyBvbmVzLgoJICBSZW1vdmUgdGhlIG1lZGlhIHNwZWNpZmljIGZsYWdzLCB3ZSBjYW4gbm93IGVhc2lseSBkbyB0aGlzIHdpdGggdGhlIEZMQUdfTEFTVAoJICBmbGFnIGJlY2F1c2Ugd2UgZG9uJ3QgZXh0ZW5kIGZyb20gR3N0QnVmZmVyIGFueW1vcmUuCgoyMDExLTA4LTI1IDE2OjIwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBhbHdheXMgY29weSBhbGwgYnVmZmVyIGZsYWdzIHdoZW4gYXNrZWQKCSAgRG9uJ3QgdHJ5IHRvIGJlIHNtYXJ0IGFuZCBjb3B5IG9ubHkgYSBzdWJzZXQgb2YgYnVmZmVyIGZsYWcKCjIwMTEtMDgtMjUgMTY6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCjIwMTEtMDgtMjUgMTQ6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBwbHVyYWxpemUgdGhlIGJ1ZmZlciBmbGFncwoKMjAxMS0wOC0yNSAxMjozODo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBwcmVyb2xsLXF1ZXVlLWxlbiBwcm9wZXJ0eQoJICBSZW1vdmUgdGhlIHByZXJvbGwtcXVldWUtbGVuIHByb3BlcnR5IGFuZCBtb3ZlIGl0cyB2YXJpYWJsZXMgdG8gYSBwcml2YXRlCgkgIHNlY3Rpb24gc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZW0gbGF0ZXIuCgoyMDExLTA4LTI0IDEwOjQzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RvYmplY3QuYwoKMjAxMS0wOC0yMyAxODoxOTo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBlbnN1cmUgc3RhcnRfdGltZSByZXNldCB1cG9uIGZsdXNoCgoyMDExLTA4LTIzIDExOjU1OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWxzbyByZW1vdmUgdGhlIGNhc3QgYXMgdGhpcyBpcyBjYXVzaW5nIHRoZSB0cm91YmxlCgoyMDExLTA4LTIzIDExOjQxOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogdXNlIHRoZSBhdG9taWMgbWFjcm9zIHRvIGRlYWwgd2l0aCB0aGUgZ2xpYiBjaGFuZ2UgaW4gdGhlIGltcGwuCgoyMDExLTA4LTIyIDEyOjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIG9iamVjdDogbWFrZSBfcmVwbGFjZSBsaWtlIHRoZSBtaW5pb2JqZWN0IHZlcnNpb24KCjIwMTEtMDgtMjIgMTI6MzM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlci5oCgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGNhcHMuaAoJICBnc3QvZ3N0ZXZlbnQuYwoKMjAxMS0wOC0yMiAxMjoxOToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogcmVtb3ZlIG91ciBGT1VSQ0MgR1R5cGUKCSAgUmVtb3ZlIG91ciBjdXN0b20gZm91cmNjIEdWYWx1ZS4KCjIwMTEtMDgtMjEgMTQ6MDc6MDggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IG1ha2UgZ3N0X29iamVjdF9yZXBsYWNlKCkgYXRvbWljCgoyMDExLTA4LTIwIDE0OjA3OjU1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGNsYXJpZmljYXRpb24gZm9yIGVsZW1lbnQgZG9jcwoJICBEb24ndCBzdWdnZXN0IGRlcHJlY2F0ZWQgbWV0aG9kIGluIHRoZSBkZXNjdGlvbiBkb2NzIGFuZCB0cnkgdG8gYmUgbW9yZSBoZWxwZnVsCgkgIGluIG90aGVyIHBsYWNlcyBieSBzdWdnZXN0aW5nIHJlbGF0ZWQgZnVuY3Rpb25zLgoKMjAxMS0wOC0yMCAwOTo1NjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkIGRvY3MKCSAgTWFrZSBpdCBtb3JlIG9idmlvdXMgdGhhdCBvbmUgc2hvdWxkIHBhc3MgdGhlIHRlbXBsYXRlIG5hbWUuCgoyMDExLTA4LTE4IDIwOjQ2OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdXNlID09IGluIGRlYnVnIHN0cmluZwoJICBJdCBtZXNzZXMgdXAgR1NUX0RFQlVHPSo6NSBtYWtlIGZvby9iYXIudmFsZ3JpbmQsIGJlY2F1c2UKCSAgb3VyIE1ha2VmaWxlIGxvb2tzIGZvciAnPT0nIGFzIG1hcmtlciBvZiB2YWxncmluZCBvdXRwdXQuCgoyMDExLTA4LTE4IDIwOjQ0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGNyYXNoIG9uIHNlZWsgZnJvbSBzdHJlYW1pbmcgdGhyZWFkIG9uIG5ld3NlZ21lbnQgZXZlbnQKCSAgRXZlbnQgaWYgaXQncyBub3QgYWxsb3dlZCwgd2UgY2FuIGVhc2lseSBwcmV2ZW50IGl0LCBzbyBsZXQncyBkbwoJICB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NzcxCgoyMDExLTA4LTE3IDE3OjU2OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBtZXRob2QgdG8gZml4YXRlIG9uZSBmaWVsZAoKMjAxMS0wOC0xNyAxNzoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24KCSAgQWRkIGEgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24gd2hpY2ggZG9lcyBnc3RfY2Fwc19maXhhdGUoKSBiZWNhdXNlCgkgIGdzdF9wYWRfZml4YXRlKCkgZG9lcyBub3QgZG8gdGhhdCBhbnltb3JlLgoKMjAxMS0wOC0xNyAwOToyNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGltcHJvdmUgc29tZSBkb2NzCgoyMDExLTA4LTE2IDE4OjI5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmV0dXJuIHByb2Nlc3NlZCBudW1iZXIgb2YgYnl0ZXMKCSAgTWFrZSBfZmlsbCwgX2V4dHJhY3QgYW5kIF9tZW1zZXQgcmV0dXJuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2VyZQoJICBoYW5kbGVkIGluIGNhc2UgdGhlIGJ1ZmZlciBzaXplIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuCgoyMDExLTA4LTE2IDE3OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBlbGVtZW50IGZhY3RvcnkgZG9jdW1lbnRhdGlvbgoKMjAxMS0wOC0xNiAxNzozMjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBidWZmZXI6IHJlbmFtZSBQUkVST0xMIC0+IExJVkUgZmxhZwoJICBSZW5hbWUgdGhlIEdTVF9CVUZGRVJfRkxBR19QUkVST0xMIHRvIEdTVF9CVUZGRVJfRkxBR19MSVZFIGFuZCBnaXZlIHRoZSBuZXcgZmxhZwoJICBhIG1lYW5pbmcuIFRoZSBvbGQgUFJFUk9MTCBmbGFnIG5ldmVyIGhhZCBhIGNsZWFyIG1lYW5pbmcuCgoyMDExLTA4LTE1IDIxOjA1OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjb21waWxlciB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQwoJICBUaGUgTUFYIG1hY3JvIGV4cGFuZHMgdG8gY29kZSB0aGF0IGNoZWNrcyBpZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIGlzIDwgMC4KCSAgRml4ZXMgd2FybmluZyAjMTg2OiBwb2ludGxlc3MgY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBpbnRlZ2VyIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTozOToyMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTowNzo0OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0c3RhdGU6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzo0MjoyNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjMzOjQzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgR3N0R0Vycm9yIGNvZGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6MjY6MTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHVzZSBHU1RfU1RBVEVfVk9JRF9QRU5ESU5HIGZvciBHc3RTdGF0ZSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgYSB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjo0ODo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZGVmaW5lIEdTVF9DQVBTX0ZMQUdTX05PTkUgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgZW51bWVyYXRpb25zCgkgIFVzZSB0aGVtIHRvIGZpeCB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIHdpdGggSUNDLgoJICBBUEk6IEdTVF9DQVBTX0ZMQUdTX05PTkUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjoyOTo0NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVzZSBHc3REZWJ1Z0xldmVsIGVudW0gdHlwZSB0byBmaXggYSB3YXJuaW5nIGJ1aWxkaW5nIHdpdGggSUNDCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTUgMTY6NDU6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBmaXhhdGUgY2FwcyBiZWhhdmUgbGlrZSBvdGhlciBmdW5jdGlvbnMKCSAgSW5zdGFsbCBhIGRlZmF1bHQgZml4YXRlIGNhcHMgZnVuY3Rpb24gb24gcGFkcyBsaWtlIGFsbCB0aGUgb3RoZXIgcGFkIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMTUgMTY6NDU6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0wOC0xNSAxNDo0MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDgtMTUgMTQ6NDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgY2FwczogYWRkIGZpeGF0ZSBmdW5jdGlvbgoJICBBZGQgYSBmaXhhdGUgZnVuY3Rpb24gYW5kIHVzZSBpdCBpbiBnc3RwYWQuYwoKMjAxMS0wOC0xNSAxNDozMjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogYWRkIGZ1bmN0aW9uIHRvIGZpeGF0ZQoJICBBZGQgYSBmdW5jdGlvbiB0byBmaXhhdGUgYSBzdHJ1Y3R1cmUgYW5kIHVzZSBpdCBmb3IgdGhlIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uCgkgIGluIGdzdHBhZC5jLgoKMjAxMS0wOC0xNSAxMzoxNzo0NCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgRmFyc2lnaHQgYW5kIE5pY2Ugc3VwcG9ydAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NTU3CgoyMDExLTA4LTE1IDE0OjE3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgTWFrZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiBiZWhhdmUgbGlrZSBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyB3aXRoIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4gRG9uJ3QgdHJ5IHRvIGNoYWluIHVwIHRvIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gaXQgd2FzCgkgIHNldCB0byBOVUxMIGV4cGxpY2l0bHkgYnV0IHJldHVybiBGQUxTRSBpbnN0ZWFkLgoJICBGaXggc29tZSBkb2NzCgoyMDExLTA4LTE1IDEzOjI0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IHNvbWUgbWFjcm9zCgkgIFJlbW92ZSBhIHJhdGhlciB1c2xlc3MgbWFjcm8gdG8gY2hlY2sgaWYgYSBwYWQgbW9kZSBpcyBhY3RpdmUgYW5kCgkgIGFkZCBHU1RfUEFEX0lTX0FDVElWRSgpLgoKMjAxMS0wOC0xNSAxMjoxODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wOC0xNSAxMjoxNjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW1vdmUgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKCkKCSAgUmVtb3ZlIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcygpLCBpdCBkb2VzIG5vdCByZWFseSBkbyB3aGF0IGl0IHNheXMsCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIHJldHVybnMgdGhlIGN1cnJlbnRseSBuZWdvdGlhdGVkIGNhcHMgb24gdGhlIHBhZAoJICBjb3JyZWN0bHkuCgoyMDExLTA4LTEyIDE5OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGRlYWRsb2NrIGluIGVycm9yIHBhdGgKCSAgRG9uJ3QgbG9jayB0aGUgc2FtZSBsb2NrIHR3aWNlLiBTcG90dGVkIGJ5IEpvc2VwIFRvcnJlIFZhbGxlcy4KCjIwMTEtMDgtMTIgMTI6NDU6MDEgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggZ3N0X2l0ZXJhdG9yX25leHQoKSBlbGVtZW50IGFubm90YXRpb24KCjIwMTEtMDgtMTEgMDk6MzE6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBQV0cKCSAgUkJHIC0+IFJHQi4gU3BvdHRlZCBieSBXaWxsIFRob21wc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MzI2CgoyMDExLTA4LTExIDEwOjA5OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiByZW1vdmVkIG5vbi1zZW5zZSBjb21tZW50CgoyMDExLTA4LTEwIDE3OjA3OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmgKCSAgZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmMKCSAgdG9vbHMvZ3N0LXJ1bi5jCgoyMDExLTA4LTA4IDE5OjM2OjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBtb3ZlIHV0Zi04IHZhbGlkYXRpb24gdG8gcmVnaXN0cnkgc2F2aW5nIHRpbWUKCSAgSW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdmFsaWQgdXRmLTggZWxlbWVudC1kZXRhaWxzIGV2ZXJ5IHRpbWUgd2UgY3JlYXRlCgkgIGVsZW1lbnRzIChmcm9tIHBsdWdpbi1pbml0IG9yIHJlZ2lzdHJ5KSwgZG8gaXQgYmVmb3JlIHdlIHNhdmUgdGhlIHJlZ2lzdHJ5LgoJICBGaXhlcyAjNjU2MTkzLgoKMjAxMS0wOC0xMCAxMTowMTo1OCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEZpeCBhbmQgY2xhcmlmeSBkZWJ1ZyBzdGF0ZW1lbnRzCgkgIEZpeGVzIGJ1aWxkIG9uIE1hY09TWAoJICBTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCjIwMTEtMDgtMDUgMTA6NTk6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IENsYXJpZnkgZG9jCgoyMDExLTA4LTA3IDA5OjE0OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgZG9jczogZml4IGhlbGxvd29ybGQgY29tcGlsZSBjb21tYW5kIGxpbmUgZm9yIG5ld2VyIGdjYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MDkyCgoyMDExLTA4LTA2IDE4OjIwOjUxICswMjAwICBTaGF1biBIb29wZXMgPGhvb3BlczAxQHN0dWRlbnQudXdhLmVkdS5hdT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGltcHJvdmUgZG90IGZpbGUgZmxvdyBsYXlvdXQKCSAgSXRlcmF0ZSBzb3VyY2UtIGFuZCBzaW5rLXBhZHMgc2VwYXJhdGVseSB0byBlbnN1cmUgdGhhdCB0aGUgZ3JhcGggcmVmbGVjdHMgdGhlCgkgIHVwc3RyZWFtL2Rvd25zdHJlYW0gb3JkZXIuIEZpeGVzICM2NDMyNjkKCjIwMTEtMDgtMDYgMTQ6MTc6NTAgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZ3N0cmVhbWVyLnNwZWM6IG1ha2UgYnVpbGRhYmxlIGFuZCBwYXJhbGxlbAoKMjAxMS0wOC0wNSAxMjoxMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiBtYWtlIHVudmVyc2lvbmVkIHdyYXBwZXIgbG9vayBmb3IgLTAuMTAgdG9vbHMgb25seQoJICBEb24ndCB3YW50IChpbmNvbXBhdGlibGUpIDAuMTEgdG9vbHMgdG8gYmUgcGlja2VkIHVwIGJ5IGFjY2lkZW50LgoKMjAxMS0wOC0wNCAxODowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogYWRkIGFsbG9jIHZtZXRob2QKCSAgTWFrZSBhbiBhbGxvYyB2bWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgb3IgY2FsbCB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZXkgd2FudC4KCjIwMTEtMDgtMDQgMTc6MjY6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wOC0wNCAxNzoxMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjbGVhbnVwcyBhbmQgbWFyayByZWNvbmZpZ3VyZQoJICBEb24ndCBhYnVzZSB0aGUgcmVzdWx0IHZhcmlhYmxlLgoJICBNYXJrIHRoZSBzcmNwYWQgd2l0aCBhIHJlY29uZmlndXJlIHNvIHRoYXQgbmVnb3RpYXRpb24gaGFwcGVucy4KCjIwMTEtMDgtMDQgMTc6MTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbWV0aG9kIHRvIG1hcmsgcmVjb25maWd1cmUKCjIwMTEtMDgtMDQgMTY6NTY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZQoJICBSZW1vdmUgdGhlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiwgaXQgY2F1c2VzIGRhdGEgdHJhbnNmZXIKCSAgYW5kIGJ1ZmZlcnBvb2wgbmVnb3RpYXRpb24sIHdoaWNoIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBkb25lLiBTaW5jZSB3ZSBoYXZlIHRoZQoJICByZWNvbmZpZ3VyZSBzdGF0ZSBvbiB0aGUgcGFkLCB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdpbGwgZG8gdGhlIG5lZ290aWF0aW9uIGFzCgkgIHNvb24gYXMgaXQgZ2V0cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCjIwMTEtMDgtMDQgMTY6MzQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGV4cG9zZSBzZXRfY2FwcyBtZXRob2QKCSAgRXhwb3NlIGEgcHJldmlvdXNseSBzdGF0aWMgbWV0aG9kIHNvIHRoYXQgY3VzdG9tIG5lZ290aWF0ZSBpbXBsZW1lbnRhdGlvbiBjYW4KCSAgY2FsbCBpdCBhbmQgZG8gdGhlIHJpZ2h0IHRoaW5nLgoKMjAxMS0wOC0wNCAxMzo0ODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQQVVTRUQ8LT5QTEFZIGRvZXNuJ3QgY2hhbmdlIHBvb2wgc3RhdGUKCSAgRG9uJ3QgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgYnVmZmVycG9vbCB3aGVuIGdvaW5nIGJldHdlZW4gUEFVU0VEIGFuZCBQTEFZSU5HLAoJICBpdCB3aWxsIGRlYWxsb2MgYW5kIHJlYWxsb2MgYWxsIGJ1ZmZlcnMsIHdoaWNoIGlzIGNsZWFybHkgdG9vIGludmFzaXZlLiBXZSB3aWxsCgkgIG5lZWQgdG8gYWRkIHNvbWUgb3RoZXIgd2F5IG9mIHVuYmxvY2tpbmcgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA4LTA0IDExOjAwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBmaXggZGVmYXVsdCBhbGlnbm1lbnQKCSAgQSAwIGFsaWdubWVudCBpcyB0aGUgZGVmYXVsdC4KCjIwMTEtMDgtMDQgMTA6NTQ6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIGdzdF9idWZmZXJfcG9vbF9pc19hY3RpdmUoKQoKMjAxMS0wOC0wMyAxMTo1Nzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjAgPT09CgoyMDExLTA4LTAyIDIwOjU1OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExCgoyMDExLTA4LTAzIDExOjA0OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmctdG8tMC4xMTogQWRkIHNlY3Rpb24gYWJvdXQgR3N0SXRlcmF0b3IKCjIwMTEtMDgtMDEgMTg6MTI6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBkb24ndCBhZGQgdGhlIHNhbWUgb3B0aW9uIHR3aWNlCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIG9ubHkgYWRkIGFuIG9wdGlvbiB0byB0aGUgYXJyYXkgb25jZS4KCjIwMTEtMDctMzAgMTQ6MDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgYW4gb3B0aW9uCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhbiBvcHRpb24gaXMgc3VwcG9ydGVkIG9uIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wNy0yOSAxNzoxMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBvcHRpb25zIEFQSSB0byBidWZmZXJwb29sCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gcXVlcnkgdGhlIHN1cHBvcnRlZCBvcHRpb25zIG9mIGEgYnVmZmVycG9vbCBhbmQgZW5hYmxlCgkgIG9wdGlvbnMuIFRoaXMgaXMgYSBiaXQgbW9yZSBnZW5lcmljIHRoYW4gdGhlIEFQSSB0byBlbmFibGUgbWV0YWRhdGEuIFRoZSBwdXJwb3NlCgkgIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYWRkIG5ldyBjdXN0b20gY29uZmlnIG9wdGlvbnMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb2YKCSAgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBzdXBwb3J0ZWQuCgoyMDExLTA3LTI4IDEyOjExOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGRvbid0IHVzZSBHX0NPTlNUX1JFVFVSTgoJICBJdCdzIGJlZW4gZGVwcmVjYXRlZCBpbiBuZXdlciBHTGliIHZlcnNpb25zCgoyMDExLTA3LTI4IDEyOjAxOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZm9yIHBvc2l0aW9uL2R1cmF0aW9uIHF1ZXJ5IEFQSSBjaGFuZ2UKCjIwMTEtMDctMjcgMDA6Mjg6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHRlc3RzOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjI4OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBsdWdpbnM6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6MjY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoxNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3Q6IGZpeCBhd2t3YXJkIGRlc3RfZm9ybWF0IGlub3V0IHBhcmFtZXRlciBpbiBxdWVyeSB1dGlsaXR5IGZ1bmN0aW9ucwoJICBUaGUgaWRlYSB3YXMgb3JpZ2luYWxseSB0aGF0IGlmIG9uZSBwYXNzZWQgJmRlc3RfZm10IHdpdGgKCSAgZGVzdF9mbXQ9R1NUX0ZPUk1BVF9ERUZBVUxULCB0aGVuIHRoZSBjb2RlIGFuc3dlcmluZyB0aGUgcXVlcnkKCSAgY291bGQgY2hhbmdlIGRlc3RfZm10IHRvIHRoZSBhY3R1YWwgZGVmYXVsdCBmb3JtYXQgdXNlZC4gSG93ZXZlciwKCSAgaW4gbW9yZSB0aGFuIGhhbGYgYSBkZWNhZGUgb2YgR1N0cmVhbWVyIDAuMTAgbm8gcGllY2Ugb2YgY29kZSBpbgoJICBHU3RyZWFtZXIgaGFzIGV2ZXIgdXNlZCB0aGF0IGZlYXR1cmUsIG5vciBhcmUgdGhlcmUgdGhhdCBtYW55CgkgIHVzZXJzIG9mIHRoaXMgQVBJIHRoYXQgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgZm9ybWF0IHJldHVybmVkCgkgIGlzIHRoZSBvcmlnaW5hbCBmb3JtYXQgcGFzc2VkIGJlZm9yZSB1c2luZyB0aGUgdmFsdWVzIHJldHVybmVkLgoJICBBbHNvLCBpdCdzIGp1c3QgYW5ub3lpbmctdG8tdXNlIEFQSSBpbiBpdHMgb3duIHJpZ2h0LgoJICBGb3IgYWxsIHRoZXNlIHJlYXNvbnMsIG1ha2UgaXQgc28gdGhhdCB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzCgkgIHBhc3NlZCBkaXJlY3RseSBhbmQgY2FuJ3QgYmUgY2hhbmdlZCBieSB0aGUgZWxlbWVudCBxdWVyaWVkLgoKMjAxMS0wNy0yNyAxMjo1MDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDctMjcgMTI6NDk6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIG1vcmUgY29tbWVudHMKCjIwMTEtMDctMjcgMTI6NDU6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhbHNvIHBhc3MgYWxsb2NhdGlvbiBxdWVyeSBpbiBpbl9wbGFjZQoJICBXaGVuIHdlIGFyZSBkb2luZyBhbiBpbl9wbGFjZSB0cmFuc2Zvcm0sIGRvbid0IGRvIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJ1dCBsZXQKCSAgdGhlIHVwc3RyZWFtIGVsZW1lbnQgZGVjaWRlLgoKMjAxMS0wNy0yNiAyMjo0MTo1OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYmFzZTogYWRkIG1pc3NpbmcgKG91dCkgYW5ub3RhdGlvbiBmb3IgYnl0ZSByZWFkZXIvd3JpdGVyIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1MzgxCgoyMDExLTA3LTI3IDEwOjA5OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGctaSBhbm5vdGF0aW9uIGZvciBfY3JlYXRlKCkgYW5kIF9tYWtlKCkgdG8gYWxsb3cgTlVMTCBvYmplY3QgbmFtZXMKCjIwMTEtMDctMjYgMTg6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbgoJICBSZWZhY3RvciBjYWxsaW5nIHRoZSBHRVRDQVBTIGZ1bmN0aW9uIGFuZCBjaGVja3MuCgkgIE1vdmUgdGhlIGZpbHRlciBjb2RlIGluIG9uZSBwbGFjZS4KCSAgV2hlbiB1c2luZyBmaXhlZCBwYWQgY2FwcywgZ2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBjYXBzIGFuZCB0aGVuIGZhbGxiYWNrCgkgIHRvIHRoZSBHRVRDQVBTIGZ1bmN0aW9uLiBXZSB1c2VkIHRvIHNpbXBseSBpZ25vcmUgdGhlIEdFVENBUFMgZnVuY3Rpb24sIHdoaWNoCgkgIHJlc3VsdGVkIGluIHRyYW5zZm9ybSBlbGVtZW50cyByZXR1cm5pbmcgdGhlIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBkb2luZyB0aGUKCSAgY2FwcyB0cmFuc2Zvcm0uCgoyMDExLTA3LTI2IDE1OjQzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgdXBkYXRlIGNhcHMgd2hlbiBjaGFuZ2VkCgkgIE9ubHkgY2FsbCB0aGUgZXZlbnQgZnVuY3Rpb24gd2l0aCB0aGUgY2FwcyBldmVudCB3aGVuIHRoZSBjYXBzIGNoYW5nZWQuCgoyMDExLTA3LTI2IDE0OjM3OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wNy0yNiAxMjoyMTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGl0IGVhc3kgdG8gb3ZlcnJpZGUgdGhlIHBhZCBxdWVyeQoJICBBZGQgYSB2bWV0aG9kIHRvIGhhbmRsZSB0aGUgcGFkIHF1ZXJ5LgoJICBJbnN0YWxsIGEgZGVmYXVsdCBoYW5kbGVyIGZvciB0aGUgcGFkIHF1ZXJ5LgoJICBBZGQgYSB2bWV0aG9kIHRvIHNldHVwIHRoZSBhbGxvY2F0aW9uIHByb3BlcnRpZXMuCgkgIFVzZSB0aGUgbmV3IHF1ZXJ5IGZ1bmN0aW9uIGluIGZpbGVzaW5rCgoyMDExLTA3LTI2IDEyOjIwOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGltcHJvdmUgZG9jcwoKMjAxMS0wNy0yNiAxMjoyMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBqdXN0IGJlY2F1c2UKCjIwMTEtMDctMjUgMTU6MjE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNy0yNSAxMjo1MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogYXZvaWQgcmFjZSBpbiBidWZmZXJwb29sIHJlbGVhc2UKCSAgQXZvaWQgcGxheWluZyB3aXRoIHRoZSByZWZjb3VudCB0byBkZWNpZGUgd2hlbiBhIGJ1ZmZlciBoYXMgYmVlbiByZWN5Y2xlZCBieSB0aGUKCSAgZGlzcG9zZSBmdW5jdGlvbi4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSB0aGVuIHRlbXBvcmFyaWx5IGNhbiBoYXZlIGEgYnVmZmVyIHdpdGgKCSAgYSByZWZjb3VudCA+IDEgYmVpbmcgYWNxdWlyZWQgZnJvbSB0aGUgcG9vbCwgd2hpY2ggaXMgbm90IHdyaXRhYmxlLiBJbnN0ZWFkIHVzZQoJICBhIHNpbXBsZSBib29sZWFuIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBkaXNwb3NlIGZ1bmN0aW9uIHRvIGluZm9ybSB0aGUgY2FsbGVkCgkgIHRoYXQgdGhlIG9iamVjdCB3YXMgcmVjeWNsZWQgb3Igbm90LgoKMjAxMS0wNy0yNSAxMjo0OToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgREVCVUcgaW5zdGVhZCBvZiBFUlJPUiBmb3IgbG9nZ2luZwoJICBEb24ndCB1c2UgdGhlIEVSUk9SIGxvZyBjYXRlZ29yeSBiZWNhdXNlIHRoZSBhbGxvY2F0aW9uIGZhaWx1cmUgbWlnaCBvbmx5IGJlCgkgIGJhY2F1c2Ugb2YgYSBzdGF0ZSBjaGFuZ2UuCgoyMDExLTA3LTI1IDEyOjE0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogc3RhcnQgd2l0aCByYWlzZWQgY29udHJvbCBzb2NrZXQKCSAgSW4gdGhlIGluYWN0aXZlIHN0YXRlLCB0aGUgY29udHJvbCBzb2NrZXQgc2hvdWxkIGJlIGluIHRoZSByYWlzZWQgc3RhdGUsIHdlIHdpbGwKCSAgcmVsZWFzZSBpdCB3aGVuIHdlIHN0YXJ0LgoKMjAxMS0wNy0yNCAxMToyNDo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgcHdkOiBkaXNjb250aW5vdXMgZXZlbnQgLT4gbmV3c2VnbWVudCBldmVudAoJICBGaXggYSAwLjggbGVmdG92ZXIgYXMgbWVudGlvbmVkIG9uIGJ1ZyAjNjIxMTIxLgoKMjAxMS0wNy0yNCAwOTowNToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHRhbGsgYWJvdXQgdGhlIGJhc2V0cmFuc2Zvcm0gc2lua19ldmVudCB2bWV0aG9kCgoyMDExLTA3LTIzIDA4OjAwOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogZml4IGJ1aWxkIGZhaWx1cmUgZHVlIHRvIGNvbXBpbGVyIHdhcm5pbmcKCSAgUHJlc3VtYWJseSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTE1NQoKMjAxMS0wNy0yMiAyMToxNzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggc2luayBldmVudCBoYW5kbGluZwoJICBJbXBsZW1lbnQgdGhlIHNpbmsgZXZlbnQgaGFuZGxpbmcgbGlrZSB0aGUgc3JjIGV2ZW50IGhhbmRsZXIuIE1ha2UgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gcGFyc2UgYW5kIGZvcndhcmQgdGhlIGV2ZW50LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5CgkgIHJldHVybiBhbiBlcnJvciB2YWx1ZSBmcm9tIHRoZSBldmVudCBoYW5kbGVyLgoKMjAxMS0wNy0yMiAxOToxOTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBoYW5kbGUgZmFpbHVyZXMKCSAgSGFuZGxlIGZhaWx1cmUgdG8gYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA3LTIyIDE5OjExOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDExLTA3LTIxIDE4OjUwOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIHJlc2V0X2J1ZmZlciB2bWV0aG9kCgkgIEFkZCBhIHZtZXRob2QgdG8gcmVzZXQgYSBidWZmZXIgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLiBBZGQgYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHRoYXQgcmVzZXRzIHRoZSBmbGFncywgdGltZXN0YW1wcyBhbmQgb2Zmc2V0cy4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoKMjAxMS0wNy0yMSAxNzo0MjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiBSZW1vdmUgcmVmIGluIHBhc3N0aHJvdWdoCgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgdG8gaGF2ZSB0byByZXR1cm4gYSByZWYgdG8gdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUuIFRoaXMgc2F2ZXMgYSBmZXcgcmVmL3VucmVmIGN5Y2xlcyBhbmQgZml4ZXMgYW5vdGhlciAwLjExCgkgIEZJWE1FLgoKMjAxMS0wNy0yMSAxNzoyOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBuZXcgIGNvcHlfbWV0YWRhdGEgdm1ldGhvZAoJICBNYWtlIGEgbmV3IGNvcHlfbWV0YWRhdGEgdm1ldGhvZCBhbmQgbW92ZSB0aGUgY29kZSB0byBjb3B5IHRoZSB0aW1lc3RhbXBzLCBmbGFncwoJICBhbmQgb2Zmc2V0cyBpbnRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGdpdmUgdGhlCgkgIHN1YmNsYXNzZXMgYSBjaGFuY2UgdG8gb3ZlcnJpZGUgdGhlIGNvcHkgbWV0aG9kLgoKMjAxMS0wNy0yMSAxNjo0OToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoKMjAxMS0wNy0yMSAxNjozOTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGF2b2lkIGludGVybWVkaWF0ZSBtZXRob2QKCSAgU2ltcGx5IGNhbGwgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBtZXRob2QgaW5zdGVhZCBvZiBjYWxsaW5nIGFuIGludGVybWVkaWF0ZQoJICBmdW5jdGlvbi4KCjIwMTEtMDctMjEgMTY6MzA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSB0aGUgbWV0YWRhdGEgY29weSBjb2RlCgkgIE1vdmUgdGhlIG1ldGFkYXRhIGNvcHkgY29kZSB0byB0aGUgZGVmYXVsdCBwcmVwYXJlX291dHB1dF9idWZmZXIgaW1wbGVtZW50YXRpb24uCgoyMDExLTA3LTIxIDE1OjQ5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGNvZGUKCSAgTW92ZSB0aGUgY29kZSBmb3IgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gdGhpcyBhbGxvd3MKCSAgdXMgdG8gc2ltcGxpZnkgc29tZSB0aGluZ3MgYW5kIGhhdmUgc3ViY2xhc3NlcyBjYWxsIGludG8gdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gd2hlbiBuZWVkZWQuCgoyMDExLTA3LTIxIDE1OjQ4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgZ2V0IHNpemUgZm9yIGRlYnVnCgoyMDExLTA3LTIxIDE0OjE4OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogZml4IGNvbW1lbnQgYW5kIHdhcm4KCSAgRW1pdCBhIHdhcm5pbmcgaW4gdGhlIGRlYnVnIGxvZyB3aGVuIHNvbWV0aGluZyBzZWVtcyB3ZWlyZC4KCjIwMTEtMDctMjEgMTQ6MTQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBnZXQgY2FwcyBmb3Igc2l6ZSB0cmFuc2Zvcm0KCSAgRGVsYXkgZ2V0dGluZyB0aGUgY2FwcyB1bnRpbCB3ZSBuZWVkIHRvIGNhbGwgdGhlIHRyYW5zZm9ybV9zaXplIGZ1bmN0aW9uLgoKMjAxMS0wNy0yMSAxMzo1NjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiByZW1vdmUgdXNlbGVzcyB2YXJpYWJsZXMgZnJvbSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgUmVtb3ZlIHRoZSBjYXBzIGFuZCBzaXplIGZyb20gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4gd2l0aAoJICBidWZmZXJwb29scyBhbmQgY2Fwc25lZ28gZG9uZSBkaWZmZXJlbnRseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGluIG1vc3QgY2FzZXMgYW5kCgkgIGlmIHdlIGRvLCB3ZSBjYW4gc2ltcGx5IHVzZSB0aGUgdHJhbnNmb3JtX3NpemUgZnVuY3Rpb24gYW5kIGdldCB0aGUgY2FwcyBmcm9tCgkgIHRoZSBzcmNwYWQuCgoyMDExLTA3LTE4IDE3OjIyOjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBjbGFyaWZ5IGNsb2NrcyBkb2NzIGluIG1hbnVhbAoJICBBZnRlciBhIHF1ZXN0aW9uIG9uIHRoZSBtYWlsaW5nIGxpc3QsIG1lbnRpb24gdGhhdCAqZmx1c2hpbmcqIHNlZWtzIHJlc2V0IHRoZQoJICBydW5uaW5nIHRpbWUuCgoyMDExLTA3LTE2IDIyOjAwOjE1ICswMzAwICBSYWx1Y2EgRWxlbmEgUG9kaXVjIDxyYWx1Y2FlbGVuYTE5ODVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IHJlbW92ZWQgZG91YmxlIG5lZ2F0aW9uIGluIGV2ZW50L21lc3NhZ2Ugc2VxIG51bSBkZXNjcmlwdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NzUxCgoyMDExLTA3LTE2IDEyOjIxOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSBub24tQVNDSUkgY2hhcnMgaW4gZmlsZW5hbWVzIGFyZSBlc2NhcGVkIHdoZW4gY3JlYXRpbmcgVVJJcyBmcm9tIHRoZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDY3MwoKMjAxMS0wNy0xNSAxNjowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBhY2NpZGVudGFsbHkgZGlzYWJsZSB0aGUgcG9vbAoJICBXaGVuIHdlIHNldCBhIHBvb2wgYW5kIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBvbGQgcG9vbCwgZG9uJ3QgZGlzYWJsZSB0aGUgcG9vbC4KCjIwMTEtMDctMTUgMTM6Mjc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBjYWxsIHJlbGVhc2VfYnVmZmVyIGFmdGVyIGFsbG9jCgkgIEFmdGVyIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIsIGNhbGwgdGhlIHJlbGVhc2VfYnVmZmVyIHZtZXRob2QgdG8gcHV0IHRoZSBuZXcKCSAgYnVmZmVyIGluIHRoZSBwb29sIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCB0aGUgcG9vbCB1c2VzIHRoZSBkZWZhdWx0CgkgIHJlbGVhc2VfbWV0aG9kIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wNy0xNSAxMTo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgZmx1c2hpbmcKCjIwMTEtMDctMTUgMTE6NTE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlCgoyMDExLTA3LTE0IDEyOjQ1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoKMjAxMS0wNy0xMyAxMTozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1bnNldCBQTEFZSU5HIHRyYW5zaXRpb24gZmxhZyB3aGVuIHRyYW5zaXRpb24gY29tcGxldGVkCgoyMDExLTA3LTEyIDE0OjA3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCByZXNpemUgZnVuY3Rpb24gc29tZSBtb3JlCgkgIERvbid0IHJlbW92ZSBtZW1vcnkgYmxvY2tzIGZyb20gdGhlIGJ1ZmZlciB3aGVuIHdlIGNsaXAgYW5kIHJlc2l6ZSwgaW5zdGVhZCBzZXQKCSAgdGhlIG1lbW9yeSBvZmZzZXQgYW5kIHNpemUgdG8gMC4gVGhpcyBhbGxvd3MgdXMgdG8gbWFrZSB0aGUgYnVmZmVyIGxhcmdlciBhZ2FpbgoJICBsYXRlci4KCjIwMTEtMDctMTIgMTM6NDA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIHNpemUgaGFuZGxpbmcKCSAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgbXVsdGlwbGUgZW1wdHkgbWVtb3J5IGJsb2NrcyBhcmUgaW4gdGhlIGJ1ZmZlci4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMTEtMDctMTIgMTI6MDA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBzb21lIG1vcmUKCSAgQWRkIG1vcmUgZGVidWcuCgkgIEFsb3cgcmVzaXplIHRvIDAgYnl0ZXMuCgkgIERvIGNsaXBwaW5nIGNvcnJlY3RseS4KCSAgQWRkIG1vcmUgdW5pdCB0ZXN0cy4gQWxzbyBhZGQgYSBmYWlsaW5nIHRlc3Q6IHdoZW4gd2UgcmVzaXplIHRvIDAgYW5kIHRoZW4KCSAgdHJ5IHRvIHJlc2l6ZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzaXplIGl0IGZhaWxzIGJlY2F1c2UgdGhlIG1lbW9yeSB3YXMKCSAgcmVtb3ZlZC4KCjIwMTEtMDctMTEgMTg6MDA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IG5lZ2F0aXZlIG9mZnNldHMgc29tZSBtb3JlCgkgIEFsbG93IGZvciBuZWdhdGl2ZSBvZmZzZXRzIHdoZW4gZG9pbmcgbWVtb3J5IGNvcHkgYW5kIHNoYXJlLgoJICBBZGQgZmFzdCBwYXRoIGluIHRoZSBfZ2V0X3NpemVzKCkgZnVuY3Rpb24uCgkgIEZpeCByZXNpemUgZm9yIG5lZ2F0aXZlIG9mZnNldCBhbmQgZXhwYW5kaW5nIHRoZSBidWZmZXIuCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgoyMDExLTA3LTExIDE2OjQzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBkZWZzIGZvciBuZXcgbWV0aG9kcwoKMjAxMS0wNy0xMSAxNjo0Mjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBiZXR0ZXIKCjIwMTEtMDctMTEgMTY6MTc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBhcGkgdG8gZ2V0IHRoZSBjdXJyZW50IG1lbW9yeSBvZmZzZXQKCSAgQWxzbyByZXR1cm4gdGhlIG9mZnNldCBpbiBhIEdzdE1lbW9yeSBibG9jayB3aXRoIHRoZSBnZXRfc2l6ZXMoKSBtZXRob2QuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgaG93IG11Y2ggcHJlZml4IHRoZXJlIGlzIHVudXNlZC4KCSAgQ2hhbmdlIHRoZSByZXNpemUgZnVuY3Rpb24gc28gdGhhdCBhIG5lZ2F0aXZlIG9mZnNldCBjYW4gYmUgZ2l2ZW4uIFRoaXMgd291bGQKCSAgbWFrZSBpdCBwb3NzaWJsZSB0byByZXNpemUgdGhlIGJ1ZmZlciBzbyB0aGF0IHRoZSBwcmVmaXggYmVjb21lcyBhdmFpbGFibGUuCgkgIEFkZCBnc3RfYnVmZmVyX2dldF9zaXplcygpIHRvIHJldHVybiB0aGUgb2Zmc2V0IGFuZCBtYXhzaXplIGFzIHdlbGwgYXMgdGhlIHNpemUuCgkgIEFsc28gY2hhbmdlIHRoZSBidWZmZXIgcmVzaXplIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiBzcGVjaWZ5IGEgbmVnYXRpdmUgb2Zmc2V0CgkgIHRvIHJlbW92ZSBwcmVmaXggYnl0ZXMuCgoyMDExLTA3LTExIDE0OjQwOjA3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBzb21lIG1lbW9yeSB3cmFwcGVkIGJ1ZmZlciBhbGxvY2F0aW9uIGhlbHBlcnMKCjIwMTEtMDctMTEgMTI6MTE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwIGhlYWRlcnMKCjIwMTEtMDctMTEgMTE6NDA6MDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlYXQgaW5jb21pbmcgY2FwcyBldmVudAoJICAuLi4gYXMgaXQgaXMgdHlwaWNhbGx5IHVwIHRvIGJhc2VjbGFzcyB0byBzZXQgcHJvcGVyIHNyYyBjYXBzLgoKMjAxMS0wNy0xMSAxMTozNzoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXZvaWQgaW5hZHZlcnRlbnRseSBkcm9wcGluZyBhbiBldmVudAoJICAuLi4gcGFydGljdWxhcmx5IGEgbm9uLXN0aWNreSBzZXJpYWxpemVkIGV2ZW50IHRoYXQgaGFwcGVucyB0byBwYXNzCgkgIHdoZW4gYW4gZXZlbnQgdXBkYXRlIGlzIHBlbmRpbmcuCgoyMDExLTA3LTA0IDEyOjU4OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRyeSBoYXJkZXIgdG8gYXJyYW5nZSBpbmNyZWFzaW5nIHBvc2l0aW9uIHJlcG9ydGluZwoJICAuLi4gcmF0aGVyIHRoYW4gaGF2aW5nIGEgbW9tZW50YXJ5IGRlY3JlYXNpbmcgb25lIHdoaWxlIHRyYW5zaXRpb25pbmcKCSAgdG8gUExBWUlORy4KCSAgRml4ZXMgIzYyODAyMS4KCjIwMTEtMDctMDggMTY6MDc6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTEtMDctMDYgMTU6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbWFrZSBpZHggYXJndW1lbnQgdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNpZ25lZAoJICBTaW5jZSAtMSBpcyBhY2NlcHRhYmxlLCBpdCBzaG91bGQgYmUgc2lnbmVkLgoKMjAxMS0wNy0wNyAxNDo1NzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gZGVidWcgbWVzc2FnZXMKCSAgRG9uJ3QgdXNlIGJ1ZmZlcnMgdGhhdCB3ZSd2ZSBnaXZlbiBhd2F5IG9yIHVucmVmZWQgaW4gZGVidWcgbWVzc2FnZXMuCgoyMDExLTA3LTA3IDExOjE0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBhZnRlciBtZXJnZQoKMjAxMS0wNy0wNyAxMToxMzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0wNy0wNiAxNjowODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBtZW1zZXQgZnVuY3Rpb24KCjIwMTEtMDctMDYgMTI6MDk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBndWFyZHMgZm9yIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKQoJICBTaW5jZSBpZHggPSAtMSBtYWtlcyBpdCBkZWZhdWx0IHRvIGlkeD1sZW4sIGxlbiBpcyBhbHNvCgkgIGEgdmFsaWQgaW5wdXQgaWR4LgoKMjAxMS0wNy0wNSAxNjozODowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgcmVmL3VucmVmCgoyMDExLTA3LTA1IDE2OjMyOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3Q6IGRpc2FibGUgZmFpbGluZyB1bml0IHRlc3RzCgkgIERpc2FibGUgdW5pdCB0ZXN0cyB0aGF0IGFyZSBmYWlsaW5nIHVudGlsIHNvbWVvbmUgcG9ydHMgdGhpcyB0byAwLjExCgoyMDExLTA3LTA1IDE2OjIwOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4IHVuaXQgdGVzdAoJICBTZXQgdGhlIHJpZ2h0IHBvc2l0aW9uIG1lbWJlciBpbiB0aGUgc2VnbWVudCBldmVudC4KCSAgQWRkIHNvbWUgZGVidWcgdG8gcXVldWUuCgoyMDExLTA3LTA1IDAwOjEwOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBtYWtlIGNvbXBpbGVyIHdhcm4gYWJvdXQgdW5zdGFibGUgQVBJIGlmIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGlzIG5vdCBkZWZpbmVkCgkgIEFuZCBkZWZpbmUgaXQgaW4gb3VyIG93biBidWlsZC4KCjIwMTEtMDctMDUgMDA6MTI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgbGF0ZXN0IEFQSSBjaGFuZ2VzL2FkZGl0aW9ucwoKMjAxMS0wNi0zMCAxNzozOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IHNuZWFraWx5IG1lc3Mgd2l0aCBjdXJyZW50IG9mZnNldCB3aGVuIHVwZGF0aW5nIGxlbmd0aAoKMjAxMS0wNi0yOCAyMjoxODo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdW5yZWYgYWxsb2NhdGlvbiBxdWVyeSB3aGVuIG5vIGxvbmdlciBuZWVkZWQKCjIwMTEtMDYtMjggMTk6MDE6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGF2b2lkIGl0ZXJhdGluZyBvdmVyIGEgc2luZ2xlIE5VTEwgcGFkCgoyMDExLTA2LTIwIDIzOjI4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBSZW1vdmUgR3N0SW1wbGVtZW50c0ludGVyZmFjZQoJICBJdCB3YXMgYSBiaXQgdG9vIGNsZXZlciwgYW5kIGRpZG4ndCByZWFsbHkgd29yayBhcyBhbiBBUEksCgkgIGNvbmZ1c2luZyBwZW9wbGUgdG8gbm8gZW5kLiBCZXR0ZXIgaW1wbGVtZW50IHNwZWNpZmljIG1ldGhvZHMKCSAgd2hldGhlciBhbiBpbnRlcmZhY2UgaXMgdXNhYmxlL2F2YWlsYWJsZS9yZWFkeSBvbiB0aGUgaW50ZXJmYWNlCgkgIGl0c2VsZiwgb3IgZXZlbiBhZGQgR0Vycm9yIGFyZ3VtZW50cywgcmF0aGVyIHRoYW4gdHJ5IHRvIGhhdmUKCSAgcGVyLWluc3RhbmNlIGludGVyZmFjZXMuCgoyMDExLTA2LTI1IDEzOjUxOjUyIC0wNzAwICBFbW1hbnVlbCBQYWNhdWQgPGVtbWFudWVsLnBhY2F1ZEBsYXBwLmluMnAzLmZyPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogQ2hlY2sgZm9yIFBSX1NFVF9OQU1FIGJlZm9yZSB1c2luZwoJICBGaXhlczogIzY1MzE3Mi4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoyMDExLTA2LTIzIDExOjI3OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjliOTgxZiB0byA2MDVjZDlhCgoyMDExLTA2LTIzIDE4OjAzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgbWV0YWRhdGEKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgY2VydGFpbiBtZXRhZGF0YSBpcyBzdXBwb3J0ZWQgaW4gdGhlIEFMTE9DQVRJT04KCSAgcXVlcnkuCgoyMDExLTA2LTIyIDE4OjA3OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzIGEgbGl0dGxlCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvYyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB2aWRlb21ldGFkYXRhLgoKMjAxMS0wNi0yMiAxNzoxMjozNCArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSAmIGluc3RlYWQgb2YgJiYgZm9yIG1hc2tpbmcgYml0cwoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowOTo1MiArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHJlZHVuZGFudCAoKQoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowNToyNyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrc3RvcAoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNjo1ODo1MyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBjYXN0IHRvIHJpZ2h0IHR5cGUKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTY6Mzg6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgdXJpOiByZW1vdmUgc29tZSBfZnVsbCB2YXJpYW50cwoKMjAxMS0wNi0yMiAxNjoxNjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHRhZ3M6IFJlbW92ZSBjcmF6eSB0YWcgbWVzc2FnZXMKCSAgRG9uJ3QgbWl4IG1lc3NhZ2VzIGFuZCBwYWRzIGFuZCB0YWdzLgoJICBNYWtlIHRoZSBzaW5rIHBvc3QgdGFnIG1lc3NhZ2VzIHdoZW4gYSB0YWcgZXZlbnQgaXMgcmVjZWl2ZWQuCgkgIFNpbmNlIHRhZ3MgYXJlIHN0aWNreSBvbiBwYWRzIG5vdywgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlcmUKCSAgd2hlbiBuZWVkZWQuCgoyMDExLTA2LTIyIDEyOjI4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGNhcHM6IEhpZGUgaW1wbGVtZW50YXRpb24gZGV0YWlscwoJICBNYWtlIHRoZSBBcnJheSBvZiBzdHJ1Y3R1cmVzIHByaXZhdGUuIFRoaXMgc2hvdWxkIGFsbG93IHVzIHRvIGltcGxlbWVudAoJICB0aGUgYXJyYXkgbW9yZSBlZmZpY2llbnRseSBvciB3aXRoIHNvbWUgcHJlYWxsb2NhdGVkIHN0cnVjdHVyZXMgd2hlbgoJICB3ZSB3YW50IHRvIGxhdGVyLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIGNsZWFuIHVwIGEgc3RhdGljIHN0cnVjdHVyZSBzbyB0aGF0IHdlIGNhbiByZW1vdmUgc29tZSBjb2RlCgkgIHRoYXQgcG9rZXMgaW50byB0aGUgcHJpdmF0ZSBiaXRzIG9mIHRoZSBjYXBzLgoKMjAxMS0wNi0yMiAxMjoyNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgbmVnb3RpYXRpb24gZGVzaWduIGRvYwoKMjAxMS0wNi0yMiAxMTo0Mjo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBtZW1vcnk6IHJlbmFtZSBHc3RNZW1vcnlBbGxvY2F0b3IgLT4gR3N0QWxsb2NhdG9yCgkgIHNpbXBsaWZ5IHRoZSBuYW1lIG9mIHRoZSBhbGxvY2F0b3Igb2JqZWN0LgoKMjAxMS0wNi0yMSAxNzo1NDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmgKCjIwMTEtMDYtMjEgMTc6NDc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jCgoyMDExLTA2LTIxIDE3OjQ3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA2LTIxIDE1OjE1OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSAgaW1hZ2VzOiBzdHJpcCBpbWFnZXMgb2YgZXh0cmEgdGV4dCB0YWdzCgoyMDExLTA2LTIxIDEyOjMyOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcmV0dXJuIGVtcHR5IG1ldGFkYXRhIGFycmF5CgkgIFJldHVybiBhIHN0cmluZyBhcnJheSB3aXRoIE5VTEwgaW5zdGVhZCBvZiBOVUxMIGZyb20gdGhlIGRlZmF1bHQgZ2V0X21ldGFzCgkgIGZ1bmN0aW9uLgoKMjAxMS0wNi0yMSAxMjozMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgZXZlbnQgZnVuY3Rpb24gZGlyZWN0bHkKCSAgV2Ugd2lsbCBuZXZlciBnbyBpbiB0aGlzIGNvZGUgcGF0aCBmb3IgQ0FQUyBldmVudHMgc28gZGlyZWN0bHkgY2FsbCB0aGUgZXZlbnQKCSAgZnVuY3Rpb24uCgoyMDExLTA2LTIxIDEwOjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIGFmdGVyIHdlIHN0b3JlIHRoZSBuZXcgY2FwcwoJICBub3RpZnkgY2FwcyBhZnRlciB3ZSBzdG9yZSB0aGUgbmV3IGNhcHMgc28gdGhhdCB0aGUgbmV3IGNhcHMgYXJlIGFjdHVhbGx5CgkgIHZpc2libGUgZm9yIHRoZSBhcHAuCgoyMDExLTA2LTIwIDE3OjMyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGFjdGl2YXRlIHRoZSBidWZmZXJwb29sCgkgIGFsd2F5cyBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbCwgZXZlbiBpZiB3ZSBnZXQgaXQgZnJvbSB0aGUgYWxsb2NhdGlvbgoJICBxdWVyeS4KCjIwMTEtMDYtMjAgMTc6MzI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWx3YXlzIGFjdGl2YXRlIHRoZSBwb29sIHdlIGdldAoJICBBY3RpdmF0ZSB0aGUgcG9vbCB3aGVuIHdlIGdldCBpdCBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoKMjAxMS0wNi0yMCAxNjo0Nzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW5wcm92ZSBhbGxvY2F0aW9uIGhhbmRsaW5nCgkgIEFkZCB2bWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIGluZmx1ZW5jZSB0aGUgcG9vbCBhbmQgYWxsb2NhdG9yLgoJICBMb2cgd2hlbiBxdWVyeSBmYWlscy4KCSAgUmVzcGVjdCBuZWdvdGlhdGVkIGFsbG9jYXRvciBhbmQgYWxpZ25tZW50LgoKMjAxMS0wNi0yMCAxNjo0NjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBJbXByb3ZlIGxvZ2dpbmcKCSAgTG9nIHdoZW4gdGhpbmdzIGZhaWwuCgkgIEZpeCBhIHF1ZXJ5IGxlYWsuCgoyMDExLTA2LTIwIDE2OjQ0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBpbXByb3ZlIGRlYnVnCgkgIExvZyBhIGRlYnVnIGxpbmUgd2hlbiB0aGVyZSBpcyBubyB0YXJnZXQgcGFkIGFuZCB3aGVuIHRoaXMgbWFrZXMgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gZmFpbC4KCSAgVGFrZSB0aGUgaW50ZXJuYWwgcGFkcyBkaXJlY3RseSB3aGVuIHdlIGNhbi4KCjIwMTEtMDYtMjAgMTU6NDA6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjI2CgoyMDExLTA2LTIwIDEzOjI2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIGZ1bmN0aW9uIHRvIHNldCBtZXRhZGF0YSBhcGkKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIG1ldGFkYXRhIGFwaXMgZnJvbSB0aGUgdGhlCgkgIGJ1ZmZlcnBvb2wuCgkgIEFkZCBmdW5jdGlvbnMgdG8gY29uZmlndXJlIGFuZCBxdWVyeSB0aGUgY29uZmlndXJlZCBtZXRhZGF0YSBhcGlzIGluIGEKCSAgYnVmZmVycG9vbCBjb25maWd1cmF0aW9uLgoKMjAxMS0wNi0xOSAxMzoxNToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogTWlub3IgZml4IHRvIGRvY3MKCSAgQWRkcyBtaXNzaW5nIHBhcmFtZXRlciB0byBkb2NzIG9mIGdzdF9idWZmZXJfY29weV9yZWdpb24KCjIwMTEtMDYtMTggMTc6MzU6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBkb19ldmVudF9hY3Rpb25zCgkgIGRvX2V2ZW50X2FjdGlvbnMgd2FzIGFsd2F5cyB1c2VkIGFzIFRSVUUKCjIwMTEtMDYtMTggMTQ6Mzg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIGdvYmplY3QtaW50cm9zcGVjdGlvbiByZXF1aXJlbWVudCB0byA+PSAwLjYuOAoJICBGb3IgLS1hZGQtaW5pdC1zZWN0aW9uCgoyMDExLTA2LTE2IDE3OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIEJ1bXAgZ2l0IHZlcnNpb24gYWZ0ZXIgdW5wbGFubmVkIDAuMTAuMzUgcmVsZWFzZQoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMC4zNScKCjIwMTEtMDYtMTQgMTc6NTc6MjEgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIEZpeGVzICM2NTI1NzcuCgoyMDExLTA2LTE2IDEwOjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBSZXZlcnQgInV0aWxzOiByZW1vdmUgc29tZSBtYWNyb3Mgbm93IGluIGdsaWIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGUyOWFlN2I5MjljZWRiZjZiOTgzOGVhNTNiMDVlZmFiZGNlNGNlNy4KCSAgUmUtYWRkcyBHRkxPQVRfVE9fTEUsIEdGTE9BVF9UT19CRSwgR0RPVUJMRV9UT19MRSwgYW5kIEdET1VCTEVfVE9fQkUuCgkgIFR1cm5zIG91dCB0aGVzZSBhcmVuJ3QgaW4gR0xpYiB5ZXQgYWZlciBhbGwgKHNpbmNlIHdlIGRpZG4ndAoJICBhY3R1YWxseSBvcGVuIGEgYnVnIHRvIGdldCB0aGVtIGFkZGVkLi4pCgo9PT0gcmVsZWFzZSAwLjEwLjM1ID09PQoKMjAxMS0wNi0xNSAxOToxNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzUKCSAgVGhpcyBpcyBhbiBhZC1ob2MgcmVsZWFzZSB0aGF0IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gMC4xMC4zNDoKCSAgKiB3b3JrIGFyb3VuZCBHTGliIGF0b21pYyBvcHMgQVBJIGNoYW5nZQoJICAqIHNvbWUgbWlub3Igd2luMzIvbWluZ3cgZml4ZXMKCSAgKiBkb24ndCB1c2UgR19DT05TVF9SRVRVUk4gaW4gcHVibGljIGhlYWRlcnMKCjIwMTEtMDYtMTUgMTY6NTY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDQgMDA6MzA6MTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIFdvcmsgYXJvdW5kIGNoYW5nZXMgaW4gZ19hdG9taWMgQVBJCgkgIFNlZSAjNjUxNTE0IGZvciBkZXRhaWxzLiAgSXQncyBhcHBhcmVudGx5IGltcG9zc2libGUgdG8gd3JpdGUgY29kZQoJICB0aGF0IGF2b2lkcyBib3RoIHR5cGUgcHVubmluZyB3YXJuaW5ncyB3aXRoIG9sZCBnX2F0b21pYyBoZWFkZXJzIGFuZAoJICBhc3NlcnRpb25zIGluIHRoZSBuZXcuICBUaHVzLCBtYWNyb3MgYW5kIGEgdmVyc2lvbiBjaGVjay4KCjIwMTEtMDUtMjUgMTM6NDA6MzAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBQbGFjYXRlIGdjYyBieSBkZWZpbmluZyBFV09VTERCTE9DSyB0byBzb21ldGhpbmcKCjIwMTEtMDUtMjUgMTI6NDc6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IFdBS0VfRVZFTlQoKSB0byBiZWhhdmUgcG9zaXhseSBvbiBXaW5kb3dzCgoyMDExLTA2LTE0IDE1OjE4OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0wNi0xMyAxOToxMDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMTMgMTY6MzE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBidWZmZXI6IGFkZCBpbmRleCB0byBfdGFrZV9tZW1vcnkoKQoJICBBZGQgYW4gaW5kZXggdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNvIHRoYXQgd2UgY2FuIGFsc28gaW5zZXJ0IG1lbW9yeSBhdCBhCgkgIGNlcnRhaW4gb2Zmc2V0LiBUaGlzIGlzIG1vc3RseSBpbnRlcmVzdGluZyB0byBwcmVwZW5kIGEgaGVhZGVyIG1lbW9yeSBibG9jayB0bwoJICB0aGUgYnVmZmVyLgoKMjAxMS0wNi0xMyAxNjozMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmb3J3YXJkIHNjaGVkdWxpbmcgcXVlcnkKCSAgVGhlIHNjaGVkdWxpbmcgcXVlcnkgc2hvdWxkIG5vdCBiZSBmb3J3YXJkZWQsIGJlY2F1c2UgZWxlbWVudHMgbmVlZCB0byBpbXBsZW1lbnQKCSAgc3BlY2lhbCBjb2RlIHRvIGhhbmRsZSBkaWZmZXJlbnQgc2NoZWR1bGluZyBtZXRob2RzLgoKMjAxMS0wNi0xMyAxMjowNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGJhc2VzcmM6IEFsbG9jYXRvciBidWZmZXJzIGZyb20gbmVnb3RpYXRlZCBhbGxvY2F0b3IKCSAgQWxsb2NhdGUgYnVmZmVycyBmcm9tIHRoZSBuZWdvdGlhdGVkIGFsbG9jYXRvciBvciBidWZmZXJwb29sLgoJICBIYW5kbGUgdGhlIHN0YXRlIG9mIHRoZSBidWZmZXJwb29sIHdoZW4gZmx1c2hpbmcuCgkgIEFkZCBmaWxsIG1ldGhvZCB0byBwdXNoc3JjLgoKMjAxMS0wNi0xMyAxMjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMS0wNi0xMyAxMTo1MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHNtYWxsIGluZGVudGF0aW9uIGZpeAoKMjAxMS0wNi0xMyAxMTo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHBhc3MgdGhlIGFsbG9jYXRvciBhcyBjb25zdAoKMjAxMS0wNi0xMyAxMDoxOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogbmVnb3RpYXRlIGFsbG9jYXRpb24KCSAgQWRkIHZtZXRob2QgdG8gY29uZmlndXJlIGFsbG9jYXRpb24gbWV0aG9kcy4KCSAgUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwoKMjAxMS0wNi0xMSAyMDo0NTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbW9yZSBjaGVja3MKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIGFsaWdubWVudCBpcyB2YWxpZC4KCSAgV2hlbiB3ZSBoYXZlIGEgMCBzaXplICh2YXJpYWJsZSBidWZmZXIgc2l6ZSksIHdlIGNhbid0IGhhdmUgYSBidWZmZXJwb29sLgoKMjAxMS0wNi0xMSAxOTo1NDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogc2V0IGFsbCBkZWZhdWx0IHZhbHVlcwoJICBGaWxsIGFsbCBxdWVyeSB2YWx1ZXMgd2l0aCBnb29kIGRlZmF1bHRzLgoKMjAxMS0wNi0xMSAxODo1Mjo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXJwb29sOiByZW1vdmUgcG9zdGZpeCBwYXJhbWV0ZXIKCSAgUmVtb3ZlIHRoZSBwb3N0Zml4IHBhcmFtZXRlciwgaXQncyBub3QgdXNlZCBhbmQgY2FuIGJlIGRvbmUgZGlmZmVyZW50bHkuCgoyMDExLTA2LTEwIDE3OjUwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXNlIHNhbWUgYWxpZ25tZW50IHZhbHVlcyBhcyBHc3RNZW1vcnkKCSAgVXNlIHRoZSBzYW1lIGFsaWdubWVudCB2YWx1ZXMgZm9yIHRoZSBidWZmZXJwb29sIGFzIHdlIHVzZSBmb3IgdGhlIEdzdE1lbW9yeQoJICBBUEkuCgoyMDExLTA2LTEwIDE3OjMyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgX2NoZWNrX3JlY29uZmlndXJlKCkgbWV0aG9kCgoyMDExLTA2LTEwIDE3OjMyOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIF9jaGVja19yZWNvbmZpZ3VyZSgpIG1ldGhvZAoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgYW5kIGNsZWFyIHRoZSBSRUNPTkZJR1VSRSBmbGFnIG9uIGEgcGFkLgoKMjAxMS0wNi0xMCAxNjo0NzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGluIG1lbW9yeQoJICBGaXggdGhlIGNvZGUgdG8gc3VwcG9ydCBhbGxvY2F0aW5nIHRoZSBidWZmZXIgYW5kIG1lbW9yeSBpbiBvbmUgbWVtb3J5IGJsb2NrLgoJICBBZGQgYW4gZXh0cmEgdmFyaWFibGUgdG8gc3RvcmUgdGhlIG1lbW9yeSBvZiB0aGUgYnVmZmVyLgoJICBUaGlzIGNvZGUgaXMgZGlzYWJsZWQgc3RpbGwgYmVjYXVzZSBvZiBjb21wbGljYXRpb25zLgoKMjAxMS0wNi0xMCAxNjo0NjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGV4cG9zZSBkZWZhdWx0IGFsaWdubWVudAoJICBFeHBvcnQgdGhlIGdzdF9tZW1vcnlfYWxpZ25tZW50IHZhcmlhYmxlIHNvIHRoYXQgb3RoZXJzIGNhbiBrbm93IHRoZSBkZWZhdWx0CgkgIGNvbmZpZ3VyZWQgYWxpZ25tZW50IG9mIHRoZSBzeXN0ZW0uCgoyMDExLTA2LTEwIDE2OjE5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBpc19zcGFuCgkgIFN1YnRyYWN0IHRoZSBvZmZzZXQgb2YgdGhlIHBhcmVudCBmcm9tIGlzX3NwYW4uCgoyMDExLTA2LTEwIDEzOjU5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiByZXNwZWN0IGNvbmZpZ3VyZWQgYWxpZ25tZW50CgkgIE1vdmUgdGhlIGFsaWdubWVudCBmcm9tIEdzdEJ1ZmZlciB0byBHc3RNZW1vcnkuCgkgIG1ha2Ugc3VyZSBtZW1vcnkgaXMgYXQgbGVhc3QgYWxpZ25lZCB0byB0aGUgY29uZmlndXJlZCB2YWx1ZXMuCgoyMDExLTA2LTEwIDEzOjQwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBidWZmZXI6IG1ha2UgbmV3IF9idWZmZXJfYWxsb2NhdGUgbWV0aG9kCgkgIE1ha2UgYSBuZXcgbWV0aG9kIHRvIGFsbG9jYXRlIGEgYnVmZmVyICsgbWVtb3J5IHRoYXQgdGFrZXMgdGhlIGFsbG9jYXRvciBhbmQgdGhlCgkgIGFsaWdubWVudCBhcyBwYXJhbWV0ZXJzLiBQcm92aWRlIGEgbWFjcm8gZm9yIHRoZSBvbGQgbWV0aG9kIGJ1dCBwcmVmZXIgdG8gdXNlCgkgIHRoZSBuZXcgbWV0aG9kIHRvIGVuY291cmFnZSBwbHVnaW5zIHRvIG5lZ290aWF0ZSB0aGUgYWxsb2NhdG9yIHByb3Blcmx5LgoKMjAxMS0wNi0xMCAxMjo0NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiB1cGRhdGUgZm9yIGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplCgkgIEFkZCB0byBzZWN0aW9ucyBmaWxlIGFuZCBhZGQgU2luY2U6IG1hcmtlci4gQWxzbyB1cGRhdGUKCSAgd2luMzIgLmRlZiBmaWxlLgoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplKCkKCjIwMTEtMDYtMTAgMTM6NDQ6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRlc2lnbjogcGFydC1idWZmZXJsaXN0LnR4dCB3YXMgbWVyZ2VkIGludG8gYW5vdGhlciBkb2MKCjIwMTEtMDYtMTAgMTM6MzQ6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIHNlY3Rpb25zIGZpbGVzIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMTAgMTM6MTA6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTEwIDEzOjA0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGZpbGwgdm1ldGhvZCB0byBiYXNlc3JjCgkgIEFkZCBhIG5ldyBmaWxsIHZpcnR1YWwgbWV0aG9kIHRvIGJhc2VzcmMuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGZpbGwKCSAgYSBwcm92aWRlZCBidWZmZXIgd2l0aCBkYXRhLgoJICBBZGQgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjcmVhdGUgbWV0aG9kIHRoYXQgYWxsb2NhdGVzIGEgYnVmZmVyIGFuZAoJICBjYWxscyB0aGUgZmlsbCBtZXRob2Qgb24gaXQuIFRoaXMgd291bGQgYWxsb3cgdGhlIGJhc2UgY2xhc3MgdG8gaW1wbGVtZW50CgkgIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBuZWdvdGlhdGlvbiBvbiBiZWhhbGYgb2YgdGhlIHN1YmNsYXNzZXMuCgkgIEZpeCB0aGUgYmxvY2tzaXplIHByb3BlcnR5LgoJICBNYWtlIGZpbGVzcmMgdXNlIHRoZSBuZXcgZmlsbCBtZXRob2QuCgoyMDExLTA2LTEwIDEyOjA5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmgKCjIwMTEtMDYtMTAgMTE6NTU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IGFkZCByZXNldF90aW1lIGJvb2xlYW4gdG8gZmx1c2hfc3RvcCBldmVudAoJICBBZGQgYSBib29sZWFuIHRvIHRoZSBmbHVzaF9zdG9wIGV2ZW50IHRvIG1ha2UgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IGZsdXNoZXMKCSAgdGhhdCBkb24ndCByZXNldF90aW1lLgoJICBNYWtlIGJhc2VzaW5rIHBvc3QgYXN5bmNfZG9uZSB3aXRoIHRoZSByZXNldF90aW1lIHByb3BlcnR5IGZyb20gdGhlIGZsdXNoIHN0b3AKCSAgZXZlbnQuCgkgIEZpeCBzb21lIHVuaXQgdGVzdHMKCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDkgMTM6Mzc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBldmVudCBtZXRob2RzIHRvIHJlcGxhY2UgZXZlbnRzCgkgIFVzaW5nIHRoZSBuZXcgZXZlbnQgbWV0aG9kcywgd2UgY2FuIGF0b21pY2FsbHkgdHJhbnNmZXIgdGhlIGV2ZW50IGZyb20gdGhlCgkgIHBlbmRpbmcgbGlzdCB0byB0aGUgYWN0aXZlIGxpc3QuCgoyMDExLTA2LTA5IDEzOjM2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIG1hY3JvcyBmb3IgbmV3IG1pbmlvYmplY3QgbWV0aG9kcwoKMjAxMS0wNi0wOSAxMzozNTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGFkZCBuZXcgbWV0aG9kcyB0byBtYW5hZ2UgbWluaW9iamVjdCBwb2ludGVycwoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0ZWFsIHRoZSBtaW5pb2JqZWN0IHN0b3JlZCBhdCBhIGxvY2F0aW9uLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0b3JlIGEgbWluaW9iamVjdCBpbiBhIGxvY2F0aW9uIGFuZCB0YWtpbmcgb3duZXJzaGlwCgkgIG9mIHRoZSBtaW5pb2JqZWN0LgoKMjAxMS0wNi0wOSAxMzozNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggaGVhZGVyCgoyMDExLTA2LTA5IDEyOjMxOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBzcHVyaW91cyBpbmNsdWRlCgoyMDExLTA2LTA5IDEyOjAxOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTA2LTA5IDExOjM5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGFkOiBmb3J3YXJkIGV2ZW50cyBieSBkZWZhdWx0CgkgIEFsd2F5cyBmb3J3YXJkIGFsbCBldmVudHMgaW4gdGhlIGRlZmF1bHQgaGFuZGxlci4gUHJldmlvdXNseSBpdCB1c2VkIHRvIG5vdAoJICBmb3J3YXJkIGNhcHMgZXZlbnRzIGJ5IGRlZmF1bHQuIEl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gZm9yd2FyZCB0aGUgY2FwcyBldmVudHMsCgkgIGlmIHRoZSBlbGVtZW50IGlzIGludGVyZXN0ZWQgaW4gdGhlIGNhcHMsIGl0IHdpbGwgaW1wbGVtZW50IGFuIGV2ZW50IGhhbmRsZXIgdG8KCSAgcmV0cmlldmUgdGhlIGNhcHMgYW5kIHRoZW4gaXQgY2FuIGRlY2lkZSB0byBmb3J3YXJkIG9yIG5vdC4gSWYgdGhlIGVsZW1lbnQgaGFzCgkgIG5vIGV2ZW50IGhhbmRsZXIsIGl0IHByb2JhYmx5IGp1c3QgZG9lc24ndCBjYXJlIGFib3V0IGNhcHMgYW5kIGl0IHByb2JhYmx5IGlzCgkgIGFsc28gbm90IGdvaW5nIHRvIG1vZGlmeSB0aGUgZGF0YSBpbiBhIHdheSB0aGF0IG5lZWRzIGEgY2FwcyBjaGFuZ2UuCgoyMDExLTA2LTA5IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB0eXBvIGluIGRvY3MKCjIwMTEtMDYtMDggMTg6MjI6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYy9mZHNyYzogaW5kaWNhdGUgZHluYW1pYyBzaXplIGhhbmRsaW5nIHRvIGJhc2VzcmMKCjIwMTEtMDYtMDggMTg6MjI6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBhZGQgZHluYW1pYyBzaXplIGhhbmRsaW5nCgkgIFRoaXMgYWxsb3dzIHN1YmNsYXNzIHRvIGluZGljYXRlIHRoYXQgc2l6ZSByZXBvcnRlZCBieSBzcmMgbWF5IG5vdCBiZSBzdGF0aWMKCSAgYW5kIHNob3VsZCBhcyBzdWNoIGJlIHVwZGF0ZWQgcmVndWxhcmx5LCByYXRoZXIgdGhhbiBvbmx5IHdoZW4gcmVhbGx5CgkgIG5lZWRlZC4KCSAgUGFydGljdWxhciBleGFtcGxlcyBhcmUgZmlsZXNyYyBvciBmZHNyYyByZWFkaW5nIGZyb20gYSBmaWxlIHRoYXQgaXMgc3RpbGwKCSAgZ3Jvd2luZyAoZS5nLiBiZWluZyBkb3dubG9hZGVkKS4KCSAgRml4ZXMgIzY1MjAzNy4KCjIwMTEtMDYtMDggMjA6MTQ6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJldmVydCAiYmFzZXNyYzogU2VuZCBhbiB1cGRhdGUgTkVXU0VHTUVOVCBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBkdXJhdGlvbiBjaGFuZ2VzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzNGZhZjE2M2NhZjEwZWQzZDU0ZDgxZmQ3Yjc5MzA2OTkxM2RmZmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBsZWFkcyB0byBwb3NzaWJseSBzZW5kaW5nIG5ld3NlZ21lbnQgZXZlbnQgZG93bnN0cmVhbQoJICBpbiBwdWxsIG1vZGUuICBJbiBwdXNoIG1vZGUsIHF1aXRlIHNvbWUgZG93bnN0cmVhbSBlbGVtZW50cwoJICBhcmUgbGlrZWx5IHRvIG9ubHkgZXhwZWN0IG5ld3NlZ21lbnQgZXZlbnQgZm9sbG93aW5nIGEgc2VlayB0aGV5IHBlcmZvcm1lZAoJICBhbmQgYXMgc3VjaCBtYXkgaGF2ZSB0aGVpciBzdGF0ZSBtZXNzZWQgdXAuCgoyMDExLTA2LTA4IDE4OjM1OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBpbmxpbmUgdGhlIGNsaXAgc2VnbWVudAoKMjAxMS0wNi0wOCAxNzoyNTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogcmVuYW1lIHZhcmlhYmxlCgkgIFJlbmFtZSB0aGUgbmV3X2Jhc2VfdGltZSB2YXJpYWJsZSB0byByZXNldF90aW1lLCB3aGljaCBsb29rcyBiZXR0ZXIuCgoyMDExLTA2LTA4IDE2OjQxOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogc2VwYXJhdGUgdGhlIHNlZWsgYW5kIHNlZ21lbnQgZmxhZ3MKCSAgU2VwYXJhdGUgdGhlIHNlZWsgZmxhZ3MgYW5kIHNlZ21lbnQgZmxhZ3MgYXMgc2VwYXJhdGUgZW51bXMgYmVjYXVzZSB3ZSBtaWdodAoJICB3YW50IHRvIGhhdmUgZGlmZmVyZW50IGZsYWdzIGZvciBib3RoLgoKMjAxMS0wNi0wOCAxMzo0MDozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBtZXNzYWdlOiBtb3ZlIHRoZSBuZXdfYmFzZV90aW1lIGZsYWcgdG8gYXN5bmNfZG9uZQoJICBNb3ZlIHRoZSBmbGFnIHRvIGluZGljYXRlIHRoYXQgYSBuZXdfYmFzZV90aW1lIHNob3VsZCBiZSBkaXN0cmlidXRlZCB0byB0aGUKCSAgcGlwZWxpbmUsIGZyb20gdGhlIGFzeW5jX3N0YXJ0IHRvIHRoZSBhc3luY19kb25lIG1lc3NhZ2UuIFRoaXMgd291bGQgYWxsb3cgdXMgdG8KCSAgZGVjaWRlIHdoZW4gdG8gcmVzZXQgdGhlIHBpcGVsaW5lIHRpbWUgYmFzZWQgb24gb3RoZXIgcmVhc29ucyB0aGFuIHRoZQoJICBGTFVTSF9TVEFSVCBldmVudC4KCSAgVGhlIG1haW4gZ29hbCBldmVudHVhbGx5IGlzIHRvIG1ha2UgdGhlIEZMVVNIIGV2ZW50cyBub3QgcmVzZXQgdGltZSBhdCBhbGwgYnV0CgkgIHJlc2V0IHRoZSB0aW1lIGJhc2VkIG9uIHRoZSBmaXJzdCBidWZmZXIgb3Igc2VnbWVudCB0aGF0IHByZXJvbGxzIHRoZSBwaXBlbGluZQoJICBhZ2Fpbi4KCjIwMTEtMDYtMDggMTM6Mzk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIGdzdHJlYW1lci1zZWN0aW9ucyBmb3IgbmV3L3JlbW92ZWQgQVBJCgoyMDExLTA2LTA4IDEzOjMwOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZ3N0YnVmZmVyOiBSZW1vdmUgZGVwcmVjYXRlZCBHU1RfQlVGRkVSXyogbWFjcm9zCgkgIGRhdGEsIHNpemUsIG1hbGxvY2RhdGEgYW5kIGZyZWVfZnVuYyBubyBsb25nZXIgZXhpc3QuCgoyMDExLTA2LTA4IDEzOjA2OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDggMTI6NTg6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgc2V0Y2FwcyBmdW5jdGlvbgoJICBSZW1vdmUgdGhlIHNldGNhcHMgZnVuY3Rpb24sIGVsZW1lbnRzIHNob3VsZCB1c2UgdGhlIGNhcHMgZXZlbnQgdG8gYmUgaW5mb3JtZWQKCSAgb2YgdGhlIGZvcm1hdC4KCjIwMTEtMDYtMDggMTI6MDQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWVtb3J5OiBSZXF1aXJlIGltcGxlbWVudGF0aW9uIHRvIGltcGxlbWVudCBfc2hhcmUKCSAgUmVxdWlyZSB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9ucyB0byBpbXBsZW1lbnQgYSBzaGFyZSBvcGVyYXRpb24uIFRoaXMgYWxsb3dzCgkgIHVzIHRvIHJlbW92ZSB0aGUgZmFsbGJhY2sgc2hhcmUgaW1wbGVtZW50YXRpb24gd2hpY2ggdXNlcyBhIGRpZmZlcmVudCBhbGxvY2F0b3IKCSAgaW1wbGVtZW50YXRpb24gYW5kIGNvbXBsaWNhdGVzIHRoaW5ncyB0b28gbXVjaC4KCSAgVXBkYXRlIGRlc2lnbiBkb2MgYSBiaXQuCgoyMDExLTA2LTA4IDExOjAzOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtZW1vcnk6IGNsZWFudXBzIGFuZCBpbXByb3ZlIGRvY3MKCSAgTWFrZSB0aGUgZmFsbGJhY2sgY29weSB1c2UgdGhlIHNhbWUgbWVtb3J5IGFsbG9jYXRvciBhcyB0aGUgb3JpZ2luYWwgb2JqZWN0LgoJICBJbXByb3ZlIHNvbWUgZG9jcy4KCSAgUmVxdWlyZSBhbiBhbGxvYyBmdW5jdGlvbiB3aGVuIHJlZ2lzdGVyaW5nIGFuIGFsbG9jYXRvci4KCSAgUmVtb3ZlIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2dldF9kZWZhdWx0KCkgYW5kIG1lcmdlIHRoZSBmZWF0dXJlIGluCgkgIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2ZpbmQoKQoJICBGaXggbG9ja3Mgb24gdGhlIGhhc2h0YWJsZS4KCSAgUmVtb3ZlIGRlZmluZWQgYnV0IG5vdC1pbXBsZW1lbnRlZCBnc3RfbWVtb3J5X3NwYW4oKSBtZXRob2QuCgoyMDExLTA2LTA3IDE4OjE4OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBhZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgZGVzaWduIGRvYwoKMjAxMS0wNi0wNyAxNzo1NDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHBhc3MgdXNlcl9kYXRhIHRvIHRoZSBhbGxvYyBmdW5jdGlvbgoJICBQYXNzIHRoZSB1c2VyIGRhdGEgdGhhdCB3YXMgcGFzc2VkIHRvIF9yZWdpc3RlciB0byB0aGUgYWxsb2MgZnVuY3Rpb24gb2YgYW4KCSAgYWxsb2NhdG9yLgoKMjAxMS0wNi0wNyAxNzozNDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggc29tZSB0eXBvcwoKMjAxMS0wNi0wNyAxNzowMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgZmlsZXNyYzogcmVtb3ZlIE1NQVAgY29kZQoJICBSZW1vdmUgdGhlIG1tYXAgY29kZSwgaXQgd2FzIGRpc2FibGVkIGFuZCBwcm9iYWJseSBuZWVkcyBhIGNvbXBsZXRlIHJld3JpdGUKCSAgYW55d2F5IGlmIHRoaXMgaXMgdG8gYmUgcG9ydGVkIHRvIDAuMTEuCgoyMDExLTA2LTA3IDE2OjM1OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kcyB0byBxdWVyeSBhbGxvY2F0b3JzCgkgIEFkZCBBUEkgdG8gYWRkIGFuZCBxdWVyeSBhbGxvY2F0b3IgaW1wbGVtZW50YXRpb25zIHRvL2Zyb20gdGhlIEFMTE9DQVRJT04gcXVlcnkuCgoyMDExLTA2LTA3IDE2OjE0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiB1c2UgYWxsb2NhdG9ycyB0byBhbGxvY2F0ZSBtZW1vcnkKCSAgUmVuYW1lIHRoZSBHc3RNZW1vcnlJbXBsIHRvIEdzdE1lbW9yeUFsbG9jYXRvciBiZWNhdXNlIHRoYXQncyByZWFsbHkgd2hhdCBpdCBpcy4KCSAgQWRkIGFuIGFsbG9jIHZtZXRob2QgdG8gdGhlIGFsbG9jYXRvciBtZW1iZXJzLgoJICBJbXByb3ZlIHJlZ2lzdHJhdGlvbiBvZiBhbGxvY2F0b3JzLgoJICBBZGQgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgZGVmYXVsdCBhbGxvY2F0b3IKCSAgQWx3YXlzIHVzZSBhbiBhbGxvY2F0b3IgdG8gYWxsb2NhdGUgbWVtb3J5LCB1c2UgdGhlIGRlZmF1bHQgYWxsb2NhdG9yIHdoZW4gTlVMTAoJICBpcyBwYXNzZWQuCgkgIEFkZCB1c2VyX2RhdGEgdG8gdGhlIGFsbG9jYXRvciBJbmZvIHNvIHRoYXQgd2UgY2FuIHBhc3MgZXh0cmEgaW5mbyB0byB0aGUKCSAgYWxsb2NhdG9yIG5ldyBtZXRob2QuCgoyMDExLTA2LTA3IDEzOjAzOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiBtaW5vciBmaXggYW5kIGNsYXJpZmljYXRpb24KCjIwMTEtMDYtMDcgMTM6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1vdmUgc29tZSBtb3JlIGRlZmluZXMgb24gdG9wCgoyMDExLTA2LTA3IDEzOjI1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeCBzb21lIGNpcmN1bGFyIGluY2x1ZGVzCgkgIHR5cGVkZWYgc29tZSBzdHJ1Y3RzIGJlZm9yZSBpbmNsdWRpbmcgb3RoZXIgZmlsZXMgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzCgkgIGluIHRoZSBoZWFkZXIgZmlsZXMuCgoyMDExLTA2LTA3IDExOjAxOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDYgMTI6MjM6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrL3RlZTogUGFkcyBuZWVkIHRvIGJlIGFjdGl2YXRlZCBiZWZvcmUgY2FwcyBhcmUgc2V0CgkgIEFsc28gYWRkIGRlYnVnZ2luZyB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbgoKMjAxMS0wNi0wNyAxMDo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHJlbW92ZSBwcm94eV9zZXRjYXBzCgkgIFJlbW92ZSBwcm94eV9zZXRjYXBzLCBlbGVtZW50cyBzaG91bGQgdXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBmb3J3YXJkIGNhcHMKCSAgdGhlbXNlbHZlcy4KCjIwMTEtMDYtMDcgMTA6NTE6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBmaXggcmVmY291bnRpbmcgb2YgZXZlbnRzCgkgIF9wYWRfZXZlbnRfZm9yd2FyZCgpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2Fwcy4KCjIwMTEtMDYtMDcgMTA6NDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wcm92ZSBwYWQgZXZlbnQgZm9yd2FyZCBjb2RlCgkgIFJldHVybiBUUlVFIHdoZW4gdGhlIHBhZCBoYXMgbm8gcGFyZW50IG9yIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsbHkgbGlua2VkCgkgIHBhZHMuCgoyMDExLTA2LTA3IDEwOjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiB1c2UgdGhlIGNhcHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBhdm9pZCB1c2luZyB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4gVXNlIHNvbWUgb2YgdGhlIG5ldyBwYWQKCSAgZm9yd2FyZCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50IGRlc2lyZWQgYmVoYXZpb3VyLgoKMjAxMS0wNi0wNyAxMDowMjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IFJlbmFtZSBhbmQgcmV3b3JrIHRoZSBkaXNwYXRjaGVyIGZ1bmN0aW9uCgkgIFJlbmFtZSBnc3RfcGFkX2Rpc3BhdGNoZXIoKSB0byBnc3RfcGFkX2ZvcndhcmQoKSBhbmQgbWFrZSBpdCBtb3JlIHVzZWZ1bCBieQoJICBpdGVyYXRpbmcgdGhlIGludGVybmFsIGxpbmtzIG9mIGEgcGFkIGFuZCBoYW5kbGluZyByZXN5bmMgcHJvcGVybHkuCgkgIEFkZCBhIG1ldGhvZCBnc3RfcGFkX2V2ZW50X2ZvcndhcmQoKSB0aGF0IHVuY29uZGl0aW9uYWxseSBmb3J3YXJkcyBhbiBldmVudCB0bwoJICBhbGwgaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCSAgVXBkYXRlIHNvbWUgcGFkIGNvZGUgdG8gdXNlIHRoZSBuZXcgZm9yd2FyZCBmdW5jdGlvbi4KCjIwMTEtMDYtMDcgMDk6NDM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY2FwczogdXNlIHRoZSBjYXBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCBpbnN0ZWFkIG9mIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgdGhlIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDYtMDYgMTY6MTE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogZ28gb3ZlciBkZXNpZ24gZG9jcyBhbmQgZml4IHRoaW5ncwoJICBSZW1vdmUgYnVmZmVybGlzdCBwYXJ0LCBpdCdzIG1lcmdlZCB3aXRoIHBhcnQtYnVmZmVyLnR4dAoKMjAxMS0wNi0wNiAxMToyMToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGVudW0vZmxhZ3MgKGRlKXJlZ2lzdHJhdGlvbiBpbiBnc3RfKGRlKWluaXQKCjIwMTEtMDYtMDYgMTE6MjA6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgYWNjZXB0IHNlZ21lbnRzIGFmdGVyIEVPUwoJICBBbmQgcmVmYWN0b3IgdGhlIGNvZGUgc2xpZ2h0bHkgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi4KCSAgVGhpcyBzb2x2ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgYmRiYzA2OTMKCjIwMTEtMDYtMDYgMTA6Mjc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrL2dob3N0cGFkOiBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBjaGVja2luZyBmb3IgY2FwcyBmb3J3YXJkaW5nL3NldHRpbmcKCSAgVGhpcyBpcyBub3cgZG9uZSB2aWEgaW4tYmFuZCBldmVudHMsIHNvIHRoZSBwYWRzIG5lZWQgdG8gYmUgYWN0aXZlCgoyMDExLTA2LTA1IDE4OjExOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgZG9jczogdXBkYXRlIGZvciBBUEkgY2hhbmdlcwoJICBBbHNvIHJlbW92ZSBHU1RfUEFEX0NIRUNLR0VUUkFOR0VGVU5DIG1hY3JvCgoyMDExLTA2LTA1IDE1OjQ2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMDQgMTU6NDI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogYWRkIHByb3RvdHlwZXMgZm9yIHVudXNlZCBmdW5jdGlvbnMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZwoJICBUaGUgd2FybmluZyBpcyBuZXZlciBmYXRhbCwgYmVjYXVzZSB3ZSBkb24ndCB1c2UgLVdlcnJvciBmb3IgdGhlCgkgIHBhcnNlciBoZWxwZXIgbGlicmFyeSBidWlsZCwgYnV0IHRoZSB3YXJuaW5ncyBhcmUgYW5ub3lpbmcgYW55d2F5LgoKMjAxMS0wNi0wNSAxNDoxMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogcmVtb3ZlIHVudmVyc2lvbmVkIGdzdC1sYXVuY2gsIGdzdC1pbnNwZWN0IGFuZCBnc3QtdHlwZWZpbmQKCSAgVGhlIHVudmVyc2lvbmVkIHRvb2wgd3JhcHBlcnMgYXJlIGNvbmZ1c2luZyBhbmQgYW5ub3lpbmcgZm9yIHBhY2thZ2VycywKCSAgdXNlcnMgYW5kIGRldmVsb3BlcnMgYWxpa2UuIEEgZ3N0LWxhdW5jaCBwaXBlbGluZSB0aGF0IHdvcmtzIGluIDAuMTAKCSAgd2lsbCBsaWtlbHkgbm90IHdvcmsgaW4gMC4xMSAoZS5nLiBiZWNhdXNlIGVsZW1lbnRzIG9yIHByb3BlcnRpZXMgZ2V0CgkgIHJlbmFtZWQsIG9yIHN5bnRheCBjaGFuZ2VzKS4gVGhlIHVudmVyc2lvbmVkIHRvb2xzIGFsc28geWllbGQgdXNlbGVzcwoJICByZXN1bHRzIHdoZW4gdXNlZCB3aXRoIGdkYiBvciB2YWxncmluZC4gUGFja2FnZXJzIG5lZWQgdG8gY28tb3JkaW5hdGUKCSAgdGhlIHBhY2thZ2luZyBvZiBhbGwgbWFqb3IgdmVyc2lvbnMgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBjb25mbGljdHMKCSAgd2hlbiBib3RoIHRyeSB0byBpbnN0YWxsIHRoZSBzYW1lIGZpbGVzLiBXaGVuIHR3byBtYWpvciB2ZXJzaW9ucyBhcmUKCSAgaW4gdXNlIChlLmcuIDAuMTAgYW5kIDAuMTEvMS4wKSwgaXQgbWF5IGJlIHVuY2xlYXIgKHdoZW4gbG9va2luZyBhdAoJICB0aGluZ3Mgb24gSVJDL3Bhc3RlYmluL21haWxpbmcgbGlzdCBldGMuKSB3aGljaCB2ZXJzaW9uIGlzIGFjdHVhbGx5CgkgIGJlaW5nIHVzZWQgd2hlbiB0aGVyZSBhcmUgdW52ZXJzaW9uZWQgd3JhcHBlcnMuIEZvciBhbGwgdGhlc2UgcmVhc29ucywKCSAgaXQgc2VlbXMgYmVzdCB0byBqdXN0IHJlbW92ZSB0aGVtIGZvciBub3cuCgoyMDExLTA2LTA0IDE2OjA0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgYW5kIG90aGVyIHRoaW5ncwoKMjAxMS0wNi0wNCAxNTo0NDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmcgYW5kIHJlbW92ZWQgc3RyaW5ncwoKMjAxMS0wNi0wNCAxNToyMzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVtb3ZlIEdTVF9YTUwgZGVidWcgY2F0ZWdvcnkgYXMgd2VsbAoKMjAxMS0wNi0wNCAxNToyMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICBSZW1vdmUgZXZlcnl0aGluZyBsaWJ4bWwyLSBhbmQgbG9hZHNhdmUtcmVsYXRlZAoKMjAxMS0wNi0wNCAxNDo0MToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSBTSUdVU1IqIGhhbmRsaW5nIGZyb20gZ3N0LWxhdW5jaAoJICBSZW1vdmUgU0lHVVNSKiBoYW5kbGluZyBmcm9tIGdzdC1sYXVuY2gsIHNpbmNlIGl0IG1pZ2h0IGludGVyZmVyZQoJICB3aXRoIG90aGVyIHRoaW5ncyAoZS5nLiBsaWJsZWFrcyksIGFuZCBzaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseQoJICBhbnl3YXkgKGVpdGhlciB2aWEgc3VwcG9ydCBmb3Igc2ltcGxlIHRpbWVkLWNvbW1hbmRzIHNjcmlwdGluZyBvcgoJICByZW1vdGUgY29udHJvbCB2aWEgREJ1cyBvciBzbykuCgoyMDExLTA2LTA0IDE0OjI4OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9CVUdTOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvUkVBRE1FOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB0b29scy94bWwydGV4dC54c2w6CgkgIHRvb2xzOiByZW1vdmUgZ3N0LXhtbGluc3BlY3QKCSAgUGVvcGxlIHNob3VsZCBqdXN0IHF1ZXJ5IHRoZSByZWdpc3RyeSB0aGVtc2VsdmVzIG9yIHdyaXRlIGEgc21hbGwKCSAgcHl0aG9uIHNjcmlwdCBpZiB0aGV5IG5lZWQgdGhpcyBmdW5jdGlvbmFsaXR5ICh3aGljaCBpcyBsaWtlbHkKCSAgbGVzcyB3b3JrIHRoYW4gcGFyc2luZyB0aGUgWE1MIHRoYXQgdGhpcyBzY3JpcHQgb3V0cHV0cywgYW5kIEknbQoJICBub3QgYXdhcmUgb2YgYW55dGhpbmcgdXNpbmcgdGhlIHhtbDJ0ZXh0IHhzbCBlaXRoZXIpLgoKMjAxMS0wNi0wNCAxNDoyMjowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgIHRvb2xzOiByZW1vdmUgZ3N0LWZlZWRiYWNrCgkgIEl0J3Mgbm90IHJlYWxseSB0aGF0IHVzZWZ1bCwgYW5kIG5vIG9uZSdzIGJlZW4gdXNpbmcgaXQgZm9yIHllYXJzLgoKMjAxMS0wNi0wNCAxNDoxMzowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzLCB0ZXN0czogZml4IHNvbWUgdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDYtMDQgMTQ6MDI6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5nCgoyMDExLTA2LTA0IDAwOjMwOjE1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBXb3JrIGFyb3VuZCBjaGFuZ2VzIGluIGdfYXRvbWljIEFQSQoJICBTZWUgIzY1MTUxNCBmb3IgZGV0YWlscy4gIEl0J3MgYXBwYXJlbnRseSBpbXBvc3NpYmxlIHRvIHdyaXRlIGNvZGUKCSAgdGhhdCBhdm9pZHMgYm90aCB0eXBlIHB1bm5pbmcgd2FybmluZ3Mgd2l0aCBvbGQgZ19hdG9taWMgaGVhZGVycyBhbmQKCSAgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3LiAgVGh1cywgbWFjcm9zIGFuZCBhIHZlcnNpb24gY2hlY2suCgoyMDExLTA2LTAzIDE4OjEwOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBTbWFsbCBkb2MgZml4dXAKCjIwMTEtMDYtMDMgMTU6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmb3IgbGF0ZXN0IEFQaSBjaGFuZ2VzCgoyMDExLTA2LTAzIDE3OjI0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsZWFuIHVwIHByb2JlIGZsYWdzCgoyMDExLTA2LTAzIDE3OjI0OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJICBkb2NzOiBmaXJzdCB2ZXJzaW9uIG9mIHByb2JlcyBkb2N1bWVudAoKMjAxMS0wNi0wMyAxNjo0NjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBmbHVzaGluZyBpbiBwdWxscmFuZ2UgdG9vCgoyMDExLTA2LTAzIDEzOjU2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFudXBzCgkgIFVzZSBkZWZpbmVzIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcyBmb3IgbWFza3MuCgoyMDExLTA2LTAzIDEzOjI1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNvbWUgbW9yZSAwLjExIGZpeG1lcwoJICBkb24ndCBhbGxvdyBzcGFjZXMgaW4gc3RydWN0dXJlIG5hbWVzIGFuZCBmaXggdW5pdCB0ZXN0cy4KCjIwMTEtMDYtMDMgMTI6NDM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1hbGxvY2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYwoJICBNb3ZlIHRoZSBidWZmZXJwb29sIGRlc2lnbiBkb2MgZnJvbSBkcmFmdCB0byBwYXJ0IGFuZCBtZXJnZSBpdCB3aXRoCgkgIHRoZSBhbGxvY2F0aW9uIGRyYWZ0LgoKMjAxMS0wNi0wMyAxMjo0MDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1ha2UgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIHRvIHdhaXQKCSAgVGhlIG1vc3QgY29tbW9uIGNhc2UgaXMgdG8gbm90IHNwZWNpZnkgYW55IGZsYWdzIHdoZW4gZG9pbmcgdGhlIGFsbG9jYXRpb24uIE1ha2UKCSAgdGhlIGFsbG9jYXRpb24gZnJvbSBhIHBvb2wgd2l0aCBhIG1heGltdW0gYW1vdW50IG9mIGJ1ZmZlcnMgYmxvY2sgYnkgZGVmYXVsdCBmb3IKCSAgdGhpcyByZWFzb24uCgoyMDExLTA2LTAzIDExOjE1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA2LTAyIDE5OjI0OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgY2FwcyBldmVudCBpbnN0ZWFkIG9mIHNldGNhcHMKCjIwMTEtMDYtMDIgMTk6MjM6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIGdob3N0cGFkOiByZW1vdmUgc2V0Y2FwcyBmdW5jdGlvbnMKCSAgUmVtb3ZlIHRoZSBzZXRjYXBzIGZ1bmN0aW9ucywgaXQgaXMgbm93IGhhbmRsZWQgd2l0aCB0aGUgY2FwcyBldmVudC4KCjIwMTEtMDYtMDIgMTg6Mjg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcGFzcyB0aGUgcmlnaHQgYWxpZ25tZW50CgoyMDExLTA2LTAyIDE4OjI4OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1tb3J5OiBzbWFsbCBjbGVhbnVwCgoyMDExLTA2LTAyIDE4OjEzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBhbGlnbm1lbnQgY2FsY3VsYXRpb25zCgkgIEZpeCB0aGUgYWxpZ25tZW50IGNhbGN1bGF0aW9uLgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24uCgoyMDExLTA2LTAyIDE4OjEzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgcG9vbDogZGVidWcgdGhlIGNvbmZpZwoKMjAxMS0wNi0wMiAxNTozODo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogcmVtb3ZlIHNvbWUgbWFjcm9zIG5vdyBpbiBnbGliCgkgIFdlIGRlcGVuZCBvbiB0aGUgcmlnaHQgZ2xpYiBub3cKCjIwMTEtMDYtMDIgMTU6Mzg6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IGEgRklYTUUKCjIwMTEtMDYtMDIgMTU6Mzg6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBnX3ByaW50ZXJyKCkgYXMgc3RhdGVkIGluIHRoZSBGSVhNRQoKMjAxMS0wNi0wMiAxNTozNzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHNtYWxsIGNsZWFudXBzCgoyMDExLTA2LTAyIDE0OjA5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogaW5saW5lIHRoZSByZWN1cnNpY2Ugc3RhdGUgbG9jawoKMjAxMS0wNi0wMiAxMzo0NjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGlubGluZSB0aGUgcmVjdXJzaXZlIHN0cmVhbSBsb2NrCgoyMDExLTA2LTAyIDEzOjM1OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIHVudXNlZCBmaWVsZHMgYW5kIG1ldGhvZHMgYW5kIHNpZ25hbHMKCjIwMTEtMDYtMDIgMTM6MjM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBnc3RfdmFsdWVfZml4YXRlIGluc3RlYWQKCSAgVXNlIHRoZSBuZXcgZ3N0X3ZhbHVlX2ZpeGF0ZSgpIGZ1bmN0aW9uIGluc3RlYWQgb2Ygb3VyIG93biB2ZXJzaW9uLgoKMjAxMS0wNi0wMiAxMzoyMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IGFkZCBmdW5jdGlvbiB0byBmaXhhdGUgYSB2YWx1ZQoJICBBZGQgYSBmdW5jdGlvbiB0byBmaXhhdGUgYSBHVmFsdWUuIFRoaXMgaXMgdGhlIHNhbWUgZnVuY3Rpb24gYXMgaXMgaW4gR3N0UGFkLgoKMjAxMS0wNi0wMiAxMzoxODozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbW92ZSBzb21lIGN1c3RvbSByZWZjb3VudGluZyBtZXRob2RzCgkgIFJlbW92ZSBzb21lIGN1c3RvbSBtYWRlIHJlZmNvdW50aW5nIG1ldGhvZHMgYW5kIHVzZSB0aGUgbWluaW9iamVjdCBvbmVzIGluc3RlYWQuCgoyMDExLTA2LTAyIDEyOjQwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9wdGltaXplIGxpbmtpbmcKCSAgT3B0aW1pemUgbGlua2luZyBieSBvbmx5IHJlbGVhc2luZyB0aGUgcGFkIGxvY2tzIHdoZW4gdGhlcmUgYXJlIGxpbmsgZnVuY3Rpb25zCgkgIGluc3RhbGxlZCBvbiB0aGUgcGFkcy4KCSAgQWRkIHNvbWUgR19MSUtFTFkgaGVyZSBhbmQgdGhlcmUuCgkgIE1vdmUgZXJyb3IgcGF0aHMgb3V0IG9mIHRoZSBtYWluIGNvZGUgZmxvdy4KCjIwMTEtMDYtMDIgMTI6Mzk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgZGVwcmVjYXRlZCBoYXZlLWRhdGEgc2lnbmFsCgoyMDExLTA2LTAyIDExOjIxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBpZGxlIHByb2JlIGZvciBwdWxsIG1ldGhvZCB0b28KCjIwMTEtMDYtMDIgMTE6MDE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbW9yZSBjbGVhbnVwcwoJICBVc2UgbWluaW9iamVjdCB1bnJlZiB3aGVuIHdlIGNhbgoJICBSZXVzZSBleGlzdGluZyBkYXRhIHR5cGUgaWRlbnRpZmllciBpbnN0ZWFkIG9mIGFuIGV4dHJhIGJvb2xlYW4uCgoyMDExLTA2LTAxIDE5OjQ3OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoKMjAxMS0wNi0wMSAxOToyNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IGZ1cnRoZXIgaW1wcm92ZSBwcm9iZXMgYW5kIHBhZCBibG9ja2luZwoJICBLZWVwIHRyYWNrIG9mIGluc3RhbGxlZCBudW1iZXIgb2YgcHJvYmVzIHRvIHNob3J0Y3V0IGVtaXNzaW9uLgoJICBBbGxvdyBOVUxMIGNhbGxiYWNrcywgdGhpcyBpcyB1c2VmdWwgZm9yIGJsb2NraW5nIHByb2Jlcy4KCSAgSW1wcm92ZSBwcm9iZSBzZWxlY3Rpb24gYmFzZWQgb24gdGhlIG1hc2ssIGFuIGVtcHR5IG1hc2sgZm9yIHRoZSBkYXRhIG9yIHRoZQoJICBzY2hlZHVsaW5nIGZsYWdzIGVxdWFscyB0aGF0IGFsbCBwcm9iZXMgbWF0Y2guCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgRG9uJ3QgY2hlY2sgdGhlIGZsdXNoaW5nIGZsYWcgaW4gdGhlIHByb2JlIGNhbGxiYWNrIGhhbmRsZXIsIHRoaXMgbmVlZHMgdG8gYmUKCSAgZG9uZSBiZWZvcmUgY2FsbGluZyB0aGUgaGFuZGxlci4KCSAgRml4IGJsb2NraW5nIHByb2Jlcy4KCSAgRml4IHVuaXQgdGVzdHMKCjIwMTEtMDUtMzEgMTk6MTY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwYWQ6IGltcGxlbWVudCBwYWQgYmxvY2sgd2l0aCBwcm9iZXMKCjIwMTEtMDUtMzAgMTk6MDM6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdXRpbHM6IHJlbW92ZSBfZnVsbCB2YXJpYW50cyBvZiBwcm9iZXMKCSAgUmVtb3ZlIHRoZSBfZnVsbCB2YXJpYW50cyBhbmQgYWRkIHRoZSBkZXN0cm95IG5vdGlmeSB0byB0aGUgcmVndWxhciBtZXRob2RzLgoKMjAxMS0wNi0wMSAxNToyOToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJICBjaGVjay9hYmk6IElnbm9yZSBHc3RYTUwqIG9uIGFybSB3aGVuIG5vdCBwcmVzZW50CgoyMDExLTA1LTMxIDE4OjMxOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBsb2NhbCBwcml2IHZhcmlhYmxlIGluc3RlYWQgb2YgdHJhbnMtPnByaXYKCjIwMTEtMDUtMzEgMTg6MzA6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgkgIGJhc2UgaXMgdW5jb25kaXRpb25hbGx5IHdyaXR0ZW4gYSBjb3VwbGUgb2YgbGluZXMgYmVsb3cKCjIwMTEtMDUtMzEgMTg6MzA6MzAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0OiBSZW1vdmUgb2J2aW91cyBkZWFkIGFzc2lnbm1lbnRzCgoyMDExLTA1LTMxIDEzOjQzOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCjIwMTEtMDUtMzAgMTg6Mjk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXdvcmsgcGFkIGJsb2NraW5nLCBhbm90aGVyIGF0dGVtcHQKCSAgTWFrZSB0aGUgUGFkQmxvY2sgY2FsbGJhY2sgdGFrZSBhIEdzdEJsb2NrVHlwZSBwYXJhbWV0ZXIgdG8gaGFuZGxlIHRoZSBkaWZmZXJlbnQKCSAga2luZCBvZiBzdGFnZXMgaW4gdGhlIHBhZCBibG9jay4gVGhpcyBwcm92aWRlcyBmb3IgbW9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoJICBpbiB0aGUgcGFkIGJsb2NrIEFQSS4KCSAgU2VwYXJhdGUgYmxvY2tpbmcgYW5kIHVuYmxvY2tpbmcgaW50byBkaWZmZXJlbnQgbWV0aG9kcywgb25seSBibG9ja2luZyBjYW4gZG8gYQoJICBjYWxsYmFjaywgdW5ibG9jayBpcyBhbHdheXMgaW1tZWRpYXRlbHkuIEFsc28gcmVtb3ZlZCBzeW5jaHJvbm91cyBibG9ja2luZywgaXQKCSAgY2FuIGFsd2F5cyBiZSBpbXBsZW1lbnRlZCB3aXRoIGEgY2FsbGJhY2suCgoyMDExLTA1LTMwIDEzOjQwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiByZXdvcmsgcGFkIGJsb2NraW5nLCBmaXJzdCBwYXJ0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQxNWRhODlmM2M5ZmU0NmZjMzM2MTIzNmRmOWEzYjc2ZTYwN2UxMzguCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTA1LTMwIDEyOjI3OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA1LTMwIDExOjMzOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBDb25zaWRlciAiMSIgYW5kICJ7MX0iIGFzIGVxdWFsIGluIGdzdF92YWx1ZV9jb21wYXJlKCkKCSAgUHJldmlvdXNseSB0aGlzIHdhcyBvbmx5IGRvbmUgaW4gdGhlIGlzX3N1YnNldCgpIGNoZWNrIGJ1dAoJICBoYXZpbmcgaXQgb25seSB0aGVyZSBicmluZ3MgdXMgaW50byBkZWZpbml0aW9uLWhlbGwgd2hlcmUKCSAgIjEiIGFuZCAiezF9IiBhcmUgc3Vic2V0IG9mIGVhY2ggb3RoZXIgYnV0IG5vdCBlcXVhbC4KCjIwMTEtMDUtMzAgMDc6NDQ6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBEb24ndCBhY2Nlc3MgdGhlIEdzdE1lc3NhZ2Ugc3RydWN0dXJlIGRpcmVjdGx5CgoyMDExLTA1LTMwIDA3OjQxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMzAgMDc6MzY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggc3Vic2V0IGNoZWNrIGZvciBlcXVpdmFsZW50IGxpc3RzIGFuZCBzY2FsYXIgdmFsdWVzCgkgIEZvciBleGFtcGxlICJ7IDEgfSIgYW5kICIxIiBhcmUgbm90IHN0cmljdGx5IGVxdWFsIGJ1dAoJICBib3RoIGFyZSBhIHN1YnNldCBvZiBlYWNoIG90aGVyLiBBbHNvIGFkZCBhIHVuaXQgdGVzdAoJICBmb3IgdGhpcy4KCjIwMTEtMDUtMjkgMTk6Mjg6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIGRvY3M6IGZpeCBidWd6aWxsYSBVUkwKCSAgaHRwcCAtPiBodHRwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTEzNjIKCjIwMTEtMDUtMjggMTA6MjQ6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IHhyZWZzIG1vcmUgYXBpIGFyb3VuZCBHc3RTdGF0ZUNoYW5nZSBhbmQgR3N0U3RhdGVDaGFuZ2VSZXR1cm4uCgoyMDExLTA1LTI4IDA5OjUxOjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2NzOiB4cmVmIHRoZSBhc3luYyBtZXNzYWdlcyB0byBHc3RTdGF0ZUNoYW5nZQoKMjAxMS0wNS0yNyAxNzoyMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJld29yayBwYWQgYmxvY2tpbmcsIGZpcnN0IHBhcnQKCSAgTWFrZSBwYWQgYmxvY2sgY2FsbCB0aGUgY2FsbGJhY2sgYXMgc29vbiBhcyB0aGUgcGFkIGlzIG5vdCBpbiB1c2UuIFRoaXMgbWFrZXMgaXQKCSAgcG9zc2libGUgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkLCBubyBhY3Rpdml0eSBpcyBoYXBwZW5pbmcKCSAgb24gdGhlIHBhZCBhbmQgdGhhdCBubyBhY3Rpdml0eSB3aWxsIGV2ZXIgaGFwcGVuIHVudGlsIHRoZSBwYWQgaXMgdW5ibG9ja2VkCgkgIGFnYWluLiBUaGlzIG1ha2VzIHBhZCBibG9ja2luZyB3b3JrIHdoZW4gdGhlcmUgaXMgbm8gZGF0YWZsb3cgb3IgYWZ0ZXIgRU9TIGFuZAoJICBncmVhdGx5IGhlbHBzIGR5bmFtaWMgcGlwZWxpbmVzLgoJICBNb3ZlIHRoZSBwcm9iZSBoYW5kbGluZyByaWdodCB3aGVyZSB3ZSB3YWl0IG9uIHRoZSBwYWQgYmxvY2suIFRoZSB0d28gYXJlCgkgIHJlbGF0ZWQgYnV0IG5vdCB0aGUgc2FtZSBhbmQgdGhlIHByb2JlIGNhbiBldmVudHVhbGx5IGluZmx1ZW5jZSB0aGUgcGFkCgkgIGJsb2NraW5nIGFzIHdlJ2xsIHNlIGxhdGVyLgoJICBGaXggdXAgc29tZSBicm9rZW4gdW5pdCB0ZXN0cyBvciB0ZXN0cyB0aGF0IGZhaWwgd2l0aCB0aGUgbmV3IGJlaGF2aW91ci4KCjIwMTEtMDUtMjcgMTc6MTg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBkZXByZWNhdGVkIGNsZWFuIHNodXRkb3duIG1ldGhvZAoKMjAxMS0wNS0yNyAxNDowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZGVhY3RpdmF0ZSB0aGUgcGFkIGFmdGVyIHJlbW92aW5nIGl0CgkgIFdoZW4gcmVsZWFzaW5nIHRoZSByZXF1ZXN0IHBhZCwgZmlyc3QgcmVtb3ZlIGl0IGZyb20gdGhlIGVsZW1lbnQgYW5kIHRoZW4KCSAgZGVhY3RpdmF0ZSBpdC4gSWYgd2UgZG8gaXQgdGhlIG90aGVyIHdheSBhcm91bmQsIGEgZ3N0X3BhZF9wdXNoIG9uIHRoZSBlbGVtZW50CgkgIG1pZ2h0IHJldHVybiB3cm9uZy1zdGF0ZSBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIGRldGVjdCB0aGUgcmVtb3ZlZCBwYWQgaW4gdGhlCgkgIGNoYWluIGZ1bmN0aW9uLgoKMjAxMS0wNS0yNyAxNToxNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBjYXRjaCBhbmQgcHJpbnQgbWlzc2luZy1wbHVnaW4gbWVzc2FnZXMgaW4gZ3N0LWxhdW5jaAoJICBTbyB0aGF0IHVzZXJzIGdldCBzb21lIGZlZWRiYWNrIGlmIHRoZXkncmUgdXNpbmcgYSBwaXBlbGluZQoJICBsaWtlICBzcmMgISBkZWNvZGViaW4yICEgc2luayAgYW5kIGFyZSBtaXNzaW5nIGFuIGVsZW1lbnQuCgoyMDExLTA1LTI3IDE0OjAyOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggZm9yIFNFR01FTlQgZXZlbnQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjcgMTM6NTg6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNyAxMzo1NTozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2lzX3N1YnNldF9zdHJ1Y3R1cmUoKQoJICBBUEk6IGdzdF9jYXBzX2lzX3N1YnNldF9zdHJ1Y3R1cmUoKQoJICBUaGlzIGFsbG93cyB0byBjaGVjayBpZiBhIHN0cnVjdHVyZSBpcyBhIHN1YnNldCBvZiBnaXZlbgoJICBjYXBzIHdpdGhvdXQgYWxsb2NhdGluZyBhIG5ldyBjYXBzIGluc3RhbmNlIGZvciBpdC4KCjIwMTEtMDUtMjcgMTM6NDc6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2lzX3N1YnNldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pc19zdWJzZXQoKQoKMjAxMS0wNS0yNyAxMzozODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKQoJICAuLmFuZCBhcyBhIHJlc3VsdCBnc3RfY2Fwc19pc19lcXVhbCgpIGFuZCBvdGhlcnMuCgkgIFRoaXMgbm93IG9ubHkgY2hlY2tzIGlmIGZvciBldmVyeSBzdWJzZXQgc3RydWN0dXJlIHRoZXJlIGlzCgkgIGEgc3VwZXJzZXQgc3RydWN0dXJlIGluIHRoZSBzdXBlcnNldCBjYXBzLiBQcmV2aW91c2x5IHdlIHdlcmUKCSAgc3VidHJhY3Rpbmcgb25lIGZyb20gYW5vdGhlciwgY3JlYXRpbmcgY29tcGxldGVseSBuZXcgY2FwcwoJICBhbmQgdGhlbiBldmVuIHNpbXBsaWZpZWQgdGhlbS4KCSAgVGhlIG5ldyBpbXBsZW1lbnRpb24gbm93IGlzIGFib3V0IDEuMjcgdGltZXMgZmFzdGVyIGFuZCBkb2Vzbid0CgkgIGJyZWFrIHRoZSAtYmFzZSB1bml0IHRlc3RzIGFyZSBhbnl0aGluZyBhbnltb3JlLgoKMjAxMS0wNS0yNyAxMzozNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggc3Vic2V0IGNoZWNrIGluIGdzdF9jYXBzX21lcmdlKCkKCSAgQ2FwcyBBIGFyZSBhIHN1YnNldCBvZiBjYXBzIEIgZXZlbiBpZiBjYXBzIEIgZG9lc24ndAoJICBoYXZlIGFsbCBmaWVsZHMgb2YgY2FwcyBBLgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMTEtMDUtMjcgMTI6NTY6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgUmV2ZXJ0ICJjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMjI0OGE5Yjg1MmJjYjU2OGE1YjY0MjI5OWVjYzhlNWJmNDhlYTEzLgoJICBUaGlzIGJyZWFrcyBzb21lIHRlc3RzIGluIC1iYXNlIGFuZCB0aGUgZmFpbHVyZXMgc2hvdWxkCgkgIGJlIGZpeGVkIGZpcnN0LgoKMjAxMS0wNS0yNyAxMjo0NTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKQoJICAuLmFuZCBhcyBhIHJlc3VsdCBnc3RfY2Fwc19pc19lcXVhbCgpIGFuZCBvdGhlcnMuCgkgIFRoaXMgbm93IG9ubHkgY2hlY2tzIGlmIGZvciBldmVyeSBzdWJzZXQgc3RydWN0dXJlIHRoZXJlIGlzCgkgIGEgc3VwZXJzZXQgc3RydWN0dXJlIGluIHRoZSBzdXBlcnNldCBjYXBzLiBQcmV2aW91c2x5IHdlIHdlcmUKCSAgc3VidHJhY3Rpbmcgb25lIGZyb20gYW5vdGhlciwgY3JlYXRpbmcgY29tcGxldGVseSBuZXcgY2FwcwoJICBhbmQgdGhlbiBldmVuIHNpbXBsaWZpZWQgdGhlbS4KCSAgVGhlIG5ldyBpbXBsZW1lbnRpb24gbm93IGlzIGFib3V0IDEuMjcgdGltZXMgZmFzdGVyLgoKMjAxMS0wNS0yNyAxMTo0NToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRHJvcCBzdGlja3kgZXZlbnRzIHB1c2hlZCBvbiBmbHVzaGluZyBzcmNwYWRzIGluc3RlYWQgb2YgYWN0aXZhdGluZyB0aGVtIGltbWVkaWF0ZWx5CgoyMDExLTA1LTI2IDE0OjU2OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQYXNzIHRoZSBjb21wbGV0ZSBjYXBzIHRvIHRyYW5zZm9ybV9jYXBzCgkgIEluc3RlYWQgb2YgcGFzc2luZyBpdCBzdHJ1Y3R1cmUgYnkgc3RydWN0dXJlLiBUaGlzIGFsbG93cwoJICBiZXR0ZXIgb3B0aW1pemVkIHRyYW5zZm9ybV9jYXBzIGZ1bmN0aW9ucyBhbmQgYWxsb3dzIGJldHRlcgoJICB0cmFuc2Zvcm1hdGlvbiBkZWNpc2lvbnMuCgkgIFNlZSBidWcgIzYxOTg0NC4KCjIwMTEtMDUtMjcgMDk6MDU6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgYW4gdXBkYXRlIE5FV1NFR01FTlQgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgZHVyYXRpb24gY2hhbmdlcwoJICBUaGlzIGFsbG93cyBzdHJlYW1pbmcgdGhlIGNvbXBsZXRlIGZpbGUgZm9yIGZpbGVzIHRoYXQgaGF2ZSBncm93biBzaW5jZQoJICBzdHJlYW1pbmcgc3RhcnRlZC4KCSAgRml4ZXMgYnVnICM2NDc5NDAuCgoyMDExLTA1LTI2IDE5OjQ1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIF9wdXNoX2V2ZW50CgkgIFJld29yayBfcHVzaF9ldmVudCgpIGEgbGl0dGxlIHNvIHRoYXQgaXQgZHJvcHMgZXZlbnRzIG9uIGJsb2NraW5nIHBhZHMuCgkgIE1ha2Ugc3VyZSB0aGF0IGV2ZW50cyBhcmUgZm9yd2FyZGVkIHdoZW4gd2UgdW5ibG9jay4KCSAgQWRkIGNvdW50ZXIgb24gdGhlIHBhZCB0byBrZWVwIHRyYWNrIG9mIGJ1c3kgcGFkcy4KCjIwMTEtMDUtMjYgMTg6MjE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgcHJlIGFuZCBwb3N0IGNoYWluIGNvZGUKCjIwMTEtMDUtMjYgMTc6NTA6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDoga2VlcCBjb3VudGVyIGZvciBhY3RpdmUgcGFkcwoJICBLZWVwIGEgY291bnRlciB0byBtYXJrIHRoZSBhbW91bnQgb2YgdGhyZWFkcyBjdXJyZW50bHkgcHVzaGluZyBkYXRhIG9uIHRoZSBwYWQuCgoyMDExLTA1LTI2IDE3OjM5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIHByZSBwdXNoIGNvZGUKCSAgUmVmYWN0b3IgdGhlIGNvZGUgdGhhdCBpcyBleGVjdXRlZCBhcyB0aGUgZmlyc3Qgc3RlcCBvZiBhIHB1c2ggb3BlcmF0aW9uIHdoZXJlCgkgIHdlIGNoZWNrIHRoZSBwcm9iZXMgYW5kIGJsb2NraW5nIGFuZCByZXNvbHZlIHRoZSBwZWVyLgoKMjAxMS0wNS0yNiAxNzowODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IHJlbW92ZSBwYWQgY2FjaGUKCSAgUmVtb3ZlIHRoZSBwYWQgY2FjaGUgYXMgdGhpcyBpcyBnb2luZyB0byBiZSByZXdvcmtlZCBmb3IgbmV3IHBhZCBibG9ja2luZyBhbmQKCSAgcHJvYmVzLgoKMjAxMS0wNS0yNiAxNjo0ODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBoYW5kbGluZyBvZiBidWZmZXIgbGlzdHMKCSAgSW1wbGVtZW50IGEgZGVmYXVsdCBidWZmZXItbGlzdCBmdW5jdGlvbiBpbiBjYXNlIHRoZSBlbGVtZW50IGRvZXNuJ3QgaW1wbGVtZW50CgkgIG9uZS4KCSAgQWxzbyBwYXNzIGJ1ZmZlci1saXN0cyB0byB0aGUgaGF2ZS1kYXRhIHNpZ25hbCwgdGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHNvbWUKCSAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlLgoKMjAxMS0wNS0yNiAxNjoxNTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBvbGQgZ3N0X3BhZF9zZXRfYmxvY2tlZCBtZXRob2RzCgoyMDExLTA1LTI2IDE0OjE0OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBwdXNoc3JjOiBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGluIHB1c2hzcmMgcXVlcnkgaGFuZGxlcgoKMjAxMS0wNS0yNiAxMzozNjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI1IDE2OjAyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiB3ZSBjYW4gbm93IHVzZSBHTGliIDIuMjQgQVBJIHVuY29uZGl0aW9uYWxseQoKMjAxMS0wNS0yNSAxNTo1NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvID49IDIuMjQKCSAgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDExLTA1LTI1IDE1OjM4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHVwZGF0ZSByZWxlYXNlIGluc3RydWN0aW9ucyBmb3IgZ25vbWUgY2hhbmdlCgoyMDExLTA1LTI1IDEzOjQwOjMwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogUGxhY2F0ZSBnY2MgYnkgZGVmaW5pbmcgRVdPVUxEQkxPQ0sgdG8gc29tZXRoaW5nCgoyMDExLTA1LTI1IDEyOjQ3OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBXQUtFX0VWRU5UKCkgdG8gYmVoYXZlIHBvc2l4bHkgb24gV2luZG93cwoKMjAxMS0wNS0yNCAyMDoyODoxOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBzbWFsbCBjbGVhbnVwcwoJICBSZW1vdmUgdW5uZWVkZWQgYnJhY2VzIGZyb20gc3RyaW5nIGRlZmluZS4gU21hbGwgZG9jIGltcHJvdmVtZW50LgoKMjAxMS0wNS0yNCAyMDoyNzowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHVzZSBndWludCBmb3IgdGhlIHZlcnNpb24gbnVtYmVyIHBhcnRzCgkgIFVzZSB1bnNpZ25lZCBpbnRlZ2VycyBmb3IgZXh0cmEgc2FmZXR5IChsaWtlIHdlIGRvIGluIHBsdWdpbiB2ZXJzaW9uIHBhcnNpbmcpLgoKMjAxMS0wNS0yNCAxODozOTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICByZW1vdmUgc29tZSBtb3JlIGRlcHJlY2F0ZWQgbWV0aG9kcwoKMjAxMS0wNS0yNCAxODoyOTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogcmVtb3ZlIHVudXNlZCBmbGFnCgoyMDExLTA1LTI0IDE4OjE3OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZmVhdHVyZTogdXNlIG9iamVjdCBuYW1lCgkgIFJlbW92ZSB0aGUgbmFtZSBwcm9wZXJ0eSBmcm9tIHRoZSBwbHVnaW4gZmVhdHVyZSBhbmQgcG9ydCBjb2RlIHRvIHVzZSB0aGUgb2JqZWN0CgkgIG5hbWUgaW5zdGVhZC4KCjIwMTEtMDUtMjQgMTg6MTY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgcmVtb3ZlIG9sZCBnbGliIGNoZWNrCgoyMDExLTA1LTI0IDE3OjQzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNCAxNzozNjoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBzY2hlZHVsaW5nOiBwb3J0IHRvIG5ldyBzY2hlZHVsaW5nIHF1ZXJ5CgoyMDExLTA1LTI0IDEyOjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgU0NIRURVTElORyBxdWVyeQoJICBBZGQgYSBuZXcgcXVlcnkgdG8gcmVwbGFjZSB0aGUgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbi4KCjIwMTEtMDUtMjQgMTk6NDM6NTggKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2ludDY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5NzMKCjIwMTEtMDUtMjQgMTY6MTQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIG5ld2x5IGNyZWF0ZWQgc3JjcGFkcwoKMjAxMS0wNS0yNCAxNjoxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBuZXdseSBjcmVhdGVkIHNyY3BhZHMKCjIwMTEtMDUtMjQgMTY6MDg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGdzdF9wYWRfc3RpY2t5X2V2ZW50c19pdGVyYXRlKCkgZnVuY3Rpb24KCjIwMTEtMDUtMjQgMTM6Mjc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNCAxMzoyODowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZXZlcnQgImRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZTFjYzMxNzZkNmZiODAyM2JiZTBjNzMzNjE1YjJhOGM0MjBhMjA3Ny4KCSAgVGhpcyBpcyBub3QgdGhlIDAuMTEgYnJhbmNoLi4uCgoyMDExLTA1LTI0IDEzOjI3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjQgMDk6NDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5oCgoyMDExLTA1LTI0IDAwOjI2OjQwICswMzAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBjaXRhLnV0b3JvbnRvLmNhPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBpbXByb3ZlIHRoZSBHU1RfVElNRV9GT1JNQVQvQVJHUyBkb2NzCgoyMDExLTA1LTIzIDIzOjQwOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGhpZGUgdGhpcyBmcm9tIHRoZSBkb2NzCgoyMDExLTA1LTIzIDE4OjMwOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB1c2UgR1NUX1NFR01FTlRfRk9STUFUIGZvciBzZWdtZW50cwoKMjAxMS0wNS0yMyAxODoxNTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGZpeGVzIGZvciBidWZmZXJwb29sIGhhbmRsaW5nCgkgIERvbid0IGVycm9yIG91dCB3aGVuIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHJldHVybnMgc3VjY2Vzcy4KCSAgRG8gYnVmZmVycG9vbCBxdWVyeSBhZnRlciB3ZSBwdXNoZWQgdGhlIGNhcHMgZXZlbnQgZG93bnN0cmVhbSBzbyB0aGF0IHdlIGNhbiBnZXQKCSAgYSBnb29kIGJ1ZmZlcnBvb2wgc3VnZ2VzdGlvbi4KCSAgQWxzbyBwcm94eSB0aGUgYnVmZmVycG9vbCBxdWVyeSBkb3duc3RyZWFtIHdoZW4gd2Ugb3BlcmF0ZSBpbiBpbl9wbGFjZSBtb2RlLgoKMjAxMS0wNS0yMyAxODoxNDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNS0yMyAxNjo1MzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IHJlc2V0IHJlY29uZmlndXJlIHN0YXRlCgkgIFdoZW4gd2UgbmVnb3RpYXRlIG5ldyBjYXBzLCByZXNldCB0aGUgcmVjb25maWd1cmUgc3RhdGUuCgoyMDExLTA1LTIwIDE4OjU2OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFdJUCBoYW5kbGUgYnVmZmVycG9vbAoKMjAxMS0wNS0yMSAxOTowNjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBjYWxsaW5nIF9zZXRfY2FwcygpIG9uIHRoZSBzcmNwYWQKCSAgQXZvaWQgaW5zdGFsbGluZyBhIHNldGNhcHMgZnVuY3Rpb24gb24gdGhlIHNyY3BhZCBhbmQgY2FsbGluZyB0aGUgc2V0Y2FwcwoJICBmdW5jdGlvbiwgd2UgY2FuIGRvIG1vcmUgZWZmaWNpZW50bHkgd2l0aCBzZW5kaW5nIHRoZSBldmVudCBvdXJzZWxmIGFuZCBjYWxsaW5nCgkgIG91ciB2bWV0aG9kLgoKMjAxMS0wNS0yMCAxNjowMzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbi5oCgoyMDExLTA1LTIwIDE1OjU4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIG1vcmUgY29kZQoJICBSZW1vdmUgc29tZSBtb3JlIHVudXNlZCBjb2RlIGZyb20gYmFzZXRyYW5zZm9ybS4KCSAgUHJlcGFyZSBmb3IgaW1wbGVtZW50aW5nIGJ1ZmZlcnBvb2xzLgoKMjAxMS0wNS0yMCAxNTo1MDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBhcGkKCjIwMTEtMDUtMjAgMTU6NDg6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkZXByZWNhdGlvbi1ndWFyZHM6IGZpeHVwIGZvciBjb21taXQgOWZmNGVjMzEwNGQyNTEwYjhmMzc5ZmYzOGM2NzE2ODJmZjc5NWUzMwoJICBSZW1vdmUgdGhlIGRlcHJlY2F0aW9uIGd1YXJkcyBmb3IgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIGFnYWluIChldmVuIHRob3VnaCBpdAoJICBpcyBkZXByZWNhdGVkKSBhcyB3ZSB1c2UgaXQgaW4gdGhlIHRlc3RzLiBSZW1vdmUgIl8iIGZvciBpbnRsaW5rZnVuYy4KCjIwMTEtMDUtMjAgMTM6MDY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yMCAxMzowMzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IHJlaW5pdCB0aGUgY2FjaGVkIEdzdENsb2NrSUQgaWYgaXQgaXMgZm9yIHRoZSBzYW1lIGNsb2NrCgkgIFRoZSBjbG9jayBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGNsb2NrIElEIHdhcyBjcmVhdGVkIGFuZCBpbgoJICB0aGF0IGNhc2Ugd2UgaGF2ZSB0byByZXF1ZXN0IGEgbmV3IG9uZS4KCjIwMTEtMDUtMjAgMTI6NDM6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgbWV0aG9kIHRvIGdldCBtZXRhZGF0YQoJICBBZGQgYSBtZXRob2QgdG8gZ2V0IHRoZSBtZXRhZGF0YSBmcm9tIGEga2xhc3MuCgoyMDExLTA1LTIwIDEyOjQzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGZhY3Rvcnk6IGZpeCB0eXBvCgoyMDExLTA1LTIwIDEyOjE4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBBbHdheXMgc2VuZCBhIFNFR01FTlQgZXZlbnQgd2hlbiB0aGUgYWN0aXZlIHBhZCBjaGFuZ2VzCgoyMDExLTA1LTIwIDEyOjE2OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggY29weSZwYXN0ZSBtaXN0YWtlIGluIHRoZSBzcmNwYWQgZXZlbnQgZnVuY3Rpb24KCjIwMTEtMDUtMjAgMTI6MDc6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoKMjAxMS0wNS0yMCAxMjowMDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2VuZCB1cHN0cmVhbSBldmVudHMgdG8gYWxsIHNpbmtwYWRzLCBub3Qgb25seSB0aGUgc2VsZWN0ZWQgb25lCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IFNFRUsgZXZlbnRzIGFyZSBzZW50IHRvIGFsbCB1cHN0cmVhbSBlbGVtZW50cywgd2hpY2ggaXMKCSAgcmVxdWlyZWQgaWYgZGlmZmVyZW50IHN0cmVhbXMgYXJlIGNvbXBsZXRlbHkgZGlzdGluY3QgcGlwZWxpbmUgcGFydHMuIEFsc28gdGhpcwoJICBhbGxvd3MgUW9TIHRvIGJlIGRvbmUgb24gZGVzZWxlY3RlZCBzdHJlYW1zLCBmbHVzaGVzIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LAoJICBldGMuCgoyMDExLTA1LTIwIDExOjM2OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcGVuZGluZyBldmVudCBmb3Igc3RpY2t5IGV2ZW50cwoJICBDaGFuZ2UgdGhlIHN0aWNreSBldmVudCBhcnJheSBzbyB0aGF0IGl0IGNvbnRhaW5zIGEgcGVuZGluZyBhbmQgYW4gYWN0aXZlIGV2ZW50LgoJICBFdmVudHMgb24gdGhlIHNpbmtwYWQgYXJlIGNvcGllZCB0byB0aGUgcGVuZGluZyBhcnJheSBhbmQgYWZ0ZXIgdGhlIGV2ZW50ZnVuYwoJICByZXR1cm5lZCBUUlVFLCBtb3ZlZCB0byB0aGUgYWN0aXZlIGV2ZW50LiBUaGlzIGFsbG93cyB1cyB0byBxdWV1ZSBuZXcgZXZlbnRzCgkgIGxpa2Ugd2hlbiB3ZSBkbyBwZXItcGFkIG9mZnNldHMgd2l0aG91dCByZW1vdmluZyB0aGUgY3VycmVudGx5IGFjdGl2ZSBldmVudC4KCSAgUmVtb3ZlIHRoZSBhY3RpdmUgYXJndW1lbnQgZnJvbSB0aGUgZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KCkgbWV0aG9kLCB0aGUKCSAgcGVuZGluZyBldmVudHMgYXJlIG5vdCBzb21ldGhpbmcgd2Ugd2FudCB0byBleHBvc2UuCgoyMDExLTA1LTIwIDAwOjM5OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgcHJlc2V0OiBpbmNsdWRlIGNsZWFudXAKCSAgT25seSBoYXZlIGluY2x1ZGUgaW4gdGhlIGluc3RhbGxlZCBoZWFkZXIgd2UgbmVlZCB0byB1c2UgaXQuIE1vdmUgdGhlIGluY2x1ZGVzCgkgIG5lZWRlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gdG8gdGhlIGMgZmlsZS4KCjIwMTEtMDUtMTkgMjM6MTk6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBpbnRyb3NwZWN0aW9uIGRhdGEKCSAgTm93IG1vcmUgZmlsZXMgYXJlIG1lcmdlZCBhbmQgcHJvZHVjZWQgaW4gYSBjYW5vbmljYWwgZmFzaGlvbiwgd2hpY2ggaG9wZWZ1bGx5CgkgIGNyZWF0ZXMgbGVzcyBvciBubyBkZWx0YSBpbiB0aGUgZnV0dXJlLgoKMjAxMS0wNS0xOSAyMjo1NjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5ZTViYmQ1IHRvIDY5Yjk4MWYKCjIwMTEtMDUtMTkgMTk6MDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBjYXBzIGFyZSBub3Qgc3RvcmVkIG9uIGZsdXNoaW5nIHBhZHMKCSAgQ2FwcyBhcmUgbm93IGFsc28gc3RvcmVkIG9uIGZsdXNoaW5nIHBhZHMgaW4gdGhlIGluYWN0aXZlIHN0YXRlLgoKMjAxMS0wNS0xOSAxOTowMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhcHBseSBwYWQgb2Zmc2V0IG9uIHNpbmtwYWQgZXZlbnRzIHRvbwoJICBBcHBseSB0aGUgcGFkIG9mZnNldCBpbiB0aGUgc2VuZF9ldmVudCgpIGZ1bmN0aW9uIGFzIHdlbGwuCgoyMDExLTA1LTE5IDE4OjI3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwZXItcGFkIG9mZnNldHMKCSAgV2hlbiBsaW5raW5nIHBhZHMgYW5kIHdoZW4gY29weWluZyBhIHNlZ21lbnQgZXZlbnQgZnJvbSB0aGUgc291cmMgcGFkIHRvIHRoZQoJICBzaW5rcGFkLCBhcHBseSB0aGUgc3JjIGFuZCBzaW5rcGFkIG9mZnNldHMgdG8gdGhlIHNlZ21lbnQgYmFzZS4gTWFrZSBzdXJlIHRoYXQKCSAgd2Ugb25seSBtb2RpZnkgdGhlIGV2ZW50IHN0b3JlZCBvbiB0aGUgc2lua3BhZCBhbmQgbmV2ZXIgdGhlIG9uZSBvbiB0aGUgc291cmNlCgkgIHBhZC4KCSAgV2hlbiBjaGFuZ2luZyB0aGUgcGFkIG9mZnNldCwgcGVyZm9ybSB0aGUgc2VnbWVudCBjb3B5IHdpdGggdGhlIHVwZGF0ZWQgb2Zmc2V0cy4KCSAgV2hlbiBwdXNoaW5nIGEgc2VnbWVudCBldmVudCwgYXBwbHkgdGhlIHNyY3BhZCBvZmZzZXQgYmVmb3JlIHNlbmRpbmcgdGhlIGV2ZW50CgkgIHRvIHRoZSBwZWVyIHBhZC4KCSAgVGhpcyBwYXJ0IGlzIG1pc3NpbmcgdGhlIGFkanVzdG1lbnQgb2YgdGhlIHNlZ21lbnQgZXZlbnQgb24gdGhlIHNpbmtwYWQsIHdoaWNoCgkgIGlzIGZvciBhIGxhdGVyIHBhdGNoLgoKMjAxMS0wNS0xOSAxNjoyNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBtZXRob2RzIHRvIGFkanVzdCB0aGUgb2Zmc2V0CgkgIEFkZCBtZXRob2RzIHRvIGFkanVzdCB0aGUgb2Zmc2V0LiBUaGlzIHdpbGwgYmUgdXNlZCB0byBjaGFuZ2UgdGhlIHNlZ21lbnQgZXZlbnRzCgkgIHdpdGggYW4gb2Zmc2V0IHNvIHRoYXQgd2UgY2FuIHR3ZWFrIHRoZSB0aW1pbmcgb2YgdGhlIHN0cmVhbSBvbiBhIHBlci1wYWQgYmFzZS4KCjIwMTEtMDUtMTkgMTI6MTE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBQb3J0IHRvIHRoZSBuZXcgc2VnbWVudCBBUEkKCSAgVGhlIHN3aXRjaCBhY3Rpb24gc2lnbmFsIHdpdGggdGhlIHN0b3AgYW5kIHN0YXJ0IHJ1bm5pbmcgdGltZXMKCSAgaXMgbm90IG5lY2Vzc2FyeSBhbnltb3JlLiBDbG9zaW5nIG9mIHNlZ21lbnRzIGlzIG5vdCBuZWNlc3NhcnkKCSAgYW5kIGFkanVzdGluZyB0aGUgc3RhcnQgcnVubmluZyB0aW1lIG9mIGEgc2VnbWVudCBjYW4gbGF0ZXIgYmUKCSAgZG9uZSB3aXRoIG5ldyBHc3RQYWQgQVBJLgoKMjAxMS0wNS0xOSAxMTozMDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0Z2hvc3RwYWQuaAoKMjAxMS0wNS0xOCAxOTo0Mzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nIHNpbmtwYWRzIHRvbwoJICBGaXJzdCBzdG9yZSB0aGUgc3RpY2t5IGV2ZW50IG9uIHRoZSBzaW5rcGFkIGluIHRoZSBpbmFjdGl2ZSBzdGF0ZSwgdGhlbiBjaGVjawoJICBmb3IgdGhlIGZsdXNoaW5nIGZsYWcuIFdlIHdhbnQgdG8gaGF2ZSB0aGUgZXZlbnRzIG9uIHNpbmtwYWRzIGF0IGFsbCB0aW1lcywKCSAgcmVhZHkgdG8gYmUgYWN0aXZhdGVkIHdoZW4gdGhlIHBhZCBiZWNvbWVzIGFjdGl2ZS4KCjIwMTEtMDUtMTggMTg6NTM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbW92ZSBjYXBzIGNoZWNrIHRvIGNlbnRyYWwgbG9jYXRpb24KCSAgTWFrZSBhIGZ1bmN0aW9uIHRvIGNhbGwgdGhlIGV2ZW50ZnVuYyBhbmQgcGVyZm9ybSBhIGNhcHMgY2hlY2sgd2hlbiB3ZSBhcmUKCSAgZGlzcGF0Y2hpbmcgYSBjYXBzIGV2ZW50LgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhbGwgY29kZSBwYXRocyBjb3JyZWN0bHkgY2hlY2sgdGhhdCB0aGUgY2FwcyBhcmUKCSAgYWNjZXB0YWJsZSBiZWZvcmUgc2VuZGluZyB0aGUgY2FwcyB0byB0aGUgZXZlbnRmdW5jdGlvbi4KCjIwMTEtMDUtMTggMTg6NTI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGF2b2lkIGNhbGxpbmcgc2V0Y2FwcyB0b28gbWFueSB0aW1lcwoJICBEb24ndCBjYWxsIHNldGNhcHMsIHRoZSBjYXBzIGV2ZW50IHdpbGwgdGFrZSBjYXJlIG9mIHByb3BhZ2F0aW5nIHRoZSBjYXBzIG9uIGFsbAoJICBwYWRzLgoKMjAxMS0wNS0xOCAxODo0ODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIGFsbG9jYXRpb24gcXVlcnkgbmFtZQoJICBBZGQgQUxMT0NBVElPTiBxdWVyeSBuYW1lIGFuZCBndWFyZCBzb21lIGZ1bmN0aW9ucyBhZ2FpbnN0IGludmFsaWQgcXVlcmllcy4KCjIwMTEtMDUtMTggMTY6NTY6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBNYWtlIFNFR01FTlQgZXZlbnQgcGFyc2luZyBBUEkgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVycwoKMjAxMS0wNS0xOCAxNjo0Nzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWxheCBjYXBzIGNoZWNrCgkgIEFsc28gcnVuIHRoZSBjYXBzIHRyYW5zZm9ybSBmdW5jdGlvbiBvbiBBTlkgY2FwcywgbGlrZSB3ZSB1c2VkIHRvIGRvIGJlZm9yZS4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgY2Fwc2ZpbHRlciBoYXMgYSBjaGFuY2UgdG8gZmlsdGVyIEFOWSBjYXBzIGFzIHdlbGwuCgoyMDExLTA1LTE4IDE2OjI5OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmb3JnZXQgdG8gdGFrZSB0aGUgb2JqZWN0IGxvY2sgd2hlbiBnZXR0aW5nIGEgc3RpY2t5IGV2ZW50CgoyMDExLTA1LTE4IDE2OjI2OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBmdW5jdGlvbiB0byBnZXQgc3RpY2t5IGV2ZW50cyBmcm9tIGEgcGFkCgkgIEFQSTogZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KCkKCjIwMTEtMDUtMTggMTU6NDM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZXZlbnQgY29weQoJICBGaXggcGFyZW50IHJlZmNvdW50IG9uIGV2ZW50IGNvcHkuCgkgIEZpeCB1bml0IHRlc3QuCgoyMDExLTA1LTE4IDE1OjI5OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIHByb3BlcnR5IGNoYW5nZSBpbiBjYWxsc2V0Y2FwcwoJICBOb3RpZnkgdGhlIGNhcHMgcHJvcGVydHkgY2hhbmdlIGluIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJsZSBmdW5jdGlvbiB0byBjYWxsIHRoZQoJICBzZXRjYXBzIGZ1bmN0aW9uLgoKMjAxMS0wNS0xOCAxNjowOToxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZDM1MDczIHRvIDllNWJiZDUKCjIwMTEtMDUtMTggMTU6MDQ6NDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBHc3RQcm94eVBhZCBmcm9tIHByaXZhdGUgc2VjdGlvbgoKMjAxMS0wNS0xOCAxNTowMjowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGRvY3M6IHVzZSB0aGUgc2FtZSBuYW1lIGZvciB0aGUgYXJndW1lbnQgaW4gcHJvdG90eXBlIGFuZCBkb2NzCgoyMDExLTA1LTE4IDE0OjU5OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcHV0IGdlbmVyYXRlZCBzb3VyY2VzIHRvIEJVSUxUX1NPVVJDRVMgYW5kIGNsZWFuIHRoZW0gb24gbWFrZSBjbGVhbgoKMjAxMS0wNS0xOCAxMzoxOTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMTggMTM6MTQ6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3RwbHVnaW4uaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTA1LTE4IDE0OjEwOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcmVpbnNlcnQgbWlzc2luZyBzcGFjZSB0byBmaXggcHJldmlvdXMgY29tbWl0CgoyMDExLTA1LTE4IDEzOjU0OjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogc2ltcGxpZnkgdGhlIHNuaXBldCBleHRyYWN0aW9uIHJ1bGVzCgkgIFVzZSAkPCBpbnN0ZWFkIG9mIHJlcGVhdGluZyB0aGUgbmFtZSBvZiB0aGUgZGVwZW5kZW5jeS4KCjIwMTEtMDUtMTggMTA6NTk6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBkb24ndCBleHRyYWN0IHRoZSB4bWwgZXhhbXBsZSBhbnltb3JlLCBpdHMgZ29uZQoJICBBcyBhIGZvbGxvd3VwIGZvciBjb21taXQgY2RhNWEzNTNkMjczMjZjMDI3MmE3OWM5MmMxMWMyMjFhNDA5MmRhNCBkb24ndCB0cnkKCSAgZXh0cmFjdGluZyBhbiBleGFtcGxlIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZC4KCjIwMTEtMDUtMTggMTI6MjM6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDZkZmNlYSB0byBmZDM1MDczCgoyMDExLTA1LTE4IDExOjIxOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcyBzb21lIG1vcmUKCjIwMTEtMDUtMTggMTE6MDg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJld29yayBzdGlja3kgZXZlbnRzIGEgbGl0dGxlCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvY3Mgd2l0aCBzb21lIGNsZWFyIHJ1bGVzIGZvciBob3cgc3RpY2t5IGV2ZW50cyBhcmUKCSAgaGFuZGxlZC4KCSAgUmVpbXBsZW1lbnQgdGhlIHN0aWNreSB0YWdzLCB1c2UgYSBzbWFsbCBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgZXZlbnQgYW5kIGl0cwoJICBjdXJyZW50IHN0YXRlIChhY3RpdmUgb3IgaW5hY3RpdmUpLgoJICBFdmVudHMgb24gc2lua3BhZHMgb25seSBiZWNvbWUgYWN0aXZlIHdoZW4gdGhlIGV2ZW50IGZ1bmN0aW9uIHJldHVybmVkIHN1Y2Nlc3MKCSAgZm9yIHRoZSBldmVudC4KCSAgV2hlbiBsaW5raW5nLCBvbmx5IHVwZGF0ZSBldmVudHMgdGhhdCBhcmUgZGlmZmVyZW50LgoJICBBdm9pZCBtYWtpbmcgYSBjb3B5IG9mIHRoZSBldmVudCBhcnJheSwgdXNlIHRoZSBvYmplY3QgbG9jayB0byBwcm90ZWN0IHRoZSBldmVudAoJICBhcnJheSBhbmQgcmVsZWFzZSBpdCBvbmx5IHRvIGNhbGwgdGhlIGV2ZW50IGZ1bmN0aW9uLiBUaGlzIHdpbGwgbmVlZCB0byBjaGVjawoJICBpZiBzb21ldGhpbmcgY2hhbmdlZCwgbGF0ZXIuCgkgIERpc2FibGUgYSB0ZXN0IGluIHRoZSB1bml0IHRlc3QsIGl0IGNhbid0IHdvcmsgeWV0LgoKMjAxMS0wNS0xNyAyMjoxNzoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1haW50YWluIGZyYW1lIHN0YXRlIGR1cmluZyBmcmFtZSBwYXJzaW5nIHJvdW5kCgkgIFNlZSAjNjUwMDkzLgoKMjAxMS0wNS0xMiAxMTo1NToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgbGF0ZW5jeSBxdWVyeSBzdXBwb3J0CgoyMDExLTA1LTE3IDIyOjE1OjM4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBtaW5pbXVtIGZyYW1lIHNpemUgaGFuZGxpbmcgbW9yZSBlZmZpY2llbnQgYW5kIGNvbnZlbmllbnQKCSAgV2hpbGUgc29tZSBmb3JtYXRzIGFsbG93IHN1YmNsYXNzIHRvIGRldGVybWluZSBhIHNwZWNpZmljIHN1YnNlcXVlbnQKCSAgbmVlZGVkIGZyYW1lIHNpemUsIG90aGVycyBtYXkgdG8gbmVlZCB0byBzY2FuIGZvciBtYXJrZXJzIGFuZCBjYW4gb25seQoJICByZXF1ZXN0ICdhZGRpdGlvbmFsIGRhdGEnIGJ5IHdoYXRldmVyIHJlYXNvbmFibGUgYXZhaWxhYmxlIHN0ZXAuCgkgIEluIHB1c2ggbW9kZSwgdHJ5aW5nIHRvIG1pbmltaXplIGFkZGl0aW9uYWwgbGF0ZW5jeSBsZWFkcyB0byBzdGVwIHNpemUKCSAgYmVpbmcgdGhlIG5leHQgaW5wdXQgYnVmZmVyLiAgSW4gcHVsbCBtb2RlLCBhbnkgcmVhc29uYWJsZSBzdGVwIHNpemUKCSAgKHN1Y2ggYXMgYWxyZWFkeSB1c2VkIGJ5IGJ1ZmZlciBjYWNoaW5nKSBjYW4gYmUgYXBwbGllZC4KCjIwMTEtMDUtMTcgMjI6Mzg6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZXQgY29ycmVjdCBidWZmZXIgc2l6ZQoKMjAxMS0wNS0wNiAxMDo1NDowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogc2hvdyBmbGFncyB0aGUgc2FtZSB3YXkgdGhleSBuZWVkIHRvIGJlIGVudGVyZWQKCSAgVGhlIChkZSlzZXJpYWxpc2F0aW9uIHVzZXMgIisiIGFuZCBub3QgIiB8ICIuCgoyMDExLTA0LTI4IDExOjM0OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGF2b2lkIGR1cGxpY2F0aW5nIGZlYXR1cmUtPm5hbWUKCSAgVGhlIGZlYXR1cmUgbmFtZSBpcyBub3Qgc3VwcG9zZWQgdG8gY2hhbmdlIG92ZXIgdGltZSBhbnl3YXkuIEluIG9yZGVyIHRvIGVuZm9yY2UKCSAgdGhpcyBwYXJlbnRpemUgZmVhdHVyZXMgdG8gdGhlIHJlZ2lzdHJ5IGFuZCBtYWtlIHRoZSBmZWF0dXJlLT5uYW1lIHBvaW50aW5nIHRvCgkgIEdzdE9iamVjdDpuYW1lLiBJbiAwLjExIHdlIGNvdWxkIGNvbnNpZGVyIG9mIHJlbW92aW5nIHRoZSBmZWF0dXJlLT5uYW1lIHZhcmlhYmxlCgkgIChGSVhNRSBjb21tZW50IGFkZGVkKS4KCSAgRml4ZXM6ICM0NTk0NjYKCjIwMTEtMDUtMDIgMTU6MzY6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgZGVwcmVjYXRpb24gZ3VhcmRzCgkgIE1vdmUgR3N0UGFkSW50TGlua0Z1bmN0aW9uIHRvIHByaXZhdGUgaGVhZGVyIHRvIGF2b2lkIGEgZG96ZW4gI2lmZGVmcy4gVXNlIGEKCSAgZ3BvaW50ZXIgaW4gcHVibGljIGhlYWRlciBpbnN0ZWFkLgoKMjAxMS0wNS0xNyAxOTowMzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwdXNoIHN0aWNreSBldmVudHMgb24gZmx1c2gKCSAgT25seSBhbGxvdyBzZXJpYWxpemVkIGFuZCBub24tZmx1c2ggZXZlbnRzIGZvcndhcmQgdGhlIHN0aWNreSBldmVudHMuCgoyMDExLTA1LTE3IDE4OjIzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3Q6IHJlc2V0IHBhZCBjYXBzIHByb3Blcmx5CgoyMDExLTA1LTE3IDE4OjIzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBtb3JlIGRlYnVnCgoyMDExLTA1LTE3IDE4OjIxOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZW1vdmUgdW51c2VkIGNvZGUKCSAgVGhlIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgY2FwcyBhcmUgcHJvcGVybHkgc2V0IG9uIGJvdGggcGFkcywgaXQgbm93IGhhcHBlbnMKCSAgYXV0b21hdGljYWxseSB3aXRoIHRoZSBjYXBzIGV2ZW50LgoKMjAxMS0wNS0xNyAxNzo1MzowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggdGVzdHMKCSAgUmVtb3ZlIHRoZSB0ZXN0cyB0aGF0IGhhbmRsZSBpbmNvbXBhdGlibGUgZm9ybWF0cywgd2UgZG9uJ3Qgd2FudCB0aGF0IGFueW1vcmUuCgoyMDExLTA1LTE3IDE3OjUxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogaGFuZGxlIHdyYXBhcm91bmQgYmV0dGVyCgkgIE5vdyB0aGF0IHdlIHVzZSB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSBzZWdtZW50LCBoYW5kbGUgd3JhcGFyb3VuZCB3aGVuIHNlZWtpbmcKCSAgYmV0dGVyLgoKMjAxMS0wNS0xNyAxNjo1MDo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgdW5yZWYsIHRoZSBvYmplY3QgaXMgTlVMTAoKMjAxMS0wNS0xNyAxNDowMTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBUaGUgUkVDT05GSUdVUkUgZWxlbWVudCBvbmx5IGV4aXN0cyBpbiAwLjExCgkgIEltcGxlbWVudGluZyBpdCBwcm9wZXJseSBpbiAwLjEwIHNlZW1zIHRvIGJlIGltcG9zc2libGUuCgoyMDExLTA1LTE3IDEzOjEzOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MjU6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjowNDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjoxMjoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDb25zaWRlciBHc3RQYWRUZW1wbGF0ZSBhcyBpbW11dGFibGUKCSAgRG9uJ3QgY29weSB0aGUgdGVtcGxhdGVzIHdoZW4gY3JlYXRpbmcgc3ViY2xhc3NlcyBidXQgb25seSBpbmNyZWFzZQoJICB0aGVpciByZWZjb3VudC4KCjIwMTEtMDUtMTcgMTI6MTA6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBDcmVhdGUgcGFkIHRlbXBsYXRlcyB3aXRoIGZsb2F0aW5nIHJlZnMKCSAgQW5kIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBmbG9hdGluZyByZWYgaW4gZ3N0X2VsZW1lbnRfYWRkX3BhZF90ZW1wbGF0ZSgpCgoyMDExLTA1LTE3IDEyOjA3OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogSW1wcm92ZSByZWZlcmVuY2UgaGFuZGxpbmcgb2YgdGhlIHRlbXBsYXRlJ3MgY2FwcwoJICBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGRvZXMgbm90IHRha2Ugb3duZXJzaGlwIG9mIHRoZSBjYXBzIGFueW1vcmUuCgoyMDExLTA1LTE2IDEzOjM5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGRlbGF5IHByaXZhdGUgZGF0YSBpbml0aWFsaXNhdGlvbiB1bnRpbCBhY3R1YWxseSBuZWVkZWQKCSAgV2Ugb25seSB1c2UgdGhlIHByaXZhdGUgaW5zdGFuY2UgZGF0YSBmb3Igd2VhayByZWZlcmVuY2VzIGZvciBub3csCgkgIHNvIGNhbiBkZWxheSBpbml0aWFsaXNhdGlvbiB1bnRpbCBhY3R1YWxseSBuZWVkZWQgKG1pY3Jvb3B0aW1pc2F0aW9uKQoKMjAxMS0wNS0xNyAxMTo1OTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZDogTGV0IHRlbXBsYXRlIHJlbGF0ZWQgZnVuY3Rpb25zIHJldHVybiBuZXcgcmVmZXJlbmNlcwoJICBnc3RfcGFkX3RlbXBsYXRlX2dldF9jYXBzKCksIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZV9jYXBzKCkKCSAgYW5kIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIHJldHVybiBhIG5ldyByZWZlcmVuY2Ugb2YgdGhlCgkgIGNhcHMgb3IgdGVtcGxhdGUgbm93IGFuZCB0aGUgcmV0dXJuIHZhbHVlIG5lZWRzIHRvIGJlCgkgIHVucmVmZmVkIGFmdGVyIHVzYWdlLgoKMjAxMS0wNS0xNyAxMTo0NTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIFJldmVydCAiZXZlbnQ6IGV4YW1wbGUgb2YgaG93IHRvIG9wdGltaXplIGV2ZW50cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmYTI4ZTJjNWU2ZTVlMTcyYmUzMDhjMGM1MGY0NGVkNmYzOWUxYTcxLgoJICBUaGUgb3B0aW1pemF0aW9uIG9ubHkgaGFzIG1pbmltYWwgaW1wYWN0IG9uIHRoZSBwZXJmb3JtYW5jZSBhbmQKCSAgbWFrZXMgZXZlcnl0aGluZyBtb3JlIGNvbXBsZXguCgoyMDExLTA1LTE3IDExOjQ1OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBSZXZlcnQgImV2ZW50OiB1cGRhdGUgdGhlIHN0cnVjdHVyZSB3aGVuIG5lZWRlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MDUxMDBjZGJlNTgwZDRkMTgyYmZkOWQ1ZWM5YjM2OGExMTBmNDY0LgoKMjAxMS0wNS0xNyAxMToyMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRml4IGNvbXBpbGF0aW9uCgoyMDExLTA1LTE3IDExOjIwOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBSZXZlcnQgInF1ZXJ5OiBhbGxvdyBfbWFrZV93cml0YWJsZSBvbiBxdWVyeSBoYW5kbGVycyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjZjRmYmMwMDVjNWM1MzBjMmE1MDlhOTQzYTA1YjkxZDZjOWFmM2ZiLgoJICBUaGlzIGNoYW5nZSBkaWQgbm90IGltcHJvdmUgdGhlIHNpdHVhdGlvbiBmb3IgYmluZGluZ3MgYmVjYXVzZQoJICBxdWVyaWVzIGFyZSB1c3VhbGx5IGNyZWF0ZWQsIHRoZW4gZGlyZWN0bHkgcGFzc2VkIHRvIGEgZnVuY3Rpb24KCSAgYW5kIG5vdCBzdG9yZWQgZWxzZXdoZXJlLCBhbmQgdGhlIHdyaXRhYmlsaXR5IHByb2JsZW0gd2l0aAoJICBtaW5pb2JqZWN0cyB1c3VhbGx5IGhhcHBlbnMgd2l0aCBidWZmZXJzIG9yIGNhcHMgaW5zdGVhZC4KCjIwMTEtMDUtMTcgMTE6MTk6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBSZXZlcnQgImJpbjogRGVyZWZlcmVuY2UgR3N0UXVlcnkqKiBiZWZvcmUgcGFzc2luZyBpdCB0byBHU1RfUVVFUllfVFlQRV9OQU1FIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQzN2M5MmI0MDNlMGM3ZGE5YjlkNDUwOWVmNGZmYmQwNTcxMGRmMmIuCgoyMDExLTA1LTE3IDExOjE5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgUmV2ZXJ0ICJnaG9zdHBhZDogZml4IGdfcmV0dXJuXyogd2l0aCBuZXcgcXVlcnkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODc3YzFjMjhmZjk1N2NhOTI5MTFlYWRmYzc4NWY4NjYxZDllMDEyNy4KCjIwMTEtMDUtMTcgMDk6NDA6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmCgoyMDExLTA1LTE3IDA5OjM1OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IE1ha2UgYm90aCBwYXJhbWV0ZXJzIHRvIGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwoKSBjb25zdAoKMjAxMS0wNS0xNyAwOTozMzo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogVXBkYXRlIFNpbmNlIG1hcmtlcnMgdG8gdGhlIGNvcnJlY3QgdmVyc2lvbgoKMjAxMS0wNS0xNyAwOTozMzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfaW50ZXJzZWN0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2ludGVyc2VjdCgpCgoyMDEwLTA5LTEwIDE4OjMzOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QgQVBJCgkgIEFsbG93cyBjaGVja2luZyBpZiB0d28gc3RydWN0dXJlcyBjYW4gaW50ZXJzZWN0IHdpdGhvdXQgaGF2aW5nIHRvCgkgIGdvIHRocm91Z2ggR3N0Q2FwcwoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzAwCgoyMDEwLTA5LTEwIDE4OjE0OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RydWN0dXJlOiBOZXcgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsCgkgIEFsbG93cyBjaGVja2luZyBlcXVhbGl0eSBvZiBHc3RTdHJ1Y3R1cmUgd2l0aG91dCBoYXZpbmcgdG8gY3JlYXRlCgkgIGludGVybWVkaWFyeSBHc3RDYXBzLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMwMAoKMjAxMS0wNS0xNiAxOTowOTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogc2V0IGVsZW1lbnRzIGluIFBBVVNFRAoJICBTZXQgZWxlbWVudHMgaW4gUEFVU0VEIGJlZm9yZSB0cnlpbmcgdG8gc2V0IGNhcHMgb24gcGFkcy4KCjIwMTEtMDUtMTYgMTk6MDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdDogZml4IGdob3N0cGFkIHRlc3QKCSAgV2UgbmVlZCB0byBoYXZlIGFjdGl2YXRlZCBwYWRzIGJlZm9yZSB3ZSBjYW4gcGFzcyBhcm91bmQgY2Fwcy4KCSAgRG9uJ3Qgc2V0IE5VTEwgY2FwcyBvbiBwYWRzLgoKMjAxMS0wNS0xNiAxOTowNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhdm9pZCBzZXR0aW5nIE5VTEwgY2FwcyBvbiBwYWRzCgoyMDExLTA1LTE2IDE4OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBidWZmZXIgcmVmY291bnRpbmcKCSAgV2hlbiB3ZSBmYWlsIHRvIGFsbG9jYXRlIGFuIG91dHB1dCBidWZmZXIsIHNldCB0aGUgYnVmZmVyIHBvaW50ZXIgdG8gTlVMTCBvcgoJICBlbHNlIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIHdpbGwgdHJ5IHRvIHVucmVmIGl0LgoJICBSZW1vdmUgc29tZSBvbGQgY29tbWVudHMKCjIwMTEtMDUtMTYgMTg6Mjk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogYWxsb3cgTlVMTCBmaWx0ZXJzIGFuZCBmaXggcmVmY291bnRpbmcKCjIwMTEtMDUtMTYgMTg6MTI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBvbmx5IGFkZCB0aGUgc3RydWN0dXJlIHdoZW4gd2UgY291bGQgc2V0IHRoZSBwYXJlbnQKCjIwMTEtMDUtMTYgMTc6NTM6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBnX3JldHVybl8qIHdpdGggbmV3IHF1ZXJ5CgoyMDExLTA1LTE2IDE3OjI0OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwoKMjAxMS0wNS0xNiAxNjo1OToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBoYW5kbGUgbW9yZSBmb3JtYXRzCgkgIFVzZSB0aGUgc2VnbWVudCBmb3JtYXQgaW5zdGVhZCBvZiBhIGhhcmRjb2RlZCBfVElNRS4KCjIwMTEtMDUtMTYgMTY6NTc6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgbW9yZSBmb3JtYXRzCgkgIERvbid0IGhhcmRjb2RlIEdTVF9GT1JNQVRfVElNRSBpbiBwbGFjZXMsIHdlIGNhbiB3b3JrIHdpdGggbWFueSBmb3JtYXRzLgoKMjAxMS0wNS0xNiAxNjo1NDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTEnIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIgaW50byAwLjExCgoyMDExLTA1LTE2IDE2OjUzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvZ3N0YmluLmMKCSAgZ3N0L2dzdGVsZW1lbnQuYwoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTA1LTE2IDE2OjEwOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICB1cGRhdGUgbWFudWFsIGNvZGUgZXhhbXBsZXMgZm9yIG5ldyBfZ2V0X2NhcHMoKQoKMjAxMS0wNS0xMyAwODozNDozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgbmVnb3RpYXRpb24gcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xMSAxNTozODowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogVXBkYXRlIGZvciBuZWdvdGlhdGlvbiByZWxhdGVkIEFQSSBjaGFuZ2VzCgkgIFRoZSBmaWx0ZXIgY2FwcyBhcmUgb25seSBmb3J3YXJkZWQgYW5kIHJldHVybmVkIGluc3RlYWQKCSAgb2YgQU5ZIGNhcHMgaW4gdGhlIGNvcmUgZWxlbWVudHMgYmVjYXVzZSB0aGV5IGRvbid0IGRvCgkgIGFueXRoaW5nIGNhcHMgc3BlY2lmaWMuCgoyMDExLTA1LTExIDE1OjEyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZTogSW1wcm92ZSBuZWdvdGlhdGlvbiB3aXRoIG5ldyBnZXRjYXBzKCkgZmlsdGVyCgoyMDExLTA1LTEwIDE3OjU2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3Q6IEFkZCBhIGZpbHRlciBjYXBzIHBhcmFtZXRlciB0byBhbGwgZ2V0X2NhcHMoKSBmdW5jdGlvbnMKCSAgVGhpcyBpcyB1c2VkIHRvIHBhc3MgdGhlIHBvc3NpYmxlIGNhcHMgYW5kIHByZWZlcmVuY2VzIHRvCgkgIHRoZSBwYWQgYW5kIHRvIGFsbG93IGJldHRlciBuZWdvdGlhdGlvbiBkZWNpc2lvbnMuCgoyMDExLTA0LTE5IDIwOjA1OjA3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRqdXN0IGlucHV0IGRhdGEgcmF0ZSBlc3RpbWF0aW9uCgkgIC4uLiBiZWluZyBhd2FyZSBvZiBwb3NzaWJsZSBpbml0aWFsIGhpZ2hlciBidXJzdCByYXRlLgoKMjAxMS0wNS0xMyAxODowNzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIFJld29yayBHc3RTZWdtZW50IGhhbmRsaW5nCgkgIEltcHJvdmUgR3N0U2VnbWVudCwgcmVuYW1lIHNvbWUgZmllbGRzLiBUaGUgaWRlYSBpcyB0byBoYXZlIHRoZSBHc3RTZWdtZW50CgkgIHN0cnVjdHVyZSByZXByZXNlbnQgdGhlIHRpbWluZyBzdHJ1Y3R1cmUgb2YgdGhlIGJ1ZmZlcnMgYXMgdGhleSBhcmUgZ2VuZXJhdGVkIGJ5CgkgIHRoZSBzb3VyY2Ugb3IgZGVtdXhlciBlbGVtZW50LgoJICBnc3Rfc2VnbWVudF9zZXRfc2VlaygpIC0+IGdzdF9zZWdtZW50X2RvX3NlZWsoKQoJICBSZW5hbWUgdGhlIE5FV1NFR01FTlQgZXZlbnQgdG8gU0VHTUVOVC4KCSAgTWFrZSBwYXJzaW5nIG9mIHRoZSBTRUdNRU5UIGV2ZW50IGludG8gYSBHc3RTZWdtZW50IHN0cnVjdHVyZS4KCSAgUGFzcyBhIEdzdFNlZ21lbnQgc3RydWN0dXJlIHdoZW4gbWFraW5nIGEgbmV3IFNFR01FTlQgZXZlbnQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHBhc3MgdGhlIHRpbWluZyBpbmZvIGRpcmVjdGx5IHRvIHRoZSBuZXh0IGVsZW1lbnQuIE5vIGFjY3VtdWxhdGlvbiBpcyBuZWVkZWQgaW4KCSAgdGhlIHJlY2VpdmluZyBlbGVtZW50LCBhbGwgdGhlIGluZm8gaXMgaW5zaWRlIHRoZSBlbGVtZW50LgoJICBSZW1vdmUgZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQoKTogVGhpcyBmdW5jdGlvbiBhcyB1c2VkIHRvIGFjY3VtdWxhdGUKCSAgc2VnbWVudHMgcmVjZWl2ZWQgZnJvbSB1cHN0cmVhbSwgd2hpY2ggaXMgbm93IG5vdCBuZWVkZWQgYW55bW9yZSBiZWNhdXNlIHRoZQoJICBzZWdtZW50IGV2ZW50IGNvbnRhaW5zIHRoZSBjb21wbGV0ZSB0aW1pbmcgaW5mb3JtYXRpb24uCgoyMDExLTA1LTE2IDEwOjI1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZS1pbXBsZW1lbnQgbm90aWZ5OjpjYXBzCgoyMDExLTA1LTE0IDE0OjAyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggdXAgc29tZSBTaW5jZSBtYXJrZXJzIGFuZCB1cGRhdGUgZm9yIG5ldyBtdWx0aXF1ZXVlIGFyZ3MKCjIwMTEtMDUtMTIgMTY6NDg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERvbid0IGludGVycHJldGUgcGlwZWxpbmVzIHdpdGhvdXQgc2luayBlbGVtZW50cyBhcyBhbHdheXMgYmVpbmcgaW4gRU9TIHN0YXRlCgkgIFNvbWUgdGVzdHMgKGUuZy4gZWxlbWVudHMvY2Fwc2ZpbHRlcikgaGF2ZSBwaXBlbGluZXMgd2l0aCBkYW5nbGluZwoJICBzaW5rcGFkcyBhbmQgd2l0aG91dCBhIHNpbmsgZWxlbWVudC4gVGhlc2UgcGlwZWxpbmVzIGNhbiBuZXZlciBwb3N0CgkgIGFuIEVPUyBtZXNzYWdlIChiZWNhdXNlIHRoaXMgaXMgb25seSB2YWxpZCBieSBhIHNpbmspIGFuZCBhcyBzdWNoCgkgIHNob3VsZCBuZXZlciBnZXQgYW4gRU9TIG1lc3NhZ2UgcG9zdGVkIGJ5IHRoZSBiaW4uCgoyMDExLTA1LTEyIDE1OjUxOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogT25seSByZXRyeSB3cml0aW5nIHRvIHRoZSBzb2NrZXQgZm9yIEVBR0FJTiwgRVdPVUxEQkxPQ0sgYW5kIEVJTlRSCgkgIEZpeGVzIGluZmluaXRlIGxvb3AgaW4gc29tZSBjYXNlcywgYnVnICM2NTAwMDIuCgoyMDExLTA1LTEyIDA5OjU5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBBZGQgbmV3IG1pbmlvYmplY3Qgd2VhayByZWYvdW5yZWYgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDExLTA1LTEyIDA5OjU1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IE1pbm9yIGNsZWFudXAgb2YgbGFzdCBjb21taXQKCjIwMTEtMDUtMTEgMTM6MDk6MTkgLTA0MDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgd2VhayByZWZlcmVuY2luZyBmdW5jdGlvbmFsaXR5CgkgIEFQSTogZ3N0X21pbmlfb2JqZWN0X3dlYWtfcmVmKCkKCSAgQVBJOiBnc3RfbWluaV9vYmplY3Rfd2Vha191bnJlZigpCgkgIEFkZCB3ZWFrIHJlZmVyZW5jaW5nIGZ1bmN0aW9uYWxpdHkgdG8gR3N0TWluaU9iamVjdCwgd2hpY2gKCSAgYWxsb3dzIHRvIGdldCBub3RpZmljYXRpb25zIHdoZW4gYW4gbWluaSBvYmplY3QgaXMgZGVzdHJveWVkCgkgIGJ1dCBkb2Vzbid0IGluY3JlYXNlIHRoZSByZWFsIHJlZmNvdW50LiBUaGlzIGlzIG1vc3RseQoJICB1c2VmdWwgZm9yIGJpbmRpbmdzLgoJICBGaXhlcyBidWcgIzYwOTQ3My4KCjIwMTEtMDMtMTkgMTA6Mjg6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBBZGQgc3luYyBtb2RlIHRoYXQgc3luY3MgaW5hY3RpdmUgcGFkcyB0byB0aGUgcnVubmluZyB0aW1lIG9mIHRoZSBhY3RpdmUgcGFkCgkgIEZpeGVzIGJ1ZyAjNjQ1MDE3LgoKMjAxMS0wMy0yMiAxMzoxOTo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBtb2RlIHRvIHN5bmNocm9uaXplIGRlYWN0aXZhdGVkL25vdC1saW5rZWQgc3RyZWFtcyBieSB0aGUgcnVubmluZyB0aW1lCgkgIEZpeGVzIGJ1ZyAjNjQ1MTA3LCAjNjAwNjQ4LgoKMjAxMS0wNC0xOCAxNDoyNjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSBwb3N0IEVPUyBtZXNzYWdlcyBhZnRlciByZWFjaGluZyB0aGUgUExBWUlORyBzdGF0ZQoJICBGaXhlcyBidWcgIzY0Nzc1Ni4KCjIwMTEtMDUtMTAgMTY6Mzc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQWRkIEdzdEVsZW1lbnQ6OnN0YXRlX2NoYW5nZWQgdmZ1bmMKCSAgQVBJOiBHc3RFbGVtZW50OjpzdGF0ZV9jaGFuZ2VkCgkgIFRoaXMgaXMgYWx3YXlzIGNhbGxlZCB3aGVuIHRoZSBzdGF0ZSBvZiBhbiBlbGVtZW50IGhhcyBjaGFuZ2VkIGFuZAoJICBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUtY2hhbmdlZCBtZXNzYWdlIGlzIHBvc3RlZCBvbiB0aGUgYnVzLgoKMjAxMS0wNS0wNiAxNjo0NDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogQWRkIGRvY3MgZm9yIGFsbCB0aGUgbmV3LCBwdWJsaWMgZnVuY3Rpb25zCgoyMDExLTA1LTA2IDE2OjE1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWRkIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgcGFyYW1ldGVycyB0byB0aGUgbmV3LCBwdWJsaWMgZnVuY3Rpb25zCgoyMDExLTA1LTA2IDE2OjAwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBSZW5hbWUgZ2hvc3RwYWQvcHJveHlwYWQgZGVmYXVsdCBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1bGxfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdWxsX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfbGlua19kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9zZXRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX3VubGlua19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2J1ZmZlcmFsbG9jX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoYWluX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoYWluX2xpc3RfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hlY2tnZXRyYW5nZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9ldmVudF9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9maXhhdGVjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2dldGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZ2V0cmFuZ2VfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9xdWVyeV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9xdWVyeV90eXBlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3NldGNhcHNfZGVmYXVsdAoKMjAxMS0wNS0wNiAxNTo1MDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIGdob3N0cGFkOiBNYWtlIGFsbCB0aGUgaW50ZXJuYWwgY2FwcyBmdW5jdGlvbnMgcHVibGljCgkgIFRoaXMgaXMgdXNlZnVsIGlmIGdob3N0cGFkL3Byb3h5cGFkcyBzaG91bGQgYmUgdXNlZCBidXQKCSAgYWRkaXRpb25hbCBjb2RlIHNob3VsZCBiZSBleGVjdXRlZCwgZS5nLiBmb3IgdHJhY2tpbmcKCSAgc2VnbWVudHMgaW4gdGhlIGV2ZW50IGZ1bmN0aW9uLgoKMjAxMS0wNS0wNiAxNToyNTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IE9ubHkgaW1wbGVtZW50IHRoZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGZ1bmN0aW9uIG9uIHByb3h5cGFkcwoJICBnaG9zdHBhZHMgaW5oZXJpdCBpdCBmcm9tIHRoZWlyIHBhcmVudCBjbGFzcy4gQWxzbyBtYWtlIGl0IHRocmVhZHNhZmUuCgoyMDExLTA1LTA2IDE1OjE2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogQVBJOiBFeHBvc2UgZ3N0X3Byb3h5X3BhZF9nZXRfaW50ZXJuYWwoKQoJICBUaGlzIGFsbG93cyB0byBnZXQgdGhlIGludGVybmFsIHBhZCBvZiBnaG9zdHBhZHMgYW5kCgkgIHByb3h5cGFkcyB3aXRob3V0IHVzaW5nIGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpCgkgIGFuZCBpcyBtdWNoIG1vcmUgY29udmVuaWVudC4KCSAgVGhlIGludGVybmFsIHBhZCBvZiBhIGdob3N0cGFkIGlzIHRoZSBwYWQgb2YgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbgoJICB0aGF0IGlzIHVzZWQgdG8gbGluayB0byB0aGUgZ2hvc3RwYWQgdGFyZ2V0LgoKMjAxMS0wNS0wNSAxNzo1NDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogV2hlbiB0cnlpbmcgdG8gZml4YXRlIHRoZSBzaW5rIHN1Z2dlc3Rpb24gcHJlZmVyIGl0cyBzdHJ1Y3R1cmUgb3JkZXIKCjIwMTEtMDUtMDUgMTE6Mjg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTWVyZ2Ugc3RydWN0dXJlcyB3aGVuIGludGVyc2VjdGluZyBpbnN0ZWFkIG9mIGFwcGVuZGluZyB0aGVtCgkgIFRoaXMgcHJldmVudHMgYWRkaW5nIGR1cGxpY2F0ZXMgb3ZlciBhbmQgb3ZlciBhZ2FpbiB0byB0aGUgcmVzdWx0aW5nCgkgIGNhcHMgaWYgdGhleSBhbHJlYWR5IGRlc2NyaWJlIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJlc3VsdC4KCSAgV2hpbGUgdGhpcyBjaGFuZ2VzIGludGVyc2VjdGlvbiBmcm9tIE8obiptKSB0byBPKG5eMiptKSwgaXQgcmVzdWx0cyBpbgoJICBzbWFsbGVyIGNhcHMsIHdoaWNoIGluIHRoZSBlbmQgd2lsbCBkZWNyZWFzZSBmdXJ0aGVyIHByb2Nlc3NpbmcgdGltZXMuCgkgIEZvciBleGFtcGxlIGluIGFuIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCBwaXBlbGluZSwKCSAgd2hlbiBmb3J3YXJkaW5nIHRoZSBkb3duc3RyZWFtIGNhcHMgcHJlZmVyZW5jZSBpbiBiYXNldHJhbnNmb3JtCgkgIChzZWUgZTI2ZGE3MmRlMjVhOTFjM2VhYWQ5ZjdjOGIyZjUzYmE4ODhhMDM5NCkgdGhpcyByZXN1bHRzIGluCgkgIDE2IGluc3RlYWQgb2YgMTkxIGNhcHMgc3RydWN0dXJlcy4KCjIwMTEtMDUtMDQgMTE6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEluIGdldGNhcHMoKSBwcmVmZXIgdGhlIGNhcHMgb3JkZXIgYW5kIGNhcHMgb2YgZG93bnN0cmVhbSBpZiBwb3NzaWJsZQoKMjAxMS0wNS0wMyAxNzoyNjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJlZmVyIGNhcHMgb3JkZXIgZ2l2ZW4gYnkgdGhlIHN1YmNsYXNzIG9mIHRoZSB0ZW1wbGF0ZSBjYXBzIG9yZGVyCgoyMDExLTA0LTIwIDIyOjUyOjM2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBkb24ndCB1bmVzY2FwZSBpbnNpZGUgcXVvdGVzCgkgIEVzY2FwZWQgY2hhcmFjdGVycyBpbnNpZGUgcXVvdGVkIHN0cmluZ3MgYXJlIHN1cHBvc2VkIHRvIGJlIHVuZXNjYXBlZCBieQoJICBkZXNlcmlhbGl6YXRpb24gZnVuY3Rpb25zLCBub3QgYnkgcGFyc2luZyBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgwMjUKCjIwMTEtMDQtMTggMTA6MDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRQoJICBSZXNldHRpbmcgdGhlIHJlc3VsdCBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gcmVzeW5jaW5nIGJlY2F1c2UKCSAgcGFkcyB0aGF0IHByZXZpb3VzbHkgZ290IHRoZSBldmVudCB3aWxsIGJlIHNraXBwZWQgYW5kIHdlCgkgIG5lZWQgdG8gY29uc2lkZXIgdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHB1c2hlcy4KCjIwMTEtMDQtMTggMDk6NTM6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA0LTE4IDA5OjQ5OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDUtMTQgMDk6MzE6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zNCA9PT0KCjIwMTEtMDUtMTQgMDE6MDA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjM0CgoyMDExLTA1LTEzIDA4OjM4OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgdW5pdCB0ZXN0IGFmdGVyIHJlbW92YWwgb2YgdGhlIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBmdW5jdGlvbnMKCjIwMTEtMDUtMDQgMTU6MzE6NTYgKzAzMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBzZXQgZmlyc3QgYnVmZmVyIHRpbWVzdGFtcCB0byAwIGZvciBsaXZlIHNvdXJjZXMKCSAgRG9pbmcgc28gYXZvaWRzIGEgbGFyZ2UgdGltZXN0YW1wIGdhcCBiZXR3ZWVuIGZpcnN0IGFuZCBzZWNvbmQgYnVmZmVyCgkgIGZvciBsaXZlIHNvdXJjZXMgd2hpY2ggdGFrZSB0aW1lIHRvIHN0YXJ0IHVwLgoJICBUaGUgZmlyc3QgYnVmZmVyIG5vdyBoYXMgYSAibGl2ZSIgdGltZXN0YW1wIGJhc2VkIG9uIHRoZSBydW5uaW5nIHRpbWUsCgkgIGFzIG90aGVyIGJ1ZmZlcnMgZG8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkzNjkKCjIwMTEtMDUtMTEgMTk6MTA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiByZW1vdmUgKGRlKXNlcmlhbGl6ZSBmdW5jdGlvbnMKCSAgQWRkIGEgR1R5cGUgdG8gdGhlIG1ldGFkYXRhIHRvIGlkZW50aWZ5IHRoZSBHc3RNZXRhSW5mby4KCSAgV2UgY2FuIHJlbW92ZSB0aGUgKGRlKXNlcmlhbGl6ZSBmdW5jdGlvbnMgZm9yIHRoZSBtZXRhZGF0YSBiZWNhdXNlIHdlIGNhbgoJICByZWdpc3RlciBHVHR5cGUgdHJhbnNmb3JtIGZ1bmN0aW9ucyBiZXR3ZWVuIHZhcmlvdXMgdHlwZXMgdG8gaW1wbGVtZW50CgkgIHNlcmlhbGl6YXRpb24gbGF0ZXIuCgoyMDExLTA1LTExIDE4OjE3OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IG1vcmUgY2xlYW51cHMKCSAgZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZSgpIC0+IF9nc3Rfc3RydWN0dXJlX3R5cGUgdG8gYXZvaWQgbWV0aG9kIGNhbGxzIGZvcgoJICBnZXR0aW5nIHRoZSBHVHlwZSB0aGF0IGluaXRpYWxpemVkIGF0IHRoZSBzdGFydC4KCSAgSGlkZSBzb21lIHN0cnVjdHVyZSBmaWVsZHMgaW4gcHJpdmF0ZSBkYXRhIHNvIHRoYXQgd2UgY2FuIGNoYW5nZSB0aGUKCSAgaW1wbGVtZW50YXRpb24uCgkgIE1vdmUgc3RydWN0dXJlIGVxdWFsaXR5IGNoZWNrIGZyb20gY2Fwcy5jIHRvIHN0cnVjdHVyZS5jIHdoZXJlIGl0IGJlbG9uZ3MuCgoyMDExLTA1LTExIDE4OjA3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSBzb21lIG9ic29sZXRlIGNvZGUuCgkgIERvbid0IHRyeSB0byByZWNvbmZpZ3VyZSB3aGVuIHdlIGRvbid0IGhhdmUgc2luayBjYXBzLgoKMjAxMS0wNS0xMSAxNjo0Njo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRGVyZWZlcmVuY2UgR3N0UXVlcnkqKiBiZWZvcmUgcGFzc2luZyBpdCB0byBHU1RfUVVFUllfVFlQRV9OQU1FCgoyMDExLTA1LTExIDE2OjAzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB1cGRhdGUgdGhlIHN0cnVjdHVyZSB3aGVuIG5lZWRlZAoJICBXaGVuIHdlIGdldCB0aGUgc3RydWN0dXJlIG9mIGFuIGV2ZW50LCBtYWtlIHN1cmUgaXQgYWxzbyBjb250YWlucyB0aGUgZmllbGRzCgkgIHRoYXQgd2Uga2VlcCBpbiBmYXN0IHZhcmlhYmxlcywgdGhpcyB3YXkgd2UgY2FuIGVhc2lseSBzZXJpYWxpemUgYW5kIGRlYnVnCgkgIHRoZSBldmVudHMuIFdlIHdvdWxkIHByb2JhYmx5IGxhdGVyIHNpbXBseSBwcmVmZXIgdG8gcmVnaXN0ZXIgYSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24gdG8gR19UWVBFX1NUUklORyBhbmQgR19UWVBFX0JZVEVBUlJBWSBldGMuLgoKMjAxMS0wNS0xMSAxNjowMTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNsZWFudXBzCgkgIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIHR5cGUgaXMgMCwgdGhlIGluaXQgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZQoJICBpbiB0aGUgYmVnaW5uaW5nLgoKMjAxMS0wNS0xMSAxMjowNDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGNsZWFuIHVwIHNvbWUgbWFjcm9zCgkgIEF2b2lkIGV4ZWN1dGluZyBhIG1ldGhvZCBmb3IgR1NUX1RZUEVfRVZFTlQgYnV0IGluc3RlYWQgdXNlIHRoZSB0eXBlIHZhcmlhYmxlCgkgIGRpcmVjdGx5LiBXZSBjYW4gZG8gdGhpcyBiZWNhdXNlIHdlIHJlZ2lzdGVyIGl0IGJlZm9yZSBhbnl0aGluZyBlbHNlLgoKMjAxMS0wNS0xMSAxNTo0ODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogRml4IEdTVF9ERUJVRyBwYXJhbWV0ZXJzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZm9ybWF0IHN0cmluZwoKMjAxMS0wNS0xMSAxNToyNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHBhZCByZWNvbmZpZ3VyYXRpb24gYWdhaW4KCjIwMTEtMDUtMTEgMTU6MTg6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEZpeCBkZWFkbG9jaywgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgYWxyZWFkeSB0YWtlcyB0aGUgcGFkJ3Mgb2JqZWN0IGxvY2sKCjIwMTEtMDUtMTEgMTE6MDY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBleGFtcGxlIG9mIGhvdyB0byBvcHRpbWl6ZSBldmVudHMKCSAgVXNlIGEgc3RydWN0dXJlIGZvciB0aGUgUW9TIGV2ZW50IGJ5ICdleHRlbmRpbmcnIHRoZSBHc3RFdmVudEltcGwgc3RydWN0dXJlLgoJICBUaGlzIHNob3VsZCBhdm9pZCBhbGxvY2F0aW9uIG9mIEdzdFN0cnVjdHVyZXMgYW5kIGl0cyBjb250ZW50cy4KCjIwMTEtMDUtMTAgMTE6MTE6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGVuc3VyZSB0aHJlYWQgc2FmZXR5IHdoZW4gYWRkaW5nIGEgcGFkCgkgIFRoaXMgc2VlbXMgdG8gYmUgYSByZWdyZXNzaW9uLCBhbmQgd2FzIGNhdXNpbmcgY3Jhc2hlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTg3OAoKMjAxMS0wNS0xMCAxODozNjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWxsb3cgX21ha2Vfd3JpdGFibGUgb24gcXVlcnkgaGFuZGxlcnMKCSAgUGFzcyBhIEdzdFF1ZXJ5ICoqIHRvIHRoZSBxdWVyeSBoYW5kbGVycyBzbyB0aGF0IHRoZXkgY2FuIG1ha2UgdGhlIHF1ZXJ5CgkgIHdyaXRhYmxlIGJlZm9yZSB1c2luZyBhIHNldHRlciBvbiBpdC4KCSAgUG9ydCBjb2RlIHRvIG5ldyBBUEkuCgoyMDExLTA1LTEwIDE2OjQ2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTEwIDE2OjQxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnQ6IHVzZSByZXF1ZXN0X25ld19wYWRfZnVsbCBhcyB0aGUgZGVmYXVsdAoJICBBZGQgR3N0Q2FwcyB0byByZXF1ZXN0X25ld19wYWQgc28gdGhhdCByZXF1ZXN0X25ld19wYWRfZnVsbCBjYW4gYmUgcmVtb3ZlZC4KCSAgRml4IGVsZW1lbnRzLgoKMjAxMS0wNS0xMCAxNjoyMzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0xMCAxNTo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWFrZSBzdXJlIHF1ZXJ5IGlzIHdyaXRhYmxlCgkgIE1ha2Ugc3VyZSB0aGUgUXVlcnkgaXMgd3JpdGFibGUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgc2V0dGVycy4KCjIwMTEtMDUtMTAgMTU6MzM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogSGlkZSBHc3RTdHJ1Y3R1cmUgaW4gcXVlcmllcwoJICBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUgZnJvbSB0aGUgcXVlcnkgQVBJLgoJICBSZW5hbWUgc29tZSBtZXRob2RzIHRvIG1hdGNoIHRoZSBtb3JlIGNvbW1vbiBuYW1lcyBpbiBHT2JqZWN0IGxpYnJhcmllcy4KCSAgQWRkIHNvbWUgbW9yZSB1c2VmdWwgcXVlcnkgQVBJLgoKMjAxMS0wNS0xMCAxMzozNDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBtZXNzYWdlOiBoaWRlIHRoZSBtZXNzYWdlIHN0cnVjdHVyZSBmaWVsZAoJICBNYWtlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgR3N0U3RydWN0dXJlIGJpdHMgb2YgdGhlIG1lc3NhZ2UuCgkgIEFkZCBzb21lIG1vcmUgdXNlZnVsIG1hY3JvcyBsaWtlIHdlIGhhdmUgZm9yIGV2ZW50cy4KCj09PSByZWxlYXNlIDAuMTAuMzMgPT09CgoyMDExLTA1LTEwIDA4OjU1OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzMKCSAgSGlnaGxpZ2h0czoKCSAgLSBuZXcgcGFyc2VyIGJhc2UgY2xhc3M6IEdzdEJhc2VQYXJzZQoJICAtIG5ldyBjb3JlIGVsZW1lbnQ6IGZ1bm5lbAoJICAtIE9TWCBtdWx0aS1hcmNoIGZpeGVzCgkgIC0gbmV3IFFvUyB0eXBlIGZvciBRb1MgZXZlbnRzCgkgIC0gbmV3IHByb2dyZXNzIG1lc3NhZ2UgQVBJIHRvIG5vdGlmeSBhcHBsaWNhdGlvbnMgb2YgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMKCSAgLSBjb3VudGxlc3Mgb3RoZXIgZml4ZXMgYW5kIGltcHJvdmVtZW50cwoKMjAxMS0wNS0xMCAxMjoyOTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGZpeCB0aGUgbWFjcm9zIGEgbGl0dGxlCgoyMDExLTA1LTEwIDExOjUwOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBldmVudDogSGlkZSB0aGUgR3N0U3RydWN0dXJlCgkgIEhpZGUgdGhlIEdzdFN0cnVjdHVyZSBvZiB0aGUgZXZlbnQgaW4gdGhlIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHBhcnQgc28gdGhhdAoJICB3ZSBjYW4gY2hhbmdlIGl0LgoJICBBZGQgbWV0aG9kcyB0byBjaGVjayBhbmQgbWFrZSB0aGUgZXZlbnQgd3JpdGFibGUuCgkgIEFkZCBhIG5ldyBtZXRob2QgdG8gZ2V0IGEgd3JpdGFibGUgR3N0U3RydWN0dXJlIG9mIHRoZSBlbGVtZW50LgoJICBBdm9pZCBkaXJlY3RseSBhY2Npc2luZyB0aGUgZXZlbnQgc3RydWN0dXJlLgoKMjAxMS0wNS0wOSAxODo0ODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogX3Fvc19mdWxsIC0+IF9xb3MKCjIwMTEtMDUtMDkgMTc6NTE6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBzZWdtZW50OiByZW1vdmUgX2Z1bGwgdmVyc2lvbgoJICBSZW5hbWUgdGhlIF9mdWxsIHZlcnNpb25zIG9mIHRoZSBmdW5jdGlvbnMgdG8gdGhlIG5vcm1hbCBmdW5jdGlvbiBuYW1lcy4KCjIwMTEtMDUtMDkgMTY6Mzk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBzZWdtZW50OiByZW1vdmUgYWJzX3JhdGUgZnJvbSBzZWdtZW50IHN0cnVjdHVyZQoJICBSZW1vdmUgdGhlIGFic19yYXRlIGZpZWxkIGZyb20gdGhlIHNlZ21lbnQgc3RydWN0dXJlLCB3ZSBjYW4gdHJpdmlhbGx5IGNvbXB1dGUKCSAgaXQgd2hlbiBuZWVkZWQuCgoyMDExLTA1LTA5IDE2OjIxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBjYXBzOiByZW1vdmUgY2FwcyBmcm9tIGJ1ZmZlcnMgYW5kIHBhZHMKCSAgUmVtb3ZlIHRoZSBHc3RDYXBzIGZyb20gYnVmZmVycyBhbmQgcGFkcy4gV2Ugbm93IHVzZSBDQVBTIGV2ZW50cyB0byBuZWdvdGlhdGUKCSAgZm9ybWF0cyBiZXR3ZWVuIGVsZW1lbnQuCgoyMDExLTA1LTA5IDE1OjA2OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBDQVBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCB0byBjb25maWd1cmUgYmFzZXRyYW5zZm9ybS4KCSAgUmVtb3ZlIGZvcmNlX2FsbG9jIGhhY2ssIHdlIGRvbid0IG5lZWQgdGhpcyBpbiAwLjExIHdpdGggbmV3IHVwc3RyZWFtCgkgIG5lZ290aWF0aW9uLgoJICBBdm9pZCBnZXR0aW5nIHNvbWUgcGFkIGNhcHMuCgoyMDExLTA1LTA5IDE1OjA2OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0wNS0wOCAxMTowMjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgc3ltYm9scwoKMjAxMS0wNS0wOCAxMTowMTo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlcwoKMjAxMS0wNS0wOSAxMDo1NDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogYXZvaWQgdXNpbmcgcGFkIGNhcHMKCSAgQXZvaWQgZGlyZWN0bHkgYWNjZXNzaW5nIHRoZSBwYWQgY2FwcywgdXNlIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGluc3RlYWQuCgoyMDExLTA1LTA4IDEzOjE0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0wOCAxMzowNzoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBDQVBTIGV2ZW50IGluc3RlYWQgb2Ygc2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0wNS0wOCAxMjo0NjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBiYXNlOiBhdm9pZCB1c2luZyBidWZmZXIgY2FwcwoJICBDb21tZW50IGFsbCBjb2RlIHVzaW5nIGJ1ZmZlciBjYXBzLgoJICBSZXdvcmsgY2Fwc2ZpbHRlciBjb2RlIGEgbGl0dGxlLgoJICBGaXggc29tZSB1bml0IHRlc3RzCgoyMDExLTA1LTA4IDEyOjQzOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgY2FwcyBldmVudCBoYW5kbGluZwoJICBGaXggcmVwbGFjZSBvZiBjYXBzIGV2ZW50cyB3aGVuIGxpbmtpbmc6IHdlIG5lZWQgdG8gdW5yZWYgdGhlIG9sZCBvbmVzLgoJICBNYWtlIHN1cmUgd2UgcGFzcyBlcnJvciB2YWx1ZXMgYXJvdW5kLgoJICBNb3ZlIGJhY2t3YXJkIGNvbXBhdCBjb2RlIGludG8gdGhlIGRlZmF1bHQgaGFuZGxlciBmb3Igbm93LgoKMjAxMS0wNS0wOCAxMjozODowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZG9uJ3QgcmVmIHRoZSBjYXBzCgkgIFVzZSBhIGRpZmZlcmVudCB3YXkgb2YgZ2V0dGluZyB0aGUgY2FwcyBmcm9tIHRoZSBjYXBzIGV2ZW50IHNvIHRoYXQgbm8KCSAgcmVmY291bnRpbmcgaGFwcGVucy4KCjIwMTEtMDUtMDggMTI6Mzc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYXZvaWQgdXNpbmcgYnVmZmVyIGNhcHMKCjIwMTEtMDUtMDYgMjM6NDA6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBwb3N0IGxvYWRzIG9mIGVtcHR5IHRhZ2xpc3RzCgkgIE9ubHkgcG9zdCBiaXRyYXRlIHVwZGF0ZXMgaWYgdGhlcmUncyBzb21ldGhpbmcgdG8gcG9zdCwgZG9uJ3QKCSAgcG9zdCBlbXB0eSB0YWdsaXN0cyBpZiBub3RoaW5nIGNoYW5nZWQuCgoyMDExLTA1LTA2IDE5OjA0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBhZDogYXZvaWQgdXNpbmcgdGhlIG9sZCBHU1RfUEFEX0NBUFMKCSAgRG9uJ3QgdXNlIEdTVF9QQURfQ0FQUyBidXQgaW5zdGVhZCB1c2UgdGhlIG5ldyBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKQoJICBtZXRob2QuCgkgIEF2b2lkIHNldHRpbmcgY2FwcyBvbiBidWZmZXJzLgoKMjAxMS0wNS0wNiAxOTowMzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCAyIG5ldyBjYXBzIG1ldGhvZHMKCSAgQWRkIG1ldGhvZCB0byBnZXQgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGNhcHMgb24gdGhlIHBhZC4KCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbmZpZ3VyZWQgb24gYSBwYWQuCgoyMDExLTA1LTA2IDE3OjU5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgcGFkOiBpbXBsZW1lbnQgZml4ZWQgY2FwcyB3aXRoIGFuIG9iamVjdCBmbGFnCgkgIEltcGxlbWVudCBmaXhlZCBjYXBzIHdpdGggYW4gb2JqZWN0IGZsYWcgaW5zdGVhZCBvZiBhIGN1c3RvbSBnZXRjYXBzIGZ1bmN0aW9uLgoKMjAxMS0wNS0wNiAxNzozMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB1c2UgYnVmZmVyIGNhcHMgZm9yIG5lZ290aWF0aW9uCgkgIERvbid0IHVzZSB0aGUgYnVmZmVyIGNhcHMgZm9yIG5lZ290aWF0aW9uIGFueW1vcmUgYnV0IHVzZSB0aGUgQ0FQUyBldmVudHMuCgkgIE1ha2UgdGhlIF9zZXRfY2FwcyBtZXRob2QgcHJvZHVjZSB0aGUgQ0FQUyBldmVudCwgYWRkIHNvbWUgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSBjb2RlIHRvIHRyaWdnZXIgdGhlIHNldGNhcHMgZnVuY3Rpb25zIG9uIHNyYyBhbmQgc2lua3BhZHMuCgkgIFJlbW92ZSBhbGwgbmVnb3RpYXRpb24gY29kZSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbnMuCgkgIERvbid0IHVzZSB0aGUgR1NUX1BBRF9DQVBTIHZhcmlhYmxlIGFueW1vcmUgdG8gc3RvcmUgdGhlIGNhcHMgYnV0IHJldHJpZXZlIHRoZQoJICBjYXBzIGZyb20gdGhlIHN0aWNreSBldmVudCBhcnJheS4KCjIwMTEtMDUtMDYgMTY6MTQ6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogZG9uJ3QgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGxldCB0aGUgbm9ybWFsIGNvZGUgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxMTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGhhbmRsZSBOVUxMIHBhZHMgaW4gc29tZSBjYXNlcwoKMjAxMS0wNS0wNiAxNjoxMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBsZXQgdGhlIHBhZCBjbGVhbiB1cCBpbiBhY3RpdmF0ZQoKMjAxMS0wNS0wNiAxNTo1NTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IG1lc3Mgd2l0aCBwYWQgY2FwcyBpbiBhY3RpdmF0ZQoJICBXaGVuIGRlYWN0aXZhdGluZyBhIHBhZCwgbGV0IHRoZSBwYWQgZGVjaWRlIHdoYXQgZmllbGRzIHRvIGNsZWFyLgoKMjAxMS0wNS0wNiAxNTo1MToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogb25seSBhbGxvdyBmaXhlZCBjYXBzIGluIGNhcHMgZXZlbnQKCjIwMTEtMDUtMDYgMTM6MDE6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2V2ZW50X25ld19yZWNvbmZpZ3VyZSgpCgoyMDExLTA1LTA2IDEyOjIzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTA2IDEyOjE5OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogcmVuYW1lIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgkgIFJlbmFtZSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKSB0byBnc3RfZWxlbWVudF9sb3N0X3N0YXRlKCkgYW5kCgkgIHJlbW92ZSB0aGUgb2xkIG1ldGhvZCBuYW1lLgoKMjAxMS0wNS0wNiAxMjowOTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGVhbiB1cCB0aGUgLmggZmlsZSBhIGJpdAoKMjAxMS0wNS0wNiAxMToxNDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogaW1wbGVtZW50IG1vcmUgc3RpY2t5IGV2ZW50cwoJICBSZW1vdmUgdGhlIGNvbnRleHQgYWdhaW4sIGFkZGluZyBhbiBleHRyYSBsYXllciBvZiByZWZjb3VudGluZyBhbmQgb2JqZWN0CgkgIGNyZWF0aW9uIHRvIG1hbmFnZSBhbiBhcnJheSBpcyB0b28gY29tcGxpY2F0ZWQgYW5kIGluZWZmaWNpZW50LiBVc2UgYSBzaW1wbGUKCSAgYXJyYXkgYWdhaW4uCgkgIEFsc28gaW1wbGVtZW50IGV2ZW50IHVwZGF0ZXMgd2hlbiBjYWxsaW5nIGdzdF9wYWRfY2hhaW4oKSBhbmQKCSAgZ3N0X2V2ZW50X3NlbmRfZXZlbnQoKSBkaXJlY3RseS4KCjIwMTEtMDUtMDYgMTE6MzU6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGF2b2lkIHJlZGVmaW5pdGlvbiBvZiBzeW1ib2xzIHdoZW4gZGVidWdnaW5nIGlzIG9mZgoJICBUaGUgcmVmYWN0b3Jpbmcgb2YgZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKSBub3cgY2F1c2VzIGJ1aWxkIGZhaWx1cmUgd2hlbgoJICBkZWJ1Zy1sb2dnaW5nIGlzIHR1cm5lZCBvZmYuIEp1c3QgbW92ZSBpdCB0byB0aGUgY29uZGl0aW9uYWwgcGFydCBvZiB0aGUgaGVhZGVyLgoKMjAxMS0wNS0wNiAxMTowMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogcmVvcmRlciBldmVudHMKCSAgUmVvcmRlciB0aGUgc3RpY2t5IGV2ZW50cyBzbyB0aGF0IHRoZXkgYXJlIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSBwdXNoZWQuCgoyMDExLTA1LTA1IDE5OjI0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IHNvbWUgbW9yZQoJICBJZiB3ZSBnZXQgYSBjb250ZXh0IGluIHRoZSBjaGFpbiBmdW5jdGlvbnMgd2UgYWx3YXlzIG5lZWQgdG8gZG8gYSBmdWxsIHVwZGF0ZSBvZgoJICB0aGUgY29udGV4dCBvbiB0aGUgcGVlciBwYWQuCgoyMDExLTA1LTA1IDE4OjU2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgY29udGV4dCBwYXNzaW5nIHNvbWUgbW9yZQoJICBQYXNzIHRoZSBjb250ZXh0IGRvd25zdHJlYW0gd2hlbiBpdCBnb3QgdXBkYXRlZC4KCSAgSGF2ZSB0d28gd2F5cyBvZiBpbmZvcm1pbmcgZG93bnN0cmVhbSBvZiBldmVudHMsIGRvIGEgZnVsbCBjb250ZXh0IHVwZGF0ZSB3aGVuCgkgIHRoZSBDT05URVhUX1BFTkRJTkcgZmxhZyBpcyBzZXQgYW5kIHNpbXBseSBmb3J3YXJkIHRoZSBldmVudCBvdGhlcndpc2UuCgkgIFNldCB0aGUgQ09OVEVOVF9QRU5ESU5HIGZsYWcgd2hlbiBsaW5raW5nIHBhZHMuCgkgIFdlIGRvbid0IG5lZWQgdG8gb2xkIGNvbnRleHQgYW55bW9yZSB3aGVuIHVwZGF0aW5nIHRoZSBjb250ZXh0IG9mIGEgcGFkLgoKMjAxMS0wNS0wNSAxODoyMToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgZ2V0IHRoZSBwYXJlbnQgdHdpY2UgaW4gdGhlIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDUtMDUgMTY6NTk6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByZWZjb3VudCBsZWFrIG9mIHRoZSBwYXJlbnQgaW4gdGhlIGRlZmF1bHQgZXZlbnQgZGlzcGF0Y2ggZnVuY3Rpb24KCjIwMTEtMDUtMDUgMTY6MzI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbXByb3ZlIHBhc3NpbmcgYXJvdW5kIHRoZSBjb250ZXh0CgkgIEltcHJvdmUgcGFzc2luZyBhcm91bmQgdGhlIGNvbnRleHQsIG9ubHkgc2VuZCB0aGUgY29udGV4dCB0byB0aGUgcGVlciBlbGVtZW50CgkgIHdoZW4gdGhlIENPTlRFWFRfUEVORElORyBmbGFnIGlzIHNldC4KCjIwMTEtMDUtMDUgMTY6MDU6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0cwoKMjAxMS0wMy0xNyAxMTo1Mjo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNyAxMTozMjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jcy9kZWY6IEFkZCBuZXcgc3ltYm9scywgcmVtb3ZlIG9sZCBzeW1ib2xzCgoyMDExLTAzLTE3IDExOjMyOjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IFVwZGF0ZSBldmVyeXRoaW5nIGZvciB0aGUgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNyAxMTozMTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBVcGRhdGUgZXZlcnl0aGluZyBmb3IgdGhlIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTYgMTA6NTA6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGl0ZXJhdG9yOiBSZWZhY3RvciBHc3RJdGVyYXRvciB0byBiZSBtb3JlIGJpbmRpbmcgZnJpZW5kbHkgYW5kIGhhdmUgc2FuZXIgcmVmY291bnRpbmcKCSAgRml4ZXMgYnVnICM2Mzg5ODcuCgoyMDExLTAxLTA4IDEyOjI3OjU1IC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IHJlZ2lzdGVyIGFzIGEgYm94ZWQgdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjE0OjQwIC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogdXNlIEdTbGljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjEyOjQxIC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBmcmVlIHN0cnVjdCBpbiBnc3RfaXRlcmF0b3JfZnJlZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjA3OjU1IC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IHN0b3JlIHNpemUgaW4gdGhlIHN0cnVjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTA1LTA1IDExOjI4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE1lcmdlIHN0cnVjdHVyZXMgd2hlbiBpbnRlcnNlY3RpbmcgaW5zdGVhZCBvZiBhcHBlbmRpbmcgdGhlbQoJICBUaGlzIHByZXZlbnRzIGFkZGluZyBkdXBsaWNhdGVzIG92ZXIgYW5kIG92ZXIgYWdhaW4gdG8gdGhlIHJlc3VsdGluZwoJICBjYXBzIGlmIHRoZXkgYWxyZWFkeSBkZXNjcmliZSB0aGUgbmV3IGludGVyc2VjdGlvbiByZXN1bHQuCgkgIFdoaWxlIHRoaXMgY2hhbmdlcyBpbnRlcnNlY3Rpb24gZnJvbSBPKG4qbSkgdG8gTyhuXjIqbSksIGl0IHJlc3VsdHMgaW4KCSAgc21hbGxlciBjYXBzLCB3aGljaCBpbiB0aGUgZW5kIHdpbGwgZGVjcmVhc2UgZnVydGhlciBwcm9jZXNzaW5nIHRpbWVzLgoJICBGb3IgZXhhbXBsZSBpbiBhbiBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgcGlwZWxpbmUsCgkgIHdoZW4gZm9yd2FyZGluZyB0aGUgZG93bnN0cmVhbSBjYXBzIHByZWZlcmVuY2UgaW4gYmFzZXRyYW5zZm9ybQoJICAoc2VlIGUyNmRhNzJkZTI1YTkxYzNlYWFkOWY3YzhiMmY1M2JhODg4YTAzOTQpIHRoaXMgcmVzdWx0cyBpbgoJICAxNiBpbnN0ZWFkIG9mIDE5MSBjYXBzIHN0cnVjdHVyZXMuCgoyMDExLTA1LTA0IDExOjI5OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbiBnZXRjYXBzKCkgcHJlZmVyIHRoZSBjYXBzIG9yZGVyIGFuZCBjYXBzIG9mIGRvd25zdHJlYW0gaWYgcG9zc2libGUKCjIwMTEtMDUtMDMgMTc6MjY6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByZWZlciBjYXBzIG9yZGVyIGdpdmVuIGJ5IHRoZSBzdWJjbGFzcyBvZiB0aGUgdGVtcGxhdGUgY2FwcyBvcmRlcgoKMjAxMS0wNS0wMyAxNDoxMzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogVXNlIHRoZSByZWNvbmZpZ3VyZSBmbGFnIG9uIHRoZSBwYWQgaW5zdGVhZCBvZiB0aGUgZXZlbnQKCjIwMTEtMDUtMDMgMTQ6MTE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBuZXcgcmVjb25maWd1cmUgZmxhZyBvbiB0aGUgcGFkcyBpbnN0ZWFkIG9mIHRoZSByZWNvbmZpZ3VyZSBldmVudAoKMjAxMS0wNS0wMyAxMzo0Mjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBLZWVwIHRyYWNrIG9mIHJlY29uZmlndXJlIGV2ZW50cyBhbmQgdGhlIHBhZC1uZWVkcy1yZWNvbmZpZ3VyaW5nIHN0YXR1cwoKMjAxMS0wNS0wMyAxMzowNTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBSZW5hbWUgcmVuZWdvdGlhdGUgZXZlbnQgdG8gcmVjb25maWd1cmUKCSAgSW4gMC4xMSB0aGlzIGV2ZW50IHdpbGwgYWxzbyBkbyByZWNvbmZpZ3VyYXRpb24gb2YgYnVmZmVyIHBvb2xzCgkgIGFuZCBzaW1pbGFyIHRoaW5ncywgbm90IGp1c3QgcmVuZWdvdGlhdGlvbi4KCjIwMTAtMDMtMTcgMjE6MjQ6NTUgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZW5kIHJlbmVnb3RpYXRlIGV2ZW50IG9uIGxpbmsKCjIwMTAtMDMtMTcgMjE6MTc6MTAgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEcm9wIHJlbmVnb3RpYXRlIGV2ZW50IGlmIHRoZXJlIGlzIG5vIGdldGNhcHMgZnVuY3Rpb24gb24gYSBzaW5rIHBhZAoJICBJZiB0aGVyZSBpcyBubyBjdXN0b20gZ2V0Y2FwcyBmdW5jdGlvbiBvbiBhIHNpbmsgcGFkLCB0aGVuIGNoYW5nZXMgaW4KCSAgZG93bnN0cmVhbSBjYXBzIHdpbGwgbmV2ZXIgYmUgcHJvcGFnYXRlZCwgc28gdGhlcmUgaXMgbm8gcG9pbnQgaW4gdHJ5aW5nIHRvCgkgIHJlbmVnb3RpYXRlIHRoZSBjYXBhYmlsaXRpZXMuCgoyMDExLTA0LTI2IDE2OjM5OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IHJlbmVnb3RpYXRlIG9uY2UgYWZ0ZXIgcmVjZWl2aW5nIGEgcmVuZWdvdGlhdGUgZXZlbnQKCSAgQWxzbyBtYWtlIHRoaXMgdGhyZWFkc2FmZS4KCjIwMTEtMDEtMTcgMTQ6MTM6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgkgIE1ha2VzIGJhc2VzcmMgaGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQgYnkgdXNpbmcgYQoJICByZW5lZ290aWF0ZSBmbGFnLgoKMjAxMS0wNC0yNiAxNjo0ODowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxzbyBjYWxsIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSgpIG9uIHJlbmVnb3RpYXRlIGV2ZW50cwoKMjAxMS0wMS0xNyAxNDoxMzo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCSAgTGV0IGJhc2V0cmFuc2Zvcm0gcHVzaCBhIHJlbmVnb3RpYXRlIGV2ZW50IHVwc3RyZWFtCgkgIHdoZW4gaXQgZ2V0cyBhIG5ldyBzdWdnZXN0aW9uCgoyMDExLTAxLTE3IDExOjUxOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZGluZyBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCjIwMTEtMDUtMDUgMTM6MTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcGFzcyB0aGUgY29udGV4dCBhcm91bmQKCSAgUGFzcyB0aGUgY29udGV4dCBmcm9tIHNyY3BhZCB0byBzaW5rcGFkIGJlZm9yZSBkYXRhZmxvdyB3aGVuIHNvbWV0aGluZwoJICBjaGFuZ2VkLgoKMjAxMS0wNS0wNSAxMToxNzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHVwZGF0ZSB0aGUgY29udGV4dCBsYXp5bHkKCjIwMTEtMDUtMDUgMTE6MTY6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCB0aGUgR1R5cGUgZWFybHkKCjIwMTEtMDUtMDUgMTE6MTY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDUtMDUgMTA6NDA6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBhZGQgZm9yZWFjaCBmdW5jdGlvbgoJICBBZGQgYSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYWxsIHN0b3JlZCBldmVudHMuCgoyMDExLTA1LTA1IDEwOjM3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgImNvbnRleHQ6IHVzZSBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDllZjEzNDZiMWZhMGJkMmJiNDJjZDk5MWE1MmZmMzA4YTcyOGJkYjYuCgkgIFdheSB0byBtdWNoIGZvciBvbmUgY29tbWl0IGFuZCBJJ20gbm90IHN1cmUgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoZSBwYWQgY2FwcwoJICBqdXN0IGxpa2UgdGhhdC4gSXQncyBuaWNlIHRvIGhhdmUgdGhlIGJ1ZmZlciBhbmQgaXRzIHR5cGUgaW4gb253IG5pY2UgYnVuZGxlCgkgIHdpdGhvdXQgaGF2aW5nIHRvIGRyYWcgdGhlIGNvbXBsZXRlIGNvbnRleHQgd2l0aCBpdC4KCjIwMTEtMDQtMjAgMjI6NTI6MzYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IGRvbid0IHVuZXNjYXBlIGluc2lkZSBxdW90ZXMKCSAgRXNjYXBlZCBjaGFyYWN0ZXJzIGluc2lkZSBxdW90ZWQgc3RyaW5ncyBhcmUgc3VwcG9zZWQgdG8gYmUgdW5lc2NhcGVkIGJ5CgkgIGRlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMsIG5vdCBieSBwYXJzaW5nIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODAyNQoKMjAxMS0wNC0xOCAxNDoyNjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSBwb3N0IEVPUyBtZXNzYWdlcyBhZnRlciByZWFjaGluZyB0aGUgUExBWUlORyBzdGF0ZQoJICBGaXhlcyBidWcgIzY0Nzc1Ni4KCjIwMTEtMDQtMTggMTA6MDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRQoJICBSZXNldHRpbmcgdGhlIHJlc3VsdCBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gcmVzeW5jaW5nIGJlY2F1c2UKCSAgcGFkcyB0aGF0IHByZXZpb3VzbHkgZ290IHRoZSBldmVudCB3aWxsIGJlIHNraXBwZWQgYW5kIHdlCgkgIG5lZWQgdG8gY29uc2lkZXIgdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHB1c2hlcy4KCjIwMTEtMDQtMTggMDk6NTM6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA0LTE4IDA5OjQ5OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDUtMDUgMTI6Mjg6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlbW92ZSBub3dhZGF5cyB1bnVzZWQgYW5kIHVuaW5pdGlhbGl6ZWQgc2V0Y2FwcyB2YXJpYWJsZQoKMjAxMS0wNS0wNSAxMjoyNzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTA1LTA0IDE4OjU5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBjb250ZXh0OiB1c2UgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2FwcwoJICBQdXQgdGhlIHNyY3BhZCBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzLiBUaGlzIGFsbG93cyB1cyB0byBhc3NvY2lhdGUKCSAgYWxsIHRoZSByZWxldmFudCBpbmZvIGNvbnRhaW5lZCBpbiBldmVudHMgd2l0aCBhIGJ1ZmZlci4KCjIwMTEtMDUtMDQgMTU6Mjk6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5nIGluIG5ldyBtaW5pb2JqZWN0IHRlc3QKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogSW4gZnVuY3Rpb24g4oCYdGVzdF9kdXBfbnVsbF9taW5pX29iamVjdOKAmToKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzo0NTk6Nzogd2FybmluZzogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKCjIwMTEtMDUtMDQgMTU6NTM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdXNlIHRoZSBjb250ZXh0IHRvIHN0b3JlIHN0aWNreSBldmVudHMKCSAgU3RvcmUgdGhlIHN0aWNreSBldmVudHMgaW4gdGhlIGNvbnRleHQgb2YgYSBzb3VyY2UgcGFkLgoKMjAxMS0wNS0wNCAxNToyMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGNvbnRleHQ6IGFkZCBoZWxwZXIgb2JqZWN0IHRvIG1hbmFnZSBldmVudHMKCSAgQWRkIGEgaGVscGVyIG9iamVjdCB0byBtYW5hZ2UgdGhlIGV2ZW50cyB0aGF0IGRlZmluZSB0aGUgY29udGV4dCBvZiBhIGJ1ZmZlciBhbmQKCSAgYSBzdHJlYW0uCgoyMDExLTA1LTA0IDExOjA3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA1LTA0IDExOjAzOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBhZGQgbmV3IENBUFMgZXZlbnQKCSAgQWRkIGEgbmV3IENBUFMgZXZlbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gbmVnb3RpYXRlIGRvd25zdHJlYW0gZWxlbWVudHMuIEl0J2xsCgkgIGFsc28gc3RpY2sgb24gcGFkIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGUgR3N0Q2FwcyBmaWVsZCBvbiBwYWRzIGFuZCB0aGUKCSAgR3N0Q2FwcyBmaWVsZCBvbiBidWZmZXJzLgoKMjAxMS0wNS0wMyAxODo1ODoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3JlIHN0aWNreSBldmVudHMgd29yawoJICBDb3B5IHRoZSBzdGlja3kgZXZlbnRzIGZyb20gdGhlIHNyY3BhZCB0byB0aGUgc2lua3BhZCB3aGVuIGxpbmtpbmcgcGFkcy4gU2V0IHRoZQoJICBTVElDS1lfUEVORElORyBmbGFnIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzdGlja3kgZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGJlZm9yZQoJICBwdXNoaW5nIHRoZSBuZXh0IGJ1ZmZlciB0byB0aGUgZWxlbWVudC4KCjIwMTEtMDUtMDMgMTY6MTE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBpbXByb3ZlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTAyIDE4OjQ1OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jdW1lbnQKCjIwMTEtMDUtMDIgMTE6MzA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogRml4IGR1cF9taW5pX29iamVjdCBmdW5jdGlvbiB0byBoYW5kbGUgTlVMTCBndmFsdWVzCgkgIGdfdmFsdWVfZHVwX29iamVjdCBoYW5kbGVzIGd2YWx1ZXMgdGhhdCBjb250YWluIE5VTEwgcG9pbnRlcnMsCgkgIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3Qgc2hvdWxkIGRvIHRoZSBzYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5MTk1CgoyMDExLTA1LTAzIDEzOjU1OjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBpdCBpdHMgJVRSVUUgKGNvbnN0YW50KQoJICBBcyBzcG90dGVkIGJ5IFRpbS4KCjIwMTEtMDUtMDIgMTY6MjI6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBkb2NzOiBmaXggY29weSduJ3Bhc3RlIGRvYyBoZWFkZXIgbWlzdGFrZQoKMjAxMS0wNS0wMiAxNjoyMDoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgZG9jczogYWRkIHR3byB0cml2aWFsIGRvYyBibG9icwoKMjAxMS0wNS0wMiAxNjowMzoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3MKCjIwMTEtMDUtMDIgMTY6MDA6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIEdzdERQUGFja2V0aXplcgoKMjAxMS0wNS0wMiAxNTo1Mjo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgZG9jczogaW1wcm92ZSB0aGUgc3ludGF4IGZvciB0aGUgY2Fwc2ludGVyc2VjdG1vZGUgZG9jcwoKMjAxMS0wNS0wMiAxNTo0ODowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogZml4dXAgYnJva2VuIHhyZWYKCjIwMTEtMDUtMDIgMTU6NDY6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgYXBpIHRvIC1zZWN0aW9uLnR4dAoKMjAxMS0wNS0wMiAxNTozNTo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGRvY3M6IGZpeCBndGstZG9jIHN5bnRheAoKMjAxMS0wNS0wMiAxNTozMDoxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZG9jczogZG9uJ3QgZHVwbGljYXRlIGluZm8gdGhhdCB3ZSB0YWtlIGZyb20gZWxlbWVudC1kZXRhaWxzCgoyMDExLTA0LTI4IDE1OjM3OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgbm9uIGV4aXN0aW5nIHN5bWJvbAoKMjAxMS0wNC0yOCAxNTowNToyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IHdlIGRvbid0IG5lZWQgdG8gZG9jdW1lbnQgcHJpdmF0ZSBtZW1iZXJzIGluIG9wYXF1ZSBzdHJ1Y3RzCgoyMDExLTA0LTI5IDEzOjQzOjA3ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJICBjb3JlOiBzdG9yZSBwcmVzZXRzLCByZWdpc3RyeSBhbmQgcGx1Z2lucyBpbiBYREcgZGlyZWN0b3JpZXMuCgkgIFByZXNldHMgYW5kIHBsdWdpbnMgbW92ZWQgdG8gJFhER19EQVRBX0hPTUUvZ3N0cmVhbWVyLTAuMTEvCgkgIHJvb3QgZGlyZWN0b3J5LiBSZWdpc3RyeSBtb3ZlZCB0byAkWERHX0NBQ0hFX0hPTUUvZ3N0cmVhbWVyLTAuMTEvLgoJICBGaXhlcyBidWcgIzUxODU5Ny4KCjIwMTEtMDUtMDMgMDk6NDE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBnc3QvZ3N0YnVzLmMKCjIwMTEtMDUtMDIgMTg6MzQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBldmVudDogYWRkIHN0aWNreSBmbGFncyB0byBldmVudHMKCSAgQWRkIHRoZSBzdGlja3kgZmxhZyB0byBldmVudHMgYW5kIGEgc3RpY2t5IGluZGV4LgoJICBLZWVwIHN0aWNreSBldmVudHMgaW4gYW4gYXJyYXkgb24gZWFjaCBwYWQuCgkgIFJlbW92ZSBHU1RfRVZFTlRfU1JDKCksIGl0IGlzIGNhdXNpbmcgcmVmY3ljbGVzIHdpdGggc3RpY2t5IGV2ZW50cywgd2FzIG5vdCB1c2VkCgkgIGFuZCBpcyBub3QgdmVyeSBpbnRlcmVzdGluZyBhbnl3YXkuCgoyMDExLTA1LTAyIDExOjA5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogaW1wcm92ZSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgcXVlcnkKCSAgVXNlIHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgdGhvc2UgdXNlZCBmb3IgdGhlIGJ1ZmZlcnBvb2wuIE1ha2Ugc3VyZSB3ZSBjYW4gcGFzcwoJICBhIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIGJ1ZmZlcnMgbmVlZGVkLgoKMjAxMS0wNC0zMCAxNjo1NTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0YXRpY2VsZW1lbnRzLnhtbDoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuNCBwcmUtcmVsZWFzZQoKMjAxMS0wNC0yOSAyMzo0NDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBwbHVnaW5mZWF0dXJlOiBpbmNsdWRlIHBsdWdpbi5oIGluIGhlYWRlciB3aGVyZSB3ZSB1c2UgYSBHc3RQbHVnaW4gcG9pbnRlcgoJICBTaG91bGQgZml4IGlzc3VlIHdpdGggZ3N0cmVhbWVybW0gYnVpbGQgd2hlcmUgPGdzdC9nc3RpbmRleC5oPiBpcyBpbmNsdWRlZAoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIGdzdC9nc3QuaC4KCjIwMTEtMDQtMjkgMTM6NDI6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBkbyBwYWRfYWxsb2MgZmFsbGJhY2sgY29ycmVjdGx5CgoyMDExLTA0LTI5IDEzOjI2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIHBhZF9hbGxvYywgdGhpcyBjYW4gbm93IGJlIGRvbmUgYmV0dGVyCgkgIFJlbW92ZSBwYWRfYWxsb2MgYW5kIGFsbCByZWZlcmVuY2VzLiBUaGlzIGNhbiBub3cgYmUgZG9uZSBtb3JlIGVmZmljaWVudGx5IGFuZAoJICBtb3JlIGZsZXhpYmxlIHdpdGggdGhlIEFMTE9DQVRJT04gcXVlcnkgYW5kIHRoZSBidWZmZXJwb29sIG9iamVjdHMuIFRoZXJlIGlzIG5vCgkgIHJldmVyc2UgbmVnb3RpYXRpb24geWV0IGJ1dCB0aGF0IHdpbGwgYmUgZG9uZSB3aXRoIGFuIGV2ZW50IGxhdGVyLgoKMjAxMS0wNC0yOSAxMjoxMTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogaW5pdCB0aGUgQUxMT0NBVElPTiBxdWVyeSBjb3JyZWN0bHkKCSAgRG9uJ3QgYWRkIHRoZSAncG9vbCcgcHJvcGVydHkgaW5zdGVhZCBvZiBhZGRpbmcgaXQgd2l0aCBhIE5VTEwgYXJyYXkuCgoyMDExLTA0LTI5IDEwOjUwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGZpeCBwYXJzaW5nIG9mIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5CgkgIEFkZCBtZXRob2RzIGZvciBwYXJzaW5nIHRoZSBjYXBzIGFuZCB0aGUgbmVlZF9wb29sIGJvb2xlYW4uCgoyMDExLTA0LTI4IDE2OjIwOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGZpeCB0eXBvIGluIG1ldGhvZCBuYW1lIGFuZCBpbXByb3ZlIGRvY3MKCSAgRml4ZWQgdHlwbyBpbiBtZXRob2QgbmFtZSBhbmQgYWRkL2ltcHJvdmUgdGhlIGRvY3MuCgoyMDExLTA0LTI4IDE1OjMxOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYWxsb2NhdGlvbi50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIHF1ZXJ5IHRvIHJlcXVlc3QgcG9vbCBhbmQgY29uZmlndXJhdGlvbgoJICBBZGQgYSBxdWVyeSB0byByZXF1ZXN0IGFsbG9jYXRpb24gcGFyYW1ldGVycyBhbmQgb3B0aW9uYWxseSBhIGJ1ZmZlcnBvb2wgYXMKCSAgd2VsbC4gVGhpcyBzaG91bGQgYWxsb3cgZWxlbWVudHMgdG8gZGlzY292ZXIgZG93bnN0cmVhbSBjYXBhYmlsaXRpZXMgYW5kIGFsc28KCSAgdXNlIHRoZSBkb3duc3RyZWFtIGFsbG9jYXRvcnMuCgoyMDExLTA0LTI3IDE4OjEwOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0aW1lb3V0IGhhbmRsaW5nCgoyMDExLTA0LTI3IDE3OjU2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBzb21lIGRvY3MKCjIwMTEtMDQtMjcgMTc6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IGltcHJvdmUgYXJndW1lbnQgbmFtZXMgb2Ygc2VnbWVudHMKCjIwMTEtMDQtMjcgMTE6NDk6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHBvL2JnLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuMyBwcmUtcmVsZWFzZQoKMjAxMS0wNC0yNiAxNTo0Mjo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgUmV2ZXJ0IGxvY2tmcmVlIEdzdEJ1cyBmb3IgdGhlIHJlbGVhc2UKCSAgRHJvcCBpbiBvbGQgR3N0QnVzIGNvZGUgZm9yIHRoZSByZWxlYXNlIHRvIHBsYXkgaXQgc2FmZSwgc2luY2UKCSAgcmVncmVzc2lvbnMgdGhhdCBhcmUgYXBwYXJlbnRseSBoYXJkIHRvIHRyYWNrIGRvd24gYW5kIHJlcHJvZHVjZQoJICBoYXZlIGJlZW4gcmVwb3J0ZWQgKG9uIHdpbmRvd3MvT1NYIG1vc3RseSkgYWdhaW5zdCB0aGUgbG9ja2ZyZWUKCSAgdmVyc2lvbiwgYW5kIG1vcmUgdGltZSBpcyBuZWVkZWQgdG8gZml4IHRoZW0uCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDMzOTFhODk3MDAxZDM1ZDFkMjkwZjI3ZGQxMmU5OGE4YjcyOWZiNC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0M2NkYmMxN2U2Zjk0NGNkZjAyYWVlZDc4ZDFkNWY2YmRlNTE5MGM5LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgwZWIxNjBlMGY2MjM1MDI3MWYwNjFkYWE1ZjI4OWQ5ZDQyNzdjZjQuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzQxYjBhZGUyODc5MGZmZGIwZTQ4NGI0MWNkNzkyOWM0ZTE0NWRlYy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NzRkNjBlNTg5OWRkNWI4OTg1NDY3OWQxYTRhZDAxNmE1OGJhNGUwLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc5MzcwZDRiMTc4MWFmOWM5YTY1ZjJkMWUzNDk4MTI0ZDhjNGM0MTMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmNiM2U1MjM1MTk2ZWI3MWZiMjVlMGE0YTRiODc0OWQ2ZDBhODQ1My4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZDFjNDAwMTE0MzRjMWVmYWE2OTZkYzk4ZWY4NTVlZjljY2U5YjI4LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDRiZjhmMTUyNGY2ZTMzNzRiM2YzYmM1NzMyMjMzNzcyM2QwNmI5MjguCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTRkN2RiMWI1MjdiMDVmMDI5ODE5MDU3YWVmNWMxMjNhYzdlMDEzZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzQ5MwoKMjAxMS0wNC0yNSAxMToxMDo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFNtYWxsIGNvc21ldGljIGNsZWFudXBzCgkgIE1ha2Ugc3VyZSB0aGUgcmV0dXJuIHZhbHVlcyBmcm9tIGdfcmV0dXJuXyogYXJlIG9mIHRoZSByaWdodCB0eXBlLgoKMjAxMS0wNC0yNSAxMDo1NjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1peGluZyBvZiByZXR1cm4gdmFsdWVzCgoyMDExLTA0LTI1IDEwOjMwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNSAyMjowMDoxMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgbWlub3IgaW5saW5lIGRvY3VtZW50YXRpb24gZml4CgoyMDExLTA0LTI0IDE0OjAyOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzNjYWZlMSB0byA0NmRmY2VhCgoyMDExLTA0LTI0IDExOjQ0OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGNsZWFuIHVwIHByb3Blcmx5IGluIHRoZSBiaW4gdGVzdF9saW5rX3N0cnVjdHVyZV9jaGFuZ2UgdW5pdCB0ZXN0CgkgIERvbid0IGZvcmdldCB0byBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gTlVMTCBzdGF0ZSwgd2hpY2ggbWFrZXMKCSAgdmFsZ3JpbmQgaGFwcHkgYWdhaW4uCgoyMDExLTA0LTI0IDA5OjU4OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogd2hlbiByZW1vdmluZyBhIGNhY2hlZC1idXQtbm8tbG9uZ2VyLWV4aXN0aW5nIHBsdWdpbiwgb25seSByZW1vdmUgZmVhdHVyZXMgdGhhdCBiZWxvbmcgdG8gaXQKCSAgV2hlbiBhIHBsdWdpbiBmaWxlIG5vIGxvbmdlciBleGlzdHMsIGUuZy4gYmVjYXVzZSBpdCdzIGJlZW4gcmVtb3ZlZCBvcgoJICByZW5hbWVkLCBkb24ndCByZW1vdmUgYWxsIGZlYXR1cmVzIGluIHRoZSByZWdpc3RyeSBiYXNlZCBvbiB0aGUgKm5hbWUqCgkgIG9mIHRoZSBwbHVnaW4gdGhleSBiZWxvbmcgdG8sIGJ1dCBvbmx5IHJlbW92ZSB0aG9zZSB3aG8gYWN0dWFsbHkgYmVsb25nCgkgIHRvIHRoYXQgcGFydGljdWxhciBwbHVnaW4gKG9iamVjdC9wb2ludGVyKS4KCSAgVGhpcyBmaXhlcyBpc3N1ZXMgb2YgcGx1Z2luIGZlYXR1cmVzIGRpc2FwcGVhcmluZyB3aGVuIGEgcGx1Z2luIC5zbyBmaWxlCgkgIGlzIHJlbmFtZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDQwOTQKCjIwMTEtMDQtMjQgMDk6NTM6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgcGx1Z2luZmVhdHVyZTogc3RvcmUgcG9pbnRlciB0byBwbHVnaW4gaW4gYWRkaXRpb24gdG8gdGhlIHBsdWdpbiBuYW1lCgkgIFNvIHdlIGNhbiByZWxpYWJseSByZW1vdmUgcGx1Z2luIGZlYXR1cmVzIGZvciBhIHNwZWNpZmljIHBsdWdpbiBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNDA5NAoKMjAxMS0wNC0yNCAxMTowNTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHVzZSBUUkFDRSBsb2cgbGV2ZWwgdG8gbG9nIGZpbGVzIHRoYXQgZG9uJ3QgbG9vayBsaWtlIHBsdWdpbnMKCSAgQ3V0cyBkb3duIHRoZSBub2lzZSBpbiB1bmluc3RhbGxlZCBzZXR1cHMuCgoyMDExLTA0LTE5IDIwOjM1OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggbmVnb3RpYXRpb24gcmVncmVzc2lvbgoJICBGaXh1cCBwYXRjaCBmb3IgODM1OTc3NjdiMTY5ZGQ2YzM5YTA3YjYxNDRhNjUwYzFmMDk4ODI1YQoJICBVc2UgYSBzZXBhcmF0ZSB2YXJpYWJsZSBmb3Iga25vd2luZyBpZiBhIHBhZCBhbGxvYyBoYXMgYmVlbiBtYWRlCgkgIGluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIHRoZSBmbG93IHJldHVybiB0aGF0IG1pZ2h0IG5vdCBiZSB0aGUKCSAgcmVzdWx0IG9mIHRoZSBwYWQgYWxsb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODIyMAoKMjAxMS0wNC0yMSAxMjozMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IGFkZCBzaW1wbGUgcGlwZWxpbmUtaW4tcGlwZWxpbmUgdW5pdCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyOTcKCjIwMTEtMDQtMjAgMTU6Mzk6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGFsc28gYWxsb3cgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aG91dCB0aW1lb3V0IGlmIG5vIHBvbGwgYXZhaWxhYmxlCgkgIC4uLiB3aGljaCBoYXBwZW5zIGluIHBhcnRpY3VsYXIgZmx1c2hpbmcgYSBidXMsIHBvc3NpYmx5IGFzIHBhcnQKCSAgb2YgYSBzdGF0ZSBjaGFuZ2UsIGUuZy4gd2hlbiBoYXZpbmcgYSBwaXBlbGluZSBpbiBhIHBpcGVsaW5lCgkgIGFuZCB0aGVuIGNoYW5naW5nIHN0YXRlIGJhY2sgdG8gTlVMTC4gVGhlIGludGVyaW9yIHBpcGVsaW5lCgkgIHdpbGwvbWlnaHQgdGhlbiBmbHVzaCB0aGUgYnVzLCB3aGljaCBpcyBhIGNoaWxkIGJ1cyBmcm9tIHRoZQoJICBwYXJlbnQgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIHBvbGwgYW55bW9yZSB0aGVzZSBkYXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4Mjk3CgoyMDExLTA0LTIwIDE5OjA4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA0LTIwIDE5OjAzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0yMCAxOTowMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IHRvdWNoIGJhc2VfdGltZSBvciBjbG9jayBpbiBzdGF0ZSBjaGFuZ2UKCSAgRG9uJ3QgdG91Y2ggdGhlIGJhc2VfdGltZSBvciB0aGUgY2xvY2sgd2hlbiBzZXR0aW5nIGFuIGVsZW1lbnQgdG8gdGhlIFJFQURZIG9yCgkgIE5VTEwgc3RhdGUuIEl0IGlzIHRoZSBwYXJlbnQgdGhhdCB3aWxsIG1hbmFnZSB0aGlzIGZvciB1cy4KCjIwMTEtMDQtMTkgMjA6NTI6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogSW1wbGVtZW50IGdzdF9idWZmZXJfbGlzdF9mb3JlYWNoKCkKCjIwMTEtMDQtMTkgMTk6MzA6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE5IDE4OjU3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG1ldGhvZCB0byBjb21wYXJlIGJ1ZmZlciBkYXRhCgkgIEFkZCBtZXRob2QgdG8gY29tcGFyZSB0aGUgZGF0YSBpbiBhIGJ1ZmZlci4KCjIwMTEtMDQtMTkgMTY6MjE6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgoyMDExLTA0LTE5IDE0OjA1OjIzICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdW5sb2NrIGJlZm9yZSBmcmVlaW5nIHRoZSBjYWNoZSB0byBhdm9pZCBkZWFkbG9jawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MTk5CgoyMDExLTA0LTE0IDEwOjE1OjI2ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgdW5yZWYgdHJhbnMgdW50aWwgdGhlIGZ1bmN0aW9uIGlzIGRvbmUgdXNpbmcgaXQKCSAgdHJhbnMtPnByaXYtPmZvcmNlX2FsbG9jID0gRkFMU0Ugd291bGQgY3Jhc2ggaWYgdGhlIHJlZiBoZWxkIGlzIHRoZSBsYXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyMTUKCjIwMTEtMDQtMTkgMTM6MjM6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGFkZCBub3RlL3dhcm5pbmcgdG8gZ3N0X2luZGV4X2dldF93cml0ZXJfaWQoKSBkb2NzIGFib3V0IHRoZSBPQkpFQ1RfTE9DSwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2ODExCgoyMDExLTA0LTE5IDEzOjA1OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgZGVhZGxvY2sgd2hlbiBzZXR0aW5nIGV4dGVybmFsIGluZGV4CgkgIFByb3RlY3QgaW5kZXggd2l0aCBpdHMgb3duIGxvY2suIGdzdF9pbmRleF9nZXRfd3JpdGVyX2lkKCkgbWF5IHRha2UKCSAgdGhlIG9iamVjdCBsb2NrIGludGVybmFsbHkgKHRoZSBkZWZhdWx0IHJlc29sdmVyLCBHU1RfSU5ERVhfUkVTT0xWRVJfUEFUSCwKCSAgd2lsbCBhbnl3YXkpLCBzbyBpZiB3ZSdyZSB1c2luZyB0aGF0IHRvIHByb3RlY3QgdGhlIGluZGV4IGFzIHdlbGwsCgkgIHdlJ2xsIGRlYWRsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2ODExCgoyMDExLTA0LTE5IDExOjUxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBmbXRsaXN0IGNvbnN0YW50CgoyMDExLTA0LTE5IDExOjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGNvbnN0LWlmeSBmb3JtYXRzIGFyZ3VtZW50cyB0byBnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KCkKCjIwMTEtMDQtMTggMTg6MTk6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE4OjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2V7c2luayxzcmN9OiBEb24ndCB0cnkgdG8gZml4YXRlIEFOWSBjYXBzCgoyMDExLTA0LTE4IDE4OjA3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6MzM6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldDogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6MzI6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIGJhc2U6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjI4OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogUmVtb3ZlIEdTVF9CT0lMRVJQTEFURSBhbmQgZnJpZW5kcwoKMjAxMS0wNC0xOCAxMDo0NzoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBNYWtlIHRoZSBzaXplIHBhcmFtZXRlciBvZiBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHVuc2lnbmVkCgkgIEludGVybmFsbHkgZ3VpbnRzIHdlcmUgdXNlZCBldmVyeXdoZXJlIGFscmVhZHkuCgoyMDExLTA0LTE4IDEwOjQxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBhbGxvdyBmaXhhdGluZyBBTlkgY2FwcyBhbmQgcmVtb3ZlIEZJWE1FCgoyMDExLTA0LTE4IDEwOjM2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBFbmFibGUgRFVSQVRJT04gcXVlcnkgY2FjaGluZwoJICBFbGVtZW50cyBtdXN0IG5vdyBwb3N0IGEgRFVSQVRJT04gbWVzc2FnZSBvbiB0aGUgYnVzIGlmIHRoZXkKCSAgY2hhbmdlIHRoZSBkdXJhdGlvbiBpbiBQQVVTRUQgb3IgUExBWUlORy4KCjIwMTEtMDQtMTYgMTU6MjA6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBiYXNlcGFyc2UgQVBJIHRoYXQgZGlkbid0IG1ha2UgaXQKCjIwMTEtMDQtMTYgMTY6MDY6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNiAxNToyODo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgdGVzdCBmb3IgaW5oZXJpdGluZyBtZXRhZGF0YS9wYWQgdGVtcGxhdGVzCgoyMDExLTA0LTE2IDE1OjI0OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFVwZGF0ZSBkb2NzIHRvIHNheSBjbGFzc19pbml0IGluc3RlYWQgb2YgYmFzZV9pbml0CgkgIEFuZCByZW1vdmUgYSB1c2VsZXNzIGJhc2VfaW5pdCBpbiBiYXNlc3JjCgoyMDExLTA0LTE2IDE1OjIzOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBVc2UgR19ERUZJTkVfVFlQRQoKMjAxMS0wNC0xNiAxNToyMzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3Q6IERvbid0IHVzZSBiYXNlX2luaXQgYW5kIHVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE2IDE1OjAzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBlbGVtZW50OiBJbmhlcml0IGVsZW1lbnQgbWV0YWRhdGEgYW5kIHBhZCB0ZW1wbGF0ZXMgZnJvbSBwYXJlbnQgY2xhc3NlcwoJICBUaGlzIGFsbG93cyB0byBhZGQgcGFkIHRlbXBsYXRlcyBhbmQgc2V0IG1ldGFkYXRhIGluIGNsYXNzX2luaXQgaW5zdGVhZCBvZgoJICBiYXNlX2luaXQuIGJhc2VfaW5pdCBpcyBhIGNvbmNlcHQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGFsbW9zdCBhbGwKCSAgbGFuZ3VhZ2VzIGFuZCBjb3B5aW5nIHRoZSB0ZW1wbGF0ZXMvbWV0YWRhdGEgZm9yIHN1YmNsYXNzZXMgaXMgdGhlIG1vcmUKCSAgaW50dWl0aXZlIHdheSBvZiBkb2luZyB0aGluZ3MuCgkgIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHBhZCB0ZW1wbGF0ZXMgb2YgcGFyZW50IGNsYXNzZXMgYnkgYWRkaW5nIGEgbmV3CgkgIHRlbXBsYXRlIHdpdGggdGhlIHNhbWUgbm93LgoJICBBbHNvIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoKSBub3cgdGFrZXMgb3duZXJzaGlwIG9mIHRoZQoJICBwYWQgdGVtcGxhdGUsIHdoaWNoIHdhcyBhc3N1bWVkIGJ5IGFsbCBjb2RlIGJlZm9yZSBhbnl3YXkuCgkgIEZpeGVzIGJ1ZyAjNDkxNTAxLgoKMjAxMS0wNC0xNiAxNDo1NjowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuMiBwcmUtcmVsZWFzZQoKMjAxMS0wNC0xNiAxNDo1NDowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDQtMTYgMTQ6NTI6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZW1vdmUgbmV3bGluZSBmcm9tIHRyYW5zbGF0YWJsZSBzdHJpbmcKCjIwMTEtMDQtMTYgMTM6NDk6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGRvZXNuJ3QgbmVlZCB0byBzY2FuIG9yIHVwZGF0ZSBwbHVnaW4gaW5mbwoKMjAxMS0wNC0xNiAxNDozNDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogbWFrZSBzdXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGNhbGxzIGdzdF9pbml0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzkyMgoKMjAxMS0wNC0xNiAxMDo0NToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGRvZXNuJ3QgbmVlZCB0byBzY2FuIG9yIHVwZGF0ZSBwbHVnaW4gaW5mbwoJICBNYWtlIHN1cmUgdGhlIHNjYW5uZXIgZG9lc24ndCBsb2FkIG9yIGludHJvc3BlY3Qgb3IgY2hlY2sgYW55IHBsdWdpbnMsCgkgIChlc3BlY2lhbGx5IG5vdCBvdXRzaWRlIHRoZSBidWlsZCBkaXJlY3RvcnkpLgoKMjAxMS0wNC0xNiAxMDozMzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IG1ha2Ugc3VyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBjYWxscyBnc3RfaW5pdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc5MjIKCjIwMTEtMDQtMTYgMTA6MTc6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBiYXNlcGFyc2UgQVBJIHRvIGxpYmdzdGJhc2UuZGVmCgoyMDExLTA0LTE2IDA5OjMzOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTYgMDk6MzI6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgZXhwb3J0cyBmb3IgdGhlIEdzdFBhcnNlQ29udGV4dCBhbmQgR3N0QnVmZmVyTGlzdEl0ZXJhdG9yIHR5cGVzCgoyMDExLTA0LTE2IDA4OjU5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTUgMjA6NTg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IG9ubHkgcnVuIGdzdC1wbHVnaW4tc2Nhbm5lciB3aXRoIC91c3IvYmluL2FyY2ggd3JhcHBlciBvbiBPUyBYID49IDEwLjUKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IERhbmllbCBNYWNrcyA8ZG1hY2tzQG5ldHNwYWNlLm9yZz4KCSAgRWFybGllciB2ZXJzaW9ucyBvZiBPU1ggZG9uJ3Qgc3VwcG9ydCBwcm9wZXIgbXVsdGlhcmNoIGFuZAoJICB0cnlpbmcgdG8gdXNlIC91c3IvYmluL2FyY2ggLWZvbyB3aXRoIHRob3NlIHZlcnNpb25zIHdvdWxkCgkgIGp1c3QgYnJlYWsgdGhpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzU3CgoyMDExLTA0LTE1IDE5OjA3OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZXhwb3NlIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKSBmb3IgY29tcGxldGVuZXNzCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpCgoyMDExLTA0LTE1IDE4OjUyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW5pdCBmcmFtZXMgb24gdGhlIHN0YWNrIHdpdGggZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpCgkgIEZyYW1lcyBtdXN0IG5vdyBiZSBpbml0ZWQgdGhpcyB3YXksIGNhbid0IGp1c3QgemVybyB0aGVtCgkgIG91dCBhbmQgdXNlIHRoZW0uCgoyMDExLTA0LTE1IDE4OjM4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbW9yZSBkZWJ1ZyBsb2dnaW5nLCBtaW5vciBjbGVhbi11cAoJICBUcmFjZSBmcmFtZXMsIHNwbGl0IG91dCBjb2RlIHRvIHF1ZXVlIGEgZnJhbWUgZm9yIGxhdGVyLgoKMjAxMS0wNC0xNSAxODowMDoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNoYW5nZSBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCkgdG8gbm90IHRha2UgYSBHc3RCYXNlUGFyc2UgYXJndW1lbnQKCjIwMTEtMDQtMTUgMTc6NDE6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtYWtlIEdzdEJhc2VQYXJzZUZyYW1lIGhhbmRsaW5nIG1vcmUgYmluZGluZ3MtZnJpZW5kbHkKCSAgQ2hhbmdlIHNlbWFudGljcyBvZiBnc3RfYmFzZV9wYXJzZV9wdXNoX2ZyYW1lKCkgYW5kIG1ha2UgaXQgdGFrZQoJICBvd25lcnNoaXAgb2YgdGhlIHdob2xlIGZyYW1lLCBub3QganVzdCB0aGUgZnJhbWUgY29udGVudHMuIFRoaXMKCSAgaXMgbW9yZSBpbiBsaW5lIHdpdGggaG93IGdzdF9wYWRfcHVzaCgpIGV0Yy4gd29yay4gSnVzdCB0cmFuc2ZlcmluZwoJICB0aGUgY29udGVudCwgYnV0IG5vdCB0aGUgY29udGFpbmVyIG9mIHNvbWV0aGluZyB0aGF0J3Mgbm90IHJlYWxseQoJICBrbm93biB0byBiZSBhIGNvbnRhaW5lciBpcyBoYXJkIHRvIGFubm90YXRlIHByb3Blcmx5IGFuZCBwcm9iYWJseQoJICB3b24ndCB3b3JrLiBXZSBtYXJrIGZyYW1lcyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIG5vdyB3aXRoIGEgcHJpdmF0ZQoJICBmbGFnIGluIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKSwgc28gZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpCgkgIG9ubHkgZnJlZXMgdGhlIGNvbnRlbnRzIGluIHRoYXQgY2FzZSBidXQgbm90IHRoZSBmcmFtZSBzdHJ1Y3QgaXRzZWxmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfbmV3KCkKCjIwMTEtMDQtMTUgMTU6MDI6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWdpc3RlciBib3hlZCB0eXBlIGZvciBHc3RCYXNlRnJhbWVQYXJzZQoJICBUbyBtYWtlIHRoaXMgdXNhYmxlIGZvciBiaW5kaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0xNSAxMzo1Nzo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEFkZCBtaXNzaW5nICkgdG8gdGhlIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnR5IGRlc2NyaXB0aW9uCgoyMDExLTA0LTE1IDEwOjUzOjU2ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZQoJICBHQ0MgNC42LjAgc3BpdHMgd2FybmluZ3MgYWJvdXQgdGhlc2UuCgoyMDExLTA0LTE0IDE2OjA2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogQWRkIGJveGVkIHR5cGUgZm9yIEdzdEJ1ZmZlckxpc3RJdGVyYXRvciBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDExLTA0LTE0IDE1OjU5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJICBwYXJzZTogQWRkIGJveGVkIHR5cGUgZm9yIEdzdFBhcnNlQ29udGV4dCBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDExLTA0LTE0IDE1OjUxOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogQWRkIHNvbWUgbW9yZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTEtMDQtMTQgMDk6MDc6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgdGhlIHNpbmtwYWQgbmFtZQoKMjAxMS0wNC0xNCAwOTowNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgcGFkcyBpbiB0aGUgbmFtZWQgcGFkcyB1bml0IHRlc3QKCjIwMTEtMDQtMTQgMDg6NTk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggY2FwcyBsZWFrcyBpbiBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9hY2NlcHRfe2FueSxhbGx9X2NhcHNfaW5fZGlyZWN0aW9uKCkKCjIwMTEtMDQtMTMgMDk6MjA6MTMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2VyOiBBbGxvdyBlbGVtZW50IG5hbWVzIHRvIGJlZ2luIHdpdGggZGlnaXRzCgoyMDExLTA0LTEzIDEwOjI0OjMzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogQWRkIHRlc3QgZm9yIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDQtMTMgMTc6MjY6NTQgKzAyMDAgIEphbm5lIEdydW5hdSA8amFubmUuZ3J1bmF1QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcHJldmVudCBjYWxjdWxhdGlvbiB3aXRoIEdTVF9DTE9DS19USU1FX05PTkUgaW4gdXBkYXRlX3RpbWVfbGV2ZWwoKQoKMjAxMS0wNC0xMSAxNTowODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICB0ZXN0czogZml4IHVudXN1ZWQtYnV0LWFzc2lnbmVkLXZhcmlhYmxlIHdhcm5pbmdzIHdpdGggZ2NjIDQuNgoKMjAxMS0wNC0xMSAxMzowNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBkaXNhYmxlIHRlc3RfbWFueV9iaW5zIHVuaXQgdGVzdCBmb3Igbm93CgkgIEl0IGZhaWxzIG9uIHRoZSBPU1ggYm90IChib3RoIHdpdGggZ2l0IGFuZCB0aGUgbGFzdCByZWxlYXNlKSwgYW5kCgkgIGl0IGRvZXNuJ3QgcmVhbGx5IHRlc3QgYW55dGhpbmcgdXNlZnVsLCBzbyBtYXkganVzdCBhcyB3ZWxsIGRpc2FibGUKCSAgaXQgZm9yIG5vdy4KCjIwMTEtMDQtMTEgMTI6NTE6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBDYXN0IHN0cmluZyBjb25zdGFudHMgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCjIwMTEtMDQtMTEgMTI6MDQ6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogYWxsb3cgbW9yZSB0aW1lIGZvciB0aGUgdGVzdF9tYW55X2JpbnMgcGlwZWxpbmUgdG8gcHJlcm9sbAoJICBIb3BlZnVsbHkgbWFrZXMgdGhpcyB0ZXN0IHdvcmsgb24gdGhlIE9TWCBidWlsZCBib3QgYW5kIG90aGVyCgkgIG5vdC1zby1wb3dlcmZ1bCBtYWNoaW5lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjYyNAoKMjAxMS0wNC0xMSAxMToyOTowMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciBpcyBjYWxsZWQgd2l0aCB0aGUgcmlnaHQgYXJjaCBvbiBPU1gKCSAgT24gT1NYLCBHU3RyZWFtZXIgbWlnaHQgYmUgYnVpbHQgYXMgYSAnZmF0L3VuaXZlcnNhbCcgYmluYXJ5IGNvbnRhaW5pbmcKCSAgYm90aCAzMi1iaXQgYW5kIDY0LWJpdCBjb2RlLiBXZSBtdXN0IHRha2UgY2FyZSB0aGF0IGdzdC1wbHVnaW4tc2Nhbm5lcgoJICBpcyBleGVjdXRlZCB3aXRoIHRoZSBzYW1lIGFyY2hpdGVjdHVyZSBhcyB0aGUgR1N0cmVhbWVyIGNvcmUsIG90aGVyd2lzZQoJICBiYWQgdGhpbmdzIG1heSBoYXBwZW4gYW5kIGNvcmUvc2Nhbm5lciB3aWxsIG5vdCBiZSBhYmxlIHRvIGNvbW11bmljYXRlCgkgIHByb3Blcmx5LgoJICBTaG91bGQgZml4IGlzc3VlcyB3aXRoICgzMi1iaXQpIGZpcmVmb3ggdXNpbmcgYSAzMi1iaXQgR1N0cmVhbWVyIGNvcmUKCSAgd2hpY2ggdGhlbiBzcGF3bnMgYSAndW5pdmVyc2FsJyBnc3QtcGx1Z2luLXNjYW5uZXIgYmluYXJ5IHdoaWNoIGdldHMKCSAgcnVuIGluIDY0LWJpdCBtb2RlLCBjYXVzaW5nIDEwMCUgY3B1IHVzYWdlIC8gYnVzeSBsb29wcyBvciBqdXN0IGhhbmdpbmcKCSAgZmlyZWZveCB1bnRpbCBraWxsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzNTcKCjIwMTEtMDQtMTEgMTE6MDU6MjQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBbGxvdyB0cmFja2luZyBvZiBidWZmZXJzIGluIEdTVF9TQ0hFRFVMSU5HIGRlYnVnIG91dHB1dAoJICBBcyBHU1RfU0NIRURVTElORyByZXBvcnRzIHdoZW4gYnVmZmVycyBwYXNzIHRocm91Z2ggcGFkcyBkdWUgdG8KCSAgZ3N0X3BhZF9wdXNoIGNhbGxzLCB0aGV5IGFyZSBhIGdvb2Qgd2F5IG9mIHRyYWNraW5nIHRoZSBwcm9ncmVzcyBvZgoJICBidWZmZXJzIHRocm91Z2ggcGlwZWxpbmVzLiBBcyBzdWNoLCBhZGRpbmcgb3V0cHV0IG9mIHRoZSBidWZmZXIgcG9pbnRlcnMKCSAgdG8gdGhlc2UgbWVzc2FnZXMgYWxsb3dzIHRyYWNraW5nIG9mIHNwZWNpZmljIGJ1ZmZlcnMsIGVhc2luZyBkZWJ1Z2dpbmcuCgoyMDExLTA0LTExIDEwOjUzOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3J0IHRvIDAuMTEKCjIwMTEtMDQtMTEgMTA6MjY6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgYW5kcm9pZC9iYXNlLm1rCgkgIGFuZHJvaWQvY29udHJvbGxlci5tawoJICBhbmRyb2lkL2RhdGFwcm90b2NvbC5tawoJICBhbmRyb2lkL2VsZW1lbnRzLm1rCgkgIGFuZHJvaWQvZ3N0LWluc3BlY3QubWsKCSAgYW5kcm9pZC9nc3QtbGF1bmNoLm1rCgkgIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rCgkgIGFuZHJvaWQvZ3N0Lm1rCgkgIGFuZHJvaWQvaW5kZXhlcnMubWsKCSAgYW5kcm9pZC9uZXQubWsKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmCgoyMDExLTA0LTExIDEwOjIwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBGSVhNRQoKMjAxMS0wMS0yNyAxNDozMzowOCArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBBbmRyb2lkLm1rOgoJKiBhbmRyb2lkL05PVElDRToKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9nc3QvZ3N0Y29uZmlnLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5jOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuaDoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdHZlcnNpb24uaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci5vdXRwdXQ6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmM6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LmM6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBhbmRyb2lkL3Rvb2xzLm1rOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYW5kcm9pZDogbWFrZSBpdCByZWFkeSBmb3IgYW5kcm9nZW5pemVyCgkgIFJlbW92ZSB0aGUgYW5kcm9pZC8gdG9wIGRpcgoJICBGaXhlIHRoZSBNYWtlZmlsZS5hbSB0byBiZSBhbmRyb2dlbml6ZWQKCSAgVG8gYnVpbGQgZ3N0cmVhbWVyIGZvciBhbmRyb2lkIHdlIGFyZSBub3cgdXNpbmcgYW5kcm9nZW5pemVyIHdoaWNoIGdlbmVyYXRlcyB0aGUgbmVlZGVkIEFuZHJvaWQubWsgZmlsZXMuCgkgIEFuZHJvZ2VuaXplciBjYW4gYmUgZm91bmQgaGVyZTogaHR0cDovL2dpdC5jb2xsYWJvcmEuY28udWsvP3A9dXNlci9kZXJlay9hbmRyb2dlbml6ZXIuZ2l0CgoyMDExLTA0LTA5IDIzOjU0OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZG9uJ3QgcHV0IGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgaW50byBnX3JldHVybl9pZl9mYWlsKCkKCjIwMTEtMDQtMDkgMjI6NTc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgZml4ZXMgZm9yIGJhc2VwYXJzZSBkb2NzCgkgIENsYXNzIHZmdW5jIHJlZmVyZW5jZXMgc3RpbGwgYXJlbid0IHJpZ2h0LCBubyBpZGVhIHdoYXQKCSAgdGhlIGNvcnJlY3QgbWFya3VwIGZvciB0aG9zZSBpcy4KCjIwMTEtMDQtMDkgMTg6MDQ6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdW5yZWYgZXZlbnQgaW4gZGVmYXVsdF9zZW5kX2V2ZW50IGluIGNhc2UgZWxlbWVudCBoYXMgbm8gcGFkcwoJICBTcG90dGVkIGJ5ICBIYWFrb24gU3BvcnNoZWltLgoKMjAxMS0wNC0wOSAwNDowNzowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgY2hlY2s6IElnbm9yZSBuZXcgZ3N0bWV0YSBiaW5hcnkKCjIwMTEtMDQtMDkgMDQ6MDU6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRlc2lnbjogZHJhZnQtYnVmZmVyMi50eHQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAxMS0wNC0wOSAwNDowNToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogRG9uJ3QgZm9yZ2V0IHRvIGRpc3QgZ3N0ZWxlbWVudG1ldGFkYXRhLmgKCjIwMTEtMDQtMDggMTk6MDc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciB2YXJpYWJsZSBuYW1lIGNsZWFuLXVwCgoyMDExLTA0LTA4IDE1OjMxOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogcmVuYW1lIF9zZXRfZnJhbWVfcHJvcHMoKSB0byBfc2V0X2ZyYW1lX3JhdGUoKQoJICBTZWVtcyBsaWtlIHRoZSBiZXN0IGZpdCB0byB3aGF0IGl0IGRvZXMsIGFuZCBpcyBzaG9ydGVyIHRoYW4KCSAgc2V0X2ZyYW1lX3Byb3BlcnRpZXMoKSB3aGljaCBtaWdodCBhbHNvIGhhdmUgYmVlbiBjb25mdXNpbmcKCSAgYmVjYXVzZSBvZiBHc3RCYXNlUGFyc2VGcmFtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wNiAxNzo0MzoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlcGxhY2UgZm9ybWF0IGZsYWdzIHdpdGggZ3N0X2Jhc2VfcGFyc2Vfc2V0X3twYXNzdGhyb3VnaCxzeW5jYWJsZSxoYXNfdGltaW5nX2luZm99CgkgIFRoaXMgaXMgbW9yZSBpbiBsaW5lIHdpdGggZS5nLiBHc3RCYXNlVHJhbnNmb3JtJ3MgQVBJLCBhbmQgbWFrZXMgZm9yIG5pY2VyCgkgIHRvIHJlYWQgY29kZS4gTm8gZ2V0dGVycyBmb3Igbm93IHNpbmNlIEkgZG9uJ3Qgc2VlIGFueSB1c2UgY2FzZSBmb3IgdGhlbSwKCSAgdGhlIEFQSSBpcyBmb3Igc3ViY2xhc3Nlcywgd2hpY2ggdXN1YWxseSBrbm93IHdoYXQgZm9ybWF0IHRoZXkncmUKCSAgZGVhbGluZyB3aXRoIGFscmVhZHkgYW5kIGhlbmNlIGtub3cgd2hhdCB0aGV5J3ZlIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wNCAxNzo1ODo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1ha2UgRFJBSU4gYW5kIFNZTkMgZmxhZ3Mgb24gYmFzZXBhcnNlLCBub3QgdGhlIGZyYW1lLCBhbmQgY2hhbmdlIHRvIERSQUlOSU5HIGFuZCBMT1NUX1NZTkMKCSAgVGhlIGZpcnN0IGJlY2F1c2UgaXQgc2VlbXMgYSBiZXR0ZXIgZml0IGNvbmNlcHR1YWxseSwgdGhlIHNlY29uZAoJICB0byBleHByZXNzIGJvb2xlYW5uZXNzLiBBbHNvIGNoYW5nZSB0aGUgYWNjZXNzb3IgbWFjcm9zIGZvciBzdWJjbGFzc2VzCgkgIHRvIEdTVF9CQVNFX1BBUlNFX0RSQUlOSU5HIGFuZCBHU1RfQkFTRV9QQVJTRV9MT1NUX1NZTkMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MTg6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBwYWRkaW5nIHRvIEdzdEJhc2VQYXJzZUZyYW1lCgkgIEVzcC4gc2luY2UgaXQncyB1c3VhbGx5IGFsbG9jYXRlZCBvbiB0aGUgc3RhY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MDg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXggdHlwbyBpbiBkb2NzIGZvciBHU1RfQkFTRV9QQVJTRV9GT1JNQVRfRkxBR19QQVNTVEhST1VHSAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjA0OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIEdRdWV1ZSBpbnN0ZWFkIG9mIEdMaXN0IGZvciBxdWV1ZWQgZnJhbWVzCgkgIGFuZCBtYWtlIGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyBjYXBzIG9uIHF1ZXVlZAoJICBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYzNDEKCjIwMTEtMDQtMDIgMTM6MDI6MDEgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcm1lcmFsaUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBHU1RfQkFTRV9QQVJTRV9GTE9XX1FVRVVFRCB0byBxdWV1ZSBidWZmZXJzIHVudGlsIGNhcHMgYXJlIGtub3duCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBwYXJzZXIgbGlrZSBmbGFjcGFyc2Ugb3IgaDI2NHBhcnNlIHdoaWNoIG1heSBuZWVkIHRvIHByb2Nlc3MKCSAgc29tZSBidWZmZXJzIGJlZm9yZSB0aGV5IGNhbiBjb25zdHJ1Y3QgdGhlIGZpbmFsIGNhcHMsIGluIHdoaWNoIGNhc2UgdGhleSBtYXkKCSAgd2FudCB0byBkZWxheSBwdXNoaW5nIHRoZSBpbml0aWFsIGJ1ZmZlcnMgdW50aWwgdGhlIGZ1bGwgYW5kIHByb3BlciBjYXBzIGFyZQoJICBrbm93bi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjM0MQoKMjAxMS0wMy0zMSAxNTo1MDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB0byBkb2NzIGFuZCBmaXggdXAgZ3RrLWRvYyBtYXJrdXAgYSBsaXR0bGUKCSAgQW5kIGFkZCBTaW5jZSBtYXJrZXJzLgoKMjAxMS0wMy0zMSAxNDo0ODo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlcGxhY2Ugc2V0X3NlZWsoKSB3aXRoIF9zZXRfYXZlcmFnZV9iaXRyYXRlKCkgYW5kIEZMQUdfU1lOQ0FCTEUKCSAgVGhpcyBtYWtlcyBtb3JlIHNlbnNlIGNvbmNlcHR1YWxseSwgc2luY2UgdGhlIGJpdHJhdGUgbWF5IGJlIHVzZWQKCSAgdG8gZXN0aW1hdGUgYSBzZWVrIHBvc2l0aW9uIGlmIHRoZXJlJ3Mgbm8gc2VlayB0YWJsZSBvciBqdXN0IGZvcgoJICBkdXJhdGlvbiByZXBvcnRpbmcvZXN0aW1hdGlvbiBpZiB3ZSBjYW4ndCBzZWVrLiBBbHNvLCBldmVuIGlmIHRoZQoJICBmb3JtYXQgaXMgbm90IHN5bmNhYmxlLCB3ZSBjb3VsZCBzdGlsbCBzZWVrIGJ5IHB1c2hpbmcgZGF0YSBmcm9tIHRoZQoJICBzdGFydCBhbmQgdXNpbmcgdGhlIHNlZ21lbnQgdG8gbWFrZSBkb3duc3RyZWFtIGNsaXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMjQgMTc6MzA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW5hbWUgR3N0QmFzZUZvcm1hdCB0byBHc3RCYXNlRm9ybWF0RmxhZ3MgYW5kIGZpeCB1cCBhc3NvY2lhdGVkIEFQSQoJICBBbHNvIGNoYW5nZSBnc3RfYmFzZV9wYXJzZV9zZXRfZm9ybWF0KHBhcnNlLGZsYWdzLHN3aXRjaF9vbikgdG8KCSAgZ3N0X2Jhc2VfcGFyc2Vfc2V0X2Zvcm1hdF9mbGFncyhwYXJzZSxmbGFncykgd2hpY2ggaXMgbW9yZSBpbiBsaW5lCgkgIHdpdGggdGhlIHJlc3Qgb2Ygb3VyIEFQSSBhbmQgaG93IHRoZSBmdW5jdGlvbiBpcyB1c2VkLgoKMjAxMS0wMy0xMyAyMzo0Mzo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGRvbid0IGV4cG9zZSBHc3RBZGFwdGVyIGluIHB1YmxpYyBoZWFkZXIKCSAgTm9uZSBvZiB0aGUgZXhpc3Rpbmcgc3ViY2xhc3NlcyBuZWVkcyBhY2Nlc3MgdG8gdGhhdCwgc28gdGhlcmUncwoJICBubyByZWFzb24gdG8gZXhwb3NlIGl0IGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTMgMjM6Mzg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb3ZlIHZhcmlvdXMgc2VnbWVudC1yZWxhdGVkIG1lbWJlcnMgaW50byB0aGUgcHJpdmF0ZSBpbnN0YW5jZSBzdHJ1Y3QKCSAgSWYgbm9uZSBvZiB0aGUgZXhpc3Rpbmcgc3ViY2xhc3NlcyB1c2VzIHRoZXNlLCB0aGVyZSdzIHByb2JhYmx5IG5vCgkgIG5lZWQgdG8gZXhwb3NlIHRoZW0gYXQgdGhlIG1vbWVudC4gS2VlcCB0aGUgc2VnbWVudCBpdHNlbGYgZXhwb3NlZAoJICB0aG91Z2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTMgMjM6MzA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW1vdmUgdW51c2VkIEdTVF9CQVNFX1BBUlNFX3tTSU5LLFNSQ31fTkFNRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEyIDE2OjE2OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmUtaW5kZW50IGhlYWRlcgoKMjAxMS0wMy0xMiAxNTozNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB1cCBHVHlwZSBuYW1lIGFuZCBtYWtlIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRocmVhZC1zYWZlCgkgIFJlbmFtZSBHVHlwZSBmcm9tIEdzdEJhc2VQYXJzZUJhZCB0byBHc3RCYXNlUGFyc2UuCgoyMDExLTAzLTEyIDE1OjI5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGFkZCBHc3RCYXNlUGFyc2Ugd2hpY2ggd2FzIG1vdmVkIGZyb20gLWJhZAoKMjAxMS0wMi0yMyAxNzoyNDoxNCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBmaXgKCjIwMTEtMDItMjEgMTM6MjQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW5hbWUgR1R5cGUgZnJvbSBHc3RBdWRpb0Jhc2VQYXJzZUJhZCB0byBHc3RCYXNlUGFyc2VCYWQKCSAgV2UgdXNlIGl0IGZvciB2aWRlbyBhcyB3ZWxsIG5vdy4KCjIwMTEtMDItMTggMTU6MDU6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDExLTAyLTE4IDE1OjA1OjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBkZWx0YS11bml0IGZsYWdzIGluc3RlYWQgb2Ygbm9uZQoKMjAxMS0wMi0xNyAxMzoyMjoyOCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBBUEkgY2hhbmdlcwoKMjAxMC0xMC0xMyAxNTozOTo1NSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IENyZWF0ZSBiYXNlcGFyc2UgbGlicmFyeQoKMjAxMS0wMi0wNyAxNDo0Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1bmUgUVVFUllfU0VFS0lORyByZXNwb25zZQoJICBFdmVuIGlmIHdlIGN1cnJlbnRseSBkbyBub3QgaGF2ZSBhIGR1cmF0aW9uIHlldCwgYXNzdW1lIHNlZWthYmxlIGlmCgkgIGl0IGxvb2tzIGxpa2Ugd2UnbGwgbGlrZWx5IGJlIGFibGUgdG8gZGV0ZXJtaW5lIGl0IGxhdGVyIG9uCgkgICh3aGljaCBjb2luY2lkZXMgd2l0aCBuZWVkZWQgaW5mb3JtYXRpb24gdG8gcGVyZm9ybSBzZWVraW5nKS4KCSAgRml4ZXMgIzY0MTA0Ny4KCjIwMTEtMDItMDggMjM6Mzk6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVcGRhdGUgbWluL21heCBiaXRyYXRlIGJlZm9yZSBmaXJzdCBwb3N0aW5nIHRoZW0KCSAgVGhpcyBhdm9pZHMgcG9zdGluZyBhbiBpbml0aWFsIG1pbi1iaXRyYXRlIG9mIEdfVUlOVE1BWCBhbmQgbWF4LWJpdHJhdGUKCSAgb2YgMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTg1NwoKMjAxMS0wMS0yMSAxNDo1MzozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1bmUgZGVmYXVsdCBkdXJhdGlvbiBlc3RpbWF0ZSB1cGRhdGUgaW50ZXJ2YWwKCSAgUmF0aGVyIHRoYW4gYSBmaXhlZCBkZWZhdWx0IGZyYW1lIGNvdW50LCBlc3RpbWF0ZSBmcmFtZSBjb3VudCB0byBhaW0gZm9yCgkgIGFuIGludGVydmFsIGR1cmF0aW9uIGRlcGVuZGluZyBvbiBmcHMgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIG9sZAoJICBmaXhlZCBkZWZhdWx0LgoKMjAxMS0wMS0xNCAxNToxNjowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVyc2UgcGxheWJhY2s7IG1pbmQga2V5ZnJhbWVzIGZvciBmcmFnbWVudCBib3VuZGFyeQoKMjAxMS0wMS0xMiAxNDo0MDozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSBub24tZW1wdHkgY2FuZGlkYXRlIGZyYW1lcwoKMjAxMS0wMS0xMSAxNToyNDoyMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsYXJpZnkgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDExLTAxLTExIDE1OjI0OjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVybHkgdHJhY2sgdXBzdHJlYW0gdGltZXN0YW1wcwoJICAuLi4gcmF0aGVyIHRoYW4gd2l0aCBhIGRlbGF5LgoKMjAxMS0wMS0xMSAxNToyMzoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG5lZWQgcHJvcGVyIGZyYW1lIGR1cmF0aW9uIHRvIG9idGFpbiBzZW5zaWJsZSBmcmFtZSBiaXRyYXRlCgoyMDExLTAxLTExIDE1OjIyOjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVyIGluaXRpYWwgdmFsdWVzIGZvciBpbmRleCB0cmFja2luZyB2YXJpYWJsZXMKCjIwMTEtMDEtMTEgMTI6MDU6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhcnJhbmdlIGZvciBjb25zaXN0ZW50IGV2ZW50IGhhbmRsaW5nCgoyMDExLTAxLTEwIDE2OjU5OjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogaGVhZGVyIHN0eWxlIGNsZWFuaW5nCgoyMDExLTAxLTEwIDE3OjA3OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBzb21lIG1vcmUgaW5pdGlhbCBmcmFtZSBtZXRhZGF0YSBpbiBwYXJzZV9mcmFtZQoJICAuLi4gYW5kIGRvY3VtZW50IGFjY29yZGluZ2x5LgoKMjAxMS0wMS0xMCAxNjo1NjozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHBhc3N0aHJvdWdoIGludG8gZm9ybWF0IGZsYWdzCgkgIEFsc28gYWRkIGEgZm9ybWF0IGZsYWcgdG8gc2lnbmFsIGJhc2VwYXJzZSB0aGF0IHN1YmNsYXNzL2Zvcm1hdCBjYW4gcHJvdmlkZQoJICAocGFyc2VkKSB0aW1lc3RhbXAgcmF0aGVyIHRoYW4gYW4gZXN0aW1hdGVkIG9uZS4gIEluIHBhcnRpY3VsYXIsIHN1Y2ggInN0cm9uZyIKCSAgdGltZXN0YW1wIHRoZW4gYWxsb3dzIHRvIGUuZy4gZGV0ZXJtaW5lIGR1cmF0aW9uLgoKMjAxMS0wMS0xMCAxNTozNDo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGludHJvZHVjZSBhIGJhc2VwYXJzZSBmcmFtZSB0byBzZXJ2ZSBhcyBjb250ZXh0CgkgIC4uLiBhbmQgYWRqdXN0IHN1YmNsYXNzIHBhcnNlcnMgYWNjb3JkaW5nbHkKCjIwMTEtMDEtMDcgMTY6Mzk6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXN0cmljdCBkdXJhdGlvbiBzY2FubmluZyB0byBwdWxsIG1vZGUgYW5kIGF2b2lkIGV4dHJhIHNldF9jYXBzIGNhbGwKCjIwMTEtMDEtMDcgMTU6NTg6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgc29tZSBkb2N1bWVudGF0aW9uCgkgIEFsc28gYWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCjIwMTEtMDEtMDYgMTE6NDE6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbGxvdyBpbmNyZWFzaW5nIG1pbl9zaXplIGZvciBjdXJyZW50IGZyYW1lIHBhcnNpbmcgb25seQoJICBBbHNvIGNoZWNrIHRoYXQgc3ViY2xhc3MgYWN0dWFsbHkgZWl0aGVyIGRpcmVjdHMgdG8gc2tpcCBieXRlcyBvcgoJICBpbmNyZWFzZXMgZXhwZWN0ZWQgZnJhbWUgc2l6ZSB0byBhdm9pZCBnb2luZyBub3doZXJlIGluIGJvZ3VzCgkgIGluZGVmaW5pdGUgbG9vcGluZy4KCjIwMTEtMDEtMTQgMTU6MjY6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFlc3BhcnNlOiBmaXggcmVmYWN0b3IgcmVncmVzc2lvbiBpbiBsb29wIGJhc2VkIHBhcnNpbmcKCjIwMTEtMDEtMDYgMTE6MTY6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwYXNzIGFsbCBhdmFpbGFibGUgZGF0YSB0byBzdWJjbGFzcyByYXRoZXIgdGhhbiBtaW5pbXVtCgkgIEFsc28gcmVkdWNlIHNvbWUgYWRhcHRlciBjYWxscyBhbmQgYWRkIGEgZmV3IGRlYnVnIHN0YXRlbWVudHMuCgoyMDEwLTEyLTEwIDE1OjU5OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sgaGFuZGxpbmcKCjIwMTAtMTItMTAgMTQ6NTY6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciB0eXBvIGFuZCBkZWJ1ZyBzdGF0ZW1lbnQgY2xlYW51cAoKMjAxMC0xMi0xMCAxNDo0MDowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZHVjZSBsb2NraW5nCgkgIC4uLiB3aGljaCBpcyBlaXRoZXIgYWxyZWFkeSBtdXRlIGFuZC9vciBpbXBsaWNpdGx5IGhhbmRsZWQgYnkgU1RSRUFNX0xPQ0suCgoyMDExLTAxLTE0IDE0OjA4OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgbG9vcCBpbiBmcmFtZSBsb2NhdGluZyBpbnRlcnBvbGF0aW9uCgoyMDExLTAxLTE0IDE2OjMwOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogYmFzZXBhcnNlOiBCZSBjYXJlZnVsIHRvIG5vdCBsb3NlIHRoZSBldmVudCByZWYKCSAgRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGlmIGl0IGhhc24ndCBiZWVuIGhhbmRsZWQsIGJlY2F1c2UgdGhlIGNhbGxlcgoJICBhc3N1bWVzIGl0IGlzIHN0aWxsIHZhbGlkIGFuZCBtaWdodCByZXVzZSBpdC4KCSAgSSByYW4gaW50byB0aGlzIHByb2JsZW0gd2hlbiB0cmFuc2NvZGluZyBhbiBBVkkgKHdpdGggbXAzIGluc2lkZSkKCSAgdG8gZ3BwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NTU1CgoyMDExLTAxLTEzIDE2OjI3OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIGJhc2VwYXJzZSBkb2NzL2NvbW1lbnQgZml4ZXMKCSAgUmVtb3ZlIGNvcHknbidwYXN0ZSBsZWZ0b3ZlcnMuCgoyMDEwLTExLTA4IDE5OjU4OjMxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW5jcmVhc2Uga2V5ZnJhbWUgYXdhcmVuZXNzCgkgIC4uLiB3aGljaCBpcyBub3QgcGFydGljdWxhciByZWxldmFudCBmb3IgYXVkaW8gcGFyc2luZywgYnV0IG1vcmUgc28KCSAgaW4gdmlkZW8gY2FzZXMuICBJbiBwYXJ0aWN1bGFyLCBhdXRvLWRldGVybWluZSBpZiBkZWFsaW5nIHdpdGggdmlkZW8gKGNhcHMpLgoKMjAxMC0xMS0zMCAxNTo0MTowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHVuZXhwZWN0ZWQgc3RyYXkgbWV0YWRhdGEKCjIwMTAtMTEtMzAgMTU6NDA6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgcHJvcGVyIF9OT05FIG91dHB1dCB2YWx1ZSB3aGVuIGFwcGxpY2FibGUKCjIwMTAtMTEtMjUgMTg6NTY6NDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDEwLTExLTI1IDE3OjE0OjIzICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlOiBmaXggcG9zc2libGUgZGl2aXNpb24tYnktemVybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1Nzg2CgoyMDEwLTExLTE3IDE2OjIzOjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGNvcnJlY3Qgb2Zmc2V0IHdoZW4gYWRkaW5nIGluZGV4IGVudHJ5CgkgIC4uLiBiZWFyaW5nIGluIG1pbmQgdGhhdCBCVUZGRVJfT0ZGU0VUIGlzIG1lZGlhIHNwZWNpZmljIGFuZCBtYXkgbm90CgkgIHJlZmxlY3QgdGhlIGJhc2ljIG9mZnNldCBhZnRlciBoYXZpbmcgYmVlbiBwYXJzZWQuCgoyMDEwLTExLTE3IDE0OjMwOjA5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5oYW5jZW1lbnRzIGZvciB0aW1lc3RhbXAgbWFya2VkIGZyYW1lZCBmb3JtYXRzCgkgIFRoYXQgaXMsIGFzIHN1Y2ggZm9ybWF0cyBhbGxvdyBzdWJjbGFzcyB0byBleHRyYWN0IHBvc2l0aW9uIGZyb20gZnJhbWUsCgkgIGl0IGlzIHBvc3NpYmxlIHRvIGV4dHJhY3QgZHVyYXRpb24gKGlmIG5vdCBvdGhlcndpc2UgcHJvdmlkZWQpCgkgIGZyb20gKG5lYXIpIGxhc3QgZnJhbWUsIGFuZCBhIHNlZWsgY2FuIGZhaXJseSBhY2N1cmF0ZWx5IHRhcmdldCB0aGUgcmVxdWlyZWQKCSAgcG9zaXRpb24uCgkgIEZpeGVzICM2MzEzODkuCgoyMDEwLTExLTE2IDE3OjA2OjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgZnJhbWUgc2Nhbm5pbmcgcGVmb3JtZWQgYnkgX2xvb3AKCjIwMTAtMTEtMTYgMTg6MDQ6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzbGlnaHRseSBvcHRpbWl6ZSBzZW5kaW5nIG9mIHBlbmRpbmcgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMTEtMTYgMTc6MDQ6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzCgkgIEFycmFuZ2UgZm9yIHVwc3RyZWFtIGFzIHdlbGwgYXMgZG93bnN0cmVhbSBmbHVzaGluZyB3aGVuIHNlZWtpbmcuCgkgIEFsc28gZGV0ZXJtaW5lIHVwc3RyZWFtIHNpemUgYXMgd2VsbCBhcyBzZWVrYWJpbGl0eS4gIEFkanVzdCBzb21lIGNvbW1lbnRzCgkgIHRvIHJlYWxpdHkgYW5kIGVtcGxveSBkZWJ1ZyBzdGF0ZW1lbnQgaW4gcHJvcGVyIG9yZGVyLgoKMjAxMC0xMC0yOSAxNDowODo1OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBvbmx5IHVwc3RyZWFtIGR1cmF0aW9uIGlmIGl0IHByb3ZpZGVzIG9uZQoKMjAxMC0xMC0yNSAxNDoxNTo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmxvdyB1cGRhdGVfYml0cmF0ZSBjb2RlCgkgIC4uLiB3aGljaCBtYWtlcyBsb2NhbCB2YXJpYWJsZXMgcmVwcmVzZW50IHJlYWwgc3RhdGUgYmV0dGVyLCBhbmQgYXZvaWRzCgkgIHRyaWdnZXJpbmcgdW5uZWVkZWQgdXBkYXRlcy9hY3Rpb25zLgoKMjAxMC0xMC0yNSAxNDoxMzo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTAtMTAtMTEgMTc6NDk6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwZXJmb3JtIGJpdHJhdGUgaGFuZGxpbmcgYW5kIHBvc3RpbmcgYWZ0ZXIgbmV3c2VnbWVudCBzZW5kaW5nCgoyMDEwLTEwLTExIDE3OjM2OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1tZWRpYXRlbHkgcG9zdCBzdWJjbGFzcyBwcm92aWRlZCBiaXRyYXRlCgoyMDEwLTEwLTA1IDExOjE3OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBhZGQgc2tpcCBwcm9wZXJ0eSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiNWEzZDYwMzYzZDgzN2ExMGYwNTMzYzE0MWVjOTNkMTBiNzQyMzEyLgoJICBSZXZlcnRpbmcgdGhpcyBmb3Igbm93LCBzaW5jZSBubyBvbmUgcmVhbGx5IHNlZW1zIHRvIHJlbWVtYmVyIHdoeSB0aGlzCgkgIHByb3BlcnR5IGV4aXN0cyBvciB3aGF0IGl0IGNvdWxkIHBvc3NpYmx5IGJlIGdvb2QgZm9yLiBJdCBzZWVtcyB0byBoYXZlCgkgIGJlZW4gaW4gdGhlIG9yaWdpbmFsIG1wM3BhcnNlIHNpbmNlIHRoZSBiZWdpbm5pbmcgb2YgdGltZSBhbmQgd2FzIGJhY2stCgkgIHBvcnRlZCBmcm9tIHRoZXJlLgoKMjAxMC0xMC0wMyAyMzo1MDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcjogTGV0IHRoZSBmb3JtYXQgc3RyaW5nIGFncmVlIHdpdGggdGhlIHBhcmFtZXRlcnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDktMjIgMTU6NDQ6NDMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZGVidWcgb3V0cHV0CgkgIFdlIGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgYnVmZmVyIGFmdGVyIGdzdF9wYWRfcHVzaCgpLCBzbyB0aGUgZGVidWcKCSAgcHJpbnQgc2hvdWxkIGhhcHBlbiBiZWZvcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMDktMjkgMTY6MTI6NDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdXBwb3J0IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGluIHB1bGwgbW9kZSBvciB1cHN0cmVhbSBkcml2ZW4uCgoyMDEwLTA5LTI3IDEyOjE2OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRvbmUgVE9ET3MgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEwLTA5LTI1IDE0OjQwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGRldGVybWluZWQgc2Vla2FiaWxpdHkgaW4gYW5zd2VyaW5nIFNFRUtJTkcgcXVlcnkKCjIwMTAtMDktMjUgMTQ6MzI6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc2tpcCBwcm9wZXJ0eQoKMjAxMC0wOS0yMiAxNTowNzowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVzZSBfc2V0X2ZyYW1lX3Byb3BzIHRvIGNvbmZpZ3VyZSBmcmFtZSBsZWFkX2luIGFuZCBsZWFkX291dAoJICAuLi4gcHJvdmlkZWQgYSBjb3JyZXNwb25kaW5nIGRlY29kZXIgd2l0aCBzdWZmaWNpZW50IGxlYWRpbmcgYW5kIGZvbGxvd2luZwoJICBmcmFtZXMgdG8gY2Fycnkgb3V0IGZ1bGwgZGVjb2RpbmcgZm9yIGEgcGFydGljdWxhciBzZWdtZW50LgoKMjAxMC0wOS0yMiAxNDoxMzoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVzZSBfc2V0X2R1cmF0aW9uIHRvIGNvbmZpZ3VyZSBkdXJhdGlvbiB1cGRhdGUgaW50ZXJ2YWwKCSAgLi4uIGFzIGl0IGxvZ2ljYWxseSBiZWxvbmdzIHRoZXJlIGFzIG9uZSBvciB0aGUgb3RoZXI7IGVpdGhlciBzdWJjbGFzcwoJICBjYW4gcHJvdmlkZSBhIGR1cmF0aW9uLCBvciBhbiBlc3RpbWF0ZSBtdXN0IGJlIG1hZGUgKHJlZ3Vhcmx5IHVwZGF0ZWQpLgoKMjAxMC0wOS0yMiAxMzo1NToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGxvY2FsaXplIHVzZSBvZiBwcm92aWRlZCBmcHMgaW5mb3JtYXRpb24KCjIwMTAtMDktMjIgMTI6MTM6MTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZWVrIHRhYmxlIGFuZCBhY2N1cmF0ZSBzZWVrIHN1cHBvcnQKCjIwMTAtMDktMjEgMTM6NTc6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXIgYW5kIG1vcmUgZXh0ZW5kZWQgc2VnbWVudCBhbmQgc2VlayBoYW5kbGluZwoJICBUaGF0IGlzLCBsb29wIHBhdXNlIGhhbmRsaW5nLCBzZWdtZW50IHNlZWsgc3VwcG9ydCwgbmV3c2VnbWVudCBmb3IgZ2FwcywgZXRjCgoyMDEwLTA5LTIxIDEwOjU3OjA0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGluZGV4IHN1cHBvcnQKCjIwMTAtMDktMjEgMDk6NTk6NTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBzdGF0ZSByZXNldAoKMjAxMC0wOS0yMCAxNjozOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgaW5kZWZpbml0ZSByZXN5bmNpbmcKCjIwMTAtMDktMjAgMTM6NTc6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzcGVjaWZpYyBFT1MgaGFuZGxpbmcgaWYgbm8gb3V0cHV0IHNvIGZhcgoKMjAxMC0wOS0yMCAxMzozMTo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkanVzdCBfc2V0X2ZyYW1lX3Byb3AgZG9jdW1lbnRhdGlvbiBhbmQgc2V0IGRlZmF1bHQgYXMgY2xhaW1lZAoKMjAxMC0wOS0yMCAxMzozMDo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBiaXRyYXRlIGNvcHktYW5kLXBhc3RlIGFuZCB1cGRhdGUgaGV1cmlzdGljCgoyMDEwLTA5LTE3IDE4OjMzOjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9zdCBkdXJhdGlvbiBtZXNzYWdlIGlmIGF2ZXJhZ2UgYml0cmF0ZXMgaXMgdXBkYXRlZAoKMjAxMC0wOS0xNyAxODoyNDoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBpc19zZWVrYWJsZSB2bWV0aG9kIGFuZCB1c2UgYSBzZXRfc2VlayBpbnN0ZWFkCgkgIFNlZWthYmlsaXR5LCBsaWtlIGR1cmF0aW9uLCBldGMgaXMgdW5saWtlbHkgdG8gY2hhbmdlIChmcmVxdWVudGx5KSwgYW5kCgkgIHRoZSBkZWZhdWx0IGFzc3VtcHRpb24gY292ZXJzIG1vc3QgY2FzZXMsIHNvIGxldCBzdWJjbGFzcyBzZXQgd2hlbiBuZWVkZWQuCgkgIEF0IHRoZSBzYW1lIHRpbWUsIGFsbG93IHN1YmNsYXNzIHRvIGluZGljYXRlIGlmIGl0IGhhcyBzZWVrLW1ldGFkYXRhICh0YWJsZSkKCSAgYXZhaWxhYmxlLCBhbmQgcG9zc2libHkgaGF2ZSBpdCBwcm92aWRlIGFuIGF2ZXJhZ2UgYml0cmF0ZS4KCjIwMTAtMDktMTcgMTc6MjE6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgYW5vdGhlciBob29rIGZvciBzdWJjbGFzcyBwcmlvciB0byBwdXNoaW5nIGJ1ZmZlcgoJICAuLi4gYW5kIGFsbG93IHN1YmNsYXNzIHRvIHBlcmZvcm0gY3VzdG9tIHNlZ21lbnQgY2xpcHBpbmcsIG9yIHRvCgkgIGVtaXQgdGFncyBvciBtZXNzYWdlcyBhdCB0aGlzIHRpbWUuCgoyMDEwLTA5LTE3IDE3OjE5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogMCBjb252ZXJ0cyB0byAwIGJ5IGRlZmF1bHQKCjIwMTAtMDktMTYgMTg6NTY6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBjb252ZXJzaW9uIHVzaW5nIGhlbHBlciBmdW5jdGlvbiBhbmQgZXhwb3J0IGRlZmF1bHQgY29udmVydAoKMjAxMC0wOS0xNiAxODozNTo0NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHN0cmVhbWxpbmUgcXVlcnkgaGFuZGxpbmcKCjIwMTAtMDktMTYgMTE6NTE6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjbGVhbnVwIHN0cnVjdCBhbmQgcmVtb3ZlIHVudXNlZCBtZW1iZXIKCjIwMTAtMDktMjIgMTY6MDc6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbGxvdyBjaGFpbmluZyBvZiBzdWJjbGFzcyBldmVudCBoYW5kbGVycwoJICBUaGlzIGFsbG93cyB0aGUgY2hpbGQgY2xhc3MgdG8gY2hhaW4gaXRzIGV2ZW50IGhhbmRsZXIgd2l0aAoJICBHc3RCYXNlUGFyc2UsIHNvIHRoYXQgc3ViY2xhc3NlcyBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSBhbGwgdGhlIGRlZmF1bHQKCSAgZXZlbnQgaGFuZGxpbmcgbG9naWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMDgtMjcgMTg6MzU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbHNvIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBmb3IgVU5FWFBFQ1RFRCBhbmQgZG8gaXQKCSAgZm9yIE5PVF9MSU5LRUQuCgoyMDEwLTA5LTA2IDE0OjEyOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbm9uLVRJTUUgc2VlayBldmVudCBpcyBzaW1wbHkgbm90IGhhbmRsZWQKCjIwMTAtMDYtMTUgMTU6MzQ6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBldmVudCByZWYgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzM6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGFyaXRobWV0aWMgb3ZlcmZsb3dzIGluIHB1bGwgbW9kZSBidWZmZXIgY2FjaGUgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzI6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBoYW5kbGluZwoJICBBbGxvdyBhIGZldyBtb3JlIHNlZWsgZXZlbnQgdHlwZSBjb21iaW5hdGlvbnMsIGFuZCByZWFsbHkgdXNlIHRoZSByZXN1bHQKCSAgb2YgZ3N0X3NlZ21lbnRfc2V0X3NlZWsgdG8gcGVyZm9ybSB0aGUgc2Vlay4gIEFsc28gYWRkIHNvbWUgZGVidWcuCgoyMDEwLTAzLTI2IDE4OjU2OjQ5ICswMDAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgZW1pdCBiaXRyYXRlIHRhZ3MgdG9vIGVhcmx5CgkgIFdlIHdhaXQgdG8gcGFyc2UgYSBtaW5pbXVtIG51bWJlciBvZiBmcmFtZXMgKDEwLCBhcmJpdHJhcmlseSkgYmVmb3JlCgkgIGVtaXRpbmcgYml0cmF0ZSB0YWdzIHNvIHRoYXQgb3VyIGVhcmx5IGVzdGltYXRlcyBhcmUgbm90IHdpbGRseQoJICBpbmFjY3VyYXRlIGZvciBzdHJlYW1zIHRoYXQgc3RhcnQgd2l0aCBhIHNpbGVuY2UuIElmIHRoZSBzdHJlYW0gZW5kcwoJICBiZWZvcmUgdGhhdCwgd2UganVzdCBlbWl0IHRoZSB0YWdzIGFueXdheS4KCSAgV2hpbGUgaXQgX3dvdWxkXyBiZSBuaWNlciB0byBiZSBzcGVjaWZ5IHRoZSB0aHJlc2hvbGQgdG8gc3RhcnQgcHVzaGluZwoJICB0aGUgdGFncyBpbiB0ZXJtcyBvZiBkdXJhdGlvbiwgdGhpcyB3b3VsZCBpbnRyb2R1Y2UgbW9yZSBjb21wbGV4aXR5IHRoYW4KCSAgdGhpcyBtZXJpdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQ5OTEKCjIwMTAtMDMtMjYgMTg6MjA6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTZXQgdGhlIGxhc3Qgc3RvcCB0byB0aGUgYnVmZmVyIHN0YXJ0dGltZSBpZiB0aGUgZHVyYXRpb24gaXMgaW52YWxpZAoJICAuLi5pbnN0ZWFkIG9mIG5vdCBzZXR0aW5nIGl0IGF0IGFsbC4KCjIwMTAtMDMtMjYgMTg6MTk6MDAgKzAxMDAgIEpvc2h1YSBNLiBEb2UgPGpvc2hAam9zaGRvZS5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFNlbmQgTkVXU0VHTUVOVCBldmVudCB3aXRoIGNvcnJlY3Qgc3RhcnQgYW5kIHBvc2l0aW9uCgkgIEluc3RlYWQgb2YgdGFraW5nIHRoZSBsYXN0IHN0b3AgKHdoaWNoIGNvdWxkIGJlIGJ1ZmZlciBlbmR0aW1lIGluc3RlYWQKCSAgb2Ygc3RhcnR0aW1lKSBhbHdheXMgdGFrZSB0aGUgYnVmZmVyIHN0YXJ0dGltZS4KCSAgRml4ZXMgYnVnICM2MTQwMTYuCgoyMDEwLTAzLTI1IDE3OjA5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogcmVtb3ZlIHVudXNlZCBHc3RCYXNlUGFyc2VDbGFzc1ByaXZhdGUgc3RydWN0dXJlCgoyMDEwLTAzLTI1IDExOjIyOjU4ICswMDAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogQWRkIGJpdHJhdGUgY2FsY3VsYXRpb24gdG8gYmFzZXBhcnNlCgkgIFRoaXMgbWFrZXMgYmFzZXBhcnNlIGtlZXAgYSBydW5uaW5nIGF2ZXJhZ2Ugb2YgdGhlIHN0cmVhbSBiaXRyYXRlLCBhcwoJICB3ZWxsIGFzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGJpdHJhdGVzLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBhCgkgIHZmdW5jIHRvIG1ha2Ugc3VyZSB0aGF0IHBlci1mcmFtZSBvdmVyaGVhZCBmcm9tIHRoZSBjb250YWluZXIgaXMgbm90CgkgIGFjY291bnRlZCBmb3IgaW4gdGhlIGJpdHJhdGUgY2FsY3VsYXRpb24uCgkgIFdlIHRha2UgY2FyZSBub3QgdG8gb3ZlcnJpZGUgdGhlIGJpdHJhdGUsIG1pbmltdW0tYml0cmF0ZSwgYW5kCgkgIG1heGltdW0tYml0cmF0ZSB0YWdzIGlmIHRoZXkgaGF2ZSBiZWVuIHBvc3RlZCB1cHN0cmVhbS4gV2UgYWxzbwoJICByYXRlLWxpbWl0IHRoZSBlbWlzc2lvbiBvZiBiaXRyYXRlIHNvIHRoYXQgaXQgaXMgb25seSB0cmlnZ2VyZWQgYnkgYQoJICBjaGFuZ2Ugb2YgPjEwIGticHMuCgoyMDEwLTAxLTE0IDExOjUwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lIGJhc2VwYXJzZSBHVHlwZSBuYW1lIHRvIGF2b2lkIHBvc3NpYmxlIGNvbmZsaWN0cwoKMjAxMC0wMS0wNSAxNTowNTowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGRvY3VtZW50YXRpb24gZml4ZXMKCjIwMDktMTItMjEgMTg6MTg6MzkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGp1c3Qgc2VlayBoYW5kbGluZyBhbmQgbmV3c2VnbWVudCBzZW5kaW5nCgkgIFBlcmZvcm0gc2FuaXR5IGNoZWNrIG9uIHR5cGUgb2Ygc2VlaywgYW5kIG9ubHkgcGVyZm9ybSBvbmUgdGhhdCBpcwoJICBhcHByb3ByaWF0ZWx5IHN1cHBvcnRlZC4gIEFkanVzdCBkb3duc3RyZWFtIG5ld3NlZ21lbnQgZXZlbnQKCSAgdG8gZmlyc3QgYnVmZmVyIHRpbWVzdGFtcCB0aGF0IGlzIHNlbnQgZG93bnN0cmVhbS4KCjIwMDktMTItMjEgMTE6NTk6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciByZWZhY3RvciBjbGVhbnVwCgkgIEFsc28gYWRkIHNvbWUgZGVidWcgbG9nZ2luZy4KCjIwMDktMTItMTggMjE6MDI6NDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXBsZW1lbnQgbGVmdG92ZXIgZHJhaW5pbmcgaW4gcHVsbCBtb2RlCgoyMDA5LTEyLTE2IDE4OjM4OjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBkZWZhdWx0IGNvbnZlcnNpb24gdXNpbmcgYnBzIGlmIG5vIGZwcyBhdmFpbGFibGUKCSAgQWxzbyBzdG9yZSBlc3RpbWF0ZWQgZHVyYXRpb24gYXMgc3VjaCwgcmF0aGVyIHRoYW4gcHJldGVuZGluZyBvdGhlcndpc2UKCSAgKGUuZy4gc2V0IGJ5IHN1YmNsYXNzKS4KCjIwMDktMTItMTggMTM6MzA6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjaGVjayBmb3IgcmVtYWluaW5nIGRhdGEgd2hlbiBkcmFpbmluZyBpbiBwdXNoIG1vZGUKCjIwMDktMTItMTggMTM6MzA6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcHVsbCBtb2RlIGNhY2hlIHNpemUgY29tcGFyaXNvbgoKMjAwOS0xMi0xMSAxMDoyNToxNiAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlOiBmaXggYSBmb3JtYXQgc3RyaW5nIGFzIHJlcG9ydGVkIG9uIGlyYy4KCjIwMDktMTAtMjkgMTU6MTg6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjdXN0b20gYnVmZmVyZmxhZyBpbmRpY2F0ZXMgbm90IHRvIGNvdW50IGZyYW1lIGluIHN0YXRzCgoyMDA5LTExLTI3IDE3OjI3OjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVmZXJlbmNlIEdzdEJhc2VQYXJzZSBub3cgbGl2ZXMgaGVyZQoKMjAwOS0xMS0yOCAxODoxMzozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHJlbmFtZSAnYWFjcGFyc2UnIHBsdWdpbiB0byBnZW5lcmljICdhdWRpb3BhcnNlcnMnIHBsdWdpbgoKMjAwOS0xMC0yOSAxNjowNTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgcGFzc3Rocm91Z2ggbW9kZSB0byBkZWZhdWx0IChkaXNhYmxlZCkgb24gYWN0aXZhdGlvbgoKMjAwOS0xMC0yOSAxNToxNjo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZQoKMjAwOS0xMC0yOCAxNDowNjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXgvZW5oYW5jZSBESVNDT05UIG1hcmtpbmcKCSAgSW4gcGFydGljdWxhciwgY29uc2lkZXIgRElTQ09OVCA9PSAhc3luYywgYW5kIGFsbG93IHN1YmNsYXNzIHRvIHF1ZXJ5CgkgIHN5bmMgc3RhdGUsIGFzIGl0IG1heSB3YW50IHRvIHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3MgZGVwZW5kaW5nCgkgIG9uIHdoZXRoZXIgc3luYyB3YXMgYWNoaWV2ZWQgZWFybGllciBvbi4KCSAgQWxzbyBhcnJhbmdlIGZvciBzdWJjbGFzcyB0byBxdWVyeSB3aGV0aGVyIGxlZnRvdmVyIGRhdGEgaXMgYmVpbmcgZHJhaW5lZC4KCjIwMDktMTEtMjMgMTU6NDg6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRpbWVzdGFtcCBoYW5kbGluZywgYW5kIGRlZmF1bHQgY29udmVyc2lvbgoJICBJbiBwYXJ0aWN1bGFyLCAob3B0aW9uYWxseSkgcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBhIG5vdGlvbiBvZiBmcmFtZXMgcGVyIHNlY29uZAoJICAoYW5kIHRoZXJlZm9yZSBhbHNvIGZyYW1lIGR1cmF0aW9uKSBhbmQgaGF2ZSBpdCB0cmFjayBmcmFtZSBhbmQgYnl0ZSBjb3VudHMuCgkgIFRoaXMgd2F5LCBzdWJjbGFzcyBjYW4gcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBmcHMgYW5kIGhhdmUgaXQgcHJvdmlkZSBkZWZhdWx0CgkgIGJ1ZmZlciB0aW1lIG1ldGFkYXRhIGFuZCBjb252ZXJzaW9ucywgdGhvdWdoIHN1YmNsYXNzIGNhbiBzdGlsbCBpbnN0YWxsCgkgIGNhbGxiYWNrcyB0byBoYW5kbGUgc3VjaCBpdHNlbGYuCgoyMDA5LTEwLTI4IDEyOjAyOjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEwLTI4IDEyOjAwOjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2VfZml4ZWRfY2FwcyBmb3Igc3JjIHBhZAoJICBBZnRlciBhbGwsIHN0cmVhbSBpcyBhcy1pcywgYW5kIHRoZXJlIGlzIGxpdHRsZSBtb2xkaW5nIHRvIGRvd25zdHJlYW0ncwoJICB0YXN0ZSB0aGF0IGNhbiBiZSBkb25lLiAgSWYgc3ViY2xhc3MgY2FuIGFuZCB3YW50cyB0byBkbyBzbywgaXQgY2FuCgkgIHN0aWxsIG92ZXJyaWRlIGFzIHN1Y2guCgoyMDA5LTExLTIwIDE3OjMyOjEzICswMTAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AZmx1ZW5kby5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMTAtMTEgMTE6MjI6MTEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYWFjcGFyc2U6IGZpeCB3YXJuaW5ncyBpbiBtYWNvc3ggc25vdyBsZW9wYXJkCgoyMDA5LTA5LTI1IDE3OjAyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogZm9yZWdvIChib2d1cykgcGFyc2luZyBvZiBhbHJlYWR5IHBhcnNlZCAocmF3KSBpbnB1dAoKMjAwOS0wOC0wNyAxMzowNzoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmZpbml0ZSBsb29wIHdoZW4gZHJhaW5pbmcKCjIwMDktMDgtMDcgMTM6MDY6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAwOS0wNy0xNCAxNDowODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYWFjcGFyc2U6IEFkZCBmdW5jdGlvbiBmb3IgdGhlIGJhc2VwYXJzZSBzdWJjbGFzcyB0byBwdXNoIGJ1ZmZlcnMgZG93bnN0cmVhbQoJICBBbHNvIGhhbmRsZSB0aGUgY2FzZSBncmFjZWZ1bGx5IHdoZXJlIHRoZSBzdWJjbGFzcyBkZWNpZGVzIHRvIGRyb3AKCSAgdGhlIGZpcnN0IGJ1ZmZlcnMgYW5kIGhhcyBubyBjYXBzIHNldCB5ZXQuIEl0J3Mgc3RpbGwgcmVxdWlyZWQgdG8KCSAgaGF2ZSB2YWxpZCBjYXBzIHNldCB3aGVuIHRoZSBmaXJzdCBidWZmZXIgc2hvdWxkIGJlIHBhc3NlZCBkb3duc3RyZWFtLgoKMjAwOS0wNy0xNCAxNDowNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNlZWsgZXZlbnQgbGVha2luZwoKMjAwOS0wNi0wMSAxMzo1NjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGFnYXRlIHJldHVybiB2YWx1ZSBvZiBHc3RCYXNlUGFyc2U6OnNldF9zaW5rX2NhcHMoKQoJICBnc3RfYmFzZV9wYXJzZV9zaW5rX3NldGNhcHMoKSBwcmVzdW1hYmx5IHNob3VsZCBmYWlsIGlmIHRoZSBzdWJjbGFzcwoJICByZXR1cm5zIEZBTFNFIGZyb20gaXRzIDo6c2V0X3NpbmtfY2FwcygpIGZ1bmN0aW9uLgoKMjAwOS0wNi0wMSAxMzo0NzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdHJ5IHRvIEdTVF9MT0cgYW4gYWxyZWFkeS1mcmVlZCBjYXBzIHN0cmluZwoJICBUaGUgcHJvcGVyIHdheSB0byBsb2cgY2FwcyBpcyB2aWEgR1NUX1BUUl9GT1JNQVQgYW55d2F5LgoKMjAwOS0wNS0yNiAxOTo0Mzo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGRlYnVnIGNhdGVnb3J5CgoyMDA5LTA0LTI3IDIyOjM5OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggKHJlZ3Jlc3Npb24gaW4pIG5ld3NlZ21lbnQgaGFuZGxpbmcKCSAgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKS4gIEZpeGVzICM1ODAxMzMuCgoyMDA5LTA0LTA3IDA0OjUzOjAyICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzbGlnaHRseSBicm9rZW4gYnVmZmVyLWluLXNlZ21lbnQgY2hlY2sgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKQoKMjAwOS0wNC0wNSAwMzo1MDoxOSArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggcHVzaCBtb2RlIHNlZWtpbmcgKGFhY3BhcnNlLCBhbXJwYXJzZSkKCSAgU2VuZGluZyB0aGUgZmx1c2gtc3RhcnQgZXZlbnQgZm9yd2FyZCBiZWZvcmUgdGFraW5nIHRoZSBzdHJlYW0gbG9jayBhY3R1YWxseQoJICB3b3JrcywgaW4gY29udHJhc3QgdG8gZGVhZGxvY2tpbmcgaW4gZG93bnN0cmVhbSBwcmVyb2xsX3dhaXQgKGh1bmsgMSkuCgkgIEFmdGVyIHRoYXQgd2UgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBiZWluZyBzdHVjayBpbiBhIGJ1c3kgbG9vcC4gVGhpcyBpcyBmaXhlZAoJICBieSB1cGRhdGluZyB0aGUgbWluaW11bSBmcmFtZSBzaXplIGluc2lkZSB0aGUgc3luY2hyb25pemF0aW9uIGxvb3AgYmVjYXVzZSB0aGUKCSAgc3ViY2xhc3MgYXNrcyBmb3IgbW9yZSBkYXRhIGluIHRoaXMgd2F5IChodW5rIDIpLgoJICBGaW5hbGx5LCB0aGlzIGxlYWRzIHRvIGEgdmVyeSBwcm9iYWJsZSBjcmFzaCBiZWNhdXNlIHRoZSBzdWJjbGFzcyBjYW4gZmluZCBhCgkgIHZhbGlkIGZyYW1lIHdpdGggYSBzaXplIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBkYXRhIGluIHRoZQoJICBhZGFwdGVyLiBUaGlzIG1ha2VzIHRoZSBzdWJzZXF1ZW50IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyIGNhbGwgcmV0dXJuIE5VTEwsCgkgIHdoaWNoIGlzIG5vdCBleHBlY3RlZCAoaHVuayAzKS4KCjIwMDktMDMtMzEgMTY6MDc6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERlbGF5IG5ld3NlZ21lbnQgYXMgbG9uZyBhcyBwb3NzaWJsZS4KCSAgSWYgbmV3c2VnbWVudCBpcyBzZW50ICh0b28pIGVhcmx5LCBjYXBzIG1heSBub3QgeWV0IGJlIGZpeGVkL3NldCwKCSAgYW5kIGRvd25zdHJlYW0gbWF5IG5vdCBoYXZlIGJlZW4gbGlua2VkLgoKMjAwOS0wMi0yNyAxMToyNDozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVydCBsYXN0IGNoYW5nZSBhbmQgcHJvcGVybHkgZml4CgkgIEJhc2VwYXJzZSBpbnRlcm5hbHkgYnJlYWtzIHRoZSBzZW1hbnRpY3Mgb2YgYSBfY2hhaW4gZnVuY3Rpb24gYnkgY2FsbGluZyBpdCB3aXRoCgkgIGJ1ZmZlcj09TlVMTC4gVGhlIHJlc29uIEkgYmVsaXZlZCBpdCB3YXMgb2theSB0byByZW1vdmUgaXQgd2FzIHRoYXQgdGhlcmUgaXMKCSAgYWxzbyBhbiB1bmNoZWNrZWQgYWNjZXNzIHRvIGJ1ZmZlciBsYXRlciBpbiBfY2hhaW4uIEFjdHVhbGx5IHRoYXQgY29kZSBpcyB3cm9uZywKCSAgYXMgaXQgbW9zdCBwcm9iYWJseSB3YW50cyB0byBzZXQgZGlzY29udCBvbiB0aGUgb3V0Z29pbmcgYnVmZmVyLgoKMjAwOS0wMi0yNiAxMTowMjowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjaGVja3MgZm9yIGJ1ZmZlcj09TlVMTAoJICBBY2NvcmRpZm4gdG8gZG9jcyBmb3IgR3N0UGFkQ2hhaW5GdW5jdGlvbiBidWZmZXIgY2Fubm90IGJlIE5VTEwuIElmIHdlIHdvdWxkCgkgIGxlYXZlIHRoZSBjaGVjaywgd2Ugd291bGQgYWxzbyBuZWVkIG1vcmUgc3VjaCBjaGVjayBiZWxvdy4KCjIwMDktMDEtMzAgMTg6MTg6MTAgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbi4KCSAgRml4IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlZmF1bHQgcGFyc2VfZnJhbWUgZnVuY3Rpb24gaW4gYm90aAoJICBjb3BpZXMgb2YgR3N0QmFzZVBhcnNlCgoyMDA4LTExLTEzIDE0OjIxOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgRml4IGJhc2VwYXJzZSB0eXBlIG5hbWUuCgoyMDA4LTExLTEzIDEyOjU5OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYWFjcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmg6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmg6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgQWRkIHR3byBuZXcgYmFzZXBhcnNlIGJhc2VkIHBhcnNlcnMgKGFhYyBhbmQgYW1yKSBmcm9tIEJ1ZyAjNTE4ODU3LgoKMjAxMS0wMy0yMCAwMDo1NjowOCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogTWFrZSBzcmMgcXVlcnkgTVQtc2FmZQoJICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvaW5nIGRvd24gd2hpbGUgdGhlIGV2ZW50IGFycml2ZXMKCjIwMTEtMDMtMjAgMDA6NTY6MDggKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHNyYyBxdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wNC0wOCAxNDo1NjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBVbnJlZiBldmVudHMgaWYgdGhlIHBhcmVudCBlbGVtZW50IGRpc2FwcGVhcmVkCgoyMDExLTAzLTIxIDE2OjAxOjA1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBNYWtlIHVwc3RyZWFtIGV2ZW50cyBNVC1zYWZlCgoyMDExLTA0LTA4IDE0OjU1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogVW5yZWYgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoJICBBbmQgYWxzbyB1bnJlZiBldmVudHMgaWYgdGhlIGJhc2V0cmFuc2Zvcm0gc3ViY2xhc3MgaGFzIG5vCgkgIGV2ZW50IGhhbmRsZXIgYW5kIHRoZSBldmVudCBpcyBub3QgZm9yd2FyZGVkIGF0IGFsbC4KCjIwMTEtMDMtMjEgMTY6MDE6MDUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wMy0yOSAxMTo1NzowNiArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhc2VsbkBjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGdzdHF1ZXVlLCBnc3RxdWV1ZTI6IGNoZWNrIGlmIHBhcmVudCBvZiBwYWQgaXMgTlVMTCBpbiBfZ2V0Y2FwcwoJICBQYXJlbnQgb2YgdGhlIHBhZCAodGhlIHF1ZXVlKSBtYXkgYmUgc2V0IHRvIE5VTEwgd2hpbGUgdGhlcmUgaXMKCSAgYSBidWZmZXIgYWxsb2MgZ29pbmcgb24uCgoyMDExLTA0LTA4IDE0OjUwOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggZ2V0Y2FwcyBhbmQgZXZlbnQgZnVuY3Rpb24gZnJvbSBsYXN0IGNvbW1pdAoJICBSZXR1cm4gQU5ZIGNhcHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZCwgaS5lLiB0aGUgdGVtcGxhdGUgY2FwcwoJICBhbmQgZG9uJ3QgbGVhayBldmVudHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZC4KCjIwMTEtMDQtMDEgMDg6NDY6MTQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGFnYWluc3QgcGFkLXBhcmVudCBkaXNhcHBlYXJpbmcKCjIwMTAtMTItMTQgMTY6MDY6NDYgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogcmVzeW5jIHRvIGF2b2lkIGluZmluaXRlIGxvb3AKCjIwMTEtMDQtMDggMDk6MjA6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wNC0wOCAwOToxNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUmVtb3ZlZCB1bnVzZWQgR0NvbmQKCjIwMTEtMDQtMDggMDk6MDc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBhbm90aGVyIGNoZWNrIGZvciB0aGUgZmx1c2hpbmcgZmxhZyBhZnRlciB0YWtpbmcgdGhlIGxvY2sKCSAgVGhpcyBwcmV2ZW50cyBhbm90aGVyIHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIGZsdXNoaW5nIHRoZSBwYWQKCSAgYXQgZXhhY3RseSB0aGUgcmlnaHQgdGltZS4KCjIwMTEtMDQtMDcgMTE6MjQ6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEltbWVkaWF0ZWx5IGRyb3AgbWVzc2FnZXMgYWZ0ZXIgY2FsbGluZyB0aGUgc3luYyBoYW5kbGVyIGlmIHRoaXMgaXMgYSBzeW5jaHJvbm91cyBidXMKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHdhaXQgZm9yZXZlciBmb3IgdGhlIG1lc3NhZ2UgdG8gYmUgcG9wcGVkIGZyb20KCSAgdGhlIHF1ZXVlIGlmIGEgc3luYyBoYW5kbGVyIHJldHVybmVkIEdTVF9CVVNfQVNZTkMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMTE6MTk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVzZSBhIGNvbnN0cnVjdC1vbmx5IHByb3BlcnR5IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gY2hpbGQgYnVzZXMgYW5kIG5vcm1hbCBidXNlcwoJICBUaGlzIGFsbG93cyB0byBvbmx5IGNyZWF0ZSB0aGUgc29ja2V0cGFpciB3aGVuIGl0IGlzIHJlYWxseSByZXF1aXJlZCBpbnN0ZWFkCgkgIG9mIGFsd2F5cyBjcmVhdGluZyBpdCBhbmQgaW1tZWRpYXRlbHkgZGVzdHJveWluZyBpdCBhZ2FpbiBmb3IgY2hpbGQgYnVzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMjA6NDc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3IgcXVldWUyCgoyMDExLTA0LTA3IDIwOjQ1OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlciBsZWFrIG9uIGVvcyB3aGVuIHVzaW5nIHRoZSByaW5nIGJ1ZmZlcgoKMjAxMS0wMS0xMSAxNDoyNzozNSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4ZXMgbWVtb3J5IGxlYWsgb24gb3V0X2ZsdXNoaW5nIGVycm9yIGluIGdzdF9xdWV1ZTJfY3JlYXRlX3JlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY5NzIKCjIwMTEtMDQtMDcgMTk6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMTEtMDQtMDcgMTc6MzQ6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBtaW5vciBlbGVtZW50IGRlc2NyaXB0aW9uIGZpeAoKMjAxMS0wNC0wNyAxNjoxMzo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDcgMTY6MDI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkKCSAgQWRkIGEgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQgbm90IGJlIHNoYXJlZAoJICBiZXR3ZWVuIGJ1ZmZlcnMuCgoyMDExLTA0LTA3IDE2OjA4OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBkb2NzOiByZW1vdmUgZmlsZSBhcyB3ZSBoYXZlIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dAoKMjAxMS0wNC0wNyAxMDo0ODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSGFuZGxlIHRhZyBhbmQgY3VzdG9tIGRvd25zdHJlYW0gZXZlbnRzIHRoZSBzYW1lCgkgIEVzcGVjaWFsbHkgZHJvcCB0YWcgZXZlbnRzIHdoZW4gZmx1c2hpbmcgdG8gbm90IHNlbmQgdGhlbSBvdmVyCgkgIGFuZCBvdmVyIGFnYWluLgoJICBTaG91bGQndmUgYmVlbiBpbiB0aGUgbGFzdCBjb21taXQgYWxyZWFkeSBidXQgSSBmb3Jnb3QgdG8gY2FsbAoJICBnaXQgcmViYXNlIC0tY29udGludWUuLi4KCjIwMTEtMDQtMDcgMTA6NDA6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJsYQoKMjAxMS0wNC0wNyAxMDoyOTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCBzeW5jcm9uaXplZCBjdXN0b20gZG93bnN0cmVhbS9ib3RoIGV2ZW50cyBkb3duc3RyZWFtIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQKCSAgSW5zdGVhZCBvZiBqdXN0IHNpbGVudGx5IGRyb3BwaW5nIHRoZW0uIFRoZSBzYW1lIHdhcyBkb25lIGZvciB0YWcgZXZlbnRzCgkgIGJlZm9yZSBhbHJlYWR5LgoJICBGaXhlcyBidWcgIzYzNTcxOC4KCjIwMTEtMDQtMDYgMTk6MTk6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZG9uJ3QgZm9sbG93IHRoZSBwYXJlbnQgaW4gdGhlIGZhbGxiYWNrIHNoYXJlCgoyMDExLTA0LTA2IDE4OjU3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBidWZmZXI6IG1ha2UgbWVtb3J5IHdyaXRhYmxlIGluIF9wZWVrCgkgIE1ha2UgdGhlIG1lbW9yeSB3cml0YWJsZSB3aGVuIHdlIGFyZSBhc2tlZCB0byBfcGVlayB3aXRoIE1BUF9XUklURS4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgbWluaW9iamVjdC4KCjIwMTEtMDQtMDYgMTY6Mzc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZGVidWcKCjIwMTEtMDQtMDYgMTQ6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNiAxNDowNjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIHByaXZhdGUgQVBJIHRvIHNldCBhIEdzdEJ1cyBpbiBjaGlsZCBtb2RlCgkgIFRoaXMgaXMgdXNlZCBieSBHc3RCaW4gdG8gY3JlYXRlIGEgY2hpbGQgYnVzIHdpdGhvdXQKCSAgYSBzb2NrZXRwYWlyIGJlY2F1c2UgY2hpbGQgYnVzZXMgd2lsbCBhbHdheXMgd29yawoJICBzeW5jaHJvbm91cy4gT3RoZXJ3aXNlIHRvbyBtYW55IHNvY2tldHMgY291bGQgYmUKCSAgY3JlYXRlZCBhbmQgdGhlIGxpbWl0IG9mIGZpbGUgZGVzY3JpcHRvcnMgZm9yIHRoZQoJICBwcm9jZXNzIGNvdWxkIGJlIHJlYWNoZWQuCgkgIEZpeGVzIGJ1ZyAjNjQ2NjI0LgoKMjAxMS0wNC0wNiAxMzo1Njo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDRiZjhmMTUyNGY2ZTMzNzRiM2YzYmM1NzMyMjMzNzcyM2QwNmI5MjguCgoyMDExLTA0LTA2IDEzOjU2OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IENoZWNrIGlmIHBlbmRpbmcgbWVzc2FnZXMgYXJlIGluIHRoZSBxdWV1ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZDFjNDAwMTE0MzRjMWVmYWE2OTZkYzk4ZWY4NTVlZjljY2U5YjI4LgoKMjAxMS0wNC0wNiAxMTozODo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogbWFrZSB0ZXN0c19tYW55X2JpbnMgaW4gYmluIHVuaXQgdGVzdCBhIGJpdCBmYXN0ZXIKCSAgTm90IGRvaW5nIGV4cGVuc2l2ZSBjaGVja3Mgd2hlbiBsaW5raW5nIGVsZW1lbnRzIG1ha2VzIHRoaW5ncwoJICBtdWNoIGZhc3Rlci4KCjIwMTEtMDQtMDYgMTE6MzA6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IGFkZCBzb21lIHF1ZXVlcyB0byB0ZXN0X21hbnlfYmlucyB1bml0IHRlc3QKCSAgVG8gbGltaXQgdGhlIG51bWJlciBvZiBjYWxscyBpbiBhIHJvdyBwZXIgdGhyZWFkLgoKMjAxMS0wNC0wNiAxMjowMzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQ2hlY2sgaWYgcGVuZGluZyBtZXNzYWdlcyBhcmUgaW4gdGhlIHF1ZXVlCgkgIFdlIGNhbid0IHJlbHkgY29tcGxldGVseSBvbiB0aGUgcG9sbCBmZCBiZWNhdXNlIHRoZSBmZCBtaWdodCBiZQoJICBjcmVhdGVkIGFmdGVyIG1lc3NhZ2VzIHdlcmUgcG9zdGVkIHRvIHRoZSBidXMuCgoyMDExLTA0LTA2IDExOjQ1OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogR3N0RGF0ZS9HRGF0ZSBoYXMgYSBhYmJyZXZpYXRpb24gbm93CgoyMDExLTA0LTAzIDE2OjExOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBhZGQgR3N0QmluIHVuaXQgdGVzdCB0aGF0IGNyZWF0ZXMgYSBsb3Qgb2YgYmlucwoJICBDdXJyZW50bHkgZmFpbHMgKGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzKSBiZWNhdXNlIHdlIGNyZWF0ZSBhCgkgIHNvY2tldCBwYWlyIGZvciBlYWNoIGJpbidzIGJ1cyBhbmQgZXhoYXVzdCB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZQoJICBmaWxlIGRlc2NyaXB0b3JzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjI0CgoyMDExLTA0LTA1IDE2OjIyOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkCgkgIE90aGVyd2lzZSBhIG5ldyBvbmUgd291bGQgYmUgY3JlYXRlZCBmb3IgZXZlcnkgc2luZ2xlIGJ1cyBhbmQKCSAgdGhlIHByb2Nlc3MgY291bGQgZWFzaWx5IHJ1biBvdXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCSAgRml4ZXMgYnVnICM2NDY2MjQuCgoyMDExLTA0LTA1IDE0OjM2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgZGF0ZSBhcyBhIHR5cGUgYWJicmV2aWF0aW9uIG9mIEdEYXRlCgkgIFNlZSBidWcgIzY0NjY5Ni4KCjIwMTEtMDQtMDQgMTU6NTY6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWNjYmUwOSB0byBjM2NhZmUxCgoyMDExLTA0LTA0IDExOjE3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNCAwMzozMzo0NiArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IHJldHJ5IHJlYWRpbmcgdGhlIGNvbnRyb2wgc29ja2V0IHRvIHJlbGVhc2UgcHJvcGVybHkgYWxsIHdha2V1cHMKCSAgaWYgc2V0LT5jb250cm9sX3BlbmRpbmcgaXMgc2V0IHRvIDAgYnV0IHdlIGRpZG4ndCBub3Qgc3VjY2VkIHJlYWRpbmcKCSAgdGhlIGNvbnRyb2wgc29ja2V0LCBmdXR1cmUgY2FsbHMgdG8gZ3N0X3BvbGxfd2FpdCgpIHdpbGwgYmUgYXdhaWtlbgoJICBieSB0aGUgY29udHJvbCBzb2NrZXQgd2hpY2ggd2lsbCBub3QgYmUgcmVsZWFzZWQgcHJvcGVybHkgYmVjYXVzZQoJICBzZXQtPmNvbnRyb2xfcGVuZGluZyBpcyBhbHJlYWR5IDAsIGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcC4KCjIwMTEtMDQtMDQgMTA6MTg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERvbid0IGFsbG93IGludmFsaWQgR0RhdGVzIGluIGFsbCBzdHJ1Y3R1cmVzIGFuZCBkb24ndCBhbGxvdyBOVUxMIEdEYXRlcyBpbiB0YWdsaXN0cwoJICBTb21lIGNvZGUgKGUuZy4gZ3N0dm9yYmlzdGFnLmMpIGFzc3VtZXMgbm9uLU5VTEwgR0RhdGVzIGluIHRhZ2xpc3RzIGFuZAoJICBleHBsb2RlcyBvdGhlcndpc2UgYW5kIE5VTEwgb3IgaW52YWxpZCBHRGF0ZXMgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheS4KCjIwMTEtMDMtMjUgMTU6NTY6MDcgKzAxMDAgIFRob21hcyBLcmlzdGVuc2VuIDx0aG9tYXMua3Jpc3RlbnNlbkBjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBkb24ndCBjYWxsIFdTQVdhaXRGb3JNdWx0aXBsZUV2ZW50cyB3aXRoIG5vIGV2ZW50cwoJICBGaXhlcyBlcnJvciBjYXVnaHQgYnkgTWljcm9zb2Z0IEFwcGxpY2F0aW9uIFZlcmlmaWVyLgoKMjAxMS0wNC0wMyAxNjoxODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIHBvaW50ZXIgdG8gcGFydC1zZWVraW5nLnR4dCBkZXNpZ24gZG9jcyB0byBldmVudCBzZWVrIGZsYWdzIGRvY3MKCjIwMTEtMDQtMDMgMTY6MTg6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBpZ25vcmUgbmV3IGZ1bm5lbCB1bml0IHRlc3QgYmluYXJ5CgoyMDExLTA0LTAyIDE0OjUxOjE4ICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEF2b2lkIHVzaW5nICJ0eXBlIiBhcyBuYW1lIGZvciBhIHZhcmlhYmxlIGFuZCBhIG1hY3JvIGFyZ3VtZW50IGluIEdTVF9CT0lMRVJQTEFURQoJICBUaGlzIGNhdXNlZCAicmUtZGVjbGFyYXRpb24iIHByb2JsZW1zLgoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuYzogSW4gZnVuY3Rpb24g4oCYY2x1dHRlcl9nc3RfdmlkZW9fc2lua19pbml0X2ludGVyZmFjZXPigJk6CgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5jOjIzMToxOiB3YXJuaW5nOiBkZWNsYXJhdGlvbiBvZiDigJhDbHV0dGVyR3N0VmlkZW9TaW5r4oCZIHNoYWRvd3MgYSBnbG9iYWwgZGVjbGFyYXRpb24gWy1Xc2hhZG93XQoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuaDo2NDo0NDogd2FybmluZzogc2hhZG93ZWQgZGVjbGFyYXRpb24gaXMgaGVyZSBbLVdzaGFkb3ddCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY1MzEKCjIwMTEtMDQtMDEgMTM6NTY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogV2hlbiByZXF1ZXN0aW5nIGFuIGV4aXN0aW5nIHBhZCBwcmludCBhIGdfY3JpdGljYWwoKSBpbnN0ZWFkIG9mIHVzaW5nIGFuIGFzc2VydGlvbgoJICBTb21lIGFwcGxpY2F0aW9ucyBhcmUgcmVxdWVzdGluZyB0aGUgc2FtZSBwYWQgbmFtZSBtdWx0aXBsZSB0aW1lcwoJICBhbmQgdGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgYW5kIGRpZmZlcmVudCBmcm9tIGVsZW1lbnQgdG8gZWxlbWVudAoJICBidXQgd2UgZG9uJ3Qgd2FudCB0byBicmVhayBhcHBsaWNhdGlvbnMgdGhhdCB3b3JrIGp1c3QgZmluZS4KCSAgSW4gMC4xMSB0aGlzIGNoZWNrIHNob3VsZCBiZSBhbiBhc3NlcnRpb24gYWdhaW4sIGFsdGhvdWdoIGVsZW1lbnRzCgkgIGhhdmUgdG8gZG8gbWFudWFsIGNoZWNraW5nIGlmIHRoZSBwYWQgYWxyZWFkeSBleGlzdHMgYWdhaW4gYmVjYXVzZQoJICBpdCBjYW4ndCBiZSBkb25lIGluIGEgdGhyZWFkc2FmZSB3YXkgaGVyZS4KCjIwMTEtMDQtMDEgMTM6NTM6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVXNlIGdpbnQ2NC9ndWludDY0IHN0cmluZyBwYXJzaW5nIGZ1bmN0aW9ucwoJICBBbmQgY2hlY2sgdGhhdCB0aGUgcmVxdWVzdGVkIHBhZCBuYW1lcyBhcmUgaW5zaWRlIHRoZSB2YWxpZAoJICBnaW50L2d1aW50IHJhbmdlLgoKMjAxMS0wNC0wMSAxMzo1MTozMSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc3RydG9bdV1sKCkgcmV0dXJucyBhIGdbdV1sb25nCgoyMDExLTA0LTAxIDEwOjQ3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wMSAxMDo0NjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlIHdpdGggYnVmZmVybGlzdCBjaGFuZ2VzCgoyMDExLTAzLTMxIDE5OjI1OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBkb2N1bWVudCBleHBlY3RlZCBiZWhhdmlvdXIgZm9yIEFDQ1VSQVRFIGFuZCBLRVlfVU5JVCBzZWVrIGZsYWdzCgoyMDExLTAzLTMxIDE4OjM5OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IGRvbid0IGFkZCBOVUxMIGRhdGEKCjIwMTEtMDMtMzEgMTc6NTU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaAoKMjAxMS0wMy0zMSAxNzo1MTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IHNpbXBsaWZ5IGJ1ZmZlcmxpc3RzCgkgIFdlIG5vdyBoYXZlIG11bHRpcGxlIG1lbW9yeSBibG9ja3MgYXMgcGFydCBvZiB0aGUgYnVmZmVycyBhbmQgd2UgY2FuIHRoZXJlZm9yZQoJICByZWR1Y2UgdGhlIGJ1ZmZlcmxpc3QgdG8gYSBzaW1wbGUgYXJyYXkgb2YgYnVmZmVycy4KCjIwMTEtMDMtMzEgMTA6NTM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgZ3N0YWJpOiBBZGQgc29tZSBuZXcgc3RydWN0dXJlcyBmb3IgeDg2LTY0CgoyMDExLTAzLTMxIDEwOjQ2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgbGlic2FiaTogQWRkIGxvdHMgb2YgbmV3IHN0cnVjdHVyZXMgZm9yIHg4Ni02NAoKMjAxMS0wMy0zMSAxMDozMToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wMy0zMCAyMDowNToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogZml4IGZvciBBUEkgY2hhbmdlCgoyMDExLTAzLTMwIDE5OjU4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMS1mZG8KCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGdzdC9nc3RlbGVtZW50LmMKCjIwMTEtMDMtMzAgMTk6MDE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTEtMDMtMzAgMTg6NDU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDExLTAzLTMwIDE2OjQ3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgQVBJIHR3ZWFrcwoJICBfdHJpbSAtPiBfcmVzaXplCgkgIF9jcmVhdGVfc3ViIC0+IGNvcHlfcmVnaW9uCgoyMDExLTAzLTMwIDE1OjI5OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxMS0wMy0zMCAxMzowNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZGVzaWduOiB1cGRhdGUgZG9jcwoKMjAxMS0wMy0zMCAxMDo0ODo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIGFzc2lnbm1lbnQgb2YgcXVldWUgSURzIGFuZCBwYWQgbmFtZXMgdGhyZWFkc2FmZQoJICBBbHNvIGFkZCBhIHRlc3QgZm9yIG5hbWluZyBwYWRzIGJ5IHRoZSBjYWxsZXIgYW5kIHJldHVybiBOVUxMCgkgIHdoZW4gcmVxdWVzdGluZyBhbiBhbHJlYWR5IGV4aXN0aW5nIHBhZC4KCjIwMTEtMDMtMjkgMjM6NTg6NDMgKzAyMDAgIEFuZHJlYXMgRnJpc2NoIDxmcmF4aW5hc0BvcGVuZHJlYW1ib3gub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFNldCB0aGUgc2luZ2xlIHF1ZXVlIElEIHRvIHRoZSBJRCBvZiB0aGUgcmVxdWVzdGVkIHBhZCBpZiBvbmUgd2FzIGdpdmVuIGJ5IHRoZSBjYWxsZXIKCjIwMTEtMDMtMjkgMTk6MTc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGZ1cnRoZXIgbWVtb3J5IHR3ZWFraW5nCgkgIEFsbG93IGZvciBhdXRvbWF0aWMgbWVyZ2luZyBvZiBtZW1vcnkgYmxvY2sgaW4gdGhlIF9tYXAgZnVuY3Rpb24gYW5kIGF1dG9tYXRpYwoJICBmcmVlaW5nIG9mIHRoZSB0ZW1wb3JhcnkgbWVtb3J5LgoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMuCgkgIEFkZCBwb3NzaWJpbGl0eSB0byBmb3JjZSB3cml0YWJsZSBzcGFubmVkIG1lbW9yeS4KCjIwMTEtMDMtMjkgMTc6MTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wbGVtZW50IENPUFlfTUVSR0UKCjIwMTEtMDMtMjkgMTY6NTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBjbGVhbiB1cCBfc3BhbiBhbmQgYWRkIG1vcmUgZ19yZXR1cm5faWYuLgoKMjAxMS0wMy0yOSAxNjoyMjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggc2FuaXR5IGNoZWNrcyBmb3IgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIHdpdGhvdXQgJQoKMjAxMS0wMy0yOSAxMzo1MToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9wdGltaXplIG1lbW9yeSBoYW5kbGluZwoKMjAxMS0wMy0yOSAxMTo1Nzo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgc29tZSBtb3JlIHNhbml0eSBjaGVja3MgdG8gdGhlIHBhZCBuYW1lIGNoZWNraW5nIG9mIHJlcXVlc3QgcGFkcyBpbiBhbGwgY2FzZXMKCSAgRXNwZWNpYWxseSBjaGVjayBpZiBhIHBhZCB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4KCjIwMTEtMDMtMjkgMTE6NTI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2hlY2sgJXUgdG9vIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBwYWQgdGVtcGxhdGUgZm9yIGEgcmVxdWVzdCBwYWQKCjIwMTEtMDMtMjkgMTE6MzE6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtb3ZlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgaW4gcHJpdmF0ZSBzdHJ1Y3QKCjIwMTEtMDMtMjggMjE6MDE6MTMgKzAyMDAgIEZyYXhpbmFzIDxhbmRyZWFzLmZyaXNjaEBtdWx0aW1lZGlhLWxhYnMuZGU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGFyYml0cmFyeSBzaW5rICsgc291cmNlIHBhZCBuYW1pbmcKCSAgVXNlIHRoZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciBmb3IgdGhlIHNpbmtwYWQgbmFtZQoJICBpZiBwb3NzaWJsZS4gTm90ZSB0aGF0IGFsbCBzYW5pdHkgY2hlY2tpbmcgZm9yIHRoaXMgbmFtZQoJICBpcyBhbHJlYWR5IGRvbmUgaW4gR3N0RWxlbWVudC4KCSAgRml4ZXMgQnVnICM2NDU5MzEKCjIwMTEtMDMtMjkgMTE6MTg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGJlaGF2aW91ciBvZiBmdW5uZWwKCjIwMTEtMDMtMjkgMTE6MDg6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTZW5kIGEgbmV3c2VnbWVudCBldmVudCBhZnRlciBmbHVzaC1zdG9wCgoyMDExLTAzLTI5IDExOjA3OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU29tZSByYW5kb20gY2xlYW51cAoKMjAxMS0wMy0yOSAxMDo1NjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBhIEdzdFBhZCBzdWJjbGFzcyBmb3IgdGhlIHNpbmtwYWRzIGluc3RlYWQgb2YgdXNpbmcgdGhlIHBhZCdzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTI5IDEwOjQyOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3RhdGljZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBJbnRlZ3JhdGUgaW50byB0aGUgYnVpbGQgc3lzdGVtIGFuZCByZW5hbWUgdGhlIHR5cGVzCgoyMDExLTAzLTI5IDEwOjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEltcG9ydCBmdW5uZWwgZWxlbWVudCBmcm9tIGZhcnNpZ2h0MgoKMjAxMS0wMy0yOSAxMTowNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBidWZmZXIgdXBkYXRlcwoKMjAxMS0wMy0yOCAyMDoyMDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMy0yOCAyMDoxMToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoKMjAxMS0wMy0yOCAxOToxOTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBmaXggc3ViYnVmZmVycwoKMjAxMS0wMy0yOCAxNjo0MDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXBsZW1ldCB0cmltIGFuZCBzZXRfc2l6ZQoKMjAxMS0wMy0yOCAxNTo1MjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBmaXhlcwoKMjAxMS0wMy0yOCAxMDoyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgbWV0aG9kcwoKMjAxMS0wMy0yNCAyMToyMTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgaW5pdAoKMjAxMS0wMy0yNCAyMToxODo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGZpeCByZW1haW5pbmcgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yNCAyMDowOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB1bml0IHRlc3QKCjIwMTEtMDMtMjQgMTM6MDE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogcmVtb3ZlIG1lbW9yeSBtZXRhZGF0YSBhZ2FpbgoKMjAxMS0wMy0yNCAxMTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgbWVtb3J5OiBtb3JlIGZpeGVzCgkgIEF1dG9tYXRpY2FsbHkgbWFrZSB0aGUgbWVtb3J5IG9mIGEgYnVmZmVyIHdyaXRhYmxlIHdoZW4gdGhlIGJ1ZmZlciBpcyB3cml0YWJsZQoJICBhbmQgdGhlIG1lbW9yeSBpcyBhc2tlZCB0byBtYXBwZWQgV1JJVEUuCgkgIEFkZCBkb2NzCgoyMDExLTAzLTIzIDIwOjUyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiBpbXBsZW1lbnRpbmcgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMiAyMDo1MTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcG9ydGluZyB0aGUgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yMSAxOToxNToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHRlc3RzOiBtYWtlIHNvbWUgdGVzdHMgY29tcGlsZQoKMjAxMS0wMy0yMSAxODoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtZW1vcnk6IHBvcnQgY29kZSB0byBuZXcgYnVmZmVyIGRhdGEgQVBJCgoyMDExLTAzLTIxIDEzOjA3OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogbW9yZSBmaXhlcwoJICBGaXggc3BhbiBhbmQgaXNfc3BhbgoJICBJbXBsZW1lbnQgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMSAwOTo1MTo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIFdJUCB1c2UgbWVtb3J5IGluIGJ1ZmZlcgoKMjAxMS0wMy0yMCAxMTo0MjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1vcmUgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE5IDEwOjQ1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbW9yZSBtZW1vcnkgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE4IDIxOjQ1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1vcmUgbWVtb3J5IG9wZXJhdGlvbnMKCjIwMTEtMDMtMTggMTk6Mjg6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1lbW9yeSBpbXBsZW1lbnRhdGlvbgoKMjAxMS0wMy0xOCAxODozNTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgQVBJIGZvciBoYW5kbGluZyBtZW1vcnkgYmxvY2tzCgkgIEFkZHMgc29tZSBBUEkgdG8gaGFuZGxlIG1lbW9yeSBibG9ja3MuCgoyMDExLTAzLTA4IDE4OjE4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogZml4IGRvY3MKCjIwMTEtMDMtMjggMjE6MjE6MDAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmV0dXJuIEZBTFNFIGlmIHdlIGRvbid0IGhhbmRsZSBhbiBldmVudAoJICBiYXNlc3JjJ3MgZGVmYXVsdCBldmVudCBoYW5kbGVyIHJldHVybnMgVFJVRSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlCgkgIGV2ZW50IGlzIGhhbmRsZWQgb3Igbm90LiBUaGlzIGZpeGVzIHRoZSBoYW5kbGVyIHRvIGNvbmZvcm0gd2l0aCB0aGUKCSAgZXhwZWN0ZWQgYmVoYXZpb3VyICh3aGljaCBpcyB0byBvbmx5IHJldHVybiBUUlVFIHdoZW4gdGhlIGV2ZW50IGhhcwoJICBhY3R1YWxseSBiZW5uIGhhbmRsZWQpLiBnc3RfYmluX2RvX2xhdGVuY3lfZnVuYygpIGRlcGVuZGVkIG9uIHRoaXMKCSAgKGluY29ycmVjdCkgYmVoYXZpb3VyLCBhbmQgaXMgbm93IG1vZGlmaWVkIGFzIHdlbGwuCgkgIChSZW1haW5pbmcgMS1saW5lciBjaGFuZ2UgaW4gZ3N0YmFzZXNyYy5jIGlzIHRvIGtlZXAgZ3N0LWluZGVudCBoYXBweSkKCjIwMTEtMDMtMjUgMjI6MDg6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxOTNiNzE3IHRvIDFjY2JlMDkKCjIwMTEtMDMtMjUgMTQ6NTU6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjc3ZTJiZiB0byAxOTNiNzE3CgoyMDExLTAzLTI1IDA5OjI3OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDg4MTRiNiB0byBiNzdlMmJmCgoyMDExLTAzLTI1IDA4OjU5OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFhYTI4NiB0byBkODgxNGI2CgoyMDExLTAzLTI0IDE4OjQ4OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhZWM2YjkgdG8gNmFhYTI4NgoKMjAxMS0wMy0yNCAxODoyNzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBkb2NzOiBmaXggc29tZSBndGstZG9jIHdhcm5pbmdzCgkgIERvY3VtZW50IHRoZSBxdWV1ZSBsZWFreSBlbnVtcy4KCjIwMTEtMDMtMjQgMTg6MjU6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IG1heCB2YWx1ZSBmb3IgdG8gdGhlIG1hdGNoaW5nIG9uZSBmb3IgdGhlIGRhdGF0eXBlCgkgIFRoZSBwcm9wZXJ0eSBpcyBndWludDY0LCBzbyB1c2UgR19NQVhVSU5UNjQgaW5zdGVhZCBvZiBHX01BWFVJTlQuCgoyMDExLTAzLTI0IDEzOjIyOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGNsZWFudXAgYW5kIHhyZWYgZml4ZXMKCSAgRGVhbCB3aXRoIHRoZSBoaW50cyBmcm9tIGd0ay1kb2MgYW5kIGZpeCB0aGUgeHJlZnMuIEFwcGx5IGEgd29yay1hcm91bmQgZm9yICgpCgkgIHByZWNlZGVuY2Ugb3ZlciBALiBNb3ZlICJNVCBTYWZlIiB0ZXh0IHRvIGRvYyBib2R5IGluIG1hbnkgcGxhY2VzLiBUcmltIGVvbAoJICB3aGl0ZXNwYWNlcy4KCjIwMTEtMDMtMjMgMTY6NDI6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHByaW50IGZsb3cgcmV0dXJuIGFzIGEgbmFtZSBpbiBkZWJ1ZyBsb2cKCjIwMTEtMDMtMjMgMTc6MTM6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkbyB4cmVmcyBmb3Igbm9uIGluc3RhbGxlZCBib29rcyB0b28KCSAgR2V0IHRoZSB4cmVmcyBmcm9tIHRoZSBidWlsZGRpciBmb3IgdGhlIGJvb2tzIGluIHRoZSBzYW1lIHBhY2thZ2VzLiBUaGlzIGZpeGVzCgkgIHRoZSBjcm9zcyByZWZlcmVuY2VzIGlmIG9uZSBkb2VzIG5vdCBoYXZlIHRoZSBkb2NzIGFscmVhZHkgaW5zdGFsbGVkLgoKMjAxMC0wNC0xOSAyMDozOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBLZWVwIGRvd25zdHJlYW0gY2FwcyBvcmRlciB3aGVuIGZpeGF0aW5nCgkgIFRoaXMgYWxsb3dzIHVzZSB0byB1c2UgdGhlIGZpcnN0IGludGVyc2VjdGluZyBmb3JtYXQgcHJlZmVyZWQgYnkgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMC0wNC0xOSAyMDo0MDo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXRhaW4gY2FwcyBvcmRlciB3aGVuIGdldHRpbmcgY2FwcwoJICBJZiB0aGUgZWxlbWVudCBnYXZlIHVzIGNhcHMgaW4gYSBzcGVjaWZpYyBvcmRlciwgbGV0J3MgcmV0YWluIHRoYXQKCSAgYnkgaW50ZXJzZWN0aW5nIGFnYWluc3QgdGhlIHRlbXBsYXRlIGJ1dCByZXRhaW5pbmcgdGhlIG9yZGVyIGdpdmVuCgkgIGJ5IHRoZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDExLTAyLTI1IDEwOjI1OjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBUZXN0cyBmb3IgdGhlIG5ldyBjYXBzIGludGVyc2VjdGlvbiBtb2RlCgkgIEFkZHMgdGVzdCBjYXNlcyBmb3IgdGhlIGNhcHMgJ2ZpcnN0JyBpbnRlcnNlY3QgbW9kZQoJICBBZGRzIGFub3RoZXIgdGVzdCBmb3IgdGhlICd6aWd6YWcnIG1vZGUKCSAgRml4ZXMgIzYxNzA0NQoKMjAxMS0wMi0yNSAwODo1MDoxMiAtMDMwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNhcHM6IG5ldyBBUEkgOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBKdXN0IGxpa2UgZ3N0X2NhcHNfaW50ZXJzZWN0LCBidXQgYWRkcyBhIG5ldyBwYXJhbWV0ZXIgJ21vZGUnCgkgIHRoYXQgYWxsb3dzIHNlbGVjdGluZyB0aGUgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSB0byB1c2UuCgkgIEN1cnJlbnRseSB3ZSBoYXZlIEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX1pJR19aQUcgKGRlZmF1bHQpIGFuZAoJICBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9GSVJTVC4KCSAgQVBJOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBBUEk6IEdzdENhcHNJbnRlcnNlY3RNb2RlCgkgIEFQSTogR1NUX0NBUFNfSU5URVJTRUNUX01PREVfWklHX1pBRwoJICBBUEk6IEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX0ZJUlNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTEtMDMtMTIgMTc6MDE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogYWRkIGxpYnNjcHAgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBnKysgbGlrZXMgb3VyIGxpYnJhcnkgaGVhZGVycwoKMjAxMS0wMy0xMiAxNjo1ODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGVyZWFkZXIsIGJ5dGV3cml0ZXI6IGZpeCB1cCBpbmxpbmUgZnVuY3Rpb25zIHRvIG1ha2UgZysrIGhhcHB5CgkgIGdzdGJ5dGVyZWFkZXIuaDogSW4gZnVuY3Rpb24g4oCYZ3VpbnQ4KiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGFfdW5jaGVja2VkKEdzdEJ5dGVSZWFkZXIqLCBndWludCnigJk6CgkgIGdzdGJ5dGVyZWFkZXIuaDoyNDk6NzU6IGVycm9yOiBpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSDigJh2b2lkKuKAmSB0byDigJhndWludDgq4oCZCgkgIGdzdGJ5dGV3cml0ZXIuaDogSW4gZnVuY3Rpb24g4oCYZ2Jvb2xlYW4gX2dzdF9ieXRlX3dyaXRlcl9lbnN1cmVfZnJlZV9zcGFjZV9pbmxpbmUoR3N0Qnl0ZVdyaXRlciosIGd1aW50KeKAmToKCSAgZ3N0Ynl0ZXdyaXRlci5oOjE5Njo3NTogZXJyb3I6IGludmFsaWQgY29udmVyc2lvbiBmcm9tIOKAmHZvaWQq4oCZIHRvIOKAmGd1aW50OCrigJkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTU5NQoKMjAxMS0wMy0yMiAxNjoyNjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RlbGVtZW50OiBGaXggdHlwbyBpbiB0aGUgZG9jcwoJICBHU1RfRUxFTUVOVF9JTkZPIHdpbGwgcG9zdCBhIElORk8gbWVzc2FnZSwgbm90IGEgV0FSTklORwoKMjAxMS0wMy0xOCAwODoyMjoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogUmVtb3ZpbmcgdW51c2VkIGRlYnVnIGNhdGVnb3J5CgkgIHRhZ3NldHRlcidzIGRlYnVnIGNhdGVnb3J5IGhhZCBhIHR5cG8gYW5kIHdhcyB1bnVzZWQuIFJlbW92aW5nIGl0LgoKMjAxMS0wMy0xOCAxOTozNDo1NyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW46IHdpbmdvIHNpZ25lZCBjb21tZW50CgoyMDExLTAzLTIyIDExOjA0OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIG9iamVjdHMgd2hlbiBmbHVzaGluZyBhZnRlciBkZXF1ZXVlaW5nIGFuZCBiZWZvcmUgcHVzaGluZyB0aGUgb2JqZWN0CgoyMDExLTAzLTIxIDE3OjU0OjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBSZWFsbHkgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEluY3JlbWVudCB1bmlxdWUgaXRlbSBjb3VudGVyIHdpdGggYXRvbWljIG9wZXJhdGlvbnMKCSAgQmVmb3JlIGl0IHdhcyBvbmx5IHByb3RlY3RlZCBieSB0aGUgc3RyZWFtIGxvY2sgYnV0IGV2ZXJ5IHBhZAoJICBoYXMgaXRzIG93biBzdHJlYW0gbG9jaywgbWFraW5nIHRoZSBwcm90ZWN0aW9uIHJhdGhlciB1c2VsZXNzLgoKMjAxMS0wMy0yMSAxNzoxNzoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVW5ibG9jayBhbGwgd2FpdGluZyBwYWRzIHdoZW4gc2h1dHRpbmcgZG93bgoKMjAxMS0wMy0yMSAxMjozOTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNjoyODozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRXhpdCBsb29wIGZ1bmN0aW9uIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgRml4ZXMgcG9zc2libGUgZGVhZGxvY2tzIHdoZW4gZmx1c2hpbmcgYW4gdW5saW5rZWQgcGFkIHRoYXQgd2FpdHMKCSAgZm9yIG90aGVyIHBhZHMgdG8gYWR2YW5jZS4KCjIwMTEtMDMtMTkgMTc6MDY6MTIgLTA1MDAgIEphc29uIEQuIENsaW50b24gPG1lQGphc29uY2xpbnRvbi5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJ1aWxkOiBmaXggYnVpbGQgd2l0aCAtV2Vycm9yIHdpdGggR0NDIDQuNi4wCgkgIFRoaXMgdG91Y2hlcyB0aHJlZSBhcmVhcyBvZiBjb2RlLCByZW1vdmVzIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2NhcmRzCgkgIHJldHVybiB2YWx1ZXMgZnJvbSB0d28gZnVuY3Rpb25zIHdpdGggKHZvaWQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MjY3CgoyMDExLTAzLTE5IDEwOjM5OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogQWRkIHNpbmNlIG1hcmtlciB0byBHU1RfRVZFTlRfU0lOS19NRVNTQUdFCgoyMDExLTAzLTE5IDA4OjU1OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTdG9wIHdhaXRpbmcgZm9yIGEgcGFkIHN3aXRjaCB3aGVuIHRoZSBwYWQgaXMgZmx1c2hpbmcKCjIwMTEtMDMtMTkgMDg6NTA6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1vdmUgbG9ja2luZyBhbmQgc2lnbmFsbGluZyBtYWNyb3MgZnJvbSB0aGUgaGVhZGVyIHRvIHRoZSBzb3VyY2UgZmlsZQoKMjAxMS0wMy0xNyAyMzo0Mjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiBmaXggR1NUX1RBU0tfQlJPQURDQVNUCgkgIFN1cnByaXNpbmdseSBlbm91Z2gsIHlvdSBjYW4ndCAiYnJlYWRjYXN0IiBvbiBhIEdDb25kLgoJICBTcG90dGVkIGJ5IFJ1bmUgU8OmdHJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MDIyCgoyMDExLTAzLTE3IDE0OjIxOjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIb2xkIHRoZSBzZWxlY3RvciBsb2NrIHdoaWxlIHJlYWRpbmcgcHJvcGVydGllcyBvZiB0aGUgYWN0aXZlIHBhZAoKMjAxMS0wMy0xNyAxNDoxMDo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgRU9TIGlzIGFsd2F5cyBzZW50IGRvd25zdHJlYW0gZm9yIHRoZSBhY3RpdmUgcGFkCgkgIEl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWQgZ290IHRoZSBFT1MgZXZlbnQKCSAgYmVmb3JlIGl0IHdhcyBhY3RpdmF0ZWQgYW5kIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBwYWQgZ290IHRoZQoJICBFT1MgZXZlbnQgYWZ0ZXIgaXQgd2FzIGRlYWN0aXZhdGVkLiBJbiB0aGF0IGNhc2Ugd2UgaGF2ZSB0bwoJICBzZW5kIHRoZSBFT1MgZXZlbnQgZnJvbSBhbiBpbmFjdGl2ZSBwYWQgZG93bnN0cmVhbS4KCjIwMTEtMDMtMTYgMTg6MTk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJldHVybiBHU1RfRkxPV19PSyB1bnRpbCB0aGUgc2VsZWN0ZWQgcGFkIHB1c2hlZCBzb21ldGhpbmcgZG93bnN0cmVhbQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBkdXJpbmcgc3dpdGNoZXMgYXQgbm8gcG9pbnQgaW4gdGltZSBhbGwgcGFkcwoJICBoYXZlIHJldHVybmVkIG5vdC1saW5rZWQsIHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBwbGF5aW5nIGFuIGF1ZGlvLW9ubHkKCSAgZmlsZSB3aXRoIHBsYXliaW4yIGFuZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgc3RyZWFtcyBmb3IgZXhhbXBsZS4KCSAgRml4ZXMgYnVnICM2NDQ5MzUuCgoyMDExLTAzLTE3IDEwOjUzOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBSZW1vdmUgZGVwcmVjYXRlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c2luayxzcmN9X2NhcHMoKQoKMjAxMS0wMy0xNyAxMDo1MDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlcmxpc3QuYwoKMjAxMS0wMy0xNiAxMjowMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9jdW1lbnQgdGhhdCBwYWQgYmxvY2tzIG9ubHkgbWFrZSBzZW5zZSBmb3Igc2luayBwYWRzIGluIHB1bGwgbW9kZSBhbmQgc3JjIHBhZHMgaW4gcHVzaCBtb2RlCgkgIFNlZSBidWcgIzY0NDkwNy4KCjIwMTEtMDMtMTYgMTE6NTM6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBwcm94eXBhZCBpcyB0aGUgZ2hvc3RwYWQKCSAgUHJldmlvdXNseSB3ZSB3ZXJlIHJldHVybmluZyB0aGUgcGVlcnBhZCwgd2hpY2ggaXMgdGhlIHRhcmdldAoJICBvZiB0aGUgZ2hvc3RwYWQuCgoyMDExLTAyLTI1IDE2OjIwOjQ5ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBVc2UgYSBHUXVldWUgaW5zdGVhZCBvZiBhIEdMaXN0CgkgIEFkZGluZyBhIGJ1ZmZlciB0byB0aGUgZW5kIG9mIGEgR3N0QnVmZmVyTGlzdCBpcyBzdXBwb3NlZCB0byBiZSBhIGZhc3QKCSAgb3BlcmF0aW9uLCBidXQgaXQgd2FzIG5vdCBzaW5jZSB0aGUgaXRlcmF0b3IgZG9lcyBub3QgYWR2YW5jZSBpdHMKCSAgbmV4dHBvaW50ZXIgd2hlbiBhZGRpbmcgYnVmZmVycyBhbmQgR0xpc3QgZG9lcyBub3QgaGF2ZSBhIHRhaWwgcG9pbnRlci4KCSAgVXNpbmcgYSBHUXVldWUgdG8gc3RvcmUgdGhlIGJ1ZmZlcnMgbWFrZXMgaXQgZWFzaWVyIHRvIGFkZCBidWZmZXJzIHRvCgkgIHRoZSBlbmQgb2YgdGhlIGxpc3QgYW5kIHRoaXMgb3BlcmF0aW9uIHdpbGwgbm93IGJlIG11Y2ggbW9yZSBlZmZpY2llbnQuCgkgIEFkZGluZyBhbiBlbnRpcmUgR0xpc3Qgb2YgYnVmZmVycyB1c2luZwoJICBnc3RfYnVmZmVyX2xpc3RfaXRlcmF0b3JfYWRkX2xpc3QoKSB3aWxsIGhvd2V2ZXIgaGF2ZSB0byBpdGVyYXRlIG92ZXIKCSAgdGhlIGxpc3QgYmVpbmcgYWRkZWQgdG8gYmUgYWJsZSB0byB1cGRhdGUgdGhlIHRhaWwgcG9pbnRlciBpbiB0aGUKCSAgR1F1ZXVlLgoKMjAxMS0wMy0xMCAxNzo0ODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBmaXggQUJJIGJyZWFrIHdoZW4gY29tcGlsaW5nIGdzdHJlYW1lciB3aXRoIC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIHNob3VsZCBvbmx5IGFmZmVjdCB2aXNpYmlsaXR5IG9mIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzLAoJICBub3QgYWN0dWFsbHkgcmVtb3ZlIHN5bWJvbHMuIFNlZSBHaXREZXZlbG9wZXJHdWlkZWxpbmVzIGFuZCBEZXByZWNhdGluZ0FQSQoJICBwYWdlcyBpbiB3aWtpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMTQxCgoyMDExLTAzLTEwIDE2OjQ2OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZSBmb3IgQVBJIGFkZGl0aW9uCgoyMDExLTAzLTEwIDEwOjI1OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wOSAxNjoxNTozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBwd2c6IGZpeCBlbGVtZW50IG5hbWUgInZpZGVvZHJvcCIgdG8gInZpZGVvcmF0ZSIKCjIwMTEtMDMtMDggMTI6MTE6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0OiBhZGQgdGVzdHMgZm9yIG5ldyBlbGVtZW50X2ZhY3RvcnkgYXBpLgoKMjAxMC0wNi0yMyAyMjowMDowNCArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiByZXBsYWNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzaW5rLHNyY31fY2FwcwoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBjbGFyaWZ5IGhvdyB0aGUgY2FwcyBhcmUgY29tcGFyZWQgdG8gdGhlIHRlbXBsYXRlIGNhcHMgb2YKCSAgdGhlIGVsZW1lbnQgZmFjdG9yeS4gSW1wcm92ZSB0aGUgZG9jcyB0byBwb2ludCBvdXQgdGhlIGRpZmZlcmVuY2UuCgkgIERlcHJlY2F0ZTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3NyY3xzaW5rfV9jYXBzCgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzcmN8c2lua31fe2FueXxhbGx9X2NhcHBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIxNDEKCjIwMTEtMDMtMDcgMjM6MTM6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0IHRlc3QgZm9yIGdzdF9jYXBzX25ld19zaW1wbGUKCSAgQWRkIGEgdGVzdCBmb3IgdGhlIGNyYXNoIGluIGJ1ZyAjNjQyMjcxLgoKMjAxMS0wMy0wOCAxODowNTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHJlbmFtZSBkcmFmdCB0byBvZmZpY2lhbCBkb2MKCjIwMTEtMDMtMDggMTY6NTg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGltcGxlbWVudCB0cmFuc2Zvcm0gZnVuY3Rpb24KCSAgUmVwbGFjZSBzdWJidWZmZXIgYW5kIGNvcHkgdm1ldGhvZHMgYnkgYSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtIGZ1bmN0aW9uIHRoYXQKCSAgY2FuIHRoZW4gYmUgcGFyYW1ldHJpc2VkIGJ5IHRyYW5zZm9ybSBzcGVjaWZpYyBkYXRhLiBUaGlzIHNob3VsZCBhbGxvdyB1cyB0bwoJICBpbXBsZW1lbnQgbWFrZS13cml0YWJsZSBhbmQgbW9yZSBmdXR1cmUgdHJhbnNmb3JtIGZ1bmN0aW9ucy4KCjIwMTEtMDMtMDggMTc6MDY6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAzLTA4IDExOjU1OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IHRvIGNyZWF0ZSBhIGZhY3RvcnkKCjIwMTEtMDMtMDggMTA6MzY6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3RzOiBzdGFydCBhIG5ldyB0ZXN0IHN1aXRlIGZvciBlbGVtZW50IGZhY3RvcmllcwoJICBNb3ZlIG9uZSB0ZXN0IGZyb20gZ3N0ZWxlbWVudCBzdWl0ZS4KCjIwMTEtMDMtMDggMTE6MzQ6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWRkIG1pc3NpbmcgOyBpbiBleGFtcGxlIChhbmQgdHJpbSB3aGl0ZXNwYWNlKQoKMjAxMS0wMy0wOCAwOTo1ODo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkgZG9lcyBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgbWVkaWFfdHlwZSE9TlVMTCBhcyB0aGUgZnVuY3Rpb24gd2UgY2FsbCB0aGF0IGFjdHVhbCBjcmVhdGUKCSAgdGhlIHN0cnVjdHVyZSBkb2VzIGEgZnVsbCBjaGVjayBhbnl3YXkuCgoyMDExLTAzLTA4IDEwOjA2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGNhcHMsc3RydWN0dXJlOiB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTEtMDMtMDQgMDg6Mjg6MjUgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZG9uJ3QgY3JlYXRlIGJyb2tlbiBjYXBzIGZvciBpbnZhbGlkIG1lZGlhIHR5cGVzCgkgIENoZWNrIGlmIHN0cnVjdHVyZSBoYXMgYmVlbiBjcmVhdGVkIGJlZm9yZSBhcHBlbmRpbmcgaXQgdG8gdGhlIGNhcHMuIEZyZWUgdGhlCgkgIGNhcHMgaW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IgdG8gbm90IGNvbmNlYWwgaXQgYmUgcmV0dXJuaW5nIGVtcHR5IGNhcHMuCgkgIEZpeGVzICM2NDIyNzEKCjIwMTEtMDMtMDcgMTY6MjE6NDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogdXBkYXRlIGhlbGxvIHdvcmxkIGV4YW1wbGUKCSAgT3VyIGhlbGxvd29ybGQgZXhhbXBsZSB0aGF0dyBlIHJlZmVyZW5jZSBmcm9tIHRoZSBtYW51YWwgaGFzIGJlZW4gYSBiaXQKCSAgY29tcGxpY2F0ZWQgdG8gc2VydmUgYSBmaXJzdCBjb250YWN0IHdpdGggZ3N0cmVhbWVyLiBTaW5jZSB3ZSBoYXZlIGFuZAoJICBwcm9tb3RlIHBsYXliaW4yIGFzIGEgcGxheWJhY2sgYXBpIHVzZSBpdCBoZXJlLgoJICBCYXNlZCBvbiB3b3JrIGZyb20gTWF0aGlhcyBIYXNzZWxtYW5uIDxtYXRoaWFzLmhhc3NlbG1hbm5AZ214LmRlPgoJICBGaXhlcyAjNDI0MTQzCgoyMDExLTAzLTA0IDE5OjAyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBtZXRhZGF0YSBkcmFmdAoKMjAxMS0wMy0wNCAxODoxMToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlbW92ZSBGSVhNRQoJICBOb3cgdGhhdCB3ZSBkb24ndCBzdWJjbGFzcyBidWZmZXJzIGFueW1vcmUsIHRoZSBGSVhNRSBhYm91dCBsaW1pdGVkCgkgIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGNvcHkgZnVuY3Rpb24gaXMgaXJyZWxldmFudC4KCjIwMTEtMDMtMDQgMTc6NDM6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGZsYWcgcmVnaXN0cmF0aW9uCgoyMDExLTAzLTA0IDE3OjI1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBwYWQ6IG1vcmUgcHJlcm9sbCBsb2NrIHRvIGJhc2VzaW5rCgkgIE1vdmUgdGhlIHByZXJvbGwgbG9jayB0byBiYXNlc2luayB3aGVyZSBpdCBiZWxvbmdzLgoKMjAxMS0wMy0wNCAxNjowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkcmFmdAoKMjAxMS0wMy0wNCAxMjowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxODozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBkZWJ1ZwoKMjAxMS0wMy0wMyAxODoyMTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxNjozMTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogYWRkIGNhcHMgdG8gdGhlIGNvbmZpZwoJICBBZGQgdGhlIGNhcHMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiB0aGUgcG9vbC4KCSAgSW5pdGlhbGl6ZSB0aGUgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTAyIDExOjU3OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTAzLTAyIDExOjU3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbGVhc2UgYnVmZmVyIHRvIHBvb2wgaW4gZGlzcG9zZQoJICBVc2UgdGhlIGRpc3Bvc2UgbWV0aG9kIHRvIHJlbGVhc2UgdGhlIGJ1ZmZlciB0byB0aGUgcG9vbCB3aGVuIGl0IGlzIGNvbmZpZ3VyZWQuCgoyMDExLTAyLTIyIDEyOjM1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcjogYWRkIHBvb2wgdG8gYnVmZmVyIHN0cnVjdHVyZQoJICBLZWVwIGEgcG9pbnRlciB0byB0aGUgYnVmZmVycG9vbC4gUmVsZWFzZSB0aGUgYnVmZmVyIHRvIHRoZSBwb29sIHdoZW4KCSAgZmluYWxpemluZy4gTWFrZSBzdXJlIHRoZSBwb29sIHNldHMgaXRzZWxmIGFzIHRoZSBwb29sIG1lbWJlciBvZiBidWZmZXJzIHRoYXQgaXQKCSAgc2VuZHMgb3V0LgoKMjAxMS0wMi0yMiAxMjozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgcG9vbCBmbGFncyB0eXBlCgoyMDExLTAyLTIyIDExOjA1OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRvY3MKCjIwMTEtMDItMjEgMTg6NDM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBSZWZhY3RvciBzdG9wcGluZyBvZiB0aGUgcG9vbAoJICBNb3ZlIHNvbWUgbWV0aG9kcyBhcm91bmQuCgkgIE1ha2Ugc3VyZSB3ZSBjaGVjayBmb3IgY29uZmlnIHBhcnNpbmcgZXJyb3JzLgoJICBJbmNyZW1lbnQgdGhlIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYmVmb3JlIGNhbGxpbmcgYWNxdWlyZSBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlCgkgIHRoYXQgc2V0X2FjdGl2ZSgpIGRvZXNuJ3QgZnJlZSB0aGUgcG9vbCBmcm9tIHVuZGVyIHVzLgoKMjAxMS0wMi0yMSAxNzozMzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IFJld29yayBidWZmZXIgbWFuYWdlbWVudCBhIGxpdHRsZQoJICBBZGQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIGFsbG93IGZvciBidWxrIGFsbG9jYXRpb24gb2YgYnVmZmVycy4KCSAgRnJlZSBidWZmZXJzIG9ubHkgd2hlbiBhbGwgb3V0c3RhbmRpbmcgYnVmZmVycyByZXR1cm5lZC4KCSAgTWFrZSB0aGluZ3MgbW9yZSB0aHJlYWRzYWZlIHdydCBmbHVzaGluZyBhbmQgc3RhcnRpbmcvc3RvcHBpbmcgYnkKCSAga2VlcGluZyB0cmFjayBvZiBzdGFydCBhbmQgc3RvcCBtZXRob2QgY2FsbHMuCgoyMDExLTAyLTIxIDEyOjE4OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWVtb3J5IG1hbmFnZW1lbnQgY2xlYW51cHMKCSAgVXNlIGEgbG9jayB0byBwcm90ZWN0IGNvbmN1cnJlY3QgZXhlY3V0aW9uIG9mIHNldF9jb25maWcgYW5kIHNldF9hY3RpdmUuCgkgIFN0YXJ0IGZyZWVpbmcgdGhlIGJ1ZmZlcnMgd2hlbiBmbHVzaGluZyBhbmQgYWxsIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZQoJICBwb29sLgoJICBNYWtlIGEgY29weSBvZiB0aGUgY29uZmlnIHRvIGF2b2lkIGNyYXNoaW5nIHdpdGggY29uY3VycmVudCBhY2Nlc3MuCgoyMDExLTAyLTE4IDE2OjM1OjQ2ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhbHNvIGFsbG93IE5VTEwgcGFyYW1zIGluIF9hY3F1aXJlCgoyMDExLTAyLTE4IDE2OjE1OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbW9yZSB1cGRhdGVzCgkgIEtlZXAgdHJhY2sgaWYgdGhlIGJ1ZmZlciBpcyBjb25maWd1cmVkIGFuZCBibG9jayBhY3RpdmF0aW9uIHdoZW4gbm90IGNvbmZpZ3VyZWQKCSAgeWV0LgoJICBLZWVwIHRyYWNrIG9mIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYW5kIGRpc2FsbG93IGNvbmZpZ3VyYXRpb24gd2hlbiBub3QgYWxsCgkgIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZSBwb29sLiBXZSBuZWVkIHRvIGRvIHRoaXMgb3IgZWxzZSB3ZSBtaWdodCBlbmQgdXAKCSAgd2l0aCB3cm9uZyBidWZmZXJzIGluIHRoZSBwb29sLgoJICBBZGQgcmV0dXJuIHZhbHVlIHRvIHNldF9hY3RpdmUuCgkgIFNtYWxsIGNsZWFudXBzLiBGaXggZmluYWxpemUuCgoyMDExLTAyLTE4IDEyOjUwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogcmVuYW1lICdmbHVzaGluZycgdG8gJ2FjdGl2ZScKCSAgUmVuYW1lIHRoZSBmbHVzaGluZyB2YXJpYWJsZSBhbmQgbWV0aG9kcyB0byBhY3RpdmUgdG8gYmV0dGVyIG1hdGNoCgkgIHRoZSBvdGhlciBnc3RyZWFtZXIgbmFtZSBjb252ZW50aW9ucwoKMjAxMS0wMi0xNyAxODozNzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHByZWFsbG9jIHdoZW4gdW5zZXQgZmx1c2hpbmcKCSAgQWNjb3JkaW5nIHRvIHRoZSBkZXNpZ24gZG9jIHdlIG5lZWQgdG8gcHJlYWxsb2MgYnVmZmVycyB3aGVuIHdlIHVuc2V0IHRoZQoJICBmbHVzaGluZyBzdGF0ZSwgbm90IGluIHNldF9jb25maWcuCgkgIFNldCB0aGUgZmx1c2hpbmcgc3RhdGUgYmV0dGVyLgoKMjAxMS0wMi0xNyAxNzoyOToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogdXNlIHF1YXJrcyBmb3Igc3RydWN0dXJlIGZpZWxkcwoKMjAxMS0wMi0xNyAxNjo0Njo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiB1c2UgR3N0U3RydWN0dXJlIHRvIGNvbmZpZ3VyZSB0aGUgcG9vbAoJICBVc2UgYSBHc3RTdHJ1Y3R1cmUgdG8gcHJvdmlkZSB0aGUgcG9vbCB3aXRoIHRoZSByaWdodCBjb25maWd1cmF0aW9uLiBBbHNvCgkgIHByb3ZpZGUgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBjb25maWd1cmUgc3VjaCBhIHN0cnVjdHVyZS4KCSAgZG9uJ3QgcGFzcyB0aGUgY29uZmlnIGluIGFsbG9jX2J1ZmZlciwgcG9vbCBpbXBsZW1lbnRhdGlvbiB3aWxsIGFscmVhZHkgaGF2ZQoJICBwYXJzZWQgaXQgZHVyaW5nIHNldF9jb25maWcuCgkgIFVwZGF0ZSBkZWZzCgoyMDExLTAyLTE3IDEyOjU1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGZpeCBkZWZzCgoyMDEwLTExLTAyIDE4OjU2OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzaW1wbGUgYnVmZmVycG9vbCBoZWxwZXIgb2JqZWN0CgoyMDExLTAzLTAyIDExOjA4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RyZWdpc3RyeS5oCgoyMDExLTAzLTAyIDEzOjU1OjM2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogTWlub3IgdXBkYXRlIHRvIHNzaCBrZXkgZ2VuZXJhdGlvbiBjb21tYW5kcwoJICBmZC5vIHJlcXVpcmVzIFJTQSBrZXlzLCBhbmQgaW4gZ2VuZXJhbCwgdXNlcnMgd291bGQgcHJvYmFibHkgd2FudCB0bwoJICBtYWtlIGEgcGVyLXNlcnZlciBrZXkgZmlsZSByYXRoZXIgdGhhbiBvdmVyd3JpdGUgaWRfcnNhLCBpZF9yc2EucHViLgoKMjAxMS0wMi0yOCAxODo0Mzo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZXhwb3J0IHBsdWdpbiBkZXNjcmlwdGlvbiBtb3JlIHBsYXRmb3JtIGluZGVwZW5kZW50CgkgIEZpeGVzICM2NDI1MDQuCgoyMDExLTAyLTI4IDE4OjMyOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWRlN2Y2YSB0byA2YWVjNmI5CgoyMDExLTAyLTI4IDE1OjAxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgZG9jczogdHlwbyBmaXhlcwoJICBjb252aW5pZW5jZSAtPiBjb252ZW5pZW5jZQoKMjAxMS0wMi0yOCAxNDo1NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogcHJpbnQgInBhZC1hZGRlZCIsICJwYWQtcmVtb3ZlZCIgYW5kICJuby1tb3JlLXBhZHMiIHNpZ25hbHMgZm9yIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMKCSAgSXQncyBvZnRlbiBub3Qgb2J2aW91cyB0byBwZW9wbGUgdGhhdCBlbGVtZW50cyBsaWtlIGUuZy4gdXJpZGVjb2RlYmluCgkgIChvciBkZW11eGVycykgYXV0b21hdGljYWxseSBzdXBwb3J0IHRoZSBzdGFuZGFyZCBzaWduYWxzIG9mIHRoZQoJICBHc3RFbGVtZW50IGNsYXNzLCBzbyBsZXQncyBwcmludCB0aGUgdXNlZnVsIHBhZC1yZWxhdGVkIG9uZXMgZm9yCgkgIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMuCgoyMDExLTAyLTI4IDE2OjI3OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogc21hbGwgdXBkYXRlcyBhcyBzdWdnZXN0ZWQgb24gYSBibG9nCgkgIExpbmsgZnJvbSBjb252aW5pZW5jZSBhcGkgdG8gdGhlIHVuZGVybHlpbmcgYXBpLgoKMjAxMS0wMi0yOCAxMDowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCB0aW1pbmcgbWV0YWRhdGEKCjIwMTEtMDItMjggMTA6MDU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBmaXggd2hpdGVzcGFjZQoKMjAxMS0wMi0yOCAwOTozOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBhZGQgbWVtb3J5IHVuaXQgdGVzdAoKMjAxMS0wMi0yNyAyMDo1NDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHNpbXBsaWZ5IGEgYml0CgoyMDExLTAyLTI3IDIwOjQyOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBkZWZhdWx0IG1lbW9yeSBtZXRhZGF0YQoJICBBZGQgYSBtZXRhZGF0YSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9ybWFsbCBtYWxsb2NlZCBtZW1vcnkuCgoyMDExLTAyLTI3IDE5OjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzZXBhcmF0ZSBhZGQgYW5kIGdldCBtZXRob2RzCgkgIE1ha2Ugc2VwYXJhdGUgYXBpIGZvciBnZXR0aW5nIGFuZCBhZGRpbmcgbWV0YWRhdGEuIFRoaXMgYWxsb3dzIHVzIHRvIHBhc3MgZXh0cmEKCSAgcGFyYW1ldGVycyB0byB0aGUgaW5pdCBmdW5jdGlvbnMgd2hlbiBjcmVhdGluZyBtZXRhZGF0YSwgd2hpY2ggaXMgbmVlZGVkIGZvcgoJICBzcGVjaWZpYyBBUEkgaW1wbGVtZW50YXRpb25zLgoJICBBZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgbWV0YWRhdGEuCgoyMDExLTAyLTI3IDEyOjIxOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgZG9jcyBhbmQgZGVmcwoKMjAxMS0wMi0yNiAxODoxNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSB1c2VsZXNzIG1ldGhvZAoJICBSZW1vdmUgdGhlIG1ldGhvZCB0byByZXRyaWV2ZSBtZXRhZGF0YSBieSBhcGkuIE9uZSB3aWxsIGFsd2F5cyB1c2UgdGhlCgkgIEdzdE1ldGFJbmZvIHRvIGdldCBtZXRhZGF0YS4KCjIwMTEtMDItMjUgMTY6MzE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgb3duZXJfcHJpdiBub3cgdGhhdCB3ZSBoYXZlIG1ldGFkYXRhCgkgIE5vdyB0aGF0IHdlIGhhdmUgbWV0YWRhdGEgd2UgY2FuIHJlbW92ZSB0aGUgb3duZXJfcHJpdiBmaWVsZC4KCjIwMTEtMDItMjUgMTM6MjM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDItMjUgMTM6MTU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhZGF0YTogUmVuYW1lIHRvIEdzdE1ldGEKCSAgUmVuYW1lIHRvIHRoZSBzaG9ydGVyIEdzdE1ldGEKCSAgQWRkIGRvY3MKCSAgQWRkIGFwaSB0byBnZXQgbWV0YWRhdGEgYnkgQVBJCgoyMDExLTAyLTI1IDEwOjM3OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDEwLTExLTE1IDExOjQ5OjI0ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsIGF0IGJhc2UtYXJ0Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggbWVtb3J5IGNvcnJ1cHRpb24KCjIwMTAtMDQtMDcgMTE6MzQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJICBidWZmZXJtZXRhOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDItMjYgMTM6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSAgdXBkYXRlcwoKMjAwOS0xMi0yNyAyMjowMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkgIG1ldGE6IGltcHJvdmUgdGVzdCBhIGxpdHRsZQoKMjAwOS0xMi0xNyAxMjozNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJtZXRhOiBhZGQgYmVnaW5uaW5ncyBvZiBidWZmZXIgbWV0YWRhdGEKCSAgQWRkIGZpcnN0IGltcGxlbWVudGF0aW9uIG9mIGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuIFdlIHVzZSBhIHNpbXBsZSBsaW5rZWQKCSAgbGlua2VkIG9mIHNsaWNlIGFsbG9jYXRlZCBtZXRhZGF0YSBjaHVua3MuIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbnMgY291bGQgdXNlCgkgIHNvbWV0aGluZyBtb3JlIHBlcmZvcm1hbnQuCgkgIEFkZCBnZXQsIHJlbW92ZSwgaXRlcmF0ZSBtZXRob2RzIHRvIGhhbmRsZSB0aGUgbWV0YWRhdGEuCgoyMDExLTAyLTI1IDEwOjE5OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRlc2lnbjogYWRkIGFwaSB0YWcKCSAgV2Ugd2FudCB0byBmaW5kIG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBBUEkgaXQgaW1wbGVtZW50cyBhbmQgYmFzZWQgb24gdGhlCgkgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wMi0yNCAxNzoxMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogbWFrZSB3aW4zMiBidWlsZGJvdCBoYXBweQoJICBnc3R1cmkuYzo4NTQ6MTY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUgJ2Fic19jbGVhbicKCSAgZ3N0dXJpLmM6Nzg4OjE6IGVycm9yOiAnZ3N0X2ZpbGVfdXRpbHNfY2Fub25pY2FsaXNlX3BhdGgnIGRlZmluZWQgYnV0IG5vdCB1c2VkCgoyMDExLTAyLTI0IDE1OjMyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXNyYywgZmlsZXNpbms6IGZpeCBVUkkgY3JlYXRpb24gcmVncmVzc2lvbiBmb3Igbm9uLWFic29sdXRlIGxvY2F0aW9ucwoJICBQYXNzaW5nIGUuZy4gbG9jYXRpb249Zm9vIHdvdWxkIGxlYWQgdG8gd2FybmluZ3MgYmVjYXVzZSBnX2ZpbGVuYW1lX3RvX3VyaSgpCgkgIHdhbnRzIGFuIGFic29sdXRlIGZpbGUgcGF0aCBhbmQgcmV0dXJucyBOVUxMIG90aGVyd2lzZS4gVXNlIGJyYW5kLW5ldwoJICBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgaW5zdGVhZCwgd2hpY2ggd2lsbCB0cnkgaGFyZGVyIHRvIGNyZWF0ZSBhIHByb3BlcgoJICBVUkkgZm9yIHVzLgoJICBBbHNvIGFkZCB1bml0IHRlc3QuCgoyMDExLTAyLTI0IDE1OjE4OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpOiBhZGQgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIHRoYXQgdGFrZXMgcmVsYXRpdmUgZmlsZW5hbWVzCgkgIEFkZCBmdW5jdGlvbiB0aGF0ICh1bmxpa2UgdGhlIEdMaWIgZXF1aXZhbGVudCkgYWxzbyBhY2NlcHRzIHBhdGhzIHRoYXQKCSAgYXJlbid0IGFic29sdXRlIGFuZCB3aWxsIGNsZWFuIHVwIHJlbGF0aXZlIG1hcmtlcnMgc3VjaCBhcyAuLyBhbmQgLi4vCgkgIGJlZm9yZSBmb3JtaW5nIGEgVVJJLgoJICBGaXhlcyB3YXJuaW5ncyB3aXRoIGUuZy4gZmlsZXNyYyBsb2NhdGlvbj1mb28gISB0eXBlZmluZCBjYXVzZWQgYnkgdGhlCgkgIHJlY2VudCBzd2l0Y2ggdG8gZ19maWxlbmFtZV90b191cmkoKSwgYnV0IGFsc28gYWN0dWFsbHkgY3JlYXRlcyB2YWxpZAoJICBVUklzIGZvciB0aGUgZmlyc3QgdGltZS4KCSAgV2luZG93cyBjb2RlIHBhdGhzIGNvdWxkIG5lZWQgc29tZSBtb3JlIHdvcmssIGUuZy4gd2UgZG9uJ3QgY2xlYW4gdXAKCSAgdGhlIHJlbGF0aXZlIG1hcmtlcnMgdGhlcmUgZm9yIG5vdyAoYmVjYXVzZSBwYXRoIGNvdWxkIGhhdmUgXCBhbmQgLwoJICBhcyBzZXBhcmF0b3JzKS4KCSAgQVBJOiBnc3RfZmlsZW5hbWVfdG9fdXJpKCkKCjIwMTEtMDItMjQgMTY6MjA6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiByZWZpeCB0aGUgdGVzdHMgKG1pc3NpbmcgI2VuZGlmKQoKMjAxMS0wMi0yNCAxNjoxMToxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1ha2VmaWxlLmFtOiBhZGQgbmV3IGFiaSBoZWFkZXJzIHRvIG5vZGlzdF9IRUFERVJTCgoyMDExLTAyLTIxIDExOjI0OjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIGluZGV4IHN1cHBvcnQKCSAgV2hlbiBvcHRpb24gIi1pIiBpcyBnaXZlbiwgc2V0IGFuIGluZGV4IG9iamVjdCBvbiB0aGUgcGlwZWxpbmUgYW5kIGNvbXB1dGUKCSAgc3RhdGlzdGljcyBmb3IgYWxsIGluZGV4IHdyaXRlcnMuIFByaW50IGEgc3VtYXJ5IHdoZW4gc2h1dHRpbmcgZG93biB0aGUKCSAgcGlwZWxpbmUuCgoyMDExLTAyLTI0IDE1OjEyOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrIGRhdGEgZm9yIEFSTSAobGlicykKCjIwMTEtMDItMjQgMTU6MDI6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2sgZGF0YSBmb3IgQVJNCgoyMDExLTAyLTI0IDEzOjU1OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvd25lciBwcml2YXRlIGFzIGludGVybWVkaWF0ZSBzb2x1dGlvbgoJICBBZGQgYW4gb3duZXIgcHJpdmF0ZSBmaWVsZCB3aGVyZSB0aGUgb3duZXIgb2YgYSBidWZmZXIgY2FuIHN0b3JlIHNvbWUgZXh0cmEKCSAgaW5mb3JtYXRpb24uIFdlIGNhbiB1c2UgdGhpcyB0byBpbXBsZW1lbnQgbW9zdCBvZiB0aGUgc3ViY2xhc3NpbmcgdGhhdCBoYXBwZW5zCgkgIG5vdy4gTGF0ZXIgdGhpcyB3aWxsIGJlIHJlbW92ZWQgYW5kIHJlcGxhY2VkIGJ5IGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuCgoyMDExLTAyLTI0IDEwOjI4OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIHBvaXNvbmluZwoKMjAxMS0wMi0yMyAxNjo0ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwcwoJICBVc2UgdGhlIHN0b3JlZCBzaXplIGluIHRoZSBtaW5pb2JqZWN0IHRvIGZyZWUgdGhlIG1pbmlvYmplY3QuCgkgIFJlZmFjdG9yIHNvbWUgaW5pdCBtZXRob2RzLgoKMjAxMS0wMi0yMyAxNTo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlCgoyMDExLTAyLTIzIDEyOjU0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMDItMjMgMTI6NDQ6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB3YXJuIHdoZW4gbWFrZV93cml0YWJsZSByZXN1bHQgaXMgaWdub3JlZAoKMjAxMS0wMi0yMyAxMjowODowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMi0yMyAxMjowMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggdHlwZSByZWdpc3RyYXRpb24KCSAgV2UgbmVlZCB0byBoYXZlIHRoZSB0eXBlcyBvZiB0aGUgbWluaW9iamVjdHMgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZQoJICB0cmFuZm9ybXMuCgoyMDExLTAyLTIzIDEyOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBpbXByb3ZlIGNhcHMgc3RyaW5nIG1hbmFnZW1lbnQKCjIwMTEtMDItMjMgMTI6MDA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjbGVhciBmbGFncyBpbiBpbml0CgoyMDExLTAyLTIzIDEyOjMzOjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogdGVsbCB0aGF0IE9SQ19DT0RFIGNhbiBjb250YWluIGEgbGlzdCBvZiBmbGFncwoKMjAxMS0wMi0yMyAxMDozMTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogZml4IGZsYWdzCgoyMDExLTAyLTIyIDE5OjMwOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGZpeCBjb21waWxhdGlvbiBhZnRlciByZWJhc2UKCjIwMTAtMTEtMDIgMTM6MzE6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgaW1wcm92ZSB0eXBlIHJlZ2lzdHJhdGlvbgoKMjAxMC0xMS0wMiAxMjo1ODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMDktMTItMDcgMjA6MzI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZml4IG1hY3JvcwoKMjAwOS0xMi0wNSAxNToxODowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzZXQgYm94ZWQgdHlwZSBjb3JyZWN0bHkKCjIwMDktMTItMDUgMTQ6MTY6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgbWluaW9iamVjdDogc21hbGwgZml4ZXMKCSAgTWFrZSBkYXRhZmxvdyBoYXBwZW4uCgoyMDA5LTEyLTA0IDIzOjUyOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1pbmlvYmplY3Q6IG1vcmUgYm94ZWQgdHlwZSBmaXhpbmcKCSAgTW9yZSBtaW5pb2JqZWN0IGZpeGluZywgbGVha3MgaG9ycmlibHkgc29tZXdoZXJlLi4KCjIwMDktMTItMDQgMjI6MzI6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBtaW5pb2JqZWN0OiBtYWtlIHF1ZXJpZXMgYSBib3hlZCB0eXBlCgkgIE1vcmUgbWluaW9uamVjdCBzdHVmZi4KCjIwMDktMTItMDMgMjA6NDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlczogbWFrZSBtZXNzYWdlIGEgc2ltcGxlIGJveGVkIHR5cGUKCjIwMDktMTItMDIgMjE6MjE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogd29yayBvbiBtYWtpbmcgY2FwcyBhIGJveGVkIHR5cGUKCSAgTW9yZSB3b3JrIG9uIG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGFsbG9jYXRlZCBzdHJ1Y3QuCgoyMDA5LTExLTI5IDAwOjIxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWluaW9iamVjdDogbWFrZSBtaW5pb2JqZWN0IGEgYm94ZWQgdHlwZQoJICBGaXJzdCBhdHRlbXB0IGF0IG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGJveGVkIHR5cGUuCgoyMDExLTAyLTIyIDE5OjA5OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBsaWJzOiBjbGVhbnVwcyBmb3IgMC4xMQoJICBSZW1vdmUgZGVwcmVjYXRlZCBzdHVmZiwgZml4IHBhZGRpbmcsIHJlYXJyYW5nZSBtZXRob2RzLgoKMjAxMS0wMi0yMiAxNjowNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgY2xlYW51cHMKCSAgRml4IHBhZGRpbmcsIHJlbW92ZSBkZXByZWNhdGVkIHN5bWJvbHMuCgoyMDExLTAyLTIyIDE1OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMi0yMiAxNDoxMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZ3N0L2dzdGVsZW1lbnQuYwoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbQoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZgoKMjAxMS0wMi0xNCAxODowNTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEJlIHNtYXJ0ZXIgd2l0aCBwYWQgYWxsb2NzCgkgIEF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHBhZC1hbGxvY3Mgd2hlbiBvbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJZiBtdWx0aXBsZSBiYXNldHJhbnNmb3JtIGVsZW1lbnRzIGFyZSBvbiBhIHBpcGVsaW5lLCB0aGV5CgkgIHdvdWxkIGRvIGEgcGFkLWFsbG9jIGZvciBlYWNoIHJlY2VpdmVkIGJ1ZmZlciwgZWFjaCBlbGVtZW50CgkgIHdvdWxkIGRvIHRoaXMsIHNvIHdlIHdvdWxkIGhhdmUgbG90cyBvZiBwYWQgYWxsb2NzIG9uIHRoZQoJICBwaXBlbGluZSBmb3IgYSBzaW5nbGUgYnVmZmVyIGJlaW5nIHB1c2hlZCB0aHJvdWdoIGl0LgoJICBUaGlzIHBhdGNoIGF0dGVtcHRzIHRvIHJlZHVjZSB0aGlzIGFtb3VudCBieSBhdm9pZGluZwoJICBkb2luZyBwYWQtYWxsb2NzIGlmIHRoZSBlbGVtZW50IGhhcyBhbHJlYWR5IGRvbmUgaXQKCSAgYWZ0ZXIgdGhlIGxhc3QgcHVzaGVkIGJ1ZmZlci4gU28gaXQgd2lsbCBvbmx5IGJlIGFsbG93ZWQKCSAgdG8gZG8gYSBuZXcgcGFkLWFsbG9jIGFmdGVyIGl0IGhhcyBwdXNoZWQgYSBidWZmZXIsIHNvIHdlIGdldAoJICAxeDEgcGFkLWFsbG9jIGFuZCBidWZmZXIgcmF0aW8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjM3MwoKMjAxMS0wMi0yMSAxMzozOTozOCArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBnc3RfaW5kZXhfbmV3KCkgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyODY5CgoyMDExLTAyLTIxIDEyOjQ0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHByaW50IG5ldyBNRURJQTQgZmxhZyBhcyB3ZWxsCgoyMDExLTAxLTAzIDExOjM3OjA1ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3QsIGJ1ZmZlcjogc3RlYWwgbWluaW9iamVjdCBmbGFnIGZvciB1c2UgYXMgTUVESUE0IGJ1ZmZlciBmbGFnCgkgIFRoaXMgd2FzIHJlcXVpcmVkIHRvIGFkZCBhIG5ldyBNRURJQTQgYnVmZmVyIGZsYWcgZm9yIGluZGljYXRpbmcKCSAgcHJvZ3Jlc3NpdmUvbWl4ZWQgdGVsZWNpbmUgdmlkZW8gYnVmZmVycy4gVGhlcmUgaXMgbm8gc3BhY2UgZm9yCgkgIGFkZGl0aW9uYWwgZmxhZ3MgaW4gR3N0QnVmZmVyLCBzbyBzdGVhbCBvbmUgZnJvbSBHc3RNaW5pT2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNjcxCgoyMDExLTAyLTIwIDE2OjExOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBhdG9taWMgcXVldWUgZG9jcwoKMjAxMS0wMi0yMSAxMTo1NTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZCIKCSAgVGhpcyBjb21taXQgY2hhbmdlcyB0aGUgcmVxdWVzdCBwYWQgYmVoYXZpb3VyIGZvciBwbHVnaW5zIGFuZCBhcHBsaWNhdGlvbnMuCgkgIFJlb3BlbnMgQnVnICM0MDI1NjIKCSAgVGhlIHByb3BlciBmaXggZm9yIHRoYXQgYnVnIGlzIHRvIGtlZXAgdHJhY2sgb2YgY3JlYXRlZCByZXF1ZXN0IHBhZHMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYTVlNDRmZmZmYWE2ZDdhOGQ3YWY4ZGNiNzdlMzc5OTA5OTYyNTNhNS4KCjIwMTEtMDItMjEgMTA6MDM6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogYWRkIEZJWE1FLTAuMTE6IGNvbW1lbnRzCgoyMDExLTAyLTE1IDEwOjU3OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogaW1wcm92ZSBpbmRleCBkb2NzCgoyMDExLTAyLTE4IDE3OjA5OjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogc3BlbGwtY2hlY2sKCjIwMTEtMDItMTUgMTk6MTU6MTYgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcHJpbnQgYnVmZmVyIGZsYWdzCgoyMDEwLTEyLTA0IDE4OjUzOjU1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZAoJICBGaXhlcyAjNjM2MDExIGFuZCAjNDAyNTYyLgoKMjAxMS0wMi0xNyAxNDo1MDo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBmaXggY3JlYXRpb24gb2Ygd3JpdGVyIGlkIGZvciB1bnBhcmVudGVkIHBhZHMKCSAgQWxzbyBkbyBzb21lIGNsZWFudXAgaW4gdGhlIGltcGwuCgoyMDExLTAyLTE3IDEwOjM0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCAoZGUpc2VyaWFsaXNhdGlvbiBmdW5jdGlvbiBmb3IgdWNoYXIKCSAgLi4gc2luY2Ugd2Ugc2FkbHkgaGF2ZSBhIHBsdWdpbiBpbiAtZ29vZCB0aGF0IGhhcyBhIHVjaGFyIHByb3BlcnR5CgkgIChjbW1sZW5jKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNTIyCgoyMDExLTAyLTE2IDE5OjU0OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggaW5jbHVkZSBvcmRlciBhdG9taWNxdWV1ZTogZml4IGluY2x1ZGUgb3JkZXIjIFBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmcKCjIwMTAtMTAtMjggMTM6Mjc6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIHRoZSBidXMgYWxtb3N0IGxvY2tmcmVlCgkgIFVzZSBuZXcgR3N0UG9sbCBmdW5jdGlvbmFsaXR5IHRvIHdha2V1cCB0aGUgbWFpbmxvb3AuCgkgIFVzZSBhbiBhdG9taWMgcXVldWUgb24gdGhlIHdyaXRlciBzaWRlIHRvIHBvc3QgdGhlIG1lc3NhZ2VzLgoJICBUaGUgcmVhZGVyIHNpZGUgaXQgcHJvdGVjdGVkIHdpdGggdGhlIGxvY2sgc3RpbGwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IG11bHRpcGxlCgkgIGNvbmN1cnJlbnQgcmVhZGVycy4KCjIwMTEtMDItMTYgMTc6MjE6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMgZmlsZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMDItMTYgMTc6MTQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IHVzZSBjb3JyZWN0IGFycmF5IHNpemVzCgoyMDExLTAyLTE2IDE2OjIxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggZG9jcyBzb21lIG1vcmUKCjIwMTEtMDItMTYgMTY6MTk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pY3F1ZXVlOiBhZGQgcmVmY291bnRpbmcgYW5kIGRvY3MKCjIwMTEtMDItMTYgMTI6NDg6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IG1ha2Ugc3VyZSBhIG1pbiBpbml0aWFsX3NpemUgaXMgdXNlZAoKMjAxMC0xMC0yOCAxNjowMjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWNxdWV1ZTogYWRkIGFuIGF0b21pYyBxdWV1ZQoJICBBZGQgYW4gYXRvbWljIHF1ZXVlLiBUaGUgcXVldWUgY2FuIGJlIHVzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIHNpbXVsdGFuZW91c2x5CgkgIGFuZCB3aXRob3V0IHRha2luZyBhbnkgbG9ja3Mgb3IgZG9pbmcgYW55IGJsb2NraW5nIG9wZXJhdGlvbnMuIFRoaXMgbWFrZXMgaXQKCSAgaGlnaGx5IHNjYWxhYmxlIGZvciB0aGluZ3MgbGlrZSB0aGUgYnVzLCBidWZmZXJwb29scyBhbmQgb2JqZWN0IHJlY3ljbGluZy4KCjIwMTEtMDItMTYgMTc6MTQ6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGNoZWNrOiBmaXggYSBsZWFrIGluIHRoZSBidXMgdW5pdCB0ZXN0CgoyMDExLTAyLTE2IDE3OjI4OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBkZWluaXQ6IGFkZCBwcm9ncmVzcyB0eXBlIGNsYXNzIHVucmVmCgoyMDExLTAyLTE2IDE1OjEzOjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHRlbGwgYWxzbyB3aGF0IHBhZCBhIHBhZCBpcyBhbHJlYWR5IGxpbmtlZCBhZ2FpbnN0CgoyMDExLTAyLTE1IDIyOjU2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXtzaW5rLHNyY306IENoZWNrIGlmIG5vbi1VUkkgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCwgYnV0IG9ubHkgZm9yIHRoZSBVUkkgbm90IHRoZSBsb2NhdGlvbiBwcm9wZXJ0eQoKMjAxMS0wMi0xNSAyMjo0OToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGV7c3JjLHNpbmt9OiBGaXggdW5pdCB0ZXN0cwoJICBmaWxlc2luayBhbmQgZmlsZXNyYyBzaG91bGQgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgVVJJIGFzIHBhc3NlZAoJICBhbmQgbXVzdCBub3QgZXNjYXBlIHBhdGggc2VwYXJhdG9ycy4KCjIwMTEtMDItMTUgMjI6NDg6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IGVzY2FwaW5nIG9mIFVSSXMKCSAgRXNwZWNpYWxseSBkb24ndCBlc2NhcGUgLyBhcyBwYXRoIHNlcGFyYXRvcnMKCjIwMTEtMDItMTUgMjI6MDU6MzEgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogRml4IGVzY2FwaW5nIG9mIGZpbGUgdXJpcwoJICBGaXhlcyBidWcgIzY0MjM5My4KCjIwMTEtMDItMTUgMTg6MjY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IGFkZCB0aW1lb3V0IHRvIHByb2dyZXNzIG1lc3NhZ2UKCSAgQWRkIGEgdGltZW91dCBtZW1iZXIgdG8gdGhlIHByb2dyZXNzIG1lc3NhZ2VzIHRvIGxldCB0aGUgYXBwbGljYXRpb24ga25vdyBhYm91dAoJICB0aGUgdGltZW91dCBzbyB0aGF0IGl0IGNhbiBkbyBzb21lIGd1aSB0aGluZ3Mgd2l0aCBpdC4KCjIwMTEtMDItMTUgMTg6MTQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtZW50aW9uIHRpbWVvdXQgaW4gdGhlIHByb2dyZXNzIG1lc3NhZ2UKCjIwMTEtMDItMTUgMTc6MjA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtYWtlIHByb2dyZXNzIGRyYWZ0IG9mZmljaWFsCgoyMDExLTAxLTA2IDE4OjU1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IHJlbmFtZSBjYXRlZ29yeSB0byBjb2RlCgoyMDExLTAxLTA2IDE1OjU4OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIG5ldyBtZXNzYWdlIHF1YXJrCgoyMDExLTAxLTA2IDE1OjU4OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBzdGFuZGFyZCBjYXRlZ29yaWVzCgoyMDExLTAxLTA1IDEzOjUzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZ2lzdGVyIG5ldyB0eXBlCgoyMDExLTAxLTA1IDEzOjQ4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgY2hlY2s6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIHVuaXQgdGVzdAoKMjAxMS0wMS0wNSAxMzo0MTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIGZ1bmN0aW9ucwoKMjAxMS0wMS0wNSAxMzozOToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogdXBkYXRlIHByb2dyZXNzIGZpZWxkCgkgIEF2b2lkIG5hbWluZyB0aGUgcHJvZ3Jlc3MgZnJlZSB0ZXh0IGZpZWxkICdtZXNzYWdlJyBhcyBpdCBjb25mbGljdHMgd2l0aCB0aGUKCSAgbWVzc2FnZSBpdHNlbGYuCgoyMDExLTAyLTE1IDE0OjQyOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICAuLi4gd2hpY2ggY291bGQgbGVhZCB0byBhIHByZW1hdHVyZSBlb3MgYmVpbmcgcmVwb3J0ZWQgZG93bnN0cmVhbSwKCSAgcmF0aGVyIHRoYW4gYSBzdWNjZXNzZnVsIHBhcnRpYWwgcmVhZCB3aGljaCB3b3VsZCByZXN1bHQgd2hlbgoJICBwZXJmb3JtZWQgZGlyZWN0bHkgb24gZS5nLiBiYXNlc3JjLgoKMjAxMS0wMS0yNiAxNjo0NjoyNSArMDgwMCAgQ2hlbiBSdWkgPHJ1aS5jaGVuQHRpZXRvLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIHJlYWwgZXJyb3IgaW4gY29tcGF0aWJsZSBsaW5rIGNoZWNrCgkgIFdlIG5lZWQgdG8gZW5zdXJlIHdlIGNhbGwgZ3N0X3BhZF9jaGVja19saW5rKCkgd2l0aCB0aGUgdHdvIHBhZHMgaW4gdGhlIGNvcnJlY3QKCSAgb3JkZXIuIFRoZSBvcmRlciBkZXBlbmRzIG9uIHdoZXRlciB3ZSBpdGVyYXRlIHNyYyBvciBzaW5rIHBhZHMuCgkgIFNpZ25lZC1vZmYtYnk6IENoZW4gUnVpIDxydWkuY2hlbkB0aWV0by5jb20+CgoyMDExLTAyLTE0IDE3OjMxOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIHNpbmtwYWQgZm9yIGZsdXNoaW5nCgkgIENoZWNrIHRoZSBzaW5rcGFkIGZvciB0aGUgZmx1c2hpbmcgc3RhdGUgYmVmb3JlIGNhbGxpbmcgdGhlIGNoYWluZnVuY3Rpb24gb24gdGhlCgkgIHBhZC4gV2UgZG8gdGhpcyBieSBjaGVja2luZyB0aGUgY2FjaGUgKHdoaWNoIGlzIGFsc28gY2xlYXJlZCBvbiB0aGUgc3JjcGFkIHdoZW4KCSAgdGhlIHNpbmsgaXMgc2V0IHRvIGZsdXNoaW5nKS4KCSAgRml4ZXMgIzY0MTkyOAoKMjAxMS0wMi0xMSAxNzo0NzoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ2hlY2sgZm9yIHBhZCBhbGxvYyBjYXBzIHdoZW4gc3VnZ2VzdGlvbiBpcyBub3QgZml4ZWQKCSAgSWYgYWZ0ZXIgY29tcHV0aW5nIHRoZSBzdWdnZXN0aW9uIHdpdGggZG93bnN0cmVhbSBjYXBzIHdlIHN0aWxsIGhhdmUKCSAgYSBub24tZml4ZWQgc3VnZ2VzdGlvbiBjYXBzIHRyeSB0byBpbnRlcnNlY3Qgd2l0aCB0aGUgaW5wdXQgY2FwcwoJICBvZiB0aGUgcGFkIGFsbG9jIHRvIGF2b2lkIHVzZWxlc3MgcmVuZWdvdGlhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDIxMzAKCjIwMTEtMDItMTQgMTQ6MDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGR1cmF0aW9uIGNhbGN1bGF0aW9uCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGF2ZXJhZ2UgZGlzdGFuY2UgYmV0d2VlbiBpbmNvbW1pbmcgdGltZXN0YW1wcyBhbmQKCSAgdXNlIHRoYXQgdG8gZXN0aW1hdGUgdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gYnVmZmVycyBoYXZlIG5vIGR1cmF0aW9uIHNldCBvbgoJICB0aGVtLgoKMjAxMS0wMi0xNCAxMzo0OToxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgcmF0ZSBjYWxjdWxhdGlvbgoJICBXaGVuIHRoZXJlIGlzIG5vIGR1cmF0aW9uIG9uIGlucHV0IGJ1ZmZlcnMsIGFzc3VtZSB0aGUgcmF0ZSBpcyAxLjAKCSAgaW5zdGVhZCBvZiAodGhlIHVuZGVmaW5lZCkgMC4wLgoKMjAxMS0wMi0xNCAxMzo0NzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYXZlcmFnZSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoJICBJbXByb3ZlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgZHVyYXRpb24uIFdoZW4gd2UgaGF2ZSBubyBpbnB1dCBkdXJhdGlvbiBzZXQgb24KCSAgdGhlIGlucHV0IGJ1ZmZlcnMgc3RvcCBpcyBzZXQgdG8gc3RhcnQgYW5kIHRoZW4gd2UgZW5kIHVwIHVzaW5nIGEgMCBkdXJhdGlvbiBpbgoJICB0aGUgYXZlcmFnZSBjYWxjdWxhdGlvbi4KCjIwMTEtMDItMTQgMTI6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW5hbWUgdmFyaWFibGUKCSAgUmVuYW1lIGFuIGludGVybmFsIHZhcmlhYmxlIHRvIGJldHRlciByZWZsYWN0IHdoYXQgaXRzIHZhbHVlIG1lYW5zLgoKMjAxMS0wMi0xNCAxNTozOToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiB0cmltIHdoaXRlc3BhY2VzCgoyMDExLTAyLTE0IDE1OjM3OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGZpeCB0eXBvIGluIHBhZC1saXN0IGxlbmd0aCBjb21wYXJpc2lvbgoJICBJdCB3YXMgY29tcGFyaW5nIHRoZSBsZW5ndGggd2l0aCBpdHNlbGYuCgkgIEZpeGVzICM2NDIwNzEuCgoyMDExLTAyLTE0IDEyOjUyOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY5NGQ3MzkgdG8gMWRlN2Y2YQoKMjAxMS0wMi0xMyAyMjo1NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByZXR0eS1wcmludCBkYXRldGltZSB0YWdzCgoyMDExLTAyLTEwIDIzOjMwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBnc3RyZWFtZXIuZG9hcDogdXBkYXRlIG1haWxpbmcgbGlzdCBob3N0CgoyMDExLTAyLTEwIDE0OjUzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHNvbWUgY29tbWVudHMKCjIwMTEtMDItMTAgMTQ6NTA6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBrZWVwIHRyYWNrIG9mIGVhcmxpZXN0IFFvUyB0aW1lc3RhbXAKCSAgS2VlcCB0cmFjayBvZiB0aGUgZWFybGllc3QgYWxsb3dlZCB0aW1lc3RhbXAgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QKCSAgUW9TIHJlcG9ydCBhbmQgZHJvcCBidWZmZXJzIGJlZm9yZSB0aGF0IHRpbWUuIEFjdGl2YXRlIHRoaXMgZmlsdGVyCgkgIHdoZW4gdGhyb3R0bGluZyBpcyBlbmFibGVkLiBXZSBjb3VsZCBsYXRlciBhbHNvIGFjdGl2YXRlIHRoaXMgaW4gdGhlCgkgIG90aGVyIFFvUyBjYXNlcy4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTQ6MTc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbmV3IFFvUyB0eXBlCgkgIFVzZSB0aGUgbmV3IFFvUyB0eXBlIGFuZCBzZW5kIHRocm90dGxpbmcgUW9TIG1lc3NhZ2VzLgoKMjAxMS0wMi0xMCAxMzo0MjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBhZGQgcHJvcGVydHkgdG8gY29uZmlndXJlIGEgdGhyb3R0bGUtdGltZQoJICBBZGQgYSBwcm9wZXJ0eSB0byBjb25maWd1cmUgdGhlIHRocm90dGxlIHRpbWUgb24gYSBzaW5rLiBUaGUKCSAgcHJvcGVydHkgaXMgbm90IHlldCB1c2VkLgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgUW9TIGV2ZW50IHR5cGUKCSAgQWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBRb1MgZXZlbnQgdG8gc3BlY2lmeSB0aGUgUW9TIGV2ZW50IHR5cGUuCgkgIFVwZGF0ZSBkb2NzIGFuZCBhZGQgdW5pdCB0ZXN0LgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZml4IHBhcmFtZXRlciBkb2NzCgoyMDExLTAyLTEwIDEwOjQ5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkZXNpZ246IHR3ZWFrIGRvY3MgYSBsaXR0bGUKCjIwMTEtMDItMTAgMTA6MzQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIFFvUyBkb2N1bWVudAoJICBBZGQgbmV3IFFvUyB0eXBlcyBhbmQgdGFsayBhYm91dCB0aGUgbmV3IHRocm90dGxlIFFvUyBtZXNzYWdlLgoKMjAxMS0wMi0xMCAxMzo0NjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgaW4gdGhlIGJ1ZmZlcnBvb2wgZHJhZnQKCjIwMTEtMDItMTAgMTA6MTk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50czogZml4IGctaSBhbm5vdGF0aW9uIGZvciBnc3RfZXZlbnRfbmV3X3RhZygpIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgdGFnIGxpc3QKCjIwMTEtMDItMTAgMDA6MDI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiB0aGF0IGl0J3MgbmVjZXNzYXJ5IHRvIHNldCB0aGUgc3RhdGUgb2YgZWxlbWVudHMgYWRkZWQgdG8gYW4gYWxyZWFkeS1ydW5uaW5nIHBpcGVsaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE2MzEKCjIwMTEtMDItMDkgMTY6MjI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZGVzaWduOiBhZGQgZHJhZnQgZm9yIGZpcnN0IGlkZWFzIGZvciBhIGJ1ZmZlcnBvb2wgZmVhdHVyZQoJICBBZGQgYSBmaXJzdCBkcmFmdCB3aXRoIHNvbWUgaWRlYXMgYW5kIHVzZSBjYXNlcyBmb3IgdGhlIGltcGxlbWVudGF0aW9uCgkgIGZvciBidWZmZXJwb29scy4gVGhlIHB1cnBvc2UgaXMgdG8gYmUgYWJsZSB0byBtYWtlIGVsZW1lbnRzIG5lZ290aWF0ZQoJICB0aGVpciBidWZmZXIgcmVxdWlyZW1lbnRzIGFzIHdlbGwgYXMgcHJvdmlkZSBhbiBpbmZyYXN0cnVjdHVyZSB0bwoJICBwcmVhbGxvY2F0ZSBhbmQgcmV1c2UgYnVmZmVycyBpbiBhbiBlYXN5IHdheS4KCjIwMTEtMDItMDkgMTU6MjM6MTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IGNsYXJpZnkgdGhlIE5PTUlOQUxfQklUUkFURSBkb2NzCgkgIFRlbGwgdGhhdCBpdHMgYSB0YXJnZXQgYml0cmF0ZSBhbmQgYWN0dWFsIHZhbHVlcyBtaWdodCBiZSBkaWZmZXJlbnQuCgoyMDExLTAyLTAzIDE1OjE3OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHRyaWdnZXIgcmVidWlsZCBzZXR1cCBpbiBfbmV3CgkgIEZhaWxpbmcgdG8gZG8gc28gaW4gdGhlIFdpbmRvd3MgY2FzZSAoaW1wbGljaXRseSB0cmlnZ2VyZWQgb3RoZXJ3aXNlKQoJICB3b3VsZCBoYXZlIGEgc3Vic2VxdWVudCBfd2FpdCByZXR1cm4gaW1tZWRpYXRlbHkgbGVhZGluZyB0byBoaWdoIENQVQoJICB1c2FnZSB0aW1lb3V0IGxvb3BzLgoJICBGaXhlcyAjNjQwNjc1LgoKMjAxMS0wMi0wMyAxMDo1MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIGFkZGluZy9yZW1vdmluZyBvZiBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSB3b3JrIHByb3Blcmx5CgkgIE1ha2UgYWRkaW5nL3JlbW92aW5nIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIHdvcmsgcmVsaWFibHkgaW4gYWxsCgkgIGNpcmN1bXN0YW5jZXMuIFRoZSBwcm9ibGVtIHdhcyB0aGF0IGRlcGVuZGluZyBvbiBwbGF0Zm9ybSBhbmQgbGlua2VyCgkgIGZsYWdzIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBtaWdodCByZXNvbHZlIHRvIGRpZmZlcmVudCBhZGRyZXNzZXMsCgkgIHdoaWNoIG1hZGUgaXQgaW1wb3NzaWJsZSB0byByZW1vdmUgdGhlIGRlZmF1bHQgbG9nIGZ1bmN0aW9uIGFkZGVkCgkgIGluIGdzdF9pbml0KCkgZnJvbSBhcHBsaWNhdGlvbiBjb2RlIChiZWNhdXNlIHRoZSBwb2ludGVyIHZhbHVlcwoJICBkaWRuJ3QgbWF0Y2gpLiBUaGUgbmV3IGFwcHJvYWNoIHNob3VsZCBrZWVwIHRoaW5ncyBzaW1wbGUgYnkgcGFzc2luZwoJICBOVUxMIGZvciB0aGUgZGVmYXVsdCBmdW5jdGlvbiwgd2hpY2ggdGhlIGNvZGUgaW4gbGliZ3N0cmVhbWVyIGNhbgoJICB0aGVuIGhhbmRsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzcxCgoyMDExLTAyLTAzIDEwOjI4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIFJldmVydCAiaW5mbzogdXNlIHRoZSBwdWJsaWNseSB2aXNpYmxlIGFkZHJlc3MgdG8gZml4IHRoZSB0ZXN0cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlYjU2Njg3YTZkZmQyMDc1MDdhNGNhMDAwZWFlNTNmOTNiNWUzM2VhLgoJICBXaGlsZSB0aGlzIGNvbW1pdCBtYXkgaGF2ZSBmaXhlZCBhIHByb2JsZW0gb24gb25lIG9mIHRoZSBidWlsZCBib3RzLAoJICBpdCBkaWRuJ3QgYWN0dWFsbHkgZml4IHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0ZWQgZm9yIHdpbjMyLgoJICBBbHNvLCBpdCBjYXVzZXMgb3RoZXIgcHJvYmxlbXMsIHN1Y2ggYXMgdGhlIGxvb2t1cCBmYWlsaW5nIHdoZW4KCSAgY2FsbGVkIGZyb20gQysrIGNvZGUgKGdzdC1waG9ub24sIGFtYXJvaykuCgkgIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQgZGlmZmVyZW50bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3NzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoKMjAxMS0wMi0wMiAxNTozNTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHByb3Blcmx5IGlkZW50aXR5IGRlcXVldWVkIGV2ZW50IGFzIHN1Y2gKCSAgLi4uIHdoaWNoIGF2b2lkcyB0ZXJtaW5hdGluZyB3aXRoIEVSUk9SIHJhdGhlciB0aGFuIFVORVhQRUNURUQuCgoyMDExLTAyLTAyIDAyOjA3OjU4ICswMDAwICBQZXRlciBDb2xsaW5nYm91cm5lIDxwZXRlckBwY2MubWUudWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1c2UgJEdTVF9QUkVGSVggdmFyaWFibGUKCSAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gY2hhbmdlIHRoZSBwcmVmaXggYnkgZWRpdGluZyB0aGUgc2NyaXB0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjEyCgoyMDEwLTA4LTE5IDIyOjQzOjA3ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBub2tpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgYSBuZXcgImVuY29kZWQtYnkiIHRhZwoJICBVc2VjYXNlOiBJRDN2MiBURU5DICgiRW5jb2RlZCBieSIpIGZyYW1lLgoJICBBUEk6IEdTVF9UQUdfRU5DT0RFRF9CWQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3MjY4CgoyMDExLTAxLTI5IDE4OjAyOjExICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBuZXQ6IHVzZSBzb2NrbGVuX3Qgd2hlcmUgYXBwcm9wcmlhdGUgcmF0aGVyIHRoYW4gc3BlY2lmaWMgdHlwZQoJICBJbiBwYXJ0aWN1bGFyLCBmaXhlcyBDeWd3aW4gYnVpbGQgd2hlcmUgc29ja2xlbl90IGlzIGRlZmluZWQgYXMgaW50CgkgIGluIGxpbmUgd2l0aCBuYXRpdmUgd2luMzIgYXBpIGRlZmluaXRpb24uCgoyMDExLTAxLTMxIDE1OjU4OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhvbm91ciBhbnkgcGVyLXRocmVhZCBkZWZhdWx0IG1haW4gY29udGV4dCBzZXQgdmlhIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpCgkgIE1ha2VzIGdzdF9idXNfYWRkX3dhdGNoKCksIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwoKSwgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKCksCgkgIGFuZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCgpIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhdXRvbWF0aWNhbGx5IHBpY2sgdXAKCSAgYW55IG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgc2V0IGZvciB0aGUgY3VycmVudCB0aHJlYWQgdmlhCgkgIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpLgoKMjAxMS0wMS0yOCAxNTozNjozMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogT25seSBzZXQgZGlzY29udCBvbiB0aGUgZmlyc3QgYnVmZmVyIGFmdGVyIGRyb3BzCgkgIFJlc2V0IHRoZSBkaXNjb250IG1lbWJlciBhZnRlciBzZXR0aW5nIGRpc2NvbnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBhZnRlcgoJICBkcm9wcGluZy4KCjIwMTEtMDEtMjggMTk6MDg6MDggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIEdzdEVsZW1lbnQ6IEZpeCB3YXJuaW5nIHdpdGggR0NDIDQuNgoJICBnc3RlbGVtZW50LmM6IEluIGZ1bmN0aW9uIOKAmGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZOKAmToKCSAgZ3N0ZWxlbWVudC5jOjEwNTI6MTg6IGVycm9yOiB2YXJpYWJsZSDigJh0bXDigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDg1MAoKMjAxMS0wMS0yNyAwOToyODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBwcmludCB1bnNldCBidWZmZXIgdGltZXN0YW1wcyBvciBkdXJhdGlvbnMgYXMgJ25vbmUnCgkgIExpa2UgZmFrZXNpbmsgYW5kIGZha2VzcmMgZG8uCgoyMDExLTAxLTEyIDE2OjAzOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgdGFrZSBvYmplY3QgbG9jayBmb3IgcmVhZGluZyB0aGUgZm91bmQgY2FwcwoJICBPbmNlIHdlIHN3aXRjaCB0byBub3JtYWwgbW9kZSwgd2UncmUgbm90IHR5cGVmaW5kaW5nIGFueW1vcmUgYW5kIHRodXMgdGhlIGNhcHMKCSAgd2lsbCBub3QgY2hhbmdlLiBUaGVyZWZvcmUgY2FuIGF2b2lkIHRoZSBvYmplY3QgbG9jayBpbiB0aGUgZGF0YS1mbG93IHBhdGguCgkgIFRoZSBsb2NraW5nIHdhcyBhZGRlZCBpbiBvcmRlciB0byBmaXggYnVnICM2MDg4NzcuCgoyMDExLTAxLTI1IDA5OjM5OjQ1ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL29tZWdhL1RPRE8tMC4xLjA6CgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL2NhcHR1cmluZzoKCSogZG9jcy9yYW5kb20vd3RheS9ldmVudHM6CgkqIGRvY3MvcmFuZG9tL3d0YXkvZXZlbnRzMzoKCSogZG9jcy9zbGlkZXMvb3V0bGluZToKCSAgZG9jczogZml4IGEgZmV3IG1vcmUgdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDUwMgoKMjAxMS0wMS0yNSAxODo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBkb2NzOiBmbGVzaCBvdXQgdHlwZWZpbmRlbGVtZW50IGRvY3Mgc29tZSBtb3JlCgkgIE1lbnRpb24gdGhhdCBoYXZlLXR5cGUgc2lnbmFsIG1heSBiZSBlbWl0dGVkIGZyb20gc3RyZWFtaW5nCgkgIHRocmVhZCBvciBhcHBsaWNhdGlvbiB0aHJlYWQsIGFuZCBmaXggYSB0eXBvLgoKMjAxMS0wMS0xMiAxNjowMzo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNvZGUgYW5kIGNvbW1lbnQgY2xlYW51cHMKCSAgTWFrZSBjb2RlIHR3byBwbGFjZXMgb2YgdGhlIGNvZGUgdGhlIHB1c2hlcyB0aGUgYnVmZmVyIHN0b3JlIG1vcmUgc2ltaWxhci4gTW9yZQoJICBjb21tZW50cyBhbmQgZGVidWcgbG9nZ2luZy4KCjIwMTEtMDEtMTIgMTM6MDU6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZW5zdXJlIG1lc3NhZ2VzIGFyZSBcMCB0ZXJtaW5hdGVkCgoyMDExLTAxLTEyIDEyOjU4OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogaGFuZGxlIGludmFsaWQgbmV0d29yayBhZGRyZXNzZXMgZWFybGllcgoJICBIYW5kbGUgaW5ldF9hdG9uKCkgcmV0dXJuIGNvZGUuCgoyMDExLTAxLTEyIDEyOjQ0OjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2tzOiBhZGQgYSBjb21tZW50IHRvIGluZGljYXRlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBsZWF2ZSBvdXQgdGhlICdicmVhaycKCjIwMTEtMDEtMTIgMTI6NDM6MDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIGRlYWQgY29kZQoJICBUaGUgR0Vycm9yIGlzIG9ubHkgdXNlZCBmb3IgdGhlIG1tYXAgb3BlcmF0aW9ucy4gSWYgd2UgaGF2ZSBhbiBlcnJvciB3ZSBoYW5kbGUKCSAgYW5kIGNsZWFuIGl0IHRoZXJlIGFscmVhZHkuCgoyMDExLTAxLTEyIDA5OjMzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogc21hbGwgY29udHJvbGxlciBhcGkgZG9jcyBpbXByb3ZlbWVudAoKMjAxMS0wMS0xMSAxNTowOTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNhbm9uaWNhbGl6ZSBzaWduYWwgbmFtZQoKMjAxMS0wMS0xMSAxNTowOTozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiBoYXZlLXR5cGUgc2lnbmFsIGluIHRoZSBkb2NzLgoKMjAxMS0wMS0yNSAwOToxNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IG1pbm9yIGdzdC1sYXVuY2ggbWFuIHBhZ2UgZml4CgkgIFRyYW5zbWl0dGVyL3JlY2VpdmVyIHBpcGVsaW5lcyB3ZXJlIG1pc2xhYmVsbGVkLiBTcG90dGVkIGJ5IE1hamluLgoKMjAxMS0wMS0yNSAxNjowOToxOCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlIHRlc3Q6IFJlbW92ZSB3b3JrYXJvdW5kIGZvciBwYWRfdGFzayBoYW5ncwoJICBSZW1vdmUgY29kZSB0aGF0IGlzbid0IG5lZWRlZCBhbnkgbG9uZ2VyLCB3aGljaCBzZXRzIHRoZSBtdWx0aXF1ZXVlCgkgIHRvIFBMQVlJTkcgYW5kIGJhY2sgYmVmb3JlIHVucmVmZmluZywgaW4gb3JkZXIgdG8gYXZvaWQgYSBkZWFkbG9jawoJICB3YWl0aW5nIGZvciBnc3RwYWQgdGFza3MgdGhhdCB3ZXJlIG5ldmVyIHN0YXJ0ZWQuIFRoZSBwcm9ibGVtIHNlZW1zCgkgIHRvIGhhdmUgYmVlbiBmaXhlZCBsb25nIGFnby4KCjIwMTEtMDEtMjUgMDA6MjA6MzQgKzA4MDAgIENhaSBZdWFucWluZyA8Y2tqYWNrZXRAZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBmaXggMiB0eXBvcyBpbiBwYXJ0LU1ULXJlZmNvdW50aW5nCgoyMDExLTAxLTI0IDE3OjQ2OjE1ICswODAwICBZYW5nIFhpY2h1YW4gPHhpY2h1YW4ueWFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgIGRlc2lnbiBkb2NzOiBwYXJ0LWdzdGJpbi50eHQgZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWWFuZyBYaWNodWFuIDx4aWNodWFuLnlhbmdAdGlldG8uY29tPgoKMjAxMS0wMS0xOSAxNTo0ODoyNiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZGVzaWduIGRvY3M6IGZpeCBhIGZldyB0eXBvcyBhbmQgYSB0aGlua28KCjIwMTEtMDEtMTEgMTc6NDM6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFQSTogQWRkIGZ1bmN0aW9uIHRvIHJlLWluaXQgcGVyaW9kaWMgR3N0Q2xvY2tJRHMKCjIwMTEtMDEtMjAgMTQ6Mzc6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IGRvIG5vdCBsZWFrIHRoZSBkZXNjcmlwdGlvbiBzdHJpbmcKCSAgVGhlIGRlc2NyaXB0aW9uIHN0cmluZyB3YXMgY2hhbmdlZCB0byBhbiBpbmxpbmVkIHN0cmluZyBhIHdoaWxlIGJhY2suCgkgIChCdXQ6IG5vIG5lZWQgdG8gaW50ZXJuIHRoZSBjb25zdCBzdHJpbmdzIGhlcmUsIHdlIGp1c3QgdXNlIHRoZSBpbnRlcm5pbmcKCSAgdG8gYXZvaWQgYWxsb2NhdGluZyBkdXBsaWNhdGVzIGFuZCBtYWtlIG1lbW9yeSBtYW5hZ2VtZW50IGVhc2llciwKCSAgc2luY2UgdGhlIHN0cmluZ3Mgd2lsbCBiZSBhcm91bmQgZm9yIHRoZSBsaWZlLXRpbWUgb2YgdGhlIGFwcCBhbnl3YXkpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMDcxCgoyMDExLTAxLTIyIDE1OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGNsYXJpZnkgZG9jcwoKMjAxMS0wMS0xMSAxMDozMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgYnVmZmVyaW5nIGRvYwoJICBBZGQgc3RyYXRlZ2llcyB0byBidWZmZXJpbmcgZG9jCgoyMDExLTAxLTI0IDExOjUzOjEyICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjMyIiBtYXJrZXJzIGZvciBHc3RDbG9jawoJICBTaW5jZSB0YWdzIHdlcmUgbWlzc2luZyBmb3IgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCgpCgkgIGFuZCBHU1RfQ0xPQ0tfRE9ORS4KCjIwMTEtMDEtMjQgMTA6NTY6MjEgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogRml4IEdzdFF1ZXVlMjpyaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0eSBTaW5jZSB0YWcgKDAuMTAuMzEsIG5vdCAwLjEwLjMwKQoKMjAxMS0wMS0yNCAxMDoyNjo0NSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4zMSIgbWFya2VyIGZvciBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUoKQoKMjAxMS0wMS0yNCAxNDoyMjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWFkLWJleW9uZC1lbmQtb2Ytc3RyaW5nIGJ1ZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5Njc0CgoyMDExLTAxLTI0IDE0OjE2OjM3ICswMDAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZS1sYXVuY2g6IGRvbid0IHJlYWQgcGFzdCBlbmQgb2Ygc3RyaW5nIGlmIGxhc3QgY2hhcmFjdGVyIGlzIGFuIGVzY2FwZSBjaGFyCgkgIFdoZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJvcGVydHkgdmFsdWUgaXMgYSBiYWNrc2xhc2gKCSAgdGhlIHVuZXNjYXBpbmcgY29kZSByZWFkcyBvbmUgYnl0ZSBwYXNzIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY3NAoKMjAxMS0wMS0xNCAwOToyMToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBoYWNrIGEgY2hhcnNldD11dGYtOCBpbnRvIHB3Zy9hZG0gaHRtbCB2ZXJzaW9ucwoJICBTbyB0aGUgZW5jb2Rpbmcgb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50IGlzIHJlc3BlY3RlZCBhbmQKCSAgZGlzcGxheXMgcHJvcGVybHkgaW4gYnJvd3NlcnMgd2hlcmUgdGhlIGVuY29kaW5nIGF1dG9kZXRlY3Rpb24KCSAgZmFpbHMgdG8gcmVjb2duaXNlIHRoYXQgaXQncyB1dGYtOC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQ0OAoKMjAxMS0wMS0xMyAxNTo0MTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZG9uJ3QgbGVhayB4bWwgZmlsZSBuYW1lIGlmIEdTVF9DSEVDS19YTUwgaXMgc2V0CgkgIFNwb3R0ZWQgYnkgbnZpbmVldGhAZ21haWwuY29tCgoyMDExLTAxLTIzIDIzOjQ1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzIgPT09CgoyMDExLTAxLTIxIDEwOjI1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMgoKMjAxMS0wMS0yMCAxOTowNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiY29uZmlndXJlOiByZXF1aXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiA+PSAwLjkuMTIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2E1OWQ0MTZhZjZkMGY4YjYxZTI0NjA4MzBlYjZmMTEzODkyOWVjMi4KCSAgUmV2ZXJ0aW5nIHRoaXMsIGFzIHRoZSBmZWF0dXJlIHdlIGJ1bXBlZCB0aGUgcmVxdWlyZW1lbnQgZm9yCgkgIGRpZG4ndCBhY3R1YWxseSB3b3JrIHByb3Blcmx5IG9yIGhlbHAgd2l0aCB0aGUgaXNzdWUgd2Ugd2VyZQoJICB0cnlpbmcgdG8gZml4IChhbmQgaXQgd2FzIGZpeGVkIGRpZmZlcmVudGx5IGluIHRoZSBlbmQpLgoKMjAxMS0wMS0xOCAyMjo1MTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgZG9jczogZml4IHNwZWxsaW5nIG9mICd0aHJlc2hvbGQnIGluIGFwcCBkZXYgbWFudWFsCgoyMDExLTAxLTE4IDEwOjEwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuNCBwcmUtcmVsZWFzZQoKMjAxMS0wMS0xOCAwOTowNDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogdHJ5IGhhcmRlciB0byBtYWtlIGctaXItc2Nhbm5lciB1c2UgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBBcHBseSBmaXggZnJvbSBsaWJnc3RiYXNlIHRvIGFsbCBjb3JlIGxpYnMgbm93IHRoYXQgd2Uga25vdyB0aGF0IGl0CgkgIHdvcmtzLiBTaG91bGQgZml4IHByb2JsZW1zIHdpdGggZy1pci1zY2FubmVyIHVzaW5nIHRoZSB3cm9uZwoJICAoaWUuIHN5c3RlbSkgbGliZ3N0cmVhbWVyLCBsZWFkaW5nIHRvIGxpbmtpbmcgZXJyb3JzIHN1Y2ggYXMKCSAgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTQgMDA6MjA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogZml4IGdhcmJsZWQgVVRGLTggY2hhcmFjdGVycyB3aGVuIGdlbmVyYXRpbmcgYXBwIGRldiBtYW51YWwgcHMvcGRmCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk0NDgKCjIwMTEtMDEtMTMgMjA6MTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBhbm90aGVyIGF0dGVtcHQgdG8gbWFrZSBnLWkgZmluZCB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIFR1cm5zIG91dCBnLWkgcHV0cyB0aGUgYWRkaXRpb25hbCAtTCB3ZSBzcGVjaWZ5IGF0IHRoZSBlbmQsIGhlbHBmdWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xMiAxNTo0NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVxdWlyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gPj0gMC45LjEyCgkgIEVhcmxpZXIgdmVyc2lvbnMgZG9uJ3QgaG9ub3VyIHRoZSAtTC8tLWxpYnJhcnktcGF0aCBvcHRpb24sCgkgIHdoaWNoIHdlIG5lZWQuIFNlZSBjb21taXQgNGQwY2NkYWQgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIGdpdC4KCjIwMTEtMDEtMTIgMTA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogdXBkYXRlIGctaSBpbmNsdWRlIHBhdGhzIGFzIHdlbGwgZm9yIGhlYWRlciBjaGFuZ2VzCgkgIEhvcGVmdWxseSBtYWtlcyBMdWNpZCBhbmQgTWF2ZXJpY2sgYnVpbGQgYm90cyBoYXBweSBhZ2FpbgoKMjAxMS0wMS0xMSAxODozOTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjMgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTEgMTg6Mzg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZ2wucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDEtMTEgMTk6MjY6NDAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IEZpeCBoZWFkZXJzIHRvIHVzZSA8ID4gaW4gI2luY2x1ZGUgc3RhdGVtZW50cwoJICBUaGUgYmVoYXZpb3Igb2YgIiAiIGluIGluY2x1ZGUgc3RhdGVtZW50cyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIC0KCSAgc2VlIHRoZSBDIHN0YW5kYXJkLCBzZWN0aW9uIDYuMTAuMiBvcgoJICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIxNTkzCgoyMDExLTAxLTExIDE5OjE0OjI4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdzdG5ldDogRml4IC0tYy1pbmNsdWRlIGZvciBnaXIgZ2VuZXJhdGlvbgoJICBQcmV2aW91c2x5IGl0IHdhcyAtIHByb2JhYmx5IGR1ZSB0byBjb3B5L3Bhc3RlIGVycm9yIC0gbG9va2luZyBmb3IKCSAgZ3N0YmFzZSBoZWFkZXJzLgoJICBJdCdzIGNoYW5nZWQgbm93IHRvIG9ubHkgaW5jbHVkZSB0aGUgb25lIHB1YmxpYyBoZWFkZXIgZm9yIGdzdG5ldC5oCgoyMDExLTAxLTExIDEzOjQ3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBtYWtlIGctaXItc2Nhbm5lciB0cnkgaGFyZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBJdCdzIG5vdCBxdWl0ZSBjbGVhciB0byBtZSB3aHkgZy1pci1zY2FubmVyIGRvZXNuJ3QgZ2V0IHRoaXMgaW5mbyBmcm9tCgkgIHRoZSBwa2ctY29uZmlnIGZpbGUsIG5vciB3aHkgbGlidG9vbCBkb2Vzbid0IGdldCBpdCBmcm9tIHRoZSAubGEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTEgMTM6MDU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgcGtnY29uZmlnOiBhbHNvIGFkZCBsaWJkaXIgdG8gLXVuaW5zdGFsbGVkIC5wYyBmaWxlcwoJICBUaGlzIHdheSB3ZSBjYW4gZmluZCB0aGUgcGF0aHMgdG8gcGFzcyBlLmcuIGctaXItc2Nhbm5lciBmb3IKCSAgdW5pbnN0YWxsZWQgc2V0dXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MDM5CgoyMDExLTAxLTExIDE1OjQ5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGU1NzJjODcgdG8gZjk0ZDczOQoKMjAxMS0wMS0xMSAxNToxMDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4ZSB0aGUgcHJvcGVydHkgbGluayBhbmQgdGhlIHNpY2UgZG9jcwoKMjAxMS0wMS0xMSAxMjo0NjozMSArMDAwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIE1pbmdXCgkgIGdzdHBvbGwuYzogSW4gZnVuY3Rpb24gJ2dzdF9wb2xsX2dldF9yZWFkX2dwb2xsZmQnOgoJICBnc3Rwb2xsLmM6NjkyOjEwOiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5MDAKCjIwMTEtMDEtMTAgMTQ6Mzc6NDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdDogb3V0cHV0c2VsZWN0b3I6IEFkZCBhbm90aGVyIG5lZ290aWF0aW9uIHRlc3QKCSAgQWRkcyBhbiB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgb3V0cHV0LXNlbGVjdG9yIHdvcmtzCgkgIHdoZW4gbmVnb3RpYXRpbmcgYmVmb3JlIHNyY3BhZHMgYXJlIHJlcXVlc3RlZAoKMjAxMS0wMS0xMCAxNDoxOToxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBJbXByb3ZlIGdldCBhbmQgc2V0IGNhcHMgZnVuY3Rpb25zCgkgIEltcHJvdmUgc2luayBwYWQgZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBieSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZQoJICBubyBzcmMgcGFkcyBleGlzdCB5ZXQKCjIwMTEtMDEtMTAgMTY6MzU6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjY2JhYTg1IHRvIGU1NzJjODcKCjIwMTEtMDEtMTAgMTQ6NTI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjQ0NWFkIHRvIGNjYmFhODUKCjIwMTEtMDEtMTAgMDk6NTk6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IHNlbGVjdG9yOiB1bnJlZiBwZWVyIHBhZAoJICBEbyBub3QgZm9yZ2V0IHRvIHVucmVmIHBlZXIncyBwYWQgb24gb3V0cHV0LXNlbGVjdG9yIG5lZ290aWF0aW9uCgkgIHRlc3RzCgoyMDExLTAxLTEwIDEzOjE4OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2Ugc3VyZSB3ZSB3YWl0IGFuZCByZWxlYXNlIHRoZSBsaXZlIGxvY2sKCSAgTWFrZSBzdXJlIHdlIHJlbGVhc2UgdGhlIGxpdmUgbG9jayBhbmQgd2FpdCBpbiBhbGwgY2FzZXMgd2hlbiB3ZSBuZWVkIHRvIHdhaXQKCSAgZm9yIHRoZSBwbGF5aW5nIG9yIGZsdXNoaW5nIHN0YXRlIGNoYW5nZS4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMS0wMS0wOCAxNDo1MjoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRG9uJ3QgcmVwbGFjZSB2YWxpZCBleGlzdGluZyBwbHVnaW5zIGJ5IGJsYWNrbGlzdGVkIG9uZXMKCSAgT25seSByZXBsYWNlIGV4aXN0aW5nIHBsdWdpbnMgYnkgYmxhY2tsaXN0ZWQgb25lcyBpZiB0aGV5IGNvcnJlc3BvbmQKCSAgdG8gdGhlIGV4YWN0IHNhbWUgcGx1Z2luLiBJZiB0aGV5J3JlIG5vdCB0aGUgc2FtZSwga2VlcCB0aGUgZXhpc3RpbmcKCSAgdmFsaWQgb25lLgoJICBGaXhlcyAjNjM4OTQxCgoyMDExLTAxLTA4IDAyOjE5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBjb25maWd1cmUsIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGEgZmV3IGJhc2hpc20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk2MQoKMjAxMS0wMS0wNyAxMjoxMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjIgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMDcgMDI6MTg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBpbmRleGVyczogZml4IHR3byBzbWFsbCBsZWFrcwoJICBlbGVtZW50IGZhY3RvcnkgcGx1Z2luX25hbWVzIGFyZSBpbnRlcm5lZCBzdHJpbmdzIHRoZXNlIGRheXMuCgoyMDExLTAxLTA3IDAwOjUzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogbmV2ZXIgZGlzYWJsZSBnX2Fzc2VydCgpIGFuZCBjYXN0IGNoZWNrcyBmb3IgdGhlIHVuaXQgdGVzdHMKCSAgVGhlIHVuaXQgdGVzdHMgYXJlIHJpZGRsZWQgd2l0aCBnX2Fzc2VydCgpIGFuZCBmcmllbmRzLCBtYWtlIHN1cmUgd2UKCSAgZG9uJ3QgZGlzYWJsZSBhc3NlcnQgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cyBldmVuIGlmCgkgIHRoaXMgaGFzIGJlZW4gc3BlY2lmaWVkIGZvciB0aGUgcmVzdCBvZiB0aGUgY29kZSBiYXNlLCBlLmcuIHZpYQoJICAtLWRpc2FibGUtZ2xpYi1hc3NlcnRzLgoKMjAxMS0wMS0wNiAxOTo0MDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSBvbGQgbGliZ3N0dmFsdmUuc28gYW5kIGxpYmdzdHNlbGVjdG9yLnNvIHBsdWdpbnMgdG8gbWluaW1pemUgdXBncmFkZSBwYWluCgkgIElnbm9yZSBwbHVnaW5zIHdoaWNoIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIGNvcmVlbGVtZW50cywgc28gaXQncwoJICBzdGlsbCBwb3NzaWJsZSB0byBqdXN0IHVwZ3JhZGUgR1N0cmVhbWVyIGNvcmUgd2l0aG91dCBoYXZpbmcgdG8KCSAgdXBncmFkZSB0aGUgd2hvbGUgc3RhY2suCgoyMDExLTAxLTA2IDE5OjIxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBSZXZlcnQgInBhZHRlbXBsYXRlOiBhbGxvdyBkaXNhYmxpbmJnIHRoZSB0ZW1wbGF0ZSBuYW1lIGNvbmZvcm1hbmNlIGNoZWNrcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmOTAzOWMyMjA0MGUxYTM4YTM2OTFiYzRkMjk5YWY0MjdjOTYzMjU1LgoJICBXZSB1c2UgLURHX0RJU0FCTEVfQVNTRVJUUyBmb3IgcmVsZWFzZXMgYW5kIHByZS1yZWxlYXNlcywgYnV0CgkgIGRvbid0IHdhbnQgdG8gZGlzYWJsZSBwYWQgbmFtZSBjaGVja2luZyBmb3IgcmVsZWFzZXMgaW4gZ2VuZXJhbCwKCSAgSSB0aGluay4gTmVlZCBhIGJldHRlciBzb2x1dGlvbiBoZXJlLiBGaXhlcyBwYWQgdW5pdCB0ZXN0IGluCgkgIHByZS1yZWxlYXNlL3JlbGVhc2UgbW9kZS4KCjIwMTEtMDEtMDQgMTI6NDI6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSAgb3V0cHV0LXNlbGVjdG9yOiBBZGQgcGFkLW5lZ290aWF0aW9uLW1vZGUgcHJvcGVydHkKCSAgQWRkcyBnZXRjYXBzL3NldGNhcHMgdG8gb3V0cHV0LXNlbGVjdG9yIGFuZCBhZGRzIGEgcHJvcGVydHkKCSAgdG8gc2VsZWN0IHdoaWNoIHR5cGUgb2YgbmVnb3RpYXRpb24gc2hvdWxkIGJlIGRvbmUuCgkgIFRoZSBhdmFpbGFibGUgbW9kZXMgYXJlOgoJICAqIG5vbmU6ICAgbm8gbmVnb3RpYXRpb24gKGN1cnJlbnQgYmVoYXZpb3IpLCBnZXRjYXBzIHJldHVybiBBTlkgYW5kCgkgIHNldGNhcHMgYXJlbid0IHNldCBvbiBhbnkgb2YgdGhlIHBlZXJzCgkgICogYWxsOiAgICB1c2UgYWxsIHBhZHMgKGRlZmF1bHQpLCBnZXRjYXBzIHJldHVybnMgdGhlIGludGVyc2VjdGlvbiBvZgoJICBwZWVyIHBhZHMgYW5kIHNldGNhcHMgaXMgc2V0IG9uIGFsbCBwZWVycwoJICAqIGFjdGl2ZTogZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBhcmUgcHJveGllZCB0byB0aGUgYWN0aXZlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA2IDE4OjE4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBkb2NzOiBtZW50aW9uIGV4dHJhIGlucHV0LXNlbGVjdG9yIHBhZCBwcm9wZXJ0aWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDYgMTc6NDc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZWwucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA5LTIzIDEyOjQ5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlIGZvciBlYWNoIGxvZyBmdW5jdGlvbiBjYWxsIG9uIE1TVkMKCSAgQXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWUgdG8gZ2V0IHRoZSBmaWxlIGJhc2VuYW1lIG9uIE1TVkMgdG8gYXZvaWQKCSAgdW5uZWNlc3Nhcnkgb3ZlcmhlYWQgd2hlbiBkb2luZyBHU1RfREVCVUc9Zm9vOjUgb3Igc28gKHNpbmNlIGl0IHdvdWxkIGJlCgkgIGRvbmUgYmVmb3JlIHRoZSBjYXRlZ29yeSBsb2cgbGV2ZWwgZmlsdGVyaW5nKS4KCjIwMTEtMDEtMDYgMTc6Mjk6NDYgKzAwMDAgIGNocmlzdGlhbiBzY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMgYW5kIGVuYWJsZSBHSVIKCjIwMTEtMDEtMDUgMTI6NTk6NDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEZpeCBjcmVhdGlvbiBvZiBkZWZhdWx0IG5hbWUKCSAgQ2hhbmdlIHRoZSBmaXhlZCBhbGxvY2F0aW9uICghKSB0byBnX3N0cmR1cF9wcmludGYoKS4KCjIwMTAtMTItMjAgMTM6MzA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RFbGVtZW50OiBBZGQgYSBtb3JlIGZsZXhpYmxlIHdheSB0byBnZXQgcmVxdWVzdCBwYWRzLgoJICBUaGUgbmV3IHJlcXVlc3RfbmV3X3BhZF9mdWxsIHZtZXRob2QgcHJvdmlkZXMgYW4gYWRkaXRpb25hbCBjYXBzIGZpZWxkLAoJICB3aGljaCBhbGxvd3MgZWxlbWVudHMgdG8gdGFrZSBiZXR0ZXIgZGVjaXNpb24gcHJvY2Vzcy4KCSAgQWxzbywgYWRkIGEgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoKSBmdW5jdGlvbiB0byBhbGxvdyBkZXZlbG9wZXJzIHRvIGJlCgkgIGFibGUgdG8gc3BlY2lmeSB3aGljaCBwYWQgdGVtcGxhdGUgdGhleSB3YW50IGEgcGFkIG9mLgoJICBDb252ZXJ0IGdzdHV0aWxzIHRvIHVzZSB0aGF0IG5ldyBtZXRob2QgaW5zdGVhZCBvZiB0aGUgb2xkIG9uZSB3aGVuIG1vcmUKCSAgZWZmaWNpZW50LgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgYmVpbmcgYWJsZSB0byByZXF1ZXN0IHBhZHMgaW4gYSBtb3JlIGZsZXhpYmxlIHdheSwKCSAgZXNwZWNpYWxseSB3aGVuIHRoZSBlbGVtZW50IGNhbiBwcm92aWRlIHBhZHMgd2hvc2UgY2FwcyBkZXBlbmQgb24KCSAgcnVudGltZSBjb25maWd1cmF0aW9uIGFuZCB0aGVyZWZvcmUgY2FuJ3QgcHJvdmlkZSBwcmUtcmVnaXN0ZXJlZAoJICBwYWQgdGVtcGxhdGVzLgoJICBBUEk6IEdzdEVsZW1lbnQ6OnJlcXVlc3RfbmV3X3BhZF9mdWxsCgkgIEFQSTogZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzMwMAoKMjAxMS0wMS0wNSAxNTo1MzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSAic2VsZWN0LWFsbCIgcHJvcGVydHkKCSAgc2VsZWN0LWFsbCBtb2RlIGlzIGEgYml0IGJyb2tlbiAoZS5nLiBuZXdzZWdtZW50IGV2ZW50CgkgIGhhbmRsaW5nKSwgc28gcmVtb3ZlIHRoYXQgZm9yIG5vdy4gVGhlIGZ1bm5lbCBlbGVtZW50CgkgIGluIGZhcnNpZ2h0IHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUzOTA0MgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA1IDE1OjM2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgc2FmZXR5IGNoZWNrIGZvciBHTGliIDwgMi44CgkgIERvbid0IHdvcnJ5IGFib3V0IGFjY2lkZW50YWxseSB1c2luZyBHTGliIDwgMi44IGF0IHJ1bnRpbWUgYW55bW9yZS4KCjIwMTEtMDEtMDUgMTE6MjY6MTMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBEaXNhYmxlIHVzYWdlIG9mIEdEYXRlVGltZSBvbiBNYWNPU1gKCSAgR0xpYidzIEdEYXRlVGltZSBkb2Vzbid0IGhhbmRsZSBwcm9wZXJseSB0aGUgZ210IG9mZnNldC4gVGhlcmVmb3JlCgkgIHVzZSBvdXIgb3duIGludGVybmFsIHZlcnNpb24gaW5zdGVhZCBvbiBNYWNPU1guCgkgIFNlZSBidWcgIzYzODY2NgoKMjAxMS0wMS0wNSAxMDo1NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHVwZGF0ZXMgZm9yIHRoZSBwcm9ncmVzcyBtZXNzYWdlcwoKMjAxMS0wMS0wNCAxODozNjo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zaWduYWxzLnhtbDoKCSAgcHdnOiBGaXggbGluayB0byBHT2JqZWN0IGRvY3VtZW50YXRpb24KCSAgQmV0dGVyIGhhdmUgZ25vbWUub3JnIHRoYW4gdmlhZ3JhIDopCgoyMDExLTAxLTAzIDIwOjMyOjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBBbHdheXMgbWFyayByZWNlcHRpb24gYXMgY29tcGxldGUgYWZ0ZXIgRVhJVAoJICBBdm9pZHMgd2FpdGluZyBmb3JldmVyIG9uIGdzdF9wb2xsX3dhaXQgd2hlbiB1c2luZyB0aGUgc2VsZWN0CgkgIGJhY2tlbmQuCgkgIEZpeGVzICM2MzcwNTcKCjIwMTEtMDEtMDQgMDA6NDg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3RpbmZvOiBkb24ndCB1c2UgcHJpbnRmIGV4dGVuc2lvbnMgaWYgR0xpYiBpc24ndCB1c2luZyB0aGUgc3lzdGVtIHByaW50ZgoJICBNaWdodCBoZWxwIHdpdGggaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODU5OQoKMjAxMS0wMS0wMyAyMDoxOTowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBGaXggZm9yIChwKXNlbGVjdCBiYWNrZW5kCgkgIFdlIG5lZWQgdG8gcmVzZXQgdGhlIHJldmVudHMgZmllbGQgb2YgZWFjaCBwb2xsZmQgd2hlbiByZWFkaW5nIHRoZSByZXN1bHRzCgkgIGZyb20gc2VsZWN0IGVsc2Ugd2UnbGwgZW5kIHVwIHdpdGggc3RyYXkgaW5mbyBmcm9tIHByZXZpb3VzIGNhbGxzIHRvCgkgIHNlbGVjdC4KCjIwMTEtMDEtMDMgMDE6MDY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtYWtlIG5ldyBnc3RfdmFsdWVfbGlzdF9tZXJnZSgpIHdvcmsgcHJvcGVybHkKCSAgRml4IGZyZWVpbmcgb2YgcGFydGlhbGx5LWluaXRlZCBsaXN0IHZhbHVlIHdoZW4gYm90aCB2YWx1ZXMKCSAgcGFzc2VkIGFyZSBlcXVhbCBhbmQgd2Ugd2FudCB0byByZXR1cm4gYSBzaW5nbGUgbm9uLWxpc3QKCSAgdmFsdWUgYXMgcmVzdWx0LiBGaXhlcyB1bml0IHRlc3QuIEFsc28gZml4IHVwIGRvY3MgYSBiaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc3NzYKCjIwMTAtMTItMjEgMjM6MDM6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ3M6IGRvbid0IHByb2R1Y2UgZHVwbGljYXRlZCBlbnRyaWVzIHdoZW4gbWVyZ2luZyBzYW1lIHZhbHVlIHR3aWNlCgkgIEFkZCBhIHZhcmlhbnQgb2YgZ3N0X3ZhbHVlX2xpc3RfY29uY2F0KCkgdGhhdCBza2lwcyBkdXBsaWNhdGVzIGFuZCB1c2UgdGhhdCB3aGVuCgkgIG1lcmdpbmcgdGFnbGlzdHMuCgkgIEFQSTogZ3N0X3ZhbHVlX2xpc3RfbWVyZ2UoKQoKMjAxMS0wMS0wMiAxNjo1ODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjLCBiYXNlc2luazogYWRkIHNvbWUgRklYTUVzIGZvciB0aGUgdHlwZSBvZiB0aGUgYmxvY2tzaXplIHByb3BlcnR5CgoyMDEwLTEyLTMxIDEyOjA4OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBtYWtlIHBhZCdzIGdldF90eXBlIGZ1bmN0aW9uIHRocmVhZC1zYWZlCgoyMDEwLTEyLTMxIDExOjM3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgIGNvcmVlbGVtZW50czogcmVtb3ZlIHVudXNlZCBmaWxlcwoKMjAxMC0xMi0zMSAxMjoyNzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdGVkIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzIGZvciB0aGUgYWN0aXZlLXBhZCB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIFRoaXMgd29ya3MgYXJvdW5kIGEgdGhyZWFkIHNhZmV0eSBwcm9ibGVtIGluIEdMaWIgPCAyLjI2LjAgYW5kIHNob3VsZAoJICBiZSByZW1vdmVkIHdoZW4gd2UgZGVwZW5kIG9uIDIuMjYuMC4KCSAgRml4ZXMgYnVnICM2MDc1MTMuCgoyMDEwLTEyLTMxIDE2OjUyOjU0ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjU3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGdzdGZkc2luazogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjE3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMDE6MDk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBvdXRwdXQtc2VsZWN0b3IgdGVzdCB3aGljaCBuZWVkcyBlbGVtZW50cyBmcm9tIC1iYXNlCgkgIE1vdmUgaXQgdG8gLWJhc2UgaW5zdGVhZC4KCjIwMTAtMTItMzEgMDA6NTk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGNoZWNrczogZW5hYmxlIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdW5pdCB0ZXN0cyBhZnRlciBtb3ZlCgoyMDEwLTEyLTMxIDAwOjQ4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdG8gZG9jcwoKMjAxMC0xMi0zMSAwMDo0NTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBjb3JlZWxlbWVudHM6IEdTVF9CT0lMRVJQTEFURSBhbHJlYWR5IHNldHMgcGFyZW50X2NsYXNzCgoyMDEwLTEyLTMxIDAwOjQzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yLCBvdXRwdXQtc2VsZWN0b3I6IG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAxODo1NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBjb3JlZWxlbWVudHM6IG1vdmUgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB0byBjb3JlCgkgIE1vdmVkIHRvIGNvcmUgZnJvbSBnc3QtcGx1Z2lucy1iYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQzMDYKCjIwMTAtMTEtMjQgMTI6MjI6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIG91dHB1dC1zZWxlY3Rvci10ZXN0OiBkb24ndCBoYXJkY29kZSB2aWRlb3NpbmtzIGFuZCB1c2UgbW9yZSBjb2xvcnNwYWNlIGNvbnYuCgkgIFVzZSBhdXRvdmlkZW9zaW5rIGluc3RlYWQgb2YgaGFyZGNvZGVkIHNpbmtzLiBVc2UgYW4gYWRkaXRpb25hbCBjb2xvcnNwYWNlCgkgIGNvbnZlcnRlciBiZXR3ZWVuIHZpZGVvdGVzdHNyYyBhbmQgdGltZW92ZXJsYXkuCgoyMDEwLTA5LTE3IDA5OjUyOjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEF2b2lkIGxvc2luZyB0aGUgbGFzdF9idWZmZXIgd2hlbiBzd2l0Y2hpbmcKCSAgVGhpcyBwYXRjaCBtYWtlcyBvdXRwdXRzZWxlY3RvciB0YWtlIGFuIGV4dHJhIHJlZiB3aGVuIHB1c2hpbmcKCSAgdGhlIGxhc3RfYnVmZmVyIHRvIGF2b2lkIGl0IGxvc2luZyBpdCBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbi4KCSAgVGhpcyBtYWtlcyByZXNlbmQtbGF0ZXN0IHByb3Blcmx5IHdvcmsgaWYgdGhlIGFjdGl2ZS1wYWQgaXMgY2hhbmdlZAoJICBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbiBidWZmZXIgcHVzaGluZyAob24gYSBwYWQgcHJvYmUsIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxNwoKMjAxMC0wOS0xNyAwOTo0NDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBSZWNoZWNrIHBlbmRpbmcgc3dpdGNoIGFmdGVyIHB1c2hpbmcgYnVmZmVyCgkgIFRoaXMgcGF0Y2ggbWFrZXMgb3V0cHV0LXNlbGVjdG9yIGFsd2F5cyByZWNoZWNrIGlmIHRoZXJlJ3MgYQoJICBwZW5kaW5nIHBhZCBzd2l0Y2ggYWZ0ZXIgcHVzaGluZyBhIGJ1ZmZlciwgcHJldmVudGluZyB0aGF0CgkgIGl0IHB1c2hlcyBhIGJ1ZmZlciBvbiB0aGUgJ3dyb25nJyBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5MTcKCjIwMTAtMTEtMDEgMjM6MDQ6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBsb2cgdGltZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybQoKMjAxMC0xMS0wMSAyMjo0MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IG1vdmUgcmVvY2N1cmluZyBsb2dzIHRvIExPRyBhbmQgcmVtb3ZlIGEgZG91YmxlIGluZm8KCSAgTGVzcyBkZWJ1ZyBzcGV3IGluIERFQlVHIGNhdGVnb3J5LiBObyBuZWVkIHRvIGxvZyBwYWQgYWdhaW4gaWYgd2UgdXNlCgkgIEdTVF9MT0dfT0JKRUNUKHBhZCwuLi4pLgoKMjAxMC0xMC0xOSAxMzo0MzoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgdmFyaW91cyAoZ3N0KTogYWRkIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmbGFncwoJICBDYW5vbmljYWxpemUgcHJvcGVydHkgbmFtZXMgYXMgbmVlZGVkLgoKMjAxMC0wOS0wNiAxMTowMzowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHN5bmMgd2l0aCBjb3B5IGluIC1iYXNlCgkgIFVzZSBfZ2V0X2NhcHNfcmVmZmVkIHRvIGF2b2lkIGNvcGllcy4KCjIwMTAtMDgtMjQgMTE6NTA6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IG1vdmUgdGhlIGRlYnVnIGluaXQgdG8gdGhlIGJvaWxlcnBsYXRlIG1hY3JvCgoyMDEwLTA4LTI0IDExOjUwOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogdXNlIEdTVF9CT0lMRVJQTEFURSBtYWNybwoKMjAxMC0wMy0yMiAxMzoxNjozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1Xd3JpdGUtc3RyaW5ncwoJICBhbmQgZml4IGl0cyB3YXJuaW5ncwoKMjAxMC0wMy0yMSAyMTozOToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgdG8gY29uZmlndXJlIGZsYWdzCgkgIEFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMTAtMDEtMjUgMTI6MjE6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBnX29iamVjdF9ub3RpZnkoKSB3aXRoIHRoZSBvYmplY3QncyBtdXRleCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3ZTA2NzYxNWZmYjU2MTRmMDY4Zjc3NTNjMTBkZGU5OWFmZTQ5YzNjLCBpdCdzIGNhdXNpbmcKCSAgZGVhZGxvY2tzIHdpdGggcGxheWJpbjIuCgoyMDEwLTAxLTI0IDIwOjUzOjAwICswMTAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3QgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aCB0aGUgb2JqZWN0J3MgbXV0ZXgKCSAgVGhpcyB3b3JrcyBhcm91bmQgdGhlIHRocmVhZCB1bnNhZmV0eSBvZiBnX29iamVjdF9ub3RpZnkoKQoJICBGaXhlcyBidWcgIzYwNzUxMy4KCjIwMDktMTEtMDkgMTE6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJlbW92ZSB1c2VsZXNzIHZhcmlhYmxlcyBhbmQgZml4IGEgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBkZmQ1MWFhODJhOWUxYzk5MjQzNzUxODM3OTZlYWI3MGU1NzRhMjMxLgoKMjAwOS0xMS0wOSAxMTo0ODozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgcnVubmluZ190aW1lLT50aW1lc3RhbXAgY2FsY3VsYXRpb24gbmV2ZXIgYmVjb21lcyBuZWdhdGl2ZQoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBmMzY1Mzg1NDU4NTg2NGEwOWQzNWUwMzc4NTM0MDczMzJlYTY5MDFmLgoKMjAwOS0xMS0wOSAxMTo0ODowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzdGFydCB0aW1lIChpLmUuIHRpbWVzdGFtcCkgYXMgdGhlIGxhc3Qgc3RvcAoJICBVc2luZyB0aGUgZW5kIHRpbWUgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byByZXBsYWNlIGJ1ZmZlcnMsIHdoaWNoIGlzCgkgIGEgYmlnIHByb2JsZW0gZm9yIHN1YnRpdGxlcyB0aGF0IGNvdWxkIGhhdmUgdmVyeSBsb25nIGR1cmF0aW9ucy4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgMjcwMzRiZTQ2MTEyMzFjYzU1ZmEzZDNlMjUzYmFhNDBjNmJmZjQxZC4KCjIwMDktMTEtMDkgMTE6NDc6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEltcHJvdmUgZGVidWdnaW5nCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UuCgoyMDA5LTExLTA1IDEzOjUzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogdXNlIGdldF9jYXBzX3JlZmZlZCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ5ZWM0Zjc5NmEwZTNmODhhODUxNzA4NzgyYzg1M2JhZjRiMDU3MjQuCgkgIFdlIGNhbid0IHVzZSB0aGlzIG5ldyBmdW5jdGlvbiB5ZXQuCgoyMDA5LTExLTA1IDEzOjI5OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHVzZSBnZXRfY2Fwc19yZWZmZWQoKQoKMjAwOS0xMS0wNCAwMDoyMToxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGFsc28gYWRkIGlubGluZSB0byB0aGUgcHJvdG8gdG8gZml4IHRoZSBidWlsZAoKMjAwOS0xMS0wMyAxODoxNDoxMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCByZXN1bHRpbmcgdW51c2VkIHZhcmlhYmxlcwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA4Y2QxYjUyMDliNjg5NDRlMWJlNTZjYThiYjY5ZTQ2ZDRhYmI3YTM0LgoKMjAwOS0xMS0wMyAxODoxMjoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzYW1lIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gYXMgaW4gZ3N0LXBsdWdpbnMtYmFzZQoKMjAwOS0xMS0wMyAxODoxMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgNmY0YzFhYzU4MzQxZWUxODkyMjVkMzEzZGRmZTlhZTI0YTY1Yzg4Yy4KCjIwMDktMTEtMDMgMTg6MDk6NTUgKzAxMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgUm9uYWxkIEJ1bHRqZSBmcm9tIEF1dGhvcnMgZmllbGQKCSAgUmVwbGFjZWQgd2l0aCAiR1N0cmVhbWVyIG1haW50YWluZXJzCgkgIDxnc3RyZWFtZXItZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PiIgb3IganVzdCByZW1vdmVkLAoJICBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBvdGhlciBhdXRob3JzLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCAwZTliYzUxMjVhY2E1NDZkNzczZWQxMDAyZGY1NzNkZDhlMmRjMTM2LgoKMjAwOS0xMS0wMyAxODowODowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBzZXQgb3V0cHV0IGNhcHMgYmVmb3JlIHB1c2hpbmcKCSAgU2V0IHRoZSBvdXRwdXQgY2FwcyBvbiB0aGUgc3JjcGFkIGJlZm9yZSBwdXNoaW5nIHRoZSBidWZmZXIgYmVjYXVzZSBlbHNlIGNvcmUKCSAgd2lsbCBkbyBhIHJhdGhlciBleHBlbnNpdmUgY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBhY3R1YWxseSBhY2NlcHQgdGhvc2UgY2FwcyBvbgoJICB0aGUgc3JjcGFkLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBiZGZiNGI0NmQ3NDZlZjI5OGZjZjQ0MjYwODc5YzM0MmFmNGNhZmEzLgoKMjAwOS0xMS0wMyAxODowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBpbnN0YWxsIGFuIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW5zdGFsbCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIGRlZmF1bHQgZXhwZW5zaXZlCgkgIGNoZWNrLiBXZSBhY2NlcHQgd2hhdGV2ZXIgZG93bnN0cmVhbSBhY2NlcHRzIHNvIHdlIHBhc3MgYWxvbmcgdGhlIGFjY2VwdGNhcHMKCSAgY2FsbCB0byB0aGUgZG93bnN0cmVhbSBwZWVyLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA1YjcyZjJhZGY5OTY3MzkwMzZlOGQ5YjVmOTEwMDU0NTVkMWZmYWNlLgoKMjAwOS0xMC0yNyAxMTo1MTowNSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZW1vdmUgZXhlY3V0YWJsZSBiaXRzIGZyb20gbm9uLWV4ZWN1dGFibGUgZmlsZXMuCgoyMDA5LTA5LTI1IDExOjA3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgbmV3IHNpbmdsZSBpdGVyYXRvciBmb3IgdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMKCSAgVGhpcyBmaXhlcyBhIGRlYWRsb2NrIGFuZCByZW1vdmVzIHNvbWUgdXNlbGVzcyBjb2RlLgoKMjAwOS0wOC0zMSAxOTozMTo1NyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogbWFrZSBHU1RfRk9STUFUX1RJTUUgdGhlIGRlZmF1bHQgc2VnbWVudCBmb3JtYXQKCjIwMDktMDgtMTkgMTc6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXQgaW50ZXJuYWwgbGlua3MKCjIwMDktMDctMzEgMTE6Mjc6MDMgKzAzMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS4xLm15b2hhbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGNoZWNrIGZvciBwZW5kaW5nIHNyY3BhZCBpbiBfZ2V0X3Byb3BlcnR5KCkKCSAgSWYgdGhlcmUgaXMgYSBwZW5kaW5nIHNyY3BhZCwgcmV0dXJuIGl0IGluc3RlYWQgb2YgYWN0aXZlIHNyY3BhZAoJICBpbiBnc3Rfb3V0cHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSgpIGZ1bmN0aW9uLgoKMjAwOS0wNi0xMiAxMDoxNDoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBhZCB0aGF0IGlzIHBlbmRpbmcgYW5kIGhhdmUgYSBmYWxsYmFjawoJICBXZSBzaG91bGQgZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBlbmRpbmcgcGFkIGlmIGFueSwgYXMgd2Ugd2lsbCBzd2l0Y2ggdG8gdGhhdAoJICBwYWQgb24gbmV4dCBfY2hhaW4oKSBjYWxsLiBBbHNvIGRvIGEgZmFsbGJhY2sgYWxsb2MsIGlmIHRoZXJlIGlzIG5vIG91dHB1dCB5ZXQgdG8KCSAgbm90IGZhaWwgc3RhdGUgdHJhbnNpdGlvbnMgaW4gZHluYW1pYyBwaXBlbGluZXMuCgoyMDA5LTA2LTAxIDE2OjMxOjQyICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3Rvcjogc2VyaWFsaXplIHNldHRpbmcgYW5kIGFjdHVhbCBjaGFuZ2luZyBvZiBuZXcgYWN0aXZlIHBhZAoKMjAwOS0wNS0wNCAxMjoyOTo1NCArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IHVucmVmIGxhdGVzdCBidWZmZXIgYWxzbyB3aGVuIHJlc2VuZGluZyBoYXMgYmVlbiBkaXNhYmxlZAoKMjAwOS0wNC0xNiAxNzozMjowMyArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IGtlZXAgcmVmIHRvIGJ1ZmZlciBmb3IgcmVzZW5kaW5nIG9ubHkgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQKCjIwMDktMDYtMDQgMTk6MDg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZG9uJ3QgbGVhayBwYWRzIGluIGl0ZXJhdG9yCgoyMDA5LTA2LTA0IDA4OjU2OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgdGFncyBwcm9wZXJ0eSBvZiB0aGUgc2VsZWN0b3Igc2lua3BhZHMgY2hhbmdlcwoJICBGaXJzdCBwYXJ0IG9mIGJ1ZyAjNTg0Njg2LgoKMjAwOS0wNS0yOCAxMDozODo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBzZWxlY3RvcjogcmVtb3ZlIG5vdCBuZWVkZWQgaW5zdGFuY2UgdmFyIChwcmV2aW91cyBjb21taXQpLgoKMjAwOS0wNS0yOCAxMDoxMjo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIG91dHB1dHNlbGVjdG9yOiBpbXBsZW1lbnQgcGFkX2FsbG9jIG9uIGFjdGl2ZSBwYWQuCgoyMDA5LTA0LTIzIDExOjA0OjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZvcndhcmQgc2VnbWVudCBldmVudHMgZm9yIHRoZSBhY3RpdmUgcGFkIGltbWVkaWF0ZWx5LgoJICBXaGVuIGEgc2VnbWVudCBldmVudCBpcyByZWNlaXZlZCBvbiB0aGUgYWN0aXZlIHBhZCwgZm9yd2FyZCBpdCBkb3duc3RyZWFtCgkgIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgZGVmZXJyaW5nIGl0IHVudGlsIHRoZSBuZXh0IGRhdGEgYnVmZmVyIGFycml2ZXMuIFRoaXMKCSAgZml4ZXMgcHJvYmxlbXMgd2l0aCBzZWdtZW50IHVwZGF0ZXMgbmV2ZXIgYmVpbmcgc2VudCBkb3duc3RyZWFtLCBsaWtlIHRob3NlCgkgIG5lZWRlZCBmb3Igc3BhcnNlIHN0cmVhbXMsIG9yIGZvciBjbG9zaW5nIHByZXZpb3VzbHkgb3BlbmVkIHNlZ21lbnRzLgoJICBUaGlzIGZpeGVzIHBsYXliYWNrIG9mIERWRCBtZW51cyB3aXRoIGEgc3RpbGwgdmlkZW8gZnJhbWUgYW5kIGFuIGF1ZGlvIHRyYWNrLAoJICBmb3IgZXhhbXBsZS4KCSAgRml4ZXM6ICM1Nzc4NDMKCjIwMDktMDMtMjcgMTE6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiByZXNldCBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFJlc2V0IHRoZSBsYXN0LWJ1ZmZlciwgdGhlIHBlbmRpbmcgcGFkIGFuZCB0aGUgc2VnbWVudCB3aGVuIGdvaW5nIHRvIHRoZSBSRUFEWQoJICBzdGF0ZS4KCSAgRml4ZXMgIzU3NjcxMi4KCjIwMDktMDMtMjQgMTU6MjM6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IG1lcmdlIHRoZSB0YWdzCgkgIE1lcmdlIHRoZSB0YWdzIHJlY2VpdmVkIG9uIHRoZSBpbnB1dC1zZWxlY3RvciBzaW5rcGFkcyBpbnN0ZWFkIG9mIG9ubHkga2VlcGluZwoJICB0aGUgbGFzdCBvbmUgd2Ugc2F3LgoKMjAwOS0wMi0yNSAxMTo0NTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGRvY3M6IHZhcmlvdXMgZG9jIGZpeGVzCgkgIE5vIHNob3J0LWRlc2MgYXMgd2UgaGF2ZSB0aGVtIGluIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIEFsc28ga2VlcCB0aGluZ3MgKE1ha2VmaWxlLmFtIGFuZCBzZWN0aW9ucy50eHQpIHNvcnRlZC4KCSAgUmV3b3JkIGFtYmlnb3VzIHJldHVybnMuIE5vIHRleHQgYWZ0ZXIgc2luY2UgcGxlYXNlLgoKMjAwOS0wMi0xMSAxNzoyMToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGNvbXBpbGF0aW9uLCBhY3RpdmF0ZV9zaW5rcGFkKCkgaGFzIG5vIG5vdGlmeSBwYXJhbWV0ZXIKCjIwMDktMDItMTAgMTY6MjI6NTQgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBBY3RpdmF0ZSBhbmQgbm90aWZ5IHBhZCBiZWZvcmUgcHJvY2Vzc2luZyBldmVudHMuCgkgIEV2ZW50cyBzaG91bGQgdHJpZ2dlciBwYWQgc2VsZWN0aW9uIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBhbgoJICBleHBsaWNpdGx5IHNlbGVjdGVkIHBhZCwgc28gdGhhdCBldmVudHMgcHJpb3IgdG8gZmlyc3QgYnVmZmVyIGRvbid0IGdldAoJICBsb3N0LgoKMjAwOS0wMS0zMCAxODoyNzowMyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgVW5yZWYgZXZlbnQgaWYgd2UgZG9uJ3QgZm9yd2FyZCBpdCwgdW5yZWYgcGFkcyB3aGVuIGRvbmUgd2l0aCB0aGVtLgoKMjAwOC0xMi0wNCAxNzo1MTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEVuc3VyZSB3ZSBlbWl0IG5vdGlmeTo6YWN0aXZlLXBhZCB3aGVuIGF1dG8tc2VsZWN0aW5nIGEgcGFkIGR1ZSB0byBpdCBoYXZpbmcgYWN0aXZpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgRW5zdXJlIHdlIGVtaXQgbm90aWZ5OjphY3RpdmUtcGFkIHdoZW4gYXV0by1zZWxlY3RpbmcgYSBwYWQKCSAgZHVlIHRvIGl0IGhhdmluZyBhY3Rpdml0eSBhbmQgdXMgbm90IGhhdmluZyBhbiBleGlzdGluZyBhY3RpdmUKCSAgcGFkLiBGaXhlcyAjNTYzMTQ3CgoyMDA4LTEwLTE1IDE3OjQ1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2V2ZW50KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIEZpeGVzICM1NTY0MzAKCjIwMDgtMTAtMDcgMTM6MTQ6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzogQ2hvb3NlIHJpZ2h0IHBhZCBmb3Igc2VuZGluZyBldmVudHMuIEZpeGVzICM1NTUyNDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBDaG9vc2UgcmlnaHQgcGFkIGZvciBzZW5kaW5nIGV2ZW50cy4gRml4ZXMgIzU1NTI0NAoKMjAwOC0wOS0wOCAyMDoyNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZXNldCB0aGUgc2VsZWN0b3Igc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX3Jlc2V0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXNldCksIChnc3RfaW5wdXRfc2VsZWN0b3JfY2hhbmdlX3N0YXRlKToKCSAgUmVzZXQgdGhlIHNlbGVjdG9yIHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA4LTA5LTAxIDEzOjIzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJldXNlIHRoZSBnZXRfbGlua2VkX3BhZHMgZm9yIGJvdGggc291cmNlIGFuZCBzaW5rcGFkcyBiZWNhdXNlIHRoZXkgYXJlIHRoZSBzYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9ldmVudCksIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBSZXVzZSB0aGUgZ2V0X2xpbmtlZF9wYWRzIGZvciBib3RoIHNvdXJjZSBhbmQgc2lua3BhZHMgYmVjYXVzZSB0aGV5IGFyZQoJICB0aGUgc2FtZS4KCSAgSW1wbGVtZW50IGEgY3VzdHVtIGV2ZW50IGhhbmRsZXIgYW5kIGdldCB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdCAoc2xvd2VyKSBpbXBsZW1lbnRhdGlvbi4KCjIwMDgtMDgtMjcgMTU6NDU6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsIHNpbmtwYWRzIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsCgkgIHNpbmtwYWRzIGFuZCB0YWtpbmcgdGhlIG1pbi9tYXggaW5zdGVhZCBvZiBqdXN0IHRha2luZyBhIHJhbmRvbSBwYWQuCgoyMDA4LTA4LTA1IDA5OjA1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBhZC4gV2Ugd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0Y2FwcyksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfYWN0aXZhdGVfc2lua3BhZCk6CgkgIE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkCgkgIHBhZC4gV2Ugd2FudCB0byByZW1lbWJlciB0aGUgbGFzdCBwYWQgd2l0aCBhY3Rpdml0eSBpbiBzZWxlY3QtYWxsIG1vZGUuCgkgIEZpeCB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiwgd2UgY2FuIHByb2R1Y2UgdGhlIHVuaW9uIG9mIHRoZSB1cHN0cmVhbSBjYXBzCgkgIGluIHNlbGVjdC1hbGwgbW9kZSwgbm90IHRoZSBpbnRlcnNlY3Rpb24gbGlrZSBwcm94eV9nZXRjYXBzKCkgZG9lcy4KCjIwMDgtMDYtMTkgMTM6MTg6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG91dHB1dC1zZWxlY3RvcjogVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoKMjAwOC0wNi0xMiAxNDo0OToxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0IHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kYzEzOTQvZ3N0ZGMxMzk0LmM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICAqIGV4dC9tZXRhZGF0YS9nc3RtZXRhZGF0YWRlbXV4LmM6CgkgICogZXh0L215dGh0di9nc3RteXRodHZzcmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvZ3N0YXBwc2luay5jOgoJICAqIGdzdC9iYXllci9nc3RiYXllcjJyZ2IuYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0YXVkaW9wYXJzZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3R2aWRlb3BhcnNlLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0CgkgIHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FybmluZ3MgaWYgdGhleSBkaWZmZXIuCgkgIEFsc28gZml4aW5nIHVwIHRoZSBDaGFuZ2VMb2cgb3JkZXIuCgoyMDA4LTAzLTIwIDE4OjEwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvIGdfb2JqZWN0X25vdGlmeSgpIG9ubHkgd2hlbiBub3QgaG9sZGluZyB0aGUgbG9jayB0byBnZXQgdGhlIHByb3BlcnR5IGJlY2F1c2Ugb3RoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgRG8gZ19vYmplY3Rfbm90aWZ5KCkgb25seSB3aGVuIG5vdCBob2xkaW5nIHRoZSBsb2NrIHRvIGdldCB0aGUgcHJvcGVydHkKCSAgYmVjYXVzZSBvdGhlcndpc2Ugd2UgcnVuIGludG8gYSBkZWFkbG9jayB3aXRoIHRoZSBkZWVwLW5vdGlmeSBoYW5kbGVycwoJICB0aGF0IGFyZSBwb3NzaWJseSBpbnN0YWxsZWQuCgoyMDA4LTAzLTIwIDE3OjQ4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCk6CgkgIFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgoyMDA4LTAzLTIwIDE3OjA3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEFkZCBwYWQgcHJvcGVydHkgdG8gY29uZmlndXJlIGJlaGF2aW91ciBvZiB0aGUgdW5zZWxlY3RlZCBwYWQsIGl0IGNhbiByZXR1cm4gT0sgb3IgTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2luaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKToKCSAgQWRkIHBhZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYmVoYXZpb3VyIG9mIHRoZSB1bnNlbGVjdGVkIHBhZCwgaXQgY2FuCgkgIHJldHVybiBPSyBvciBOT1RfTElOS0VELCBiYXNlZCBvbiB0aGUgdXNlIGNhc2UuCgoyMDA4LTAzLTIwIDE2OjQ4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IEZpZ3VyZSBvdXQgdGhlIGxvY2tpbmcgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlbGVjdG9yX3BhZF9yZXNldCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksIChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZGlzcG9zZSksIChnc3Rfc2VnbWVudF9zZXRfc3RhcnQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X2xpbmtlZF9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2lzX2FjdGl2ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9hY3RpdmF0ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2Jsb2NrKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBGaWd1cmUgb3V0IHRoZSBsb2NraW5nIGEgYml0IG1vcmUuCgkgIE1hcmsgYnVmZmVycyB3aXRoIGRpc2NvbnQgYWZ0ZXIgc3dpdGNoaW5nLgoJICBGaXggaW5pdGlhbCBzZWdtZW50IGZvcndhcmRpbmcsIG1ha2Ugc3VyZSB0byBvbmx5IGZvcndhcmQgb25lIHNlZ21lbnQKCSAgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzZXF1ZW5jZSBvZiBidWZmZXJzL3NlZ21lbnRzIGlzLiBTZWUgIzUyMjIwMy4KCSAgSW1wcm92ZSBmbHVzaGluZyB3aGVuIGJsb2NrZWQuCgkgIFJldHVybiBOT1RfTElOS0VEIHdoZW4gYSBzdHJlYW0gaXMgbm90IHNlbGVjdGVkLgoJICBOb3QgQVBJIGNoYW5nZSBmb3IgdGhlIHN3aXRjaCBzaWduYWwgaW4gdGhlIGRvY3MuCgkgIEZpeCBzdGFydC90aW1lL2FjY3VtIHZhbHVlcyBvZiB0aGUgbmV3IHNlZ21lbnQuCgkgIENvcnJlY3RseSB1bmxvY2sgYW5kIGZsdXNoIGEgYmxvY2tpbmcgc2VsZWN0b3Igd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDgtMDMtMTQgMTc6MjI6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogQWRkIGxvdHMgb2YgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9wdXNoX3BlbmRpbmdfc3RvcCk6CgkgIEFkZCBsb3RzIG9mIGRlYnVnZ2luZy4KCSAgRml4IHRpbWUgbWVtYmVyIGluIHRoZSBuZXdzZWdtZW50IGV2ZW50LgoKMjAwOC0wMy0xMyAxNjo0NjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBWYXJpb3VzIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2ZpbmFsaXplKSwgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcHVzaF9wZW5kaW5nX3N0b3ApLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIEFkZGVkIHRhZ3MgdG8gdGhlIHBhZHMuCgkgIFNlbGVjdCBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCByZWZjb3VudCBpbiBzZXRfYWN0aXZlX3BhZC4KCSAgQWRkIHByb3BlcnR5IHRvIGdldCB0aGUgbnVtYmVyIG9mIHBhZHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KToKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgU2VsZWN0IHRoZSBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCBsb2NraW5nIHdoZW4gc2V0dGluZyB0aGUgYWN0aXZlIHBhZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOiAoY2xlYW51cF9wYWQpLAoJICAoc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLCAocnVuX2lucHV0X3NlbGVjdG9yX2J1ZmZlcl9jb3VudCk6CgkgIEZpeGVzIGZvciBwYWQgaW5zdGVhZCBvZiBwYWRuYW1lIGZvciBwYWQgc2VsZWN0aW9uLgoKMjAwOC0wMi0yNiAxMjowMTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOiBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCjIwMDgtMDItMjUgMDg6NTM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggcmVzZW5kLWxhdGVzdCBiZWhhdm9pdXIuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3Igc2VsZWN0b3IuCgoyMDA4LTAyLTA3IDEzOjQ4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzogQWRkIGEgZml4bWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggc2FtZSBsZWFrIGFzIGluIGlucHV0LXNlbGVjdG9yLgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIEltcHJvdmUgdGhlIHRlc3QuCgoyMDA4LTAyLTAxIDE3OjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvbid0IGxlYWsgZXZlbnQgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkLiBGaXhlcyAjNTEyODI2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpOgoJICBEb24ndCBsZWFrIGV2ZW50IG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZC4gRml4ZXMgIzUxMjgyNi4KCjIwMDgtMDEtMjkgMDc6Mzg6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlcGxhY2UgdGhlIHN3aXRjaCBwbHVnaW4gd2l0aCB0aGUgc2VsZWN0b3IgcGx1Z2luLiBBZGQgb3V0cHV0LSBzZWxlY3RvciBhcyB0aGUgb3Bwb3NpdGUgb2YgaW5wdXQtc2VsZWN0b28gKHdhcyBzd2l0Yy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNlbGVjdG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN3aXRjaC54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9zZWxlY3Rvci52Y3Byb2o6CgkgICogZ3N0L3N3aXRjaC8uY3ZzaWdub3JlOgoJICAqIGdzdC9zd2l0Y2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2gtbWFyc2hhbC5saXN0OgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guaDoKCSAgKiBnc3Qvc3dpdGNoL3N3aXRjaC52Y3Byb2o6CgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZXBsYWNlIHRoZSBzd2l0Y2ggcGx1Z2luIHdpdGggdGhlIHNlbGVjdG9yIHBsdWdpbi4gQWRkIG91dHB1dC0KCSAgc2VsZWN0b3IgYXMgdGhlIG9wcG9zaXRlIG9mIGlucHV0LXNlbGVjdG9vICh3YXMgc3dpdGNoKS4gQWRkIGEgdGVzdAoJICBmb3Igb3V0cHV0LXNlbGVjdG9yLiBBZGQgZG9jcyBmb3IgdGhlIGVsZW1lbnRzLiBUaGUgdmNwcm9qIG5lZWRzCgkgIHVwZGF0ZS4gRml4ZXMgIzUwMDE0Mi4KCjIwMTAtMTItMzAgMDA6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCB2YWx2ZSBlbGVtZW50IHRvIGRvY3VtZW50YXRpb24KCjIwMTAtMTItMzAgMDA6NDE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBzb21lIG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAwMDozMDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXggdHlwbyBpbiBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoJICBBbmQgcmVwaHJhc2Ugd2hpbGUgYXQgaXQsIHRvIG1ha2UgaXQgbW9yZSBjb25jaXNlLgoKMjAxMC0xMi0zMCAwMDoyNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IGVuYWJsZSB2YWx2ZSB1bml0IHRlc3QKCjIwMTAtMTItMzAgMDA6MjI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBhZGQgbmV3IHZhbHZlIGVsZW1lbnQgdG8gYnVpbGQKCSAgTW92ZWQgZnJvbSBnc3QtcGx1Z2lucy1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwOAoKMjAxMC0xMC0xOSAyMzo0MDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogZml4IHZhbHZlIHVuaXQgdGVzdAoJICBnc3RfYnVmZmVyX3BhZF9hbGxvYygpIG5lZWRzIHNpbXBsZSBjYXBzIG9yIE5VTEwgY2FwcywKCSAgQU5ZIGNhcHMgYXJlIG5vdCBhbGxvd2VkLgoKMjAxMC0wOS0yOCAxMzo1MjoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbm8gbmVlZCB0byByZWYgdGhlIG9iamVjdCBpbiBfY2hhaW4KCSAgRG9uJ3QgcmVmIHRoZSBwYWQgaW4gY2hhaW4sIGxpa2UgZWxzZXdoZXJlCgoyMDEwLTA5LTMwIDE3OjQ4OjM1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogRml4IGNhcHMgbGVhayBpbiB0aGUgdmFsdmUgdGVzdAoKMjAxMC0wOS0zMCAxNzoyNDoyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEFkZCB1bml0IHRlc3RzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIHZhbHZlIGVsZW1lbnQuCgoyMDEwLTA5LTMwIDE2OjI2OjE5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IE1ha2UgdGhlIGRyb3AgdmFyaWFibGUgaW50byBhbiBhdG9taWMuCgkgIFVzaW5nIGFuIGF0b21pYyBhbGxvd3MgdXMgdG8gYXZvaWQgbG9ja2luZyB0aGUgd2hvbGUgb2JqZWN0IGFsbCB0aW1lIHRpbWUuCgkgIEFzIHN1Z2dlc3RlZCBieSBTdGVmYW4gS29zdC4KCjIwMTAtMDktMzAgMTY6MjI6MDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IENvcnJlY3RseSBzZXQgdGhlIERJU0NPTlQgZmxhZyBhZnRlciBkcm9wcGluZyBidWZmZXJzCgoyMDEwLTA5LTMwIDE2OjE2OjQ3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBSZW1vdmUgc3VwZXJmbG91cyBjaGVja2luZyBjYXN0cwoKMjAxMC0wOS0zMCAxNjoxMzoyMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRml4IHN0eWxlLCBpbXByb3ZlIGNvbW1lbnRzCgkgIE1pbm9yIGltcHJvdmVtZW50cyB0byB0aGUgY29tbWVudHMgYW5kIGJyZWFrIGEgZmV3IG92ZXJseSBsb25nIGxpbmVzCgoyMDEwLTA5LTI4IDE0OjI2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBtb3ZlIGRlZmF1bHQ6IHBhcnN0IGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50IHRvIHRoZSBlbmQKCSAgTm93IHN1cmUgaWYgaXQgbWF0dGVycywgYnV0IHRoZSBwcmV2aW91cyBmb3JtIGxvb2tzIHdlaXJlZC4KCjIwMTAtMDktMjggMTQ6MjM6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG1vdmUgZGVidWctY2F0ZWdvcnkgcmVnaXN0cmF0aW9uIHRvIHR5cGUgaW5pdAoKMjAxMC0wOS0yOCAxNDoxNToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogdXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1Mgb24gcHJvcGVydGllcwoKMjAxMC0wOS0yOCAxNDowNzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogR1NUX0JPSUxFUlBMQVRFIGFscmVhZHkgc2V0cyBwYXJlbnRfY2xhc3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAwOS0wMi0xMCAxODo1Mjo1NCArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGRvY3M6IGRvY3VtZW50IHZhbHZlIGVsZW1lbnQKCjIwMDktMDItMTAgMTc6NTc6MTYgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogcmVuYW1lIHRvIHZhbHZlCgoyMDA5LTAyLTEwIDE3OjU1OjQ3ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogcmUtaW5kZW50IGdzdCBzdHlsZQoKMjAwOC0xMi0xMyAwMDozMTo0NSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBJZ25vcmUgZXJyb3JzIGlmIGRyb3BwaW5nIGlzIHNldCB0byB0cnVlCgoyMDA4LTEyLTEwIDE3OjAwOjMzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IEFkZCBnZXRjYXBzIHByb3h5aW5nIHRvIHRoZSB2YWx2ZQoKMjAwOC0wOC0yMCAxNDoxMTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFJlYmFzZSB2YWx2ZSBvbnRvIGdzdGVsZW1lbnQgaW5zdGVhZCBvZiBiYXNldHJhbnNmb3JtCgoyMDA4LTA4LTE5IDE4OjQ5OjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJldmVydCAiRml4IHJlZmNvdW50aW5nIGlzc3VlcyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjVkZDQ2MGYwYTNhOWM0ODgyZTYzOGM4NjIwOGY3NGVmNjJjMzQ2MC4KCjIwMDgtMDgtMDUgMTE6MzA6NTcgKzAwMDAgIHNqb2VyZEBsdW9uLm5ldCA8c2pvZXJkQGx1b24ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBGaXggcmVmY291bnRpbmcgaXNzdWVzIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICAyMDA4MDgwNTExMzA1Ny1iZTBmMi05ZGMyNzA3ODFmMGEwZjIxYzYxNmVkMTFkYmQxZjE5OGZkMWIzMjZlLmd6CgoyMDA4LTA0LTA5IDE2OjMyOjIxICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmVtb3ZlIHVudXNlZCBkaXNwb3NlIG1ldGhvZCBpbiB2YWx2ZQoJICAyMDA4MDQwOTE2MzIyMS0zZTJkYy05MmNjYjJkYjg3NGU0NmUwZDkyYzE1NTIwNTc3YzFiZTBlMmJjNjE3Lmd6CgoyMDA3LTEyLTE5IDIwOjMyOjMwICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogRG9udCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGlsZSBjYWxsaW5nIGJhc2UgYWxsb2MgZnVuY3Rpb24KCSAgMjAwNzEyMTkyMDMyMzAtM2UyZGMtNjUxOTE3NWQ4ZDgxNDk2NTE1YjJkOTA2MGFjMzE2NjUwNTYwZjY5MS5negoKMjAwNy0xMi0xOSAyMDozMjoxOCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogU2V0IHRoZSBESVNDT05UIGZsYWcgYWZ0ZXIgZHJvcHBpbmcgYnVmZmVycwoJICAyMDA3MTIxOTIwMzIxOC0zZTJkYy1iYzVmMDNkODhmZjU4MzcwNDBiOTIxNGRlMDE2Y2MxNDI3NzZkZmMyLmd6CgoyMDA3LTEyLTE5IDAwOjU3OjM5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBVc2UgZG8gdGhlIGFsbG9jX2J1ZmZlciBmdW5jdGlvbiBpbiB0aGUgdmFsdmUKCSAgMjAwNzEyMTkwMDU3MzktM2UyZGMtMmEwZmRmYTJmMzhmMDNhYjQ3OTFmZTVjNGFiODVlODc5MDExMzY4My5negoKMjAwNy0xMS0yMSAyMDowODo1OCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE9ubHkgc2V0IHBhc3N0aHJvdWdoIHRvIFRSVUUgb24gbmV3ZXIgdmVyc2lvbnMgb2YgZ3N0CgkgIDIwMDcxMTIxMjAwODU4LTNlMmRjLWIxNmNkZWFiYmMzYzA1NjJjNmZjN2IxMWI5Yjk3OTJjOTEwZjU2OWUuZ3oKCjIwMDctMTEtMjEgMTg6MTc6MjkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBDb21wYXJlIG1pbm9yLCBub3QgbWFqb3IKCSAgMjAwNzExMjExODE3MjktM2UyZGMtYTU5OTdjM2I3ZjVjODY5NjYzNzA5Njk3MTRmYWNmOGVlMjQyNjU5ZC5negoKMjAwNy0xMC0yNiAyMjozNzo0OSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE1ha2UgdGhlIHZhbHZlIGVsZW1lbnQgd29yayB3aXRoIGdzdCA8IDAuMTAuMTMKCSAgMjAwNzEwMjYyMjM3NDktM2UyZGMtMThmNjg1YTRlNDVmYmRjZTY3N2FjNzc3NTg2ODc2ZmM3MTlkNzIyMi5negoKMjAwNy0xMC0yNCAyMjo0Mjo0NiArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJlbmFtZSB2YWx2ZSB0byBmc3ZhbHZlCgkgIDIwMDcxMDI0MjI0MjQ2LTNlMmRjLWM1NDIxNmFmMmVmMGVmM2YxYTIyMDZkNzIzZTg3YmUyYTIzYWI4ZWQuZ3oKCjIwMDctMTAtMjQgMjI6NDE6NDcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IEFkZCB2YWx2ZSBlbGVtZW50CgkgIDIwMDcxMDI0MjI0MTQ3LTNlMmRjLWYyOGFiMGMwNzNlMjgzODk0YjY1YzIyYzRmNDQzOTdjODk3ZGVjMDEuZ3oKCjIwMTAtMTItMzAgMTg6MzE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogbWFrZSB2YXJpYWJsZSBzdGF0aWMKCjIwMTAtMTItMjkgMTE6NDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRlYWRsb2NrCgkgIE9ubHkgZ28gaW50byBMSVZFX1dBSVQgd2hlbiB0aGUgYXJlIG5vdCBsaXZlX3J1bm5pbmcgYW5kIG9ubHkgc3RvcCB3YWl0aW5nIHdoZW4KCSAgbGl2ZV9ydW5uaW5nIGlzIFRSVUUuIElmIHdlIGRvbid0IGxvb3AsIHdlIGNvdWxkIGRlYWRsb2NrIHdoZW4gY2FsbGVkIGZyb20KCSAgb3V0c2lkZSBvZiBiYXNlc3JjLCBzdWNoIGFzIGJhc2VhdWRpb3NyYy4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMC0xMi0yOCAxNjo0MDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGFkZCBtb3JlIHNpbmsgdW5pdCB0ZXN0cwoKMjAxMC0xMi0yOCAxNjoyMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFsc28gcHJlcm9sbCBhc3luYz1mYWxzZSBzaW5rcwoJICBBbHNvIHByZXJvbGwgYXN5bmM9ZmFsc2Ugc2lua3MgYWZ0ZXIgYSBmbHVzaC4KCjIwMTAtMTItMjIgMTY6NTU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDEwLTEyLTI2IDIxOjIwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgIm1pY3JvLW9wdGltOiBpZiAoeCkgaXMgY2hlYXBlciB0aGFuIGlmICh4ID4gMCkgZm9yIHVuc2lnbmVkIGludGVnZXJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDZhYThjYTM3ZWViOWRlYmZhNjkxOTc0MWEwMjMyNTBiZjI3ODI0OGYuCgkgIFNlZSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC52aWRlby5nc3RyZWFtZXIuZGV2ZWwvMzIyODIKCjIwMTAtMTItMjQgMTQ6MDI6MDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgZWxlbWVudHM6IHJlZW5hYmxlIGZkc3JjL2Zkc2luayBvbiBNU1ZDCgoyMDEwLTEyLTIyIDE2OjM2OjA5IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEZpeCBHU3RhdEJ1ZiBkZWZpbml0aW9uIGZvciB3aW4zMiB3aGVuIGJ1aWxkaW5nIGFnYWluc3Qgb2xkZXIgZ2xpYi4gTm93IG1hdGNoZXMgdXBzdHJlYW0gZ2xpYiBkZWZpbml0aW9uLgoKMjAxMC0xMi0yMiAyMjozNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb24KCjIwMTAtMTItMjIgMTY6NDI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBpZGVhIGZvciBwcm9ncmVzcyByZXBvcnRpbmcKCjIwMTAtMTItMjEgMTA6MzM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdHlwbwoKMjAxMC0xMi0yMCAxNzo0NjozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE2OTQ2MmEgdG8gNDY0NDVhZAoKMjAxMC0xMi0xOSAxMjo0OTo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IERvbid0IGxlYWsgY29waWVzIG9mIGVtcHR5IHN0cmluZ3MKCjIwMTAtMTItMTcgMTk6MTk6NDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGJhc2U6IGRvY3VtZW50YXRpb24gZml4dXBzIGFuZCBhbm5vdGF0aW9uCgoyMDEwLTEyLTE3IDE5OjE0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBkb2N1bWVudGF0aW9uIGZpeHVwcyBhbmQgYW5ub3RhdGlvbgoJICBSZXBvcnRlZCBieSBlbmFibGluZyB0aGUgLS13YXJuLWFsbCBvcHRpb24gb2YgZy1pci1zY2FubmVyCgoyMDEwLTEyLTE3IDE1OjQ4OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGRvY3VtZW50YXRpb24KCSAgc2Vjb25kID0+IHNlY29uZHMKCSAgbWljcm9zZWNvbmQgYXJndW1lbnQgd2FzIGRyb3BwZWQKCjIwMTAtMTItMDQgMTU6MzI6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogVXNlIGFuIGF0b21pYyBpbnRlZ2VyIGluc3RlYWQgb2YgYSBsb2NrIGZvciBjaGVja2luZyB0YWdzIHByZXNlbmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY0NTUKCjIwMTAtMTItMTYgMTA6NTU6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBkb3duc3RyZWFtIGdpdmluZyBhIGJ1ZmZlciB3aXRoIG5ldyBjYXBzIGJ1dCBpbnZhbGlkIHNpemUKCSAgVGhpcyBjYW4gaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gZG93bnN0cmVhbSBwcm9wb3NlZCBuZXcgY2FwcywgbGF0ZXIgcHJvcG9zZWQKCSAgdGhlIHByZXZpb3VzIGNhcHMgYWdhaW4gd2hpY2ggaW4gdHVybiBlbmFibGVzIHBhc3N0aHJvdWdoIG1vZGUgaW4gdXBzdHJlYW0KCSAgZWxlbWVudHMgYW5kIHRoZSB3cm9uZy1zaXplZCBidWZmZXIgYXBwZWFycyBpbiBhbiBlbGVtZW50IHdoZXJlIHRoZSBjYXBzCgkgIGNoYW5nZSBuZXZlciBoYXBwZW5lZC4gU2ltcGx5IGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBpbiB0aGlzIGNhc2UuCgkgIFNlZSBidWcgIzYzNTQ2MS4KCjIwMTAtMTItMTUgMjM6MTk6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSB0aGUgcHVibGljbHkgdmlzaWJsZSBhZGRyZXNzIHRvIGZpeCB0aGUgdGVzdHMKCSAgVGhlIC1Cc3ltYm9saWMgY2hhbmdlIGNhdXNlcyB1cyB0byBnZXQgYSBkaWZmZXJlbnQgYWRkcmVzcyB3aGVuIGludGVybmFseQoJICBsb29raW5nIHVwIHRoZSBmdW5jdGlvbiB0aGFuIHdoYXQgYXBwbGljYXRpb24gd291bGQgZ2V0IHdoZW4gdGhlIHVzZSB0aGUgc3ltYm9sCgkgIHRoYXQgdGhleSBzZWUuIFRoaXMgbWFkZSByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2doYW5kbGVyIHRvIGZhaWwsIGFzIGl0IGlzIHNldAoJICBpbnRlcm5hbGx5IGFuZCByZW1vdmVkIGV4dGVybmFseS4KCjIwMTAtMTItMTUgMTQ6NTU6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjA3NDJhZSB0byAxNjk0NjJhCgoyMDEwLTEyLTE1IDEyOjEwOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIHRoZSAtQnN5bWJvbGljLWZ1bmN0aW9ucyBsaW5rZXIgZmxhZyBpZiBzdXBwb3J0ZWQKCSAgVGhpcyBmZWF0dXJlIHR1cm5zIGludHJhIGxpYnJhcnkgY2FsbHMgaW50byBkaXJlY3QgZnVuY3Rpb24gY2FsbHMgYW5kIHRodXMgbWFrZXMKCSAgdGhlbSBhIGxpdHRsZSBmYXN0ZXIuIFRoZSBkb3duc2lkZSBpcyB0aGF0IHRoaXMgY2F1c2VzIHByb2JsZW1zIGZvciBlLmcuCgkgIExEX1BSRUxPQUQgYmFzZWQgdG9vbHMuIFRodXMgYWRkIGEgY29uZmlndXJlIG9wdGlvbiB0byB0dXJuIGl0IG9mZi4KCjIwMTAtMTItMTQgMTk6MDA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGxhc3Rfc3RvcCBjYWxjdWxhdGlvbgoJICBPbmx5IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHZhbHVlIHdoZW4gd2UgaGFkIGEgdmFsaWQgc3RvcCBwb3NpdGlvbiBmb3IgdGhlCgkgIGNsaXBwaW5nIG9yIGVsc2UgdGhlIGNsaXBwaW5nIGNvZGUgYXNzdW1lcyB0aGUgc3RvcCBwb3NpdGlvbiBleHRlbmRzIHRvIHRoZSBlbmQKCSAgb2YgdGhlIHNlZ21lbnQsIHdoaWNoIG1ha2VzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgcmV0dXJuIHdlaXJkIHZhbHVlcy4KCjIwMTAtMTItMTQgMTU6NTI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggb2JqZWN0IHR5cGUgaGFuZGxpbmcgaW4gcXVldWVkIHByZXJvbGwKCSAgRmFjdG9yIG91dCB0aGUgbWV0aG9kIHRvIGdldCB0aGUgb2JqZWN0IHR5cGUuCgkgIFdoZW4gcHJlcm9sbC1xdWV1ZS1sZW4gPiAwLCB1c2UgdGhlIHJpZ2h0IG9iamVjdCB0eXBlIGluc3RlYWQgb2YgaWdub3JpbmcKCSAgYnVmZmVyLWxpc3RzLgoKMjAxMC0xMi0xMyAxNjoyMjo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwMTFiY2M4IHRvIDIwNzQyYWUKCjIwMTAtMTItMTEgMTA6MTA6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEZpeCBHSVIgYnVpbGQgZm9yIHNyY2RpciAhPSBidWlsZGRpcgoKMjAxMC0xMi0wOCAxNzo1MToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBjb21taXQgJzBlYWEyNWNiZjVjMGU0YmY4NjU0NWZiNjdjMTgxYTBlY2QyZjE5YzcnIGludG8gMC4xMQoKMjAxMC0xMi0wOCAxMjoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkb2NzOiBmaXggd3JvbmcgdXNlIG9mIFNpbmNlOiBrZXl3b3JkCgoyMDEwLTEyLTA4IDExOjUyOjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IG1haW50YWluIHRoZSB0eXBlZmluZCBleHRlbnNpb24gbGlzdCBvcmRlcgoKMjAxMC0xMi0wOCAxMTo1MTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBkb2NzOiBhZGQgKCkgdG8geHJlZiB0aGUgZnVuY3Rpb24uCgoyMDEwLTEyLTA3IDE5OjM1OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlLCBHU1RfREVCVUdfQ09MT1IgaXMgbmV2ZXIgZGVmaW5lZAoKMjAxMC0xMi0wNyAxOTozNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBjb25zdC1pZnkgYXJndW1lbnRzIHRvIGdzdF9vYmplY3RfZGVmYXVsdF9lcnJvcigpCgoyMDEwLTEyLTA3IDE4OjQ2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBkb2NzOiBnc3RfZXJyb3JfZ2V0X21lc3NhZ2UoKSByZXR1cm5zIHN0cmluZyBpbiBVVEYtOCwgbm90IGN1cnJlbnQgbG9jYWxlCgkgIFdlIHRlbGwgZ2V0dGV4dCB0byByZXR1cm4gZXZlcnl0aGluZyBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMTAtMTItMDUgMjA6MTc6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZ2lzdGVyIGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYygpIHdpdGggdGhlIGRlYnVnIGxvZyBzeXN0ZW0KCjIwMTAtMTItMDcgMTg6MzU6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZG9jczogbGliZ3N0YmFzZTogbW9yZSBnb2JqZWN0IGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgTWFueSBvZiB0aGVzZSBhcmUgc3VwZXJmbHVvdXMgYW5kIHdlcmUgYWRkZWQgZm9yIGNsYXJpdHkuCgoyMDEwLTEyLTA3IDE4OjM1OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBnc3Q6IG1vcmUgZ29iamVjdCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIE1hbnkgb2YgdGhlc2UgYXJlIHN1cGVyZmx1b3VzLCBhZGRlZCBmb3IgY2xhcml0eS4KCjIwMTAtMTItMDcgMTg6NDA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMC0xMi0wNyAxODozMzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMC0xMi0wNyAxODozMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZGlzYWJsZSBBQkkgY2hlY2tzCgoyMDEwLTEyLTA3IDE4OjMyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jdW1lbnQKCjIwMTAtMTItMDcgMTg6MTQ6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBnZXRfY2Fwc19yZWZmZWQgdmFyaWFudHMKCSAgTWFrZSB0aGUgX2dldF9jYXBzIGZ1bmN0aW9ucyBiZWhhdmUgbGlrZSB0aGUgX2dldF9jYXBzX3JlZmZlZCB2YXJpYW50cyBhbmQKCSAgcmVtb3ZlIHRoZSBfcmVmZmVkIHZhcmlhbnRzLiBUaGlzIG1lYW5zIHRoYXQgX2dldF9jYXBzIGRvZXNuJ3QgcmV0dXJuIGEgd3JpdGFibGUKCSAgY2FwcyBhbnltb3JlIGFuZCBhbiBleHBsaWNpdCBfbWFrZV93cml0YWJsZSgpIGlzIG5lZWRlZCBiZWZvcmUgbW9kaWZ5aW5nIHRoZQoJICBjYXBzLgoKMjAxMC0xMi0wNyAxODoxMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNyAxNjo1Mjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IENsZWFuIHVwIC5oIGZpbGUKCjIwMTAtMTItMDcgMTU6NTM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEwLTEyLTA3IDE1OjMzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZWxlbWVudDogcmV3b3JrIEdzdEVsZW1lbnREZXRhaWxzCgkgIENsZWFuIHVwIHRoZSBHc3RFbGVtZW50IHN0cnVjdHVyZQoJICBSZXBsYWNlIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggbWV0YWRhdGEKCjIwMTAtMTItMDcgMTU6MzE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZW1vdmUgZGVwcmVjYXRlZCBtZXRob2RzCgkgIFJlbW92ZSBtb3JlIGRlcHJlY2F0ZWQgbWV0aG9kcyBhbmQgZml4IHVuaXQgdGVzdC4KCjIwMTAtMTItMDcgMTU6MjE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogcmVtb3ZlIGRlcHJlY2F0ZWQgdGVzdHMKCjIwMTAtMTItMDcgMTU6MjA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBmaXggb2JqZWN0IHVuaXQgdGVzdAoKMjAxMC0xMi0wNyAxNToxOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBvYmplY3Q6IGZpeCBkb2NzCgoyMDEwLTEyLTA3IDEzOjE5OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEFkZCAtSSQodG9wX3NyY2RpcikvbGlicyB0byBnLWlyLXNjYW5uZXIgY29tbWFuZHMKCSAgV2l0aG91dCB0aGlzLCBpdCB3aWxsIGZhaWwgZmluZGluZyBhbGwgaGVhZGVycy4KCjIwMTAtMTItMDcgMTI6NTc6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZWNvbW1lbmQgIi0tZ3N0LWRpc2FibGUtcmVnaXN0cnktZm9yayIgYXMgd2VsbAoJICBEaXNhYmxpbmcgZm9ya2luZyBoZWxwcyB3aXRoIGRlYnVnZ2luZyB0aGUgY2F1c2Ugb2YgdGhlIGNyYXNoIGluIGdkYi4KCjIwMTAtMTItMDcgMTI6NTY6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcGx1Z2luZG9jcy50eHQ6CgkgIGRvY3M6IHNvbWUgbm90ZXMgYWJvdXQgb3VyIHBsdWdpbiBkb2NzIHdvcmtmbG93CgoyMDEwLTEyLTA3IDExOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBvYmplY3Q6IFJlbW92ZWQgZGVwcmVjYXRlZCBmaWVsZHMgYW5kIG1ldGhvZHMKCSAgTWFrZSBHc3RPYmplY3QgZXh0ZW5kIGZyb20gR0luaXRpYWxseVVub3duZWQsIHJlbW92ZSB0aGUgRkxPQVRJTkcgZmxhZyBhbmQgdXNlCgkgIEdPYmplY3QgbWV0aG9kcyBmb3IgbWFuYWdpbmcgdGhlIGZsb2F0aW5nIHJlZi4KCSAgUmVtb3ZlIGNsYXNzIGxvY2ssIGl0IHdhcyBhIHdvcmthcm91bmQgZm9yIGEgZ2xpYiA8IDIuOCBidWcuCgkgIFJlbW92ZSB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0IHNpZ25hbHMsIGF0dGVtcHQgdG8gaW1wbGVtZW50IHdpdGggbm90aWZ5CgkgIGJ1dCBkaXNhYmxlZCBiZWNhdXNlIGRlYWRsb2NrcyBpbiBkZWVwLW5vdGlmeS4KCjIwMTAtMTItMDYgMjA6MDM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHJlbW92YWwgb2YgcHJvdG9jb2wgcHJvcGVydHkKCjIwMTAtMTItMDYgMTk6NDA6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBsaWJzOiByZW1vdmUgZGVwcmVjYXRlZCBjb2RlCgoyMDEwLTEyLTA2IDE5OjI0OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA2IDE5OjE4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvZ3N0eG1sLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgcmVtb3ZlIGRlcHJlY2F0ZWQgc3ltYm9scyBhbmQgbWV0aG9kcwoKMjAxMC0xMi0wNiAxMzo1MTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IEFkZCBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNiAxMzo0ODozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHBsYW46IGZpeCB0eXBvCgoyMDEwLTExLTExIDEwOjM4OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgcGxhbjogYWRkIHNvbWV0aGluZyBhYm91dCBHVmFyaWFudCByZWdpc3RyeQoKMjAxMC0xMS0wOCAxODozOTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3VzZS1jYXNlcy0wLjExLnR4dDoKCSAgYWRkIHNvbWUgdXNlLWNhc2VzCgoyMDEwLTExLTA4IDE0OjA4OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDEyOjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDExOjE4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA0IDE5OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgd29yayBvbiB0b2RvIGxpc3QgZm9yIDAuMTEgd29yawoKMjAxMC0xMi0wNiAxMzoyMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgbW9yZSAwLjEwIC0+IDAuMTEKCjIwMTAtMTItMDYgMTI6MDM6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogb3BlbiAwLjExIGJyYW5jaAoKMjAxMC0xMi0wNiAxMToxODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHJldHVybiB3YWtldXAgZXZlbnQgaW4gR1BvbGxGRAoKMjAxMC0xMi0wNiAxMTowNzozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHNvbWUgZGVidWcgdG8gZmFzdCBwdXNoIHBhdGgKCSAgLi4uIHNvIHdlIGRvbid0IGxvb3NlIHRyYWNrIGF0IHRpbWVzIGl0IGlzIG5lZWRlZCB0aGUgbW9zdC4KCjIwMTAtMTItMDUgMTU6NTg6NDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIGNhY2hlZCBDbG9ja0lkCgoyMDEwLTEyLTA1IDE0OjQ2OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IERvbid0IGNoZWNrIHBhZCByZWZjb3VudCB0b28gZWFybHkKCSAgQmVjYXVzZSBvZiB0aGUgbmV3IHBhZCBjYWNoaW5nIHN5c3RlbSwgdGhlIHBlZXIgcGFkIG1pZ2h0IHN0aWxsCgkgIGhhdmUgYSByZWZlcmVuY2Ugb24gYSBwYWQuIFdlIHRoZXJlZm9yZSBkZWxheSB0aGUgcmVmY291bnQgY2hlY2tpbmcKCSAgdGlsICdhZnRlcicgd2UgdW5saW5rIHRoZSBwYWQgZnJvbSBhbnkgcG90ZW50aWFsIHBlZXIuCgoyMDEwLTEyLTA1IDE0OjExOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IE1ha2UgZWxlbWVudCBuYW1lcyBjbGVhcmVyIGluIGRlYnVnIHN0YXRlbWVudHMKCSAgUmVwbGFjZXMgY29uZnVzaW5nIG1lc3NhZ2VzIGxpa2U6CgkgICJOYW1lIG5hbWUgaXMgbm90IHVuaXF1ZSBpbiBiaW4gYmluLCBub3QgYWRkaW5nIgoJICBieQoJICAiTmFtZSAnbmFtZScgaXMgbm90IHVuaXF1ZSBpbiBiaW4gJ2JpbicsIG5vdCBhZGRpbmciCgoyMDEwLTEyLTA0IDIxOjA2OjM0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogRml4IHBlcm1pc3Npb25zIGlmIHVtYXNrIGlzIGJyb2tlbgoJICBGaXhlczogIzU2NDA1Ni4KCjIwMTAtMTItMDQgMTQ6MjM6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZXMgYWZ0ZXIgYmFja3NsYXNoIGluIE1ha2VmaWxlLmFtCgoyMDEwLTEyLTA0IDEzOjE0OjM5ICswMDAwICBLb29wIE1hc3QgPGt3bUBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggdGVzdCBzbyBpdCB3b3JrcyB3aXRoIEZyZWVCU0QncyAvYmluL3NoCgkgIFVzZSAnPScgaW5zdGVhZCBvZiAnPT0nLiBGaXhlczoKCSAgY29uZmlndXJlOiB3b3JraW5nIGMrKyBjb21waWxlciBmb3VuZDogeWVzCgkgIHRlc3Q6IHh5ZXM6IHVuZXhwZWN0ZWQgb3BlcmF0b3IKCSAgaHR0cDovL2J1Z3ppbGxhLWF0dGFjaG1lbnRzLmdub21lLm9yZy9hdHRhY2htZW50LmNnaT9pZD0xNzU2OTIKCjIwMTAtMTItMDMgMTE6Mjk6MzAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBVc2UgZ19zbnByaW50ZigpIGluc3RlYWQgb2Ygc25wcmludGYoKQoKMjAxMC0xMi0wMyAxNjo0NDoyMyArMDEwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQHN0ZXJpY3Nzb24uY29tPgoKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvZ3N0L2dzdGNvbmZpZy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuYzoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC9nc3R2ZXJzaW9uLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIub3V0cHV0OgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5jOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5jOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogYW5kcm9pZC90b29scy5tazoKCSAgQWRkIGJ1aWxkIHN5c3RlbSBmb3IgQW5kcm9pZAoKMjAxMC0xMi0wMyAxNjowMjowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogaW5pdCB2YXJpYWJsZXMgaW4gX3JlaW5pdCgpCgkgIFByb3Blcmx5IGluaXRpYWxpemUgdmFyaWFibGVzIGluIF9yZWluaXQoKSB0b28KCjIwMTAtMTAtMjEgMTg6MDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogbWFrZSBzeW5jIGNsb2NrIHdhaXQgbG9ja2ZyZWUKCSAgTWFrZSB0aGUgY29tbW9uIGNhc2UgbG9ja2ZyZWUuCgoyMDEwLTEyLTAzIDEyOjA0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogdXNlIGZ1bmN0aW9uIGludHJvZHVjZWQgaW4gR0xpYiAyLjIyIHVuY29uZGl0aW9uYWxseQoKMjAxMC0xMi0wMyAxMjo0MjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHNtYWxsIGNsZWFudXBzCgoyMDEwLTExLTAzIDE4OjM4OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbWFrZSBzdXJlIHdlIHJlbW92ZSB0aGUgcmVhZGZkIG1lc3NhZ2VzCgoyMDEwLTExLTAzIDE4OjE2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBvbGw6IGFkZCBtZXRob2QgdG8gZ2V0IGEgR1BvbGxGRAoKMjAxMC0xMS0wMyAxNzo1NjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IFJlZmFjdG9yIGFuZCBtYWtlIG1vcmUgbG9ja2ZyZWUKCSAgUmVmYWN0b3IgdGhlIHdha2V1cCBvZiB0aGUgcG9sbCB0aHJlYWQuCgkgIEFsd2F5cyBtYWtlIGEgY29udHJvbCBzb2NrZXQgdG8gbWFrZSB0aGluZ3MgZWFzaWVyLgoJICBNYWtlIG1vcmUgbWV0aG9kcyBsb2NrZnJlZS4KCjIwMTAtMTAtMjEgMDI6MDI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtb3ZlIGxvY2sgdG8gd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZQoKMjAxMC0xMC0yMSAwMToxNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1ha2UgdGltZXIgcG9sbHMgbG9ja2ZyZWUKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHRha2UgYSBtdXRleCBpbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBvZiB0aGUgdGltZXIKCSAgcG9sbC4KCjIwMTAtMTItMDIgMTc6NTE6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJldHVybiB1cG9uIGlucHV0IHdoZW4gYWxyZWFkeSBlb3MKCSAgLi4uIHJhdGhlciB0aGFuIGhhbmdpbmcgaW5jb21pbmcgdGhyZWFkIChhcyBjb25zaWRlcmVkIGZ1bGwgaW4gZW9zKS4KCjIwMTAtMTItMDIgMTc6NDk6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvYyB0eXBvCgoyMDEwLTEwLTE2IDE2OjE2OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgc29tZSBjb21tZW50ZWQgY29kZQoKMjAxMC0xMi0wMyAxMzo1MjowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBzdGRpby5oIGZvciBzbnByaW50CgoyMDEwLTEyLTAzIDExOjI3OjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgYW4gb2JqZWN0IGFzIGZpcnN0IGFyZ3VtZW50IHRvIEdTVF9XQVJOSU5HX09CSkVDVAoKMjAwOS0wNC0xMSAxNTowNDo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtaWNyby1vcHRpbTogaWYgKHgpIGlzIGNoZWFwZXIgdGhhbiBpZiAoeCA+IDApIGZvciB1bnNpZ25lZCBpbnRlZ2VycwoKMjAwOS0wNC0xMCAwOTowMToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogVXNlIHN0cnVjdHVyZSBwcm9wZXJ0eSBkaXJlY3RseSwgYXZvaWQgZnVuY3Rpb24gdmFyaWFibGUuCgkgIEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGNhbiBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBmaWVsZCBvZiBhIHF1ZXJ5IGRpcmVjdGx5LgoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gY2FsbCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSgpIHRvIGdldCBpdCwgYWxvbmcgd2l0aCBiZWluZwoJICBhYmxlIHRvIHJlbW92ZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoYXQKCSAgZnVuY3Rpb24uCgoyMDA5LTA0LTEwIDA4OjUxOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogcmVtb3ZlIHVzZWxlc3MgdGVybmFyeSBvcGVyYXRvciB1c2FnZS4KCjIwMTAtMDktMTQgMTM6MDg6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IFVzZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZGlyZWN0bHksIGF2b2lkIGZ1bmN0aW9uIHZhcmlhYmxlLgoJICBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBjYW4gYWNjZXNzIHRoZSBzdHJ1Y3R1cmUgZmllbGQgb2YgYW4gZXZlbnQgZGlyZWN0bHkuCgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxsIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKCkgdG8gZ2V0IGl0LCBhbG9uZyB3aXRoIGJlaW5nCgkgIGFibGUgdG8gcmVtb3ZlIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhhdAoJICBmdW5jdGlvbi4KCjIwMTAtMTItMDMgMTE6MTk6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHB1c2ggY2FjaGUgdG8gYnVmZmVybGlzdHMKCSAgQWRkIHRoZSBwdXNoIGNhaGNlIGZvciB0aGUgYnVmZmVybGlzdCBwdXNoIGNvZGUgcGF0aCBhcyB3ZWxsLgoKMjAxMC0xMi0wMyAxMToxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmMKCSAgVGhlcmUgaXMgbm8gbmVlZCB0byBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmN0aW9uIGFzIHdlIGNhbiBqdXN0IGFzIGVmZmljaWVudGx5CgkgIGdldCB0byBpdCBmcm9tIHRoZSBwZWVyIG9iamVjdC4gQWxzbyBub3QgY2FjaGluZyB0aGUgY2hhaW4gZnVuY3Rpb24gd29ya3MgYmV0dGVyCgkgIGJlY2F1c2UgdGhlbiB3ZSBhdXRvbWF0aWNhbGx5IGdldCB0aGUgbmV3IGNoYWluZnVuY3Rpb25zIHdoZW4gdGhleSBjaGFuZ2UuCgoyMDEwLTEyLTAzIDEwOjUyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogY2xlYXIgcGFkIGNhY2hlIHdoZW4gaW5zdGFsbGluZyBwcm9iZXMKCSAgTW92ZSB0aGUgbWV0aG9kIHRvIGNsZWFyIHRoZSBwYWQgY2FjaGUgaW50byBfcHJpdmF0ZS5oCgkgIENsZWFyIHRoZSBwYWQgY2FjaGUgd2hlbiBpbnN0YWxsaW5nIHBhZCBwcm9iZXMuCgoyMDEwLTEwLTIwIDE3OjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGV4cGxpY2l0bHkgaW5saW5lIHNvbWUgZnVuY3Rpb25zCgoyMDEwLTEwLTEzIDAyOjQ4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMTMgMDI6NDI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW52YWxpZGF0ZSBjYWNoZXMgb24gZmx1c2ggYW5kIHBhZCBibG9jawoKMjAxMC0xMC0xMyAwMjoyMDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCjIwMTAtMTAtMTMgMDI6MTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGludmFsaWRhdGUgZnVuY3Rpb24KCSAgTW9yZSBzbWFsbCBvcHRpbWlzYXRpb25zLCByZW1vdmUgdGhlIHVubmVlZGVkIHZhbGlkIGJvb2xlYW4uCgkgIEFkZCBmdW5jdGlvbiB0byBpbnZhbGlkZSB0aGUgY2FjaGUuCgkgIEludmFsaWRhdGUgdGhlIGNhY2hlIG9uIHVubGluay4KCjIwMTAtMTAtMTMgMDE6Mzc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMC0xMC0xMyAwMToyNToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIHBhZCBwdXNoIGNhY2hpbmcKCSAgQnVpbGQgdGhlIGNhY2hlIHdoaWxlIHdlIHB1c2ggZGF0YS4gV2hlbiB3ZSBkb24ndCBoYXZlIGEgY2FjaGUsIHdlIHJ1biB0aGUKCSAgc2xvd3BhdGggYW5kIGNvbGxlY3QgY2FjaGVhYmxlIHByb3BlcnRpZXMuIFdoZW4gYWxsIGNvbmRpdGlvbnMgYXJlIG1ldCwga2VlcCB0aGUKCSAgY2FjaGVkIGRhdGEgYXJvdW5kIHNvIHRoYXQgd2UgY2FuIG1vcmUgZWZmaWNpZW50bHkgcHVzaCBkYXRhIGFyb3VuZC4KCjIwMTAtMTAtMTIgMTI6Mjk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcHJvdG90eXBlIG9mIHBhZCBwdXNoIGNhY2hlCgkgIFByb3RvdHlwZSBvZiBob3cgd2UgY2FuIGNhY2hlIHRoZSBwZWVyIGFuZCBjYXBzIGZvciBhIHBhZCBsaW5rLgoKMjAxMC0xMi0wMyAxMjoyMzoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IGZpeCBwcmV2aW91cyBleHRyYWN0LnBsIGNvbW1pdAoJICBNYWtlIGl0IGFsc28gd29yayBpbiB0aGUgc3JjZGlyPWJ1aWxkZGlyIGNhc2UgYWdhaW4uCgoyMDEwLTEwLTIwIDExOjU4OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYXZvaWQgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbgoJICBNYWtlIHRoZSB0YXNrIHN0YXRlIGFuIGF0b21pYyB2YXJpYWJsZSBzbyB0aGF0IHdlIGNhbiBhdm9pZCB0YWtpbmcgYW5kIHJlbGVhc2luZwoJICB0aGUgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbi4KCjIwMTAtMTItMDMgMTA6MTg6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiBmaXggZXhhbXBsZSBtYXRjaGluZyBpbiBleHRyYWN0LnBsCgkgIFdoZW4gYnVpbGRpbmcgd2l0aCAkc3JjZGlyICE9ICRidWlsZGRpciBvdXRwdXQgd291bGQgY29udGFpbiB0aGUgYnVpbGRkaXIgcGF0aC4KCSAgU3RyaXAgdGhlIHBhdGggd2hlbiBzY2FubmluZyB0aGUgeG1sIGZvciB0aGUgZXhhbXBsZSBtYXJrZXJzLgoKMjAxMC0xMS0xOSAxNTowNjowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogcXVlcnkgZG9jIGltcHJvdmVtZW50cwoJICBNb3JlIHhyZWZzLiBNZW50aW9uZWQgdGhhdCBzb21lIHF1ZXJpZXMgbmVlZCBhIHJ1bm5pbmcgcGlwZWxpbmUuCgoyMDEwLTExLTE5IDExOjQzOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGNsYXJpZnkgbGlzdCBpdGVtIHR5cGVzIGluIGNvbW1lbnRzCgoyMDEwLTExLTE5IDEwOjI5OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiBhZGQgdHdvIEZJWE1FMC4xMTogY29tbWVudHMKCjIwMTAtMTEtMTkgMTA6MjM6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWxsb3cgZGlzYWJsaW5iZyB0aGUgdGVtcGxhdGUgbmFtZSBjb25mb3JtYW5jZSBjaGVja3MKCjIwMTAtMTEtMTggMTY6MzE6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogdGhlIHN1cHBsaWVkIGNhcHMgbWF5IG5vdCBiZSBOVUxMCgkgIFRoZXJlIGlzIGEgZWFybGllciBnX3JldHVybl92YWxfaWZfZmFpbCBjaGVjay4gQWxzbwoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgZG9lcyBub3QgaGF2ZSBzdWNoIGEgY2hlY2suCgoyMDEwLTExLTAzIDE2OjM3OjEwICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBQcmludCBzaW5rLW1lc3NhZ2UgZXZlbnRzIGxpa2UgYSBtZXNzYWdlIGFuZCB0aGUgR3N0TWVzc2FnZSBzdHJ1Y3R1cmUKCjIwMTAtMTEtMDEgMTU6MzI6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduLWRvY3M6IGFkZCBodG1sIG91dHB1dCB1c2luZyBhc2NpaWRvYwoJICBVbmlmeSB0aGUgYWQtaG9jIG1hcmt1cCB0byBiZSBhc2NpaWRvYyBzdHlsZSBpbiBtYW55IHBsYWNlcy4gQWRkIGEgImh0bWwiIHRhcmdldAoJICB0byBNYWtlZmlsZSB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0LgoKMjAxMC0xMC0xOSAxNDoyNzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IG1vcmUgZGVmYXVsdCBuYW1lIGdlbmVyYXRpb24gbW9yZSBlZmZpY2llbnQKCSAgU2F2ZSB+MjAwMCBtYWxsb2MvbWVtY3B5L2ZyZWUgcGFpcnMgYXQgc3RhcnR1cCBieSBydW5uaW5nIHRvX2xvd2VyIGluLXBsYWNlLgoJICBBbHNvIHNraXAgdGhlIG51bWJlcnMgYXMgd2UgY2FuLgoKMjAxMC0xMC0xOCAxNDo0NToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvIGFuZCBkcm9wIGV4dHJhIGNvcHkKCjIwMTAtMTAtMjAgMTQ6Mjc6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIGdfaW50ZXJuX3N0cmluZyBmb3IgaW50ZXJmYWNlIG5hbWVzCgoyMDEwLTEwLTE4IDEzOjI5OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhbHNvIGludGVybiB0aGUgc3RhdGljIGNhcHMKCjIwMTAtMTItMDMgMDA6MDA6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWV0YS1kYXRhIGNhbiBiZSBOVUxMCgoyMDEwLTEyLTAyIDE2OjI4OjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBoYW5kbGluZyBvZiB0aW1lem9uZXMKCSAgRml4IHJldHVybmluZyBvZiB0aW1lem9uZXMgb24gc3lzdGVtcyB3aXRoIGdkYXRldGltZQoJICB0byB1c2UgZmxvYXRzIG9uIHRoZSBtYXRoIGV4cHJlc3Npb24gdG8gYXZvaWQKCSAgdHJ1bmNhdGluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0LgoJICBBbHNvIGFkZHMgYSB0ZXN0IGZvciBjb3ZlcmluZyB0aGlzIGNhc2UuCgoyMDEwLTEyLTAyIDE5OjQ0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBEb24ndCBicmVhayBBQkkKCSAgVGhlIG9yZGVyIG9mIHRoZSBmaWVsZCB3YXMgd3JvbmcsIGFuZCB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGRpZG4ndAoJICBlbmQgdXAgYmVpbmcgdGhlIHNhbWUuCgoyMDEwLTExLTI1IDE4OjQ4OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGJhc2VzaW5rOiByZXdvcmsgcG9zaXRpb24gcmVwb3J0aW5nIGNvZGUKCSAgVW5pZnkgdGhlIGRpZmZlcmVudCBwb3NpdGlvbiByZXBvcnRpbmcgY29kZSBwYXRocyB0byBtYWtlIGl0IG1vcmUKCSAgdW5kZXJzdGFuZGFibGUuCgkgIFVzZSBzdGFydF90aW1lIHRvIGdldCBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiBwYXVzZWQuCgkgIEZpeCB1bml0IHRlc3RzIGZvciBtb3JlIGFjY3VyYXRlIHJlcG9ydGluZy4KCjIwMTAtMTEtMjUgMTY6MDY6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwZXJmb3JtIHdhaXRfcHJlcm9sbCBpbiBhIHdoaWxlIGxvb3AKCSAgV2UgbmVlZCB0byBjb250aW51ZSBjYWxsaW5nIHdhaXRfcHJlcm9sbCgpIGFzIGxvbmcgYXMgdGhlIG5lZWRfcHJlcm9sbCB2YXJpYWJsZQoJICBpcyB0cnVlLgoKMjAxMC0xMS0xNyAxNjo0NjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIGltbWVkaWF0ZWx5IGZvciAtMSBjb252ZXJzaW9uCgkgIFdoZW4gd2UgYXJlIGFza2VkIHRvIGNvbnZlcnQgLTEsIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aCBhIC0xIHJldHVybgoJICB2YWx1ZS4KCjIwMTAtMTEtMTcgMTY6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGEgY29udmVydCBxdWVyeSBjYW4gaGF2ZSBhIC0xIGlucHV0IHZhbHVlCgkgIEl0IGlzIGFsbG93ZWQgdG8gcGFzcyAtMSB0byB0aGUgc3JjX3ZhbCBmb3IgYSBjb252ZXJ0LgoKMjAxMC0xMS0xNiAxMjoyMDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBiYXNlc2luazogYWxzbyBwcmVyb2xsIGFmdGVyIGEgZmx1c2ggd2l0aCBhc3luYz1mYWxzZQoJICBNYWtlIHN1cmUgdG8gcHJlcm9sbCBhZnRlciBhIGZsdXNoIGV2ZW4gd2hlbiB3ZSBhcmUgYXN5bmM9ZmFsc2UuCgkgIEFkZCB1bml0IHRlc3QuCgkgIEZpeGVzICM2MzQ5NjUKCjIwMTAtMTEtMTUgMTg6MjA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlLgoKMjAxMC0xMS0xNSAxODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGxvY2sgc3JjIHN0YXRlIHRvIGF2b2lkIGVycm9yIGNhc2VzCgkgIExvY2sgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCBvciBlbHNlIHRoZSBwaXBlbGluZSBtaWdodCBnbyBpbnRvIHRoZSBlcnJvcgoJICBzdGF0ZSB3aGVuIHdlIHNldCBpdCB0byBQQVVTRUQgbGF0ZXIuCgoyMDEwLTExLTE1IDEyOjQ5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCB1c2luZyBpbnZhbGlkIGNsb2NrIHRpbWVzCgkgIEJlIGV4dHJhIGNhcmVmdWwgdG8gbm90IHVzZSBpbnZhbGlkIGNsb2NrIHRpbWVzIGJ1dCBnaXZlIGEgd2FybmluZyBpbnN0ZWFkLiBUaGlzCgkgIHNob3VsZCBtYWtlIHRoaW5ncyB3b3JrIGJldHRlciB3aXRoIGZhdWx0eSBjbG9jayBpbXBsZW1lbnRhdGlvbnMuCgoyMDEwLTExLTExIDEwOjQxOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBzb21lIGNvbW1lbnRzIGFib3V0IHRoZSB6aWd6YWcgaW50ZXJzZWN0aW9uCgoyMDEwLTEyLTAyIDEzOjA0OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIHVudXNlZCBzeW1ib2xzIHRvIHByb3BlciBzZWN0aW9ucwoKMjAxMC0xMi0wMiAxMzowMzo1NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3REYXRlVGltZSBzZWN0aW9uIGFuZCB1cGRhdGUgaXQgZm9yIGxhdGVzdCBzeW1ib2xzCgoyMDEwLTEwLTE5IDE4OjA5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBPbmx5IGNhbGwgdXBkYXRlX2J1ZmZlcmluZyBpZiBuZWVkZWQuCgkgIHVwZGF0ZV9idWZmZXJpbmcgaXMgc28gYmlnIGl0IHdpbGwgbmV2ZXIgYmUgaW5saW5lZCAoYW5kIHNob3VsZG4ndCksCgkgIHdlIHRoZXJlZm9yZSBtb3ZlIHRoZSBjaGVjayBvdXRzaWRlIG9mIGl0LgoKMjAxMC0xMC0xOSAxNzo0NToxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQXZvaWQgcmUtY2hlY2tpbmcgbWFueSB0aW1lcyB3aGV0aGVyIGFuIGl0ZW0gaXMgYSBidWZmZXIKCSAgQXZvaWRzIGNhbGxpbmcgNiB0aW1lcyBnc3RfYnVmZmVyX2dldF90eXBlKCkgZm9yIGV2ZXJ5IGl0ZW0gY29taW5nCgkgIHRocm91Z2ggcXVldWUyCgoyMDEwLTEwLTE5IDE3OjQzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZWR1Y2UgYW1vdW50IG9mIHRpbWUgbG9ja3MgYXJlIHRha2VuCgoyMDEwLTEwLTE5IDE3OjQyOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXh1cCBkb2N1bWVudGF0aW9uIG9mIHNvbWUgcHJvcGVydGllcwoKMjAxMC0xMC0xOSAxNzo0MDoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQXZvaWQgdXNlbGVzcyBzZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIGNhbGN1bGF0aW9ucy4KCSAgKiBDYWNoZSBzcmMgYW5kIHNpbmsgdGltZQoJICAqIFVzZSBhIGJvb2xlYW4gdG8ga25vd24gd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWRzIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIG9mIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDEwLTEwLTIwIDE3OjQxOjI4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmUtdXNpbmcgR3N0Q2xvY2tJRCBpbnN0ZWFkIG9mIGNvbnN0YW50bHkgcmVjcmVhdGluZyBvbmUKCSAgTWFrZXMgX3Npbmtfd2FpdF9jbG9jayBhdCBsZWFzdCAyIHRpbWVzIGZhc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxNzo0MDo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNsb2NrOiBOZXcgQVBJIHRvIHJlLXVzZSBhIHNpbmdsZSBzaG90IEdzdENsb2NrSUQKCSAgQVBJOiBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQYXNzIGFsb25nIG1pbmlvYmplY3QgdHlwZSB0aHJvdWdoIHZhcmlvdXMgZnVuY3Rpb25zCgkgIEF2b2lkcyBkb2luZyB1c2VsZXNzIEdTVF9JU18qCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6MDg6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBTd2l0Y2ggZW5hYmxlX2xhc3RfYnVmZmVyIHRvIGFuIGF0b21pYyBpbnQKCSAgQXZvaWRzIGhhdmluZyB0byB0YWtlIGEgbG9jayB0byByZWFkL3dyaXRlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTE5IDE1OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVzZWxlc3MgY2hlY2tzIGZyb20gZTQwNmY3CgkgIHNyY3Jlc3VsdCB3YXMgYmVpbmcgcmVjaGVja2VkIGluIHBsYWNlcyBpdCBjb3VsZG4ndCBoYXZlIGNoYW5nZWQuCgkgIHF1ZXVlIGxldmVsIHdhcyBiZWluZyByZWNoZWNrZWQgaW4gcGxhY2VzIGl0IGNvdWxkbid0IGhhdmUgY2hhbmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc4MAoKMjAxMC0xMC0xMyAxMzo1MDoyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogT25seSBlbWl0IGdfY29uZF9zaWduYWwgd2hlbiBuZWVkZWQKCSAgS2VlcCB0cmFjayBvZiB3aGljaCBjb25kIHdlJ3JlIHdhaXRpbmcgZm9yIGFuZCBvbmx5IGVtaXQgd2hlbiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzkKCjIwMTAtMTAtMjAgMTc6MTI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtb3ZlIGdfcmV0dXJuX2lmX2ZhaWwgdG8gd2hlcmUgaXQgaXMgbmVlZGVkCgoyMDEwLTExLTAzIDExOjE0OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIHZlcnNpb246IFRha2UgbmFubyB2ZXJzaW9uIGludG8gYWNjb3VudCBpbiBHU1RfQ0hFQ0tfVkVSU0lPTigpCgkgIElmIHRoZSBuYW5vIGlzID4gMCB0aGUgY3VycmVudCB2ZXJzaW9uIHNob3VsZCBiZSBoYW5kbGVkIHRoZSBzYW1lIGFzCgkgIG1pY3JvICsgMS4KCjIwMTAtMTEtMDEgMTY6MzQ6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNldCB0aGUgZXZlbnQgc291cmNlIG9iamVjdCBpZiBub25lIGlzIHNldCB5ZXQgaW4gZ3N0X3BhZF9wdXNoX2V2ZW50KCkKCSAgT3RoZXJ3aXNlIHRoZSBzb3VyY2Ugd2lsbCBzdGF5IGF0IE5VTEwsIHRoZSBldmVudCBpcyBwYXNzZWQgdG8gdGhlCgkgIHBlZXJwYWQgdmlhIGdzdF9wYWRfc2VuZF9ldmVudCgpIGFuZCB0aGVuIHRoZSBwZWVycGFkIGlzIHNldCBhcwoJICBzb3VyY2Ugb2YgdGhlIGV2ZW50IGluc3RlYWQgb2YgdGhlIG9yaWdpbmF0aW5nIHBhZC4KCjIwMTAtMTAtMzEgMTg6NDg6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMzEgMTg6NDY6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCBtb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gaW5uZXIgYmxvY2sKCjIwMTAtMTAtMzEgMTg6MjM6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlCgkgIE90aGVyIHRoYW4gc2F2aW5nIGFuIGltbWVuc2UgYW1vdW50IG9mIDQgYnl0ZXMgb2YgbWVtb3J5IHRoaXMKCSAgcHJldmVudHMgY2xhbmcgZnJvbSBjb21wbGFpbmluZyBhbmQga2VlcHMgdGhlIHJpbmcgYnVmZmVyIHN0YXRlCgkgIGluIGEgc2luZ2xlIHZhcmlhYmxlIGluc3RlYWQgb2YgdHdvLgoKMjAxMC0xMC0yMCAxMDoxODoxOCArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBTZXQgdGhyZWFkIG5hbWVzIG9uIFdpbmRvd3Mgd2l0aCBNU1ZDIGlmIGEgZGVidWdnZXIgaXMgYXR0YWNoZWQKCSAgRml4ZXMgYnVnICM2MzIxNjguCgoyMDEwLTEwLTE5IDE1OjUyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgbWFjcm9zOiBEZWZpbmUgcmVzdHJpY3Qga2V5d29yZCBpZiBub3QgYXZhaWxhYmxlCgkgIFRoaXMgY2hhbmdlIGFsd2F5cyBkZWZpbmVzIHRoZSByZXN0cmljdCBrZXl3b3JkIGlmIGEKCSAgbm9uLUM5OSBDIGNvbXBpbGVyIGlzIHVzZWQuIEluIHRoZSBjYXNlIG9mIEdDQyA+PSA0CgkgIGl0IHdpbGwgYmUgZGVmaW5lZCB0byBfX3Jlc3RyaWN0X18sIGluIGFsbCBvdGhlcgoJICBjYXNlcyB0byBub3RoaW5nLiBUaGlzIGFsbG93cyB0byB1c2UgdGhlIHJlc3RyaWN0CgkgIGtleXdvcmQgdW5jb25kaXRpb25hbGx5LgoKMjAxMC0xMi0wMSAyMzo1NzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byA+PSAyLjIyCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMTItMDEgMjM6NTY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zMSA9PT0KCjIwMTAtMTEtMzAgMTc6NDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMxCgoyMDEwLTExLTI3IDE5OjEzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogYXZvaWQgJ3VudXNlZCBhcmd1bWVudCcgd2FybmluZ3MgY2F1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIFRoZSB1bnVzZWQgZGF0YSBwYXJhbWV0ZXIgaW4gdGhlIGNsYXNzX2luaXQgdHJhbXBvbGluZSBmdW5jdGlvbgoJICBzZWVtcyB0byBjYXVzZSB3YXJuaW5ncyB3aXRoIHNvbWUgYysrIGNvbXBpbGVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTg2OQoKMjAxMC0xMS0wOSAyMzoyNzoxNyAtMDMwMCAgcmV5bmFsZG8gPHJleW5hbGRvQG9wZW5kb3QuY2w+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiBzb21lIHNtYWxsIGZpeGVzIHRvIHRoZSBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUKCSAgRml4IHdyb25nbHkgcGxhY2VkIGV4YW1wbGUgYW5kIHdlaXJkbHkgcGhyYXNlZCAnbm90ZScgbGFja2luZyBwcm9wZXIKCSAgZm9ybWF0dGluZy4gRml4IG1pc3NpbmcgaGludCBmb3IgYXV0b2dlbi5zaCBsb2NhdGlvbiBhbmQgcmVwaHJhc2UKCSAgJ2J1aWx0IGFuZCBpbnN0YWxsZWQnIHNlbnRlbmNlLiBGaXggd3JvbmdseSBwaHJhc2VkIGFuZCByZWR1bmRhbnQKCSAgcGFyYWdyYXBoIGluIFBXRwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0OTIxCgoyMDEwLTExLTI3IDExOjAyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIG1hbnVhbDogSW1wcm92ZSBzdGF0ZXMgZG9jdW1lbnRhdGlvbgoJICBCZSBtb3JlIGV4cGxpY2l0IGFib3V0IGJlaW5nIG9uIE5VTEwgYmVmb3JlIHVucmVmcwoKMjAxMC0xMS0yMCAxNDo1NDoyMyAtMDgwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogSW5jbHVkZSBleHBvcnRlZCBwYWNrYWdlcyBpbmZvcm1hdGlvbiBpbiBHSVJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUzODkKCjIwMTAtMTEtMTggMDA6Mjk6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuNSBwcmUtcmVsZWFzZQoKMjAxMC0xMS0xOCAwMDoyOToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBjYXBzIGxlYWsgaW4gZWxlbWVudCBmYWN0b3J5IGxpc3QgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMTAtMTEtMTcgMjM6NTU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9odS5wbzoKCSogcG8vc2sucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTExLTE3IDA5OjM5OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBBZGQgX2Zyb21fdW5peF9lcG9jaCB2YXJpYW50cwoJICBBZGRzIDIgdmFyaWFudHMgZm9yIHRoZSBnc3RfZGF0ZV90aW1lX2Zyb21fdW5peF9lcG9jaCBmdW5jdGlvbiwKCSAgb25lIGZvciBVVEMgYW5kIGFub3RoZXIgZm9yIGxvY2FsIHRpbWUuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoX3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaF9sb2NhbF90aW1lCgkgIEZpeGVzICM2NTMwMzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTAzMQoKMjAxMC0xMS0wMyAxNDoyMTowMiArMDAwMCAgVmxhZGltaXIgRXJlbWVldiA8d2wyNzc2QGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdDogZG9uJ3QgcmUtZGVmaW5lIF9VU0VfTUFUSF9ERUZJTkVTIGlmIGFscmVhZHkgZGVmaW5lZAoJICBUaGlzIGF2b2lkcyBjb21waWxlciB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMzg4NgoKMjAxMC0xMS0wMSAxNjowNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC40IHByZS1yZWxlYXNlCgoyMDEwLTExLTAxIDE1OjM2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTAtMzEgMjA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBsZWFrIHBhZCByZWYgaW4gcHVsbCBtb2RlIHdoZW4gZmx1c2hpbmcKCSAgRml4IHBhZCBsZWFrIHdoZW4gcXVldWUyIGlzIGZsdXNoaW5nIG9yIGJlaW5nIHNodXQgZG93bi4KCjIwMTAtMTAtMzEgMTk6NDc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBkb24ndCBzZW5kIHNlZWtzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICBJZiBkb3duc3RyZWFtIGlzIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIHNob3J0LWNpcmN1aXQgYW55IHB1bGxzIGJleW9uZAoJICB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCByZXR1cm4gRkxPV19VTkVYUEVDVEVEIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YKCSAgc2VuZGluZyBhIHNlZWsgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgdXBzdHJlYW0sIHNpbmNlIHRoaXMgbWlnaHQKCSAgY29uZnVzZSB1cHN0cmVhbSBlbGVtZW50cyAoYW5kL29yIGh0dHAgc2VydmVycywgZm9yIGV4YW1wbGUpLiBGaXhlcwoJICBwbGF5YmFjayBvZiBhcHBsZSB0cmFpbGVycyBpbiB0b3RlbSBhbmQgeW91dHViZS9odG1sNSBjbGlwcyBpbgoJICBXZWJraXRHVEsrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyOTc3CgoyMDEwLTEwLTI4IDIzOjI4OjE1ICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgaW5wdXQgcG9zaXRpb24gZm9yIHF1ZXJpZXMgaWYgd2UgaGF2ZSBubyBvdXRwdXQgcG9zaXRpb24KCjIwMTAtMTAtMjggMTM6Mjk6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJldmVyc2UgbmVnb3RpYXRpb24KCSAgV2hlbiB0aGUgZG93bnN0cmVhbSBlbGVtZW50IHN1Z2dlc3RzIGEgbmV3IGZvcm1hdCwgcGFzcyB0aGUgc3VnZ2VzdGlvbgoJICB1cHN0cmVhbSBpZiB3ZSBjYW4ndCBjb252ZXJ0IHRvIGl0LgoJICBGaXhlcyAjNjMzMTQ3CgoyMDEwLTEwLTI3IDE4OjEyOjM2ICswMjAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IHRyYWNraW5nIG9mIHVubGlua2VkIHN0cmVhbXMuCgkgIDMzMDgyZWI5ZTQyYzUyZTRkZjg0ODE5NTk0NmYxYjdiYmNlNzY4YzUgaW50cm9kdWNlZCBhIGJ1ZwoJICBwcmV2ZW50aW5nIHNwYXJzZSB1bmxpbmtlZCBzdHJlYW1zIGZyb20gYWR2YW5jaW5nIHByb3Blcmx5LAoJICBsZWFkaW5nIHRvIHRoZSBxdWV1ZSBibG9ja2luZy4KCSAgRml4ZXM6ICM2MzMxNzYKCjIwMTAtMTAtMjcgMTg6MTE6MzUgKzAyMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IEFkZCBhIG11bHRpcXVldWUgc3BhcnNlIHN0cmVhbXMgdGVzdAoKMjAxMC0xMC0yNyAxMzoxNjoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YmJkNzA4IHRvIDAxMWJjYzgKCjIwMTAtMTAtMjIgMTc6MzU6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuMyBwcmUtcmVsZWFzZQoKMjAxMC0xMC0xOCAxNzo0MjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGNvbnN0LWlmeSBieXRlIHJlYWRlciBhcmd1bWVudCBpbiBwZWVrL3NjYW4gQVBJCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMC0xMC0yMiAxMTo1Mjo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogRml4IDY0Yml0IGNvbnN0YW50CgkgIEJhc2ljYWxseSB3ZSdyZSBub3QgbWVhbnQgdG8gcHV0IGFueXRoaW5nIG1vcmUgY29tcGxleCB0aGFuIHNpbXBsZSBudW1iZXJzLAoJICBkdWUgdG8gdGhlIGRlZmluaXRpb24gb2YgR19HVUlOVDY0X0NPTlNUQU5UOgoJICBHX0dVSU5UNjRfQ09OU1RBTlQodmFsKQkodmFsIyNVTCkKCSAgV2hpY2ggcHJldmlvdXNseSByZXN1bHRlZCBpbiAuLi4uIDEgPDwgNDlVTAoKMjAxMC0xMC0xOCAxMDo0Njo1OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZWNvbXB1dGUgY29ycmVjdCBydW5uaW5nIHRpbWUgZm9yIGJ1ZmZlciBlbmRpbmcgZmx1c2hpbmcgc3RlcAoJICBQcmV2ZW50cyBkZWxheWluZy9oYW5naW5nIHdoZW4gcmVzdW1pbmcgUExBWUlORy4KCSAgRml4ZXMgIzYzMjQzMy4KCjIwMTAtMTAtMTYgMTk6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBkb2NzOiBmaXggbWlzYy4gZ3RrLWRvYyB3YXJuaW5ncyBpbiBsaWJzCgkgIChmb3IgZ3RrLWRvYyAxLjE1KQoKMjAxMC0xMC0xNiAxODoyNjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBSZXZlcnQgImxpYnMvZ3N0L2RhdGFxdWV1ZTogRG9jdW1lbnQgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODA3MjdjMTE3NzAzNTA3Zjc5MGE4NmIwOTYyYWIzZDkxNWU1YTQ5MS4KCSAgVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UuIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkgaXMgYWxyZWFkeQoJICBkb2N1bWVudGVkIGFib3ZlLiBBbmQgd2UgbmVlZCB0aGUgZG9jIGJsdXJiIGZvciBfbmV3KCkgaGVyZS4KCjIwMTAtMTAtMTYgMTc6MDA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogZmxlc2ggb3V0IHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIGEgYml0IG1vcmUKCjIwMTAtMTAtMTYgMTY6NTM6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IGFkZCBzb21lIGd0ay1kb2MgU2luY2U6IG1hcmtlcnMKCSAgQWRkIHNvbWUgZ3RrLWRvYyBTaW5jZTogbWFya2VycywgZml4IG9uZSBTaW5jZTogbWFya2VyLAoJICBmaXggdHlwby4KCjIwMTAtMTAtMTYgMDA6MjU6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC4yIHByZS1yZWxlYXNlCgoyMDEwLTEwLTE2IDAwOjE0OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VzLnBvOgoJKiBwby9mci5wbzoKCSogcG8vbHQucG86CgkqIHBvL25sLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0xNSAxOTo0NToxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogdXNlZnVsIGZhY3RvcnkgbmFtZXMgZm9yIHVyaS1oYW5kbGVycyBvdXRwdXQKCSAgRml4ZXMgIzYzMjIzNi4KCjIwMTAtMTAtMTQgMTI6MzE6MzIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YTY2OGJmIHRvIDdiYmQ3MDgKCjIwMTAtMTAtMTIgMTU6MTM6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBkYXRldGltZTogVXNlIHNlY29uZHMgYXMgZG91YmxlCgkgIFVzZSBzZWNvbmRzIGFzIGRvdWJsZSB0byBtYWtlIEFQSSBzaW1pbGFyIHRvIGdsaWIncwoJICBnZGF0ZXRpbWUuIEFsc28gbW92ZSB0aW1lem9uZSBwYXJhbWV0ZXIgdG8gdGhlCgkgIGZpcnN0IHBvc2l0aW9uLCBqdXN0IGxpa2UgZ2xpYidzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTEwLTExIDE2OjE1OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogTW92ZSBkb2Mgb3V0c2lkZSB0aGUgaWZkZWZzCgkgIE1vdmUgdGhlIGRhdGV0aW1lIGRvY3VtZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9ucyBvdXRzaWRlIHRoZQoJICBpZmRlZnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0wOS0yNyAxOTozNTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBVc2UgR0RhdGVUaW1lIGlmIGF2YWlsYWJsZQoJICBVc2UgR0RhdGVUaW1lIGludGVybmFsbHkgb24gR3N0RGF0ZVRpbWUgaWYgZ2xpYiBhbHJlYWR5CgkgIHByb3ZpZGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTA5LTI4IDE3OjQ2OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIGdsaWItcHJpdmF0ZTogQWRkIGluY2x1ZGUgcHJvdGVjdGlvbiBtYWNybwoKMjAxMC0xMC0xMyAxMjo1MTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIGd1YXJkIHRvIGJ1ZmZlcl9zZXRfY2FwcygpIHRoYXQgY2hlY2tzIGlmIGNhcHMgYXJlIHNpbXBsZQoKMjAxMC0xMC0xMyAxNTo1NjoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBhZGQgYSBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MKCjIwMDktMTAtMDEgMTE6MTQ6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBsaWJzL2dzdC9kYXRhcXVldWU6IERvY3VtZW50IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsCgoyMDA5LTA5LTI4IDEzOjM1OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgYmFzZS9nc3RkYXRhcXVldWU6IGlubGluZSBzb21lIGZ1bmN0aW9ucywgZ2V0IGxldmVscyB3aXRoIG1lbWNweS4KCjIwMTAtMTAtMTMgMTE6NTQ6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSB1bnVzZWQgYXJndW1lbnQgZnJvbSBmaW5kX3JhbmdlKCkKCjIwMTAtMTAtMTMgMTE6NTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGNsZWFudXAgZ2V0X3Byb3BlcnR5L3NldF9wcm9wZXJ0eQoKMjAxMC0xMC0xMiAxODo0ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYXZvaWQgZ19jb25kX3NpZ25hbCB3aGVuIHdlIGNhbgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgY29uZCB3ZSBhcmUgd2FpdGluZyBvbiBhbmQgb25seSBzaWduYWwgd2hlbiBzb21lIG90aGVyIHRocmVhZAoJICBpcyB3YWl0aW5nLgoKMjAxMC0xMC0xMSAxOToyNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCBkdXBsaWNhdGUgdHlwZSBjaGVjayB3aGVuIGZyZWVpbmcgbWluaW9iamVjdAoJICBnc3RfbWluaV9vYmplY3RfdW5yZWYoKSBoYXMgZ3VhcmRzIHRoYXQgY2hlY2sgdGhlIHR5cGUgYWxyZWFkeSwgc28KCSAgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8gcmUtY2hlY2sgaXQgaGVyZSBhZ2FpbiB3aGlsZSBnZXR0aW5nIHRoZQoJICBjbGFzcyAodGhlcmUncyBub3QgcmVhbGx5IG11Y2ggcG9pbnQgdG8gdGhhdCBhbnl3YXksIHNpbmNlIHdlIGRvbid0CgkgIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGdldF9jbGFzcywgc28gd2UnZCBjcmFzaCBhbnl3YXkgaWYKCSAgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIG1pbmkgb2JqZWN0LCB0aGUgb25seSBxdWVzdGlvbiB3b3VsZAoJICBiZSBpZiB0aGVyZSdkIGJlIGEgd2FybmluZyBiZWZvcmUgdGhlIGNyYXNoIG9yIG5vdCkuCgoyMDEwLTEwLTExIDE4OjU1OjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogRGlyZWN0bHkgaW5jcmVhdGUgbWluaV9vYmplY3QgaW4gbWluaV9vYmplY3RfZnJlZSgpCgkgIFNwZWVkcyB1cCBtaW5pX29iamVjdF91bnJlZiBieSAyNSUgYnkgYXZvaWRpbmcgdGhlIHR5cGVjaGVjayB3aGljaAoJICBpcyBhdm9pZGFibGUgaGVyZSBzaW5jZSBpdCBpcyBvbmx5IGNhbGxlZCBvbiBleGlzdGluZyBtaW5pb2JqZWN0cy4KCjIwMTAtMTAtMTEgMTg6MzA6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBSZW1vdmUgY29uZnVzaW5nIERFQlVHX1JFRkNPVU5UIGRlZmluZQoJICB0aGUgZGVidWdnaW5nIHN0YXRlbWVudHMgd2lsbCBiZSBzaWxlbmNlZCBhdXRvbWF0aWNhbGx5IGlmIGRlYnVnZ2luZwoJICBpcyBkaXNhYmxlZCwgYW5kIHRoZSB0eXBlIGNoZWNrIGlzIGFjdHVhbGx5IHJlcXVpcmVkLgoKMjAxMC0xMC0xMSAxODoxMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVsZWFzZSBxdWV1ZTIgbG9jayBiZWZvcmUgbm90aWZ5CgkgIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiB3ZSBub3RpZnkgdGhlIHRlbXAtbG9jYXRpb24KCSAgcHJvcGVydHksCgkgIEZpeGVzICM2MzE4NTMKCjIwMTAtMTAtMTEgMTY6NDU6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhZGQgZGVidWcgc3RhdGVtZW50CgoyMDEwLTEwLTExIDEwOjI3OjUyICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBhcHBseSBzaW5rIHNlZ21lbnQgb24gdGhlIHNvdXJjZSBpZiBxdWV1ZSBpcyBlbXB0eQoJICBBcHBseSB0aGUgc2luayBzZWdtZW50IG9uIHRoZSBzb3VyY2UgaW1tZWRpYXRseSB3aGVuIGl0IGlzIHJlY2VpdmVkCgkgIGFuZCB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBxdWV1ZS4KCSAgU29sdmVzICM0ODIxNDcKCjIwMTAtMTAtMTEgMTU6NTE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRvY3VtZW50YXRpb24gZm9yIGl0ZXJhdGVfc291cmNlcwoKMjAxMC0xMC0xMSAxNjo0MToyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IHVzZSB0aGUgZ3RrLWRvYyBzaG9ydGN1dHMgdG8gZ2V0IGNvbG91cmVkIGFuZCB4cmVmZWQgZXhhbXBsZQoKMjAxMC0xMC0xMSAxNDoyMDoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW5pdGlhbGl6ZSB2YXJpYWJsZQoKMjAxMC0xMC0xMSAxMDo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbXByb3ZlIHRyYWNraW5nIG9mIHNvdXJjZSBlbGVtZW50cwoJICBUcmFjayBlbGVtZW50cyB0YWdnZWQgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcgaW4gYSBzaW1pbGFyIHdheSB3ZSB0cmFjayB0aGUgc2luawoJICBlbGVtZW50cy4gVGhpcyBhbGxvd3MgdXMgdG8gZWZmaWNpZW50bHkgZGlzcGF0Y2ggZG93bnN0cmVhbSBldmVudHMgdG8gdGhlIHJpZ2h0CgkgIGVsZW1lbnRzLgoKMjAxMC0xMC0xMSAxMDo1NTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB0YWcgYXMgYSBTT1VSQ0UgZWxlbWVudAoJICBUYWcgYWxsIGVsZW1lbnRzIGRlcml2aW5nIGZyb20gdGhlIGJhc2VzcmMgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcuCgoyMDEwLTEwLTExIDEwOjUzOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIElTX1NPVVJDRSBmbGFnCgkgIEFkZCB0aGUgR1NUX0VMRU1FTlRfSVNfU09VUkNFIGZsYWcgc28gdGhhdCB3ZSBjYW4gdGFnIHNvdXJjZSBlbGVtZW50cyBsaWtlIHdlCgkgIGNhbiB3aXRoIHNpbmsgZWxlbWVudHMuCgoyMDEwLTEwLTA5IDE0OjE4OjQ0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPG9nZy5rLm9nZy5rQGdvb2dsZW1haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBnX21hcHBlZF9maWxlX3VucmVmIGV4aXN0cyBhbHJlYWR5IHNpbmNlIEdMaWIgMi4yMS4zCgoyMDEwLTEwLTEwIDE4OjE0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXBvcnQgdGhlIG91dHB1dCBwb3NpdGlvbiBvbiBQT1NJVElPTiBxdWVyaWVzIG9uIHRoZSBzcmNwYWQKCSAgVGhlcmUgY2FuIGJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGlucHV0IGFuZCBvdXRwdXQgbGFzdF9zdG9wLgoJICBGaXhlcyBidWcgIzYyOTQxMC4KCjIwMTAtMTAtMDggMTI6NDM6MjAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNGE4YWRjIHRvIDVhNjY4YmYKCjIwMTAtMTAtMDggMTI6NTQ6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBhbmQgc2ltcGxpZnkgY29kZQoJICBvbGRpZCB3YXMgb25seSB1c2VkIHdoZW4gd2Ugd2VyZSBkb2luZyBtdWx0aXBsZSBwb3BzIHBlciBsb29wLgoKMjAxMC0xMC0wOCAxMjo1MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlM2M5YmYgdG8gYzRhOGFkYwoKMjAxMC0xMC0wOCAxMjo0ODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJICBieXRld3JpdGVyOiBBZGQgbWlzc2luZyBmaWxlCgoyMDEwLTEwLTA4IDEyOjE4OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgdW5jaGVja2VkIHZhcmlhbnRzIG9mIHRoZSB3cml0aW5nIGZ1bmN0aW9ucwoJICBUaGVzZSBkb24ndCBjaGVjayBpZiB0aGVyZSdzIGVub3VnaCBmcmVlIHNwYWNlIGF2YWlsYWJsZSBhbmQgYXJlCgkgIGF2YWlsYWJsZSBhcyBpbmxpbmUgZnVuY3Rpb25zIG9ubHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MTZfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2RhdGFfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGxfdW5jaGVja2VkCgoyMDEwLTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGNvbnRyb2xsZXIsIGRhdGFwcm90b2NvbDogbWFrZSBwdWJsaWMgZW51bSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgdGhyZWFkLXNhZmUKCSAgTm90IHRoYXQgaXQgaXMgbGlrZWx5IHRvIG1hdHRlciBpbiBwcmFjdGljZSwgYnV0IHNpbmNlIHRoZXNlIGFyZSBwdWJsaWMKCSAgQVBJIHRoZXkgc2hvdWxkIHByb2JhYmx5IGJlIHRocmVhZC1zYWZlLgoKMjAxMC0xMC0wOCAwMDozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBkYXRhcHJvdG9jb2wsIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBlbnVtIHZhbHVlIG5hbWUgaW4gZW51bXMgdGhhdCBhcmUgcHVibGljIEFQSQoJICBTbyBydW4tdGltZSBiaW5kaW5ncyBjYW4gaW50cm9zcGVjdCB0aGUgbmFtZXMgY29ycmVjdGx5ICh3ZSBhYnVzZSB0aGlzCgkgIGZpZWxkIGFzIGRlc2NyaXB0aW9uIGZpZWxkIG9ubHkgaW4gZWxlbWVudHMsIG5vdCBmb3IgcHVibGljIEFQSQoJICAod2hlcmUgdGhlIGRlc2NyaXB0aW9uIGJlbG9uZ3MgaW50byB0aGUgZ3RrLWRvYyBjaHVuaykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5NDYKCjIwMTAtMTAtMDggMDk6NDc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEZpeCBwb3NzaWJsZSBpbmZpbml0ZSBsb29wIGNhdXNlZCBieSBhbiBvdmVyZmxvdwoKMjAxMC0xMC0wNyAxODo0NjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBtaW5vciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aGVuIGRvaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZvciB0aGUgImxhc3QtbWVzc2FnZSIgcHJvcGVydHkKCSAgTWFrZSBzdXJlIHByb3BlcnR5IG5hbWVzIHBhc3NlZCB0byBnX29iamVjdF9ub3RpZnkoKSBhcmUgaW4gdGhlIGNhbm9uaWNhbCBmb3JtCgkgIChpZS4gImxhc3QtbWVzc2FnZSIgbm90ICJsYXN0X21lc3NhZ2UiKSwgc28gdGhhdCBnX3BhcmFtX3NwZWNfcG9vbF9sb29rdXAoKQoJICBkb2Vzbid0IGhhdmUgdG8gZG8gc3RyZHVwL2Nhbm9uaWNhbGl6ZS9mcmVlIGZvciBldmVyeSBzaW5nbGUgbm90aWZ5IGNhbGwuCgkgIFRoaXMgb25seSBhcHBsaWVzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBvbGRlciBHTGliIHZlcnNpb25zICg8IDIuMjYpLgoKMjAxMC0xMC0wNyAxODoyNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgZmFrZXNpbms6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBhbmQgcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBvbGQgR0xpYiB2ZXJzaW9ucyBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LCBhbmQgYWxzbyByZW1vdmUgd29yay1hcm91bmQgZm9yIGdfb2JqZWN0X25vdGlmeSgpIHRocmVhZC0KCSAgc2FmZXR5IGlzc3VlcyB3aXRoIG9sZGVyIEdMaWIgdmVyc2lvbnMgaWYgaXQncyBub3QgbmVlZGVkIGFueSBtb3JlLgoKMjAxMC0xMC0wNyAxODoyMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LgoKMjAxMC0xMC0wNyAxODoxOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYuCgoyMDEwLTEwLTA3IDE3OjUzOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGFuZCByZW1vdmUgd29yay1hcm91bmQgZm9yIG9sZCBHTGliIHZlcnNpb25zIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYsIGFuZCBhbHNvIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkgdGhyZWFkLQoJICBzYWZldHkgaXNzdWVzIHdpdGggb2xkZXIgR0xpYiB2ZXJzaW9ucyBpZiBpdCdzIG5vdCBuZWVkZWQgYW55IG1vcmUuCgoyMDEwLTEwLTA3IDE3OjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IHVzZSBuZXcgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgZm9yIGNhcHMgbm90aWZpZXMgaWYgYXZhaWxhYmxlCgkgIElmIHdlJ3JlIGJ1aWxkaW5nIGFnYWluc3QgR0xpYiA+PSAyLjI2LjAsIHdlIGNhbiB1c2UgdGhlIG1vcmUgZWZmaWNpZW50CgkgIGdfb2JqZWN0X25vdGlmeV9ieV9jYXBzKCksIHdoaWNoIGF2b2lkcyB0aGUgcGFyYW0gc3BlYyBsb29rdXAuCgoyMDEwLTEwLTA3IDE2OjI3OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIHVubmVjZXNzYXJ5IGdfb2JqZWN0X25vdGlmeSgpIGNhbGwKCSAgR09iamVjdCB3aWxsIGRvIHRoYXQgZm9yIHVzIHdoZW4gZ19vYmplY3Rfc2V0KigpIGlzIGNhbGxlZC4KCjIwMTAtMTAtMDcgMTk6MTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBxb3MgZGVzaWduIGRvYwoJICBGaXggc29tZSB0eXBvcy4KCSAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBxdWFsaXR5IGZpZWxkIGZvciB2aWRlbyBkZWNvZGVycyB0byBzb21ldGhpbmcgdGhhdAoJICBtYWtlcyBtb3JlIHNlbnNlLgoKMjAxMC0xMC0wNSAxNzowMjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0ZW1wIGRpcmVjdG9yaWVzIHRvIENSVUZUX0RJUlMKCjIwMTAtMTAtMDUgMTU6MDU6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IHVzZSBtYXRoLWNvbXBhdC5oIGZvciBNX1BJCgoyMDEwLTEwLTA1IDE0OjQ1OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IHJlbW92ZSByYW5kb20gTVNWQyBjb21wYXRpYmlsaXR5IGRlZmluZSBmb3IgTV9QSSB0aGF0IGRvZXNuJ3QgYmVsb25nIGhlcmUKCSAgQ29kZSB0aGF0IG5lZWRzIHRoaXMgc2hvdWxkIGluY2x1ZGUgZ3N0L21hdGgtY29tcGF0Lmggb3IgdXNlIEdfUEkuCgoyMDEwLTEwLTA1IDE0OjE2OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBnc3Q6IGFkZCBtYXRoLWNvbXBhdC5oIGhlYWRlcgoJICBBZGQgbWluaW1hbCBtYXRoLWNvbXBhdGguaCBoZWFkZXIgd2hlcmUgd2UgY2FuIGRlZmluZSBmYWxsYmFjawoJICB2ZXJzaW9ucyBmb3IgbWlzY2VsbGFuZW91cyBtYXRoIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBhbHdheXMKCSAgYXZhaWxhYmxlLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSB0aGlzIGluIHBsdWdpbnMuCgkgIFRoZSBoZWFkZXIgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQsIHNvIG5lZWRzIHRvIGJlCgkgIGluY2x1ZGVkIGV4cGxpY2l0bHkgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwMgoKMjAxMC0xMC0wNSAxMTo0Nzo1OSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICB0b29sczogZml4IHBhcnNpbmcgb2YgdGltZXN0YW1wIGluIGdzdC1wbG90LXRpbWVsaW5lCgoyMDEwLTA5LTI1IDE0OjI0OjQ2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCB0YWtlIHByZXJvbGwtbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgVXNlIGF0b21pYyBvcHMgdG8gcmVhZCBhbmQgd3JpdGUgbW9yZSBwcm9wZXJ0aWVzLiBUYWtpbmcgdGhlIHByZXJvbGwgbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgY2FuIGxvY2sgdXAgYXBwbGljYXRpb25zIHJlYWRpbmcgdGhlIHByb3BlcnR5IGR1cmluZyBwcmVyb2xsLgoKMjAxMC0xMC0wMiAxODoxMTozMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIGEgZml4bWUgZm9yIDAuMTEKCjIwMTAtMTAtMDQgMTU6NDk6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmb3JtYXQgbmVnYXRpdmUgdmFsdWVzIGJldHRlcgoJICBGb3JtYXQgbmVnYXRpdmUgdmFsdWVzIHByb3Blcmx5IGluIHRoZSBkZWJ1ZyBsb2cuCgoyMDEwLTEwLTAzIDIzOjQxOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCSAgZ2NjIGRvZXNuJ3Qgbm90aWNlIHRoYXQgdGhlIGNoZWNrIGFzc2VydGlvbiBtYWNyb3Mgd2lsbCBhYm9ydAoJICBmdXJ0aGVyIGV4ZWN1dGlvbiBvZiB0aGUgdGVzdHMuCgoyMDEwLTEwLTAzIDIzOjMyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGlubGluZSB2YXJpYW50cyBvZiBhbGwgaW1wb3J0YW50IGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNToyNzozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogQWRkIGlubGluZWQgYW5kIHVuY2hlY2tlZCB2ZXJzaW9ucyBvZiB0aGUgaW1wb3J0YW50IGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3NraXBfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQxNl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50MzJfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50MTZfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQzMl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50OF91bmNoZWNrZWQKCSAgVGhpcyBhbG9uZSBtYWtlcyBmbGFjcGFyc2UgYWJvdXQgMyB0aW1lcyBmYXN0ZXIuCgoyMDEwLTEwLTAzIDE0OjU5OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGd1YXJkcyB0byB0aGUgaW5saW5lZCBnZXRfcG9zL2dldF9yZW1haW5pbmcvZ2V0X3NpemUvZXRjIGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNDoyNDowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IE9wdGltaXplIHBlZWtfYml0cy9nZXRfYml0cyBhIGJpdAoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluc3RlYWQgb2YgZGVyZWZlcmVuY2luZyB0aGUgYml0cmVhZGVyCgkgIHBvaW50ZXIgYWxsIHRoZSB0aW1lIGFuZCBkb24ndCBjb3B5IHRoZSByZWFkZXIgZm9yIHBlZWtfYml0cy4KCjIwMTAtMDktMjcgMTk6Mjk6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3RkYXRldGltZTogRml4IHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIENvcnJlY3RseSBzZXJpYWxpemUgdHpvZmZzZXQgYXMgYSBnc3R2YWx1ZQoKMjAxMC0wOS0yNCAxMjoyMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYWRqdXN0X3RpbWUoKQoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgZW5kIHVwIHdpdGggbmVnYXRpdmUgdGltZXN0YW1wcy4KCjIwMTAtMDUtMjYgMjA6Mjk6MjIgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbmRlcmRlbGF5IG5lZWRzIHRvIGJlIHN1YnRyYWN0ZWQgaW4gYWRqdXN0X3RpbWUoKQoJICBsYXRlbmN5IGlzIGFscmVhZHkgc2luay1sYXRlbmN5ICsgcmVuZGVyLWRlbGF5LCBhbmQgaGVyZSB3ZSBvbmx5CgkgIHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBzaW5rLWxhdGVuY3kuCgkgIEZpeGVzICM2MzA0MzYKCjIwMTAtMDktMjQgMDA6MTM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJICB3aW4zMjogZGVmaW5lIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUgaW4gd2luMzIgY29uZmlnLmggYXMgd2VsbAoKMjAxMC0wOS0yMyAyMDo1Nzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wOS0yMyAyMDo0ODoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgR1NUX1BBUkFNX01VVEFCTEVfKiBwcm9wZXJ0eSBmbGFncwoKMjAxMC0wNS0wNCAwOTozNjo0MyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE1ha2UgYSBXQVJOSU5HIGludG8gYSBERUJVRyBzdGF0ZW1lbnQKCSAgRml4ZXMgYnVnICM2MzA0MzcuCgoyMDEwLTAxLTEyIDE3OjEwOjU5ICswMTAwICBUcm9uZCBBbmRlcnNlbiA8dHJvbmQuYW5kZXJzZW5AdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmFjeSBzaHV0ZG93biBjbG9jayBpZCBsZWFrCgkgIENsb2NrIElEcyB3ZXJlIGxlYWtlZCBpZiB0aGUgY2xvY2sgZ290IGRpc3Bvc2VkIGJlZm9yZSB0aGUgd29ya2VyIHRocmVhZAoJICBnb3QgYSBjaGFuY2UgdG8gcmVhcCB1bnNjaGVkdWxlZCBlbnRyaWVzLgoJICBGaXhlcyBidWcgIzYzMDQzOS4KCjIwMTAtMDktMjMgMTg6MTg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgdXNlbGVzcyBtZW1jcHkKCSAgQmVjYXVzZSBvZiB0aGUgYXdrd2FyZCByZWZjb3VudGluZyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIsIHdlIG1pZ2h0IGVuZCB1cAoJICB3aXRoIHdyaXRhYmxlIGJ1ZmZlcnMgdGhhdCBwb2ludCB0byB0aGUgc2FtZSBkYXRhLiBDaGVjayBmb3IgdGhvc2UgY2FzZXMgc28gdGhhdAoJICB3ZSBhdm9pZCBhIHVzZWxlc3MgbWVtY3B5IGFuZCBrZWVwIHZhbGdyaW5kIHF1aWV0LgoJICBGaXhlcyAjNjI4MTc2CgoyMDEwLTA5LTIzIDE0OjM3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggJ21ha2UgY2hlY2snIGJ1aWxkIGZvciBzZXR1cHMgd2hlcmUgbm8gYysrIGNvbXBpbGVyIGlzIGF2YWlsYWJsZQoJICBPbmx5IHRyeSB0byBidWlsZCAocHNldWRvLSlDKysgdW5pdCB0ZXN0IGlmIGEgd29ya2luZyBDKysgY29tcGlsZXIgaGFzIGJlZW4KCSAgZm91bmQsIG90aGVyd2lzZSB0aGUgYnVpbGQgd2lsbCBmYWlsLiAoV2UgZG8gdGhpcyB0byBtYWtlIHN1cmUgb3VyIGhlYWRlcnMKCSAgYXJlICdDKysgY2xlYW4nKS4KCjIwMTAtMDktMjMgMTA6MDg6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0hPUklaT05UQUxfRVJST1IKCSAgQWRkcyBhIG5ldyB0YWcgdG8gaW5kaWNhdGUgdGhlIGVycm9yIGluIGhvcml6b250YWwgcG9zaXRpb25pbmcKCSAgaW4gbWV0ZXJzLiBUaGlzIGlzIG9uZSBvZiB0aGUgYXZhaWxhYmxlICdncHMgZXJyb3InIGZpZWxkcyBpbgoJICBleGlmLCBmb3IgZXhhbXBsZS4KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9IT1JJWk9OVEFMX0VSUk9SCgoyMDEwLTA5LTIzIDE1OjM0OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDliNDI0YjE1NzAzNjZiMTA3NDZhNzYyZThjOWM0YzFiMzViMjFlOTEuCgoyMDEwLTA5LTIzIDE1OjEyOjMyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB2YXIgb25seSB1c2VkIGZvciBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMDktMDcgMTY6NTY6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyCgkgIEZpeGVzICM1MDM1OTIKCjIwMTAtMDctMTUgMTU6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJICB0ZXN0czogcmVidWlsZCBvbmUgdGVzdCB1c2luZyBjcHAKCSAgVGhpcyBhaW1zIHRvIGNhdGNoIGNwcCBpc3N1ZXMgaW4gY29yZS4gQWRkIGMrKyBib2lsZXJwbGF0ZSB0byBjb25maWd1cmUuCgoyMDEwLTA5LTIxIDE4OjMzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhYTBkMWQwIHRvIDVlM2M5YmYKCjIwMTAtMDktMTkgMTY6MTA6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IEhhbmRsZSBuZXcgYXNzZXJ0aW9uIGluIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMgoKMjAxMC0wOS0xOCAxOToyOTowOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQWRkIGNoZWNrIGZvciBwYXR0ZXJuIGJpdHMgbm90IGluIG1hc2sKCjIwMTAtMDktMTcgMTk6NTM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVc2UgZ19maWxlX3Rlc3QoKSBpbnN0ZWFkIG9mIGFjY2VzcygpIHdoaWNoIGRvZXMgbm90IGV4aXN0IG9uIE1TVkM2CgkgIEZpeGVzIGJ1ZyAjNjI5NDk0LgoKMjAxMC0wOS0xNyAxNzozNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZnVuY3Rpb24gdG8gYWRkIGEgbGlzdCBvZiBidWZmZXJzCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGFkZCBhIGxpc3Qgb2YgYnVmZmVycyB0byB0aGUgYnVmZmVybGlzdC4KCjIwMTAtMDktMTcgMTU6NTE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBmdW5jdGlvbiB0byBnZXQgYSBsaXN0IG9mIGJ1ZmZlcnMKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYSBsaXN0IG9mIGJ1ZmZlcnMgY29udGFpbmluZyB0aGUgZmlyc3QgTiBieXRlcyBmcm9tCgkgIHRoZSBhZGFwdGVyLiBUaGlzIGNhbiBiZSBkb25lIHdpdGhvdXQgYSBtZW1jcHkgYW5kIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvCgkgIHRyYW5zZmVyIHRoZSBsaXN0IHRvIGEgR3N0QnVmZmVyTGlzdCBsYXRlci4KCjIwMTAtMDktMTcgMTU6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmV1c2UgbW9yZSBkYXRhIGluIF9wZWVrKCkKCSAgT3B0aW1pemUgX3BlZWsoKSBzb21lIG1vcmUgYnkgcmV1c2luZyBhbHJlYWR5IGFzc2VtYmxlZCBkYXRhIHdoZW4gd2UgY2FuLgoKMjAxMC0wOS0xNyAxMzo1NzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSBfdGFrZSgpIGEgbGl0dGxlIG1vcmUKCSAgV2hlbiB3ZSBoYXZlIGFscmVhZHkgYXNzZW1ibGVkIHNvbWUgZGF0YSBiZWZvcmUsIHJldXNlIHRoaXMgZGF0YSBhbmQgb25seSBjb3B5CgkgIHRoZSBwYXJ0IHRoYXQgaXMgbmV3LgoKMjAxMC0wOS0xNyAxMjo0ODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZWZhY3RvciBhZGFwdGVyIHRha2UKCSAgTW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gb25lIHBsYWNlCgoyMDEwLTA5LTE3IDEyOjQwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgc3VwcG9ydCBmb3IgMCBzaXplZCBidWZmZXJzCgkgIEFkZCBzdXBwb3J0IGZvciAwIHNpemVkIGJ1ZmZlcnMuIFRoaXMgaXMgaW50ZXJlc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUKCSAgdGltZXN0YW1wIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzYyOTU1MwoKMjAxMC0wOS0xNyAxMDowMTowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IE1ha2UgYSBzZW50ZW5jZSBjbGVhcmVyLgoKMjAxMC0wOS0xNiAxOToyNzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ha2Ugc3VyZSBnc3RyZWFtZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2hlbiBjcmVhdGluZyBlbGVtZW50cwoJICBBZGQgZ3N0X2lzX2luaXRpYWxpemVkKCkgZ3VhcmQgdG8gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIHNvCgkgIHBlb3BsZSB3aG8gZm9yZ290IHRvIGNhbGwgZ3N0X2luaXQoKSBnZXQgYSB1c2VmdWwgd2FybmluZyBmb3Igd2hhdAoJICBzZWVtcyB0byBiZSBhIGNvbW1vbiBlbm91Z2ggbWlzdGFrZS4KCjIwMTAtMDktMTYgMDA6Mzc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtaW5vciBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZSgpIGNvZGUgcmVmbG93CgkgIFNwcmlua2xlIHNvbWUgR19VTkxJS0VMWSgpLCByZXR1cm4gVFJVRS9GQUxTRSBjb25zdGFudHMsIGF2b2lkIGFuCgkgIHVubmVjZXNzYXJ5IGdfdmFsdWVfdW5zZXQoKSwgbW92ZSBnX3ZhbHVlX2luaXQoKStzZXRfaW50NjRfcmFuZ2UoKQoJICBjbG9zZXIgdG8gd2hlcmUgdGhleSdyZSBuZWVkZWQuCgoyMDEwLTA5LTE2IDAwOjMwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UoKSBvcHRpbWlzYXRpb25zCgkgIERvbid0IGNyZWF0ZSBhIG5ldyBHVmFsdWVBcnJheSBjb3B5IGZvciBldmVyeSBzaW5nbGUgX2FkZF9idWZmZXJpbmdfcmFuZ2UoKQoJICBjYWxsLCBidXQgYXBwZW5kIHRvIHRoZSBleGlzdGluZyB2YWx1ZSBhcnJheSBvd25lZCBieSB0aGUgc3RydWN0dXJlIGluc3RlYWQuCgoyMDEwLTA5LTE2IDAwOjAzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzYXRpb24gZm9yIHNvbWUgc2V0dGVyIGZ1bmN0aW9ucwoJICBTcGxpdCBvdXQgZnVuY3Rpb25zIHRoYXQgZG8gdGhlIGFjdHVhbCB3b3JrLCBzbyB3ZSBhdm9pZCBkb2luZwoJICB0aGUgc2FtZSBnX3JldHVybl9pZl9mYWlsKCkgY2hlY2tzIG11bHRpcGxlIHRpbWVzIGZvciBlYWNoIGNhbGwuCgoyMDEwLTA5LTE1IDIzOjQyOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV97aWRffXRha2VfdmFsdWUoKQoJICBBZGQgX3NldF92YWx1ZSgpIHZhcmlhbnRzIHRoYXQgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHZhbHVlIHBhc3NlZAoJICBpbnN0ZWFkIG9mIG1ha2luZyBhIGNvcHkgb2YgdGhlIHZhbHVlLiBUaGlzIGlzIHVzZWZ1bCBmb3Igc2V0dGluZwoJICB2YWx1ZXMgdG8gdGhpbmdzIHRoYXQgYXJlbid0IHJlZmNvdW50ZWQgKGUuZy4gR1ZhbHVlQXJyYXlzIG9yCgkgIHN0cmluZ3Mgb3Igc3RyaW5nIGFycmF5cywgZXRjLikuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV90YWtlX3ZhbHVlKCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5ODMxCgoyMDEwLTA5LTE2IDE5OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkb2Mgc3RyaW5nLCB3ZSBwb3N0IGVsZW1lbnQgbWVzc2FnZXMKCjIwMTAtMDktMTYgMTk6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWRkIG1lc3NhZ2UtZm9yd2FyZCBvcHRpb24KCSAgQWRkIGFuIG9wdGlvbiB0byBmb3J3YXJkIGFsbCB0aGUgaW50ZXJuYWwgbWVzc2FnZXMgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUKCSAgZmlsdGVyZWQgc3VjaCBhcyBFT1MsIFNFR01FTlQgYW5kIEFTWU5DIG1lc3NhZ2VzLgoJICBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8sIGZvciBleGFtcGxlLCBkZXRlY3QgdGhhdCBhIHBhcnRpYWwgcGlwZWxpbmUgaXMKCSAgcHJlcm9sbGVkIG9yIHJlYWNoZWQgZW9zLgoJICBUaGUgb3JpZ2luYWwgbWVzc2FnZXMgYXJlIHdyYXBwZWQgaW5zaWRlIGFuIGVsZW1lbnQgbWVzc2FnZSBiZWNhdXNlIHRoZSBwYXJlbnQKCSAgYmlucyBhcmUgbm90IHN1cHBvc2VkIHRvIHNlZSB0aG9zZSBpbnRlcm5hbCBtZXNzYWdlcyBlc2NhcGUuCgoyMDEwLTA5LTEyIDE2OjUwOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiB1c2Ugc3Ryc3RyKCkgaW5zdGVhZCBvZiBnX3N0cnN0cl9sZW4oKQoJICBTYXZlcyB1cyBhIHN0cmxlbigpIGNhbGwuCgoyMDEwLTA5LTE1IDEzOjI5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2Ugd2hlbiBwZXJjZW50IGNoYW5nZWQKCjIwMTAtMDktMTUgMTM6MTU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFsd2F5cyB1cGRhdGUgYnVmZmVyaW5nIHN0YXR1cwoJICBVcGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0dXMgZXZlbiB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSBxdWV1ZSBzbyB0aGF0IEVPUyBjYW4KCSAgcHJvcGVybHkgZmluaXNoIHRoZSBidWZmZXJpbmcuCgoyMDEwLTA5LTEzIDIwOjM5OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggZmx1c2gtc3RvcCBldmVudCBoYW5kbGluZwoJICBBIGZsdXNoLXN0b3AgZXZlbnQgd291bGQgbWFrZSBhIHBhZCB1bmZsdXNoaW5nLCBjYXVzaW5nIGl0CgkgIHRvIHN0YXJ0IGFjdGluZyBhcyBhbiBhY3RpdmF0ZWQgcGFkLiBUaGlzLCBmb3IgZXhhbXBsZSwKCSAgY291bGQgbGVhZCB0byB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgY2FsbGVkIHdoZW4gc3R1ZmYKCSAgaXNuJ3QgaW5pdGlhbGl6ZWQuCgkgIFRoaXMgY291bGQgaGFwcGVuZCB3aGVuIHNldHRpbmcgcXRkZW11eCB0byBOVUxMIHdoaWxlIGEgc2VlawoJICB3YXMgYmVpbmcgaGFuZGxlZCBpbiB0aGUgdXBzdHJlYW0gZmlsZXNyYyAoaW4gcHVzaCBtb2RlKS4KCSAgVGhpcyBwYXRjaCBtYWtlcyBpdCBjaGVjayBpZiBpdCBpcyBhY3RpdmF0ZWQgYmVmb3JlIHNldHRpbmcKCSAgaXQgdG8gdW5mbHVzaGluZy4KCjIwMTAtMDktMTMgMTE6MTc6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBmaXggd2FybmluZ3MgcG9pbnRlZCBvdXQgYnkgZ3RrLWRvYwoKMjAxMC0wOS0xMyAwOTo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2twb29sOiBtYWtlIGRlYnVnIG9ubHkgY29kZSBjb25kaXRpb25hbAoKMjAxMC0wOS0xMCAxNTowNzowMyAtMDQwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHdpdGggbGF0ZXN0IGctaQoJICBIaWRlIGEgY29tcGF0aWJpbGl0eSB0eXBlZGVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MjQxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTA2MTYKCjIwMTAtMDktMDkgMjI6MjQ6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBkb24ndCBsZWFrIGVudHJpZXMgZm9yIGJsYWNrbGlzdGVkIGZpbGVzCgoyMDEwLTA5LTA5IDIxOjU5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBjaGVja3M6IGFuZCBjaGVjayB0aGUgcmlnaHQgZW52LXZhciAoZml4dXAgbGFzdCBjb21taXQpCgoyMDEwLTA5LTA5IDIxOjU2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgdGVzdHM6IGFsbG93IHJ1bm5pbmcgc3RhdGUgdGVzdHMgZm9yIGFsbCBlbGVtZW50cwoJICBOb3cgb25lIGNhbiB1c2UgR1NUX05PX1NUQVRFX0lHTk9SRV9FTEVNRU5UUz0xIG1ha2UgZ2VuZXJpYy9zdGF0ZXMuY2hlY2sKCSAgdG8gdHJ5IGVsZW1lbnRzIHRoYXQgd291bGQgbm9ybWFseSBiZSBza2lwcGVkLgoKMjAxMC0wOS0wNiAxNToxNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCBzdHJpbmcgY3JlYXRpb24gd2hlbiBub3QgbmVlZGVkCgoyMDEwLTA5LTA5IDE2OjExOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlkZW50aXR5IGlzIEdBUCBmbGFnIGF3YXJlLCBubyBuZWVkIHRvIGxldCBpdCBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtCgoyMDEwLTA5LTA5IDE1OjU3OjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCBhIHN5bmMgYnVzIGhhbmRsZXIgYW5kIG1vdmUgc3RhdGUtY2hhbmdlIGxvZ2dpbmcgdGhlcmUKCSAgVGhlIHN5bmMgaGFuZGxlciBpcyBjYWxsZWQgZm9yIGFsbCBtZXNhZ2VzLCB0aGUgZXZlbnQgbG9vcCB3ZSBwcmV2aW91c2x5IHVzZWQKCSAgd2FzIG5vdC4gSW4gdGhlIHN5bmMgaGFuZGxlciB0cmlnZ2VyIHBpcGVsaW5lIGRvdCBkdW1wcyBhbmQgY2FsbCBhY2Nlc3MgZm9yIGEKCSAgZmlsZSBpbiB0bXAtZGlyIHRvIGFkZCBtYXJrZXJzIGludGVyY2VwdGFibGUgYnkgc3RyYWNlIGFuZCBjby4KCjIwMTAtMDktMDggMTg6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc2ltcGxpZnkgY29kZSBhIGJpdAoJICBObyBuZWVkIHRvIGNhbGwgZ19zbGlzdF9sZW5ndGgoKSBoZXJlLgoKMjAxMC0wOS0wOCAwOTozNzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IGZvciBwdWxsCgkgIEFkZCBpbnRlcm5hbCBfZ2V0X3JhbmdlX3VuY2hlY2tlZCB0aGF0cyBpcyBjYWxsZWQgZnJvbSBfZ2V0X3JhbmdlIGFuZAoJICBfcHVsbF9yYW5nZS4KCjIwMTAtMDktMDcgMjM6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVnbHkvYmFkL2ZmbXBlZyBwa2ctY29uZmlnIGRpcnMgdG8gUEtHX0NPTkZJR19QQVRICgkgIFNvIHdlIGNhbiBmaWd1cmUgb3V0IHBsdWdpbiBkaXJlY3RvcmllcyBvZiBvdGhlciBtb2R1bGVzIHByb3Blcmx5IGluCgkgIHRoZSB1bmluc3RhbGxlZCBzZXR1cCBjYXNlLCBmb3IgdW5pdCB0ZXN0cyB0aGF0IG5lZWQgZWxlbWVudHMgZnJvbQoJICBvdGhlciBtb2R1bGVzLgoKMjAxMC0wOS0wNyAxMjowMToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzIGZvciByZWNlbnQgY2hhbmdlcwoJICBBbmQgc29ydGVkIGhpZXJhcmNoeQoKMjAxMC0wOS0wNyAxMTo0MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMyZTEwYmYgdG8gYWEwZDFkMAoKMjAxMC0wOS0wNyAxMTowOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZG9uJ3QgdXNlIGdzdF9zdHJ1Y3R1cmVfZm9yZWFjaCgpIG9uIE5VTEwgcG9pbnRlcnMKCjIwMTAtMDktMDYgMjA6MTk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA5LTA2IDIwOjE2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogYWRkIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFCgkgIE5vIGlkZWEgdGhvdWdoIHdoeSB3ZSBldmVuIGhhdmUgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFIG9yIHdoZW4gb25lCgkgIHdvdWxkIHdhbnQgdG8gdXNlIHRoYXQgaW5zdGVhZCBvZiBHU1RfU1RSRUFNX0VSUk9SX0VOQ09ERS4KCjIwMTAtMDktMDYgMjA6MDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBhdm9pZCBwb2ludGxlc3Mgc3RyaW5nIGNvcHlpbmcKCSAgVGhlcmUncyBubyBuZWVkIHRvIGNyZWF0ZSB0aGVzZSB0YWJsZXMgd2l0aCBkdXBsaWNhdGVzIG9mIHRoZQoJICB1bnRyYW5zbGF0ZWQgZXJyb3IgbWVzc2FnZSBzdHJpbmcgY29uc3RhbnRzLCB3ZSBjYW4ganVzdCB1c2UKCSAgb2xkLWZhc2hpb25lZCBzd2l0Y2gvY2FzZSBhbmQgY2FsbCBnZXR0ZXh0IGRpcmVjdGx5LiBUaGlzIGFsc28KCSAgbWFrZXMgdGhpbmdzIHNsaWdodGx5IG1vcmUgdGhyZWFkIHNhZmUgYW5kIG1vcmUgcm9idXN0IHRvIGJhZAoJICBpbnB1dCAoaW52YWxpZCBlcnJvciBjb2RlcykuCgoyMDEwLTA5LTA2IDE4OjMzOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGNoZWNrOiBBdm9pZCBlcnJvcjogYXJyYXkgc3Vic2NyaXB0IGlzIGFib3ZlIGFycmF5IGJvdW5kcwoJICBDb3VsZCBoYXZlIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyIGZvciBteSAyMDAwdGggY29tbWl0CgkgIHRvIEdTdHJlYW1lci4uLgoKMjAxMC0wOS0wNiAxNzowMToxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBnaXZlIGEgcHJhY3RpY2FsIGV4YW1wbGUgZm9yIHRoZSBnc3Rfb2JqZWN0X2hhc19hbmNoZXN0b3IKCjIwMTAtMDktMDYgMTQ6MzM6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZGVmaW5lZCBieSBHX0RFRklORV9UWVBFCgoyMDEwLTA5LTA2IDE0OjMyOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiB0dW5lIHNraXBwaW5nIGNoZWNrcyBpZiB3ZSBoYXZlIGRpc2FibGVkIHN1YnN5c3RlbXMKCSAgU2tpcCBBQkkgdGVzdHMgaWYgc29tZSBzdWJzeXN0ZW1zIGFyZSBvZmYuIFJlbW92ZSBESVNBQkxFX0dTVF9ERUJVRyBmcm9tCgkgIHNraXBwaW5nIGV4cG9ydCBjaGVja3MgYXMgdGhpcyBpcyBzYWZlIG5vdy4KCjIwMTAtMDktMDYgMTQ6MDk6NTIgKzAzMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIHRoZSBjb3JyZWN0IHZhcmlhYmxlIGZvciBkZWJ1ZyBtZXNzYWdlCgkgIERlYnVnIHByaW50IHdhcyB1c2luZyBhIHZhcmlhYmxlIHRoYXQgd2FzIG5vdCBpbml0aWFsaXplZC4KCjIwMTAtMDgtMTAgMTQ6MDU6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50LWRldGFpbHM6IGFsbG93IGZvciBhcmJpdHJhcnkgZWxlbWVudCBkZXRhaWxzCgkgIEFkZCBhIEdzdFN0cnVjdHVyZSB0byBHc3RFbGVtZW50Q2xhc3MgYW5kIEdzdEVsZW1lbnRGYWN0b3J5LiBBZGQgc2V0dGVycy9nZXR0ZXIuCgkgIEhhbmRsZSBpdCBpbiB0aGUgcmVnaXN0cnkgY29kZS4gUHJpbnQgaXRlbXMgaW4gZ3N0LWluc3BlY3QuCgkgIEZpeGVzICMzOTY3NzQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFfZGF0YSgpLCBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhX2RhdGFfZGV0YWlsKCkKCjIwMTAtMDktMDUgMTg6NTc6NTYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2Q5YWNmIHRvIGMyZTEwYmYKCjIwMTAtMDktMDUgMTI6MTM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjYTFjODY3IHRvIGQzZDlhY2YKCjIwMTAtMDktMDUgMTA6MjI6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgc3ltYm9scyBmcm9tIEdzdEVsZW1lbnRGYWN0b3J5TGlzdAoJICBBbmQgaGVyZSdzIGEgcmVtaW5kZXIgc2luY2UgSSBmb3Jnb3QgdG8gcHV0IHRoZW0gaW4gbXkgcHJldmlvdXMKCSAgY29tbWl0LgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9maWx0ZXIKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRzCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2lzX3R5cGUKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9kZWJ1ZwoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYwoJICBBUEk6IEdzdEVsZW1lbnRGYWN0b3J5TGlzdFR5cGUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQU5ZCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FVRElPVklERU9fU0lOS1MKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQVVESU9fRU5DT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERU1VWEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFUEFZTE9BREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0VOQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfRk9STUFUVEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01BWF9FTEVNRU5UUwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9JTUFHRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9NRVRBREFUQQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9TVUJUSVRMRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9WSURFTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BTlkKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTVVYRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfUEFSU0VSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1BBWUxPQURFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9TSU5LCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1NSQwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9WSURFT19FTkNPREVSCgoyMDEwLTA4LTMxIDExOjM3OjQyICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBidWZmZXJpbmdfcmFuZ2VzIHF1ZXJ5IHN1cHBvcnQKCSAgRml4ZXMgYnVnIDYyMzEyMQoKMjAxMC0wOS0wMyAxOTo1ODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IE9ubHkgZmlsbCB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIGJ1ZmZlcmluZyByYW5nZXMgaWYgYSBub24tTlVMTCBwb2ludGVyIHdhcyBwcm92aWRlZAoKMjAxMC0wOC0zMSAxMTozNToxMiArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHF1ZXJ5OiBuZXcgYnVmZmVyaW5nX3JhbmdlcyBBUEkKCSAgQWRkZWQgYSBuZXcgcXVlcnkgdHlwZSB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGFyZWFzIG9mIHRoZQoJICBtZWRpYSBjdXJyZW50bHkgYnVmZmVyZWQuIFNlZSBidWcgNjIzMTIxLgoJICBBUEk6IGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X2dldF9uX2J1ZmZlcmluZ19yYW5nZXMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbnRoX2J1ZmZlcmluZ19yYW5nZQoKMjAxMC0wOC0xNiAxOTowMToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEdzdEVsZW1lbnRGYWN0b3J5OiBBZGQgbGlzdGluZyBmZWF0dXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2MTgxCgoyMDEwLTA5LTAyIDEyOjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBtZW50aW9uIEdTVF9ERUJVR19PUFRJT05TLCBPUkNfQ09ERSwgR19ERUJVRyBhbmQgR19TTElDRSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgTWVudGlvbiBhIGZldyBtb3JlIHVzZWZ1bCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlICdSdW5uaW5nIEdTdHJlYW1lcgoJICBhcHBsaWNhdGlvbnMnIHNlY3Rpb24gb2YgdGhlIEFQSSByZWZlcmVuY2UuCgoyMDEwLTA5LTAyIDE0OjE1OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogZml4IHVzZSBvZiBlbXB0eSBzdWJidWZmZXJzCgkgIFJlbW92ZSBhIHNob3J0IGN1dCB0aGF0IHdhcyBpZ25vcmluZyBzcmMtPmRhdGEgYWxsb2NhdGlvbiBtb2RlLiBBbGwKCSAgdGhlIGNhbGxlZCBjb2RlLXBhdGggYmVsb3cgaGFuZGxlIHNpemU9PTAuCgoyMDEwLTA5LTAyIDAwOjAxOjI1ICswMTAwICBKZWZmcmV5IFMuIFNtaXRoIDx3aHlkb3VidEB5YWhvby5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBGaXggY2FzdHMgaW4gYSBidW5jaCBvZiBpbmxpbmUgZnVuY3Rpb25zIHRvIG1haW50YWluIGNvcnJlY3QgY29uc3QtbmVzcwoJICBNYWtlIGNvZGUgaW5jbHVkaW5nIEdTdHJlYW1lciBoZWFkZXJzIGNvbXBpbGUgd2l0aCAtV2Nhc3QtcXVhbCBieQoJICBtYWludGFpbmluZyBjb25zdC1uZXNzIHdoZW4gY2FzdGluZy4gQWxzbyBmaXggZnVuY3Rpb24gc2lnbmF0dXJlIG9mCgkgIGdzdF9ieXRlX3dyaXRlcl9zZXRfcG9zKCk6IHRoZSBieXRlIHdyaXRlciBzaG91bGQgbm90IGJlIG1hcmtlZCBhcwoJICBjb25zdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzkxMAoKMjAxMC0wOC0zMSAxODo0MDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBidWlsZDogdXNlIG5ldyBBR19HU1RfUEtHX0NPTkZJR19QQVRIIG00IG1hY3JvIGZyb20gY29tbW9uCgkgIFNldHMgdXAgYSBHU1RfUEtHX0NPTkZJR19QQVRIIHZhcmlhYmxlIGZvciB1c2UgaW4gTWFrZWZpbGUuYW0KCSAgKGF2b2lkcyB0cmFpbGluZyAnOicgaW4gUEtHX0NPTkZJR19QQVRIIHVzZWQpLiBBIHVzZWZ1bCBzaWRlCgkgIGVmZmVjdCBvZiB0aGlzIGlzIGFsc28gdGhhdCB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50CgkgIGlzIG5vdyBsb2dnZWQgaW4gdGhlIGNvbmZpZ3VyZSBvdXRwdXQuCgoyMDEwLTA5LTAxIDExOjM0OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIGNsb2NrIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDktMDEgMTE6MDY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggbWVtb3J5IGxlYWtzIGluIHRoZSBpbnQ2NHJhbmdlIHRlc3RzCgoyMDEwLTA4LTI0IDEyOjI3OjMwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBuZXcgR3N0SW50NjRSYW5nZSB0eXBlCgkgIG5ldyBHc3RJbnQ2NFJhbmdlIHRvIHN0b3JlIGdpbnQ2NCByYW5nZXMuCgkgIEFQSTogR1NUX1RZUEVfSU5UNjRfUkFOR0UKCSAgQVBJOiBnc3RfdmFsdWVfc2V0X2ludDY0X3JhbmdlCgkgIEFQSTogZ3N0X3ZhbHVlX2dldF9pbnQ2NF9yYW5nZV9taW4KCSAgQVBJOiBnc3RfdmFsdWVfZ2V0X2ludDY0X3JhbmdlX21heAoJICBGaXhlcyBidWcgIzYyNzgyNi4KCjIwMTAtMDgtMzAgMjE6MjY6MTggLTAzMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogVHJpdmlhbCBjbGVhbnVwIGZvciBHU1RfREVCVUdfQ0FURUdPUllfR0VUCgoyMDEwLTA4LTMwIDE2OjAyOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUmUtaW5zdGF0ZSB0aGUgZGVmYXVsdCBmb3IgY29sb3IgdXNhZ2UKCSAgVGhpcyB3YXMgYWNjaWRlbnRseSByZW1vdmVkIGluIDdhNzIyMDkxYjZkMWI1ZDdmOTQwNGZkZWY0YzY5NWEyOWE2NWE5ODkKCjIwMTAtMDgtMzAgMTI6NDc6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogVXNlIGdfc3RyY21wMCBpbnN0ZWFkIG9mIHN0cmNtcAoJICBBdm9pZHMgc2VnZmF1bHRzIHdoZW4gdXNpbmcgTlVMTCBhcmd1bWVudHMuCgoyMDEwLTA4LTI3IDE1OjM1OjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCBzaWxlbnQgcHJvcGVydHkgdG8gc3VwcHJlc3Mgc2lnbmFsIGVtaXNzaW9uCgkgIEFsbG93IHRvIHR1cm4gb2ZmIHNpZ25hbCBlbWlzc2lvbiBhbmQgdGhlcmVmb3JlIGV4dHJhIGxvY2tpbmcgaWYgdGhpcyBpcyBub3QgbmVlZGVkLgoJICBGaXhlcyAjNjIxMjk5CgoyMDEwLTA4LTI4IDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKSB0byB0aGUgZG9jcyBhbmQgZXhwb3J0ZWQgc3ltYm9scwoKMjAxMC0wOC0yOCAxNzo1MToxNCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlIGNoZWNrcyBmb3IgZGVwcmVjYXRlZCBmbG93IGNoZWNrIG1hY3JvcwoJICBHU1RfRkxPV19JU19GQVRBTCgpIGFuZCBHU1RfRkxPV19JU19TVUNDRVNTKCkgYXJlIGRlcHJlY2F0ZWQsCgkgIHNvIGFyZW4ndCBhdmFpbGFibGUgZm9yIHRoZSB0ZXN0c3VpdGUgYW55IG1vcmUuCgoyMDEwLTA4LTI4IDA5OjM1OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGludmVydGVkIGFzc2VydGlvbiBsb2dpYyBpbiBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkKCjIwMTAtMDgtMjggMDk6MzA6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdXRpbHM6IEFkZCBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkgdG8gY29tcGFyZSBmcmFjdGlvbnMKCSAgQW5kIHVzZSBpdCBmb3IgdGhlIGZyYWN0aW9uIGNvbXBhcmlzb25zIGluIGdzdHZhbHVlLmMgaW5zdGVhZAoJICBvZiB1c2luZyBjb21wYXJpc29ucyBieSBmaXJzdCBjb252ZXJ0aW5nIHRoZSBmcmFjdGlvbnMgdG8gZG91YmxlLgoJICBTaG91bGQgZml4IGJ1ZyAjNjI4MTc0LgoJICBBUEk6IGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKQoKMjAxMC0wOC0yOCAxNzowNDo0MyArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIHRlc3RzOiBBZGQgYSBjb3VwbGUgb2YgZXh0cmEgY2FwcyBzdHJpbmdzIHRvIHRlc3QKCjIwMTAtMDgtMjcgMTY6NTI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGRvIGFuIGluZmluaXRlIGxvb3AgaW4gdGhlIGxvb3AgZnVuY3Rpb24KCSAgSW5zdGVhZCByZXR1cm4gYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLCB3aGljaCBtYWtlcyBzdXJlIHRoYXQgdGhlCgkgIHN0cmVhbSBsb2NrIGlzIHJlbGVhc2VkIGZvciBhIHNob3J0IHRpbWUgYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLAoJICB0YXNrIHN0YXRlIGNoYW5nZXMgYXJlIGNoZWNrZWQsIGV0YyBhbmQgdGhpcyBhbGxvd3MgdGhlIHRhc2sKCSAgdG8gYmUgc3RvcHBlZCBwcm9wZXJseS4KCjIwMTAtMDgtMjcgMTY6NDk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZsdXNoIHRoZSBkYXRhIHF1ZXVlIGlmIGRvd25zdHJlYW0gcmV0dXJuIFdST05HX1NUQVRFIHRvbwoKMjAxMC0wOC0yNiAyMzozOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBlbGVtZW50czogU3RvcCB1c2luZyBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI2IDIzOjM3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFN0b3AgdXNpbmcgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbmQgZG9jdW1lbnQgdGhlIHNwZWNpYWwgaGFuZGxpbmcgb2YgV1JPTkdfU1RBVEUuCgoyMDEwLTA4LTI2IDIzOjA3OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBEZXByZWNhdGUgR1NUX0ZMT1dfSVNfRkFUQUwoKSBhbmQgR1NUX0ZMT1dfSVNfU1VDQ0VTUygpCgkgIFRoZSBwcm9ibGVtIHdpdGggYm90aCBtYWNyb3MgaXMsIHRoYXQgdGhleSBzdWdnZXN0IHNvbWV0aGluZyB0aGF0IGlzbid0IHRydWUuCgkgIElmIEdTVF9GTE9XX0lTX0ZBVEFMIGlzIHRydWUsIHRoZXJlIGNvdWxkIHN0aWxsIGJlIGEgcHJvYmxlbSBmb3IgbWFueSBlbGVtZW50cwoJICBhbmQgdGhleSBzaG91bGQgc3RvcCB3aGF0IHRoZXkncmUgY3VycmVudGx5IGRvaW5nIGFuZCByZXR1cm4gdGhhdCB2YWx1ZQoJICB1cHN0cmVhbSAoZS5nLiBub3QtbGlua2VkIGluIGEgcGFyc2VyKS4gSWYgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBpcyBmYWxzZSwgaXQKCSAgY291bGQgc3RpbGwgYmUgdGhhdCB0aGlzIGlzICJvayIgZm9yIHRoZSBlbGVtZW50IChlLmcuIG5vdC1saW5rZWQgZm9yIGEgZGVtdXhlcgoJICBvbiBhIGZldyBvZiBpdHMgcGFkcyBidXQgbm90IGFsbCkuCgkgIEl0J3MgYmV0dGVyIHRvIG5vdCBoYXZlIHRoZXNlICJjb252ZW5pZW5jZSIgbWFjcm9zIGJ1dCBpbnN0ZWFkIGxldCBwZW9wbGUKCSAgKnRoaW5rKiBhYm91dCB0aGUgaGFuZGxpbmcgb2YgZGlmZmVyZW50IGZsb3cgcmV0dXJucywgdGhhdCBtYWtlcyBzZW5zZSBmb3IKCSAgdGhlaXIgZWxlbWVudC4gQW5kIHdlIHNob3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgaGFuZGxpbmcgb2YgZmxvdyByZXR1cm5zIGZvcgoJICBkaWZmZXJlbnQgY2xhc3NlcyBvZiBlbGVtZW50cyBpbiB0aGUgcGx1Z2luIHdyaXRlcidzIGd1aWRlLgoJICBGaXhlcyBidWcgIzYyODAxNC4KCjIwMTAtMDgtMjcgMTE6MTE6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGtlZXAgcHJvcGVydGllcyBpbiBvcmRlcgoKMjAxMC0wOC0yNyAxMDoyMjoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQVJHXyAtPiBQUk9QXyBmb3IgcHJvcGVydHkgY29uc3RhbnRzCgoyMDEwLTA4LTI2IDE3OjA0OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggb24tZGlzayBidWZmZXJpbmcgYWdhaW4KCjIwMTAtMDgtMjYgMTU6MTI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVjb3ZlciBmcm9tIGludmFsaWQgZG93bnN0cmVhbSBzdWdnZXN0aW9ucwoJICBXaGVuIHdlIGFyZSBoYW5kbGluZyBhIGJ1ZmZlciBhbmQgbmVlZCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQgYnVmZmVyLCBoYW5kbGUgdGhlCgkgIGNhc2Ugd2hlbiBkb3duc3RyZWFtIHN1Z2dlc3RzIHVzIGEgZm9ybWF0IHRoYXQgd2UgY2FuJ3QgY29udmVydCB0aGUgaW5wdXQgYnVmZmVyCgkgIHRvLiBJbiB0aGF0IGNhc2UsIGNoZWNrIGlmIHRoZXJlIGlzIGFub3RoZXIgZm9ybWF0IGF2YWlsYWJsZSBkb3duc3RyZWFtIGluc3RlYWQKCSAgb2YgZmFpbGluZy4KCSAgRml4ZXMgIzYyMTMzMiBhbmQgc2VlIGFsc28gIzYxNDI5NgoKMjAxMC0wOC0yNiAxMzo0NjozNCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiBsb2FkIHRoZSBnc3QtcHl0aG9uIHBsdWdpbiBsb2FkZXIgd2l0aCBHX01PRFVMRV9CSU5EX0xBWlkuCgoyMDEwLTA4LTE2IDE0OjEyOjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEgZm9yIHJlcHJlc2VudGluZyBhcmJpdHJhcnkgcHJpdmF0ZQoJICBkYXRhIHRoYXQgYXBwbGljYXRpb25zIG1pZ2h0IHdhbnQgdG8gc3RvcmUgaW50byB0YWdzLiBFeGlmL2lkMywKCSAgZm9yIGV4YW1wbGUsIGhhdmUgdGFncyBmb3IgdGhpcy4KCSAgQVBJOiBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgRml4ZXMgIzYyNjY1MQoKMjAxMC0wOC0yNCAxMjo0NjozOCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGdzdC1sYXVuY2g6IEZpeCBPSUxfQ1BVX0ZMQUdTIGRvY3MgZm9yIE9yYwoKMjAxMC0wOC0yNCAxNjoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IHJlbW92ZSBPSUxfQ1BVX0ZMQUdTIGZyb20gbWFuIHBhZ2UKCSAgV2UncmUgdXNpbmcgT1JDIGluc3RlYWQgb2YgbGliT2lsIG5vdy4KCjIwMTAtMDgtMjMgMTg6MjA6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVmFsZ3JpbmQgZGVmaW5lIGlzIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAoKMjAxMC0wNy0yNyAxODoyNDo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBBbGxvdyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGdzdF9pbml0KCkKCSAgQ2FsbGluZyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGluaXRpYWxpemF0aW9uCgkgIHNlZW1zIGxpa2UgdGhlICJvYnZpb3VzIiBvcmRlci4KCjIwMTAtMDgtMjMgMTM6MDY6MTkgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggc2VnZmF1bHQgaW4gdGVzdAoKMjAxMC0wOC0yMyAxMDo1ODoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGludGVybiBhbGwgR3N0UGx1Z2luRGVzYyBtZW1iZXJzIHdoZW4gdW5wYWNraW5nCgoyMDEwLTA4LTIzIDEwOjU2OjMwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBmaXggbGVhayB3aGVuIG5hbWluZyBwYXJlbnRlZCBvYmplY3QKCjIwMTAtMDgtMjAgMDM6MDc6NTggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBhIGdzdF9pc19pbml0aWFsaXplZCgpIEFQSQoJICBGb3Igb25lLCB0aGlzIHdpbGwgYWxsb3cgbGlicmFyaWVzIHRoYXQgZXhwZWN0IGFwcGxpY2F0aW9ucyB0bwoJICBpbml0aWFsaXplIEdTdHJlYW1lciBiZWZvcmUgdXNpbmcgdGhlaXIgQVBJIHRvIGhhdmUgYSBjaGVjayBmb3IgdGhpcwoJICBjb25kaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc0MzgKCjIwMTAtMDgtMjAgMTg6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVsYXggdGhlIHNvdXJjZSBlbGVtZW50IGNoZWNrCgkgIFdoZW4gdGhlcmUgaXMgYSBzaW5rIGluc2lkZSBhIGJpbiwgdGhlIFNJTksgZmxhZyBpcyBzZXQgb24gdGhlIGJpbi4gV2hlbiB3ZSBhcmUKCSAgdHJ5aW5nIHRvIGl0ZXJhdGUgdGhlIHNvdXJjZSBlbGVtZW50cywgYWxzbyBpbmNsdWRlIHRoZSBiaW5zIHdpdGggdGhlIFNJTksgZmxhZwoJICBiZWNhdXNlIHRoZXkgY291bGQgYWxzbyBjb250YWluIHNvdXJjZSBlbGVtZW50cywgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBhbHNvIGEKCSAgc291cmNlLgoJICBUaGlzIHNvbHZlcyB0aGUgY2FzZSB3aGVyZSBzZW5kaW5nIGFuIEVPUyB0byBhIHBpcGVsaW5lIGRpZG4ndCBnZXQgZGlzcGF0Y2hlZCB0bwoJICBhbGwgc291cmNlIGVsZW1lbnRzLgoJICBTZWUgIzYyNTU5NwoKMjAxMC0wOC0xOSAxNzowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGFkZGVkIHVuaXQgdGVzdCBmb3IgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMDMtMDUgMTc6MTg6MjMgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogUHVzaCBuZXdzZWdtZW50IHdoZW4gbGlua2luZyBpbiBQTEFZSU5HCgkgIEZpeGVzICM2MTE5MTgKCjIwMTAtMDgtMTIgMjA6MjM6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IGxpbmtfbWFueSBzaG91bGQgYWN0aXZhdGUgcGFkcyBpZiBuZWVkZWQKCSAgZ3N0X2VsZW1lbnRfbGlua19tYW55IGRvZXMgc29tZSBtYWdpYyBhbmQgY3JlYXRlcyBnaG9zdHBhZHMKCSAgaWYgbmVlZGVkLCBidXQgaXQgZGlkbid0IHNldCB0aGUgbmV3bHkgY3JlYXRlZCBnaG9zdHBhZCB0bwoJICBhY3RpdmUgaWYgbmVlZGVkLiBUaGlzIHBhdGNoIGZpeGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2Nzg0CgoyMDEwLTA4LTE5IDExOjExOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogRml4IG1lbW9yeSBsZWFrIGluIHRoZSB1bml0IHRlc3QgYnkgdW5yZWZmaW5nIEdzdERhdGVUaW1lIGluc3RhbmNlIGFmdGVyIHVzYWdlCgoyMDEwLTA4LTE5IDEwOjAzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBjb21tZW50cyBpbiB0ZXN0CgoyMDEwLTA4LTE5IDA5OjU4OjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgR19HVUlOVDY0X0ZPUk1BVCB3aGVyZSBuZWVkZWQKCSAgRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDEwLTA4LTE4IDE1OjMxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbgoKMjAxMC0wOC0xOCAxNToxMjo0NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeGVkIHJhY3kgdW5pdCB0ZXN0cwoJICBGaXhlcyAjNjAwMDA0CgoyMDEwLTA4LTE2IDE4OjAxOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiBhZGQgZXhhbXBsZSBsYXVuY2ggbGluZXMgYW5kIG1vcmUgZXhwbGFuYXRpb24gdG8gdGhlIGRvY3MuCgkgIFRoZSBwbHVnaW5zIHdoZXJlIGFsbW9zdCB1bmRvY3VtZW50ZWQgOi8gLi4uCgoyMDEwLTA4LTEzIDE2OjE5OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDctMDcgMDg6MjA6MjEgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGEgc3BlY2lhbCBjYXNlIGR1cmluZyByYW5nZSBtYW5hZ2VtZW50CgkgIFdoZW4gYSByYW5nZSBjb250YWluZWQgbm8gZGF0YSwgaWYgaXQgd2FzIG5ldyBvciBuZXdseSBlbXB0eSwgaXQgd291bGQKCSAgYmUgbWlzaGFuZGxlZCBpZiBpdCB3ZXJlIHRoZSBjdXJyZW50IHJhbmdlLgoKMjAxMC0wNy0wNSAxMzo0MzowNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbG9ja2luZyBhcm91bmQgaW5pdF9yYW5nZXMKCSAgVGhpcyBmaXhlcyBhIHNlZ2ZhdWx0IHdoZXJlIHRoZSByZWFkeSB0byBwYXVzZWQgc3RhdGUgY2hhbmdlIGNhdXNlcwoJICBmcmVlaW5nIGFuZCBhbGxvY2F0aW9uIG9mIG5ldyByYW5nZXMgd2hpbGUgYW5vdGhlciB0aHJlYWQgaXMgdHJ5aW5nIHRvCgkgIHVzZSB0aGVtLgoKMjAxMC0wNy0wMiAxNzo0MDowOCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3JlIHJpbmcgYnVmZmVyIGZpeGVzCgkgIC0gU2V0IHJlYWRpbmdfcG9zIGNvcnJlY3RseSBpbiBfY3JlYXRlX3JlYWQgKCkKCSAgLSBTZWVrIHRvIGRhdGEgaWYgaXQgaXMgZnVydGhlciB0aGFuIFFVRVVFX01BWF9CWVRFUyAocXVldWUpIC0KCSAgY3VyX2xldmVsLmJ5dGVzIGF3YXkuIFRoaXMgc2hvdWxkIGF2b2lkIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSByaW5nCgkgIGJ1ZmZlciBpcyBmdWxsIGJ1dCB0aGUgZGF0YSBvZmZzZXQgZnJvbSB3aGljaCB3ZSBzaGFsbCByZWFkIGlzIG5vdCBpbgoJICB0aGUgcmluZyBidWZmZXIuCgkgIC0gT25seSB1cGRhdGUgdGhlIG1heF9yZWFkaW5nX3BvcyB0byBhIGxvd2VyIHZhbHVlIHRvIHByb3RlY3QgZGF0YSB3aGVuCgkgIG5lY2Vzc2FyeQoJICAtIEFsd2F5cyBzaWduYWwgYW4gQUREIGluIF9sb2NrZWRfZW5xdWV1ZSAoKSBzbyB0aGF0IGFuIEVPUyB1bmxvY2tzIHRoZQoJICByZWFkZXIKCSAgLSBNb3JlIHVzZWZ1bCBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDYtMjggMTc6NTA6MDYgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgZml4ZXMKCSAgT25lIG11c3Qgbm90IGFmZmVjdCB0aGUgdmFsdWVzIG9mIHRoZSBjdXJyZW50IHJhbmdlIGJhc2VkIG9uIGEgcmVhZAoJICByZXF1ZXN0IGJlZm9yZSB0aGUgY29ycmVjdCByYW5nZSBpcyBhY3RpdmF0ZWQuCgoyMDEwLTA2LTI1IDEyOjU4OjI3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBidWdzCgkgIHVwZGF0ZV9idWZmZXJpbmcgKCkgbmVlZHMgdG8gYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgd2Ugd3JpdGUgdG8gdGhlIHJpbmcKCSAgYnVmZmVyIHNvIHRoYXQgYXBwbGljYXRpb25zIGRvbid0IGdldCBzdHVjayB3YWl0aW5nIGZvciBhIDEwMCUgYnVmZmVyZWQKCSAgbWVzc2FnZSB3aGlsZSBxdWV1ZTIgaXMgd2FpdGluZyBmb3Igc3BhY2UKCSAgX2NyZWF0ZV93cml0ZSAoKSBtdXN0IG9ubHkgYmUgY2FsbGVkIGZvciB0ZW1wIGZpbGUvcmluZyBidWZmZXIgY2FzZXMKCjIwMTAtMDYtMTggMTc6NDM6NDAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZXh0ZW5kIHJpbmcgYnVmZmVyIHRvIHN1cHBvcnQgcmFtIG1vZGUKCjIwMTAtMDYtMTggMTQ6MzY6MzMgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbWVyZ2Ugd3JpdGUgYnVmZmVyIGZ1bmN0aW9ucyBhbmQgZml4IGJ1Z3MKCSAgQ2FjaGVkIGRhdGEgY291bGQgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIHNvIGl0IGlzIG5vdyBwcm90ZWN0ZWQgdW50aWwKCSAgaXQgaXMgcmVhZC4gU2ltaWxhcmx5IGRhdGEgd2FzIG92ZXJyZWFkIGFzIF9oYXZlX2RhdGEgKCkgd2FzIGFsd2F5cwoJICBsb29raW5nIGZvciB0aGUgb3JpZ2luYWxseSByZXF1ZXN0ZWQgZGF0YSBldmVuIGlmIHBhcnQgb2YgaXQgaGFkIGJlZW4KCSAgcmVhZCBhbHJlYWR5LgoKMjAxMC0wNi0xNyAxMDoxODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc21hbGwgY2xlYW51cAoKMjAxMC0wNi0xNiAxODoyNTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cCB3cml0ZV90b19yaW5nX2J1ZmZlcgoJICBVc2UgY3VyX2xldmVsLmJ5dGVzIHRvIHNlZSBob3cgbXVjaCBzcGFjZSBpcyBmcmVlIGluIHRoZSByaW5nYnVmZmVyLgoJICBTaW1wbHlmeSB0aGUgd3JpdGUgZnVuY3Rpb24sIGF2b2lkIHRha2luZyBzdWJidWZmZXJzLCBtb3ZlIHdhaXRpbmcgZm9yIGZyZWUKCSAgc3BhY2UgaW4gb25lIHNwb3QsIHVzZSBzaW1wbHkgY291bnRlciB0byB3cml0ZSBkYXRhIG9mIGEgYnVmZmVyLgoKMjAxMC0wNi0xNiAxNzowMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgQWRkIGEgbWFjcm8gdG8gZ2V0IHRoZSBtYXggc2l6ZSBvZiB0aGUgcXVldWUgaW4gYnl0ZXMsIHdoaWNoIGRlcGVuZHMgb24gdGhlCgkgIG1heF9sZXZlbC5ieXRlcyBhbmQgdGhlIHJpbmdfYnVmZmVyX21heF9zaXplLgoJICBTb21lIGNsZWFudXBzLgoKMjAxMC0wNi0xNiAxNjoyMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNi0xNiAxNjoxMzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgTWFrZSBzdXJlIHRoZSBjdXJfbGV2ZWwuYnl0ZXMgaXMgdXBkYXRlZCBhZnRlciB3ZSBjaGFuZ2UgdGhlIHdyaXRpbmdfcG9zIG9yIHRoZQoJICBtYXhfcmVhZGluZ19wb3MuCgkgIFJlZmFjdG9yIGdldF9mcmVlX3NwYWNlKCkKCSAgQWRkIHNvbWUgY29tbWVudHMKCjIwMTAtMDYtMTYgMTI6MDA6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB1bm5lZWRlZCBzaWduYWwKCjIwMTAtMDYtMTYgMTI6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXJpbmcgbW9kZSBjb3JyZWN0bHkKCjIwMTAtMDYtMTYgMTE6MjA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjYWxjdWxhdGlvbiBvZiBhdmFpbGFibGUgcmluZ2J1ZmZlciBkYXRhCgoyMDEwLTA2LTE2IDExOjExOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWFkaW5nX3BvcyBpcyB1cGRhdGVkIGluIGNyZWF0ZV9yZWFkIG9ubHkKCjIwMTAtMDYtMTYgMTE6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yIGFuZCBhZGQgZGVidWcKCjIwMTAtMDYtMTYgMTE6MTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmbHVzaGluZwoKMjAxMC0wNi0xNiAxMTowOToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGRlYnVnCgoyMDEwLTA2LTE1IDE3OjI2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB0cnkgdG8gd3JpdGUgMCBieXRlcwoKMjAxMC0wNi0xNSAxNjoxMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjsgY2xlYW51cHMgYW5kIGZpeGVzCgkgIE1ha2UgYSBtYWNybyBmb3Igc29tZSBmcmVxdWVudCBjaGVja3MKCSAgRW1pdCB0aGUgcmVtb3ZlZCBzaWduYWwgaW4gYWxsIGNhc2VzIHdoZW4gd2UgcmVtb3ZlIHNvbWV0aGluZwoKMjAxMC0wNi0xNSAxMjozNzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3JpbmdzCgkgIENoZWNrIGFuZCBoYW5kbGUgc2VlayBlcnJvcnMKCSAgUmVmYWN0b3IgdGhlIHdhaXRfZnJlZV9zcGFjZSBmdW5jdGlvbi4KCjIwMTAtMDYtMTYgMTI6MjQ6MjUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3AgdG8gY29udHJvbCByaW5nIGJ1ZmZlcgoKMjAxMC0wNi0wNiAwOTozMDo0OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDbGVhbiB1cCBhbmQgaW1wcm92ZSBjb2RlCgoyMDEwLTA1LTI2IDA0OjExOjQ4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBjb25kaXRpb25zIHdoZXJlIGJlaGF2aW91ciBzaG91bGQgZGlmZmVyIGJldHdlZW4gcmluZyBidWZmZXIgYW5kIHRlbXAgZmlsZQoKMjAxMC0wNS0xOSAxNjowNDoxNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdXNlZnVsIGRlYnVnIG1lc3NhZ2VzIGFuZCBmaXggYW4gYXNzdW1wdGlvbiBpbiBfaGF2ZV9kYXRhICgpCgoyMDEwLTA1LTE4IDE3OjQyOjA3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXJpbmcgcGVyY2VudGFnZSBpbiByaW5nIGJ1ZmZlciBtb2RlCgoyMDEwLTA1LTE4IDE3OjIxOjQwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHZhcmlvdXMgcmluZyBidWZmZXIgZml4ZXMKCSAgLSBtYWtlIF9nZXRfcmFuZ2UgKCkgZW1pdCB0aGUgZGVsIHNpZ25hbCBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHJlYWQKCSAgLSB1c2UgZG8ge30gd2hpbGUgKCk7IGZvciB3YWl0IGNvZGUgYXMgcXVldWUgaXMgbG9ja2VkIGFuZCBubyBkYXRhIGNvdWxkCgkgIGhhdmUgYmVlbiByZWFkIGluIHRoZSBtZWFuIHRpbWUgc28gaXQgbWFrZXMgbm8gc2Vuc2UgdG8gY2hlY2sgYmVmb3JlCgkgIHdhaXRpbmcKCSAgLSBtYWtlIF9pc19maWxsZWQgKCkgbW9yZSByb2J1c3QKCjIwMTAtMDUtMDcgMDk6MzA6NDQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgd29yayBpbiBwcm9ncmVzcwoKMjAxMC0wNS0wNSAxMDoyMTo1NSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXJpbmctYnVmZmVyIGFuZCByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0aWVzCgoyMDEwLTA2LTE1IDA4OjU5OjExICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBTVC1Fcmljc3NvbiBjb3B5cmlnaHQKCjIwMTAtMDgtMTMgMTc6MjM6MzEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2U4ZGIxZCB0byBlYzYwMjE3CgoyMDEwLTA4LTEyIDIyOjA4OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB4cmVmcyBnbGliIHN5bWJvbCBpbiBkb2NzCgoyMDEwLTA4LTEyIDE2OjA1OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgZ3N0Y29sbGVjdHBhZHM6IEZpeCBkb2NzIGFib3V0IEdzdENvbGxlY3REYXRhIGxpc3QKCSAgQWRkIHRvIHRoZSBkb2NzIHRoZSBmYWN0IHRoYXQgaXMgb25seSBzYWZlIHRvIGl0ZXJhdGUKCSAgR3N0Q29sbGVjdFBhZCdzIGRhdGEgbGlzdCBpbnNpZGUgdGhlIGNvbGxlY3RlZCBjYWxsYmFjay4KCSAgRml4ZXMgIzYxMDM2NgoKMjAxMC0wOC0xMCAxMDo1NjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJkMjA1NGIgdG8gM2U4ZGIxZAoKMjAxMC0wOC0wNCAxMToyNDoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9OQU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgcmVwcmVzZW50aW5nIGFwcGxpY2F0aW9uIHVzZWQgdG8gY3JlYXRlCgkgIGEgbWVkaWEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjAyNwoKMjAxMC0wOC0wOCAxNzo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBJbml0aWFsaXplIHRoZSBHVHlwZSBjYWNoZSBmb3IgdGhlIGJ1ZmZlcmxpc3QgYWdhaW4KCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIHdpdGggbGFzdCBjb21taXQuCgoyMDEwLTA4LTA2IDE5OjM4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IERvbid0IGNoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MKCSAgR3N0TWluaU9iamVjdDo6ZmluYWxpemUgZG9lcyBub3RoaW5nIGFuZCB0aGlzIHByZXZlbnRzIGEKCSAgcnVudGltZS10eXBlLWNoZWNrIGNhc3QgYW5kIGZ1bmN0aW9uIGNhbGwgcGVyIGJ1ZmZlciBsaXN0LgoKMjAxMC0wNy0yMCAwOToyMzoxMSAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IG1ha2UgX2dldF90eXBlKCkgaW4gZ3N0LyogdGhyZWFkIHNhZmUKCSAgVGhpcyBpcyBub3QgcmVhbGx5IG5lY2Vzc2FyeSBoZXJlIGJlY2F1c2UgZXZlcnl0aGluZyBpcwoJICBpbml0aWFsaXplZCBmcm9tIGdzdF9pbml0KCkgYWxyZWFkeSBidXQgdXNpbmcgR19ERUZJTkVfVFlQRSgpCgkgIHJlbW92ZXMgc29tZSBjb3B5JnBhc3RlIGJvaWxlcnBsYXRlIGNvZGUuCgoyMDEwLTA4LTA2IDE5OjM0OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHBsdWdpbnM6IEFkZCBkZWNsYXJhdGlvbnMgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDctMjAgMDk6MjM6NTQgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBwbHVnaW5zOiBNYWtlICpfZ2V0X3R5cGUoKSBpbiBwbHVnaW5zLyogdGhyZWFkIHNhZmUKCSAgSXQncyBub3QgcmVhbGx5IG5lZWRlZCBoZXJlIGJ1dCB1c2luZyBHX0RFRklORV9UWVBFKCkgcmVkdWNlcwoJICBzb21lIGNvcHkmcGFzdGUgYm9pbGVycGxhdGUgY29kZS4KCjIwMTAtMDgtMDYgMTg6NDM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBjaGFuZ2luZyBpdAoKMjAxMC0wOC0wNSAxMzo1NjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDA0ZDAzIHRvIGJkMjA1NGIKCjIwMTAtMDgtMDUgMTA6MDQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBzcGVlZCB1cCBwYWQgbGlua2luZyB1dGlsaXR5IGZ1bmN0aW9ucyBieSBub3QgdHJ5aW5nIHBhZHMgdGhhdCB3aWxsIG5ldmVyIHdvcmsKCSAgSW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCksIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBjb21wYXRpYmxlIHBhZCBvbiBhbgoJICBlbGVtZW50IGZvciBhIGdpdmVuIHBhZCwgdGhlcmUncyBubyBwb2ludCBpbiBjaGVja2luZyB0aGUgZWxlbWVudCdzIHNpbmsgcGFkcwoJICBpZiB0aGUgcGFkIHRvIGxpbmsgaXMgYSBzaW5rIHBhZCBhcyB3ZWxsLCBvciB0aGUgZWxlbWVudCdzIHNvdXJjZSBwYWRzIGlmIHRoZQoJICBnaXZlbiBwYWQgaXMgYSBzb3VyY2UgcGFkIGFscmVhZHksIHNpbmNlIHRob3NlIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gbGluawoJICBhbnl3YXkuIFNob3VsZCBzcGVlZCB1cCBsaW5raW5nIHVzaW5nIHRoZSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYSBsaXR0bGUgYml0LAoJICBvciBhdCBsZWFzdCByZWR1Y2UgZGVidWcgbG9nIG91dHB1dC4KCjIwMTAtMDgtMDUgMTA6MzI6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHRha2UgdGhlIHRpbWVzdGFtcCBhIHRpY2sgbGF0ZXIKCSAgVGhlIGxvZ2dpbmcgaXMgbm90IGFuIGF0b21pYyBvcGVyYXRpb24gYW5kIGJlY2F1c2Ugb2YgdGhlIG11bHRpLXRocmVhZGluZyB3ZSBlbmQKCSAgdXAgd2l0aCBvdXQtb2Ytb3JkZXIgbG9nIGxpbmVzLiBUb29scyB0aGF0IHByZXNlbnQgdGhlIGxvZy1maWxlIHNob3VsZCBwcm9iYWJseQoJICByZXNvcnQgdGhlIGxpbmVzLiBUaGlzIGNoYW5nZSBqdXN0IHRha2VzIHRoZSB0aW1lc3RhbXAgYSBiaXQgY2xvc2VyIHRvIHRoZQoJICBhY3R1YWwgbG9nZ2luZy4KCjIwMTAtMDgtMDUgMDk6MzY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBkZWJ1ZzogbG9nZ2luZyBpbXByb3ZlbWVudHMKCSAgVXNlIHRoZSBldmVudCBzZXJpYWxpc2F0aW9uLiBMb2cgZm9ybWF0cyBuYW1lIGluc3RlYWQgb2YgbnVtYmVyLgoKMjAxMC0wNy0xNSAxNTo0NjoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGRvbid0IHVzZSBjKysga2V5d29yZHMgYXMgdmFyaWFibGUgbmFtZXMKCjIwMTAtMDctMTUgMTE6Mzc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBsb2cgc2VlayBldmVudCBkZXRhaWxzCgoyMDEwLTA3LTEyIDEwOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZ3N0LWNvbnRyb2xsZXIgY2hhcHRlcgoJICBUaGUgZG9jcyB3ZXJlIHN0aWxsIGRlc2NyaWJpbmcgZGVwcmVjYXRlZCBhcGkuIFVwZGF0ZSBpdCB0byB0ZWxsIGFib3V0CgkgIGNvbnRyb2wtY291cmNlcy4KCjIwMTAtMDctMDkgMTU6NTg6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBldmVudGxvb3AgaW4gZXhhbXBsZXMKCSAgRG9uJ3QgbGVhayB0aGUgYnVzLiBEb24ndCBwYXJzZSBtZXNzYWdlcyB3aXRoIHRoZSBtZXRob2QgZm9yIGVycm9ycyAodHJpZ2dlcnMKCSAgZ29iamVjdCB3YXJuaW5nKS4KCjIwMTAtMDctMDggMTQ6MDg6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBoYW5kbGUgZXJyb3JzIGZyb20gdGhlIHBpcGVsaW5lCgkgIENhdGNoIGVycm9ycyBhbmQgd2FybmluZ3Mgb24gdGhlIGJ1cy4gVGhpcyBmaXhlcyBoYW5naW5nIHBpcGVsaW5lcyBpbiB0aGUgY2FzZQoJICBvZiBidWdzIGVsc2V3aGVyZS4gQWxzbyBwcmludCBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgdG8gZ2l2ZSBtb3JlIGRldGFpbCBvbiB0aGUgcHJvZ3Jlc3MuCgoyMDEwLTA3LTA2IDE4OjIwOjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogY2xlYW51cCBsYXN0IGNoYW5nZSBpbiBjYXBzbmVnbyBiZW5jaG1hcmsKCSAgQSBwYWQgbmFtZSBpcyBub3QgYSBmYWN0b3J5IG5hbWUuCgoyMDEwLTA3LTA2IDE0OjI5OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZG9jczogbW9yZSBkb2NzIGZvciBnc3RfcGFyc2VfbGF1bmNoIGFuZCBjbwoJICBUZWxsIGFib3V0IGxpbWl0ZWQgcmV1c2FiaWxpdHkgb2Ygc29tZSBwYXJzZWQgcGlwZWxpbmVzLgoKMjAxMC0wNy0wNSAxNjozMjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogcGFkIGluZm8gb3V0cHV0IGltcHJvdmVtZW50cwoJICBEb24ndCBwcmludCBlbXB0eSBxdWVyeSB0eXBlcy4gQWxzbyBwcmludCBjYXBzLXZtZXRob2RzLgoKMjAxMC0wNy0wNiAxNjo0NzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGxvZyBlbGVtZW50OnBhZCBuYW1lcyB3aXRoIGNhcHMKCjIwMTAtMDYtMzAgMTE6NDY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYmV0dGVyIGVycm9yIGxvZ2dpbmcgaW4gbGlua19wYWRzX2ZpbHRlcmVkCgoyMDEwLTA2LTI0IDEwOjAwOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdHM6IGFkZCBjb21tZW50cyB0ZWxsaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSBhYmJyZXZpYXRpb25zCgoyMDEwLTA3LTA1IDEyOjE5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgc29tZSBjYXBzIG1hbmlwdWxhdGlvbgoJICBBZnRlciB0aGUgaW50ZXJzZWN0IHdlIGhhdmUgd3JpdGFibGUgY2Fwcy4gQ29weSB0aGUgdGVtcGxhdGUgY2FwcyBzbyB0aGF0IGFsc28KCSAgdGhlcmUgd2UgaGF2ZSB3cml0YWJsZSBjYXBzLgoKMjAxMC0wOC0wNSAwMTowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGFkZCBiYXNpYyB1bml0IHRlc3QgZm9yIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDUgMDE6MDY6NTcgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogTWFrZSBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKSByZXR1cm4gZW1wdHkgY2FwcyBpZiBpdCdzIHdoYXQgdGhlIG90aGVyIHNpZGUgaGFzCgkgIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpIHdvdWxkIHJldHVybiB0aGUgcGFkIHRlbXBsYXRlIGNhcHMgaWYgdGhlIG90aGVyIHNpZGUKCSAgcmV0dXJuZWQgZW1wdHkgY2FwcyBvciBpZiB0aGUgaW50ZXJzZWN0aW9uIG9mIGFsbCB0aGUgY2FwcyBvbiB0aGUgb3RoZXIgc2lkZQoJICB3YXMgZW1wdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDQgMTk6MTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBJU08gQzg5IG9yIEM5OSBhbmQgd2hpY2ggcGFyYW1ldGVycyBhcmUgcmVxdWlyZWQKCSAgVGhpcyBmaXJzdCBjaGVja3Mgd2hhdCBpcyByZXF1aXJlZCBmb3IgSVNPIEM5OSBzdXBwb3J0IGFuZCBzZXRzIHRoZSByZWxldmFudAoJICBjb21waWxlciBwYXJhbWV0ZXJzIGFuZCBpZiBubyBDOTkgY29tcGlsZXIgaXMgZm91bmQsIGl0IGNoZWNrcyBmb3IgYQoJICBDODkgY29tcGlsZXIuIFRoaXMgZW5hYmxlcyB1cyB0byBjaGVjayBmb3IgYW5kIHVzZSBDODkvQzk5IGZ1bmN0aW9ucwoJICB0aGF0IGdjYyBoaWRlcyBmcm9tIHVzIHdpdGhvdXQgdGhlIGNvcnJlY3QgY29tcGlsZXIgcGFyYW1ldGVycy4KCjIwMTAtMDgtMDQgMTM6NDc6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IEZpeCBkb2NzCgkgIEZpeCB0eXBvIGluIGRvY3MgZm9yIHRoZSB1bnNpZ25lZCBwZWVrIGZ1bmN0aW9ucwoKMjAxMC0wNy0wNSAxMDowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgXG4gZnJvbSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEwLTA4LTAzIDExOjM3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBidWlsZCB3aXRoIGd0ay1kb2MgZnJvbSBnaXQKCSAgRm9yIHNvbWUgcmVhc29uIHRoZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9uIEdTVF9DQVRfTEVWRUxfTE9HX3ZhbGlzdCBpcwoJICBub3cgcGlja2VkIHVwLCB3aGljaCB0aGVuIGJyZWFrcyB0aGUgYnVpbGQgYmVjYXVzZSBpdCdzIG5vdCBkb2N1bWVudGVkLAoJICBzbyBhZGQgaXQgdG8gdGhlIHNlY3Rpb25zIGZpbGUuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPi4KCSAgRml4ZXMgIzYyNTg2Mi4KCjIwMTAtMDctMTUgMjM6MDU6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhZGQgY29tbWVudCBhbmQgbW9yZSBsb2dnaW5nCgoyMDEwLTA3LTI5IDE3OjI3OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG93bmxvYWQgbW9kZTsgcHJldmVudCByYW5nZSBjb3JydXB0aW9uIGR1ZSB0byByYWNlCgkgIEN1cnJlbnQgcmFuZ2Ugd2FzIGJlaW5nIHVwZGF0ZWQgaW4gdGhlIHRocmVhZCBwZXJmb3JtaW5nIHNlZWssIGJ1dCBhcwoJICBubyBsb2NrcyB3ZXJlIGtlcHQgZm9yIGEgc2hvcnQgc2VjdGlvbiwgZGF0YSBmbG93IGNvdWxkIHJlc3VtZSBiZWZvcmUKCSAgY3VycmVudCByYW5nZSB1cGRhdGVkLCBzbyBkYXRhIGZvciB0aGUgbmV3IHJhbmdlIHdvdWxkIGJlIGFjY2VwdGVkIGFzCgkgIGZyb20gdGhlIHByZXZpb3VzIHJhbmdlLgoJICBSYXRoZXIsIHJhbmdlIHNob3VsZCBiZSB1cGRhdGVkIGluIHNlcmlhbGl6ZWQgbWFubmVyIGJhc2VkIG9uCgkgIG5ld3NlZ21lbnQgZXZlbnQuCgoyMDEwLTA1LTIyIDE2OjMzOjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybSBmaXggZm9yIHVwc3RyZWFtIGNhcHMtcmVuZWdvdGlhdGlvbgoJICBJZiBpbml0aWFsbHkgcGFzcy10aHJvdWdoIGNhcHMgYXJlIG5lZ290aWF0ZWQgYmV0d2VlbiBhIHRyYW5zZm9ybSBlbGVtZW50J3MKCSAgc2luayBhbmQgc3JjIHBhZHMsIGJ1dCB0aGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBkaWZmZXJlbnQgY2FwcwoJICBvbiBhIGJ1ZmZlciBmcm9tIHBhZF9hbGxvYygpLCBiYXNldHJhbnNmb3JtIGdldHMgc3R1Y2sgd2l0aCBwcm94eV9hbGxvYz1UUlVFCgkgIGV2ZW4gdGhvdWdoIHRoZSB1cHN0cmVhbSBwZWVyIGRvZXNuJ3QgYWNjZXB0IHRoZSBjYXBzLCBjYXVzaW5nCgkgIGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcygpIHRvIGJlIGNhbGxlZCBvbiBlYWNoIGJ1ZmZlciBpbiBfYnVmZmVyX2FsbG9jKCk6CgkgIGlmICghZ3N0X2NhcHNfaXNfZXF1YWwgKG5ld2NhcHMsIGNhcHMpKSB7CgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAiY2FwcyBhcmUgbmV3Iik7CgkgIC8qIHdlIGhhdmUgbmV3IGNhcHMsIHNlZSBpZiB3ZSBjYW4gcHJveHkgZG93bnN0cmVhbSAqLwoJICA+PiAgICBpZiAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzIChwYWQsIG5ld2NhcHMpKSB7CgkgIC8qIHBlZXIgYWNjZXB0cyB0aGUgY2FwcywgcmV0dXJuIGEgYnVmZmVyIGluIHRoaXMgZm9ybWF0ICovCgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAicGVlciBhY2NlcHRlZCBuZXcgY2FwcyIpOwoJICB3aGljaCBpcyB0YWtpbmcgfjQwbXMvZnJhbWUuCgkgIFRoaXMgcGF0Y2ggZG9lcyB0d28gdGhpbmdzLiAgKDEpIGlmIHRoZSBidWZmZXIgcmV0dXJuZWQgZnJvbSBwYWRfYWxsb2MoKSBoYXMKCSAgbmV3IGNhcHMsIHRyaWdnZXIgdGhlIGRlY2lzaW9uIHdoZXRoZXIgdG8gcHJveHkgdGhlIGJ1ZmZlci1hbGxvYyB0byBiZQoJICByZXZpc2l0ZWQsIGFuZCAoMikgZGlzYWJsZSBwcm94eSBpZiBwZWVyIGRvZXMgbm90IGFjY2VwdCBuZXcgY2Fwcy4gIChUaGUgZmlyc3QKCSAgcGFydCBtYXkgbm90IGJlIHN0cmljdGx5IG5lZWRlZCwgYnV0IHNlZW1lZCBsaWtlIGEgZ29vZCBpZGVhLikKCSAgTm90ZSB0aGF0IHRoaXMgaXNzdWUgd291bGQgbm90IGFyaXNlIGV4Y2VwdCBpbiBjYXNlIG9mIGRvd25zdHJlYW0gZWxlbWVudHMKCSAgd2hvIGhhdmUgb24gdGhlaXIgdGVtcGxhdGUtY2Fwcywgc29tZSB0aGF0IHdvdWxkIGJlIHN1aXRhYmxlIGZvciBwYXNzLXRocm91Z2gsCgkgIGJ1dCBhdCBydW50aW1lIHBpY2sgbW9yZSByZXN0cmljdGl2ZSBjYXBzIChmb3IgZXgsIGFmdGVyIHF1ZXJ5aW5nIGEgZHJpdmVyIGZvcgoJICB3aGF0IGZvcm1hdHMgaXQgYWN0dWFsbHkgc3VwcG9ydHMpLgoKMjAxMC0wNy0yNyAxNDozMDo1MSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsYXRpb24gb24gd2luZG93cwoJICBGaXggbWlzbWF0Y2hlZCBicmFja2V0cyAoIzYyNTI5NSkuCgoyMDEwLTA3LTI3IDA3OjIxOjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGxvY2FsdGltZSB1c2FnZQoJICBsb2NhbHRpbWUgb25seSB0YWtlcyBvbmUgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGEgc3RhdGljYWxseQoJICBhbGxvY2F0ZWQgdG0gc3RydWN0LiBVc2UgaXQgY29ycmVjdGx5LgoJICBGaXhlcyAjNjI1MzY4CgoyMDEwLTAzLTI5IDE4OjA1OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogVHJ5IHN1Z2dlc3RpbmcgY2FwcyBvbiBiYWQgY2FwcyBwYWRfYWxsb2MKCSAgV2hlbiBiYXNldHJhbnNmb3JtIHJlY2VpdmVkIGFuIHVuc3VwcG9ydGVkIGNhcHMgb24gcGFkX2FsbG9jCgkgIGl0IGp1c3QgcmV0dXJuZWQgbm90LW5lZ290aWF0ZWQuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgcXVlcnkKCSAgdGhlIGFsbG93ZWQgY2FwcyBiZXR3ZWVuIGhpcyBzaW5rcGFkIGFuZCB1cHN0cmVhbSdzIHNyY3BhZAoJICB0byBmaW5kIGEgY2FwcyB0byBzdWdnZXN0LgoJICBUaGlzIGhhcHBlbnMgd2hlbiBkaW5hbWljYWxseSBzd2l0Y2hpbmcgcGlwZWxpbmUgZWxlbWVudHMKCSAgYW5kIHVwc3RyZWFtIHBhZF9hbGxvY3Mgd2l0aCB0aGUgcHJldmlvdXMgY2FwcyB0aGF0IHdhcwoJICBiZWluZyB1c2VkLgoJICBGaXhlcyAjNjE0Mjk2CgoyMDEwLTA3LTI2IDE4OjUzOjU3ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZsdXNoIGFnYWluIGFmdGVyIGV2ZXJ5IGxpbmUgb2YgZGVidWcgb3V0cHV0CgkgIGdfcHJpbnRlcnIoKSB1c2VkIHRvIGRvIHRoaXMgZm9yIHVzLiBBbHNvIHVzZSBsaWJjJ3MgZnByaW50ZigpIGZ1bmN0aW9ucywKCSAgdG8gbWFrZSBzdXJlIHRoZSBzdGRlcnIgcG9pbnRlciB3ZSB1c2UgaXMgYWN0dWFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZQoJICBsaWJjIGxpbmtlZCBhZ2FpbnN0IGJ5IEdTdHJlYW1lciAod2hpY2ggYXBwYXJlbnRseSBtYXkgbm90IGFsd2F5cyBiZSB0aGUKCSAgc2FtZSBhcyB3aGF0IEdMaWIgaXMgbGlua2VkIGFnYWluc3Qgb24gd2luZG93cyksIGFuZCB3ZSBkb24ndCBuZWVkIHRoZQoJICBmdW5jdGlvbmFsaXR5IGVuc3VyZWQgYnkgZ19mcHJpbnRmKCkuCgkgIEZpeGVzICM2MjUyOTUuCgoyMDEwLTA3LTI2IDE4OjUzOjM1ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTIzIDExOjMxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUKCSAgQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUgZmllbGRzIGluIGdzdHZhbHVlIHRlc3RzCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjMgMTE6MzA6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RzdHJ1Y3R1cmU6IEFkZHMgZGF0ZXRpbWUgZ2V0dGVyIGZ1bmN0aW9uCgkgIEFkZHMgZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjEgMjM6NDI6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfREFURV9USU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyB0aGF0IHJlcHJlc2VudHMgYSBkYXRlIGFuZCB0aW1lIGEgbWVkaWEgd2FzCgkgIGNyZWF0ZWQKCSAgQVBJOiBHU1RfVEFHX0RBVEVfVElNRQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTIxIDIyOjA4OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBBZGQgZGF0ZXRpbWUgZ2V0IGZ1bmN0aW9ucwoJICBBZGRzIF9kYXRlX3RpbWVfZ2V0IGFuZCBfZGF0ZV90aW1lX2dldF9pbmRleCBmdW5jdGlvbnMgdG8KCSAgdGFnbGlzdC4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfdGltZQoJICBBUEk6IGdzdF90YWdfbGlzdF9nZXRfZGF0ZV90aW1lX2luZGV4CgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjEgMjI6MDQ6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGRzIGRhdGV0aW1lIGZ1bmN0aW9ucwoJICBBZGRzIGEgZGF0ZXRpbWUgZnVuY3Rpb25zIHRvIGdzdHZhbHVlCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMTYgMTQ6MDk6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZGF0ZXRpbWU6IEFkZHMgR3N0RGF0ZVRpbWUKCSAgQWRkcyBHc3REYXRlVGltZSB0byByZXByZXNlbnQgZGF0ZXMgKyB0aW1lICsgdGltZXpvbmUKCSAgaW5mb3JtYXRpb24uCgkgIFRlc3RzIGluY2x1ZGVkLgoJICBBUEk6IEdzdERhdGVUaW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfZGF5CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbW9udGgKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF95ZWFyCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfaG91cgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21pY3Jvc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbWludXRlCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfdGltZV96b25lX29mZnNldAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbG9jYWxfdGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X25vd19sb2NhbF90aW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbm93X3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfcmVmCgkgIEFQSTogZ3N0X2RhdGVfdGltZV91bnJlZgoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTI2IDE0OjU5OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggdXNhZ2Ugb2YgZ2xpYl9jaGVja192ZXJzaW9uKCkKCSAgSXQgcmV0dXJucyBOVUxMIGlmIHRoZSBpbnN0YWxsZWQgR0xpYiB2ZXJzaW9uIGlzIGFzIGxlYXN0IGFzCgkgIG5ldyBhcyB0aGUgcmVxdWlyZWQgdmVyc2lvbiBhbmQgc29tZSBleHBsYW5hdG9yeSBzdHJpbmcgb3RoZXJ3aXNlLgoKMjAxMC0wNy0yMyAyMDo0NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogbWFrZSBnc3QtaW5zcGVjdCBwcmludCB0aGUgcmVsZWFzZSBkYXRlIHRpbWUgc3RhbXAKCjIwMTAtMDYtMjEgMTc6MzQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIG5ldyBBR19HU1RfU0VUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRV9XSVRIX05BTk8gbWFjcm8KCjIwMTAtMDYtMjAgMDE6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBiaW5hcnlyZWdpc3RyeTogc2F2ZSBhbmQgbG9hZCByZWxlYXNlIGRhdGUgdGltZSBpbiBHc3RQbHVnaW5EZXNjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDYtMjAgMDA6MzM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgcmVsZWFzZSBkYXRldGltZSBmaWVsZCB0byBHc3RQbHVnaW5EZXNjIGFuZCBzZXQgaXQgaWYgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBpcyBkZWZpbmVkCgkgIFRoaXMgaXMgYSBzdHJpbmcgZGVzY3JpYmluZyBhIGRhdGUgYW5kL29yIGRhdGUvdGltZSBpbiBhIHNpbXBsZSBzdWJzZXQgb2YKCSAgdGhlIElTTy04NjAxIGZvcm1hdCwgbmFtZWx5IGVpdGhlciAiWVlZWS1NTS1ERCIgb3IgIllZWVktTU0tRERUSEg6TU1aIiAod2l0aAoJICAnVCcgdGhlIGRhdGUvdGltZSBzZXBhcmF0b3IgYW5kIHRoZSAnWicgaW5kaWNhdGluZyBVVEMpLgoJICBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgZmllbGQgaXMgdG8ga2VlcCB0cmFjayBvZiBwbHVnaW4gYW5kIGVsZW1lbnQgdmVyc2lvbnMKCSAgb24gYW4gYWJzb2x1dGUgdGltZWxpbmUsIHNvIGl0J3MgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHdoaWNoIG9uZSBpcyBuZXdlciB3aGVuCgkgIGNvbXBhcmluZyB0d28gZGF0ZSB0aW1lIG51bWJlcnMuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBleHByZXNzICdyZXBsYWNlcyctdHlwZQoJICByZWxhdGlvbnNoaXBzIGJldHdlZWVuIHBsdWdpbnMgYW5kIGVsZW1lbnQgZmFjdG9yaWVzIGluIGZ1dHVyZSwgZXZlbiBhY3Jvc3MKCSAgZGlmZmVyZW50IG1vZHVsZXMgYW5kIHBsdWdpbiBtZXJnZXMgb3Igc3BsaXRzIChzb3VyY2UgbW9kdWxlIHZlcnNpb24gbnVtYmVycwoJICBhcmVuJ3QgcGFydGljdWxhcmx5IHVzZWZ1bCBoZXJlLCBzaW5jZSB0aGV5IGNhbiBvbmx5IG1lYW5pbmdmdWxseSBiZSBjb21wYXJlZAoJICB3aXRoaW4gdGhlIHNhbWUgbW9kdWxlKS4gSXQgYWxzbyBhbGxvd3MgYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgdG8gcmVsaWFibHkKCSAgY2hlY2sgdGhhdCBhIHBsdWdpbiBpcyByZWNlbnQgZW5vdWdoIHdpdGhvdXQgbWFraW5nIGFzc3VtcHRpb25zIGFib3V0IG1vZHVsZXMKCSAgb3IgbW9kdWxlIHZlcnNpb25zLgoJICBXZSB1c2UgYSBzdHJpbmcgaGVyZSB0byBrZWVwIHRoaW5ncyBzaW1wbGUgYW5kIGNsZWFyLCBlc3AuIG9uIHRoZSBidWlsZCBzeXN0ZW0KCSAgc2lkZSBvZiB0aGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDctMjAgMDk6MjU6MjAgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBtYWtlICpfZ2V0X3R5cGUoKSBpbiB0ZXN0cyB0aHJlYWQgc2FmZQoJICBFdmVuIGlmIGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgaGVyZS4gU2VlICM2MjM0OTEuCgoyMDEwLTA2LTA0IDExOjI0OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdyaXRlIGRlYnVnZ2luZyBvdXRwdXQgdG8gZmlsZSBpZiBHU1RfREVCVUdfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQKCSAgVGhpcyBjaGFuZ2VzIGJlaGF2aW91ciBzbGlnaHRseSBpbiB0aGF0IHdlIG5vIGxvbmdlciBvdXRwdXQgdGhpbmdzCgkgIHZpYSBnX3ByaW50ZXJyKCksIHNvIGFueSBub24tc3RhbmRhcmQgZ2xpYiBwcmludGVyciBoYW5kbGVycyBhcmUgbm8KCSAgbG9uZ2VyIGNhbGxlZCB3aGVuIEdTVF9ERUJVRyBpcyBlbmFibGVkLiBIb3dldmVyLCB0aGlzIHNlZW1zIG5vdAoJICByZWFsbHkgZGVzaXJhYmxlIGluIG1vc3QgY2FzZXMgYW55d2F5LCBhbmQgdGhlIEdMaWIgZG9jcyBhbHNvIHNheQoJICB0aGF0IGxpYnJhcmllcyBzaG91bGQgbm90IHVzZSBnX3ByaW50ZXJyKCkgZm9yIGxvZ2dpbmcuCgkgIE90aGVyIHN0ZGVyciBvdXRwdXQgKGUuZy4gd2FybmluZ3MsIG9yIGFwcGxpY2F0aW9uIG1lc3NhZ2VzKSB3aWxsCgkgIG9mIGNvdXJzZSBub3QgYmUgY2FwdHVyZWQgaW4gdGhlIGxvZyBmaWxlIHRoaXMgd2F5LgoJICBHU1RfREVCVUdfRklMRT0tIHdpbGwgcmVkaXJlY3QgZGVidWcgb3V0cHV0IHRvIHN0ZG91dC4KCjIwMTAtMDctMjAgMjA6NDk6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQXNzdW1lIHBhZHMgYXJlIGNvbXBhdGlibGUgaWYgd2UgZG9uJ3QgaGF2ZSB0ZW1wbGF0ZXMKCSAgVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgaWYgd2UgaGFkIGEgcGFkIHRlbXBsYXRlIGNhcHMgb2YKCSAgR1NUX0NBUFNfQU5ZIG9uIGFueSBvZiB0aGUgcGFkcyAoaS5lLiB0aGUgYWN0dWFsIGNoZWNrIHdpbGwgYmUgZG9uZQoJICBkdXJpbmcgY2FwcyBuZWdvdGlhdGlvbikuCgoyMDEwLTA3LTE3IDIxOjI4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbGxvdyB0aGUgc3ViY2xhc3MgdG8gYWRkIG5ldyBmaWVsZHMgdG8gY2FwcyB3aGVuIGdldHRpbmcgbmV3IGNhcHMgZnJvbSBkb3duc3RyZWFtCgkgIFRoaXMgd2FzIGFscmVhZHkgZG9uZSBpbiBhbGwgb3RoZXIgY2FzZXMgd2hlcmUgbmV3IGNhcHMgYXJlIGhhbmRsZWQKCSAgZXhjZXB0IHVwc3RyZWFtIG5lZ290aWF0aW9uLgoKMjAxMC0wNy0xMiAxNDozOTowMCArMDIwMCAgTWljaGFlbCBCdW5rIDxidW5rQGlhdC51bmktbGVpcHppZy5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgYW5kIGFkZCBzb21lIG1pc3NpbmcgbGlua3MgaW4gdGhlIGFwcCBkZXYgbWFudWFsCgkgIEZpeGVzICM2MjQxNjQuCgoyMDEwLTA3LTEyIDE0OjIyOjUwICswMjAwICBNaWNoYWVsIEJ1bmsgPGJ1bmtAaWF0LnVuaS1sZWlwemlnLmRlPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgZG9jczogZml4IHR5cG8gb24gZ3N0LWluc3BlY3QgbWFuIHBhZ2UKCSAgU2VlICM2MjQxNjQuCgoyMDEwLTA3LTAzIDE1OjA4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBmaXggc29tZSBzaWxseSBsaXN0IGl0ZXJhdGlvbiBjb2RlCgkgIGdfbGlzdF9sZW5ndGgoKSBpcyBub3QgdGhlIGJlc3Qgd2F5IHRvIGNoZWNrIGlmIGEgbGlzdCBpcyBlbXB0eSBvciBub3QuCgoyMDEwLTA3LTE2IDE3OjUzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogdXNlIEdTdGF0QnVmIHVuY29uZGl0aW9uYWxseSBhbmQgYWRkIHR5cGVkZWYgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkgIE5vIG5lZWQgdG8gY2x1dHRlciB0aGUgY29kZSB3aXRoICNpZiAjZWxzZSAjZW5kaWYuCgkgIFNlZSAjNjIzODc1LgoKMjAxMC0wNy0xNiAxNzozMzozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBVc2UgYSBjb25zdCBHc3RTdHJ1Y3R1cmUgKiBhcyBwYXJhbWV0ZXIgZm9yIHNvbWUgbW9yZSBnc3Rfc3RydWN0dXJlX2dldCB2YXJpYW50cwoKMjAxMC0wNy0xNCAxOTo0Nzo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAiLWxhdW5jaDogZGlzYWJsZSBDTE9DS19MT1NUIG1lc3NhZ2UgaGFuZGxpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWY4ZWJhNjExYTYzZjQ1NzY2YzM4YzY0MDI4OGU0MmIyN2IxMGJkNC4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgbm93IChhbmQgaWYgbm90IHNob3VsZCBiZSBmaXhlZCkgYW5kIHRoZQoJICBjbG9jay1sb3N0IGhhbmRsaW5nIGlzIG5vdyBuZWVkZWQgZm9yIHBsYXliaW4yIGdhcGxlc3MgcGxheWJhY2suCgkgIFNlZSBidWcgIzU3OTEyNy4KCjIwMTAtMDctMDggMjE6MDQ6NTQgKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBGaXggY29tcGF0aWJpbGl0eSB3aXRoIEdMaWIgMi4yNSB3aGVuIHVzaW5nIE1TVkMKCSAgTmV3ZXIgR0xpYiB1c2VzIGEgbmV3IHR5cGUgZm9yIGdfc3RhdCgpIGFuZCBmcmllbmRzIHRvIGltcHJvdmUKCSAgV2luZG93cyBjb21wYXRpYmlsaXR5LiBPbiBQT1NJWCB0aGlzIGlzIGEgdHlwZWRlZiB0byBzdHJ1Y3Qgc3RhdC4KCSAgRml4ZXMgYnVnICM2MjM4NzUuCgoyMDEwLTA3LTA4IDA3OjQ4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogSWYgdGhlIGN1cnJlbnRseSB1c2VkIGNsb2NrIGdldHMgbG9zdCB1cGRhdGUgaXQgdGhlIG5leHQgdGltZSB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIHBsYXlpbmcKCSAgRml4ZXMgYnVnICM2MjM4MDYuCgoyMDEwLTA3LTA1IDE5OjMzOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZXR1cm4gdmFsdWVzIGluIHN0cmVhbSB0aW1lIGZvciB0aGUgUE9TSVRJT04gcXVlcnkKCSAgRml4ZXMgYnVnICM2MjM2MjIuCgoyMDEwLTA3LTA1IDE4OjU0OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBHc3RFbGVtZW50OjpnZXRfcXVlcnlfdHlwZXMoKQoKMjAxMC0wNy0wNiAxMDoxMzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IGFuc3dlciB0aGUgU0VHTUVOVCBxdWVyeSBpbiBwdWxsIG1vZGUKCSAgT3RoZXJ3aXNlIHRoZSBlbGVtZW50IGhhbmRsaW5nIHRoZSBzZWVrcyBzaG91bGQgYW5zd2VyIHRoaXMgcXVlcnkuCgkgIEZpeGVzIGJ1ZyAjNjIzNjIyLgoKMjAxMC0wNy0wNSAxMDozNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IFBPU0lUSU9OIHF1ZXJ5CgkgIEZpeGVzIGJ1ZyAjNjIzNTQxLgoKMjAxMC0wNi0yNSAxNjozMTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBEbyBub3QgY2FsbCBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgd2hlbiBjYXBzIGNoYW5nZQoJICBJbnN0ZWFkIGp1c3QgY2hlY2sgdGhhdCB0aGUgY2FwcyBpbnRlcnNlY3Qgd2l0aCB0aGUgcGFkIHRlbXBsYXRlLgoJICBUaGUgZWxlbWVudHMgc2hvdWxkIHByb3Blcmx5IGFjY2VwdC9yZWZ1c2UgdGhlIGNhcHMgaW4gc2V0Y2FwcygpLgoJICBTaGF2ZXMgb2ZmIGNhbGxpbmcgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYWNjZXB0Y2FwcyB3aGljaCBkb2VzCgkgIGFuIGV4cGVuc2l2ZSBnc3RfcGFkX2dldF9jYXBzKCkgKHNvIGlmIHlvdSBoYXZlIDUwIG9mIHRob3NlIGVsZW1lbnRzIGluCgkgIGEgcm93LCB5b3UnZCBiZSBkb2luZyBmYWN0b3JpYWwoNTApIGdzdF9wYWRfZ2V0X2NhcHMuLi4pLgoJICBEb2VzIG5vdCBicmVhayBhbnkgbW9kdWxlIHVuaXQgdGVzdCBhbmQgbW9zdCBhcHBzIHdvcmsgZmluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjc0MAoKMjAxMC0wNy0wOCAxNjoyNDoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogQWRkIG1vcmUgZGV0YWlscyBhYm91dCBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQKCjIwMTAtMDctMTYgMTE6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudC4KCj09PSByZWxlYXNlIDAuMTAuMzAgPT09CgoyMDEwLTA3LTE0IDIzOjU5OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMAoKMjAxMC0wNy0xNCAxNzo1ODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9kZS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNy0xNSAxMjowMToyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBjb21tYSBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IGVudW0gdmFsdWUKCSAgRml4ZXMgdGhlIGJ1aWxkIGZvciBjKysuCgoyMDEwLTA3LTExIDE5OjAwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgY2hlY2tzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWNlbnQgdGFnbGlzdCBtZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEgZml4CgkgIFNlZSAjNjI0MTEzLgoKMjAxMC0wNy0xMSAxODo1OTo1MyArMDEwMCAgRWR1YXJkbyBEb2JheSA8ZWR1ZG9iYXlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IG1lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIGZvciBtb3JlIHRoYW4gdHdvIHN0cmluZ3MKCSAgRml4ZXMgIzYyNDExMy4KCjIwMTAtMDctMDggMTM6NDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgbmV3IGJhc2VzaW5rIHVuaXQgdGVzdCBiaW5hcnkKCjIwMTAtMDctMDggMTM6NDM6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgLXAgc2hvcnRoYW5kIGZvciAtLW5vLXNpZ3Vzci1oYW5kbGVyCgkgIEl0J3Mgbm90IHJlYWxseSBuZWVkZWQsIGFuZCBkb2Vzbid0IG1hcCBhbnkgbG9uZ2VyIGFmdGVyIHRoZSBsb25nIG9wdGlvbgoJICBoYXMgYmVlbiByZW5hbWVkLgoKMjAxMC0wNy0wNiAxNTo0Nzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS40IHByZS1yZWxlYXNlCgkgIEFsc28gYnVtcCBsaWJ0b29sIHZlcnNpb25zIG5vdyAod2hpY2ggSSBtZWFudCB0byBkbyBmb3IgdGhlIGZpcnN0CgkgIHByZS1yZWxlYXNlIGJ1dCBmb3Jnb3QpLgoKMjAxMC0wNy0wNiAyMzo0NDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA3LTA2IDE2OjIxOjA1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGFkZCBhY2Nlc3NvcnMgZm9yIHRoZSBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXJfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfbGFzdF9idWZmZXJfZW5hYmxlZAoKMjAxMC0wNy0wNiAxMjoxODo0NSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4KCSAgQWRkIGEgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4gV2hlbiBmYWxzZSwgaXQgZGlzYWJsZXMgc3RvcmluZyB0aGUgbGFzdAoJICByZWNlaXZlZCBidWZmZXIgaW4gYmFzZXNpbms6Omxhc3QtYnVmZmVyLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gY2FzZXMgd2hlcmUKCSAgYnVmZmVycyBuZWVkIHRvIGJlIHJlbGVhc2VkIGFzYXAuCgkgIEFQSTogR3N0QmFzZVNpbms6OmVuYWJsZS1sYXN0LWJ1ZmZlcgoKMjAxMC0wNy0wNiAxMDo0ODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGNoZWNrczogcmV3cml0ZSBnc3R0YWdzZXR0ZXIgdGVzdCB0byB1c2UgZmV3ZXIgZ191c2xlZXAoKQoJICBTb21ldGhpbmcgYWJvdXQgdGhhdCBzZWVtcyB0byBpbnRlcmFjdCBiYWRseSB3aXRoIHNvbWUgc2NoZWR1bGVycywKCSAgc28gZG8gdGhpbmdzIGRpZmZlcmVudGx5LgoJICBGaXhlcyAjNjIzNDY5LgoKMjAxMC0wNy0wNiAxMDoxOTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgdG8gZG9jcwoJICBBUEk6IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsCgkgIFNlZSAjNjIzNTg5LgoKMjAxMC0wNy0wNiAxMDoyODoxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogSW1wcm92ZSBnc3RfdmFsdWVfe3NldHxnZXR9X2NhcHMgZG9jcwoKMjAxMC0wNy0wNiAxMDozNTowOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZXhwb3J0IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwKCjIwMTAtMDctMDYgMTA6MzE6MjUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiByZW1vdmUgQUJJIGNoZWNrcyBmb3IgR3N0Q2xvY2tFbnRyeS4KCjIwMTAtMDctMDUgMTg6NDU6NTUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGRvY3VtZW50IHRoYXQgR3N0Q2xvY2tFbnRyeSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbmEgb3BhcXVlIHN0cnVjdHVyZS4KCjIwMTAtMDctMDUgMTM6MTA6MDkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuCgkgIFVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwgaW4gZ3N0X2Nsb2NrX3NldF9tYXN0ZXIuCgkgIEFsc28gYWRkIHNvbWUgdGVzdHMuCgoyMDEwLTA3LTA1IDEzOjAxOjUzICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmVmY291bnRpbmcgYnVnIGluIGdzdF9jbG9ja19zZXRfbWFzdGVyLgoJICBNYWtlIHN1cmUgY2xvY2stPmNsb2NraWQgaXMgdW5yZWZmZWQgYmVmb3JlIGNsb2NrLT5tYXN0ZXIuCgkgIGdzdF9jbG9ja19pZF91bnNjaGVkdWxlIChjbG9jay0+Y2xvY2tpZCkgdHJpZXMgdG8gYWNjZXNzIGNsb2NrLT5tYXN0ZXIuIElmCgkgIGNsb2NrLT5tYXN0ZXIgaXMgdW5yZWZmZWQgYmVmb3JlIGFuZCBpdCdzIGRlYWxsb2NhdGVkLCBfdW5zY2hlZHVsZSBjb3VsZCBhY2Nlc3MKCSAgZnJlZSdkIG1lbW9yeS4KCjIwMTAtMDctMDUgMTI6NTY6NDAgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4KCSAgQWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuIEl0J3MgdGhlIHNhbWUgYXMgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMgYnV0CgkgIGFsbG93cyBwYXNzaW5nIGEgR0Rlc3Ryb3lOb3RpZnkgdG8gZGVzdHJveSB1c2VyX2RhdGEuCgoyMDEwLTA3LTA1IDE3OjUwOjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBhcGkgZG9jcyBmb3IgbmV3IEdzdFBhZExpbmtDaGVja3MgYW5kIGl0cyB1c2UKCjIwMTAtMDctMDUgMTI6MjE6NTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL1JFQURNRToKCSAgUkVBRE1FOiB1cGRhdGUgYWZ0ZXIgcmVtb3ZhbCBvZiAib2xkIiBkaXIuCgkgIFJlbW92ZSAib2xkIiBhbmQgYWRkIGEgbGluZSBhYm91dCAiZXhhbXBsZXMiLgoKMjAxMC0wNy0wNCAxNzozNDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9UT0RPOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvcGluZ3BvbmcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvcXVldWUzLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9xdWV1ZTQuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvUnVsZXM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hcHBfZml4YXRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jb21wYXRpYmlsaXR5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2VyYXRvc3RoZW5lcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLWNvbnZlcnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLW11bHRpcGx5LWFuZC16ZXJvLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NldHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdHJpbmctY29udmVyc2lvbnMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N0cnVjdHVyZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9jYXRlZ29yeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2NvbW1hbmRsaW5lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvb3V0cHV0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vZGxvcGVuX2dzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9zaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vUkVBRE1FOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9keW5hbWljLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3JlZ2lzdHJ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjJfcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luX3MuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21haW5sb29wLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvb2JqZWN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8xNTk4NTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3N0YXRpY3JlYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRiLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRjLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRmLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRoLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRpLmM6CgkgIFJlbW92ZSBvbGQgMC44IHRlc3RzIGFuZCBleGFtcGxlcyBmcm9tIGdpdCB0cmVlCgkgIERvZXNuJ3QgcmVhbGx5IGxvb2sgbGlrZSBhbnl0aGluZydzIHdvcnRoIGtlZXBpbmcuCgoyMDEwLTA3LTAzIDE2OjM5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IHNraXAgc2lsbHkgdGVzdCB0aGF0IHNlZ2ZhdWx0cyB3aGVuIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTU6MTM6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICBjaGVja3M6IG1ha2UgZmFrZXNyYyBjaGVjayB3b3JrIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBSZXNldCBoYXZlX2VvcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggdGVzdC4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE0OjA5OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY2hlY2tzOiBydW4gdGVzdHMgY2FsbGluZyBnc3RfZGVpbml0KCkgbGFzdCBzbyB0aGluZ3Mgd29yayB3aXRoIENLX0ZPUks9bm8KCSAgQmVjYXVzZSBnc3RfaW5pdCgpIHdpbGwgZmFpbCBvbmNlIGdzdF9kZWluaXQoKSBoYXMgYmVlbiBjYWxsZWQuCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNDowNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBjaGVja3M6IGRvbid0IGFzc3VtZSBlbGVtZW50IGZhY3RvcnkgaXMgbm90IGxvYWRlZCB5ZXQKCSAgSXQgbWF5IGFscmVhZHkgYmUgbG9hZGVkIGlmIGNoZWNrIGlzIGJlaW5nIHJ1biB3aXRoIENLX0ZPUks9bm8uCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMSAxOTo1ODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBkb2NzOiBmaXggYSBjb3VwbGUgb2YgdHlwb3MgaW4gdGhlIG1hbnVhbAoJICBTcG90dGVkIGJ5IEFsZXhhbmRlciBTYXByeWtpbi4KCSAgRml4ZXMgIzYyMjM3OS4KCjIwMTAtMDctMDEgMTc6NTY6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBNYWtlIHN1cmUgX25vcm1hbGl6ZSgpIGlzIGFwcGxpZWQgb24gYWxsIHN0cnVjdHVyZXMuCgkgIFdlIG5lZWQgdG8gdXNlIGdzdF9jYXBzX2dldF9zaXplKCkgaW4gdGhlIGxvb3AgY291bnRlciBzaW5jZSBzb21lCgkgIHN0cnVjdHVyZXMgY291bGQgYmUgYWRkZWQgd2hpbGUgaXRlcmF0aW5nLgoJICBGaXhlcyAjNjIzMzAxCgoyMDEwLTA2LTMwIDEzOjE2OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICBkb2NzOiB1cGRhdGUgJ1hNTCBpbiBHU3RyZWFtZXInIHNlY3Rpb24gaW4gYXBwbGljYXRpb24gZGV2ZWxvcGVyJ3MgbWFudWFsCgoyMDEwLTA2LTI5IDE4OjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuMyBwcmUtcmVsZWFzZQoKMjAxMC0wNi0yNSAxOTowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpbXBsZW1lbnQgYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBPdXIgYWNjZXB0Y2FwcyBmdW5jdGlvbiBjYW4gc2ltcGx5IGZvcndhcmQgdGhlIHF1ZXJ5LgoKMjAxMC0wNi0yOCAxNToyODo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgYXV0b21ha2UgcmVxdWlyZW1lbnQgdG8gMS4xMAoJICBGb3IgbWFpbnRhaW5hYmlsaXR5IHJlYXNvbnMgYW5kICQoYnVpbGRkaXIpLgoJICBGaXhlcyAjNjIyOTQ0LgoKMjAxMC0wNi0yOCAxMzo1NjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtZW50aW9uIC0tZW9zLW9uLXNodXRkb3duIG9uIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMTAtMDYtMjggMTA6MjA6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBEb24ndCB1c2UgR19HTlVDX0NPTlNUIGZvciB0aGUgdWludDY0IHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoZXkgYXJlIGFjdHVhbGx5ICpub3QqIGNvbnN0IGZ1bmN0aW9ucyBiZWNhdXNlIG9uIGFyY2hpdGVjdHVyZXMKCSAgd2l0aG91dCBpbnQxMjggaW5zdHJ1Y3Rpb25zIHRoZSBwYXJhbWV0ZXJzIHdlcmUgY2hhbmdlZC4KCSAgZ2NjIHJlLXVzZWQgdGhlIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrIGZvciBtdWx0aXBsZSBjYWxscyB0aG91Z2gKCSAgYW5kIHRoZSBjaGFuZ2VkIHBhcmFtZXRlcnMgd2VyZSB1c2VkIGZvciB0aGUgc2Vjb25kIGNhbGwgdGhlbi4KCSAgRml4ZXMgYnVnICM2MjMwMDMuCgoyMDEwLTA2LTI2IDE3OjQ4OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS4yIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI2IDE3OjQ3OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDYtMjYgMTA6MTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGV4YW1wbGVzOiByZW1vdmUgeG1sIGV4YW1wbGUgYnVpbGQgc3lzdGVtIGJpdHMgYW5kIHB1cmdlIGZyb20gdHJlZQoJICBGaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDYtMjYgMDk6NTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHhtbC5jOgoJICB4bWw6IGtlZXAgZHVtbXkgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBnLWkgZXZlbiBpZiByZXN0IG9mIEdzdFhNTCBpcyByZW1vdmVkCgkgIEFkZCBhIG1pbmltYWwgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uLCBzbyB0aGF0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBkb2Vzbid0CgkgIGJyZWFrIHRoZSBjb21waWxhdGlvbiBpZiB3ZSdyZSBjb21waWxpbmcgd2l0aCBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgZGVmaW5lZCBvcgoJICAtLWRpc2FibGUtbG9hZHNhdmUgaGF2aW5nIGJlZW4gcGFzc2VkIHRvIGNvbmZpZ3VyZS4gVW50aWwgc29tZW9uZSBmaWd1cmVzIG91dAoJICBhIGJldHRlciB3YXkgYXQgbGVhc3QuCgoyMDEwLTA2LTI2IDAxOjAxOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgRG9uJ3QgaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPiBmcm9tIHB1YmxpYyBoZWFkZXJzIGlmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgZGVmaW5lZAoJICBTaW5jZSBldmVyeXRoaW5nIEdzdFhNTCByZWxhdGVkIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHdlIGNhbiBub3cgc2tpcCB0aGUKCSAgbGlieG1sIGluY2x1ZGVzIGZyb20gdGhlIHB1YmxpYyBoZWFkZXJzIHdoZW4gR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcwoJICBkZWZpbmVkLgoJICBTZWUgIzQ2MzQzNS4KCjIwMTAtMDYtMjYgMDA6MTg6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgZXhhbXBsZXM6IGFkZCBtaXNzaW5nIHN0ZGxpYi5oIGluY2x1ZGUgaW4gdHlwZWZpbmQgZXhhbXBsZQoKMjAxMC0wNi0yNSAyMToyMzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZG90LWR1bXA6IHRlcm1pbmF0ZSB0cnVuY2F0ZWQgc3RyaW5ncyBhbmQgZXNjYXBlIHNwZWNpYWwgY2hhcnMKCSAgRml4ZXMgc3ludGF4IGVycm9ycyBpbiBnZW5lcmF0ZWQgZG90IGZpbGVzIGZvciBjYXBzIHdpdGggc3RyaW5ncy4KCjIwMTAtMDYtMjUgMTg6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3JlIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBuZXcgZmxhZ3MKCjIwMTAtMDYtMjUgMTg6MTg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbWFrZSB0aGUgTk9USElORyBsaW5rIGNoZWNrIGZsYWcgYmUgMAoJICBNYWtlIHRoZSBwYWQgbGluayBjaGVjayBvZiBOT1RISU5HIGJlIDAuIFRoaXMgd2F5IHdlIGhhdmUgYSBmbGFnIGZvciBlYWNoCgkgIGZlYXR1cmUgYW5kIDAgd2hlbiBubyBmbGFncyBhcmUgc2V0LgoKMjAxMC0wNi0yNSAxODoyNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIEdzdFhNTCB0ZXN0cwoKMjAxMC0wNi0yNSAxODoxMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L2dzdHhtbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3R4bWw6IERlcHJlY2F0ZSBHc3RYbWwgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zCgkgIFBpcGVsaW5lIHNlcmlhbGlzYXRpb24gdG8gYW5kIGZyb20gWE1MIGlzIGhvcnJpYmx5IGJyb2tlbiBmb3IgYWxsCgkgIGJ1dCB0aGUgbW9zdCBzaW1wbGUgdXNlIGNhc2VzLCBhbmQgd2lsbCBsaWtlbHkgbmV2ZXIgYmUgZml4ZWQuCgkgIE1ha2Ugc3VyZSBldmVyeW9uZSBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZXNlIHRvb2xzIGlzIGF3YXJlIG9mCgkgIHRoaXMsIHRvIGF2b2lkIGZydXN0cmF0aW9uLiBTZWUgY291bnRsZXNzIGJ1ZyByZXBvcnRzIGluIGJ1Z3ppbGxhLgoJICBGaXhlcyBidWcgIzYyMjY4NS4KCjIwMTAtMDYtMjUgMTg6MTE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBidWlsZCB3aXRoIEdTVF9SRU1PVkVfREVQUkVDQVRFRAoKMjAxMC0wNi0yNCAxMjoxOToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogVXNlIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsCgkgIFdlJ3JlIHRlc3RpbmcgY2FwcyBuZWdvdGlhdGlvbiwgbm90IHBhZCBsaW5raW5nLiBCcmluZ3MgdGhlIHN0YXJ0dXAKCSAgdGltZSBkb3duIDEwMCBmb2xkLgoKMjAxMC0wNi0yNCAxNzo1MzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgdG9vbHM6IGRlcHJlY2F0ZSBnc3QteG1sbGF1bmNoIGFuZCBwcmludCBmYXQgd2FybmluZyBpZiBzb21lb25lIHRyaWVzIHRvIHVzZSBpdAoJICBQaXBlbGluZSBzZXJpYWxpc2F0aW9uIHRvIGFuZCBmcm9tIFhNTCBpcyBob3JyaWJseSBicm9rZW4gZm9yIGFsbAoJICBidXQgdGhlIG1vc3Qgc2ltcGxlIHVzZSBjYXNlcywgYW5kIHdpbGwgbGlrZWx5IG5ldmVyIGJlIGZpeGVkLgoJICBNYWtlIHN1cmUgZXZlcnlvbmUgcGxheWluZyBhcm91bmQgd2l0aCB0aGVzZSB0b29scyBpcyBhd2FyZSBvZgoJICB0aGlzLCB0byBhdm9pZCBmcnVzdHJhdGlvbi4gU2VlIGNvdW50bGVzcyBidWcgcmVwb3J0cyBpbiBidWd6aWxsYS4KCjIwMTAtMDYtMjQgMTc6MjI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlbmFtZSBuZXcgLS1uby1wbGF5IGNvbW1hbmQgbGluZSBvcHRpb24gdG8gLS1uby1zaWd1c3ItaGFuZGxlcgoJICAtLW5vLXBsYXkgc2VlbXMgYSBiaXQgY29uZnVzaW5nLgoJICBGaXhlcyAjNjIxODY3LgoKMjAxMC0wNi0yNCAxNTowNzoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3M2ZmOTNhIHRvIGE1MTk1NzEKCjIwMTAtMDYtMjMgMTE6MDI6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpZ25vcmUgdGhlIHBsdWdpbiBjYWNoZSBpZiB0aGUgZmlsdGVyIGVudmlyb25tZW50IGhhcyBjaGFuZ2VkCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIHByb3Blcmx5IHVwZGF0ZSB0aGUgcmVnaXN0cnkgYW5kIHRoZSBjYWNoZSBmaWxlIHdoZW5ldmVyCgkgIHRoZSBmaWx0ZXIgZW52aXJvbm1lbnQgY2hhbmdlcyBvciB0aGVyZSdzIG5vIG1vcmUgZmlsdGVyIHNldC4KCjIwMTAtMDUtMjcgMTI6MzY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2lubG9hZGluZzogYWRkIHN1cHBvcnQgZm9yIHdoaXRlbGlzdGluZyBiYXNlZCBvbiBwbHVnaW4gb3Igc291cmNlIG1vZHVsZSBuYW1lIGFuZCBwYXRoCgkgIFRoaXMgZmVhdHVyZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIHVzZSBpbiBwbHVnaW4gbW9kdWxlcycgdW5pdCB0ZXN0cy4KCSAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBzaXR1YXRpb246IGdzdC1wbHVnaW5zLWdvb2QgaXMgYnVpbHQgYWdhaW5zdCBhbgoJICBpbnN0YWxsZWQgR1N0cmVhbWVyIGNvcmUuIEFuIG9sZGVyIHZlcnNpb24gb2YgZ3N0LXBsdWdpbnMtZ29vZCBpcyBhbHNvCgkgIGluc3RhbGxlZCBpbiB0aGF0IHByZWZpeCwgYWxvbmcgd2l0aCByYW5kb20gb3RoZXIgcGx1Z2luIG1vZHVsZXMuIE5vdywKCSAgd2hlbiBkb2luZyAnbWFrZSBjaGVjaycgaW4gdGhlIGp1c3QtYnVpbHQgZ3N0LXBsdWdpbnMtZ29vZCB0cmVlLCB3ZQoJICB3YW50IHRvIG9ubHkgbG9hZCBwbHVnaW5zIGZyb20gR1N0cmVhbWVyIGNvcmUsIGdzdC1wbHVnaW5zLWJhc2UsIGFuZAoJICBnc3QtcGx1Z2lucy1nb29kLCBidXQgbm90IHJhbmRvbSBvdGhlciBtb2R1bGVzICh3ZSBkb24ndCB3YW50IGFueSB1bml0CgkgIHRlc3RzIHRvIGZhaWwganVzdCBiZWNhdXNlIHNvbWUgbW9kdWxlIGluIGdzdC1wbHVnaW5zLWJhZCBoYXMgYSBicm9rZW4KCSAgcGx1Z2luX2luaXQsIGZvciBleGFtcGxlKS4gQWxzbywgd2Ugd2FudCB0byBvbmx5IGxvYWQgZ3N0LXBsdWdpbnMtZ29vZAoJICBtb2R1bGVzIGZyb20gdGhlIGxvY2FsbHktYnVpbHQgc291cmNlIHRyZWUsIGJ1dCBub3QgYW55IG9mIHRoZSBvbGRlcgoJICBnc3QtcGx1Z2lucy1nb29kIG1vZHVsZXMgaW5zdGFsbGVkLiBUaGlzIGlzIHVzdWFsbHkgYXNzdXJlZCBieSBsb2FkaW5nCgkgIHRoZSBvbmVzIGluIHRoZSBzb3VyY2UgdHJlZSBmaXJzdCAoYnkgYWRkaW5nIHRoYXQgcGF0aCBmaXJzdCB0byB0aGUKCSAgcmlnaHQgZW52aXJvbm1lbnQgdmFyaWFibGVzKSwgYnV0IGl0IGdldHMgdHJpY2t5IHdoZW4gcGx1Z2lucyBhcmUKCSAgbW92ZWQsIHJlbW92ZWQsIG1lcmdlZCwgb3IgcmVuYW1lZCwgb3IgdGhlIHBsdWdpbiBmaWxlbmFtZSBjaGFuZ2VzLgoJICBOb3RlIHRoYXQgJ21ha2UgY2hlY2snIHNob3VsZCByZWFsbHkgd29yayByaWdodCB3aXRob3V0IGRvaW5nCgkgICdtYWtlIGluc3RhbGwnIG9yIHVuaW5zdGFsbGluZyB0aGUgb2xkIGdzdC1wbHVnaW5zLWdvb2QgcGFja2FnZSAob3IKCSAgYW55IG90aGVyIGdzdC1wbHVnaW5zLWZvbyBwYWNrYWdlKSBmaXJzdC4KCSAgRW50ZXIgR1NUX1BMVUdJTl9MT0FESU5HX1dISVRFTElTVC4gVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYXkKCSAgY29udGFpbiBzb3VyY2UtcGFja2FnZUBwYXRoLXByZWZpeCBwYWlycyBzZXBhcmF0ZWQgYnkgdGhlIHBsYXRmb3JtCgkgIHNlYXJjaCBwYXRoIHNlcGFyYXRvciAoR19TRUFSQ0hQQVRIX1NFUEFSQVRPUl9TKS4gVGhlIHNvdXJjZSBwYWNrYWdlCgkgIGFuZCBwYXRoIHByZWZpeCBhcmUgc2VwYXJhdGVkIGJ5IHRoZSAnQCcgY2hhcmFjdGVyLiBUaGUgcGF0aCBwcmVmaXggaXMKCSAgZW50aXJlbHkgb3B0aW9uYWwsIGFzIGlzIHRoZSAnQCcgc2VwYXJhdG9yIGlmIG5vIHBhdGggaXMgZ2l2ZW4uCgkgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZmlsdGVyIGJhc2VkIG9uIHBsdWdpbiBuYW1lcyBpbnN0ZWFkIG9mIHRoZSBuYW1lCgkgIG9mIHRoZSBzb3VyY2UtcGFja2FnZSBieSBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIHBsdWdpbiBuYW1lcyBzZXBhcmF0ZWQKCSAgYnkgY29tbWFzIGJlZm9yZSB0aGUgb3B0aW9uYWwgcGF0aCBwcmVmaXguCgkgIEluIHNob3J0LCB0aGUgZm9sbG93aW5nIG1hdGNoIHBhdHRlcm5zIGFyZSBwb3NzaWJsZToKCSAgcGx1Z2luMSxwbHVnaW4yQHBhdGhwcmVmaXggb3IKCSAgcGx1Z2luMSxwbHVnaW4yQCogb3IganVzdAoJICBwbHVnaW4xLHBsdWdpbjIgb3IKCSAgc291cmNlLXBhY2thZ2VAcGF0aHByZWZpeCBvcgoJICBzb3VyY2UtcGFja2FnZUAqIG9yIGp1c3QKCSAgc291cmNlLXBhY2thZ2UKCSAgU28gZm9yIG91ciBnc3QtcGx1Z2lucy1nb29kIHVuaXQgdGVzdCBleGFtcGxlIGFib3ZlLCB3ZSAgd291bGQgc2V0IHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSBvbiAqbml4IHRvIHNvbWV0aGluZyBsaWtlIHRoaXMgKHdpbGwgbGlrZWx5IGJlIGEKCSAgcmVsYXRpdmUgcGF0aCBpbiBwcmFjdGljZSk6CgkgIGdzdHJlYW1lcjpnc3QtcGx1Z2lucy1iYXNlOmdzdC1wbHVnaW5zLWdvb2RAL3BhdGgvdG8vc3JjL2dzdC1wbHVnaW5zLWdvb2QKCSAgRml4ZXMgIzYxOTgxNSBhbmQgIzYxOTcxNy4KCjIwMTAtMDYtMjMgMTc6MjQ6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFdlIGRvbid0IG5lZWQgYW55IGNoZWNrcyB3aGVuIGxpbmtpbmcgdGFyZ2V0IHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE3OjAwOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IE5ldyBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCBtZXRob2QKCSAgTGlua3MgdGhlIGVsZW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCBwYWQgbGlua2luZyBjaGVja3MuCgkgIEFQSTpnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE2OjQ1OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIG5ldyBwYWQgbGlua2luZyBtZXRob2Qgd2l0aCBjb25maWd1cmFibGUgY2hlY2tzLgoJICBUbyBiZSB1c2VkIGZvciBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIGFsbCBjaGVja3MgdG8gYmUgdmFsaWRhdGVkLgoJICBBUEk6IGdzdF9wYWRfbGlua19mdWxsCgkgIEFQSTogR3N0UGFkTGlua0NoZWNrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMTUgMTg6MjY6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04gdGFnCgkgIEFkZHMgYSBuZXcgdGFnIHRvIGluZm9ybSBhYm91dCB0aGUgaW1hZ2Ugb3JpZW50YXRpb24gYW5kIGhvdwoJICB0byByb3RhdGUgYW5kIGZsaXAgaXQgYmVmb3JlIGRpc3BsYXkuCgkgIE5vdGUgdGhhdCB0aGlzIHRhZyBpcyBhIHN0cmluZyB3aXRoIGEgcHJlZGVmaW5lZCBzZXQgb2YKCSAgcG9zc2libGUgdmFsdWVzLgoJICBBUEk6IEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04KCSAgRml4ZXMgIzYxOTUwOAoKMjAxMC0wNi0yMiAxODo1MzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0b2JqZWN0OiBkZXByZWNhdGUgZ3N0X29iamVjdF97c2V0fGdldH1fbmFtZV9wcmVmaXgoKQoJICBUaGUgbmFtZSBwcmVmaXggc3R1ZmYgaGFzIG5ldmVyIGJlZW4gdXNlZCBmb3IgYW55dGhpbmcgYW5kIGl0IGRvZXNuJ3QKCSAgbG9vayBsaWtlIHdlJ2xsIGV2ZXIgd2FudCB0byB1c2UgaXQgZm9yIGFueXRoaW5nLgoJICBGaXhlcyAjNjIxMDA2LgoKMjAxMC0wNi0yMiAxMDoyMDo1MyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMgZm9yIEdzdFBhZEludExpbmtGdW5jdGlvbgoJICBGaXhlcyBidWlsZCB3aXRoIGxhdGVzdCBnb2JqZWN0LWludHJvc3BlY3Rpb24gZnJvbSBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIwMjUKCjIwMTAtMDYtMjEgMTE6NDE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZXJnaW5nIG9mIHJhbmdlcwoJICBXaGVuIHdlIG1lcmdlIHR3byByYW5nZXMsIGRvbid0IHVwZGF0YSB0aGUgY3VycmVudCByYW5nZSB3cml0aW5nX3BvcyB3aXRoCgkgIHdoZXJlZXZlciB3ZSB3ZXJlIHdyaXRpbmcgZWFybGllciBpbiB0aGUgbWVyZ2VkIHJhbmdlLiAgU3BvdHRlZCBieSBiaWxib2VkLgoKMjAxMC0wNi0xOSAxMToxOTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFsc28gc2tpcCAuZGVwcyBkaXJzIHdoZW4gc2Nhbm5pbmcgZm9yIHBsdWdpbnMKCSAgTm8gbmVlZCB0byBkZXNjZW5kIGludG8gLmRlcHMgZGlycyBpbiB1bmluc3RhbGxlZCBzZXR1cHMsIHdlIGtub3cKCSAgdGhlc2UgZG9uJ3QgY29udGFpbiBhbnkgcGx1Z2lucy4KCjIwMTAtMDYtMTcgMTE6Mzk6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBnc3RfdGFnX2xpc3RfcGVla19zdHJpbmdfaW5kZXggdG8gYXZvaWQgYSBjb3B5CgkgIEFkZHMgYSB2YXJpYXRpb24gb2YgdGhlIF9nZXRfc3RyaW5nX2luZGV4IGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBjb3B5CgkgIHRoZSBzdHJpbmcuCgkgIEFQSTogZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE4OTYKCjIwMTAtMDYtMTggMTI6MDA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IG1ha2Ugc3VyZSBidWZmZXJzJyBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyBjYXBzIG9uIHRoZW0KCSAgRml4ZXMgd2FybmluZ3Mgd2hlbiB1c2luZyBwbGF5YmluMiB3aXRoIGR2YjovLyBzdHJlYW1zLCB3aGVyZSB0eXBlZmluZAoJICBjb21lcyBhZnRlciBtcGVndHNwYXJzZS4KCjIwMTAtMDYtMTcgMTU6NTI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBpbnRyb3NwZWN0ZWQgcGx1Z2luIGRvY3MgZm9yIGdzdGRvYy1zY2Fub2JqIGNoYW5nZXMKCSAgVXBkYXRlIGNvbW1vbiBmb3IgbGF0ZXN0IGdzdGRvYy1zY2Fub2JqIGFuZCBpbnNwZWN0IHhtbCBmaWxlcyBmb3IKCSAgZXNjYXBpbmcgYW5kIHBhZCB0ZW1wbGF0ZSBvcmRlciBjaGFuZ2VzLgoKMjAxMC0wNi0xNyAxMzoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbml0aWFsaXplIGppdHRlciB0byBwcmV2ZW50IHByaW50aW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaWYgd2FpdGluZyBmb3IgdGhlIGNsb2NrIGZhaWxlZAoKMjAxMC0wNi0xNyAxMDozNDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTE3IDA5OjMzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogZml4IGFub3RoZXIgdHlwbyBhbmQgc29tZSBpbmFjY3VyYWNpZXMKCSAgRml4IGEgd3Jvbmcgc3RhdGVtZW50IGFuZCBmbGVzaCBvdXQgc2VjdGlvbiBvbiBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICBhIGJpdC4KCjIwMTAtMDYtMTcgMDk6MDU6NTggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCBhbm90aGVyIHR5cG8KCjIwMTAtMDYtMTcgMDk6MDU6MjggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCB0eXBvCgoyMDEwLTA2LTE2IDEzOjExOjA2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIGFuIGFsbG93LW5vbmUgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IEFkZCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIFRoZXNlIGFyZSByZXF1aXJlZCB0byBrbm93IGhvdyB0byB1bnJlZi9yZWYgYW5kCgkgIGNvbnZlcnQgdG8vZnJvbSBhIEdWYWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDoxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDowNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzowOTo1NyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IG1ha2Ugc3luYyBwcm9wZXJ0eSB3b3JrIGNvcnJlY3RseQoJICBEb24ndCBvdmVycmlkZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgdm1ldGhvZCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHN5bmMKCSAgcHJvcGVydHkuCgkgIFNldCB0aGUgZGVmYXVsdCBzeW5jIHByb3BlcnR5IHRvIEZBTFNFLiBJdCB1c2VkIHRvIGJlIHNldCB0byBUUlVFIGJ1dCBiZWNhdXNlCgkgIHRoZSBnZXRfdGltZXMgd2FzIE5VTEwsIGl0IGFsd2F5cyBiZWhhdmVkIGxpa2UgRkFMU0UuCgkgIEZpeGVzICM2MjE1MzAKCjIwMTAtMDYtMTUgMTg6NDg6NTMgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBJbXByb3ZlIGdzdF9lbGVtZW50X2dldF9uYW1lKCkgZG9jcwoJICBGaXhlcyBidWcgIzYyMTY2MC4KCjIwMTAtMDYtMTUgMTY6NDk6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDkzMzljY2MgdG8gMzU2MTdjMgoKMjAxMC0wNi0xNSAxNjo1MzozNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YWRiMWNhIHRvIDkzMzljY2MKCjIwMTAtMDYtMTUgMTY6MzQ6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTdjODliNyB0byA1YWRiMWNhCgoyMDEwLTA2LTE1IDE1OjMxOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM4MDQ5ODggdG8gNTdjODliNwoKMjAxMC0wNi0xNSAxMTo0ODoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmV2ZXJ0ICJHc3RQYWQ6IEFkZCBHU1RfUEFEX05FR09USUFCTEUgR3N0UGFkRmxhZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkYzM4ZTc1ZDg4YmQ4OTIxODk1ODIxZjdhZmVkMDFjYWIzMGU0NmM5LgoJICBib29tCgoyMDEwLTA2LTE1IDExOjQ4OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc0NjAzMjFhNjAwNDM4OTY2ZDcxNTJhYjJiNDMxOGJlNDhlYWRjZTAuCgkgIGNyYWNrCgoyMDEwLTA2LTE1IDExOjQ4OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZml4IGNvbW1lbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGU5MmNiNGE3ZDU2Y2RmYTQ2NzQzMTVjNjRiNThjMWIxYjlkODIwOC4KCSAgd2hhdGV2ZXIuLi4KCjIwMTAtMDYtMTUgMTE6NDc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IG9ubHkgY2xlYXIgbmVnb3RpYWJsZSB3aGVuIGdvaW5nIHRvIE5VTEwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGY1ZWMxZjczN2MzYjM3NTM4YjIzMDdhZWYxNjBkOWQyMWYxYzQyMi4KCSAgYmxlZWVlaAoKMjAxMC0wNi0xNSAxMDo0NjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBhZGQgZHVtbXkgVFJBQ0UgbG9nIGxldmVsIG1hY3JvcyBmb3Igd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgRm9yZ290IHRob3NlIHdoZW4gYWRkaW5nIHRoZSBvcmlnaW5hbCBBUEksIGp1c3QgbGlrZSB0aGUgQVBJIG1hcmtlcnMKCSAgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoJICBBUEk6IEdTVF9UUkFDRQoJICBBUEk6IEdTVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX1RSQUNFCgkgIEFQSTogR1NUX0NBVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTEVWRUxfVFJBQ0UKCSAgRml4ZXMgY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnCgoyMDEwLTA2LTE1IDAxOjE1OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgbW9yZSBlcnJvcnMgdG8gc3RkZXJyIGFuZCBzdXBwcmVzcyBtb3JlIG91dHB1dCBpbiBxdWlldCBtb2RlCgkgIElmIC0tcXVpZXQgaXMgZ2l2ZW4sIGRvbid0IHByaW50IGFueXRoaW5nIGJ1dCBlcnJvcnMuIEFsc28sIG1ha2UKCSAgc3VyZSBlcnJvcnMgYXJlIGFsd2F5cyBwcmludGVkIHRvIHN0ZGVyciBhbmQgbm90IHRvIHN0ZG91dC4KCSAgRml4ZXMgIzYyMTU5NS4KCjIwMTAtMDYtMTQgMTg6MDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBvbmx5IGNsZWFyIG5lZ290aWFibGUgd2hlbiBnb2luZyB0byBOVUxMCgkgIERvbid0IGNsZWFyIHRoZSBuZWdvdGlhYmxlIGZsYWcgd2hlbiBnb2luZyB0byBSRUFEWSBiZWNhdXNlIHRoZW4gaXQgd2lsbCBuZXZlcgoJICBiZSBzZXQgdG8gVFJVRSBhZ2Fpbi4KCjIwMTAtMDYtMTQgMTc6MzM6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGNvbW1lbnQKCjIwMTAtMDUtMTcgMTU6MDY6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDUtMTcgMTU6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIEdTVF9QQURfTkVHT1RJQUJMRSBHc3RQYWRGbGFnCgkgIEEgcGFkIGlzICduZWdvdGlhYmxlJyB3aGVuIGl0cyBjb250YWluZXIgZWxlbWVudCBpcyBpbiBhIHN0YXRlIGdyZWF0ZXIKCSAgdGhhbiBHU1RfU1RBVEVfUkVBRFkKCSAgQVBJOmdzdF9wYWRfaXNfbmVnb3RpYWJsZQoJICBBUEk6Z3N0X3BhZF9zZXRfbmVnb3RpYWJsZQoJICBBUEk6R1NUX1BBRF9ORUdPVElBQkxFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDYtMTQgMTY6NTE6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiB1c2UgbWV0aG9kIHRvIHNldCBzeW5jIHByb3BlcnR5CgkgIFVzZSB0aGUgYmFzZXNpbmsgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgc3luYyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIHBva2luZyB0aGUKCSAgcGFyZW50IHN0cnVjdHVyZS4KCjIwMTAtMDYtMTQgMTY6NTA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2UgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIGZ1bmN0aW9uCgkgIFVzZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgZnVuY3Rpb24gb2YgYmFzZXNpbmsgc28gdGhhdCB3ZSBob25vdXIgdGhlIHN5bmMKCSAgcHJvcGVydHkgaW5zdGVhZCBvZiBuZXZlciBzeW5jaHJvbml6aW5nIHRvIHRoZSBjbG9jay4KCSAgRml4ZXMgIzYyMTUzMAoKMjAxMC0wNi0xNCAxNjoyMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWV2YWx1YXRlIHByb3h5X2FsbG9jIHdoZW4gcmVjb25maWd1cmVkCgkgIFdoZW4gd2UgcmVjb25maWd1cmUgdGhlIHRyYW5zZm9ybSBlbGVtZW50LCBtYWtlIHN1cmUgd2UgcmVldmFsdWF0ZSB0aGUgcHJveHlpbmcKCSAgb2YgYnVmZmVyX2FsbG9jIHRoZSBuZXh0IHRpbWUgYXJvdW5kLgoJICBGaXhlcyAjNjIxMzMyCgoyMDEwLTA2LTE0IDE1OjM5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjYXBzOiBEb24ndCB1c2UgaW52YWxpZCBmcmFjdGlvbiByYW5nZSBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEwLTA2LTE0IDE1OjMwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHNvbWUgbW9yZSBhc3NlcnRpb25zIGFuZCBjaGVja3MgZm9yIHZhbGlkIGlucHV0IHBhcmFtZXRlcnMKCjIwMTAtMDUtMjcgMTU6MTM6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHByb2dyZXNzaXZlIG1hc2tlZF9zY2FuCgkgIFJldGFpbiB0aGUgbGFzdCBzY2FubmVkIGJ1ZmZlciBlbnRyeSBhbmQgb2Zmc2V0LCBzbyB3ZSBjYW4gcmVzdW1lIGJ1ZmZlcgoJICBzY2FubmluZyB0aGVyZSBpbiBjYXNlIG9mIGEgdHlwaWNhbCBwcm9ncmVzc2l2ZSBzY2FuLgoJICBBbHNvIHBvdGVudGlhbGx5IG9wdGltaXplIF9jb3B5IHN1YnNlcXVlbnRseSBvY2N1cnJpbmcgaW4gdGhhdCBhcmVhLgoKMjAxMC0wNS0yNyAxMjoxNToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGV4dGVuZGVkIG1hc2tlZF9zY2FuX3VpbnQzMl9wZWVrIHRoYXQgYWxzbyBwcm92aWRlcyBtYXRjaGluZyB2YWx1ZQoJICBBbHNvIGFkZCB0byAuZGVmIGFuZCBkb2NzLgoJICBGaXhlcyAjNjE5ODI4LgoJICBBUEk6IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgoyMDEwLTA2LTE0IDEzOjM4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggLmRlZiBmaWxlCgoyMDEwLTA2LTE0IDEyOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGFkZCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlCgoyMDEwLTA2LTExIDE1OjM2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGZpeCBleGFtcGxlIHRvIHVzZSBhIGNhdGVnb3J5IG5hbWUgdGhhdCBhY3R1YWxseSBleGlzdHMKCjIwMTAtMDYtMTQgMTE6Mzk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2FwczogTmV3IGdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyByZW1vdmluZyBzdHJ1Y3R1cmVzIGZyb20gY2FwcyB3aXRob3V0IHRoZW0gYmVpbmcgZnJlZWQuIEhlbHBmdWwgd2hlbgoJICBwbHVnaW5zIG5lZWQgdG8gbW92ZSBhcm91bmQgc3RydWN0dXJlcyB3aXRob3V0IGhhdmluZyB0byBkbyBhbiBleHBlbnNpdmUgc3RydWN0dXJlCgkgIGNvcHkuCgkgIEFQSTpnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTUyNwoKMjAxMC0wNi0xNCAxMzoxMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogRG9uJ3QgYWRkIEdfVEhSRUFEU19NQU5EQVRPUlkgdG8gR1NUX0FMTF9DRkxBR1MKCSAgSXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdMSUJfRVhUUkFfQ0ZMQUdTCgoyMDEwLTA2LTE0IDEzOjA3OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgR0xJQl9FWFRSQV9DRkxBR1MKCjIwMTAtMDYtMTQgMTM6MDI6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YTBmZGY1IHRvIGM4MDQ5ODgKCjIwMTAtMDYtMTQgMTM6MDE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHByaW50ZiBmb3JtYXQKCjIwMTAtMDYtMTQgMTI6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRfY2FwcyBtZXRob2QKCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24uIFdlIGNhbiBzaW1wbHkgY2hlY2sgaWYgdGhlcmUgaXMgYW4KCSAgaW50ZXJzZWN0aW9uIHdpdGggdGhlIG5ldyBjYXBzLiBUaGlzIG1ha2VzIHRoZSBhY2NlcHQgY2FwcyBmdW5jdGlvbiBtdWNoIGZhc3Rlci4KCSAgU2VlICM2MjExOTAKCjIwMTAtMDYtMTQgMTI6MzY6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCBhY2NlcHRfY2FwcyB2bWV0aG9kCgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gYmVjYXVzZSBpbiBzb21lIGNhc2VzIGEKCSAgY3VzdG9tIGltcGxlbWVudGF0aW9uIGNhbiBiZSBtdWNoIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lLgoJICBTZWUgIzYyMTE5MAoKMjAxMC0wNi0xNCAxMTozMDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZkYTNiYWIgdG8gN2EwZmRmNQoKMjAxMC0wNi0xMSAxODo0OTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFJlbW92ZSB0cmFuc2Zvcm1fc2l6ZQoJICBHc3RCYXNlVHJhbnNmb3JtIG5vdyBhc3N1bWVzIHRoYXQgdGhlIHNpemUgaXMgdGhlIHNhbWUgaWYgdGhlcmUgaXMgbm90CgkgIHRyYW5zZm9ybV9zaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTExIDE4OjQ2OjMwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQXNzdW1lIHNpemUgaXMgdGhlIHNhbWUgaWYgbm8gdHJhbnNmb3JtX3NpemUvZ2V0X3VuaXRfc2l6ZQoJICBTdWJjbGFzc2VzIHRoYXQgZG9uJ3QgaW1wbGVtZW4gdHJhbnNmb3JtX3NpemUgc2hvdWxkIGJlIGFzc3VtZWQgdG8gcHJvZHVjZSBvdXRwdXQKCSAgYnVmZmVycyBvZiB0aGUgc2FtZSBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTE0IDA4OjE4OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRG9uJ3QgaW5pdGlhbGl6ZSBhcnJheXMgZnJvbSB2YXJpYWJsZXMKCjIwMTAtMDYtMTQgMDg6MTE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogU3RvcmUgcmVzdWx0IG9mIHN0cnRvbCBpbiBhbiB1bnVzZWQgdmFyaWFibGUgdG8gcmVhbGx5IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuLi4KCjIwMTAtMDYtMTMgMjA6NTI6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2FzdCByZXR1cm4gdmFsdWUgdG8gdm9pZCB0byBwcmV2ZW50IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDYtMTMgMTg6MTI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICBydHBvb2wtdGVzdDogUHJldmVudCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTMgMTg6MDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBzdXJlIHdlIGhhdmUgYSB2YWxpZCBvYmplY3QgdG8gcmVuZGVyIGluIF9yZW5kZXJfb2JqZWN0KCkKCjIwMTAtMDYtMTMgMTg6MDA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgc29tZSBhc3NlcnRpb24gZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHB1YmxpYyBBUEkKCjIwMTAtMDYtMTMgMTc6MDg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBzb21lIGRlYWQgYXNzaWdubWVudHMKCjIwMTAtMDYtMTMgMTc6MDY6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYnVmZmVyc3RyZXNzOiBDaGVjayBpZiB0aGUgbnVtYmVyIG9mIHRocmVhZHMgYW5kIGJ1ZmZlcnMgbWFrZXMgc2Vuc2UKCjIwMTAtMDYtMTMgMTc6MDM6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICByZWFkLW1ldGFkYXRhOiBTdG9wIGlmIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIGJhY2sgdG8gTlVMTCBmYWlscwoKMjAxMC0wNi0xMyAxNjo1OTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgY29tcGxleGl0eTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMgYW5kIHVudXNlZCB2YXJpYWJsZXMKCjIwMTAtMDYtMTMgMTY6MzE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEb24ndCBpZ25vcmUgZmFpbHVyZSB0byBvcGVuIHRoZSB0ZW1wb3JhcnkgZmlsZSBsb2NhdGlvbgoJICBBbmQgaW1tZWRpYXRlbHkgbGVhdmUgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBvbiBmYWlsdXJlcy4KCjIwMTAtMDYtMTMgMTY6Mjc6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBpdGVyYXRvciBhZ2dyZWdhdGlvbiBvZiBhbGwgcGFkcyBpbiB0aGUgaW50ZXJuYWwgbGlua3MgZmFsbGJhY2sKCSAgZ19saXN0X3ByZXBlbmQoKSByZXR1cm5zIHRoZSBuZXcgaGVhZCBvZiB0aGUgbGlzdCBhbmQgbm90CgkgIHVzaW5nIHRoaXMgd2lsbCBjcmVhdGUgYSBtZW1vcnkgbGVhayBhbmQgYSBzaW5nbGUtZWxlbWVudCBsaXN0LgoKMjAxMC0wNi0xMyAxNToyNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBuZXcgRklYTUUgZm9yIDAuMTEgYW5kIHVwZGF0ZSBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20gZG9jcwoJICBUaGUgY29tcGFyZSBmdW5jdGlvbiBzaG91bGQgb25seSB1bnJlZiB0aGUgZWxlbWVudCBpZiBpdCdzCgkgIG5vdCB0aGUgbWF0Y2hpbmcgZWxlbWVudC4KCSAgQWxzbyB0aGUgRklYTUUgaW4gX2ZvbGQoKSBpcyBub3QgcmVsZXZhbnQgYmVjYXVzZSB0aGUgcmVmL3VucmVmCgkgIGhhcHBlbnMgaW4gdGhlIGZvbGQgZnVuY3Rpb24uCgoyMDEwLTA2LTEzIDExOjI0OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogSWYgdGhlIGl0ZXJhdG9yIHJlc3luYyBpbiBmaW5kX2N1c3RvbSgpIGp1c3QgcmV0cnkKCjIwMTAtMDYtMTIgMDg6MjU6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MzNmY2E5IHRvIDZkYTNiYWIKCjIwMTAtMDYtMTIgMDg6MDQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyBmb3VyY2NzCgoyMDEwLTA2LTExIDIyOjU2OjEzICswMDAwICBNYXJ0aW4gQmlzc29uIDxtYXJ0aW4uYmlzc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEZpeGVkIHNlcmlhbGl6YXRpb24gZm9yIHNob3J0IGZvdXJjY3MuCgkgICJZMTYgIiBhbmQgIlk4ICAiIHdlcmUgbm90IGRpc3BsYXllZCBwcm9wZXJseSBiZWNhdXNlIHRoZSBzcGFjZQoJICBjaGFyYWN0ZXIgaXMgbm90IGFsbnVtLiAgQSB1bml0IHRlc3QgaXMgYWxzbyBpbmNsdWRlZC4KCSAgRml4ZXMgYnVnICM2MjEyODIuCgoyMDEwLTA2LTExIDE2OjEyOjMzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCByYW5rcyB3aXRoIG9mZnNldHMgZnJvbSBuYW1lcwoKMjAxMC0wNi0wOSAxMjozOTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZhZDE0NWIgdG8gNzMzZmNhOQoKMjAxMC0wNi0wOSAxMjozMDo0OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3NjgzYzEgdG8gZmFkMTQ1YgoKMjAxMC0wNi0wOSAxMjoxNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbyBldmVuIG1vcmUKCjIwMTAtMDYtMDkgMTI6MDY6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcyAoZm9ybWF0IGFuZCBzZWFyY2ggcGF0aCkuCgkgIFJlbW92ZSBvYnNvbGV0ZSB4bWwgcmVnaXN0cnkgY2FjaGUgZXh0ZW5zaW9uLiBUZWxsIHRoYXQgY29udGVudCBhbmQgbG9jYXRpb24gaXMKCSAgaW50ZXJuYWwgZGV0YWlsLiBEb2N1ZW1udCB0aGUgcGx1Z2luIHNlYXJjaCBvcmRlci4KCjIwMTAtMDYtMDkgMTI6MDY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgY29tbWVudHM6IGFkZCBhIGZldyBjb21tZW50cyB0byB0aGUgc3BhcnNlbHkgZG9jdW1lbnRlZCBwbHVnaW4gbG9hZGVyCgoyMDEwLTA2LTA4IDExOjQxOjExICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbwoKMjAxMC0wNi0wOCAxMjoxMjo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGdzdF9jYXBzX2FwcGVuZF9zdHJ1Y3R1cmVfdW5jaGVja2VkKCkgbWFjcm8gb25jZSBtb3JlCgoyMDEwLTA2LTA4IDEyOjEwOjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgYSBzYWZlciBuYW1lIGZvciB0ZW1wb3JhcnkgdmFyLiB0byBub3Qgc2hhZG93IG9uZSBmcm9tIG91dGVyIHNjb3BlCgoyMDEwLTA2LTA3IDEyOjIwOjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHVzZSBnbGliIHR5cGVzIGluIG1vcmUgcGxhY2VzCgkgIERvIGEgYnVuY2ggb2YgY2hhciAtPiBnY2hhciwgaW50IC0+IGdpbnQsIGRvdWJsZSAtPiBnZG91YmxlIGNoYW5nZXMuCgoyMDEwLTA2LTA3IDEyOjA3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGp1c3QgY29tcHV0ZSBzdHJsZW4oKSBvbmNlCgoyMDEwLTA2LTA3IDEwOjE2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB3YWl0IGZvciBkYXRhIHdoZW4gRU9TCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgd2UgbmVlZCB0byBwcm92aWRlIGRhdGEgZm9yIGFuIG9mZnNldCB0aGF0IHdlIGRvbid0CgkgIGhhdmUsIGFsc28gcGVyZm9ybSBhIHNlZWsgdG8gdGhlIHJlcXVlc3RlZCBsb2NhdGlvbiB3aGVuIHdlIGFyZSBFT1MuIFRoZSByZWFzb24KCSAgd2h5IHdlIHNob3VsZG4ndCB3YWl0IGZvciBtb3JlIGRhdGEgaXMgYmVjYXVzZSBhZnRlciBFT1MsIHRoZXJlIHNpbXBseSB3aWxsIGJlCgkgIG5vIG1vcmUgZGF0YSBhbmQgd2UgZW5kIHVwIHdhaXRpbmcgZm9yZXZlci4KCSAgRml4ZXMgIzYyMDUwMAoKMjAxMC0wNi0wNyAwODoxODo0MCArMDIwMCAgTWFydGluIEJpc3NvbiA8bWFydGluLmJpc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIHNob3J0IGZvdXJjY3MgZnJvbSBzdHJpbmdzCgkgIEZvciBleGFtcGxlICJZMTYgIiBhbmQgIlk4ICAiLgoKMjAxMC0wNi0wNiAyMzoxOTo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IHVzZSBnbG9iYmluZyBmb3Igc2VsZWN0aXZlIHRlc3QgaW52b2NhdGlvbiB2aWEgR1NUX0NIRUNLUwoJICBVc2UgZ2xpYiBnbG9iYmluZyBpbnN0ZWFkIG9mIHNpbXBsZSBzdHJpbmcgbWF0Y2hpbmcgdG8gYWxsb3cgZS5nLgoJICBHU1RfQ0hFQ0tTPSJ0ZXN0X2ludGVyKiIgbWFrZSBnc3QvZ3N0Y2Fwcy5jaGVjawoKMjAxMC0wNi0wNiAyMToyMDoyMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBjYXBzbmVnbzogYWxzbyBtZWFzc3VyZSBwaXBlbGluZSBidWlsZGluZyB0aW1lCgoyMDEwLTA2LTA1IDIzOjE4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgYSBjYXBzLWNvcHkKCSAgV2UgY2FuIHNpbXBseSB0cnVuY2F0ZSB0aGUgY2FwcywgYXMgJ290aGVyY2FwcycgaXMgdGhlIHJlc3VsdCBvZiBpbnRlcnNlY3QKCSAgb3BlcmF0aW9ucyBhbmQgdGh1cyBvdXJzIGFuZCB3cml0YWJsZS4KCjIwMTAtMDYtMDMgMDE6NDk6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmZvOiBhZGQgbmV3IFRSQUNFIGxvZyBsZXZlbCBhbmQgbW92ZSByZWZjb3VudGluZyB0aGVyZSBmcm9tIExPRyBsZXZlbAoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGVhc2lseSBnZXQgYSAqOjUgZGVidWcgbG9nIHdpdGhvdXQgYWxsCgkgIHRoZSByZWZjb3VudGluZyBub2lzZSwgYW5kIGRyYXN0aWNhbGx5IHJlZHVjZXMgdGhlIG51bWJlciBvZiBsaW5lcwoJICBvdXRwdXQgZm9yIGEgbm9ybWFsIGxvZyAoNDZtIHRvIDI4bSBmb3IgYSAyMG1pbiB2aWRlbykuIFRoZSBmdWxsIGxvZwoJICBpbmNsdWRpbmcgcmVmY291bnRpbmcgaW5mb3JtYXRpb24gY2FuIHN0aWxsIGJlIGdvdHRlbiB1c2luZyAqOjcuCgkgIEZpeGVzICM2MjA0NjAuCgoyMDEwLTA2LTA0IDE3OjEwOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZm9yIHN0YW5kYXJkIHByb3BlcnRpZXMKCjIwMTAtMDYtMDMgMTc6MjE6MDAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxAYmFzZS1hcnQubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBnc3RfYmFzZV9zaW5rX3F1ZXJ5IHJldHVybiBUUlVFIGlmIHRoZSBzZWdtZW50IHF1ZXJ5IHN1Y2NlZWRlZC4KCSAgRml4ZXMgYnVnICM2MjA0OTAuCgoyMDEwLTA2LTAxIDIzOjQ4OjU5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTdmODllNSB0byA0NzY4M2MxCgoyMDEwLTA2LTAxIDIyOjU0OjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmQ3Y2EwNCB0byAxN2Y4OWU1CgoyMDEwLTA1LTI0IDE3OjI1OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IEltcHJvdmUgcmVhZGFiaWxpdHkgZm9yIGdzdF9wYWRfZml4YXRlX2NhcHMoKQoJICBKdXN0IHRydW5jYXRlIGFuZCB0aGVuIGZpeGF0ZS4gV2UgY2hlY2sgZm9yIGVtcHR5IGNhcHMgaW4gdGhlIGJlZ2luIGFuZCBhCgkgIGZpeGF0ZS1mdW5jIHRoYXQgZW1wdGllcyBhIGNhcHMgd291bGQgYmUgYnJva2VuLiBJdCBhbHNvIGhlbHBzIGxhenkgY2FwcyBpbXBsLgoJICBpbiBidWcgNjE4ODUzIGJ5IGF2b2lkaW5nIHRoZSBnc3RfY2Fwc19nZXRfc2l6ZSgpLgoKMjAxMC0wNi0wMSAxMTo0NjoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogbG9nIHBsdWdpbnMgYXZhaWxhYmxlIHRvIHVuaXQgdGVzdHMgYW5kIHRoZWlyIHBhdGhzCgoyMDEwLTA2LTAxIDExOjQ1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICB3aW4zMjogY29tbWl0IE1ha2VmaWxlIGNoYW5nZXMgZm9yIHdpbjMyLXVwZGF0ZSBhcyB3ZWxsCgoyMDEwLTA1LTMxIDE1OjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIHdpbjMyOiBhZGQgcHJlLWdlbmVyYXRlZCB2ZXJzaW9ucyBvZiBnc3RtYXJzaGFsLltjaF0gYXMgd2VsbAoJICBhbmQgcHV0IHRoZW0gbmV4dCB0byB0aGUgcHJlLWdlbmVyYXRlZCBlbnVtdHlwZXMgZmlsZXMgZm9yIHRob3NlCgkgIG5vdCB1c2luZyBhdXRvdG9vbHMgZm9yIGJ1aWxkbGluZyBHU3RyZWFtZXIuCgoyMDEwLTA1LTI3IDE1OjEwOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWxzbyBjaGVjayBmb3IgYWRhcHRlciBidWZmZXIgbWVyZ2luZyBpbiB1bml0IHRlc3QKCjIwMTAtMDUtMjcgMTI6NTA6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfdHJ5X3RvX21lcmdlX3VwCgkgIFRoYXQgaXMsIHByb3ZpZGUgY29ycmVjdCByZXR1cm4gdmFsdWUgKGFzIGRvY3VtZW50ZWQpLCBhbmQgYWN0dWFsbHkKCSAgbG9vcCB0byBjb25zaWRlciBtb3JlIHRoYW4gdGhlIGZpcnN0IDIgYnVmZmVycy4KCjIwMTAtMDUtMjcgMTI6NDg6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGRvY3VtZW50YXRpb24gZ2xpdGNoCgoyMDEwLTA1LTI2IDExOjU0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzU3YjBkYiB0byBmZDdjYTA0CgoyMDEwLTA1LTI1IDE5OjE3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogdW5sb2NrIF9nZXRfc3RhdGUoKSBvbiBlcnJvcgoJICBXaGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgb24gdGhlIGJ1cywgbWFyayB0aGUgYmluIGFzIGJlaW5nIGluIHRoZSBlcnJvcgoJICBzdGF0ZSBhbmQgdW5sb2NrIGFsbCBjdXJyZW50IF9nZXRfc3RhdGUoKSBjYWxscyB3aXRoIGFuIGVycm9yLgoJICBGaXhlcyAjNTA1NzcwCgoyMDEwLTA1LTI0IDE5OjA3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgY2hlY2tzOiBhZGQgbXVsdGktdGhyZWFkIHRlc3QgZm9yIHRhZ3NldHRlcgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjQgMTk6MDY6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IG1ha2Ugc3VyZSBvbmx5IG9uZSB0aHJlYWQgY3JlYXRlcyB0aGUgVGFnRGF0YQoKMjAxMC0wNS0yNCAxODoxNjoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogcHJvdGVjdCB0YWdzZXR0ZXIgb3BlcmF0aW9ucyB3aXRoIGEgbG9jawoJICBTbyB3ZSBkb24ndCBjcmFzaCB3aGVuIGEgbXV4ZXIgdHJpZXMgdG8gYWRkIHRhZ3MgZnJvbSB0d28KCSAgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLCBlZy4gYmVjYXVzZSBpdCByZWNlaXZlZCB0YWcgZXZlbnRzCgkgIG9uIHR3byBpbnB1dCBwYWRzIHNpbXVsdGFuZW91c2x5LgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjIgMjM6MjY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBvdXIgbWFjcm9zIG1vcmUgb2Z0ZW4gaW4gdGhlIGNvZGUKCjIwMTAtMDUtMjIgMjM6MDc6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBhcHBlbmRfc3RydWN0dXJlX3VuY2hlY2tlZAoJICBUaGlzIGlzIHVzZWZ1bCB3aGVuIHdlIGtub3cgdGhhdCBjYXBzIGlzICFOVUxMLCB3cml0YWJsZSBhbmQgc3RydWN0dXJlIGlzCgkgICFOVUxMIHRvby4KCjIwMTAtMDUtMjIgMjI6NDY6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiByZW5hbWUgdGVzdHN1aXRlCgkgIFByZXZpb3VzIG5hbWUgd2FzIG9ubHkgYXBwbGljYWJsZSB0byBhIGZldyBvZiB0aGUgdGVzdHMuCgoyMDEwLTA1LTIyIDIyOjQ1OjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IHhyZWYgZnVuY3Rpb24gbmFtZQoKMjAxMC0wNS0yMiAyMjo0NDowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIG91ciBtYWNvcyBtb3JlCgoyMDEwLTA1LTIyIDIyOjMzOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHBsYW5uaW5nIG9uIGxhenkgY2Fwcy4KCjIwMTAtMDUtMjIgMTA6MDE6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX3N0cmluZygpCgoyMDEwLTA1LTE5IDE2OjIxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBjb2xsZWN0IGlkZWFzIGZvciBoYXZpbmcgbGF6eSBjYXBzCgkgIERlc2lnbiBkb2MgZm9yIGhhdmluZyBvbiB0aGUgZmx5IGV2YWx1YXRlZCBjYXBzIChzZWUgYnVnICM2MTg4NTMpLgoKMjAxMC0wNS0xOSAxNTo1NzowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBhZGQgbGlua3MgZm9yIEdTb3VyY2UgcHJpb3JpdGllcwoJICBOb3cgaXQgaXMgeHJlZmZlZCB3aXRoIHRoZSBnbGliIGRvY3MsIHdoZXJlIHRoZSBwcmlvcml0eSBzY2FsZSBpcyBleHBsYWluZWQuCgoyMDEwLTA1LTE5IDE0OjA4OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogYWRkIGNvbW1hbmRsaW5lIHBhcmFtZXRlcnMgZm9yIGNhcHNuZWdvCgkgIEFsbG93IHRvIHNwZWNpZnkgdGhlIGdyYXBoIHNpemUgYW5kIG9mZmVyIHR3byBmbGF2b3VycyAoYXVkaW8vdmlkZW8pLgoKMjAxMC0wNS0xOSAwOTo1Njo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGFkZCBhIGJlbmNobWFyayBmb3IgY2Fwc25lZ290aWF0aW9uCgkgIFRoZSB0ZXN0IGJ1aWxkcyBhIHRyZWUgbGlrZSBncmFwaCBoYXZpbmcgY29udmVyc2lvbiBhbmQgYmFzZXRyYW5zZm9ybSBlbGVtZW50cy4KCjIwMTAtMDUtMTggMTc6NTE6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIGJlbmNobWFya3M6IHVzZSBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkgaW5zdGVhZCBvZiBvd24gaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMTggMTg6Mzg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgaml0dGVyIHRvIGRlYnVnIG91dHB1dAoKMjAxMC0wNS0xOCAxODozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXAgdHlwZSByZWdpc3RyYXRpb24gYSBsaXR0bGUKCSAgV2UgY2FuIG1ha2Ugc29tZSBzdHJ1Y3RzIGNvbnN0IHN0YXRpYyB3aXRoIGxpdHRsZSBlZmZvcnQuCgoyMDEwLTA1LTE3IDEzOjA5OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOSU5HIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MsIHBhcnQgSUkKCjIwMTAtMDUtMTQgMTg6MjI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0ZDY3YmQ2IHRvIDM1N2IwZGIKCjIwMTAtMDUtMTQgMTE6NTI6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNvbW1lbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cAoJICBNYWtlIGNvbW1lbnQgbW9yZSBzcGVjaWZpYywgcmVwb3NpdGlvbiBpdCBhbmQgYWRkIG1vcmUgb2YgdGhlIGtpbmQuCgkgIE1vdmUgb25lIGlmZGVmJ2VkIGZ1bmN0aW9uIGFyb3VuZC4KCjIwMTAtMDUtMTMgMDg6MjE6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTaW1wbGlmeSBmcmFjdGlvbnMgYmVmb3JlIGRvaW5nIGNhbGN1bGF0aW9ucyB0aGF0IGNvdWxkIGNhdXNlIG92ZXJmbG93cwoJICAuLi4gdG8gcHJldmVudCBzb21lIHVubmVjZXNzYXJ5IG92ZXJmbG93cyBmcm9tIGhhcHBlbmVuaW5nLgoKMjAxMC0wNS0xMyAwODowMDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEdDRCBpcyAwIGlmIGJvdGggcGFyYW1ldGVycyBhcmUgMCwgZG9uJ3QgZGl2aWRlIGJ5IHplcm8KCSAgQW5kIHR1cm4gb3ZlcmZsb3cgY2hlY2tzIGZyb20gYXNzZXJ0aW9ucyBpbnRvIHNpbXBsZSBjaGVja3MgdG8KCSAgcmV0dXJuIEZBTFNFLgoKMjAxMC0wNS0xMyAwNzo1MToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNpbXBsaWZ5IHJlc3VsdCBvZiBnc3RfZnJhY3Rpb25fbXVsdGlwbHkoKQoKMjAxMC0wNS0xMCAxMzoyNTowNCAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIGZhcTogdXBkYXRlZCBsaW5lIGFib3V0IGphY2sgb3V0cHV0CgoyMDEwLTA1LTAzIDExOjMyOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBSZWFkIHJldHVybiB2YWx1ZSB0byBtYWtlIGNsYW5nL2ljYyBoYXBweQoKMjAxMC0wNS0wNiAxNjo0MTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGRvbid0IGNoZWNrIHR3aWNlIGZvciBjaGFuZ2VkIGNhcHMgcGVyIHB1c2giCgkgIFdlIG5lZWQgdG8gY2hlY2sgdGhlIHBhZCBjYXBzIG9uIHRoZSBzcmNwYWQgYXMgd2VsbCBhcyBvbiB0aGUgc2lua3BhZC4gUmV2ZXJ0CgkgIHRoaXMgY29tbWl0IGFzIGl0IHJlbW92ZXMgdGhlIGNoZWNrIG9uIHRoZSBzcmNwYWQgYW5kIGNhbiBsZWF2ZSB0aGUgc3JjcGFkCgkgIHVubmVnb3RpYXRlZCAob3IgbmVnb3RpYXRlZCB3aXRoIHdyb25nIGNhcHMpCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDdkYzFlNWI0OTU4MGE4OWJmZWYyN2ZmMjc0NzZkNTFmYjNjZTJjMi4KCjIwMTAtMDUtMDYgMTc6MDI6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjaGVjayB0d2ljZSBmb3IgY2hhbmdlZCBjYXBzIHBlciBwdXNoCgkgIGdzdF9wYWRfY2hhaW5fZGF0YV91bmNoZWNrZWQoKSBkb2VzIHRoZSBzYW1lIGNoZWNrIGFscmVhZHkuCgoyMDEwLTA1LTA2IDE2OjUxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVmbG93IHRvIHRydW5jYXRlIGNhcHMganVzdCBvbmNlCgkgIFdlIGdldCB3cml0YWJsZSBjYXBzIGZyb20gdGhlIGludGVyc2VjdGlvbiAodW5sZXNzIGl0IGZhaWxlZCkuIEFzIHdlIHRydW5jYXRlCgkgIHRob3NlIGFueXdheSwgd2UgZG9uJ3QgbmVlZCB0byBtYW51YWx5IGNvcHkgdGhlIGZpcnN0IHN0cnVjdHVyZS4KCjIwMTAtMDUtMDQgMTM6Mjk6MDIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogZml4IGdzdC1ydW4gd3JhcHBlciB0byB3b3JrIG9uIFdpbmRvd3MKCSAgRml4ZXMgIzYxNzYyNQoKMjAxMC0wNS0wMyAwMDoyNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGRvY3M6IGRvY3VtZW50IHRoYXQgZ3N0X2J5dGVfd3JpdGVyX3B1dF9zdHJpbmcqKCkgd3JpdGVzIHRoZSB0ZXJtaW5hdG9yIHRvbwoKMjAxMC0wNS0wNSAxMjowMTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogY2xhcmlmeSB0aGUgcHVsbF9yYW5nZSBmdW5jdGlvbnMKCSAgQ2xhcmlmeSB0aGUgZ3N0X3BhZF9wdWxsX3JhbmdlKCksIEdzdEJhc2VTcmM6OmNyZWF0ZSgpLCBnc3RfcGFkX2dldF9yYW5nZSgpCgkgIGFuZCBHc3RQYWRHZXRSYW5nZSBmdW5jdGlvbnMgYSBsaXR0bGUuCgkgIEZpeGVzICM2MTc3MzMKCjIwMTAtMDUtMDQgMTE6NDU6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTAtMDQtMzAgMTE6Mjc6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSByZWZmZWQgX2dldF9jYXBzKCkgdmVyc2lvbgoJICBXZSBkb24ndCBuZWVkIHRvIGhhdmUgYSB3cml0YWJsZSBjb3B5IHNvIHdlIGNhbiB1c2UgdGhlIF9yZWZmZWQKCSAgdmVyc2lvbiBpbnN0ZWFkLgoKMjAxMC0wNC0yOSAyMTo1NzoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIGdlbyBsb2NhdGlvbiBkaXJlY3Rpb24gdGFncwoJICBBZGRzIDMgbmV3IGdlbyBsb2NhdGlvbiB0YWdzIGludm9sdmluZyBkaXJlY3Rpb24gYW5kCgkgIG1vdmVtZW50IG9mIGNhcHR1cmUuIFRob3NlIGFyZToKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DQVBUVVJFX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX1NQRUVECgkgIEZpeGVzICM2MTcyMjMKCjIwMTAtMDQtMTYgMDY6NTc6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIgYW5kIEdTVF9UQUdfREVWSUNFX01PREVMCgkgIEFkZHMgdGhvc2UgbmV3IHRhZ3MgdG8gZGVzY3JpYmUgdGhlIGRldmljZSBtYW51ZmFjdHVyZXIgYW5kCgkgIG1vZGVsIHVzZWQgdG8gY3JlYXRlIG1lZGlhcy4KCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIKCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NT0RFTAoJICBGaXhlcyAjNjE1OTQxCgoyMDEwLTA1LTAyIDE5OjQzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBwd2c6IHJlbW92ZSBjb25mdXNpbmcgbWV0YWRhdGEgZXhhbXBsZSB3aXRoIDAuOCBjb2RlCgkgIEZpeGVzICM1MzQzMTQuCgoyMDEwLTA1LTAyIDE5OjMwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgbWFudWFsOiBhZGQgbWluaW1hbCB0YWcgcmVhZGluZyBleGFtcGxlCgkgIFNob3VsZCBwcm9iYWJseSBwdXQgdGhhdCBpbnRvIHRlc3RzL2V4YW1wbGVzIGFuZCBmaWd1cmUgb3V0IGhvdyB0bwoJICBnZXQgaXQgaW5jbHVkZWQgYXV0b21hdGljYWxseSwgYnV0IGNhbid0IGJlIGJvdGhlcmVkIHJpZ2h0IG5vdy4KCjIwMTAtMDQtMzAgMTM6MTA6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byAyLjIwCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMDQtMjkgMjM6Mjk6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG9ubHkgd2FybiBpZiBtZXRhZGF0YSBpcyBub3Qgd3JpdGFibGUgd2hlbiBpdCBzaG91bGQgYmUsIGRvbid0IHJldHVybiBhcyB3ZWxsCgkgIE1ha2Ugc3VyZSB3ZSBleGVjdXRlIHRoZSBzYW1lIGNvZGUgcGF0aCBpbiBnaXQgdmVyc2lvbnMgYW5kIGluIHJlbGVhc2VzLAoJICBzbyBqdXN0IHdhcm4gd2hlbiBtZXRhZGF0YSBpc24ndCB3cml0YWJsZSB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgaW5zdGVhZAoJICBvZiBiYWlsaW5nIG91dC4KCjIwMTAtMDQtMjkgMjM6MjY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSAnYWRkaW5nIGZsdXNoaW5nIHBhZCcgd2FybmluZyBtb3JlIHVzZWZ1bAoJICBUaGlzIGlzIGEgcHJldHR5IGNvbW1vbiBpc3N1ZSB3aXRoIGdob3N0IHBhZHMsIGxldCdzIG1ha2UKCSAgdGhlIHdhcm5pbmcgbW9yZSBoZWxwZnVsIGFuZCB0ZWxsIHBlb3BsZSB3aGF0IHRoZXkgbmVlZAoJICB0byBkbyB0byBmaXggaXQuCgoyMDEwLTA0LTI4IDE3OjE1OjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1wIG9wdGlvbiB0byBkaXNhYmxlIHBsYXkgaGFuZGxlci4KCSAgU2FtZSBsb2dpYyBhcyBmb3IgdGhlIGZhdWx0IGhhbmRsZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBzb21lIGRlYnVnL3RyYWNpbmcgdG9vbHMKCSAgdGhhdCBuZWVkIHRvIGdyYWIgU0lHVVNSMSBhbmQgU0lHVVNSMiB0aGVtIHNlbGYuCgoyMDEwLTA0LTE1IDEwOjM2OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgcGVyY2VudGFnZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcmllcwoJICBJZiB1cHN0cmVhbSBkb2VzIG5vdCBoYW5kbGUgdGhlbSwgdGhlbiBpbXBsZW1lbnQgdGhvc2Ugb3Vyc2VsZi4KCjIwMTAtMDQtMTQgMTc6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBnc3RfcGFkX3BlZXJfcXVlcnkgaW5zdGVhZCBvZiByZWludmVudGluZy4KCjIwMTAtMDQtMTQgMTc6NDY6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHF1ZXJpZXM6IGFkZCBtb3JlIGxvZ2dpbmcKCSAgTG9nIGh1bWFuIHJlYWRhYmxlIGZvcm1hdHMgYW5kIGxvZyBxdWVyeSByZXN1bHQuCgoyMDEwLTA0LTE5IDIwOjM1OjM2ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNhcHM6IERvIG5vdCBhbGxvdyBmaXhhdGluZyBlbXB0eSBjYXBzCgkgIFBhc3NpbmcgZW1wdHkgY2FwcyB0byBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgaXMgaW52YWxpZCwgYXMgZW1wdHkgY2FwcwoJICBjYW5ub3QgYmUgZml4YXRlZC4KCjIwMTAtMDQtMjYgMjE6NTI6MDcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IFVzZSBHX0dOVUNfV0FSTl9VTlVTRURfUkVTVUxUIGZvciBtYWtlX3dyaXRhYmxlKCkKCSAgUGVvcGxlIG9mdGVuIGNhbGwKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSAoY2Fwcyk7CgkgIGluc3RlYWQgb2YKCSAgY2FwcyA9IGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgKGNhcHMpOwoJICBhbmQgY2F1c2UgYSBidWcuIFdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIHJldHVybiB2YWx1ZSBoZWxwcyBoZXJlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjU0MSNjMiBmb3IgYW4gZXhhbXBsZS4KCjIwMTAtMDQtMjMgMDY6MjQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdDogVXNlIEdFcnJvciBib3hlZCB0eXBlIGZyb20gR09iamVjdCAyLjI1LjIgaW5zdGVhZCBvZiBvdXIgb3duIGlmIHBvc3NpYmxlCgoyMDEwLTA0LTI5IDE0OjUwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQuCgoyMDEwLTA0LTE1IDE3OjExOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIGV2ZW50cwoKPT09IHJlbGVhc2UgMC4xMC4yOSA9PT0KCjIwMTAtMDQtMjcgMjM6NDI6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI5CgoyMDEwLTA0LTI3IDIzOjQwOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wNC0yNyAwOTo0MjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBhZGQgbW9yZSB0ZXN0cyBmb3IgY29udHJvbGxlcgoJICBUaGUgdGVzdHMgdmVyaWZ5IHRoYXQgYnVnICM2MTY4NDYgaXMgaW5kZWVkIGZpeGVkLgoKMjAxMC0wNC0yNiAxNTo0MzoxNyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfaXRlcgoJICBUaGUgbG9naWMgaW4gdGhhdCBmdW5jdGlvbiBpcyBicm9rZW4uIFZhcmlvdXMgTlVMTC1jaGVja2luZyBiYW5kYWlkcyBmb3IKCSAgZ3VhcmFudGVlZCBub24tTlVMTCB2YXJpYWJsZXMgZGlkbid0IGV2ZW4gaGVscCB0aGVyZS4KCSAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmdW5jdGlvbiB0byBjaGVjayBpZiBhIHByZXZpb3VzIGl0ZW0gZXhpc3RzCgkgIGJlZm9yZSBmZXRjaGluZyBpdCBpbnN0ZWFkIG9mIGFmdGVyLiBUaGlzIG1ha2VzIGFsbCBvdGhlciB0ZXN0cwoJICB1bm5lY2Vzc2FyeS4KCSAgSW4gcGFydGljdWxhciwgaXQgbWFrZXMgdGhlIGNoZWNrIGZvciBhbiBlbXB0eSBsaXN0IHVubmVjZXNzYXJ5LCBiZWNhdXNlCgkgIGZvciBlbXB0eSBsaXN0cyB0aGUgb25seSBpdGVyIGlzIHRoZSBiZWdpbiBpdGVyIChhbmQgdGhlIGVuZCBpdGVyKSBhbmQKCSAgc28gdGhlIG5ldyBjaGVjayBjYXRjaGVzIHRoYXQgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjg0NgoKMjAxMC0wNC0yNSAyMToxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMjAgMTc6MTc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGRvYXA6IHVwZGF0ZSByZXBvc2l0b3J5IGluZm8gZnJvbSBjdnMtPmdpdCBhbmQgbWFpbnRhaW5lcnMKCjIwMTAtMDQtMjMgMTQ6Mzk6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmYzg1ODY3IHRvIDRkNjdiZDYKCjIwMTAtMDQtMTYgMjA6MDk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogQ29uc2lzdGVudGx5IHVzZSBNeUZpbHRlciBpbnN0ZWFkIG9mIHNvbWV0aW1lcyBFeGFtcGxlRmlsdGVyIGluIHRoZSBleGFtcGxlCgkgIEZpeGVzIGJ1ZyAjNjE1NTc5LgoKMjAxMC0wNC0xNiAxNDoyMjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGVudW1zIGZvciBjdXN0b20gZmxvdyByZXR1cm4gc3VjY2VzcyBhbmQgZXJyb3IgY29kZXMKCSAgVGhpcyB3YXkgcGVvcGxlIGNhbiBqdXN0ICNkZWZpbmUgdGhlaXIgb3duIGN1c3RvbSBmbG93IHJldHVybnMgdG8KCSAgb25lIG9mIHRoZXNlIHdpdGhvdXQgaGF2aW5nIHRoZSBjb21waWxlciAoZXNwLiBnY2MtNC41KSBjb21wbGFpbgoJICBhYm91dCBjb21wYXJpbmcgaW50ZWdlcnMgdG8gYW4gZW51bSBvciB0aGUgZW51bSBub3QgYmVpbmcgbGlzdGVkCgkgIEZpeGVzICM2MTU4ODAuCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzIKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1JfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUl8yCgoyMDEwLTA0LTE1IDIyOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBVc2UgY29ycmVjdCBzZXR0ZXIgZm9yIGRvdWJsZSBHVmFsdWVzCgoyMDEwLTA0LTE1IDExOjA4OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGRvYyBmaXhlcwoJICBBZGRzIG1pc3NpbmcgJzonIHRvIHRhZ3MgZG9jcwoKMjAxMC0wNC0xNSAxMTozODoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGJvZ3VzIHZhcmlhYmxlIHR5cGUKCSAgVGhlIHJlc3VsdCBvZiBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20oKSBpcyBub3QgYSBHc3RJdGVyYXRvciAqLgoKMjAxMC0wNC0xNCAxMjoyMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMTQgMTI6MTI6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNC0xNCAxMjo0Mzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIHdoYXQgc3RydWN0dXJlIHN0cmluZyB3ZSBmYWlsZWQgdG8gcGFyc2UKCjIwMTAtMDQtMTQgMTc6NTY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggcmVmY291bnQgd2hlbiByZW1vdmluZyBlbGVtZW50cyBkdXJpbmcgc3RhdGUgY2hhbmdlCgkgIFdoZW4gYW4gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYSBiaW4gYmVjYXVzZSBpdCBjYXVzZWQgYSBzdGF0ZSBjaGFuZ2UgZXJyb3IsCgkgIGRvbid0IHVucmVmIHRoZSBjaGlsZCB0d2ljZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgZXJyb3IuCgkgIEZpeGVzICM2MTU3NTYKCjIwMTAtMDQtMTQgMTE6NTA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG1vcmUgTERGTEFHUyAtPiBMREFERCBmaXhlcwoKMjAxMC0wNC0xNCAxMTo0MDoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiAkKExJQk0pIGJlbG9uZ3MgaW50byBMSUJBREQgbm90IExERkxBR1MKCjIwMTAtMDQtMDggMDk6MTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB3aGVuIGJ1aWxkaW5nIGV4ZWN1dGFibGVzLCBwdXQgbGlicyB0byBsaW5rIHRvIGludG8gTERBREQgaW5zdGVhZCBvZiBMREZMQUdTCgkgIFVzZSBmb29fTERBREQgaW5zdGVhZCBvZiBmb29fTERGTEFHUyB0byBzcGVjaWZ5IHRoZSBsaWJyYXJpZXMgdG8gbGluayB0by4KCSAgVGhpcyBzaG91bGQgbWFrZSBzdXJlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBsaW5rZXIgaW4gdGhlIHJpZ2h0CgkgIG9yZGVyLiBTZWUgIzYxNTY5Ny4KCjIwMTAtMDQtMTQgMTE6MTk6MTQgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgLVdjYXN0LWFsaWduCgkgIEFwcGFyZW50bHkgZ2NjIHdhcm5zIHRoYXQgR3N0TWluaU9iamVjdCBpcyBub3QgY2FzdGFibGUgdG8KCSAgR3N0RXZlbnQvTWVzc2FnZS9CdWZmZXIgZHVlIHRvIHRoZW0gY29udGFpbmluZyA2NGJpdCB2YXJpYWJsZXMsIGV2ZW4KCSAgdGhvdWdoIEFSTSBoYWNrZXJzIGNsYWltIHRoYXQgdGhvc2Ugb25seSBuZWVkIDRieXRlIGFsaWdubWVudC4gQW5kIGFzCgkgIGxvbmcgYXMgZ2NjIGJlaGF2ZXMgdGhhdCB3YXksIHRoaXMgd2FybmluZyBpcyBub3QgdmVyeSB1c2VmdWwuCgkgIFNvIHdlJ2xsIHJlbW92ZSB0aGUgd2FybmluZyB1bnRpbCB0aGlzIHByb2JsZW0gaXMgZml4ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTU2OTgKCjIwMTAtMDQtMTMgMTA6NDg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbW92ZSBzdXBlcmZsdW91cyByZXR1cm4gc3RhdGVtZW50cyBhdCBlbmQgb2YgQUNfVFJZX3tMSU5LLENPTVBJTEV9IGJsb2NrcwoJICBTcG90dGVkIGJ5IEpGIE1lcnRlbnMuIFNlZSAjNjE0NzY3LgoKMjAxMC0wNC0wNSAxMzo0NjoyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hhbmdlIGNoZWNrIGZvciB1aW50MTI4X3QKCSAgQ2hlY2sgZm9yIGFiaWxpdHkgdG8gZGl2aWRlIHVpbnQxMjhfdCB2YWx1ZXMsIHNpbmNlIHRoYXQgd2hhdAoJICB3ZSBhY3R1YWxseSB1c2UgaXQgZm9yIChpbiBnc3R1dGlscy5jKS4gIFRoZSBleGlzdGVuY2Ugb2YgYQoJICB1aW50MTI4X3QgdHlwZSBkb2Vzbid0IG1lYW4gdGhlIGNvbXBpbGVyIGNhbiBhY3R1YWxseSBnZW5lcmF0ZQoJICBjb2RlIGZvciBpdC4gIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGxpbmsgdGhlCgkgIHJlc3VsdCBzdWNjZXNzZnVsbHkuCgkgIEZpeGVzIGJ1ZyAjNjE0NzY3LgoKMjAxMC0wNC0xMiAxNToxMzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogbWlub3IgbW92aW5nLXBsdWdpbnMgYWRkaXRpb24KCjIwMTAtMDQtMDkgMTU6NDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogbWFrZSAtcSBiZSBtb3JlIHF1aWV0CgkgIENvbnZlcnQgc29tZSBnX3ByaW50IGludG8gUFJJTlQgc28gdGhhdCB0aGV5IGFyZSBub3QgcHJpbnRlZCB3aGVuIHRoZSAtcSBvcHRpb24KCSAgaXMgc2VsZWN0ZWQuCgoyMDEwLTA0LTA5IDE1OjE5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTAtMDQtMDkgMTM6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmM6IGFsbG93IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZXMgb24gdGhlIHVyaQoJICBQYXJzZSBhIHNpemU9dmFsdWUgZnJvbSB0aGUgcXVlcnkgc3RyaW5nIHRvIHNwZWNpZnkgYSBzaXplLiBUaGlzIGlzIGludGVyZXN0aW5nCgkgIHdoZW4gcmVhZGluZyBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgYWN0dWFsbHkgaGFzIGEgc2l6ZSAoYW5kIGlzIG5vdAoJICBzdGF0LWFibGUsIHN1Y2ggYXMgdGhlIHNvY2tldCBvZiBhbiBodHRwIGNvbm5lY3Rpb24pCgoyMDEwLTA0LTA5IDEyOjM1OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB3aGVuIEVPUyB3ZSBrbm93IHRoZSBkdXJhdGlvbgoJICBXaGVuIHdlIGFyZSBFT1MsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW4gdXBzdHJlYW0gcXVlcnkgZm9yIHRoZSBkdXJhdGlvbiBpbiBieXRlcwoJICBiZWNhdXNlIHdlIGFscmVhZHkga25vdyBpdCBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IHdyaXR0ZW4gYnl0ZS4KCjIwMTAtMDQtMDkgMTM6MDg6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBJbml0aWFsaXplIHR5cGVmaW5kL2VsZW1lbnQgZmFjdG9yeSByZWdpc3RyeSBjaHVua3Mgd2l0aCB6ZXJvZXMKCSAgVGhpcyBtYWtlcyB2YWxncmluZCBzdG9wIGNvbXBsYWluaW5nIGFib3V0IHJlYWRpbmcgdW5pdGlhbGl6YXRlZCBtZW1vcnksCgkgIHdoaWNoIGlzIG5vdCBpbml0aWFsaXplZCBiZWNhdXNlIGl0J3MganVzdCBjb21waWxlci1hZGRlZCBzdHJ1Y3QgcGFkZGluZy4uLgoKMjAxMC0wNC0wOSAxMToxOTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ2NmE4YzMgdG8gZmM4NTg2NwoKMjAxMC0wNC0wOCAxMDoxMDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgbmV3IC5zdmcgZmlsZSBpbiBkb2NzCgoyMDEwLTA0LTA4IDEwOjQ3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiB1c2UgaW5mb3JtYWxmaWd1cmUgdGFnIHRvIG5vdCBzeW50YXggaGlnaGxpZ2h0IHRoZSBjb250ZW50CgoyMDEwLTAzLTI1IDEwOjM1OjEzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0LXVuaXZlcnNlLmRvdDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGNvbmNlcHQgbWFwCgkgIEFkZCBhIGdyYXBodml6IGRvdCBmaWxlLiBBZGQgcnVsZXMgdG8gcmVuZGVyIGl0IHRvIHN2ZyBhbmQgaW5jbHVkZSBpbiBkb2NzLgoJICBOb2RlcyBhcmUgY2xpY2thYmxlLiBJdCBpcyBhbiBhdHRlbXB0IHRvIHNob3cgaG93IHRoaW5ncyBmaXQgdG9nZXRoZXIuCgoyMDEwLTA0LTA3IDE5OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IGFkZCBhIGZldyBjb2RlIHNuaXBwZXRzIHRoYXQgc2hvdyBob3cgdG8gdXNlIGdzdF9tZXNzYWdlX3BhcnNlXyooKS4KCjIwMTAtMDQtMDcgMTk6MDU6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYnVtcCBhdXRvY29uZiByZXF1aXJlbWVudCB0byAyLjYwIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24ubTQKCSAgUmVxdWlyZSBhdXRvY29uZiAyLjYwICh3aGljaCB3YXMgcmVsZWFzZWQgaW4gSnVuZSAyMDA2KS4KCSAgRml4ZXMgIzYwMDcxOC4KCjIwMTAtMDQtMDcgMTI6Mjk6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIEZpeCAnZ3JhbW1hci50YWIuYzo4MTU6Njogd2FybmluZzogIllZRU5BQkxFX05MUyIgaXMgbm90IGRlZmluZWQnCgkgIGNvbXBpbGVyIHdhcm5pbmcgYW5kIHRoZSBzYW1lIGZvciBZWUxUWVBFX0lTX1RSSVZJQUwuIFRoZSB0d28KCSAgdHJhbnNsYXRlZCBzdHJpbmdzIGFyZW4ndCBwYXJ0aWN1bGFybHkgaGVscGZ1bCwgc28ganVzdCBkZWZpbmUKCSAgWVlFTkFCTEVfTkxTIHRvIDAuCgoyMDEwLTA0LTA3IDEyOjI0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBGaXggJ2dyYW1tYXIueTo2Njg6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhnX2ZyZWXigJkgZGlzY2FyZHMgcXVhbGlmaWVycwoJICBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUnIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA0LTA3IDE2OjA1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogYWRkIFNpbmNlOiBtYXJrZXJzCgoyMDEwLTA0LTA3IDA5OjMxOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBnc3RzeXN0ZW1jbG9jazogZG9uJ3QgbGVhayB0aGUgc3lzdGVtIGNsb2NrCgoyMDEwLTA0LTA1IDAwOjAxOjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBvdXQgb2Ygc291cmNlZGlyIGJ1aWxkIGZvciBjaGVjawoJICBNb3ZlIHRoZSBpbnRlcm5hbCBoZWFkZXIgdG8gbm9kaXN0IChhcyB3ZSBjb3B5IGl0IGFyb3VuZCBhbnl3YXkpLgoJICBVc2UgYnVpbGRkaXIgaW4gcGF0dGVybiBzdWJzdGl0dXRpb24gZm9yIGl0LgoJICBGaXhlcyAjNjE0ODMuCgoyMDEwLTA0LTA2IDE3OjQ2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDEwLTAyLTIzIDA5OjE2OjU1ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIEtlZXAgdHJhY2sgb2YgcGVuZGluZyBuZXdzZWdtZW50IGluIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIHRvIGF2b2lkIHB1c2hpbmcgbmV3c2VnbWVudCB1cGRhdGUgYmVmb3JlIG5ld3NlZ21lbnQuCgoyMDEwLTA0LTA0IDE1OjIxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0BlbnNvbmljLWRlc2t0b3AubG9jYWxkb21haW4+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogaW1wcm92ZSBldmVudCBkb2NzCgkgIFJlcGhyYXNlIGZpcnN0IHBhcmFncmFwaCBvZiBzZWN0aW9uIGRvY3MuIEFkZCBkZXRhaWwgdG8gZW9zIGV2ZW50IGRvY3MuCgoyMDEwLTAzLTI5IDA4OjQzOjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogQWRkIC0tbGVhdmUtcHJlcHJvY2Vzc29yLXNwYWNlIGZvciBpbmRlbnQgMi4yLjExCgkgIEl0IHdhcyBwcmV2aW91c2x5IGJyb2tlbiwgd2hpY2ggaXMgd2h5IHdlIG5ldmVyIG5lZWRlZCBpdC4gVGhpcyBrZWVwcyBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5IHdpdGggaW5kZW50IDw9IDIuMi4xMQoKMjAxMC0wMy0zMSAxMDo0MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogcG9pbnQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgdG8gLmxhIGZpbGVzCgkgIFBvaW50IGctaXItc2Nhbm5lciB0byB0aGUgLmxhIGZpbGUgb2Ygb3VyIGxpYnJhcnksIHdoaWNoIGhvcGVmdWxseQoJICBtYWtlcyBpdCBmaW5kIHRoZSByaWdodCBkZXBlbmRlbmNpZXMgaW4gYWxsIGNhc2VzIChpZS4gb3VyIGxvY2FsbHkKCSAgYnVpbHQgbGliZ3N0cmVhbWVyIGFuZCBub3QgdGhlIHN5c3RlbS1pbnN0YWxsZWQgb25lKS4gVGhpcyBpcyBhbHNvCgkgIGhvdyBpdCdzIGRvbmUgaW4gR3RrKyBhbmQgaG93IGl0J3MgZG9jdW1lbnRlZCBpbiB0aGUgd2lraSwgc2VlCgkgIGh0dHA6Ly9saXZlLmdub21lLm9yZy9HT2JqZWN0SW50cm9zcGVjdGlvbi9BdXRvdG9vbHNJbnRlZ3JhdGlvbgoJICBCYXNlZCBvbiBwYXRjaGVzIGJ5IFZpbmNlbnQgVW50eiBhbmQgQWxhbiBLbm93bGVzLgoJICBGaXhlcyAjNjAzNzEwLgoKMjAxMC0wNC0wMiAwMToxNjoxNiArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXBAdGVjbm9jb2RlLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBVc2UgR19HTlVDX0NPTlNUIGluc3RlYWQgb2YgR19HTlVDX1BVUkUgZm9yIGNvbnZlcnNpb24gZnVuY3Rpb25zCgkgIEZpeGVzIGJ1ZyAjNjE0NjI5LgoKMjAxMC0wNC0wMSAxMzoxOTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBuZXdzZWdtZW50IGV2ZW50CgoyMDEwLTA0LTAxIDEyOjM0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBjb21tb246IFVwZGF0ZSB0byBsYXRlc3QgcmV2aXNpb24gZm9yIG5ldyBzdXBwcmVzc2lvbnMKCjIwMTAtMDMtMzEgMjI6MDc6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIHVwZGF0aW5nIHBsYXliYWNrIHJhdGUKCSAgVGVzdHMgaWYgYSBzZWVrIHdpdGggYm90aCBwb3NpdGlvbnMgYmVpbmcgR1NUX1NFRUtfVFlQRV9OT05FIGlzIGhhbmRsZWQuCgoyMDEwLTAzLTMxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBjb3B5IGFuZCBjb252IGZ1bmN0aW9uIHRvIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTA6NTQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTE6MjY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBjb21tdW5pY2F0aW9uIHBpY3R1cmUgYW5kIHNlY3Rpb24KCSAgSW5kaWNhdGUgdGhhdCBvbmx5IG1lc3NhZ2VzIGdvIHZpYSBidXMuIEFsc28gYWRkIHF1ZXJpZXMgYmV0d2VlbiBlbGVtZW50cy4KCjIwMTAtMDMtMzEgMTA6MjQ6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGV2ZW50OiBVc2UgY29ycmVjdCB0eXBlIGZvciB0aGUgbWVzc2FnZSBwYXJhbWV0ZXIgaW4gZ3N0X2V2ZW50X3tuZXcscGFyc2V9X3NpbmtfbWVzc2FnZQoJICBUaGUgc3RydWN0IHdvcmthcm91bmQgd2FzIG9ubHkgbmVjZXNzYXJ5IGluIGdzdGV2ZW50LmgsIGdzdHV0aWxzLmgga25vd3MgYWJvdXQgR3N0TWVzc2FnZQoKMjAxMC0wMy0zMSAwOTo1Njo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBhZGQgY29tbXVuaWNhdGlvbiBvdmVydmlldyB0byBkb2NzCgkgIEFkZCBhIHNlY3Rpb24gdG8gdGhlIGJhc2ljcyB0aGF0IHNob3cgYnVmZmVycywgZXZlbnRzLCBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICB0b2dldGhlciBhbmQgZGVzY3JpYmUgdGhlIGJhc2ljcy4KCjIwMTAtMDMtMzAgMTU6NTY6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBhZGQgZ2lyZGlyIGFuZCB0eXBlbGliZGlyIHZhcmlhYmxlcyB0byAucGMgZmlsZXMKCSAgU28gdGhhdCB0aGUgLWJhc2UgbGlicyBjYW4gZmlndXJlIG91dCB0aGUgcmlnaHQgaW5jbHVkZSBwYXRocyBmb3IgdGhlCgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0b29scyBldmVuIGlmIGNvcmUgZ290IGluc3RhbGxlZCBpbnRvIGEgcHJlZml4CgkgIHRoYXQncyBub3QgdGhlIHNhbWUgcHJlZml4IGFzIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpcyBpbnN0YWxsZWQgaW4KCSAgb3IgaXQncyBiZWluZyBidWlsZCBpbiBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXIgc2V0dXAuCgoyMDEwLTAzLTMwIDE1OjIyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZwoKMjAxMC0wMy0zMCAxNToyMDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJKiBtNC8uZ2l0aWdub3JlOgoJKiBtNC9NYWtlZmlsZS5hbToKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogbWFrZSBhdXRvdG9vbHMgcHV0IGl0cyBtNCBmaWxlcyBpbnRvIG00LyBpbnN0ZWFkIG9mIGNvbW1vbi9tNC8KCSAgVGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIG90aGVyIG1vZHVsZXMsIGFuZCBnZXRzIHJpZCBvZiB0aGUgYW5ub3lpbmcKCSAgZGlydHkgc3RhdHVzIGZvciBjb21tb24gd2hlbiBkb2luZyBnaXQgc3RhdHVzIChhdCBsZWFzdCBvbmNlIHlvdSBjbGVhbgoJICBvdXQgdGhlIG9sZCBmaWxlcyBmcm9tIHRoZXJlKS4KCjIwMTAtMDMtMzAgMTI6MzM6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGJ1aWxkIGV4YW1wbGVzIHN1YmRpcmVjdG9yaWVzIGluIHBhcmFsbGVsIGlmIHJlcXVlc3RlZAoKMjAxMC0wMy0yOCAyMDo1NTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgY2FwcyBzdWdnZXN0aW9uIG9uIHBhZF9hbGxvYwoJICBSZWZhY3RvciB0aGUgaGFuZGxpbmcgb2Ygc2luayBzdWdnZXN0aW9uIGNhcHMgdmFyaWFibGUKCSAgc28gdGhhdCBpdCBhbHdheXMgaGFzIGEgcmVmIHRvIHRoZSBjYXBzIGl0IHBvaW50cyB0by4KCSAgTWFrZXMgdGhlIGNvZGUgY2xlYXJlci4KCjIwMTAtMDMtMjkgMTY6MzQ6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgcmVhc29uIGZvciB1c2luZyBmdWNudGlvbiBwcm90b3MgaGVyZS4KCjIwMTAtMDMtMjkgMTY6MTM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFsd2F5cyBkZWZpbmUgZHVtbXkgZGVidWcgY2F0ZWdvcnkgYXMgYSBmdW5jdGlvbiBwcm90b3R5cGUKCSAgSXQgZG9lcyBub3Qgc2VlbSB0byBtYWtlIHNlbnNlIHRvIGRlZmluZSB0aGlzIGFzIGEgZnVuY3Rpb24gb25seSBpZiB3ZSBoYXZlCgkgIHZhcmFyZ3MgbWFjcm9zLgoKMjAxMC0wMy0yOCAxNToxMDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IGZpeCByZWRlY2xhcmF0aW9uIGVyb3JzIHdoZW4gYnVpbGRpbmcgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoJICBHaXZlIGR1bW15IHN5bWJvbHMgYSB1bmlxZSBuYW1lLgoKMjAxMC0wMy0yOCAxNDo0OTowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IG1vdmUgc29tZSBwcm90b3R5cGVzIG91dCBvZiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBNb3ZlIHRoZSBwcm90b3R5cGVzIHVwIHRvZ2V0aGVyLiBXZSBvbmx5IGRlZmluZSB0aGUgbWFjcm9zIGRpZmZlcmVudGx5LgoJICBGaXhlcyBidWcgIzYxNDE2NyBtb3N0bHkuCgoyMDEwLTAzLTI5IDE2OjA1OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiByZWFkZCB0aGUgdXNlIG9mIEdzdERlYnVnRnVuY1B0ciB0eXBlZGVmIGFuZCB0ZWxsIHdoeQoJICBUaGlzIHJldmVydHMgdGhlIHJlbGF0ZWQgY2hhbmdlcyBmcm9tIDNmNDk1NGU0MmQwNDQwYTdhNTk4YTkwODMyNWM0NWVhOWRiMDc2ZTQKCSAgYW5kIGZmYjBhNGUxOTA1YTg3MzE5MWY4YzgwMjM0NjI2MWU4YzQ0MzUwNjUuCgoyMDEwLTAzLTI5IDEwOjIyOjQzICswMTAwICBBbGFuIEtub3dsZXMgPGFsYW5AYWtia2hvbWUuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIG5ldDogZml4IHR5cG8gaW4gbmV0IGNsaWVudCBjbG9jayBzdHJ1Y3R1cmUKCSAgSXQncyBzb2NrYWRkcl9pbiwgbm90IHNvY2thZGRyX2lkLgoKMjAxMC0wMy0yNiAxNzoxMjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGFkZCBjcnVmdCBhbGVydCBmb3IgY29tbW9uL3NoYXZlKgoKMjAxMC0wMy0yOCAyMTowMjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBGaXggYnVpbGQgYXQgbGVhc3QgdW50aWwgdGhlIGNvcnJlY3QgZml4IGlzIGZvdW5kCgkgIFNlZSBidWcgIzYxNDE2Ny4KCjIwMTAtMDMtMjggMTk6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3RydWN0dXJlIGFiYnJldmlhdGlvbnMgYXJyYXkgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gdGhyZWFkc2FmZQoKMjAxMC0wMy0yOCAxODowNTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBGSVhNRSAwLjExIGZvciB1c2luZyBHU2xpY2UgZm9yIGFsbG9jYXRpb24KCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICBnc3Q6IFVzZSBHU2xpY2UgaW5zdGVhZCBvZiBub3JtYWwgZ19tYWxsb2MgaW4gbW9yZSBwbGFjZXMKCjIwMTAtMDMtMjggMTM6MTQ6MDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3JlIHNvbWUgcHJvdG90eXBlcyBvdXQgaWYgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgVGhlIGJ1aWxkIHdhcyBmYWlsaW5nIGJlY2FzdWUgb2YgYSBuZXcgd2FybmluZy4gVGhlcmUgYXJlIHN0aWxsIGZhaWx1cmVzCgkgICh0cmFja2VkIHZpYSBidWcgIzYxNDE2NykuCgoyMDEwLTAzLTI1IDIwOjA0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ld2x5LWFkZGVkIHN0cmluZ3MKCjIwMTAtMDMtMjUgMTk6NTY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogZml4IGludGVybWl0dGVudCBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcwoJICBVc2UgLk5PVFBBUkFMTEVMIHdoZW4gYnVpbGRpbmcgZG9jcy4gVGhpcyBhdm9pZHMgaW50ZXJtaXR0ZW50CgkgIG1ha2UgZGlzdGNoZWNrIGZhaWx1cmVzIGxpa2UgJ2NwOiBjYW5ub3QgY3JlYXRlIHJlZ3VsYXIgZmlsZQoJICBgYnVpbGQvaW1hZ2UuZW50aXRpZXMnOiBGaWxlIGV4aXN0cycgd2hlbiB1c2luZyAtak4uCgkgIEZpeGVzICM1OTA3MTguCgoyMDEwLTAzLTI1IDE4OjU3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIEdzdEVsZW1lbnREZXRhaWxzIGZyb20gdGhlIHB1YmxpYyBBUEkKCSAgSXQncyBub3QgbmVjZXNzYXJ5IGFueW1vcmUgdG8gZXhwb3NlIHRoaXMgYXMgcHVibGljIEFQSSBhbmQgdGhpcyBhbGxvd3MKCSAgZWFzaWVyIGV4dGVuc2lvbiBvZiB0aGUgZWxlbWVudCBkZXRhaWxzIGJ5IG5ldyBmaWVsZHMuCgoyMDEwLTAzLTI1IDE4OjQzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBoYW5kbGUgd3JpdGUgZXJyb3JzCgkgIEhhbmRsZSB3cml0ZSBlcnJvcnMgdG8gdGhlIHRlbXBvcmFyeSBkb3dubG9hZCBmaWxlIGFuZCBwb3N0IGVycm9ycyB3aGVuCgkgIHNvbWV0aGluZyB3ZW50IHdyb25nLgoKMjAxMC0wMy0yNSAxODoxMzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24KCSAgQWRkIGFuIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24gdGhhdCBpcyBhIGxpdHRsZSBtb3JlIGVmZmljaWVudCB0aGFuIHRoZSBnZW5lcmljCgkgIGRlZmF1bHQgcXVlcnkgaGFuZGxlci4KCjIwMTAtMDMtMjUgMTg6MTI6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgkgIE1lbnRpb24gdGhhdCBhIERVUkFUSU9OIG1lc3NhZ2UgZG9lcyBub3QgbWVhbiB0aGF0IG9uZSBjYW4gc2FmZWx5IHF1ZXJ5IHRoZQoJICBkdXJhdGlvbiBvbiBhIGJpbiwgdGhhdCBvbmx5IHdvcmtzIHdoZW4gdGhlIGJpbiBpcyBwcmVyb2xsZWQuCgoyMDEwLTAzLTI1IDE4OjA1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgZml4ZWQgRklYTUUKCjIwMTAtMDMtMjUgMTc6MzY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkZCB0aGUgYnVmZmVyaW5nIHBlcmNlbnQgaW4gQlVGRkVSSU5HIHF1ZXJ5CgoyMDEwLTAzLTI1IDE3OjIxOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXByb3ZlIGJ1ZmZlciBsZXZlbCBtZWFzdXJlbWVudCBpbiBkb3dubG9hZCBtb2RlCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgYnVmZmVyIGxldmVsIGluIHRoZSBjdXJyZW50IHJhbmdlIGluIGRvd25sb2FkIG1vZGUgc28KCSAgdGhhdCB3ZSBwb3N0IHRoZSBjb3JyZWN0IGJ1ZmZlcmluZyBtZXNzYWdlcy4KCjIwMTAtMDMtMjUgMTU6NTQ6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBkb24ndCB1c2UgZmFuY3kgc2hlbGwgZmVhdHVyZXMgd2hlbiBpbnZva2luZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBJdCdzIFBPU0lYLCBidXQgdGNzaCBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBpdC4KCjIwMTAtMDMtMjUgMTM6NDY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBmaXggUEtHX0NPTkZJR19QQVRIIHVzZWQgd2hlbiBjYWxsaW5nIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIE91ciBvd24gcGtnY29uZmlnIGRpcmVjdG9yeSBzaG91bGQgY29tZSBmaXJzdCwgc28gdGhhdCBwa2ctY29uZmlnIHVzZXMKCSAgdGhlIGluLXRyZWUgbGliZ3N0cmVhbWVyIGFuZCBub3Qgc29tZSBleHRlcm5hbCBvbmUgd2hlbiAtLXBrZz1nc3RyZWFtZXItMC4xMAoJICBpcyBwYXNzZWQgdG8gZy1pci1zY2FubmVyLgoJICBTZWUgIzYwMzcxMC4KCjIwMTAtMDMtMjUgMTA6Mjc6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgR3N0QWRhcHRlcjogYWRkIGEgdW5jaGVja2VkIHZhcmlhbnQgb2YgZmx1c2ggZm9yIGludGVybmFsIHVzYWdlCgkgIFRyaW1zIG9mZiAxMC0yMCUgY3B1IHRpbWUgd2hlbiB1c2luZyBnc3RfYWRhcHRlcl90YWtlW19idWZmZXJdCgoyMDEwLTAzLTE5IDE1OjEwOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZCBuZXcgX1VTRVJfUkFUSU5HIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgdXNlciBmYXZvcml0ZSBtZWRpYSByYXRpbmcuCgkgIFVzZXIgcmF0aW5nIGluZm9ybXMgaG93IG11Y2ggKGZyb20gMCB0byAxMDApIGEgdXNlcgoJICAnbGlrZXMnIGEgbWVkaWEuCgkgIEhhdmluZyBhbiBwZXJjZW50IHVpbnQgcmFuZ2UgZm9yIHRoaXMgaXMgZWFzeSB0byBtYXAgaW50byBvdGhlciBzY2FsZXMsCgkgIGxpa2Ugc29tZSBwbGF5ZXJzIHRoYXQgYWxsb3cgdXNlcnMgdG8gYXR0cmlidXRlICdzdGFycycgdG8gaXRzCgkgIG1lZGlhLgoJICBBUEk6IEdTVF9UQUdfVVNFUl9SQVRJTkcKCSAgRml4ZXMgIzUyMDY5NwoKMjAxMC0wMy0yNCAxOTowMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIG1vcmUgaW5mbyBpbiB0aGUgYnVmZmVyaW5nIHF1ZXJ5CgkgIEFkZCB0aGUgZXN0aW1hdGVkIGRvd25sb2FkIHRpbWUgYW5kIGVzdGltYXRlZCB0aW1lIGxlZnQgdG8gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICByZXN1bHRzIGFsb25nIHdpdGggdGhlIGVzdGltYXRlZCBkb3dubG9hZCBhbmQgcGxheWJhY2sgc3BlZWQuCgoyMDEwLTAzLTI0IDE4OjE4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgZmx1c2hpbmcgaW4gZG93bmxvYWQgYnVmZmVyaW5nCgkgIE1haW50YWluIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gY29udHJvbCBzcmMgYW5kIHNpbmsgZmxvd3JldHVybiB2YWx1ZXMgc28gdGhhdAoJICB3ZSBjYW4gdW5sb2NrIHRoZSBzcmMgcGFydCB3aXRob3V0IHNodXR0aW5nIGRvd24gdGhlIHNpbmsgcGFydC4KCSAgQWRkIGZsdXNoaW5nIGZvciB1cHN0cmVhbSBwdWxsIGJhc2VkIGVsZW1lbnRzIHRoYXQgdW5ibG9ja3Mgb3VyIGdldHJhbmdlCgkgIGZ1bmN0aW9uLiBUaGlzIGltcGxlbWVudHMgc2Vla2luZyB3aGVuIGJsb2NraW5nIGZvciBtb3JlIGRhdGEuCgkgIEFkZCBzb21lIGFyYml0cmFyeSB0aHJlc2hvbGQgYmVmb3JlIGF0dGVtcHRpbmcgYSBzZWVrLiBBZGQgYSBGSVhNRSBmb3IgdGhpcwoJICBiZWNhdXNlIHdlIG5lZWQgdG8gZmluZCBhIHNlbnNpYmxlIHRocmVzaG9sZCBiYXNlZCBvbiB0aGUgaW5wdXQgcmF0ZS4KCjIwMTAtMDMtMjQgMTg6NTA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU1Y2Q1MTQgdG8gYzFkMDdkZAoKMjAxMC0wMy0yNCAxNzozMjo1NCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgdW51c2VkIGNvZGUKCSAgT1BUX0NGTEFHUyB3YXMgbmV2ZXIgQUNfU1VCU1QoKSdlZCBzbyBpdCB3YXNuJ3QgdXNlZC4gQW5kIHRoZSBsYXN0IHRpbWUKCSAgaXQgd2FzIHRvdWNoZWQgd2FzIGluIDIwMDUuCgoyMDEwLTAzLTI0IDE1OjQ3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBtYWtlIGRpc3RjaGVjawoJICBUaGUgY2hhbmdlIGZyb20gR1NUX0FMTF9DRkxBR1MgdG8gR1NUX09QVElPTl9DRkxBR1MgZHJvcHBlZCB0aGUgaW5jbHVkZXMsCgkgIHB1dHRpbmcgdGhlbSBiYWNrIGZpeGVzIG1ha2UgZGlzdGNoZWNrLgoKMjAxMC0wMy0yNCAxNToxNToyMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBGaXggdGVzdHMgYWZ0ZXIgc2V0X2VsZW1lbnRfZGV0YWlscygpIGRlcHJlY2F0aW9uCgoyMDEwLTAzLTI0IDEzOjMzOjU4ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEZpeCBhbmQgcmVzdHJ1Y3R1cmUgbG9naWMKCjIwMTAtMDMtMTkgMjI6MzY6MDcgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMoKQoJICBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgaW5zdGVhZC4gSWYgeW91IHdhbnQgdG8KCSAgY29udmVydCBhdXRvbWF0aWNhbGx5LCBoZXJlJ3MgYSBzY3JpcHQ6CgkgIGZvciBmaWxlIGluIGBnaXQgZ3JlcCAtbCBHc3RFbGVtZW50RGV0YWlsc2A7IGRvCgkgIHNlZCAtaSAtbiAtciAnCgkgIDFoCgkgIDEhSAoJICAkIHsKCSAgZwoJICBzLygoXC9cKlteXG5dKlwqXC8pP1xuKSpbXlxuXSpHc3RFbGVtZW50RGV0YWlscyAuKiA9XHMqR1NUX0VMRU1FTlRfREVUQUlMU1xzKlwoKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXCk7XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKlx7XHMqKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXH07XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcAoJICB9JyAkZmlsZQoJICB+L2dzdC9nc3RyZWFtZXIvdG9vbHMvZ3N0LWluZGVudCAkZmlsZQoJICBkb25lCgoyMDEwLTAzLTI0IDEwOjU3OjA4ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEwLTAzLTIzIDE5OjI1OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMgZnJvbSBNYWtlZmlsZS5hbQoKMjAxMC0wMy0yMyAxOToyMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgbWFwcGluZyBmb3IgKHVpbnQpIHRvIGFsbG93IGRlc2VyaWFsaXNhdGlvbiBvZiB1bnNpZ25lZCBpbnRlZ2VycwoJICBVbnNpZ25lZCBpbnRzIGFyZSB1c2VkIGluIHRhZ2xpc3RzLCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8KCSAgZGVzZXJpYWxpc2UgdGhlbSwgZXNwLiBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHRhZ2luamVjdCBBUEkuCgoyMDEwLTAzLTIzIDE5OjI1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgc2Vla2luZyBpbiBkb3dubG9hZCBtb2RlCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgdGhlIHJlcXVlc3RlZCBvZmZzZXQgaXMgdG9vIGZhciBhd2F5LCBhdHRlbXB0IHRvIGRvIGEKCSAgc2VlayByZXF1ZXN0IHRvIGZldGNoIHRoZSBkYXRhLgoJICBLZWVwIHRyYWNrIG9mIGFsbCBkb3dubG9hZGVkIHBhcnRzIGFuZCBtZXJnZSByYW5nZXMgd2hlbiBuZWVkZWQuCgkgIEZpeGVzICM2MDA4NzcKCjIwMTAtMDMtMjIgMTE6MDY6MjEgLTAzMDAgIEFuZHLDqSBEaWViIE1hcnRpbnMgPGFuZHJlLmRpZWJAZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiB1c2UgYXV0b2dlbi5zaCBpbnN0ZWFkIG9mIGF1dG9yZWdlbi5zaCBvbiBmcmVzaCByZXBvc2l0b3JpZXMuCgkgIEZpeGVzICM2MTM1OTMuCgoyMDEwLTAzLTIyIDE3OjEwOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ2V0dGV4dC5oOgoJICBnZXR0ZXh0OiBidWlsZCBmaXhlczogI2lmIC0+ICNpZmRlZgoKMjAxMC0wMy0xOCAxMDoyMjowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IG1ha2UgZGVsYXllZCBzZXQgcmVjdXJzaXZlCgkgIFJpZ2h0IG5vdyBkZWxleWVkIHNldCB3b3VsZCBvbmx5IHRyeSBmb3IgZmlyc3Qgc2V0IG9mIGNoaWxkcmVuLiBXZSBuZWVkIHRvIGtlZXAKCSAgdHJ5aW5nIHRvIHN1cHBvcnQgYXJiaXRyYXJ5IGRlZXAgaGllcmFyY2hpZXMgKGxpa2UgaW4gcGxheWJpbjIgd2l0aCBhdXRvKnNpbmtzKS4KCSAgQWxzbyBHc3RCaW4gd291bGQgbmVlZCB0byBhY3R1YWx5IGVtaXQgdGhlIGNoaWxkLWFkZGVkL3JlbW92ZWQgc2lnbmFsIGFzIGl0CgkgIGltcGxlbWVudHMgdGhlIGlmYWNlLiBGaXhlcyAjNjEzMjE1LgoKMjAxMC0wMy0yMiAwODo0MDozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBwa2djb25maWc6IFVzZSBATElCTUAgaW5zdGVhZCBvZiAtbG0KCjIwMTAtMDMtMTkgMDE6MDI6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgcGtnY29uZmlnOiBhZGQgYmFjayBzdXBwb3J0IGZvciBidWlsZGRpciAhPSBzcmNkaXIgY2FzZSBpbiB1bmluc3RhbGxlZCBzZXR1cAoJICBBdHRlbXB0IHRvIGFkZCBiYWNrIHN1cHBvcnQgZm9yIGJ1aWxkZGlyICE9IHNyY2Rpci4gVXNlIGFic29sdXRlIHBhdGhzCgkgIGluc3RlYWQgb2YgcmVsYXRpdmUgcGF0aHMgYmFzZWQgb24gcGNmaWxlZGlyIHRoaXMgdGltZSB0byBtYWtlIHRoaW5ncwoJICBjbGVhcmVyIC0gdGhlcmUncyBub3QgcmVhbGx5IGFueSBuZWVkIGZvciB1bmluc3RhbGxlZCB0cmVlcyB0byBiZQoJICByZWxvY2F0YWJsZSB3aXRob3V0IHJlLXJ1bm5pbmcgY29uZmlndXJlLgoKMjAxMC0wMy0xOCAxMToxODozOSArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBRb1MgbWVzc2FnZSBwb3N0aW5nCgkgIEFuZCBzb21lIG1vcmUgZm9yIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE4IDEzOjQxOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNhdGNoLCBwYXJzZSBhbmQgc3RvcmUgUW9TIGV2ZW50IHZhbHVlcwoJICBDYXRjaCwgcGFyc2UgYW5kIHN0b3JlIHRoZSBRb1MgdmFsdWVzIGZyb20gUW9TIGV2ZW50cyBmb3IgbGF0ZXIgdXNlLgoKMjAxMC0wMy0xNyAxNToyOTo0OCArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW1wbGVtZW50IFFvUyBtZXNzYWdlIHBvc3RpbmcgaW4gYmFzZXNpbmsKCSAgUG9zdCBRb1MgbWVzc2FnZXMgd2hlbiBmcmFtZXMgYXJlIGRyb3BwZWQuCgkgIFRoaXMgZ29lcyBhIGxpdHRsZSBmdXJ0aGVyIHRvd2FyZHMgcmVzb2x2aW5nIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE3IDE5OjI2OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDEwLTAzLTE3IDE5OjE2OjQyICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgUW9TIG1lc3NhZ2UgdG8gaW5mb3JtIGFwcHMgb2YgbG9zdCBkYXRhCgkgIFRoaXMgaGFzIGJlZW4gaW1wbGVtZW50ZWQgYXMgcGVyIHBhcnQtcW9zLnR4dCBhbmQgcGFydGlhbGx5IGFkZHJlc3NlcwoJICBidWcgIzMyMjk0NwoKMjAxMC0wMy0xNyAxNjo0NDowNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIHRlc3Q6IFJlbW92ZSBuZWVkbGVzcyBjYXN0CgkgIEdzdFZhbHVlQXJyYXkubmFtZSBpcyBjb25zdCBub3cKCjIwMTAtMDMtMTcgMTQ6MzM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgUmV2ZXJ0ICJBZGQgc3JjZGlyIHRvIGluY2x1ZGVzIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcyIKCSAgSSBkb24ndCBrbm93IGhvdyB0aGlzIGV2ZXIgd29ya2VkLCBhcyBpdCBzZWVtcyB0byBwdXQgLUkuLy4uCgkgIGFuZCAtSS4vLi4vbGlicyB2ZXJiYXRpbSBpbnRvIHRoZSBpbmNsdWRlcywgYXQgbGVhc3Qgd2l0aAoJICBjdXJyZW50IGF1dG90b29scyB2ZXJzaW9ucy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyNzlhODBmZjI3YmE0YzkwZjUyOTgxZTg5ZTcxMGViMTE4MWJjMjAxLgoKMjAxMC0wMy0xNyAxNTo0Njo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogYXZvaWQgY29uZnVzaW9uIGJldHdlZW4gZXZlbnRzIGFuZCBtZXNzYWdlcwoKMjAxMC0wMy0xNyAxMjoxODoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogTWFyayBwcm9wZXJ0eV9uYW1lIGluIEdzdFZhbHVlQXJyYXkgYXMgY29uc3QKCSAgVGhpcyB3b24ndCBhbmQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGZyb20gYW55IEFQSQoKMjAxMC0wMy0xNyAxMjo0NTo0OSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTAtMDMtMTYgMDk6NTY6MTYgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4yNiIgbWFya2VyIGZvciBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpCgoyMDEwLTAzLTE2IDA5OjQyOjIxICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGZpeCBzaW5jZSB0YWcgZm9yIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkX3R5cGVkKCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGRfdHlwZWQgd2FzIGFkZGVkIGluIDAuMTAuMjYsIG5vdCAwLjEwLjE2LgoJICBBcHBhcmVudCB0eXBvIGluIGNvbW1pdCBmOWUzYjcyZiB3aGVuIHRoZSBBUEkgd2FzIGFkZGVkLgoKMjAxMC0wMy0xNyAxMDo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZG9jczogZml4IFNpbmNlIG1hcmtlcnMgZm9yIGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQqKCkKCSAgQXMgdGhlIGhlYWRlcnMgd2VyZSBicm9rZW4gaW4gMC4xMC4yNiB0aGUgZnVuY3Rpb25zIHdlcmVuJ3QgcmVhbGx5CgkgIHVzYWJsZSBiYWNrIHRoZW4sIHNvIHdlIHNob3VsZCBhZHZlcnRpc2UgdGhlbSBhcyBiZWluZyB0aGVyZSBvbmx5CgkgIHNpbmNlIDAuMTAuMjcuCgkgIFNwb3R0ZWQgYnkgTWFydCBSYXVkc2VwcC4KCjIwMTAtMDMtMTYgMTc6NTY6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IHVzZSAjaWYgR0xJQl9DSEVDS19WRVJTSU9OIGluc3RlYWQgb2YgI2lmbmRlZiBHTElCTUFDUk8KCSAgZm9yIGJldHRlciBncmVwcGFiaWxpdHkgYXQgdGhlIHRpbWUgd2UgYnVtcCBHTGliIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoKMjAxMC0wMy0xNCAxMTo0NzoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkZWFjdGl2YXRlIHBhZCBpZiB3ZSBjYW4ndCBnZXQgbGVuZ3RoIG9yIGl0J3MgYSBsZW5ndGggb2YgemVyby4KCSAgRml4ZXMgaXNzdWVzIHdoZW4gcmUtdXNpbmcgdHlwZWZpbmQgYWZ0ZXIgYSBmaWxlIG9mIGxlbmd0aCB6ZXJvLgoKMjAxMC0wMy0xNiAxMDozMjoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWNjZXB0IG5vbi1maXhlZCBjYXBzIHN1Z2dlc3Rpb25zCgkgIFdoZW4gZG9pbmcgcGFkX2FsbG9jcywgdXNlIG5vbi1maXhlZCBjYXBzIHN1Z2dlc3Rpb25zIGFuZAoJICB0cnkgdG8gZml4YXRlIHRoZW0gYmVmb3JlIHVzaW5nLiBUaGlzIG1ha2VzIHBvc3NpYmxlIHRvCgkgIGhhdmUgc3VnZ2VzdGVkIGJ1ZmZlciBzaXplIHdpdGggMCBpbiBiYXNldHJhbnNmb3JtIGp1c3QKCSAgdG8gc2lnbmFsIHVwc3RyZWFtIGEgcmVuZWdvdGlhdGlvbiBpcyBuZWVkZWQKCSAgRml4ZXMgIzU3NjIzNAoJICBGaXhlcyAjNjA5MDQ2CgoyMDEwLTAzLTE2IDEwOjQwOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBtZXJnZSBRb1MgbWVzc2FnZSBmaWVsZHMKCSAgVGhlcmUgd2FzIGFscmVhZHkgYSBzZWN0aW9uIGFib3V0IFFvUyBtZXNzYWdlcyB0aGF0IGlzIG5vdyBtZXJnZWQgd2l0aCB0aGUgbmV3CgkgIGluZm9ybWF0aW9uLgoKMjAxMC0wMy0xNiAxMDo0NDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBtZW50aW9uIGhvdyB0byBidWlsZCBhZnRlciB1c2luZyB0aGUgcHJvamVjdCBzdGFtcAoKMjAxMC0wMy0xNiAwOTo1Njo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogc25wcmludGYgbmVlZHMgdG8gaW5jbHVkZSAic3RkaW8uaCIKCjIwMTAtMDMtMTUgMTg6NDg6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBRT1MgZG9jcyB0byBpbmNsdWRlIFFPUyBtZXNzYWdlcwoJICBBZGQgc29tZSBkb2NzIGFib3V0IHRoZSB2YWx1ZXMgbmVlZGVkIGZvciBhIFFvUyBtZXNzYWdlIGFuZCBzb21lIHVzZQoJICBjYXNlcy4KCSAgU2VlICMzMjI5NDcKCjIwMTAtMDMtMTUgMTc6MDc6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHVzZSBiaW9uaWMvbGliYyBmcmllbmRseSBhcmd1bWVudHMgdG8gcHJjdGwKCSAgcHJjdGwgaXMgc3VwcG9zZWQgdG8gdGFrZSA1IGFyZ3VtZW50cy4gSXQgdXNlZCB0byB3b3JrIHdpdGggMiBhcmd1bWVudHMgb24gc29tZQoJICB2ZXJzaW9ucyBvZiBsaWJjIGJlY2F1c2UgaXQgaXMgZGVmaW5lZCBhcyBhIHZhcmFncyBmdW5jdGlvbiB0aGVyZS4KCSAgU2VlICM2MTE5MTEKCjIwMTAtMDMtMTUgMTU6MDc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiB1cGRhdGUgZG9jcy4KCjIwMTAtMDMtMTUgMTQ6NDQ6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogV29yayBhcm91bmQgZ3RrLWRvYyBwcm9ibGVtCgoyMDEwLTAzLTE1IDE0OjQ0OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBVc2UgY29ycmVjdCBndGstZG9jIHdvcmthcm91bmQKCjIwMTAtMDMtMTUgMTQ6MDU6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBIYW5kbGUgaXRlcmF0b3IgcmVzeW5jcyBpbiBnc3RfcGFkX3Byb3h5X3NldGNhcHMoKQoJICBGaXhlcyBidWcgIzYxMjg4MS4KCjIwMTAtMDMtMTUgMTQ6NDg6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGNvbmZpZ3VyZSB0aGUgb2JqZWN0IG5hbWUgYXMgdGhyZWFkIG5hbWUKCSAgV2hlbiB3ZSBoYXZlIHByY3RsIGF2YWlsYWJsZSwgdXNlIGl0IHRvIHNldCB0aGUgY29uZmlndXJlZCBvYmplY3QgbmFtZSBhcyB0aGUKCSAgdGhyZWFkIG5hbWUgZm9yIGJldHRlciBkZWJ1Z2dpbmcuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IFJvYmVydCBTd2Fpbi4KCjIwMTAtMDMtMTUgMTM6NDg6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2V0IGEgZ29vZCBuYW1lIG9uIHRoZSB0YXNrIG9mIHRoZSBwYWQKCSAgVXNlIHRoZSBlbGVtZW50OnBhZCBuYW1lcyB0byBjb25maWd1cmUgYSBnb29kIG5hbWUgZm9yIHRoZSBwYWQgdGFzay4KCjIwMTAtMDMtMTUgMTI6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiByZXRhYgoKMjAxMC0wMy0xNSAxMDoyNjoxOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBsb2dnaW5nOiByZW1vdmUgZXh0cmEgbmV3bGluZQoKMjAxMC0wMy0wNCAyMzozNjo1MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHR1cm4gZ19yZXR1cm5faWZfZmFpbCBpbnRvIGdfYXNzZXJ0LgoJICBUaGlzIGVpdGhlciBtdXN0IG5ldmVyIGhhcHBlbiAod2hpY2ggbWFrZXMgc2Vuc2UgaW4gdGhpcyBjYXNlKSBhbmQgdGh1cyBzaG91bGQKCSAgdXNlIGFzc2VydCgpIG9yIHdlIHNob3VsZCB1c2UgYSB0cmFkaXRpb25hbCBpZiAocG9sbF9kYXRhLT5tZXNzYWdlKSByZXR1cm47CgkgIHRvIGF2b2lkIGRpZmZlcm5ldCBiZWhhdmlvdXIgb2YgaW50ZW5hbCBhcGkgd2hlbiBjb21waWxpbmcgd2l0aAoJICBHX0RJU0FCTEVfQ0hFQ0tTLgoKMjAxMC0wMy0wMyAyMzozNzowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbW92ZSB0aGUgY2hlY2sgdG8gdGhlIHB1YmxpYyBhcGkuCgkgIFRoaXMgYXZvaWRzIGNyZWF0aW5nIGVtcHR5IGNhcHMgYW5kIGRlc3Ryb3lpbmcgdGhlbSBpbiB0aGUgY2FzZSBvZiBhbiBlcnJvci4gV2UKCSAgYWxzbyBhdm9pZCBkb3VibGUgY2hlY2tpbmcgaW4gb3RoZXIgY29kZSBwYXRoIHdoZXJlIHdlIGNhbGwgdGhlIGludGVybmFsIGFwaS4KCjIwMTAtMDMtMDMgMjM6MzQ6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHRoaXMgaXMgaW50ZXJuYWwgQVBJIHdoZXJlIHdlIG5lZWQgdG8gZW5zdXJlICFOVUxMIGhpZ2hlciB1cAoKMjAxMC0wMy0wMyAyMTo1MDoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHRoaXMgaXMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2hlcmUgd2UgYWxyZWFkeSBlbnN1cmUgIU5VTEwgd2hlbiBjYWxsaW5nCgoyMDEwLTAyLTI2IDA5OjI5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY2FzZSBvZiBwYWQgZmxhZwoJICBEdWUgdG8gYSB0eXBvIHRoZSBjb2RlIHdhcyBhbHdheXMgc2hvd2luZyB0aGUgZmxhZyBhcyAncycgKGxvd2VyIGNhc2UpLgoJICBGaXhlcyAjNjExMDc1CgoyMDEwLTAyLTIzIDIzOjUwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1ZzogYWRkIHByZXR0eSBwcmludGVyIGZvciBldmVudHMKCSAgQWRkZXIgaXMgdXNpbmcgR1NUX1BUUl9GT1JNQVQgZm9yIGV2ZW50cyBhbHJlYWR5LCBzbyB3ZSBtaWdodCBhY3R1YWx5CgkgIGltcGxlbWVudCB0aGlzIGFuZCBwcmludCBvdXQgc29tZSB1c2VmdWwgaW5mby4KCjIwMTAtMDMtMTMgMTE6MDM6NTkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQWRkIHNvbWUgMC4xMSBGSVhNRXMgZm9yIEdzdFBsdWdpbkluaXRGdW5jCgkgIFNlZSA4ZmU2MzAwMGRlMzFiYjJiY2YzNDZkNTkyMzBkZWEwNjExNzk5N2NkIGZvciB3aHkgaGF2aW5nIGEgVFJVRS9GQUxTRQoJICByZXR1cm4gdmFsdWUgaXMgYSBiYWQgaWRlYS4KCSAgSSd2ZSBzY2FubmVkIGEgZmV3IHBsdWdpbnMgYW5kIHRoZXkgZ2VuZXJhbGx5IGdldCBpdCB3cm9uZyBhbmQgYXJlbid0CgkgIHVubG9hZGFibGUgd2hlbiB0aGV5IHJldHVybiBGQUxTRS4KCjIwMTAtMDMtMTIgMTk6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wMy0xMiAxOTowNToxNiArMDAwMCAgTGVvIFNpbmdlciA8bHNpbmdlckBjYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBjb21waWxhdGlvbiBlcnJvciBpZiBIQVZFX1JFR0lTVEVSX1BSSU5URl9TUEVDSUZJRVIgaXMgdW5kZWZpbmVkCgkgIFVzZSAjaWYgSEFWRV9GT08gaW5zdGVhZCBvZiAjaWZkZWYgSEFWRV9GT08uCgkgIEZpeGVzICM2MTI3MzMuCgoyMDEwLTAzLTEyIDE2OjQyOjQ3ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbnM6IERvIG5vdCBldmVyIHVubG9hZCBhIHBsdWdpbiBhZnRlciBjYWxsaW5nIGludG8gaXQKCSAgVGhpcyBpcyB3aGF0IGNhbiBoYXBwZW4gaW4gYSBwbHVnaW5faW5pdCBmdW5jdGlvbjoKCSAgLSBBbiBlbGVtZW50IGJhc2VkIG9uIEdzdEJhc2VTaW5rIGlzIHJlZ2lzdGVyZWQKCSAgLSBPdGhlciBlbGVtZW50cyBmYWlsIHRvIHJlZ2lzdGVyCgkgIC0gVGhlIHBsdWdpbl9pbml0IGZ1bmN0aW9uIHJldHVybnMgRkFMU0UKCSAgTm93IGlmIHRoaXMgdGhlIHBsdWdpbiBpcyB0aGUgZmlyc3QgcGx1Z2luIHRvIGxpbmsgYWdhaW5zdAoJICBsaWJnc3RiYXNlLnNvLCBpdCB3aWxsIGhhdmUgY2F1c2VkIGxpYmdzdGJhc2Uuc28gdG8gYmUgbG9hZGVkIGFuZCBzdGF0aWMKCSAgc3RyaW5ncyBmcm9tIHRoYXQgbGlicmFyeSB3aWxsIGhhdmUgYmVlbiBhZGRlZCB0byBnb2JqZWN0IHdoaWxlCgkgIHJlZ2lzdGVyaW5nIEdzdEJhc2VTaW5rLgoJICBTbyB1bmxvYWRpbmcgdGhlIHBsdWdpbiB3aWxsIGNhdXNlIHRob3NlIHN0cmluZ3MgdG8gZ28gc3RhbGUgYW5kIHRoZQoJICBuZXh0IHBsdWdpbiB1c2luZyBHc3RCYXNlU2luayB3aWxsIGNyYXNoLiBTbyB3ZSBtdXN0IG5vdCB1bmxvYWQgbW9kdWxlcwoJICBhZnRlciBjYWxsaW5nIGludG8gdGhlbSBldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU3MjgwMAoKMjAxMC0wMy0xMiAxNTozNjozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IERvbid0IHBhc3MgTlVMTCB0byB0aGUgR1NlcXVlbmNlIEFQSQoKMjAxMC0wMy0xMiAxMzozMzowMCArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBGaXggZXJyb3IgcmV0dXJuIHZhbHVlIGFuZCBtYWtlIHRoZSBzY3JpcHQgZXhpdCBvbiBlcnJvcnMKCSAgTmV3ZXIgdmVyc2lvbnMgb2YgQkFTSCAoNC54Pykgc2VlbSB0byBkaXNsaWtlIHVzaW5nIC0xIGZvciBhIHJldHVybi4gRXZlbgoJICB0aG91Z2ggaXQncyBkb2N1bWVudGVkIGFzIGJlaW5nIHNpZ25lZCwgQkFTSCBjb21wbGFpbnMgYWJvdXQgaXQsIHNvIHVzZQoJICAyNTUgaW5zdGVhZC4KCjIwMTAtMDMtMTIgMTM6NTQ6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGUyNzJmNzEgdG8gNTVjZDUxNAoKMjAxMC0wMi0xNyAxMzowMjo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiBVc2UgR19WQUxVRV9DT0xMRUNUX0lOSVQgaWYgYXZhaWxhYmxlCgkgIFRoaXMgYnJpbmdzIHRvdGFsIGNhbGwgc3BlZWR1cHMgYmV0d2VlbiA1JSBhbmQgMjUlLgoJICBnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdDogKzUlCgkgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdDogKyAxMCUKCSAgZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0OiArMjUlCgkgIGdzdF90YWdfbGlzdF9hZGRfdmFsaXN0OiArNSUKCSAgTWVhc3VyZWQgdXNpbmcgdmFsZ3JpbmQgd2hlbiBydW4gb3ZlciB0aGUgZGlzY292ZXJ5IG9mIDIwMCBtZWRpYSBmaWxlcy4KCSAgRml4ZXMgIzYxMDI1NgoKMjAxMC0wMy0xMSAyMDoyOToyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgd2luMzI6IEZpeCBidWlsZCBmYWlsdXJlcyBvZiB0ZXN0cwoKMjAxMC0wMy0wOSAyMDozODo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIG5ldyBnZW8gbG9jYXRpb24gdGFncwoJICBBZGRzIG5ldyB0YWdzIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NPVU5UUlksCgkgIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NJVFkgYW5kIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX1NVQkxPQ0FUSU9OLgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NPVU5UUlkKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DSVRZCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fU1VCTE9DQVRJT04KCSAgRml4ZXMgIzYxMjQxMAoKMjAxMC0wMy0xMSAxODozNjozMiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICB3aW4zMjogQWRkIHByb3RvdHlwZSBmb3IgRGxsTWFpbigpCgoyMDEwLTAzLTExIDExOjQ2OjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTEyLTI4IDE3OjI1OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3N0cmVhbWVyOiByZW1vdmUgdW5uZWVkZWQgY2FzdHMKCSAgR19QQVJBTV9TUEVDX1ZBTFVFX1RZUEUgZG9lcyBhbiBleHBlbnNpdmUgdHlwZSBjaGVjaywgd2hlcmVhcyB0aGUKCSAgdmFsdWVfdHlwZSBmaWVsZCBpcyBhIHB1YmxpYyBmaWVsZCwgc28gd2UgY2FuIGp1c3QgdXNlIGl0IGRpcmVjdGx5LgoKMjAxMC0wMy0xMSAxMTozOTo0MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgLVdpbmxpbmUgZmxhZyBhZ2FpbgoJICBJdCB0cmlnZ2VycyBmb3IgYSBsb3Qgb2YgR1N0cmVhbWVyIEFQSSAoZXZlbiB0aG91Z2ggdGhvc2UgdHJpZ2dlcnMgYXJlCgkgIHdyb25nIG1vc3Qgb2YgdGhlIHRpbWUpLgoJICBJIG1pc3NlZCBpdCBiZWNhdXNlIGl0IG9ubHkgdHJpZ2dlcnMgd2l0aCAtTzIsIGFuZCBJIHdhcyB1c2luZyAtTzAuCgoyMDEwLTAzLTExIDExOjIwOjM1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRmOGE3YzggdG8gZTI3MmY3MQoKMjAxMC0wMy0xMSAxMToxMDo0NCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBBZGQgYSBidW5jaCBtb3JlIHdhcm5pbmcgZmxhZ3MgdG8gY29uZmlndXJlCgkgIE5vbmUgb2YgdGhlc2UgZmxhZ3MgY2F1c2Ugd2FybmluZ3MgYW55bW9yZSwgc28gbm8gZml4ZXMgbmVjZXNzYXJ5LgoJICBUaGUgZmxhZ3MgYXJlOgoJICAtV2Zvcm1hdC1ub25saXRlcmFsCgkgIC1XZm9ybWF0LXNlY3VyaXR5CgkgIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgLVdjYXN0LWFsaWduCgkgIC1XaW5saW5lCgkgIC1XaW5pdC1zZWxmCgkgIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMKCSAgLVdhZGRyZXNzCgkgIC1XYWdncmVnYXRlLXJldHVybgoJICAtV25vLW11bHRpY2hhcgoJICAtV25lc3RlZC1leHRlcm5zCgoyMDEwLTAzLTAyIDIyOjU4OjA2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBGaXhlcyBmb3IgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcwoJICBBbHNvIGFkZHMgdGhvc2UgZmxhZ3MgdG8gdGhlIGNvbmZpZ3VyZSB3YXJuaW5nIGZsYWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTEgMDk6Mzk6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBwcmludGYgZm9ybWF0CgkgIFVzZSAldSB0byBwcmludCB1bnNpZ25lZCBpbnRlZ2Vycy4KCjIwMTAtMDMtMTEgMTA6Mjk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdGVzdHM6IGNhc3QgdGhlIGFyZy4gdG8gZml4IHRoZSBidWlsZCB3aXRoIG5ldyBjb21waWxlciBvcHRzLgoJICBUaGlzIGlzIHVnbHkuIEkgYW0gbm90IHN1cmUgaWYgd2UgcmVhbGx5IHdhbnQgdG8gaGF2ZSBzdWNoIGNhc3RzIGFsbCBvdmVyIHRoZQoJICBwbGFjZS4KCjIwMTAtMDMtMTEgMTA6MTQ6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBpMThuOiBkZWZpbmUgZHVtbXkgbmdldHRleHQgaWYgaTE4biBpcyBkaXNhYmxlZC4KCSAgV2UgY2Fubm90IGJsaW5kbHkgdXNlIGdldHRleHQgZnVuY3Rpb24gYW5kIG5vdCBkZWZpbmUgdGhlbSB3aGVuIG5vdCB1c2luZyBnZXR0ZXh0LgoKMjAxMC0wMy0xMSAxMDowMDo0NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGkxOG46IGZpeCB0aGUgYnVpbGQgd2l0aCBpMThuIGRpc2FibGVkLgoJICBEb24ndCBpbmNsdWRlIGdldHRleHQuaCBpZiAhRU5BQkxFX05MUy4KCjIwMTAtMDMtMDQgMTA6NDQ6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFsbG93IGNvbmZpZ3VyYWJsZSBtZW1vcnkgYWxpZ25tZW50LiBGaXhlcyAjNTk2ODMyCgkgIFRoZSBhbGlnbm1lbnQgZ3VhcmFudGVlZCBieSBtYWxsb2MgaXMgbm90IGFsd2F5cyBzdWZmaWNpZW50LiBFLmcuIHZlY3RvcgoJICBpbnN0cnVjdGlvbnMgb3IgaGFyZHdhcmUgc3Vic3lzdGVtcyB3YW50IHNwZWNpZmljYWxseSBhbGlnbmVkIGJ1ZmZlcnMuIFRoZQoJICBhdHRhY2hlZCBwYXRjaCB3aWxsIHVzZSBwb3NpeF9tZW1hbGlnbiBpZiBhdmFpbGFibGUgdG8gYWxsb2NhdGUgYnVmZmVycy4KCSAgVGhlIGRlc2lyZWQgYWxpZ25tZW50IGNhbiBiZSBzZXQgd2hlbiBydW5uaW5nIGNvbmZpZ3VyZSB1c2luZyB0aGUgbmV3CgkgIC0td2l0aC1idWZmZXItYWxpZ25tZW50IG9wdGlvbi4KCjIwMTAtMDMtMTAgMjE6NTE6NTAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTcyMGE3ZCB0byBkZjhhN2M4CgoyMDEwLTAzLTEwIDIwOjUyOjA2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJICBNZXJnZSBicmFuY2ggJ3dvcmsnCgoyMDEwLTAzLTAzIDExOjQ1OjM4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgRml4ZXMgZm9yIC1Xd3JpdGUtc3RyaW5ncwoJICBUaGlzIGNoYW5nZXMgc29tZSBBUElzIGluIGNvbXBhdGlibGUgd2F5czoKCSAgLSBTb21lIGZ1bmN0aW9ucyBub3cgdGFrZSAiY29uc3QgY2hhciAqIiBhcmd1bWVudHMsIG5vdCAiY2hhciAqIgoJICAtIFNvbWUgc3RydWN0cyBub3cgaGF2ZSAiY29udHMgY2hhciAqIiBtZW1iZXJzLCBub3QgImNoYXIgKiIKCSAgVGhlIGNoYW5nZXMgbWF5IGNhdXNlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHdpdGggdGhlIHJpZ2h0IHdhcm5pbmcKCSAgZmxhZ3MuIFlvdSd2ZSBiZWVuIHdhcm5lZC4KCSAgQWxzbyBhZGRzIC1Xd3JpdGUtc3RyaW5ncyBhcyBhIHdhcm5pbmcgZmxhZyBpbiBjb25maWd1cmUuYWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MzE6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgRml4ZXMgLVd1bmRlZiB3YXJuaW5ncwoJICAuLi4gYW5kIGFkZHMgdGhhdCBmbGFnIHRvIGNvbmZpZ3VyZS5hYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjMxOjA1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogUmVtb3ZlIHVubmVlZGVkIGdfdGhyZWFkX2V4aXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjI2OjE0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEZpeGVzIGZvciAtV29sZC1zdHlsZS1kZWZpbml0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDIgMjM6NTE6MTggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSAgTWFrZSBjb2RlIHNhZmUgZm9yIC1XcmVkdW5kYW50LWRlY2xzCgkgIEFkZHMgdGhhdCB3YXJuaW5nIHRvIGNvbmZpZ3VyZS5hYwoJICBJbmNsdWRlcyBhIHRpbnkgY2hhbmdlIG9mIHRoZSBHU1RfQk9JTEVSUExBVEVfRlVMTCgpIG1hY3JvOgoJICBUaGUgZ2V0X3R5cGUoKSBmdW5jdGlvbiBpcyBubyBsb25nZXIgZGVjbGFyZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMjA6NDM6MzUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMGI2ZTA3MiB0byA5NzIwYTdkCgoyMDEwLTAzLTAzIDEwOjAwOjQxICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1ha2Ugc3VyZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IHJ1biB3aXRoIC1XZXJyb3IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAxNzowMzoyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBVcGRhdGUgdG8gY29tbW9uLyBjaGFuZ2VzIHRvIEVSUk9SX0NGTEFHUwoKMjAxMC0wMy0xMCAxOToxNzo0MiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIFJldmVydCAicmVnaXN0cnk6IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24iCgkgIFR1cm5zIG91dCAgdGhlIGZ1bmN0aW9uIGlzIG5vdCB1bnVzZWQsIGJ1dCB3YXMgaW4gYW4gI2lmZGVmIFdJTjMyCgkgIHNlY3Rpb24uCgkgIFdob29wcy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1N2Q1ZGI0MjRjNjhhYjVhNjFmMzNjZTM2Y2UwMTc5ZWIzMDI1MWFjLgoKMjAxMC0wMy0xMCAxNjowOTozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3Y2M1ZWI0IHRvIDBiNmUwNzIKCjIwMTAtMDMtMDIgMjE6MDc6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoJICBBY3R1YWxseSwgdGhlcmUgd2FzIHR3byBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLCBidXQgb25seSBvbmUgd2FzCgkgIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDIgMTY6MjA6MTUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW1vdmUgdW51c2VkIGdzdF9lbGVtZW50X2RlZmF1bHRfZXJyb3IoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDA3OjE1OjE1ICswMDAwICBKZXJlbXkgSHVkZGxlc3RvbiA8amVyZW15aHVAZnJlZWRlc2t0b3Aub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgbXVscSBpbnN0ZWFkIG9mIG11bCBhcyBzb21lIGFzc2VtYmxlcnMgY2FuJ3QgZ3Vlc3MgdGhlIHNpemUgb2YgdGhlIG9wZXJhbmRzCgkgIEZpeGVzIGJ1ZyAjNjEyMzcwLgoKMjAxMC0wMy0xMCAwMTowOToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdhYTY1YjUgdG8gN2NjNWViNAoKMjAxMC0wMy0wOSAyMToyMDoyNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ0ZWNjZTcgdG8gN2FhNjViNQoKMjAxMC0wMi0yNiAxNjowMzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IE1ha2Ugc29tZSBtb3JlIHJ1bGVzIHNpbGVudCBpZiByZXF1ZXN0ZWQKCjIwMTAtMDItMjYgMTU6MzI6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBhdXRvbWFrZSAxLjExIHNpbGVudCBydWxlcyBpbnN0ZWFkIG9mIHNoYXZlIGlmIGF2YWlsYWJsZQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSB1c2Ugc29tZXRoaW5nIHRoYXQgaXMgc3RpbGwgbWFpbnRhaW5lZCBhbmQKCSAgYWxzbyBicmluZ3MgYmFjayBsaWJ0b29sIDEuNSBzdXBwb3J0LgoKMjAxMC0wMi0yMiAxNjoyNTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogT3B0aW1pemUgZ2V0X3ZhbHVlX2FycmF5KCkKCSAgRG9uJ3QgY29udmVydCBmcm9tIEdWYWx1ZSB0byB0aGUgYWN0dWFsIHR5cGUgZm9yIGV2ZXJ5IHNpbmdsZQoJICB2YWx1ZS4KCjIwMTAtMDItMjIgMTU6MTg6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBPcHRpbWl6ZSBnZXRfdmFsdWVfYXJyYXkoKQoJICBUaGlzIG1ha2VzIGl0ID4xMHggZmFzdGVyIGlmIG1vcmUgdGhhbiBhIHNpbmdsZSB2YWx1ZSBpcyByZXF1ZXN0ZWQKCSAgYnkgbm90IHNlYXJjaGluZyBpbiB0aGUgR1NlcXVlbmNlIGZvciBldmVyeSB2YWx1ZSBhbmQgY29udmVydGluZwoJICB0aGUgdmFsdWUgZnJvbSBHVmFsdWUgdG8gdGhlIHJlYWwgdmFsdWUgdHlwZS4KCjIwMTAtMDItMjEgMTc6MzY6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBiZW5jaG1hcmsgZm9yIGdldHRpbmcgYSB2YWx1ZSBhcnJheSBvZiB0aGUgY29udHJvbCBwb2ludHMKCjIwMTAtMDMtMDggMjM6Mjg6MDQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgRml4IHR5cG9zIGluIGRvY3VtZW50YXRpb24KCjIwMTAtMDMtMDggMjM6MDQ6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBjYXBzOiBGYWlsIHdoZW4gZnJhY3Rpb25zIGFyZSBmb2xsb3dlZCBieSByYW5kb20gdGV4dAoJICBQcmV2aW91cyBjb2RlIHRyZWF0ZWQgIjEvMXlvdXJtb20iIHRoZSBzYW1lIGFzICIxLzEiIGFuZCAiMXdpbXNtb20iIHRoZQoJICBzYW1lIGFzICIxIi4gTm93IHRoZSBjb2RlIGlzIHN0cmljdGVyIGFuZCB3aWxsIGZhaWwgdG8gY29udmVydCBhCgkgIGZyYWN0aW9uIHdoZW4gZm9sbG93ZWQgYnkgZ2FyYmFnZSB0ZXh0LgoKMjAxMC0wMy0wOSAxNzozMjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjI4ID09PQoKMjAxMC0wMy0wOCAyMzowOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjgKCjIwMTAtMDMtMDggMjM6MDY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAzLTA4IDIyOjA1OjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgY2FwczogQWxsb3cgMS9tYXggYXMgdGhlIG1pbmltYWwgZnJhY3Rpb24gdmFsdWUgPiAwCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBmb3JtYXRzIHRoYXQgcmVxdWlyZSBhIHZhbGlkIGZyYW1lcmF0ZSAobGlrZQoJICB0aGVvcmFlbmMpLgoKMjAxMC0wMy0wNCAxNToyMTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgo9PT0gcmVsZWFzZSAwLjEwLjI3ID09PQoKMjAxMC0wMy0wNSAyMzo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjcKCjIwMTAtMDMtMDUgMjM6NDE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAzLTA0IDE4OjM5OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IGRvbid0IHBhc3Mgbm9uLW9iamVjdHMgYXMgZmlyc3QgYXJndW1lbnQgdG8gR1NUX0RFQlVHX09CSkVDVCgpCgkgIFRoaXMgbWF5IGNhdXNlIGNyYXNoZXMgd2hlbiBsb2dnaW5nIGlzIGVuYWJsZWQsIGVzcGVjaWFsbHkgb24gd2luZG93cy4KCSAgSXQncyBub3Qgc2FmZSB0byBwYXNzIHJhbmRvbSBwb2ludGVycyB0byBnX3R5cGVfY2hlY2tfaW5zdGFuY2VfaXNfYSgpLgoJICBGaXhlcyAjNjExNzE5LgoKMjAxMC0wMy0wMyAxOTo1NDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi40IHByZS1yZWxlYXNlCgoyMDEwLTAzLTAzIDE5OjQ5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDMtMDMgMTI6MDY6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGRvY3M6IGZpeCB1cCBieXRld3JpdGVyIGRvYyBjaHVua3MgZm9yIGZsb2F0IGZ1bmN0aW9ucyBhcyB3ZWxsCgoyMDEwLTAzLTAzIDExOjI4OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBmaXggaGVhZGVycyBmb3IgZmxvYXQvZG91YmxlIHdyaXRpbmcgZnVuY3Rpb25zCgkgIFRoZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBnc3RfYnl0ZV93cml0ZXJfcHV0X3tmbG9hdDMyfGZsb2F0NjR9XyooKSBhbmQgbm90CgkgIGdzdF9ieXRlX3dyaXRlcl9wdXRfe2Zsb2F0fGRvdWJsZX1fKigpLgoJICBTcG90dGVkIGJ5OiBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoyMDEwLTAzLTAxIDEyOjAyOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IHRyeSB0byBtYWtlIGNvbW1lbnQgZm9yIHRyYW5zbGF0b3JzIG1vcmUgaGVscGZ1bAoKMjAxMC0wMi0yNiAxNTo0Njo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggZW1lcmdlbmN5IHJlbmRlcmluZyB0aW1lc3RhbXAgdHJhY2tpbmcKCSAgU3BlY2lmaWNhbGx5LCBpZiBhbGwgKGluY2x1ZGluZyBpbml0aWFsKSBidWZmZXJzIHR1cm4gdXAgbGF0ZSwKCSAgZW1lcmdlbmN5IHJlbmRlcmluZyBzaG91bGQgYWxzbyBraWNrIGluIGFwcHJvcHJpYXRlbHkuCgkgIEZpeGVzICM2MTEwODcuCgoyMDEwLTAyLTI0IDAwOjMwOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDItMjQgMDA6Mjk6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ubC5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDItMTkgMTM6MjY6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IERvbid0IHBhc3MgTlVMTCBwb2ludGVycyB0byBHU2VxdWVuY2UgQVBJCgkgIFRoaXMgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlcy4gRml4ZXMgYnVnICM2MTA0NDQuCgoyMDEwLTAyLTE5IDEzOjIwOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogQWRkIGNvbnN0IHF1YWxpZmllcnMgdG8gdmFsdWVzIGluIHRoZSBfc2V0IGZ1bmN0aW9ucwoJICBUaGUgdmFsdWVzIGFyZSBub3QgbW9kaWZpZWQgYW5kIGFyZSBjb3BpZWQsIGEgY29uc3QgYmVmb3JlIHRoZSBwYXJhbWV0ZXIKCSAgc2hvdWxkIG1ha2UgdGhpcyBldmVuIG1vcmUgb2J2aW91cy4KCjIwMTAtMDItMTggMDk6MTc6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgY29udHJvbGxlcjogQWRkIHNvbWUgRklYTUUgMC4xMSBjb21tZW50cwoKMjAxMC0wMi0xNyAxMDowNDo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGNvcmVsZW1lbnRzOiBDb21iaW5lIHJlZHVuZGFudCBjb2RlCgoyMDEwLTAyLTE3IDAxOjI3OjIyICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBmZHNpbmsgYW5kIGZkc3JjIHdpdGggTVNWQwoKMjAxMC0wMi0xOCAxNDo1ODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuMiBwcmUtcmVsZWFzZQoKMjAxMC0wMi0xOCAxMzoxMjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIHNvbWUgbW9yZSB0ZW1wb3JhcnkgZG9jcyBjcnVmdAoKMjAxMC0wMi0xOCAxMzowOToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBpbmRlbnRpbmcgaW4gd2luMzItdXBkYXRlIHRhcmdldAoJICBObyBpZGVhIHdoeSB3ZSBuZWVkIHRvIHJ1biBnc3QtaW5kZW50IHR3aWNlIG9uIHRoYXQgZmlsZSwgYnV0IGl0CgkgIG9ubHkgc2VlbXMgdG8gc2V0dGxlIG9uIGEgZmluYWwgZm9ybWF0IHdpdGggbWluaW1hbCBkaWZmIHRvIHRoZQoJICBvbmUgaW4gZ2l0IGFmdGVyIHR3byBydW5zLgoKMjAxMC0wMi0xOCAxMzowODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTAtMDItMTggMTE6NTI6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogSW1wcm92ZSBkb2NzIGFib3V0ICdkYXRhJyBhdHRyaWJ1dGUKCSAgQWRkcyBhIHJlbWluZGVyIHRvICdkYXRhJyBhdHRyaWJ1dGUgZG9jCgkgIEZpeGVzICM2MTAzNjYKCjIwMTAtMDItMTggMTc6MTU6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBtZW1pbmRleDogYXZvaWQgYnVzeSBsb29wIHdoZW4gZG9pbmcgRVhBQ1QgbG9va3VwCgkgIEZpeGVzICM2MTAzNjcuCgoyMDA5LTEyLTIyIDExOjA5OjEwICswODAwICBKb2hhbiBCaWxpZW4gPGpvYmlAbGl0bC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlCgkgIHN0YXRlIGFuZCBwZW5kaW5nIGFyZSAib3V0IiBhcmd1bWVudHMuCgkgIEZpeGVzICM2MDUxODkuCgoyMDEwLTAyLTE3IDEyOjE2OjM3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBmaWxlc3JjOiBEb24ndCB1c2UgZXhwZW5zaXZlIGNhc3QgY2hlY2tzIGluIF9jcmVhdGUKCSAgX2NyZWF0ZSgpIGlzIGEgcGFkIGZ1bmN0aW9uIHNldCBieSBvdXJzZWx2ZXMsIHRoZXJlZm9yZSB3ZSdyZSBzdXJlIGJhc2VzcmMKCSAgaXMgYSBHc3RGaWxlU3JjLgoJICBTcGVlZHMgdXAgX2NyZWF0ZSgpIGJ5IDE3JSBhbmQgdGhlIHRvdGFsIGNhbGwgYnkgOCUgKGluc3RydWN0aW9uIGNhbGxzIG1lYXN1cmVtZW50cwoJICBkb25lIHdpdGggdmFsZ3JpbmQpLgoJICBGaXhlcyAjNjEwMjQ2CgoyMDEwLTAyLTE3IDEyOjE0OjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IHVzZSBleHBlbnNpdmUgY2FzdCBjaGVja3MgaW4gZ2V0X3JhbmdlLgoJICBfZ2V0X3JhbmdlKCkgaXMgYSBwYWQgZnVuY3Rpb24gc2V0IGJ5IG91cnNlbHZlcywgdGhlcmVmb3JlIHdlJ3JlIGNlcnRhaW4gdGhhdAoJICB0aGUgcGFyZW50IGlzIGEgR3N0QmFzZVNyYy4KCSAgU3BlZWRzIHVwIF9nZXRfcmFuZ2UgYnkgMzglLCBhbmQgdGhlIHRvdGFsIGNhbGwgYnkgMzAlLiAodmFsZ3JpbmQgaW5zdHJ1Y3Rpb24KCSAgY2FsbHMgbWVhc3VyZW1lbnRzKS4KCSAgRml4ZXMgIzYxMDI0NgoKMjAxMC0wMi0xNyAxMTozMTowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogY2xlYW51cCBwYXJhbWV0ZXIgaW5pdGlhbGlzYXRpb24gYW5kIGFkZCBjb21lbW50K2xvZ2dpbmcKCSAgSW5pdGlhbGl6ZSBuZXdfZmQgd2l0aCBERUZBVUxUX0ZEIGFuZCBmZCB3aXRoIC0xLiBTZXR0aW5nIHRoZSBwcm9wZXJ0eSB3aWxsIHNldAoJICBuZXdfZmQgYW5kIGluIF91cGRhdGVfZmQoKSB3ZSBjZWhjayBmZCBhZ2FpbnN0IC0xLiBBbHNvIGFkZCBhIGNvbWVudCBhYm91dCB0aGUKCSAgd2FybmluZyB3ZSBnZXQgaW4gdGhlIGxvZyBmcm9tIGdzdF9wb2xsX3JlbW92ZV9mZCgpLiBXZSBjb3VsZCBnZXQgcmlkIG9mIHRoZQoJICB3YXJuaW5nIGlmIHdlIHdhbnQgYnkgdHJhY2tpbmcgaWYgZmQgaGFzIGJlZW4gYWRkZWQgdG8gZmRzZXQuCgoyMDEwLTAyLTE3IDA5OjU1OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkgIGRlc2lnbjogd3JpdGUgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGFnLWhhbmRsaW5nCgkgIERvY3VtZW50IHRoZSB0YWdoYW5kbGluZyBpbiBnc3RyZWFtZXIuIExpc3QgZ2FwcyBhbmQgcHJvcG9zZSBuZXcgbWVjaGFuaXNtcyB0bwoJICBkZWFsIHdpdGggdGhlbS4KCjIwMTAtMDItMTYgMTA6Mjc6MTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBibGFuayBsaW5lcyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMTAtMDItMTYgMTE6MzA6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IGNhbGwgZ19zZXRfcHJnbmFtZSgpIGJlZm9yZSBkb2luZyB0aGUgb3B0aW9uIHBhcnNpbmcKCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHksIHNvIHNldCBpdCBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKQoJICBNb3ZlIHZlcnNpb24gcHJpbnRpbmcgYmFjayB1bnRpbCBhZnRlciB0aGUgb3B0aW9ucyBoYXZlIGJlZW4gcGFyc2VkLAoJICBvdGhlcndpc2UgaXQgd29uJ3Qgd29yaywgc2luY2UgaXQgZXZhbHVhdGVzIGEgZmxhZyBzZXQgYnkgdGhlCgkgIG9wdGlvbiBwYXJzZXIuCgoyMDEwLTAyLTE2IDExOjI0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTNkZDk1ZjAyZWYzZmE1MzBmNTRjZTgxZThmZmJhOTZmM2I2NzljYi4KCSAgVGhpcyBjb21taXQgbWFkZSAtLXZlcnNpb24gbm90IHdvcmsgYW55IGxvbmdlci4gVGhlIGdfc2V0cHJnbmFtZSgpCgkgIHdhcm5pbmcgaXMgZml4ZWQgaW4gcmVjZW50IEdMaWIgdmVyc2lvbnMuCgoyMDEwLTAyLTE2IDA4OjI2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBidWlsZDogbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciBnZXRzIGluc3RhbGxlZCB3aGVyZSB3ZSBleHBlY3QgaXQKCSAgQWRkIGNoZWNrIHRvIG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgcmVhbGx5IGdldHMgaW5zdGFsbGVkIHdoZXJlCgkgIHdlIHdpbGwgbG9vayBmb3IgaXQgbGF0ZXIsIGllLiBwYXRocyBhbmQgcHJlZml4ZXMgYXJlIHNldCBhdCBjb25maWd1cmUKCSAgdGltZSBhbmQgbm90IHNwZWNpZmllZCB2aWEgbWFrZS4KCSAgRml4ZXMgIzYwOTk0MS4KCjIwMTAtMDItMTUgMjM6MDI6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IHByZWZlciBzaG9ydCBkZXNjIGZyb20gR3N0RWxlbWVudERldGFpbHMKCjIwMTAtMDItMTUgMDE6MjQ6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZG9jczogZml4IGd0ay1kb2MgY2h1bmsgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMC0wMi0xNSAwMDozMToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgcG8gZmlsZXMgZm9yIG5ldyBjb21tZW50cwoKMjAxMC0wMi0xNSAwMDoyOTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiB3cmFwIGxvbmcgc3RyaW5nIGNvbnN0YW50cwoJICBBbmQgZml4IGluZGVudGluZyBpc3N1ZQoKMjAxMC0wMi0xNSAwMDoyMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBhZGQgc29tZSBjb21tZW50cyBmb3IgdHJhbnNsYXRvcnMgc28gdGFnIG1uZW1vbmljcyBnZXQgdHJhbnNsYXRlZCBjb3JyZWN0bHkKCSAgV2Ugd2FudCAncHJldmlldyBpbWFnZScgdHJhbnNsYXRlZCBhcyBhIG5vdW4sIG5vdCBhcyAncHJldmlldyBbdGhlXSBpbWFnZScuCgoyMDEwLTAyLTA0IDE3OjQzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MKCjIwMTAtMDItMTQgMjM6MTU6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NmRjNzkzIHRvIDQ0ZWNjZTcKCjIwMTAtMDItMTMgMTU6MTg6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVzZXQgdGhlIHdvcmtpbmcgbW9kZSB3aGVuIGdvaW5nIHRvIFJFQURZL05VTEwKCSAgVGhpcyBhbGxvd3MgcHJvcGVybHkgcmUtdXNpbmcgdHlwZWZpbmQgKGVsc2UgaXQgd291bGQgdGhpbmsgaXQncwoJICBhbHJlYWR5IGRvbmUgdGhlIHR5cGVmaW5kaW5nIHdoZW4gYmVpbmcgcmUtdXNlZCB3aXRoIGFub3RoZXIKCSAgc3RyZWFtKS4KCjIwMTAtMDEtMjIgMTE6Mzg6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZHMgYSB0ZXN0IGZvciBfZmlsbAoKMjAxMC0wMS0yMiAwOToxOTozMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXdyaXRlcjogYWRkIF9maWxsIGZ1bmN0aW9uCgkgIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gR3N0Qnl0ZVdyaXRlciB0aGF0IHdyaXRlcwoJICBhIGNvbnN0YW50IHZhbHVlIHRvIGEgbWVtb3J5IGFyZWEgKGFrYSBtZW1zZXQpLgoJICBVc2VmdWwgZm9yIGFkZGluZyBwYWRkaW5nIHRvIGJ1ZmZlcnMuCgkgIEFsc28gdXBkYXRlcyAuZGVmIGZpbGUgYW5kIGRvY3MuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGwoKQoKMjAxMC0wMS0yOCAxMTo1NzozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQXZvaWQgbWVzc2luZyBwYWRzIGFjdGl2YXRpb24KCSAgVHlwZWZpbmQgbWlnaHQgbWVzcyB1cCBwYWRzIG1vZGVzIChwdWxsL3B1c2gpIGlmIGEKCSAgZG93bnN0cmVhbSBlbGVtZW50IGlzIHBsdWdnZWQgYW5kIGl0cyBwYWRzIGFjdGl2YXRlZAoJICBpbiAnc3RlcCAyJyBvZiB0eXBlZmluZCBwYWRzIGFjdGl2YXRpb24uCgkgIFRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgc3RlcHMgZG9uJ3QgY2hlY2sKCSAgaWYgd2UgYWxyZWFkeSBlbWl0dGVkIHR5cGVmb3VuZCBkdWUgdG8gdXBzdHJlYW0gc2V0dGluZwoJICBjYXBzIG9uIGJ1ZmZlcnMgYmVpbmcgcHVsbGVkIGluIHRoZSB0eXBlZmluZCBoZWxwZXJzLgoJICBBdm9pZCB0aGF0IGJ5IGNoZWNraW5nIGlmIHR5cGVmb3VuZCBpcyBhbHJlYWR5IGVtbWl0ZWQuCgkgIEZpeGVzICM2MDgwMzYKCjIwMTAtMDItMTIgMTQ6NDk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBNYWtlIGxvY2tpbmcgb2YgdGhlIHNlZ21lbnQgYSBiaXQgbW9yZSBzdHJpY3QgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgkgIFVwZGF0aW5nIHRoZSBzZWdtZW50IHZhbHVlcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGlsZSBob2xkaW5nIHRoZQoJICBTVFJFQU1fTE9DSyBhbmQgT0JKRUNUX0xPQ0suIFRoaXMgbWVhbnMsIHJlYWRpbmcgY2FuIGJlIGRvbmUgYXMKCSAgbG9uZyBhcyBvbmUgb2YgdGhlbSBpcyBoZWxkLCBub3QgYm90aCwgd2hpY2ggcmVtb3ZlcyBzb21lIGxvY2stdW5sb2NrCgkgIGJsb2NrcyBmcm9tIHBlcmZvcm1hbmNlIGNyaXRpY2FsIGNvZGUgcGF0aHMuCgkgIEFsc28gZG9jdW1lbnQsIHRoYXQgZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQoKSAqbXVzdCogYmUgY2FsbGVkIGluCgkgIHN0YXRlcyA8PSBSRUFEWSBhbmQgYWRkIGFuIGFzc2VydGlvbiBmb3IgdGhpcy4gQ2hhbmdpbmcgdGhlIGZvcm1hdAoJICBsYXRlciB3aWxsIGNvbXBsZXRlbHkgbWVzcyB1cCB0aGUgc2VnbWVudCBpbmZvcm1hdGlvbi4KCjIwMTAtMDItMDggMDk6MTI6MDEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IHNldmVyYWwgdHlwbyBmaXhlcwoJICBGaXhlcyAjNjA5Mjg2LgoKMjAxMC0wMi0wOSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUHJvdGVjdCBzZWdtZW50IHZhbHVlcyBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzIGZyb20gZGlmZmVyZW50IHRocmVhZHMKCSAgVGhpcyBjb3VsZCBoYXBwZW4gZWFzaWx5IGluIHRoZSBxdWVyeSBmdW5jdGlvbnMgb3Igd2hlbiB0aGUgc2l6ZSBpcyBzZXQKCSAgb24gYXBwc3JjIGZyb20gc29tZSBub24tc3RyZWFtaW5nIHRocmVhZC4KCjIwMTAtMDItMDQgMjE6MTE6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBQcm90ZWN0IGludGVybmFsIGZpZWxkcyBmcm9tIGNvbmN1cnJlbnQgY2hhbmdlcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIEZpeGVzIGJ1ZyAjNjA4ODc3LgoKMjAxMC0wMi0xMSAyMDoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IGxlYWsgdGltZW91dCBHU291cmNlCgoyMDEwLTAyLTExIDAwOjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IGZsZXNoIG91dCByZWxlYXNlIGRvYyBzb21lIG1vcmUKCjIwMTAtMDItMTEgMDE6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTUFJTlRBSU5FUlM6CgkgIFVwZGF0ZSBNQUlOVEFJTkVSUywgYWRkIG15c2VsZgoKMjAxMC0wMi0xMSAxOTo0OTowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoJICBTbHVzaHkgZnJlZXplIHJlbWFpbnMgaW4gZWZmZWN0LgoKPT09IHJlbGVhc2UgMC4xMC4yNiA9PT0KCjIwMTAtMDItMTAgMTk6MTc6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yNgoKMjAxMC0wMi0xMCAxNTozMjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDItMDkgMTU6NTI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGRlZmluZSBHU1RfUExVR0lOX1NDQU5ORVJfSU5TVEFMTEVEIGluIHdpbjMyIGNvbmZpZy5oCgkgIEV2ZW4gaWYgaXQncyBub3QgdXNlZCwgaXQgc3RpbGwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgdGhpbmdzIHRvCgkgIGNvbXBpbGUuCgoyMDEwLTAyLTA5IDEwOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogTVNWQyBkb2Vzbid0IHNlZW0gdG8gbGlrZSAjd2FybmluZwoJICBWaXN1YWwgU3R1ZGlvIGNvbXBsYWlucyBhYm91dCAiaW52YWxpZCBwcmVwcm9jZXNzb3IgY29tbWFuZCAnd2FybmluZyciCgkgIGV2ZW4gaWYgdGhlIGlmZGVmIGRvZXNuJ3QgdHJpZ2dlciwgc28ganVzdCByZW1vdmUgdGhpcyBhZ2Fpbi4KCjIwMTAtMDItMTAgMTQ6NDA6MTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBGaXggbXVsdGlxdWV1ZSB0ZXN0IGZvciBsYXRlc3QgY29tbWl0cy4KCSAgVGhlIHByb2JsZW0gbGllcyBpbiB0aGUgZmFjdCB0aGF0IG11bHRpcXVldWUgd2lsbCBub3cgb3BlcmF0ZSBzb21ld2hhdAoJICBzaW1pbGFybHkgdG8gdGhlIGZsb3cgYWdncmVnYXRpb24gbG9naWMgb2YgZGVtdXhlcnMgYW5kIHRoZXJlZm9yZQoJICB3aWxsIHN0b3BwIHdoZW5ldmVyIGFsbCBkb3duc3RyZWFtIHBhZHMgcmV0dXJuIE5PVF9MSU5LRUQgYW5kL29yCgkgIFVORVhQRUNURUQgYW5kIHRoZXJlJ3Mgbm8gbW9yZSBidWZmZXJzIHRvIHB1c2guCgkgIFRoZSBsYXRlc3QgY29tbWl0cyBzaG91bGQgbm90IGFmZmVjdCBhbnkgcmVndWxhciB1c2UtY2FzZSwgYnV0IHRoZSBidWcKCSAgcmVwb3J0IHdpbGwgYmUga2VwdCBvcGVuIHNvIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIgY2FuIGJlIHJlLWVzdGFibGlzaGVkCgkgIGlmIG5lZWRlZC4KCSAgRml4ZXMgIzYwOTQ4NgoKMjAxMC0wMi0wOSAxNTo1MToxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBzdG9wIHRocmVhZHMgb24gVU5FWFBFQ1RFRCBhbmQgZm9yd2FyZCBmbG93IHJldHVybnMuCgkgIFdoZW4gYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBHU1RfRkxPV19VTkVYUEVDVEVEIHdlIHdhbnQgdG86CgkgICogbGV0IHRoZSBkYXRhcXVldWUgdGFzayBydW5uaW5nCgkgICogZm9yd2FyZCB0aGUgZmxvdyByZXR1cm4gdXBzdHJlYW0uCgkgIFRoaXMgYWxsb3dzIHVwc3RyZWFtIGVsZW1lbnRzIHRvIHB1c2ggRU9TLCBhbmQgaGF2ZSB0aGF0IEVPUyBldmVudCBjb21lCgkgIGRvd25zdHJlYW0uCgkgIEZpeGVzICM2MDkyNzQKCjIwMTAtMDItMDkgMTM6MzU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXZlcnQgIm11bHRpcXVldWU6IGhhbmRsZSBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gYmV0dGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGZiZGY0ZGNlZGFkODY5MmYxZTNkODgzODU1MTE4ODk4N2U0NjJlNzQuCgkgIFBhcnRseSBmaXhlcyAjNjA5Mjc0CgoyMDEwLTAxLTI4IDA3OjI3OjQ5ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGUuc2g6IEZpeCBpc3N1ZXMKCjIwMTAtMDItMDcgMDk6NTk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgUmV2ZXJ0ICJkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGFlNjBkMDZlOWU0MDFkMWVkNGRlNWVmMjViNWMyODNkYjA2OTZhMzEgKGZpeGVzOiAjNjA5MTY2KQoKMjAxMC0wMi0wNCAxODozMDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNS4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTA0IDE3OjQ1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3BsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB0cmFuc2xhdGlvbiB1cGRhdGVzCgoyMDEwLTAyLTAxIDEyOjUwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBBU0NJSSBhcnQgc28gdGhhdCBpdGVyYXRvcnMgYXJlIGFsaWduZWQgcHJvcGVydHkgdG8gdGhlIGRpYWdyYW0KCjIwMTAtMDItMDEgMTc6NDA6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGdzdGJ5dGV3cml0ZXI6IEZpeCBkaWZmZXJlbnQgZnVuY3Rpb24gbmFtZXMgaW4gLmggYW5kIC5jCgkgIGdzdF9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2J1ZmZlciB3YXNuJ3QgZGVjbGFyZWQKCSAgaW4gLmgsIGluc3RlYWQgdGhlcmUgd2FzIF9yZXNldF9hbmRfZ2V0X2RhdGFfYXNfYnVmZmVyLgoJICBSZXBsYWNlIGl0IHdpdGggdGhlIHJlYWwgZnVuY3Rpb24gbmFtZSwgdGhhdCBpcyBzbWFsbGVyCgkgIGFuZCBtYXRjaGVzIGdzdF9ieXRlX3dyaXRlcl9mcmVlX2FuZF9nZXRfYnVmZmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDg3MjYKCjIwMTAtMDEtMzEgMTc6MzA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBidWZmZXIgbGlzdCBkb2NzCgoyMDEwLTAxLTMwIDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBmaXggdHlwbyBpbiB3YXJuaW5nIG1lc3NhZ2UKCSAgU3BvdHRlZCBieSBic3JlZXJlbmpAZ21haWwuY29tLgoJICBGaXhlcyAjNjA4NDQyLgoKMjAxMC0wMS0zMCAxNToxNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE1ZDQ3YTYgdG8gOTZkYzc5MwoKMjAxMC0wMS0zMCAxMzo0NTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IGRvbid0IHNwZXcgd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKXMgaWYgR0xpYiA+PSAyLjIzLjIKCSAgTGF0ZSBnX3RocmVhZF9pbml0KCkgaXMgZmluZSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMgYW5kIGRvbmUgYXV0b21hdGljYWxseQoJICBmcm9tIGdfdHlwZV9pbml0KCkgdGhlcmUsIHNvIGRvbid0IHdhcm4gaWYgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBjYWxsZWQKCSAgZ190aHJlYWRfaW5pdCgpIHlldCB3aGVuIGdzdF9pbml0KCkgaXMgY2FsbGVkIHdpdGggbmV3IEdMaWIgdmVyc2lvbnMuCgkgIEZpeGVzICM2MDgzOTguCgoyMDEwLTAxLTI5IDA5OjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogZG9uJ3QgcHV0IC1ER19USFJFQURTX01BTkRBVE9SWSBpbnRvIG91ciBwa2ctY29uZmlnIENGTEFHUwoJICBJZiB3ZSBmb3JjZSAtREdfVEhSRUFEU19NQU5EQVRPUlkgb250byBhcHBzLCB0aGVuIGdfdGhyZWFkX3N1cHBvcnRlZCgpCgkgIHdpbGwgYWx3YXlzIGV2YWx1YXRlIHRvIFRSVUUsIHNvIHRoZSB0eXBpY2FsIHRocmVhZCBpbml0aWFsaXNhdGlvbgoJICBib2lsZXJwbGF0ZSBjb2RlIGlmICghZ190aHJlYWRfc3VwcG9ydGVkKCkpIGdfdGhyZWFkX2luaXQoTlVMTCk7IHdpbGwKCSAgbm8gbG9uZ2VyIHdvcmssIGFuZCB0aGUgdGhyZWFkaW5nIHN5c3RlbSBub3QgYmUgaW5pdGlhbGlzZWQgYW5kIHVzCgkgIHByaW50aW5nIGEgd2FybmluZyBpbiBnc3RfaW5pdC4gVGhpcyBtYXkgYmUgZmluZSBpbiBtb3N0IGNhc2VzLCBzaW5jZQoJICBsYXRlIGluaXRpYWxpc2F0aW9uIGlzIGFsbG93ZWQgYW5kIGF1dG9tYXRpY2FsbHkgZG9uZSBpbiBnX3R5cGVfaW5pdCgpCgkgIHNpbmNlIEdMaWIgMi4yMy4yLCBidXQgbGV0J3MgYmUgY2F1dGlvdXMgYW5kIG9ubHkgdXNlIHRoaXMgZGVmaW5lIHdoZW4KCSAgY29tcGlsaW5nIEdTdHJlYW1lciBpdHNlbGYuCgkgIFNlZSAjNjA4Mzk4LgoKMjAxMC0wMS0yOCAxNTo1NToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVGFrZSBzdGFydF90aW1lIGFmdGVyIGNoYWluaW5nIHVwIHRvbwoJICBSZWZhY3RvciB0aGUgY29kZSB0byB0YWtlIHRoZSBjdXJyZW50IHN0YXJ0X3RpbWUgd2hlbiBnb2luZyB0byBQQVVTRUQuCgkgIE1ha2Ugc3VyZSB3ZSBhbHNvIGNhbGwgdGhlIHN0YXJ0X3RpbWUgdXBkYXRlIGNvZGUgYWZ0ZXIgd2UgY2hhaW5lZCB1cCB0byB0aGUKCSAgcGFyZW50IGJpbi4KCSAgRml4ZXMgIzYwNzg0MgoKMjAxMC0wMS0yNiAxODo1OTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjUuMiBwcmUtcmVsZWFzZQoKMjAxMC0wMS0yNyAwMDoyMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2tzOiBmaXggc3B1cmlvdXMgZ2hvc3QgcGFkIGNoZWNrIGZhaWx1cmUKCjIwMTAtMDEtMjYgMTk6MzU6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgd2luZG93cyBoZWFkZXJzIHRvIGxhdGVzdCB2ZXJzaW9uCgoyMDEwLTAxLTI2IDE5OjMyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHVwZGF0ZSB0byByZWxlYXNlIG5vdGVzCgoyMDEwLTAxLTI2IDE4OjQ1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcwoKMjAxMC0wMS0yNiAxODozOTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHRlc3RzOiBmaXggd2FybmluZyBpbiBydHBvb2wtdGVzdAoJICBUaGUgc3RyZWFtIHN0YXR1cyBtZXNzYWdlIG9iamVjdCBtYXkgYmUgb2YgYSBub24tR09iamVjdCB0eXBlLCBlLmcuCgkgIEdfVFlQRV9QT0lOVEVSIChzZWUgR3N0QXVkaW9TcmMpLCBzbyBwcmludCB0aGF0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgYXNzdW1pbmcgdGhlIHZhbHVlIGhvbGRzIGFuIG9iamVjdC4KCjIwMTAtMDEtMjYgMTI6NDM6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlcgoJICBXaGVuIHdlIHJlY2VpdmUgYW4gVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGZyb20gZG93bnN0cmVhbSwgd2UgbXVzdCBub3Qgc2h1dGRvd24KCSAgdGhlIHB1c2hpbmcgdGhyZWFkIGJlY2F1c2UgdXBzdHJlYW0gd2lsbCBhdCBzb21lIHBvaW50IHB1c2ggYW4gRU9TIHRoYXQgd2Ugc3RpbGwKCSAgbmVlZCB0byBwdXNoIGZ1cnRoZXIgZG93bnN0cmVhbS4KCSAgVG8gYWNoaWV2ZSB0aGlzLCBjb252ZXJ0IHRoZSBVTkVYUEVDVEVEIHJldHVybiB2YWx1ZSB0byBPSy4gQWRkIGEgZml4bWUgc28gdGhhdAoJICB3ZSBpbXBsZW1lbnQgdGhlIHJpZ2h0IGxvZ2ljIHRvIHByb3BhZ2F0ZSB0aGUgZmxvd3JldHVybiB1cHN0cmVhbSBhdCBzb21lIHBvaW50LgoJICBBbHNvIGNsZWFuIHVwIHRoZSB1bml0IHRlc3QgYSBsaXR0bGUuCgkgIEZpeGVzICM2MDgxMzYKCjIwMTAtMDEtMjYgMDg6NTI6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IEZpeCBiYXNpY3MtYnVzIGRvY3MKCSAgRml4IHdyb25nIGluZm9ybWF0aW9uIGFib3V0IGJ1cyB3YXRjaCBmdW5jdGlvbnMgaW4gdGhlCgkgIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IG1hbnVhbC4KCSAgRml4ZXMgIzYwODEyNwoKMjAxMC0wMS0yNCAyMzoxMjoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogYWxzbyByZW1vdmUgcHJpdmF0ZSBmdW5jdGlvbiBmcm9tIGRlZiBmaWxlCgoyMDEwLTAxLTI0IDIzOjA0OjI3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBhIGludGVyZmFjZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIHN0YXRpYwoJICBUaGlzIHNob3VsZCBub3QgY2F1c2UgYW55IHRyb3VibGVzIC0gdGhlIG1ldGhvZHMgd2Fzbid0IGluIGFueSBoZWFkZXIuCgoyMDEwLTAxLTI0IDIyOjIyOjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiByZW1vdmUgOyBhZnRlciB9CgoyMDEwLTAxLTIyIDE4OjAwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBkb2NzIHRvIG1hcmsgbmV3IHByb3BlcnR5CgoyMDEwLTAxLTIyIDE3OjU1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgb3B0aW9uIHRvIHJlbW92ZSB0aGUgdGVtcC1maWxlCgkgIEFkZCBhbiBvcHRpb24gdG8gYXV0b21hdGljYWxseSByZW1vdmUgdGhlIHRlbXAgZmlsZSAoVFJVRSBieSBkZWZhdWx0KS4gVGhpcwoJICBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGtlZXAgdGhlIHRlbXAgZmlsZSBieSBvdGhlciBtZWFucwoJICB0aGFuIGhhcmRsaW5raW5nIG9yIGhvbGRpbmcgYW4gZmQgb3Blbi4KCSAgRml4ZXMgIzYwNzczOQoKMjAxMC0wMS0yMiAwMjowMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB1cmkgc3RyaW5nCgoyMDEwLTAxLTIxIDE2OjE5OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4Lmg6CgkgIGdzdGluZGV4OiByZXRhYiAuaCBmaWxlCgoyMDEwLTAxLTIwIDE0OjEzOjExICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogUnVuIGdfdGhyZWFkX2luaXQoKSB1bmNvbmRpdGlvbmFsbHkKCSAgU2luY2Ugd2UgZGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlksIGdfdGhyZWFkX3N1cHBvcnRlZCgpIGV2YWx1YXRlcyB0bwoJICBUUlVFIHVuY29uZGl0aW9uYWxseSwgc28gY2FsbGluZyBnX3RocmVhZF9pbml0KCkgbmV2ZXIgaGFwcGVuZWQuCgoyMDEwLTAxLTIwIDEwOjU4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW4zMgoJICBNb3ZlIHZhcmlhYmxlIHRoYXQncyBvbmx5IHVzZWQgb24gdW5peCBpbnRvIHRoZSB1bml4IGJsb2NrIHNvIHRoYXQKCSAgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdGhlIHVudXNlZCB2YXJpYWJsZSBvbiB3aW4zMgoJICAoc2VlICM1OTc2NjIpLgoKMjAxMC0wMS0yMCAwOTo0NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogdHJ5IHNjYW5uZXIgc2V0IHZpYSBlbnYgdmFyIGJlZm9yZSB1c2luZyB0aGUgaW5zdGFsbGVkIG9uZQoJICBJZiB0aGUgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCwgd2Ugc2hvdWxkIHRyeQoJICB0aGUgc2Nhbm5lciBzcGVjaWZpZWQgdGhlcmUgZmlyc3QsIHRvIG1ha2Ugc3VyZSB0aGUgcmlnaHQgc2Nhbm5lciBiaW5hcnkKCSAgaXMgdXNlZCBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzIGFuZCBidWlsZHMgZnJvbSBzb3VyY2Ugd2hlbiB0aGVyZSdzCgkgIGFscmVhZHkgYW4gaW5zdGFsbGVkIHZlcnNpb24uCgoyMDEwLTAxLTIwIDA2OjU4OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBidWlsZDogRGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlkgZXZlcnl3aGVyZQoJICBXZSByZXF1aXJlIHRocmVhZHMgdG8gYmUgc3VwcG9ydGVkIGluIGFueSBjYXNlIGFuZCBkZWZpbmluZyB0aGlzCgkgIHdpbGwgc2ltcGxpZnkgdGhlIG11dGV4LCBjb25kaXRpb24gdmFyaWFibGUsIGV0Yy4gbWFjcm9zIGZyb20gZ3RocmVhZAoJICB0byBub3QgYWx3YXlzIGNoZWNrIGlmIHRocmVhZHMgYXJlIHJlYWxseSBzdXBwb3J0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjA3NDgxLgoKMjAxMC0wMS0wOCAyMDo1NjoxOCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHBsdWdpbmxvYWRlcjogZGlzYWJsZSBleHRlcm5hbCBwbHVnaW4gbG9hZGVyIG9uIFdpbmRvd3MgdW50aWwgaXQgaXMgcG9ydGVkIHByb3Blcmx5CgkgIFNlZSAjNTk3NjYyLgoKMjAxMC0wMS0yMCAwMTowOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGdzdF9wcml2YXRlLmg6IG1ha2Ugc3VyZSBnc3RfcHJpdmF0ZS5oIGlzIGluY2x1ZGVkIGJlZm9yZSBnbGliLmgKCSAgRm9yIHRoZSByZWFzb24gb3V0bGluZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBnc3RfcHJpdmF0ZS5oIChpbmxpbmUKCSAgZnVuY3Rpb25zIGluIGdsaWIgbWF5IG5lZWQgdGhlIGdfbG9nX2RvbWFpbiB2YXJpYWJsZSkuIEFsc28gaW5jbHVkZQoJICBnc3RfcHJpdmF0ZS5oIGJlZm9yZSB1c2luZyBhbnkgR19PU18qIGRlZmluZXMsIGVzcC4gaW4gcGx1Z2luIGxvYWRlci4KCjIwMTAtMDEtMjAgMDE6MzM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IG1pbm9yIGd0ay1kb2MgbWFya3VwIGZpeGVzCgoyMDEwLTAxLTIwIDAwOjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTRjZWM4OSB0byAxNWQ0N2E2CgoyMDEwLTAxLTE5IDE2OjM5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBkb2NzOiBzbWFsbCBkb2NzIHVwZGF0ZXMKCjIwMTAtMDEtMTkgMTQ6MDc6MjMgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogZGlyZWN0bHkgc2V0IHRoZSBjYXBzIHdoZW4gcHVzaGluZyBidWZmZXIgd2l0aCBkaWZmZXJlbnQgY2Fwcy4KCSAgVGhpcyBjaGVjayBpcyBub3QgbmVjZXNhcnJ5IGFzIHdlIGFyZSBub3QgbmVnb3RpYXRpbmcgYW55bW9yZS4gQW5kIGl0IGNhbgoJICBiZSB3cm9uZyBpZiB1cHN0cmVhbSBjYW4ndCBwcm9kdWNlIHRoaXMgY2FwcyBhbnltb3JlLCBidXQgZG93bnN0cmVhbSBjYW4KCSAgcHJvY2VzcyB0aGVtIGZpbmUuCgoyMDEwLTAxLTE4IDEzOjU3OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IFRoZSBHVmFsdWUgY29sbGVjdGlvbiBmdW5jdGlvbiBjYW4gbm90IGFzc3VtZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBpbml0aWFsaXplZAoJICAuLi5hbmQgaXQgd2lsbCB1c3VhbGx5IGJlIGVpdGhlciBmaWxsZWQgYnkgemVyb2VzIG9yIHJhbmRvbSB2YWx1ZXMuCgkgIEZpeGVzIGJ1ZyAjNjA3MjgzLgoKMjAxMC0wMS0xNiAyMTo1MjowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2Ugc3VnZ2VzdGVkIGNhcHMgaW4gYnVmZmVyIGFsbG9jYXRpb24gaWYgYSBzaXplIHdhcyBzdWdnZXN0ZWQgdG9vCgoyMDEwLTAxLTE2IDE5OjQxOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc3VwZXJmbHVvdXMgZ3VhcmQgYWdhaW5zdCBOVUxMCgkgIEFsbCBjYWxsZXJzIG9mIHRoaXMgc3RhdGljIGZ1bmN0aW9uIGFscmVhZHkgY2hlY2sgZm9yIE5VTEwtbmVzcwoJICB0aGVtc2VsdmVzLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluIChhbmQgaWYgd2UgZG8gaXQsIHdlIHNob3VsZAoJICBwcm9iYWJseSBkbyBzbyBiZWZvcmUgZGVyZWZlcmVuY2luZyB0aGUgcG9pbnRlciBmb3IgdGhlIGZpcnN0IHRpbWUpLgoKMjAwOS0xMi0xNyAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG1pY3JvLW9wdGltaXNlIHNvbWUgZ2V0dGVycwoJICBBdm9pZCBjaGVja2luZyB0aGUgR1R5cGUgb2YgdGhlIHZhbHVlIHR3aWNlIChvbmNlIG9uIG91ciBzaWRlIGFuZAoJICBvbmNlIGluIGdfdmFsdWVfZ2V0XyooKSkgYnkgYnktcGFzc2luZyBnX3ZhbHVlX2dldCgpIGFuZCBhY2Nlc3NpbmcKCSAgdGhlIEdWYWx1ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkuCgoyMDEwLTAxLTE1IDE4OjM2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogdXBkYXRlIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDEtMTUgMDA6NDY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogbWlub3IgcmVsZWFzZSBkb2NzIHVwZGF0ZQoKMjAxMC0wMS0xNCAyMDoxOTowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIGJ1ZmZlcnMgd2l0aCBOVUxMIGNhcHMgY29ycmVjdGx5CgkgIFRoaXMgbWVhbnMgdGhhdCB0aGUgY2FwcyBkaWRuJ3QgY2hhbmdlIHNvIGRvbid0IHRyeSB0byBoYW5kbGUKCSAgdGhlIE5VTEwgY2FwcyBhcyB0aGUgbmV3IGNhcHMuCgoyMDEwLTAxLTE0IDEwOjQ0OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBkb2NzOiBNb3ZlIGZpZWxkIHNwZWNpZmljIFNpbmNlIG1hcmtlcnMgYXQgdGhlIHNhbWUgbGluZQoJICBGaXhlcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZ3MgYWJvdXQgU2luY2UgYmVpbmcgZGVmaW5lZCBtdWx0aXBsZSB0aW1lcy4KCjIwMTAtMDEtMTMgMTA6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSAgZmFxOiByZW1vdmUgcmV2aXNpb24gaGlzdG9yeSB0aGF0IG5vIG9uZSB1cGRhdGVzIG9yIGNhcmVzIGFib3V0IGFueXdheQoKMjAxMC0wMS0xMyAwOTozMjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBmaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgb24gY2dpdAoJICBGaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgbm93IHRoYXQgaXQncyBiZWVuIG1vdmVkLCBhbmQgZml4IGEgdHlwbwoJICB3aGlsZSB3ZSdyZSBhdCBpdC4gQWxzbyBhZGQgYSBuZXcgc2VjdGlvbiB0byAnQnVpbGRpbmcgR1N0cmVhbWVyIGZyb20KCSAgZ2l0JyB0aGF0IHBvaW50cyB0byB0aGUgJ0hvdyBkbyBJIGRldmVsb3AgYWdhaW5zdCBhbiB1bmluc3RhbGxlZCBjb3B5CgkgIG9mIEdTdHJlYW1lcicgc2VjdGlvbi4KCjIwMTAtMDEtMTMgMTA6MzI6NDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIFJFQURNRToKCSAgZG9jczogd2UncmUgaW4gZ2l0IHNpbmNlIGEgd2hpbGUKCjIwMTAtMDEtMTMgMTA6MzE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJKiBSRUFETUU6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IG1vdmUgZ3N0LXVuaW5zdGFsbGVkIGZyb20gZG9jcy9mYXEgdG8gc2NyaXB0cwoJICBEb24ndCBpbmNsdWRlIHRoZSBsb25nIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gdmVyYmF0aW0gaW4gdGhlIGZhcSBhbnltb3JlCgkgICh0aGVyZSBpcyBhIGxpbmsgdG8gY2dpdCkuIERpc3QgdGhlIHNjcmlwdCB1bmRlciBpdHMgbmV3IGxvY2F0aW9uLgoKMjAxMC0wMS0xMiAyMTozNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIHNvbWUgbW9yZSB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZXMKCjIwMTAtMDEtMTIgMjA6MjE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IHN0cmR1cC9mcmVlIHdoZW4gcmVhZGluZyB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFN0cmluZ3MgaW4gdGhlIGJpbmFyeSByZWdpc3RyeSBhcmUgTlVMLXRlcm1pbmF0ZWQsIHNvIHdlIGNhbiBqdXN0IHVzZSB0aGVtCgkgIGRpcmVjdGx5IGlmIHdlIG9ubHkgbmVlZCB0aGVtIHRlbXBvcmFyaWx5LCBhbmQgYXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jcwoJICBhbmQgZnJlZXMuCgoyMDEwLTAxLTEyIDE3OjM4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiB1c2UgbmV3IHR5cGVmaW5kIGZ1bmN0aW9uCgkgIFJlZmFjdG9yIGEgbGl0dGxlLgoJICBVc2UgdGhlIG5ldyB0eXBlZmluZCBoZWxwZXIgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gdG8gc3BlZWQgdXAKCSAgdHlwZWZpbmRpbmcuCgoyMDEwLTAxLTEyIDE3OjM0OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdHlwZWZpbmQ6IGFkZCBhIG5ldyBtZXRob2QgdGhhdCBhbHNvIHVzZXMgdGhlIGZpbGUgZXh0ZW5zaW9uCgkgIEFkZCBhIG1ldGhvZCB0byBwZXJmb3JtIGdldF9yYW5nZSB0eXBlZmluZGluZyB0aGF0IGFsc28gdXNlcyB0aGUKCSAgdXJpL2xvY2F0aW9uIGV4dGVuc2lvbiBhcyBhbiBleHRyYSBoaW50LiBJdCB3aWxsIGZpcnN0IHRyeSB0byBjYWxsIHRoZQoJICB0eXBlZmluZCBmdW5jdGlvbnMgb2YgdGhlIGZhY3RvcmllcyB0aGF0IGhhbmRsZSB0aGUgZ2l2ZW4gZXh0ZW5zaW9uLiBUaGUgcmVzdWx0CgkgIGlzIHRoYXQgaW4gdGhlIGNvbW1vbiBjYXNlLCB3ZSBvbmx5IGNhbGwgb25lIHR5cGVmaW5kIGZ1bmN0aW9uLCB3aGljaCBzcGVlZHMgdXAKCSAgdGhlIHR5cGVmaW5kaW5nIGEgbG90LgoKMjAxMC0wMS0xMSAxNDo1ODoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIFFvUyBkb2N1bWVlbnQKCSAgQWRkIHNvbWUgaWRlYXMgYWJvdXQgYSBuZXcgUW9TIG1lc3NhZ2UuCgkgIFNlZSBhbHNvICMzMjI5NDcKCjIwMTAtMDEtMTEgMTE6Mzg6MzIgKzAxMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG1ha2UgcmVsZWFzZV9wYWQgdGhyZWFkc2FmZQoJICBQcm90ZWN0IHRoZSAtPnJlbW92ZWQgZmllbGQgd2l0aCB0aGUgb2JqZWN0IGxvY2sgYXMgd2VsbC4gVGFrZSB0aGUgRFlOIGxvY2sKCSAgZWFybGllciBzbyB0aGF0IHdlIGNhbiBtYXJrIHRoZSBwYWQgcmVtb3ZlZCBhbmQgYXZvaWQgYSByYWNlIGluIHBhZF9hbGxvYy4KCSAgRml4ZXMgIzYwNjQzNQoKMjAwOS0xMi0xMSAxNzo0Njo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMTAtMDEtMTAgMjE6NDk6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZGVmZXIgZ2V0dGluZyB0aGUgY2xhc3NlcyB1bnRpbCB3ZSBhY3R1YWx5IG5lZWQgdGhlbQoJICBUaGlzIGZ1bmN0aW9uIGhhcyBhIGxvdCBvZiBlYXJseSByZXR1cm5zLiBHaXZlIHRoZW0gc29lbSBtb3JlIGJlbmVmaXQuCgoyMDEwLTAxLTEwIDIxOjQwOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIGV4dHJhIGhvcCBpbiBnc3RfZWxlbWVudF9saW5rCgkgIE5vIG5lZWQgdG8gY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQgd2l0aCBmaWx0ZXI9TlVMTCwgd2hpY2ggd291bGQKCSAgY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHMoKSBpbiB0aGF0IHdheS4gQ2FsbCBpdCBkaXJlY3RseSB0byBzYXZlIGEgY2FsbCBhbmQKCSAgZXhwZW5zaXZlIGdvYmplY3QgdHlwZSBjaGVja3MuCgoyMDEwLTAxLTEwIDE3OjM5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIGhlYWRlciBmaWxlCgkgIFJlbW92ZSBzb21lIGNydWZ0IGZyb20gdGhlIGdzdGNoZWNrIGhlYWRlciBmaWxlIHRoYXQncyBub3QgbmVlZGVkCgkgIGFueSBsb25nZXIgbm93IHRoYXQgd2Ugc2hpcCB3aXRoIG91ciBvd24gY29weSBvZiBsaWJjaGVjay4KCjIwMTAtMDEtMDcgMTc6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW1pZGkueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IHJlbW92ZSBlbXB0eSBtaWRpIHNlY3Rpb24KCjIwMTAtMDEtMDcgMTM6NDg6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDEwLTAxLTA3IDEzOjQ3OjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZQoKMjAxMC0wMS0wNiAyMDowODo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZ3MKCjIwMTAtMDEtMDYgMjA6MDY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogbWlub3IgZG9jdW1lbnRhdGlvbiBmaXhlcyBmb3IgcmVjZW50bHktYWRkZWQgdGFncwoJICBNZW50aW9uIHRoZSB0eXBlIG9mIHRoZSB0YWcgaW4gdGhlIGd0ay1kb2MgYmx1cmIsIHNvIHBlb3BsZSBrbm93CgkgIHdoaWNoIGFjY2Vzc29yIEFQSSB0byB1c2UsIGFuZCBmaXggdXAgdGhlIGRvYyBibHVyYnMgdG8gbWF0Y2ggdGhlCgkgIGFjdHVhbCB0YWcgZGVmaW5lLgoKMjAxMC0wMS0wNiAyMDowNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBmaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIG5ldyB0YWdzCgkgIEZpeCB1cCB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHNvbWUgcmVjZW50bHktYWRkZWQgdGFncyB0byBtYXRjaCB0aGUKCSAgZXhpc3Rpbmcgc3RyaW5nczogd2Ugd2FudCBzaG9ydCBtbmVtb25pYy1saWtlIHN0cmluZ3MgaGVyZSB0aGF0IHN0YXJ0CgkgIHdpdGggYSBsb3dlciBjYXNlIGxldHRlci4KCjIwMTAtMDEtMDYgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZGVwcmVjYXRlIHVzZWxlc3MgZ3N0X3JlZ2lzdHJ5X3htbF97cmVhZHx3cml0ZX1fY2FjaGUoKQoJICBUaGUgb25seSByZWFzb24gdGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgc3RpbGwgYXJvdW5kIGlzIHRoYXQgYXQgc29tZQoJICBwb2ludCBpbiB0aGUgcGFzdCB0aGV5IHdlcmUgaW4gYSBwdWJsaWMgaGVhZGVyLCBzbyB3ZSBjYW4ndCByZWFsbHkKCSAgcmVtb3ZlIHRoZW0gbm93IGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBwcml2YXRlIGFsbCBhbG9uZwoJICAoYW5kIGFyZW4ndCByZWFsbHkgcGFydGljdWxhcmx5IHVzZWZ1bCkuIFNpbmNlIHRoZXNlIGFyZSBqdXN0IGVtcHR5CgkgIHN0dWJzIG5vdyB0aGF0IGRvIG5vdGhpbmcgYnV0IHJldHVybiBGQUxTRSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIDAuMTEgYW55d2F5LCB3ZSBtYXkganVzdCBhcyB3ZWxsIGRlcHJlY2F0ZSB0aGVtIGZvcm1hbGx5LgoKMjAxMC0wMS0wNiAxOToxODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIGRvY3M6IGFkZCBTaW5jZSBtYXJrZXJzIHRvIHRhc2sgcG9vbCBkb2NzIGFuZCBkb2N1bWVudCB0YXNrIGZ1bmN0aW9uCgoyMDEwLTAxLTA2IDE4OjUwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBtb3ZlIFNIQVZFX0lOSVQgYmVoaW5kIGFsbCBjaGVja3MKCSAgTW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgb3RoZXIgY2hlY2tzLCBpbiBwYXJ0aWN1bGFyIEFHX0dTVF9DSEVDS19DSEVDS1MuCgkgIFRoaXMgc2hvdWxkIGZpeCBwcm9ibGVtcyB3aXRoIGhlYWRlciBjaGVja2luZyBhbmQgY2hlY2tpbmcgZm9yIGxvY2FsdGltZV9yLAoJICB3aGljaCBjYXVzZXMgY29tcGlsYXRpb24gZXJyb3JzIHdpdGggY2xlYW4gY2hlY2tvdXRzIHdoZXJlIGNvbW1vbi9zaGF2ZSBoYXMKCSAgbm90IGJlZW4gY3JlYXRlZCB5ZXQgd2hlbiB0aG9zZSBjaGVja3MgYXJlIHJ1bi4gSXQgc2VlbXMgbGlrZSBTSEFWRV9JTklUCgkgIGNoYW5nZXMgdGhlIGVudmlyb25tZW50IHNvIHRoYXQgY2hlY2tzIGRlcGVuZGluZyBvbiBhIGNvbXBpbGVyIG5lZWQgc2hhdmUKCSAgdG8gZXhpc3QgYXQgdGhhdCBwb2ludCwgd2hpY2ggd2lsbCBmYWlsIGlmIEFDX09VVFBVVCBoYXNuJ3QgY3JlYXRlZCBpdCB5ZXQuCgkgIEZpeGVzICM2MDU5MzAuCgoyMDEwLTAxLTA1IDAxOjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvbWUgbW9yZSBzbyB0aGF0IGZhaWx1cmVzIGFjdHVhbGx5IGZhaWwKCSAgSW5jbHVkZSB1bmlzdGQuaCBzbyB0aGF0IF9QT1NJWF9WRVJTSU9OIGlzIGFjdHVhbGx5IGRlZmluZWQgd2hlbgoJICBpdCBzaG91bGQgYmUgZGVmaW5lZC4gV2l0aG91dCB0aGF0LCBzdHVmZiBsaWtlIGZhaWxfaWYoMSkgZG9lc24ndAoJICBhY3R1YWxseSBmYWlsLCBwcmVzdW1hYmx5IGJlY2F1c2Ugb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUgZG8gaW5jbHVkZQoJICB1bmlzdGQuaCBhbmQgdGhlbiBoYXZlIF9QT1NJWF9WRVJTSU9OIGRlZmluZWQuCgkgIEZpeGVzICM2MDQ1NjUgZXZlbiBtb3JlLgoKMjAxMC0wMS0wNSAwMDowOToxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHJldHVybnM6IHRhZwoKMjAwOS0xMi0zMCAyMjo1Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc2V0IGl0ZXJhdGVfaW50ZXJhbF9saW5rcyBmdW5jdGlvbiBvbiBzb3VyY2UgcGFkCgoyMDA5LTEyLTI3IDE5OjMzOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0wMiAxOTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSBzdWJidWZmZXIgc3ViY2xhc3MKCSAgTW92ZSB0aGUgcGFyZW50IGJ1ZmZlciBwb2ludGVyIGludG8gdGhlIEdzdEJ1ZmZlciBzdHJ1Y3Qgc28gdGhhdCB3ZSBjYW4KCSAgcmVtb3ZlIHRoZSBzdWJidWZmZXIgY2xhc3MgYW5kIHR5cGUuIFRoaXMgaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8KCSAgbW9yZSBuYXR1cmFsbHkgaW1wbGVtZW50IG1ldGhvZHMgdG8gZ2V0IHRoZSByZWFsIHR5cGUgYW5kIHBhcmVudAoJICBvZiBhIHN1YmJ1ZmZlciAoU2VlICM1NDU1MDEpLgoJICBJdCBzaG91bGQgYWxzbyBiZSBzbGlnaHRseSBmYXN0ZXIgYmVjYXVzZSB0aGVyZSBpcyBubyBleHRyYSBvYmplY3QgaGllcmFyY2h5IHRvCgkgIGluaXRpYWxpemUgYW5kIGZyZWUuCgoyMDA5LTEyLTI0IDE5OjI1OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG9uJ3Qga2VlcCBidWZmZXJzIHJlZmZlZCBsb25nZXIgdGhhbiBuZWVkZWQKCSAgTWFrZSBzdXJlIHdlIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgZWFybHkgd2l0aG91dCBpbmNyZWFzaW5nIGl0cyByZWZjb3VudAoJICB3aGVuIHdlIGdvIGluIHRoZSBjb2xsZWN0IGZ1bmN0aW9uLiBUaGlzIHJlZHVjZXMgdGhlIGFtb3VudCBvZiBjb3BpZXMgbmVlZGVkIGluCgkgIG9yZGVyIHRvIG1ha2UgdGhlIGJ1ZmZlciB3cml0YWJsZSBpbiBtb3N0IGNhc2VzLgoKMjAwOS0xMi0yNCAxNzoyMjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHVubmVlZGVkIGNhc3RzCgoyMDA5LTEyLTI0IDE2OjUzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYXZvaWQgZG9pbmcgc3ViYnVmZmVycyB3aGVuIHdlIGNhbgoJICBJbiBzb21lIGNhc2VzIHdlIGNhbiBhdm9pZCBhbGxvY2F0aW5nIGEgc3ViYnVmZmVyIGFuZCBpbnN0ZWFkIHNpbXBseSByZWYKCSAgdGhlIGJ1ZmZlci4gQ2FsbGVycyBzaG91bGQgcGVyZm9ybSBfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGluIGFsbAoJICBjYXNlcyBub3cuCgoyMDA5LTEyLTI0IDE1OjI1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IGFkZCBhYmlsaXR5IHRvIGluc3RhbGwgY2xpcHBpbmcgZnVuY3Rpb25zCgkgIEFkZCBhIG1ldGhvZCB0byBpbnN0YWxsIGEgY2xpcHBpbmcgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiBhIGJ1ZmZlciBpcwoJICByZWNlaXZlZC4gVXNlcnMgb2YgY29sbGVjdHBhZHMgY2FuIHRoZW4gcGVyZm9ybSBjbGlwcGluZyBvbiB0aGUgaW5jb21taW5nCgkgIGJ1ZmZlcnMuCgkgIEFsc28gcmV0YWIgdGhlIGhlYWRlciBmaWxlIGEgbGl0dGxlLgoJICBTZWUgIzU5MDI2NQoKMjAwOS0xMi0yNCAxNToxMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIGJ1ZmZlcjIgaWRlYXMKCjIwMDktMTItMjQgMTQ6NDA6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBhdm9pZCBzb21lIG1vcmUgdHlwZSBjaGVja3MKCjIwMDktMTItMjQgMTQ6MjI6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGF2b2lkIHNvbWUgdHlwZSBjaGVja3MKCSAgQXZvaWQgdHlwZSBjaGVja3Mgd2hlbiB3ZSBjYW4KCSAgRG9uJ3QgbmVlZCB0byBwZWVrIHRoZSBwYXJlbnRfY2xhc3MsIHRoZSBib2lsZXJwbGF0ZSBkb2VzIHRoYXQgZm9yIHVzLgoKMjAwOS0xMi0yMyAyMTozOToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBhbHNvIHByaW50IGxlYWtlZCBvYmplY3RzCgkgIE1ha2UgdGhlIC1UIG9wdGlvbiBhbHNvIHByaW50IHRoZSBsZWFrZWQgb2JqZWN0cwoKMjAwOS0xMi0yMyAyMTozNzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogaW5jbHVkZSB0eXBlIG5hbWUgaW4gbGVha2VkIG9iamVjdHMKCSAgV2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgR09iamVjdCwgcHJpbnQgdGhlIHR5cGUgbmFtZSBhbG9uZyB3aXRoCgkgIHRoZSBwb2ludGVyIGZvciBlYXNpZXIgZGVidWdnaW5nLgoKMjAwOS0xMi0yMyAyMToyMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwcm9ibGVtIHdpdGggZGVzdHJveSBjYWxsYmFjayBub3QgYmVpbmcgY2FsbGVkCgkgIFdoZW4gd2UgdW5ibG9jayBhIHBhZCB3aXRoIHRoZSBzYW1lIHVzZXJfZGF0YSwgdGhlIGRlc3Ryb3kgY2FsbGJhY2sgaXMgbm90CgkgIGNhbGxlZC4gVGhpcyBsZWFkcyB0byByZWZjb3VudGluZyBsZWFrcyB0aGF0IGNhbm5vdCBiZSBhdm9pZGVkLiBJbnN0ZWFkIGFsd2F5cwoJICBjYWxsIHRoZSBkZXN0cm95IG5vdGlmeSB3aGVuZXZlciB3ZSBpbnN0YWxsIGEgbmV3IHBhZCBibG9jay4KCSAgSW4gcGFydGljdWxhciwgdGhpcyBmaXhlcyBhIG5hc3R5IHBhZCBsZWFrIGluIGRlY29kZWJpbjIuCgkgIEFsc28gdXBkYXRlIHRoZSB1bml0IHRlc3QgdG8gaGF2ZSBtb3JlIGFjY3VyYXRlIGNvbW1lbnRzIGFuZCB0ZXN0IHRoZSByZXF1aXJlZAoJICBiZWhhdmlvdXIuCgoyMDA5LTEyLTIyIDIyOjUyOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBzbWFsbCBjbGVhbnVwcywgdXNlIHNvbWUgR19MSUtFTFkKCjIwMDktMTItMjIgMTU6Mjk6MjYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgbm8gc291cmNlIHBhZAoKMjAwOS0xMi0yMSAxOToxMTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3Y2IyM2EgdG8gMTRjZWM4OQoKMjAwOS0xMi0yMSAxMTo1ODoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBnc3R0YWdsaXN0OiBBZGRzIG5ldyB0YWdzCgkgIEFkZHMgdGhlIGZvbGxvd2luZyBuZXcgdGFnczoKCSAgR1NUX1RBR19TSE9XX05BTUUKCSAgR1NUX1RBR19TSE9XX1NPUlROQU1FCgkgIEdTVF9UQUdfU0hPV19FUElTT0RFX05VTUJFUgoJICBHU1RfVEFHX1NIT1dfU0VBU09OX05VTUJFUgoJICBHU1RfVEFHX0xZUklDUwoJICBHU1RfVEFHX0NPTVBPU0VSX1NPUlROQU1FCgkgIEdTVF9UQUdfR1JPVVBJTkcKCSAgRml4ZXMgIzU5OTc1OQoKMjAwOS0xMi0xOSAxNDoyNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYWx3YXlzIGNhbGwgb3VyIGNoZWNrIGNoZWNrcyBmb3IgdGhlIFNVQlVOSVQgY29uZGl0aW9uYWwKCSAgVGhlIFNVQlVOSVQgY29uZGl0aW9uYWwgbmVlZHMgdG8gYmUgc2V0IGV2ZW4gaWYgY2hlY2sgaXMgZGlzYWJsZWQuIEFsc28KCSAgcmVtb3ZlIGEgRklYTUUgdGhhdCBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIgLyBhZnRlciBhbGwuCgoyMDA5LTEyLTE4IDIxOjI4OjM1ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgY2hlY2s6IHBhdGNoIGludGVybmFsIGNoZWNrIGNvcHkgc28gaXQgd29ya3Mgd2l0aCBvdXIgYnVpbGQgc3lzdGVtCgkgIEZpeGVzICM2MDQ1NjUuCgoyMDA5LTEyLTE4IDIxOjI2OjAxICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IHVwZGF0ZSBhdXRvdG9vbHMgYW5kIGRvY3Mgc3R1ZmYgZm9yIG5ldyBjaGVjayB2ZXJzaW9uCgoyMDA5LTEyLTE3IDIwOjA5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IHVwZGF0ZSBpbnRlcm5hbCBsaWJjaGVjayB0byAwLjkuOAoKMjAwOS0xMi0xNSAxODo1NTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoKMjAwOS0xMi0xNCAxNjoyMjoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBsaW5rIGJ1cyBhbmQgdGFza3MKCSAgQWRkIGEgbGluayBmcm9tIGJ1cyBzZWN0aW9uIGRvY3MgdG8gdGhlIHRhc2sgZG9jcy4gQWRkIGEgcGFyYWdyYXBoIHRvIHRhc2sgZG9jcwoJICB0byB0ZWxsIGFib3V0IG1lc3NhZ2VzIGFuZCB0aGUgYnVzLgoKMjAwOS0xMi0xNCAxNToxMTo0MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogYWRkIG1vcmUgZG9jcyBhcm91bmQgR3N0U3RhdGUgYW5kIEdzdFN0YXRlQ2hhbmdlCgkgIFRha2UgcmV2aWV3ZWQgZG9jcyBmcm9tIGRvY3MvZGVzaWduL3BhcnQtc3RhdGUgdG8gaGF2ZSB0aGF0IG1vcmUgcHJvbWluZW50CgkgIGluc2lkZSB0aGUgYXBpIGRvY3MuIEFkZCBhIGZldyBzZW50ZW5jZXMgdG8gbGluayB0aGluZ3MgYmV0dGVyIHRvZ2V0aGVyLgoKMjAwOS0xMi0xNCAxNToxMToxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiByZXZpZXcgYW5kIGZpeCBzcGVsbGluZwoKMjAwOS0xMi0xNCAxMTowNTo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGdzdGVsZW1lbnRmYWN0b3J5OiBzZXQgb2JqZWN0IG5hbWUgZWFybGllciBpZiBhcHBsaWNhYmxlCgkgIFNldHRpbmcgYW4gb2JqZWN0IG5hbWUgaXMgbmljZSBmb3IgcHJvcGVyIGRlYnVnIGxvZ2dpbmcuIElkZWFsbHkgdGhpcyB3b3VsZAoJICBzdGlsbCBoYXBwZW5zIGVhcmxpZXIgKC5lLmcgd2hlbiBwYWRzIGFyZSBhZGRlZCB0byBhbiBlbGVtZW50LCBpdHMgbm90IHlldCBzZXQpLgoKMjAwOS0xMi0xNCAxMTowNzoyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBmaXhtZS0wLjExIGNvbW1lbnQKCjIwMDktMTItMDggMTE6MzA6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29tbWVudDogc21hbGwgY29tbWVudCBjb3JyZWN0aW9uCgoyMDA5LTEyLTExIDE2OjI2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG5ldmVyIHNraXAgYSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBOZXZlciBza2lwIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gcGxheWluZywgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IGluIHRoZQoJICByaWdodCBzdGF0ZS4gV2UgbmVlZCB0aGlzIGJlY2F1c2Ugd2UgYWxzbyBkaXN0cmlidXRlIHRoZSBiYXNlX3RpbWUgd2hpbGUgZG9pbmcKCSAgdGhlIHN0YXRlIGNoYW5nZSBhbmQgc2tpcHBpbmcgdGhpcyBzdGVwIHdvdWxkIGxlYXZlIHNvbWUgZWxlbWVudHMgd2l0aG91dCBhIG5ldwoJICBiYXNlX3RpbWUuCgkgIEZpeGVzICM2MDAzMTMKCjIwMDktMTItMTEgMTY6MTk6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0xMi0wOCAxNzoyMTo0NyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiByZWxlYXNlIHBhZHMgaW4gZGlzcG9zZQoJICBNYWtlIHN1cmUgdG8gcmVsZWFzZSBhbGwgcmVxdWVzdC1wYWRzIGluIHRoZSBkaXNwb3NlLW1ldGhvZCwgaW4gY2FzZSBvZiBhCgkgIHNodXRkb3duLXJhY2UsIHdoZXJlIGEgcGFkLWFsbG9jIGlzIGFib3V0IHRvIGhhcHBlbi4KCSAgRml4ZXMgIzYwNDA5MQoKMjAwOS0xMi0wOSAxMzoyNzoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVzZSBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMKCjIwMDktMTItMDkgMDc6MjU6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uKCkgZm9yIHRoZSByZW1haW5pbmcgdG9vbHMKCjIwMDktMTItMDMgMTI6MzE6MTkgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uIGNhbGwgdG8gYXZvaWQgd2FybmluZyBmcm9tIG5ldyBHTGliLgoJICBnX3NldHByZ25hbWUgaXMgaW1wbGljaXRseSBjYWxsZWQgYnkgZ19vcHRpb25fY29udGV4dF9uZXcoKSB3aXRoIGEgY2hlY2sKCSAgdG8gc2VlIGlmIGl0J3MgYmVlbiBzZXQgYWxyZWFkeS4KCSAgRml4ZXMgYnVnICM2MDQwOTMuCgoyMDA5LTEyLTA4IDE2OjQwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHByb3h5X3NldGNhcHMgdG8gb25seSBpdGVyYXRlIHBhZHMgb2Ygb3RoZXIgZGlyZWN0aW9uCgoyMDA5LTEyLTA4IDE2OjIxOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggcHJveHlfZ2V0Y2FwcwoJICBNYWtlIGl0IHJldHVybiB0aGUgcGFkdGVtcGxhdGUgY2FwcyBvbiBlcnJvcnMgYW5kIG5vIHBhcmVudC4KCSAgT25seSBpbnRlcnNlY3QgcGFkcyBvZiB0aGUgb3Bvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHNvdXJjZSBwYWQuCgoyMDA5LTEyLTA4IDE2OjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogUmVuYW1lIHByb3h5IGl0ZXJhdG9yIGZvbGQgZnVuY3Rpb25zIHRvIGhhdmUgYSBtb3JlIG1lYW5pbmdmdWwgbmFtZQoKMjAwOS0xMi0wOCAxNjowOTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IElmIG9uZSBpbnRlcnNlY3Rpb24gZ2F2ZSBlbXB0eSBjYXBzIGRvbid0IGNvbnRpbnVlIGl0ZXJhdGluZyBvdmVyIHRoZSBvdGhlciBwYWRzCgoyMDA5LTEyLTA4IDE1OjI0OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFsbG93IHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50cyBhZnRlciBFT1MKCSAgVGhpcyBhbGxvd3MgZGVtdXhlcnMgdG8gdXBkYXRlIHRoZSBzZWdtZW50IHN0b3Agb2YgYW4gYWxyZWFkeQoJICBmaW5pc2hlZCBzdHJlYW0uIFRoaXMgbWlnaHQgYmUgbmVlZGVkIGlmIHNvbWUgc3RyZWFtIGdvZXMgdG8KCSAgRU9TIGJlZm9yZSB0aGUgZHVyYXRpb24gb2YgdGhlIGxvbmdlc3Qgc3RyZWFtIGlzIGtub3duIHRvIHByb3Blcmx5CgkgIHNldCB0aGUgc2VnbWVudCBzdG9wIG9mIGFsbCBzdHJlYW1zIHRvIHRoZSBzYW1lIHZhbHVlIGluIHRoZSBlbmQuCgoyMDA5LTEyLTA3IDIwOjUyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBVc2UgcGxhaW4gY2FzdGluZyBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZwoKMjAwOS0xMi0wNyAwOTo0NTowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogVXNlIGZhc3QgZ3N0X3ZhbHVlX2xpc3Rfe3NpemV8Z2V0X3ZhbHVlfSBtYWNybyBhY2Nlc3NvcnMKCSAgZ3N0X3ZhbHVlX2xpc3Rfc2l6ZSBhbmQgZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlIHdpbGwgZG8gYSBzZXJpZXMgb2YKCSAgZXh0cmEgY2hlY2tzIGR1ZSB0byBiZWluZyBwdWJsaWMgbWV0aG9kcy4KCSAgV2hlbiB3ZSB1c2UgdGhlbSBmcm9tIHdpdGhpbiBnc3R2YWx1ZS5jIHdlIGNhbiBkaXJlY3RseSB1c2UgdGhlbSB3aXRob3V0CgkgIHRoZSBleHRyYSBjaGVja3MuCgoyMDA5LTEyLTA3IDA5OjQ0OjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IERvbid0IHVzZSBnX3NpZ25hbF9lbWl0X2J5X25hbWUsIHVzZSB0aGUgc2lnbmFsIElEIGRpcmVjdGx5CgoyMDA5LTExLTE4IDA5OjAxOjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBhdm9pZCBleHBlbnNpdmUgdHlwZWNoZWNrcywgYW5kIGF2b2lkIGdldHRpbmcgcmVmIHRvIHBhcmVudC4KCSAgU3BlZWRzIHVwIHRlZSBwcm9jZXNzaW5nIDIgdG8gNSB0aW1lcy4KCjIwMDktMTEtMTIgMDk6MDc6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQXZvaWQgZG91YmxlIHN0cmR1cCB3aGVuIHNldHRpbmcgTlVMTCBuYW1lcy4KCSAgSW5zdGVhZCBvZiBjaGFpbmluZyB1cCB0byBnc3Rfb2JqZWN0X3NldF9uYW1lICh3aGljaCBkb2VzIHR5cGVjaGVja2luZwoJICBhbmQgc3RyZHVwJ3MgdGhlIG5hbWUgYWdhaW4pLCBqdXN0IHVzZSB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgbmV3CgkgIG5hbWUuCgoyMDA5LTEyLTA0IDEyOjE2OjMyIC0wODAwICBQZXRlciB2YW4gSGFyZGVuYmVyZyA8cHZoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgIHB3ZzogbWFrZSB0aGUgZW51bSBleGFtcGxlIChiYXNlZCBvbiB2aWRlb3Rlc3RzcmMpIGFjdHVhbGx5IG1hdGNoIHZpZGVvdGVzdHNyYwoKMjAwOS0xMi0wNCAxNjoyODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWdub3JlIHN0YXRlIGNoYW5nZSBmYWlsdXJlcyBmcm9tIGNoaWxkcmVuIHRoYXQgd2VyZSByZW1vdmVkIGZyb20gdGhlIGJpbiBhbHJlYWR5CgkgIEZpeGVzIGJ1ZyAjNTg0NDQxLgoKMjAwOS0xMi0wNCAxNTowMDo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBHTWFwcGVkRmlsZSBmb3IgcmVhZGluZyB0aGUgcmVnaXN0cnkKCSAgRml4ZXMgYnVnICM2MDM3ODcuCgoyMDA5LTEyLTAzIDE5OjQ4OjExICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFN1YnN0aXR1dGUgZGVwcmVjYXRlZCBHTGliIHN5bWJvbDogZ19tYXBwZWRfZmlsZV9mcmVlCgkgIFVzZSBnX21hcHBlZF9maWxlX3VucmVmIGlmIEdsaWIgPj0gMi4yMiBpcyBhdmFpbGFibGUKCSAgRml4ZXMgYnVnICM1NjA0NDIuCgoyMDA5LTExLTI3IDIwOjE2OjE1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2h1dCBkb3duIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMuCgkgIFNldCB0aGUgcGFkIGZsdXNoaW5nIGFuZCBzdG9wIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMKCSAgZHVyaW5nIGFjdGl2YXRpb24uIEF2b2lkcyByYWN5IGNhbGxzIGludG8gdGhlIF9jcmVhdGUoKSBmdW5jdGlvbiB3aGVuCgkgIEJhc2VTcmM6OnN0b3AoKSBoYXMgYWxyZWFkeSBydW4uCgkgIEZpeGVzOiAjNjAzMDU5CgkgIEFsc28sIGZpeCBzb21lIG1pc3NwZWxsZWQgY29tbWVudHMuCgoyMDA5LTEyLTAzIDIwOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCSAgKFRoZSBxdWV1ZTIgc3RyaW5ncyBjb3VsZCB1c2Ugc29tZSB0aWR5aW5nIHVwKQoKMjAwOS0xMi0wMyAyMDo1MzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc2luaywgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoJICBnc3RmaWxlc2luay5jOjM5OTogZXJyb3I6IGZvcm1hdCDigJglZOKAmSBleHBlY3RzIHR5cGUg4oCYaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhzaXplX3TigJkKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDkgaGFzIHR5cGUg4oCYZ3NpemXigJkKCSAgZ3N0ZmlsZXNyYy5jOjU4ODogZXJyb3I6IGZvcm1hdCDigJglMDhsbHjigJkgZXhwZWN0cyB0eXBlIOKAmGxvbmcgbG9uZyB1bnNpZ25lZCBpbnTigJksIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlIOKAmG9mZl904oCZCgoyMDA5LTEyLTAzIDE2OjQ0OjI4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBzcGVjaWFsIGNhc2UgZm9yIG9ubHkgb25lIHBhZCBjb25lY3RlZAoJICBJdCBpcyBub3QgZWFzeSB0byBzZXR1cCBhIHRlZSBvbiB0aGUgZmx5LCB0aHVzIGFwcHMgbmVlZCB0byBhZGQgdGhlbSBhbHdheXMgaWYKCSAgdGhleSBtaWdodCBuZWVkIHRoZW0uIFRoaXMgY2hhbmdlcyB0aGUgY29kZSBzbywgdGhhdCBpZiBvbmx5IG9uZSBzcmMtcGFkIGlzCgkgIGFjdGl2ZSwgd2UgcHVzaCBidWZmZXJzIGRpcmVjdGx5LiBJbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBhbGwgYnVmZmVycyBhcmUgcHVzaGVkCgkgIHdpdGggYW4gZXh0cmEgcmVmLCB0aGF0IGZvcmNlcyBmb2xsb3d1cCBpbnBsYWNlIGVsZW1lbnRzIHRvIGNvcHkgdGhlIGRhdGEuCgoyMDA5LTEyLTAzIDE2OjExOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbWVzc2FnZSBvbmNlIHBlciByZWNlaXZlZCBidWZmZXIKCSAgQXZvaWRzIGNoZWNraW5nIGZvciBlYWNoIHNvdXJjZSBwYWQuIFRoZSBtZXNzYWdlcyB3b3VsZCBiZSBhbG1vc3QgaWRlbnRpY2FsCgkgIGFueXdheS4KCjIwMDktMTItMDMgMTU6Mjc6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtcmVnaXN0cnktY2hhbmdlLWhvb2tzLnR4dDoKCSAgZHJhZnRzOiBwbGFubmluZwoKMjAwOS0xMi0wMyAxNjowNTowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiByZW1vdmUgdW51c2VkIG9mZnNldCBtZW1iZXIKCjIwMDktMTItMDMgMTY6MDI6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogb25seSBub3RpZnkgYWxsb2MtcGFkIHByb3BlcnR5IGlmIGNoYW5nZWQuCgoyMDA5LTEyLTAyIDEzOjI5OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBmaXggZG9jcyBmb3IgX2NvcHkoKQoKMjAwOS0xMi0wMSAyMjozNzo1MSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBGaXggY2hlY2sgZm9yIFdpbmRvd3MKCjIwMDktMTItMDEgMTg6MDk6MDQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIE1ha2UgZ2NjIGlubGluZSBhc3NlbWJseSBjb25kaXRpb25hbCBvbiBnY2MKCjIwMDktMTItMDEgMTk6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgTWFrZXMgY3JlYXRpbmcgcXVldWUgZWxlbWVudHMgMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24gb24gdGhlCgkgIGdsb2JhbCBmdW5jcHRyIGxvY2suCgoyMDA5LTEyLTAxIDE5OjI3OjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYy9iYXNlc2luazogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGJhc2VzcmMvYmFzZXNpbmsgaW5pdGlhbGl6YXRpb24gMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzCgkgIGNvbnRlbnRpb24gb24gdGhlIGdsb2JhbCBmdW5jcHRyIGxvY2sKCjIwMDktMTItMDEgMTc6NTQ6NTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBUaGlzIG1ha2VzIGdob3N0cGFkL3Byb3h5cGFkIGNyZWF0aW9uIDUgdGltZXMgZmFzdGVyIGFuZCBhdm9pZHMgY29udGVudGlvbgoJICBvdmVyIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrLgoJICBJIGFsc28gbW92ZWQgdGhlIHR3byBjbGFzcyBpbml0IGRvd24gaW4gdGhlIGNvZGUgdG8gYXZvaWQgaGF2aW5nIHRvIGZvcndhcmQKCSAgZGVjbGFyZSBhbGwgdGhlIHZhcmlvdXMgZnVuY3Rpb25zLgoKMjAwOS0xMi0wMSAxNzo1NDoxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBPbmx5IHJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25jZS4KCSAgVGhpcyBtYWtlcyBwYWQgaW5pdGlhbGl6YXRpb24gMiB0aW1lcyBmYXN0ZXIgYW5kIHdpdGhvdXQgYW55IGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZGVidWcgZnVuY3B0ciBnbG9iYWwgbG9jay4KCjIwMDktMTItMDEgMTc6NTM6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBUEk6IEFkZCBHU1RfREVCVUdfUkVHSVNURVJfRlVOQ1BUUiBtZXRob2QuCgkgIFRoaXMgaXMgYSB2YXJpYW50IG9mIEdTVF9ERUJVR19GVU5DUFRSIHdoaWNoIGRvZXMgbm90IHJldHVybiBhbnl0aGluZy4KCjIwMDktMTItMDEgMTU6MDU6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4N2JmNDI4IHRvIDQ3Y2IyM2EKCjIwMDktMTItMDEgMTQ6MDg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBuZXcgQUdfR1NUX1BMQVRGT1JNIG1hY3JvCgoyMDA5LTEyLTAxIDE0OjEwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGE0Yzc1YyB0byA4N2JmNDI4CgoyMDA5LTExLTI4IDIyOjI5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xpcCBzdGVwcGluZyBib3VuZGFyaWVzCgkgIFJvdW5kaW5nIGVycm9ycyB3aXRoIHRoZSBmbG9hdGluZyBwb2ludCByYXRlIGNvdWxkIG1ha2UgaXQgc28gdGhhdCB3ZQoJICBkb24ndCBlbmQgdXAgZXhhY3RseSBhdCB0aGUgcmVxdWlyZWQgc3RlcHBpbmcgZHVyYXRpb24uCgkgIFVzZSB0aGUgc2VnbWVudCBjbGlwcGluZyBib3VuZGFyaWVzLCB3aGljaCBhcmUgbm90IHN1YmplY3QgdG8gcmF0ZQoJICBhZGp1c3RlbWVudHMsIGluc3RlYWQgdG8gZGV0ZWN0IHdoZW4gd2UgcmVhY2hlZCB0aGUgc3RlcHBpbmcgZHVyYXRpb24uCgkgIEFkZCBzb21lIGRlYnVnIGluZm8gcmVsYXRlZCB0byBnb2luZyB0byB0aGUgUEFVU0VEIHN0YXRlLgoKMjAwOS0xMS0yOCAxNzowMjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBmaXggYW5vdGhlciB0eXBvCgoyMDA5LTExLTI4IDE1OjQwOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMjcgMTg6NTQ6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDUzYTI0ODUgdG8gZGE0Yzc1YwoKMjAwOS0xMS0yNyAxMzo0MjozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IGZpeCBkb2NzCgkgIEZpeCBmbHVzaCBzdG9wcyBkb2NzLCB0aG9zZSBhcmUgc2VyaWFsaXplZCwgbm90IG91dCBvZiBib3VuZHMuCgkgIFByb2JhYmx5IGEgY29weSBhbmQgcGFzdGUgbWlzdGFrZS4KCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBicm9rZW4geHJlZnMKCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgbWlzc2luZyBzZWN0aW9uIHRvIGxpYnMtZG9jcwoKMjAwOS0xMS0yNyAxNDoxODowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHhtbC5jOgoJICBkb2NzOiBtYWtlIGxpbmtzIHdvcmsgKG5lZWRzIHJlY2VudCBndGstZG9jKQoKMjAwOS0xMS0yNyAxNDoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jcwoKMjAwOS0xMS0yNyAxNDoxNjo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBkb2NzOiBlbmFibGUgZG9jcyBmb3IgR3N0T2JqZWN0Q2xhc3MgdG8gZml4IGxpbmtzCgoyMDA5LTExLTI3IDE0OjE1OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdG9iamVjdDogYWRkIEZJWE1FLTAuMTEgY29tbWVudHMKCjIwMDktMTEtMjUgMTg6MjU6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogYmV0dGVyIHdheSB0byBsaW5rIGNsYXNzIG1ldGhvZHMKCjIwMDktMTEtMjUgMTg6MjQ6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1c2UgJyonIGluc3RlYWQgb2YgeHh4IHRvIGF2b2lkIGNyZWF0aW5nIGEgYnJvZWtuIHhyZWYKCjIwMDktMTEtMjUgMTc6Mzc6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IGZpeCBtb3JlIGJvZ3VzIHhyZWZzCgoyMDA5LTExLTI1IDE3OjI3OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciBHc3RQbHVnaW5GbGFncwoJICBUaGlzIGFsc28gbWFrZXMgbGlua3MgdG8gdGhlbSB3b3JrLgoKMjAwOS0xMS0yNSAxNTozOTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBHc3RNaXhlciBhbmQgR3N0VHVuZXIgZG9jcwoJICBNZW50aW9uIHRoYXQgZWxlbWVudHMgaW1wbGVtZW50aW5nIEdzdE1peGVyIGFuZCBHc3RUdW5lciBuZWVkIHRvIGJlCgkgIGluIHRoZSByaWdodCBzdGF0ZSBiZWZvcmUgdGhleSBjYW4gYmUgdXNlZC4gQWxzbyBtZW50aW9uIEdMaWIKCSAgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZpbGVuYW1lcyB0byBhbmQgZnJvbSBVUklzLgoJICBGaXhlcyAjNjAyODc3LgoKMjAwOS0xMS0yNSAxNjo0NDowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHhyZWZzIGluIGRvY3MKCSAgRml4IHR5cG9zIGluIHhyZWZzLCBsaW5rcyB0byBub24gZXhpc3RpbmcgZnVuY3Rpb25zIGFuZCByZXdvcmsgcGx1cmFsIGZvcm1zLgoKMjAwOS0xMS0yNSAxNDo0MToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJICBkb2NzOiByZW1vdmUgZ3RrZG9jIGhlYWRlciBhcyB0aGVzZSB0aGluZ3MgZG9uJ3QgY29tZSB1cCBvbiBvdXIgZG9jcyBldmVuCgoyMDA5LTExLTI1IDE0OjIzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvYyBzdHJpbmcKCjIwMDktMTEtMjUgMTQ6MjE6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBkb2N1bWVudCBuZXcgZXZlbnQgaW4gZW51bQoKMjAwOS0xMS0yNSAxNDoxODoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHN5bnRheCBmb3IgZG9jLWJsb2Igc3RhcnQKCjIwMDktMTEtMjMgMTE6MzQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMjMgMTE6MzM6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogZml4IGdyYW1tYXIKCjIwMDktMTEtMjEgMTY6Mzc6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBBZGQgZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgTWVyZ2UgbmV3IGZ1bmN0aW9uIGZyb20gcmVzaW5kdmQgaW50byB0aGUgcHJpbWFyeSBHc3RCYXNlU3JjIGZvcgoJICBzdGFydGluZyBhIG5ldyBzZWFtbGVzcyBzZWdtZW50LgoJICBBUEk6IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgoyMDA5LTExLTIwIDE2OjAwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBTb21lIGdjYyB2ZXJzaW9ucyB3YXJuIGFib3V0IGJ5dGV3cml0ZXIgd3JpdGluZyB0byBtZW1vcnkgYWNjZXNzZWQKCSAgdmlhIGEgY29uc3QgZ3VpbnQ4IHBvaW50ZXIsIGRlc3BpdGUgb3VyIGV4cGxpY2l0IGNhc3QgdG8gZ3VpbnQ4ICouCgkgIFdvcmsgYXJvdW5kIHRoYXQgYnkgdXNpbmcgYW4gaW50ZXJtZWRpYXJ5IHZhcmlhYmxlLgoJICBGaXhlcyAjNTk4NTI2LgoKMjAwOS0xMS0yMCAwOTozMzo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBPbmx5IGNoZWNrIGZvciBnbXAvZ3NsIGlmIGJ1aWxkaW5nIG9mIHRlc3RzIGlzIG5vdCBkaXNhYmxlZAoKMjAwOS0xMS0xOSAxOTowMDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2xhbXAgdGhlIGJhc2UgdGltZSBjb3JyZWN0bHkgaW4gcG9zaXRpb24gcmVwb3J0aW5nCgkgIFdoZW4gY2xhbXBpbmcgdGhlIGJhc2UgdGltZSwgY29ycmVjdGx5IHVzZSAnbm93JywgaW5zdGVhZCBvZgoJICAnLW5vdycgLSB0aGUgaW50ZW50IGlzIHRvIHByZXZlbnQgJ25vdy1iYXNlJyBldmVyIGJlaW5nCgkgIG5lZ2F0aXZlLCB3aGljaCB3b3VsZCBjYXVzZSBhIHBvc2l0aW9uIHJlcG9ydCBvdXRzaWRlIHRoZSBzZWdtZW50LgoJICBGaXhlczogIzYwMjQxOQoKMjAwOS0xMS0wOSAxMDo1Mjo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGdzdHBsdWdpbjogQWRkIEMrKyBlc2NhcGUgZm9yIGdzdF9wbHVnaW5fZGVzYyBkZWZpbmUKCSAgSW4gb3JkZXIgdG8gcHJvcGVybHkgZXhwb3J0IHRoZSBnc3RfcGx1Z2luX2Rlc2Mgc3ltYm9sCgkgIGZyb20gRExMcyBpbiBNU1ZDLCBpdCBuZWVkcyB0byBiZSBleHRlcm4gIkMiLgoKMjAwOS0xMS0xOSAxMjo1OToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS9ncmFtbWFyLnk6IHJlbW92ZSB1bnVzZWQgRVJST1IgZGVmaW5lCgoyMDA5LTExLTE5IDEwOjI5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTg2MTI1MiB0byA1M2EyNDg1CgoyMDA5LTExLTE2IDE1OjQ3OjU3ICswMjAwICBQcmlpdCBMYWVzIDxwbGFlc0BwbGFlcy5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nIHdoZW4gYnVpbGRpbmcgdW5kZXIgZXRfRUUgbG9jYWxlCgkgIFtBLVpdIHJlZ2V4cCBmYWlscyB1bmRlciBldF9FRSBsb2NhbGUgYmVjYXVzZSBaIGluIEVzdG9uaWFuIGFscGhhYmV0IGlzCgkgIGxvY2F0ZWQgYWZ0ZXIgUyBhbmQgdGhlcmVmb3JlIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCAnVFVWLi4uJyBhcmUgbm90CgkgIGluIHRoZSByYW5nZSBhbnltb3JlLgoJICBGaXhlcyBidWcgIzYwMjA5My4KCjIwMDktMTEtMTggMDc6NTk6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSGFuZGxlIHRoZSBuZXcgc2luay1tZXNzYWdlIGV2ZW50CgoyMDA5LTExLTE4IDA3OjUyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBUEk6IEFkZCBzaW5rLW1lc3NhZ2UgZXZlbnQKCSAgZ3N0X2V2ZW50X25ld19zaW5rX21lc3NhZ2UoKQoJICBnc3RfZXZlbnRfcGFyc2Vfc2lua19tZXNzYWdlKCkKCSAgVGhpcyBldmVudCBpcyB1c2VkIGZvciBzZW5kaW5nIGEgR3N0TWVzc2FnZSBkb3duc3RyZWFtIGFuZCBzeW5jaHJvbml6ZWQKCSAgd2l0aCB0aGUgc3RyZWFtLCB0byBiZSBwb3N0ZWQgYnkgdGhlIHNpbmsgb25jZSBpdCByZWFjaGVzIHRoZSBzaW5rLgoJICBGaXhlcyBidWcgIzYwMjI3NS4KCjIwMDktMTEtMTYgMDA6MTI6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHBsdWdpbi1zY2FubmVyOiByZW5hbWUgcGx1Z2luLXNjYW5uZXIgaGVscGVyIGJpbmFyeSB0byBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgYW5kIGluc3RhbGwgaW50byBhIGRpZmZlcmVudCBkaXJlY3RvcnkgJChsaWJleGVjZGlyL2dzdHJlYW1lci0wLjEwKSBzbyB0aGF0CgkgIGV2ZXJ5dGhpbmcgaXMgdmVyc2lvbmVkIHByb3Blcmx5LgoJICBOT1RFOiBydW4gJ21ha2UgY2xlYW4nIGFmdGVyIHVwZGF0aW5nOyBpZiB5b3UgYXJlIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgc2V0dXAsCgkgIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHlvdXIgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCAodW5sZXNzIGl0J3Mgc3ltbGlua2VkCgkgIHRvIGdzdHJlYW1lciBjb3JlIG1hc3RlcikgYW5kIGV4aXQvZW50ZXIgeW91ciB1bmluc3RhbGxlZCBlbnZpcm9ubWVudCB0byBnZXQKCSAgdGhlIHVwZGF0ZWQgZW52aXJvbm1lbnQuIElmIHlvdSBhcmUgcnVubmluZyBhbiBpbnN0YWxsZWQgc2V0dXAsIHlvdSBzaG91bGQKCSAgcnVuICdtYWtlIHVuaW5zdGFsbCcgYmVmb3JlIG1lcmdpbmcgdGhpcyBjaGFuZ2Ugb3IgcmVtb3ZlIHRoZSBvbGQKCSAgcGx1Z2luLXNjYW5uZXIgYmluYXJ5IG1hbnVhbGx5LgoJICBGaXhlcyAjNjAxNjk4LgoKMjAwOS0xMS0xOCAwOToxMDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFJldmVydCAic3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGY4NjQxODdiZjVmZGZhZjcxZjJlMDM4OTQ5ZTQwM2E0MmU2ZGFmMGUuCgkgIFJldmVydGluZyB0aGlzIGFzIGl0IGNoYW5nZXMgYmVoYXZpb3VyIGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBpcwoJICBhbWJpZ3VvdXMgYWJvdXQgd2hldGhlciB0aGUgY2FsbGVyIG11c3QgY2hlY2sgdGhlIHR5cGUgZmlyc3Qgb3IKCSAgbm90IChjYWxsIG11c3QgY2hlY2sgdHlwZSB2cy4gcmV0dXJucyBOVUxMIGlmIG5vdCBhIHN0cmluZykuIElmCgkgIEdMaWIgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBHX0RJU0FCTEVfQ0hFQ0tTIHRoZW4gZ192YWx1ZV9nZXRfc3RyaW5nKCkKCSAgbWF5IHJldHVybiBjb21wbGV0ZSBnYXJiYWdlIGV2ZW4gaWYgdGhlIHZhbHVlIGRvZXMgbm90IGNvbnRhaW4KCSAgYSBzdHJpbmcuIEJldHRlciBwbGF5IGl0IHNhZmUsIGVzcC4gc2luY2UgdGhlIGV4dHJhIGNoZWNrIGlzIGp1c3QKCSAgYW4gaW50ZWdlciBjb21wYXJpc29uLiBGb3IgZnVuZGFtZW50YWwgdHlwZXMgd2UgY291bGQgcmV0dXJuIHZhbHVlcwoJICBmcm9tIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5IGlmIHdlIHJlYWxseSB3YW50ZWQgdG8gYnlwYXNzCgkgIHRoZSBleHRyYSBjaGVjay4KCjIwMDktMTEtMTcgMTc6MDY6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlCgoyMDA5LTExLTE3IDE4OjM1OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIHN0ZXAgZXZlbnQgcXVhcmsKCjIwMDktMTEtMTcgMTA6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBwYXRocyBmb3IgZ3N0LXFhLXN5c3RlbQoKMjAwOS0xMS0xNyAwOTowNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHNldCBHU1RfUExVR0lOX1NDQU5ORVIgd2hlbiBjYWxsaW5nIGd0a2RvYy1zY2FuZ29iagoJICBPdGhlcndpc2UgdGhlIGRvY3MgYnVpbGQgd29uJ3Qgd29yayBwcm9wZXJseQoKMjAwOS0xMS0xNiAxMzo1ODoxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBzb21lIGJsYW5rIGxpbmVzIChwcmV2aW91cyBnc3QtaW5kZW50IGZhaWx1cmUpCgoyMDA5LTExLTE2IDEzOjUzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogdXNlIGxvY2FsIHZhcmlhYmxlIGVhcmxpZXIKCjIwMDktMTEtMTYgMTM6NDk6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayBlbnVtIHR5cGVzIHR3aWNlLgoJICBHX1ZBTFVFX0hPTERTX0VOVU0odmFsdWUpIGlzIGRlZmluZWQgYXMgR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKHZhbHVlLAoJICBHX1RZUEVfRU5VTSkuIEp1c3QgY2hlY2sgZm9yIHRoZSByaWdodCBlbnVtLXR5cGUgcmlnaHQgYXdheS4KCjIwMDktMTEtMTQgMjI6MzU6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjaGVjazogQWRkIGEgZGVidWcgc3RhdHVzIHRvIHRoZSBzeXN0ZW1jbG9jayB0ZXN0CgkgIE5leHQgdGltZSBpdCBmYWlscyBvbiBhIGJ1aWxkYm90IHdlIGNhbiBzZWUgd2hpY2ggY2xvY2sgaWQKCSAgcmV0dXJuIGl0IGlzIGdldHRpbmcuCgoyMDA5LTExLTE2IDE4OjI1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogcmVtb3ZlIHN0ZXBwaW5nIGZyb20gVE9ETwoJICBSZW1vdmUgdGhlIGZyYW1lIHN0ZXBwaW5nIEFQSSBmcm9tIHRoZSBUT0RPIGxpc3QuCgoyMDA5LTExLTE2IDE0OjAyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHBvc2l0aW9uIHJlcG9ydGluZwoJICBPbmx5IHVwZGF0ZSB0aGUgY3VycmVudCBzdHJlYW0gdGltZSBhZnRlciB3ZSBjaGVja2VkIGlmIHdlIGdvdCBhIG5ldyBzdGVwCgkgIGV2ZW50LiBUaGlzIGltcHJvdmVzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgYnkgdGhlIHNpbmsuCgkgIFNlZSAjNTk1OTU4CgoyMDA5LTExLTE2IDA5OjQ5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQVBJOiBBZGQgbXVsdGlwbGljYXRpb24gYW5kIGFkZGl0aW9uIGZ1bmN0aW9ucyBmb3IgZnJhY3Rpb25zCgkgIGdzdF91dGlsX2ZyYWN0aW9uX2FkZCgpCgkgIGdzdF91dGlsX2ZyYWN0aW9uX211bHRpcGx5KCkKCSAgVGhlc2Ugd29yayBvbiBwbGFpbiBpbnRlZ2VycyBpbnN0ZWFkIG9mIEdWYWx1ZXMgdG8KCSAga2VlcCB0aGUgb3ZlcmhlYWQgYXMgbG93IGFzIHBvc3NpYmxlLgoKMjAwOS0xMS0xNiAwOToyOToxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIGZyYWN0aW9uIGhlbHBlciBmdW5jdGlvbnMKCSAgZ3N0X3V0aWxfZ3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IoKQoJICBnc3RfdXRpbF9kb3VibGVfdG9fZnJhY3Rpb24oKQoJICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUoKQoJICBVc2luZyB0aGVzZSBpbnN0ZWFkIG9mIGdvaW5nIG92ZXIgR1ZhbHVlIGhhcyBtdWNoIGxvd2VyIG92ZXJoZWFkLgoJICBBbHNvIGFkZCBmbG9hdDwtPmZyYWN0aW9uIHRyYW5zZm9ybSBmdW5jdGlvbnMgZm9yIEdWYWx1ZS4KCjIwMDktMTEtMTMgMTU6NDU6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZGVidWc6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgdG8gaGVscCB0cmFja2luZyBwYXJzaW5nIGVycm9ycwoKMjAwOS0xMS0xMyAxMTo0MjowMiArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHJhY2Ugd2hlbiByZWN5Y2xpbmcgYnVmZmVycwoJICBBdm9pZCBhIHJhY2Ugd2hlcmUgYSBtaW5pb2JqZWN0IGlzIHJlY3ljbGVkIGFuZCBxdWlja2x5IGZyZWVkLCB3aGljaCBjYXVzZXMgdGhlCgkgIGdfdHlwZV9mcmVlX2luc3RhbmNlKCkgdG8gYmUgY2FsbGVkIG9uIHRoZSBzYW1lIG9iamVjdCB0d2ljZS4KCSAgUmVmIHRoZSBvYmplY3QgYmVmb3JlIGNhbGxpbmcgdGhlIGZpbmFsaXplIG1ldGhvZCBhbmQgY2hlY2sgaWYgd2Ugc3RpbGwgbmVlZCB0bwoJICBmcmVlIGl0IGFmdGVyd2FyZC4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCSAgRml4ZXMgIzYwMTU4NwoKMjAwOS0xMS0xMiAxNzowMjo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHdoaXRlc3BhY2U6IHJlbW92ZSBibGFua3MgaW4gZG9jLWNvbW1lbnQKCjIwMDktMTEtMDYgMTU6NDI6NTcgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBJbXBvcnQgX3ByaXZfZ3N0X2RsbF9oYW5kbGUgaW50byBnc3RyZWdpc3RyeS5jCgkgIEZpeGVzIGJ1ZyAjNjAxNjY4LgoKMjAwOS0xMS0xMiAxNDoxMDowNiArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBEbyBub3QgbGlzdCBsaWJnc3RjaGVjayBhcyBhIHJlcXVpcmVtZW50IGZvciB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgRml4ZXMgYnVnICM2MDE2NjkuCgoyMDA5LTExLTExIDE3OjEyOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHJlYXRpbmcgYmFzZV90aW1lIGFzIHVuc2lnbmVkIGluIHBvc2l0aW9uIGNhbGN1bGF0aW9uCgkgIEVsZW1lbnQgYmFzZV90aW1lIGlzIGEgc2lnbmVkIHF1YW50aXR5LCB3aGljaCBsZWFkcyB0byBiYXNlc2luayByZXR1cm5pbmcKCSAgYSBwb3NpdGlvbiBvZiAwIHdoZW4gZGVhbGluZyB3aXRoIGEgbmVnYXRpdmUgYmFzZSB0aW1lIC0gd2hpY2ggYXJlIHF1aXRlCgkgIGxlZ2FsIHdoZW4gY2xvY2tzIChzdWNoIGFzIHRoZSBhdWRpbyBjbG9jaykgYXJlIGNsb3NlIHRvIDAuCgkgIFRoaXMgZG9lc24ndCBtYW5pZmVzdCBpbiBub3JtYWwgcGlwZWxpbmVzLCBvZiBjb3Vyc2UgLSBidXQgY2FuIGhhcHBlbgoJICAoYXQgbGVhc3QpIHdoZW4gbWFudWFsbHkgc2V0dGluZyB0aGUgYmFzZSB0aW1lIG9uIGEgcGlwZWxpbmUuCgoyMDA5LTExLTEwIDE4OjAzOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBBUEk6IEFkZCBnc3Rfe2RlZmF1bHQsfV9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0X2Nvb2tpZSgpCgkgIFRoaXMgcmV0dXJucyB0aGUgaW50ZXJuYWwgZmVhdHVyZSBsaXN0IGNvb2tpZSwgd2hpY2ggY2hhbmdlcyBldmVyeQoJICB0aW1lIGEgZmVhdHVyZSBpcyBhZGRlZCBvciByZW1vdmVkLiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGVsZW1lbnRzCgkgIHRvIGNoZWNrIGlmIHRoZXkgc2hvdWxkIHVwZGF0ZSB0aGVpciBjYWNoZWQgZmVhdHVyZSBsaXN0cy4KCjIwMDktMTEtMTAgMTE6NTU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcHJpbnRmIGZvcm1hdAoJICBDYXN0IHRoZSB2YXJpYWJsZSB0byBnaW50IHRvIGNvbmZvcm0gdG8gdGhlIHByaW50ZiBmb3JtYXQgdXNlZC4KCSAgSXQgaXMgY2FzdGVkIHJhdGhlciB0aGFuIGNoYW5naW5nIHRoZSBmb3JtYXQgYmVjYXVzZSB0aGUKCSAgbWVzc2FnZSBpcyBjcmVhdGVkIHdpdGggYSBjYXN0IHRvIGdpbnQgdG9vLgoKMjAwOS0xMS0xMCAxMDoxMDo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIGNyYXNoaW5nIGR1ZSB0byBuZWdhdGl2ZSBwZXJjZW50CgkgIHF1ZXVlMiB3b3VsZCBjcmFzaCB3aGVuIHVzaW5nIHNtYWxsIGJ1ZmZlciBzaXplcyBiZWNhdXNlCgkgIGl0IHdvdWxkIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2UsIHJlc3VsdGluZwoJICBpbiB0aGUgYnVmZmVyaW5nIEdzdE1lc3NhZ2Ugbm90IGJlaW5nIGNyZWF0ZWQgYW5kIHRyeWluZyB0byBiZQoJICB1c2VkLiBUaGlzIHBhdGNoIHVzZXMgYSBnaW50NjQgaW5zdGVhZCBvZiBhIGdpbnQgdG8gZG8gdGhlCgkgIHBlcmNlbnRhZ2UgbWF0aCwgbWFraW5nIGl0IGhhcmRlciB0byBvdmVyZmxvdy4KCjIwMDktMTEtMTAgMDk6NTI6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggc21hbGwgZG9jIHR5cG8KCjIwMDktMTEtMTAgMDA6NTc6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBmaXggY29tcGlsYXRpb24gd2l0aCBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgQWRkIHVnbHkgaWZkZWYgdG8gZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIHdpdGgKCSAgZGVidWcgbG9nZ2luZyBkaXNhYmxlZC4KCjIwMDktMTEtMDkgMTY6MjA6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIHBsYW5uaW5nOiBhZGQgdGhvdWdodHMgYWJvdXQgZm9yZWlnbiByZWdpc3RyeSBjYWNoZSB1cGRhdGVzCgoyMDA5LTExLTA5IDE0OjU1OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhbGxvdyB0byBnZXQgcGx1Z2luLWluc3RhbGwtaW5mbyBmb3IgYWxsIGluc3RhbGxlZCBwbHVnaW5zCgkgIElmIG5vIHBsdWdpbiBpcyBnaXZlbiwgcHJpbnQgdGhlIGluZm8gZm9yIGFsbCBwbHVnaW5zLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEKCSAgc3RhcnRpbmcgcG9pbnQgdG8gZ2VuZXJhdGUgYSBwcm9maWxlIGFib3V0IHdoYXQgdGhlIGdzdHJlYW1lciBpbnN0YWxsYXRpb24gY2FuCgkgIHBvdGVudGlhbHkgaGFuZGxlIChlLmcuIGZvciBNVFAgb3IgRExOQSkuCgoyMDA5LTExLTA5IDEyOjQyOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBkb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIHBhZAoKMjAwOS0xMS0wNyAyMDoyMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHdha2UgdXAgbGVzcyBvZnRlbiB0byBjaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkCgkgIENoZWNrIGlmIHdlJ3ZlIGJlZW4gaW50ZXJydXB0ZWQgb25seSBmb3VyIHRpbWVzIHBlciBzZWNvbmQgaW5zdGVhZAoJICBvZiB0d2VudHkgdGltZXMgcGVyIHNlY29uZCwgdG8gd2FrZSB1cCB0aGUgY3B1IGxlc3Mgb2Z0ZW4gYW5kCgkgIHNhdmUgcG93ZXIgKHNlZSBidWcgIzYwMDkyMikuCgoyMDA5LTExLTA1IDIxOjE4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZCBkZWZpbmUgdG8gZm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMKCSAgRm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMgaWYgR1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTgoJICBpcyBkZWZpbmVkLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWlja2x5IGNoZWNrIGNvZGUgZm9yIHByaW50ZiBmb3JtYXQgbWlzbWF0Y2hlcwoJICBpbiBkZWJ1Z2dpbmcgbWVzc2FnZXMgdGhhdCB3b3VsZCB1c3VhbGx5IG5vdCBiZSBjYXVnaHQgKHdpdGggZ2xpYmMrZ2NjIGFuZAoJICBwcmludGYgZXh0ZW5zaW9ucyBiZWluZyB1c2VkKS4KCSAgVG8gdXNlOiBtYWtlIGNsZWFuOyBtYWtlIENGTEFHUz0nLWcgLU8yIC1ER1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTicKCjIwMDktMTEtMDUgMjE6MDk6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogTWFrZSBzdXJlIHdlIHVzZSB0aGUgbG9jYWwgbGliZ3N0YmFzZSBhbmQgbm90IGEgc3RyYXkgb3V0c2lkZSBvbmUuCgkgIFRoZW9yZXRpY2FsbHkgd2Ugc2hvdWxkIGFsc28gZG8gdGhpcyBmb3IgYWxsIGxvY2FsIGxpYnJhcmllcyB0byBtYWtlIHN1cmUKCSAgd2UgZG9uJ3QgdGVzdCB3aXRoIGEgJ3N0cmF5JyBvdXRzaWRlIGxpYnJhcnkuCgoyMDA5LTExLTA1IDE4OjM2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBmaXggdHlwbwoKMjAwOS0xMS0wNSAxNTo1OTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCBsb29raW5nIHVwIEdzdFRhZ0luZm8gdHdpY2UgaW4gYSByb3cKCSAgUGFzcyB0aGUgaW5mbyBzdHJ1Y3R1cmUgdG8gb3VyIGludGVybmFsIGZ1bmN0aW9uIGlmIGFscmVhZHkgYXZhaWxhYmxlLgoJICBBbHNvIGNsZWFuIHVwIHdhcm5pbmdzIGZvciB1bmtub3duIHRhZ3MuCgoyMDA5LTExLTA1IDE4OjU1OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGdzdHJlZ2lzdHJ5Y2h1bmtzOiBXZSdyZSBjZXJ0YWluIHBsdWdpbl9uYW1lIGlzIGFuIGludGVybiBzdHJpbmcuCgkgIFRoZSBvbmx5IHBsYWNlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGNyZWF0ZXMgdGhlIHBsdWdpbl9uYW1lIGFyZ3VtZW50CgkgIHdpdGggZ19pbnRlcm5fc3RyaW5nKCkuCgkgIFNoYXZlcyBvZmYgMSUgZnJvbSByZWdpc3RyeSBsb2FkaW5nLgoKMjAwOS0xMS0wNCAxOTozMzo1OCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgaW1wbGVtZW50IGJ1ZmZlcmluZy1sZWZ0IGFyZ3VtZW50IHRvIGJ1ZmZlciBtZXNzYWdlcwoJICBVc2luZyB0aGUgY3VycmVudCBmaWxsIGxldmVsIG9mIHRoZSBxdWV1ZSwgYW5kIHRoZSBhdmVyYWdlIGlucHV0CgkgIHJhdGUsIHdlIGNhbiBkZXRlcm1pbmUgaG93IGxvbmcgaXQgd2lsbCB0YWtlIHRvIGZpbmlzaCBkb3dubG9hZGluZwoJICB0aGUgd2hvbGUgc3RyZWFtIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZS4KCSAgRml4ZXMgIzYwMDcyNgoKMjAwOS0xMS0wNSAxNToxMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMS0wNSAxNDowMjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IGxvY2tpbmcKCjIwMDktMTEtMDUgMTQ6Mjk6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgcmVsZWFzZSBtdXRleCB0d2ljZQoKMjAwOS0xMS0wNSAxNDoyOToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBza2lwIHR5cGUgY2hlY2sgaW4gaW50ZXJuYWwgYXBpCgoyMDA5LTExLTA1IDEyOjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGluZGVudGF0aW9uIGZpeAoKMjAwOS0xMS0wNSAxMjo1NDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgbmV3IGFwaSBmcm9tIF9yZWZlZCB0byBfcmVmZmVkLgoJICBEdWUgdG8gcG9wdWxhciBkZW1hbmQgcmVuYW1lIHRoZSBuZXcgYXBpIGFzIHdlIHN0aWxsIGNhbi4KCSAgQVBJOiBnc3RfcGFkX2dldF9jYXBzX3JlZmZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZmVkKCkKCjIwMDktMTEtMDQgMjI6NDI6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGFjY2VzcyBwYWR0ZW1wbGF0ZSBsaXN0IGRpcmVjdGx5IHRvIGF2b2lkIGNhbGwgYW5kIHR5cGUgY2hlY2suCgoyMDA5LTExLTA0IDE4OjU4OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIGEgRklYTUUgMC4xMSBmb3IgaGF2aW5nIGZsdXNoIGV2ZW50cyB0aGF0IGRvbid0IHJlc2V0IHJ1bm5pbmcgdGltZQoKMjAwOS0xMS0wNCAxNzo1MjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBwcmludGYgY29tcGlsZSB3YXJuaW5nIG9uIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDktMTEtMDQgMTc6MTU6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBNYWtlIHN1cmUgdGhhdCBub2JvZHkgc2V0cyB0aGUgcHJveHlwYWQgb3IgZ2hvc3RwYWQgaXRzZWxmIGFzIHRhcmdldAoJICBEb2luZyB0aGlzIHdpbGwgbGVhZCB0byB2ZXJ5IGludGVyZXN0aW5nIGNyYXNoZXMsIGxpa2Ugc3RhY2sgb3ZlcmZsb3dzLgoKMjAwOS0xMS0wNCAxMTozNTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgZmFpbCBhZnRlciBhIHNob3J0IHJlYWQvd3JpdGUKCSAgVGhlIGxvZ2ljIHRvIGhhbmRsZSBzaG9ydCByZWFkcy93cml0ZXMgd2FzIGluY29ycmVjdCwgY2F1c2luZyB0aGUKCSAgcGFja2V0IGhhbmRsZXIgdG8gYXR0ZW1wdCB0byBoYW5kbGUgaW5jb21wbGV0ZSBwYWNrZXRzLgoJICBHcm93IHRoZSBwYWNrZXQgdHJhbnNtaXQgYnVmZmVyIGluIHByb3BvcnRpb24gdG8gb2JzZXJ2ZWQgdXNhZ2UsCgkgIGNhdXNpbmcgZmV3ZXIgcmVhbGxvY3MuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW4gdGhlIHJlZ2lzdHJ5IGNodW5rcyBjb2RlLgoKMjAwOS0xMS0wNCAwMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW4gbG9hZGVyOiBEb24ndCBjcmFzaCBvbiBib2d1cyBwbHVnaW4gZGV0YWlscwoJICBXaGVuIGludmFsaWQgcmVnaXN0cnkgY2h1bmtzIGFyZSByZWNlaXZlZCBmcm9tIHRoZSBjaGlsZCwgYW5kIHBhcnNpbmcKCSAgZmFpbHMsIGRvbid0IGFjY2VzcyBhbiBpbnZhbGlkIHBsdWdpbiBwb2ludGVyLiBJbnN0ZWFkIGF0dGVtcHQgdG8KCSAgZmlndXJlIG91dCB3aGljaCBwbHVnaW4gY2F1c2VkIHRoZSBwcm9ibGVtIGFuZCBibGFja2xpc3QgaXQuCgoyMDA5LTExLTA0IDAxOjU0OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBVc2UgdGhlIHNhbWUgbG9naWMgdG8gZmluZCBnbnVpbmRlbnQgYXMgdGhlIGdpdCBob29rCgoyMDA5LTExLTAzIDE3OjMwOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBidWlsZDogaW5jbHVkZSBzdGRpby5oIGZvciBGSUxFCgoyMDA5LTExLTAzIDAxOjE4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogYWRkIGFub3RoZXIgZXhhbXBsZSB0byB0aGUgZ3N0LWxhdW5jaCBtYW4gcGFnZQoJICBBZGQgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byByZWZlciB0byBzcGVjaWZpYyBwYWRzIGJ5IG5hbWUKCSAgd2hlbiBjb25zdHJ1Y3RpbmcgYSBwaXBlbGluZSBzdHJpbmcuIEZpeGVzICM2MDAzODIuCgoyMDA5LTExLTAyIDA4OjQ4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBnc3R0eXBlZmluZDogYXZvaWQgb25lIG1vcmUgcnVuLXRpbWUgdHlwZSBjaGVjawoKMjAwOS0xMS0wMiAwOToyMjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQVBJOiBBZGQgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGR7LF90eXBlZH0KCjIwMDktMTEtMDIgMDg6Mjg6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IFVzZSBfQ0FTVCB2YXJpYW50cyB3aGVuIHRoZSB0eXBlIGhhcyBhbHJlZHkgYmVlbiBjaGVja2VkLgoJICBUaGlzIGF2b2lkcyBjaGVja2luZyB0aGUgdHlwZSBuX3R5cGVmaW5kZXJzICogNCB0aW1lcyB3aGVuIGxvYWRpbmcgdGhlCgkgIHJlZ2lzdHJ5LgoKMjAwOS0xMS0wMSAxMToyNDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEltcGxlbWVudCBpdGVyYXRlIGludGVybmFsIGxpbmtzCgkgIFRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQgb2YgdGhlIGdob3N0IHBhZCBpcyBpdHMKCSAgcHJveHkgcGFkLCB3aGljaCBpcyB0aGUgcGFkIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBnaG9zdAoJICBwYWRzIHRhcmdldC4KCjIwMDktMTAtMzEgMTY6NTY6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBNYWtlIHN1cmUgdGhhdCBzaWduYWwgdXNlciBkYXRhIGlzIGZyZWVkIGJ5IHNldHRpbmcgYSBHQ2xvc3VyZU5vdGlmeQoJICAuLi5pbnN0ZWFkIG9mIHVzaW5nIGEgc2Vjb25kIG1lY2hhbmlzbSBhbmQgc3RvcmluZyB0aGUgdXNlciBkYXRhCgkgIGluc2lkZSB0aGUgR09iamVjdHMgcWRhdGEuCgoyMDA5LTEwLTMxIDE2OjQ5OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgc3RydWN0cwoKMjAwOS0xMC0zMSAxNjo0MzoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IEFsd2F5cyBnZXQgRGVsYXllZExpbmsgaW5mb3JtYXRpb24gZnJvbSB0aGUgb2JqZWN0cyBxZGF0YQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBpdCBpcyBhbHdheXMgdmFsaWQuCgoyMDA5LTEwLTMxIDA5OjQ4OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiBxdWV1ZTIgaGFzIG1vdmVkIHRvIGNvcmUKCjIwMDktMTAtMjkgMTE6NDE6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBxdWV1ZTI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0yOSAxMTozODoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSAiUXVldWUgMiIgYXMgbG9uZyBuYW1lCgoyMDA5LTEwLTI5IDExOjM1OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIEdTVF9CT0lMRVJQTEFURV9GVUxMKCkgYW5kIGFkZCBwYWQgdGVtcGxhdGVzL3NldCBkZXRhaWxzIGluIGJhc2VfaW5pdAoKMjAwOS0xMC0yOSAxMTozMDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKQoKMjAwOS0xMC0yOSAxMTozMDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogSW50ZWdyYXRlIGludG8gY29yZXBsdWdpbnMKCjIwMDktMTAtMjkgMTE6MjE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBNb3ZlIHN0cnVjdCBkZWNsYXJhdGlvbnMgdG8gYSBzZXBhcmF0ZSBoZWFkZXIKCjIwMDktMTAtMjkgMTE6MTg6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3ZlIHF1ZXVlMiB0byBnc3RyZWFtZXIgY29yZXBsdWdpbnMKCSAgRml4ZXMgYnVnICM1OTk5OTYuCgoyMDA5LTEwLTI4IDAwOjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSBzaXh0ZWVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yNyAxNToyMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCjIwMDktMDgtMDYgMTI6MTg6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHBhdXNpbmcgdGFzayBpZiBzbyBhcHByb3ByaWF0ZQoJICBJZiBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIGFuIGVycm9yIHdoaWxlIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlMiAoaW5jbHVkaW5nIEVPUyksIHVwc3RyZWFtIHdpbGwgbm8gbG9uZ2VyCgkgIGNoYWluIGludG8gcXVldWUyLCBzbyBpdCBpcyB1cCB0byBxdWV1ZTIgdG8gcGVyZm9ybSBzb21lCgkgIEVPUyBoYW5kbGluZyAvIG1lc3NhZ2UgcG9zdGluZyBpbiBzdWNoIGNhc2VzLiAgU2VlICM1ODk5OTEuCgoyMDA5LTA3LTE0IDE3OjAzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBsZWFrIGFuZCBpbXByb3ZlIGJ1ZmZlcmluZwoJICBLZWVwIHRyYWNrIG9mIHRoZSBtYXggcmVxdWVzdGVkIHBvc2l0aW9uIGFuZCBjb21wYXJlIHRoaXMgdG8gdGhlIHdyaXRlIHBvc2l0aW9uCgkgIGluIHRoZSB0ZW1wIGZpbGUgdG8gZ2V0IHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJlZCBkYXRhLgoJICBGaXggbWVtbGVhayBvZiBhbGwgaW5jb21taW5nIGJ1ZmZlcnMuCgkgIEZpeGVzICM1ODg1NTEKCjIwMDktMDctMTAgMjE6MDE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZmx1c2ggZGlmZmVyZW50bHksIGF2b2lkaW5nIGRlYWRsb2NrcwoJICBEb24ndCBmbHVzaCB0aGUgZmlsZSBieSBjbG9zaW5nIGFuZCBvcGVuaW5nIGl0IGJ1dCBpbnN0ZWFkIHVzZSBnX2ZyZW9wZW4uIFRoaXMKCSAgYXZvaWRzIGEgZGVhZGxvY2sgaW4gc2h1dGRvd24gYmVjYXVzZSB3ZSBlbWl0IHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGNoYW5nZQoJICB3aXRoIHRoZSB3cm9uZyBsb2NrIGhlbGQuCgoyMDA5LTA3LTEwIDE5OjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5CgkgIEFkZCBhIG5ldyB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5IHNvIHRoYXQgcXVldWUyIGNhbiBzZWN1cmVseSBhbGxvY2F0ZSBhCgkgIHRlbXBvcmFyeSBmaWxlbmFtZS4gRGVwcmVjYXRlIHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGZvciBzZXR0aW5nIHRoZQoJICBsb2NhdGlvbiBidXQgc3RpbGwgdXNlIGl0IHRvIG5vdGlmeSB0aGUgYWxsb2NhdGVkIHRlbXAgZmlsZS4KCjIwMDktMDMtMjAgMTQ6MTc6MTkgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMKCSAgRml4IFNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMgYnkgdXNpbmcgdGhlIDY0LWJpdCBzZWVrIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzU3NjAxOQoKMjAwOC0wOC0wNyAxNTo1ODo1OCArMDAwMCAgRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlciB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBleHQvYWxzYS9nc3RhbHNhcGx1Z2luLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmcy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9vZ2cvZ3N0b2dnZGVtdXguYzogKGdzdF9vZ2dfZGVtdXhfcGx1Z2luX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zcmMuYzogKF9kb19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcGJ1dGlscy9wYnV0aWxzLmM6IChnc3RfcGJfdXRpbHNfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3RhZy90YWdzLmM6IChnc3RfdGFnX3JlZ2lzdGVyX3RhZ3NfaW50ZXJuYWwpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsLmM6IChwbHVnaW5faW5pdCk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA3LTEwIDIxOjA2OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbiB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1vdmVycmlkZXMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWRkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHNhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9jb252ZXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkcGFyYW5vaWEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mZm1wZWdjb2xvcnNwYWNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ25vbWV2ZnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1saWJ2aXN1YWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vZ2cueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wYW5nby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBsYXliYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVldWUyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3VicGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10Y3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10aGVvcmEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10eXBlZmluZGZ1bmN0aW9ucy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVyaWRlY29kZWJpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9zY2FsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvbHVtZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvcmJpcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmltYWdlc2luay54bWw6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYW1peGVyLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zcmMuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNyYy5jOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NpbmsuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzcmMuYzoKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzoKCSAgKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNlbmMuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc3BhcnNlLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXN0YWcuYzoKCSAgKiBnc3QvYWRkZXIvZ3N0YWRkZXIuYzoKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBnc3QvYXVkaW90ZXN0c3JjL2dzdGF1ZGlvdGVzdHNyYy5jOgoJICAqIGdzdC9mZm1wZWdjb2xvcnNwYWNlL2dzdGZmbXBlZ2NvbG9yc3BhY2UuYzoKCSAgKiBnc3QvZ2RwL2dzdGdkcGRlcGF5LmM6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzoKCSAgKiBnc3QvdGNwL2dzdG11bHRpZmRzaW5rLmM6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6CgkgIENsZWFudXAgUGx1Z2luIGRvY3MuIExpbmsgdG8gc2lnbmFscyBhbmQgcHJvcGVydGllcy4gRml4IHN1Yi1zZWN0aW9uCgkgIHRpdGxlcy4gRHJvcCBtZW50aW5pbmcgdGhhdCBhbGwgb3VyIGV4YW1wbGUgcGlwZWxpbmVzIGFyZSAic2ltcGxlIgoJICBwaXBlbGluZXMuCgoyMDA4LTA2LTI0IDE2OjIyOjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRG8gbm90IGRvdWJsZSBub3RpZnkuIFJlbW92ZSB0aGUgdW5zdWVkIHJldHVybiB2YWx1ZS4KCjIwMDgtMDQtMTEgMDE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBTZXQgYnVmZmVyaW5nIG1vZGUgaW4gdGhlIG1lc3NhZ2VzLgoJICBTZXQgYnVmZmVyaW5nIHBlcmNlbnQgaW4gdGhlIHF1ZXJ5LgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAodXBkYXRlX2ZpbGwpLCAobXNnX3N0YXRlX2NoYW5nZWQpLAoJICAoZG9fc3RyZWFtX2J1ZmZlcmluZyksIChkb19kb3dubG9hZF9idWZmZXJpbmcpLCAobXNnX2J1ZmZlcmluZyk6CgkgIERvIHNvbWUgbW9yZSBmYW5jeSB0aGluZ3MgYmFzZWQgb24gdGhlIGJ1ZmZlcmluZyBtZXRob2QgaW4gdXNlLgoKMjAwOC0wNC0wOSAyMTo0MDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKToKCSAgSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGRvX2FzeW5jX3N0YXJ0KSwKCSAgKGRvX2FzeW5jX2RvbmUpLCAodHlwZV9mb3VuZCksIChzZXR1cF9zdHJlYW1pbmcpLCAoc2V0dXBfc291cmNlKSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBPbmx5IGFkZCBkZWNvZGViaW4yIHdoZW4gdGhlIHR5cGUgaXMgZm91bmQgaW4gc3RyZWFtaW5nIG1vZGUuCgkgIE1ha2UgdXJpZGVjb2RlYmluIGFzeW5jIHRvIFBBVVNFRCBldmVuIHdoZW4gd2UgZG9uJ3QgaGF2ZSBkZWNvZGViaW4yCgkgIGFkZGVkIHlldC4KCjIwMDgtMDQtMDIgMTE6MDg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX291dF9yYXRlcyksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgVXBkYXRlIHRoZSBlc3RpbWF0ZWQgaW5wdXQgZGF0YSB3aGVuIHdlIHB1c2ggb3V0IGEgYnVmZmVyLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIGFib3V0IHRoZSB0ZW1wIGZpbGUuCgkgIE9ubHkgZm9yd2FyZCBzcmMgZXZlbnRzIHdoZW4gd2UgYXJlIG5vdCB1c2luZyBhIHRlbXAgZmlsZS4KCSAgRG9uJ3QgYmxvY2sgdGhlIGR1cmF0aW9uIHF1ZXJ5LCB3ZSBuZWVkIHRvIGZpbmQgc29tZXRoaW5nIGJldHRlci4KCSAgRG9uJ3QgbGVhayB0aGUgdGVtcCBmaWxlbmFtZS4KCjIwMDgtMDMtMjQgMTQ6MDg6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaXNfZmlsbGVkKToKCSAgVGhlIHF1ZXVlIGlzIG5ldmVyIGZpbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBidWZmZXJzIGluIHRoZSBxdWV1ZSBhdCBhbGwuCgkgIEZpeGVzICM1MjM5OTMuCgoyMDA4LTAzLTIyIDE1OjAwOjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLiBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlcmVsZW1lbnQuYzoKCSAgKGdzdF9hbHNhX21peGVyX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzogKGdzdF9hbHNhc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6IChnc3RfYWxzYXNyY19jbGFzc19pbml0KToKCSAgKiBleHQvY2RwYXJhbm9pYS9nc3RjZHBhcmFub2lhc3JjLmM6CgkgIChnc3RfY2RfcGFyYW5vaWFfc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOiAoZ3N0X2dpb19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6IChnc3RfZ2lvX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzogKGdzdF9naW9fc3RyZWFtX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzogKGdzdF9naW9fc3RyZWFtX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6IChnc3RfZ25vbWVfdmZzX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6IChnc3RfZ25vbWVfdmZzX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ211eC5jOiAoZ3N0X29nZ19tdXhfY2xhc3NfaW5pdCk6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6IChnc3RfdGV4dF9yZW5kZXJfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzogKGdzdF90aGVvcmFfZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6IChnc3RfdGhlb3JhX2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYXBhcnNlLmM6IChnc3RfdGhlb3JhX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6IChnc3Rfdm9yYmlzX2VuY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9maWx0ZXJ0ZW1wbGF0ZS5jOgoJICAoZ3N0X2F1ZGlvX2ZpbHRlcl90ZW1wbGF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2NkZGEvZ3N0Y2RkYWJhc2VzcmMuYzoKCSAgKGdzdF9jZGRhX2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9pbnRlcmZhY2VzL21peGVydHJhY2suYzoKCSAgKGdzdF9taXhlcl90cmFja19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdGJhc2VydHBkZXBheWxvYWQuYzoKCSAgKGdzdF9iYXNlX3J0cF9kZXBheWxvYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwcGF5bG9hZC5jOgoJICAoZ3N0X2Jhc2VydHBwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb2NvbnZlcnQvZ3N0YXVkaW9jb252ZXJ0LmM6CgkgIChnc3RfYXVkaW9fY29udmVydF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9yYXRlL2dzdGF1ZGlvcmF0ZS5jOiAoZ3N0X2F1ZGlvX3JhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAoZ3N0X2F1ZGlvcmVzYW1wbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKGdzdF9hdWRpb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ2RwL2dzdGdkcHBheS5jOiAoZ3N0X2dkcF9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAoZ3N0X3BsYXlfYmFzZV9iaW5fY2xhc3NfaW5pdCksCgkgIChwcmVyb2xsX3VubGlua2VkKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jOiAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbWluZm8uYzogKGdzdF9zdHJlYW1faW5mb19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtc2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3RyZWFtX3NlbGVjdG9yX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYzogKGdzdF9zdWJfcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOiAoZ3N0X211bHRpX2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BjbGllbnRzaW5rLmM6IChnc3RfdGNwX2NsaWVudF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c3JjLmM6IChnc3RfdGNwX2NsaWVudF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6IChnc3RfdGNwX3NlcnZlcl9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc3JjLmM6IChnc3RfdGNwX3NlcnZlcl9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzogKGdzdF92aWRlb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3NjYWxlL2dzdHZpZGVvc2NhbGUuYzogKGdzdF92aWRlb19zY2FsZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW90ZXN0c3JjL2dzdHZpZGVvdGVzdHNyYy5jOgoJICAoZ3N0X3ZpZGVvX3Rlc3Rfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92b2x1bWUvZ3N0dm9sdW1lLmM6IChnc3Rfdm9sdW1lX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsZWxlbWVudC5jOiAoZ3N0X3Y0bGVsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NpbmsuYzogKGdzdF92NGxtanBlZ3NpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NyYy5jOiAoZ3N0X3Y0bG1qcGVnc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsc3JjLmM6IChnc3RfdjRsc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOiAoZ3N0X3hpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3h2aW1hZ2UveHZpbWFnZXNpbmsuYzogKGdzdF94dmltYWdlc2lua19jbGFzc19pbml0KToKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2UKCSAgc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1c2FnZSwKCSAgZmV3ZXIgYWxsb2NhdGlvbnMgYW5kIHRodXMgbGVzcyBtZW1vcnkgZGVmcmFnbWVudGF0aW9uLiBEZXBlbmQKCSAgb24gY29yZSBDVlMgZm9yIHRoaXMuIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwNy0xMi0xNCAxODo0NjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX2luX3JhdGVzKSwgKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBVc2Ugc2VwYXJhdGUgdGltZXJzIGZvciBpbnB1dCBhbmQgb3V0cHV0IHJhdGVzLgoJICBQYXVzZSBtZWFzdXJpbmcgdGhlIG91dHB1dCByYXRlIHdoZW4gd2UgYmxvY2sgZm9yIG1vcmUgZGF0YS4KCSAgU2VlICM1MDMyNjIuCgoyMDA3LTEyLTE0IDA5OjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFBhdXNlIHRoZSB0aW1lciB0byBtZWFzdXJlIHRoZSBpbnB1dCByYXRlIHdoZW4gd2UgYmxvY2sgYmVjYXVzZSB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBTZWUgIzUwMzI2Mi4KCjIwMDctMTEtMzAgMTc6NDc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBSZWZhY3RvciBzb21lIGNvbW1vbiBjb2RlIHRvIGZpbHRlciBmYWN0b3JpZXMgYW5kIGNoZWNrIGNhcHMgY29tcGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdGZhY3RvcnlsaXN0cy5jOiAoY29tcGFyZV9yYW5rcyksIChwcmludF9mZWF0dXJlKSwKCSAgKGdldF9mZWF0dXJlX2FycmF5KSwgKGRlY29kZXJzX2ZpbHRlciksIChzaW5rc19maWx0ZXIpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfZGVjb2RlcnMpLCAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfc2lua3MpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9maWx0ZXIpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuaDoKCSAgUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlY29kZV9iaW5faW5pdCksIChnc3RfZGVjb2RlX2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2NvbnRpbnVlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2ZhY3RvcmllcyksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19zZWxlY3QpLCAoYW5hbHl6ZV9uZXdfcGFkKSwKCSAgKGZpbmRfY29tcGF0aWJsZXMpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfcGxheV9iaW5faW5pdCksIChnc3RfcGxheV9iaW5fZmluYWxpemUpLAoJICAoYXV0b3BsdWdfZmFjdG9yaWVzX2NiKSwgKGFjdGl2YXRlX2dyb3VwKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAocHJveHlfdW5rbm93bl90eXBlX3NpZ25hbCksCgkgIChwcm94eV9hdXRvcGx1Z19jb250aW51ZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfZmFjdG9yaWVzX3NpZ25hbCksIChwcm94eV9hdXRvcGx1Z19zZWxlY3Rfc2lnbmFsKSwKCSAgKHByb3h5X2RyYWluZWRfc2lnbmFsKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGFuZCB1c2UgZmFjdG9yIGZpbHRlcmluZyBjb2RlLgoKMjAwNy0xMS0xNiAxNTo0NDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IEFkZCBwbGF5YmluMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0Ny5jOiAodXBkYXRlX3NjYWxlKSwgKHdhcm5pbmdfY2IpLCAoZXJyb3JfY2IpLAoJICAoZW9zX2NiKSwgKGFib3V0X3RvX2ZpbmlzaF9jYiksIChtYWluKToKCSAgQWRkIHBsYXliaW4yLgoJICBBZGRlZCBnYXBsZXNzIHBsYXliYWNrIGV4YW1wbGUuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmg6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAocGFkX3JlbW92ZWRfY2IpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmg6CgkgIENoYW5nZSBlbWFpbC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksIChpbml0X2dyb3VwKSwgKGdzdF9wbGF5X2Jpbl9pbml0KSwKCSAgKGdzdF9wbGF5X2Jpbl9kaXNwb3NlKSwgKGdzdF9wbGF5X2Jpbl9zZXRfdXJpKSwKCSAgKGdzdF9wbGF5X2Jpbl9zZXRfc3VidXJpKSwgKGdzdF9wbGF5X2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BsYXlfYmluX2dldF9wcm9wZXJ0eSksIChnc3RfcGxheV9iaW5faGFuZGxlX21lc3NhZ2UpLAoJICAocGFkX2FkZGVkX2NiKSwgKHBhZF9yZW1vdmVkX2NiKSwgKG5vX21vcmVfcGFkc19jYiksIChwZXJmb3JtX2VvcyksCgkgIChkcmFpbmVkX2NiKSwgKHVubGlua19ncm91cCksIChhY3RpdmF0ZV9ncm91cCksCgkgIChzZXR1cF9uZXh0X3NvdXJjZSksIChnc3RfcGxheV9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9wbGF5X2JpbjJfcGx1Z2luX2luaXQpOgoJICBBZGRlZCByYXcgZmlyc3QgdmVyc2lvbiBvZiBwbGF5YmluMi4gRG9lcyBjaGFpbmVkIG9nZ3MgYW5kIGdhcGxlc3MKCSAgcGxheWJhY2sgZmluZS4gTm8gc3VwcG9ydCBmb3IgcmF3IHNpbmtzIHlldC4gTm8gdmlzdWFsaXNhdGlvbnMgb3IKCSAgc3VidGl0bGVzIHlldC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KSwgKGdzdF9wbGF5X3NpbmtfaW5pdCksCgkgIChnc3RfcGxheV9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X3BsYXlfc2lua192aXNfdW5ibG9ja2VkKSwKCSAgKGdzdF9wbGF5X3NpbmtfdmlzX2Jsb2NrZWQpLCAoZ3N0X3BsYXlfc2lua19zZXRfdmlkZW9fc2luayksCgkgIChnc3RfcGxheV9zaW5rX3NldF9hdWRpb19zaW5rKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3Zpc19wbHVnaW4pLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfc2lua19nZXRfcHJvcGVydHkpLAoJICAocG9zdF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZSksIChmcmVlX2NoYWluKSwgKGFkZF9jaGFpbiksCgkgIChhY3RpdmF0ZV9jaGFpbiksIChnZW5fdmlkZW9fY2hhaW4pLCAoZ2VuX3RleHRfZWxlbWVudCksCgkgIChnZW5fYXVkaW9fY2hhaW4pLCAoZ2VuX3Zpc19lbGVtZW50KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X21vZGUpLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfbW9kZSksIChnc3RfcGxheV9zaW5rX3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9wbGF5X3NpbmtfcmVsZWFzZV9wYWQpLCAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50X3RvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9wbGF5X3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuaDoKCSAgQWRkZWQgRWxlbWVudCB0aGF0IGFic3RyYWN0cyB0aGUgc2lua3MgYW5kIHRoZWlyIHBpcGVsaW5lcyBmb3IgcGxheWJpbjIuCgoyMDA3LTEwLTE1IDExOjM4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoKMjAwNy0wOS0yMSAxNDozNzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggY29tcGlsYXRpb24gd3J0IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTE3IDE3OjI0OjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGUgd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2luaXQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9zZXRfcHJvcGVydHkpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6ICh2b3JiaXNfaGFuZGxlX2RhdGFfcGFja2V0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19yZW5kZXIpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0cnRjcGJ1ZmZlci5jOiAoZ3N0X3J0Y3BfbnRwX3RvX3VuaXgpLAoJICAoZ3N0X3J0Y3BfdW5peF90b19udHApOgoJICAqIGdzdC1saWJzL2dzdC9ydHNwL2dzdHJ0c3BtZXNzYWdlLmM6IChnc3RfcnRzcF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogdGVzdHMvZXhhbXBsZXMvc2Vlay9zZWVrLmM6IChzZXRfc2NhbGUpOgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzoKCSAgQWx3YXlzIHB1bGwgaW4gY29uZmlnLmggYmVmb3JlIGluY2x1ZGluZyBhbnkgc3lzdGVtIGhlYWRlcnMuCgoyMDA3LTA5LTE3IDE2OjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBbHNvIGZpeCAjNDc2NTE0IGZvciBxdWV1ZTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoKMjAwNy0wOC0xMCAxMDowODowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ2NTAyOCkuCgoyMDA3LTA2LTI4IDExOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChhcHBseV9zZWdtZW50KSwgKHVwZGF0ZV9idWZmZXJpbmcpOgoJICBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoKMjAwNy0wNi0yOCAxMDoyMToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiBTbWFsbCBkZWJ1ZyBpbXByb3ZlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IChtYWtlX2RlY29kZXIpLCAoc2V0dXBfc291cmNlKToKCSAgU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgVHdlYWsgdGhlIHJhdGUgZXN0aW1hdGlvbiBwZXJpb2QuCgkgIFdoZW4gY2FsY3VsYXRpbmcgdGhlIGJ1ZmZlciBmaWxsZWRuZXNzIGluIHJhdGUgZXN0aW1hdGlvbiBtb2RlLCBkb24ndAoJICBtaXggaXQgd2l0aCBvdGhlciBtZXRyaWNzLgoKMjAwNy0wNi0xNiAwMzo0MjoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRml4IGNvbXBpbGUgZXJyb3IgZnJvbSBpZ25vcmVkIHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTMgMTg6MjA6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBidWlsZCBvbiBNYWNPU1guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCk6CgkgIEZpeCBidWlsZCBvbiBNYWNPU1guCgoyMDA3LTA2LTEyIDA4OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaGVzIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuCgkgIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdHVzIHdoZW4gcmVjZWl2aW5nIGV2ZW50cy4gRml4ZXMgIzQ0NjU1MS4KCjIwMDctMDYtMTEgMTE6MzI6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3BlZXJfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgRml4ZXMgIzQ0NTUwNS4KCjIwMDctMDYtMDcgMDk6MTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF9yYW5nZSk6CgkgIEZpeCBjb21waWxhdGlvbi4KCjIwMDctMDYtMDYgMTM6MzY6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgcHVsbCBiYXNlZCBzY2hlZHVsaW5nIGFuZCBmaXggc29tZSBkZWFkbG9ja3MuIEZpeGVzICM0NDQ1MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2dldF9yYW5nZSksIChnc3RfcXVldWVfc3JjX2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBEb2VzIG5vdCB5ZXQgY29tcGxldGVseSB3b3JrIGJlY2F1c2UgZHVyYXRpb24gcXVlcmllcyB1cHN0cmVhbSB3b24ndAoJICBibG9jayB5ZXQuCgoyMDA3LTA2LTA2IDA5OjA4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBTb21lIG1vcmUgZnNlZWtvIGNoZWNrcy4KCjIwMDctMDYtMDUgMTc6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSk6CgkgIEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCjIwMDctMDYtMDUgMTY6MTQ6MjMgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV93cml0ZV9idWZmZXJfdG9fZmlsZSksIChnc3RfcXVldWVfaGF2ZV9kYXRhKSwKCSAgKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCksIChnc3RfcXVldWVfcmVhZF9pdGVtX2Zyb21fZmlsZSksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9xdWV1ZV9pc19maWxsZWQpLAoJICAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksIChnc3RfcXVldWVfc2V0X3RlbXBfbG9jYXRpb24pLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIEFkZCBzdXBwb3J0IGZvciBmaWxlYmFzZWQgYnVmZmVyaW5nLiBGaXhlcyAjNDQxMjY0LgoKMjAwNy0wNS0xNyAxNToyMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfcmF0ZXMpOgoJICBUd2VhayB0aGUgYnVmZmVyaW5nIHRocmVzaG9sZHMgYSBsaXR0bGUuCgkgIFVwZGF0ZSB0aGUgYnVmZmVyIHNpemUgd2l0aCB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGUgcmF0ZSBpbnN0ZWFkIG9mCgkgIG9ubHkgd2hlbiB3ZSBjYWxjdWxhdGUgYSBuZXcgcmF0ZSBzbyB0aGF0IHdlIGdldCBzbW9vdGhlciBidWZmZXJpbmcKCSAgdXBkYXRlcy4KCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCksIChnc3RfdXJpX2RlY29kZV9iaW5faW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZmluYWxpemUpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZ2V0X3Byb3BlcnR5KSwgKHVua25vd25fdHlwZSksCgkgIChhZGRfZWxlbWVudF9zdHJlYW0pLCAobm9fbW9yZV9wYWRzX2Z1bGwpLCAobm9fbW9yZV9wYWRzKSwKCSAgKHNvdXJjZV9ub19tb3JlX3BhZHMpLCAobmV3X2RlY29kZWRfcGFkKSwgKGFycmF5X2hhc192YWx1ZSksCgkgIChnZW5fc291cmNlX2VsZW1lbnQpLCAoaGFzX2FsbF9yYXdfY2FwcyksIChhbmFseXNlX3NvdXJjZSksCgkgIChyZW1vdmVfZGVjb2RlcnMpLCAobWFrZV9kZWNvZGVyKSwgKHJlbW92ZV9zb3VyY2UpLAoJICAoc291cmNlX25ld19wYWQpLCAoc2V0dXBfc291cmNlKSwgKGRlY29kZXJfcXVlcnlfaW5pdCksCgkgIChkZWNvZGVyX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfcG9zaXRpb25fZm9sZCksIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9nZW5lcmljX2ZvbGQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3F1ZXJ5KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpLCAocGx1Z2luX2luaXQpOgoJICBOZXcgZWxlbWVudCB0aGF0IGludGVyZ3JhdGVzIGEgc291cmNlLCBvcHRpb25hbCBidWZmZXJpbmcgZWxlbWVudCBhbmQKCSAgZGVjb2RlYmluLgoKMjAwNy0wNS0xNyAxMzozNjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogZml4IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwKCSAgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwgKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAocmVzZXRfcmF0ZV90aW1lciksICh1cGRhdGVfcmF0ZXMpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAocGx1Z2luX2luaXQpOgoJICBmaXggYnVpbGQuCgoyMDA3LTA1LTE3IDExOjU3OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogT24gb3VyIHdheSB0byBwbGF5YmluMiB0aGlzIGlzIHRoZSBuZXcgbmV0d29yayBxdWV1ZSB0aGF0IGRvZXMgYnVmZmVyaW5nIGFsbCBieSBpdHNlbGYgdXNpbmcgaGlnaCBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfcXVldWVfYWNjZXB0Y2FwcyksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwgKHJlc2V0X3JhdGVfdGltZXIpLAoJICAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwKCSAgKGdzdF9xdWV1ZV9pc19maWxsZWQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSksIChwbHVnaW5faW5pdCk6CgkgIE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZwoJICBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIGxvdyB3YXRlcm1hcmtzLiBJdCBjYW4gYWxzbyBtZWFzdXJlIHVwIGFuZAoJICBkb3duc3RyZWFtIGJhbmR3aWR0aCB0byBvcHRpbWFsbHkgc2l6ZSB0aGUgcXVldWUuCgoyMDA5LTEwLTI4IDIyOjAzOjQ0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBGaXggbWVtbGVhayBvZiB1bnVzZWQgZGVsYXllZCBsaW5rcwoJICBBdHRhY2ggdGhlIERlbGF5ZWRMaW5rIHN0cnVjdHVyZSB0byB0aGUgZWxlbWVudCwgc28gdGhhdCB3aGVuCgkgIHRoZSBlbGVtZW50IGlzIGRpc3Bvc2VkLCB0aGUgRGVsYXllZExpbmsgaXMgZnJlZWQuCgoyMDA5LTA5LTA5IDE1OjM3OjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBfZml4YXRlX2NhcHMoKSBhbHNvIHRydW5jYXRlIHdoZW4gbmVlZGVkCgkgIFRoZSBkZWZhdWx0IGdzdF9wYWRfZml4YXRlX2NhcHMoKSBwcmV2aW91c2x5IHdvdWxkIG9ubHkgZml4YXRlIGVhY2ggaW5kaXZpZHVhbAoJICBzdHJ1Y3QuIEluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIHN0cnVjdHMsIHRoZSByZXN1bHRpbmcgY2FwcyB3b3VsZCBzdGlsbCBub3QKCSAgYmUgZml4ZWQuIEluIHRoZSBzcGlyaXQgb2YgaG93IGluZGl2aWR1YWwgc3RydWN0cyBhcmUgZml4YXRlZCwgdGhpcyBwYXRjaAoJICBjaGFuZ2VzIGdzdF9wYWRfZml4YXRlX2NhcHMoKSB0byByZW1vdmUgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0LgoJICBGaXhlcyAjNTk1ODg2CgoyMDA5LTA5LTIxIDExOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZml4IGRvY3MKCjIwMDktMTAtMjggMDk6MjY6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgb3B0aW1pc2F0aW9uIDogVXNlIGdfb2JqZWN0X25ld3Ygd2hlcmUgcG9zc2libGUuCgkgIFRoaXMgYXZvaWRzOgoJICAqIHRyaXBsZS1jaGVja2luZyBmb3IgdGhlIEdUeXBlIHdoZW4gdHlwZS1jaGVja2luZyBpcyBlbmFibGVkIChzZWUgIzU5NzI2MCkKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCBhbiBleHBlbnNpdmUgbm8tYXJndW1lbnQgY2hlY2tpbmcgd2hpY2ggbGFuZGVkIGluCgkgIGdsaWItMi4yMgoJICAqIEF2b2lkcyBnb2luZyB0aHJvdWdoIDIgZXh0cmFjIGZ1bmN0aW9ucyAoZ19vYmplY3RfbmV3IC0+IGdfb2JqZWN0X25ld192YWxpc3QpCgoyMDA5LTEwLTI4IDEwOjE1OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBpbmNsdWRlIGFubm90YXRpb24gZ2xvc3NhcnkgdG8gaGF2ZSB3b3JraW5nIGxpbmtzLgoKMjAwOS0xMC0yOCAxMDoxNDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBhbm5vdGF0aW9uczogYWRkIGFubm90YXRpb25zIHRvIGdzdF9pbml0X2NoZWNrIHRvbwoKMjAwOS0xMC0yOCAwOTo1ODo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiB0ZWxsIG1vcmUgYWJvdXQgd2hhdCBoYXBwZW5zIGluIGdzdF9pbml0LgoJICBBZGQgbGlua3MgdG8gZ3N0X3VwZGF0ZV9yZWdpc3RyeSBhbmQgdGhlIGVudi12YXJzLgoKMjAwOS0xMC0yOCAwOToyMTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIE9HSSBhbmQgcmVwaHJhc2Ugc2VjdGlvbnMgZG9jcwoJICBUaGUgT0dJIGxpbmtzIGFyZSBkZWFkLCBzbyByZW1vdmUgdGhlbS4gQWxzbyByZW1vdmUgdGhlIHBhcmFncmFwaCB0aGF0IHBvaW50ZWQKCSAgdG8gT0dJIGFuZCBEUy4gT25seSBtZW50aW9uaW5nIERTIHRoZXJlIG1hZGUgaXQgYSBidXQgcG9pbnRsZXNzLiBBZGQgYSBnZW5lcmljCgkgIHBhcmFncmFwaCBpbnN0ZWFkIHRoYXQgdGVsbHMgYSBiaXQgYWJvdXQgdGhlIHVzZWNhc2VzIGdzdHJlYW1lciBjb3ZlcnMuCgoyMDA5LTEwLTI4IDAwOjI5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSB0ZW50aCBvZiBhIHBvbGFyIGJlYXIuCgoyMDA5LTEwLTI4IDAwOjA3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBzcHJpbmtsZSBzb21lIEdTVF9ERUJVR19GVU5DUFRSCgoyMDA5LTEwLTI3IDE1OjQ3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduOiBhZGQgc29tZSBpZGVhcyBmb3IgU0tJUCBtb2RlIHRyaWNrbW9kZXMKCjIwMDktMTAtMjMgMTA6MjA6MDIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYnVmZmVyaW5nIGlzIGltcGxlbWVudGVkIG5vdwoKMjAwOS0xMC0yMiAyMToyNDoyNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogbWFrZSBzdXJlIHBlcmNlbnQgaW5jcmVhc2VzCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGxhc3QgcG9zdGVkIHBlcmNlbnQgbWVzc2FnZSBhbmQgbWFrZSBzdXJlIHRoZSBuZXh0IHBlcmNlbnQKCSAgbWVzc2FnZXMgYXJlIHN0cmljdGx5IGluY3JlYXNpbmcuCgoyMDA5LTEwLTIyIDE2OjM4OjEyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJlZmFjdG9yIGJ1ZmZlcmluZyBjb2RlCgkgIE1vdmUgdGhlIGJ1ZmZlcmluZyB1cGRhdGUgY29kZSB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIGNhbGwgaXQKCSAgd2hlbiB0aGUgYnVmZmVyaW5nIHN0YXRlIGNoYW5nZXMgZHVlIHRvIEVPUy4KCSAgQXZvaWQgZGl2aWRpbmcgYnkgMC4KCjIwMDktMTAtMjIgMTQ6MDk6MDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGFkZCBidWZmZXJpbmcgc3VwcG9ydAoJICBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyaW5nIG1vZGUgd2hlcmUgd2UgcG9zdCBCVUZGRVJJTkcgbWVzc2FnZXMgYmFzZWQgb24gdGhlCgkgIGxldmVsIG9mIHRoZSBxdWV1ZXMuIEl0IGN1cnJlbnRseSBvcGVyYXRlcyBvbiB0aGUgZmlyc3QgcXVldWUgdGhhdCBnb2VzIG92ZXIgb3IKCSAgdW5kZXIgdGhlIGhpZ2gvbG93IHRocmVzaG9sZHMuCgoyMDA5LTEwLTIyIDE0OjA3OjMxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvbid0IGNoZWNrIHZpc2libGUgaXRlbXMgaW4gYnVmZmVyaW5nCgkgIEluIGJ1ZmZlcmluZyBtb2RlIHdlIHdhbnQgdG8gaWdub3JlIHRoZSBtYXggdmlzaWJsZSBpdGVtcyB0byBkZWNpZGUgd2hlbiB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBJbnN0ZWFkLCB3ZSBvbmx5IGxvb2sgYXQgdGhlIG51bWJlciBvZiBieXRlcyBhbmQvb3IgdGltZSBpbiB0aGUKCSAgcXVldWUuCgoyMDA5LTEwLTIxIDExOjMwOjQwIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIGxvdy9oaWdoIHBlcmNlbnQKCSAgSG9vayB1cCB0aGUgbG93L2hpZ2ggcGVyY2VudCBwcm9wZXJ0aWVzIGZvciB0aGUgYnVmZmVyaW5nIG1vZGUuCgoyMDA5LTEwLTIxIDExOjI0OjQ3IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIHByb3BlcnR5IGZvciBidWZmZXJpbmcKCjIwMDktMTAtMjIgMTU6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc21hbGwgY2xlYW51cHMKCSAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpb24KCSAgRml4IHNvbWUgdHlwbwoKMjAwOS0xMC0yMiAwOTo0MTo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhZGQgRklYTUUgZm9yIHdyb25nIGNvZGUKCSAgTmVlZHMgZnVydGhlciBpbnZlc3RpZ2F0aW9uCgoyMDA5LTEwLTIxIDE0OjIwOjI5IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBkZWJ1ZyBvdXRwdXQKCjIwMDktMTAtMjEgMTQ6MTU6MDUgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgc2hhZG93aW5nIGZ1bmN0aW9uIGFyZ3VtZW50CgkgIERvbid0IHNoYWRvdyB0aGUgc3EgYXJndW1lbnQgaW4gdGhlIHVuZGVycnVuX2NiIGZ1bmN0aW9uIGJ1dCB1c2UKCSAgYSBkaWZmZXJlbnQgdmFyaWFibGUgbmFtZSB0byBpdGVyYXRlIHRoZSBvdGhlciBxdWV1ZXMuCgkgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGluIHRoZSBvdmVycnVuX2NiIGZ1bmN0aW9uLgoKMjAwOS0xMC0yMSAxNDoxMjoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBtYWtlIHF1ZXVlIGFyZyBleHBsaWNpdAoJICBNYWtlIHRoZSBxdWV1ZSBhcmd1bWVudCB0byBJU19GSUxMRUQgZXhwbGljaXQKCjIwMDktMTAtMjEgMTE6MTc6MDggLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZml4IHByb3BlcnRpZXMKCSAgRml4IHByb3BlcnRpZXMsIG1ha2UgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcyBhcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA5LTEwLTI1IDIxOjM1OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhbGxvdyB0byBoaWRlL3Nob3cgcGFkIHN0YXR1cyB3aXRoIGdyYXBoZGV0YWlscyBmbGFnCgoyMDA5LTEwLTI0IDEzOjE0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IFJlbW92ZSBvYnNvbGV0ZSBGSVhNRQoJICBJdCdzIG5vdCBuZWNlc3NhcnkgKGFuZCBub3QgYSBnb29kIGlkZWEpIHRvIGNhY2hlIHRoZSB0eXBlZmluZCBmYWN0b3J5CgkgIGxpc3QgYW55bW9yZS4KCjIwMDktMTAtMjQgMTE6NTg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogcHJpdmF0ZSBpcyBhIEMrKyBrZXl3b3JkLCBkb24ndCB1c2UgaXQKCSAgLi4ub3RoZXJ3aXNlIEMrKyBjb21waWxlcnMgd2lsbCBjb21wbGFpbiB3aGVuIGluY2x1ZGluZyBnc3RyZWdpc3RyeS5oCgoyMDA5LTEwLTI0IDEwOjIxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGFkZCBTaW5jZSB0YWcgdG8gZG9jcyBmb3IgbmV3IEFQSQoJICBBbmQgdGVsbCBndGstZG9jIHRoYXQgR3N0UmVnaXN0cnlQcml2YXRlIGlzIHByaXZhdGUuCgoyMDA5LTEwLTIxIDA5OjQ4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogS2VlcCB0eXBlZmluZCBmYWN0b3JpZXMgc29ydGVkIGluIHRoZSByZWdpc3RyeS4gRml4ZXMgIzU5OTE0NwoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gZG8gdGhlIHNvcnRpbmcgZXZlcnl0aW1lIHdlIHVzZSB0eXBlZmluZAoJICBUaGUgYmVoYXZpb3VyIG9mIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfbGlzdCBoYXMgc3VidGxlbHkgY2hhbmdlZAoJICBpbiB0aGUgc2Vuc2UgdGhhdCB0aGUgb3JkZXIgd2FzIHByZXZpb3VzbHkgdW5kZWZpbmVkLCB3aGVyZWFzIG5vdwoJICBpdCByZXR1cm5zIHRoZW0gc29ydGVkIGJ5IHJhbmsgYW5kIHRoZW4gYnkgbmFtZS4KCjIwMDktMTAtMjEgMDk6NDU6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IENhY2hlIGVsZW1lbnQgYW5kIHR5cGVmaW5kIGZhY3Rvcmllcy4gRml4ZXMgNTk4ODk2CgkgIFRoaXMgYXZvaWRzIHVubmVlZGVkIGxpc3QvZmlsdGVyaW5nIGlmIHRoZSByZWdpc3RyeSBoYXNuJ3QgY2hhbmdlZAoKMjAwOS0xMC0yMSAwOTo0MDo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RwbHVnaW5mZWF0dXJlOiBBUEkgOiBuZXcgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfY29weSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyBjb3B5aW5nIEFORCBpbmNyZW1lbnRpbmcgdGhlIHJlZmNvdW50IGF0IHRoZSBzYW1lIHRpbWUsCgkgIGF2b2lkaW5nIGEgZG91YmxlIGl0ZXJhdGlvIG9mIHRoZSBHTGlzdAoKMjAwOS0xMC0yNCAxMDowNTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgZ3N0cmVnaXN0cnk6IEFkZCBhIGNvb2tpZSBmb3IgZGV0ZWN0aW5nIGZlYXR1cmUgbGlzdCBjaGFuZ2VzCgkgIFdlIGFsc28gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUsIHNpbmNlIHdlIHdpbGwgbmVlZCB0byBhZGQgbW9yZQoJICBkYXRhIHRoZXJlIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKMjAwOS0xMC0yMyAxMzoxOTowNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IGRvbid0IHVzZSB0eXBlY2hlY2tpbmcgY2FzdCBtYWNyb3MKCSAgU2ltcGx5IHVzZSBjYXN0aW5nIG1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBtZXNzYWdlIGZpZWxkcyBsaWtlIHdlIGRvIGZvcgoJICBidWZmZXJzIGFuZCBldmVudHMuIEF2b2lkcyBzb21lIGNvc3RseSB0eXBlY2hlY2tpbmcgdGhhdCBkb2VzIG5vdCByZWFsbHkgYnV5IHVzCgkgIG11Y2guCgoyMDA5LTEwLTIzIDEzOjEzOjUyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgUmV2ZXJ0ICJnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2MWNmOTNhMzM0Yjc5YTJkODQ5M2U1MzFjYzQ0YmE0NWE0MjA5ODA1LgoKMjAwOS0xMC0yMyAxNzo1MToyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGdzdG1lc3NhZ2U6IEF2b2lkIGV4cGVuc2l2ZSBzcmMvdHlwZS90aW1lc3RhbXAgZmV0Y2guCgkgIElmIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHdlIGhhdmUgYSB2YWxpZCBtZXNzYWdlLCB1c2UgdGhlIGVudHJpZXMKCSAgZGlyZWN0bHkuCgoyMDA5LTEwLTIzIDE3OjQ3OjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGlubGluZWQgdmVyc2lvbiBvZiBfaXNfYW55KCkvX2lzX2VtcHR5KCkKCSAgQ0FQU19JU19BTlkgYW5kIENBUFNfSVNfRU1QVFkgYXJlIHRoZSBlcXVpdmFsZW50IG9mIHRoZWlyIGdzdF9jYXBzXyoKCSAgY291bnRlcnBhcnQgZXhjZXB0IHRoYXQgdGhleSBhdm9pZCB0aGUgdHlwZWNoZWNraW5nIGFuZCBhcmUgaW5saW5lZC4KCSAgQ0FQU19JU19FTVBUWV9TSU1QTEUgb25seSBjaGVja3MgZm9yIGVtcHR5IGNhcHMgKHdpdGhvdXQgY2hlY2tpbmcgaWYKCSAgdGhlIGNhcHMgaXMgQU5ZKS4KCjIwMDktMTAtMjIgMTY6NDI6MTMgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBUT0RPOiBhZGQgaXRlbSB0byBUT0RPIGxpc3QKCSAgV2UgY3VycmVudGx5IGRvIGEgbGl0dGxlIHRvbyBtdWNoIHdvcmsgd2hlbiB3ZSBwdXNoIHRoZSBmaXJzdCBidWZmZXIgYXJvdW5kCgkgIHJlc3VsdGluZyBpbiBleGNlc3NpdmUgY2FwcyBjaGVja2luZy4gV2UgY2FuIHByb2JhYmx5IG1ha2UgdGhpcyBhIGxpdHRsZSBsZXNzCgkgIGV4cGVuc2l2ZS4KCjIwMDktMTAtMjIgMTI6NTI6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RwaXBlbGluZTogU2ltcGxpZnkgYmFzZSB0aW1lIGNoZWNraW5nIHNsaWdodGx5CgkgIFNpbXBsaWZ5IGNoZWNraW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIGJhc2UgdGltZSAtIGRvbid0IHJlLWNoZWNrCgkgIHRoZSB2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgd2FzIHNldCAzIGxpbmVzIGVhcmxpZXIuCgoyMDA5LTEwLTIyIDEzOjE1OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbjogQXZvaWQgdHlwZS1jaGVja2luZyBpbiBzb3J0aW5nIG1ldGhvZC4KCSAgV2UgYWxyZWFkeSBrbm93IHRoZSBsaXN0IG9ubHkgY29udGFpbnMgcGx1Z2luIGZlYXR1cmVzCgoyMDA5LTEwLTIyIDEzOjEzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbiA6IENhc3Qgd2hlbiB3ZSdyZSBzdXJlIG9mIHRoZSB0eXBlLgoJICBBbHNvIGRpcmVjdGx5IGFjY2VzcyBHc3RFbGVtZW50RmFjdG9yeS0+dXJpX3R5cGUgaW5zdGVhZCBvZiBnb2luZwoJICB0aHJvdWdoIGEgZnVuY3Rpb24gdGhhdCB3aWxsIChvbmNlIGFnYWluKSBjaGVjayB3aGV0aGVyIGl0J3MgYQoJICBHc3RFbGVtZW50RmFjdG9yeQoKMjAwOS0xMC0yMiAxMjozMzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzL2Zha2VzaW5rOiBBZGQgc29tZSBkZWJ1Z2dpbmcKCjIwMDktMTAtMjIgMTI6MzM6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWVrc2luazogTG93ZXIgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGF2b2lkIHRpbWVvdXRzCgkgIFdlIGp1c3QgZW5kIHVwIHdpdGggd2F5IHRvbyBtdWNoIGNvbnRlbnRpb24gaW4gZ2xpYiBvdGhlcndpc2UuCgoyMDA5LTEwLTE5IDA5OjA2OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGdzdHJlZ2lzdHJ5OiBVc2UgaGFzaCB0YWJsZSB3aGVuIGZpbmRpbmcgYSBmZWF0dXJlLiBGaXhlcyAjNTk4ODk1CgoyMDA5LTEwLTIxIDE2OjI2OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBpbXBsZW1lbnQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gb24gdGhlIHNpbmtwYWQuIFdlIGNhbiBhY2NlcHQgYW55IGNhcHMgYXMKCSAgbG9uZyBhcyBpdCBpcyBhY2NlcHRlZCBieSBhbGwgZG93bnN0cmVhbSBwZWVyIGVsZW1lbnRzLgoKMjAwOS0xMC0yMSAxMzozODo1NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgbG9jayBmb3IgdGFraW5nIHRoZSBjb3VudGVyCgkgIFRoZSBjb3VudGVyIGZvciBpbmNvbW1pbmcgZGF0YSBpcyBhbHJlYWR5IHByb3RlY3RlZCB3aXRoIHRoZSBTVFJFQU1fTE9DSyBzbyB3ZQoJICBkb24ndCBuZWVkIHRvIGFkZCBhbm90aGVyIGxvY2sgYXJvdW5kIGl0LgoKMjAwOS0xMC0yMCAyMzoyODo1NCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IGhhc2ggdGhlIHBsdWdpbiBiYXNlbmFtZQoJICBNYWludGFpbiBhIGhhc2h0YWJsZSBvZiB0aGUgcGx1Z2luIGJhc2VuYW1lLiBXZSBjYW4gdGhlbiB1c2UgdGhpcwoJICBoYXNodGFibGUgdG8gc3BlZWR1cCB0aGUgc2VhcmNoIGZvciBhbiBleGlzdGluZyBwbHVnaW4gYW5kIGF2b2lkCgkgIGEgd2hvbGUgbG90IG9mIHN0cmNtcCBjYWxscy4KCjIwMDktMTAtMjAgMjM6Mjc6NDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHNwZWVkIHVwIF9zdHJsZW4KCSAgTWFrZSB0aGUgX3N0cmxlbiBmdW5jdGlvbiBhIGxpdHRsZSB0aWdodGVyCgoyMDA5LTEwLTIwIDIxOjQzOjU4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBuYW1lIGlzIG5ldmVyIE5VTEwKCSAgV2hlbiBsb29raW5nIHVwIGEgZmVhdHVyZSBieSBuYW1lLCB3ZSBuZXZlciBjYWxsIHRoaXMgaW50ZXJuYWwKCSAgZnVuY3Rpb24gd2l0aCBOVUxMIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yIGl0LgoKMjAwOS0xMC0yMCAyMTozOToxMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogcmVmYWN0b3IgcGx1Z2luIGxvb2t1cAoJICBXZSBrZWVwIGxvb2t1cCBwbHVnaW5zIGJ5IHRoZWlyIGJhc2VuYW1lLiBBdm9pZCBjcmVhdGluZyBhIGJhc2VuYW1lCgkgIGZyb20gYSBmaWxlbmFtZSBpZiB3ZSBjYW4uCgoyMDA5LTEwLTIwIDIxOjAxOjU1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkbyBxdWljayBjaGVjayBmb3IgLiBmaWxlcwoJICBEbyBhIHF1aWNrIGNoZWNrIGZvciAuIGZpbGVzIGJlZm9yZSBjYWxsaW5nIHRoZSBzdHJjbXAgZnVuY3Rpb25zCgoyMDA5LTEwLTIwIDEyOjIxOjA5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzoKCSAgUmVtb3ZlIGV4ZWN1dGFibGUgYml0cyBvbiB4bWwgdW5pdCB0ZXN0LgoKMjAwOS0xMC0xOSAxNjo0NzoxMCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBGaXggZG9jcyBmb3IgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpCgoyMDA5LTEwLTE5IDEzOjAyOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBNb2RpZnkgZG9jcyBzdHJpbmcgc2xpZ2h0bHkuCgkgIEFwcGFyZW50bHkgc3RhcnRpbmcgdGhlIGxhc3QgbGluZSBvZiBhIGRvY3Mgc3RyaW5nIHdpdGggJ3JldHVybnMnIGJvdGgKCSAgY29uZnVzZXMgYW5kIGVucmFnZXMgZ3RrLWRvYy4gVXNlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHdvcmRpbmcgaW5zdGVhZC4KCjIwMDktMTAtMTkgMTI6Mjk6MzUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBXaGVuIGEgcGx1Z2luIGlzIGJsYWNrbGlzdGVkLCBvdXRwdXQgYSBHU1RfRVJST1IgbGluZS4KCjIwMDktMTAtMTkgMTM6MzA6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scy9nc3QtaW5zcGVjdDogQ2hlY2sgd2UncmUgbm90IGhhbmRsaW5nIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTEwLTE5IDEzOjI5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCjIwMDktMTAtMTQgMTA6NTQ6MzIgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBEbyBub3QgcG9pc29uIGdzdF90cmFjZV9hZGRfZW50cnkoKQoJICBTaW5jZSBnc3RfdHJhY2VfYWRkX2VudHJ5KCkgaXMgYSBtYWNybywgZ2NjIHdpbGwgYmFyZiB3aGVuIGl0IGlzCgkgIGRlZmluZWQgaW4gY2FzZSBpdCBoYXMgYmVlbiBwb2lzb25lZCBkdWUgdG8gdHJhY2Ugc3VwcG9ydCBiZWluZwoJICBkaXNhYmxlZC4KCjIwMDktMTAtMTggMjM6MTg6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjoganVzdCBjYXN0IGluIGludGVybmFsIEFQSSB3aGVyZSB3ZSBoYXZlIGNoZWNrZWQgcGFyYW1ldGVycyBhbHJlYWR5CgoyMDA5LTEwLTE4IDIzOjE1OjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIGdfc2xpY2UgZm9yIGNvbnRyb2xsZWQgcHJvcGVydHkgc3RydWN0dXJlcwoJICBVc2UgZ19zbGlkZSBpbnN0ZWFkIG9mIG5vbWFsIGdfbmV3LCBBbHNvIGRvbid0IGluaXQgc3RydWN0IHdpdGggMCBhcyB3ZSBuZWVkIHRvCgkgIGluaXQgaXQgYW55d2F5IHdpdGggdGhlIHJlYWwgdmFsdWVzLgoJICBBbHNvIGpvaW4gdGhlIDMgZmxhZ3MgY2hlY2tzIGludG8gb25lLgoKMjAwOS0xMC0xOCAxNzoxNzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbGlicy9iYXNlL3R5cGVmaW5kaGVscGVyOiBSZW1vdmUgdXNlbGVzcyB0eXBlY2hlY2tpbmcgaW4gdGlnaHQgbG9vcAoJICBUaGUgbGlzdCBhZ2FpbnN0IHdoaWNoIHdlIHJ1biB0aGUgY29tcGFyZWZ1bmMgd2lsbCBvbmx5IGNvbnRhaW4KCSAgR3N0UGx1Z2luRmVhdHVyZSwgdGhlcmVmb3JlIHJlbW92ZSB0aGUgNiBleHBlbnNpdmUgdHlwZSBjaGVja3Mgd2UgZG8KCSAgZm9yIGV2ZXJ5IHNpbmdsZSBjb21wYXJpc2lvbi4KCjIwMDktMTAtMTYgMTI6Mzk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggdHlwbyBpbiBkb2NzCgoyMDA5LTEwLTE2IDA5OjQzOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IEFQSSBzeW1ib2wKCjIwMDktMTAtMTYgMTA6MTM6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODVkMTUzMCB0byAwNzAyZmUxCgoyMDA5LTEwLTA3IDE1OjMyOjE4ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIEltcHJvdmUgY2FwcyBzZXR0ZXJzIEFQSQoJICBUaGlzIHBhdGNoIGFkZHMgZ3N0X2NhcHNfc2V0X3ZhbHVlKCkgYW5kIGFsbG93cyBnc3RfY2Fwc19zZXRfc2ltcGxlKCkgdG8KCSAgd29yayBvbiBub24tc2ltcGxlIGNhcHMuIFNlZSB0aGUgQVBJIGRvY3VtZW50YXRpb24gZm9yIHRoZSBmdW5jdGlvbnMKCSAgYWJvdXQgd2hhdCB0aGV5IGRvLgoJICBUaGUgaW50ZW50aW9uIG9mIHRoZXNlIGNoYW5nZXMgaXMgdG8gZWFzZSB3b3JraW5nIHdpdGggY2FwcyBpbiBjYXBzCgkgIHRyYW5zZm9ybSBmdW5jdGlvbnMuIEFuIGV4YW1wbGUgZm9yIHRoaXMgd291bGQgYmUgZmZtcGVnY29sb3JzcGFjZSwKCSAgd2hlcmUgdGhlIGNhcHMgdHJhbnNmb3JtIGZ1bmN0aW9uIGNvdWxkIGJlIGNoYW5nZWQgdG8gbG9vayByb3VnaGx5IGxpa2UKCSAgdGhpcyAocHNldWRvY29kZSBhaGVhZCk6CgkgIHJlc3VsdCA9IGdzdF9jYXBzX2NvcHkgKHRlbXBsYXRlX2NhcHMpOwoJICB2YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlIChjYXBzLCAwKSwKCSAgIndpZGgiKTsKCSAgZ3N0X2NhcHNfc2V0X3ZhbHVlIChyZXN1bHQsIHZhbHVlKTsKCSAgLyogc2FtZSBmb3IgaGVpZ2h0LCBmcmFtZXJhdGUgYW5kIHBhciAqLwoJICByZXR1cm4gY2FwczsKCSAgd2hpY2ggaXMgbXVjaCBjbGVhbmVyIGFuZCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB0aGFuIHRoZSBjdXJyZW50IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2OTAKCjIwMDktMTAtMDIgMTA6MTU6NTUgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICBBZGQgWE1MX0xJQlMgd2hlbiBidWlsZGluZyB0ZXN0cyB0aGF0IHVzZSB4bWwtc3BlY2lmaWMgZnVuY3Rpb25zCgoyMDA5LTEwLTE1IDE2OjM1OjU5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9NYWtldmFyczoKCSAgcG86IERvbid0IGNyZWF0ZSBiYWNrdXAgLnBvIGZpbGVzCgkgIEFzIHdlbGwgYXMgcHJldmVudGluZyBjcmVhdGlvbiBvZiB1c2VsZXNzIGJhY2t1cCBmaWxlcywgaXQgd29ya3MKCSAgYXJvdW5kIGEgYnVnIGluIGdldHRleHQgMC4xNyBvbiBPUy9YCgoyMDA5LTEwLTE1IDE2OjMwOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIFBMQVlJTkctPlBBVVNFRC0+UExBWUlORwoJICBXaGVuIHdlIHF1aWNrbHkgc3dpdGNoIGZyb20gUExBWUlORyB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORyBpdCdzIHBvc3NpYmxlCgkgIGluIHNvbWUgY2FzZXMgdGhhdCB0aGUgdGFzayByZWZ1c2VzIHRvIHN0YXJ0LCBUaGlzIGlzIGJlY2F1c2Ugd2hlbiB3ZSBnbyB0bwoJICBQQVVTRUQsIHdlIHVuc2NoZWR1bGUgdGhlIGNsb2NrIHRpbWVvdXQsIHdoaWNoIGNvdWxkIHJldHVybiBVTlNDSEVEVUxFRCB3aGVuCgkgIHdlJ3JlIGJhY2sgdG8gUExBWUlORywgY2F1c2luZyB0aGUgdGFzayB0byBQQVVTRSBhZ2FpbiB3aXRoIGEgd3Jvbmctc3RhdGUuCgkgIFRoaXMgcGF0Y2ggY2hlY2tzIGlmIHdlIGFyZSBydW5uaW5nIHdoZW4gd2UgcmV0dXJuIHdpdGggYW4gVU5TQ0hFRFVMRUQgcmV0dXJuCgkgIHZhbHVlIGFuZCBpZiB3ZSBhcmUsIHRyeSB0byBjcmVhdGUgYSBuZXcgYnVmZmVyLgoJICBGaXhlcyAjNTk3NTUwCgoyMDA5LTEwLTE1IDEyOjE2OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIGRvY3M6IGNsYXJpZnkgcHJlc2V0IGFwaSBkb2NzCgoyMDA5LTEwLTE0IDE3OjU3OjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogZml4IGNvbnRyb2xsZXIgc2VjdGlvbnMgZG9jcwoKMjAwOS0xMC0xNCAxMDo0MDo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjM4MGQ0YiB0byA4NWQxNTMwCgoyMDA5LTEwLTE0IDEwOjE2OjMxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IGEgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTE0IDA4OjU3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogLi4uYW5kIGFkZCBtaXNzaW5nIGVuZGlmCgoyMDA5LTEwLTE0IDA4OjU3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogQWxzbyBkb24ndCBydW4gbWFrZSBjaGVjay1leHBvcnRzIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0xMC0xNCAwODo1MDozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IE9ubHkgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBubyBwdWJsaWMgQVBJIHdhcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU5ODI5Ny4KCjIwMDktMTAtMTQgMDg6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlcGxhY2UgcmVjdXJzaXZlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkgd2l0aCBhbiBpdGVyYXRpdmUgdmVyc2lvbgoJICBUaGlzIGlzIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50IGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbid0IGRvIHRhaWwKCSAgcmVjdXJzaW9uIGhlcmUgYW5kIGhhcyB0byBrZWVwIGFsbCBzdGFjayBmcmFtZXMuCgkgIE5vdCB0aGF0IGVmZmljaWVuY3kgaXMgdGhhdCBpbXBvcnRhbnQgaGVyZSBidXQgSSBhbHJlYWR5IGhhZAoJICB0aGUgaXRlcmF0aXZlIHZlcnNpb24gc29tZXdoZXJlIGVsc2UgYW5kIGJvdGggYXJlIGVhc3kgdG8gcmVhZC4KCjIwMDktMTAtMTQgMDg6Mjk6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0IGZvciBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpCgoyMDA5LTEwLTEzIDE5OjEyOjUwICswMzAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkuMS5teW9oYW5lbkBub2tpYS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGZpeCB0aW1lc3RhbXAgY29tcGFyaXNzaW9uLCBGaXhlcyAjNTk3NDA3CgoyMDA5LTEwLTEyIDIxOjUxOjU1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBEaXNhYmxlIHRoZSB0ZXN0X2ZhaWxfYWJzdHJhY3RfbmV3KCkgdGVzdCBlbnRpcmVseSBvbiBPUy9YCgkgIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBmcm9tIHRoZSBmdW5jdGlvbiBiZWluZyBjb21waWxlZCBidXQgbm90CgkgIHVzZWQuCgoyMDA5LTEwLTEyIDE0OjU3OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZGVidWc6IE1hcmsgdGhlIEdTVF9QT0xMIHN5bWJvbCBhcyBleHRlcm4gdG8gYXZvaWQgbXVsdGlwbHktZGVmaW5lZCBlcnJvcgoKMjAwOS0xMC0xMiAxNDo0NzozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHRvIDYzODBkNGIzNzBmMDc4ZjBjY2E3MjQwNDI4ZWE5ZjY2Mzk1NzFmZjUKCjIwMDktMTAtMTIgMTQ6MjQ6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3Rwb2xsOiBNYWtlIHRoZSBuZXcgR1NUX1BPTEwgZGVidWcgY29tcGxldGVseSBwcml2YXRlCgkgIE1ha2UgdGhlIEdTVF9QT0xMIGRlYnVnIGNhdGVnb3J5IHN5bWJvbCBwcml2YXRlIHRvIGxpYmdzdHJlYW1lciwgYXMKCSAgdGhlcmUgc2hvdWxkIGJlIG5vIGV4dGVybmFsIHVzZXJzIG9mIGl0LgoKMjAwOS0xMC0xMiAxNDoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IERpc2FibGUgYSBmYWlybHkgc2lsbHkgZ3N0b2JqZWN0IHRlc3Qgb24gT1MvWAoJICBUaGlzIHRlc3QgdXNlZCB0byBTSUdCVVMgb24gT1MvWCBidXQgbm93IFNJR1NFR1YncyBpbnN0ZWFkIG9uCgkgIFNub3cgTGVvcGFyZC4gSXQncyBub3Qgd29ydGggdGhlIGVmZm9ydCB0byBmaWd1cmUgb3V0IHdoaWNoIHBsYXRmb3JtCgkgIHNob3VsZCBwcm9kdWNlIHdoaWNoIGVycm9yIGZvciB3aGF0IGlzIGZ1bmRhbWVudGFsbHkgYSBwcmV0dHkgc2lsbHkKCSAgdGVzdCwgc28ganVzdCBkaXNhYmxlIGl0IG9uIE9TL1gKCjIwMDktMTAtMTIgMTM6NTA6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGxpYnMvZ3N0L2NoZWNrOiBNYWtlIHdyaXRpbmcgdGhyZWFkc2FmZS4gQmFja3BvcnRlZCBmcm9tIGxpYmNoZWNrIHRydW5rCgoyMDA5LTEwLTEyIDEzOjQ5OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBsaWJzL2dzdC9jaGVjazogUnVuIGdzdC1pbmRlbnQgb24gbGliY2hlY2suCgoyMDA5LTEwLTEyIDEyOjAyOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IERvbid0IHdhaXQgZm9yZXZlciBvbiBnc3RfcG9sbF93YWl0LgoJICBUaGlzIGFsbG93cyB0aGUgbWFjb3N4IHZlcnNpb25zIHRvIHByb3Blcmx5IGVycm9yIG91dCB3aGVuIGZkcyBhcmUgY2xvc2VkLgoJICBUaGlzIGlzIG9ubHkgYSB0ZW1wb3JhcnkgZml4IHVudGlsIHRoZSBwbHVnaW5sb2FkZXIgaXMgc3dpdGNoZWQgdG8gbm90CgkgIHVzZSBHc3RQb2xsIGJ1dCBHSU9DaGFubmVscy4KCjIwMDktMTAtMTIgMTI6MDE6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBPbmx5IHRha2UgaW50byBhY2NvdW50IGFjdGl2ZSBmZHMKCSAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCBzZWxlY3QgcHJvcGVybHkgZXJyb3JzIG91dCBvbiBtYWNvc3ggKHNpZ2gpCgoyMDA5LTEwLTEyIDEwOjA3OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogQWRkIHNvbWUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDktMTAtMTIgMTA6MDE6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBVc2UgdGhlIGVycm9yIGZkc2V0IHdoZW4gdXNpbmcgc2VsZWN0L3BzZWxlY3QuCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHByb3Blcmx5IGRldGVjdCBmZHMgdGhhdCBhcmUgY2xvc2VkIG9yIHRoYXQgZ290CgkgIGFuIGVycm9yCgoyMDA5LTEwLTEyIDA5OjUwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRG9uJ3QgdXNlIHBvbGwgb24gc3lzdGVtcyB3aXRoIGJyb2tlbiBwb2xsCgoyMDA5LTEwLTEyIDA5OjUwOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdDogQWRkIGRlYnVnZ2luZyBjYXRlZ29yeSBHU1RfUE9MTCBmb3IgZ3N0cG9sbAoKMjAwOS0xMC0xMiAwOTo0Nzo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBEZXRlY3QgYnJva2VuIHBvbGwoKQoKMjAwOS0xMC0wOSAxNzo0NDoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbGV0cyBrZWVwIC0xIGZvciBzZWdtZW5zdCBhcyB0aGV5IGFyZSBndWludDY0IGFuZCBub3QgR3N0Q2xvY2tUaW1lCgoyMDA5LTEwLTA5IDE3OjExOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgR1NUX0NMT0NLX1RJTUVfTk9ORSBhbmQgR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgbW9yZQoKMjAwOS0xMC0wOCAyMzoxMDo0MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCB2YWxncmluZCB3YXJuaW5ncyBieSB6ZXJvaW5nIHBhZGRpbmcgYnl0ZXMuCgoyMDA5LTEwLTA4IDE3OjE5OjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgY2hlY2s6IEhvcGVmdWxseSBmaXggYW4gJ21heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQnIHdhcm5pbmcgb24gT1MvWAoKMjAwOS0xMC0wOCAxNjoyMTo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBkZWJ1ZyBmb3JtYXQgc3RyaW5nIGhhcmRlciB0byBzYXRpc2Z5IE9TL1gncyBnY2MuCgoyMDA5LTEwLTA4IDE2OjA1OjA4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBmb3JtYXQgc3RyaW5nIGZvciBkZWJ1ZyBlcnJvciBtZXNzYWdlLgoKMjAwOS0xMC0wOCAxNToyMTo0OCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IE1vdmUgc3RkaW4gYW5kIHN0ZG91dCBvdXQgb2YgaGFybSdzIHdheQoJICBJbiB0aGUgcGx1Z2luIGxvYWRlciBzdWJwcm9jZXNzLCBtb3ZlIHN0ZGluIGFuZCBzdGRvdXQgdG8gbmV3IGZkJ3MKCSAgc28gdGhhdCBwbHVnaW5zIHByaW50aW5nIHRoaW5ncyBkdXJpbmcgcGx1Z2luIGluaXQgb3IgKCpnYXNwKikKCSAgcG9zc2libHkgcmVhZGluZyBmcm9tIHN0ZGluIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBkYXRhIHNlbnQgdG8KCSAgYW5kIGZyb20gdGhlIHBhcmVudC4KCjIwMDktMTAtMDggMTE6MTc6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgcGx1Z2luIGRvY3M6IEFkZCBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgaW5zcGVjdCBlbnZpcm9ubWVudAoKMjAwOS0xMC0wOCAxMDo1OToxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzN2Y4OThiIHRvIGEzZTNjZTQKCjIwMDktMTAtMDggMTA6Mzk6MjggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBieXRld3JpdGVyIGNoZWNrIGJpbmFyeQoKMjAwOS0xMC0wOCAxMDozNjo1NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBGaXggZXJyb3IgaGFuZGxpbmcgaW4gdGhlIHJlZ2lzdHJ5IGxvYWRlcgoJICBXaGVuIHRoZSBwbHVnaW4tc2Nhbm5lciBsb2FkIGZhaWxzIChiZWNhdXNlIHRoZSBoZWxwZXIgY2FuJ3QgYmUKCSAgc3Bhd25lZCksIG1ha2Ugc3VyZSB0byBsb2FkIHRoZSBwbHVnaW4gdGhhdCBmYWlsZWQgaW4tcHJvY2Vzcywgc28KCSAgdGhhdCBhbGwgcGx1Z2lucyBkbyBnZXQgbG9hZGVkLgoKMjAwOS0xMC0wOCAxMDoyNjoyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBjaGVjazogRml4IHRlc3QgcnVuIGluIHRlc3RzL2V4YW1wbGVzL21hbnVhbAoJICBBZGQgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudCBoZXJlIHRvbwoJICBzbyB0aGF0IGl0IGRvZXNuJ3QgZmFpbCB3aGVuIG5vIGluc3RhbGxlZCBzY2FubmVyIGlzIGF2YWlsYWJsZS4KCjIwMDktMTAtMDggMDk6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogYWRkIGJhY2sgZml4IHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiByZXZlcnRlZAoKMjAwOS0xMC0wOCAxMDo0Nzo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogbW9yZSBxdWV1ZSBvcHRpbWl6YXRpb25zCgkgIFNwbGl0IGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSgpIGludG8gdmFyaWFudCBmb3IgYnVmZmVyIGFuZCBldmVudCB0byBnZXQgcmlkIG9mCgkgIHRoZSBpZigpIGFuZCBtYWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUgKGNvbnN0YW50IGJvb2xlYW4gcGFyYW1ldGVycyBhcmUgbmV2ZXIKCSAgbmljZSkuIFJlbW92ZXMgdGhlIGlmIChpdGVtKSBjaGVja3MgYXMgd2UgZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYmVmb3JlIGFueXdheS4KCSAgQWxzbyBhcHBseSB0aGUgc2FtZSBpZGVhIG9mIHJldXNpbmcgdGhlIHByZXZpb3VzIGtub3dsZWRnZSBpbgoJICBnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUgdG8gcmVtb3ZlIG1vcmUgdHlwZSBjaGVja3MuCgoyMDA5LTEwLTA4IDEwOjUxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3BsaXQgZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3CgkgIFNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyBpbnRvIGJ1ZmZlciBhbmQgZXZlbnQgdmFyaWFudCB0byBtYWtlIHNhdmUgYW4gaWYKCSAgYW5kIG1ha2UgY29kZSBtb3JlIHJlYWRhYmxlLgoKMjAwOS0xMC0wOCAwODo1NTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwbHVnaW5zL2dzdGZpbGVzcmM6IE1ha2UgYSBmYXN0LXBhdGggZm9yIGxlbmd0aCA9PSAwIGJ1ZmZlciBjcmVhdGlvbi4KCSAgSWYgdGhlIHJlcXVlc3RlZCBsZW5ndGggaXMgMCwgd2UgZG9uJ3QgbmVlZCB0byByZWFkIGFueXRoaW5nIGZyb20gdGhlIGZpbGUuCgoyMDA5LTEwLTA4IDA4OjU1OjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGdzdC9jaGVjay9jb25zaXN0ZW5jeWNoZWNrZXI6IENoZWNrIHR5cGUgb2YgbWluaW9iamVjdCBpbiBwcm9iZQoKMjAwOS0xMC0wOCAwODo1Mzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0L2Jhc2UvYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSBjb2RlIHdhcyBwcmV2aW91c2x5OgoJICAqIGNoZWNraW5nIGlmIHJldCB3YXMgIT0gT0sKCSAgKiAuLiBidXQgaWYgaXQgd2FzIEZMT1dfU1RFUCwgc3dpdGggaXQgdG8gT0sKCSAgKiAuLiBhbmQgdGhlbiBub3QgdXNpbmcgcmV0CgkgIEluc3RlYWQgd2UganVzdCBtYWtlIGl0IG1vcmUgY29tcGFjdCBieSBjaGVja2luZyBpZiBpdCdzIE9LIG9yIFNURVAuCgoyMDA5LTEwLTA4IDA4OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIG9iamVjdCBpcyBubyBsb25nZXIgdXNlZCBhZnRlciB0aGF0IGxpbmUKCjIwMDktMTAtMDggMDg6NTI6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZ3N0aW5kZXg6IE1ha2Ugc3VyZSB3cml0ZXIgaXMgbm9uLU5VTEwuCgkgIEZpeGVzIHRoZSBOVUxMIGRlcmVmZXJlbmNlIGEgZmV3IGxpbmVzIGxvd2VyICh3aGVyZSBpdCBnZXRzIHRoZSBvYmplY3QgdHlwZSkuCgoyMDA5LTA5LTI5IDA4OjEzOjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogQ2xlYW4gdXAgZ3N0YnVmZmVyc3RyZXNzLgoKMjAwOS0xMC0wOCAwMjo0MjoxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBiZW5jaG1hcmtzOiBGaXggdGhlIGNvbXBsZXhpdHkgYW5kIG1hc3MtZWxlbWVudHMgYmVuY2htYXJrcwoKMjAwOS0xMC0wOCAwMjoyMDo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hlY2tzOiBGaXggc3RyaW5nIGxlYWtzIGluIHRoZSBuZXcgY2hpbGRwcm94eSB0ZXN0CgoyMDA5LTEwLTA4IDAyOjAzOjA4ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBJZ25vcmUgYW4gZW1wdHkgZGVwZW5kZW5jeSBsaXN0LgoJICBJZiBhIHBsdWdpbiByZWdpc3RlcnMgYW4gZW1wdHkgZGVwZW5kZW5jeSBzZXQsIGp1c3QgaWdub3JlIGl0IHJhdGhlcgoJICB0aGFuIHNlcmlhbGlzaW5nIGFuZCBjaGVja2luZyBhbiBlbXB0eSBzZXQuCgoyMDA5LTEwLTA4IDAyOjAxOjU0ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IG9mZi1ieS1vbmUgZXJyb3IuIEltcHJvdmUgZGVidWcuCgkgIEZpeCBhbiBvZmYtYnktb25lIGVycm9yIGluIHRoZSBzaXplIGd1YXJkIGZvciB1bnBhY2tfZWxlbWVudCwgYW5kCgkgIGltcHJvdmUgdmFyaW91cyBkZWJ1ZyBzdGF0ZW1lbnRzIGluIHRoZSBmYWlsdXJlIHBhdGhzLgoJICBBbHNvLCBzd2FwIHNvbWUgZ19uZXcwIHRvIGdfbWFsbG9jMCBmb3IgdGhlIGZ1biBvZiBpdC4KCjIwMDktMTAtMDcgMTY6MDI6NTggLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogVXNlIF93Zm9wZW4gb24gd2luMzIgdG8gb3BlbiBmaWxlcyB3aXRoIG5vbi1hc2NpaSBmaWxlbmFtZXMgY29ycmVjdGx5LgoKMjAwOS0xMC0wNyAyMzozMToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggU2luY2U6IHRhZ3MgaW4gZG9jcyBmb3IgbmV3bHktYWRkZWQgQVBJCgoyMDA5LTEwLTA4IDAwOjA4OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXZlcnQgdHdvIG9mIHRoZSBjaGFuZ2VzCgkgIEl0IG9ubHkgbmVlZGVkIGZvciB0aGUgbm9uIGNvbnN0YW50IHN0cmluZy4KCjIwMDktMTAtMDcgMjM6MzY6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBhICIlcyIgZm9ybWF0IHN0cmluZyB3aGVuIHByaW50aW5nIHRoZSBtZW1vcnkgZHVtcCBsaW5lCgkgIFdlIGtub3cgdGhhdCB0aGUgY29udGVudCBpcyBzYXZlLCBidXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90LgoKMjAwOS0xMC0wNyAyMzoyMzowOCArMDMwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGRvbid0IGZvcm1hdCB0aGUgc3RyaW5nIHR3aWNlCgkgIFdlIHdlcmUgZm9ybWF0dGluZyB0aGUgc3RyaW5nIG9uY2UgYW5kIHRoZW4gcGFzc2luZyB0aGUgc3RyaW5nIGFzIGEgZm9ybWF0CgkgIHN0cmluZyB0byB0aGUgbG9nIGZ1bmN0aW9ucy4KCjIwMDktMTAtMDcgMTE6NDM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIHZhcmlhbnRzIG9mIGdzdF9wYWRfZ2V0X2NhcHMoKSB0aGF0IGRvbid0IGNvcHkgY2Fwcy4gRml4ZXMgIzU5MDk0MQoJICBJbiBtb3N0IHBsYWNlcyBpbiBjb3JlIGFuZCBiYXNlY2xhc3NlcyB3ZSBqdXN0IG5lZWQgdGhlIGNhcHMgdG8gZG8gY2Fwcy0KCSAgaW50ZXJzZWN0aW9ucy4gSW4gdGhhdCBjYXNlIHJlZidlZCBjYXBzIGFyZSBlbm91Z2ggKG5vIG5lZWQgdG8gY29weSkuCgkgIFRoaXMgcGF0Y2ggYWxzbyBzd2l0Y2hlcyB0aGUgY29kZSB0byB1c2UgdGhlIG5ldyBmdW5jdGlvbnMuCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZWQoKQoKMjAwOS0wOS0yNiAyMzo0MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZ2hvc3RwYWQgdGVzdCBmb3Igc2V0dGluZyB0YXJnZXQgYWdhaW4gYWZ0ZXIgcGFkIGlzIGxpbmtlZAoKMjAwOS0wOS0yNiAyMzo0MjoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiByZW1vdmUgZW1wdHkgbGluZXMgZnJvbSB3cm9uZyBpbmRlbnQgcnVuCgoyMDA5LTEwLTA3IDIwOjM4OjQ5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgY2hlY2s6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgYnl0ZXdyaXRlciB0ZXN0CgoyMDA5LTEwLTA3IDE4OjA3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYnl0ZSB3cml0ZXIgYW5kIHJlYWRlciBBUEkgdG8gLmRlZiBmaWxlCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyXyooKQoKMjAwOS0wOC0yMCAxNDoyNDoxOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBzcGVsbGluZyBpbiBjb21tZW50CgoyMDA5LTEwLTA3IDE4OjQwOjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmbHVzaCBxdWV1ZSB1cG9uIGZhdGFsIGZsb3dyZXR1cm4gYW5kIHJlbGVhc2UgdXBzdHJlYW0gdGhyZWFkCgoyMDA5LTA5LTIyIDE1OjQ0OjMxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogZml4IEFQSSBkb2N1bWVudGF0aW9uIHR5cG8KCjIwMDktMTAtMDcgMTg6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYnl0ZXdyaXRlcjogQWRkIHRvIHRoZSBkb2NzCgoyMDA5LTEwLTA1IDExOjI0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuaXQgdGVzdAoKMjAwOS0xMC0wMyAxMzozMDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBhIGdlbmVyaWMgYnl0ZSB3cml0ZXIKCSAgRml4ZXMgYnVnICM1OTA2NjkuCgoyMDA5LTEwLTAzIDE1OjU3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYml0cmVhZGVyL2J5dGVyZWFkZXI6IEFQSTogQWRkIGdzdF8oYml0fGJ5dGUpX3JlYWRlcl9nZXRfc2l6ZSgpCgkgIC4uLiBhbmQgR1NUXyhCWVRFfEJJVClfUkVBREVSKCkgY2FzdHMuCgoyMDA5LTEwLTAzIDEyOjM0OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyLGJpdHJlYWRlcjogUmVtb3ZlIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucwoJICBUaGUgbm9ybWFsIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIHVzZWZ1bCB0byBoYXZlIGZvciBiaW5kaW5ncywgZXNwZWNpYWxseQoJICBydW50aW1lLWNyZWF0ZWQgYmluZGluZ3MgbGlrZSBTZWVkIG9yIG5ldyBHT2JqZWN0LUludHJvc3BlY3Rpb24gYmFzZWQKCSAgUHl0aG9uIGJpbmRpbmdzLgoKMjAwOS0xMC0wNyAxNjozNjozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGNoZWNrOiBBdHRlbXB0IHRvIGZpeCB0eXBlLXB1bm5pbmcgd2FybmluZyBpbiB0aGUgZ3N0aXRlcmF0b3IgdGVzdAoKMjAwOS0xMC0wNyAxNjowMDoxMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IE1ha2Ugc3VyZSB0byBpbml0IHRoZSBkYXRhcHJvdG9jb2wgbGliLgoJICBDYWxsIHRoZSBnc3RfZHBfaW5pdCgpIGZ1bmN0aW9uIHRvIGVuc3VyZSB0aGF0IHRoZSBkZWJ1ZwoJICBjYXRlZ29yeSBpcyBpbml0aWFsaXNlZCwgdG8gYXZvaWQgZ19jcml0aWNhbHMgd2hlbiBydW5uaW5nIHdpdGgKCSAgR1NUX0RFQlVHPTUKCjIwMDktMTAtMDcgMTU6NDc6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBVc2UgR1NUX0RFQlVHIGluc3RlYWQgb2YgZ19tZXNzYWdlIGluIHRoZSBnZHAgdGVzdAoKMjAwOS0xMC0wNyAxNToxNDo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGNoZWNrIGVudmlyb25tZW50CgoyMDA5LTEwLTA3IDE0OjM0OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaW1wcm92ZSBwbHVnaW4gbG9hZGVyIGZhaWx1cmUgbWVzc2FnZSBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzCgkgIEV2ZXJ5b25lIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgZ2l0IHNldHVwIGlzIGdvaW5nIHRvIHdvbmRlciBhYm91dAoJICB0aGlzIGZhaWx1cmUgbmV4dCB0aW1lIHRoZXkgdXBkYXRlLCBzbyBsZXQncyBtZW50aW9uIHRoZSBzb2x1dGlvbgoJICBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDcgMTM6NTk6NDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBCZWVmIHVwIHRoZSB0ZXN0IGZvciBfX3VpbnQxMjhfdCBvbiBHQ0MKCSAgR0NDIDMuNC4zIG9uIHRoZSBTUEFSQyBidWlsZGJvdCBjcmFzaGVzIHdoZW4gYWN0dWFsbHkKCSAgdXNpbmcgX191aW50MTI4X3QuIEJlZWYgdXAgdGhlIGNvbmZpZ3VyZSB0ZXN0IHRvIGRldGVjdCB0aGF0IHRoZQoJICB0eXBlIGlzIGFjdHVhbGx5IHVzYWJsZS4KCjIwMDktMTAtMDcgMDk6NTY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgkgIEFuZCBhZGQgQVBJOiBtYXJrZXIgaW4gY29tbWl0IG1lc3NhZ2UgdGhhdCB3YXMgb21pdHRlZCBpbiB0aGUgb3JpZ2luYWwKCSAgY29tbWl0OgoJICBBUEk6IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkKCjIwMDktMTAtMDcgMDk6NTU6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBiZW5jaG1hcmtzOiBhZGQgYnVmZmVyc3RyZXNzIGJpbmFyeSB0byAuZ2l0aWdub3JlCgoyMDA5LTEwLTA3IDA5OjQyOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4xOAoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgYXMgcGVyIHRoZSByZWxlYXNlIHBsYW5uaW5nIGRvY3MuCgoyMDA5LTEwLTA3IDEwOjM3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMC0wNyAxMToxMjo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZmxpcCB0aGUgR19VTkxJS0VMWQoJICBJdHMgbGlrZWx5IHRoYXQgd2UgaGF2ZSBjYXBzIGFuZCB1bmxpa2VseSAoZXJyb3IpIG90aGVyd2lzZS4KCjIwMDktMTAtMDcgMTE6MDQ6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcXVldWUgYXBpIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMDktMjggMTU6MjU6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBBdm9pZCBpbnN0YW5jZSBjaGVjawoJICBXZSBrbm93IGVhcmxpZXIgb24gaW4gdGhlIGNvZGUgd2hldGhlciB3ZSdyZSBoYW5kbGluZyBhbiBldmVudCBvciBhIGJ1ZmZlciwKCSAganVzdCBwYXNzIHRoYXQgaW5mb3JtYXRpb24gdGhyb3VnaC4KCSAgVGhpcyBjb21taXQgYW5kIHRoZSBwcmV2aW91cyBjb21taXQgcmVkdWNlIGluc3RydWN0aW9uIGZldGNoOgoJICAqIHdoZW4gcHVzaGluZyBidWZmZXIgKF9jaGFpbikgYnkgMTAlCgkgICogd2hlbiBwb3BwaW5nIGJ1ZmZlciAoX2xvb3ApIGJ5IDMlCgoyMDA5LTA5LTI4IDE1OjI0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQ2FjaGUgaW5wdXQvb3V0cHV0IHRpbWUsIGF2b2lkIGV4cGVuc2l2ZSBjYWxscy4KCSAgKiBDYWNoZSB0aGUgaW5wdXQvb3V0cHV0IHRpbWUKCSAgKiBPbmx5IHJlY2FsY3VsYXRlIGl0IHdoZW4gbmVlZGVkLgoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZQoKMjAwOS0xMC0wNyAxMDowMDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBidWlsZDogc3ByaW50Ziwgc3NjYW5mIG5lZWQgc3RkaW8uaAoKMjAwOS0xMC0wNSAxMTo0NjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBpbml0aWFsaXplIGd2YWx1ZSBpbiBfdmFsaXN0IGZ1bmN0aW9uLiBGaXhlcyAjNTk1NjAyCgkgIFJlZmxvdyB0aGUgY29kZSB0byBtb3ZlIGVycm9yIGhhbmRsaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9ucy4gSW5pdGlhbGl6ZQoJICBndmFsdWUgbGlrZSB3ZSBkbyBpbiB0aGUgc2V0dGVyLiBBZGQgYSB1bml0LXRlc3QgbW9kdWxlIHdpdGggdHdvIHNpbXBsZSB0ZXN0cwoJICB0aGUgY2F0Y2hlIHRoaXMgYnVnLgoKMjAwOS0xMC0wMSAxNzozOTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZG9uJ3QgaW50ZXJzZWN0IHdpdGggYW55IGluIHByb3h5X3BhZF9nZXRfY2FwcwoJICBXZSBpbml0aWFsaXplIHRoZSBjYXBzIHdpdGggYW55IGFuZCBpZiBhIHBhZCBoYXMgTlVMTCBjYXBzLCBqdXN0IHNraXAgaXQgaW5zdGVhZAoJICBvZiBpbnRlcnNlY3Rpbmcgd2l0aCBhbnkuIEFsc28gYWRkIGJyYW5jaCBwcmVkaWN0aW9uIGhlcmUuCgoyMDA5LTA5LTMwIDE2OjQxOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogcmVuYW1lIGFnZ3JlZ2F0b3IgdG8gYWRkZXIgaW4gdGhlIGRvY3MuCgoyMDA5LTA5LTMwIDA5OjQ3OjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogZml4IGNvcHkgYW5kIHBhc3QgbWlzdGFrZSBmb3IgLXEgb3B0aW9uCgoyMDA5LTEwLTA3IDA5OjU0OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBFeHRlbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGFsbG93IHVzaW5nIGFuIHVuaW5zdGFsbGVkIGdzdHJlYW1lci1zaGFycAoKMjAwOS0wOS0yOCAxNToxOTo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBuZXcgR3N0RGF0YVF1ZXVlIGNvbnN0cnVjdG9yCgoyMDA5LTA5LTI4IDE1OjE4OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBuZXcgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgY2FsbGJhY2tzLgoJICBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCBnb2luZyB0aHJvdWdoIGdsaWIncyBzaWduYWxsaW5nIHN5c3RlbQoKMjAwOS0wOS0yOCAxMzoxOToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBjYWNoZWQgdmFsdWUgaW5zdGVhZCBvZiBleHBlbnNpdmUgb2JqZWN0IGdldC4KCSAgVGhlIHRhc2sgd2lsbCBhbHdheXMgZXhpc3QgYXMgbG9uZyBhcyBpdHMgb3duZXIgKGkuZS4gdGhlIHBhZCkgYW5kIHRoYXQKCSAgb3duZXIncyBvd25lciAoaS5lLiBtdWx0aXF1ZXVlKSBleGlzdC4KCSAgUmVkdWNlcyB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9uIGZldGNoZXMgYnkgMzYlLgoKMjAwOS0wOS0yOCAxNTo0MTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9xdWV1ZTogVXNlIHByZXZpb3VzIGtub3dsZWRnZSBvZiBkYXRhIHR5cGUgdG8gYXZvaWQgdHlwZWNoZWNrLgoJICBXZSBrbm93IHdoZXRoZXIgd2UgaGF2ZSBhIGJ1ZmZlciBvciBhbiBldmVudCwgdXNlIHRoYXQgaW5zdGVhZCBvZiBnb2luZwoJICB0cm91Z2ggdGhlIGV4cGVuc2l2ZSBHTGliIHR5cGVjaGVjay4KCSAgVGhlIG92ZXJhbGwgaW5zdHJ1Y3Rpb24gZmV0Y2ggcmVkdWN0aW9uIGludHJvZHVjZWQgYnkgdGhpcyBjb21taXQgYW5kIHRoZQoJICAyIHByZXZpb3VzIGNvbW1pdHM6CgkgICogcmVjZWl2aW5nIGEgYnVmZmVyIChfY2hhaW4pIGJ5IDIwJQoJICAqIHBvcHBpbmcgYSBidWZmZXIgKF9sb29wKSBieSAxNCUKCSAgTnVtYmVycyBhY3F1aXJlZCB0aHJvdWdoIGNhbGxncmluZCBwYXNzaW5nIDEwMDAwMCBidWZmZXJzIHRocm91Z2ggcXVldWUuCgoyMDA5LTA5LTI4IDE1OjIwOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHBsdWdpbnMvcXVldWU6IEF2b2lkIHVzZWxlc3Mgc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBjYWxjdWxhdGlvbnMuCgkgICogQ2FjaGUgc3JjIGFuZCBzaW5rIHRpbWUKCSAgKiBVc2UgYSBib29sZWFuIHRvIGtub3cgd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkCgkgIEF2b2lkcyA1MCUgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkKCjIwMDktMDktMjggMTM6MjE6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IEp1c3QgY2FzdCB0byB0aGUgb2JqZWN0IHBhcmVudCBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZy4KCjIwMDktMDktMjMgMTY6MTk6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBiZW5jaG1hcms6IE5ldyBiZW5jaG1hcmsgZm9yIHRlc3RpbmcgY29udGVudGlvbiB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMKCjIwMDktMDktMjMgMTY6MTc6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IERvbid0IGFjdGl2YXRlIHRyYWNpbmcgaWYgbm90IHJlcXVlc3RlZC4KCjIwMDktMTAtMDcgMDg6Mzc6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgbW9yZSB2YXJpYWJsZXMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMDktMjYgMTE6NDM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEltcHJvdmUgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbgoJICBQYWRzIGhhdmUgdGhlaXIgR3N0U2luZ2xlUXVldWUgc3RvcmVkIGFzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgkgIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2Ygc2luZ2xlIHF1ZXVlcwoJICBldmVyeSB0aW1lLiBBbHNvIGV2ZXJ5IHBhZCBvbmx5IGhhcyBhIHNpbmdsZSBpbnRlcm5hbCBsaW5rIHNvCgkgIHVzZSBhIHNpbmdsZSBpdGVyYXRvciBpbnN0ZWFkIG9mIGEgY29tcGxleCBjdXN0b20gaXRlcmF0b3IuCgkgIFNldCB0aGUgZWxlbWVudCBwcml2YXRlIGRhdGEgb2YgdGhlIHBhZCB0byBOVUxMIHdoZW4gZnJlZWluZyB0aGUKCSAgc2luZ2xlIHF1ZXVlLgoKMjAwOS0wOS0xNyAxNjozMDo0MyAtMDQwMCAgSm9oYW4gQmlsaWVuIDxqb2JpQGxpdGwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBhbm5vdGF0aW9ucyBmb3IgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufQoJICBGaXhlcyBidWcgIzU5NTUxMS4KCjIwMDktMTAtMDUgMDA6MTE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb24gb2YgZ3N0X2J5dGVfcmVhZGVyX3NraXAKCjIwMDktMTAtMDcgMDA6NDc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9uIGZpbGVzIGZvciBuZXcgYW5kIGNoYW5nZWQgc3RyaW5ncwoKMjAwOS0wOS0yOCAyMjo0Mzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogdGFrZSBsb2NrcyBhcm91bmQgc21hbGxlciBzZWN0aW9uCgkgIFdlIGRvbid0IG5lZWQgdGhlIGhvbGQgdGhlIHByb3h5IG11dGV4IGxvY2tlZCBmb3IgZ2V0dGluZyB0aGUgaW50ZXJuYWwgcGFkIGFuZAoJICBmb3IgbGlua2luZyB0aGUgbmV3IHRhcmdldCBwYWQgd2hlbiB3ZSByZXRhcmdldC4gU28gdGFrZSB0aGUgbG9jayBhIGxpdHRsZSBsYXRlcgoJICBhbmQgcmVsZWFzZSBpdCBlYXJsaWVyLgoJICBGaXhlcyAjNTk2MzY2CgoyMDA5LTEwLTA0IDE5OjUxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogaW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIG9zeAoJICBJbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgYW5kIG1ha2UgdGhlIGJ1aWxkIGJvdCBoYXBweQoJICAodGhlIGNvbXBpbGVyIG1vc3QgbGlrZWx5IGNvbXBsYWlucyBhYm91dCB0aGlzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93CgkgIGhlcmUgdGhhdCBmYWlsX3VubGVzcyB3aWxsIGFib3J0L2V4aXQgaW4gdGhlIHBhdGggd2hlcmUgaXQgZmFpbHMpLgoKMjAwOS0xMC0wMyAyMTowODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdDogcmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgY2FzdCB3aGVuIHVzaW5nIGdfc2lnbmFsXyooKQoKMjAwOS0xMC0wMyAyMDo0OTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRhdGFxdWV1ZSwgZWxlbWVudHM6IGF2b2lkIHVubmVjZXNzYXJ5IHJ1bnRpbWUgdHlwZSBjaGVja3MKCjIwMDktMTAtMDUgMTY6NDE6NTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFVwZGF0ZSB0aGUgcmVsZWFzZSBzY3JpcHQKCSAgUmVtb3ZlIG9sZCBjcnVmdCBmcm9tIHRoZSByZWxlYXNlIHNjcmlwdCwgYW5kIGNoYW5nZSBzb21lIENWUwoJICByZWZlcmVuY2VzIHRvIGVxdWl2YWxlbnQgZ2l0IGNvbW1hbmRzCgoyMDA5LTEwLTA0IDE0OjMwOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQWRkIGEgbWFnaWMgbnVtYmVyIGFuZCBtYXhpbXVtIHNpemUgbGltaXQuCgkgIEd1YXJkIGFnYWluc3QgYSBob3N0aWxlIGNoaWxkIHByb2Nlc3MgdGhhdCBzZW5kcyBib2d1cyBkYXRhCgkgIGR1ZSB0byBtZW1vcnkgY29ycnVwdGlvbiBieSBhZGRpbmcgYSBtYWdpYyBudW1iZXIgdG8gZWFjaCBwYWNrZXQsCgkgIGFuZCBsaW1pdCB0aGUgbWF4aW11bSBzaXplIG9mIGFueSBtZXNzYWdlIHRvIDMyTUIKCjIwMDktMDItMDkgMTM6MzM6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcmVnaXN0cnk6IEFsc28gY2hlY2sgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVuayB2ZXJzaW9uIG9mIHRoZSBjaGlsZC4KCSAgV2hlbiB0cnlpbmcgdG8gZmluZCBhIGZ1bmN0aW9uIHBsdWdpbi1zY2FubmVyLCBpbmNsdWRlIGEgY2hlY2sgb24gdGhlCgkgIHZlcnNpb24gb2YgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVua3MgaXQgc2VuZHMsIHRvIG1ha2Ugc3VyZSBpdCdzCgkgIHdoYXQgd2UgdW5kZXJzdGFuZC4KCjIwMDktMDItMDYgMDk6NDk6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIHJlZ2lzdHJ5OiBTdXBwb3J0IGluc3RhbGxlZC91bmluc3RhbGxlZCBwbHVnaW4tc2Nhbm5lciBoZWxwZXIKCSAgQWRkIGEgc2ltcGxlIHZlcnNpb24gY2hlY2sgd2hlbiBzdGFydGluZyB0aGUgcGx1Z2luLXNjYW5uZXIgc28gd2UgY2FuCgkgIHZlcmlmeSB3ZSdyZSB0YWxraW5nIHRvIG9uZSB0aGF0IHRhbGtzIHRoZSBzYW1lIGxhbmd1YWdlLgoJICBGaXJzdCB0cnkgYSBwbHVnaW4tc2Nhbm5lciBpbiB0aGUgaW5zdGFsbGVkIHBhdGgsIHRoZW4gdHJ5IG9uZSB2aWEgdGhlCgkgIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIGlmIHRoYXQgZG9lc24ndCB3b3JrLgoJICBVcGRhdGUgdGhlIHVuaW5zdGFsbGVkIHNjcmlwdC4KCSAgSW5zdGFsbCB0aGUgcGx1Z2luLXNjYW5uZXIgdG8gdGhlIGxpYmV4ZWMgZGlyCgoyMDA5LTAxLTMwIDE0OjE4OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBSZW1vdmUgY2hlY2tpbmcgZm9yIGFuZCBtZW50aW9ucyBvZiBmb3JrIHdoZXJlIHBvc3NpYmxlLgoJICBXZSBubyBsb25nZXIgdXNlIGZvcmsoKSBkaXJlY3RseSwgaW5zdGVhZCB1c2luZyBnbGliJ3Mgc3Bhd24KCSAgZnVuY3Rpb25hbGl0eSwgc28gZG9uJ3QgY2hlY2sgZm9yIGl0LCBhbmQgZG9uJ3QgdXNlIGl0IGluIHRoZQoJICBkb2N1bWVudGF0aW9uIG5vdGVzLgoKMjAwOS0wMS0zMCAxMzowNjoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJlLWVuYWJsZSBhbmQgZml4IGRpc2FibGVkIGJpdCBvZiB0aGUgcmVnaXN0cnkgdGVzdAoKMjAwOS0wMS0zMCAxMzowNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE9ubHkgbG9hZCB0aGUgcmVnaXN0cnkgY2FjaGUgb25jZSBwZXIgcHJvY2Vzcy4KCSAgV2hlbiB1cGRhdGluZyB0aGUgcmVnaXN0cnksIHdlIGRvbid0IG5lZWQgdG8gcmUtcmVhZCB0aGUgcmVnaXN0cnkgY2FjaGUKCSAgYW5kIHdhc3RlIHRpbWUgcmVwbGFjaW5nIGFsbCBvdXIgZXhpc3RpbmcsIGhvcGVmdWxseSBpZGVudGljYWwsIHBsdWdpbnMKCSAgYW5kIGZlYXR1cmVzIHRoYXQgd2UncmUgYWJvdXQgdG8gcmUtc2NhbiBhbnl3YXkuCgoyMDA5LTAxLTI5IDEzOjIyOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIHRoZSByZWdpc3RyeS4KCSAgQWRkIHRoZSBmdWxsIHNldCBvZiBkZWJ1ZyBhYm91dCB3aHkgaXQncyBkZWNpZGVkIHRoYXQgYSBnaXZlbiBwbHVnaW4gaXMKCSAgc3RhbGUgb3Igbm90LCBhbmQgaW5jbHVkZSB0aGUgcGx1Z2luIG5hbWUgd2hlbiBmaW5hbGl6aW5nIGl0LgoKMjAwOS0wMS0yMyAyMToxNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBBZGQgcmVzdGFydGluZyBvZiB0aGUgcGx1Z2luIGxvYWRlciBhbmQgYmxhY2tsaXN0aW5nIG9mIGJyb2tlbiBmaWxlcwoKMjAwOS0wMS0yMyAxNTo0NzowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBQbHVnaW4gbG9hZGVyIHBoYXNlIDIKCSAgcGhhc2UgMiAtIG1ha2UgdGhlIHBsdWdpbiBsb2FkZXIgcmVjZWl2ZSB0aGUgbGlzdCBvZiBwbHVnaW5zIHRvIGxvYWQgYW5kCgkgIHNlbmQgYmFjayB0aGUgcmVzdWx0cyBhc3luY2hyb25vdXNseSwgc28gd2UgZG9uJ3QgY29udGV4dCBzd2l0Y2ggYmFjawoJICBhbmQgZm9ydGggc28gbXVjaC4KCjIwMDktMDMtMTQgMjM6MDc6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvcGx1Z2luLXNjYW5uZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQWRkIHJlZ2lzdHJ5IGhlbHBlciBwaGFzZSAxCgkgIFBoYXNlIDEgb2YgYWRkaW5nIHRoZSByZWdpc3RyeSBzY2FuIGhlbHBlcgoKMjAwOS0wOS0xNCAyMzozMToxMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFJlYXJyYW5nZSBzb21lIHRoaW5ncy4KCSAgUHJlcGFyZSB0byBsYW5kIHRoZSBleHRlcm5hbCBwbHVnaW4gaGVscGVyIHByb2Nlc3MKCjIwMDktMTAtMDYgMTk6NDE6MzggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI1LjEKCj09PSByZWxlYXNlIDAuMTAuMjUgPT09CgoyMDA5LTEwLTA1IDEyOjU3OjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNQoKMjAwOS0xMC0wNSAxMjo0MTo0MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTEwLTAxIDE2OjI0OjUyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjQgcHJlLXJlbGVhc2UKCjIwMDktMDktMzAgMTU6NTI6MzMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJnc3RjaGVjazogRG9uJ3QgdXNlIGNoYXJhY3RlciBjbGFzc2VzIGluIHNlZCBleHByZXNzaW9ucwoJICBBcHBhcmVudGx5IHRoZSBzZWQgdGhhdCBzaGlwcyBvbiBTb2xhcmlzIDEwIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIKCSAgY2xhc3NlcyBsaWtlIFs6YWxudW06XSwgc28gZG9uJ3QgdXNlIHRoZW0uIFdlIGRvbid0IG5lZWQgdGhlbSBmb3IgdGhlCgkgIHN5bWJvbCBuYW1lcyB0aGF0IGFyZSBiZWluZyBleHRyYWN0ZWQgYW55d2F5LgoJICBBbHNvLCB1c2UgJChTRUQpIGluc3RlYWQgb2YgJ3NlZCcKCSAgRml4ZXM6ICM1OTY4NzcKCjIwMDktMDktMTcgMDE6MjA6MDMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjMgcHJlLXJlbGVhc2UKCjIwMDktMDktMTUgMDk6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggR01QIHNjYWxpbmcgdW5pdCB0ZXN0CgkgIEdNUCBvbmx5IHVzZXMgInVuc2lnbmVkIGxvbmcgaW50Iiwgd2hpY2ggaXMgMzIgYml0CgkgIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzIGFuZCBjYW4ndCBob2xkIGEgZ3VpbnQ2NC4KCSAgVGhpcyByZXN1bHRlZCBpbiBmYWxzZSB1bml0IHRlc3QgZmFpbHVyZXMgb24gMzIgYml0IGFyY2hpdGVjdHVyZXMuCgkgIEZpeGVzIGJ1ZyAjNTk1MTMzLgoKMjAwOS0wOS0xNCAxMjo0NzoyNiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMTQgMTQ6MDc6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvY3M6IEdTVF9NRVNTQUdFX1NUUkVBTV9TVEFUVVMgaXMgaW1wbGVtZW50ZWQgbm93YWRheXMuCgkgIERvY3Mgd2VyZSBzdGlsbCBtZW50aW9uIGl0IGFzICJub3QgeWV0IGltcGxlbWVudGVkIi4KCjIwMDktMDktMTIgMTM6NTI6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogQnVpbGQgcGtnY29uZmlnIGJlZm9yZSBhbGwgbGlicmFyaWVzIGFuZCBzZXQgUEtHX0NPTkZJR19QQVRICgkgIFRoaXMgd2F5IGctaXItc2Nhbm5lciBjYW4gZmluZCB0aGUgZ3N0cmVhbWVyLTAuMTAgcGtnLWNvbmZpZyBmaWxlLgoKMjAwOS0wOS0xMiAxMzo1MToyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGludHJvc3BlY3Rpb246IERvbid0IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBHc3RTdHJ1Y3R1cmUgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAwOS0wOS0xMSAyMzoyMTozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4yIHByZS1yZWxlYXNlCgoyMDA5LTA5LTExIDIyOjQyOjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb24ndCB1c2UgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA5LTA5LTExIDIyOjIyOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBEaXNhYmxlIHJlc3RyaWN0aW9uIHRoYXQgc3RydWN0dXJlIGNoYW5nZXMgYXJlIHNpbmsgcGFkcwoJICBUaGUgc3RydWN0dXJlX2NoYW5nZSBtZXNzYWdlIHdhcyBvcmlnaW5hbGx5IGVtaXR0ZWQgb24gc291cmNlIHBhZHMgYW5kCgkgIHRoZW4gcmVjZW50bHkgY2hhbmdlZCB0byBiZSBzaW5rIHBhZHMuIFRoaXMgY2F1c2VzIGEgZmFpbHVyZSBpbiB0aGUKCSAgZ3N0LXB5dGhvbiB0ZXN0c3VpdGUuIERpc2FibGUgdGhlIHJlc3RyaWN0aW9uIHNvIHRoYXQgdGhlIHB1Ymxpc2hlZAoJICBiZWhhdmlvdXIgaXMgc3RpbGwgYWxsb3dlZC4KCjIwMDktMDktMTEgMTg6MjQ6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgY2hlY2s6IEZpeCB2ZXJzaW9uIGNoZWNrIHRlc3RzCgkgIEFjY29tb2RhdGUgdGhlIHNsaWdodGx5IGNoYW5nZWQgc2VtYW50aWNzIGluIHRoZSBwbHVnaW4gdmVyc2lvbiBjaGVjawoJICB3aGVyZSBhIENWUyB2ZXJzaW9uIGp1c3QgYmVmb3JlIGEgcmVsZWFzZSBpcyBhY2NlcHRhYmxlLgoKMjAwOS0wOS0xMSAyMToyMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCBjcmFzaCBpbiBjbGVhbmluZyB1cCBvbiBlcnJvci4KCSAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVycy4KCjIwMDktMDctMjAgMTI6NTQ6MDAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZGVidWc6IHVzZSBkdW1teSBjb2RlIHRvIGF2b2lkIHNwdXJpb3VzIHNlbWljb2xvbnMKCSAgRml4ZXMgYnVnICM1ODkxNzMuCgoyMDA5LTA5LTEwIDExOjUzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTEwIDExOjQxOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogaW1wcm92ZSB2ZXJzaW9uIGNoZWNrCgkgIEFsc28gcGFyc2UgdGhlIG5hbm8gb2YgdGhlIHZlcnNpb24gYW5kIGFzc3VtZSB0aGF0IFguWS5aLTEuMSA+PSBYLlkuWgoJICBXaXRoIHRoaXMgY2hhbmdlIHdlIGNhbiBhbHNvIGNoZWNrIGRldmVsb3BtZW50IHZlcnNpb25zIGFnYWluc3QgdGhlIHZlcnNpb24gb2YKCSAgdGhlIHVwY29tbWluZyByZWxlYXNlLgoKMjAwOS0wOS0xMCAxMDowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBiZSBhIEdzdFN0cnVjdHVyZQoJICBTZWUgYnVnICM1MTg5MzQuCgoyMDA5LTA5LTA5IDE2OjI5OjEwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB0eXBvIGluIGlubGluZSBkb2N1bWVudGF0aW9uCgoyMDA5LTA5LTA5IDE3OjU3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wOS0wOSAxODozODoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEFkZCBhIGNvbW1lbnQgdG8gdGhlIHNjYWxpbmcgZnVuY3Rpb25zIHRvIGV4cGxhaW4gd2h5IHRoZSByb3VuZGluZyBpcyBjb3JyZWN0CgoyMDA5LTA5LTA5IDE2OjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCSAgQ2FwcyBjYW4gYmUgTlVMTCBzbyBkb24ndCBjYWxsIHVucmVmIG9uIGl0IHVuY29uZGl0aW9uYWxseSwgaW5zdGVhZCB1c2UgYW4KCSAgZXhpc3RpbmcgZXhpdCBwYWQgZm9yIHRoZSBmdW5jdGlvbi4KCjIwMDktMDktMDkgMTQ6NTM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBnY2MncyBfX3VpbnQxMjhfdCBmb3IgNjRiaXQgdW5zaWduZWQgaW50ZWdlciBzY2FsaW5nCgkgIFRoaXMgaXMgYXZhaWxhYmxlIGluIG5ld2VyIGdjYyByZWxlYXNlcyBhbmQgaXQgc2hvdWxkIG9ubHkgZXhpc3QKCSAgb24gcGxhdGZvcm1zIHRoYXQgcHJvdmlkZSBzb21lIG5hdGl2ZSAxMjhiaXQgaW50ZWdlciBhcml0aG1ldGljCgkgIGluc3RydWN0aW9ucy4KCSAgVGhlIHg4Ni02NCBhc3NlbWJseSBmb3IgdGhpcyBpcyBzdGlsbCBrZXB0IGZvciBub24tZ2NjIGNvbXBpbGVycwoJICB0aGF0IGRvbid0IHByb3ZpZGUgX191aW50MTI4X3QgbWFnaWMuCgoyMDA5LTA5LTA5IDA5OjM4OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSAgZGVzaWduOiBhZGQgaWRlYXMgZm9yIGJ1ZmZlciBtYW5hZ2VtZW50CgkgIFJpZ2h0IG5vdyB3ZSdyZSBvcGVyYXRpbmcgc3Vib3B0aW1hbCB3aGVuIHRhbGtpbmcgdG8ga2VybmVsIGludGVyZmFjZXMuIFdyaXRlCgkgIGRvZXNuIHNvbWUgaWRlYXMuCgoyMDA5LTA5LTA3IDE4OjI3OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wMyAxOTowNjoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wNyAxNjoxNDo1NyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogRml4IHR5cG8gaW4gZ3N0X3ZhbHVlX3VuaW9uKCkKCjIwMDktMDktMDYgMTk6NDM6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJpdHJlYWRlciwgYnl0ZXJlYWRlcjogYWRkIHNvbWUgRklYTUUgMC4xMSBjb21tZW50cyBhbmQgZml4IGluZGVudGluZwoKMjAwOS0wOS0wNCAxNzoxNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCB1bmNoZWNrZWQgYW5kIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgZmxvYXQgZ2V0dGVycy9wZWVrZXJzCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9mbG9hdCpfdW5jaGVja2VkKCkKCjIwMDktMDktMDQgMTY6NTI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBtb3N0IGNvbW1vbiBnZXR0ZXJzIGFuZCBzZXR0ZXJzCgoyMDA5LTA5LTAyIDExOjIwOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmVkIF91bmNoZWNrZWQoKSB2YXJpYW50cyBmb3Igc29tZSBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrXypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0XypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfe3BlZWssZ2V0LGR1cH1fZGF0YV91bmNoZWNrZWQoKQoKMjAwOS0wOS0wNSAxMjozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IFN0cmlwIEdzdCBwcmVmaXggZnJvbSBhbGwgdHlwZXMvZnVuY3Rpb25zCgoyMDA5LTA5LTA1IDEyOjIyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGZvciBvdXQtb2YtdHJlZSBidWlsZHMKCjIwMDktMDktMDUgMTI6MDQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMDUgMTE6NTE6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggYnVpbGQgaWYgZ2lyLXJlcG9zaXRvcnkgaXMgbm90IGluc3RhbGxlZAoKMjAwOS0wOS0wNSAwOTozNjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIG5ldDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjM0OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgZGF0YXByb3RvY29sOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgQmVjYXVzZSBvZiBhIGJ1ZyBpbiBnb2JqZWN0LWludHJvc3BlY3Rpb24gdGhpcyBpcyBkaXNhYmxlZCBmb3Igbm93LgoKMjAwOS0wOS0wNSAwOToyODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6Mjc6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6MjM6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGdzdGJhc2U6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNCAyMDo1Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTUwNjE2LgoKMjAwOS0wOS0wNSAxMDoxOToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk0Zjk1ZTMgdG8gMTlmYTRmMwoKMjAwOS0wOS0wNCAxOTozNzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IGRvY3MgZm9yIGdzdF9ieXRlX3JlYWRlcl97Z2V0fHBlZWt9X2Zsb2F0KigpCgoyMDA5LTA5LTA0IDExOjM1OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTA0IDA5OjUxOjI2ICswMjAwICBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6QHlhaG9vLmZyPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgdW5yZWYgRU9TIG1lc3NhZ2UgYWZ0ZXIgaXQgaXMgbm90IHVzZWQgYW55bW9yZQoJICBGaXhlcyBidWcgIzU5NDEwNy4KCjIwMDktMDktMDIgMTg6NTQ6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgc3RhdGVzOiBwb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugb24gc2lua3BhZHMKCSAgUG9zdCB0aGUgc3RydWN0dXJlIGNoYW5nZSBtZXNzYWdlcyBvbiB0aGUgc2lua3BhZHMgb2YgdGhlIGVsZW1lbnRzLiBUaGlzIGFsbG93cwoJICB1cyB0byBjYXRjaCB1bmxpbmtlZCBwYWRzIGVhcmxpZXIgd2l0aG91dCBlbmRpbmcgdXAgd2l0aCBpbmNvbnNpc3RlbnQgZWxlbWVudAoJICBkZWdyZWVzLgoKMjAwOS0wOS0wMiAxODoxMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhdm9pZCBmYWxzZSAnbG9vcCBkZXRlY3RlZCcgd2FybmluZ3MKCSAgV2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGluIHByb2dyZXNzLCB3ZSB3aWxsIG5vdCBiZSB1cGRhdGluZyB0aGUgZGVncmVlIG9mCgkgIHRoZSBwYXJlbnQgZWxlbWVudC4gVGhpcyBjYW4gY2F1c2UgZmFsc2UgbG9vcCBkZXRlY3RlZCB3YXJuaW5ncyBiZWNhdXNlIHRoZQoJICBkZWdyZWUgY291bnRlciBpcyBpbnZhbGlkLiBIYW5kbGUgdGhpcyBjYXNlIGJ5IG1hcmtpbmcgdGhlIGl0ZXJhdG9yIGFzICdkaXJ0eScKCSAgd2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGFuZCBhdm9pZCBlbWl0aW5nIHRoZSB3YXJuaW5nIGluIHRoaXMgY2FzZS4gV2UgaGF2ZQoJICB0byBjb250aW51ZSBvdXIgc3RhdGUgY2hhbmdlIGFzIGdvb2QgYXMgd2UgY2FuLCB3ZSB3aWxsIGV2ZW50dWFsbHkgcmVzeW5jIHdoZW4KCSAgdGhlIHBhZCB1bmxpbmsgY29tcGxldGVkLgoKMjAwOS0wOS0wMSAxNjo0OTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxNjo0OToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAxIDEyOjA3OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgZGlzdDogRG9uJ3QgbGlzdCB0aGUgc3RyZWFtcyBzdWJkaXIgdHdpY2UgaW4gZXhhbXBsZXMgTWFrZWZpbGUKCSAgTGlzdGluZyB0aGUgJ3N0cmVhbXMnIHN1YmRpciB0d2ljZSBpbiBESVNUX1NVQkRJUlMgYnJlYWtzIGRpc3RjaGVjay4KCjIwMDktMDktMDEgMTI6MDU6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBEb24ndCBwcm9wYWdhdGUgYSBOVUxMIGNhY2hlZCBpbmRleCB0byBhZGRlZCBlbGVtZW50cwoJICBXaGVuIGFuIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIGJpbiwgb25seSBzZXQgdGhlIGluZGV4IGlmIHdlIGhhdmUgYQoJICBjYWNoZWQgaW5kZXgsIHJhdGhlciB0aGFuIHNldHRpbmcgYSBOVUxMIGluZGV4IG9uIGVsZW1lbnRzIHRoYXQgbWlnaHQKCSAgaGF2ZSBhIGRlZmF1bHQgaW5kZXggb2JqZWN0IG9mIHRoZWlyIG93bi4KCjIwMDktMDctMTkgMjE6MjM6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IEFkZCBhIG5vdGUgYWJvdXQgcmVnZW5lcmF0aW5nIHRoZSBjaGFuZ2Vsb2cgaW4gdGhlIHJlbGVhc2Ugc2NyaXB0CgoyMDA5LTA5LTAxIDEwOjAzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IHRha2Ugb2JqZWN0IGxvY2sgZm9yIGdfY3JpdGljYWwoKSBhbmQgZmxlc2ggb3V0IHdhcm5pbmcgbWVzc2FnZSBzb21lIG1vcmUKCjIwMDktMDktMDEgMTA6MjE6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDEwOjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogT25seSB2aXNpdCB0aGUgZWxlbWVudCBhIHNpbmdsZSB0aW1lIGluIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDktMDEgMDc6Mjc6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggc2luZ2xlIGl0ZXJhdG9yIGZvciBOVUxMIG9iamVjdHMgYW5kIG5vbi1HVHlwZUluc3RhbmNlIG9iamVjdHMKCSAgRml4ZXMgYnVnICM1OTM3MTkuCgoyMDA5LTA5LTAxIDAwOjAwOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkZWJ1ZzogbW9yZSBkZXRhaWwgaW4gd3Jvbmctc3RhdGUtb24tZGlzcG9zZSBlcnJvci4KCSAgQWxzbyB0ZWxsIGluIHdoaWNoIHN0YXRlIHRoZSBlbGVtZW50IGFjdHVhbHkgaXMgYW5kIGlmIGl0IGlzIGV2ZW50dWFseQoJICBzdGF0ZS1sb2NrZWQuCgoyMDA5LTA4LTMxIDIwOjM4OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBmaXggZG9jcyBmb3IgX25ld19zaW5nbGUoKS4KCjIwMDktMDgtMzEgMTY6NTY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgZG9jczogaXQncyBpdHMKCSAgVGhlIHBhbmRhIHNheXMgbm8hCgoyMDA5LTA4LTI5IDIwOjQ0OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICByZWdpc3RyeTogZmlsbCBpbiBlbGVtZW50ZmFjdG9yeSB3aGVuIHJlZ2lzdGVyaW5nIGVsZW1lbnQKCSAgZWxlbWVudGZhY3RvcnkgZmllbGQgaXMgZmlsbGVkIGluIGJ5IGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCwKCSAgYnV0IGl0IG5lZWRzIHNvbWUgaW5mbyBzZXQgb24gdGhlIGVsZW1lbnQncyB0eXBlLCBzbyBoYXZlIGl0CgkgIGF2YWlsYWJsZSBwcmlvciB0byBjbGFzcyBzdHJ1Y3R1cmUgY3JlYXRpb24gc3Bpbm5pbmcgdXAuCgkgIFRoaXMgYWZmZWN0cyBlbGVtZW50cyB0aGF0IGhhdmUgYSB3ZWxsLWtub3duL3B1YmxpYyB0eXBlIChlLmcuIHBpcGVsaW5lKQoJICBhbmQgY2FuIGJlIGNyZWF0ZWQgYnkgb3RoZXIgbWVhbnMgdGhhbiBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UKCSAgKHdoaWNoIHdpbGwgYWxzbyBmaWxsIGluIHRoZSBlbGVtZW50J3MgZmFjdG9yeSkuCgoyMDA5LTA4LTMxIDExOjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgMTI4Yml0cyBkaXZpc2lvbiBvbiB4ODZfNjQKCjIwMDktMDgtMjkgMDQ6NDQ6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXggY29tcGlsYXRpb24gb2Ygd2luMzIgY29kZQoJICBGaXhlcyAjNTkzNDYwLgoKMjAwOS0wOC0yOCAxODozNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBjYWNoZSBpbmRleAoJICBDYWNoZSB0aGUgbGFzdCBpbmRleCB0aGF0IHdhcyBzZXQgd2l0aCBfc2V0X2luZGV4KCkgYW5kIHJldHVybiB0aGlzIGluIHRoZQoJICBfZ2V0X2luZGV4KCkgY2FsbC4KCSAgU2V0IHRoZSBjYWNoZWQgaW5kZXggb24gbmV3bHkgYWRkZWQgZWxlbWVudHMuCgkgIEZpeGVzICM1NjY4ODEKCjIwMDktMDgtMjggMTg6MzU6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBiZXR0ZXIgdHlwZSBjaGVja3MKCSAgQWRkIEdTVF9DTE9DSyB0eXBlY2hlY2sgZm9yIF9zZXRfY2xvY2soKS4KCSAgQWxsb3cgc2V0dGluZyBOVUxMIGluZGV4ZXMgb24gZWxlbWVudCAoY2xlYXIgdGhlIGN1cnJlbnQgaW5kZXgpCgkgIFNvbWUgd2hpdGVzcGFjZSBmaXhlcy4KCjIwMDktMDgtMjggMTg6MTQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OyB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE4OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBnc3RfaXRlcmF0b3JfbmV3X3NpbmdsZSB0byBkZWZzCgoyMDA5LTA4LTI4IDE4OjAzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTc6NTk6MTUgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jCgkgIEJlY2F1c2Ugd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGEgc3VnZ2VzdGlvbiBoZXJlIHdlIGRvbid0IG5lZWQKCSAgdG8gY2hlY2sgb24gY2FwcyBmb3IgcHJveHlfYWxsb2MgYnV0IHdlIG5lZWQgdG8gY2hlY2sgb24gdGhlCgkgIHN1Z2dlc3RlZCBjYXBzIGluc3RlYWQuCgoyMDA5LTA4LTI4IDE3OjQ5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjAyOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB1c2UgcHJlZm9ybWFuY2UgY291bnRlcnMgb24gd2luZG93cwoJICBCYXNlZCBvbiBjbG9jayBpbXBsZW1lbnRhdGlvbiBieSBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoJICBUcnkgdG8gZ2V0IHRoZSB0aW1lIG9uIHdpbmRvd3MgdXNpbmcgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBUaGVzZSBoYXZlIGEgbXVjaAoJICBoaWdoZXIgcmVzb2x1dGlvbiBhbmQgYWNjdXJhY3kgdGhhbiB0aGUgcmVndWxhciBnZXRjdXJyZW50dGltZSgpLiBCZSBjYXJlZnVsIHRvCgkgIGZhbGwgYmFjayB0byByZWd1bGFyIGdldGN1cnJlbnR0aW1lKCkgb3IgcG9zaXggY2xvY2tzIHdoZW4gcGVyZm9ybWFuY2UgY291bnRlcnMKCSAgYXJlIG5vdCBhdmFpbGFibGUuCgoyMDA5LTA4LTI4IDE2OjA3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBmaXggaW5kZW50YXRpb24KCjIwMDktMDgtMjggMTU6MzI6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBzaGlmdCBpbnN0ZWFkIG9mIGRpdmlzaW9uCgkgIFdlIGNhbiB1c2UgYSBzaGlmdCBmb3Igc2NhbGluZyB0aGUgZGVub21pbmF0b3IgaW5zdGVhZCBvZiBhIGRpdmlkZSBzaW5jZSB0aGUKCSAgZGVub20gaXMgYWx3YXlzIHBvc2l0aXZlLiBUaGlzIGF2b2lkcyBoYXZpbmcgdGhlIGNvbXBpbGVyIGdlbmVyYXRlIGNvZGUgZm9yIHRoZQoJICBkaWZmZXJlbnQgcm91bmRpbmcgcnVsZXMgd2hlbiBzY2FsaW5nIG5lZ2F0aXZlIHZhbHVlcy4KCjIwMDktMDgtMjggMTM6NDU6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1ha2UgaW5saW5pbmcgZXhwbGljaXQKCjIwMDktMDgtMjggMTI6NDM6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG9wdGltaXplIGZvciB4ODZfNjQgd2l0aCBzb21lIGlubGluZSBhc20KCSAgNjRiaXQgeDg2IGhhcyBuYXRpdmUgNjR4NjQtPjEyOCBiaXQgbXVsdGlwbHkgdGhhdCB3ZSBjYW4gdXNlIHdpdGggc29tZSBpbmxpbmUKCSAgYXNzZW1ibGVyIHRvIHNwZWVkIHVwIGxhcmdlIG11bHRpcGxpY2F0aW9ucy4KCSAgVXNlIGJzciB0byBmaW5kIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBtb3JlIGVmZmljaWVudGx5LgoKMjAwOS0wOC0yOCAxMjozMzozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZmFjdG9yIG91dCB0aGUgbGVhZGluZyB6ZXJvIGNvdW50IGNvZGUKCjIwMDktMDgtMjggMTI6MzA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHBhc3MgY29ycmVjdGlvbiBmYWN0b3IgYXJvdW5kCgkgIFBhc3MgdGhlIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZCB0byBnZXQgcmlkIG9mIHRoZSBlbnVtLCBzb21lIGNvZGUKCSAgYW5kIHNvbWUgYnJhbmNoZXMuCgoyMDA5LTA4LTI4IDEyOjIxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDEyOjE5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtb3ZlIGNvbW1vbiBjb3JyZWN0aW9uIGNvZGUgaW4gYSBtYWNybwoKMjAwOS0wOC0yNCAxODowMTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjYgMTY6NTE6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBbGxvdyB0byB1c2UgTlVMTCBhcyBvYmplY3QgZm9yIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDgtMjYgMTY6Mzk6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogQVBJOiBBZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUoKQoJICBUaGlzIGFsbG93cyAiaXRlcmF0aW9uIiBvdmVyIGEgc2luZ2xlIG9iamVjdCBvZiBzb21lIHR5cGUsCgkgIHdoaWNoIGhhcHBlbnMgb2Z0ZW4gZm9yIHRoZSBHc3RQYWRJdGVySW50TGlua3NGdW5jdGlvbiBmb3IgZXhhbXBsZS4KCjIwMDktMDgtMjQgMTc6NTc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0dXJuIHJlc3VsdCBvZiBfc2V0X2NhcHMoKQoKMjAwOS0wOC0yNCAxNzo1NjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjIgMTQ6MjI6MzEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHhtbC5oOgoJICBJdCdzIF9fR05VQ19fLCBub3QgX0dOVUNfCgkgIFRoaXMgYXBwZWFycyB0byBiZSBhbiA4IHllYXIgb2xkIGJ1Zy4KCjIwMDktMDgtMjEgMDk6NTk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogYWRkIGxpbmsgdG8gY2dpdCB0YXJiYWxsIGRvd25sb2FkIG9mIGdzdC10ZW1wbGF0ZSBpbiBQV0cKCSAgU28gcGVvcGxlIHdobyBjYW4ndCB1c2UgZ2l0IGZvciBzb21lIHJlYXNvbiBzdGlsbCBjYW4gZ2V0IGhvbGQKCSAgb2YgdGhlIGNvZGUuIFNlZSAjNTkxMDY5LgoKMjAwOS0wOC0yMCAxMTo1NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3VhcmQgdG8gZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIKCSAgU28gd2UgZG9uJ3QganVzdCBjcmFzaCBpZiB0aGVyZSdzIGEgcmVmY291bnRpbmcgYnVnIHNvbWV3aGVyZSBlbHNlLgoKMjAwOS0wOC0xOSAxNjoyNDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IERvbid0IHRhbGsgYWJvdXQgdGhlIGRlcHJlY2F0ZWQgbGliZ25vbWUgYW5kIEdOT01FLVZGUwoJICBJbnN0ZWFkIHRhbGsgYWJvdXQgR0lPIGFuZCBjaGFuZ2UgdGhlIG9wdGlvbiBwYXJzaW5nIGV4YW1wbGUgdG8KCSAgbm90IGluaXRpYWxpemUgbGliZ25vbWUgYnV0IG9ubHkgR1RLLgoJICBGaXhlcyBidWcgIzU5MjIzMy4KCjIwMDktMDgtMTkgMTU6MjU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBMaW5rIHJ0cG9vbC10ZXN0IHRvIGxpYnB0aHJlYWQgZm9yIHVzaW5nIHRoZSBQT1NJWCB0aHJlYWRzCgkgIEFsc28gdGhlIG90aGVyIHN0cmVhbXMgZXhhbXBsZSBjYW4gcnVuIHdpdGhvdXQgcHRocmVhZHMgdGhlcmVmb3JlCgkgIGVuYWJsZSBpdCBldmVuIGlmIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlLgoJICBGaXhlcyBidWcgIzU5MjMxNC4KCjIwMDktMDgtMTggMTQ6NDU6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFVzZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXRfaW50ZXJuYWxfbGlua3MKCjIwMDktMDgtMTggMTQ6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjA1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3RwYWQ6IEFkZCBzb21lIERJU0FCTEVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBoZWFkZXIgdG9vCgkgIFRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIHNpbmNlIHNvbWUgdGltZSBhbmQKCSAgdGhlcmUgYWxyZWFkeSB3ZXJlIEdTVF9SRU1PVkVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBzb3VyY2UgZmlsZSwKCSAgbm93IGFkZCB0aGVtIHRvIHRoZSBoZWFkZXIgdG9vLgoJICBGaXhlcyBidWcgIzU5MjIwOS4KCjIwMDktMDgtMTggMTE6Mzg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiBVcGRhdGUgdGhlIGRlc2lnbiBkb2NzIGZvciBiaW4gc3RhdGUgY2hhbmdlcyBhY2NvcmRpbmcgdG8gbGFzdCBjb21taXQKCjIwMDktMDgtMTggMTE6MzY6MzYgKzAyMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgdHJ5IHRvIGNoYW5nZSBjaGlsZHJlbidzIHN0YXRlIGlmIHRoZXkncmUgYWxyZWFkeSBpbiB0aGUgc3RhdGUgd2Ugd2FudAoJICBGaXhlcyBidWcgIzM2ODUzNi4KCjIwMDktMDgtMTggMTE6MzM6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBbHdheXMgZ2V0IHRoZSBwcm94eXBhZCdzIGdob3N0cGFkIHZpYSB0aGUgZ2hvc3RwYWQgaW4gdGhlIHNyYyBjYXBzIGNoYW5nZSBub3RpZnkgaGFuZGxlcgoJICBCZWZvcmUgdGhlIHNpZ25hbCBoYW5kbGVyIHdvdWxkIGdldCB0aGUgZ2hvc3RwYWQgcGFzc2VkIGFzIHNlY29uZAoJICBhcmd1bWVudCBidXQgaXQgY291bGQndmUgYWxyZWFkeSBiZWVuIHVucmVmZmVkIGFuZCBkZXN0cm95ZWQuCgkgIFRoaXMgd291bGQgdGhlbiBsZWFkIHRvIGNyYXNoZXMgYW5kIGFsbCB0aGF0LgoJICBOb3cgd2UgZ2V0IHRoZSBnaG9zdHBhZCBmcm9tIHRoZSBwcm94eSBwYWQsIHdoaWNoIHdlIGdldCBmcm9tIHRoZQoJICB0YXJnZXQgcGFkIGFzIGl0J3MgcGVlci4KCSAgRml4ZXMgYnVnICM1OTEzMTguCgoyMDA5LTA4LTE4IDA4OjQ1OjA4ICswMjAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IEFkZCBwcm9wZXJ0eSB0byBhbGxvdyB0byBhcHBlbmQgdG8gYW4gYWxyZWFkeSBleGlzdGluZyBmaWxlCgkgIEZpeGVzIGJ1ZyAjNTkxNDQxLgoKMjAwOS0wOC0xNCAxMTo1MzoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIGR1cGxpY2F0ZWQgY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUKCjIwMDktMDgtMTQgMTE6MTI6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgc3BlY2lhbCByYW5kb20gdW5pdCB0ZXN0IGZvciA2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGlzIHRlc3RzIDEwMDAwMCByYW5kb20gbXVsdGlwbGljYXRpb25zL2RpdmlzaW9ucyBvZiBhbGwgc2NhbGluZwoJICBmdW5jdGlvbiB2YXJpYW50cyBhbmQgY29tcGFyZXMgdGhlIHJlc3VsdCB3aXRoIHRoZSByZXN1bHQgdGhhdCBpcwoJICBnZW5lcmF0ZWQgYnkgR01QIG9uIHRoZSBzYW1lIGlucHV0LgoJICBGb3IgdGhpcyBjaGVjayBmb3IgR1NMIGFuZCBHTVAgZHVyaW5nIGNvbmZpZ3VyZSBidXQgb25seSB1c2UKCSAgaXQgZm9yIHRoaXMgc2luZ2xlIHVuaXQgdGVzdC4KCSAgVGVzdGluZyBmdW5jdGlvbnMgd2VyZSBwcm92aWRlZCBieSBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKMjAwOS0wOC0xMyAxNjozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFkZCBuZXcgc2NhbGluZyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMDktMDgtMTMgMTY6MjA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgKHZlcnkpIG1pbmltYWwgdW5pdCB0ZXN0IGZvciB0aGUgbmV3IHJvdW5kaW5nIHNjYWxpbmcgZnVuY3Rpb25zCgoyMDA5LTA4LTEzIDE2OjEwOjMxICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogQVBJOiBBZGQgcm91bmRpbmcgdG8gbmVhcmVzdCBhbmQgbmV4dCBpbnRlZ2VyIHZlcnNpb25zIG9mIHRoZSA2NCBiaXQgaW50ZWdlciBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludF9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfY2VpbCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9jZWlsKCkKCSAgRml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTEyIDExOjEwOjA1ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZXZlcnQgcGFydHMgb2YgbGFzdCBjaGFuZ2UgdG8gb3B0aW1pemUgdGhlIHNjYWxpbmcgZnVuY3Rpb25zIGFnYWluCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMDk6MTY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBGaXggdmlvbGF0aW9ucyBvZiBzdHJpY3QtYWxpYXNpbmcgcnVsZXMgaW4gZ3N0X3V0aWxfdWludDY0X3NjYWxlKCkKCjIwMDktMDgtMTEgMDk6MTA6NDcgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IFJlZmFjdG9yIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgkgIFRoaXMgd2lsbCBsYXRlciBtYWtlIGl0IHBvc3NpYmxlIHRvIHByb3ZpZGUgcm91bmRpbmcgdmVyc2lvbnMKCSAgb2YgaXQgd2l0aG91dCBtdWNoIGNvZGUgZHVwbGljYXRpb24uCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMTU6MjA6MTggKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHVwZGF0ZSBkb2Mgc3RyaW5nCgoyMDA5LTA4LTExIDEzOjIxOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEFjdHVhbGx5IHN0YXJ0PT1zdG9wPT1zZWdtZW50X3N0YXJ0IGlzIGluc2lkZSB0aGUgc2VnbWVudAoJICBTdGlsbCB0aGUgb2xkIGNvZGUgd2FzIHdyb25nIGFzIGl0IGNsYWltZWQgdGhhdCBzdGFydD09c3RvcDxzZWdtZW50X3N0YXJ0CgkgIHdvdWxkIGJlIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgcmV0dXJuZWQgaW5zYW5lIGNsaXBwaW5nIGRpZmZlcmVuY2VzLgoKMjAwOS0wOC0xMSAxMzowMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBGaXggdW5pdCB0ZXN0IGFuZCBhZGQgYW4gYWRkaXRpb25hbCB0ZXN0CgkgIFRoZSBwcmV2aW91cyB0ZXN0IGFzc3VtZWQgdGhhdCBzdGFydD1zdG9wPXNlZ21lbnRfc3RhcnQgd2lsbAoJICBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYnV0IHRoaXMgaXMgd3JvbmcuCgoyMDA5LTA4LTExIDEyOjU5OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IENsaXBwaW5nIHNob3VsZCBkZXRlY3Qgc3RhcnQ9c3RvcDxzZWdtZW50X3N0YXJ0IGFzIG91dHNpZGUgdGhlIHNlZ21lbnQKCSAgQmVmb3JlIGl0IHJldHVybmVkIHRoYXQgW3N0YXJ0LHN0b3BdIGlzIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgdGhhdCB0aGUKCSAgZGlmZmVyZW5jZSBiZXR3ZWVuIHNlZ21lbnRfc3RhcnQgYW5kIHN0YXJ0IG5lZWRzIHRvIGJlIGNsaXBwZWQuIElmIHRoZQoJICBjbGlwcGluZyBpcyBkb25lIG9uIGEgYnVmZmVyIChsaWtlIGluIGJhc2VhdWRpb3NpbmspIHRoaXMgd2lsbCByZXN1bHQKCSAgaW4gdGhlIGRhdGEgcG9pbnRlciBiZWluZyBhdCBhIGludmFsaWQgbWVtb3J5IHBvc2l0aW9uLgoJICBGaXhlcyBidWcgIzU4OTg0OS4KCjIwMDktMDgtMTEgMDU6NDc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBnc3RidXM6IFVucmVmIHBpcGVsaW5lIGFmdGVyIHVzYWdlIGluIHRlc3RfY3VzdG9tX21haW5fY29udGV4dCB1bml0IHRlc3QKCSAgVGhpcyBtYWtlcyB0aGUgY29yZSB1bml0IHRlc3RzIHZhbGdyaW5kIGNsZWFuIGFnYWluLgoKMjAwOS0wOC0xMSAwMjo1NDo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBhZGQgRWR3YXJkJ3MgZ2l0IHBsdWdpbiBtb3ZpbmcgaG93dG8gdG8gbW92aW5nLXBsdWdpbnMgZG9jdW1lbnQKCjIwMDktMDgtMTAgMTQ6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IGRvbid0IGZvcmdldCB0byBpbmNsdWRlIGNvbmZpZy5oIGluIHRoZSBHc3RPYmplY3QgdW5pdCB0ZXN0CgoyMDA5LTA4LTEwIDEzOjA1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IHRyeSB0byBmaXggR3N0T2JqZWN0IHVuaXQgdGVzdCBvbiBPU1gKCSAgU2VlbXMgbGlrZSB3ZSBnZXQgU0lHQlVTIGluc3RlYWQgb2YgU0lHU0VHViBoZXJlIHdoZW4gR0xpYiBjcmFzaGVzCgkgIHdoZXJlIGl0IHNob3VsZG4ndCBjcmFzaCAoYW5kIHdlIGV2ZW4gaGF2ZSBhIHVuaXQgdGVzdCBmb3IgdGhhdCEpLgoKMjAwOS0wOC0xMCAxMjowMTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIGNoZWNrczogc2V0IHBpcGVsaW5lcyB0byBOVUxMIHN0YXRlIGluIHBhcnNlLWxhdW5jaCB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dHMgaW4gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKS4KCjIwMDktMDgtMTAgMTE6NDI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZSBiYWNrIHRvIE5VTEwgc3RhdGUgaW4gR3N0QnVzIHVuaXQgdGVzdAoJICBGaXhlcyB0aW1lb3V0IGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgc29tZSBsb2dnaW5nIGJlZm9yZSBjYWxsaW5nIGdzdF90YXNrX2NsZWFudXBfYWxsKCkKCjIwMDktMDgtMDggMjI6Mjc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENhbGwgZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKSBpbiBHU1RfRU5EX1RFU1QKCSAgVGhpcyBmaXhlcyBtYW55IHVuaXQgdGVzdHMgdW5kZXIgdmFsZ3JpbmQgdGhhdCBzaG93cwoJICBsZWFraW5nIEdzdFRhc2tzIHRoYXQgYXJlIG5vdCByZWFsbHkgbGVha2VkIGJ1dCBqdXN0CgkgIG5vdCB1bnJlZmZlZCBieSB0aGUgdGFzayB0aHJlYWQgYmVmb3JlIHRoZSB1bml0IHRlc3QKCSAgc3RvcHBlZC4KCSAgRml4ZXMgYnVnICM1OTEwNDUuCgoyMDA5LTA4LTA4IDE0OjQ3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDggMTQ6NDc6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDcgMDI6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogaWdub3JlIG5ldyBxdWV1ZS1lcnJvciB0ZXN0CgoyMDA5LTA4LTA2IDIwOjQwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIGludGVybmFsLWNoZWNrLmggdG8gQlVJTFRfU09VUkNFUyBpbiBhdHRlbXB0IHRvIGZpeCB0aGUgYnVpbGQKCSAgRm9yIHNvbWUgcGVvcGxlIHRoZSBidWlsZCBvZiBsaWJnc3RjaGVjayB3YXMgYnJva2VuIGJlY2F1c2UgdGhlIG1ha2UKCSAgdGFyZ2V0IHRoYXQgY3JlYXRlcyB0aGUgaW50ZXJuYWwtY2hlY2suaCBmaWxlIHdhc24ndCBleGVjdXRlZCBmb3IKCSAgc29tZSByZWFzb24uIFRoaXMgc2hvdWxkIGhvcGVmdWxseSBmaXggdGhpcy4KCjIwMDktMDgtMDYgMTg6Mzg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogb2xkZXIgYWNsb2NhbHMgZG9uJ3QgbGlrZSAtSS4gc28gdXNlIC1JIC4gaW5zdGVhZAoKMjAwOS0wOC0wNiAxODo0NzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhZGQgYWRkaXRpb25hbCBjaGVja2luZyBmb3Igd3JpdGFiaWxpdHkKCSAgQ2hlY2sgZm9yIG1ldGFkYXRhIHdyaXRhYmlsaXR5IHdoZW4gc2V0dGluZyBjYXBzIG9uIGJ1ZmZlciBvciB3aGVuIGNvcHlpbmcKCSAgbWV0YWRhdGEgZmxhZ3MuIE9ubHkgZW5hYmxlIHRoZXNlIGV4dHJhIGFzc2VydGlvbnMgaW4gZ2l0IHZlcnNpb25zLgoJICBUaGlzIHNob3VsZCBoZWxwIHVzIGZpbmQgYmFkIGVsZW1lbnRzLgoKMjAwOS0wOC0wNCAxMDoyMjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBkaXNhYmxlIHVuaXQgdGVzdCBzdXBwb3J0IG9uIHdpbjMyIGZvciBub3cKCSAgVW50aWwgd2UgbWFrZSB0aGUgaW50ZXJuYWwgbGliY2hlY2sgd29yayBvbiB3aW5kb3dzLgoKMjAwOS0wNy0xOSAxNzowNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nCgoyMDA5LTA3LTE3IDAwOjQ2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSAgY2hlY2s6IGZpeCBpc3N1ZXMgd2l0aCAnbWFrZSBkaXN0Y2hlY2snCgkgIFNlZW1zIHRvIHdvcmsgbm93LCBhdCBsZWFzdCBvbiAqbml4LiBPbmUgb2YgdGhlIGNvbmZpZ3VyZSBjaGVja3MKCSAgY2F1c2VkIHRoZXNlIHdlaXJkIGlzc3VlcyAtIGJ1dCB3aGljaCBvbmU/CgoyMDA5LTA4LTA2IDE3OjI3OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBjaGVjazogdXNlIHByaXZhdGUgY29weSBvZiBjaGVjayBmb3IgbGliZ3N0Y2hlY2sKCSAgU2VlICM1NzcyNzUuIFNlZW1zIHRvIHdvcmsgZmluZSwgYnV0IGRvZXNuJ3QgZGlzdGNoZWNrIHlldC4KCjIwMDktMDctMTYgMTg6Mzk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbCBjb3B5IG9mIGNoZWNrLTAuOS42CgkgIE5vdCBob29rZWQgdXAgeWV0LiBTZWUgIzU3NzI3NS4KCjIwMDktMDgtMDYgMTQ6MTE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWcgZm9yIG5ldyBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkgZnVuY3Rpb24KCjIwMDktMDctMjIgMTE6MjQ6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMTE6MjQ6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTo1NDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjM4OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogYWRkIGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoJICBPZnRlbiB3ZSBkb24ndCBuZWVkIHRoZSByZXN1bHQgb2YgdGhlIGludGVyc2VjdGlvbi4gQWRkIGEgdmFyaWFudCB0aGF0IG9ubHkKCSAgdHJpZXMgdG8gaW50ZXJzZWN0LiBJdCBjYW4gYnJlYWsgb3V0IGVhcmxpZXIgYW5kIGRvZXMgbGVzcyBHVmFsdWUgY29weWluZy4KCSAgQVBJOiBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6MjQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGNoZWNrIGNhcHNfaXNfZml4ZWQoKSBpZiB0aGV5IGNoYW5nZWQKCSAgVGhlIHByZXZpb3VzIGNvZGUgY291bGQgY2FsbCBnc3RfY2Fwc19pc19maXhlZCgpIGZvciB0aGUgc2FtZSBjYXBzIG1hbnkgdGltZXMuCgoyMDA5LTA3LTIxIDEzOjMxOjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzcGxpdCBjYWxsYmFjayBmb3Igc3RydWN0dXJlIGludGVyc2VjdCBpbnRvIHR3byBmdW5jdGlvbnMKCSAgV2UgY2FsbCB0aGlzIHNlcGFyYXRlbHkuIHRoZXJlIGlzIG5vIG11Y2ggYmVuZWZpdCBpbiByZXVzaW5nIHRoZSBjYWxsYmFjay4KCSAgU3BsaXR0aW5nIGlzIGxldCB1cyByZW1vdmUgYSBicmFuY2ggYWxzby4KCjIwMDktMDctMjEgMTM6Mjc6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGxvZ2dpbmc6IGxvZyBpZiB3ZSBjb3B5IGNhcHMgdG8gYmUgYWJsZSB0byB0cmFjayBpdAoKMjAwOS0wNy0yMSAxMTozMjowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGNvbW1lbnRzIGFib3V0IGdfcHRyX2FycmF5IHNpemUgYmVoYXZpb3VyCgkgIEp1c3QgZXhwbGFpbiB0aGUgYmVoYXZpb3VyIHRvIGF2b2lkIHRoYXQgc29tZW9uZSBlbHNlIGlzIHdhc3RpbmcgdGltZSB0cnlpbmcgdG8KCSAgaW1wcm92ZSB0aGlzIHRvby4KCjIwMDktMDctMjEgMTE6MTQ6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBleGFtcGxlOiB1bnJlZiB0aGUgY2xvY2sgaWQKCjIwMDktMDctMjEgMTA6NTY6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgY29ycmVjdCB2YXJpYWJsZSBpbiB0ZXN0CgoyMDA5LTA3LTI4IDE2OjEzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBtZXNzYWdlLCBsaWtlIGVsc2V3aGVyZQoKMjAwOS0wNy0yMSAxMDozODoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IHVudXNlZCB2YXIgd2hlbiBkaXNhYmxpbmcgZGVidWcgbG9nZ2luZwoKMjAwOS0wOC0wNiAxMzoyOToyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sKCSAgSWYgZG93bnN0cmVhbSByZXR1cm5zIGVycm9yIGFuZCB1cHN0cmVhbSBoYXMgYWxyZWFkeSBkZWxpdmVyZWQKCSAgZXZlcnl0aGluZyAoaW5jbHVkaW5nIEVPUykgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGFyb3VuZCB0byBmaW5kCgkgIG91dCB0aGF0IHdlIHBhdXNlZCAoYW5kIHdoeSksIHBvc3QgZXJyb3IgbWVzc2FnZS4gIEZpeGVzICM1ODk5OTEuCgoyMDA5LTA3LTI4IDEyOjAzOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcXVldWU6IGFkZCB1bml0IHRlc3QKCSAgTWFrZSBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm4gYW4gZXJyb3IgYWZ0ZXIgdXBzdHJlYW0gaGFzIGFscmVhZHkKCSAgcHV0IGFsbCBkYXRhIGludG8gcXVldWUgKGluY2x1ZGluZyBFT1MpLiAgQXMgc3VjaCwgdXBzdHJlYW0KCSAgd2lsbCBub3QgYmUgYXJvdW5kIHRvIHBpY2sgdXAgdGhlIGVycm9yLCBzbyBpdCBpcyB1cCB0byBxdWV1ZSB0bwoJICBhY3QgYXBwcm9wcmlhdGVseS4gIFNlZSAjNTg5OTkxLgoJICBOb3RlIHRoZXJlIG1heSBiZSBkb3duc3RyZWFtIGZhdGFsIGVycm9ycyAoZS5nLiBuZWdvdGlhdGlvbikgdGhhdCBkbwoJICBub3Qgd2FycmFudCBhbiBlcnJvciBtZXNzYWdlIGFscmVhZHkgaGF2aW5nIGJlZW4gcG9zdGVkLgoKMjAwOS0wOC0wNSAxODowMjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGFyaWZ5IF9jYXBzX2lzX2VxdWFsKCkKCjIwMDktMDgtMDUgMTc6NTg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVmYWN0b3IgbWV0YWRhdGEgbW9kaWZpY2F0aW9ucwoJICBDaGVjayB3aGVuIHdlIG5lZWQgdG8gdG91Y2ggdGhlIG1ldGFkYXRhIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGFmdGVyIHNlbGVjdGluZwoJICB0aGUgb3V0cHV0IGJ1ZmZlciBzbyB0aGF0IHdlIGhhdmUgZXZlcnl0aGluZyBpbiBvbmUgcGxhY2UuCgkgIEFsc28gdGFrZSBmbGFncyBhbmQgdGltZXN0YW1wIG1vZGlmaWNhdGlvbnMgaW50byBhY2NvdW50LgoKMjAwOS0wOC0wNSAxNzo1NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBvbmx5IHNldCBjYXBzIHdoZW4gZGlmZmVyZW50CgkgIFdoZW4gd2UgaGF2ZSBhbiBpbnB1dCBidWZmZXIgd2l0aCBjYXBzIGFuZCB3aGVuIHRob3NlIGNhcHMgYXJlIGRpZmZlcmVudCBmcm9tCgkgIHRoZSBjYXBzIHdlIHdhbnQsIG9ubHkgdGhlbiBtYWtlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgaW5wdXQgYnVmZmVyIGFzIHRoZQoJICBvdXRwdXQgYnVmZmVyIGFuZCBzZXQgdGhlIGNhcHMgb24gdGhhdCBvdXRwdXQgYnVmZmVyLiBUaGlzIGF2b2lkcyBzb21lIGNhc2VzCgkgIHdoZXJlIHdlIHRvb2sgYSBzdWJidWZmZXIgZm9yIHNldHRpbmcgY2FwcyB0aGF0IHdlcmUgdGhlIHNhbWUuCgoyMDA5LTA4LTA1IDE1OjI4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGVuYWJsZSBvcHRpbWlzYXRpb24KCSAgV2hlbiB3ZSBoYXZlIHRoZSBzYW1lIGlucHV0IGFzIG91dHB1dCBjYXBzLCByZXVzZSB0aGUgaW5wdXQgY2FwcyBvYmplY3QuIEFmdGVyCgkgIHRoZSBjYXBzIHJlZmNvdW50aW5nIGhhcyBiZWVuIHNvcnRlZCBvdXQgbm93LCB3ZSBjYW4gZmluYWxseSBlbmFibGUgdGhpcwoJICBvcHRpbWlzYXRpb24uCgoyMDA5LTA4LTA1IDEzOjQ4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZG9uJ3Qgc2V0IGNhcHMgb24gdW53cml0YWJsZSBidWZmZXJzCgkgIFRha2UgdGhlIHJlZiBhZnRlciBzZXR0aW5nIHRoZSBjYXBzIG9uIGEgYnVmZmVyIGJlY2F1c2UgZWxzZSB0aGUgYnVmZmVyIGlzCgkgIHRlY2hpbmljYWxseSBub3Qgd3JpdGFibGUuCgoyMDA5LTA4LTA1IDEzOjQ3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZ2V0IGNhcHMgYWZ0ZXIgbWFraW5nIHdyaXRhYmxlCgkgIEdldCB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIGFmdGVyIHdlIG1hZGUgdGhlIGJ1ZmZlciB3cml0YWJsZS4gVGhpcyBkaWQgbm90CgkgIGNhdXNlIGFueSBwcm9ibGVtcyBidXQgaXQncyBuaWNlciB0aGlzIHdheS4KCjIwMDktMDgtMDUgMTM6NDY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgTWFrZSBzdXJlIHRoZSBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlci4KCjIwMDktMDgtMDUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IGJ1ZmZlciBoYXMgd3JpdGFibGUgbWV0YWRhdGEgYmVmb3JlIHdlIGF0dGVtcHQgdG8gc2V0CgkgIGNhcHMgb24gaXQuCgkgIGZpeGVzICM1ODM5OTkKCjIwMDktMDgtMDUgMTM6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZyBpbiBfcmVwbGFjZQoKMjAwOS0wOC0wNSAxMzo0MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0wOC0wNSAxMzo0MTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc21hbGwgaW1wcm92ZW1lbnRzCgkgIFVucmVmIHRoZSB0YXJnZXQgcGFkIGFmdGVyIHdlIHVzZWQgaXQgZm9yIGRlYnVnZ2luZy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgT25seSByZXBsYWNlIGNhcHMgd2hlbiB0aGV5IGNoYW5nZWQuCgoyMDA5LTA3LTI5IDEzOjQ2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW51cHMgaW4gcG9zaXRpb24gcXVlcmllcwoJICBVc2UgZXhpc3RpbmcgYm9vbGVhbiBmbGFnIHRvIHBhc3MgcG9zaXRpb24gcXVlcmllcyB1cHN0cmVhbS4gQWxzbyBhZGQgdXBzdHJlYW0KCSAgcXVlcmllcyBmb3IgdGhlIGxhc3QgcG9zaXRpb24gcXVlcmllcy4KCjIwMDktMDgtMDUgMTM6MjU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGZpeCBsaWJ4bWwyIGNoZWNrLCB3aGljaCBpcyBvbmx5IG5lZWRlZCBmb3IgeG1sIGxvYWQvc2F2ZSBub3cKCSAgU2luY2UgdGhlIHJlZ2lzdHJ5IGRvZXNuJ3QgdXNlIGxpYnhtbDIgYW55IGxvbmdlciwgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5CgkgIHRvIGRpc2FibGUgYm90aCB4bWwgbG9hZC9zYXZlICphbmQqIHRoZSByZWdpc3RyeSB0byBnZXQgcmlkIG9mIHRoZSBsaWJ4bWwyCgkgIGRlcGVuZGVuY3ksIGRpc2FibGluZyBqdXN0IHhtbCBsb2FkaW5nL3NhdmluZyBpcyBlbm91Z2guIEZpeGVzICM1OTA4NDEuCgoyMDA5LTA4LTAyIDE0OjMzOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW5hbWUgdW5pbnN0YWxsZWQgcmVnaXN0cnkgZmlsZSB0byByZWdpc3RyeS5kYXQKCSAgV2UncmUgbm90IHVzaW5nIHRoZSB4bWwgcmVnaXN0cnkgYW55IGxvbmdlciBhZnRlciBhbGwuCgoyMDA5LTA4LTAyIDE0OjI4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZWZpbmUgc2VhcmNoIHBhdGhzIGZvciB1bmluc3RhbGxlZCBwbHVnaW4gbW9kdWxlcwoJICBVc2UgbW9yZSByZWZpbmVkIHNlYXJjaCBwYXRocyBmb3Igb3VyIHBsdWdpbiBtb2R1bGVzLiBOb3Qgb25seSBkb2VzCgkgIHRoaXMgbWFrZSB0aGluZ3MgbXVjaCBmYXN0ZXIgaW4gYW4gdW5pbnN0YWxsZWQgc2V0dXAsIGl0IGFsc28gbWFrZXMKCSAgc3VyZSB3ZSdyZSBub3QgYWNjaWRlbnRhbGx5IHVzaW5nIG91dC1vZi1kYXRlIHBsdWdpbnMgYnVpbHQgYWdlcwoJICBhZ28gYXMgcGFydCBvZiBhIChmYWlsZWQpICdtYWtlIGRpc3RjaGVjaycgd2hlbiB3ZSBmb3JnZXQgdG8gY2xlYW4KCSAgdXAgdGhlIGRpc3RjaGVjayBidWlsZCBkaXJlY3RvcnkuCgoyMDA5LTA3LTI5IDIzOjQyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkaXN0IEdTdHJlYW1lci0xLjAgYnVmZmVyIGRlc2lnbiBkcmFmdAoKMjAwOS0wOC0wNiAwNjo1MDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0YWdsaXN0OiBBZGQgbmV3IEFMQlVNX0FSVElTVCB0YWcgdG8gdGhlIGRvY3MKCjIwMDktMDgtMDQgMTQ6MTM6MzQgKzAyMDAgIEpvaG4gTWlsbGlraW4gPGptaWxsaWtpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgc3VwcG9ydCBmb3IgQUxCVU1fQVJUSVNUIHRhZwoJICBUaGUgImFsYnVtIGFydGlzdCIgdGFnIGlzIHVzZWQgd2hlbiB0aGUgYXJ0aXN0IG9mIGFuIGVudGlyZQoJICBhbGJ1bSBkaWZmZXJzIGZyb20gdGhlIGFydGlzdCBvZiBhbiBpbmRpdmlkdWFsIHRyYWNrOyBmb3IgZXhhbXBsZSwKCSAgd2hlbiBhICJndWVzdCBhcnRpc3QiIGFwcGVhcnMgb24gYW4gYWxidW0sIG9yIG9uIGNvbXBpbGF0aW9ucy4KCSAgRml4ZXMgYnVnICM1OTA0MzAuCgoyMDA5LTA3LTI5IDEzOjMzOjExICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBRdWVyeSB1cHN0cmVhbSBmb3IgdGhlIHBvc2l0aW9uIGlmIGNvbnZlcnNpb24gaW4gUEFVU0VEIGZhaWxlZAoJICBGaXhlcyBidWcgIzU5MDA0NS4KCjIwMDktMDctMjggMjA6NDI6MjAgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgaW4gZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMoKQoJICBGaXhlcyBidWcgIzU4OTUyNC4KCjIwMDktMDctMjIgMDk6MDE6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHVuc2V0IEdBUCBmbGFnIGlmIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZQoJICBGaXhlcyBidWcgIzU4OTMxNC4KCjIwMDktMDgtMDYgMDE6NDM6NTcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI0LjEKCj09PSByZWxlYXNlIDAuMTAuMjQgPT09CgoyMDA5LTA4LTA1IDAwOjUxOjE2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAwLjEwLjI0CgoyMDA5LTA4LTA0IDIzOjA1OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wOC0wMyAxNTozMToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYXZvaWQgd3JhcC1hcm91bmQgaW4gYnVmZmVyIHNpemUgY2hlY2tzLiAgRml4ZXMgIzU5MDYyMi4KCjIwMDktMDctMzAgMTQ6NDE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC41IHByZS1yZWxlYXNlCgoyMDA5LTA3LTI4IDIxOjE1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogR2V0IHRoZSBmbHVzaGluZyBzdGF0ZSB3aXRoIHRoZSBvYmplY3QgbG9jayB0YWtlbi4KCSAgRml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAyMToxNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IE1ha2Ugc3VyZSB0aGUgQ29sbGVjdERhdGEgbGlzdCBpcyB1cC10by1kYXRlIHdoZW4gcmVhZGluZy9zZXR0aW5nIGl0CgkgIFdpdGhvdXQgdGhpcywgd2Ugcmlza2VkOgoJICAqIENoZWNraW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvbiBhbiB1bmV4aXN0aW5nIGxpc3QKCSAgKiBOb3Qgc2V0dGluZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gcGFkcyB0aGF0IGhhZCBqdXN0IGJlZW4gYWRkZWQKCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBTcGxpdCBvdXQgX2NoZWNrX3BhZHMgaW50byBhIHZlcnNpb24gd2l0aG91dCBsb2NrIHRha2luZy4KCSAgVGhpcyBpcyBzbyB3ZSBjYW4gdXNlIF9jaGVja19wYWRzIGluIHBsYWNlcyB3aGVyZSB3ZSd2ZSBhbHJlYWR5IHRha2VuCgkgIHRoZSBsb2NrIGluIHF1ZXN0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAxNToyMzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNoZWNrOiBtYWtlIG5ldyBHc3RTdHJlYW1Db25zaXN0ZW5jeSBzdHJ1Y3R1cmUgcHJpdmF0ZQoJICBUaGVyZSdzIG5vIG5lZWQgdG8gaGF2ZSBHc3RTdHJlYW1Db25zaXN0ZW5jeSBpbiBhIHB1YmxpYyBoZWFkZXIgZm9yCgkgIHRoZSB0aW1lIGJlaW5nLCBzbyBtYWtlIGl0IHByaXZhdGUuIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgYSBndGstZG9jCgkgIGJsdXJiIGZvciBpdCB0aG91Z2guIFJlLWZpeGVzICM1ODg3NDQuCgoyMDA5LTA3LTI0IDEzOjUwOjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yNCAwOTo1MDoxOSArMDEwMCAgUm9iaW4gU3RvY2tlciA8cm9iaW5Abmlib3Iub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGhhbmRsZSBTRUVLSU5HIHF1ZXJpZXMgZm9yIGZvcm1hdHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4KCSAgUmV0dXJuIEZBTFNFIGluIGJhc2VzcmMncyBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgd2hlbiB3ZSBnZXQgYSBTRUVLSU5HIHF1ZXJ5IGZvcgoJICBhIGZvcm1hdCB0aGF0J3Mgbm90IHRoZSBvbmUgdGhlIHNvdXJjZSBvcGVyYXRlcyBpbi4gUHJldmlvdXNseSAoaWUuIGJlZm9yZSwgaW4KCSAgdGhlIGdpdCB2ZXJzaW9uKSB3ZSB3b3VsZCByZXR1cm4gVFJVRSBpbiB0aGF0IGNhc2UgYW5kIHNlZWthYmxlPUZBTFNFLCB3aGljaAoJICBpcyBtb3JlIGNvcnJlY3QsIGJ1dCBjYXVzZXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuIChCZWZvcmUgdGhhdAoJICB3ZSB3b3VsZCBjaGFuZ2UgdGhlIGZvcm1hdCBvZiB0aGUgcXVlcnkgd2hlbiBhbnN3ZXJpbmcsIHdoaWNoIHdhcyBjb21wbGV0ZWx5CgkgIGJyb2tlbiBzaW5jZSBjYWxsZXJzIGRvbid0IGV4cGVjdCB0aGF0IG9yIGNoZWNrIGZvciBpdCkuIFNpbmNlIHRoZSBTRUVLSU5HCgkgIHF1ZXJ5IGlzIGEgZmFpcmx5IHJlY2VudCBhZGRpdGlvbiwgbm90IGFsbCBkZW11eGVycywgcGFyc2VycyBhbmQgZGVjb2RlcnMKCSAgaW1wbGVtZW50IGl0IHlldCwgaW4gd2hpY2ggY2FzZSBhbnkgU0VFS0lORyBxdWVyeSBieSBhbiBhcHBsaWNhdGlvbiB3aWxsCgkgIGp1c3QgYmUgcGFzc2VkIHVwc3RyZWFtIHdoZXJlIGl0IHdpbGwgdGhlbiBiZSBoYW5kbGVkIGJ5IGJhc2VzcmMuIE5vdywgaWYKCSAgZS5nLiB0b3RlbSBkb2VzIGEgU0VFS0lORyBxdWVyeSBmb3IgVElNRSBmb3JtYXQgYW5kIHdlIGhhdmUgYSBkZW11eGVyIHRoYXQKCSAgZG9lc24ndCBpbXBsZW1lbnQgdGhlIHF1ZXJ5LCBiYXNlc3JjIHdvdWxkIGFuc3dlciBpdCB3aXRoIHNlZWthYmxlPUZBTFNFIGluCgkgIG1vc3QgY2FzZXMsIGFuZCB0b3RlbSBjYW4gb25seSB0YWtlIHRoYXQgYXMgYXV0aG9yaXRhdGl2ZSBhbnN3ZXIsIG5vdCBrbm93aW5nCgkgIHRoYXQgdGhlIGRlbXV4ZXIgZG9lc24ndCBpbXBsZW1lbnQgdGhlIFNFRUtJTkcgcXVlcnkuIFRvIGF2b2lkIHRoaXMsIHdlIG1ha2UKCSAgYmFzZXNyYyByZXR1cm4gRkFMU0UgdG8gU0VFS0lORyBxdWVyaWVzIGluIHVuaGFuZGxlZCBmb3JtYXRzLiBUaGF0IHdheQoJICBhcHBsaWNhdGlvbnMgbGlrZSB0b3RlbSBjYW4gZmFsbCBiYWNrIG9uIGFzc3VtaW5nIHNlZWthYmlsaXR5IGRlcGVuZGluZyBvbgoJICB3aGV0aGVyIGEgZHVyYXRpb24gaXMgYXZhaWxhYmxlLCBvciBzb21lc3VjaC4gRG93bnN0cmVhbSBlbGVtZW50cyBkb2luZwoJICBzdWNoIHF1ZXJpZXMgYXJlIGxpa2VseSB0byBlcXVhdGUgYW4gdW5oYW5kbGVkIHF1ZXJ5IHdpdGggYSBub24tc2Vla2FibGUKCSAgcmVzcG9uc2UgYXMgd2VsbCwgc28gdGhpcyBzaG91bGQgYmUgYW4gYWNjZXB0YWJsZSBmaXggZm9yIHRoZSB0aW1lIGJlaW5nLgoJICBTZWUgIzU4NDgzOCwgIzU4ODk0NCwgIzU4OTQyMyBhbmQgIzU4OTQyNC4KCjIwMDktMDctMjQgMDA6NDE6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmVkYWFlZSB0byA5NGY5NWUzCgoyMDA5LTA3LTIwIDE2OjExOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IGFkZCArMSBhZnRlciBlcnJvciBjaGVja2luZwoJICBUaGUgY3VycmVudCBjb2RlIG1hZGUgdGhlIGVycm9yIGNoZWNraW5nIHBvaW50bGVzcyBieSBjaGFuZ2luZyAtMSB0byAwIGluIGVycm9yCgkgIGNhc2VzLiBBbHNvIGRvbid0IGxlYWsgYSBwYWQgdGVtcGxhdGUgb24gZXJyb3IuCgoyMDA5LTA3LTIwIDE1OjUxOjIwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIzLjMgcHJlLXJlbGVhc2UKCjIwMDktMDctMjAgMTg6MDM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0ZXN0czogbWFrZSBzdXJlIHRoZSB0YXNrcyBhcmUgam9pbmVkCgkgIENhbGwgX2NsZWFuX2FsbCgpIG9uIHRoZSB0YXNrIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGpvaW5lZCBhbmQgc3RvcHBlZC4KCSAgU2VlICM1ODkxMjcKCjIwMDktMDctMjAgMTU6NDQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBmaXggdGFza3Bvb2wgbGVhawoJICBHc3RUYWtzIGRvZXMgbm90IGFsd2F5cyB1bnJlZiB0aGUgdGFza3Bvb2wgaXQgd2FzIGNyZWF0ZWQgZnJvbSBiZWNhdXNlIGl0CgkgIGRlcGVuZHMgb24gd2hlbiB0aGUgcG9vbCBwcm92aWRlZCBhbiBJRCBmb3Igam9pbmluZyB0aGUgdGFzay4KCSAgUmV3b3JrIHNvbWUgY29kZSBzbyB0aGF0IHdlIGFsd2F5cyB1bnJlZiB0aGUgcG9vbCBhbmQgb3B0aW9uYWxseSBqb2luIHdoZW4gdGhlCgkgIHBvb2wgcHJvdmlkZWQgYW4gaWQuCgkgIEZpeGVzICM1ODkxMjcKCjIwMDktMDctMjAgMTM6MjY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWFrZSB0YWcgcXVldWluZyB0aHJlYWRzYWZlCgkgIFNlZSAjNTg4NzQ1CgoyMDA5LTA3LTEzIDA5OjIyOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgZ3N0Y2hlY2s6IEFkZCBhIHN0cmVhbSBjb25zaXN0ZW5jeSBjaGVja2luZyBoZWxwZXIgcm91dGluZS4gRml4ZXMgIzU4ODc0NAoKMjAwOS0wNy0yMCAxMTowNDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCB1bnJlZiBOVUxMIGlmIHdlIGhhdmUgYW4gZWFybHkgcmVhZCBlcnJvcgoKMjAwOS0wNy0xMiAxMDowNDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZXJpYWxpemUgdGFncyBpbnRvIHRoZSBkYXRhZmxvdy4gRml4ZXMgIzU4ODc0NQoKMjAwOS0wNy0xNiAxNDoxNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBBUEkgZG9jcyBmb3IgZ3N0X3thZGFwdGVyfGJ5dGVfcmVhZGVyfV9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQ2xhcmlmeSBieXRlIHJlYWRlciBkb2NzIGEgYml0OiBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQKCSAgcG9zaXRpb24gb2YgdGhlIHJlYWRlciwgbm90IHRvIHRoZSBzdGFydCBvZiB0aGUgZGF0YS4gQWxzbywgdGhlCgkgIGV4YW1wbGVzIGluIGJvdGggdGhlIGFkYXB0ZXIgZG9jcyBhbmQgdGhlIGJ5dGUgcmVhZGVyIGRvY3MgaGF2ZQoJICB0aGUgbWFzayBhbmQgcGF0dGVybiBhcmd1bWVudHMgc3dhcHBlZCAoc2VlICM1ODc1NjEpLiBTcG90dGVkCgkgIGJ5IENhcmwtQW50b24gSW5nbWFyc3Nvbi4KCjIwMDktMDctMTYgMTM6NTk6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ3M6IG9ubHkgZW1pdCBhIGdfd2FybmluZygpIGZvciBlbXB0eSB0YWcgc3RyaW5ncyBmb3IgZ2l0IHZlcnNpb25zCgkgIEZvciBub3csIGRvbid0IHNob3cgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgYW5kIE5VTEwKCSAgdGFncyB3aXRoIG5vbi1naXQgdmVyc2lvbnM7IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgZml4ZXMgaW4gb3VyCgkgIHBsdWdpbiBtb2R1bGVzIHRvIG1ha2UgaXQgaW50byBhIHJlbGVhc2UgYmVmb3JlIHdlIGVuYWJsZSB0aGlzCgkgIHVuY29uZGl0aW9uYWxseS4KCjIwMDktMDctMTQgMTg6NTk6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yMy4yIHByZS1yZWxlYXNlCgoyMDA5LTA3LTE0IDEyOjE1OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBleHBsYW5hdGlvbiBmb3Igc2hvcnRjdXQKCjIwMDktMDctMTAgMjA6MDQ6NDggKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB0YWtlIHNpemUgb25jZQoKMjAwOS0wNy0xMCAxOToxNzowNCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY2FuX2ludGVyc2VjdCB0byBiZWhhdmUgbGlrZSBpbnRlcnNlY3QKCSAgQWRkIGEgcXVpY2sgcmV0dXJuIGlmIHR3byB0eXBlcyBhcmUgdGhlIHNhbWUuIENoYW5nZSB0aGUgY2hlY2sgZm9yIHRoZQoJICBpbnRlcnNlY3Rpb24gZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSB1c2VkIGluIGludGVyc2VjdCgpLiBUaGUKCSAgbGF0ZXIgdHJpZXMgYm90aCBkaXJlY3Rpb25zLgoKMjAwOS0wNy0xNCAwMDowNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBtYWludGFpbiBBQkkgY29tcGF0aWJpbGl0eSBldmVuIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNy0wMiAxMjo0MDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgc3RydWN0dXJlOiBDaGFuZ2UgTlVMTCBhbmQgZW1wdHkgc3RyaW5nIGhhbmRsaW5nCgkgIERvbid0IGZvcmJpZCB0aGUgZW1wdHkgc3RyaW5nICIiIGluIGdlbmVyaWMgc3RydWN0dXJlcywgb25seSBpbiB0YWdsaXN0cy4KCSAgUHJvcGVybHkgYWxsb3cgdGhlIE5VTEwgc3RyaW5nIGJ5IGFkZGluZyBzcGVjaWFsIGNhc2VzIGZvciBzZXJpYWxpc2luZwoJICBhbmQgZGVzZXJpYWxpc2luZyBpdC4gcHJvcDE9KHN0cmluZylOVUxMIGlzIHRoZSBOVUxMIHN0cmluZywKCSAgcHJvcDE9KHN0cmluZykiTlVMTCIgaXMgdGhlIGFjdHVhbCBzdHJpbmcgd2l0aCB0aGUgdmFsdWUgIk5VTEwiCgoyMDA5LTA3LTEzIDEyOjIzOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU4NDViNjMgdG8gZmVkYWFlZQoKMjAwOS0wNy0xMyAxMjowMDo0NyArMDIwMCAgQW5kb25pIE1vcmFsZXMgPHlsYXR1eWEgYXQgZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IHNlZ2ZhdWx0IHdpdGggTVNWQwoJICBEb24ndCB1c2UgZGVwcmVjYXRlZCBmaWxlbm8gb24gTVNWQyBidXQgcmVwbGFjZSB3aXRoIF9maWxlbm8KCSAgRml4ZXMgIzU4NzA1MgoKMjAwOS0wNy0xMyAwOTozMjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzL2Rlc2lnbjogVXBkYXRlIE1ha2VmaWxlLmFtIGZvciBjaGFuZ2VkIGZyYW1lc3RlcCBkb2N1bWVudCBuYW1lLgoKMjAwOS0wNy0xMCAxOToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogdGhlIHBsdWdpbiBmZWF0dXJlcyBsaXN0ZWQgYnkgZ3N0LWluc3BlY3QgYXJlIHR5cGVmaW5kZXJzLCBub3QgdHlwZXMKCjIwMDktMDctMTAgMTg6NDY6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIGRyYWZ0IGZvciBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhIGlkZWEKCjIwMDktMDctMTAgMTg6MzU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IG1vcmUgZnJhbWVzdGVwIGRvY3Mgb3V0IG9mIGRyYWZ0CgoyMDA5LTA3LTEwIDE4OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZG9jczogdXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudAoJICBSZW1vdmUgZXhwZXJpbWVudGFsIHN0YXR1cyBmcm9tIHRoZSBmcmFtZXN0ZXAgZHJhZnQuCgoyMDA5LTA3LTA4IDE1OjE1OjA0ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNvbXBpbGF0aW9uIGlmIG9wdGlvbiBwYXJzaW5nIGlzIGRpc2FibGVkCgkgIEZpeGVzIGJ1ZyAjNTg3OTc2LgoKMjAwOS0wNy0wOCAxNToxMDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBnX2J1aWxkX2ZpbGVuYW1lKCkgaW5zdGVhZCBvZiBnX3N0cmpvaW4oKSB3aXRoIC8KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIGdlbmVyYXRlZCBmaWxlbmFtZXMgdXNlIHRoZSBwbGF0Zm9ybQoJICBzcGVjaWZpYyBkaXJlY3Rvcnkgc2VwYXJhdG9yIGluc3RlYWQgb2YgLy4KCSAgRml4ZXMgYnVnICM1ODc5NzMuCgoyMDA5LTA3LTA3IDIwOjEzOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGFkZCAnU2luY2UnIHRhZyBmb3IgbmV3IEdTVF9ERUJVR19DQVRFR09SWV9HRVQgbWFjcm8KCjIwMDktMDctMDcgMDA6MjM6NDEgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1ha2UgaXQgdGhlIGJlc3Qgb2Ygd2ltcyBhbmQgZWR3YXJkcyBwYXRjaC4KCSAgQ2hlY2sgdGhlIHJpZ2h0IGZsdXNoaW5nIGZsYWcsIGJ1dCBzdGlsbCBhZGQgaXQgdG8gdGhlIHBhZC1saXN0LgoKMjAwOS0wNi0zMCAxMToyNjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFsbG93IGdldHRpbmcgb3RoZXIgbG9nIGNhdGVnb3JpZXMuIEZpeGVzICM1ODc0MTcKCSAgQWRkIGEgbmV3IG1hY3JvIEdTVF9ERUJVR19DQVRFR09SWV9HRVQgdG8gZ2V0IGEgbG9nIGNhdGVnb3J5IGJ5IG5hbWUuIFRoaXMKCSAgYWxsb3dzIHBsdWdpbnMgdG8gdXNlIGUuZy4gY29yZSBjYXRlZ29yaWVzIGxpa2UgUEVSRk9STUFOQ0Ugb3IgQ0xPQ0suCgkgIEFQSTogR1NUX0RFQlVHX0NBVEVHT1JZX0dFVAoKMjAwOS0wNy0wNiAxOTo1MTo1NyArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgY29tbWVudCBhIEZJWE1FIGNvbW1lbnQKCjIwMDktMDctMDYgMTk6NTA6NTIgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGxvZ2dpbmc6IGxvZyBvYmplY3QgdHlwZSBpbiBtZXNzYWdlCgoyMDA5LTA3LTA2IDE5OjQ4OjU4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IHVzZSBwZXJmIGNhdGVnb3J5IGZvciBkcm9wcGVkIGJ1ZmZlcnMKCjIwMDktMDYtMjkgMTE6MjY6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBmb3J3YXJkIEZMVVNIX1NUT1AgaWYgc29tZSBpbnB1dCBzdHJlYW1zIGFyZSBzdGlsbCBmbHVzaGluZy4KCSAgVGhpcyBndWFyYW50ZWVzIHRoYXQgb25seSBvbmUgRkxVU0hfU1RPUCBldmVudCAodGhlIGxhc3Qgb25lKSB3aWxsIGJlIHNlbnQKCSAgZG93bnN0cmVhbSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBiZWluZyBkb25lIHRocm91Z2ggY29sbGVjdHBhZHMuCgoyMDA5LTA2LTI0IDExOjExOjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXBkYXRlIHRoZSBjb29raWUgd2hlbiBzZXR0aW5nIG91cnNlbHZlcyBhcyBmbHVzaGluZy4KCSAgVGhpcyBmb3JjZXMgdGhlIHBhZCBzdGF0dXMgdG8gYmUgcmUtZXZhbHVhdGVkIG9uIHRoZSBuZXh0IF9jaGVja19wYWRzKCkuCgoyMDA5LTA2LTA5IDE0OjU0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZG9jczogZml4IGd0ay1kb2MgLyo8IHByaXZhdGUgPiovIG1hcmtlcgoKMjAwOS0wNi0wOSAxNDo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGxvZyBwcm9iYWJpbGl0eSBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTA2LTMwIDE4OjIyOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IHBhcnNpbmcgb2YgdGhlIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIFBhcnNlIHRoZSBkdXJhdGlvbiBmaWVsZCB0b28uCgoyMDA5LTA2LTI5IDExOjI0OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBVc2UgbG9jYWwgdmFsdWVzIGluIHdoaWxlL2ZvciBsb29wcywgdXNlIGJyYW5jaCBwcmVkaWN0aW9uIG1hY3JvcwoKMjAwOS0wNi0yOSAxMToyMzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFNwcmVhZCBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MuCgkgIFRoZXNlIGFyZSBiYXNlZCBvbiBwcm9maWxpbmcgc2V2ZXJhbCBwbGF5YmFjayBzY2VuYXJpb3MgdXNpbmcgcGxheWJpbjIuCgoyMDA5LTA2LTI5IDExOjIwOjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFVzZSBsb2NhbCB2YXJpYWJsZXMgaW4gZm9yL3doaWxlIGxvb3BzLgoJICBUaGlzIG1ha2VzIHRoZSBnZW5lcmF0ZWQgY29kZSBmYXN0ZXIgc2luY2U6CgkgICogSXQgd29uJ3QgaGF2ZSB0byByZWFkIGFuIHVuZGlyZWN0IHZhbHVlICh3aGljaCB3aWxsIG1vc3QgbGlrZWx5IGJlCgkgIG91dHNpZGUgb2YgdGhlIEwxL0wyIGNhY2hlKQoJICAqIFdlIGtub3cgdGhhdCB2YWx1ZSBuZXZlciBjaGFuZ2VzICh0aGUgY29tcGlsZXIgaGFzIG5vIGNsdWUgdGhhdCBpdCBkb2Vzbid0KS4KCjIwMDktMDYtMDkgMTk6MDg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGxpYnMvY29udHJvbGxlcjogU2V0IGRlZmF1bHQgZ3N0IGRlYnVnZ2luZyBjYXRlZ29yeS4KCjIwMDktMDYtMjkgMTE6NTc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuc2NtOgoJICB0ZXN0czogZml4IGV4YW1wbGUKCjIwMDktMDYtMjkgMTE6NTY6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYnVmZmVybGlzdDogdXNlIGZhc3RlciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkKCSAgVXNlIHRoZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpIHRvIGdldCB0aGUgZmlyc3QgYnVmZmVyIG9mIGEgbGlzdC4KCjIwMDktMDYtMjkgMTE6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggZXhhbXBsZQoJICBUaGUgX2RvIGZ1bmN0aW9uIG5vdyB0YWtlcyB1c2VyX2RhdGEgaW4gYWxsIGNhc2VzLgoKMjAwOS0wNi0yOSAxMTo0NjowMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRha2UgdGltZXN0YW1wIGxhdGVyCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhY2NpZGVudGFsbHkgY2FzdCBhIGJ1ZmZlcmxpc3Qgb2YgYSBidWZmZXIgYW5kIHRyeSB0byB0YWtlCgkgIHRoZSB0aW1lc3RhbXAgb2YgaXQuCgkgIFJlZml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0yOSAxMTowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MKCjIwMDktMDYtMjkgMTE6MjQ6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGxvZ2dpbmc6IGFkZCBhIHBlcmZvcm1hY2UgbG9nIGNhdGVnb3J5CgkgIFRoaXMgY2F0ZWdvcnkgY2FuIGJlIHVzZWQgdG8gbG9nIHNsb3cgY29kZSBwYXRoIGFuZCBoZWxwIGF1ZGl0aW5nIHRoZQoJICBwZXJmb3JtYW5jZS4gQWRkIEZJWE1FLTAuMTEgdG8gc29tZSBxdWVzdGlvbmFibGUgY2F0ZWdvcmllcy4KCjIwMDktMDYtMjcgMTY6MzQ6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggaW50LT5naW50IHRvIGJlIGluIHN5bmMgd2l0aCB0aGUgKi5oICBhbmQgdXNhZ2UKCjIwMDktMDYtMjYgMTM6MzM6NTAgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJy4gQ2hlY2sgZm9yIGF1dG9tYWtlLTEuMVswMV0KCSAgQ2hlY2sgZm9yIG1vcmUgYXV0b21ha2UgY29tbWFuZCB2YXJpYW50cy4gVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJwoJICBmb3IgcG9ydGFiaWxpdHkKCjIwMDktMDYtMjYgMTM6NDE6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjgxMDAzMCB0byA1ODQ1YjYzCgoyMDA5LTA2LTI2IDEyOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICByZXF1ZXN0LXBhZDogdGVsbCBhYm91dCByZWYgY291bnRzIGluIHJlbGVhc2VfcmVxdWVzdF9wYWQgZG9jcy4KCSAgSXQgaXMgbm90IHRvbyBvYnZpb3VzIHRoYXQgZ2V0dGluZyBhbmQgcmVsZWFzaW5nIHJlcXVlc3QgcGFkcyBpcyBub3QgZW50aWVybHkKCSAgc3ltZXRyaWNhbCByZWdhcmRpbmcgdG8gdGhlIHBhZCByZWZjb3VudC4gQWRkIGEgbm90ZSBhYm91dCB0aGF0IHRvIHRoZSBkb2NzLgoJICBUaGlzIG1pZ2h0IGRlc2VydmUgYSBGSVhNRS0wLjExIHRvby4KCjIwMDktMDYtMjUgMTE6MjU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgZG8gdGhpbmdzIHdpdGggc2lkZSBlZmZlY3RzIHdpdGhpbiBhIGdfYXNzZXJ0KCkKCSAgTWFrZSB0aGUgYnVmZmVybGlzdCBzdHVmZiB3b3JrIHByb3Blcmx5IHdoZW4gdGhpbmdzIGFyZSBjb21waWxlZAoJICB3aXRoIC1ER19ESVNBQkxFX0FTU0VSVC4KCjIwMDktMDYtMjQgMTg6MzE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhdm9pZCBkb2luZyBsb2dpYyBpbiBnX2Fzc2VydAoJICBNYWtlIHN1cmUgd2Ugc3RpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4gZ2xpYiBpcyBjb21waWxlZCB3aXRob3V0CgkgIGFzc2VydGlvbnMuCgoyMDA5LTA2LTIyIDA1OjAwOjU0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRmlyZSB0aGUgb3ZlcnJ1biBzaWduYWwgb24gRU9TCgkgIEZpeGVzIHN0YXJ0dXAgb2Ygc29tZSBzaG9ydCBNUEVHIGZpbGVzIHdpdGggZGVjb2RlYmluMi9wbGF5YmluMgoJICB3aGVyZSBhbGwgdGhlIGRhdGEgZml0cyBpbiB0aGUgbXVsdGlxdWV1ZSBhbmQgRU9TIGFycml2ZXMgYmVmb3JlCgkgIHRoZSBncm91cCBpcyBleHBvc2VkLgoKMjAwOS0wNi0yNCAxNToxMzozNyArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzYmI1MWIgdG8gZjgxMDAzMAoKMjAwOS0wMy0yOCAxMzo1OTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgR3N0U3RydWN0dXJlOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDEwOjQ1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1pbmlvYmplY3RzOiBEb24ndCBjaGFpbiB1cCB0byBlbXB0eSBmaW5hbGl6ZSBtZXRob2QuCgkgIElmIGV2ZXIgd2UgZG8gYW55dGhpbmcgaW4gbWluaV9vYmplY3RfZmluYWxpemUsIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhlIDQKCSAgY29yZSBtaW5pb2JqZWN0IGZpbmFsaXplIG1ldGhvZHMgY2hhaW4gYmFjayB1cCBhZ2Fpbi4KCjIwMDktMDMtMjcgMjA6MTc6MTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDA5OjI4OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIG1ha2UgY2hlY2s6IGFkZCBjaGVjayBmb3IgZW51bSB0eXBlIGNsYXNzIHVucmVmcyBpbiBnc3RfZGVpbml0KCkgdG9vCgkgIEp1c3QgYmVjYXVzZSB3ZSBjYW4gcmVhbGx5LgoKMjAwOS0wNi0yMyAxMzo0NDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlOiB1c2UgcHJvcGVyIGxvY2tpbmcgaW4gR3N0VHJhY2UKCSAgUHJvdGVjdCB0aGUgYWxsb2NhdGVkIGxpc3Qgb2Ygb2JqZWN0cyB3aXRoIGEgbG9jayBzbyB0aGF0IHRyYWNlIGFjdHVhbGx5IHdvcmtzCgkgIHJlbGlhYmx5LgoJICBTaG9ydGN1dCB0aGUgYWxsb2MgdHJhY2Ugc29vbmVyIHdoZW4gZGlzYWJsZWQuCgoyMDA5LTA2LTIzIDEzOjM0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IGFsc28gYWRkIHBvaW50ZXJzIHRvIGRlYnVnCgkgIEFkZCB0aGUgb2JqZWN0IHBvaW50ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvIGZvciBfcmVwbGFjZS4KCjIwMDktMDYtMjMgMTI6NTY6NTkgKzAyMDAgIENoYWQgSGFubmEgPGNoYW5uYUBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBHQVAgZmxhZyBzdXBwb3J0CgkgIGNhcHNmaWx0ZXIgZG9lc24ndCBhY3R1YWxseSB0b3VjaCB0aGUgZGF0YSBzbyB3ZSBkb24ndCB3YW50IHRoZSBHQVAgZmxhZyB0bwoJICBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtLgoJICBGaXhlcyBidWcgIzU4NjU2Ni4KCjIwMDktMDYtMjMgMTA6MDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgYnl0ZSByZWFkZXIgbWV0aG9kcwoKMjAwOS0wNS0yMiAxNDo0NzozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgYSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igc3RyaW5ncyBhbmQgYSBkYXRhIGR1cCBmdW5jdGlvbgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjE2CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYzMgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZ191dGY4CgkgIEFuZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMuIEZpeGVzICM1ODY1NjguCgoyMDA5LTA2LTIyIDE4OjE3OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0YWcgZGVzY3JpcHRpb24KCjIwMDktMDYtMjEgMDA6MjY6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGZpeCBjcmFzaCBhbmQgbGVhayBpbiBidWZmZXJsaXN0cyB1bml0IHRlc3QKCSAgRG9uJ3QgYWNjZXNzIGFscmVhZHktZnJlZWQgaXRlcmF0b3IsIG1ha2VzIGNoZWNrLXZhbGdyaW5kIHdvcmsgYW5kIGZpeGVzCgkgIGNyYXNoIG9uIFBQQzsgdW5yZWYgYnVmZmVyIHdlJ3JlIGdvaW5nIHRvIHN0ZWFsIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA5LTA2LTIxIDAwOjA5OjUzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IEZpeCBpbmRlbnQsIGFuZCByZWYgdGhlIGdzdF9idWZmZXJfbGlzdF9pdGVtX2dldF90eXBlKCkgY2xhc3MKCSAgRml4IHRoZSBjaGVjayB0ZXN0cyBieSByZWZmaW5nIHRoZSBHc3RCdWZmZXJMaXN0IGNsYXNzLiBSdW4gZ3N0LWluZGVudAoJICB0byBtYWtlIGdpdCBoYXBweSBhYm91dCBzb21lIGV4aXN0aW5nIHN0dWZmCgoyMDA5LTA2LTE5IDIxOjAzOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggYnJva2VuIGZsYWdzIHRvIGZsYWcgc3RyaW5nIHNlcmlhbGlzYXRpb24KCSAgZS5nLiBjZHBhcm5vaWFzcmMgd291bGQgc2hvdyBmcmFnbWVudHxmdWxsIGZvciBhIGZsYWdzIHZhbHVlIG9mIDIuCgoyMDA5LTA2LTE5IDE5OjM1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgYnVmZmVyLWxpc3Qgc3VwcG9ydAoKMjAwOS0wNi0xOSAxOToyNDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IHJlbW92ZSBvbGQgZW51bSBmcm9tIGRvY3MKCjIwMDktMDYtMTkgMTQ6NDU6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZGVmaW5lIF9fZ3N0X2RlYnVnX21pbiB0byBMT0dfTEVWRUxfTk9ORSBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgSnVzdCBpbiBjYXNlIHNvbWVvbmUgd2hvIGNsZWFybHkgY2FuJ3QgYmUgZGV0ZXJyZWQgYnkgYW55IG51bWJlciBvZiBsZWFkaW5nCgkgIHVuZGVyc2NvcmVzIHVzZXMgdGhpcyB2ZXJ5IHByaXZhdGUgYnV0IHN0aWxsIHNvbWV3aGF0IGRvY3VtZW50ZWQgc3ltYm9sCgkgIGRpcmVjdGx5IGluIHRoZWlyIGNvZGUgKCpjb3VnaCogcXRkZW11eCAqY291Z2gqKS4KCjIwMDktMDYtMTkgMTU6Mjk6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogVmFyaW91cyBjbGVhbnVwcwoJICBBZGQgbmV3IG1ldGhvZCB0byBpdGVyYXRlIGEgYnVmZmVybGlzdCB3aXRob3V0IGhhdmluZyB0byBhbGxvY2F0ZSBhbiBpdGVyYXRvci4KCSAgQWRkIGNvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiBpdGVtIGZyb20gdGhlIGxpc3QgYmFzZWQgb24gdGhlIGdyb3VwIGFuZAoJICBpbmRleC4KCSAgUmVtb3ZlIHJlZHVuZGFudCBfZG9fZGF0YSBjYWxsYmFjayBhbmQgbWV0aG9kLgoJICBVcGRhdGUgdW5pdC10ZXN0cyBhbmQgYWRkIHNvbWUgbW9yZSBmb3IgdGhlIG5ldyBtZXRob2RzLgoKMjAwOS0wNi0xOSAxNDoxMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IG1ha2UgZ3RrLWRvYyBoYXBweQoKMjAwOS0wNi0xOSAxMzo1MTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCjIwMDktMDYtMTkgMTM6NDg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBjbGVhbiB1cCBzb21lIG1vcmUgZXJyb3IgYW5kIGRlYnVnIG1lc3NhZ2VzCgoyMDA5LTA2LTE5IDEzOjQyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrcG9vbDogZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIGluIGNhc2UgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTA2LTE5IDEzOjQwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBleHBvcnQgb2YgR1NUX0NBVF9CVUZGRVJfTElTVCB3aGVuIC0tZ3N0LWRpc2FibGUtZGVidWcgaXMgdXNlZAoJICBNb3ZlIGFsbCB0aGUgY2F0ZWdvcmllcyB0byBleHBvcnQgdG8gb25lIHNpbmdsZSBwbGFjZSwgc28gd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVwZGF0ZSBvciBhZGQgdmFycyBpbiBvbmUgcGxhY2UgYnV0IG5vdCB0aGUgb3RoZXIuCgoyMDA5LTA2LTE4IDE2OjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdXNlIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLgoJICBXZSBuZWVkIHRvIHVzZSB0aGUgcGFkIHByaXZhdGUgZmxhZyBiZWNhdXNlIHRoZSBvdGhlciBwYWQgZmxhZyBpcyBwcm90ZWN0ZWQgd2l0aAoJICB0aGUgcGFkIGxvY2sgaW5zdGVhZC4KCjIwMDktMDYtMTggMTY6NDE6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBQcm9wZXJseSBoYW5kbGUgZmx1c2hpbmcgcGFkcy4KCSAgSWYgYSBwYWQgaXMgZmx1c2hpbmcsIGl0IHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhcyBlaXRoZXIgZW9zIG9yCgkgIGNvbnRhaW5pbmcgZGF0YS4KCjIwMDktMDYtMTggMTE6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggZXJyb3IgbWVzc2FnZQoJICBVc2VycyBzaG91bGQgbmV2ZXIgc2VlIHRoZSB0ZXJtICdmaWxlIGRlc2NyaXB0b3InLCBtdWNoIGxlc3MgYSBmaWxlCgkgIGRlc2NyaXB0b3IgbnVtYmVyLCBpbiBhbiBlcnJvciBtZXNzYWdlLiBQdXQgdGhhdCBpbnRvIHRoZSBkZWJ1ZwoJICBzdHJpbmcgaW5zdGVhZCBhbmQgdXNlIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UuCgoyMDA5LTA2LTE4IDExOjQ5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBhZGQgdGhlIG5ldyBmaWVsZCBpbiB0aGUgaGVhZGVyCgoyMDA5LTA2LTE4IDEwOjU1OjM5ICswMjAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4gYXQgZ2FpZ25hcmQubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBtYWtlIGZkc2luayBzZWVrYWJsZQoJICBJbXBsZW1lbnQgdGhlIHNhbWUgbG9naWMgYXMgZmlsZXNpbmsgdG8gaW1wbGVtZW50IHNlZWtpbmcuCgkgIEZpeGVzICM1Nzg5MDgKCjIwMDktMDYtMTcgMTY6NDU6MTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IG1vdmVkIHRoZSBjbG9jayB1bnJlZiB0byB0aGUgcmlnaHQgcGxhY2UKCjIwMDktMDYtMTcgMTY6MTc6MjcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IHVucmVmIHRoZSBjbG9jayB3aGVuIHRoZSBlbGVtZW50IGNoYW5nZXMgdG8gbnVsbCBzdGF0ZQoKMjAwOS0wNi0xNyAwMDoyOTo0MCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIFJlcGxhY2VkIGRlcHJlY2F0ZWQgd2luMzItY29tcGF0aWJpbGl0eSBmdW5jdGlvbiB3aXRoIHVuZGVwcmVjYXRlZCBvbmUuCgkgIEZpeGVzICM1NjA0NDIuCgoyMDA5LTA2LTE2IDE4OjMyOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogc3dhcCB0aGUgbGluZXMgb2YgbXkgcHJldmlvdXMgY29tbWl0CgkgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gbXkgcHJldmlvdXMgY29tbWl0IHRoYXQgcmVsZWFzZWQgdGhlCgkgIGNsb2NrIHByb3ZpZGVyIGFuZCBhZnRlciB1c2VkIGl0IHRvIGNyZWF0ZSB0aGUgY2xvY2sgbG9zdCBtZXNzYWdlLgoKMjAwOS0wNi0xNiAxNzo1MToxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHJlbW92ZSBjbG9jayByZWZlcmVuY2VzIHdoZW4gY2xvY2sgbG9zdCBoYXBwZW5zCgkgIFJlbW92ZSByZWZlcmVuY2UgdG8gY2xvY2sgYW5kIGNsb2NrIHByb3ZpZGVyIHN0b3JlZCBpbiB0aGUgYmluCgkgIHdoZW4gdGhlIGNsb2NrcHJvdmlkZXIgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIGJpbi4KCjIwMDktMDYtMTYgMTM6MzQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgU2luY2UgdGFnIGZvciBuZXcgbWV0aG9kCgoyMDA5LTA2LTE2IDEzOjMyOjM3ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdAoJICBGaXhlcyAjNTg1OTYwCgoyMDA5LTA2LTE2IDExOjM0OjU0ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFkZCBzdXBwb3J0IGZvciBHc3RCdWZmZXJMaXN0cwoJICBGaXhlcyAjNTg1ODM0CgoyMDA5LTA2LTE2IDExOjIxOjQyICswMjAwICBDaHJpc3RvcGhlciBIYWxzZSBSb2dlcnMgPGNoYWxzZXJvZ2VycyBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEV4cGxpY2l0bHkgbWVudGlvbiByZWZjb3VudGluZyBpbiBkb2NzCgkgIEZpeGVzICM1ODU5MzgKCjIwMDktMDYtMTYgMDg6NDM6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHhtbDogZml4IChkZSlzZXJpYWxpc2F0aW9uIG9mIHByb3BlcnRpZXMgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUKCSAgc291cGh0dHBzcmMgaGFzIGEgcHJvcGVydHkgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUsIHdoaWNoIGNhdXNlcyBhbgoJICBhc3NlcnRpb24gd2hlbiBzZXJpYWxpc2luZyBpdCB0byB4bWwuIEZpeGVzICM1ODUxMzcuCgoyMDA5LTA2LTE1IDIwOjExOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBjb21waWxlciBzdWdnZXN0cyB0byBhZGQgc29tZSAoKSB0byBpbmRpY2F0ZSBpZiB0aGUgJiYgb3IgdGhlIHx8IHRha2VzCgkgIHByaW9yaXR5LCBzbyByZWZsb3cgY29kZSBhIGJpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGFkZCB5ZXQgYW5vdGhlciBsYXllcgoJICBvZiAoKS4gSG9wZWZ1bGx5IHRoaXMgd2FzIHRoZSBpbnRlbmRlZCBtZWFuaW5nIG9mIHRoZSBjb2RlLgoKMjAwOS0wNi0xMSAxNTowMDo1MiArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkb24ndCBsb2NrIHdoZW4gbWluLXRocmVzaG9sZCBhbmQgbWF4LXNpemUgY29uZmxpY3QuCgkgIFdoZW4gbWluLXRocmVzaG9sZCBpcyBzZXQgb24gYSBxdWV1ZSwgaXQgaXMgcG9zc2libGUgdGhhdCBvbmUgb2YKCSAgdGhlIG1pbmltYSByZW1haW5zIHVuc2F0aXNmaWVkIHdoaWxlIG9uZSBvZiB0aGUgbWF4aW1hIGlzIGFscmVhZHkKCSAgcmVhY2hlZC4gVGhlcmVmb3JlLCBhbHdheXMgY29uc2lkZXIgdGhlIHF1ZXVlIG5vbi1lbXB0eSBpZiBpdCBpcyBmdWxsLgoJICBGaXhlcyAjNTg1NDMzLgoKMjAwOS0wNi0xNSAxODo0NDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGNvcnJlY3RseQoJICBXaGVuIHRoZSBjb250aW51ZSBmdW5jdGlvbiBpcyBzY2hlZHVsZWQsIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIG5leHQgc3RhdGUgaW5zdGVhZAoJICBvZiB0aGUgcGVuZGluZyBzdGF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBmaXhlcyAjNTg1NTY5CgoyMDA5LTA2LTE1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IC5oIGluZGVudGF0aW9uCgoyMDA5LTA2LTE1IDE4OjQzOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMDktMDYtMTUgMTg6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRlYnVnOiBhZGQgc29tZSBtb3JlIGRlYnVnIHRvIGVsZW1lbnQgYW5kIHBhZHMKCjIwMDktMDYtMTQgMTY6NTY6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZml4IGluY2x1ZGUgb3JkZXIgdG8gZ2V0IGNvbmZpZy5oIGJlZm9yZSBfbWluZ3cuaAoJICBjb25maWcuaCBtdXN0IGFsd2F5cyBiZSBpbmNsdWRlZCBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGVzLCBlaXRoZXIKCSAgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB2aWEgZ3N0X3ByaXZhdGUuaC4gRml4ZXMgIzU4NTczMy4KCjIwMDktMDYtMTQgMTY6MTc6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBuZXcgdGFnbGlzdCB3aXRoIHRhZ3MgaW4gb25lIGdvCgkgIEFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZyBsaXN0IGFuZCBzZXQgdGFncyBpbiBvbmUgZ28sIHdoaWNoCgkgIGlzIG5pY2UgZm9yIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIGZ1bmN0aW9ucyB0aGF0IHRha2Ugb3duZXJzaGlwIG9mCgkgIHRoZSB0YWdsaXN0LCBzdWNoIGFzIGdzdF9ldmVudF9uZXdfdGFnKCkgb3IgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpLgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGwoKQoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGxfdmFsaXN0KCkKCjIwMDktMDYtMTMgMTQ6NTU6NDMgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBnaXQtdmVyc2lvbi5zaDogbWFrZSBleGVjdXRhYmxlCgoyMDA5LTA2LTEzIDE0OjUzOjI0ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBVcGRhdGUgc2NyaXB0cy9jdnMtdXBkYXRlLnNoIHRvIGdpdC11cGRhdGUuc2g7IGFkZCBnaXQtdmVyc2lvbi5zaAoJICBhZGQgc2NyaXB0IHRvIGdldCBnaXQgdmVyc2lvbnMKCSAgZmlyc3QgdXBkYXRlIGFsbCwgdGhlbiBidWlsZAoJICBhZGQgZ25vbmxpbiB0b28KCSAgc3BlY2lmeSB3aGVyZSB0byBwdWxsIGZyb20KCSAgYWxzbyB1cGRhdGUgc3VibW9kdWxlCgkgIHJlbmFtZSBhbmQgY2hhbmdlIGN2cy11cGRhdGUgc2NyaXB0IHRvIGdpdC11cGRhdGUKCjIwMDktMDYtMTIgMTg6MzY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgkgIEFkZCBhIHBhdHRlcm4gc2NhbiBmdW5jdGlvbiBzaW1pbGFyIHRvIHRoZSBvbmUgcmVjZW50bHkgYWRkZWQgdG8KCSAgR3N0QWRhcHRlciwgYW5kIGEgdW5pdCB0ZXN0IChiYXNlZCBvbiB0aGUgYWRhcHRlciBvbmUpLgoJICBGaXhlcyAjNTg1NTkyLgoJICBBUEk6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCjIwMDktMDQtMTcgMTc6NTk6MzggKzAzMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBub2tpYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHJlbWFpbmluZyAtLWRpc2FibGUtZ3N0LWRlYnVnIEFCSSBicmVha2FnZS4KCSAgRml4ZXMgIzU3OTE3Ny4KCjIwMDktMDYtMTIgMTc6NTE6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogdHVybiB0aGUgYnVzIG1lc3NhZ2VzIGludG8gZ193YXJuaW5nCgkgIEl0cyBhIHByb2dyYW1taW5nIGVycm9yLgoKMjAwOS0wNi0xMiAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBkb2NzCgoyMDA5LTA2LTEyIDEzOjE4OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgc3RlcHBpbmc6IG1vcmUgc3RlcHBpbmcgaW1wcm92ZW1lbnRzCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIHdpdGggc3RlcC1zdGFydCBkb2NzLgoJICBBZGQgZW9zIGZpZWxkIHRvIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIHdoZW4gc3RlcHBpbmcgaW4gcmV2ZXJzZSwgdXBkYXRlIHRoZSBzZWdtZW50IHRpbWUgZmllbGQuCgkgIEZsdXNoIG91dCB0aGUgY3VycmVudCBzdGVwIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoKMjAwOS0wNi0xMCAxNTo1MTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3Qgc3RlcC1zdGFydAoJICB3aGVuIHdlIGNsaXAsIGFsc28gc3RvcCB0aGUgc3RlcHBpbmcuCgkgIERvbid0IGRvIFFvUyB3aGVuIHN0ZXBwaW5nCgkgIFBvc3Qgc3RlcC1zdGFydCB3aGVuIHF1ZXVlaW5nIGFuZCBhY3RpdmF0aW5nIHRoZSBzdGVwLgoKMjAwOS0wNi0xMCAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBzdGVwLXN0YXJ0IG1lc3NhZ2UKCjIwMDktMDYtMTEgMTQ6MTg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtb3JlIGVmZmljaWVudCB2YWx1ZSB0YWJsZSBsb29rdXAgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIFNtYWxsIG1pY3JvLW9wdGltaXNhdGlvbjogbG9vayB1cCB2YWx1ZSB0YWJsZSBmb3IgZnVuZGFtZW50YWwgdHlwZXMKCSAgdmlhIGFuIGFycmF5IGRlZGljYXRlZCB0byBmdW5kYW1lbnRhbCB0eXBlcyBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2gKCSAgYSBoYXNoIHRhYmxlIGxvb2t1cC4gU2luY2UgdGhlcmUgY2FuIGJlIG9ubHkgMjU1IGZ1bmRhbWVudGFsIHR5cGVzLAoJICB0aGUgdGFibGUgc2l6ZS9lZmZpY2llbmN5IHRyYWRlLW9mZiBzaG91bGQgYmUgYWNjZXB0YWJsZSwgZXNwLiBzaW5jZQoJICB0aGUgbW9zdCBjb21tb25seS11c2VkIHR5cGVzIGFyZSBhbGwgZnVuZGFtZW50YWwgdHlwZXMuIFRoZSBzaXplIG9mCgkgIHRoZSB0YWJsZSBjb3VsZCBwcm9iYWJseSBiZSBtaW5pbWlzZWQgZnVydGhlciBpZiBuZWVkZWQgYnkgYWxsb2NhdGluZwoJICB0aGUgdGFibGUgZHluYW1pY2FsbHkgYW5kIG9ubHkgZXhwYW5kaW5nIGl0IG9uIGRlbWFuZC4KCjIwMDktMDYtMTEgMTM6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBkb24ndCBwdXQgR1R5cGVzIGludG8gaW50IHZhcmlhYmxlcwoJICBHVHlwZXMgYXJlIG5vdCBpbnRzIGFuZCBhcyBzdWNoIGFyZSBub3QgZ3VhcmFudGVlZCB0byBmaXQgaW50byBhbiBpbnQKCSAgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBmdW5kYW1lbnRhbCB0eXBlcyksIHNvIHdlIHJlYWxseSBzaG91bGRuJ3QgcHV0CgkgIHRoZW0gaW50byBpbnQgdmFyaWFibGVzLiBFdmVuIGlmIGEgcmF0aGVyIHVubGlrZWx5IG9ic2N1cmUgY29ybmVyIGNhc2UsCgkgIHRoaXMgaGFzIGFjdHVhbGx5IGJlZW4gYSBwcm9ibGVtIGF0IHNvbWUgcG9pbnQgaW4gdGhlIHBhc3QsIHNlZSBjb21taXQKCSAgOTlmMTY2NTVmNGNmYmM4ZTA2YjU5NzI0MTdiYTExMjc5MDgzYTY0ZS4KCjIwMDktMDYtMTEgMTc6MDM6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogaW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2UgYSBiaXQgKHdyb25nIHN0YXRlKQoJICBVbmlmeSBhbmQgdHVybiB0aG9zZSBpbnRvIGVsZW1lbnQgd2FybmluZ3MuCgoyMDA5LTA2LTExIDE0OjAwOjA5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgVXNlIChncG9pbnRlcikgaW5zdGVhZCBvZiAoZ3BvaW50ZXIgKikgdG8gZml4IGEgc3RyaWN0LWFsaWFzaW5nIGJ1aWxkIHdhcm5pbmcuCgoyMDA5LTA2LTExIDEzOjE2OjI5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSAgZG9jczogQnVtcCBjb21tb24sIGZpeCB0aGUgdXBsb2FkIGxvZ2ljIGluY2x1c2lvbgoJICBVcGRhdGUgdGhlIGNvbW1vbiBzdWJtb2R1bGUsIGFuZCBmaXggdGhlIGRvY3MgdXBsb2FkIHJ1bGVzIHRvIGluY2x1ZGUKCSAgdGhlIHJpZ2h0IG1ha2VmaWxlIHNuaXBwZXQgZnJvbSBjb21tb24uCgoyMDA5LTA2LTA5IDExOjEzOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXNlIHRoZSBzbGljZSBhbGxvY2F0b3IgZm9yIE11bHRpUXVldWVJdGVtcwoKMjAwOS0wNi0xMCAyMDoyOTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIE1ha2Ugc3VyZSBjb25maWcuaCBpcyBvbmx5IGluY2x1ZGVkIG9uY2UKCSAgRml4ZXMgYnVpbGQgcHJvYmxlbSBvbiB3aW4zMiAoIzU4NTA3NSkuCgoyMDA5LTA2LTEwIDE4OjA1OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIHNpbmNlOiB0YWdzIGZvciB0aGUgYXBpIGRvY3MuCgkgIFRoZSBwcmV2aW91cyByZWxhdGVkIGNvbW1pdCBhZGRlZCBuZXcgQVBJLgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2dldF9jYWNoZV9kYXRhLCBnc3RfcGx1Z2luX3NldF9jYWNoZV9kYXRhCgoyMDA5LTA2LTEwIDEyOjAyOjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogZml4IGxlYWtzIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTg0Mzg5CgoyMDA5LTA2LTA4IDIzOjQzOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlXypfZ2V0KigpIHZhcmFyZyBmdW5jdGlvbnMKCSAgQWRkIGEgYnVuY2ggb2YgdmFyYXJnIGdldHRlciBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gY29tcGxlbWVudAoJICB0aGUgdmFyYXJnIHNldHRlciBmdW5jdGlvbnMsIGFuZCBhIGJhc2ljIHVuaXQgdGVzdC4gRml4ZXMgIzUzNDIwOC4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbGlzdCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXRfdmFsaXN0KCkKCjIwMDktMDYtMDkgMDA6MTY6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogYSBmZXcgc21hbGwgQVBJIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA5LTA2LTA4IDE5OjMzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGxvZ2dpbmc6IHdoZW4gbG9nZ2luZyB0YWdsaXN0cywgc2hvcnRlbiBsb25nIGJ1ZmZlciBkdW1wcwoJICBEb24ndCBkdW1wIGh1bmRyZWRzIG9mIGtCIG9mIGhleGRhdGEgaW50byBkZWJ1ZyBsb2dzIHdoZW4gY29udmVydGluZwoJICB0YWdsaXN0cyBjb250YWluaW5nIGh1Z2UgaW1hZ2VzIGludG8gYSBzdHJpbmcuIEluc3RlYWQsIHNob3J0ZW4gdGhlCgkgIGJ1ZmZlciBkYXRhIHNvIHRoYXQgdGhlIHN0cmluZyBpcyBzdGlsbCByZWFkYWJsZSBhbmQgZGVidWcgbG9ncwoJICBzdGF5IG1hbmFnYWJsZS4gQ2FuIGJlIHR1cm5lZCBvZmYgd2l0aCBHU1RfREVCVUdfT1BUSU9OUz1mdWxsLXRhZ3MuCgkgIFNlZSAjNTg0OTg4LgoKMjAwOS0wNi0wOSAxMzowNzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjaGVjayBieXRlIHJhbmdlIGV2ZW4gd2hlbiB3ZSBoYXZlIHRpbWVzdGFtcHMKCSAgQXMgZm91bmQgYnkgdGhheXRhbiBvbiBJUkMuCgkgIEFsc28gY2hlY2sgdGhlIGJ5dGUgbGltaXQsIGV2ZW4gaWYgd2UgaGF2ZSB0aW1lc3RhbXBzIGJlY2F1c2UgdGhlcmUgbWlnaHQganVzdAoJICBub3QgYmUgYSB0aW1lIGxpbWl0LgoKMjAwOS0wNi0wOSAxMjowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVwZGF0ZSBzZWdtZW50IHN0YXJ0L3N0b3AgZm9yIGNsaXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgc3RlcHBpbmcsIHN0b3JlIHRoZSBzdGFydC9zdG9wIHZhbHVlcyBvZiB0aGUgc2VnbWVudCBiZWZvcmUgd2UKCSAgaW5zdGFsbCBuZXcgc3RhcnQvc3RvcCB2YWx1ZXMgZm9yIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBzdGVwcy4KCSAgZm9yIG5vbi1mbHVzaGluZyBzdGVwcywgdXBkYXRlIHRoZSBlbGVtZW50IHN0YXJ0IHRpbWUuIEZvciBmbHVzaGluZyBzdGVwcywgaXQKCSAgZG9lcyBub3QgY2hhbmdlIGJlY2F1c2UgcnVubmluZ190aW1lIGRvZXMgbm90IGFkdmFuY2UKCSAgTWFrZSBzdXJlIHdlIGFsd2F5cyBwZXJmb3JtIHRoZSBzdG9wX3N0ZXBwaW5nIG9wZXJhdGlvbnMgZXZlbiB3aGVuIHdlIGRyb3AKCSAgZnJhbWVzLgoKMjAwOS0wNi0wOSAxMDoyNTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvIHByb3BlciBjbGlwcGluZyBpbiBzdGVwcGluZwoJICBVcGRhdGUgdGhlIHN0b3AgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc28gdGhhdCB3ZSBjbGlwIGNvcnJlY3RseS4KCSAgQWZ0ZXIgY2xpcHBpbmcgaW4gbm9uLWZsdXNoaW5nIG1vZGUsIHJlcmVuZGVyIHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlci4KCjIwMDktMDYtMDkgMTA6MjM6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtYWtlIGNvbnZlcnNpb24gbW9yZSBwcmVjaXNlCgkgIE1ha2Ugc3VyZSB0aGUgY29udmVyc2lvbiBmcm9tIGFuZCB0aGUgY29udmVyc2lvbiB0byBnaXZlIHRoZSBzYW1lIHJlc3VsdHMuCgoyMDA5LTA2LTA4IDE1OjM5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZ3N0X3V0aWxfdWludDY0X3NjYWxlKigpIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgU3ByaW5rbGUgR19MSUtFTFkvR19VTkxJS0VMWTsgYWRkIGlubGluZWQgX3NjYWxlX2ludF91bmNoZWNrZWQoKQoJICBzbyB3ZSBkb24ndCBkbyBzb21lIGNoZWNrcyB0d2ljZSB3aGVuIGNhbGxpbmcgaXQgZnJvbSBfc2NhbGUoKS4KCjIwMDktMDYtMDcgMjI6NDk6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBSZW1vdmUgZG91YmxlIHNlbWljb2xvbnMgYXQgZW5kIG9mIGxpbmUKCjIwMDktMDYtMDggMTc6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHN0ZXBwaW5nOiBkbyBmbHVzaGluZyBzdGVwcyBjb3JyZWN0bHkKCSAgTm90ZSBpbiB0aGUgZG9jcyB0aGF0IGEgZmx1c2hpbmcgc3RlcCBpbiBQTEFZSU5HIGJyaW5ncyB0aGUgcGlwZWxpbmUgdG8gdGhlIGxvc3QKCSAgc3RhdGUgYW5kIHNraXBzIHRoZSBkYXRhIGJlZm9yZSBwcmVyb2xsaW5nIGFnYWluLgoJICBJbXBsZW1lbnQgdGhlIGZsdXNoaW5nIHN0ZXAgY29ycmVjdGx5IGJ5IGludmFsaWRhdGluZyB0aGUgY3VycmVudCBzdGVwCgkgIG9wZXJhdGlvbiwgd2hpY2ggd291bGQgYWN0aXZhdGUgdGhlIG5ldyBzdGVwIG9wZXJhdGlvbi4KCjIwMDktMDYtMDggMTY6MTY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENoYW5nZSBhd2t3YXJkIHdvcmRpbmcgaW4gYSB0cmFuc2xhdGVhYmxlIG1lc3NhZ2UuCgoyMDA5LTA2LTA4IDE2OjI3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIG5vbi1mbHVzaGluZyBzdGVwcwoJICBBZGQgc3VwcG9ydCBmb3Igbm9uLWZsdXNoaW5nIHN0ZXBzIGFuZCB3aXRoIGRpZmZlcmVudCByYXRlcy4KCSAgQ2xlYXIgc3RlcCBpbmZvIHdoZW4gZmx1c2hpbmcKCjIwMDktMDYtMDcgMjM6NDY6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGFsbG93IHBsdWdpbnMgdG8gY2FjaGUgZXh0cmEgZGF0YSBpbiByZWdpc3RyeS4gRml4ZXMgIzU3MDIzMwoJICBBZGQgYSBHc3RTdHJ1Y3R1cmUgdG8gR3N0UGx1Z2luLiBQbHVnaW5zIGNhbiByZXRpZXZlIGl0IGluIHBsdWdpbl9pbml0IGFuZAoJICBhY2Nlc3MgdGhlIGNhY2hlZCBpbmZvIG9yIGJ1aWxkIHRoZSBjYWNoZSBhbmQgc3RvcmUgaXQgdGhlcmUuCgoyMDA5LTA2LTA3IDIyOjA5OjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGRvbid0IHJlY3JlYXRlIGZlYXR1cmVzIG9uIGZpcnN0IHVzZS4gRml4ZXMgIzU4NDM4OQoJICBUaGUgZmlyc3QgdGltZSBvbmUgY2FsbHMgZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIGdzdCByZWNyZWF0ZXMgdGhlIHBsdWdpbgoJICBmZWF0dXJlIGFuZCB0aGUgZWxlbWVudCBmYWN0b3J5LiBBcyBhIHNpZGUgZWZmZWN0IHdlIHJlZiB0aGUgY2xhc3MgdG8gZmlsbAoJICBpbiBkZXRhaWwgd2UgYWxyZWFkeSBoYXZlIGZpbGxlZCBmcm9tIHRoZSByZWdpc3RyeSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzCgkgIHRoZSBiZWhhdmlvdXIgdG8ganVzdCB1cGRhdGUgdGhlIGV4aXN0aW5nIGVudHJpZXMuIFRoZSBmYWN0b3J5IGlzIG5vdyBhdHRhY2hlZAoJICB0byB0aGUgdHlwZSBhbmQgc2V0IGluIGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCgpLgoKMjAwOS0wNi0wNyAyMjoyMDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIHN0cmVhbXMgZXhhbXBsZQoJICBEZXRlY3QgcHRocmVhZHMuaCBpbiBjb25maWd1cmUuYWMKCSAgT25seSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUgd2hlbiBwdGhyZWFkcy5oIGlzIHByZXNlbnQuCgkgIEZpeGVzICM1ODUwMzkKCjIwMDktMDYtMDcgMTc6MzI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlbW92ZSB0eXBlIGNoZWNrcyBhbmQgcmVkdW5kYW50IGNvZGUKCjIwMDktMDYtMDcgMTU6NDM6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBmcmFjdGlvbiByYW5nZSBsY29weSBmdW5jdGlvbgoJICBUaGlzIGZ1bmN0aW9uIHNlZW1zIHRvIGJlIGJyb2tlbiBmb3IgMy41IHllYXJzLiBMdWNraWx5IG5vYm9keSBldmVyIHRyaWVkIHRvCgkgIG1ha2UgYSBmcmFjdGlvbiByYW5nZSBvYmplY3QgcHJvcGVydHkuLi4KCjIwMDktMDYtMDcgMTU6MzU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cwoJICBBZGQgYSBHVHlwZS0+R3N0VmFsdWVUYWJsZSBoYXNodGFibGUgbWFwcGluZy4KCSAgQXZvaWQgX2dldF90eXBlKCkgbXVsdGlwbGUgdGltZXMgd2hlbiB3ZSBjYW4uCgkgIFVzZSBHU2xpY2UgZm9yIGZyYWN0aW9uIHJhbmdlIGR5bmFtaWMgbWVtb3J5CgkgIEFkZCBHX0xJS0VMWSB3aGVuIHdlIGNhbgoJICBJbXByb3ZlIGxvb2t1cCBvZiB0aGUgdmFsdWUgdGFibGUgdXNpbmcgdGhlIGhhc2h0YWJsZQoKMjAwOS0wNi0wNyAxNDozMDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBubyBuZWVkIHRvIGNsZWFyIG9uIGluaXQKCSAgV2UgZG9uJ3QgbmVlZCB0byBjbGVhciB0aGUgZmllbGQgb24gaW5pdCBiZWNhdXNlIHdlIHdpbGwgZG8gdGhhdCBhZ2FpbiBiZWZvcmUgd2UKCSAgYXJlIGdvaW5nIHRvIHVzZSB0aGUgZmllbGQgbGF0ZXIuCgoyMDA5LTA2LTA1IDIwOjU3OjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IEZpeCBzb21lIG1lbW9yeSBsZWFrcy4gU3ByaW5rbGUgR19MSUtFTFkvVU5MSUtFTFkKCSAgRml4IHNvbWUgbWVtb3J5IGxlYWtzIHNob3duIGJ5IHRoZSBuZXcgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gdW5pdAoJICB0ZXN0LiBTcGxpdCB0aGUgZ3N0X3N0cmluZ193cmFwIGZ1bmN0aW9uIGluIGdzdHZhbHVlLmMgaW50byBjb21wb25lbnRzIGFuZAoJICB1c2UgdGhlbSB0byBtYWtlIGdzdF9zdHJpbmdfdGFrZV9hbmRfd3JhcCwgd2hpY2ggdGFrZXMgb3duZXJzaGlwIG9mIHRoZQoJICBzdHJpbmcsIGF2b2lkaW5nIGEgc3RyZHVwLgoJICBBZGQgc29tZSBHX0xJS0VMWS9VTkxJS0VMWSwgYW5kIGNsZWFuIHVwIHNvbWUgbGVha3MgaW4gZXJyb3IgcGF0aHMuCgoyMDA5LTA2LTA1IDExOjM3OjI0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXBseSB0byBRVUVSWV9TRUVLSU5HIHdpdGggb3JpZ2luYWwgZm9ybWF0LiAgRml4ZXMgIzU4NDgzOC4KCjIwMDktMDYtMDQgMTk6NDQ6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBjb25maWd1cmU6IHJlbW92ZSBBQ19DX0lOTElORSBhbmQgdXBkYXRlIHdpbjMyIGZpbGVzIHRvIGdpdAoJICBSZW1vdmUgQUNfQ19JTkxJTkUgY2hlY2ssIHNvIHdlIGRvbid0IGVuZCB1cCB3aXRoIGFuICN1bmRlZiBpbmxpbmUgaW4KCSAgY29uZmlnLmgsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyB3aXRoIHNvbWUgdmVyc2lvbnMgb2YgTVNDViBhcHBhcmVudGx5LgoJICBHTGliIGRlZmluZXMgaW5saW5lIGZvciB1cyBpbiBhIHN1aXRhYmxlIHdheSBhbHJlYWR5IGFueXdheS4KCSAgRml4ZXMgIzU4NDgzNS4KCSAgV2hpbGUgd2UncmUgYXQgaXQsIGFsc28gdXBkYXRlIHRoZSBvdGhlciB3aW4zMiBmaWxlcyB0byBnaXQgKGJ1bXAKCSAgdmVyc2lvbiwgYWRkIG5ldyBkZWZpbmVzIGFuZCBlbnVtcykuCgoyMDA5LTA2LTA0IDE4OjI2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhdm9pZCBleGNlc3NpdmUgbm90aWZ5IGZvciBjYXBzCgkgIEF2b2lkIGFuIG9iamVjdCBwcm9wZXJ0eSBub3RpZnkgaWYgdGhlIGNhcHMgb24gdGhlIG90aGVyIHBhZCB3ZXJlIGFscmVhZHkKCSAgc2V0IChhbmQgdGh1cyBub3RpZmllZCkuCgoyMDA5LTA2LTA0IDE3OjI3OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGNsaXBwZWQgc3RhcnQvc3RvcCBhZnRlciBzdGVwCgkgIFVzZSB0aGUgc2VnbWVudCBoZWxwZXJzIHRvIGdldCBhIG1vcmUgYWNjdXJhdGUgY2xpcHBlZCBzdGFydC9zdG9wIHBvc2l0aW9uIGFmdGVyCgkgIGEgc3RlcHBpbmcgb3BlcmF0aW9uIGVuZGVkLgoKMjAwOS0wNi0wNCAxMjozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBtb3JlIGNvcnJlY3Qgc2VnbWVudCBtZXRob2RzCgkgIFVzZSB0aGUgbW9yZSBjb3JyZWN0IG5ldyBzZWdtZW50IG1ldGhvZHMgZm9yIHVwZGF0aW5nIHRoZSBzZWdtZW50IGJlZm9yZSBhbmQKCSAgYWZ0ZXIgYSBzdGVwLgoKMjAwOS0wNi0wNCAxMjo0ODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgZ3N0X3NlZ21lbnRfc2V0X3J1bm5pbmdfdGltZQoJICBBZGRlZCBuZXcgbWV0aG9kIGZvciBjbG9zaW5nIHRoZSBzZWdtZW50IHRvIGEgc3BlY2lmaWMgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUoKQoKMjAwOS0wNi0wNCAwMDozNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIHN0cmluZyBjaGFuZ2VzCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHBlb3BsZSB3aG8gZ2V0IHRoZW1zZWx2ZXMgYSBmcmVzaCBjaGVja291dAoJICBkb24ndCBpbW1lZGlhdGVseSBoYXZlIGNoYW5nZWQgKnBvIGZpbGVzIGFmdGVyIHJ1bm5pbmcgbWFrZSwgd2hpY2gKCSAgd291bGQgY2F1c2UgYSBiaXQgb2YgaGFzc2xlIG5leHQgdGltZSB0aGUgZmlsZXMgYXJlIHVwZGF0ZWQuIEJldHRlcgoJICB0byBrZWVwIHRoZW0gdXAtdG8tZGF0ZSB3aGVuIHN0cmluZ3MgY2hhbmdlLgoKMjAwOS0wNi0wNCAwMDo1NDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZXJyb3JzOiByZXdvcmQgc3RhdGUgY2hhbmdlIGZhaWxlZCBlcnJvciBtZXNzYWdlIGFuZCByZW1vdmUgYnVnemlsbGEgbGluawoJICBSZXdvcmQgdGhpcyBtZXNzYWdlIGEgYml0IHRvIG1ha2UgaXQgY2xlYXJlciB3aGF0IGl0IG1lYW5zLCBuYW1lbHkgdGhhdAoJICB0aGUgc3RhdGUgY2hhbmdlIG1heSBoYXZlIGZhaWxlZCBmb3IgZ29vZCByZWFzb25zLCBidXQgdGhhdCB0aGUgZWxlbWVudAoJICBqdXN0IGZhaWxlZCB0byBwb3N0IGEgcHJvcGVyIGVycm9yIG9uIHRoZSBidXMuIFRoaXMgaXMgbm90IGFuIGludGVybmFsCgkgIEdTdHJlYW1lciBidWcsIGFuZCB3ZSByZWFsbHkgZG9uJ3QgbmVlZCBwZW9wbGUgdG8gZmxvb2QgYnVnemlsbGEgd2l0aAoJICBidWcgcmVwb3J0cyBpZiBvbmUgc3VjaCBwbHVnaW4gYnVnIGV2ZXIgbWFrZXMgaXQgaW50byB0aGUgd2lsZC4KCjIwMDktMDYtMDQgMDA6Mjk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZWZlciB0byBlbGVtZW50LCBwYWQsIG9yIG9iamVjdCBpbiBzb21lIG1lc3NhZ2Ugc3RyaW5ncwoJICBSZXZpc2l0IHRoZXNlIHN0cmluZ3Mgbm93IHRoYXQgdGhlIGNoYW5nZSByZWdhcmRpbmcgdGhlIG1lc3NhZ2Ugc291cmNlCgkgIG9iamVjdCBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoKSBnb3QgcmV2ZXJ0ZWQuIFRyeSB0byByZWZlcgoJICBleHBsaWNpdGx5IHRvIHdoYXQga2luZCBvZiBlbGVtZW50IGl0IGlzIChlbGVtZW50LCBwYWQsIGV0Yy4pIGluIHNvbWUKCSAgY2FzZXMsIHdoaWNoIGlzIG5pY2VyIHRoYW4gaGF2aW5nIHRvIGRlZHVjZSB0aGlzIGluZm8gKGFuZCB3ZSBjYW4KCSAgcmUtdXNlIHRoZSBhbHJlYWR5IGV4aXN0aW5nIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3IgdGhlIG1vc3QgY29tbW9uCgkgIGNhc2UpLiBJdCBhbHNvIG1ha2VzIGZvciBiZXR0ZXIgZXhhbXBsZSBjb2RlLCBzaW5jZSBpdCdzIGNsZWFyIG5vdwoJICB0aGF0IHRoZSBtZXNzYWdlIHNvdXJjZSBvYmplY3QgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGVsZW1lbnQuCgoyMDA5LTA2LTAzIDIxOjEwOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFQSTogYWRkIEdTVF9NRVNTQUdFX1NSQ19OQU1FIG1hY3JvCgkgIEFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybyB0aGF0IGFsd2F5cyByZXR1cm5zIGEgbm9uLU5VTEwgc3RyaW5nLgoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgbG9nZ2luZyBwdXJwb3Nlcy4KCjIwMDktMDYtMDMgMTk6MDY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIG1ldGhvZCBmb3IgY29udmVydGluZyB0byBwb3NpdGlvbgoJICBBZGQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKSB0aGF0IGNvbnZlcnRzIGEgcnVubmluZ190aW1lIHRvIGEgcG9zaXRpb24gaW4gdGhlCgkgIHNlZ21lbnQuIEEgZmF1bHR5IHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBpcyBjdXJyZW50bHkgdXNlZCBpbiBpbnB1dHNlbGVjdG9yCgkgIGJ1dCB3ZSdsbCBuZWVkIGl0IGZvciBmcmFtZSBzdGVwcGluZyB0b28uCgkgIEFQSTogR3N0U2VnbWVudDo6Z3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKQoKMjAwOS0wNi0wMyAxNTozOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms7IGhhbmRsZSBFT1MgY29ycmVjdGx5LgoJICBIYW5kbGUgRU9TIGFuZCBidWZmZXJzIHdpdGhvdXQgYSB0aW1lc3RhbXAgZ3JhY2VmdWxseS4KCSAgUmVtb3ZlIGEgd2FybmluZyB0aGF0IGlzIG5vdCBzbyBtdWNoIGEgd2FybmluZyBub3cgYW55bW9yZS4KCjIwMDktMDYtMDMgMDk6NDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMxYzA5ZDczOGNlN2Y0N2JmZjlkMjkyOTk2ZTk0ODljMjc1ZTU1YTEuCgkgIFJldmVydGluZyB0aGlzLCBzaW5jZSBpdCBicmVha3MgYXV0b2dlbi5zaCBmb3IgbWUgb24gZGViaWFuIHNpZC4KCSAgRmFpbHVyZSBpczogImxpYnRvb2wgMi4yIHJlcXVpcmVzIGF1dG9wb2ludCAwLjE3IG9yIGhpZ2hlciIgZXZlbiB0aG91Z2gKCSAgMC4xNyB3YXMgZm91bmQuCgoyMDA5LTA2LTAzIDA5OjQxOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIFJldmVydCAib25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzYjgzMzMzYWFkNTE5YzU1NTUxNTY1NzZmMGJhYTNiZTdiMjYzZjMuCgkgIFJldmVydGluZyBzaW5jZSB0aGlzIGZhaWxzIG9uIGEgZnJlc2ggY2hlY2tvdXQuIEFsc28sIHdlIHNob3VsZG4ndAoJICBkZXBlbmQgb24gcG9zc2libHkgdHJhbnNsYXRlZCBzdHJpbmdzLgoKMjAwOS0wNi0wMyAwMTo1NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIGRvY3M6IGZpeCB1cCByZWZlcmVuY2UgdG8gZ3N0LWxhdW5jaC0wLjgKCSAgQWxzbyBtZW50aW9uIGRlY29kZWJpbjIsIHVyaWRlY29kZWJpbiwgYW5kIHBsYXliaW4yCgoyMDA5LTA2LTAzIDEwOjM5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZm9yZ2V0IHByZXZpb3VzIHRpbWVzIHdoZW4gc3RlcHBpbmcKCSAgV2hlbiB3ZSBzdGFydCBhIGZsdXNoaW5nIHN0ZXAgb3BlcmF0aW9uLCBmb3JnZXQgYWJvdXQgdGhlIHByZXZpb3VzIHN0cmVhbSB0aW1lCgkgIHNvIHRoYXQgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyB3b3JrcyBjb3JyZWN0bHkuCgoyMDA5LTA2LTAzIDAxOjI1OjI2ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBnbyBiYWNrIHRvIGFsbG93aW5nIGdldHRleHQgMC4xMS41LCBidXQgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIKCjIwMDktMDYtMDMgMDE6MDE6NTcgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBvbmx5IHVwZGF0ZSBzdWJtb2R1bGUgd2hlbiBpdCBpcyBub3Qgb24gYSBzcGVjaWZpYyBicmFuY2gKCjIwMDktMDYtMDIgMTM6NDU6NTIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogU2V0IHBpcGVsaW5lIHRvIFBBVVNFRCBiZWZvcmUgd2FpdGluZyBmb3IgbWFpbiBsb29wIGlkbGUKCSAgV2hlbiBpdCBpcyBzaHV0dGluZyBkb3duIGEgcGlwZWxpbmUgYWZ0ZXIgY3RybC1jLCBzZXQgcGlwZWxpbmUgdG8KCSAgcGF1c2VkIGJlZm9yZSB3YWl0aW5nIGZvciB0aGUgbWFpbiBsb29wIHRvIGNvbXBsZXRlIGFsbCBwZW5kaW5nCgkgIHRyYW5zYWN0aW9ucy4gIEZpeGVzICM1ODQ2NTcuCgkgIElmIHNvbWUgcGFydCBvZiB0aGUgcGlwZWxpbmUgaXMgZ2VuZXJhdGluZyBzaWduYWxzIG9yIGlkbGUgZnVuY3Rpb25zCgkgIGF0IGEgZmFzdCByYXRlLCB3YWl0aW5nIGZvciBhIG1haW4gbG9vcCBpdGVyYXRpb24gbWF5IG5ldmVyIHJldHVybi4KCjIwMDktMDYtMDIgMTg6MzY6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNlcmlhbGlzYXRpb24gb2YgbmVzdGVkIHN0cnVjdHVyZXMuCgkgIFVzZSBzdHJpbmdfd2FycC91bndyYXAgdG8gZXNjYXBlIGRlbGltaXRlcnMsIG90aGVyd2lzZSBkZXNlcmlhbGlzYXRpb24gZmFpbHMuCgkgIEFsc28gbW92ZSBHU1RfQVNDSUlfSVNfU1RSSU5HIHRvIHByaXZhdGUgaGVhZGVyIHRvIGF2b2lkIGtlZXBpbmcgaXQgaW4gc3luYy4KCSAgQWxzbyB1c2UgJ1wwJyB3aGVuIHRlcm1pbmF0aW5nIGEgc3RyaW5nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDA5LTA2LTAyIDE1OjM3OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHJlZ3Jlc3Npb24gaW4gdW5pdCB0ZXN0cwoJICBTdG9yZSB0aGUgdGltZXN0YW1wIG9mIHRoZSBidWZmZXIgYWZ0ZXIgcHJlcm9sbGluZy4gV2hpbGUgd2UgYXJlIHByZXJvbGxlZCB3ZQoJICB3YW50IHRvIHJlcG9ydCB0aGUgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc3RhcnQgdmFsdWUuCgoyMDA5LTA2LTAxIDIwOjI2OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdpZGVuIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcgTUVNRFVNUAoKMjAwOS0wNi0wMSAxOTozNzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3QgYSB3YXJuaW5nIG9uIGV4Y2Vzc2l2ZSBmcmFtZWRyb3BzCgkgIFdoZW4gd2UgZ28gaW50byBlbWVyZ2VuY3kgcmVuZGVyaW5nLCBwb3N0IGEgd2FybmluZyBpbmZvcm1pbmcgdGhlIHVzZXIgYWJvdXQKCSAgdGhpcyBmYWN0LgoKMjAwOS0wNS0zMSAxOToxMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZQoJICBGaXggc3RlcHBpbmcgYW5kIHBvc2l0aW9uIHJlcG9ydGluZyBpbiByZXZlcnNlIHBsYXliYWNrLgoKMjAwOS0wNS0yOSAxNjowNjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBzdGFydF90aW1lIGFzIHRoZSBzdGVwIHN0YXJ0CgkgIFVzZSB0aGUgc3RhcnRfdGltZSBvZiB0aGUgZWxlbWVudCBhcyB0aGUgcG9pbnQgZnJvbSB3aGVyZSB0aGUgc3RlcCBvcGVyYXRpb24KCSAgc3RhcnRzLiBUaGlzIGZpeGVzIHN0ZXBwaW5nIGluIGFsbCBwYXVzZWQgc3RhdGVzLgoKMjAwOS0wNS0xOSAxOTo0NTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhdGNoIHN0ZXAgY2FzZXMgaW4gX3dhaXRfcHJlcm9sbCgpCgkgIFdoZW4gYSBzdWJjbGFzcyBpcyBibG9ja2luZyBpbiBfd2FpdF9wcmVyb2xsKCkgaW4gdGhlIF9yZW5kZXIgbWV0aG9kLCBtYWtlIHN1cmUKCSAgd2UgY2FuIHVubG9jayB0aGUgc3ViY2xhc3MgYW5kIGRldGVjdCB0aGlzIHJldHVybiB2YWx1ZSBmcm9tIHRoZSByZW5kZXIgbWV0aG9kLgoKMjAwOS0wNS0xOSAxMDo1MDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZSBmaXhlcwoKMjAwOS0wNS0xOCAxODo0MTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA1LTE4IDE1OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGZyYW1lc3RlcDogaW1wbGVtZW50IGJhY2t3YXJkcyBmcmFtZXN0ZXAKCSAgVXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudCwgd2Ugd2FudCB0byBwYXNzIHRoZSBmbHVzaCBmbGFnIGluIHRoZSBzdGVwLWRvbmUKCSAgbWVzc2FnZS4KCSAgQWRkIGZsdXNoIGZsYWcgdG8gdGhlIGdzdG1lc3NhZ2UuCgkgIFVwZGF0ZSBleGFtcGxlcyB0byB1c2UgdGhlIG5ldyBzdGVwLWRvbmUgbWVzc2FnZSBhcGkuCgkgIEltcGxlbWVudCBmcmFtZXN0ZXAgd2l0aCBwbGF5YmFjayByYXRlcyA8IDAuMCB0b28uCgoyMDA5LTA1LTE1IDE1OjI1OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIGZyYW1lc3RlcHBpbmcgaW4gdGltZQoKMjAwOS0wNS0xNSAxNToyNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZXM6IHN0ZXAgaW4gdGltZSBhcyB3ZWxsCgoyMDA5LTA1LTE1IDEyOjAyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlOiBwcmludCBzdGVwX2RvbmUgbWVzc2FnZSBhbmQgc3luYwoJICBEdW1wIHRoZSBzdGVwX2RvbmUgbWVzc2FnZSBjb250ZW50cy4KCSAgU3luYyBhZ2FpbnN0IHRoZSBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDA5LTA1LTE1IDEyOjA1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazoga2VlcCB0cmFjayBvZiBzdGVwcGVkIHRpbWUKCSAgUGFzcyBydW5uaW5nX3RpbWUgYXJvdW5kIHNvIHRoYXQgdGhlIHN0ZXBwaW5nIGNvZGUgY2FuIGNhbGN1bGF0ZSB0aGUgZWxhcHNlZAoJICB0aW1lIGNvcnJlY3RseS4KCjIwMDktMDUtMTQgMTk6Mjk6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3ZlIHN0dWZmIGFyb3VuZCwgbW9yZSBzdGVwcGluZwoJICBNYWtlIHN0YXJ0IGFuZCBzdG9wX3N0ZXBwaW5nIG1ldGhvZHMgYW5kIG1vdmUgdGhlaXIgaW52b2NhdGlvbiBpbiB0aGUgcmlnaHQKCSAgcGxhY2VzLgoJICBQZXJmb3JtIHRoZSBhdHVhbCBzdGVwcGluZyBvcGVyYXRpb24gd2hlcmUgd2UgaGF2ZSBmdWxsIGNvbnRleHQgYWJvdXQgdGhlCgkgIHRpbWVzdGFtcHMuCgoyMDA5LTA1LTExIDE4OjU2OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgQWRkIGZyYW1lIHN0ZXBwaW5nIGluIFBBVVNFRCBleGFtcGxlCgoyMDA5LTA1LTExIDE4OjU2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZmlyc3Qgc3RhYiBhdCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQKCSAgVW5sb2NrIHRoZSBwcmVyb2xsZWQgZnJhbWUgYW5kIHJlY2hlY2sgaWYgd2UgbmVlZCB0byBzdGVwLgoJICBLZWVwIGEgc2ltcGxlIGNvdW50ZXIgZm9yIHRoZSBmcmFtZXMgd2UncmUgYWJvdXQgdG8gc2tpcCB3aGlsZSBzdGVwcGluZyBhbmQKCSAgcHJlcm9sbC9wb3N0IHN0ZXBfZG9uZSB3aGVuIHN0ZXBwaW5nIGZpbmlzaGVkLgoKMjAwOS0wNi0wMSAxMjoxOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBBUEkgZm9yIGZyYW1lc3RlcHBpbmcKCSAgQWRkIG5ldyBTVEVQIGV2ZW50IGFuZCBtZXRob2RzIGZvciBjcmVhdGluZy9wYXJzaW5nIHRoZSBldmVudAoJICBVcGRhdGUgZGVzaWduIGRvY3MuCgkgIEFkZCBuZXcgU1RFUF9ET05FIG1lc3NhZ2UgYW5kIG1ldGhvZCB0byBjcmVhdGUvcGFyc2UuCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9uZXdfc3RlcCgpCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9wYXJzZV9zdGVwKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9uZXdfc3RlcF9kb25lKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9wYXJzZV9zdGVwX2RvbmUoKQoKMjAwOS0wNi0wMSAxMDowNTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZXM6IGRvbid0IGxlYWsgaW52YWxpZCBvciBlbXB0eSBzdHJpbmdzIHdoZW4gd2Ugd2FybgoJICBGaXhlcyBtaW5vciBtZW1vcnkgbGVhayBpbiB1bml0IHRlc3RzIGNhdXNlZCBieSB0aGUgcmVjZW50IGNoYW5nZXMuCgkgIFNpbmNlIHdlJ3JlIGV4cGVjdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBHVmFsdWUgaW4gdGhlIHN0cnVjdHVyZQoJICBmaWVsZCBzdHJ1Y3QgaGVyZSwgd2UgbmVlZCB0byB1bnNldCBpdCBpZiB3ZSBkb24ndCB1c2UgaXQuCgoyMDA5LTA2LTAxIDExOjA4OjMxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIHRlc3QgZm9yIGN1YmljIGludC4gYW5kIHRvbyBmZXcgY29udHJvbCBwb2ludHMKCSAgQWRkZWQgYW5vdGhlciB0ZXN0cyB0byBjaGVjayBzb21lIHdvcnJpZXMgaW4gQnVnICM1ODI1NjQuCgoyMDA5LTA1LTI4IDEyOjMxOjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogYWRkIGEgRklYTUUgY29tbWVudCBmb3IgYmxvY2tzaXplIHZzLiBzaXplLW1heCBwcm9wZXJ0eSBpc3N1ZQoKMjAwOS0wNS0zMSAyMToyNzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IGhhY2sgYXJvdW5kIGdfb2JqZWN0X25vdGlmeSgpIGJ1ZyBieSBwcm90ZWN0aW5nIGl0IHdpdGggYSBsb2NrCgkgIE91dC1vZi1iYW5kIGV2ZW50cyBtaWdodCBsZWFkIHRvIHVzIGNhbGxpbmcgZ19vYmplY3Rfbm90aWZ5KCkgZnJvbSBhCgkgIG5vbi1zdHJlYW1pbmcgdGhyZWFkLCB3aGljaCBjYW4gY2F1c2UgY3Jhc2hlcyBpZiBnX29iamVjdF9ub3RpZnkoKSBpcwoJICBiZWluZyBjYWxsZWQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBhdCB0aGUgc2FtZSB0aW1lLiBTZWUgIzU1NDQ2MC4KCjIwMDktMDUtMzEgMjI6Mzc6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiB1c2UgcmVhbCB3b3JsZCBudW1iZXIgaW4gYmVuY2htYXJrCgoyMDA5LTA1LTMxIDIyOjM3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBjb21tZW50IGZvcm1hdHRpbmcKCjIwMDktMDUtMzAgMjA6MzY6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogaGFjayBhcm91bmQgY3Jhc2hlciBidWcgaW4gZ19vYmplY3Rfbm90aWZ5KCkgZm9yIG91dC1vZi1iYW5kIGV2ZW50cwoJICBHT2JqZWN0IG1heSBjcmFzaCBpZiB0d28gdGhyZWFkcyBkbyBjb25jdXJyZW50IGdfb2JqZWN0X25vdGlmeSgpIG9uIHRoZSBzYW1lCgkgIG9iamVjdC4gVGhpcyBtYXkgaGFwcGVuIGlmIGZha2VzaW5rIHJlY2VpdmVzIGFuIG91dC1vZi1iYW5kIGV2ZW50IHN1Y2ggYXMKCSAgRkxVU0hfU1RBUlQgd2hpbGUgcHJvY2Vzc2luZyBhIGJ1ZmZlciBvciBzZXJpYWxpc2VkIGV2ZW50IGluIHRoZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBTaW5jZSB0aGlzIG1heSBoYXBwZW4gd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncyBkdXJpbmcgYSBjb21tb24KCSAgb3BlcmF0aW9uIGxpa2UgYSBzZWVrLCBhbmQgdGhlcmUgc2VlbXMgdG8gYmUgbGl0dGxlIGNoYW5jZSBvZiBhIHRpbWVseSBmaXgKCSAgaW4gR09iamVjdCAoc2VlICMxNjYwMjApLCB3ZSBzaG91bGQgaGFjayBhcm91bmQgdGhpcyBpc3N1ZSBieSBwcm90ZWN0aW5nIGFsbAoJICBvZiBmYWtlc2luaydzIGRpcmVjdCBnX29iamVjdF9ub3RpZnkoKSBjYWxscyB3aXRoIGEgbG9jay4KCSAgQWxzbyBhZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgkgIEZpeGVzICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDE2OjE3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBtYWtlIF9nZXRfe3N0cmluZ3xwb2ludGVyfSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgdmFsdWVzCgkgIE1ha2UgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcoKSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgc3RyaW5ncyBhbmQKCSAgZW1wdHkgc3RyaW5ncywgYW5kIGdzdF90YWdfbGlzdF9nZXRfcG9pbnRlcigpIHJldHVybiBGQUxTRSBmb3IKCSAgTlVMTCBwb2ludGVycywgbGlrZSB3ZSBkbyB3aXRoIGRhdGVzIGFuZCBidWZmZXJzLgoJICBGaXhlcyAjNTYwMzQ1LgoKMjAwOS0wNS0zMCAyMDo1MDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdsaXN0czogd2FybiBpZiBzb21lb25lIHRyaWVzIHRvIGFkZCBlbXB0eSBvciBOVUxMIHN0cmluZyB0YWdzIHRvIGEgdGFnbGlzdAoJICBBbHNvIHdhcm4gaWYgYW4gZWxlbWVudCBvciBhcHBsaWNhdGlvbiB0cmllcyB0byBhZGQgYSBmaWVsZCB3aXRoIGFuCgkgIGVtcHR5IHN0cmluZyB0byBhIHN0cnVjdHVyZSAoTlVMTCBzdHJpbmdzIGFyZSBzdGlsbCBuZWVkZWQgYW5kCgkgIGFsbG93ZWQgdGhvdWdoKSBhbmQgZG8gYWxsIHRob3NlIGNoZWNrcyBpbiB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgIEZpeGVzICM1NTk2NDMuCgoyMDA5LTA1LTI5IDE4OjIyOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlX2lkX25ldygpIGNvbnZlbmllbmNlIGZ1bmN0aW9uCgkgIEFkZCBjb252ZW5pZW5jZSB3cmFwcGVyIGZvciBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIHBsdXMKCSAgZ3N0X3N0cnVjdHVyZV9pZF9zZXQoKSBhbmQgdXNlIGl0IGluIGEgZmV3IHBsYWNlcy4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX25ldygpCgoyMDA5LTA1LTI5IDE4OjAwOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaWNyby1vcHRpbWlzYXRpb246IHVzZSBHU1RfUVVBUksgaW4gbW9yZSBwbGFjZXMKCSAgVXNlIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgaW4gY29tYmluYXRpb24gd2l0aCBHU1RfUVVBUksKCSAgcmF0aGVyIHRoYW4gZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSB3aGVuIGNyZWF0aW5nIG1lc3NhZ2UsIGV2ZW50LAoJICBxdWVyeSBhbmQgdGFnbGlzdCBzdHJ1Y3R1cmVzLiBNb3N0bHkganVzdCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDUtMjkgMTY6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZXNldCBzdGFydF90aW1lIGluIGxvc3Qgc3RhdGUKCjIwMDktMDUtMjkgMTM6MDM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGVsZW1lbnQgYW4gcGlwZWxpbmUgZG9jcwoKMjAwOS0wNS0yOSAxMjo0ODoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBhIFRPRE8gaXRlbSB0aGF0IGlzIGZpeGVkIG5vdwoKMjAwOS0wNS0yOSAxMjoyMTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBkZXByZWNhdGUgb2xkIG1ldGhvZHMsIGZpeCB0ZXN0CgkgIERlcHJlY2F0ZSB0aGUgb2xkIF9zZXRfc3RyZWFtX3RpbWUgYW5kIF9nZXRfbGFzdF9zdHJlYW1fdGltZSBtZXRob2RzIGJlY2F1c2UKCSAgdGhleSBhcmUgbm93IGVxdWl2YWxlbnQgdG8gdGhlIGJldHRlciBuYW1lZCBfc2V0L19nZXRfc3RhcnRfdGltZS4KCjIwMDktMDUtMjggMTY6MzA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIHBpcGVsaW5lOiB1c2UgU1RBUlRfVElNRSB0byBrZWVwIHRyYWNrIG9mIHRpbWUKCSAgVXNlIHRoZSBlbGVtZW50IFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aGUgcnVubmluZyB0aW1lIHdoZW4gdGhlIHBpcGVsaW5lCgkgIHBhdXNlZCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIGJhc2VfdGltZS4KCSAgVGFrZSB0aGUgc3RhcnRfdGltZSBiZWZvcmUgc2V0dGluZyB0aGUgY2hpbGRyZW4gdG8gUEFVU0VEIHNvIHRoYXQgd2UgY2FuCgkgIGRpc3RyaWJ1dGUgdGhlIHN0YXJ0X3RpbWUgdG8gdGhlIGNoaWxkcmVuLgoKMjAwOS0wNS0yOCAxNTo0MDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBzZXQgdGhlIGJhc2VfdGltZSBhbmQgc3RhcnRfdGltZSBiZXR0ZXIKCSAgU2ltcGx5IHNldCB0aGUgc3RhcnRfdGltZSBhbmQgYmFzZV90aW1lIG9uIHRoZSBlbGVtZW50IGluc3RlYWQgb2YgY2FsbGluZyB0aGUKCSAgc2V0dGVycy4KCjIwMDktMDUtMjcgMTE6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSB0aGUgYmluIHNldCB0aGUgc3RhcnRfdGltZSBvbiBlbGVtZW50cwoJICBTZXQgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGJpbiBvbiB0aGUgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byB0aGUKCSAgcGlwZWxpbmUgYW5kIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaGFwcGVucy4KCjIwMDktMDUtMjYgMTE6NTM6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIHN0YXJ0X3RpbWUgZmllbGQgYW4gbWV0aG9kcwoJICBBZGQgYSBzdGFydF90aW1lIGZpZWxkIGFuZCBzb21lIG1ldGhvZHMuIFRoZSBzdGFydF90aW1lIHdpbGwgY29udGFpbiB0aGUKCSAgcnVubmluZ190aW1lIG9mIHdoZW4gdGhlIGVsZW1lbnQgbGFzdCB3ZW50IHRvIHBhdXNlZC4gVGhpcyB0aW1lIGNhbiBiZSB1c2VyIHRvCgkgIHJlcG9ydCB0aGUgcG9zaXRpb24gaW4gUEFVU0VEIGJ1dCBhbHNvIHRvIGRvIG1vcmUgY29ycmVjdCBjbGlwcGluZyBhbmQKCSAgc3RlcHBpbmcgbGF0ZXIuCgoyMDA5LTA1LTI4IDIyOjAyOjIxICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfbWFza2VkX3NjYW5fdWludDMyKCkgYXQgYm91bmRhcmllcwoJICBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIgY291bGQgcmV0dXJuIHZhbHVlcyBzbWFsbGVyIHRoYW4gb2Zmc2V0CgkgIGlmIHRoZSBmaXJzdCBieXRlKHMpIG9mIHRoZSBtYXNrIGFyZSAwIGFuZCB0aGUgcGF0dGVybiBtYXRjaGVzIHRoZQoJICBiZWdpbm5pbmcgb2YgdGhlIGFkYXB0ZXIuCgkgIEFkZGVkIGV4YW1wbGVzIHRvIGRvY3VtZW50YXRpb24gb2YgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkuCgkgIEFsc28gYWRkZWQgc29tZSBtb3JlIG1hc2tlZCBib3VuZGFyeSB0ZXN0cy4KCSAgRml4ZXMgIzU4NDExOAoKMjAwOS0wNS0yOCAxNjozNjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUKCSAgQWRkIHBhZCBwcml2YXRlIHN0cnVjdHVyZSBhbmQgbW92ZSB0aGUgbmV3IGNoYWlubGlzdGZ1bmMgaW50byB0aGUgcHJpdmF0ZQoJICBzdHJ1Y3QuIFRoaXMgYXZvaWRzIEFCSSBicmVha2FnZSBhbmQgYWxsb3dzIHVzIHRvIGV4cGFuZCBpbiB0aGUgZnV0dXJlLgoKMjAwOS0wNS0yNyAxNjozNDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBtaXNzaW5nIHN5bWJvbCB0byB0aGUgd2luMzIgZXhwb3J0cwoJICBUaGlzIHdhcyBhY2NpZGVudGlhbGx5IHJlbW92ZWQgYnkgbXkgbGFzdCBjb21taXQuCgoyMDA5LTA1LTI3IDE2OjE3OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIG1lbW9yeSBsZWFrcwoJICBBdm9pZCBsZWFraW5nIHRoZSBjYXBzIG9mIHRoZSBkZXN0IGJ1ZmZlciBhbmQgYXZvaWQgZG9pbmcgbmVlZGxlc3MgY2FwcwoJICByZWZzLgoJICBXaGVuIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBidWZmZXJzIGFyZSB0aGUgc2FtZSwgcmV0dXJuIGltbWVkaWF0bHkuCgoyMDA5LTA1LTI3IDE0OjMyOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IEFkZCBnc3RfbWVzc2FnZV97bmV3LHBhcnNlfV90YWdfZnVsbCgpIHRvIGdldC9zZXQgdGhlIHNvdXJjZSBwYWQKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTI3IDE0OjA2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZWJmZGU3NTAyN2U5NzViN2U3Yzc0YzYzNThjNWJlODNlYTRhYzlmLgoJICBUaGlzIGNoYW5nZSBzaG91bGRuJ3QgYmUgZG9uZSBpbiBhIHN0YWJsZSByZWxlYXNlIHNlcmllcyBhcwoJICBhcHBsaWNhdGlvbnMgYXJlIGFjdHVhbGx5IGV4cGVjdGluZyB0aGUgc2VuZGVyIHRvIGJlIGFuCgkgIEdzdEVsZW1lbnQuIE9uZSBleGFtcGxlIGlzIHRvdGVtLgoKMjAwOS0wNS0yNiAxMTozNTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjYgMTA6NDE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIEZpeCAnbWFrZSBkaXN0Y2hlY2snCgkgIFRoZSBjaGVjay1lbnVtLWdldHR5cGVzIHJ1bGUgZGlkbid0IHdvcmsgZm9yICdtYWtlIGRpc3RjaGVjaycgc2luY2UKCSAgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZXMgZnJvbSB0aGUKCSAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGljaCBpc24ndCB0cnVlIGR1cmluZyBkaXN0Y2hlY2tpbmcuCgoyMDA5LTA1LTI2IDEwOjM4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIG1hbnVhbHMubWFrOiBhdHRlbXB0IHRvIG1ha2UgJ21ha2UgZGlzdGNoZWNrJyB3b3JrIHdpdGggLWpOCgkgIEF0dGVtcHQgdG8gZml4IHRoZSAnY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUgYnVpbGQvaW1hZ2UuZW50aXRpdGVzOgoJICBmaWxlIGV4aXN0cycgZXJyb3IgSSBnb3QuCgoyMDA5LTA1LTI1IDIzOjU4OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZml4IGNkcGFyYW5vaWEgZXhhbXBsZSBwaXBlbGluZSBpbiBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDA5LTA1LTI1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMDktMDUtMjUgMTc6NDM6MzIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEZpeCB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHRvIGRpc3Q6IHRlc3RydHBvb2wuaCwgbm90IHJ0cG9vbC10ZXN0LmgKCjIwMDktMDUtMjUgMTc6MDM6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wNS0yNSAxNjo1NDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIGFzc2VydGlvbgoJICBSZW1vdmUgYW4gYXNzZXJ0aW9uLCB0aGlzIGlzIG5vdCByZWFsbHkgYW4gZXJyb3IgaW4gYWxsIGNhc2VzLgoJICBGaXhlcyAjNTgyMDEwCgoyMDA5LTA1LTI1IDE2OjIxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBlbmFibGUgbW9ub3RvbmljIGNsb2NrIHdoZW4gd2UgY2FuCgkgIEVuYWJsZSB0aGUgbW9ub3RvbmljIGNsb2NrIGJ5IGRlZmF1bHQgd2hlbiB3ZSBjYW4uCgkgIEZpeGVzICM1ODM1NTQKCjIwMDktMDUtMjUgMTQ6NTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIGRvY3M6IGFkZCBJbWFnZSB0byBkcmFmdCBrbGFzcyBkb2N1bWVudGF0aW9uCgoyMDA5LTA1LTI1IDEzOjAzOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGtlZXAgdGFzayByZWYgYmVmb3JlIHJlbGVhc2luZyB0aGUgbG9jawoJICBLZWVwIGEgcmVmIHRvIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBhIGNvbmN1cnJlbnQgc3RvcCBjYW4gc3RvcCBhbmQgam9pbgoJICB0aGUgdGFzay4KCjIwMDktMDUtMjUgMTE6NTY6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBhdm9pZCBqb2luIHRvIHJldHVybiBlYXJseQoJICBVbnNldCB0aGUgcnVubmluZyBmbGFnIGFmdGVyIHdlIHJlbGVhc2VkIHRoZSBsb2NrIGZvciBwb3N0aW5nIHRoZSBzdHJlYW0tc3RhdHVzCgkgIG1lc3NhZ2UuIElmIHdlIHNldCB0aGUgcnVubmluZyBmbGFnIHRvIEZBTFNFIHRvbyBlYXJseSwgdGhlIGpvaW4gbWV0aG9kIHdpbGwKCSAganVzdCBjb250aW51ZSB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBtZXNzYWdlIHRvIGJlIHBvc3RlZCwgbGVhZGluZyB0byBwb3RlbnRpYWwKCSAgY3Jhc2hlcy4KCjIwMDktMDUtMjQgMjM6MTQ6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggdXBkYXRlIHJ1bGUKCSAgT25seSB1cGRhdGUgdGhlIHByZXNldCBmcm9tIHN5c3RlbSwgaWYgd2UgaGFkIGEgcHJlc2V0IGJlZm9yZSBhbmQgc3lzdGVtCgkgIHZlcnNpb24gaXMgbmV3ZXIuCgoyMDA5LTA1LTIyIDIzOjQ3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBiZW5jaG1hcmsgdG8gdmVyaWZ5IHRoZSBzd2l0Y2ggdG8gZ3NlcXVlbmNlCgoyMDA5LTA1LTIyIDIzOjUwOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZXJyb3IgaGFuZGxpbmcgdG8gZXhhbXBsZQoKMjAwOS0wNS0yMiAyMzoxNDo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4gKHNvcnJ5IGZvciBjb21taXR0aW5nIHdyb25nIGZpeCBiZWZvcmUpLgoKMjAwOS0wNS0yMiAyMzoxMDowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4KCjIwMDktMDUtMjIgMTQ6MTc6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBHX0xJS0VMWSBhbmQgam9pbiB0d28gaWYgZm9yIHNhbWUgY29uZGl0aW9uCgkgIEEgR19MSUtFTFkgZm9yIHRoZSBzZXF1ZW5jZSE9TlVMTCBjaGVja3MuIEpvaW4gdHdvIGlmcyB0byBhbiBpZi1lbHNlLiBBZGQKCSAgaW5kZW50IGd1aWRlcyB0byBrZWVwIGluZGVudCBmb3JtIGJyZWFraW5nIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKMjAwOS0wNS0yMiAxMjo1NzoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZ3N0dHlwZWZpbmRoZWxwZXI6IEZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wNS0yMiAxMjoyNDoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHdhcm5pbmdzCgkgIE1vdmUgTVQgc2FmZXR5IHRvIG1haW4gZGVzY3JpcHRpb24gKGl0IGRvZXMgbm90IGJlbG9uZyB0byBSZXR1cm46IG9yIFNpbmNlOgoJICBzdGF0ZW1lbnQpLiBBZGQgYSBmZXcgbWlzc2luZyByZXR1cm4gZG9jcy4gRG93bmdyYWRlIGEgbm9ybWFsIGNvbW1lbnQgZnJvbWEgZG9jCgkgIGNvbW1lbnQuIEZpeCBhIGRvYyBoZWFkZXIgdG8gb25seSBjb250YWluIHN5bWJvbCBuYW1lLgoKMjAwOS0wNS0yMiAxMDoxOTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2E4ZmFiIHRvIDg4OGUwYTIKCjIwMDktMDUtMjIgMDk6NTE6NDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEFkZCBydHBvb2wtdGVzdC5oIHRvIHRoZSBzb3VyY2VzIGxpc3Qgc28gaXQgZ2V0cyBkaXN0ZWQuCgkgIEZpeGVzIHRoZSBkaXN0Y2hlY2sKCjIwMDktMDUtMjIgMDk6NDQ6MjUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBjbG9ja3N0cmVzcyBiZW5jaG1hcmsgYmluYXJ5CgoyMDA5LTA1LTIyIDA5OjQxOjM2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogU2lsZW5jZSBhIHdhcm5pbmcgZnJvbSB0aGUgR1NlcXVlbmNlIGJlaW5nIE5VTEwuCgkgIEZpeCBhIHdhcm5pbmcgdGhhdCBvY2N1cnMgd2hlbiB0aGUgc2VsZi0+cHJpdi0+dmFsdWVzIGlzIE5VTEwgYW5kCgkgIHRoZSBjb2RlIHRyaWVzIHRvIHJldHJpZXZlIGFuIGl0ZXJhdG9yIGZyb20gaXQuIFRoZSB3YXJuaW5nIHdhcyBzaG93aW5nCgkgIHVwIGluIHRoZSBjaGVja3MgZm9yIHRoZSB2b2x1bWUgZWxlbWVudC4KCjIwMDktMDUtMjIgMDk6MzM6MDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IEZpeCB1cCBzb21lIGRvY3VtZW50YXRpb24gd2FybmluZ3MuCgkgIFNpbmNlOiB0YWdzIHNob3VsZCBhbHdheXMgYmUgdGhlIGxhc3QgdGhpbmcgaW4gYSBkb2MgYmxvY2ssIGFwcGFyZW50bHkuCgkgIEFkZCBzb21lIFJldHVybnM6IGRlc2NyaXB0aW9ucyB0byBzb21lIHJlY2VudCBmdW5jdGlvbnMuCgoyMDA5LTA1LTIxIDE3OjMyOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MgZm9yIHN0cmVhbV90aW1lLT5ydW5uaW5nX3RpbWUKCSAgQ2hhbmdlIHNvbWUgaW5zdGFuY2VzIHdoZXJlIHdlIHdyb25nbHkgcmVmZXIgdG8gc3RyZWFtIHRpbWUgd2hlcmUgaXQgc2hvdWxkIGhhdmUKCSAgYmVlbiBydW5uaW5nIHRpbWUuCgoyMDA5LTA1LTIxIDEwOjU3OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3QgdXNlIEdfR1VJTlQzMl9GT1JNQVQgaW4gdHJhbnNsYXRhYmxlIHN0cmluZwoJICB4Z2V0dGV4dCBkb2Vzbid0IGhhbmRsZSB0aGlzIHZlcnkgd2VsbC4gRml4ZXMgIzU4MzQxOS4KCjIwMDktMDUtMjAgMTc6MDc6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogY2FuIHJlbW92ZSB0aGUgLVduby1wb3J0YWJpbGl0eSBmcm9tIGhlcmUgbm93CgkgIHNpbmNlIHdlIGFkZGVkIGl0IHRvIGNvbmZpZ3VyZS5hYy4KCjIwMDktMDUtMjAgMjI6MTg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSB0aGUgZmx1c2ggZnVuY3Rpb24KCSAgUmVtb3ZlIGEgY29tcGFyZSBhbmQgYnJhbmNoIGZyb20gZmx1c2guCgoyMDA5LTA1LTIwIDE3OjI0OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBhc3NlcnRpb24gd2hlbiBmcmVlaW5nIHRoZSBjb250cm9sIHNvdXJjZQoKMjAwOS0wNS0yMCAxMjo0ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBwb3RlbnRpYWxseSBzYXZlIGEgbWVtY3B5IGluIF90YWtlCgkgIERpcmVjdGx5IHVzZSB0aGUgYXNzZW1ibGVkX2RhdGEgaW4gX3Rha2UoKSBmdW5jdGlvbnMgd2hlbiB3ZSBjYW4gaW5zdGVhZCBvZgoJICBjb3B5aW5nIGl0IG91dC4KCjIwMDktMDUtMjAgMTE6MzY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbWljcm8gb3B0aW1pc2F0aW9ucwoKMjAwOS0wNS0yMCAxMToxMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBjb21wYXJpc2lvbnMgaW4gZmFzdCBwYXRoCgkgIFNtYWxsIHR3ZWFrcyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiB1c2VsZXNzIGNvbXBhcmVzIGluIGxvb3BzLgoKMjAwOS0wNS0yMCAxMDoyODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogb25lIG1vcmUgYWRhcHRlciB0ZXN0CgoyMDA5LTA1LTIwIDEwOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIGJyYW5jaCBpbiBjb3B5IGNvZGUKCjIwMDktMDUtMjAgMTA6NTY6MTEgKzAzMDAgIEhhbm5lcyBCaXN0cnkgPGJpc3RyeUBpbmZvcm1hdGlrLnVuaS1oYW1idXJnLmRlPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGxvYWRzYXZlOiBmaXggcmVxdWVzdHBhZCBoYW5kbGluZyBhbmQgc2VyaWFsaXNhdGlvbiBvcmRlci4KCSAgU3VwcG9ydCByZXF1ZXN0IHBhZHMgd2hlbiBsb2FkaW5nLiBSZXZlcnNlIHBhZCBzZXJpYWxpc2F0aW9uIG9yZGVyIHRvCgkgIHByZXNlcnZlIGl0IHdoZW4gcmVjcmVhdGluZyB0aGUgcGlwZWxpbmUuCgoyMDA5LTA1LTIwIDAwOjQ1OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbAoKMjAwOS0wNS0yMCAwMDo0NDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgc3ltYm9sIHRvIGRvY3MKCjIwMDktMDUtMjAgMDA6Mzc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgX21hc2tlZF9zY2FuX3VpbnQzMgoJICBBZGQgYSByZWFzb25hYmx5IG9wdGltaXplZCBuZXcgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkgZnVuY3Rpb24KCSAgdG8gc2NhbiB0aGUgYWRhcHRlciBmb3IgYSBwYXR0ZXJuIGFmdGVyIGFwcGx5aW5nIGEgbWFzay4KCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cy4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBGaXhlcyAjNTgzMTg3CgoyMDA5LTA1LTE5IDIyOjEzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1vcmUgb3B0aW1pc2F0aW9ucwoJICBSZW1vdmUgZHVwbGljYXRlIGNvcHkgY29kZSAoX3BlZWtfaW50byBhbmQgX2NvcHkpIGFuZCBtYWtlIGEgdW5pZmllZAoJICBvcHRpbWl6ZWQgY29weSBmdW5jdGlvbi4KCjIwMDktMDUtMTkgMTc6MTI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHBhc3MgLVduby1wb3J0YWJpbGl0eSB0byBhdXRvbWFrZSB0byBzdXBwcmVzcyB3YXJuaW5ncwoJICBHTlUgbWFrZSBpcyByZXF1aXJlZCwgbm8gcG9pbnQgcHJldGVuZGluZyBvdGhlcndpc2UuCgoyMDA5LTA1LTE4IDAxOjAwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgZG9jczogbWVudGlvbiB0aGF0IEdTVF9GT1JNQVRfe1BFUkNFTlR8QlVGRkVSU30gYXJlIG5vdCBpbXBsZW1lbnRlZAoKMjAwOS0wNS0xNyAxMDo0NjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdGNsb2NrOiBGaXggQUJJIGJyZWFrYWdlIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzCgkgIFRoZSBwYWRkaW5nIG9mIEdzdENsb2NrIGlzIGEgR3N0Q2xvY2tUaW1lIGFuZCBub3QgYQoJICBncG9pbnRlciwgc28gYWRkaW5nIGEgcG9pbnRlciByZXF1aXJlcyB0aGUgcGFkZGluZwoJICBzaXplIHRvIGJlIGNoYW5nZWQgZGVwZW5kaW5nIG9uIHRoZSBwb2ludGVyIHNpemUuCgkgIFVzZSBhbiB1bmlvbiBpbnN0ZWFkLgoJICBGaXhlcyBidWcgIzU4Mjg3OC4KCjIwMDktMDUtMTUgMTU6MjQ6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFtnc3R2YWx1ZV0gYWRkcyBzYWZldHkgcGFyZW50aGVzaXMgdG8gbWFjcm9zIG1pc3NpbmcgdGhlbS4KCjIwMDktMDUtMTUgMTQ6NDI6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFtnc3R1dGlsc10gQWRkcyBtb3JlIHNhZmV0eSB0byBHU1RfV1JJVEVfKiBhbmQgR1NUX1JFQURfIG1hY3Jvcy4KCSAgQWRkcyBzYWZldHkgKCApIHRvIHBhcmFtZXRlcnMgaW4gX0dTVF9QVVQgYW5kIF9HU1RfR0VUIG1hY3Jvcy4KCSAgRml4ZXMgIzU4MjcwOC4KCjIwMDktMDMtMTkgMTE6Mzc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiB1c2Ugc2VxbG9ja3MgdG8gcGFyYWxsZWxsaXplIHJlYWRlcnMKCjIwMDktMDQtMTYgMTU6NTM6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIHN0cmVzczogYWRkIGEgY2xvY2sgc3RyZXNzdGVzdAoJICBBZGQgYSBzdHJlc3N0ZXN0IGZvciBnc3RfY2xvY2tfZ2V0X3RpbWUoKS4KCjIwMDktMDUtMTUgMTE6MDA6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBNYWtlZmlsZS5hbTogdXBkYXRlIGZvciBhZGRlZC9tb3ZlZC9yZW1vdmVkIGZpbGVzIHRoYXQgd2VyZW4ndCBkaXN0LWVkLgoKMjAwOS0wNS0xMiAxMToyOToyMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogUmVsZWFzZSBzY3JpcHQgbW9kaWZpY2F0aW9ucwoKMjAwOS0wNS0xNCAyMjoxMTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBjb250cm9sbGVyOiBVc2Ugb3JkZXJlZCBHU2VxdWVuY2UgaW5zdGVhZCBvZiBHTGlzdAoJICBUaGlzIG1ha2VzIGxvb2t1cHMgYW5kIGluc2VydGlvbnMgTyhsb2cgbikgaW5zdGVhZCBvZgoJICBhbHdheXMgTyhuKSBmb3IgaW5zZXJ0aW9ucyBhbmQgTyhuKSBpbiB3b3JzdCBjYXNlIGZvcgoJICBsb29rdXBzLgoJICBGaXhlcyBidWcgIzU4MjU2NC4KCjIwMDktMDUtMTQgMTI6MzA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRvY3M6IHJlbmFtZSBhbmQgZGVsZXRlIHNvbWUgZGVzaWduIGRvY3MKCjIwMDktMDUtMTQgMTI6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBQcmludCB0aGUgcGF0aCBzdHJpbmcgZm9yIG1lc3NhZ2Ugc291cmNlcwoJICBUaGlzIHJlZHVjZXMgY29uZnVzaW9uIGlmIHRoZSBtZXNzYWdlIHNvdXJjZSBpcyBhIHBhZAoJICBhbmQgb25seSAic3JjIiBpcyBwcmludGVkIGFzIHNvdXJjZS4KCjIwMDktMDUtMTQgMTI6MjU6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKQoJICBGaXhlcyBidWcgIzU4MjU4OC4KCjIwMDktMDUtMTQgMTE6MzY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgkgIEFkZCBhIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpIHdpdGggYW4gZXh0cmEgYXJndW1lbnQgdG8gY29udHJvbAoJICBkaXN0cmlidXRpb24gb2YgYSBuZXcgYmFzZV90aW1lLiBXZSB3aWxsIG5lZWQgdGhpcyBmb3IgZmx1c2hpbmcgc3RlcAoJICBvcGVyYXRpb25zLgoJICBBUEk6IEdzdEVsZW1lbnQ6OmdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgoyMDA5LTA1LTEzIDIzOjUyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGRvbid0IHVzZSByZWFsbG9jLCBpdCBkb2VzIGEgbWVtY3B5CgkgIERvbid0IHVzZSByZWFsbG9jIHRvIGdyb3cgdGhlIHNjcmF0Y2ggYXJlYSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdGhlIG1lbWNweSB0aGUKCSAgb2xkIHVzZWxlc3MgZGF0YSBpbnRvIHRoZSBuZXcgYXJlYSBiZWZvcmUgd2Ugd3JpdGUgb3VyIG5ldyBzdHVmZiBpbiBpdC4KCjIwMDktMDUtMTMgMjM6Mzg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkb2NzOiB1cGRhdGUgdHJpY2ttb2RlIGRvY3VtZW50CgoyMDA5LTA1LTEzIDIyOjUxOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBidWZmZXIKCSAgVXNlIGdfcmVhbGxvYyBmb3IgcmVzaXppbmcgdGhlIGludGVybmFsIGJ1ZmZlciBpbnN0ZWFkIG9mIGEKCSAgbGVzcyBmYW5jeSBfZnJlZS9fbWFsbG9jIHBhaXIuCgoyMDA5LTA1LTEzIDIxOjM1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBtb3ZlIG5ldyBtZW1iZXIgdG8gcHJpdmF0ZSBzdHJ1Y3QKCSAgTW92ZSB0aGUgbmV3IG1lbWJlcnMgdG8gYSBwcml2YXRlIHN0cnVjdCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgZW5vdWdoIHBhZGRpbmcKCSAgYW55bW9yZSBvbiAzMi1iaXRzIHBsYXRmb3Jtcy4KCjIwMDktMDUtMTMgMTg6NTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXBkYXRlIHNvbWUgZG9jcwoKMjAwOS0wNS0xMyAxNzowOTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgdGVzdCBmb3IgYWRhcHRlciB0aW1lc3RhbXBzCgoyMDA5LTA1LTEzIDE2OjQ4OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgbmV3IHRpbWVzdGFtcCB1bml0IHRlc3QKCjIwMDktMDUtMTMgMTY6MjY6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sCgoyMDA5LTA1LTEzIDE2OjA5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBhZGQgbWV0aG9kIHRvIGtlZXAgdHJhY2sgb2YgdGltZXN0YW1wcwoJICBLZWVwIHRyYWNrIG9mIHRoZSB0aW1lc3RhbXAgYW5kIG9mZnNldCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgaGVhZCBvZiB0aGUKCSAgYWRhcHRlci4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9wcmV2X3RpbWVzdGFtcCgpCgoyMDA5LTA1LTEzIDE2OjIwOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xMyAxMTowMzoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBtb3JlIHBhZC1kZXRhaWxzCgkgIFNob3cgcGFkIGFjdGl2YXRpb24gbW9kZSBhbmQgcGFkLWZsYWdzIGluc2lkZSB0aGUgcGFkLiBXcml0ZSBkb3duIHNvbWUgaWRlYXMKCSAgYWJvdXQgaG93IHdlIGNvdWxkIGltcHJvdmUgdGhlIGNhcHMgbGF5b3V0LgoKMjAwOS0wNS0xMyAwMDoyOTo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbGF5b3V0IGltcHJvdmVtZW50CgkgIGRvdCBkb2VzIG5vdCB0YWtlIHRoZSBoZWFkL3RhaWwgbGFiZWxzIGludG8gYWNjb3VudC4gRm9yIHVuZml4ZWQgY2FwcyB0aGV5IGdldAoJICBxdWl0ZSBsYXJnZS4gRG91YmxlIHRoZSBwYWRkaW5nIHRvIG1ha2UgaXQgc29ydCBvZiByZWFkYWJsZSBpbiBtb3JlIGNhc2VzLiBBbHNvCgkgIG1ha2Ugbm9ybWFsIGZvbnQgYmlnZ2VyIGFuZCBjYXBzLWxhYmVsIGZvbnQgc21hbGxlciB0byBpbmNyZWFzZSBvdXIgbHVjay4KCjIwMDktMDUtMTIgMjE6MDA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGNoZWNrczogY2hlY2sgZm9yIGVudW0gdHlwZXMgbm90IGNsYXNzX3JlZidlZCBpbiBnc3RfaW5pdCgpIGluICdtYWtlIGNoZWNrJwoKMjAwOS0wNS0xMiAyMDo1ODozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIEluaXRpYWxpc2Ugc29tZSBtb3JlIHR5cGVzIGluIGdzdF9pbml0KCksIGVzcC4gdGhlIG5ldyBlbnVtIHR5cGVzCgkgIFBvc3NpYmx5IGZpeGVzIEdPYmplY3QgY2xhc3MgY3JlYXRpb24vdW5yZWYgcmFjZSBjb25kaXRpb25zIHdoZW4KCSAgY3JlYXRpbmcgdGhlIGxhc3QtbWVzc2FnZSBzdHJpbmcgaW4gZmFrZXNpbmsgZm9yIGV2ZW50cyB3aXRoCgkgIHN0cnVjdHVyZXMgdGhhdCBoYXZlIGZpZWxkcyB3aXRoIHRoZXNlIGVudW0gdHlwZXMuCgoyMDA5LTA1LTEyIDIwOjU2OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogcmVtb3ZlIGR1cGxpY2F0ZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgR3N0Q2xvY2tUeXBlCgkgIFJlbW92ZSB0aGUgc3RhdGljIGdzdF9jbG9ja190eXBlX2dldF90eXBlKCkgZnVuY3Rpb24gaW4gdGhlCgkgIHN5c3RlbWNsb2NrIGNvZGUgaW4gZmF2b3VyIG9mIHRoZSBwdWJsaWMgb25lIGluIGdzdGVudW10eXBlcy5jLgoKMjAwOS0wNC0yMiAxMDo1MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZW1vdmUgZGVwcmVjYXRlZCBBUEkKCSAgX2ludGVybmFsX2xpbmtfZnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIGFuZCBfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbigpCgkgIGlzIGFscmVhZHkgcHJvdmlkZWQuCgoyMDA5LTA0LTIxIDExOjMzOjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGFsbG93IHNwZWNpZnlpbmcgR3N0RWxlbWVudCBwcm9wZXJ0aWVzIHZpYSBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24KCSAgSWYgZGVzZXJpYWxpemluZyBhIHByb3BlcnR5IGZhaWxzLCBjaGVjayBpZiB0aGUgdmFsdWUgdHlwZSBpcyBhIHN0cmluZyBhbmQgaWYgc28KCSAgYXR0ZW1wdCB0byBjcmVhdGUgYSBiaW4gZnJvbSB0aGUgc3RyaW5nIHZhbHVlLiBUaGlzIGFsbG93cyB0byBlLmcuIHNwZWNpZnkKCSAgYXVkaW8tc2luay92aWRlby1zaW5rIGZvciBwbGF5YmluIG9uIGdzdC1sYXVuY2ggY29tbWFuZGxpbmUuCgoyMDA5LTA1LTEyIDE3OjI5OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSAgZG9jczogYWRkIHNvbWUgZG9jcyBhYm91dCBidWZmZXIgbGlzdHMKCjIwMDktMDUtMTIgMTY6MTg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBtYWtlIG9iamVjdHMgb3BhcXVlCgoyMDA5LTA1LTEyIDE1OjMzOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGEgY29tbWVudAoKMjAwOS0wNS0xMiAxMzoxMDo1NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGhvb2sgdXAgdGhlIHBhZCBmdW5jdGlvbnMKCSAgUmV1c2UgYnVmZmVyIGNvZGUgZm9yIGJ1ZmZlcmxpc3RzLiBOb3Qgc3VyZSBpZiB0aGlzIG1lYXN1cmFibHkgaW1wYWN0cyBwZXJmb3JtYW5jZQoJICBmb3IgdGhlIHNpbXBsZSBidWZmZXIgY2FzZSwgaWYgaXQgZG9lcyBhZnRlciBkb2luZyBzb21lIGJlbmNobWFya3MsIHdlIGNhbgoJICBkZWNvdXBsZSBpdCBsYXRlci4KCSAgRml4ZXMgIzU3MjI4NQoKMjAwOS0wNS0xMiAxMjowODo1NiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBkb2NzL2J1aWxkL2RlYnVnL3VuaXR0ZXN0CgkgIFNlZSAjNTcyMjg1CgoyMDA5LTA1LTEyIDExOjUxOjM3ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBhZGQgYnVmZmVybGlzdCBjb2RlCgkgIEJ1ZmZlciBsaXN0cyBhcmUgYSBtZWFucyB0byBtYW5hZ2UgZGlzam9pbnQgYnVmZmVycyBhcyBvbmUgYnVmZmVyLiBJdCdzIGFsc28KCSAgcG9zc2libGUgdG8gcHV0IG1hbnkgb2YgdGhvc2UgYnVmZmVycyBpbnRvIGEgbGlzdC4KCSAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIHN1cHBvcnQgaXMgYWRkZWQgdG8gdmFyaW91cyBlbGVtZW50cywgd2Ugd2lsbCBiZSBhYmxlIHRvCgkgIG1vcmUgZWZmaWNpZW50bHkgc2xpY2UgYW5kIGRpY2UgYnVmZmVycywgcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IGFuZCBhbHNvCgkgIHJlZHVjZSBkYXRhIHBhc3Npbmcgb3ZlcmhlYWQuCgkgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBrZXB0IHNpbXBsZSBvbiBwdXJwb3NlLCByZXVzaW5nIGFsbCBvZiB0aGUgbWVtb3J5CgkgIG1hbmFnZW1lbnQgZmVhdHVyZXMgd2UgaGF2ZSBmb3IgbWluaW9iamVjdHMgYW5kIGJ1ZmZlcnMuCgkgIEFjY2VzcyB0byB0aGUgYnVmZmVybGlzdCBvYmplY3QgaXMgZG9uZSB3aXRoIGFuIGl0ZXJhdG9yLCB3aGljaCBhbGxvd3MgZm9yCgkgIGVmZmljaWVudCBpdGVyYXRpb24gYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGUgbGlzdC4KCSAgU2VlICM1NzIyODUKCjIwMDktMDUtMTEgMDc6NDk6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogY29weSBuZXcgYnVmZmVyIGZsYWdzIHdoZW4gY29weWluZyBtZXRhZGF0YS4KCjIwMDktMDQtMjcgMTA6MTM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHRha2luZyB0aGUgaGVhZGJ1ZmZlcgoJICBXaGVuIGEgYXJlIHJlcXVlc3RlZCB0byB0YWtlIGEgYnVmZmVyIGZyb20gdGhlIGFkYXB0ZXIgdGhhdCBpcyBleGFjdGx5IHRoZQoJICBoZWFkYnVmZmVyLCBkb24ndCBtYWtlIGEgc3ViYnVmZmVyIG9mIGl0IGJ1dCByZXR1cm4gdGhhdCBoZWFkIGJ1ZmZlci4KCSAgQWRkIGEgdW5pdC10ZXN0IGZvciB0aGlzIG5ldyBvcHRpbWlzYXRpb24uCgoyMDA5LTA1LTA1IDE3OjQxOjI0ICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB0aGUgZm9yY2UtY2FwcyBwcm9wZXJ0eQoJICBGaXhlcyAjNTgxMzIxCgoyMDA5LTA0LTI4IDE5OjIwOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBvc3Rpbmcgb2YgYXN5bmMtc3RhcnQgbWVzc2FnZXMKCSAgV2hlbiBhbiBlbGVtZW50IGxvc3QgaXRzIHN0YXRlIGJ1dCB3YXMgYnVzeSBkb2luZyBhIHN0YXRlIGNoYW5nZSwgc3RpbGwgcG9zdCB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3aXRoIHRoZSBiYXNlX3RpbWUgcmVzZXQgZmxhZyBvciBlbHNlIHdlIG1pZ2h0IGVuZCB1cCB3aXRoCgkgIGFuIG9sZCBiYXNlX3RpbWUuCgkgIHRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgc2luayBpcyBnb2luIGFzeW5jIHRvIHBhdXNlZCBhbmQgdGhlbiBhIGZsdXNoaW5nIHNlZWsgaXMKCSAgcGVyZm9ybWVkLiBUaGlzIHdvdWxkIGNhdXNlIHRoZSBiYXNlX3RpbWUgdG8gcmVtYWluIHVubW9kaWZpZWQgYmVjYXVzZSB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3YXMgbm90IHNlbnQuCgoyMDA5LTA1LTEwIDE3OjI4OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgd2luMzIgZXhwb3J0cwoKMjAwOS0wNS0xMCAxMToxNzoyNyArMDIwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgUnVuIGxpYnRvb2xpemUgYmVmb3JlIGFjbG9jYWwKCSAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgaW4gc29tZSBjYXNlcy4gRml4ZXMgYnVnICM1ODIwMjEKCjIwMDktMDUtMDcgMTY6Mzc6MzcgKzAyMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQVBJOiBBZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgYmluZGluZ3MgdGhhdCBuZWVkIHRvIHByb3ZpZGUKCSAgc29tZSBhZGRpdGlvbmFsIHVzZXIgZGF0YSB0byB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzU0NTc4Ny4KCjIwMDktMDUtMDcgMTY6MDE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IEltcHJvdmUgZGVidWdnaW5nIGEgYml0IG9uIGludmFsaWQgVVJJcwoKMjAwOS0wNS0wNyAxMDozNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAwOS0wNS0wNyAwOTozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgdGFnczogQVBJOiBBZGQgZnVuY3Rpb25zIHRvIGFkZCBzaW5nbGUgdGFncyB0byBHc3RUYWdMaXN0IG9yIEdzdFRhZ1NldHRlcgoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZSgpCgkgIGFuZCBnc3RfdGFnX2xpc3RfYWRkX3ZhbHVlKCkpLiBUaGlzIGZpeGVzIGJ1ZyAjNTgxMTk4LgoKMjAwOS0wNS0wNyAwOToyODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIEdzdFVSSUhhbmRsZXI6IFVzZSBnZXRfdHlwZV9mdWxsKCkgdm1ldGhvZCBpZiBzcGVjaWZpZWQgaW5zdGVhZCBvZiBnZXRfdHlwZSgpCgkgIFRoaXMgZml4ZXMgYnVnICM1ODEyODEgYW5kIG1ha2VzIGl0IGVhc2llciBmb3IgYmluZGluZ3MgdG8KCSAgaW1wbGVtZW50IEdzdFVSSUhhbmRsZXJzLiBnZXRfcHJvdG9jb2xzX2Z1bGwoKSB3YXMgYWxyZWFkeSB1c2VkCgkgIGxpa2UgdGhpcy4KCjIwMDktMDUtMTIgMDE6NDg6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBuZXcgc3RyaW5ncyBmcm9tIGNvbnRhaW5lci1mb3JtYXQgdGFnCgoyMDA5LTA1LTEyIDAxOjMwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZSB0byByZWxlYXNlIGRvY3MKCjIwMDktMDUtMTIgMDE6MTM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVuYW1lIENWUyAtPiBnaXQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCgoyMDA5LTA1LTEyIDAwOjQ3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIHRoZSBHTGliIHJlcXVpcmVtZW50IHRvIEdMaWIgPj0gMi4xNgoJICBhcyBwZXIgdGhlIE5ldyBSZWdpbWUgKHNlZSB3aWtpKS4KCjIwMDktMDUtMTIgMDA6MDk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICB4bWxyZWdpc3RyeTogcmVtb3ZlIHRoZSBvbGQgeG1sIHJlZ2lzdHJ5CgkgIE5vIHBvaW50IGluIGtlZXBpbmcgaXQgYXJvdW5kIHJlYWxseS4gRml4ZXMgIzU3NzkyNi4KCjIwMDktMDUtMDcgMTY6MDg6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIGEgdGFnIGZvciB0aGUgY29udGFpbmVyIGZvcm1hdAoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTlRBSU5FUl9GT1JNQVQKCjIwMDktMDUtMDggMTY6Mjg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkZWJ1ZyBtZXNzYWdlCgkgIE1ha2UgdGhlIGRlYnVnIG1lc3NhZ2Ugc2hvdyB3aGF0J3MgYWN0dWFsbHkgaGFwcGVuaW5nICh0aGUgbWVzc2FnZQoJICByZXBsYWNlZCBoZXJlIGlzIG5vdCBuZWNlc3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZSBvbmUgdGhhdAoJICByZXBsYWNlcyBpdCkuCgoyMDA5LTA1LTEyIDAwOjM0OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogZml4IGNvbXBpbGF0aW9uCgoyMDA5LTA0LTI0IDE5OjMyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogc2V0IHRoZSBsYXRlbmN5LXRpbWUgdG8gc29tZXRoaW5nIGxvdwoKMjAwOS0wNC0yNCAxMzo1NToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkgIHRlc3RzOiBpbXByb3ZlIHRoZSBleGFtcGxlCgoyMDA5LTA0LTI0IDEyOjM1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFza1Bvb2w6IHJlbW92ZSBfc2V0X2Z1bmMoKQoJICBSZW1vdmUgdGhlIHN0YXRpYyBmdW5jdGlvbiBzZXQgb24gdGhlIFRhc2tQb29sIGJlZm9yZSBfcHJlcGFyZSgpIGlzIGNhbGxlZCBhbmQKCSAgYWxsb3cgZm9yIGFzc2lnbmluZyBhIGZ1bmN0aW9uIHRvIGEgVGFzayB3aGVuIHdlIF9wdXNoKCkuCgkgIFVwZGF0ZSB0aGUgZXhhbXBsZXMKCjIwMDktMDQtMjMgMTk6NDI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSAgdGVzdHM6IGFkZCBleGFtcGxlIG9mIGN1c3RvbSB0YXNrcG9vbHMKCSAgQWRkIGFuIGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgdGhlIHVzZSBvZiBhIGN1c3RvbSB0YXNrcG9vbCBhbmQgaG93IHRvIGNvbmZpZ3VyZQoJICBpdCBvbiB0aGUgdGFzay4gQ3VycmVudGx5IHRoZSB0YXNrcG9vbCBkb2VzIG5vdCBkbyBtdWNoIHlldCBidXQgaXQnbGwgY3JlYXRlCgkgIHNvbWUgY3VzdG9tIHRocmVhZHMgbGF0ZXIgb24uCgoyMDA5LTA0LTIzIDE5OjQxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBmaXggYSBjb21tZW50CgoyMDA5LTA0LTIzIDE5OjQxOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRlc3RzOiBjbGVhbnVwIHNvbWUgY29kZQoKMjAwOS0wNC0yMyAxNzo0ODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBQYWQ6IHBvc3QgU1RSRUFNX1NUQVRVU19UWVBFX0NSRUFURQoJICBQb3N0IGEgc3RyZWFtLXN0YXR1cyBtZXNzYWdlIGluZGljYXRpbmcgdGhhdCBhIG5ldyB0YXNrIHdhcyBjcmVhdGVkIHNvIHRoYXQgdGhlCgkgIGFwcGxpY2F0aW9uIGhhcyBhIGNoYW5jZSB0byBjaGFuZ2UgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHRhc2suCgkgIEZpeCB1bml0IHRlc3QgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG5ldyByZWYgb2YgdGhlIG1lc3NhZ2UuCgoyMDA5LTA0LTIzIDE3OjI0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgdGFzayBtZXRob2RzCgoyMDA5LTA0LTIzIDE3OjE5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWRkIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBwb29sCgkgIEFkZCBnZXR0ZXIgYW5kIHNldHRlciBmb3IgY29uZmlndXJpbmcgdGhlIEdzdFRhc2tQb29sIHRvIHVzZSBmb3IgYSBHc3RUYXNrLgoKMjAwOS0wNC0yMyAxNzowNToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IHJlbWVtYmVyIHBvb2wKCSAgUmVtZW1iZXIgdGhlIHBvb2wgd2UgY3VycmVudGx5IGhhdmUgb3VyIHRhc2sgcnVubmluZyBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgdG8KCSAgam9pbiB0aGUgdGFzayBsYXRlciBvbi4KCSAgRml4IGEgbGVhayBvZiB0aGUgdGFza3Bvb2wuCgoyMDA5LTA0LTIzIDE2OjUzOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSAuZGVmcyBmaWxlIHdpdGggdGFza3Bvb2wgbWV0aG9kcwoKMjAwOS0wNC0yMyAxNjo1MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGZpeCBkZWFkbG9jayBkdWUgdG8gdHlwbwoKMjAwOS0wNS0xMiAwMDoyNToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IHVzZSBHc3RUYXNrUG9vbCBmb3IgbWFuYWdpbmcgdGhyZWFkcwoJICBVc2UgdGhlIG5ldyBHc3RUYXNrUG9vbCB0byBoYW5kbGUgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA5LTA0LTIzIDE2OjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogZml4IGRvY3MsIG1ha2UgcHVzaC9qb2luIGdlbmVyaWMKCSAgRml4IHNvbWUgbW9yZSBkb2NzLgoJICBNYWtlIF9wdXNoKCkgcmV0dXJuIGEgZ2VuZXJpYyBpZCAodGhpcyBjYW4gYmUgc29tZXRoaW5nIGVsc2UgdGhhbiBhIEdUaHJlYWQgaW4KCSAgc29tZSBjYXNlcykgYW5kIG1ha2UgX2pvaW4oKSB1c2UgdGhhdCBnZW5lcmljIGlkLgoKMjAwOS0wNC0yMyAxNTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBhZGQgbmV3IG9iamVjdCB0byBtYW5hZ2UgdGhyZWFkcwoJICBBZGQgYSBuZXcgb2JqZWN0IEdzdFRhc2tQb29sIHRvIG1hbmFnZSB0aGUgc3RyZWFtaW5nIHRocmVhZHMuCgkgIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBjcmVhdGUgYW5kIHVzZSBjdXN0b20gY29uZmlndXJlZCB0aHJlYWRzLgoKMjAwOS0wNC0yMiAxMjowNDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlczogc2V0IGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGF0ZSBjaGFuZ2UKCSAgV2UgbmVlZCB0byBzZXQgdGhlIGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGFydGluZyB0aGUgcGlwZWxpbmUgb3Igd2UgbWlnaHQganVzdAoJICBtaXNzIHRoZSBtZXNzYWdlIHdlIGFyZSBsb29raW5nIGZvci4KCjIwMDktMDQtMjIgMTA6MTY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0ZXN0czogYWRkIGV4YW1wbGUgYXBwIGZvciBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhbiBleGFtcGxlIGFwcGxpY2F0aW9uIHRoYXQgYWRqdXN0cyB0aGUgdGhyZWFkIHByaW9yaXR5IG9mIGEgdGFzayB1c2luZyB0aGUKCSAgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcy4KCjIwMDktMDQtMjEgMTk6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFzazogYWRkIG1ldGhvZCB0byBzZXQgdGhlIHByaW9yaXR5CgkgIEFkZCBhIG1ldGhvZCB0byBjb25maWd1cmUgYSBwcmlvcml0eSBmb3IgdGhlIHRocmVhZHMgdXNlZCBieSBHc3RUYXNrLgoKMjAwOS0wNC0yMSAxNjozMDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0LXRlc3QgZm9yIHRoZSBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTEyIDAwOjA1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBpbXByb3ZlIGRvY3VtZW50YXRpb24KCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGNhbGxiYWNrcy4KCjIwMDktMDQtMjEgMTU6MjU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggdW5pdC10ZXN0cyBmb3IgbmV3IHN0cmVhbS1zdGF0dXMKCSAgRml4IHRoZSB1bml0LXRlc3RzIHNvIHRoYXQgdGhleSBkb24ndCBmYWlsIG9uIHRoZSBuZXcgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcwoJICB0aGF0IGFyZSBlbWl0ZWQgbm93LgoKMjAwOS0wNC0yMSAxNDo0NjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBpbnN0YWxsIHRocmVhZCBjYWxsYmFja3Mgb2YgdGhlIHRhc2sKCSAgSW5zdGFsbCB0aHJlYWQgc3RhdHVzIGNhbGxiYWNrcyBvbiB0aGUgdGFzayBvYmplY3Qgb2YgYSBwYWQgYW5kIHBvc3QKCSAgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDQtMjIgMTA6MTQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBjbGFyaWZ5IHNvbWUgZG9jcwoKMjAwOS0wNC0yMSAxNDo0MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IGNhbGwgbGVhdmVfdGhyZWFkIGJlZm9yZSBzaWduYWxpbmcKCSAgQ2FsbCB0aGUgbGVhdmVfdGhyZWFkIGNhbGxiYWNrIGJlZm9yZSB3ZSBzaWduYWwgdGhlIHRocmVhZCBwZXJmb3JtaW5nIHRoZSBfam9pbgoJICBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGxpc3RlbmVyIHN0aWxsIGhhcyB2YWxpZCBpbmZvIGluIHRoZSBjYWxsYmFjay4KCjIwMDktMDQtMjEgMTM6NDI6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0TWVzc2FnZTogQWRkIFNUUkVBTV9TVEFUVVMgbWVzc2FnZSBtZXRob2RzCgkgIEFkZCBtZXRob2RzIHRvIGhhbmRsZSB0aGUgc3RyZWFtX3N0YXR1cyBtZXNzYWdlIHR5cGVzLgoKMjAwOS0wNC0yMSAxMzowNToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcms6IGFkZCAib2JqZWN0IiBxdWFyawoJICBBZGQgdGhlIG9iamVjdCBxdWFyayB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTExIDIzOjQ0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgVGFzazogcmVtb3ZlIGNyZWF0ZS9qb2luIG1ldGhvZHMKCSAgUHJlcGFyZSBmb3IgdXNpbmcgdGhlIEdzdFRhc2tQb29sIG9iamVjdC4gV2UgZG9uJ3QgbmVlZCB0aGUgY3JlYXRlIGFuZCBqb2luCgkgIGNhbGxiYWNrcyBhbnltb3JlLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcG9vbC4KCjIwMDktMDQtMjAgMTc6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBhZGQgcHJpdmF0ZSBkYXRhLCBmaXggcGFyZW50X2NsYXNzCgkgIFVzZSB0aGUgcGFyZW50IGNsYXNzIHRoYXQgdGhlIGdsaWIgbWFjcm8gZ2F2ZSB1cwoJICBBY3R1YWxseSBhZGQgdGhlIHByaXZhdGUgZGF0YSB0byB0aGUgdGFzay4KCjIwMDktMDQtMjAgMTc6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBob29rIHVwIGVudGVyL2xlYXZlL25vdGlmeSBjYWxsYmFja3MKCSAgSG9vcCB1cCB0aGUgbm90aWZ5L2VudGVyL2xlYXZlIGNhbGxiYWNrcy4KCjIwMDktMDUtMTEgMjM6MjM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wgdG8gZGVmcyBmaWxlCgoyMDA5LTA1LTExIDIzOjE5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWxsb3cgc2V0dGluZyBjYWxsYmFja3MKCSAgQWxsb3cgc2V0dGluZyB0aHJlYWQgY2FsbGJhY2tzIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBjb250cm9sIHRoZSB0aHJlYWRzIHVzZWQgYnkKCSAgdGhlIHRhc2suCgoyMDA5LTA0LTIzIDE5OjQwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGlnbm9yZSBwYWRfc3RhcnQgcmV0dXJuIHZhbHVlCgoyMDA5LTA0LTIxIDEzOjM0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogbW9yZSBTVFJFQU1fU1RBVFVTIHVwZGF0ZXMKCSAgUGFzcyB0aGUgdGhyZWFkIG9iamVjdCBpbiBhIEdWYWx1ZSwgd2hpY2ggd291bGQgYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHRvIGZpZ3VyZQoJICBvdXQgdGhlIHR5cGUgb2YgdGhlIG9iamVjdCBpbnN0ZWFkIG9mIHVzIGhhdmluZyB0byBleHBsaWNpdGx5IGNvZGUgaXQgaW4gYQoJICBtZXNzYWdlIGZpZWxkLgoKMjAwOS0wNC0yMSAwOTo0NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBzdHJlYW0tc3RhdHVzIGRvY3VtZW50IHNvbWUgbW9yZQoKMjAwOS0wNC0yMCAxNTo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IGFkZCBmaXJzdCB2ZXJzaW9uIG9mIHN0cmVhbS1zdGF0dXMKCSAgQWRkIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2UgZGVzaWduIGRvY3MuCgkgIFRoaXMgbWVzc2FnZSB3aWxsIGJlIHVzZWQgdG8gZ2l2ZSBhcHBsaWNhdGlvbnMgbW9yZSBjb250cm9sIG92ZXIgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwOS0wNC0yMSAxNzo1MzowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGFkZCBzb21lIG1vcmUgZG9jcwoKMjAwOS0wNC0yMSAxNzoxNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiB1c2UgbmV3IHRhc2sgZnVuY3Rpb24KCSAgVXNlIHRoZSBuZXcgdGFza19zZXRfc3RhdGUgZnVuY3Rpb24gYW5kIGFjdHVhbGx5IHJldHVybiBpdHMgcmVzdWx0IHRvCgkgIHRoZSBjYWxsZXIuCgoyMDA5LTA1LTExIDIyOjU5OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFRhc2s6IHVuaWZ5IHRhc2sgc3RhdGUgZnVuY3Rpb25zCgkgIEFkZCBuZXcgZ3N0X3Rhc2tfc2V0X3N0YXRlKCkgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgdGFzayBpbnN0ZWFkIG9mCgkgIGR1cGxpY2F0aW5nIHRoZSBjb2RlIGluIGVhY2ggZnVuY3Rpb24uCgkgIEFQSTogR3N0VGFzazo6Z3N0X3Rhc2tfc2V0X3N0YXRlKCkKCjIwMDktMDQtMjEgMTM6Mzc6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNZXNzYWdlOiBzbWFsbCBpbmRlbnRhdGlvbiBjaGFuZ2UuCgoyMDA5LTA1LTAyIDE0OjQzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxNDozOTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYXZvaWQgY2FsbGluZyBfZ2V0X25hbWUoKSB0b28gbXVjaAoJICBBdm9pZCBjYWxsaW5nIGdzdF9wbHVnaW5fZ2V0X25hbWUoKSB0b28gbWFueSB0aW1lcyBidXQgaW5zdGVhZCBjYWNoZQoJICB0aGUgdmFsdWUuCgoyMDA5LTA1LTAyIDE0OjM2OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgVXNlIG5ldyBfcmVmX3Npbmsgd2hlbiB3ZSBjYW4KCjIwMDktMDUtMDIgMTQ6MzM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogYWRkIGdzdF9vYmplY3RfcmVmX3NpbmsKCSAgQWRkIHRoZSBnc3Rfb2JqZWN0X3JlZl9zaW5rKCkgbWV0aG9kIHRvIG1hdGNoIHRoZSBnbGliIG9uZS4KCSAgQVBJOiBHc3RPYmplY3Q6OmdzdF9vYmplY3RfcmVmX3NpbmsoKQoKMjAwOS0wNS0wMiAxMzowNjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxMzowMjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhdm9pZCB0eXBlY2hlY2tzIGluIGZpbmFsaXplCgkgIEF2b2lkIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRoZSBmaW5hbGl6ZSBvZiBidWZmZXJzIGFuZCBzdWJidWZmZXJzLgoKMjAwOS0wNS0wMiAxMjo1OTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGF2b2lkIHR5cGVjaGVjawoKMjAwOS0wNC0yMCAxNDowMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogY29ubmVjdCB0byBkZWVwLW5vdGlmeSB3aXRoIHJpZ2h0IG5hbWUKCSAgQ29ubmVjdCB0byB0aGUgcmlnaHQgc2lnbmFsIG5hbWUgd2l0aCAtIGluc3RlYWQgb2YgXy4KCjIwMDktMDQtMjQgMjI6MDY6MTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogU3VwcG9ydCBuZXcgcHJpbnRmIGV4dGVuc2lvbnMgaW4gZ2xpYmMgMi4xMAoJICBUaGUgcHJpbnRmIGV4dGVuc2lvbiBtZWNoYW5pc20gY2hhbmdlZCBpbiBnbGliYyAyLjEwLCBhbmQgdGhlIG9sZGVyCgkgIHJlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBEZXRlY3QgYW5kIHVzZSB0aGUgbmV3CgkgIG1lY2hhbmlzbSB3aGVyZSBhdmFpbGFibGUuCgoyMDA5LTA0LTIwIDEyOjI1OjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBGaXggYSB0eXBvIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wNS0xMSAyMToxMTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjMuMQoKPT09IHJlbGVhc2UgMC4xMC4yMyA9PT0KCjIwMDktMDUtMTAgMjI6NDE6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjMKCjIwMDktMDUtMTAgMjI6Mzg6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA1LTA2IDE2OjEwOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjIuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNC0yNCAxOTozNjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgR3N0QmluOiBzZXQgUEVORElOR19TVEFURSBjb3JyZWN0bHkKCSAgU2V0IHRoZSBwZW5kaW5nIHN0YXRlIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBnb2luZyB0byBwZXJmb3JtIGFuIGFzeW5jCgkgIHN0YXRlX2NvbnRpbnVlIG9uIHRoZSBiaW4uCgkgIEZpeGVzICM1ODAxMjEKCjIwMDktMDQtMjEgMjA6NTA6NTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMi4zIHByZS1yZWxlYXNlCgoyMDA5LTA0LTIxIDIyOjEyOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIzOTQxZWEgdG8gNmFiMTFkMQoKMjAwOS0wNC0xNyAxNTo0Njo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdpbjMyOiBkZWZpbmUgX19NU1ZDUlRfVkVSU0lPTl9fIHdoZW4gY29tcGlsaW5nIHdpdGggTWluZ1csIGZvciBfX3N0YXQ2NAoJICBOZWVkIHRvIGRlZmluZSB0aGlzIHdoZW4gdXNpbmcgTWluZ1csIHNvIHRoYXQgdGhlIGluY2x1ZGVzIHByb3ZpZGUKCSAgX19zdGF0NjQgYW5kIGZyaWVuZHMuIFdlIG5lZWQgYXQgbGVhc3QgV2luZG93cyBYUCBTUDIgZm9yIHRoaXMuCgkgIEZpeGVzICM1Njg2MzIuCgoyMDA5LTA0LTE2IDIyOjI2OjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RkZWJ1ZzogY29tcGV0ZSBzdHVicy4gRml4ZXMgIzU3OTE3Ny4KCSAgQXZvaWQgZGVmaW5lcyB3aGVuIGluY2x1ZGluZyBnc3RpbmZvLmggb3Vyc2VsZiBhbmQgY29tcGxldGUgc3R1YnMuIFN5bmMgc3R1YgoJICByZXR1cm5zIHdpdGggdGhlIGRlZmluZXMuCgoyMDA5LTA0LTE3IDExOjQ0OjExICswMTAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmb3JrKCkgZHVyaW5nIHJlZ2lzdHJ5IHNjYW5uaW5nIGlzIHVuc2FmZSBvbiBDeWd3aW4KCSAgRml4ZXMgIzU1NTk3OC4KCjIwMDktMDQtMTcgMTE6Mzk6NTkgKzAxMDAgIFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3RfaW5pdDogcmVsb2NhdGFiaWxpdHkgaXMgdW5uZWNlc3Nhcnkgb24gQ3lnd2luCgkgIFNlZSAjNTU1OTc4LgoKMjAwOS0wNC0xNyAxMDoxMToyMSArMDEwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZG9uJ3QgYXNzdW1lIEdfSEFWRV9JU09fVkFSQVJHUyBpbXBsaWVzIElTTyBDOTkKCSAgTWFrZXMgaGVhZGVycyBDKysgY2xlYW4sIGVzcC4gd2l0aCB0aGUgU3VuIGNvbXBpbGVycy4KCSAgRml4ZXMgIzU2NzY5Mi4KCjIwMDktMDQtMTcgMDk6MTc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBHc3RQbHVnaW46IGZpeCBjb21waWxhdGlvbiBpZiBib3RoIEhBVkVfV0lOMzIgYW5kIEhBVkVfU0lHQUNUSU9OIGFyZSBkZWZpbmVkCgkgIE1vdmUgX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9pc19zZXR1cCBpbnRvIHRoZSBpZmRlZiBibG9jayB3aGVyZSBpdCdzCgkgIHVzZWQuIEZpeGVzICM1NzgyMDEuCgoyMDA5LTA0LTE2IDEyOjAxOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBkaXNhYmxlIENMT0NLX0xPU1QgbWVzc2FnZSBoYW5kbGluZwoJICBEaXNhYmxlIHRoZSBoYW5kbGluZyBvZiB0aGUgQ0xPQ0tfTE9TVCBtZXNzYWdlcyB1bnRpbCB3ZSBmaXhlZCBhbmQgcmVsZWFzZWQgdGhlCgkgIGVsZW1lbnRzIChydHNwc3JjKSB0aGF0IGJyZWFrIHdoZW4gd2UgcXVpY2tseSBQQVVTRS9QTEFZIHRoZSBwaXBlbGluZS4KCSAgRml4ZXMgIzU3OTEyNwoKMjAwOS0wNC0xNSAyMjoyNDo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNlOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4yMi4yIGZvciBwcmUtcmVsZWFzZQoKMjAwOS0wNC0xNiAwMDowODoyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBVcGRhdGUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDktMDQtMTUgMjM6Mjc6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIFRQCgoyMDA5LTA0LTE1IDIyOjE3OjEwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZzogcmVnZW5lcmF0ZSBjaGFuZ2Vsb2cgd2l0aCB0aGUgZ2VuLWNoYW5nZWxvZyBzY3JpcHQKCjIwMDktMDQtMTUgMjM6MjY6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiByZW1vdmUgZXJyYW50IGd0ay1kb2MgY29tbWVudCBtYXJrZXIgdHJpZ2dlcmluZyBhIHdhcm5pbmcKCjIwMDktMDQtMTYgMDA6MDI6MDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwYXJhbXNwZWNzOiByZXZlcnQgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSgpIGZvciByZWxlYXNlCgkgIFJldmVydCB0aGUgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSBBUEkgZm9yIHRoaXMgcmVsZWFzZSBzbyB3ZSBjYW4KCSAgZGlzY3VzcyBpdCBhIGJpdCBmdXJ0aGVyIGZpcnN0LgoKMjAwOS0wNC0xNSAyMzozMzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGxvZ2dpbmc6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZyBsb2dzLgoJICBUaGUgdmFyIHdhcyBOVUxMIGFueXdheSwgYmFjYXVzZSBvZiB0aGUgaWZkZWZzIHRoZXJlLCB0aGUgbWVzc2FnZSBtYWtlcyBubwoJICBzZW5zZSBpbmNsdWRpbmcgaXQuCgoyMDA5LTA0LTE1IDIzOjEyOjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGRlYnVnOiBzaG93IGVuYWJsZWQvZGlzYWJsZWQgaW4gY29uZmlndXJlIGFuZCBmaXggYnVpbGQgZm9yIGRpc2FibGVkCgkgIFdoZW4gaXRzIGRpc2FibGVkLCB3ZSBwb2lzb24gc29tZSBzeW1ib2xzIHRvIGZvcmNlIGEgYnVpbGQgZXJyb3IgaWYgdGhleSBhcmUKCSAgdXNlZC4gRHVubm8gaG93IHVzZWZ1bCB0aGlzIGFjdWFsbHkgaXMsIGJ1dCB3ZSBuZWVkIHRvIGRpc2FibGUgdGhlIHBvaXNvbmluZwoJICB3aGVuIHdlIGluY2x1ZGUgdGhpcyBvdXJzZWxmLiBBbHNvIGRvbid0IGRlZmluZSBzb21lIG9mIHRoZSBkdW1taWVzLCBhcyB0aGV5CgkgIGFyZSBnZXR0aW5nIHJlcGxhY2VkIHdpdGggZGVmaW5lcyBhbmQgdGhhdCBjcmVhdGVzIGNvZGUgdGhhdCBkb2VzIG5vdCBjb21waWxlLgoKMjAwOS0wNC0xNSAxOTo1ODozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFVzZSBnX29uY2VfaW5pdF8qKCkgaW5zdGVhZCBvZiBHT25jZSBmb3IgdGhlIGVudW0gdHlwZXMKCjIwMDktMDQtMTUgMTM6MDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHN0YXRpY3BhZHRlbXBsYXRlOiBVcGRhdGUgZG9jcyBvZiBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKQoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKSBhY3R1YWxseSByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZQoJICBjYXBzIGFuZCBpdCdzIGNsZWFuZXIgdG8gdW5yZWYgdGhlbSBhZnRlciB1c2FnZS4gVGhlIGNvcmUgd2lsbCwgaG93ZXZlciwKCSAgYWx3YXlzIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMgc28gdGhpcyBkaWRuJ3QgcmVzdWx0IGluIGEgbWVtb3J5CgkgIGxlYWsuCgoyMDA5LTA0LTE0IDIyOjMyOjIxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgZG9jczogdXNlIHJlYWwgPG5vdGU+IHRhZ3MgYXMgdGhleSBsb29rIG5pY2UgaW4gbmV3IGd0ay1kb2MKCjIwMDktMDQtMTQgMTI6MjA6MzcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgRml4IGxvY2tpbmcgaW4gZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wNC0xNCAyMjowNzozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmYWN0b3Igb3V0IGR1cGxpY2F0ZWQgY29kZSBhbmQgYWRkIGEgZGVzY3JpcHRpb24gZm9yIGl0LgoJICBBbHNvIGZpeCB0eXBvIGluIHRoZSB0ZXN0cyB3aGlsZSByZXZpZXdpbmcgdGhlbS4KCjIwMDktMDQtMTQgMTk6MTI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogYWRkIHNpbXBsZSBkb2MgYmx1cmIKCjIwMDktMDQtMTQgMTk6MTE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWNzOiBhZGQgbm90ZSBhYm91dCByYWN5bmVzcwoJICBBZGQgYSBub3RlIGFib3V0IHBvdGVudGlhbCByYWN5bmVzcyBpbiBfaXNfbXV0YWJsZSgpLgoKMjAwOS0wNC0xNCAxMDozMjowNyArMDIwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBtdXRleCB0byBkbyBjb25zb2xlIGNvbG9ycyBvbiB3aW5kb3dzCgkgIFVzZSBhIHN0YXRpYyBtdXRleCB0byBrZWVwIHRoZSBjb25zb2xlIGNvbG9ycyBhbmQgY29udGV4dCB0b2dldGhlciB3aGVuCgkgIGRlYnVnZ2luZyB3aXRoIGNvbG9ycyBvbiBXaW5kb3dzLgoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wNC0xMyAxNDoyNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBkb2NzOiBhZGQgU2luY2U6IHRhZ3MgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBwYXJhbSBzcGVjIEFQSQoJICBBbmQsIGZvciBvdXIgcmVsZWFzZSBtYW5hZ2VyLCB0aGUgaW4tY29tbWl0LW1lc3NhZ2Uga2V5d29yZHMKCSAgZm9yIHRoZSBwcmV2aW91cyBjb21taXQ6CgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUkVBRFkKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QQVVTRUQKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QTEFZSU5HCgkgIEFQSTogZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wMi0yMCAxMTowOToxOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgQWRkIHBhcmFtIHNwZWMgZmxhZ3MgZm9yIHdoZW4gYSBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZAoJICBBZGRzIEdTVF9QQVJBTV9NVVRBQkxFKiBmbGFncyB0byBpbmRpY2F0ZSBpbiB3aGljaCBzdGF0ZXMgYQoJICBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZCBhbmQgdGFrZSBlZmZlY3QuICBGaXhlcyAjNTcxNTU5CgoyMDA5LTA0LTEwIDE0OjE1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBoYW5kbGUgY2xvY2stbG9zdCBtZXNzYWdlcwoJICBXaGVuIHdlIHJlY2VpdmUgYSBjbG9jay1sb3N0IG1lc3NhZ2UsIHdlIG5lZWQgdG8gc2VsZWN0IGEgbmV3IGNsb2NrIGluIHRoZQoJICBwaXBlbGluZSBieSBzZXR0aW5nIHRoZSBwaXBlbGluZSB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORy4KCjIwMDktMDQtMDkgMTg6Mjc6MjEgKzAyMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIuY2E+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBhbGxvYyBwYWQKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgcGFkIHVzZWQgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gb24KCSAgdGhlIHNpbmtwYWQuCgkgIEZpeGVzICM1Nzc4OTEuCgoyMDA5LTA0LTA5IDExOjUxOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFsd2F5cyBtYXJrIHBlbmRpbmdfYXN5bmNfZG9uZQoJICBXaGVuIHdlIGdldCBhbiBBU1lOQ19ET05FIG1lc3NhZ2Ugd2hlbiBhIHN0YXRlIGNoYW5nZSB3YXMgYnVzeSwgc2V0IHRoZQoJICBwZW5kaW5nX2FzeW5jX2RvbmUgZmxhZyBzbyB0aGF0IGFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UgY29tcGxldGVzLCB0aGUgYmluIGNhbgoJICBjaGVjayBpZiBhbGwgYXN5bmMgZWxlbWVudHMgYXJlIGZpbmlzaGVkLiBEb24ndCBvbmx5IGRvIHRoaXMgZm9yIHRoZSBiaW4gaXRzZWxmCgkgIGJ1dCBmb3IgYWxsIGVsZW1lbnRzLgoJICBUaGlzIGZpeGVzIHNvbWUgYmlucyBpbiBiaW5zIHRoYXQgc2ltdWxhdGUgYXN5bmMgc3RhdGUgY2hhbmdlcyBieSBwb3N0aW5nIEFTWU5DCgkgIG1lc3NhZ2VzIChzdWNoIGFzIHNkcHBhcnNlIGluIHVyaWRlY29kZWJpbi9wbGF5YmluMikuCgoyMDA5LTA0LTA5IDExOjQyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGF0aW9uLCAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludAoJICAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludCwgc28gZ2l2ZSBpdCB0aGF0LgoKMjAwOS0wNC0wNiAwMToyNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgRklYTUUgYW5kIERVTVBNRU0gbG9nIGxldmVscyBhbmQgY29udmVuaWVuY2UgbWFjcm9zCgkgIFR3byBuZXcgbG9nIGxldmVscyB0byBkdW1wIEZJWE1FcyBpbnRvIHRoZSBsb2cgYW5kIHRvIGxvZyBkYXRhCgkgIGluIGZvcm0gb2YgYSBoZXggZHVtcCAoIzU3ODExNCkuCgkgIEFQSTogR1NUX0NBVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX01FTURVTVBfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9GSVhNRQoJICBBUEk6IEdTVF9DQVRfTUVNRFVNUAoJICBBUEk6IEdTVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTUVNRFVNUF9PQkpFQ1QKCSAgQVBJOiBHU1RfRklYTUUKCSAgQVBJOiBHU1RfTUVNRFVNUAoKMjAwOS0wNC0wOCAxODoxMzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jczogeHJlZiBtb3JlCgoyMDA5LTA0LTA4IDE3OjQ5OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHJlbW92ZSB0aGUgaGFja3MgdG8gd29ya2Fyb3VuZCB0aGUgcGFkLWxlYWsKCjIwMDktMDQtMDggMTU6MjQ6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogZW5hYmxlIGNvZGUgdG8gZml4IHRoZSBsZWFrLCBub3cgdGhhdCB0aGUgZGVwcyBoYXZlIGJlZW4gcmVsZWFzZWQKCSAgR29vZCBhbmQgZmZtcGVnIGFyZSBhY3R1YWxseSBtdWx0aXBsZSByZWxlYXNlcyBiZXlvbmQsIHNvIHRoYXQgdGhpcyBpcyBub3cgc2FmZQoJICB0byBkby4KCjIwMDktMDQtMDQgMjE6MTg6MjMgKzAzMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkMGVhODllIHRvIGIzOTQxZWEKCjIwMDktMDQtMDQgMTQ6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4YjNkOTEgdG8gZDBlYTg5ZQoKMjAwOS0wNC0wNCAxNDo0MjowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgZGVhZCBhc3NpZ25tZW50CgkgIGZpcnN0X2ZsYWcgd2lsbCBiZSBlaXRoZXI6CgkgICogcmV3cml0dGVuIHdpdGhvdXQgYmVpbmcgcmVhZCBpZiB3ZSBsb29wIGFnYWluIChsaW5lIDI4NCkKCSAgKiBub3QgcmVhZCBhZ2FpbiBpZiB3ZSBkb24ndCBsb29wCgoyMDA5LTA0LTA0IDE0OjM5OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLgoJICBzc3RhcnQvc3N0b3AvcnN0YXJ0L3JzdG9wIGFyZSBhbGwgZWl0aGVyOgoJICAqIGFzc2lnbmVkIHZhbHVlcyBsYXRlciBvbiBiZWZvcmUgYmVpbmcgdXNlZCBpbiAnZG9fdGltZXM6JyAoRU9TIGFuZCBidWZmZXJzKQoJICAqIG5vdCB1c2VkIChub24tRU9TIGV2ZW50cykKCjIwMDktMDQtMDQgMTQ6Mzg6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhcmlhYmxlIHdpbGwgbm90IGJlIHJlYWQgYmVmb3JlIGl0J3MgYXNzaWduZWQgYSB2YWx1ZSBsaW5lIDk0Mi85NDUKCjIwMDktMDQtMDQgMTQ6Mzc6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3R0YWdsaXN0OiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBXZSBkb24ndCBuZWVkIHRvIGFsbG9jYXRlIGEgdmFyaWFibGUgaWYgaXQncyB0aGUgcmV0dXJuIG9mIGEgZnVuY3Rpb24gY2FsbAoJICBhbmQgd2Ugb25seSBjaGVjayBpdCBvbmNlLgoKMjAwOS0wNC0wNCAxNDozNTozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBPbmx5IHVzZSBtZXRob2RzIHVzZWQgaW4gZ18qIGNoZWNrcyBpZiBnbGliIGNoZWNrcyBhcmUgZGlzYWJsZWQKCjIwMDktMDQtMDQgMTA6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBnc3Q6IFVzZSBnX29uY2VfaW5pdCogb3IgR19ERUZJTkVfVFlQRQoKMjAwOS0wNC0wNCAxMDoyMDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGZyaWVuZHMgb3IgYXQgbGVhc3QgZ19vbmNlX2luaXRfKiBpbiB0aGUgX2dldF90eXBlKCkgZnVuY3Rpb25zCgoyMDA5LTA0LTA0IDEwOjE4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGRvbid0IGNhbGwgZ190aHJlYWRfaW5pdCgpIGZyb20gY2xhc3NfaW5pdAoJICBjbGFzc19pbml0IGlzIHRvbyBsYXRlIGZvciBjYWxsaW5nIGdfdGhyZWFkX2luaXQoKSBhcyBnX3RocmVhZF9pbml0KCkKCSAgbmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgR09iamVjdCBmdW5jdGlvbi4KCjIwMDktMDQtMDMgMTM6NDY6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVXNlIGdfc2xpY2VfY29weSBpbnN0ZWFkIG9mIGdfc2xpY2VfZHVwLgoJICBBIChidWdneSkgZ2xpYiBnX3NsaWNlX2R1cCBtYWNybyBtYXkgY2F1c2UgY29tcGlsZXIgd2FybmluZ3Mgb24gZS5nLiB4ODZfNjQuCgoyMDA5LTA0LTAzIDEyOjIxOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBvZiBwcm9wIGlzIGJlaW5nIG92ZXJ3cml0dGVuIGp1c3QgYWZ0ZXIgd2l0aG91dCBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoyMDozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICAndHlwZScgaXMgbmV2ZXIgdXNlZCB1bnRpbCBsaW5lIDE4NDcgd2hlcmUgaXQncyBvdmVyd3JpdHRlbi4KCjIwMDktMDQtMDMgMTI6MTk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhbHVlIHNldCB0byB0b19jb3B5IGF0IHRoYXQgbGluZSBpcyBuZXZlciB1c2VkLCBhbmQgaXMgb3ZlcndyaXR0ZW4KCSAgZnVydGhlciBkb3duIGJlZm9yZSBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoxNzozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBUaGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSBpc24ndCB1c2VkIGFmdGVyIHRoYXQgY2FsbC4KCjIwMDktMDQtMDMgMTI6MTU6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IHJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudC4KCSAgSWYgdGhhdCBibG9jayBpcyBlbnRlcmVkLCB0aGVuIHN0YXJ0X3RpbWUgYmVjb21lcyBHU1RfQ0xPQ0tfVElNRV9OT05FLgoJICBTaW5jZSBzdGFydF90aW1lIGlzIGludmFsaWQsIHRoZSBjb2RlIHdpbGwgZW50ZXIgdGhlIGJsb2NrIGF0IGxpbmUgNDM0IGFuZAoJICBuZXdfYmFzZV90aW1lIHdpbGwgYmUgc2V0IHRoZXJlLgoKMjAwOS0wNC0wMyAxMjoxMzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogcmVtb3ZlIHZhcmlhYmxlIG9ubHkgdXNlZCBmb3IgYSBjaGVjay4KCSAgdGhhdCB2YXJpYWJsZSBpc24ndCB1c2VkIGFueXdoZXJlIGVsc2Ugd2l0aGluIHRoYXQgYmxvY2suCgoyMDA5LTA0LTAzIDEyOjEzOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luayA6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIHN5bmMgaXMgbmV2ZXIgdXNlZCBhbnl3aGVyZSBpbiB0aGF0IGNvZGUuCgoyMDA5LTA0LTAzIDEyOjEyOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgdW51c2VkIHZhcmlhYmxlIGluIHRoZSAjaWYgMCBibG9jay4KCSAgVGhhdCB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkgdGhlIGNvZGUgd2hpY2ggaGFzIGJlZW4gaWYgMCdkCgoyMDA5LTA0LTAzIDExOjU2OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBpbmNyZW1lbnRzIGFzIGRldGVjdCBieSBMTFZNJ3MgQ0xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0wMyAxMTo1Mjo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGRldGVjdGVkIGJ5IExMVk0ncyBDbGFuZyBzdGF0aWMgYW5hbHl6ZXIuCgoyMDA5LTA0LTAzIDExOjE5OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGltcHJvdmUgQVBJIHJlZmVyZW5jZSBmb3IgZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSgpCgoyMDA5LTA0LTAyIDEzOjMyOjU4ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0L2dzdGJpbi5oOgoJICBkb2NzOiBleHBsYWluIHJlZiBvd25lcnNoaXAgZm9yIGhhbmRsZV9tZXNzYWdlIGltcGxlbWVudGF0aW9ucwoKMjAwOS0wNC0wMiAxMDo0MzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogQ2FsbCBnc3RfY2hlY2tfaW5pdCgpIGJlZm9yZSBjcmVhdGluZyB0aGUgc3VpdGUKCSAgVGhpcyBhbGxvd3MgdXNpbmcgdGhlIEdTdHJlYW1lciBvciBHT2JqZWN0IEFQSSBpbiB0aGUgc3VpdGUKCSAgY3JlYXRpb24gZnVuY3Rpb24uCgoyMDA5LTAzLTMxIDE4OjE0OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4ZXMgZXJyb3Igd2hlbiBESVNBQkxFX0ZBVUxUX0hBTkRMRVIgaXMgZGVmaW5lZAoJICBXaGVuIGRlZmluZWQsIHRoaXMgbWFjcm8gcHJldmVudGVkIHRoZSBkZWNsYXJhdGlvbiBvZiAnd2FpdGluZ19lb3MnLCBjYXVzaW5nIGFuIGVycm9yLgoKMjAwOS0wMy0yNiAxNzoyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyLiBBbHdheXMgY2FsbHMgX3N1Z2dlc3QsIGV2ZW4gd2l0aCBOVUxMIGNhcHMuIEZpeGVzICM1NzQ4MDUKCjIwMDktMDMtMzAgMTU6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IERvbid0IGRlZmluZSBnbG9iYWwgYnVmZmVycyB2YXJpYWJsZSwgaXQncyBhbHJlYWR5IGRlZmluZWQgYnkgbGliZ3N0Y2hlY2sKCjIwMDktMDMtMzAgMTA6MzM6NTEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJICBkb2NzOiBTb21lIGdyYW1tYXIgYW5kIHR5cG8gY29ycmVjdGlvbnMuCgoyMDA5LTAzLTI5IDEzOjQxOjIyICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYW5hLmFtYW50ZXM+CgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkgIEZpeCB0eXBvLgoKMjAwOS0wMy0yNyAxNzozMDoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpbml0IHZhcmlhYmxlLCB0aGF0IGlzIHJlZmVyZW5jZWQgaW4gZXJyb3IgY2FzZSBiZWxvdyB0aGUgZmFpbDogbGFiZWwKCjIwMDktMDMtMjcgMTY6MTU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHdha2V1cCB0aGUgYXN5bmMgdGhyZWFkIGEgYml0IG1vcmUKCSAgQWxzbyB3YWtlIHVwIHRoZSBhc3luYyB0aHJlYWQgd2hlbiBpdCBpcyBkb2luZyBhbiBhc3luYyB3YWl0IGZvciBhbiBlbnRyeS4KCjIwMDktMDMtMjcgMTY6MTU6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggYSBsaXR0bGUgZGVidWcgbWVzc2FnZQoKMjAwOS0wMy0yNiAxMzowNzo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBjaGVjayBmb3Igbm90IHJlYWRpbmcgYmV5b25kIHRoZSBkYXRhIGFyZWEuIEZpeGVzICM1NzY4NDIKCSAgQ2hlY2sgYWxsIHJlYWRzIGFnYWluc3QgdGhlIGVuZCBvZiB0aGUgZGF0YSByZWdpb24uIFJvbGwgYmFjayByZWdpc3RyYXRpb24gb2YKCSAgcGFydGlhbCByZWFkcy4KCjIwMDktMDMtMjUgMTE6MDM6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBhIHBhZ2UgYWJvdXQgYnVpbGRpbmcgZ3N0cmVhbWVyIGFuZCBhcHBzCgoyMDA5LTAzLTI2IDEzOjA4OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkcyBmbGFnIGZvciBlb3Mgb24gc2h1dGRvd24gaW4gZ3N0LWxhdW5jaC4gRml4ZXMgIzU3NTgxNC4KCjIwMDktMDMtMjYgMjI6MDU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIFVOU0NIRURVTEVEIGNoZWNrcyB0aHJlYWRzYWZlCgkgIE1vdmUgdGhlIGNoZWNrcyBmb3IgdXNpbmcgYW4gdW5zY2hlZHVsZWQgZW50cnkgZnJvbSB0aGUgdW5zYWZlIEdzdENsb2NrIHRvIHRoZQoJICBTeXN0ZW1DbG9jayBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gcGVyZm9ybSB0aGUgY29ycmVjdCBsb2NraW5nLgoJICBmaXggYSBsZWFrIGFuZCBwb3RlbnRpYWwgZGVhZGxvY2sgdGhlbiB0aGUgYXN5bmMgdGhyZWFkIGZhaWxzIHRvIHN0YXJ0LgoJICBTcHJpbmtsZSBzb21lIEdfTElLRUxZIGFyb3VuZCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDMtMjYgMjE6NDA6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBwZW5kaW5nIGFzeW5jIHdha2V1cCBzb29uZXIKCSAgUmVtb3ZlIGEgcGVuZGluZyBhc3luYyB3YWtldXAgYmVmb3JlIHdlIGNoZWNrIGlmIHRoZSBuZXh0IGVudHJ5IGlzIFVOU0NIRURVTEVECgkgIGJlY2F1c2Ugd2UgbWlnaHQgbGVhdmUgdGhlIGNvbnRyb2wgc29ja2V0IGJ1c3kuCgoyMDA5LTAzLTI2IDE5OjMzOjQxICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IENvcnJlY3RlZCBhIGRvY3VtZW50YXRpb24gdHlwby4KCjIwMDktMDMtMjYgMTk6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGFkZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA5LTAzLTI2IDE4OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiByZXdvcmsgdGhlIHdha2V1cCBvZiBlbnRyaWVzLgoJICBLZWVwIGEgY291bnRlciBmb3IgdGhlIGFtb3VudCBvZiBvdXRzdGFuZGluZyB3YWtldXBzIHRoYXQgd2UgcHJvZHVjZSBhbmQgb25seQoJICBwZXJmb3JtIGEgd3JpdGUvcmVhZCB0byB0aGUgY29udHJvbCBzb2NrZXQgd2hlbiAxIG9yIDAgcmVzcGVjdGl2ZWx5LgoJICBkb24ndCBwb2xsIHdoZW4gd2FpdGluZyBmb3IgdGhlIGVudHJpZXMgdG8gYmUgdW5ibG9ja2VkIGFuZCBjbGVhciB0aGVpciB3YWtldXAKCSAgY291bnRzLCBqdXN0IGFjdCBvbiB0aGUgc2lnbmFsIHdoZW4gdGhlIHdha2V1cCBjb3VudCBpcyAwLgoJICB1bnNjaGVkdWxlZCBlbnRyaWVzIHdpbGwgY2xlYXIgdGhlaXIgd2FrZXVwIGNvdW50IHRoZW1zZWx2ZXMuCgkgIEtlZXAgdHJhY2sgb2Ygd2hlbiB3ZSB3YWtldXAgdGhlIGFzeW5jIHRocmVhZCBiZWNhdXNlIHRoZSBsaXN0IG9mIGVudHJpZXMgaGFzCgkgIGNoYW5nZWQuCgkgIGRvbid0IHRyeSB0byBzZWUgaWYgdGhlIGxpc3QgY2hhbmdlZCBiZWNhdXNlIHdlIGNhbid0IHJlYWxseSBrbm93IHdoZW4gb25lIGVudHJ5CgkgIGlzIGFkZGVkIG11bHRpcGxlIHRpbWVzLgoJICBPbmx5IHdha2UgdXAgdGhlIGFzeW5jIHRocmVhZCB3aGVuIHdlIGFkZCBhbiBhc3luYyBlbnRyeSB0byB0aGUgaGVhZCBvZiB0aGUgbGlzdAoJICBhbmQgdGhlIG9sZCBlbnRyeSB3YXMgQlVTWS4KCjIwMDktMDMtMjUgMTc6MzE6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEZpeCB1cCBkb2N1bWVudGF0aW9uIHN0cmluZ3MuCgkgIE5vdGUgdGhlIGNoYW5nZWQgYmVoYXZpb3VyIG9mIGdzdF9wb2xsX3dhaXQgZm9yIHRpbWVyIEdzdFBvbGwncywgYW5kCgkgIGZpeCBhIGNvdXBsZSBvZiBzcGVsbGluZyBlcnJvcnMuCgoyMDA5LTAzLTI2IDE1OjU1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZml4IDIgd2FrZXVwIHJhY2VzLgoJICB3aGVuIGFuIGVudHJ5IGJlaW5nIHdhaXRlZCBvbiBpbiB0aGUgYXN5bmMgdGhyZWFkIGlzIHVuc2NoZWR1bGVkLCBjbGVhciB0aGUKCSAgd2FrZXVwIHF1ZXVlIHNvIHdlIGNhbiBjb250aW51ZSB3YWl0aW5nIG9uIG90aGVyIGVudHJpZXMuCgkgIFdoZW4gYW4gZW50cnkgYmVpbmcgd2FpdGVkIG9uIGluIHRoZSBhc3luYyB0aHJlYWQgaXMgdW5sb2NrZWQgYmVjYXVzZSBhbiBlYXJsaWVyCgkgIGVudHJ5IHdhcyBhZGRlZCB0byB0aGUgbGlzdCwgc2V0IHRoZSBlbnRyeSB0byBPSyBhZ2Fpbi4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKCSAgb25seSB0aGUgZW50cmllcyBiZWluZyB3YWl0ZWQgb24gaGF2ZSB0aGUgQlVTWSBmbGFnIHNldCBhbmQgd2FrZSB1cCB0aGUgdGltZXIKCSAgcG9sbCB3aGVuIHRoZXkgYXJlIHVuc2NoZWR1bGVkLgoKMjAwOS0wMy0yNiAxNDo0NDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSAuZ2l0IGRpcmVjdG9yeSB3aGVuIHJlY3Vyc2l2ZWx5IHNjYW5uaW5nIHBsdWdpbiBwYXRocyBmb3IgcGx1Z2lucwoJICBTYXZlcyBzb21lIGN5Y2xlcy9wYW5kYXMgZm9yIHRob3NlIG9mIHVzIHdobyBydW4gdW5pbnN0YWxsZWQgc2V0dXBzLgoKMjAwOS0wMy0yNiAxNDoxNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHJlZ2lzdHJ5OiBkbyBmc3luYygpIGJlZm9yZSBjbG9zZSgpIGFuZCByZW5hbWUoKQoJICBUaGlzIGhlbHBzIHByZXZlbnQgZmlsZXN5c3RlbS9kYXRhIGluY29uc2lzdGVuY2llcyBpbiBjZXJ0YWluCgkgIGNpcmN1bXN0YW5jZXMgb24gY2VydGFpbiBmaWxlc3lzdGVtcyAobGlrZSBleHQ0LCB4ZnMsIHViaWZzKS4KCSAgQWxzbyBzZWUgYnVnICM1NjI5NzYuCgoyMDA5LTAzLTI2IDAxOjA5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9nZXRfYnVmZmVye19pbmRleH0KCSAgQ29udmVuaWVuY2UgQVBJLCBtb3N0bHkgZm9yIGltYWdlIHRhZ3MsIHNvIHBlb3BsZSBkb24ndCBoYXZlIHRvCgkgIGZpZ3VyZSBvdXQgdGhlIHdob2xlIEdWYWx1ZS9Hc3RWYWx1ZSB0aGluZyBqdXN0IGZvciB0aGlzLgoKMjAwOS0wMy0yNSAyMzowMzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBDbGVhbiB1cCB0aGUgdGVzdHMgYSBiaXQuCgkgIEFkZCBzb21lIGNsZWFudXBzIHRvIHRoZSBzeXN0ZW0gY2xvY2sgdGVzdHMsIHRvIGZyZWUgYWxsIHRoZSBtZW1vcnkgYW5kCgkgIHVuc2NoZWR1bGUvdW5yZWYgYWxsIGNsb2NrIElEcyB3ZSBhbGxvY2F0ZS4KCSAgVXNlIGEgbXV0ZXggaW4gb25lIHRlc3QgdG8gYXZvaWQgcG90ZW50aWFsIHRocmVhZGluZyBwcm9ibGVtcyBvbiBtdWx0aWNvcmUKCSAgbWFjaGluZXMuCgoyMDA5LTAzLTI1IDIxOjM3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEFkZCBhIHRlc3QgZm9yIHN5bmMvYXN5bmMgY2xvY2tpZCBpbnRlcmFjdGlvbnMKCSAgVGhpcyB0ZXN0IHJhbmRvbWx5IGhhbmdzIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSByZWxpYWJpbGl0eSBvZgoJICB1bnNjaGVkdWxpbmcgc3luYyBhbmQgYXN5bmMgY2xvY2tJRCdzIG9uIHRoZSBzeXN0ZW0gY2xvY2suCgoyMDA5LTAzLTI2IDExOjE3OjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFVzZSBnX3NsaWNlX2R1cCgpIG5vdwoKMjAwOS0wMy0yNiAxMTowODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBzb21lIGNvbXBhdGliaWxpdHkgc3R1ZmYgZm9yIEdMaWIgPCAyLjE0CgoyMDA5LTAzLTI1IDAwOjUwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfU1VCVElUTEVfQ09ERUMKCSAgWWVzLCAnY29kZWMnIGlzbid0IGV4YWN0bHkgdGhlIGJlc3Qgd29yZCwgYnV0IGxldCdzIGJlIGNvbnNpc3RlbnQgd2l0aCBBVURJT19DT0RFQwoJICBhbmQgVklERU9fQ09ERUMgKHdoaWNoIG1heSBiZSAncmF3JyBmb3JtYXRzIGFzIHdlbGwgYWZ0ZXIgYWxsKS4gUHJlcmVxdWlzaXRlIGZvcgoJICBidWcgICM1NzY1NTIuCgoyMDA5LTAzLTI0IDIxOjM5OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZ3N0LWxhdW5jaCBtYW4gcGFnZSBmaXgKCSAgVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgLS1nc3QtZGVidWctZGlzYWJsZSwgbm90IC0tZ3N0LWRpc2FibGUtZGVidWcuCgkgIEZpeGVzICM1NzY1NTYuIFNwb3R0ZWQgYnkgQm9nZGFuIEhhcmpvYy4KCjIwMDktMDMtMjQgMTk6MzM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IGltcHJvdmUgcHJvcGVydHkgc2V0IGFuZCBjb252ZXJ0IGNvZGUKCSAgVXNlIHN0cmluZyBkZXNlcmlhbGlzYXRpb24gaW5zdGVhZCBvZiBjdXN0b20gcGFyc2luZyBjb2RlIHRvIGFsbG93IGZvciBhbGwKCSAgc3VwcG9ydGVkIHdheXMgb2Ygc3BlY2lmeWluZyBwcm9wZXJ0eSB2YWx1ZXMuCgkgIGZpeGVzICM1NzY1ODIuCgoyMDA5LTAzLTIzIDE1OjE4OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBidWlsZDogZGVmaW5lIHN0dWJzIHdoZW4gZGlzYWJsaW5nIGdzdC1kZWJ1ZyBzdWJzeXN0ZW0uIEZpeGVzICM1NzU5MjIKCSAgUnVubmluZyBjb25maWd1cmUgd2l0aCBlLmcuIC0tZGlzYWJsZS1kc3QtZGVidWcgd2FzIGNvbXBpbGluZyBvdXQgdGhlIGRlYnVnCgkgIHN5c3RlbSAoQUJJIGJyZWFrKS4gTm93IHN0dWJzIGFyZSBhZGRlZCBhbmQgb25seSBpZiBvbmUgZG9lcyBlLmcuCgkgIG1ha2UgQ0ZMQUdTPSItREdTVF9SRU1PVkVfRElTQUJMRUQiIHRoZSBzeW1ib2xzIGFyZSBvbW1pdHRlZC4KCjIwMDktMDMtMjMgMTI6MzQ6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IG9uY2UtcGVyLXNlY29uZCAnZW1lcmdlbmN5IHJlbmRlcmluZycgZm9yIGNhc2Ugd2hlcmUgYWxsIGJ1ZmZlcnMgYnV0IHRoZSB2ZXJ5IGZpcnN0IGFyZSBsYXRlCgkgIER1ZSB0byBhIHR5cG8gYmFzZXNpbmsgZGlkbid0IGRvIGFueSBlbWVyZ2VuY3kgcmVuZGVyaW5nIG9mIGxhdGUgYnVmZmVycwoJICBpZiB0aGUgb25seSBidWZmZXIgZXZlciByZW5kZXJlZCB3YXMgdGhlIGZpcnN0IG9uZSB3aXRoIHRpbWVzdGFtcCAwLiBUaGlzCgkgIG1lYW5zIHRoYXQgaW4gY2FzZXMgd2hlcmUgdGhlIGRlY29kZXIgaXMgdmVyeSB2ZXJ5IHNsb3csIHdlJ2QgbmV2ZXIgc2VlCgkgIGFueSBidWZmZXJzIGJ1dCB0aGUgdmVyeSBmaXJzdCBvbmUgcmVuZGVyZWQuIEZpeGVzICM1NzYzODEuCgoyMDA5LTAzLTIxIDAyOjM0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB0d2VhayB0aGUgcmVsZWFzZSBwcm9jZWR1cmUgc2NyaXB0CgoyMDA5LTAzLTIwIDE0OjEyOjU1ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gZmlsZXMgPjRHQgoJICBVc2UgNjQtYml0IGZ1bmN0aW9ucyBvbiB3aW5kb3dzIHRvIGltcGxlbWVudCBzZWVraW5nIGluIGZpbGVzIGJpZ2dlcgoJICB0aGFuIDRHQi4KCSAgRml4ZXMgIzU3NTk4OAoKMjAwOS0wMy0yMCAxMToyNjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnZW5lcmF0aW9uIG9mIGNvbnRyb2wtY2hhbmdlIGFycmF5cy4KCSAgV2hlbiBnZW5lcmF0aW5nIGFycmF5cyBvZiBjb250cm9sIGNoYW5nZXMgdGltZXN0YW1wIHZhcmlhYmxlIHdhcyB1c2VkIGluc3RlYWQKCSAgdGhlIGxvY2FsIHRzIHZhcmlhYmxlIHRoYXQgd2UgaW5jcmVtZW50IHdoZW4gc3RlcHBpbmcgdGhyb3VnaCB0aGUgYXJyYXkuCgkgIFBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBQb2tvcm55LgoKMjAwOS0wMy0yMCAwMDo0Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1Z2dpbmc6IG1ha2UgR1NUX1BUUl9GT1JNQVQgd29yayBmb3IgcXVlcmllcyBhcyB3ZWxsCgoyMDA5LTAzLTIwIDAwOjM5OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IGFkZCBHU1RfUVVFUllfQ0FTVAoJICBiZWNhdXNlIHdlIGNhbiwgYW5kIGZvciBjb25zaXN0ZW5jeS4KCjIwMDktMDMtMTkgMjE6Mjc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IGZpeCBmb3IgY2hlY2sgdmVyc2lvbnMgPiAwLjkuNgoJICBBIG5ldyBhcmd1bWVudCBhbGxvd2VkX2V4aXRfdmFsdWUgd2FzIGFkZGVkIGluIFNWTiByZWNlbnRseSAoIzU3NDIxMykuCgoyMDA5LTAzLTE5IDE3OjE5OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGZpeCBnc3RfcGFkX2Nhbl9saW5rCgkgIFdlIHdlcmUgY29udmVydGluZyB0aGUgR3N0UGFkTGlua1JldHVybiB0byBhIGdib29sZWFuLCB3aGljaCBpcyBub3Qgd2hhdCB3ZSB3YW50CgkgIHRvIGRvLgoKMjAwOS0wMy0xOSAxMDo0NDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1ydHNwLXNlcnZlciBiaXRzIGFuZCBicmVhayB1cCBvdmVybHkgbG9uZyBsaW5lcwoJICBBZGQgc29tZSBvZiB0aGUgYml0cyBuZWVkZWQgZm9yIGFuIHVuaW5zdGFsbGVkIGdzdC1ydHNwLXNlcnZlciAoc28gZ2RiIHdvcmtzCgkgIG9uIHRoZSBleGFtcGxlcyBldGMuKS4gUHl0aG9uIGJpdHMgYXJlIHN0aWxsIG1pc3NpbmcsIGFuZCB3ZSBtaWdodCBuZWVkIGFuCgkgIC11bmluc3RhbGxlZC5wYyBmaWxlIGFzIHdlbGwgaW4gdGhlIGZ1dHVyZS4gQnJlYWsgdXAgdmVyeSBsb25nIGxpbmVzIHRvIG1ha2UKCSAgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgbWFpbnRhaW4uIEFsc28gcmVtb3ZlIGdzdC1wbHVnaW5zIHBhdGhzIGZyb20gdGhlCgkgIG9sZCBkYXlzLgoKMjAwOS0wMy0xOSAxMTo0NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcndsb2NrczoKCSAgZG9jczogaW50ZXJlc3RpbmcgaWRlYSBmb3IgZmFzdCBydyBsb2NrcwoJICAtLQoKMjAwOS0wMy0xOSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbCB0byB3aW5kb3dzIC5kZWYgZmlsZQoJICBBZGQgdGhlIG5ldyB3aW5kb3dzIGNtZC5leGUgY29sb3JpbmcgbWV0aG9kIHRvIHRoZSAuZGVmIGZpbGUuCgoyMDA5LTAzLTE4IDE2OjM4OjUxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGluZm8gYWJvdXQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGNhbiBiZSBhc3luYyBhbmQgd2hlbiBub3QuCgoyMDA5LTAzLTE4IDE5OjA3OjAwICswMTAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXUgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbW9yZSBpbmRlbnRhdGlvbiBmaXhlcwoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wMy0xOCAxOTowNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGluZGVudGF0aW9uIGZpeAoKMjAwOS0wMy0xOCAxODo1NzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHNpbXBseSBzb21lIG1vcmUKCjIwMDktMDMtMTggMTg6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBkZWJ1ZyBjb2xvcnMgZm9yIHdpbjMyIGFuZCBvdGhlcgoJICBSZWZhY3RvciB0aGUgZGVidWcgbGluZSBjb2RlIHRvIHVzZSBhcyBtdWNoIGNvZGUgYXMgcG9zc2libGUgZm9yIHRoZSB3aW4zMiBhbmQKCSAgb3RoZXIgY29sb3IgY29kaW5ncy4KCSAgVXBkYXRlIGRvY3Mgd2l0aCBuZXcgc3ltYm9sLgoKMjAwOS0wMy0xOCAxNzozMDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgd2luZG93czogaW5pdGlhbCBjb21taXQgZm9yIHRlcm1pbmFsIGNvbG9ycwoKMjAwOS0wMy0xOCAxNzowMToxNiArMDEwMCAgWmVlc2hhbiBBbGkgKEtoYXR0YWspIDx6ZWVzaGFuYWsgYXQgZ25vbWUgZG90IG9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHBhZDogZml4IGdzdF9wYWRfY2FuX2xpbmsoKQoJICBNb3ZlIHRoZSBnc3RfcGFkX2Nhbl9saW5rKCkgaW1wbGVtZW50YXRpb24gZnJvbSBnc3R1dGlscyB0byBnc3RwYWQgYW5kIHVzZQoJICBnc3RfcGFkX2xpbmtfcHJlcGFyZSgpIHRvIG1ha2UgaXQgd29yayBjb3JyZWN0bHkgYW5kIGFsc28gY2hlY2sgdGhlIGNhcHMuCgkgIE1ha2UgdGhlIGJyb2tlbiBpbXBsZW1lbnRhdGlvbiBpbiBnc3R1dGlscyBzdGF0aWMuCgkgIFNtYWxsIGNsZWFudXBzIGluIHRoZSBfZ2V0X2ZpeGVkX2NhcHMoKSBmdW5jdGlvbi4KCSAgRml4ZXMgIzU3NTY4Mi4KCjIwMDktMDMtMTcgMjA6NDE6NDQgKzAwMDAgIERhdmlkIEFkYW0gPHphbmNoZXlAdWNjLmd1LnV3YS5lZHUuYXU+CgoJKiBnc3QvZ3N0LmM6CgkgIGNvbmZpZy5oIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGZpcnN0LCBlaXRoZXIgZGlyZWN0bHkgb3IgdmlhIGdzdF9wcml2YXRlLmgKCSAgRml4ZXMgYnVpbGQgd2l0aCAtV2Vycm9yIGNhdXNlZCBieSAnX0ZJTEVfT0ZGU0VUX0JJVFMgcmVkZWZpbmVkJyB3YXJuaW5nIG9uCgkgIE9wZW5Tb2xhcmlzIHdoZXJlIF9GSUxFX09GRlNFVF9CSVRTIG1heSBiZSBkZWZpbmVkIGJvdGggaW4gb3VyIGNvbmZpZy5oCgkgIGFuZCB2aWEgc3RkaW8uaCAoIzU3NTY5NSkuCgoyMDA5LTAzLTE3IDE5OjAyOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBmYXE6IHJlbW92ZSBvdXRkYXRlZCBiaXRzIGZyb20gaW5kZW50aW5nIHNlY3Rpb24KCjIwMDktMDMtMTcgMTI6MDU6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmb3J3YXJkIHNlZ21lbnQtc3RhcnQgbGlrZSBzZWdtZW50LWRvbmUgaWYgcGFyZW50IGlzIGFsc28gYSBiaW4sIGZpeGVzICM1NzU1OTguCgkgIEJpbiBjb2xsZWN0cyBzZWdtZW50LXN0YXJ0IG1lc3NhZ2VzIGFuZCBzZWdlbnQtZG9uZSBtZXNzYWdlcy4gaXQgcG9zdHMgYQoJICBzZWdtZW50LWRvbmUgbWVzc2FnZSB0byBpdHMgcGFyZW50LCBvbmNlIGl0IGhhcyByZWNlaXZlZCBhIHNlZ21lbnQtZG9uZSBmb3IKCSAgZWFjaCBzZWdtZW50LXN0YXJ0LiBJbWhvIGl0IHNob3VsZCBhbHNvIHNlbmQgYSBzZWdtZW50LXN0YXJ0IGlmIGl0IHJlY2VpdmVzIHRoZQoJICBmaXJzdCBzZWdtZW50IHN0YXJ0IGFuZCBpZiBwYXJlbnQgaXMgIT1OVUxMLiBUaGlzIGlzIG5lZWRlZCBmb3IgYmlucyBpbiBiaW5zLAoJICBzbyB0aGF0IGFsc28gaGlnaGVyIG9yZGVyIGJpbnMgY2FuIGdyb3VwIHNlZ21lbnQtc3RhcnRzIGFuZCBzZWdtZW50LWRvbmVzLgoJICBSaWdodCBub3cgaGlnaGVyIG9yZGVyIGJpbnMgd2lsbCBwb3N0IGEgc2VnbWVudC1kb25lIGZvciBlYWNoIHNlZ21lbnQtZG9uZQoJICByZWNlaXZlZC4KCjIwMDktMDMtMTYgMjA6MTI6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IGZpeCB0eXBvIGluIGdpdCBjb21tYW5kCgoyMDA5LTAzLTE1IDIzOjQwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHRoZXNlIHdhcm5pbmdzIGFyZSBzZXJpb3VzLCBnaXZlIG1vcmUgZGV0YWlsIGluIHRoZSBtZXNzYWdlCgoyMDA5LTAzLTE1IDIzOjM3OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgZGVidWcgbG9nZ2luZyB0byBtYWtlIGl0IGVhc2llciB0byB0cmFjZSBpdAoKMjAwOS0wMy0xMyAxMDo1Njo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBGaXggaW5kZW50YXRpb24gb2YgLmggZmlsZXMKCSAgLS0KCjIwMDktMDMtMTIgMTI6MjA6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBhcHBseSBmaXggZm9yIHJlcGxhY2UgYWxsIGFsc28gdG8gZ3N0X3RhZ19saXN0X2FkZF92YWxpc3RfdmFsdWVzLiBGaXhlcyAjNTc0MjQxCgoyMDA5LTAzLTEyIDEwOjQ4OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZG9jczogSW1wcm92ZSBzb21lIGRvY3MKCSAgUmVuYW1lIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIGFuZCBhZGQgc29tZSBSZXR1cm46IHRvIG1ha2UgdGhlIGRvY3MgbW9yZSBoYXBweS4KCjIwMDktMDMtMTIgMDA6NDE6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBkb2NzOiBmaXggbGlua2luZyB0byBjb25zdGFudCBhbmQgZnVuY3Rpb25zCgoyMDA5LTAzLTExIDE1OjIwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZWxsaXBzaXplIGNhcHMgZmllbGRzLCBiZXR0ZXIgcGxhY2VtZW50IG9mIHVubmVnb3RpYXRlZCBjYXBzCgkgIExvbmcgY2FwcyBmaWVsZHMgbGlrZSBlbnVtcyBhcmUgZWxsaXBzaXNlZC4gSWYgY2FwcyBhcmUgbm90IG5lZ290aWF0ZWQsIHVzZQoJICBoZWFkLSBhbmQgdGFpbGxhYmVsIHRvIHBsYWNlIHRoZW0gY2xvc2VyIHRvIHRoZSBwYWRzLiBVc2Ugc21hcnRlciB3YXkgdG8gaW5kZW50LgoKMjAwOS0wMy0xMSAxMDoyNzoxNiArMDIwMCAgTGFzemxvIFBhbmR5IDxsYXN6bG9rMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogbWFrZSBjYXBzIGluIERPVCBkZWJ1ZyBncmFwaHMgbW9yZSByZWFkYWJsZS4gRml4ZXMgNTc0NDg0CgkgIFVzZSBhIG1vbm9zcGFjZSBmb250IGZvciBlZGdlIGxhYmVscyBhbmQgaW5kZW50LgoKMjAwOS0wMy0xMSAxNDoxMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEFsbG93ICV1IGFzIGNvbnZlcnNpb24gbW9kaWZpZXIgYWRkaXRpb25hbCB0byAlZCBhbmQgJXMKCjIwMDktMDMtMTEgMTE6MjM6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0YmFzZXNyYzogdW5zaWduZWQgbG9uZyBpcyAiJWx1Iiwgbm90ICIldWwiLiBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMDktMDMtMTAgMjE6MDg6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGxvZ2dpbmc6IHNvbWUgYWRkaXRpb25hbCBsb2dnaW5nIGZvciB0cmFjaW5nIGNhcHMgbmVnb3RpYXRpb24uCgkgIERlbW90ZSBvbmUgbG9nIHRoYXQgY2FuIGNvbWUgcXVpdGUgb2Z0ZW4uIFJlbW92ZSBvbmUgZml4bWUgdGhhdCBpcyBkb25lLiBBcHBseQoJICBnc3QtaW5kZW50IGNoYW5nZXMuCgoyMDA5LTAzLTEwIDIxOjAzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IGFkZCBhIGZpeG1lLTAuMTEKCjIwMDktMDMtMTAgMjE6MDE6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBmb3JtYXR0aW5nOiB0YWJzIHRvIHNwYWNlcwoKMjAwOS0wMy0wOSAyMzoxMToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MDMyMTYzIHRvIGY4YjNkOTEKCjIwMDktMDMtMDkgMjA6MDc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGdzdHJlYW1lci5zcGVjOiBmaXggc3RyYXkgQEdMSUIyX1JFUUAgdGhhdCBkaWRuJ3QgZ2V0IGV4cGFuZGVkIHByb3Blcmx5CgoyMDA5LTAzLTA5IDE2OjA5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IHJld29yZCBzdHVmZiBhYm91dCBjdXN0b20gbWFpbmxvb3BzCgkgIEZpeGVzICM1NzQyMjkuCgoyMDA5LTAzLTA5IDE2OjAxOjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZG9uJ3QgdXNlIEdTVF9USU1FX0ZPUk1BVCB3aGVuIGJ1aWxkaW5nIGZpbGVuYW1lcy4gZml4ZXMgIzU3NDYyMwoKMjAwOS0wMy0wOSAxMTozOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2FsbCBuZXcgY2FsbGJhY2tzIHNldCBpbiB0aGUgYmxvY2sgY2FsbGJhY2sKCSAgS2VlcCB0cmFjayBvZiB3aGVuIGEgbmV3IGNhbGxiYWNrIGlzIGluc3RhbGxlZCBpbiB0aGUgY2FsbGJhY2sgYW5kIGNhbGwgdGhlIG5ldwoJICBjYWxsYmFjayBpbiB0aGF0IGNhc2UuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGNoZWNraW5nIHBhZCBibG9ja2luZy4KCSAgRml4ZXMgIzU3MzgyMy4KCjIwMDktMDMtMDggMTc6MjI6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBlbnVtdHlwZXMgYW5kIGNvbmZpZy5oCgoyMDA5LTAzLTA4IDE3OjE1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGltcHJvdmUgZG9jcyBmb3IgZ3N0X3RhZ19saXN0X2dldF9kYXRlKigpCgkgIE1lbnRpb24gdGhhdCB0aGUgZGF0ZSB2YWx1ZSBuZWVkcyB0byBiZSBmcmVlZCBhbmQgaG93IHRvIGZyZWUgaXQuCgoyMDA5LTAzLTA4IDEyOjAyOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmZhNzM4ZCB0byA3MDMyMTYzCgoyMDA5LTAzLTA4IDExOjE3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2YxM2U0ZSB0byBmZmE3MzhkCgoyMDA5LTAzLTA4IDAwOjI3OjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogaW1wcm92ZSBjYXBzIGxvZ2dpbmcKCSAgRmFjdG9yIG91dCBjb2RlIHRvIGRlc2NyaWJlIGNhcHMuIEltcHJvdmUgZm9ybWF0aW5nIChubyBcbiBpbiBjYXBzIGZpZWxkcykuCgkgIENoZWNrIHBlZXIgY2FwcyB0b28gYW5kIHNob3cgYm90aCBpZiB0aGV5IGRpZmZlci4KCjIwMDktMDMtMDcgMTE6NDM6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzYzc0NTZiIHRvIDNmMTNlNGUKCjIwMDktMDMtMDcgMTA6NDM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4M2YyIHRvIDNjNzQ1NmIKCjIwMDktMDMtMDYgMjI6MTA6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHJldmVydCBhY2NpZGVudGlhbCBjb21taXQgZnJvbSB0aGUgcXVldWUgKG1lIHNob3VsZCBzdGFydCB1c2luZyBicmFuY2hlcykKCjIwMDktMDMtMDYgMjE6NTk6MjAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgYXBpZG9jczogbWFya3VwIGV4YW1wbGUgYXMgaGlnaGxpZ2h0YWJsZSBleGFtcGxlIGFuZCBjb3B5IHNhbWUgZm9yIHN0cnVjdHVyZQoJICBzdHJ1Y3R1cmVzIGNhbiBiZSBwcmludGVkIGxpa2Ugd2UgY2FuIGRvIGZvciBjYXBzLiBNYXJrIHRoZSBleGFtcGxlIHNvIHRoYXQKCSAgZ3RrLWRvYyBjYW4gcHJldHR5IHByaW50IGFuZCB4cmVmIGl0LgoKMjAwOS0wMy0wNCAyMToyMTo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogcmVsaWFibHkgZ28gdG8gZW9zLiBGaXhlcyAjNTc0MTYwCgkgIFVwZGF0ZSBjb2xsZWN0cGFkcyBzdGF0dXMgd2hlbiByZW1vdmluZyBwYWRzLgoKMjAwOS0wMy0wNiAxMjowODo0MiArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfZXZlbnRfZGVmYXVsdCB3aGVuIHNlbmRpbmcgb3V0IHRoZSBuZXdzZWdtZW50IGV2ZW50IGluIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIFRoaXMgbWFrZXMgaWRlbnRpdHkgc2luZ2xlLXNlZ21lbnQ9dHJ1ZSAhIG9nZ211eCB3b3JrIGFnYWluIGFmdGVyIGEgY2hhbmdlIGluCgkgIG9nZ211eCAoY29tbWl0IGIwZTNkNDQ5IGluIC1iYXNlKS4KCjIwMDktMDMtMDUgMTc6NDI6MjIgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBiYXNlc2luazogcHJvcGFnYXRlIFVQU1RSRUFNIGV2ZW50cyBpbiBwdWxsIG1vZGUgdG9vCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOiBQcm9wYWdhdGUKCSAgdXBzdHJlYW0gZXZlbnRzIGluIHB1bGwgbW9kZSB0b28uCgoyMDA5LTAzLTA1IDExOjI5OjQ4ICswMTAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IHJlbGF4IGZhaWx1cmUgdG8gZGVhY3RpdmF0ZSB1bmxpbmtlZCBwYWRzCgkgIFdoZW4gZGUvYWN0aXZhdGluZyBhIHBhZCBpbiBwdWxsIG1vZGUgdGhlIHBhZCBuZWVkcyB0byBkZS9hY3RpdmF0ZSB0aGUKCSAgcGVlciBwYWQgaXQgaXMgY29ubmVjdGVkIHRvLCBmYWlsdXJlIHRvIGJlIGFibGUgdG8gZG8gdGhpcyBpbiBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgYW4gZXJyb3IuCgkgIEhvd2V2ZXIgaWYgdGhlcmUgaXMgbm8gcGVlcnBhZCwgd2UgY2FuIHN0aWxsIGRlYWN0aXZhdGUgdGhlIHBhZCBjb3JyZWN0bHkgYW5kCgkgIGFzc3VtZSB0aGUgYXBwbGljYXRpb24gd2lsbCBkZWFjdGl2YXRlIHRoZSB1bmxpbmtlZCBwZWVyIHBhZCBldmVudHVhbGx5LgoJICBGaXhlcyAjNTc0MTYzLgoKMjAwOS0wMy0wNSAxMTowMjo1OSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBHc3RQb2xsOiBzZXQgdGhlIHJldHVybiB2YWx1ZSBvbiB3aW5kb3dzCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9ucyBfcmVhZC9fd3JpdGVfY29udHJvbCgpCgkgIHJldHVybiB0aGUgYWN0dWFsIHJlc3VsdCBpbnN0ZWFkIG9mIGFsd2F5cyBGQUxTRSBvbiB3aW5kb3dzLgoJICBGaXhlcyAjNTc0MjExLgoKMjAwOS0wMy0wNCAxMDo0NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciBDVlMtdG8tZ2l0IG1pZ3JhdGlvbgoJICBGaXhlcyAjNTczOTQ2LgoKMjAwOS0wMy0wNCAwOToyMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBHc3RBZGFwdGVyOiBEaXNjYXJkIGVtcHR5IGJ1ZmZlcnMgaW4gX3B1c2goKS4gRml4ZXMgIzU3NDAyNAoKMjAwOS0wMy0wMyAyMDowMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBVcGRhdGUgLmdpdGlnbm9yZQoKMjAwOS0wMy0wMyAxOTo1ODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGJpdHMgZm9yIHVuaW5zdGFsbGVkIGNoZWNrb3V0cyBvZiBnc3Qtb3Blbm1heCBhbmQgdG90ZW0KCjIwMDktMDMtMDIgMTY6MTc6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X3V0aWxfYXJyYXlfYmluYXJ5X3NlYXJjaCgpIGZvciBiaW5hcnkgc2VhcmNocyBvbiBhIHNvcnRlZCBhcnJheQoJICBUaGlzIHdpbGwgYmUgbW9zdGx5IHVzZWZ1bCBpbiBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIHNvbWUga2luZCBvZiBpbnRlcm5hbAoJICBzZWVrL2luZGV4IHRhYmxlLiBDdXJyZW50bHkgYWxtb3N0IGFsbCBvZiB0aGVtIChvciBldmVuIGFsbCBvZiB0aGVtKQoJICBhcmUgdXNpbmcgYSBsaW5lYXIgc2VhcmNoIGFsdGhvdWdoIHRoZSB1c2VkIGFycmF5IGlzIGFscmVhZHkgc29ydGVkLAoJICB3YXN0aW5nIHNvbWUgQ1BVIHRpbWUgd2l0aG91dCBnb29kIHJlYXNvbi4KCSAgRml4ZXMgYnVnICM1NzM2MjMuCgoyMDA5LTAyLTI4IDExOjE1OjI5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEJ1bXAgZ2xpYiByZXF1aXJlbWVudCB0byAyLjE0CgkgIEFsc28gcmVtb3ZlIGNvZGUgY29uZGl0aW9uYWwgb24gPCAyLjE0LgoKMjAwOS0wMi0yOCAxMzozNDowOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIFJlbW92ZSB3aW4zMi9jb21tb24vY29uZmlnLmguaW4gZnJvbSBNQU5JRkVTVCwgaXQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAwOS0wMi0yNyAxMzozNTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBQcm9wZXJseSByZXNldCB0aGUgY2Fwc2ZpbHRlciB3aGVuIHNldHRpbmcgY2FwcyBBTlkuCgoyMDA5LTAyLTI3IDEyOjM0OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdGhlIGZyYW1lc3RlcCBkcmFmdAoJICBVcGRhdGUgdGhlIGRvY3MgYSBsaXR0bGUuCgkgIEFkZCBwcm9wZXJ0eSB0byBhbGxvdyBpbmNyZW1lbnRhbCBzdGVwcGluZyBzbyB0aGF0IHdlIGNhbiByZWR1Y2UgZXhjZXNzaXZlCgkgIHF1ZXVlaW5nLgoKMjAwOS0wMi0yNiAxNTo0MDoyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBsZWZ0IG92ZXIgaGFuZGxpbmcgb2YgdGhlIGVycm9yIGNhc2UgdG8gdGhlIGFjdGl2YXRlX2ZhaWxlZCBsYWJlbC4KCSAgSWYgd2FzIGxlZnQgYXMgZGVhZCBjb2RlLgoKMjAwOS0wMi0yNSAxOTo1OTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBVcGRhdGUgc2hhdmUgaW5pdCBzdGF0ZW1lbnQgZm9yIGNoYW5nZXMgaW4gY29tbW9uLiBCdW1wIGNvbW1vbi4KCjIwMDktMDItMjUgMTA6NTE6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IERvbid0IGF0dGVtcHQgdG8gcGFyc2UgZW1wdHkgY2FwcwoKMjAwOS0wMi0yNSAxNDoxOTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFNldCB0eXBlZmluZCBmYWN0b3J5IGNhcHMgdG8gTlVMTCBpbnN0ZWFkIG9mIGVtcHR5IGNhcHMgaWYgdGhleSBvcmlnaW5hbGx5IHdlcmUgTlVMTAoKMjAwOS0wMi0yNSAxMTozMTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5Y2Y4YzliIHRvIGE2Y2U1YzYKCjIwMDktMDItMjQgMTU6MTA6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBDaGVjayBpZiB0eXBlZmluZCBmYWN0b3J5IGNhcHMgYXJlIE5VTEwgYmVmb3JlIGNvcHlpbmcgdGhlbQoKMjAwOS0wMi0yNCAxMTo0MDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSB1bmRlY2xhcmVkIHN5bWJvbHMgZnJvbSBkb2NzCgkgIFJlbW92ZSBzb21lIHVuZGVjbGFyZWQgc3ltYm9scyBmcm9tIHRoZSBkb2NzLgoKMjAwOS0wMi0yMyAxMzowMToxMSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIENoYW5nZSBob3cgd2luMzIvY29tbW9uL2NvbmZpZy5oIGlzIHVwZGF0ZWQKCSAgR2VuZXJhdGUgd2luMzIvY29tbW9uL2NvbmZpZy5oLW5ldyBkaXJlY3RseSBmcm9tIGNvbmZpZy5oLmluLAoJICB1c2luZyBzaGVsbCB2YXJpYWJsZXMgaW4gY29uZmlndXJlIGFuZCBzb21lIGhhcmQtY29kZWQgaW5mb3JtYXRpb24uCgkgIENoYW5nZSB0b3AtbGV2ZWwgbWFrZWZpbGUgc28gdGhhdCAnbWFrZSB3aW4zMi11cGRhdGUnIGNvcGllcyB0aGUKCSAgZ2VuZXJhdGVkIGZpbGUgdG8gd2luMzIvY29tbW9uL2NvbmZpZy5oLCB3aGljaCB3ZSBrZWVwIGluIHNvdXJjZQoJICBjb250cm9sLiAgSXQncyBrZXB0IGluIHNvdXJjZSBjb250cm9sIHNvIHRoYXQgdGhlIGdpdCB0cmVlIGlzCgkgIGJ1aWxkYWJsZSBmcm9tIFZTLgoKMjAwOS0wMi0yMyAxMDo1MjoxNCAtMDgwMCAgRGF2aWQgRmx5bm4gPGRhdmlkZkByZC5iYmMuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBBZGQgc3JjZGlyIHRvIGluY2x1ZGVzIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoJICBXaGVuIHlvdSB1c2UgZ3N0cmVhbWVyIHVuaW5zdGFsbGVkIGFuZCBidWlsZCBvdXRzaWRlCgkgIHRoZSBzb3VyY2UgdHJlZSwgdGhlIGluY2x1ZGVzIG5lZWQgdG8gYmUgc3BlY2lmaWVkIGZvcgoJICBib3RoIHRoZSBzb3VyY2UgdHJlZSBhbmQgdGhlIGJ1aWxkIHRyZWUuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAwOS0wMi0yMyAxNzozNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBFcnJvciBvdXQgbW9yZSBzcGVjaWZpY2FsbHkgb24gZW1wdHkgY2FwcwoJICBXaGVuIHdlIGdldCBlbXB0eSBjYXBzIGZyb20gdGhlIGdldGNhcHMgZnVuY3Rpb24gaW4gdGhlIGRlZmF1bHQgbmVnb3RpYXRlCgkgIGZ1bmN0aW9uLCBwb3N0IGEgbW9yZSBkZXNjcmlwdGl2ZSBlcnJvci4KCjIwMDktMDItMjMgMTU6MjQ6MDAgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBmaXggdXJpIGhhbmRsZXIgaXRlcmF0aW9uIGluIGdzdC1pbnNwZWN0CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IFdob29wcywgZml4IGl0ZXJhdGlvbi4KCSAgSSdtIHN0dXBpZC4KCjIwMDktMDItMjMgMTI6MzM6MTMgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBGaXggc2lnbmVkIHdoZW4gY29tcGlsaW5nIHdpdGggTVN5cy9NaW5HVwoJICBmaXggc2lnbmVkIGlzc3VlcyB3aGVuIGNvbXBpbGluZyB3aXRoIE1TeXMvTWluR1cuCgkgIEZpeGVzICM1NzI1OTEuCgoyMDA5LTAyLTIzIDEwOjUzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBEb24ndCBmb3J3YXJkIExBVEVOQ1kgZXZlbnQgd2hlbiBub3QgcmVhZHkKCSAgV2hlbiB3ZSBhcmUgbm90IHJlYWR5IHRvIGhhbmRsZSBhIGxhdGVuY3kgcXVlcnkgKHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCkgd2UKCSAgYWxzbyBkb24ndCB0cnkgdG8gZm9yd2FyZCB0aGUgbGF0ZW5jeSBldmVudCBiZWNhdXNlIHRoYXQgbWlnaHQgY2F1c2UgdW5leHBlY3RlZAoJICBlcnJvcnMgd2hlbiB1cHN0cmVhbSBpcyBub3QgeWV0IGxpbmtlZC4KCjIwMDktMDItMjIgMjI6MDk6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJICBSZW1vdmUgY29yZSBmaWxlIGZyb20gcHJldmlvdXMgY29tbWl0CgoyMDA5LTAyLTIyIDIwOjAxOjA1ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jX2Z1bGwKCSAgVGhpcyBhbGxvd3MgY29ubmVjdGluZyBhIEdEZXN0cm95Tm90aWZ5IGZvciB3aGVuIHRoZSBjYWxsYmFjayBpcyByZW1vdmVkL3JlcGxhY2VkLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUxNDcxNwoKMjAwOS0wMi0yMiAxOTowNToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW5jbHVkZSBmbG9hdGluZyBwb2ludCB3cml0ZS9yZWFkIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBieSB3b3JraW5nIGFyb3VuZCBhIGd0ay1kb2MgYnVnCgoyMDA5LTAyLTIyIDE4OjUzOjEwICswMTAwICBBbGkgU2FiaWwgPGFsaS5zYWJpbEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFVzZSB0aGUgY29ycmVjdCB1bnJlZiBmdW5jdGlvbgoKMjAwOS0wMi0yMiAxODo1MTowOCArMDEwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIENvbnZlcnQgdW5yZWYvY29weSBmdW5jdGlvbnMgb2YgR3N0TWluaU9iamVjdCBzdWJjbGFzc2VzIHRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zCgkgIHVucmVmIGFuZCBjb3B5IGZ1bmN0aW9ucyBhcmUgc29tZXRpbWVzIHVzZWQgYXMgZnVuY3Rpb24KCSAgcG9pbnRlcnMgZm9yIGV4YW1wbGUgaW4gdGhlIGNhc2Ugb2YgZ19oYXNoX3RhYmxlX25ld19mdWxsCgkgIGFzIGEgR0Rlc3Ryb3lOb3RpZnkgZnVuY3Rpb24uCgkgIEN1cnJlbnRseSBHc3RCdWZmZXIsIEdzdEV2ZW50LCBHc3RNZXNzYWdlIGFuZCBHc3RRdWVyeQoJICBkZWZpbmUgdGhlaXIgcmVzcGVjdGl2ZSB1bnJlZiBhbmQgY29weSBmdW5jdGlvbnMgYXMKCSAgbWFjcm9zLCBtYWtpbmcgdXNlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZi9jb3B5LgoJICBUaGlzIGFwcHJvYWNoIHdvcmtzIHZlcnkgd2VsbCBmb3IgbW9zdCBjYXNlcywgZXhjZXB0CgkgIGZvciBzb21lIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJpbmRpbmdzIChjdXJyZW50bHkgVmFsYSksCgkgIHdoZXJlIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBzZW1hbnRpY3MgYXJlIGRlZmluZWQKCSAgZGVjbGFyYXRpdmVseS4KCSAgVGhlIHBvc3NpYmxlIHNvbHV0aW9ucyB3b3VsZCBiZSB0byBlaXRoZXIgY29udmVydCBhbGwKCSAgdGhlIG1hY3JvcyBpbnRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24sIG9yIGNoYW5nZSB0aGUKCSAgc2lnbmF0dXJlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZiB0byB0YWtlIGEgdm9pZCoKCSAgaW5zdGVhZCBvZiBhIEdzdE1pbmlPYmplY3QqLgoJICBGaXhlcyBidWcgIzU3MjQ4MC4KCjIwMDktMDItMjIgMTU6MjI6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBVc2Ugc2hhdmUgKGh0dHA6Ly9naXQubGVzcGlhdS5uYW1lL2NnaXQvc2hhdmUvKSB0byBzaW1wbGlmeSBidWlsZCBvdXRwdXQKCjIwMDktMDItMjIgMTU6NDQ6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWQ3YzljYyB0byA5Y2Y4YzliCgoyMDA5LTAyLTIxIDExOjEzOjMwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODBjNjI3ZCB0byA1ZDdjOWNjCgoyMDA5LTAyLTE5IDE4OjA1OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBHc3RCdWZmZXJGbGFnczogQWRkICJTaW5jZTogMC4xMC4yMyIgZm9yIHRoZSBuZXdseSBhZGRlZCBmbGFncwoKMjAwOS0wMi0xOSAxNjowNDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgR3N0QnVmZmVyRmxhZ3M6IEFkZCAzIG5ldyBtZWRpYS1zcGVjaWZpYyBidWZmZXIgZmxhZ3MuCgkgIFBhcnRpYWxseSBmaXhlcyAjMTYzNTc3CgoyMDA5LTAyLTE5IDEyOjU3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHByaW50IG5vcm1hbCBvdXRwdXQgdG8gc3Rkb3V0LCBhbmQgb25seSBlcnJvcnMgYW5kIHdhcm5pbmdzIHRvIHN0ZGVyciBpbiBnc3QtbGF1bmNoCgkgIExldCdzIG5vdCBwcmludCBldmVyeXRoaW5nIHRvIHN0ZGVyci4gU3VwcHJlc3Mgc29tZSBtb3JlICdub3JtYWwnIG1lc3NhZ2VzIHdoZW4gLS1xdWlldCB3YXMgcGFzc2VkLgoKMjAwOS0wMi0xOSAxMjo0NTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiB1c2UgZ19wcmludCooKSBpbnN0ZWFkIG9mICpwcmludGYoKSBpbiBnc3QtbGF1bmNoCgkgIFdlIHNob3VsZCB1c2UgR0xpYidzIGdfcHJpbnQqKCkgZnVuY3Rpb25zIGZvciBwcmludGluZyBzdHVmZiBpbiBnc3QtbGF1bmNoLCBub3QgcHJpbnRmIGFuZCBmcmllbmRzLCBzaW5jZSB3ZSdyZSBwcmludGluZwoJICB0cmFuc2xhdGVkIHN0cmluZ3MsIHdoaWNoIHdlIGdldCBpbiBVVEYtOCBlbmNvZGluZywgYW5kIEdMaWIncyBwcmludCBmdW5jdGlvbnMgZXhwZWN0IFVURi04IGVuY29kZWQgc3RyaW5ncyB3aGVyZWFzIHByaW50ZgoJICBldCBhbC4gZXhwZWN0IHN0cmluZ3MgaW4gdGhlIGxvY2FsZSBlbmNvZGluZywgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgVVRGLTguCgkgIEFsc28gYWRkIGEgUFJJTlQgY29udmVuaWVuY2UgbWFjcm8gc28gd2UgZG9uJ3QgaGF2ZSB0byBsaXR0ZXIgdGhlIGNvZGUgd2l0aCBpZiAoIXF1aWV0KSBzdGF0ZW1lbnRzLgoKMjAwOS0wMi0xOSAxMToxODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcmFuZG9tL21pbWV0eXBlczoKCSAgZG9jczogZml4IGNvbnN0YW50cyBmb3IgR19MSVRUTEVfRU5ESUFOIGFuZCBHX0JJR19FTkRJQU4KCSAgV2UgZ290IHRoZSBjb25zdGFudHMgZm9yIEdfTElUVExFX0VORElBTiBhbmQgR19CSUdfRU5ESUFOIHRoZSB3cm9uZyB3YXkgYXJvdW5kIGluIHNvbWUgZG9jcyAoZml4ZXM6ICM1NzIzOTIpLiBBbHNvIG1lbnRpb24KCSAgR19CWVRFX09SREVSIGluIHRoZSBhdWRpbyB0eXBlcyBzZWN0aW9uLgoKMjAwOS0wMi0xOSAxMDoyNTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gZGVmIGZpbGVzCgkgIEFkZCB0aGUgbmV3IHJlcXVlc3RfbWVzc2FnZSBzeW1ib2xzIHRvIHRoZSB3aW5kb3dzIGRlZiBmaWxlLgoKMjAwOS0wMi0xOCAxNTozMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZCBtZXNzYWdlIHRvIHJlcXVlc3QgYSBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURSB0aGF0IGNhbiBiZSBwb3N0ZWQgYnkgZWxlbWVudCB3aGVuIHRoZXkgd291bGQKCSAgbGlrZSB0byBoYXZlIHRoZSBhcHBsaWNhdGlvbiBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBwaXBlbGluZS4gdGhlIHByaW1hcnkgdXNlCgkgIGNhc2UgaXMgdG8gcGF1c2UgdGhlIHBpcGVsaW5lIHdoZW4gYW4gYXVkaW8gbWl4ZXIgaXMgbWl4aW5nIGEgaGlnaGVyIHByaW9yaXR5CgkgIHN0cmVhbSBidXQgaXQgY2FuIGFsc28gYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCgkgIEFkZCBzb21lIGRvY3MgYW5kIGEgdW5pdCB0ZXN0LgoJICBJbXBsZW1lbnQgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSBpbiBnc3QtbGF1bmNoLgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFCgoyMDA5LTAyLTE2IDEyOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBDbGVhciB0YXJnZXQgd2hlbiB0aGUgdGFyZ2V0IHBhZCBkaXNhcHBlYXJzCgkgIFdoZW4gdGhlIHRhcmdldCBwYWQgZGlzYXBwZWFycyAoYmVjYXVzZSBpdCB3YXMgZXhwbGljaXRseSB1bmxpbmtlZCBvciB0aGUKCSAgZWxlbWVudCB3YXMgcmVtb3ZlZC91bnJlZmZlZCkgbWFrZSBzdXJlIHdlIHJlY2VpdmUgYSBub3RpZnkgd2l0aCB0aGUgdW5saW5rCgkgIGZ1bmN0aW9uIG9uIHRoZSBwcm94eSBwYWQgYW5kIGNsZWFyIHRoZSB0YXJnZXQuIFdlIHVzZSBhIHNpbXBsZSBmbGFnIHRvIG5vdCBkbwoJICB0aGlzIGFuZCBjYXVzZSBkZWFkbG9ja3Mgd2hlbiB0aGUgdGFyZ2V0IHdhcyBjaGFuZ2VkIGV4cGxpY2l0bHkgdXNpbmcgdGhlCgkgIGdob3N0cGFkIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHRoZSB1bml0IHRlc3QgYmVjYXVzZSB3ZSBub3cgdW5yZWYgdGhlIHRhcmdldCBzb29uZXIgKGFuZCBjb3JyZWN0bHkpLgoKMjAwOS0wMi0xNSAxNjozNzoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGZvcm1hdCBhbmQgaW5kZW50IGV4YW1wbGVzLgoKMjAwOS0wMi0wOSAyMjo0OTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtcS8tLXF1aWV0IG9wdGlvbiB0byBzdXByZXNzIGFueSBub24gZXJyb3Igb3V0cHV0LgoJICBIYXZpbmcgbm8gb3V0cHV0IGlzIG5pY2UgZm9yIHNjcmlwdGluZy4gQWxzbyB1cGRhdGUgdGhlIG1hbnBhZ2UuCgoyMDA5LTAyLTE0IDEzOjM1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2ZhcS9zdGFydC54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRkFROiB1cGRhdGUgZm9yIGdpdCBhbmQgbWlzY2VsbGFuZW91cyBzbWFsbCBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIFJlcGxhY2UgYWxsIG1lbnRpb25zIG9mIENWUyB3aXRoIGdpdC4gQWRkIGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBpbiBjZ2l0IGFuZCB0byBTdWJtaXR0aW5nUGF0Y2hlcyBwYWdlIGluIHdpa2kuIEZpeCBzb21lIHR5cG9zLiBVcGRhdGUgaW5kZW50aW5nIHJ1bGVzIHRvIHdoYXQgd2UgYWN0dWFsbHkgdXNlICgjNTcxNjQ2KS4KCjIwMDktMDItMTMgMTY6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgKi5wbyBmaWxlcyBmb3IgbmV3bHktYWRkZWQgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCSAgVGhlIG9ubHkgcGVvcGxlIHdobyBzaG91bGQgZ2V0IGNvbmZsaWN0cyBub3cgYXJlIHBlb3BsZSB3aG8gaGF2ZSBjbG9uZWQgYW5kIGJ1aWx0IGdzdHJlYW1lciBiZXR3ZWVuIHRoZSB0aW1lIHRob3NlIHN0cmluZ3MKCSAgd2VyZSBhZGRlZCBhbmQgdGhpcyBjb21taXQuCgoyMDA5LTAyLTEyIDEwOjM4OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFQSTogQWRkIEhPTUVQQUdFIHRhZwoJICBUaGlzIHRhZyB3aWxsIGxpc3QgYSBob21lcGFnZSBmb3IgdGhlIG1lZGlhLAoJICBpLmUuIHRoZSBhcnRpc3QncyBvciBtb3ZpZSdzIGhvbWVwYWdlLgoJICBUaGlzIGlzIGRpZmZlcmVudCB0byBHU1RfVEFHX0xPQ0FUSU9OIGFzIHRoZSBsYXR0ZXIKCSAgbGlzdHMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBtZWRpYS4KCSAgRml4ZXMgYnVnICM1NzEyMjcuCgoyMDA5LTAyLTA5IDEyOjAwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBCdW1wIHJldmlzaW9uIHRvIHVzZSBmb3IgY29tbW9uIHN1Ym1vZHVsZS4KCjIwMDktMDItMDggMTA6Mjg6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBSZXBsYWNlIHNvbWUgbWVudGlvbnMgb2YgQ1ZTIGJ5IEdJVAoKMjAwOS0wMi0wNiAxMDo1MToyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogUmV3cml0ZSBzYW5pdHkgY2hlY2sgdG8gYWN0dWFseSBjYXRjaCBzb21ldGhpbmcuCgkgIFRoZSBwcmV2aW91cyBjb21taXQgd2FzIGJvZ3VzLCBhcyB3YXMgdGhlIGNoZWNrIGJlZm9yZS4gV2UganVzdCBwb2ludCBtIHRvIHRoZSBmaWxlIGRhdGEsCgkgIHNvIG5laXRoZXIgaXQgbm9yIGl0cyBtZW1iZXJzIHdpbGwgYmUgTlVMTC4gQmV0dGVyIGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGRhdGEuCgoyMDA5LTAyLTA1IDIzOjExOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL01ha2V2YXJzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGF2b2lkIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggZmlsZXMgaW4gZ2l0CgkgIE1ha2UgaXQgc28gdGhhdCBmaWxlbmFtZXMgYW5kIGxpbmUgbnVtYmVycyBhcmUgb25seSBzdG9yZWQgaW4gdGhlICoucG90IGZpbGUgKHdoaWNoIGlzIG5vdCBpbiBnaXQpLCBidXQgbm90IGluIHRoZQoJICBpbmRpdmlkdWFsICoucG8gZmlsZXMuIFRoaXMgaW5mb3JtYXRpb24gaXMgaGFyZGx5IHVzZWZ1bCBmb3IgdHJhbnNsYXRvcnMgaW4gb3VyIGNhc2UsIGFuZCBpdCBzaG91bGQgYXZvaWQgdGhlIGNvbnN0YW50CgkgIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggdGhlIG9uZXMgaW4gZ2l0IHdoaWNoIGFyZSBjYXVzZWQgYnkgdGhlIHNvdXJjZSBmaWxlcyBjaGFuZ2luZyBhbmQgdGhlIGxpbmUgbnVtYmVycwoJICBiZWluZyB1cGRhdGVkLgoJICBUaGlzIGNvbW1pdCBpcyBsaWtlbHkgdG8gY2F1c2Ugb25lIGxhc3QgbWVyZ2UgY29uZmxpY3QgZm9yIHlvdSwgd2hpY2ggeW91IGNhbiB3b3JrIGFyb3VuZCB3aXRoICJnaXQgY2hlY2tvdXQgcG8vKi5wbyIKCSAgYmVmb3JlIG1lcmdpbmcgb3IgcHVsbGluZy4gQWZ0ZXIgdGhhdCB0aGVyZSBzaG91bGQgKGhvcGVmdWxseSkgbm90IGJlIGFueSBtb3JlIGxvY2FsIG1vZGlmaWNhdGlvbnMgb2YgdGhlc2UgZmlsZXMuCgoyMDA5LTAyLTA1IDE1OjIyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBHc3RQb2xsIEFQSSB0byBsaWJnc3RyZWFtZXIuZGVmCgoyMDA5LTAyLTA1IDE3OjIzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgY2xlYW51cDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgaW4gX2NsYXNzX2luaXQoKSBhbmQgcmVpbmRlbnQuCgoyMDA5LTAyLTA1IDE3OjA1OjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogcmVtb3ZlIHVudXNlZCBzZXQvZ2V0IHByb3BlcnR5IGZ1bmN0aW9ucwoKMjAwOS0wMi0wNSAxNTo1NjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogY29tcGFyaW5nIGFycmF5cyBhZ2FpbnN0IE5VTEwgaXMgdXNlbGVzcwoKMjAwOS0wMi0wNSAxMzo1OTo0OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHVudXNlZCBjb2RlCgkgIFNraXAgbG9vcGluZyB0aHJ1IGEgZHVtbXkgaW1wbGVtZW50YXRpb24uCgoyMDA5LTAyLTA1IDEzOjU3OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IEdzdENsb2NrVGltZSBpcyBhbHdheXMgPj0gMAoKMjAwOS0wMi0wNSAxMzo0MjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwOS0wMi0wNCAxNzoyMDoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNsZWFudXA6IEVpdGhlciBjaGVjayBhbHdheXMgZm9yIGludGVybmFsIGJlaW5nIE5VTEwgb3IgZG9uJ3QuCgkgIElNSE8gdGhlIGdob3N0cGFkIGlzIGJvcmtlZCBpZiBpbnRlcm5hbCBpcyBOVUxMLiBTbyB0aGUgY2hlY2sgY2FuIGdvIGFuZCBpdCBpcwoJICB1c2VkIGxhdGVyIHVuY2hlY2tlZCBhbnl3YXkuCgoyMDA5LTAyLTA0IDE2OjI2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjcmFzaDogRG9uJ3QgY3Jhc2ggb24gbm9uIGV4aXN0ZW50IHRhZ3MuCgoyMDA5LTAyLTA0IDE2OjE3OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgbGVhazogRG9uJ3QgbGVhayB0eXBlIG5hbWUgaW4gZmFpbHVyZSBjYXNlcy4KCjIwMDktMDItMDQgMTY6MDc6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBEb24ndCBhc3N1bWUgZ3N0X3BhZF9nZXRfcGVlciByZXR1cm5zIG5vbiBOVUxMIHZhbHVlLgoKMjAwOS0wMi0wNCAxNTo0MToyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGxlYWs6IGRvbid0IHJldHVybiB3aXRob3V0IGNhbGxpbmcgdmFfZW5kCgoyMDA5LTAyLTAzIDE4OjA0OjQ2ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBJbXBsZW1lbnQgdGhlIHN5c3RlbWNsb2NrIHdpdGggZ3N0cG9sbAoJICBBZGQgYSBwcm9wZXJ0eSB0byBzZWxlY3QgdGhlIGNsb2NrIHR5cGUsIGN1cnJlbnRseSBSRUFMVElNRSBhbmQgTU9OT1RPTklDIHdoZW4KCSAgcG9zaXggdGltZXJzIGFyZSBhdmFpbGFibGUuCgkgIEltcGxlbWVudCB0aGUgc3lzdGVtY2xvY2sgd2l0aCBHc3RQb2xsIGluc3RlYWQgb2YgR0NvbmQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHNjaGVkdWxlIHRpbWVvdXRzIHdpdGggbmFub3NlY29uZCBwcmVjaXNzaW9uIG9uIG5ld2VyIGtlcm5lbHMgYW5kIHdpdGggcHBvbGwKCSAgc3VwcG9ydC4gSXQncyBhbHNvIHJlc2lsaWVudCB0byBjaGFuZ2VzIHRvIHRoZSBzeXN0ZW1jbG9jayBiZWNhdXNlIG9mIE5UUCBvcgoJICBzaW1pbGFyLgoKMjAwOS0wMi0wMyAxNzo0OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkgIEdzdFBvbGw6IGFkZCBtZXRob2RzIHRvIHVzZSBnc3Rwb2xsIGZvciB0aW1lb3V0cwoJICBBZGQgYSBzcGVjaWFsIHRpbWVyIG1vZGUgaW4gR3N0UG9sbCB0aGF0IG1ha2VzIGl0IG9ubHkgdXNlIHRoZSBjb250cm9sIHNvY2tldAoJICB3aXRoIGEgdGltZW91dCB0byBzY2hlZHVsZSB0aW1lb3V0cy4gQWxzbyBhZGQgYSBwYWlyIG9mIG1ldGhvZHMgdG8gd2FrZXVwIHRoZQoJICB0aW1lb3V0IHRocmVhZC4KCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF9uZXdfdGltZXIoKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3dyaXRlX2NvbnRyb2woKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3JlYWRfY29udHJvbCgpCgoyMDA5LTAyLTAzIDE1OjI3OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBHc3RCYXNlU2luazogdXNlIG5ldyB2YXJpYWJsZSB0byBzY2hlZHVsZSBwcmVyb2xsCgkgIFVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGtlZXAgdHJhY2sgaWYgd2UgbmVlZCB0byBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZAoJICBpbnN0ZWFkIG9mIGFidXNpbmcgdGhlIGNvbW1pdGVkIHZhcmlhYmxlLgoKMjAwOS0wMi0wMyAxMjo1Mjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgR3N0QmFzZVNpbms6IGF2b2lkIGNhbGxpbmcgcHJlcm9sbCBtdWx0aXBsZSB0aW1lcwoJICBGaXggYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTY3NzI1IGluIGNvbW1pdAoJICAxYzdhYjRlZDRmMTliNjNiYTA0NmE2ZjJmZTdkMDlhNmMxNzM1N2M1LiBXZSBzaG91bGQgb25seSBjYWxsIHRoZSBwcmVyb2xsCgkgIGZ1bmN0aW9uIG9uY2UgbmFtZWx5IHdoZW4gd2UgZGlkIG5vdCB5ZXQgY29tbWl0IHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHdlIGNhbGwgdGhlIHByZXJvbGwgZnVuY3Rpb24gd2hlbiBpbnRlcnJ1cHRpbmcgdGhlCgkgIGNsb2NrX3dhaXQgKHNlZSAjNTY3NzI1KS4KCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgd2Ugb25seSBjYWxsIHRoZSBwcmVyb2xsIGZ1bmN0aW9uIG9uY2UuCgoyMDA5LTAxLTI5IDEzOjMwOjQ1ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0CgkgIFdoaWxlIHJlY29uZmlndXJpbmcgYSBiYXNldHJhbnNmb3JtIGVsZW1lbnQgd2UgbmVlZCBhbHNvIHRvIHJlY2hlY2sKCSAgdGhlIGFsbG9jIHJlcXVlc3QuIEJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBjYXBzIGNoYW5nZXMKCSAgdGhlIHByb3h5X2FsbG9jIHN0YXRlIGlzIG5vdCBjb3JyZWN0IGFueW1vcmUuCgkgIChSZS1jb21taXQgYWZ0ZXIgZGlzY3VzaW9uIHdpdGggV2ltIG9uIElSQykKCjIwMDktMDItMDIgMTQ6MTk6NTcgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBNYWtlIGl0IGNvbXBpbGUgd2l0aCBHU1RfRElTQUJMRV9HU1RfREVCVUcuCgoyMDA5LTAxLTMxIDIxOjM0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzLy5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIHJlcG86IFJlYXJyYW5nZSBnaXRpZ25vcmVzIGluIGRvY3Mgc3ViZGlyCgkgIHRtcGwgZGlyZWN0b3JpZXMgYXJlIHJlbW92ZWQgYnkgbWFrZSBjbGVhbiwgd2hpY2ggZGVsZXRlcyB0aGUKCSAgLmdpdGlnbm9yZS4gVXNlIGEgLmdpdGlnbm9yZSBoaWdoZXIgdXAgdG8gaWdub3JlIHRoZSB0bXBsIGRpcnMgaW5zdGVhZC4KCjIwMDktMDEtMzEgMjE6MzI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgY2hlY2s6IEZpeCBjb21tZW50IGFib3V0IHRoZSB0aW1lb3V0IGZvciBnZW5lcmljIHN0cmVzcyB0ZXN0LgoJICBTZXR0aW5nIHRoZSB0aW1lb3V0IHRvIDAgbWFrZXMgaXQgaW5maW5pdGUsIHNvIGZpeCB0aGUgY29tbWVudAoJICBhYm92ZSBhY2NvcmRpbmdseS4KCjIwMDktMDEtMzEgMjE6MzE6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjazogSW5jcmVhc2UgdGltZW91dCBmb3IgdGhlIHRlZSB0ZXN0CgkgIFRoZSB0ZWUgc3RyZXNzIHRlc3Qga2VlcHMgdGltaW5nIG91dCBmb3IgbWUgb24gb25lIG9mIHRoZSBzbG93ZXIKCSAgbWFjaGluZXMsIHNvIGluY3JlYXNlIHRoZSB0aW1lb3V0IHRvIDMgbWlucy4KCjIwMDktMDEtMzAgMTQ6NTY6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgVXBkYXRlIHRoZSB3aW4zMiBjb25maWcuaC5pbiB0ZW1wbGF0ZSBmcm9tIHRoZSBtYWluIGNvbmZpZy5oLmluCgoyMDA5LTAxLTMwIDIyOjE4OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBBZGQgcmVsZWFzZWluZm8gd2l0aCBvbmxpbmUgdXJsLgoKMjAwOS0wMS0zMCAxODoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgUmVtb3ZlIGJyb2tlbiBjbGFzcyB0byBpbnRlcmZhY2UgY2FzdCBtYWNyb3MgZnJvbSBHc3RVcmlIYW5kbGVyIGFuZCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlIGhlYWRlcnMKCSAgUmVtb3ZlIGNsYXNzLXRvLWludGVyZmFjZS1zdHJ1Y3QgY2FzdCBtYWNyb3Mgd2hpY2ggZG9uJ3Qgd29yaywKCSAgZG9uJ3QgbWFrZSBzZW5zZSwgYW5kIGluIHNvbWUgY2FzZXMgd291bGRuJ3QgZXZlbiBjb21waWxlIGlmCgkgIHVzZWQuIFJlbW92YWwgc2hvdWxkIGJlIG9rIHNlZWluZyB0aGF0IGNvZGUgd2hpY2ggdXNlcyBhbnkgb2YKCSAgdGhlc2UgaXMgYnJva2VuIGFuZCBib3VuZCB0byBjcmFzaC4gRml4ZXMgIzU2NTYwNy4KCSAgQVBJOiByZW1vdmUgR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFX0NMQVNTCgkgIEFQSTogcmVtb3ZlIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRV9DTEFTUwoJICBBUEk6IHJlbW92ZSBHU1RfVVJJX0hBTkRMRVJfQ0xBU1MKCjIwMDktMDEtMzAgMTY6Mjg6MTQgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJICBSZW1vdmUgZ2l0aWdub3JlIGluIGRvY3MvZ3N0L3RtcGwuCgkgIFRoaXMgZ2l0aWdub3JlIGZpbGUgc2VlbXMgdG8gZ2V0IGRlbGV0ZWQgYnkgdGhlIGJ1aWxkLCBhbmQgZG9lc24ndAoJICBzZWVtIHRvIGJlIGRvaW5nIGFueXRoaW5nIHVzZWZ1bCBhbnl3YXkuCgoyMDA5LTAxLTMwIDE2OjIxOjU1ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQnVtcCBjb21tb24KCjIwMDktMDEtMzAgMTQ6NTk6MDcgKzAwMDAgIEphbiBTY2htaWR0IC0gU3VuIE1pY3Jvc3lzdGVtcyAtIER1YmxpbiBJcmVsYW5kIDxqczIxMjQxOUBmbGFpbC4obm9uZSk+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgd2l0aCBGb3J0ZS4KCjIwMDktMDEtMzAgMTA6NDM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTBhZmQ0NTk1NzkxOTE3NzJmNDJkMWE0NGYzOTU5ZTUzMGM1YzI2OS4KCSAgSXQgYnJlYWtzIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0LXNjYWxlIHVuaXQgdGVzdC4KCjIwMDktMDEtMzAgMTA6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzYTQ2MDJkNzcxOWRlM2MzZWY3YWVjZTY4YjVmOTQ4OWQwNzgwMTYyLgoJICBJdCBicmVha3MgdGhlIGludGVyYWN0aXZlIHRlc3Qtc2NhbGUgdW5pdCB0ZXN0LgoKMjAwOS0wMS0zMCAxMDoyOTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQWxsb2NhdGUgZXZlcnl0aGluZyB0aGF0IGlzIHdyaXR0ZW4gdG8gdGhlIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkKCSAgQWxsb2NhdGUgZXZlcnkgc3RydWN0dXJlIHRoYXQgaXMgZGlyZWN0bHkgd3JpdHRlbiB0byB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkuIE90aGVyd2lzZSBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUKCSAgdW5pbml0aWFsaXplZCAoc3RydWN0IHBhZGRpbmcgYmVjYXVzZSBvZiBhbGlnbm1lbnQsIGV0YykgYW5kCgkgIHZhbGdyaW5kIHdpbGwgY29tcGxhaW4gYWJvdXQgaXQuCgoyMDA5LTAxLTMwIDA4OjMwOjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBVc2UgYSBzeW1ib2xpYyBsaW5rIGZvciB0aGUgcHJlLWNvbW1pdCBjbGllbnQtc2lkZSBob29rCgoyMDA5LTAxLTI5IDE1OjQ5OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBzdXJlIHRvIHRha2UgYSBjb3B5IG9mIHRoZSBzdHJpbmdzIHdlJ3JlIGdvaW5nIHRvIGZyZWUgbGF0ZXIuCgoyMDA5LTAxLTI2IDE3OjE1OjE1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEFkZCBsb2dnaW5nIGluIGZhaWx1cmUgY2FzZS4gQWRkIG1vcmUgZGV0YWlscyB0byBhIHRvZG8gY29tbWVudC4KCjIwMDktMDEtMjYgMTc6MTQ6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJICBBZGQgYSB0cml2aWFsIHNvdXJjZSBmb3IgdHJhY2tpbmcgZ3N0X2luaXQgdGltZSBhY2Nyb3NzIHZlcnNpb25zLgoKMjAwOS0wMS0yNiAxNzoxMzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCB0b2RvIGNvbW1lbnRzLgoKMjAwOS0wMS0yOSAxMzozOToyOSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MKCSAgQmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBzdWdnZXN0aW9uIGhlcmUgd2UgZG9uJ3QgbmVlZAoJICB0byBjaGVjayBvbiBjYXBzIGZvciBwcm94eV9hbGxvYyBidXQgd2UgbmVlZCB0byBjaGVjayBvbiB0aGUgc3VnZ2VzdGVkCgkgIGNhcHMgaW5zdGVhZC4KCjIwMDktMDEtMjkgMTM6MzA6NDUgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QKCSAgV2hpbGUgcmVjb25maWd1cmluZyBhIGJhc2V0cmFuc2Zvcm0gZWxlbWVudCB3ZSBuZWVkIGFsc28gdG8gcmVjaGVjawoJICB0aGUgYWxsb2MgcmVxdWVzdC4gQmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGNhcHMgY2hhbmdlcwoJICB0aGUgcHJveHlfYWxsb2Mgc3RhdGUgaXMgbm90IGNvcnJlY3QgYW55bW9yZS4KCjIwMDktMDEtMjcgMjM6MTQ6NDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBJbXByb3ZlIHRoZSBkb2NzIGZvciBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpLgoJICBJdHMgbWVudGlvbmVkIGluIHRoZSBzZWN0aW9uIGRvY3MsIGJ1dCBsZXRzIHJlcGVhdCBhdCB0aGUgZnVuY3Rpb24gZG9jcyB0aGF0IHRoZSBjYWxsYmFjayBjYW4gYmUgaW52b2tlZCBmcm9tIGFueSB0aHJlYWQuCgoyMDA5LTAxLTI3IDE3OjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRvbid0IHVzZSBFUlJPUl9DRkxBR1Mgd2hlbiBidWlsZGluZyAkZG9jbW9kdWxlLXNjYW4uYwoJICBXZSBkb24ndCB3YW50IHRvIHVzZSAtV2FsbCAtV2Vycm9yIGFuZCBmcmllbmRzIHdoZW4gYnVpbGRpbmcgdGhlIGd0ay1kb2MtZ2VuZXJhdGVkCgkgICRkb2Ntb2R1bGUtc2Nhbi5jLCBzaW5jZSB3ZSBjYW4ndCBlYXNpbHkgZml4IHN0dWZmIGlmIGEgY2VydGFpbiBndGstZG9jL2NvbXBpbGVyCgkgIGNvbWJpbmF0aW9uIGJyZWFrcyB0aGUgYnVpbGQuIEZpeGVzIGJ1aWxkIG9uIHVidW50dSBpbnRyZXBpZC4KCjIwMDktMDEtMjcgMTc6NTI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgTWFrZSBnaXQgaWdub3JlIGJhY2t1cCBmaWxlcy4KCjIwMDktMDEtMjYgMjE6Mjk6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIERvbid0IGNoZWNrIHRpbWVzdGFtcCBoZXJlLCBpdHMgZG9uZSBpbiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFueXdheS4KCjIwMDktMDEtMjYgMTI6NTI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBBdm9pZCB1bm5lZWRlZCByZWFkcyBmcm9tIHRoZSBjb250cm9sIHNvY2tldAoJICBBZGQgYSBuZXcgdmFyaWFibGUgdGhhdCBrZWVwcyB0cmFjayBvZiB0aGUgc3RhdHVzIG9mIHRoZSBjb250cm9sIHNvY2tldC4gVGhpcwoJICBhbGxvd3MgdXMgdG8gYXZvaWQgZG9pbmcgYSByZWFkKCkgb24gdGhlIGNvbnRyb2wgc29ja2V0IHdoZW4gd2UgZGlkIG5vdCB3cml0ZQoJICBhbnl0aGluZyB0byBpdC4KCSAgRml4ZXMgIzU2ODQzOC4KCjIwMDktMDEtMjUgMjI6MTc6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBmYWlsdXJlIGNhc2VzLgoKMjAwOS0wMS0yNSAyMjoxMTozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBEb2N1bWVudCB0aGF0IEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcyB1c2UgUEFDS0FHRSBkZWZpbmUuIEZpeGVzICM1NTk3MjIuCgkgIFBBQ0tBR0UgaXMgZGVmaW5lZCBieSBhdXRvZm9vLiBJZiBwZW9wbGUgdXNlIHNvbWV0aGluZyBkaWZmZXJlbnQsIHRoZXkgbWlnaHQgd2FudCB0byBkZWZpbmUgaXQgdGhlbXNlbGYuCgoyMDA5LTAxLTI1IDE3OjU4OjUyICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTI0IDIxOjUwOjA4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgT25seSBmcmVlIGxpc3Qgb2YgYnVmZmVycyBvbmNlCgoyMDA5LTAxLTI0IDE0OjM3OjE0ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZG9jcy9SRUFETUU6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTIzIDIzOjA4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby8uZ2l0aWdub3JlOgoJICBJZ25vcmUgYW5vdGhlciBmaWxlCgoyMDA5LTAxLTIzIDIxOjQ0OjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZCBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfZXh0ZW5zaW9uIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGUKCjIwMDktMDEtMjMgMTY6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgVXBkYXRlIHdpbjMyIGNvbmZpZy5oIGZvciAwLjEwLjIyLjEgZGV2IGN5Y2xlLi4uCgoyMDA5LTAxLTIzIDE2OjA4OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiAuZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzL3RtcGwvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9uZXQvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIFVwZGF0ZSBhIGJ1bmNoIG9mIGdpdGlnbm9yZXMgdG8gY2xlYW4gdXAgbXkgZ2l0IHN0YXR1cyBvdXRwdXQKCjIwMDktMDEtMjMgMDk6NTQ6NTMgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBGaXggbGlua2luZyBmYWlsdXJlcyBvbiBTb2xhcmlzLiBGaXhlcyBidWcgIzU2ODQ4MS4KCSAgTGluayBsaWJnc3RyZWFtZXIgd2l0aCAkKExJQk0pIGFzIGl0IHVzZXMgbWF0aCBmdW5jdGlvbnMuCgkgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBmb3Igc29ja2V0IGFuZCBuc2wgbGlicmFyeSBhbmQgYWRkCgkgIHRoZW0gdG8gTElCUyBpZiB0aGV5J3JlIGZvdW5kLiBUaGlzIGlzIG5lZWRlZCBvbiBTb2xhcmlzCgkgIGZvciBzb2NrZXQoKSBhbmQgZ2V0aG9zdGJ5bmFtZSgpLgoKMjAwOS0wMS0yMiAxODowMjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHNuYXBzaG90LgoKMjAwOS0wMS0yMiAxMzo1ODo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIEltcHJvdmUgZGVidWcgb3V0cHV0IGJ5IGxvZ2dpbmcgdGhlIG9mZnNldHMuIEZpeGVzIGJ1ZyAjNTY4Njc4LgoJICBJbiBjcmVhdGUoKSBhbHNvIGxvZyB0aGUgb2Zmc2V0cyBhbmQgbm90IG9ubHkgdGhlCgkgIGJ1ZmZlciBzaXplLgoKMjAwOS0wMS0yMiAxMzo1MTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29tbW9uOgoJICBGaXggcHJlLWNvbW1pdCBob29rCgoyMDA5LTAxLTIyIDEyOjUyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMDktMDEtMjIgMTE6NTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgRG9jIGZvciBuZXcgdHlwZWZpbmQgbWV0aG9kLgoKMjAwOS0wMS0yMiAxMDo0NTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjIuMQoKMjAwOS0wMS0yMiAxMDoxNjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDA5LTAxLTIyIDA1OjM1OjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBJbnN0YWxsIGFuZCB1c2UgcHJlLWNvbW1pdCBpbmRlbnRhdGlvbiBob29rIGZyb20gY29tbW9uCgoyMDA5LTAxLTIxIDEyOjUwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgSWYgbm8gdHlwZSB3YXMgZm91bmQgdXNpbmcgdGhlIHR5cGVmaW5kIGZ1bmN0aW9ucywgdHJ5IGRvaW5nIGFuIHVwc3RyZWFtIFVSSSBxdWVyeSB0byBndWVzcyB0aGUgdHlwZSBmcm9tIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0ODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBBZGQgbmV3IHR5cGVmaW5nIGhlbHBlciBmdW5jdGlvbiB0byBndWVzcyB0aGUgY2FwcyBiYXNlZCBvbiB0aGUgZmlsZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLiBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9leHRlbnNpb24oKQoKMjAwOS0wMS0yMSAxMjo0NTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEFsbG93IGFkZGluZyBhIHR5cGVmaW5kZXIgd2l0aG91dCBhIHR5cGVmaW5kIGZ1bmN0aW9uIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8gbWFwIHRoZSBjYXBzIHRvIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0Mzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXBkYXRlIHRoZSBsYXN0X2J1ZmZlciBleGFjdGx5IHdpdGggdGhlIGJ1ZmZlciB0aGF0IGNhdXNlZCB0aGUgcHJlcm9sbCBhbmQgYWxzbyBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZCB3aXRoIHRoYXQgcHJlcm9sbCBidWZmZXIuIEZpeGVzICM1Njc3MjUuCgoyMDA5LTAxLTIxIDEyOjIxOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBkbyBub3QgY2FsbCB0aGUgdW5saW5rIGZ1bmN0aW9uIG9uIHRoZSB0YXJnZXQgcGFkIHdoZW4gdGhlIGdob3N0cGFkIGlzIHVubGlua2VkLiBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGlzIGJlaGF2aW91ci4gRml4ZXMgIzU2NjkzNi4KCjIwMDktMDEtMjEgMDQ6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoIDogVXNlIGdpdCBzdWJtb2R1bGUKCj09PSByZWxlYXNlIDAuMTAuMjIgPT09CgoyMDA5LTAxLTE5IDIyOjU4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMgoKMjAwOS0wMS0xOSAyMToyMDo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wMS0xNyAyMTowNDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IG9yZGVyIG9mIG1lbWJlcnMgaW4gR3N0QnVzU291cmNlIHN0cnVjdHVyZSAtIHRoZSBmaXJzdCBtZW1iZXIgbXVzdCBiZSB0aGUgcGFyZW50IHN0cnVjdHVyZSBpZS4gR1NvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLCAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBGaXggb3JkZXIgb2YgbWVtYmVycyBpbiBHc3RCdXNTb3VyY2Ugc3RydWN0dXJlIC0gdGhlIGZpcnN0IG1lbWJlcgoJICBtdXN0IGJlIHRoZSBwYXJlbnQgc3RydWN0dXJlIGllLiBHU291cmNlLiBTaG91bGQgbWFrZSBidXMgc291cmNlcwoJICBhdHRhY2hlZCB0byBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzIHdvcmsgaW4gYWxsIGNhc2VzIG5vdyAoaWUuCgkgIHByaW1hcmlseSBpbiBjYXNlcyB3aGVyZSB0aGUgY2FsbGJhY2sgaGFzIGEgbm9uLU5VTEwgdXNlciBkYXRhCgkgIGFyZ3VtZW50KS4gRml4ZXMgIzU2MjE3MC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6ICh0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUsIGJhc2VkIG9uIGNvZGUgYnkKCSAgSnVzdGluIEthcm5lZ2VzIDxqdXN0aW4gYXQgYWZmaW5peCBjb20+LgoKMjAwOS0wMS0xNSAxMDowNDozNyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBIHNtYWxsIGRvY3VtZW50YXRpb24gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeC4KCjIwMDktMDEtMTEgMDk6NDY6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgoyMDA5LTAxLTA5IDIzOjM3OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgoyMDA5LTAxLTA5IDE1OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luayBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luawoJICBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTAxLTA4IDEzOjQxOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IENyZWF0ZSBhIHJlZ2lzdHJ5IGlmIHRoZXJlIGlzIG5vbmUgYWxzbyB3aGVuIHRoZSBvcHRpb24gZm9yIGdzdC1kaXNhYmxlLXJlZ2lzdHJ5LXVwZGF0ZSBoYXMgYmVlbiBzZWxlY3RlZC4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBDcmVhdGUgYSByZWdpc3RyeSBpZiB0aGVyZSBpcyBub25lIGFsc28gd2hlbiB0aGUgb3B0aW9uIGZvcgoJICBnc3QtZGlzYWJsZS1yZWdpc3RyeS11cGRhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuIEZpeGVzICM1NjcwMDIKCjIwMDktMDEtMDYgMTg6MTA6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBSZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHJlY2VudGx5LWFkZGVkIEFQSS4KCjIwMDktMDEtMDYgMTc6NTg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgQVBJIGZvciBtYWtpbmcgYSBHU3RyZWFtZXIgcGx1Z2luICdkZXBlbmRlbnQnIG9uIGV4dGVybmFsIGZpbGVzLCBkaXJlY3RvcmllcyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoYXQgR1MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDo6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChHc3RQbHVnaW5EZXApLCAoX0dzdFBsdWdpblByaXZhdGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCksIChnc3RfcGx1Z2luX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fY2xhc3NfaW5pdCksIChnc3RfcGx1Z2luX2xpc3RfZnJlZSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2Vudl92YXJzX2hhc2gpLAoJICAoX3ByaXZfcGx1Z2luX2RlcHNfZW52X3ZhcnNfY2hhbmdlZCksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZXh0cmFjdF9lbnZfdmFyc19wYXRocyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2hhc2hfZnJvbV9zdGF0X2VudHJ5KSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9kaXJlbnRyeV9tYXRjaGVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zY2FuX2Rpcl9hbmRfbWF0Y2hfbmFtZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3NjYW5fcGF0aF93aXRoX2ZpbGVuYW1lcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X3N0YXRfaGFzaCksCgkgIChfcHJpdl9wbHVnaW5fZGVwc19maWxlc19jaGFuZ2VkKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9mcmVlKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zdHJ2X2VxdWFsKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9lcXVhbHMpLAoJICAoZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeSksIChnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR3N0UGx1Z2luUHJpdmF0ZSksIChHc3RQbHVnaW5GbGFncyksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19OT05FKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1JFQ1VSU0UpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUEFUSFNfQVJFX0RFRkFVTFRfT05MWSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19GSUxFX05BTUVfSVNfU1VGRklYKSwKCSAgKEdzdFBsdWdpbkRlcGVuZGVuY3lGbGFncyksIChHc3RQbHVnaW5GaWx0ZXIpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luX2RlcCksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW5fZGVwX3N0cnYpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbl9kZXApLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6IChHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSKSwKCSAgKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQpLCAoX0dzdEJpbmFyeURlcCksIChHc3RCaW5hcnlEZXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIEFkZCBBUEkgZm9yIG1ha2luZyBhIEdTdHJlYW1lciBwbHVnaW4gJ2RlcGVuZGVudCcgb24gZXh0ZXJuYWwgZmlsZXMsCgkgIGRpcmVjdG9yaWVzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcywgc28gdGhhdCBHU3RyZWFtZXIga25vd3Mgd2hlbgoJICBpdCBuZWVkcyB0byByZS1sb2FkIEdTdHJlYW1lciBwbHVnaW5zIHRoYXQgd3JhcCBvdGhlciBwbHVnaW4gc3lzdGVtcy4KCSAgRml4ZXMgYnVnICMzNTA0NzcuCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3koKQoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSgpCgoyMDA5LTAxLTA2IDEzOjAwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbGliZ3N0YXBwLTAuMTAgZnJvbSAtYmFzZSB0byBzZWFyY2ggcGF0aCBhbmQgcmVtb3ZlIHRoZSBvbGQgbGliIGZyb20gLWJhZCBmcm9tIHRoZSBzZWFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGxpYmdzdGFwcC0wLjEwIGZyb20gLWJhc2UgdG8gc2VhcmNoIHBhdGggYW5kIHJlbW92ZSB0aGUgb2xkCgkgIGxpYiBmcm9tIC1iYWQgZnJvbSB0aGUgc2VhcmNoIHBhdGguCgoyMDA5LTAxLTA1IDE1OjQyOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zCgkgIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCjIwMDktMDEtMDUgMTU6NDE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFRoZSBsb2NrIG9yZGVyIHNob3VsZCBiZSBtYWluY29udGV4dCA+IE9CSkVDVF9MT0NLIHNvIHdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgd2hlbiB3YWtpbmcgdXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c193YWtldXBfbWFpbl9jb250ZXh0KToKCSAgVGhlIGxvY2sgb3JkZXIgc2hvdWxkIGJlIG1haW5jb250ZXh0ID4gT0JKRUNUX0xPQ0sgc28gd2UgbmVlZCB0byByZWxlYXNlCgkgIHRoZSBvYmplY3QgbG9jayB3aGVuIHdha2luZyB1cCB0aGUgbWFpbmxvb3AgdG8gYXZvaWQgZGVhZGxvY2tzLgoKMjAwOS0wMS0wNSAxMDoxNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIGFuIGl0ZXJhdG9yIHRvIHNldCB0aGUgY2xvY2sgYW5kIHRoZSBpbmRleCBzbyB0aGF0IHdlIGNhbiByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBhcHByb3ByaWF0ZWx5LiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9pbmRleF9mdW5jKSwgKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIFVzZSBhbiBpdGVyYXRvciB0byBzZXQgdGhlIGNsb2NrIGFuZCB0aGUgaW5kZXggc28gdGhhdCB3ZSBjYW4gcmVsZWFzZQoJICB0aGUgb2JqZWN0IGxvY2sgYXBwcm9wcmlhdGVseS4gRml4ZXMgIzU2NjM5My4KCjIwMDktMDEtMDMgMTg6Mzk6MzggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSk6CgkgIFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMyAxODoxNjo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbmRleC5jOiBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZm9yIEdzdEluZGV4LCBmaXJzdCBsaXR0bGUgc3RlcCBpbiBtYWtpbmcgaW5kZXhpbmcgdG9wLW5vdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9nZXRfdHlwZSk6CgkgIEFkZCBhIGRlYnVnZ2luZyBjYXRlZ29yeSBmb3IgR3N0SW5kZXgsIGZpcnN0IGxpdHRsZSBzdGVwIGluIG1ha2luZwoJICBpbmRleGluZyB0b3Atbm90Y2guCgoyMDA5LTAxLTAzIDE4OjEwOjA4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogQXNzaWduIGRlYnVnIHN0YXRlbWVudHMgdG8gcmVsZXZhbnQgY2F0ZWdvcmllcyBpbnN0ZWFkIG9mIHRoZSAnZGVmYXVsdCcgY2F0ZWdvcnkgc28gdGhleSBkb24ndCBnZXQgbG9zdCBpbiBkZWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2FwcyksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksCgkgIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbCksIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIEFzc2lnbiBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIHJlbGV2YW50IGNhdGVnb3JpZXMgaW5zdGVhZCBvZiB0aGUgJ2RlZmF1bHQnCgkgIGNhdGVnb3J5IHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3QgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMSAyMToyNzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogQWRkIHNvbWUgaWRlYXMsIGhvdyB0byBtYWtlIHRoZSBncmFwaCBzbWFsbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBBZGQgc29tZSBpZGVhcywgaG93IHRvIG1ha2UgdGhlIGdyYXBoIHNtYWxsZXIuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBhIGNvbW1lbnQgZnJvbSBhIGRlYnVnIHNlc3Npb24uCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIExvZyBtb3JlIGNvbnRleHQuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBJbmRldC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDgtMTItMjcgMTc6NDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgR3N0QnVzU291cmNlIHdvcmsgd2l0aCBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzICgjNTYyMTcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9idXNfd2FrZXVwX21haW5fY29udGV4dCksIChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLAoJICAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBNYWtlIEdzdEJ1c1NvdXJjZSB3b3JrIHdpdGggbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyAoIzU2MjE3MCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHRlc3Rfd2F0Y2gpLCAodGVzdF93YXRjaF93aXRoX2N1c3RvbV9jb250ZXh0KSwgKGdzdF9idXNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBHc3RCdXNTb3VyY2Ugd2l0aCBhIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0xMi0yNyAxNjoyMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBXcmFwIG11bHRpLWxpbmUgbWFjcm9zIGluIEdfU1RNVF97U1RBUlR8RU5EfS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6ICh1bnBhY2tfZWxlbWVudCksICh1bnBhY2tfY29uc3Rfc3RyaW5nKSwKCSAgKHVucGFja19zdHJpbmcpOjoKCSAgV3JhcCBtdWx0aS1saW5lIG1hY3JvcyBpbiBHX1NUTVRfe1NUQVJUfEVORH0uCgoyMDA4LTEyLTIwIDE3OjMzOjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSSBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQgbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfdXJpKSwgKGdzdF9xdWVyeV9zZXRfdXJpKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV91cmkpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSQoJICBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQKCSAgbmVlZCB0byBnZXQgZGF0YSBmcm9tIG90aGVyIGZpbGVzLgoJICBUaGlzIHF1ZXJ5IHNob3VsZCBnbyB1cHN0cmVhbSBieSBkZWZhdWx0LgoJICBGaXhlcyBidWcgIzU2Mjk0OS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19xdWVyeSk6CgkgIEltcGxlbWVudCBVUkkgcXVlcnkuCgoyMDA4LTEyLTE5IDE1OjExOjA2ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkgIERvbid0IGZvcndhcmQgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIGEgc291cmNlIGdob3N0cGFkIHRvIGl0cyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBEb24ndCBmb3J3YXJkIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiBhIHNvdXJjZSBnaG9zdHBhZCB0byBpdHMgdGFyZ2V0LgoJICBUaGF0IHdvdWxkIGNhdXNlIHRoZSBnaG9zdHBhZCB0byBlbWl0IG5vdGlmeTo6Y2FwcyB0d28gdGltZXMgKGZpc3QKCSAgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGFmdGVyIGZyb20gb25fc3JjX3RhcmdldF9ub3RpZnkoKSkuCgoyMDA4LTEyLTE5IDExOjI0OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBzb21lIG1vcmUgdW5pdC10ZXN0cyBmb3IgdGhlIGdob3N0cGFkIG5vdGlmeSBzaWduYWwsIG9uZSBvZiB3aGljaCBjdXJyZW50bHkgZmFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoZ2hvc3Rfbm90aWZ5X2NhcHMpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIHVuaXQtdGVzdHMgZm9yIHRoZSBnaG9zdHBhZCBub3RpZnkgc2lnbmFsLCBvbmUgb2Ygd2hpY2gKCSAgY3VycmVudGx5IGZhaWxzLgoKMjAwOC0xMi0xOSAwOTo0NDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzIHRvIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncyB0byB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0xMi0xNyAxNjoxNjo0NSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUKCSAgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIEZpeGVzICM1NjQ4NjMuCgoyMDA4LTEyLTE3IDA5OjM3OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIEZJWE1FIGZvciAwLjExIHRvIHNldCB0aGUgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGFuZCBub3QgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2V0IHRoZSBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgYW5kIG5vdAoJICB0aGUgZWxlbWVudC4gT3RoZXJ3aXNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlY3QgZm9yIHdoaWNoCgkgIHBhZCB0aGUgdGFncyB3ZXJlIGZvdW5kIHdpdGhvdXQgYWRkaW5nIGFuIGV2ZW50IHByb2JlCgkgIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBwYWQuCgoyMDA4LTEyLTE2IDIxOjMzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ2VuZXJhbC54bWw6IFVwZGF0ZSB0aGUgZmFxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgVXBkYXRlIHRoZSBmYXEuCgoyMDA4LTEyLTE2IDE1OjUxOjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgYXBpIGFkZGVkIGluIHByZXZpb3VzIGNvbW1pdCBhbmQgYWRkIHNpbmNlIHRhZyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIFJlbmFtZSBhcGkgYWRkZWQgaW4gcHJldmlvdXMgY29tbWl0IGFuZCBhZGQgc2luY2UgdGFnIHRvIGRvY3MuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncygpCgoyMDA4LTEyLTE2IDE0OjA1OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgZnVuY3Rpb24gdG8gcmVzZXQgdGFnc2V0dGVyIGZvciBlbGVtZW50IHJldXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEFkZCBmdW5jdGlvbiB0byByZXNldCB0YWdzZXR0ZXIgZm9yIGVsZW1lbnQgcmV1c2UuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfZmx1c2goKQoKMjAwOC0xMi0xNiAwOTozNzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQXZvaWQgY29weSBvZiBlbXB0eSB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBdm9pZCBjb3B5IG9mIGVtcHR5IHRhZ2xpc3QuCgoyMDA4LTEyLTE2IDA5OjIzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGNvbXBsZXRlIHVuaXQgdGVzdHMuIEZpeCBoYW5kbGluZyBvZiBlbXB0eSB0YWdsaXN0cyAodGhleSB3ZXJlIG5vdCBtZXJnZWQgYmVmb3JlKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIE1vcmUgY29tcGxldGUgdW5pdCB0ZXN0cy4gRml4IGhhbmRsaW5nIG9mIGVtcHR5IHRhZ2xpc3RzICh0aGV5IHdlcmUKCSAgbm90IG1lcmdlZCBiZWZvcmUpLgoKMjAwOC0xMi0xNiAwNzowNzozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXBkYXRlIEdzdFRhZ1NldHRlciBhbmQgR3N0VGFnTWVyZ2VNb2RlIGRvY3VtZW50YXRpb24uIE1lbnRpb24gdGhhdCB0YWdzIGNhbiBjb21lIGZyb20gZXZlbnRzIGFuZCBmcm9tIGFwcGxpY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBVcGRhdGUgR3N0VGFnU2V0dGVyIGFuZCBHc3RUYWdNZXJnZU1vZGUgZG9jdW1lbnRhdGlvbi4gTWVudGlvbgoJICB0aGF0IHRhZ3MgY2FuIGNvbWUgZnJvbSBldmVudHMgYW5kIGZyb20gYXBwbGljYXRpb24uIEZpeCBleGFtcGxlLgoKMjAwOC0xMi0xNSAxNToyNzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlbW92ZSB0aGUgc2VxbnVtIGVudHJ5IHRoYXQgd2UgaW1wbGVtZW50ZWQgaW4gMC4xMCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgdGhlIHNlcW51bSBlbnRyeSB0aGF0IHdlIGltcGxlbWVudGVkIGluIDAuMTAgYWxyZWFkeS4KCSAgQWRkIGVudHJ5IGFib3V0IHJlbW92aW5nIHRoZSBmb3JtYXQgcmV0dXJuIHZhbHVlIGZvciBxdWVyaWVzLgoKMjAwOC0xMi0xNSAxMjo0Nzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQgdG8gdHdlYWsgdGhlIHN5bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KToKCSAgRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQKCSAgdG8gdHdlYWsgdGhlIHN5bmNocm9uaXNhdGlvbi4KCjIwMDgtMTItMTAgMTU6MTk6NDUgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogQWxsb3cgY2hlY2sgdGVzdHMgdG8gdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEFsbG93IGNoZWNrIHRlc3RzIHRvIHVzZQoJICBNQUlOX1NUQVJUX1RIUkVBRFMoKS9NQUlOX1NUT1BfVEhSRUFEUygpIG11bHRpcGxlIHRpbWVzLiBBbHNvIGFsbG93cwoJICBDS19GT1JLPW5vIHRvIGJlIHVzZWQgd2l0aCBtdWx0aXBsZSBjaGVjayB0ZXN0IHRoYXQgdXNlIHRocmVhZHMuCgoyMDA4LTEyLTA5IDE2OjIzOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IGEgY2FwcyBtZW1vcnkgbGVhayBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICBGaXggYSBjYXBzIG1lbW9yeSBsZWFrIGludHJvZHVjZWQgYnkgdGhlIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wOSAxNTo0NTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIHRoZSBjYXBzIG9mIHRoZSBwYWRzIGFyZSBjb21wYXRpYmxlIGJlZm9yZSByZXR1cm5pbmcgYSBwYWQgYW5kIGNsYWltaW5nIGl0IGlzIGNvbXBhdGlibGUuIFRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgb2YgdGhlIHBhZHMgYXJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZwoJICBhIHBhZCBhbmQgY2xhaW1pbmcgaXQgaXMgY29tcGF0aWJsZS4gVGhpcywgYW1vbmcgb3RoZXIgdGhpbmdzLAoJICBmaXhlcyBhIGJ1ZyB3aXRoIGdzdC1sYXVuY2ggd2hlcmUgYW4gaW5jb21wYXRpYmxlIHBhZCBpcyBjaG9zZW4KCSAgYW5kIGxpbmtpbmcgZmFpbHMuIEZpeGVzIGJ1ZyAjNTQ0MDAzLgoKMjAwOC0xMi0wOSAxNDo0NjoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogUmV2ZXJ0IGFjY2lkZW50aWFsbHkgY29tbWl0ZWQgcGF0Y2ggZm9yIGJ1ZyAjNDA0NjMxIHdoaWNoIHRyaWVzIHRvIHByaW50IGEgYmFja3RyYWNlIGlmIGEgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCk6CgkgIFJldmVydCBhY2NpZGVudGlhbGx5IGNvbW1pdGVkIHBhdGNoIGZvciBidWcgIzQwNDYzMSB3aGljaAoJICB0cmllcyB0byBwcmludCBhIGJhY2t0cmFjZSBpZiBhIHRlc3RjYXNlIGlzIHRlcm1pbmF0ZWQgYnkKCSAgYSBzaWduYWwuIFRoaXMgY29kZSB3YXMgbmV2ZXIgYWN0aXZhdGVkIGFzIHRoZSBjb3JyZXNwb25kaW5nCgkgIGNvbmZpZ3VyZS5hYyBjaGFuZ2Ugd2Fzbid0IGNvbW1pdHRlZC4KCjIwMDgtMTItMDkgMTA6NTg6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBUaGlzIHRlc3Qgc2hvdWxkIHJldHVybiBUUlVFIG5vdyBhcyBzeW5jaW5nIGFuIHVuY29udHJvbGxlZCBvYmplY3Qgd2lsbCBzdWNjZWVkIG5vdyAodC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVGhpcyB0ZXN0IHNob3VsZCByZXR1cm4gVFJVRSBub3cgYXMgc3luY2luZyBhbiB1bmNvbnRyb2xsZWQKCSAgb2JqZWN0IHdpbGwgc3VjY2VlZCBub3cgKHRoZXJlJ3Mgbm90aGluZyB0byBzeW5jKS4KCjIwMDgtMTItMDkgMDk6NTY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBBZ2dyZWdhdGUgcmV0dXJuIHZhbHVlIGZvciBnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcygpLiBNb3JlIGluZm8gaW4gbG9nZ2luZy4gQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWdncmVnYXRlIHJldHVybiB2YWx1ZSBmb3IgZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMoKS4gTW9yZSBpbmZvIGluCgkgIGxvZ2dpbmcuIEFsd2F5cyBzZXQgdmFsdWVzIG9uIGZpcnN0IHN5bmMtY2FsbC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgTWljcm9vcHRpbWl6YXRpb25zLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIEZpeCByZXR1cm4gY29kZSBhbmQgY29tbWVudC4KCjIwMDgtMTItMDkgMDk6MDA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRml4IGRlc2NyaXB0aW9uIG9mIGhvdyB0byBzcGVjaWZ5IGEgdHlwZSBpbiBjYXBzLiBGaXhlcyAjNTUzODczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZpeCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gc3BlY2lmeSBhIHR5cGUgaW4gY2Fwcy4gRml4ZXMgIzU1Mzg3My4KCSAgQWxzbyByYW5nZXMgYW5kIGxpc3QgY29udGFpbiB2YWx1ZXMgYW5kIG5vdCBwcm9wZXJ0eS1hc3NpZ25tZW50cy4KCjIwMDgtMTItMDggMjI6Mjg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIEdzdEZsb3dSZXR1cm4gYmVjYXVzZSB0aGUgcGFkIGNvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGFuZCB3ZQoJICBuZWVkIHRvIGlnbm9yZSB0aGUgdmFsdWUgaW4gdGhhdCBjYXNlLgoKMjAwOC0xMi0wOCAxODozNTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgdm1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHRyYW5zZm9ybSBhbmQgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFkZCB2bWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNmb3JtIGFuZCB3aGljaCBjYW4KCSAgYmUgdXNlZCB0byBjb25maWd1cmUgdGhlIHRyYW5zZm9ybSwgc3VjaCBhcyBkeW5hbWljIHByb3BlcnRpZXMuCgoyMDA4LTEyLTA1IDIwOjMyOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogU2VhcmNoIGZvciBwbHVnaW5zIG9uIHdpbjMyIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgZ3N0cmVhbWVyIERMTC4gIEZpeGVzICM1NDg3ODYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBTZWFyY2ggZm9yIHBsdWdpbnMgb24gd2luMzIgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZQoJICBnc3RyZWFtZXIgRExMLiAgRml4ZXMgIzU0ODc4NgoKMjAwOC0xMi0wNCAyMDoxMDo0MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZSB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZQoJICB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCjIwMDgtMTItMDQgMTk6NDU6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvIG91ciBNNCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvCgkgIG91ciBNNCBtYWNyb3MuCgoyMDA4LTExLTI5IDEzOjI5OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXF1aXJlIGdldHRleHQgMC4xNyBiZWNhdXNlIG9sZGVyIHZlcnNpb25zIGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yLiBBdCBidWlsZCB0aW1lIGFuIG9sZGVyIGdldHRleHQgdmVyc2lvbiB3aWxsIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lcgoJICA8eXNlbGtvd2l0eiBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KCSAgKiBhdXRvZ2VuLnNoOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sCgkgIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzdGlsbCB3b3JrLgoJICBGaXhlcyBidWcgIzU1NjA5MS4KCjIwMDgtMTEtMjcgMTE6MTI6MzAgKzAwMDAgIOydtOusuO2YlSA8aXdpbmdzQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLmM6IEFkZHMgc3VwcG9ydCBmb3IgRkRfQ09OTkVDVCBldmVudCAod2luMzIpLiBTZWUgIzU2MjI1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDsnbTrrLjtmJUgPGl3aW5ncyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKToKCSAgQWRkcyBzdXBwb3J0IGZvciBGRF9DT05ORUNUIGV2ZW50ICh3aW4zMikuIFNlZSAjNTYyMjU4LgoKMjAwOC0xMS0yNCAyMDowMjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUdXJuIGNvbW1lbnQgaW50byBndGstZG9jIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVHVybiBjb21tZW50IGludG8gZ3RrLWRvYyBjb21tZW50LgoKMjAwOC0xMS0yNCAxNToyNzo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZXZlcnQgcXVpY2sgYWNjZXBjYXBzIGF0dGVtcHQsIGl0J3Mgbm90IGZ1bGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9sZCBiZWhhdmlvdXIgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKToKCSAgUmV2ZXJ0IHF1aWNrIGFjY2VwY2FwcyBhdHRlbXB0LCBpdCdzIG5vdCBmdWxseSBlcXVpdmFsZW50IHRvIHRoZSBvbGQKCSAgYmVoYXZpb3VyIGFuZCB0aHVzIGNhdXNlcyByZWdyZXNzaW9ucy4KCjIwMDgtMTEtMjQgMTE6NTY6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogRml4IG1lbW9yeSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBtZW1vcnkgbGVhay4KCjIwMDgtMTEtMjQgMDk6NTk6MDcgKzAwMDAgIFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZUBjcy5hYXUuZGs+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUmVkdWNlIHRoZSBudW1iZXIgb2Ygc3RhdCgpIGNhbGxzIGZvciBldmVyeSBmaWxlIGZyb20gdGhyZWUgdGltZXMgdG8gb25lIHRpbWUuIEZpeGVzIGJ1ZyAjNTYwMzYwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZSBhdCBjcyBkb3QgYWF1IGRvdCBkaz4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSZWR1Y2UgdGhlIG51bWJlciBvZiBzdGF0KCkgY2FsbHMgZm9yIGV2ZXJ5IGZpbGUgZnJvbSB0aHJlZSB0aW1lcwoJICB0byBvbmUgdGltZS4gRml4ZXMgYnVnICM1NjAzNjAuCgoyMDA4LTExLTIyIDE1OjA5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2Fwcyk6CgkgIFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCjIwMDgtMTEtMjEgMjA6NTc6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgoyMDA4LTExLTIxIDE4OjI2OjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ2hlY2sgZm9yIGxvY2FsaG9zdCBpbiBVUkkgd2FzIGJhY2t3YXJkcywgZml4IGl0LiBGaXhlcyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBDaGVjayBmb3IgbG9jYWxob3N0IGluIFVSSSB3YXMgYmFja3dhcmRzLCBmaXggaXQuIEZpeGVzIHVuaXQgdGVzdC4KCjIwMDgtMTEtMjEgMTc6MTQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkIGJlZ2lubmluZ3Mgb2YgYSBtb3JlIG9wdGltaXplZCBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRoYW4gdGhlIGRlZmF1bHQgY29yZSBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIEFkZCBiZWdpbm5pbmdzIG9mIGEgbW9yZSBvcHRpbWl6ZWQgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0aGFuIHRoZSBkZWZhdWx0CgkgIGNvcmUgb25lLgoKMjAwOC0xMS0yMSAxNjo0ODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQXZvaWQgZ2V0dGluZyB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBBdm9pZCBnZXR0aW5nIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRvbyBlYXJseS4KCjIwMDgtMTEtMjEgMDg6MDk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUgbGF0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUKCSAgbGF0ZW5jeS4KCjIwMDgtMTEtMjAgMjE6MDU6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVc2UgZ19maWxlbmFtZV9mcm9tX3VyaSgpIGZvciBVUkkgcGFyc2luZyBpbiBmaWxlc3JjIHJhdGhlciB0aGFuIHJvbGxpbmcgb3V0IG93biBzbGlnaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIGdfZmlsZW5hbWVfZnJvbV91cmkoKSBmb3IgVVJJIHBhcnNpbmcgaW4gZmlsZXNyYyByYXRoZXIgdGhhbiByb2xsaW5nCgkgIG91dCBvd24gc2xpZ2h0bHkgaW5jb3JyZWN0IHZlcnNpb24uIEZpeGVzIHVzZSBvZiBzb21lIHBhdGhzIG9uCgkgIHdpbjMyLgoKMjAwOC0xMS0yMCAyMDo0NDo1NiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHdpbjMyIGNvZGVwYXRoLCBpZiB3ZSBmYWlsIHRvIHdyaXRlIHRoZSByZWdpc3RyeSwgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGl0IGFuZCB0cnkgYWdhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbiB3aW4zMiBjb2RlcGF0aCwgaWYgd2UgZmFpbCB0byB3cml0ZSB0aGUgcmVnaXN0cnksIGNyZWF0ZSB0aGUKCSAgZGlyZWN0b3J5IGZvciBpdCBhbmQgdHJ5IGFnYWluLCBtYXRjaGluZyB0aGUgYmVoYXZpb3VyIGluIG5vbi13aW4zMgoJICBjb2RlcGF0aHMuCgoyMDA4LTExLTIwIDE0OjIzOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDaGFuZ2luZyB0aGUgcmVuZGVyIGRlbGF5IGNoYW5nZXMgdGhlIGxhdGVuY3kgYW5kIHNvIHdlIG11c3QgcG9zdCBhIGxhdGVuY3kgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KToKCSAgQ2hhbmdpbmcgdGhlIHJlbmRlciBkZWxheSBjaGFuZ2VzIHRoZSBsYXRlbmN5IGFuZCBzbyB3ZSBtdXN0IHBvc3QgYQoJICBsYXRlbmN5IG1lc3NhZ2UuCgoyMDA4LTExLTIwIDEwOjM1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IEFkZCBHc3RRdWVyeVR5cGUgZm9yIGN1c3RvbSBxdWVyaWVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHVzZSB0aGUgbm90LXNvLXZlcnktY29udmVuaWVudCByZWdpc3RyYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgR3N0UXVlcnlUeXBlIGZvciBjdXN0b20gcXVlcmllcyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1c2UgdGhlCgkgIG5vdC1zby12ZXJ5LWNvbnZlbmllbnQgcmVnaXN0cmF0aW9uIGluZnJhc3RydWN0dXJlIHRvIHJlZ2lzdGVyIG5ldwoJICB0eXBlcy4KCjIwMDgtMTEtMTkgMTI6MjA6MDMgKzAwMDAgIEFuZHJldyBGZXJlbiA8YWNmZXJlbkB5YWhvby5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFVucmVmIHRoZSBHRW51bUNsYXNzIGFmdGVyIHVzYWdlIGFnYWluLiBGaXhlcyBidWcgIzU2MTUwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbmRyZXcgRmVyZW4gPGFjZmVyZW4gYXQgeWFob28gZG90IGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2RlZmF1bHRfZGVlcF9ub3RpZnkpOgoJICBVbnJlZiB0aGUgR0VudW1DbGFzcyBhZnRlciB1c2FnZSBhZ2Fpbi4gRml4ZXMgYnVnICM1NjE1MDEuCgoyMDA4LTExLTE5IDEyOjA2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBBZGQgZG8tbGF0ZW5jeSBzaWduYWwgd2l0aCB0aGUgb2xkIGRlZmF1bHQgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24uIFRoaXMgYWxsb3dzIGZvciBjdXN0b20gbGF0ZW5jeSBjYWxjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKF9nc3RfYm9vbGVhbl9hY2N1bXVsYXRvciksIChnc3RfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KSwgKGdzdF9iaW5fZG9fbGF0ZW5jeV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIGRvLWxhdGVuY3kgc2lnbmFsIHdpdGggdGhlIG9sZCBkZWZhdWx0IGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBUaGlzCgkgIGFsbG93cyBmb3IgY3VzdG9tIGxhdGVuY3kgY2FsY3VsYXRpb25zIGZvciB3aGVuIHRoZSBkZWZhdWx0IGlzIG5vdAoJICBzdWZmaWNpZW50LgoJICBBUEk6IEdzdEJpbjo6ZG8tbGF0ZW5jeSBzaWduYWwuCgoyMDA4LTExLTE4IDEzOjM2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgc3ltYm9scyB0byAuZGVmIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gLmRlZiBmaWxlLgoKMjAwOC0xMS0xOCAwOTo1ODozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gcmVjYWxjdWxhdGUgYW5kIHJlZGlzdHJpYnV0ZSB0aGUgbGF0ZW5jeSBvbiBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3kpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgbWV0aG9kIHRvIHJlY2FsY3VsYXRlIGFuZCByZWRpc3RyaWJ1dGUgdGhlIGxhdGVuY3kgb24gYSBiaW4uCgkgIEFQSTogZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KCkuCgoyMDA4LTExLTE4IDA5OjUyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEb2N1bWVudCB0aGUgZnJlZV9mdW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERvY3VtZW50IHRoZSBmcmVlX2Z1bmMuCgoyMDA4LTExLTE3IDIxOjQzOjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgaW5zdGVhZCBvZiBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgYXMgaXQgaXMgbWFwcGVkIHRvIGEgY2FzdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlCgkgIGFzIGl0IGlzIG1hcHBlZCB0byBhIGNhc3Qgb24gbm9uLXdpbjMyIHBsYXRmb3Jtcy4KCjIwMDgtMTEtMTcgMjE6NDE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBLZWVwIGxhc3QtdmFsdWUgYW5kIG9ubHkgY2FsbCBzZXRfcHJvcGVydHkgaWYgdmFsdWUgaGFzIGNoYW5nZWQuIFRoaXMgc3VwcmVzc2VzIGFsbCB0aGUgZ19vYmplYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgIEtlZXAgbGFzdC12YWx1ZSBhbmQgb25seSBjYWxsIHNldF9wcm9wZXJ0eSBpZiB2YWx1ZSBoYXMgY2hhbmdlZC4gVGhpcwoJICBzdXByZXNzZXMgYWxsIHRoZSBnX29iamVjdF9ub3RpZmllcyB3ZSB3b3VsZCB0cmlnZ2VyIG90aGVyd2lzZS4gSXQKCSAgYWxzbyBhbGxvd3MgdGhlIHVzZXIgdG8gY2hhZ2UgdGhlIHZhbHVlIHdoaWxlIHRoZXJlIGlzIG5vIGNvbnRyb2xsZXIKCSAgY2hhbmdlLgoKMjAwOC0xMS0xNyAyMToyNTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvbid0IGNyYXNoIGlmIGVpdGhlciBvZiB0aGUgc3RyaW5nIEdWYWx1ZXMgaXMgZW1wdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb24ndCBjcmFzaCBpZiBlaXRoZXIgb2YgdGhlIHN0cmluZyBHVmFsdWVzIGlzIGVtcHR5LgoKMjAwOC0xMS0xNyAxNTo0ODoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IE5ldyBmdW5jdGlvbiwgcHJpbnRzIGEgc3VtbWFyeSBvZiB3aGF0IFVSSSBzY2hlbWVzIGFyZSBzdXBwb3J0ZWQgYnkgd2hhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBOZXcgZnVuY3Rpb24sCgkgIHByaW50cyBhIHN1bW1hcnkgb2Ygd2hhdCBVUkkgc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHdoYXQKCSAgZWxlbWVudHMuCgkgIChtYWluKTogUGx1bWIgaW4gc3VwcG9ydCBmb3IgLS11cmktaGFuZGxlcnMgb3IgLXUsIGFuZCBmaXggdGhlCgkgIGFyZ2MgY2hlY2sgZm9yIC1hIGFuZCAtdS4KCjIwMDgtMTEtMTcgMDQ6NDk6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgR19HTlVDX1BVUkUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlKiBhbmQgdGhlIGRvdWJsZTwtPnVpbnQ2NCBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX0dOVUNfUFVSRSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGUqIGFuZCB0aGUgZG91YmxlPC0+dWludDY0CgkgIGNvbnZlcnNpb24gZnVuY3Rpb25zLgoKMjAwOC0xMS0xMyAxODowOTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQXZvaWQgY29zdGx5IHR5cGVjaGVja2luZyBmb3IgdHJpdmlhbGx5IGNvcnJlY3QgcG9pbnRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBBdm9pZCBjb3N0bHkgdHlwZWNoZWNraW5nIGZvciB0cml2aWFsbHkgY29ycmVjdCBwb2ludGVycy4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2FpdCk6CgkgIEFkZCBzb21lIEdfTElLRUxZIGhlcmUgYW5kIHRoZXJlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCk6CgkgIEFkZCBzb21lIGRlYnVnIGluZm8uCgoyMDA4LTExLTEzIDE4OjA1OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFNtYWxsIHR3ZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNtYWxsIHR3ZWFrcy4KCjIwMDgtMTEtMTMgMTg6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9vbGQvdGVzdHN1aXRlLzogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6IChtYWluKToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6IChtYWluKToKCSAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOC0xMS0xMiAxNjo1NTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCAtLXBsdWdpbiBvcHRpb24uIEZpeGVzICM1NjAzMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgQWRkIC0tcGx1Z2luIG9wdGlvbi4gRml4ZXMgIzU2MDMwMS4KCjIwMDgtMTEtMTIgMTI6NDU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogUXVpY2sgYnJhaW5kdW1wIGZvciBhIHBvc3NpYmxlIChub3QgdG90YWxseSB2ZXJpZmllZCkgYXRvbWljIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBRdWljayBicmFpbmR1bXAgZm9yIGEgcG9zc2libGUgKG5vdCB0b3RhbGx5IHZlcmlmaWVkKSBhdG9taWMgY2FzZS4KCjIwMDgtMTEtMTIgMTA6Mzk6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBEb24ndCB3cml0ZSBhbmQgY2hlY2sgYSBDUkMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZS4gSXQncyBndWFyYW50ZWVkIHRoYXQgdGhlIHJlZ2lzdHJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2h1bmspLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIERvbid0IHdyaXRlIGFuZCBjaGVjayBhIENSQyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlLiBJdCdzCgkgIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cnkgaXMgY29tcGxldGVseSB3cml0dGVuIChpdCdzIGZpcnN0IHdyaXR0ZW4KCSAgdG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgdGhlbiBtb3ZlZCkgYW5kIGlmIHRoZSByZWdpc3RyeSB3YXMgY29ycnVwdGVkCgkgIGJ5IHNvbWUgaGFyZHdhcmUgZmFpbHVyZSB3ZSB3b3VsZCBoYXZlIGJpZ2dlciBwcm9ibGVtcy4KCSAgQnVtcCBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbiB0byAwLjEwLjIxLjEgZm9yIHRoaXMgYXMgaXQncyBhbgoJICBpbmNvbXBhdGlibGUgY2hhbmdlIGFuZCB0byBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgZ2V0cyByZWJ1aWxkCgkgIGFmdGVyIHRoZSB1cGRhdGUuCgkgIFRoaXMgc2F2ZXMgc29tZSBtaWxsaXNlY29uZHMgZm9yIHJlYWRpbmcvd3JpdGluZyB0aGUgcmVnaXN0cnkuCgkgIEZpeGVzIGJ1ZyAjNTYwMzk5LgoKMjAwOC0xMS0xMSAxNDo1MDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBTb21lIHBzZXVkbyBjb2RlIGZvciBob3cgd2UgY291bGQgaW1wbGVtZW50IGNsb2NrIHRpbWVvdXRzIHdpdGggR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNvbWUgcHNldWRvIGNvZGUgZm9yIGhvdyB3ZSBjb3VsZCBpbXBsZW1lbnQgY2xvY2sgdGltZW91dHMgd2l0aCBHc3RQb2xsLgoKMjAwOC0xMS0xMCAxMzo1Njo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFVwZGF0ZSBBdXRob3Igc3RyaW5nIHRvIG1hdGNoIG90aGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBVcGRhdGUgQXV0aG9yIHN0cmluZyB0byBtYXRjaCBvdGhlcnMuCgoyMDA4LTExLTA2IDE1OjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJlb3JnYW5pemUgc29tZSBtb3JlLCBiZSBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBHU1RfVFlQRV9BUlJBWSBub3QgYmVpbmcgZml4ZWQgYW5kIGlubGluZSB0aGUgdHJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLCAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgUmVvcmdhbml6ZSBzb21lIG1vcmUsIGJlIG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIEdTVF9UWVBFX0FSUkFZIG5vdAoJICBiZWluZyBmaXhlZCBhbmQgaW5saW5lIHRoZSB0cml2aWFsIGNoZWNrLgoKMjAwOC0xMS0wNiAxNTowOTozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENhbGxncmluZCBtaWNybyBvcHRpbWlzYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfY29weSksIChfZ3N0X2NhcHNfZnJlZSksCgkgIChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpLCAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSksCgkgIChnc3RfY2Fwc19jb3B5X250aCksIChnc3RfY2Fwc19zZXRfc2ltcGxlKSwKCSAgKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwgKGdzdF9jYXBzX2lzX2ZpeGVkKSwKCSAgKGdzdF9jYXBzX2lzX2VxdWFsX2ZpeGVkKSwgKGdzdF9jYXBzX2ludGVyc2VjdCksCgkgIChnc3RfY2Fwc19zdWJ0cmFjdCksIChnc3RfY2Fwc19ub3JtYWxpemUpLCAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQ2FsbGdyaW5kIG1pY3JvIG9wdGltaXNhdGlvbnMuCgkgIEF2b2lkIGFycmF5IGJvdW5kcyBjaGVja3MgYW5kIGZvcmNlIGlubGluZSBvZiB0cml2aWFsIGZ1bmN0aW9uLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCk6CgkgIC0xIGlzIGVxdWl2YWxlbnQgdG8gbGV0dGluZyBnbGliIHRvIHRoZSBzdHJsZW4gYnV0IHRoZW4gdGhlcmUgaXMgbW9yZQoJICByb29tIGZvciBvcHRpbWlzYXRpb25zIGFuZCBpdCdzIG5vdCBvdXIgZmF1bHQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKToKCSAgbm8gbmVlZCB0byBjbGVhciB0aGUgYXJyYXksIHdlJ3JlIGNvb2wuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksIChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBUaGUgbW9zdCBjb21tb24gX2lzX2ZpeGVkKCkgY2hlY2sgaXMgZG9uZSBvbiBmdW5kYW1lbnRhbCBnbGliIGJhc2UKCSAgdHlwZXMgc28gd2UgY2hlY2sgdGhpcyBmaXJzdCBpbnN0ZWFkIG9mIGRvaW5nIGEgaHVnZSBhbW91bnQgb2YKCSAgdXNlbGVzcyBHU1RfVFlQRV9BUlJBWSBjYWxscy4KCjIwMDgtMTEtMDYgMTI6MDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIGEgU0tJUCBzZWVrIGZsYWcgZm9yIHVzZSB3aXRoIGFkdmFuY2VkIHRyaWNrbW9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgYSBTS0lQIHNlZWsgZmxhZyBmb3IgdXNlIHdpdGggYWR2YW5jZWQgdHJpY2ttb2Rlcy4KCSAgQVBJOiBHc3RTZWVrRmxhZ3M6OkdTVF9TRUVLX0ZMQUdfU0tJUAoKMjAwOC0xMS0wNSAxNjo1NzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogTm8gbmVlZCB0byBtZW1zZXQsIHdlIGNhbiBjbGVhciB0aGUgdmFsdWUgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpOgoJICBObyBuZWVkIHRvIG1lbXNldCwgd2UgY2FuIGNsZWFyIHRoZSB2YWx1ZSBvdXJzZWx2ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksCgkgIChnc3RfdmFsdWVfZ2V0X2NvbXBhcmVfZnVuYyk6CgkgIFNvbWUgb3B0aW1pc2F0aW9ucyBmcm9tIGEgZmV3IGNhbGxncmluZCBzZXNzaW9uczoKCSAgV2hlbiBjaGVja2luZyBpZiBhIHR5cGUgaXMgZml4ZWQsIGNoZWNrIGZvciB0cml2aWFsIGZ1bmRhbWVudGFsIHR5cGVzCgkgIGZpcnN0IGJlZm9yZSBjaGVja2luZyB0eXBlcyBmb3Igd2hpY2ggd2UgbmVlZCB0byBnZXQgdGhlIHR5cGUgZm9sbG93ZWQKCSAgYnkgdGhlIGhlYXZ5IGR1dHkgdHlwZSBjaGVja3MsIHRoaXMgcmVkdWNlcyB0aGUgYW1vdW50IG9mCgkgIGdfdHlwZV9mdW5kYW1lbnRhbCgpIGNhbGxzIGEgbG90LgoJICBXaGVuIGdldHRpbmcgdGhlIGNvbXBhcmUgZnVuY3Rpb24sIGZpcnN0IGNoZWNrIGZvciBvdXIgcmVnaXN0ZXJlZCB0eXBlcy4KCSAgSWYgdGhhdCBmYWlscywgZG8gdGhlIGhlYXZ5IGR1dHkgZ190eXBlX2lzX2EoKSBjaGVja3MsIHJlZHVjZXMgdGhlCgkgIGFtb3VudCBvZiBnX3R5cGVfaXNfYSgpIGNvbnNpZGVyYWJseS4KCjIwMDgtMTEtMDUgMTE6MTc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNdW1ibGUgc29tZXRoaW5nIGFib3V0IHJlbW92aW5nIEdzdFhNTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTXVtYmxlIHNvbWV0aGluZyBhYm91dCByZW1vdmluZyBHc3RYTUwuCgoyMDA4LTExLTA0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBHZXQgdGhlIHNlcW51bSBiZWZvcmUgd2UgZGlzcG9zZSB0aGUgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgR2V0IHRoZSBzZXFudW0gYmVmb3JlIHdlIGRpc3Bvc2UgdGhlIG1lc3NhZ2UuCgoyMDA4LTExLTA0IDE2OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVmZXIgdG8gdGhlIGZyYW1lc3RlcHBpbmcgZG9jdW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlZmVyIHRvIHRoZSBmcmFtZXN0ZXBwaW5nIGRvY3VtZW50LgoKMjAwOC0xMS0wNCAxNTo1Njo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIENvcHkgc2VxbnVtcyBmcm9tIGV2ZW50cyB0byBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSByZWxhdGVkIGJhY2sgdG8gZWFjaG90aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksIChnc3RfYmluX3F1ZXJ5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBDb3B5IHNlcW51bXMgZnJvbSBldmVudHMgdG8gbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgcmVsYXRlZAoJICBiYWNrIHRvIGVhY2hvdGhlci4KCjIwMDgtMTEtMDQgMTU6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IHRoZSBtZXNzYWdlIHNlcW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCB0aGUgbWVzc2FnZSBzZXFudW1zLgoKMjAwOC0xMS0wNCAxMzo1NjozNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0KTogUmVmYWN0b3IgZm9yIGNsYXJpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCk6IFJlZmFjdG9yIGZvciBjbGFyaXR5LgoJICBBbHNvIGFkZCBBUEk6IHRvIHByZXZpb3VzIGNoYW5nZWxvZyBlbnRyeS4KCjIwMDgtMTEtMDQgMTI6MjI6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEFkZCBzZXF1ZW5jZSBudW1iZXJzIHRvIGV2ZW50cyBhbmQgbWVzc2FnZXMuIFNlZSAjNTU5MjUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgQWRkIHNlcXVlbmNlIG51bWJlcnMgdG8gZXZlbnRzIGFuZCBtZXNzYWdlcy4gU2VlICM1NTkyNTAuCgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0LCBnc3RfdXRpbF9zZXFudW1fY29tcGFyZSk6CgkgIE5ldyBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfY29weSwgZ3N0X2V2ZW50X25ldyk6IEluaXRpYWxpemUgbmV3CgkgIGV2ZW50cyB3aXRoIGEgbmV3IHNlcXVlbmNlIG51bWJlciwgYW5kIGNvcHkgaXQgd2hlbiBjb3B5aW5nLgoJICAoZ3N0X2V2ZW50X2dldF9zZXFudW0sIGdzdF9ldmVudF9zZXRfc2VxbnVtKTogQWNjZXNzb3JzIGZvciBhbgoJICBldmVudCdzIHNlcXVlbmNlIG51bWJlci4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKF9nc3RfbWVzc2FnZV9jb3B5LCBnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKGdzdF9ldmVudF9nZXRfc2VxbnVtLCBnc3RfZXZlbnRfc2V0X3NlcW51bSk6IEFzIHdpdGggZXZlbnRzLCBzbwoJICB3aXRoIG1lc3NhZ2VzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzLgoKMjAwOC0xMS0wNCAxMTo1NTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWwgZml4ZXMgdGhhbmtzIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIFNvbWUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsIGZpeGVzIHRoYW5rcyB0bwoJICBBbmRyZXcgRmVyZW4uIEZpeGVzICM1NTg0NTkuCgoyMDA4LTExLTAzIDEyOjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgYm90aGVyIHdpdGggdGhlIEdUaW1lciBpZiB3ZSBkb24ndCBvdXRwdXQgdGhlIHJlc3VsdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBEb24ndCBib3RoZXIgd2l0aCB0aGUgR1RpbWVyIGlmIHdlIGRvbid0IG91dHB1dCB0aGUgcmVzdWx0cy4KCjIwMDgtMTEtMDMgMTA6NTk6NDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOiBBZGQgV0lOMzJfTElCUyB0byBsaWJnc3RuZXQgTElCQURELiBGaXhlcyAjNTU3MzAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhdmlkIFNjaGxlZWYgIDxkc0BzY2hsZWVmLm9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEFkZCBXSU4zMl9MSUJTIHRvIGxpYmdzdG5ldCBMSUJBREQuIEZpeGVzICM1NTczMDAuCgoyMDA4LTEwLTMxIDE1OjU0OjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoKMjAwOC0xMC0zMSAxNDoyNDo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBVc2UgZ191bmxpbmsgaW5zdGVhZCBvZiB1bmxpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgVXNlIGdfdW5saW5rIGluc3RlYWQgb2YgdW5saW5rLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXNlIGdsaWIgdHlwZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIGEgRklYTUU6LgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZvcm1hdHRpbmcgJiB3aGl0ZXNwYWNlcy4KCjIwMDgtMTAtMzEgMDg6NTM6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9jIHR5cG8uIFVzZSByZXR1cm4gdmFsdWUgb2YgcGFyZW50X2NsYXNzLT5ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBEb2MgdHlwby4gVXNlIHJldHVybiB2YWx1ZSBvZiBwYXJlbnRfY2xhc3MtPmV2ZW50LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIENoYWluIHVwIGF0IHRoZSBlbmQgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOC0xMC0zMCAxNToyOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IENoYW5nZSB0byB4aW5jbHVkZSBiYXNlZCBidWlsZCAtIGl0cyBmYXN0ZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgQ2hhbmdlIHRvIHhpbmNsdWRlIGJhc2VkIGJ1aWxkIC0gaXRzIGZhc3RlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgoKMjAwOC0xMC0zMCAxNDoxNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXNlIGdfdW5saW5rKCkgYXMgbm9uZSBvZiB0aGVzZSBhcmUgZGlyZWN0b3JpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBVc2UgZ191bmxpbmsoKSBhcyBub25lIG9mIHRoZXNlIGFyZSBkaXJlY3Rvcmllcy4KCjIwMDgtMTAtMjkgMTc6MDQ6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogU29tZSBtb3JlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgoyMDA4LTEwLTI3IDE1OjAyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcyBiZWNhdXNlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcwoJICBiZWNhdXNlIHRoZSBzdWJjbGFzcyBtaWdodCBhZGQgc29tZSBjYXBzLiBNYWtlcyBhdWRpb2NvbnZlcnQgYWRkIGEKCSAgZGVmYXVsdCBjaGFubmVsIGxheW91dC4KCjIwMDgtMTAtMjQgMDk6NDE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciB2YXJpYWJsZS4KCSAgQ2xlYW51cHMgdG8gdGhlIGVycm9yIHBhdGggaW4gdGhlIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU3NjQ5LgoKMjAwOC0xMC0yMyAxMjo1Mjo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZiB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZgoJICB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3aGljaCBhYm9ydHMgaWYgdGhlIGJ1ZmZlciBjb3VsZG4ndAoJICBiZSBhbGxvY2F0ZWQuCgoyMDA4LTEwLTIzIDA5OjQ5OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUKCSAgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mIHRoZSBzZWdtZW50IG9yIGNsaXBwZWQgYWdhaW5zdCB0aGUKCSAgdXBkYXRlZCBzZWdtZW50IGJvdW5kYXJpZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIGxhc3Rfc3RvcC4KCjIwMDgtMTAtMjMgMDc6MTE6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiBVc2UgR1NUXyhSRUFEfFdSSVRFKV8oRkxPQVR8RE9VQkxFKV8oTEV8QkUpIGluc3RlYWQgb2Ygb3VyIG93biBjb3BpZXMgb2YgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIFVzZSBHU1RfKFJFQUR8V1JJVEUpXyhGTE9BVHxET1VCTEUpXyhMRXxCRSkgaW5zdGVhZCBvZiBvdXIgb3duCgkgIGNvcGllcyBvZiB0aGVtLgoKMjAwOC0xMC0yMyAwNzowOToyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBNb3ZlIGZsb2F0IGVuZGlhbm5lc3MgY29udmVyc2lvbiBtYWNyb3MgZnJvbSBsaWJnc3RmbG9hdGNhc3QgdG8gY29yZSBhcyBpdCdzIHVzZWZ1bCBpbiBnZW5lcmFsLCBldmVuIGluIGNvcmUuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogTW92ZSBmbG9hdCBlbmRpYW5uZXNzIGNvbnZlcnNpb24gbWFjcm9zIGZyb20gbGliZ3N0ZmxvYXRjYXN0CgkgIHRvIGNvcmUgYXMgaXQncyB1c2VmdWwgaW4gZ2VuZXJhbCwgZXZlbiBpbiBjb3JlLiBGaXhlcyBidWcgIzU1NTE5Ni4KCSAgVGhpcyBhZGRzIEdET1VCTEVfRlJPTV9CRSwgR0RPVUJMRV9GUk9NX0xFLCBHRE9VQkxFX1RPX0JFLAoJICBHRE9VQkxFX1RPX0xFLCBHRE9VQkxFX1NXQVBfTEVfQkUsIEdGTE9BVF9GUk9NX0JFLCBHRkxPQVRfRlJPTV9MRSwKCSAgR0ZMT0FUX1RPX0JFLCBHRkxPQVRfVE9fTEUsIEdGTE9BVF9TV0FQX0xFX0JFLgoJICBBbHNvIGFkZCBHU1RfUkVBRF8gYW5kIEdTVF9XUklURV8gbWFjcm9zIGZvciBmbG9hdHMgYW5kIGRvdWJsZXM6CgkgIEdTVF9SRUFEX0ZMT0FUX0xFLCBHU1RfUkVBRF9GTE9BVF9CRSwgR1NUX1JFQURfRE9VQkxFX0xFLAoJICBHU1RfUkVBRF9ET1VCTEVfQkUsIEdTVF9XUklURV9GTE9BVF9MRSwgR1NUX1dSSVRFX0ZMT0FUX0JFLAoJICBHU1RfV1JJVEVfRE9VQkxFX0xFLCBHU1RfV1JJVEVfRE9VQkxFX0JFLgoKMjAwOC0xMC0yMiAxNDo0NzowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhIGFuZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGRhdGEgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBUEk6IEFkZCBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgYW5kIGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEKCSAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZGF0YSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgaGF2ZQoJICBhIGd1YXJhbnRlZWQgc2l6ZS4KCjIwMDgtMTAtMjIgMTQ6MjU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggYSBidWcgaW4gdGhlIG91dHB1dCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBzdW1tYXJ5IHdoZW4gLS1nc3QtZGlzYWJsZS1yZWdpc3RyeSBpcyBzdXBwbGllZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBhIGJ1ZyBpbiB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IHN1bW1hcnkKCSAgd2hlbiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5IGlzIHN1cHBsaWVkCgoyMDA4LTEwLTIyIDEzOjQ3OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggdGhlIG5hbWVzIG9mIDIgZnVuY3Rpb25zIGluIHRoZSBkb2NzIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIEZpeCB0aGUgbmFtZXMgb2YgMiBmdW5jdGlvbnMgaW4gdGhlIGRvY3Mgc3RyaW5ncy4KCjIwMDgtMTAtMjEgMTY6MzA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvdGVjdCBzaW5rX2FsbG9jIGNhcHMgd2l0aCB0aGUgc2lua3BhZCBsb2NrIHRvIGF2b2lkIG5hc3R5IGNhcHMgcmVmY291bnQgcHJvYmxlbXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpOgoJICBQcm90ZWN0IHNpbmtfYWxsb2MgY2FwcyB3aXRoIHRoZSBzaW5rcGFkIGxvY2sgdG8gYXZvaWQgbmFzdHkgY2FwcwoJICByZWZjb3VudCBwcm9ibGVtcyBhcyBzZWVuIGluIGJhbnNoZWUgYW5kIG1heWJlIGFsc28gaW4gZmFyc2lnaHQyLgoJICBSZW1vdmUgYXRvbWljIGludCBub3cgdGhhdCB3ZSBuZWVkIHRvIHRha2UgdGhlIGxvY2sgYW55d2F5cy4KCjIwMDgtMTAtMjAgMTU6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgcGFkIGNvbnZlcnQgZnVuY3Rpb25zIHRvIGNvbnZlcnQgcG9zaXRpb24gdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgkgIEZpeCBwb3NpdGlvbi9kdXJhdGlvbiByZXBvcnRpbmcgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHJlcG9ydGluZyBpbiBvdGhlciBmb3JtYXRzIHRoYW4gdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBtZW1iZXIgdG8ga2VlcCB0cmFjayBvZiB3aGVuIHRoZSBzZWdtZW50IGlzIHBsYXlpbmcuCgoyMDA4LTEwLTIwIDEzOjMyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGVuIHdlIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHdpdGhvdXQgd2FudGluZyB0byBzZXQgdGhlIGNhcHMgd2UgYWxzbyBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY29uZmlndXJlX3NyYyk6CgkgIFdoZW4gd2UgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgd2l0aG91dCB3YW50aW5nIHRvIHNldCB0aGUgY2FwcyB3ZQoJICBhbHNvIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgYmVjYXVzZSB0aGUgY2FsbGVyCgkgIHByZXN1bWFibHkgaXMgZ29pbmcgdG8gcGVyZm9ybSBpdHMgb3duIGN1c3RvbSBjaGVja3MuIEZpeGVzIHNvbWUgY2FzZXMKCSAgd2hlcmUgYmFzZXRyYW5zZm9ybSBlbGVtZW50cyB3b3VsZCBlcnJvciBvdXQgd2hlbiBpdCB3YXMgbm90IG5lZWRlZC4KCjIwMDgtMTAtMjAgMTM6Mjk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFVwZGF0ZSBjb21tZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgQWRkIHNvbWUgZGVidWcgaW5mby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgbWV0aG9kLgoKMjAwOC0xMC0xOSAxOTo1NzoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgUmVtb3ZlIGR1cGxpY2F0ZWQgYXNzaWdubWVudCBhbmQgbG9nIGEgbWVzc2FnZSBpbiBmYWlsdXJlIGNhc2UuCgoyMDA4LTEwLTE5IDEwOjEzOjM5ICswMDAwICBEaWcgR2UgPGRpZy5nZS5jbkBnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogRml4IGNvcHknbidwYXN0ZSBidWcgaW4gaGVsbG8gd29ybGQgZXhhbXBsZSAoIzU1NjkwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGlnIEdlIDxkaWcuZ2UuY24gYXQgZ21haWwgY29tPgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIEZpeCBjb3B5J24ncGFzdGUgYnVnIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUgKCM1NTY5MDApLgoKMjAwOC0xMC0xNyAxMzoyNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUXVlcnkgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB3aGVuIGFjdGl2YXRpbmcgdGhlIHBhZCBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFF1ZXJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgd2hlbiBhY3RpdmF0aW5nIHRoZSBwYWQgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgZHVyYXRpb24gcXVlcnkgaW4gcHVsbCBtb2RlIGJ5IHVzaW5nIHRoZSBpbnN0YWxsZWQgcGFkIGNvbnZlcnQKCSAgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGJ5dGVzIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoKMjAwOC0xMC0xNiAxNDowOToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gY29tbWl0IHRoZSBzdGF0ZSBpbiBzdWJjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2ZsdXNoX3N0YXJ0KSwgKGdzdF9iYXNlX3NpbmtfZmx1c2hfc3RvcCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgbWV0aG9kIHRvIGNvbW1pdCB0aGUgc3RhdGUgaW4gc3ViY2xhc3Nlcy4KCSAgUmVmYWN0b3IgdGhlIGZsdXNoX3N0YXJ0IGFuZCBmbHVzaF9zdG9wIGNvZGUgYmVjYXVzZSB3ZSBuZWVkIGl0IGZvcgoJICBmbHVzaGluZyB3aGlsZSBzZWVraW5nIHRvby4KCSAgSW1wbGVtZW50IHRoZSBiZWdpbm5pbmdzIG9mIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgdGhlIHNlZ21lbnQgbGFzdF9zdG9wIGZpZWxkIGZvciB0aGUgcHVsbGluZyBvZmZzZXQuCgkgIEZpeCB0aGUgcGF1c2UgbWV0aG9kIGluIHB1bGwgbW9kZS4KCSAgQ29uZmlndXJlIHRoZSBzZWdtZW50IHRvIEJZVEVTIGZvciBwdWxsIG1vZGUuCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCgpCgoyMDA4LTEwLTE2IDEzOjU2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwOC0xMC0xNCAxNzoxMDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RxdWFyay5jOiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgIEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgoyMDA4LTEwLTE0IDEyOjM0OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBGaXggZmxvdyBhZ2dyZWdhdGlvbiBvZiB0ZWUuIEVycm9yIG91dCBpbW1lZGlhdGVseSBmb3IgYWxsIGZsb3cgcmV0dXJucyBleGNlcHQgT0sgYW5kIE5PVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEZpeCBmbG93IGFnZ3JlZ2F0aW9uIG9mIHRlZS4gRXJyb3Igb3V0IGltbWVkaWF0ZWx5IGZvciBhbGwgZmxvdyByZXR1cm5zCgkgIGV4Y2VwdCBPSyBhbmQgTk9UX0xJTktFRCwgcmV0dXJuIE5PVF9MSU5LRUQgaWYgYWxsIHBhZHMgYXJlIG5vdCBsaW5rZWQKCSAgYW5kIHJldHVybiBPSyBpZiBhdCBsZWFzdCBvbmUgcGFkIGlzIGxpbmtlZC4KCSAgQmVmb3JlIHdlIGVycm9yZWQgb3V0IG9uICJmYXRhbCIgZmxvdyByZXR1cm5zIChpLmUuIG5vdCBmb3IgV1JPTkdfU1RBVEUpCgkgIGFuZCBvdGhlcndpc2UgcmV0dXJuZWQgdGhlIGZsb3cgcmV0dXJuIG9mIHRoZSBsYXN0IHBhZCwgd2hpY2ggaXMgd3JvbmcuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChfZmFrZV9jaGFpbiksIChfZmFrZV9jaGFpbl9lcnJvciksCgkgIChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIGZsb3cgYWdncmVnYXRpb24uCgoyMDA4LTEwLTEzIDE3OjE5OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgdG9kbyBsaXN0IGJlY2F1c2UgaXQgd2FzIGZpeGVkIHdpdGggdGhlIGxhdGVuY3kgc3RhdGUgY2hhbmdlIHJld3JpdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgaXRlbSBmcm9tIHRoZSB0b2RvIGxpc3QgYmVjYXVzZSBpdCB3YXMgZml4ZWQgd2l0aCB0aGUgbGF0ZW5jeQoJICBzdGF0ZSBjaGFuZ2UgcmV3cml0ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksIChnc3RfZXZlbnRfbmV3X2xhdGVuY3kpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kpOgoJICBVc2UgcXVhcmtzIHRvIGNvbnN0cnVjdCBhbmQgcGFyc2UgZXZlbnRzLgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgdG8gdGhlIHRhYmxlLgoJICBFbWl0IGEgd2FybmluZyB3aGVuIHRoZSBxdWFyayB0YWJsZXMgYXJlIG5vdCBpbiBzeW5jLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGFuIGFzc2VydC4KCjIwMDgtMTAtMTMgMTY6NDc6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvOiBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciBjb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIGNvcmUuCgoyMDA4LTEwLTEzIDEwOjUwOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGxfdW5sb2NrZWQpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pLAoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbiksCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCksIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOgoJICBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHdhdGNoIHNvdXJjZSBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgc291cmNlIG9iamVjdAoJICBpbnN0ZWFkLgoJICBVc2UgdGhlIGJ1cyBsb2NrIHRvIHByb3RlY3QgYWNjZXNzIHRvIHRoZSBwb2ludGVyIHRvIHRoZSBjdXJyZW50CgkgIHdhdGNoIHNvdXJjZS4KCjIwMDgtMTAtMTMgMDk6MjI6MjIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YnVzLmM6IE9ubHkgYWxsb3cgb25lIGJ1cyB3YXRjaCB0byBiZSBzZXQgYXQgYSB0aW1lLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBkaXNwYXRjaGVyIHBvcHMgdGhlIG1lc3NhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpOgoJICBPbmx5IGFsbG93IG9uZSBidXMgd2F0Y2ggdG8gYmUgc2V0IGF0IGEgdGltZS4gVGhpcyBpcyBuZWNlc3NhcnkKCSAgYmVjYXVzZSB0aGUgZGlzcGF0Y2hlciBwb3BzIHRoZSBtZXNzYWdlIGZyb20gdGhlIGJ1cyBhbmQgdGhlIHNlY29uZAoJICB3YXRjaGVyIHdpbGwgdGhlbiBnZXQgTlVMTCBvciB0aGUgbmV4dCBtZXNzYWdlIChhbmQgdGhlIGZpcnN0IHdvbid0CgkgIGdldCB0aGlzIG5leHQgbWVzc2FnZSB0aGVuLCBldGMpLiBJZiBtb3JlIHRoYW4gb25lICJ3YXRjaGVyIiBpcwoJICByZXF1aXJlZCBzaWduYWwgd2F0Y2hlcyBzaG91bGQgYmUgdXNlZC4gRml4ZXMgYnVnICM1MjYwNDQuCgoyMDA4LTEwLTEyIDIyOjE2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2hhbmdlIHRoZSBwcmludGluZyBvZiB0aGUgJ2J1ZmZlcmluZy4uLicgb3V0cHV0IHRvIGF2b2lkIHB1dHRpbmcgYSBcciBpbiBhIHRyYW5zbGF0ZWFibGUgc3RyaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSB0aGUgcHJpbnRpbmcgb2YgdGhlICdidWZmZXJpbmcuLi4nIG91dHB1dCB0byBhdm9pZCBwdXR0aW5nCgkgIGEgXHIgaW4gYSB0cmFuc2xhdGVhYmxlIHN0cmluZyAoZmxhZ2dlZCBieSB0aGUgVFApLgoKMjAwOC0xMC0xMCAxNTozODowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHhtbC5jOiBDbGFyaWZ5IHRoYXQgdGhlIHNhdmVfdGh5c2VsZigpIGFuZCByZXN0b3JlX3RoeXNlbGYoKSB2aXJ0dWFsIGZ1bmN0aW9ucyBvZiBHc3RPYmplY3QgbmVlZCB0byBiZSBvdmVycmlkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgQ2xhcmlmeSB0aGF0IHRoZSBzYXZlX3RoeXNlbGYoKSBhbmQgcmVzdG9yZV90aHlzZWxmKCkgdmlydHVhbAoJICBmdW5jdGlvbnMgb2YgR3N0T2JqZWN0IG5lZWQgdG8gYmUgb3ZlcnJpZGVuLCBub3QKCSAgZ3N0X29iamVjdF8oc2F2ZXxyZXN0b3JlKV90aHlzZWxmKCkgd2hpY2ggaXMgaW1wb3NzaWJsZS4KCSAgRml4ZXMgYnVnICM1NTU3MDAuCgoyMDA4LTEwLTEwIDE1OjI3OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgYSBwYXRjaCBmcm9tIDIxIG1vbnRocyBhZ28gdGhhdCBicm9rZSBjYXBzIG5lZ290aWF0aW9uIGluIHB1bGwgbW9kZS4gQmFzaWNhbGx5LCBoYXZpbmcgYSBidWZmZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIFJldmVydCBhIHBhdGNoIGZyb20gMjEgbW9udGhzIGFnbyB0aGF0IGJyb2tlIGNhcHMgbmVnb3RpYXRpb24gaW4gcHVsbAoJICBtb2RlLiBCYXNpY2FsbHksIGhhdmluZyBhIGJ1ZmZlciBwYXNzIG92ZXIgYSBwYWQgd2lsbCB0cmlnZ2VyIHRoZQoJICBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gY2FwcyBjaGFuZ2UsIGp1c3QgbGlrZSBpbiBwdXNoIG1vZGUuCgoyMDA4LTEwLTEwIDE1OjEyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB0aGUgZG9jcyBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBVcGRhdGUgdGhlIGRvY3Mgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJZiB3ZSBwdWxsIGEgYnVmZmVyIHdpdGggbm9uLXRyaXZpYWwgY2Fwcywgc3VnZ2VzdCB0aG9zZSBjYXBzIHdpdGggdGhlCgkgIG1heCBwcm9iYWJpbGl0eS4KCjIwMDgtMTAtMTAgMTQ6MzE6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgYW5vdGhlciBsaW1pdGF0aW9uIG9mIHBhZC1ibG9ja2luZyB3aXRoIHNlZ21lbnQgc2Vla3Mgbm90IHB1c2hpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFub3RoZXIgbGltaXRhdGlvbiBvZiBwYWQtYmxvY2tpbmcgd2l0aCBzZWdtZW50IHNlZWtzIG5vdCBwdXNoaW5nCgkgIEVPUyBldmVudHMuCgoyMDA4LTEwLTEwIDEzOjI0OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoKMjAwOC0xMC0xMCAxMDozODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGhlIG1lc3NhZ2Ugc3JjIGNhbiBiZSBOVUxMLCBkb24ndCB0cnkgdG8gcHJpbnQgdGhlIG9iamVjdCBuYW1lcyBpbiB0aGF0IGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBUaGUgbWVzc2FnZSBzcmMgY2FuIGJlIE5VTEwsIGRvbid0IHRyeSB0byBwcmludCB0aGUgb2JqZWN0IG5hbWVzIGluIHRoYXQKCSAgY2FzZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIEZpeCB0aGUgdGVzdCwgcHVsbCBiYXNlZCBzaW5rcyBnbyBBU1lOQyB0byBQQVVTRUQsIGp1c3QgbGlrZSBvdGhlcgoJICBzY2hlZHVsaW5nIG1vZGVzLgoKMjAwOC0xMC0xMCAxMDowMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X2Jsb2Nrc2l6ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGJsb2Nrc2l6ZSBwcm9wZXJ0eSBhbmQgbWV0aG9kcyB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgZGF0YQoJICB0byBwdWxsLgoJICBOZWdvdGlhdGUgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgdXBzdHJlYW0gaW4gcHVsbCBtb2RlIHNvIHRoYXQgdGhleSBjYW4KCSAgbmVnb3RpYXRlIHRoZW1zZWx2ZXMuCgkgIFdoZW4gd2Ugb3BlcmF0ZSBpbiBwdWxsIG1vZGUsIHdlIG9ubHkgYWNjZXB0IHRoZSBjYXBzIHRoYXQgd2UKCSAgbmVnb3RpYXRlZC4KCSAgTWFrZSB0aGUgc2luayBnbyBBU1lOQyB0byBQQVVTRUQsIGxpa2UgYWxsIG90aGVyIHNpbmtzLgoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX3NldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpibG9ja3NpemUKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKSwgKGdzdF9iYXNlX3NyY19nZXRfYmxvY2tzaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKSwgKGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCB0eXBlY2hlY2tpbmcgaW4gcHVibGljIEFQSSBmdW5jdGlvbnMuCgkgIEFkZCBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGJsb2Nrc2l6ZSBpbiBzdWJjbGFzc2VzLgoJICBBUEk6IEdzdEJhc2VTcmM6OmdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU3JjOjpnc3RfYmFzZV9zcmNfZ2V0X2Jsb2Nrc2l6ZSgpCgoyMDA4LTEwLTEwIDA5OjExOjEwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAocHJvYmVfZG9fbm90aGluZyksIChkYXRhX3Byb2JlKSwKCSAgKGJ1ZmZlcl9wcm9iZSksIChldmVudF9wcm9iZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMKCSAgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgoyMDA4LTEwLTA4IDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB0cnlpbmcgdG8gZmx1c2ggdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYnVzLgoKMjAwOC0xMC0wOCAxNDoyMToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRm9yd2FyZCBMQVRFTkNZIGV2ZW50cyB1cHN0cmVhbXMgc28gdGhhdCBlbGVtZW50cyBrbm93IGFib3V0IHRoZSB0b3RhbCBwaXBlbGluZSBsYXRlbmN5Li4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBGb3J3YXJkIExBVEVOQ1kgZXZlbnRzIHVwc3RyZWFtcyBzbyB0aGF0IGVsZW1lbnRzIGtub3cgYWJvdXQgdGhlIHRvdGFsCgkgIHBpcGVsaW5lIGxhdGVuY3kuIEZpeGVzICM1NTUzMDcuCgoyMDA4LTEwLTA4IDExOjIwOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWxsb3cgdGhyb3VnaCBxdWVyaWVzIHdoZW4gd2UgZG9uJ3Qga25vdyBob3cgYXMgb3RoZXJ3aXNlIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEFsbG93IHRocm91Z2ggcXVlcmllcyB3aGVuIHdlIGRvbid0IGtub3cgaG93CgkgIHRvIGFkanVzdCB0aGVtIChub3QgVElNRSBvciBCWVRFUyksIGFzIG90aGVyd2lzZSBpdCdzCgkgIG5vdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBvcmRlcgoJICB0byBzZWVrIGluIG90aGVyIGZvcm1hdHMgYXQgYWxsLgoKMjAwOC0xMC0wOCAxMToxMjoxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwOC0xMC0wOCAxMToxMToyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUGxhY2F0ZSBkb2MgcGVuZGFudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFBsYWNhdGUgZG9jIHBlbmRhbnRzLgoKMjAwOC0xMC0wOCAxMDozOToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgoyMDA4LTEwLTA4IDEwOjE5OjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogRml4IHVuaW50ZW5kZWQgQVBJIHJlbW92YWw6IHJlLWFkZCBHU1RfR0hPU1RfUEFEX0NBU1QgdG8gdGhlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmggKEdTVF9HSE9TVF9QQURfQ0FTVCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKEdTVF9HSE9TVF9QQURfQ0FTVCk6IEZpeCB1bmludGVuZGVkIEFQSQoJICByZW1vdmFsOiByZS1hZGQgR1NUX0dIT1NUX1BBRF9DQVNUIHRvIHRoZSBoZWFkZXIuCgoyMDA4LTEwLTA4IDEwOjEyOjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICAoR3N0R2hvc3RQYWRDbGFzcyk6IFB1YmxpY2FsbHkgZXhwb3NlIHRoZXNlIHN0cnVjdHVyZXMgc28gYXMgdG8KCSAgYWxsb3cgZWFzeSBzdWJjbGFzc2luZyBmcm9tIEMuIEhpZGUgdGhlIG1lbWJlciBkYXRhIGJlaGluZCBhCgkgIHByaXZhdGUgb3BhcXVlIGRhdGEgcG9pbnRlci4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRhcHQgdG8gc3RvcmUgaW5zdGFuY2UgZGF0YSBpbiB0aGUgdHlwZQoJICBpbnN0YW5jZSdzIHByaXZhdGUgZGF0YSByZWdpb24sIG5vdCBpbiB0aGUgcHVibGljIHN0cnVjdC4KCjIwMDgtMTAtMDggMTA6MDc6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiB3ZSBjYW4ndCBnZXQgYSBjYWNoZSBmaWxlIGRvbid0IHRyeSB0byBzYXZlIHNvbWV0aGluZyB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgSWYgd2UgY2FuJ3QgZ2V0IGEgY2FjaGUgZmlsZSBkb24ndCB0cnkgdG8gc2F2ZSBzb21ldGhpbmcgdG8gaXQuCgkgIERlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVycyB1c3VhbGx5IGlzbid0IGEgZ29vZCBpZGVhLgoKMjAwOC0xMC0wOCAwODo1NDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogSWYgd2UgZ290IGEgdGVtcGxhdGUgdmlhIGdfb2JqZWN0X2dldCgpLCBiZSBzdXJlIHRvIHVucmVmIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBJZiB3ZSBnb3QgYQoJICB0ZW1wbGF0ZSB2aWEgZ19vYmplY3RfZ2V0KCksIGJlIHN1cmUgdG8gdW5yZWYgaXQuCgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IEZpeCBpbmNvcnJlY3QgZG9jLgoKMjAwOC0xMC0wNyAxNToxMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBTcGFyYyBBQkkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSAgQWRkIFNwYXJjIEFCSSBjaGVja3MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2FzdCBzaWduZWQgaW50ZWdlciB0byB1bnNpZ25lZCB0byBhdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTEwLTA3IDEyOjI2OjQwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogVXNlIG5ldyBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUpOgoJICBVc2UgbmV3IEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIG1hY3Jvcy4KCjIwMDgtMTAtMDcgMTI6MDA6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFsd2F5cyB1c2UgdGhlIHVuYWxpZ25lZCB2YXJpYW50cyBvZiBHU1RfUkVBRF9VSU5UKiBhbmQgR1NUX1dSSVRFX1VJTlQqIGFzIGl0J3MgdG9vIGVhc3kgdG8gYnJlYWsgdGhlIElTTyBDIHN0cmljdCBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBbHdheXMgdXNlIHRoZSB1bmFsaWduZWQgdmFyaWFudHMgb2YgR1NUX1JFQURfVUlOVCogYW5kIEdTVF9XUklURV9VSU5UKgoJICBhcyBpdCdzIHRvbyBlYXN5IHRvIGJyZWFrIHRoZSBJU08gQyBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgd2l0aCBzaW1wbGUKCSAgY2FzdHMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBhbmQgdGhpcyB3b3VsZCBpbnRyb2R1Y2UgaGFyZCB0byBkZWJ1ZwoJICBidWdzLiBGaXhlcyBidWcgIzU0NTcxNC4KCSAgQVBJOiBBZGQgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgYW5kIEdTVF9XUklURV9VSU5UMjRfKExFfEJFKS4KCjIwMDgtMTAtMDcgMDY6NTY6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgJ1NpbmNlJyBiaXRzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6IChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6CgkgIEFkZCAnU2luY2UnIGJpdHMgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBBUEkuCgoyMDA4LTEwLTA2IDIxOjUyOjU3ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3VtZW50YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3VtZW50YXRpb24KCjIwMDgtMTAtMDYgMTg6MDM6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nLCBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZywgZG9oCgoyMDA4LTEwLTA2IDE4OjAxOjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogTmV3IEFQSSwgYSBmcmVlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gdGhlIG1hbGxvY19kYXRhIHRvIGZyZWUgaXQuIEIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IE5ldyBBUEksIGEgZnJlZSBmdW5jdGlvbgoJICB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWxsb2NfZGF0YSB0byBmcmVlIGl0LiBCYXNpY2FsbHkgYSB3YXkKCSAgdG8gYXZvaWQgc3ViY2xhc3Npbmcgd2hlbiBhbGwgeW91IG5lZWQgaXMgYSBkaWZmZXJlbnQgZnJlZQoJICBmdW5jdGlvbiwgaS5lLiBmcmVlKCkgaW5zdGVhZCBvZiBnX2ZyZWUoKS4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZmluYWxpemUpOiBGcmVlIG1hbGxvY19kYXRhIHZpYQoJICBjYWxsaW5nIHRoZSBmcmVlIGZ1bmN0aW9uLgoJICAoZ3N0X2J1ZmZlcl9pbml0KTogSW5pdGlhbGl6ZSB0aGUgZnJlZSBmdW5jdGlvbiB0byBnX2ZyZWUuCgoyMDA4LTEwLTA2IDE3OjU3OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogTmV3IGZ1bmN0aW9uLCBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogTmV3IGZ1bmN0aW9uLAoJICBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlCgkgIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2VycyBvZiBHc3RHaG9zdFBhZC4gRml4ZXMgIzUzOTEwOC4KCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOiBVc2UgdGhlIG5ldyBjb25zdHJ1Y3Rvci4KCjIwMDgtMTAtMDYgMTY6MTU6MDIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YmluLmM6IEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUKCSAgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX3VubGluayksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBTb21lIGNvZGUgY2xlYW51cHMsIHVzZSBtYWNyb3MgdG8gY2hlY2sgcGFkIGRpcmVjdGlvbi4KCSAgRG9uJ3QgbmVlZCB0byB0YWtlIHRoZSBsb2NrIG9uIHRoZSBwYWQgZGlyZWN0aW9uLgoJICBQb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugd2hlbiBwYWRzIGFyZSBsaW5rZWQvdW5saW5rZWQuCgkgIENoYW5nZSBzb21lIGNoZWNrcyBpbnRvIF9yZXR1cm5faWZfZmFpbCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKHRlc3RfbGlua19zdHJ1Y3R1cmVfY2hhbmdlX3N0YXRlX2NoYW5nZWRfc3luY19jYiksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciBwYWQgbGluay91bmxpbmtlIHJlc3luYyBkdXJpbmcgYSBzdGF0ZSBjaGFuZ2UuCgkgIEZpeGVzICM1MTAzNTQuCgoyMDA4LTEwLTA2IDE1OjMxOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wbGVtZW50IFNUUlVDVFVSRV9DSEFOR0VEIG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyB3aWxsIGJlIHVzZWQgdG8gc2lnbmFsIHRoZSBwYXJlbnQgYmluIG9mIGxpbmsvdW5saW5rIG9wZXJhdGlvbnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdHJ1Y3R1cmVfY2hhbmdlKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEltcGxlbWVudCBTVFJVQ1RVUkVfQ0hBTkdFRCBtZXNzYWdlcy4gVGhlc2UgbWVzc2FnZXMgd2lsbCBiZSB1c2VkIHRvCgkgIHNpZ25hbCB0aGUgcGFyZW50IGJpbiBvZiBsaW5rL3VubGluayBvcGVyYXRpb25zIHRoYXQgY291bGQgcmVxdWlyZSBhCgkgIHJlc3luYyB3aGVuIGRvaW5nIGEgc3RhdGUgY2hhbmdlLiBTZWUgIyM1MTAzNTQuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3N0cnVjdHVyZV9jaGFuZ2UoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UoKQoKMjAwOC0xMC0wNiAxNToyMToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWFyay4qOiBBZGQgc29tZSBtb3JlIHF1YXJrcyBmb3IgbmV3IG1lc3NhZ2UuIFNlZSAjNTEwMzU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgZm9yIG5ldyBtZXNzYWdlLiBTZWUgIzUxMDM1NC4KCjIwMDgtMTAtMDYgMTI6NTc6MzkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBBUEkgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIEFQSSB0YWcKCjIwMDgtMTAtMDYgMTI6NDE6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFkZCBiaXQgcmVhZGVyIGFuZCBieXRlIHJlYWRlciBjbGFzc2VzLCBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYW4gZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZS4gRml4ZXMgYnVnICM1NTM1NTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6IChnc3RfYml0X3JlYWRlcl9uZXcpLAoJICAoZ3N0X2JpdF9yZWFkZXJfbmV3X2Zyb21fYnVmZmVyKSwgKGdzdF9iaXRfcmVhZGVyX2ZyZWUpLAoJICAoZ3N0X2JpdF9yZWFkZXJfaW5pdCksIChnc3RfYml0X3JlYWRlcl9pbml0X2Zyb21fYnVmZmVyKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3NldF9wb3MpLCAoZ3N0X2JpdF9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYml0X3JlYWRlcl9nZXRfcmVtYWluaW5nKSwgKGdzdF9iaXRfcmVhZGVyX3NraXApLAoJICAoZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoR0RPVUJMRV9TV0FQX0xFX0JFKSwKCSAgKEdGTE9BVF9TV0FQX0xFX0JFKSwgKGdzdF9ieXRlX3JlYWRlcl9uZXcpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX25ld19mcm9tX2J1ZmZlciksIChnc3RfYnl0ZV9yZWFkZXJfZnJlZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfaW5pdCksIChnc3RfYnl0ZV9yZWFkZXJfaW5pdF9mcm9tX2J1ZmZlciksCgkgIChnc3RfYnl0ZV9yZWFkZXJfc2V0X3BvcyksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZyksIChnc3RfYnl0ZV9yZWFkZXJfc2tpcCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ4KSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50OCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50OCksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQ4KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2JpdF9yZWFkZXJfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3N1aXRlKToKCSAgQWRkIGJpdCByZWFkZXIgYW5kIGJ5dGUgcmVhZGVyIGNsYXNzZXMsIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uCgkgIGFuZCBhbiBleHRlbnNpdmUgdW5pdCB0ZXN0IHN1aXRlLiBGaXhlcyBidWcgIzU1MzU1NC4KCjIwMDgtMTAtMDYgMDg6NTg6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUgY2hhbmdlcy4gRml4ZXMgIzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUKCSAgY2hhbmdlcy4gRml4ZXMgIzU1Mzg3NC4KCjIwMDgtMTAtMDYgMDg6NDU6NDIgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzbWFsbCByZWZvdW50IGxlYWsgaW4gY2FwcyBjb21wYXRpYmlsaXR5IGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgT3JpZ2luYWwgcGF0Y2ggYnkgOiBTaW1vbiBEZXNjYXJpZXMKCSAgRml4IHNtYWxsIHJlZm91bnQgbGVhayBpbiBjYXBzIGNvbXBhdGliaWxpdHkgY2hlY2suCgkgIEZpeGVzICM1NTE2NzYuCgoyMDA4LTEwLTA2IDA3OjMwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDogRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBDaGFuZ2UgMC45IHRvIDAuMTAgaGVyZS4KCjIwMDgtMTAtMDYgMDc6MTM6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDogQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSAgQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIEZpeGVzICM1NTI0NDguIEFsc28gZml4IHNhbXBsZSBjb2RlIGZvciBzZWVraW5nIGFuZCBkbyBtb3JlIDAuOC0+MC4xMAoJICB1cGRhdGVzLgoKMjAwOC0xMC0wNSAxMDowMTo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMS4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIxLjEKCj09PSByZWxlYXNlIDAuMTAuMjEgPT09CgoyMDA4LTEwLTAyIDIzOjU5OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMQoKMjAwOC0xMC0wMiAyMjo0MjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTA5LTI4IDIyOjQ5OjU2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4yMC40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yMC40IHByZS1yZWxlYXNlCgoyMDA4LTA5LTI4IDIxOjE5OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhc3NlcnRpb24gaW4gYmFzZXRyYW5zZm9ybSB3aGVuIHRoZSBzdWJjbGFzcyBjaG9vc2VzIG5vdCB0byBhbGxvY2F0ZSBhIGJ1ZmZlciBpbiBwcmVwYXJlX2J1ZmZlcigpLCBhbmQgbWFrZSBjYXBzZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgRml4IGFzc2VydGlvbiBpbiBiYXNldHJhbnNmb3JtIHdoZW4gdGhlIHN1YmNsYXNzIGNob29zZXMgbm90IHRvCgkgIGFsbG9jYXRlIGEgYnVmZmVyIGluIHByZXBhcmVfYnVmZmVyKCksIGFuZCBtYWtlIGNhcHNmaWx0ZXIgZXJyb3Igb3V0CgkgIGNsZWFubHkgaWYgcmVxdWVzdGVkIHRvIGFwcGx5IGNhcHMgdGhhdCBkb24ndCBjb21wbGV0ZWx5IHNwZWNpZnkgdGhlCgkgIGJ1ZmZlci4gRml4ZXMgIzU1MTUwOQoKMjAwOC0wOS0yNCAxNTowMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlIHN1YmNsYXNzIHBlcmZvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlCgkgIHN1YmNsYXNzIHBlcmZvcm1zIGEgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIHRoZSBzcmNwYWQuIFNlZSAjNTQ4NzY0LgoKMjAwOC0wOS0xNiAxNTozNTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFsc28gY29tbWl0IENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWxzbyBjb21taXQgQ2hhbmdlTG9nCgoyMDA4LTA5LTE2IDE1OjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEdhaC4gQ29tbWl0IHByZS1yZWxlYXNlIGluZm8gdGhhdCBzaG91bGQgaGF2ZSBnb25lIGluIGxhc3Qgd2VlayBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2FoLiBDb21taXQgcHJlLXJlbGVhc2UgaW5mbyB0aGF0IHNob3VsZCBoYXZlIGdvbmUgaW4gbGFzdCB3ZWVrIGFscmVhZHkuCgkgIDIwMDgtMDktMTAgIEphbiBTY2htaWR0ICA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjAuMiBwcmUtcmVsZWFzZQoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vaWQucG86CgkgICogcG8vcHRfQlIucG86CgkgIE5ldyB0cmFuc2xhdGlvbnMuCgoyMDA4LTA5LTE1IDE1OjE4OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IERvIG5vdCBwcm9iZSBhdmFpbGFiaWxpdHkgb2YgY2hlY2sgdW5pdCB0ZXN0IGxpYnJhcnkgd2hlbiBjcm9zcyBjb21waWxpbmcsIGFzIHRlc3Qgd291bGQgbm90IHdvcmsgYW55d2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEbyBub3QgcHJvYmUgYXZhaWxhYmlsaXR5IG9mIGNoZWNrIHVuaXQgdGVzdCBsaWJyYXJ5IHdoZW4gY3Jvc3MKCSAgY29tcGlsaW5nLCBhcyB0ZXN0IHdvdWxkIG5vdCB3b3JrIGFueXdheS4gQWxzbyBjbGVhbnVwIHZlcmJvc2Ugb3V0cHV0CgkgIG9mIHRoZSBjaGVjayB0ZXN0LiBGaXhlcyAjNTUxOTUyLgoKMjAwOC0wOS0xNCAyMjowMTozMCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEF2b2lkIGxlYWtpbmcgdGhlIHBhcmVudCByZWYgd2hlbiB3ZSBmYWlsIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGUgZWxlbWVudCB1c2luZyBnc3RfZWxlbWVudF9zeW5jXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgQXZvaWQgbGVha2luZyB0aGUgcGFyZW50IHJlZiB3aGVuIHdlIGZhaWwgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZQoJICBlbGVtZW50IHVzaW5nIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoKS4gRml4ZXMgIzU1MTk3OC4KCjIwMDgtMDktMTEgMTY6NTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDogUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOjoKCSAgUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgoyMDA4LTA5LTA5IDE4OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOiBBZGQgR1NUX0RBVEFESVIsIGhhcmQtY29kZSBjcHUgdG8geDg2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIEFkZCBHU1RfREFUQURJUiwgaGFyZC1jb2RlIGNwdSB0byB4ODYuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFNwYWNlcyB0byB0YWJzLgoKMjAwOC0wOS0wMyAwNTo1Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGdlbyB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyBnZW8gdGFncy4KCjIwMDgtMDktMDIgMjA6MDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBhY3R1YWwgdGFnIG5hbWUgZGVmaW5lIGFmdGVyIHJlbmFtaW5nIGZyb20gYWx0aXR1ZGUgdG8gZWxldmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggYWN0dWFsIHRhZyBuYW1lIGRlZmluZSBhZnRlciByZW5hbWluZyBmcm9tIGFsdGl0dWRlIHRvIGVsZXZhdGlvbi4KCjIwMDgtMDktMDEgMTQ6MDU6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBmYWxsYmFjayB3aGVuIGNhbGxpbmcgdGhlIGRlcHJlY2F0ZWQgZnVuY3Rpb24gb24gYW4gZWxlbWVudCB0aGF0IGltcGxlbWVudHMgdGhlIG5ldyBpbnRlcm5hbF9saW5rIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoYWRkX3VucmVmX3BhZF90b19saXN0KSwKCSAgKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBBZGQgZmFsbGJhY2sgd2hlbiBjYWxsaW5nIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIG9uIGFuIGVsZW1lbnQgdGhhdAoJICBpbXBsZW1lbnRzIHRoZSBuZXcgaW50ZXJuYWxfbGluayBoYW5kbGVyLgoKMjAwOC0wOS0wMSAxMzozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdzIGZvciBnZW8gbG9jYXRpb24gYW5kIGNsYXJpZnkgcHVycG9zZSBvZiBleGlzdGluZyBsb2NhdGlvbiB0YWcuIEZpeGVzICM0ODExNjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFkZCBuZXcgdGFncyBmb3IgZ2VvIGxvY2F0aW9uIGFuZCBjbGFyaWZ5IHB1cnBvc2Ugb2YgZXhpc3RpbmcgbG9jYXRpb24KCSAgdGFnLiBGaXhlcyAjNDgxMTY5CgoyMDA4LTA5LTAxIDExOjI3OjQ1ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgdGhyZWFkLXNhZmUgaW50ZXJuYWwgbGlua3MgaXRlcmF0b3IuIEZpeGVzICM1NDk1MDQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZGlzcGF0Y2hlcik6CgkgIFVzZSB0aHJlYWQtc2FmZSBpbnRlcm5hbCBsaW5rcyBpdGVyYXRvci4gRml4ZXMgIzU0OTUwNC4KCjIwMDgtMDktMDEgMTA6NDI6MDQgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4gZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksCgkgIChnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKSwKCSAgKGludF9saW5rX2l0ZXJfZGF0YV9mcmVlKSwgKGl0ZXJhdGVfcGFkKSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyksIChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4KCSAgZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zLgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKCkKCSAgQVBJOkdzdFBhZDo6R3N0UGFkSXRlckludExpbmtGdW5jdGlvbgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKQoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCgpCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MpLAoJICAoZ3N0X3Byb3h5X3BhZF9pbml0KToKCSAgSW1wbGVtZW50IHRocmVhZHNhZmUgaW50ZXJuYWwgbGlua3MuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIGludGVybmFsIGxpbmtzIG9uIHRlZS4gU2VlICM1NDk1MDQuCgoyMDA4LTA4LTMwIDEyOjU3OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGxpYnMvdHJhbnNmb3JtMSB0ZXN0IHJlcXVpcmVzIGxpYnMvdGVzdF90cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGlicy90cmFuc2Zvcm0xIHRlc3QgcmVxdWlyZXMgbGlicy90ZXN0X3RyYW5zZm9ybS5jCgoyMDA4LTA4LTMwIDEyOjA3OjQxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEaWUgZXZpbCBkZWFkbG9jaywgZGllICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIERpZSBldmlsIGRlYWRsb2NrLCBkaWUgIQoKMjAwOC0wOC0zMCAxMTo1NTo1OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAobmFtZV9pc192YWxpZCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzCgkgIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgc3RhdGVkLgoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoKMjAwOC0wOC0yOSAxNzo1ODoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGl0ZXJhdG9yIG9iamVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlCgkgIGl0ZXJhdG9yIG9iamVjdHMuCgoyMDA4LTA4LTI5IDE2OjEwOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lCgkgIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgoyMDA4LTA4LTI5IDE0OjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzCgkgIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCjIwMDgtMDgtMjkgMDA6MzQ6NTggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFJldmVydCBsYXN0IGNoYW5nZSwgc2luY2UgaXQgYnJlYWtzIGEgZmV3IHBsdWdpbnMsIGZmbXBlZywgYWxhdywgYW5kIG11bGF3LiAgQ29kZSBpcyBjb3JyZWN0LCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHNpbmNlIGl0IGJyZWFrcwoJICBhIGZldyBwbHVnaW5zLCBmZm1wZWcsIGFsYXcsIGFuZCBtdWxhdy4gIENvZGUgaXMgY29ycmVjdCwKCSAgYnV0IHNob3VsZG4ndCBiZSBlbmFibGVkIHVudGlsIHdlJ3ZlIHJlbGVhc2VkIGZpeGVkIHZlcnNpb25zCgkgIG9mIC1nb29kIGFuZCAtZmZtcGVnLgoKMjAwOC0wOC0yOCAyMDoxMjo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBQdXQgdGhlIGdzdF9vYmplY3RfZ2V0X25hbWUoKSBiYWNrIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIFB1dCB0aGUgZ3N0X29iamVjdF9nZXRfbmFtZSgpIGJhY2sgaW4uCgoyMDA4LTA4LTI4IDEyOjMyOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogVGhlIG9sZCBiZWhhdmlvdXIgd2FzIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNhcHMuIEFzIHdlIG5vdyBjYWxsIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIFRoZSBvbGQgYmVoYXZpb3VyIHdhcyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgdGFrZXMgb3duZXJzaGlwIG9mCgkgIHRoZSBjYXBzLiBBcyB3ZSBub3cgY2FsbCBnX29iamVjdF9uZXcoKSB3aGljaCBjYWxscyBnX29iamVjdF9zZXQoKSBhbmQKCSAgd2hpY2ggY29waWVzIHRoZSBjYXBzLCB3ZSBoYXZlIHRvIHVucmVmIHRoZW0gdG8gbm90IGxlYWsgdGhlbS4gRml4ZXMKCSAgbWFrZSB2YWxncmlkIGZvciBtZS4KCjIwMDgtMDgtMjggMTA6NDU6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgoyMDA4LTA4LTI3IDA3OjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgYWxzbyBpbmNsdWRlIE9iamVjdFR5cGUgaW4gZ3N0X29iamVjdF9nZXRfcGF0aF9zdHJpbmcoKS4gTWFrZXMgZ3N0LWxhdW5jaCAtdiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IGFsc28gaW5jbHVkZSBPYmplY3RUeXBlIGluCgkgIGdzdF9vYmplY3RfZ2V0X3BhdGhfc3RyaW5nKCkuIE1ha2VzIGdzdC1sYXVuY2ggLXYgYml0IG1vcmUgdXNlZnVsLgoKMjAwOC0wOC0yNyAwMzowNDoyMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IFNhbWUsIGdzdF9xdWVyeV9uZXdfY29udmVydCgpLgoKMjAwOC0wOC0yNyAwMjo1OTo1OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgoyMDA4LTA4LTI1IDExOjA2OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gbWV0aG9kLgoKMjAwOC0wOC0yNSAxMTowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbiBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbgoJICBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudCBzdGF0ZS4gVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvCgkgIGxvY2sgYW4gZWxlbWVudCdzIHN0YXRlIGFuZCB0aGVuIGNoYW5nZSBpdHMgc3RhdGUgd2l0aG91dCByYWNlcy4KCjIwMDgtMDgtMjUgMTA6NTI6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdoZW4gYW4gZWxlbWVudCBpcyBpbiB0aGUgbG9ja2VkIHN0YXRlIHdlIHN0aWxsIHdhbnQgdG8gdXBkYXRlIHRoZSBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBXaGVuIGFuIGVsZW1lbnQgaXMgaW4gdGhlIGxvY2tlZCBzdGF0ZSB3ZSBzdGlsbCB3YW50IHRvIHVwZGF0ZSB0aGUKCSAgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoKMjAwOC0wOC0yMSAxMToxNzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgdGhlIHJlc3VsdCBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSBlbGVtZW50IGFsd2F5cyBhY2NlcHRlZCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIFVzZSB0aGUgcmVzdWx0IGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIGVsZW1lbnQKCSAgYWx3YXlzIGFjY2VwdGVkIHRoZSBjYXBzIGNvbXB1dGVkIGJ5IHRoZSBkZWZhdWx0IG5lZ290aWF0ZSBmdW5jdGlvbi4KCjIwMDgtMDgtMjAgMTA6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXBsZW1lbnQgbWV0aG9kIGZvciByZWNvbmZpZ3VyaW5nIGJhc2V0cmFuc2Zvcm0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEltcGxlbWVudCBtZXRob2QgZm9yIHJlY29uZmlndXJpbmcgYmFzZXRyYW5zZm9ybS4KCSAgQVBJOiBHc3RCYXNlVHJhbnNmb3JtOjpnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUoKQoKMjAwOC0wOC0yMCAwNzoyMjoxMSArMDAwMCAgTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYSB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYQoJICB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3VhZ2UgYmluZGluZ3Mgbm90IHRvIHdyYXAgaXQuCgkgIEZpeGVzIEJ1ZyAjNTMzODU2LgoJICBBbHNvIGZpeCBmaWxlIGNvbW1lbnQuCgoyMDA4LTA4LTIwIDA3OjAzOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCjIwMDgtMDgtMTkgMTc6MjM6MTggKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVzZSA2NCBiaXQgdmFyaWFudHMgb2Ygc3RhdCBmdW5jdGlvbnMgb24gd2luMzIsIHRvIGVuYWJsZSBzdXBwb3J0IG9mIGxhcmdlIGZpbGVzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgNjQgYml0IHZhcmlhbnRzIG9mIHN0YXQgZnVuY3Rpb25zIG9uIHdpbjMyLCB0byBlbmFibGUgc3VwcG9ydAoJICBvZiBsYXJnZSBmaWxlcyB0aGVyZS4KCSAgRml4ZXMgIzU0NzI3Ny4KCjIwMDgtMDgtMTkgMTY6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHRoZSBmbHVzaGluZyBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiB0aGUgZmx1c2hpbmcgc3RhdGUuCgkgIEFsc28gcmVwb3J0IHRoZSBwb3NpdGlvbiB3aGVuIHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCBidXQgd2UKCSAgaGF2ZSBhIG5ld3NlZ21lbnQgZXZlbnQuIEZpeGVzICM1NDM0NDQuCgkgIEltcHJvdmUgdGhlIHB1bGwtYmFzZWQgbmVnb3RpYXRpb24gY29kZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBpbiBQQVVTRUQgYW5kCgkgIFBMQVlJTkcuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGUgdW5pdC10ZXN0LCB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBwb3NpdGlvbiBhcyBzb29uIGFzIHdlIHJlY2VpdmUgYQoJICBORVdTRUdNRU5UIGV2ZW50LgoKMjAwOC0wOC0xOSAwODo1MjowNSArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiB0aGUgc3ViY2xhc3MgZXZlbnQgaGFuZGxlciByZWxlYXNlcyB0aGUgUFJFUk9MTF9MT0NLLCB3ZSBjb3VsZCBiZSBpbiB0aGUgZmx1c2hpbmcgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphc29uIFpoYW8gPGUzNDIzYyBhdCBtb3Rvcm9sYSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCk6CgkgIFdoZW4gdGhlIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXIgcmVsZWFzZXMgdGhlIFBSRVJPTExfTE9DSywgd2UgY291bGQgYmUKCSAgaW4gdGhlIGZsdXNoaW5nIHN0YXRlIGFuZCB3ZSBoYXZlIHRvIGlnbm9yZSB0aGUgZXZlbnQuIEZpeGVzICM1NDgzOTQuCgoyMDA4LTA4LTE4IDExOjI4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBEb2N1bWVudCBHU1RfUkVHSVNUUllfVVBEQVRFIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9SRUdJU1RSWV9VUERBVEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA4LTA4LTE4IDA5OjU5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlCgkgIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlIHVzIGEgbmV3IG91dHB1dCBidWZmZXIsIGRpc2NhcmQgdGhhdCBidWZmZXIKCSAgYW5kIHJldXNlIHRoZSBpbnB1dCBidWZmZXIuCgoyMDA4LTA4LTE1IDE3OjAxOjA3ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzIHBlcmZvcm1pbmcgYSBwYWRfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hcyBhdCB0YW5kYmVyZyBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZmluYWxpemUpLCAoZ3N0X3RlZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9maW5kX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzCgkgIHBlcmZvcm1pbmcgYSBwYWRfYWxsb2Mgd2hlbiByZW1vdmluZyB0aGUgcGFkLiBGaXhlcyAjNTQ3ODM1LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoYnVmZmVyX2FsbG9jX2hhcm5lc3Nfc2V0dXApLAoJICAoYnVmZmVyX2FsbG9jX2hhcm5lc3NfdGVhcmRvd24pLCAoYXBwX3RocmVhZF9mdW5jKSwKCSAgKGZpbmFsX3NpbmtwYWRfYnVmZmVyYWxsb2MpLCAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHNodXRkb3duIHJhY2UuCgoyMDA4LTA4LTE0IDIwOjA1OjMzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBZGQgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGRvYwoKMjAwOC0wOC0xNCAxNjozNzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBHbyBvdmVyIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYWdhaW4gYW5kIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZW5kIHVwIGFsbG9jYXRpbmcgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEdvIG92ZXIgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBhZ2FpbiBhbmQgbWFrZSBzdXJlIHdlIGFsd2F5cyBlbmQgdXAKCSAgYWxsb2NhdGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBdm9pZCBkb2luZyBwYWQgYWxsb2Mgd2hlbiB3ZSBoYXZlIGEgcGVuZGluZyBzdWdnZXN0aW9uIGJlY2F1c2Ugd2UKCSAgY2Fubm90IHlldCBkZWFsIHdpdGggY2hhbmdpbmcgY2FwcyBpbiB0aGF0IGNhc2UuIEZpeGVzICM1NDc3MjgKCjIwMDgtMDgtMTQgMTQ6MjY6MjAgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQWRkIG9uZSBtb3JlIGltYWdlIHNob3dpbmcgZGlmZmVyZW50IHRpbWVzIHRvZ2V0aGVyIHdpdGggYSBkZXNjcmliaW5nIHBhcmFncmFwaC4gRml4ZXMgIzU0NzcyOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9jbG9ja3MucG5nOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWNsb2Nrcy5zdmc6CgkgIEFkZCBvbmUgbW9yZSBpbWFnZSBzaG93aW5nIGRpZmZlcmVudCB0aW1lcyB0b2dldGhlciB3aXRoIGEgZGVzY3JpYmluZwoJICBwYXJhZ3JhcGguIEZpeGVzICM1NDc3MjkuCgoyMDA4LTA4LTE0IDE0OjA0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgbmV3IG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IG1ldGhvZC4KCjIwMDgtMDgtMTQgMTM6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcgYnVmZmVyIGJlY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KToKCSAgRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcKCSAgYnVmZmVyIGJlY2F1c2Ugd2Ugc3RpbGwgbmVlZCBpdCBpbiBjYXNlIHdlIGNhbm5vdCBwcm9jZXNzIHRoZSBuZXcKCSAgYnVmZmVyLgoJICBXaGVuIGNvbnZlcnRpbmcgdGhlIHNpemUgb2YgdGhlIG5ldyBidWZmZXIgdG8gYW4gdXBzdHJlYW0gc2l6ZSwgYWN0dWFsbHkKCSAgdXNlIHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBidWZmZXIsIG5vdCBzb21lIG90aGVyIHJhbmRvbSB2YWx1ZS4KCSAgVXNlIGFuIGF0b21pYyBpbnQgdG8gc2lnbmFsIHRoYXQgYSBuZXcgdXBzdHJlYW0gY2FwcyBzdWdnZXN0aW9uIGlzCgkgIGF2YWlsYWJsZS4KCSAgV2hlbiB3ZSBjYW4gY29udmVydCB0aGUgY3VycmVudCBidWZmZXIgdG8gYSBuZXcgZm9ybWF0LCBjaGVjayBpZiB0aGUKCSAgYnVmZmVyIHNpemUgaXMgb2YgdGhlIGV4cGVjdGVkIHNpemUgYW5kIGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBvZiB0aGUKCSAgZXhwZWN0ZWQgc2l6ZSB3aGVuIHRoaXMgaXMgbm90IHRoZSBjYXNlLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICByZW1vdmUgaWZkZWZmZWQgY29kZSBmcm9tIHRoZSB1bml0IHRlc3QuCgoyMDA4LTA4LTEyIDE4OjQ4OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwa2djb25maWcvOiBSZW1vdmUgLWxnc3Rjb250cm9sLTAuMTAgd2hpY2ggbmV2ZXIgd29ya2VkIGFueXdheSBhcyB0aGUgbGliIGlzIGNhbGxlZCBnc3Rjb250cm9sbGVyLTAuMTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgUmVtb3ZlIC1sZ3N0Y29udHJvbC0wLjEwIHdoaWNoIG5ldmVyIHdvcmtlZCBhbnl3YXkgYXMgdGhlIGxpYiBpcwoJICBjYWxsZWQgZ3N0Y29udHJvbGxlci0wLjEwLgoKMjAwOC0wOC0xMiAwNjoyNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoKMjAwOC0wOC0xMiAwNjoxNjowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCBoZWFkaW5ncyBpbiBkb2NzIGFuZCBndGstZG9jIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGhlYWRpbmdzIGluIGRvY3MgYW5kIGd0ay1kb2Mgd2FybmluZ3MuCgoyMDA4LTA4LTExIDE5OjA0OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgdXNlIGdfbWtzdG1wKCkgb24gd2luMzIsIGl0J3MgdW5zYWZlIGlmIGdsaWIgaXMgdXNpbmcgYSBkaWZmZXJlbnQgbGliYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIERvbid0IHVzZSBnX21rc3RtcCgpIG9uIHdpbjMyLCBpdCdzIHVuc2FmZSBpZiBnbGliIGlzIHVzaW5nIGEgZGlmZmVyZW50CgkgIGxpYmMuCgkgIEZpeGVzICM1NDQ3NzYuCgoyMDA4LTA4LTExIDE1OjE0OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhICJtYXkgYmUgdXNlZCB1bml0aWFsaXplZCIgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRml4IGEgIm1heSBiZSB1c2VkIHVuaXRpYWxpemVkIiB3YXJuaW5nLgoKMjAwOC0wOC0xMSAwODowNjoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoKMjAwOC0wOC0xMSAwNzowNzo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6IFR1cm4gdGhvdWdodHMgYWJvdXQgSEFMIGludG8gYSBub3RlLXRhZy4gUmVtb3ZlIG1lbnRpb25pbmcgdGhhdCBpcyBvbmx5IHVzZWQgdG8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBUdXJuIHRob3VnaHRzIGFib3V0IEhBTCBpbnRvIGEgbm90ZS10YWcuIFJlbW92ZSBtZW50aW9uaW5nIHRoYXQgaXMKCSAgb25seSB1c2VkIHRvIGRpc2NvdmVyIGRldmljZXMuCgoyMDA4LTA4LTA3IDE1OjQ5OjAwICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA4LTA3IDEyOjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHN1YnNldCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCk6CgkgIEZpeCBzdWJzZXQgdGVzdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIHVuaXQgdGVzdCBzdWJzZXQgdGVzdHMgYW5kIGFkZCBhIHRlc3RjYXNlIGZvciB0aGUgc3Vic2V0IGZhaWx1cmUKCSAgY2FzZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBJbXByb3ZlIHN1YnRyYWN0aW9uIHVuaXQgdGVzdC4KCjIwMDgtMDgtMDcgMDc6MDE6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IFVubG9jaywgaW5zdGVhZCBvZiBsb2NraW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBVbmxvY2ssIGluc3RlYWQgb2YgbG9ja2luZyBhZ2Fpbi4KCjIwMDgtMDgtMDUgMTY6NTA6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IENsYXJpZnkgdGhlIGRvY3MgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIGEgYml0IG1vcmUuCgoyMDA4LTA4LTA1IDE1OjQyOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IERvbid0IGxlYWsgb2xkIHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgRG9uJ3QgbGVhayBvbGQgdGFnbGlzdC4KCjIwMDgtMDgtMDUgMTU6MDM6MjcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgIEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoCgkgIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIEZpeGVzICM1NDYzMjguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXguCgoyMDA4LTA4LTA1IDExOjEyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcyBuZWdvdGlhdGlvbiB1cHN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoY29weV9mdW5jKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcwoJICBuZWdvdGlhdGlvbiB1cHN0cmVhbS4KCjIwMDgtMDgtMDUgMTE6MTE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IGZ1bmN0aW9uOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uOgoJICBBUEk6IEdzdEJhc2VUcmFuc2Zvcm06OmdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2FuX3RyYW5zZm9ybSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJld3JpdGUgb2YgYmFzZXRyYW5zZm9ybSB0byBwZXJmb3JtIG5lZ290aWF0aW9uIG91dHNpZGUgb2YgdGhlCgkgIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbnMuICBGaXhlcyAjNTQ1ODUzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYnVmZmVyX2FsbG9jX2N0Mik6CgkgIFVwZGF0ZSB1bml0IHRlc3QuCgoyMDA4LTA4LTA1IDA1OjQ0OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6IE9ubHkgcnVuIHByZXNldCB0ZXN0cyB3aGVuICRIT01FIGlzIHdyaXRhYmxlLiBQcmVsaW1pbmFyeSBmaXggZm9yICM1NDU0MzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSAgT25seSBydW4gcHJlc2V0IHRlc3RzIHdoZW4gJEhPTUUgaXMgd3JpdGFibGUuIFByZWxpbWluYXJ5IGZpeCBmb3IKCSAgIzU0NTQzMy4KCjIwMDgtMDgtMDQgMTU6NDk6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgaW4gdGhlaXIgYnVzLiBXZSBuZWVkIHRvIGNoZWNrIGZvcgoJICBwZW5kaW5nIEFTWU5DIG1lc3NhZ2VzIGV2ZW4gd2hlbiB0aGUgYmluIGRvZXMgbm90IGhhdmUgQVNZTkMgY2hpbGRyZW4uCgkgIFdlIG5vdGUgZGV0ZWN0IHRoaXMgYmVoYXZpb3VyIGJlY2F1c2Ugd2Ugd2lsbCByZWNlaXZlIGFuIEFTWU5DIG1lc3NhZ2UKCSAgdGhhdCBpcyBvcmlnaW5hdGluZyBmcm9tIHRoZSBiaW4gaXRzZWxmLgoJICBGaXhlcyByYWNlcyB3aXRoIGRlY29kZWJpbjIgc3RhdGUgY2hhbmdlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgoyMDA4LTA4LTA0IDEzOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgRml4IHR5cG8uCgoyMDA4LTA4LTA0IDEyOjQ2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBcmdoLiBhY3R1YWxseSBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjb21taXR0aW5nLiBOb3cgYWRkcyBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIHRvIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQXJnaC4gYWN0dWFsbHkgc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY29tbWl0dGluZy4gTm93IGFkZHMKCSAgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSB0byBnc3RfdGFnX3JlZ2lzdGVyKCkuCgoyMDA4LTA4LTA0IDEyOjMwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUKCSAgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgbWV0aG9kIHRvIGFsbG93CgkgIHJldHJpdmluZyBhbGwga2V5d29yZHMgbWVyZ2VkIGluIG9uZSBsaXN0LgoKMjAwOC0wOC0wMSAxMTo1Nzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV2ZXJ0ICdhY2NpZGVudGlhbCcgY2hhbmdlIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHJlbW92YWwuIFdlIHN0aWxsIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGVzIGZpbGUgaW4gY29uZmlndXJlIC0tLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIFJldmVydCAnYWNjaWRlbnRpYWwnIGNoYW5nZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiByZW1vdmFsLiBXZSBzdGlsbAoJICBuZWVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlcyBmaWxlIGluIGNvbmZpZ3VyZSAtLWRpc2FibGUtbG9hZC1zYXZlLgoKMjAwOC0wOC0wMSAxMTozNDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdsaXN0IGl0ZW0gR1NUX1RBR19LRVlXT1JEUywgbmVlZGVkIGZvciAjNTIwNjk0IC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBZGQgbmV3IHRhZ2xpc3QgaXRlbSBHU1RfVEFHX0tFWVdPUkRTLCBuZWVkZWQgZm9yICM1MjA2OTQgLgoKMjAwOC0wOC0wMSAxMDowMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBBZGQgIm5hbWUtdGVtcGxhdGUiLCAiZGlyZWN0aW9uIiwgInByZXNlbmNlIiBhbmQgImNhcHMiIHByb3BlcnRpZXMsIHNvIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3NldF9wcm9wZXJ0eSksIChnc3RfcGFkX3RlbXBsYXRlX2dldF9wcm9wZXJ0eSk6CgkgIEFkZCAibmFtZS10ZW1wbGF0ZSIsICJkaXJlY3Rpb24iLCAicHJlc2VuY2UiIGFuZCAiY2FwcyIgcHJvcGVydGllcywKCSAgc28gdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgYXJvdW5kCgkgIGdfb2JqZWN0X25ldygpLCB3aGljaCBpcyBiZXR0ZXIgZm9yIGJpbmRpbmdzLiAoRml4ZXM6ICM1Mzk3NzIpCgoyMDA4LTA3LTMxIDE3OjE2OjUwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBEbyBub3QgdW5lc2NhcGUgYml0cyBvZiB0aGUgVVJJIGZvciBubyBhcHBhcmVudCByZWFzb24gYmVmb3JlIHBhc3NpbmcgdG8KCSAgdGhlIGVsZW1lbnQuIEZpeGVzICM1NDUzNTIuCgoyMDA4LTA3LTMxIDE1OjI0OjIxICswMDAwICBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CgoJICBnc3QvZ3N0LmM6IEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KCSAgKiBnc3QvZ3N0LmM6CgkgIEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoKMjAwOC0wNy0zMSAxNToyMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVtb3ZlIEdTVF9ESVNBQkxFXyhFTlVNVFlQRVN8SU5ERVh8VVJJKSBldmVyeXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X2luZGV4X2Z1bmMpOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2luZGV4KToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2luZGV4X2luZm8pLCAocHJpbnRfZWxlbWVudF9saXN0KSwKCSAgKHByaW50X3BsdWdpbl9mZWF0dXJlcyksIChwcmludF9lbGVtZW50X2ZlYXR1cmVzKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZXZlbnRfbWFza3MpLAoJICAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIFJlbW92ZSBHU1RfRElTQUJMRV8oRU5VTVRZUEVTfElOREVYfFVSSSkgZXZlcnl3aGVyZS4KCSAgRGlzYWJsaW5nIHRoZSBpbmRleGVycyBhbmQgVVJJIGhhbmRsZXIgY29kZSB3aWxsIG9ubHkgcmVkdWNlIHRoZQoJICByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5IGJ5IGEgdmVyeSBzbWFsbCBhbW91bnQgYnV0IG9uIHRoZSBvdGhlciBoYW5kCgkgIHJlcXVpcmVzIG11Y2ggbW9yZSBtYWludGFpbmNlIHdvcmsuIEFwYXJ0IGZyb20gdGhhdCBtYW55IHBsYWNlcyBvZgoJICBjb2RlIGFyZSBicm9rZW4gd2hlbiBkaXNhYmxpbmcgdGhlbS4KCSAgRGlzYWJsaW5nIHRoZSBlbnVtIHR5cGVzIGRvZXNuJ3QgcmVkdWNlIHRoZSByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5CgkgIGJ5IG1vcmUgdGhhbiBhIGZldyBieXRlcyBhbmQgbWFrZXMgaXQgaGFyZCB0byBmaXggYnVncyBsaWtlICM1Mzk3NzIsCgkgIGkuZS4gdXNlIHRoZSBlbnVtcyBhcyBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA4LTA3LTMxIDEzOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCjIwMDgtMDctMzEgMTI6NTA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBzaWxseSByZWR1bmRhbnQgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgUmVtb3ZlIHNpbGx5IHJlZHVuZGFudCBkZWJ1Zy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBDbGFyaWZ5IHRoZSBkb2NzIHJlZ2FyZGluZyBuZXcgY2FwcyByZWNlaXZlZCBmcm9tIHBhZF9hbGxvYy4KCjIwMDgtMDctMzEgMDk6NTU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfZ2V0X3Byb3BlcnR5KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9jYXBzKToKCSAgTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCjIwMDgtMDctMzEgMDg6Mzk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBVcGRhdGUgZG9jcy4KCjIwMDgtMDctMzEgMDg6Mzc6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCBhbmQgdXNlIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdGhlIHBvdGVudGlhbGx5IGxlc3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpOgoJICBBZGQgYW5kIHVzZSBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIHRoZQoJICBwb3RlbnRpYWxseSBsZXNzIG9wdGltaXplZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwOC0wNy0yOSAxNTozMjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzCgkgIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bnQsIHRoZXkncmUgbm90IHJlbGV2YW50IGhlcmUpCgoyMDA4LTA3LTI5IDE0OjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBSZXZlcnRpbmcgYXMgbm90IGV2ZXJ5dGhpbmcgaXMgY2xlYXIgeWV0LiBOZWVkcyBzb21lIGdlbmVyYWwgZGVzaWduIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUmV2ZXJ0aW5nIGFzIG5vdCBldmVyeXRoaW5nIGlzIGNsZWFyIHlldC4gTmVlZHMgc29tZSBnZW5lcmFsIGRlc2lnbgoJICB3b3JrLgoKMjAwOC0wNy0yOSAxMzozNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCjIwMDgtMDctMjkgMTM6MzA6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IENsZWFudXAgc2VjdGlvbi1maWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBDbGVhbnVwIHNlY3Rpb24tZmlsZS4KCjIwMDgtMDctMjkgMTE6NTc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoKMjAwOC0wNy0yOSAwMDo0NToyOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgoyMDA4LTA3LTI2IDEyOjAwOjM2ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFJlcGxhY2Ugb25lIGRpYWdyYW0gd2l0aCB0d28gc2VwYXJhdGUgb25lcyBhbmQgdXBkYXRlcyBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1zeW5jaHJvbml6aW5nLnBuZzoKCSAgUmVwbGFjZSBvbmUgZGlhZ3JhbSB3aXRoIHR3byBzZXBhcmF0ZSBvbmVzIGFuZCB1cGRhdGVzIG90aGVycy4KCSAgRml4ZXMgIzU0MjQwMS4KCjIwMDgtMDctMjUgMTA6MjQ6NDMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNzozODo0MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNToxMzoyNCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOiByZXZlcnQgdGhlIGNoYW5nZXMgdG8gdGhlIGhlYWRlciBmaWxlIGZvciB0aGUgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2ZXJ0IHRoZSBjaGFuZ2VzIHRvIHRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIEFCSS4KCjIwMDgtMDctMjQgMTQ6NDc6NTggKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogRG9uJ3QgY2FjaGUgdGhlIHNlZWthYmxlIHN0YXR1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvbid0IGNhY2hlIHRoZSBzZWVrYWJsZSBzdGF0dXMuCgkgIEZpeGVzIGJ1ZyAjNTQ0MTc0CgoyMDA4LTA3LTI0IDEyOjM2OjIwICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBBZGQgZmFrZXNpbmsgdG8gZXhhbXBsZSBjb2RlIHRvIGNsb3NlIHRoZSBwaXBlbGluZSBncmFwaC4gIFRoaXMgcHJldmVudHMgdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogQWRkIGZha2VzaW5rIHRvIGV4YW1wbGUKCSAgY29kZSB0byBjbG9zZSB0aGUgcGlwZWxpbmUgZ3JhcGguICBUaGlzIHByZXZlbnRzIHRoZSBwcm9ncmFtIGZyb20KCSAgcHJpbnRpbmcgaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4KCjIwMDgtMDctMjMgMTU6NDQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBDb3JyZWN0IHR5cG8uIEZpeGVzIGJ1ZyAjNTQ0MzIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgQ29ycmVjdCB0eXBvLiBGaXhlcyBidWcgIzU0NDMyMC4KCjIwMDgtMDctMjIgMTg6MTI6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIEFkZCBjaGVjayAodGFrZW4gZnJvbSAtYmFzZSkgZm9yIHdpbnNvY2ssIGFkZHMgV0lOMzJfTElCUwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQWRkIFdJTjMyX0xJQlMgdG8gTElCQUREIGZvciBsaWJnc3RyZWFtZXIuIE5lZWRlZCBub3cgdGhhdCBnc3Rwb2xsIHVzZXMKCSAgd2luc29jay4KCSAgRGVmaW5lIEdTVF9FWFBPUlRTIHdoZW4gYnVpbGRpbmcgbGliZ3N0cmVhbWVyIChvbmx5IHVzZWQgb24gd2luMzIpCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVXNlIEdTVF9FWFBPUlQgaW5zdGVhZCBvZiBsb2NhbGx5LWRlZmluZWQgKGFuZCBpbmNvcnJlY3QgSU1QT1JUX1NZTUJPTCkKCSAgZm9yIHN5bWJvbHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9ydCBpbiBib3RoIHRoZXNlIGZpbGVzLgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEluY2x1ZGUgZ3N0X3ByaXZhdGUuaCBoaWdoZXIgdXAgdG8gYXZvaWQgc29tZSBjb21waWxlIHByb2JsZW1zIG9uIHdpbjMyLgoKMjAwOC0wNy0yMiAwOToyNDozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCB0eXBvcy4KCjIwMDgtMDctMjIgMDA6Mjk6NTUgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBQcmV2aW91cyBjb21taXQgd2FzIHdyb25nIE5VTEwgY2FwcyBkb2VzIG5vdCBleGlzdCBhbmQgaW5kaWNhdGUgYW4gZXJyb3IsIHNvIGFsc28gYWRkIGEgRklYTUUgdG8gZ3N0X2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgUHJldmlvdXMgY29tbWl0IHdhcyB3cm9uZyBOVUxMIGNhcHMgZG9lcyBub3QgZXhpc3QKCSAgYW5kIGluZGljYXRlIGFuIGVycm9yLCBzbyBhbHNvIGFkZCBhIEZJWE1FIHRvCgkgIGdzdF9jYXBzX2lzX2VxdWFsIHdoZXJlIE5VTEwgY2FwcyBhcmUgYWNjZXB0ZWQuCgoyMDA4LTA3LTIxIDIzOjAyOjQwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWxsb3cgcGFzc2luZyBvZiBOVUxMIHRvIGdzdF9jYXBzX3VuaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIEFsbG93IHBhc3Npbmcgb2YgTlVMTCB0byBnc3RfY2Fwc191bmlvbgoKMjAwOC0wNy0yMSAyMTozMjowNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGQgaW4gZG9jIHRoYXQgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0IGNhbiBhY2NlcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEFkZCBpbiBkb2MgdGhhdCBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQgY2FuIGFjY2VwdAoJICBOVUxMIHRvIGNsZWFyIHRhcmdldAoKMjAwOC0wNy0xNSAyMjo1MzowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIERvbid0IHJlZmVyIHRvIGZ1bmN0aW9ucyB0aGF0IGRvbid0IGV4aXN0IGluIGRvY3MsIGl0J3MKCSAgdW5oZWxwZnVsLgoKMjAwOC0wNy0xMiAxNzo1MToxNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCjIwMDgtMDctMTIgMTc6NDM6MTUgKzAwMDAgIHRtYXR0aCA8bGUuYnVzaW5lc3NtYW5AZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IERvbid0IHVzZSBhbiB1bmRlY2xhcmVkIHZhcmlhYmxlIGluIHRoZSBleGFtcGxlIHByb2dyYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogdG1hdHRoIDxsZSBkb3QgYnVzaW5lc3NtYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgRG9uJ3QgdXNlIGFuIHVuZGVjbGFyZWQgdmFyaWFibGUgaW4gdGhlIGV4YW1wbGUgcHJvZ3JhbS4KCSAgRml4ZXMgYnVnICM1NDI1NzMuCgoyMDA4LTA3LTEyIDA5OjU5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBTcXVlZXplIGdob3N0LXBhZCBsaW5rcyBhbmQgcmVtb3ZlIDw+IGZyb20gY2xhc3NuYW1lIGxhYmVscyB0byBzYXZlIG1vcmUgaG9yaXpvbnRhbCBzcGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgU3F1ZWV6ZSBnaG9zdC1wYWQgbGlua3MgYW5kIHJlbW92ZSA8PiBmcm9tIGNsYXNzbmFtZSBsYWJlbHMgdG8gc2F2ZQoJICBtb3JlIGhvcml6b250YWwgc3BhY2UuCgoyMDA4LTA3LTExIDE5OjMwOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBHaXZlIHJlcXVlc3QgYW5kIHNvbWV0aW1lcyBwYWRzIGEgZGlmZmVyZW50IHNocGUgc3R5bGUuIENvbmRlbnNlIHRoZSBncmFwaHMgYSBsaXR0bGUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgR2l2ZSByZXF1ZXN0IGFuZCBzb21ldGltZXMgcGFkcyBhIGRpZmZlcmVudCBzaHBlIHN0eWxlLiBDb25kZW5zZSB0aGUKCSAgZ3JhcGhzIGEgbGl0dGxlIG1vcmUuCgoyMDA4LTA3LTEwIDAwOjMwOjAyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHJlcXVpcmUgZmxleCBhbmQgYmlzb24gaWYgdGhlIHBhcnNlciBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCByZXF1aXJlIGZsZXggYW5kIGJpc29uIGlmIHRoZSBwYXJzZXIgaXMgZGlzYWJsZWQuCgoyMDA4LTA3LTA4IDExOjIwOjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoX2xpc3RfZmluZF9zb3J0ZWRfY3VzdG9tKToKCSAgRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzLgoKMjAwOC0wNy0wOCAwOTowNDoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUKCSAgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpZ25hbHMgYXMgR3N0Q2hpbGRQcm94eQoJICBvbmx5IHN1cHBvcnRzIEdzdE9iamVjdHMuCgoyMDA4LTA3LTA3IDExOjAxOjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogRml4IG1lbWxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IG1lbWxlYWsKCjIwMDgtMDctMDYgMTI6NDk6NDMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHBvbGwuYzogRml4ICJpZ25vcmVkIHJldHVybiB2YWx1ZSIgY29tcGlsZXIgd2FybmluZyB3aXRoIG5ld2VyIGdsaWJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggImlnbm9yZWQgcmV0dXJuIHZhbHVlIiBjb21waWxlciB3YXJuaW5nIHdpdGggbmV3ZXIgZ2xpYmMuCgoyMDA4LTA3LTA1IDE2OjI4OjI4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBGaXggY29weSZwYXN0ZSBlcnJvciBpbiBnc3RfY2hpbGRfcHJveHlfcmVtb3ZlZCgpIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEZpeCBjb3B5JnBhc3RlIGVycm9yIGluIGdzdF9jaGlsZF9wcm94eV9yZW1vdmVkKCkgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMDIgMTQ6NDM6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFByaW50IGVycm9yIGRlYnVnIG1lc3NhZ2UgaWYgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzZXQgYXJlIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKENIRUNLX1BMVUdJTl9ERVNDX0ZJRUxEKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUHJpbnQgZXJyb3IgZGVidWcgbWVzc2FnZSBpZiBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGRzIHRoYXQgc2hvdWxkCgkgIGJlIHNldCBhcmUgTlVMTC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9jb25zdF9zdHJpbmcpOgoJICBEb24ndCBjcmFzaCBpZiB0aGUgc3RyaW5nIHRvIHNlcmlhbGlzZSBpcyBOVUxMIChpdCByZWFsbHkgc2hvdWxkCgkgIG5vdCBiZSwgYnV0IGFwcGFyZW50bHkgdGhpcyB1c2VkIHRvIHdvcmsgd2l0aCB0aGUgeG1sIHJlZ2lzdHJ5IC4uLikuCgoyMDA4LTA3LTAyIDEyOjIzOjEyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEZpeCBwYXJzaW5nIG9mIGxvZyBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgRml4IHBhcnNpbmcgb2YgbG9nIG1lc3NhZ2VzCgoyMDA4LTA3LTAxIDA5OjI3OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBTb3J0IGFscGhhYmV0aWNhbGx5IHNvIG1ha2UgY2hlY2stZXhwb3J0cyBkb2Vzbid0IGJhcmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjo6CgkgIFNvcnQgYWxwaGFiZXRpY2FsbHkgc28gbWFrZSBjaGVjay1leHBvcnRzIGRvZXNuJ3QgYmFyZi4KCjIwMDgtMDctMDEgMDU6NTM6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBVc2UgZ3N0X2Zvcm1hdF9nZXRfbmFtZSgpIHRvIGltcHJvdmUgZGVidWcgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXNlIGdzdF9mb3JtYXRfZ2V0X25hbWUoKSB0byBpbXByb3ZlIGRlYnVnIG91dHB1dC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJlbW92ZSAjaWZkZWYnZWQgY29kZS4gQWRkIFRPRE8gY29tbWVudC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGQgZGVidWcgb3V0cHV0IHRvIGVhc2Ugc3BvdHRpbmcgZm9ybWF0ICE9IHNlZ21lbnQuZm9ybWF0IGFzc2VydGlvbnMuCgoyMDA4LTA2LTMwIDA5OjQyOjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBBbHNvIGVuYWJsZSB0aGUgR0RQIHVuaXQgdGVzdCBhZ2FpbiBvbiBQUEMgbm93IHRoYXQgdGhlIGJ1ZyBpcyBmaXhlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIEFsc28gZW5hYmxlIHRoZSBHRFAgdW5pdCB0ZXN0IGFnYWluIG9uIFBQQyBub3cgdGhhdCB0aGUgYnVnCgkgIGlzIGZpeGVkLgoKMjAwOC0wNi0zMCAwOTozODo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBEb24ndCB3cml0ZSB0byB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IGFzIGEgdWludDY0IGFuZCB1aW50MTYgYXMgdGhpcyBicmVha3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRG9uJ3Qgd3JpdGUgdG8gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBhcyBhIHVpbnQ2NCBhbmQgdWludDE2CgkgIGFzIHRoaXMgYnJlYWtzIHN0cmljdCBhbGlhc2luZyBydWxlcyBhbmQgYXBwYXJhbnRseSBicmVha3Mgb24gUFBDCgkgIGFuZCBzMzkwLiBUaGFua3MgdG8gU2pvZXJkIFNpbW9ucyBmb3IgYW5hbHlzaW5nLiBGaXhlcyBidWcgIzM0ODExNC4KCjIwMDgtMDYtMjkgMTY6MTE6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogT3B0aW1pemUgbGlzdCBoYW5kbGluZy4gVXNlIG93biBmaW5kIGZ1bmN0aW9uLiBFeHBsb2l0IHRoYXQgZmFjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIE9wdGltaXplIGxpc3QgaGFuZGxpbmcuIFVzZSBvd24gZmluZCBmdW5jdGlvbi4gRXhwbG9pdCB0aGF0IGZhY3QgdGhhdAoJICB0aGUgbGlzdCBpcyBzb3J0ZWQuIEFsc28gcGFzcyBiYWNrIHRoZSBub2RlIGJlZm9yZSwgc28gdGhhdCB3ZSBjYW4KCSAgaW5zZXJ0IHF1aWNrbHkuIEhhdmUgYSBmYXN0IHBhdGggZm9yIGFwcGVuZC4KCjIwMDgtMDYtMjkgMTU6MDA6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduLzogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgRml4IHR3byB0eXBvcy4KCjIwMDgtMDYtMjcgMDk6MDI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTaG93IGNvbmZpZ3VyYXRpb24gc3VtYXJ5IGFmdGVyIGNvbmZpZ3VyZSBydW4uIEJhc2VkIG9uIHBhdGNoIGJ5CgkgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4uIEZpeGVzOiAjNTQwMTM0CgoyMDA4LTA2LTI3IDA3OjAzOjA1ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgU3dpdGNoZWQgc2VjdGlvbnMgInBhZHMiIGFuZCAiYmlucyIgYW5kIGFkZGVkIGEgcGlwZWxpbmUgZGlhZ3JhbS4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBBZGRlZCBtb3JlIGluZm8gb24gZ3N0cmVhbWVyLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBDb21tZW50ZWQgb3V0IHRoZSB3aG9sZSBzZWN0aW9uICJjdXJyZW50IHByb2JsZW0iLCB3aGljaCBzb3VuZHMKCSAgaGlzdG9yaWNhbCBhbmQgc29tZWhvdyBvc29sZXRlOyBpdCBjb3VsZCBiZSB0dXJuZWQgaW4gYSBwb3NpdGl2ZQoJICB3YXkgYW5kIHJldXNlZCB0byBpbXByb3ZlIHRoZSBkZXNpZ24gcHJpbmNpcGxlcy4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgLSBVcGRhdGUgVVJMcyB0byBsaWJyYXJ5Lmdub21lLm9yZy4KCSAgLSBEbyBub3QgbWVudGlvbiBHVEsrIGluIHByZWxpbWluYXJ5IHJlYWRpbmcgKGlycmVsZXZhbnQpLgoJICAtIE1lbnRpb24gUGx1Z2luIFdyaXRlcidzIE1hbnVhbCBhbmQgZnVydGhlciByZWFkaW5nIG9ubHkgaW4gdGhlCgkgIHByZXZpb3VzIHNlY3Rpb24uCgkgIC0gQWRkZWQgYSBsaXN0IG9mIG1vc3QgcmVsZXZhbnQgR09iamVjdC9nbGliIHRvcGljcy4KCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkuZmlnOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMuZmlnOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUuZmlnOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW1wbGUtcGxheWVyLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJICBSZW1vdmVkIC5maWcsIGFkZGVkIC5wbmcgY291bnRlcnBhcnQuCgkgIEZpeGVzOiAjNTM5MTM3CgoyMDA4LTA2LTI2IDIwOjI3OjAwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IHJldmVydCBleHRyYS1zaXplLWJ1ZmZlcnMgc3R1ZmYsIGNhdXNlZCBzb21lIHJhY2UgY29uZGl0aW9ucyBhbmQgZXh0cmEtc2l6ZS1idWZmZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICByZXZlcnQgZXh0cmEtc2l6ZS1idWZmZXJzIHN0dWZmLCBjYXVzZWQgc29tZSByYWNlIGNvbmRpdGlvbnMKCSAgYW5kIGV4dHJhLXNpemUtYnVmZmVycyBpcyBub3QgdXNlZCBhbnltb3JlLiBEb2NzIG5lZWRzIHNvbWUgdXBkYXRlcwoKMjAwOC0wNi0yNiAxMjo1Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSB3aW4zMiBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzLgoKMjAwOC0wNi0yNiAxMjoyNDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOiAoR3N0RGVidWdHcmFwaERldGFpbHMpLAoJICAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSk6CgkgIEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoKMjAwOC0wNi0yNiAxMTo1OTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChzZXRfY2Fwc19jdDIpLCAodHJhbnNmb3JtX2N0MiksICh0cmFuc2Zvcm1fY2Fwc19jdDIpLAoJICAodHJhbnNmb3JtX3NpemVfY3QyKSwgKGJ1ZmZlcl9hbGxvY19jdDIpOgoJICBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoKMjAwOC0wNi0yNSAxNzoyNzozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvOiBNb3JlIHRlc3RzLCBwcmVwYXJlIGZvciB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAocmVzdWx0X2J1ZmZlcl9hbGxvYyksIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksCgkgIChnc3RfdGVzdF90cmFuc19wdXNoKSwgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoc2V0X2NhcHNfY3QyKSwgKHRyYW5zZm9ybV9jdDIpLCAodHJhbnNmb3JtX2NhcHNfY3QyKSwKCSAgKHRyYW5zZm9ybV9zaXplX2N0MiksIChidWZmZXJfYWxsb2NfY3QyKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgTW9yZSB0ZXN0cywgcHJlcGFyZSBmb3IgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgoyMDA4LTA2LTI1IDE1OjM5OjAyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCjIwMDgtMDYtMjUgMTQ6NDk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoKMjAwOC0wNi0yNSAxNDo0NzoxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBNZW50aW9uIGJ1Z251bWJlciBmb3IgbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWdudW1iZXIgZm9yIGxhc3QgY29tbWl0LgoKMjAwOC0wNi0yNSAxNDo0NDo1MiArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvbWFudWFsLnhtbDogLSBSZW9yZ2FuaXNlZCB0aGUgcHJldmlvdXMgImludHJvZHVjdGlvbiIgYnVuZGxlIGludG8gRm9yZXdvcmQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAtIFJlb3JnYW5pc2VkIHRoZSBwcmV2aW91cyAiaW50cm9kdWN0aW9uIiBidW5kbGUgaW50byBGb3Jld29yZCwKCSAgSW50cm9kdWN0aW9uLCBhbmQgQWJvdXQgR1N0cmVhbWVyLiBUaGUgdHdvIGZpcnN0IGFyZSA8cHJlZmFjZT4KCSAgZG9jYm9vayBlbGVtZW50cy4gVGhlIGxhdGVyIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBib29rLgoJICAtIGFkZGVkIGludHJvLWdzdHJlYW1lci54bWwgKGNvbnRlbnQgcGFydGlhbGx5IGZyb20KCSAgaW50cm8tcHJlZmFjZS54bWwpCgkgIC0gbW92ZWQgYXBwZW5kaXgtd2luMzIueG1sIGludG8gYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sCgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6IGdzdHJlYW1lciBzZWN0aW9uIG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDogLi4uaGVyZS4gbmV3IGZpbGUuCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOiByZW1vdmVkIGZpbGUuIENvbnRlbnQgbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IC4uLmhlcmUuCgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOiBzZWN0aW9uIGFib3V0IEdzdEVkaXRvciBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6IC4uLmhlcmUuCgoyMDA4LTA2LTI1IDE0OjMyOjUzICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IC0gRXhwbGljaXRlbHkgaW5jbHVkZSBnbGliLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAtIEV4cGxpY2l0ZWx5IGluY2x1ZGUgZ2xpYi5oLgoJICAtIERvIG5vdCB1c2UgZ2xvYmFsIHZhcmlhYmxlcy4KCSAgLSBVc2UgZ19wcmludGVycigpIGluc3RlYWQgb2YgZ19wcmludCgpLgoJICAtIE1pbm9yIGZvcm1hdGluZy9yZW5hbWluZyB0byBpbmNyZWFzZSByZWFkaWJpbGl0eS4KCSAgLSBSZW5hbWVkIG5ld19wYWQoKSB0byBvbl9wYWRfYWRkZWQoKQoJICAtIEltcHJvdmVkIGV4cGxlbmF0b3J5IGNvbW1lbnRzLgoJICAtIHJlbmFtZWQgb2dnIHBhcnNlciB0byBvZ2cgZGVtdXhlcgoJICAtIFVzZSAiYXV0b2F1ZGlvc2luayIgaW5zdGVhZCBvZiAiYWxzYXNpbmsiLgoJICBGaXhlczogIzUzODYxOQoKMjAwOC0wNi0yNSAxNDoyNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCjIwMDgtMDYtMjUgMTQ6MjU6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50CgkgIGRldGFpbHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBUZWxsIHRoYXQgZGV2aWNlcyBzaG91bGQgYmUgY2xvc2VkIGluIFBBVVNFRCAtPiBSRUFEWS4KCSAgKiBkb2NzL21hbnVhbC9SRUFETUU6CgkgIERvY3VtZW50IGhvdyB0ZXN0cyBpbiB0aGUgbWFudWFsIGFyZSBoYW5kbGVkLgoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIFR5cG8gaW4gY29tbWVudC4KCjIwMDgtMDYtMjUgMTE6NTA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE9ubHkgY2FyZSBhYm91dCBsYXRlbmN5IG1pbiBhbmQgbWF4IHdoZW4gdGhlIHNpbmsgaXMgYWN0dWFsbHkgYSBsaXZlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpOgoJICBPbmx5IGNhcmUgYWJvdXQgbGF0ZW5jeSBtaW4gYW5kIG1heCB3aGVuIHRoZSBzaW5rIGlzIGFjdHVhbGx5IGEgbGl2ZQoJICBzaW5rLgoKMjAwOC0wNi0yNSAxMDo1Mzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBBZGQgbm90ZXMgYWJvdXQgd2h5IHRyYW5zZm9ybSBuZWVkcyB0byBrbm93IGlucHV0L291dHB1dCBzaXplcy4KCSAgQWRkIHNvbWUgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSBzb2x2ZWQuCgkgIEFkZCBzb21lIG1vcmUgdXNlIGNhc2VzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKHJlc3VsdF9idWZmZXJfYWxsb2MpLCAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgQWRkIHN1cG9ydCBmb3IgZGlmZmVyZW50IHBhZCB0ZW1wbGF0ZXMgYW5kIGJ1ZmZlci1hbGxvYy4KCSAgQWRkIG1vcmUgY2hlY2tzIGZvciBjYXBzIGFuZCBidWZmZXItYWxsb2MuCgkgIEFkZCBjaGVja3MgZm9yIHByb3h5IGJ1ZmZlciBhbGxvYy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgY29weSB0cmFuc2Zvcm0uCgoyMDA4LTA2LTI0IDE5OjU2OjUxICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFR5cG8gYW5kIGZvcm1hdHRpbmcgZml4ZXMgKCM1Mzg1OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICBUeXBvIGFuZCBmb3JtYXR0aW5nIGZpeGVzICgjNTM4NTk0KS4KCjIwMDgtMDYtMjQgMDc6NDk6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBGaXggc29tZSBtZW1vcnkgbGVha3MgYW5kIHVzZXMgb2Ygb2JqZWN0IGluc3RhbmNlcyB0aGF0IHdlIGRvbid0IGFjdHVhbGx5IG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBhbmQgdXNlcyBvZiBvYmplY3QgaW5zdGFuY2VzIHRoYXQgd2UgZG9uJ3QKCSAgYWN0dWFsbHkgb3duLgoKMjAwOC0wNi0yMiAxOToxOTozNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgoyMDA4LTA2LTIyIDE0OjM1OjEzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVwZGF0ZSB0aGUgY3VyX3RpbWUgb24gR1NUX0NMT0NLX1RJTUVfTk9ORSAoIzUzNzgwNCkgYW5kIGRvbid0IGFjdGl2YXRlIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBEb24ndCB1cGRhdGUgdGhlIGN1cl90aW1lIG9uIEdTVF9DTE9DS19USU1FX05PTkUgKCM1Mzc4MDQpIGFuZCBkb24ndAoJICBhY3RpdmF0ZSB0aGUgcGFkcyBpZiB0aGV5IGFyZSBhZGRlZCBpbiBTVEFURV9OVUxMLgoKMjAwOC0wNi0yMSAyMToyMDoxMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2MKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFQSTogZ3N0X2NoZWNrX3RlYXJkb3duX3BhZF9ieV9uYW1lCgoyMDA4LTA2LTIxIDE5OjQ4OjUzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWxzbyBzZXR1cCByZXF1ZXN0IHBhZHMgYW5kIGFsbG93IHNldHVwIHBhZHMgYnkgbmFtZSAoIzUzNzgxMikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbHNvIHNldHVwIHJlcXVlc3QgcGFkcyBhbmQgYWxsb3cgc2V0dXAgcGFkcyBieSBuYW1lICgjNTM3ODEyKQoJICBBUEk6IGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUKCSAgQVBJOiBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWRfYnlfbmFtZQoKMjAwOC0wNi0yMCAyMTowODo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IFVzZSBIQVZFX1ZBTEdSSU5EX0ggc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBVc2UgSEFWRV9WQUxHUklORF9IIHNvbWUgbW9yZS4KCjIwMDgtMDYtMjAgMTY6Mjk6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc2NyaXB0cy9jdnMtdXBkYXRlLnNoOiBQYXNzIGFyZ3VtZW50cyB0byBtYWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIFBhc3MgYXJndW1lbnRzIHRvIG1ha2UuCgkgIFJ1biBhdXRvcmVnZW4uc2ggaWYgTWFrZWZpbGUgaXMgbm90IHRoZXJlLgoKMjAwOC0wNi0yMCAxNTo1NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBEb24ndCBhc3N1bWUgdGhhdCA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gZXhpc3RzIGp1c3QgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRG9uJ3QgYXNzdW1lIHRoYXQgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGV4aXN0cyBqdXN0IGJlY2F1c2UKCSAgdGhlIGJpbmFyeSBpcyB0aGVyZS4KCjIwMDgtMDYtMjAgMTI6MDY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIHRlc3QgYmFzZXRyYW5zZm9ybSBlbGVtZW50IGFuZCB0aGUgYmVnaW5uaW5ncyBvZiB2YXJpb3VzIHVuaXQgdGVzdHMgZm9yIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChnc3RfdGVzdF90cmFuc19pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX3NldF9kYXRhKSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRyYW5zZm9ybV9pcF8xKSwgKHNldF9jYXBzXzEpLCAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0IGJhc2V0cmFuc2Zvcm0gZWxlbWVudCBhbmQgdGhlIGJlZ2lubmluZ3Mgb2YgdmFyaW91cwoJICB1bml0IHRlc3RzIGZvciBpdC4KCjIwMDgtMDYtMjAgMTE6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5LgoJICBEb24ndCB0cnkgdG8gY29tcGFyZSBidWZmZXIgb2Zmc2V0cyB3aGVuIHRoZXIgYXJlIGludmFsaWQuCgoyMDA4LTA2LTIwIDExOjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3Qgc29tZSBtb3JlIGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBzb21lIG1vcmUgZGVzaWduIGRvY3MuCgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIFNtYWxsIGFkZGl0aW9uOiBnb29kIHBsdWdpbnMgbXVzdG4ndCBoYXZlIGZ1bmN0aW9uYWwgY29kZQoJICB3aXRoaW4gYXNzZXJ0aW9uIG1hY3Jvcy4KCjIwMDgtMDYtMjAgMTA6MzI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OiBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBTdGFydCBkZXNpZ24gYW5kIHVzZSBjYXNlcyBmb3IgYmFzZXRyYW5zZm9ybSBpbiBvcmRlciB0byBnZXQgaXQKCSAgZml4ZWQgc29vbi4KCjIwMDgtMDYtMjAgMTA6MjA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoKMjAwOC0wNi0yMCAxMDoxNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFJlbW92ZSBzaG9ydF9kZXNjcmlwdGlvbi4gQWRkIGJhc2ljIGRvY3MgZm9yIGdzdHR5cGVmaW5kZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmVtb3ZlIHNob3J0X2Rlc2NyaXB0aW9uLiBBZGQgYmFzaWMgZG9jcyBmb3IgZ3N0dHlwZWZpbmRlbGVtZW50LgoJICBTaW1wbGlmeSBtYXJrdXAgZm9yIGZha2VzcmMvZmRzcmMuCgoyMDA4LTA2LTIwIDEwOjA3OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBZGRlZCBTaW5jZSBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgIEFkZGVkIFNpbmNlIGRvYy4KCjIwMDgtMDYtMjAgMTA6MDI6MTQgKzAwMDAgIGpvZWwgbGFyc3NvbiA8dGlsbGpvZWxAZ21haWwuY29tPgoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogam9lbCBsYXJzc29uIDx0aWxsam9lbCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhbmQgZXhhbXBsZSBwaXBlbGluZXMuCgoyMDA4LTA2LTIwIDA4OjU0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBhbGxvdyBzaW5rcyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgZGVsYXkgYmV0d2VlbiB0aGUgc3luYyB0aW1lcyBhbmQgdGhlIGFjdHVhbCByZW5kZXJpbmcgb2YgdGhlIGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksIChnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcmVuZGVyX2RlbGF5KSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWV0aG9kIHRvIGFsbG93IHNpbmtzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBkZWxheSBiZXR3ZWVuIHRoZSBzeW5jCgkgIHRpbWVzIGFuZCB0aGUgYWN0dWFsIHJlbmRlcmluZyBvZiB0aGUgZGF0YS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X3JlbmRlcl9kZWxheSgpCgoyMDA4LTA2LTIwIDA4OjQ1OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG51bWJlciBiYWNrIHRvIGRldiAtPiAwLjEwLjIwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyIGJhY2sgdG8gZGV2IC0+IDAuMTAuMjAuMQoKMjAwOC0wNi0yMCAwODozOTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgRml4ZXMgYnVnICM1Mzg1NjguCgoyMDA4LTA2LTIwIDA4OjM2OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmV2ZXJ0IG9uZSBjaGFuZ2UsIHRoYXQgbWFrZSByZXQgdmFsdWUgcG9zc2libGUgdW5pbml0aWFsaXplZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFJldmVydCBvbmUgY2hhbmdlLCB0aGF0IG1ha2UgcmV0IHZhbHVlIHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjMyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVXNlIGZyZWV6ZS90aGF3IG5vdGlmeSB0byBzeW5jIG5vdGlmeSBlbWlzc2lvbiBhIGJpdCAoaXRzIGFsc28gbW9yZSBlZmZpY2llbnQpLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFVzZSBmcmVlemUvdGhhdyBub3RpZnkgdG8gc3luYyBub3RpZnkgZW1pc3Npb24gYSBiaXQgKGl0cyBhbHNvIG1vcmUKCSAgZWZmaWNpZW50KS4gTW92ZSBkZWJ1ZyBvdXRwdXQgdG8gTE9HIChpcyBjYWxsZWQgYSBsb3QgaW4gYSBsb29wKS4KCSAgQWx3YXlzIHVuc2V0IGdfdmFsdWVzIGlmIHRoZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjI4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJZiB3ZSBoYXZlIG5vdCBzZWVuIGEgYnVmZmVyIGJlZm9yZSBFT1MsIHVzZSB0aGUgc2VnbWVudCB2YWx1ZXMgdG8gcmVwb3J0IHRoZSBjdXJyZW50IHBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgSWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJ1ZmZlciBiZWZvcmUgRU9TLCB1c2UgdGhlIHNlZ21lbnQgdmFsdWVzIHRvCgkgIHJlcG9ydCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGludmFsaWQgcG9zaXRpb25zLgoKMjAwOC0wNi0yMCAwODoyMTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0wNi0yMCAwODoxNzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMKCSAgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpcnN0X3ZhbHVlKCkgZnVuY3Rpb24uCgkgIEFkZCBtb3JlIHRlc3RzLiBGaXhlcyAjNTM4MjAxLgoKMjAwOC0wNi0yMCAwODoxNDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGQgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIEFkZCBkZWJ1ZyBpbmZvLgoJICBXaGVuIGEgYnVmZmVyIGlzIHdyaXRhYmxlLCBpdHMgbWV0YWRhdGEgaXMgYWxzbyB3cml0YWJsZSBzbyB3ZSBkb24ndAoJICBuZWVkIHRvIHN1YmJ1ZmZlciAod2hpY2ggdGhlbiBtYWtlcyB0aGUgYnVmZmVyIG5vdC13cml0YWJsZSBhbnltb3JlKS4KCj09PSByZWxlYXNlIDAuMTAuMjAgPT09CgoyMDA4LTA2LTE4IDEwOjU4OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMAoKMjAwOC0wNi0xOCAxMDo1NjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wNi0xMSAyMToxNDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoKMjAwOC0wNi0xMSAyMDowNzozMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBvbiB3aW4zMi4gUGF0Y2ggQnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoJICBGaXhlczogIzUzNjg1NwoKMjAwOC0wNi0wNSAxMDoxMzo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBFeHBsaWNpdGVseSBsaW5rIHdpdGggLWxkbCBpZiBkbGFkZHIoKSBpcyBmb3VuZCB0aGVyZS4gQmVmb3JlIGl0IHdhcyBpbXBsaWNpdGVseSBsaW5rZWQgYnkgdGhlIGdtb2R1bGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRXhwbGljaXRlbHkgbGluayB3aXRoIC1sZGwgaWYgZGxhZGRyKCkgaXMgZm91bmQgdGhlcmUuIEJlZm9yZSBpdCB3YXMKCSAgaW1wbGljaXRlbHkgbGlua2VkIGJ5IHRoZSBnbW9kdWxlIHBrZ2NvbmZpZyBmaWxlIGJ1dCBpbiBnbGliIDIuMTcuMAoJICAtbGRsIGhhcyBtb3ZlZCBmcm9tIExpYnMgdG8gTGlicy5wcml2YXRlLiBGaXhlcyBidWcgIzUzNjc0NC4KCjIwMDgtMDYtMDUgMDk6NDI6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgoyMDA4LTA2LTA1IDA5OjQxOjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4xOS4yIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4xOS4yIHByZS1yZWxlYXNlCgoyMDA4LTA2LTA1IDA4OjU1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCjIwMDgtMDYtMDQgMTE6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBpbnZhbGlkIFFvUyBtZXNzYWdlcy4KCjIwMDgtMDYtMDQgMTE6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogQWRkIHNvbWUgYXNzZXJ0IGFuZCBkb2NzIGZvciBpbnZhbGlkIGlucHV0IHRvIHRoZSBxb3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19xb3MpOgoJICBBZGQgc29tZSBhc3NlcnQgYW5kIGRvY3MgZm9yIGludmFsaWQgaW5wdXQgdG8gdGhlIHFvcyBmdW5jdGlvbi4KCjIwMDgtMDUtMzAgMTU6NDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbiB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbgoJICB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAgKyBkdXJhdGlvbiBmb3IgcmV2ZXJzZSkuCgoyMDA4LTA1LTMwIDA3OjM2OjE3ICswMDAwICBSb2IgQnJhZGZvcmQgPHJvYkByb2JzdGVyLm9yZy51az4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBEb24ndCByZWN1cnNlIGludG8gLmRlYnVnIGRpcmVjdG9yaWVzIGFzIHNvbWUgZGlzdHJvcyBpbnN0YWxsIHRoZSBkZWJ1Z2dpbmcgc3ltYm9scyBuZXh0IHRvIHRoZSBwbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYiBCcmFkZm9yZCA8cm9iIGF0IHJvYnN0ZXIgZG90IG9yZyBkb3QgdWs+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgRG9uJ3QgcmVjdXJzZSBpbnRvIC5kZWJ1ZyBkaXJlY3RvcmllcyBhcyBzb21lIGRpc3Ryb3MgaW5zdGFsbAoJICB0aGUgZGVidWdnaW5nIHN5bWJvbHMgbmV4dCB0byB0aGUgcGx1Z2lucyBpbiAuZGVidWcgZGlyZWN0b3JpZXMKCSAgYW5kIGRsb3BlbigpIGNyYXNoZXMgb24gdGhlbSBzb21ldGltZXMuIEZpeGVzIGJ1ZyAjNTA4MDcwLgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHJlY3Vyc2UgaW50byBkaXJlY3RvcmllcyBhdCBhbGwgYmVjYXVzZQoJICBpdCdzIHZlcnkgaW5jb25zaXN0ZW50IHRvIHRoZSBiZWhhdmlvdXIgb2Ygb3RoZXIgUEFUSCBlbnZpcm9ubWVudAoJICB2YXJpYWJsZXMuCgoyMDA4LTA1LTI5IDE2OjM0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggcG9zaXRpb24gcXVlcnkgcmFuZ2UgY2hlY2tzIGluIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZpeCBwb3NpdGlvbiBxdWVyeSByYW5nZSBjaGVja3MgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDgtMDUtMjkgMDc6MTk6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdCBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdAoJICBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZSByZXN1bHRpbmcgcGFkIG11c3QgYmUgcmVsZWFzZWQgbGF0ZXIKCSAgb3Igbm90LCByZXN1bHRpbmcgaW4gcG9zc2libGUgbGVha3MuIEZpeGVzIGJ1ZyAjNTMzODY1LgoKMjAwOC0wNS0yOCAxNjo0NjowNyArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBTbWFsbCBkb2MgZml4LiBGaXhlcyAjNTM1Mjg1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgU21hbGwgZG9jIGZpeC4gRml4ZXMgIzUzNTI4NS4KCjIwMDgtMDUtMjggMTM6NDg6MTcgKzAwMDAgIEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZUBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHNlbmRpbmcgYW4gRU9TIGV2ZW50IHRvIHRoZSBiYXNlc3JjIG5vbi1ibG9ja2luZyBldmVuIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIGJsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZSBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc2VuZGluZyBhbiBFT1MgZXZlbnQgdG8gdGhlIGJhc2VzcmMgbm9uLWJsb2NraW5nIGV2ZW4gaWYgdGhlCgkgIGltcGxlbWVudGF0aW9uIGRvZXMgYmxvY2tpbmcgd2FpdHMgaW4gdGhlIGNyZWF0ZSBmdW5jdGlvbi4gVGhpcyBpcyBkb25lCgkgIGJ5IHVubG9ja2luZyB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdoZW4gRU9TIGlzIHNlbnQuCgkgIEZpeGVzICM1MzUyMTguCgoyMDA4LTA1LTI4IDEwOjQ0OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBJZiBwb3NzaWJsZSBwcmludCB0aGUgZWxlbWVudCB0eXBlIG9mIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIElmIHBvc3NpYmxlIHByaW50IHRoZSBlbGVtZW50IHR5cGUgb2YgR1ZhbHVlQXJyYXkgcHJvcGVydGllcy4KCjIwMDgtMDUtMjggMDc6NDc6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBSZW1vdmUgYW4gdW51c2VkIGZpZWxkIGZyb20gdGhlIHByaXZhdGUgR3N0TGlzdEl0ZXJhdG9yIHN0cnVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFJlbW92ZSBhbiB1bnVzZWQgZmllbGQgZnJvbSB0aGUgcHJpdmF0ZSBHc3RMaXN0SXRlcmF0b3Igc3RydWN0LgoKMjAwOC0wNS0yNyAyMDoxOToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEFkZCBwYXJhbWV0ZXIgZ3VhcmRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIHBhcmFtZXRlciBndWFyZHMuCgoyMDA4LTA1LTI3IDE5OjQ3OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoKMjAwOC0wNS0yNyAxODozMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IEV4dGVuZGluZyB0aGUgdGVzdCBhIGxpdHRsZSB0byB2ZXJpZnkgdGhhdCB3ZSBhbHNvIGdldCB0aGUgTlVMTCBzdGF0ZS0gY2hhbmdlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBFeHRlbmRpbmcgdGhlIHRlc3QgYSBsaXR0bGUgdG8gdmVyaWZ5IHRoYXQgd2UgYWxzbyBnZXQgdGhlIE5VTEwgc3RhdGUtCgkgIGNoYW5nZSBtZXNzYWdlLgoKMjAwOC0wNS0yNyAxNjozNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogQWRkIFNpbmNlOiBtYXJrZXJzIHRvIGRvY3MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9nZXRfcHJlc2V0X25hbWVzKSwgKGdzdF9wcmVzZXRfZ2V0X3Byb3BlcnR5X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQpLCAoZ3N0X3ByZXNldF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3JlbmFtZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9kZWxldGVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2V0X21ldGEpOgoJICBBZGQgU2luY2U6IG1hcmtlcnMgdG8gZG9jcyBibHVyYnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCByZWNlbnRseS1hZGRlZCBBUEkuCgoyMDA4LTA1LTI3IDE1OjExOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQWRkIEdzdFByZXNldCB0byBkb2NzLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOiAocHJlc2V0X2dldF9wYXRocyksIChwcmVzZXRfc2tpcF9wcm9wZXJ0eSksCgkgIChwcmVzZXRfb3Blbl9hbmRfcGFyc2VfaGVhZGVyKSwgKHByZXNldF9wYXJzZV92ZXJzaW9uKSwKCSAgKHByZXNldF9tZXJnZSksIChwcmVzZXRfZ2V0X2tleWZpbGUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcmVzZXRfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcm9wZXJ0eV9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfbG9hZF9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3NhdmVfcHJlc2V0c19maWxlKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfcmVuYW1lX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X2RlZmF1bHRfc2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9tZXRhKSwgKGdzdF9wcmVzZXRfZGVmYXVsdF9yYW5kb21pemUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3Jlc2V0KSwgKGdzdF9wcmVzZXRfZ2V0X3ByZXNldF9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2dldF9wcm9wZXJ0eV9uYW1lcyksIChnc3RfcHJlc2V0X2xvYWRfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2F2ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9yZW5hbWVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X3NldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X21ldGEpLCAoZ3N0X3ByZXNldF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfYmFzZV9pbml0KSwgKGdzdF9wcmVzZXRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIEdzdFByZXNldCB0byBjb3JlLiBGaXhlcyAjMzk2Nzc5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF90ZXN0X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcHJlc2V0X3Rlc3Rfc2V0X3Byb3BlcnR5KSwgKGdzdF9wcmVzZXRfdGVzdF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9iYXNlX2luaXQpLCAoZ3N0X3ByZXNldF90ZXN0X2dldF90eXBlKSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9wbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChyZW1vdmVfcHJlc2V0X2ZpbGUpLCAodGVzdF9zZXR1cCksICh0ZXN0X3RlYXJkb3duKSwKCSAgKGdzdF9wcmVzZXRfc3VpdGUpOgoJICBBZGQgR3N0UHJlc2V0IHVuaXQgdGVzdHMuCgoyMDA4LTA1LTI3IDEwOjU5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBUaGUgZGVmYXVsdCBldmVudCBmdW5jdGlvbiBvbiBhIHNpbmtwYWQgc2hvdWxkIHJldHVybiBUUlVFIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsIGxpbmtzIGJ1dCBzaG91bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCk6CgkgIFRoZSBkZWZhdWx0IGV2ZW50IGZ1bmN0aW9uIG9uIGEgc2lua3BhZCBzaG91bGQgcmV0dXJuIFRSVUUgd2hlbgoJICB0aGVyZSBhcmUgbm8gaW50ZXJuYWwgbGlua3MgYnV0IHNob3VsZCBjb2xsZWN0IHRoZSByZXR1cm4gdmFsdWVzIGZyb20KCSAgdGhlIGludGVybmFsIGxpbmtzIG90aGVyd2lzZS4KCjIwMDgtMDUtMjcgMTA6NTc6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZmFzdGVyIGFuZCBzYWZlciBfcGFkX3B1c2hfZXZlbnQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIFVzZSBmYXN0ZXIgYW5kIHNhZmVyIF9wYWRfcHVzaF9ldmVudCgpLgoKMjAwOC0wNS0yNyAxMDo1MDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VubGlua2VkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKSwgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLAoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKCkKCSAgQVBJOiBkZXByZWNhdGUgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjNDAxNDU2KQoKMjAwOC0wNS0yNiAxMDowNzowOSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBGaXhlZCBhIGJ1bmNoIG9mIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIEZpeGVkIGEgYnVuY2ggb2YgdHlwb3MuCgoyMDA4LTA1LTI1IDE2OjM0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogJ3VuY29ubmVjdGVkIHBhZCcgLT4gJ3VubGlua2VkIHBhZCcgZm9yIGNvbnNpc3RlbmN5ICgjNDAxNDU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGVsZW1lbnRfZmluZF91bmxpbmtlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAndW5jb25uZWN0ZWQgcGFkJyAtPiAndW5saW5rZWQgcGFkJyBmb3IgY29uc2lzdGVuY3kgKCM0MDE0NTYpLgoKMjAwOC0wNS0yNSAxNjoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOiBTbWFsbCBkb2NzIHVwZGF0ZSwgY2FuJ3QgYmUgYm90aGVyZWQgdG8gcmV3cml0ZSB0aGUgbm9uc2Vuc2ljYWwgZXhhbXBsZXMgcmlnaHQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgU21hbGwgZG9jcyB1cGRhdGUsIGNhbid0IGJlIGJvdGhlcmVkIHRvIHJld3JpdGUgdGhlIG5vbnNlbnNpY2FsCgkgIGV4YW1wbGVzIHJpZ2h0IG5vdy4KCjIwMDgtMDUtMjUgMTQ6NDQ6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQ2xhcmlmeSBkb2NzIGZvciBHU1RfU0VFS19UWVBFX0NVUiAoIzUzNDUwNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBDbGFyaWZ5IGRvY3MgZm9yIEdTVF9TRUVLX1RZUEVfQ1VSICgjNTM0NTA1KS4KCjIwMDgtMDUtMjUgMTQ6MTM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCjIwMDgtMDUtMjUgMTM6NTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBHZXQgYWxsIG1pc3NpbmcgZWxlbWVudHMgZnJvbSBhIHBhcnNlIGxhdW5jaCBzdHJpbmcgaWYgcG9zc2libGUgKGllLiBpZiB0aGUgRkFUQUxfRVJST1JTIGZsYWcgaGFzIGJlZW4gc3BlY2lmaWVkKS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEdldCBhbGwgbWlzc2luZyBlbGVtZW50cyBmcm9tIGEgcGFyc2UgbGF1bmNoIHN0cmluZyBpZiBwb3NzaWJsZQoJICAoaWUuIGlmIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBoYXMgYmVlbiBzcGVjaWZpZWQpLiBGaXhlcyAjNTI4MTc4LgoKMjAwOC0wNS0yNCAxNjozODoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIG5ldyBnc3RfcGFyc2VfbGF1bmNoKl9mdWxsKCkgQVBJLiAoRXhwb3NlcyBhIHByZXZpb3VzbHktZXhpc3RpbmcgbWVtb3J5IGxlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgZ3N0X3BhcnNlX2xhdW5jaCpfZnVsbCgpIEFQSS4KCSAgKEV4cG9zZXMgYSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBjb2RlCgkgIHBhdGgsIHNvIGFkZGluZyB0byBWQUxHUklORF9UT19GSVggZm9yIG5vdykuCgoyMDA4LTA1LTI0IDE1OjMzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChfR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9lcnJvcl9xdWFyayksIChnc3RfcGFyc2VfY29udGV4dF9uZXcpLAoJICAoZ3N0X3BhcnNlX2NvbnRleHRfZnJlZSksIChnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cyksCgkgIChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNodl9mdWxsKSwgKGdzdF9wYXJzZV9sYXVuY2gpLAoJICAoZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDogKEdTVF9QQVJTRV9GTEFHX05PTkUpLCAoR1NUX1BBUlNFX0ZMQUdfRkFUQUxfRVJST1JTKSwKCSAgKEdzdFBhcnNlRmxhZ3MpLCAoR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBnc3RfcGFyc2VfKl9mdWxsIEFQSSAoIzUyODE3OCk6CgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNodl9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfbmV3KCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9mcmVlKCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cygpCgoyMDA4LTA1LTIzIDA2OjUwOjEwICswMDAwICBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBbHNvIHN1cHBvcnQgZmZtcGVnIGluIGdzdC11bmluc3RhbGxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWxzbyBzdXBwb3J0IGZmbXBlZyBpbiBnc3QtdW5pbnN0YWxsZWQuCgoyMDA4LTA1LTIyIDIwOjI5OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFmdGVyIGRpc2N1c3Npb24gb24gSVJDIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFzIGRlZmF1bHQgYnV0IGFsbG93IHRvIGRpc2FibGUgaXQgd2l0aCAtLWRpc2FibGUtYmluYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZnRlciBkaXNjdXNzaW9uIG9uIElSQyB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeSBhcyBkZWZhdWx0CgkgIGJ1dCBhbGxvdyB0byBkaXNhYmxlIGl0IHdpdGggLS1kaXNhYmxlLWJpbmFyeS1yZWdpc3RyeS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHRoZSB0d28gbmV3IHN5bWJvbHMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkuCgoyMDA4LTA1LTIyIDE1OjM4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW9yZSBndWFyZHMgYWdhaW5zdCBiYWQgaW5wdXQ7IHR5cG8gZml4OyBzb21lIG1pbm9yIGNsZWFuLXVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChfZ3N0X3BhcnNlX2VzY2FwZSksIChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChncmFwaCk6CgkgIE1vcmUgZ3VhcmRzIGFnYWluc3QgYmFkIGlucHV0OyB0eXBvIGZpeDsgc29tZSBtaW5vciBjbGVhbi11cHMuCgoyMDA4LTA1LTIyIDA4OjMzOjI3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IElmIG5vdGhpbmcgZWxzZSBjYW4gYmUgdXNlZCwgdXNlIHRoZSBsYXN0IGJ1ZmZlcidzIHN0YXJ0IHRpbWUgYXMgdGhlIHNlZ21lbnQncyBsYXN0IHN0b3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJZiBub3RoaW5nIGVsc2UgY2FuIGJlIHVzZWQsIHVzZSB0aGUgbGFzdCBidWZmZXIncyBzdGFydCB0aW1lIGFzCgkgIHRoZSBzZWdtZW50J3MgbGFzdCBzdG9wLiBGaXhlcyBidWcgIzUzNDI1OC4KCjIwMDgtMDUtMjEgMTg6MzM6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4gYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4KCSAgYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnVmZmVyIGNhcHMgYXJlIGRpZmZlcmVudCB0aGFuCgkgIHRoZSByZXF1ZXN0ZWQgb25lcywgYXMgbWF5IGhhcHBlbiB3aGVuIGRvaW5nIHJldmVyc2UgbmVnb3RpYXRpb24uCgoyMDA4LTA1LTIxIDE2OjA2OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndCB1c2UgaXQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndAoJICB1c2UgaXQgeWV0LgoKMjAwOC0wNS0yMSAxNTo1Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbG9hZF9hbmRfbGluayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfdW5saW5rX3BhZHMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAoc2V0dXBfbXVsdGlxdWV1ZSksCgkgIChtcV9zaW5rcGFkX3RvX3NyY3BhZCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKS4KCjIwMDgtMDUtMjEgMTU6NTQ6MjggKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAbm9raWEuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRml4IGluc3RhbGxpbmcgcGx1Z2luIGRvY3VtZW50YXRpb24gd2hlbiBndGstZG9jIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBGaXggaW5zdGFsbGluZyBwbHVnaW4gZG9jdW1lbnRhdGlvbiB3aGVuIGd0ay1kb2MgaXMgZGlzYWJsZWQuCgoyMDA4LTA1LTIxIDE1OjUxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoKMjAwOC0wNS0yMSAxNTo0OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoKMjAwOC0wNS0yMSAxMToxMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0yMCAwODoyODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVW5yZWYgZXZlbnRzIHRoYXQgdGhlIEdzdEJhc2VUcmFuc2Zvcm06OmV2ZW50IHZmdW5jIGRpZG4ndCB3YW50IHRvIGhhdmUgZm9yd2FyZGVkIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltLm11bGxlciBhdCBjb2xsYWJvcmEgY28gdWs+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFVucmVmIGV2ZW50cyB0aGF0IHRoZSBHc3RCYXNlVHJhbnNmb3JtOjpldmVudCB2ZnVuYyBkaWRuJ3Qgd2FudCB0bwoJICBoYXZlIGZvcndhcmRlZCBieSB0aGUgYmFzZSBjbGFzcy4gQ2xvc2VzIGEgbGVhayBpbiBpZGVudGl0eS4KCSAgRml4ZXMgYnVnICM0NDY3NjMuCgoyMDA4LTA1LTE5IDE2OjM2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRXhwb3NlIGEgbWV0aG9kIHRoYXQgd2FzIHByZXZpb3VzbHkgdXNlZCBpbnRlcm5hbGx5IHRvIHN5bmNocm9uaXplIGFnYWluc3QgdGhlIGNsb2NrIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWZ1bCBmb3Igc3ViLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBhIG1ldGhvZCB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW50ZXJuYWxseSB0byBzeW5jaHJvbml6ZQoJICBhZ2FpbnN0IHRoZSBjbG9jayBiZWNhdXNlIGl0IGNhbiBiZSB1c2VmdWwgZm9yIHN1YmNsYXNzZXMgdG9vLgoJICBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkKCjIwMDgtMDUtMTkgMTE6NTk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBzbWFsbGVyIGJ1ZmZlcnMgdGhhbiByZXF1ZXN0ZWQgKGFuZCBmYWxsYmFjayB0byBub3JtYWwgYnVmZmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKToKCSAgQWRkIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IHNtYWxsZXIgYnVmZmVycwoJICB0aGFuIHJlcXVlc3RlZCAoYW5kIGZhbGxiYWNrIHRvIG5vcm1hbCBidWZmZXIgYWxsb2MgaWYgd2UgZG8pLgoKMjAwOC0wNS0xOSAxMToxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmYWN0b3IgYWRqdXN0aW5nIHRoZSBydW5uaW5nX3RpbWUgd2l0aCBsYXRlbmN5IGFuZCBvZmZzZXQgaW50byBhIHNlcGFyYXRlIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19hZGp1c3RfdGltZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIFJlZmFjdG9yIGFkanVzdGluZyB0aGUgcnVubmluZ190aW1lIHdpdGggbGF0ZW5jeSBhbmQgb2Zmc2V0IGludG8gYQoJICBzZXBhcmF0ZSBtZXRob2QuCgkgIFdoZW4gZG9pbmcgY2xpcHBpbmcsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBzdWJjbGFzcyBnZXRfdGltZXMgbWV0aG9kLAoJICBqdXN0IGluIGNhc2UgdGhlIERVUkFUSU9OIG9yIFRJTUVTVEFNUCBhcmUgbm90IHNldC4KCjIwMDgtMDUtMTkgMTA6NDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKCksICM1MzM3NDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSgpLCAjNTMzNzQwLgoKMjAwOC0wNS0xOSAxMDoyOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgcmlnaHQgZXJyb3IgY29kZSB3aGVuIHR5cGVmaW5kaW5nIGZhaWxzLCBzbyB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0ICh0cmFuc2xhdGVkKSBlcnJvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIFVzZSByaWdodCBlcnJvciBjb2RlIHdoZW4gdHlwZWZpbmRpbmcgZmFpbHMsIHNvIHdlIGNhbiB1c2UKCSAgdGhlIGRlZmF1bHQgKHRyYW5zbGF0ZWQpIGVycm9yIG1lc3NhZ2VzLgoKMjAwOC0wNS0xOSAxMDowMzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBXaGVuIHRoZSBzdWJjbGFzcyBkaWQgbm90IHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMsIGNvbmZpZ3VyZSB0aGUgY2FwcyB3ZSBuZWdvdGlhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgV2hlbiB0aGUgc3ViY2xhc3MgZGlkIG5vdCBzZXQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLCBjb25maWd1cmUgdGhlCgkgIGNhcHMgd2UgbmVnb3RpYXRlZCBvbiB0aGUgc291cmNlIHBhZC4KCSAgV2hlbiB0aGUgdHlwZWZpbmQgaGVscGVyIGRvZXMgbm90IGZpbmQgY2FwcywgZXJyb3Igb3V0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgZG9pbmcgdGhpbmdzIHdpdGggTlVMTCBjYXBzLgoKMjAwOC0wNS0xOCAxODo1Mzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5oOiBUYWJzIHRvIHNwYWNlcywgb2ggeWVzIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgVGFicyB0byBzcGFjZXMsIG9oIHllcyEKCjIwMDgtMDUtMTggMTI6MTM6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoKMjAwOC0wNS0xOCAxMTo1MjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZCBEYXZpZCdzIGFuZCBCZW5qYW1pbidzIHRlc3RzIGZvciBhcnJheSBzdWJ0cmFjdGlvbiB0byB0aGUgdW5pdCB0ZXN0IHN1aXRlLCB3aGljaCBzdWdnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAodGVzdF9pbnRlcnNlY3QyKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIERhdmlkJ3MgYW5kIEJlbmphbWluJ3MgdGVzdHMgZm9yIGFycmF5IHN1YnRyYWN0aW9uIHRvIHRoZQoJICB1bml0IHRlc3Qgc3VpdGUsIHdoaWNoIHN1Z2dlc3RzIHRoYXQgIzE0NzkzMSBpcyBmaXhlZCB0aGVzZSBkYXlzLgoKMjAwOC0wNS0xOCAxMTozNTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBEb2N1bWVudCB0aGF0IGdzdF9ldmVudF9uZXdfdGFnKCkgYW5kIGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbigpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSB0YWdsaXN0L3N0cnVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRG9jdW1lbnQgdGhhdCBnc3RfZXZlbnRfbmV3X3RhZygpIGFuZCBnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24oKQoJICB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdGFnbGlzdC9zdHJ1Y3R1cmUgcGFzc2VkIHRvIHRoZW0uICgjNTMzNjM1KS4KCjIwMDgtMDUtMTcgMTc6MjA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZyBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZwoJICBpcyBkaXNhYmxlZC4KCSAgKiBkb2NzL1JFQURNRToKCSAgQWRkIGEgbm90ZSBhYm91dCB0aGUgbmV3IHR5cGU6R1R5cGVOYW1lIHN5bnRheCBmb3IgdGhlIHBsdWdpbgoJICBkb2N1bWVudGF0aW9uIC50eXBlcyBmaWxlLgoKMjAwOC0wNS0xNyAxMzo1NDo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogTWFyayB0aGUgZGVidWcgc3RyaW5nIHBhcmFtZXRlcnMgYXMgY29uc3QuIEZpeGVzIGJ1ZyAjNTMzNDkwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld19pbmZvKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYXJrIHRoZSBkZWJ1ZyBzdHJpbmcgcGFyYW1ldGVycyBhcyBjb25zdC4gRml4ZXMgYnVnICM1MzM0OTAuCgoyMDA4LTA1LTE2IDIxOjA5OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IHN0b3AgdG8gc2VhcmMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0CgkgIHN0b3AgdG8gc2VhcmNoIGZvciBhIGNhY2hlZCBidWZmZXIgdGhhdCBjb250YWlucyB0aGUgcmVxdWVzdGVkIGRhdGEKCSAgdG9vIGVhcmx5LgoJICBBbHNvIHJlYWQgYSBtaW5pbXVtIG9mIDRrIGJ5dGVzIGluc3RlYWQgb2YgNTEyIGJ5dGVzIGFzIHRoaXMgaXMgYSBiaXQKCSAgbW9yZSBlZmZpY2llbnQuIEZpeGVzIGJ1ZyAjNDU5ODYyLgoKMjAwOC0wNS0xNCAxODoxNzozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgSW1wcm92ZSBkb2NzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgb25lIGRlYnVnLWxvZyBzdGF0ZW1lbnQgdG8gaGVscCB0cmFjaW5nIHByb2JlbG1zIHdpdGggbGlua2luZyBwYWRzLgoKMjAwOC0wNS0xNCAxODowOTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIgd2luZG93cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIKCSAgd2luZG93cy4KCjIwMDgtMDUtMTQgMTM6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2Fwcyk6CgkgIFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgoyMDA4LTA1LTE0IDEwOjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHVubmVlZGVkIHZhbHVlIHVuc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgdW5uZWVkZWQgdmFsdWUgdW5zZXQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZS9zZXJpYWxpemF0aW9uIG9mIGNhcHMuCgoyMDA4LTA1LTEzIDEyOjU0OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGN1c3RvbSBtYXJzaGFsZXJzIHRoYXQgdGFrZSBHc3RNaW5pT2JqZWN0IGFzIGZpcnN0IHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgIFVzZSBjdXN0b20gbWFyc2hhbGVycyB0aGF0IHRha2UgR3N0TWluaU9iamVjdCBhcyBmaXJzdCBwYXJhbWV0ZXIuCgkgIFVzaW5nIE9CSkVDVCBhcyBwYXJhbWV0ZXIgd2hpbGUgYSBHc3RNaW5pT2JqZWN0IGlzIGdpdmVuIHdpbGwgbGVhZAoJICB0byBhc3NlcnRpb25zIGlmIGJ1aWx0IHdpdGggR19FTkFCTEVfREVCVUcuIEZpeGVzIGJ1ZyAjNTI1NTMyLgoKMjAwOC0wNS0xMyAxMjozODozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogQ2xlYW4gdXAgb24gRkxVU0hfU1RPUCBhbmQgbm90IEZMVVNIX1NUQVJULiBGb3J3YXJkIGJvdGggZXZlbnRzIGltbWVkaWF0ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbiB1cCBvbiBGTFVTSF9TVE9QIGFuZCBub3QgRkxVU0hfU1RBUlQuIEZvcndhcmQgYm90aCBldmVudHMKCSAgaW1tZWRpYXRlbHkuCgoyMDA4LTA1LTEzIDExOjQ1OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGb3J3YXJkIEZMVVNIX1NUQVJUIGV2ZW50cyBpbW1lZGlhdGVseSBhbmQgY2xlYW4gdXAgaW5zdGVhZCBvZiBjYWNoaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEZvcndhcmQgRkxVU0hfU1RBUlQgZXZlbnRzIGltbWVkaWF0ZWx5IGFuZCBjbGVhbiB1cCBpbnN0ZWFkIG9mCgkgIGNhY2hpbmcgdGhlbS4KCjIwMDgtMDUtMTMgMDc6MTE6MDUgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGJ5IGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kIGZhbGwgYmFjayB0byBkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGFuZAoJICBmYWxsIGJhY2sgdG8gZGVmYXVsdCBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4gZnVuY3Rpb24gaWYgdGhlIGNhcHMKCSAgYXJlIGRpZmZlcmVudCBmcm9tIHdoYXQgd2FzIHJlcXVlc3RlZC4gRml4ZXMgYnVnICM1MjY3NjguCgoyMDA4LTA1LTA5IDIwOjQ4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdCBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdAoJICBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuIEFsc28gYWRkCgkgIHVuaXQgdGVzdCBmb3IgZ3N0X3NlZ21lbnRfY29weSgpLgoKMjAwOC0wNS0wOSAxODoyNTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5oOiBUcnkgdG8gZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QgYWxpYXNpbmcgcnVsZXMnIHdhcm5pbmdzIHdpdGggQysrIGNvbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogKEdTVF9CT0lMRVJQTEFURV9GVUxMKToKCSAgVHJ5IHRvIGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0CgkgIGFsaWFzaW5nIHJ1bGVzJyB3YXJuaW5ncyB3aXRoIEMrKyBjb21waWxlcnMgYW5kIEdMaWIgPj0gMi4xNC4wOiBHTGliCgkgIGNoYW5nZWQgdGhlIGRlZmF1bHQgR1R5cGUgdHlwZWRlZiBmcm9tIGd1bG9uZyB0byBnc2l6ZSBhdCBzb21lIHBvaW50LAoJICBidXQga2VwdCBHVHlwZSB0eXBlZGVmJ2VkIHRvIGd1bG9uZyBmb3IgQysrIGZvciBBQkkgcmVhc29uczsgdGhlCgkgIGdfb25jZV8qIGZ1bmN0aW9ucyBhbGwgdGFrZSBhIGdzaXplICogdGhvdWdoLCBzbyB3b3JrIGFyb3VuZCB0aGUgdHlwZQoJICBtaXNtYXRjaCBmb3IgQysrIGJ5IGRvaW5nIGV2ZXJ5dGhpbmcgaW4gZ3NpemUgYW5kIGNhc3RpbmcgdG8gR1R5cGUKCSAgbGF0ZXIuCgoyMDA4LTA1LTA5IDE0OjAyOjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNpZ25hbHMgdG8gcHVzaCBvdXIgY29yZSBwbHVnaW4gZG9jcyBjb3ZlcmFnZSBiYWNrIHVwIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzaWduYWxzIHRvIHB1c2ggb3VyIGNvcmUgcGx1Z2luIGRvY3MKCSAgY292ZXJhZ2UgYmFjayB1cCB0byAxMDAlLgoKMjAwOC0wNS0wOCAxNDoyMzoxNiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6IFJldmVydGVkIEdTVF9GVU5DVElPTiB0byB0aGUgb2xkIHZlcnNpb24gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbCBzaWduYXR1cmUgaW4gQysrIGNvZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOgoJICBSZXZlcnRlZCBHU1RfRlVOQ1RJT04gdG8gdGhlIG9sZCB2ZXJzaW9uIGFzIHdlIGRvbid0IHdhbnQgdGhlCgkgIGZ1bGwgc2lnbmF0dXJlIGluIEMrKyBjb2RlLiBBbHNvIGFkZGVkIHN1cHBvcnQgZm9yIE1TVkMuCgoyMDA4LTA1LTA4IDExOjM3OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoKMjAwOC0wNS0wOCAxMToyNzo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IE1ha2UgR1NUX0JPSUxFUlBMQVRFIHRocmVhZC1zYWZlIGlmIGJ1aWxkaW5nIHdpdGggR0xpYiAyLjE0IG9yIG5ld2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSBHU1RfQk9JTEVSUExBVEUgdGhyZWFkLXNhZmUgaWYgYnVpbGRpbmcgd2l0aCBHTGliIDIuMTQgb3IgbmV3ZXIuCgoyMDA4LTA1LTA4IDA1OjU1OjM0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgcGFzc3Rocm91Z2ggYnVmZmVyIGFsbG9jYXRpb24gdG9vIGVhc2lseSBpZiB0aGUgY2FwcyBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHBhc3N0aHJvdWdoIGJ1ZmZlciBhbGxvY2F0aW9uIHRvbyBlYXNpbHkgaWYgdGhlIGNhcHMgY2hhbmdlLgoJICBUaGlzIGJyZWFrcyB3aGVuIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZSBhbmQgdXBzdHJlYW0gY2hhbmdlcwoJICBpdCdzIGNhcHMuIEZpeGVzIGJ1ZyAjNTI2NzY4LgoKMjAwOC0wNS0wNyAxOToyNDo0NCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmMgKGdzdF9kZWJ1Z19sb2dfdmFsaXN0KTogSW1wcm92ZWQgdGhlIF9fRklMRV9fIHBhcnQgb2YgZGVidWcgb3V0cHV0IGZvciBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jIChnc3RfZGVidWdfbG9nX3ZhbGlzdCk6CgkgIEltcHJvdmVkIHRoZSBfX0ZJTEVfXyBwYXJ0IG9mIGRlYnVnIG91dHB1dCBmb3IgTVNWQy4KCjIwMDgtMDUtMDcgMTk6MTU6MTQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOiBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoKMjAwOC0wNS0wNyAxOTowOTowOCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjogRG9uJ3QgZGVmaW5lIEdTVF9GVU5DVElPTiwgaWYgR0xpYiBzdXBwb3J0cyBNU1ZDIHdlJ2QgbXVjaCByYXRoZXIgdXNlIHRoZSByZWFsIHRoaW5nIHRoYW4gaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIERvbid0IGRlZmluZSBHU1RfRlVOQ1RJT04sIGlmIEdMaWIgc3VwcG9ydHMgTVNWQyB3ZSdkIG11Y2ggcmF0aGVyCgkgIHVzZSB0aGUgcmVhbCB0aGluZyB0aGFuIGhhdmluZyAiPz8/IiB1bmNvbmRpdGlvbmFsbHkuCgoyMDA4LTA1LTA3IDE4OjUxOjIyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKTogTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKToKCSAgTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCjIwMDgtMDUtMDcgMDk6NDc6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogU21hbGwgY29kZSBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgU21hbGwgY29kZSBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgRml4IHNvbWUgY29tbWVudHMuCgoyMDA4LTA1LTA3IDA5OjM0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEFkZGVkIGZvcm1hdCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBBZGRlZCBmb3JtYXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBuZXdzZWdtZW50IGV2ZW50cy4KCSAgQVBJOiBHc3RGYWtlU3JjOmZvcm1hdAoKMjAwOC0wNS0wNiAwODo0NTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfcGFkX2hhc19uYW1lKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BhZF9oYXNfbmFtZSgpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0wNiAwODo0Mzo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgYWxsb3cgbmVnYXRpdmUgc2l6ZXMgd2hlbiBhbGxvY2F0aW5nIG5ldyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBEb24ndCBhbGxvdyBuZWdhdGl2ZSBzaXplcyB3aGVuIGFsbG9jYXRpbmcgbmV3IGJ1ZmZlcnMuCgkgIEZpeGVzIGJ1ZyAjNDYxMjUzLgoKMjAwOC0wNS0wNSAxNjo0NzoyOSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb24ndCBwcmludCBhIHdhcm5pbmcgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5IHdoZW4gd2UgdHJ5IHRvIHBvcCBoZXJlLiBUaGF0IGNvdWxkIGhhcHBlbiBpZiBhbm90aGVyIHRocmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gbmV0PgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgRG9uJ3QgcHJpbnQgYSB3YXJuaW5nIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eSB3aGVuIHdlIHRyeSB0byBwb3AKCSAgaGVyZS4gVGhhdCBjb3VsZCBoYXBwZW4gaWYgYW5vdGhlciB0aHJlYWQgb3IgY2FsbGJhY2sgc2V0IHRoZQoJICBidXMgdG8gZmx1c2hpbmcgYmV0d2VlbiB0aGUgc291cmNlJ3MgY2hlY2svcHJlcGFyZSBhbmQgdGhlCgkgIGRpc3BhdGNoIGJlaW5nIGNhbGxlZCAoIzUzMTUzOCkuCgoyMDA4LTA1LTA1IDE2OjI1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFNtYWxsIGRvY3MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU21hbGwgZG9jcyBmaXguCgoyMDA4LTA1LTA1IDE1OjUwOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyB1aW50NjRzIGFuZCBjaGVjayBzb21lIHJlYWxseSBsYXJnZSBudW1iZXJzIGluIHRoZSBpbnQ2NCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIHVpbnQ2NHMgYW5kIGNoZWNrIHNvbWUgcmVhbGx5IGxhcmdlCgkgIG51bWJlcnMgaW4gdGhlIGludDY0IHRlc3QuCgoyMDA4LTA1LTA0IDE5OjA3OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG5fcHJpbnQpLCAocHJpbnRfaGllcmFyY2h5KSwKCSAgKHByaW50X2ludGVyZmFjZXMpLCAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCjIwMDgtMDUtMDQgMTQ6MjU6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYWtlIHNvbWUgY2hlY2tzIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgTWFrZSBzb21lIGNoZWNrcyBhY3R1YWxseSB1c2VmdWwuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgUmVtb3ZlIHNvbWUgdW51c2VkIGNvZGUuIFVuc2lnbmVkIGludGVnZXJzIHRlbmQgdG8gYmUgPj0gMC4KCjIwMDgtMDUtMDMgMTk6MjM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcyBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcwoJICBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgoyMDA4LTA1LTAzIDE5OjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgoyMDA4LTA1LTAzIDE5OjA4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGFsaWdubWVudCBvZiBkZWJ1ZyBsb2cgY29sdW1ucyBvbiA2NC1iaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBGaXggYWxpZ25tZW50IG9mIGRlYnVnIGxvZyBjb2x1bW5zIG9uIDY0LWJpdC4KCjIwMDgtMDUtMDMgMTY6NTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvOiBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgoyMDA4LTA1LTAzIDE1OjI1OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogTW92ZSBzb21lIHByaXZhdGUgZGVjbGFyYXRpb25zIGludG8gcHJpdmF0ZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIE1vdmUgc29tZSBwcml2YXRlIGRlY2xhcmF0aW9ucyBpbnRvIHByaXZhdGUgaGVhZGVycy4KCjIwMDgtMDUtMDIgMTA6MTI6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoZGVidWdfZHVtcF9lbGVtZW50X3BhZCk6CgkgIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMKCSAgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LCByZXN1bHRpbmcgaW4gYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0wNS0wMSAxMzowMzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZSBlbnRpcmUgZmlsZSBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZQoJICBlbnRpcmUgZmlsZSBwYXRoLgoKMjAwOC0wNC0zMCAxNDoyMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGVha19kb3duc3RyZWFtKToKCSAgU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsCgkgIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZXJlJ3MgYWx3YXlzIGRhdGEgaW4gdGhlIHF1ZXVlLCBzbyBtb3ZlCgkgIHRoZSBpc19mdWxsIGNoZWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxvb3AgKG90aGVyd2lzZSB3ZSdkCgkgIGhpdCB0aGUgYXNzZXJ0IHdoZW4gY2hhbmdpbmcgdGhlIGxpbWl0IHByb3BlcnRpZXMgd2hpbGUgdGhlCgkgIHF1ZXVlIGlzIGVtcHR5IG9yIG5vdCBydW5uaW5nIHlldCkuCgkgIEFsc28sIG9ubHkgc2V0IGEgZGlzY29udCBpZiBpdGVtcyB3ZXJlIGFjdHVhbGx5IHJlbW92ZWQgZnJvbQoJICB0aGUgcXVldWUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHRlc3RfbGVha3lfZG93bnN0cmVhbSk6CgkgIFRlc3QgY2FzZSBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wNC0zMCAwOTozNTo0MyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMgaW5zdGVhZCBvZiB3YWl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXMgSG9sbWJlcmcgPGpvbmFzIGRvdCBob2xtYmVyZyBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xlYWtfZG93bnN0cmVhbSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAocXVldWVfY2FwYWNpdHlfY2hhbmdlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMKCSAgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhIHB1c2ggb24gdGhlIHNpbmtwYWQuIEZpeGVzICM1MzA2MzcuCgoyMDA4LTA0LTMwIDA3OjU2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZWZhY3RvciBjb2RlIGFuZCBmaXggaGFuZGxpbmcgb2YgZ2hvc3RwYWRzIGFuZCB0aGVpciBwcm94eXBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJlZmFjdG9yIGNvZGUgYW5kIGZpeCBoYW5kbGluZyBvZiBnaG9zdHBhZHMgYW5kIHRoZWlyIHByb3h5cGFkcy4KCjIwMDgtMDQtMjkgMTE6MjM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBjaGVjayB0aGUgbmFtZSBvZiBhIGN1c3RvbSBldmVudCB3aXRoIGdzdF9ldmVudF9oYXNfbmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIG1ldGhvZCB0byBjb252ZW5pZW50bHkgY2hlY2sgdGhlIG5hbWUgb2YgYSBjdXN0b20gZXZlbnQgd2l0aAoJICBnc3RfZXZlbnRfaGFzX25hbWUoKS4KCSAgUmVmb3JtYXQgdGhlIGV2ZW50IGRvY3Mgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMgYXJlIHB1dCB0b2dldGhlciBpbnN0ZWFkCgkgIG9mIHRoZSBkZWZhdWx0IGFscGhhYmV0aWNhbCBzb3J0LgoJICBVcGRhdGUgdW5pdCB0ZXN0IHdpdGggbmV3IG1ldGhvZC4KCSAgQVBJOiBHc3RFdmVudDo6Z3N0X2V2ZW50X2hhc19uYW1lKCkKCjIwMDgtMDQtMjggMTg6NDQ6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBhZGQgYW4gZXhwbGljaXQgbGluayB0byBsaWJnc3RyZWFtZXItMC4xMC5sYTsgaXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdTVF9PQkpfTElCUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IGFkZCBhbiBleHBsaWNpdCBsaW5rIHRvIGxpYmdzdHJlYW1lci0wLjEwLmxhOyBpdCdzIGFscmVhZHkKCSAgaW5jbHVkZWQgaW4gR1NUX09CSl9MSUJTLgoKMjAwOC0wNC0yOCAwOToyMTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBSZWdpc3RlciBHc3RDbG9jayB0eXBlIGZyb20gYSB0eXBlLXNhZmUgY29udGV4dC4gRml4ZXMgYnVnICM1MzAzMTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgUmVnaXN0ZXIgR3N0Q2xvY2sgdHlwZSBmcm9tIGEgdHlwZS1zYWZlIGNvbnRleHQuIEZpeGVzIGJ1ZyAjNTMwMzE3LgoKMjAwOC0wNC0yNiAwMDoxMzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICB0b29scy9nc3QtcnVuLmM6IEluY2x1ZGUgPHVuaXN0ZC5oPiBjb25kaXRpb25hbGx5IG9uIEhBVkVfVU5JU1REX0ggYXMgZWxzZXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnkgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBJbmNsdWRlIDx1bmlzdGQuaD4gY29uZGl0aW9uYWxseSBvbiBIQVZFX1VOSVNURF9IIGFzIGVsc2V3aGVyZS4KCjIwMDgtMDQtMjUgMTc6NTQ6MjggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSB0aGUgR0xpYiBzdHVmZiB0byBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBVc2UgdGhlIEdMaWIgc3R1ZmYgdG8gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUuCgkgIEFkZCBzb21lIGxvY2tpbmcgYXJvdW5kIHNvbWUgZGlzcG9zZSBtZXRob2RzIHRvIG1ha2UgdGhlbSBhIGxpdHRsZQoJICBzYWZlciwgc2VlICM1Mjk3MjMuIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCjIwMDgtMDQtMjUgMTM6MjI6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoKMjAwOC0wNC0yNSAxMzowOTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGb3Jnb3QgdG8gYWxzbyBhZGQgdGhlIGVudnZhciBkb2NzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRm9yZ290IHRvIGFsc28gYWRkIHRoZSBlbnZ2YXIgZG9jcyBoZXJlLgoKMjAwOC0wNC0yNSAxMDowMTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlZiBzb21lIG1vcmUgY2xhc3NlcyBpbiBnc3RfaW5pdCgpIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIHByZS0yLjE2IEdMaWJzLCBhbmQgYWRkIGJhc2ljIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocGlwZWxpbmVfdGhyZWFkKSwKCSAgKHRlc3RfY29uY3VycmVudF9jcmVhdGUpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgUmVmIHNvbWUgbW9yZSBjbGFzc2VzIGluIGdzdF9pbml0KCkgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eQoJICBpc3N1ZXMgaW4gcHJlLTIuMTYgR0xpYnMsIGFuZCBhZGQgYmFzaWMgdW5pdCB0ZXN0LgoKMjAwOC0wNC0yNSAwNzoyMjoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbSBxdWVyeSwgZXZlbiBpZiB3ZSBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbQoJICBxdWVyeSwgZXZlbiBpZiB3ZSBhcmUgbm90IGxpdmUgc28gdGhhdCB0aGUgdXBzdHJlYW0gZWxlbWVudHMgY2FuIGdldCB0aGUKCSAgbGF0ZW5jeSByZXN1bHRzIHRvby4gSWYgd2UgZmFpbCBkb2luZyB0aGUgcXVlcnkgYW5kIHdlIGFyZSBsaXZlLCB3ZQoJICByZXR1cm4gVFJVRSBhZnRlcndhcmRzLgoKMjAwOC0wNC0yNCAxNToxNDo1NCArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIEVuYWJsZS9kaXNhYmxlIHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSgpIGJhc2VkIG9uIGNvbW1hbmRsaW5lIHN3aXRjaCBvciBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRml4ZXMgIzUyMDQ2OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3QuYzoKCSAgRW5hYmxlL2Rpc2FibGUgc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KCkgYmFzZWQgb24gY29tbWFuZGxpbmUgc3dpdGNoCgkgIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLiBGaXhlcyAjNTIwNDY4LgoJICAqIENoYW5nZUxvZzoKCSAgRml4IHR5cG8gaW4gbXkgcHJldmlvdXMgY29tbWl0LgoKMjAwOC0wNC0yNCAwODoyNzo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFkZCBhIHdhcm5pbmcgb2Ygd2UgaGl0IHVuaGFuZGxlZCBmYWN0b3JpZXMgd2hlbiBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBZGQgYSB3YXJuaW5nIG9mIHdlIGhpdCB1bmhhbmRsZWQgZmFjdG9yaWVzIHdoZW4gc2F2aW5nLgoJICBNb3JlIGRlYnVnIGxvZ2dpbmcgZGV0YWlsLCBidXQgbW92ZSB0byBMT0cgY2F0ZWdvcnkuCgoyMDA4LTA0LTI0IDA2OjQ2OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogVGVsbCB0aGUgKnRydXRoKiB3aGVuIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFRlbGwgdGhlICp0cnV0aCogd2hlbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTA0LTIzIDE0OjU0OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogVW5yZWYgdGhlIGZhY3RvcnkgYWZ0ZXIgaXQgd2FzIHVzZWQgdGhlIGxhc3QgdGltZSwgbm90IGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBVbnJlZiB0aGUgZmFjdG9yeSBhZnRlciBpdCB3YXMgdXNlZCB0aGUgbGFzdCB0aW1lLCBub3QgYmVmb3JlLgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBhbmQgZG9uJ3QgbGVhayBhIHJlZiB0byB0aGUgaW5kZXggZmFjdG9yeSB3aXRoCgkgIGVhY2ggY2FsbC4KCjIwMDgtMDQtMjMgMTM6NTU6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDQtMjMgMTA6MTQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFRoZSBnbGliIG1hY3JvIHNlZW1zIHRvIGJlIGJvcmtlZC4gVXNlIGdfc2xpY2VfY29weSBkaXJlY3RseSBhbmQgY2FzdCBpbiB0aGUgaG9wZSB0aGF0IHRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBUaGUgZ2xpYiBtYWNybyBzZWVtcyB0byBiZSBib3JrZWQuIFVzZSBnX3NsaWNlX2NvcHkgZGlyZWN0bHkgYW5kIGNhc3QKCSAgaW4gdGhlIGhvcGUgdGhhdCB0aGlzIGZpeGVzIHRoZSB3YXJuaW5nIG9uIDY0Yml0LgoKMjAwOC0wNC0yMyAwNzowODo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4gVXNlIGdfc2xpY2VfZHVwKCkgKG5vIG5lZWQgZm9yIGdzdF9zZWdtZW50X2luaXQoKSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50IHRoZSBuZXcgZnVuY3Rpb24uIFVzZSBnX3NsaWNlX2R1cCgpIChubyBuZWVkIGZvcgoJICBnc3Rfc2VnbWVudF9pbml0KCkpLgoKMjAwOC0wNC0yMyAwNjo1NzozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTW92ZSBHUGFyYW1TZXBjIG1hY3JvcyB0byBzdGFuZGFydCBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNb3ZlIEdQYXJhbVNlcGMgbWFjcm9zIHRvIHN0YW5kYXJ0IHNlY3Rpb24uCgkgICogZ3N0L2dzdGJpbi5jOgoJICBEbid0IGRvY3VtZW50IF9nZXRfdHlwZSAtIGl0cyBpbiBwcml2YXRlIHNlY3Rpb24gaW4gZG9jcyBhbnl3YXkgYW5kCgkgIHRoaXMgZG9jLWJsb2Igd2FzIGluY29tcGxldGUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCB3cm9uZyBzeW1ib2wgbmFtZXMgaW4gZG9jcy4KCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIEFkZCBvbmNlIGRvYyBzZW50ZW5jZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA0LTIxIDEwOjI1OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbTogQW5kIHJlbW92ZSB0aG9zZSBsaWJzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBBbmQgcmVtb3ZlIHRob3NlIGxpYnMgaGVyZS4KCjIwMDgtMDQtMjEgMDk6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBkb2NzIGJ1aWxkIGFnYWluIGJ5IGFkZGluZyBsaWJnc3RuZXQtMC4xMC5zbyB0byBTQ0FOT0JKX0RFUFMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IGRvY3MgYnVpbGQgYWdhaW4gYnkgYWRkaW5nIGxpYmdzdG5ldC0wLjEwLnNvIHRvIFNDQU5PQkpfREVQUy4KCjIwMDgtMDQtMjEgMDg6MzQ6MDkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCB0aGUgbWluLXRocmVzaG9sZCB0byB0aGUgbWluIGxhdGVuY3kgaWYgcG9zc2libGUuIEZpeGVzICM1MjkxNDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBBZGQgdGhlIG1pbi10aHJlc2hvbGQgdG8gdGhlIG1pbiBsYXRlbmN5IGlmIHBvc3NpYmxlLiBGaXhlcyAjNTI5MTQ4LgoKMjAwOC0wNC0yMSAwNzo0NTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOiBTdHVwaWQgZWRpdG9yLCBJIHJlbW92ZWQgdGhhdCBsaW5lIGFzIGl0IHNob3VsZCBnbyBpbiB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgU3R1cGlkIGVkaXRvciwgSSByZW1vdmVkIHRoYXQgbGluZSBhcyBpdCBzaG91bGQgZ28gaW4geWV0LgoKMjAwOC0wNC0yMSAwNzo0MjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIFJlZm9ybWF0IGFuZCBjbGVhbnVwLiBBZGQgY29tbWVudCBmb3IgbWluaW9iamVjdCB0eXBlcy4KCjIwMDgtMDQtMjAgMTY6MzI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBsZWFrOiBnX3N0cmRvd24gb3BlcmF0ZXMgb24gdGhlIHN0cmluZyBpbiBwbGFjZSwgd2hpbGUgZ19hc2NpaV9zdHJkb3duKCkgcmV0dXJucyBhIG5ld2x5LWFsbG9jYXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpOgoJICBGaXggbGVhazogZ19zdHJkb3duIG9wZXJhdGVzIG9uIHRoZSBzdHJpbmcgaW4gcGxhY2UsIHdoaWxlCgkgIGdfYXNjaWlfc3RyZG93bigpIHJldHVybnMgYSBuZXdseS1hbGxvY2F0ZWQgc3RyaW5nLgoKMjAwOC0wNC0yMCAwOTo1NToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgdGhlIFVSSSBwcm90b2NvbHMgYW5kIHRoZSBVUkkgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF91cmlfaGFuZGxlcl9pbmZvKSwKCSAgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFByaW50IHRoZSBVUkkgcHJvdG9jb2xzIGFuZCB0aGUgVVJJIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBlbGVtZW50LgoKMjAwOC0wNC0xOSAxNjowNTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogVXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkIGdfdmFsdWVfc2V0X3N0cmluZ190YWtlX293bmVyc2hpcCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEpOgoJICBVc2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQKCSAgZ192YWx1ZV9zZXRfc3RyaW5nX3Rha2Vfb3duZXJzaGlwKCkuCgoyMDA4LTA0LTE5IDE1OjQyOjE5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmV0dXJuIHRoZSBvbGQgQ1JDIGluc3RlYWQgb2YgMCBpZiB3ZSBnaXZlIGEgTlVMTCBidWZmZXIgb3IgYSBidWZmZXIgd2l0aCBhIGxlbmd0aCBvZiAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKF9nc3RfY3JjMzIpOgoJICBSZXR1cm4gdGhlIG9sZCBDUkMgaW5zdGVhZCBvZiAwIGlmIHdlIGdpdmUgYSBOVUxMIGJ1ZmZlcgoJICBvciBhIGJ1ZmZlciB3aXRoIGEgbGVuZ3RoIG9mIDAuCgoyMDA4LTA0LTE5IDE1OjM2OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbCB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9wcm90b2NvbF9jaGVja19pbnRlcm5hbCksCgkgIChnc3RfdXJpX2dldF9wcm90b2NvbCksIChnc3RfdXJpX2hhc19wcm90b2NvbCksCgkgIChnc3RfdXJpX2NvbnN0cnVjdCksIChnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSk6CgkgIEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbAoJICB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDM5ODYgU2VjdGlvbiAzLjEuCgkgIEhhbmRsZSBVUkkgc2NoZW1lcyBjYXNlIGluc2Vuc2l0aXZlIGluIGFsbCBwbGFjZXMgYW5kIGNvbnZlcnQKCSAgdG8gbG93ZXItY2FzZSB3aGVuIGNvbnN0cnVjdGluZyBhbiBVUkkgb3Igc2V0dGluZyBhbiBVUkkgd2l0aAoJICB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UuIEZpeGVzIGJ1ZyAjNTI4ODY4LgoJICBBbGwgZWxlbWVudHMgY2FuIHN0aWxsIGFzc3VtZSAoYXMgYmVmb3JlKSB0aGF0IHRoZXkgd2lsbAoJICBnZXQgcGFzc2VkIFVSSXMgd2l0aCBhIGxvd2VyLWNhc2UgVVJJIHNjaGVtZSBieSB0aGUgR3N0VVJJSGFuZGxlcgoJICBpbnRlcmZhY2UuCgoyMDA4LTA0LTE3IDEwOjA5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoKMjAwOC0wNC0xNyAwODo0NToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCAyIGNhcHMgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCAyIGNhcHMgbGVha3MuCgoyMDA4LTA0LTE3IDA4OjM0OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKyBnX2F0b21pY19pbnRfZ2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KToKCSAgVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKwoJICBnX2F0b21pY19pbnRfZ2V0KCkuCgoyMDA4LTA0LTE3IDA3OjE0OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuKjogQVBJOiBEZXByZWNhdGUgZ3N0X2F0b21pY19pbnRfc2V0KCksIGdfYXRvbWljX2ludF9zZXQoKSBzaG91bGQgYmUgdXNlZCBub3cgdGhhdCB3ZSBkZXBlbmQgb24gbmV3IGVub3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogRGVwcmVjYXRlIGdzdF9hdG9taWNfaW50X3NldCgpLCBnX2F0b21pY19pbnRfc2V0KCkgc2hvdWxkIGJlIHVzZWQKCSAgbm93IHRoYXQgd2UgZGVwZW5kIG9uIG5ldyBlbm91Z2ggR0xpYi4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KSwgKGdzdF9kZWJ1Z19zZXRfY29sb3JlZCksCgkgIChnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKSwgKF9nc3RfZGVidWdfY2F0ZWdvcnlfbmV3KSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ19hdG9taWNfaW50X3NldCgpIGluc3RlYWQgb2YgZ3N0X2F0b21pY19pbnRfc2V0KCkuCgoyMDA4LTA0LTE2IDE4OjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoKMjAwOC0wNC0xNiAxODozODoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdfR0lOVDY0X0NPTlNUQU5UIGluIHZhcmFyZ3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFVzZSBHX0dJTlQ2NF9DT05TVEFOVCBpbiB2YXJhcmdzIGZ1bmN0aW9uLgoKMjAwOC0wNC0xNiAxNTo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyk6CgkgIEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoKMjAwOC0wNC0xNiAxNDoxODo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEFkZCBjcmMzMiBjaGVja3N1bSB0byB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUgYW5kIGNoZWNrIHRoaXMgYmVmb3JlIGFjY2VwdGluZyBhIHJlZ2lzdHJ5IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoX2dzdF9jcmMzMiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQWRkIGNyYzMyIGNoZWNrc3VtIHRvIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZSBhbmQgY2hlY2sgdGhpcyBiZWZvcmUKCSAgYWNjZXB0aW5nIGEgcmVnaXN0cnkgZmlsZS4KCSAgQWxzbyBmcmVlIHRoZSBkYXRhIGxpc3Qgd2hlbiB3cml0aW5nIHRvIHRoZSByZWdpc3RyeSBmaWxlIGZhaWxzLgoKMjAwOC0wNC0xNiAxMzoxNjo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyCgkgIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvY29scyBidXQgdGhpcyBwb2ludGVyIGNvbnRhaW5zIG5vdGhpbmcKCSAgZG9uJ3QgdHJ5IHRvIHNhdmUgdGhhdCBhcyBpdCB3aWxsIGNvcnJ1cHQgdGhlIHJlZ2lzdHJ5LgoJICBEb24ndCB1bnJlZiB0aGUgcGx1Z2luIGlmIHdlIGFkZGVkIGl0IHRvIHRoZSByZWdpc3RyeSBhbHJlYWR5IGJ1dAoJICBmYWlsIHRvIGxvYWQgYSBmZWF0dXJlIGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgdGFrZXMgb3duZXJzaGlwCgkgIG9mIHRoZSBwbHVnaW4uCgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoKMjAwOC0wNC0xNiAwODozMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogQ2xhcmlmeSBzb21lIHRhZyBpdGVtIGRvY3MgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIENsYXJpZnkgc29tZSB0YWcgaXRlbSBkb2NzIGFmdGVyIGRpc2N1c3Npb24gb24gaXJjLgoKMjAwOC0wNC0xNSAwNjoyMzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGx1Z2lucyAodGhleSBoYXZlIHRoZWlyIG93biBkb2NzKS4gVXBkYXRlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwbHVnaW5zICh0aGV5IGhhdmUgdGhlaXIgb3duIGRvY3MpLiBVcGRhdGUKCSAgY29tbWVudHMuCgoyMDA4LTA0LTE1IDA2OjE2OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgR1NUX1BBUkFNX0NPTlRST0xMQUJMRSBhbmQgR1NUX1BBUkFNX1VTRVJfU0hJRlQuIE1vdmUgcGFyYW1zcGVjIGRvY3MgdG8gb3duIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgIEFkZCBHU1RfUEFSQU1fQ09OVFJPTExBQkxFIGFuZCBHU1RfUEFSQU1fVVNFUl9TSElGVC4gTW92ZSBwYXJhbXNwZWMKCSAgZG9jcyB0byBvd24gc2VjdGlvbi4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVGhpcyBub3cgb25seSBkb2N1bWVudHMgR1ZhbHVlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIFJlbW92ZSBHU1RfUEFSQU1fQ09OVFJPTExBQkxFLgoKMjAwOC0wNC0xNSAwNTo1NDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IENvcnJlY3QgZmlsZSBwYXRoLiBUZWxsIGFib3V0IGhvdyB0byB1c2UgLW92ZXJyaWRlcy50eHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBDb3JyZWN0IGZpbGUgcGF0aC4gVGVsbCBhYm91dCBob3cgdG8gdXNlIC1vdmVycmlkZXMudHh0LgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBTbWFsbCBkZXNpZ24gdXBkYXRlLgoKMjAwOC0wNC0xNCAxMjoxMjoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzCgkgIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgd2lsbCBvbmx5IGZhaWwgaWYgc29tZXRoaW5nIGlzIHJlYWxseSB3cm9uZwoJICBhbHJlYWR5IGFuZCB3ZSBjYW4ndCBzdXJ2aXZlIGl0IGFueXdheS4KCjIwMDgtMDQtMTQgMDg6NDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFByZS1yZWdpc3RlciBHc3RHRXJyb3IgR1R5cGUgZnJvbSBhIHRocmVhZC1zYWZlIGNvbnRleHQgKGZpeGVzICM1Mjc5NjcpOyB1bnJlZiBlbnVtIHR5cGUgY2xhc3NlcyBpbiBkZWluaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCksIChnc3RfZGVpbml0KToKCSAgUHJlLXJlZ2lzdGVyIEdzdEdFcnJvciBHVHlwZSBmcm9tIGEgdGhyZWFkLXNhZmUgY29udGV4dAoJICAoZml4ZXMgIzUyNzk2Nyk7IHVucmVmIGVudW0gdHlwZSBjbGFzc2VzIGluIGRlaW5pdC4KCjIwMDgtMDQtMTMgMTk6NTg6NDMgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbmUgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKToKCSAgTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkCgkgIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZCBub3QgdGhlIHNlY29uZCBsaXN0ICgjNTEyNTc4KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRhZyBtZXJnZSBtb2RlcyBhbmQgdGhlIGFmb3JlbWVudGlvbmVkIGJ1Zy4KCjIwMDgtMDQtMTMgMTg6NTA6MDUgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgb3JkZXIgaW4gdGhlIHRhYmxlICgjNTEyNTc3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW5lIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IGRlc2NyaXB0aW9uIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgdGFibGUgKCM1MTI1NzcpLgoKMjAwOC0wNC0xMyAxNzo1MTowMiArMDAwMCAgS3dhbmcgWXVsIFNlbyA8a3dhbmd5dWwuc2VvLmdtYWlsLmNvbT4KCgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGlmIGl0J3Mgbm90IGRlZmluZWQgeWV0LiBGaXhlcyBjb21waWxhdGlvbiB3aXRoIE1TVkM2IGFuZCBvdGhlciB2ZXJzaW9ucyB3aGVyZSBzb2NrbGVuX3QgaXMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEt3YW5nIFl1bCBTZW8gIDxrd2FuZ3l1bC5zZW8gZ21haWwgY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgRGVmaW5lIHNvY2tsZW5fdCBhcyBpbnQgaWYgaXQncyBub3QgZGVmaW5lZCB5ZXQuIEZpeGVzIGNvbXBpbGF0aW9uCgkgIHdpdGggTVNWQzYgYW5kIG90aGVyIHZlcnNpb25zIHdoZXJlIHNvY2tsZW5fdCBpcyBub3QgZGVmaW5lZCBpbgoJICB0aGUgd2luZG93cyBoZWFkZXJzICgjNTE4MDIyKS4KCjIwMDgtMDQtMTMgMTM6NTQ6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcyBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcwoJICBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1c2UgaXQgYW55bW9yZSBhbmQgaW5zdGVhZCBlcnJvciBvdXQuCgoyMDA4LTA0LTEyIDIwOjUyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRGUtY3J1ZnQgYSBiaXQuIElmIG5vIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgcHJpbnQgYWxsIGVsZW1lbnRzIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pLCAobWFpbik6CgkgIERlLWNydWZ0IGEgYml0LiBJZiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHByaW50IGFsbCBlbGVtZW50cyBpbgoJICBYTUwgc3ludGF4IHJhdGhlciB0aGFuIGEgZnJlZXN0eWxlIGxpc3Qgb2YgZWxlbWVudHMgbGlrZSBnc3QtaW5zcGVjdC4KCSAgQWxzbywgZG9uJ3QgcHJpbnQgWE1MIGhlYWRlciBjaHVuayB1bmxlc3Mgd2UgYWN0dWFsbHkgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHJpbnQgKGllLiBkb24ndCBwcmludCBpdCBiZWZvcmUgYW4gZXJyb3IgbWVzc2FnZSk7IHByaW50IGVycm9yCgkgIG1lc3NhZ2UgdG8gc3RkZXJyIG5vdCBzdGRvdXQuIFJlbW92ZSBzdXBwb3J0IGZvciBwcmludGluZyBwbHVnaW4KCSAgaW5mbyAoaXQgd291bGQganVzdCBvdXRwdXQgc29tZXRoaW5nIGZyZWVzdHlsZSBhbG9uZyB0aGUgbGluZXMgb2YKCSAgZ3N0LWluc3BlY3Qgc28gZmFyKSwgd2hpY2ggZml4ZXMgIzUxNDUwNy4gQWxzbyBhZGQgbGljZW5zZSBoZWFkZXIuCgoyMDA4LTA0LTExIDA5OjI3OjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMTEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgKiBjb25maWd1cmUuYWM6IE1lcmdlIHBsYXRmb3JtIHNwZWNpZmljIGRlZmluZXMsIGludHJvZHVjZSBhIG5ldwoJICBkZWZpbmUgb24gT1MgWCB0byByZW1lbWJlciB0aGF0IGZvcmtpbmcgd2hlbiB1cGRhdGluZyByZWdpc3RyeSBpcwoJICB1bnNhZmUuCgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBVcGRhdGVkIHRvIGluY2x1ZGUgZ3N0LWxpYnMgaW4gdGhlIGJhZAoJICBtb2R1bGUuCgkgICogZ3N0L2dzdC5jOiBEb24ndCBmb3JrIHdoZW4gdXBkYXRpbmcgcmVnaXN0cnkgaWYgR1NUX0hBVkVfVU5TQUZFX0ZPUksKCSAgaXMgZGVmaW5lZC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOiBGaXhlZCBhIGJvZ3VzCgkgIGNvbmRpdGlvbiB0aGF0IGxlYWRzIHRvIGFic29sdXRlbHkgbm8gcGx1Z2lucyBiZWluZyByZWdpc3RlcmVkIG9uCgkgIE9TIFguCgoyMDA4LTA0LTEwIDIwOjQ2OjUxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgQWRkIGdzdF9wYWRfYWRkXypfcHJvYmVfZnVsbCgpIGZ1bmN0aW9ucyB3aXRoIGEgbm90aWZ5IGNhbGxiYWNrIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGZyZWUgdGhlIGRhdGEgaXQgcGFzc2VzIHRvIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcGFkX2FkZF8qX3Byb2JlX2Z1bGwoKSBmdW5jdGlvbnMgd2l0aCBhIG5vdGlmeSBjYWxsYmFjayB0aGF0CgkgIGxldHMgdGhlIGNhbGxlciBmcmVlIHRoZSBkYXRhIGl0IHBhc3NlcyB0byB0aGUgcHJvYmUgZnVuY3Rpb25zLiBUaGlzCgkgIGlzIHVzZWZ1bCBmb3IgYmluZGluZ3Mgc3VjaCBhcyBnc3QtcHl0aG9uIG9yIGdzdHJlYW1lcm1tICgjNTI2ODE0KS4KCSAgQVBJOiBnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwKCSAgQVBJOiBnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbAoJICBBUEk6IGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1pbmltYWwgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBmcmVlaW5nIHRoZSBkYXRhIGFjdHVhbGx5IHdvcmtzCgkgIGFzIGV4cGVjdGVkLgoJICAqIHRlc3RzL2JlbmNobWFya3MvLmN2c2lnbm9yZToKCSAgUmFuZG9tIGN2c2lnbm9yZSBhZGRlbmR1bS4KCjIwMDgtMDQtMTAgMTk6MTM6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5oOiBNZW50aW9uIEdzdERlYnVnR3JhcGhEZXRhaWxzIGVudW0gdHlwZSBpbiBkb2MgYmx1cmIgc28gd2UgZ2V0IGEgbGluayB0byBpdCBpbiB0aGUgZG9jcyAoc2luY2UgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDogKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEVfV0lUSF9UUyksCgkgIChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKToKCSAgTWVudGlvbiBHc3REZWJ1Z0dyYXBoRGV0YWlscyBlbnVtIHR5cGUgaW4gZG9jIGJsdXJiIHNvIHdlIGdldCBhIGxpbmsKCSAgdG8gaXQgaW4gdGhlIGRvY3MgKHNpbmNlIHRoZXNlIGFyZSBtYWNyb3MgdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMKCSAgd29uJ3QgYmUgc2hvd24gaW4gdGhlIGRvY3Mgb3RoZXJ3aXNlKS4KCjIwMDgtMDQtMTAgMTQ6MTA6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgoyMDA4LTA0LTEwIDEzOjU5OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYyB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYwoJICB3YXJuaW5nLgoKMjAwOC0wNC0wOSAyMjozNzoyMiArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6ICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBGaXhlcyAjNTE4OTMyLgoJICBBUEk6IGdzdF9zZWdtZW50X2NvcHkoKQoKMjAwOC0wNC0wOSAyMToyNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IGNvbnN0IHBvc2l0aW9uOyByZWYgR1R5cGUgY2xhc3NlcyBmb3IgZW51bSB0eXBlcyB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHTGliIHZlcnNpb25zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGluaXRfcG9zdCk6CgkgIEZpeCBjb25zdCBwb3NpdGlvbjsgcmVmIEdUeXBlIGNsYXNzZXMgZm9yIGVudW0gdHlwZXMgdG8gd29yawoJICBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gR0xpYiB2ZXJzaW9ucyA8IDIuMTYuCgoyMDA4LTA0LTA5IDE4OjI2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OiBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKToKCSAgU2V0IGJ1ZmZlcmluZy1sZWZ0IHRvIDAgYXMgd2UncmUgbm90IGJ1ZmZlcmluZyBieSBkZWZhdWx0LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoKMjAwOC0wNC0wOSAxNzozNDo1NCArMDAwMCAgTWlsb3N6IERlcmV6eW5za2kgPGludGVybmFsZXJyb3JAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBNaWxvc3ogRGVyZXp5bnNraSA8aW50ZXJuYWxlcnJvciBnbWFpbCBjb20+CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFQKCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFRfTk9LRVkKCjIwMDgtMDQtMDkgMTM6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuaDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGaXggdHlwby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbnMuCgoyMDA4LTA0LTA5IDA4OjE5OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UIGV2ZW50IGFmdGVyIHByb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgIEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UCgkgIGV2ZW50IGFmdGVyIHByb2Nlc3Npbmcgc29tZSBkYXRhLiBGaXhlcyBidWcgIzUyNjA0Mi4KCjIwMDgtMDQtMDggMjA6Mjg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZW5hbWUgX2F2YWlsIC0+IF9yYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbmFtZSBfYXZhaWwgLT4gX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlCgoyMDA4LTA0LTA4IDIwOjE3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4gb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4KCSAgb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvZ3Jlc3MuCgoyMDA4LTA0LTA4IDE5OjU5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSksIChnc3RfcXVlcnlfc2V0X2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19zdGF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19hdmFpbCksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBBZGQgYWRpdGlvbmFsIGJ1ZmZlcmluZyBzdGF0cyBBUEkgZm9yIG1lc3NhZ2VzLgoJICBBZGQgYnVmZmVyaW5nIHF1ZXJ5LgoJICBDb252ZXJ0IHNvbWUgbGVmdG92ZXIgcXVlcmllcyB0byB1c2UgR3N0UXVhcmsuCgkgIEFQSTogZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IEdTVF9RVUVSWV9CVUZGRVJJTkcKCSAgQVBJOiBHc3RCdWZmZXJpbmdNb2RlCgkgIEFQSTogZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfYXZhaWwKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsCgoyMDA4LTA0LTA4IDE5OjUyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX3N0YXJ0KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCjIwMDgtMDQtMDggMTk6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVhcmsuKjogQWRkIHNvbWUgbW9yZSBxdWFya3MgbmVlZGVkIGZvciBtZXNzYWdlcyBhbmQgcXVlcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyBuZWVkZWQgZm9yIG1lc3NhZ2VzIGFuZCBxdWVyaWVzLgoKMjAwOC0wNC0wOCAxOToxNDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDogUmVtb3ZlIHRoZSAibm9uZSIgYnVmZmVyaW5nIG1vZGUsIFNUUkVBTSBpcyBhIGdvb2QgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBSZW1vdmUgdGhlICJub25lIiBidWZmZXJpbmcgbW9kZSwgU1RSRUFNIGlzIGEgZ29vZCBkZWZhdWx0LgoJICBNb3ZlIGVzdGltYXRlZC10aW1lIHRvIHRoZSBhdmFpbCBxdWVyeSwgdGhhdCdzIHdoZW4gaXQgd2lsbCBiZSBuZWVkZWQuCgkgIE90aGVyIHNtYWxsIHR5cG8gZml4ZXMgYW5kIHVwZGF0ZXMuCgoyMDA4LTA0LTA3IDEzOjI3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4LmM6IERvbid0IHB1dCBkZXNjcmlwdGlvbnMgaW50byB0aGUgbmljayBmaWVsZCBvZiBhIEdFbnVtVmFsdWU6IGl0J3Mgbm90IG1lYW50IGZvciB0aGF0IGFuZCBzb21lIGxhbmd1YWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X3Jlc29sdmVyX2dldF90eXBlKToKCSAgRG9uJ3QgcHV0IGRlc2NyaXB0aW9ucyBpbnRvIHRoZSBuaWNrIGZpZWxkIG9mIGEgR0VudW1WYWx1ZTogaXQncyBub3QKCSAgbWVhbnQgZm9yIHRoYXQgYW5kIHNvbWUgbGFuZ3VhZ2UgYmluZGluZ3MgcmVseSBvbiB0aGUgbmljayBmaWVsZCB0bwoJICBjb25zdHJ1Y3QgY29uc3RhbnRzIGFuZCB0aGUgbGlrZS4gRml4ZXMgIzUyNjcwNS4KCjIwMDgtMDQtMDcgMTA6NDg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTkVXUzoKCSAgKiBSRUxFQVNFOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCjIwMDgtMDQtMDYgMDg6NTQ6NDcgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBGaXhlcyBidWcgIzUyNjI0Ny4KCjIwMDgtMDQtMDUgMTA6NTg6MTEgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC5jOiBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoKMjAwOC0wNC0wNCAxMzo0MzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBkb2NzIHdpdGggbW9yZSBidWZmZXJpbmcgaWRlYXMuCgoyMDA4LTA0LTAzIDIxOjE1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4xOS4xIGFmdGVyIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMTkuMSBhZnRlciB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoKMjAwOC0wNC0wMyAxNjo0NTowMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIHRvIHdvcmsgd2l0aCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyB0byB3b3JrIHdpdGggZG9jcwoKMjAwOC0wNC0wMyAxNDo0OTowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCjIwMDgtMDQtMDMgMTQ6MjY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIHFvdXRlcyB0byB0aGUgZGVmaW5lLiBGaXhlcyAjIDUyNTk2MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgcW91dGVzIHRvIHRoZSBkZWZpbmUuIEZpeGVzICMgNTI1OTYxLgoKMjAwOC0wNC0wMyAwNzo1MjozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy86IFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKF9maWxlX2luZGV4X2lkX2ZyZWUpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksIChnc3RfZmlsZV9pbmRleF9hZGRfaWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfZ2V0X2Fzc29jX2VudHJ5KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwKCSAgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksIChnc3RfbWVtX2luZGV4X2FkZF9pZCksCgkgIChnc3RfbWVtX2luZGV4X2luZGV4X2Zvcm1hdCk6CgkgIFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCjIwMDgtMDQtMDIgMTc6NDU6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVybmFsKToKCSAgVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgoyMDA4LTA0LTAyIDE3OjIxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBGaXggcGFkIGxlYWsgd2hlbiBwZWVyIHF1ZXJ5IGZhaWxzLgoJICBXZSBjYW4gc3RpbGwgdHlwZWZpbmQgd2hlbiB0aGUgcGVlciByZXR1cm5zIC0xLgoJICBBZGQgcHJvcGVydHkgdG8gZm9yY2UgY2FwcyBhbmQgYnlwYXNzIHR5cGVmaW5kaW5nLiBUaGlzIHdpbGwgYmUgdXNlZCBpbgoJICB1cmlkZWNvZGViaW4uCgkgIEFQSTo6Zm9yY2UtY2FwcwoKMjAwOC0wNC0wMSAxMzo1NToyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBVbmNvbmRpdGlvbmFsbHkgdXNlIEdTbGljZSBmb3IgYWxsb2NhdGlvbi4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJlZSk6CgkgIFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpb24uCgoyMDA4LTA0LTAxIDEzOjQ4OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvOiBSZXF1aXJlIGEgbmV3IGVub3VnaCBmbGV4IGFuZCBiaXNvbiBhbmQgcmVtb3ZlIHRoZSBwYXJzZXIgaGFja3MgdG8gdXNlIGEgcHJlLXJlZ2VuZXJhdGVkIHZlcnNpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVxdWlyZSBhIG5ldyBlbm91Z2ggZmxleCBhbmQgYmlzb24gYW5kIHJlbW92ZSB0aGUgcGFyc2VyIGhhY2tzIHRvIHVzZQoJICBhIHByZS1yZWdlbmVyYXRlZCB2ZXJzaW9uLgoKMjAwOC0wNC0wMSAxMDoyNTozNSArMDAwMCAgSmFzb24gWmhhbyA8RTM0MjNDQG1vdG9yb2xhLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGEgY29uZmlndXJlIHN3aXRjaCB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgcGF0Y2ggYnk6IEphc29uIFpoYW8gPEUzNDIzQ0Btb3Rvcm9sYS5jb20+CgkgICogY29uZmlndXJlLmFjOiBBZGQgYSBjb25maWd1cmUgc3dpdGNoIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcKCSAgaW4gZ3N0X2luaXQuCgkgIEZpeGVzICM1MjI4ODIuCgoyMDA4LTAzLTMxIDEzOjQ3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUyBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUwoJICBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNvbW1lbnQgaGVyZSBkZXNjcmliaW5nLCB3aHkgd2Ugc3RhdCBlYWNoIHBsdWdpbiBhbmQgbm90IHRyeSB0bwoJICBiZSBzbWFydC4KCjIwMDgtMDMtMzEgMTA6MjE6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQgdGhlIGVsZW1lbnQgaXMgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQKCSAgdGhlIGVsZW1lbnQgaXMgbm90IEdBUC1hd2FyZS4KCSAgTWFyayBhIGNvbW1lbnQgYXMgRklYTUUgMC4xMS4KCjIwMDgtMDMtMzEgMDg6MzI6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cGUgaW4gbG9nIG1lc3NhZ2UgYW5kIGFkZCBvbmUgdG8gZWFzZSBzZWVpbmcgaG93IGxvbmcgcmVnaXN0cnkgY2FjaGUgdmVyaWZpY2F0aW9uIHRha2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCB0eXBlIGluIGxvZyBtZXNzYWdlIGFuZCBhZGQgb25lIHRvIGVhc2Ugc2VlaW5nIGhvdyBsb25nIHJlZ2lzdHJ5CgkgIGNhY2hlIHZlcmlmaWNhdGlvbiB0YWtlcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgT25seSB0ZXN0IHBsdWdpbiBmaWxlbmFtZXMgYWdhaW5zdCBHX01PRFVMRV9TVUZGSVguCgoyMDA4LTAzLTMxIDA3OjQ5OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBJbXByb3ZlIGhhbmRsaW5nIGdob3N0L3Byb3h5IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEltcHJvdmUgaGFuZGxpbmcgZ2hvc3QvcHJveHkgcGFkcy4KCjIwMDgtMDMtMjcgMTk6MTM6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEV4cG9zZSBtYWNybyB0byBkb2NzIGFuZCBmaXggbGluayB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBFeHBvc2UgbWFjcm8gdG8gZG9jcyBhbmQgZml4IGxpbmsgdG8gaXQuCgoyMDA4LTAzLTI3IDE1OjIzOjU1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCk6CgkgIFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgRml4ZXMgcGFydCBvZiAjNTIyNDAxLgoKMjAwOC0wMy0yNCAxNjo1NjozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogSWRlbnRpdHkgaXMgbm90IGFsd2F5cyBhIHBhc3N0aHJvdWdoIGVsZW1lbnQsIGl0IGNhbiBtb2RpZnkgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElkZW50aXR5IGlzIG5vdCBhbHdheXMgYSBwYXNzdGhyb3VnaCBlbGVtZW50LCBpdCBjYW4gbW9kaWZ5IHRoZSBidWZmZXIKCSAgdGltZXN0YW1wcyB3aGVuIGl0IGhhcyBhIGRhdGFyYXRlIGFuZCBvcGVyYXRlcyBpbiBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBXZSB0aGVyZWZvcmUgbWFrZSBpdCBhbiBpbl9wbGFjZSBmaWx0ZXIgd2l0aCBhIGN1c3RvbSBidWZmZXIgcHJlcGFyZQoJICBmdW5jdGlvbiB0aGF0IGNvbmRpdGlvbmFsbHkgbWFrZXMgdGhlIGlucHV0IGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZQoJICB3aGVuIG5lZWRlZC4gIEZpeGVzICM1MjM5ODUuCgoyMDA4LTAzLTI0IDE2OjQ0OjI1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4gRml4ZXMgIzUyMzk3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuIEZpeGVzICM1MjM5NzguCgoyMDA4LTAzLTI0IDE2OjMxOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsc28gcmV0cnkgb3VyIHBvbGxfd2FpdCB3aGVuIHdlIGdldCBFQUdBSU4uIEZpeGVzICM1MjQwNDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQWxzbyByZXRyeSBvdXIgcG9sbF93YWl0IHdoZW4gd2UgZ2V0IEVBR0FJTi4gRml4ZXMgIzUyNDA0MS4KCjIwMDgtMDMtMjQgMTA6Mzg6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiB0cnlpbmcgdG8gbWFrZSByb29tIGluIHRoZSBxdWV1ZSwgYnVtcCB0aGUgbWF4IGFsbG93ZWQgYnVmZmVycyBiaWdnZXIgdGhhbiB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpOgoJICBXaGVuIHRyeWluZyB0byBtYWtlIHJvb20gaW4gdGhlIHF1ZXVlLCBidW1wIHRoZSBtYXggYWxsb3dlZCBidWZmZXJzCgkgIGJpZ2dlciB0aGFuIHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJzIGluIHRoZSBxdWV1ZS4gdGhpcyBmaXhlcyBzb21lCgkgIG5hc3R5IGRlYWRsb2NrcyBpbiBtdWx0aXF1ZXVlIHdoZW4gZHluYW1pY2FsbHkgY2hhbmdpbmcgdGhlIGxpbWl0cyBvZgoJICB0aGUgcXVldWUuCgoyMDA4LTAzLTI0IDEwOjMzOjQxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgZ3N0L2dzdGNhcHMuKjogQ29uc3RpZnkgdGhlIGZpZWxkIGdjaGFyICogcGFyYW1zIGluIHNldF9zaW1wbGUgYW5kIGZyaWVuZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc2V0X3NpbXBsZSksCgkgIChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIENvbnN0aWZ5IHRoZSBmaWVsZCBnY2hhciAqIHBhcmFtcyBpbiBzZXRfc2ltcGxlIGFuZCBmcmllbmRzLgoJICBGaXhlcyAjNTIyMzI2LgoKMjAwOC0wMy0yNCAxMDoyOTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBUcmFuc2Zvcm0gYSBHc3RPYmplY3QgdG8gYSBtb3JlIG1lYW5pbmdmdWxsIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZSBvYmplY3QgdHlwZSBpbiBhZGRpdGlvbiB0byBpdHMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fb2JqZWN0X3N0cmluZyk6CgkgIFRyYW5zZm9ybSBhIEdzdE9iamVjdCB0byBhIG1vcmUgbWVhbmluZ2Z1bGwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgdGhlCgkgIG9iamVjdCB0eXBlIGluIGFkZGl0aW9uIHRvIGl0cyBuYW1lLgoKMjAwOC0wMy0yMyAxNToxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCjIwMDgtMDMtMjMgMTQ6MjQ6NDggKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgoyMDA4LTAzLTIzIDExOjQwOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmVuYW1lIGNvbnN0YW50IGV2ZXJ5d2hlcmUgYW5kIGRvbid0IGZvcmdldCBvbmUgb2NjdXJlbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpOgoJICBSZW5hbWUgY29uc3RhbnQgZXZlcnl3aGVyZSBhbmQgZG9uJ3QgZm9yZ2V0IG9uZSBvY2N1cmVuY2UuCgoyMDA4LTAzLTIzIDExOjI5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cyB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKToKCSAgQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cwoJICB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgdXN1YWxseSBjb21lcyB3aXRoCgkgIHBlcmZvcm1hbmNlIHBlbmFsaXR5LgoKMjAwOC0wMy0yMyAxMToyMzozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMKCSAgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvbiBpYTY0IGFuZCBmcmllbmRzLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBCdW1wIGJpbmFyeSByZWdpc3RyeSBmb3JtYXQgdmVyc2lvbiBmb3IgdGhpcyBhcyBpdCBjaGFuZ2VzIHRoZQoJICBmb3JtYXQgb24gdGhvc2UgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgdW5hbGlnbmVkIGFjY2VzcwoJICBhbmQgNjQgYml0IHBvaW50ZXJzLgoKMjAwOC0wMy0yMiAxNDo1NjoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRGVmaW5lIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgaWYgaXQncyB1bmRlZmluZWQgKEdMaWIgPCAyLjEzLjApIGFuZCB1c2UgaXQgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfcmVzdG9yZSksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2lnaGFuZGxlciksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2V0dXApLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2NsYXNzX2luaXQpOgoJICBEZWZpbmUgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBpZiBpdCdzIHVuZGVmaW5lZCAoR0xpYiA8IDIuMTMuMCkgYW5kCgkgIHVzZSBpdCBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLgoJICBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHVzYWdlLCBmZXdlciBhbGxvY2F0aW9ucyBhbmQgdGh1cyBsZXNzCgkgIG1lbW9yeSBkZWZyYWdtZW50YXRpb24uIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwOC0wMy0yMiAxNDo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX0lTX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QsIEdTVF9QQVJBTV9TUEVDX01JTklfT0JKRUNUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KSwKCSAgKGdzdF9wYXJhbV9zcGVjX21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFQSTogQWRkIEdTVF9JU19QQVJBTV9TUEVDX01JTklfT0JKRUNULCBHU1RfUEFSQU1fU1BFQ19NSU5JX09CSkVDVAoJICBHU1RfVFlQRV9QQVJBTV9NSU5JX09CSkVDVCBhbmQgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdC4gQWxzbyBtb3ZlCgkgIEdzdFBhcmFtU3BlY01pbmlPYmplY3QgaW50byBhIHB1YmxpYyBoZWFkZXIgZm9yIHRoaXMuCgkgIFRoaXMgbWFrZSBHc3RNaW5pT2JqZWN0IGEgYml0IG1vcmUgY29uc2lzdGVudCB3aXRoIEdPYmplY3QgYW5kIG1ha2VzCgkgIGl0IHBvc3NpYmxlIHRvIGV4dGVuZCB0aGUgcGFyYW0gc3BlY3MuCgkgIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QgaXMgbWFpbmx5IHVzZWZ1bCBmb3Igc2V0X3Byb3BlcnR5IG1ldGhvZHMuCgkgIEZpeGVzIGJ1ZyAjNTIzNzk4LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFByaW50IHNvbWV0aGluZyB1c2VmdWwgZm9yIEdzdE1pbmlPYmplY3QgcHJvcGVydGllcyBhbmQgbm90IGp1c3QKCSAgInVua25vd24gdHlwZSIuCgoyMDA4LTAzLTIxIDE2OjExOjUxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDYWxsIHRoZSB2ZXJzaW9uIEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBhZGQgaXQgdG8gdGhlIChwcml2YXRlIHBhcnQpIG9mIHRoZSBkb2NzIHRvIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQ2FsbCB0aGUgdmVyc2lvbiBHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSIHRvIGJlIG1vcmUgY29uc2lzdGVudAoJICBhbmQgYWRkIGl0IHRvIHRoZSAocHJpdmF0ZSBwYXJ0KSBvZiB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkLgoKMjAwOC0wMy0yMSAxNTo1MjoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IERvbid0IHVzZSBHU1RfTUFKT1JNSU5PUiBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uLiBJbnN0ZWFkIGhhcmRjb2RlIGEgdmFsdWUgdGhhdCBtdXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgRG9uJ3QgdXNlIEdTVF9NQUpPUk1JTk9SIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24uIEluc3RlYWQKCSAgaGFyZGNvZGUgYSB2YWx1ZSB0aGF0IG11c3QgYmUgY2hhbmdlZCB3aGVuZXZlciB0aGUgZm9ybWF0IGNoYW5nZXMKCSAgaW4gYW4gaW5jb21wYXRpYmxlIHdheS4KCSAgQWxzbyBkb24ndCBHU1RfRVJST1Igd2hlbiB0aGVyZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2gsIGp1c3QKCSAgcmVnZW5lcmF0ZSB0aGUgcmVnaXN0cnkgc2lsZW50bHkuCgoyMDA4LTAzLTIxIDAwOjM1OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtIDAuMTAuMTguMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLSAwLjEwLjE4LjEKCj09PSByZWxlYXNlIDAuMTAuMTggPT09CgoyMDA4LTAzLTIxIDAwOjIwOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE4CgoyMDA4LTAzLTIwIDIzOjI2OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTAzLTE4IDEyOjE3OjU4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuNCBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjQgcHJlLXJlbGVhc2UKCjIwMDgtMDMtMTggMTA6NTQ6NTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cyBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2luc29ja19lcnJvcl90b19lcnJubyksCgkgIChnc3RfcG9sbF91cGRhdGVfd2luc29ja19ldmVudF9tYXNrKSwKCSAgKGdzdF9wb2xsX3ByZXBhcmVfd2luc29ja19hY3RpdmVfc2V0cyksCgkgIChnc3RfcG9sbF9jb2xsZWN0X3dpbnNvY2tfZXZlbnRzKSwgKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKSwKCSAgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfaWdub3JlZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfY2hlY2tfY3RybF9jb21tYW5kcyksIChnc3RfcG9sbF93YWl0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cwoJICBjb21wYXRpYmlsaXR5LgoJICBWYXJpb3VzIG1pbm9yIGZpeGVzIGFuZCBjbGVhbnVwcy4gU2VlICM1MjA4MDguCgoyMDA4LTAzLTE3IDEwOjIxOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4Lio6IERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbiBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZW50cnlfZnJlZSk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbgoJICBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzogKHRlc3RfaW5kZXhfZW50cmllcyksCgkgIChnc3RfaW5kZXhfc3VpdGUpLCAoZ3N0X2luZGV4KToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMy0xMSAxNDowOTo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCjIwMDgtMDMtMTEgMDA6MjQ6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMyBwcmUtcmVsZWFzZQoKMjAwOC0wMy0xMSAwMDoyMzowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbGVhc2UgMC4xMC4xNy4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVsZWFzZSAwLjEwLjE3LjMKCjIwMDgtMDMtMDcgMTU6Mzk6NDUgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBSZW1vdmUgR3N0UG9sbE1vZGUgZnJvbSB0aGUgQVBJLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGxldCB0aGUgYXBwbGljYXRpb24gY29udHJvbCB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZmluZF9pbmRleCksIChnc3RfcG9sbF9mcmVlX3dpbnNvY2tfZXZlbnQpLAoJICAoZ3N0X3BvbGxfdXBkYXRlX3dpbnNvY2tfZXZlbnRfbWFzayksIChnc3RfcG9sbF9uZXcpLAoJICAoZ3N0X3BvbGxfZnJlZSksIChnc3RfcG9sbF9mZF9pbml0KSwgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wb2xsX3N1aXRlKToKCSAgUmVtb3ZlIEdzdFBvbGxNb2RlIGZyb20gdGhlIEFQSSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBsZXQgdGhlCgkgIGFwcGxpY2F0aW9uIGNvbnRyb2wgdGhpcy4KCSAgQWRkIHN1cHBvcnQgZm9yIFdpbjMyLgoJICBGaXggdGhlIHRlc3RzdWl0ZS4gRml4ZXMgIzUyMDY3MS4KCjIwMDgtMDMtMDcgMTM6MTk6MTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW5jbHVkZSBpby5oIGZvciB3cml0ZSgpIGFuZCBjbG9zZSgpIHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDLiBGaXhlcyBidWcgIzUyMDg3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbmNsdWRlIGlvLmggZm9yIHdyaXRlKCkgYW5kIGNsb3NlKCkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMuIEZpeGVzCgkgIGJ1ZyAjNTIwODc3LgoKMjAwOC0wMy0wNyAxMToxMjo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW92ZSByZWdpc3RyeSBiYWNrZW5kIEFQSSB0byBwcml2YXRlIGhlYWRlcnMgd2hlcmUgd2UgY2FuLiBBZGQgZml4bWUtMC4xMSBjb21tZW50cyBmb3IgdGhlIG90aGVycy4gQWRkIHN0dWJzIGZvciB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBNb3ZlIHJlZ2lzdHJ5IGJhY2tlbmQgQVBJIHRvIHByaXZhdGUgaGVhZGVycyB3aGVyZSB3ZSBjYW4uIEFkZAoJICBmaXhtZS0wLjExIGNvbW1lbnRzIGZvciB0aGUgb3RoZXJzLiBBZGQgc3R1YnMgZm9yIHRoZSB4bWwgYmFja2VuZCB3aGVuCgkgIHVzaW5nIHRoZSBiaW5hcnkgdG8gZW5zdXJlIHRoZXkgZnVuY3Rpb25zIGV4aXN0cyAodGhleSBzaG91bGQgbm90IGJlCgkgIHVzZWQgdGhvdWdoKS4gRml4ZXMgIzUyMDc1Ni4KCjIwMDgtMDMtMDQgMDA6MTQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4yIHByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMiBwcmVsZWFzZQoKMjAwOC0wMy0wMyAxODo0MjowNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFN3aXRjaCB0byB1c2luZyBwb3J0YWJsIGdzaXplL2dzc2l6ZSBpbnN0ZWFkIG9mIHNpemVfdC9zc2l6ZV90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmUpOgoJICAqIGdzdC9nc3R1cmkuYzogKHVuZXNjYXBlX3N0cmluZyksIChnc3RfdXJpX2hhc19wcm90b2NvbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgU3dpdGNoIHRvIHVzaW5nIHBvcnRhYmwgZ3NpemUvZ3NzaXplIGluc3RlYWQgb2Ygc2l6ZV90L3NzaXplX3QKCSAgRml4ZXMgIzUyMDE1MgoKMjAwOC0wMy0wMyAxODoxNDozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEltcG9ydCBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVyIHRoYXQgbWlnaHQgaW5jbHVkZSBvdGhlciBnbGliIGhlYWRlcnMuIFRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBJbXBvcnQgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgYW55IG90aGVyIGhlYWRlciB0aGF0IG1pZ2h0IGluY2x1ZGUgb3RoZXIKCSAgZ2xpYiBoZWFkZXJzLiBUaGlzIGZpeGVzIHRoZSBidWlsZCBvbiB3aW5kb3dzIHVzaW5nIG5hdGl2ZSBjb21waWxlcnMuCgoyMDA4LTAzLTAzIDE0OjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCjIwMDgtMDMtMDMgMTQ6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggYnJva2VuIHVzZSBvZiBjb25maWcuaC1kZWZpbmVkIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgaW4gYSBwdWJsaWMgaGVhZGVyIGZpbGUuIEFkZCBhIGNvcnJlc3BvbmRpbmcgZGVmaW5lIHRvIGdzdGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgRml4IGJyb2tlbiB1c2Ugb2YgY29uZmlnLmgtZGVmaW5lZCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlIGluIGEgcHVibGljCgkgIGhlYWRlciBmaWxlLiBBZGQgYSBjb3JyZXNwb25kaW5nIGRlZmluZSB0byBnc3Rjb25maWcuaCwgc2luY2Ugd2UgY2FuJ3QKCSAgcmVhbGx5IHJlbW92ZSB0aG9zZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgaGVhZGVyIGZpbGUgbm93CgkgIChvciBjYW4gd2U/IGFuZCB3aHkgYXJlIHRoZXkgdGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlPykuCgoyMDA4LTAzLTAzIDEwOjA3OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmMgKEdTVF9TVEFSVF9URVNUKTogQWRkIGEgY2hlY2sgZm9yIHRoZSBuZXcgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDMtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jIChHU1RfU1RBUlRfVEVTVCk6IEFkZCBhIGNoZWNrIGZvcgoJICB0aGUgbmV3IHdhcm5pbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKTogV2FybiBpZgoJICBzdHJ1Y3R1cmVfZnJvbV9zdHJpbmcgZGlkbid0IGNvbnN1bWUgdGhlIHdob2xlIHN0cmluZywgYnV0IHRoZQoJICBjYWxsZXIgZGlkIG5vdCBwcm92aWRlIGFuIGVuZCBwb2ludGVyLgoKMjAwOC0wMy0wMSAxMToyMTozMCArMDAwMCAgRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2VAdGlzY2FsaS5pdD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90IHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlIGF0IHRpc2NhbGkgaXQ+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyksIChsb2FkX2ZlYXR1cmUpOgoJICBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90CgkgIHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbiB3aW5kb3dzIGluIGNlcnRhaW4gY29udGV4dHMgKCM1MTk2OTgpLgoKMjAwOC0wMi0yOSAxODozODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuYzogRG9uJ3QgY3Jhc2ggaWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGludGVyZmFjZSBxdWVyaWVkLCBidXQgZG9lcyBub3QgaW1wbGVtZW50IEdzdEltcGxlbWVudHNJbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmM6IChnc3RfZWxlbWVudF9pbXBsZW1lbnRzX2ludGVyZmFjZSk6CgkgIERvbid0IGNyYXNoIGlmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgcXVlcmllZCwgYnV0IGRvZXMKCSAgbm90IGltcGxlbWVudCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlLiBGaXhlcyAjNTE5NTg0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMi0yOSAxNTozOTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDgtMDItMjkgMTU6MjI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBJbXByb3ZlIHNvbWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKToKCSAgSW1wcm92ZSBzb21lIGNvbW1lbnQuCgkgIFVwZGF0ZSB2YXJpYWJsZXMgd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMDgtMDItMjkgMTQ6MjM6MTcgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R1cmkuYzogVXNlIHRoZSBnZXRfcHJvdG9jb2xzX2Z1bGwgdmZ1bmMgaWYgZ2V0X3Byb3RvY29scyBpcyBOVUxMLiAgRml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2dldF9wcm90b2NvbHMpOgoJICBVc2UgdGhlIGdldF9wcm90b2NvbHNfZnVsbCB2ZnVuYyBpZiBnZXRfcHJvdG9jb2xzIGlzIE5VTEwuICBGaXhlcwoJICBVUklIYW5kbGVycyBpbXBsZW1lbnRlZCB1c2luZyBsYW5ndWFnZSBiaW5kaW5ncy4KCjIwMDgtMDItMjkgMTM6NTk6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFuZCBjb3JyZWN0IGV2ZW4gbW9yZSB2YWxpZCBzcGFyc2Ugd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKHNldHVwX2Zkc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOiAoc2V0dXBfZmlsZXNpbmspOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKHNldHVwX2ZpbGVzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChzZXR1cCksICh0ZWFyZG93bik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAocHVsbF9tZXNzYWdlcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6ICh0aHJlYWRfbmFtZV9vYmplY3QpLAoJICAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgQW5kIGNvcnJlY3QgZXZlbiBtb3JlIHZhbGlkIHNwYXJzZSB3YXJuaW5ncy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wb2xsX2ZkX2luaXQgdG8gdGhlIGxpc3Qgb2Ygc3ltYm9scy4KCjIwMDgtMDItMjkgMTI6NDE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENvcnJlY3QgYWxsIHJlbGV2YW50IHdhcm5pbmdzIGZvdW5kIGJ5IHRoZSBzcGFyc2Ugc2VtYW50aWMgY29kZSBhbmFseXplci4gVGhpcyBpbmNsdWRlIG1hcmtpbmcgc2V2ZXJhbCBzeW1ib2xzIHN0YXRpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcik6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyksIChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksCgkgIChnc3RfZmlsZV9pbmRleF9hZGRfYXNzb2NpYXRpb24pOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1lc3Nfc29tZV9tb3JlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAoc2V0dXBfcXVldWUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKHNldHVwKSwgKHRlYXJkb3duKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWFrZV9waXBlbGluZSk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgQ29ycmVjdCBhbGwgcmVsZXZhbnQgd2FybmluZ3MgZm91bmQgYnkgdGhlIHNwYXJzZSBzZW1hbnRpYyBjb2RlCgkgIGFuYWx5emVyLiBUaGlzIGluY2x1ZGUgbWFya2luZyBzZXZlcmFsIHN5bWJvbHMgc3RhdGljLCB1c2luZwoJICBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMsIG5vdCB1c2luZyB2YXJpYWJsZSBzaXplZCBhcnJheXMKCSAgb24gdGhlIHN0YWNrLCBtb3ZpbmcgdmFyaWFibGUgZGVjbGFyYXRpb25zIHRvIHRoZSBiZWdpbm5pbmcgb2YKCSAgYSBibG9jayBhbmQgdXNpbmcgImZvbyAodm9pZCkiIGluc3RlYWQgb2YgImZvbyAoKSIgZm9yIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDItMjkgMTI6MDU6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBEb24ndCByZXNldCBHc3RQb2xsRkRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIERvbid0IHJlc2V0IEdzdFBvbGxGRHMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhdCBhbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2NvbnRyb2wpOgoJICBVc2UgR1NUX1BPTExfRkRfSU5JVC4KCjIwMDgtMDItMjkgMTE6NTc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC4qOiBBZGRlZCBTaW5jZSB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkZWQgU2luY2UgdGFncy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgVXNlIHNvbWUgbW9yZSBpbml0IG1hY3Jvcy4KCjIwMDgtMDItMjkgMTE6MjA6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGluaXQgbWFjcm9zIGFuZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBVc2UgaW5pdCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KCjIwMDgtMDItMjkgMTE6MDA6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgSU5JVCBtYWNybyBhbmQgX2luaXQgbWV0aG9kIGZvciBpbml0aWFsaXppbmcgdGhlIEdzdFBvbGxGRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkIElOSVQgbWFjcm8gYW5kIF9pbml0IG1ldGhvZCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHc3RQb2xsRkQuCgoyMDA4LTAyLTI4IDE5OjU4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBJbml0aWFsaXplIHNvbWUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgYXMgc3BvdHRlZCBieSB2YWxncmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KSwKCSAgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9jb250cm9sKToKCSAgSW5pdGlhbGl6ZSBzb21lIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFzIHNwb3R0ZWQgYnkgdmFsZ3JpbmQuCgoyMDA4LTAyLTI4IDE1OjI1OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWVzc19zb21lX21vcmUpLCAocnVuX3Rlc3QpLAoJICAobWFpbik6CgkgIEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoKMjAwOC0wMi0yOCAxMDoxODowMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19zdGFydCksIChnc3RfZmRfc2lua19zdG9wKSwgKGdzdF9mZF9zaW5rX3VubG9jayksCgkgIChnc3RfZmRfc2lua191bmxvY2tfc3RvcCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLCAoZ3N0X2ZkX3NyY191bmxvY2spLAoJICAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksIChnc3RfZmRfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgoyMDA4LTAyLTI3IDIxOjE4OjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgoyMDA4LTAyLTI3IDE5OjAxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIGEgcHJpdmF0ZSBzdHVjdCB0byBub3QgYnJlYWsgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIFVzZSBhIHByaXZhdGUgc3R1Y3QgdG8gbm90IGJyZWFrIEFCSS4KCjIwMDgtMDItMjcgMTg6Mjc6NTkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogTWFzc2l2ZSBjb2RlIHJlbW92YWwgYW5kIGNsZWFudXBzIGJlY2F1c2Ugb2YgR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIE1hc3NpdmUgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwcyBiZWNhdXNlIG9mIEdzdFBvbGwuCgkgIEZpeGVzICM1MDU0MTcuCgoyMDA4LTAyLTI3IDE4OjAwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBHc3RQb2xsLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBvbGwuYzogKGZpbmRfaW5kZXgpLCAoc2VsZWN0YWJsZV9mZHMpLAoJICAocG9sbGFibGVfdGltZW91dCksIChjaG9vc2VfbW9kZSksIChwb2xsZmRfdG9fZmRfc2V0KSwKCSAgKGZkX3NldF90b19wb2xsZmQpLCAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpLAoJICAoZ3N0X3BvbGxfc2V0X21vZGUpLCAoZ3N0X3BvbGxfZ2V0X21vZGUpLAoJICAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2FkZF9mZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZCBnZW5lcmljIHBvbGwgYWJzdHJhY3Rpb24uIFdlIGlkZWFsbHkgZG9uJ3Qgd2FudCB0byBoYXZlIHRoaXMgaW4gY29yZQoJICBoZXJlIGJ1dCBpbiBnbGliIGludGVhZC4uLgoJICBUaGlzIGNvZGUgd2lsbCBiZSB1c2VkIGluIHZhcmlvdXMgbmV0d29yayBlbGVtZW50cyBhbmQgdWx0aW1hdGVseSBmb3IKCSAgdGhlIG5hbm9zZWNvbmQgcHJlY2lzaW9uIG1vbm90b25pYyBjbG9jayAodGhhdCdzIHdoeSBpdCdzIGhlcmUgaW4gY29yZSkuCgkgIEl0J2xsIGFsbG93IHVzIHRvIGltcGxlbWVudCBjYW5jZWxhYmxlIHNvY2tldCBvcGVyYXRpb25zIGZvciB3aW5kb3dzIHRvby4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9zdG9wKSwgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2ZsdXNoKSwKCSAgKGRlbGF5ZWRfY29udHJvbCksIChnc3RfcG9sbF9zdWl0ZSk6CgkgIEFkZCBHc3RQb2xsIHVuaXQgdGVzdC4KCjIwMDgtMDItMjUgMTU6Mzc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZmlsdGVyLmM6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoKMjAwOC0wMi0yMyAxNjowMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgoyMDA4LTAyLTIxIDEwOjMwOjUwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogQWRkIHFvcyB0byB0aGUgZXZlbnQgdGVzdC4gUmVuYW1lIHRjYXNlL3RzdWl0ZTsgaXMgbm90IG9ubHkgYWJvdXQgY3VzdG9tIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIEFkZCBxb3MgdG8gdGhlIGV2ZW50IHRlc3QuIFJlbmFtZSB0Y2FzZS90c3VpdGU7IGlzIG5vdCBvbmx5IGFib3V0CgkgIGN1c3RvbSBldmVudHMuCgoyMDA4LTAyLTIxIDEwOjIyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEVuc3VyZSB0aGF0IGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0ZWFibGUsIGJlZm9yZSBtb2RpZnlpbmcuIFNwb3R0ZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBFbnN1cmUgdGhhdCBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGVhYmxlLCBiZWZvcmUgbW9kaWZ5aW5nLiBTcG90dGVkIGJ5CgkgIE1pa2UuCgoyMDA4LTAyLTIwIDE1OjQ0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFdoZW4gZHJvcHBpbmcgYnVmZmVycyBpbiBsZWFreSBtb2RlcywgbWFyayBuZXh0IGJ1ZmZlcnMgd2Ugc2VudCBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBXaGVuIGRyb3BwaW5nIGJ1ZmZlcnMgaW4gbGVha3kgbW9kZXMsIG1hcmsgbmV4dCBidWZmZXJzIHdlIHNlbnQgYXMKCSAgRElTQ09OVC4KCjIwMDgtMDItMjAgMTI6MzE6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoKMjAwOC0wMi0yMCAxMjoyNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIEl0J3Mgbm90IHVzZWQgYW55d2hlcmUgYW5kIHN1cGVyc2VkZWQgYnkgR3N0QWRhcHRlci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2FkZF9hc3NvY2lhdGlvbik6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgZm9yIDY0LWJpdCBpbnRlZ2Vycy4KCjIwMDgtMDItMTkgMTM6MDA6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIFdlJ3JlIG5vdCBpbiAwLjggdGltZXMgYW55bW9yZS4KCjIwMDgtMDItMTkgMTI6NTY6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogTWFrZSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCBtYXRjaCB0aGUgaW1wbGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIE1ha2UgdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZm9yCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9uLgoJICBGaXggdXAgc3BlbGxpbmcsIGdyYW1tYXIgYW5kIHdvcmRpbmcgb2YgdGhlIGRvY3VtZW50YXRpb24gaW4gYSBmZXcKCSAgcGxhY2VzLCBhbmQgYWRkIHRoZSBTaW5jZSBrZXl3b3JkIHRvIG5ldyBBUEkgZnVuY3Rpb25zLgoJICBVc2UgZ19saXN0X2RlbGV0ZV9saW5rIGluc3RlYWQgb2YgZ19saXN0X3JlbW92ZSBpbgoJICBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLCBzaW5jZSBpdCdzIGltbWVhc3VyYWJseSBtb3JlIGVmZmljaWVudC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBuZXcgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyBmdW5jdGlvbiB3aGVyZSBhcHByb3ByaWF0ZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyBnc3RfY29sbGVjdF9wYWRzX3Rha2VfYnVmZmVyLAoJICBnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyLCBnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwgdG8gdGhlCgkgIGV4cG9ydHMKCSAgQ2hhbmdlbG9nIHN1cmdlcnkgdG8gYWRkIEFQSSBrZXl3b3JkIHRvIG5ldyBnc3RfY2hlY2sgQVBJLgoKMjAwOC0wMi0xOSAwODowNToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogKHl5X2dldF9uZXh0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5ZW5zdXJlX2J1ZmZlcl9zdGFjayksIChfZ3N0X3BhcnNlX3l5bGV4X2luaXRfZXh0cmEpOgoJICBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgoyMDA4LTAyLTE5IDA1OjQ5OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbWFrZSBHc3RNaW5pT2JqZWN0Q2xhc3M6OmNvcHkoKSBhIGJpdCBtb3JlIGZyaWVuZGx5IHRvIHN1YmNsYXNzZXMgYW5kIG5vdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIG1ha2UgR3N0TWluaU9iamVjdENsYXNzOjpjb3B5KCkgYSBiaXQgbW9yZQoJICBmcmllbmRseSB0byBzdWJjbGFzc2VzIGFuZCBub3QgcmVxdWlyZSB0aGVtIHRvIGtub3cgYWxsIGludGVybmFscwoJICBvZiB0aGVpciBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTE1IDEzOjE1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgc3ViLWJ1ZmZlciBmdW5jdGlvbnMgdG8gY29sbGVjdHBhZHMuIEZpeGVzICM1MTYxODcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQWRkIHN1Yi1idWZmZXIgZnVuY3Rpb25zIHRvIGNvbGxlY3RwYWRzLiBGaXhlcyAjNTE2MTg3LgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfdGFrZV9idWZmZXIoKSwgZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcigpCgoyMDA4LTAyLTE1IDEyOjMzOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgc2VsZWN0ZWQgYnVmZmVyLWZsYWdzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBDb3B5IHNlbGVjdGVkIGJ1ZmZlci1mbGFncyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgkgIEZpeGVzICM1MTYzOTUuCgoyMDA4LTAyLTEyIDEyOjA0OjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMgdG8gdGhlIHBhcmVudCBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKToKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgZnVuY3Rpb25zIHRvIHRoZSBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTExIDE3OjUzOjU3ICswMDAwICBTaWF2YXNoIFNhZmkgPHNpYXZhc2guc2FmaUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5kZXguKjogQWRkIG5ldyBmdW5jdGlvbiB3aXRoIG9wdGlvbiB0byBkaXNwb3NlIG9mIHVzZXJfZGF0YSBpbiByZXNvbHZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTaWF2YXNoIFNhZmkgPHNpYXZhc2ggZG90IHNhZmkgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9maW5hbGl6ZSksIChnc3RfaW5kZXhfc2V0X3Jlc29sdmVyKSwKCSAgKGdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIEFkZCBuZXcgZnVuY3Rpb24gd2l0aCBvcHRpb24gdG8gZGlzcG9zZSBvZiB1c2VyX2RhdGEgaW4gcmVzb2x2ZXIuCgkgIEFjdHVhbGx5IGNhbGwgdGhlIGRpc3Bvc2UgZnVuY3Rpb24gd2hlbiBmaW5hbGl6aW5nIHRoZSBvYmplY3QgYW5kIG5vdAoJICBqdXN0IHdoZW4gY2hhbmdpbmcgdGhlIHJlc29sdmVyL2ZpbHRlci4KCSAgQVBJOiBHc3RJbmRleDo6Z3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsKCkKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uIHRvIGRvY3MuIEZpeGVzICM1MTU0NjkuCgoyMDA4LTAyLTExIDA4OjUzOjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0aW5kZXguYzogQ2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcy4gRml4ZXMgbGVha2luZyB0aGUgR3N0T2JqZWN0IG5hbWUgYW5kIG90aGVyIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZmluYWxpemUpOgoJICBDaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzLiBGaXhlcyBsZWFraW5nIHRoZSBHc3RPYmplY3QKCSAgbmFtZSBhbmQgb3RoZXIgdGhpbmdzLgoKMjAwOC0wMi0xMCAxOTo0ODowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoKMjAwOC0wMi0wOCAwMDo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcKCSAgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWdsCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgQ2hhbmdlIG9uZSBvZiB0aGUgc3RlcHMgLSB3ZSBvbmx5IHVwbG9hZCBjb3JlICYgYmFzZSB0byBHbm9tZSBGVFAKCjIwMDgtMDItMDYgMTI6MjE6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIExpbmsgdG8gc2lnbmFscy4gRG9jIGFuZCBjb21tZW50IGZpeGVzLgoKMjAwOC0wMi0wNSAyMToyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogKEdzdFBsdWdpbkZlYXR1cmVDbGFzcyk6CgkgIFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMKCSAgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaW4gZmVhdHVyZXMsIG5vdAoJICBwbHVnaW5zLCB0aGF0IGhhdmUgcmFua3MuCgoyMDA4LTAyLTA1IDE5OjQyOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiBDbGFyaWZ5IEdzdFJhbmsgcmFuZ2UgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgQ2xhcmlmeSBHc3RSYW5rIHJhbmdlIGRvY3MuCgoyMDA4LTAyLTA1IDE4OjM3OjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogQWRkIGEgc2VwYXJhdGUgZ3N0X2RlaW5pdGlhbGl6ZWQgdGhhdCBwcmV2ZW50cyBnc3RfaW5pdCgpIGZyb20gYmVpbmcgY2FsbGVkIGFmdGVyIGdzdF9kZWluaXQoKS4gIEZpeGVzICM1MC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IEFkZCBhIHNlcGFyYXRlIGdzdF9kZWluaXRpYWxpemVkIHRoYXQgcHJldmVudHMKCSAgZ3N0X2luaXQoKSBmcm9tIGJlaW5nIGNhbGxlZCBhZnRlciBnc3RfZGVpbml0KCkuICBGaXhlcyAjNTA5NTU5CgoyMDA4LTAyLTA1IDE0OjE1OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9iYXNlX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjCgkgIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCBicmVha3MgdG9vCgkgIG1hbnkgZWxlbWVudHMuIFJlb3BlbnMgYnVnICM0OTE1MDEuCgkgIFNob3VsZCBiZSBhcHBsaWVkIGFnYWluIGZvciAwLjExLCB0aHVzIGFkZGVkIGEgZmV3IEZJWE1FIDAuMTEgYXQKCSAgc2V2ZXJhbCBwbGFjZXMuCgoyMDA4LTAyLTA1IDA5OjI0OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IER1bXAgb25lIGdyYXBoIHBlciBwaXBlbGluZSBzdGF0ZS1jaGFuZ2UgYW5kIHN0YXRlIGNoYW5nZSBuYW1lIChpZiBHU1RfREVCVUdfRFVNUF9ET1RfRElSIGlzIHNldCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgRHVtcCBvbmUgZ3JhcGggcGVyIHBpcGVsaW5lIHN0YXRlLWNoYW5nZSBhbmQgc3RhdGUgY2hhbmdlIG5hbWUKCSAgKGlmIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIgaXMgc2V0KS4KCjIwMDgtMDItMDQgMTQ6MTQ6NDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBCZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG5ldyBjb3B5IG9mIHRoZSBjYXBzIGFuZCBub3QgcmVmZmVkIGNhcHMgZnJvbSBhIHRlbXBsYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIEJlIHN1cmUgdGhhdCB3ZSBoYXZlIGEgbmV3IGNvcHkgb2YgdGhlIGNhcHMgYW5kIG5vdAoJICByZWZmZWQgY2FwcyBmcm9tIGEgdGVtcGxhdGUKCjIwMDgtMDItMDMgMTI6MDQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERvbid0IHVzZSBiYXNlX2luaXQgd2hlcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSBmb3IgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgRG9uJ3QgdXNlIGJhc2VfaW5pdCB3aGVyZSBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuIEZvciBleGFtcGxlIGl0J3MKCSAgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGZvciBhZGRpbmcgcGFkIHRlbXBsYXRlcyBvciBzZXR0aW5nIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgTGVhdmUgZW1wdHkgYmFzZV9pbml0IGZ1bmN0aW9ucyBpbiBzZXZlcmFsIHBsYWNlcyBhcyBHU1RfQk9JTEVSUExBVEUKCSAgc3RpbGwgZGVmaW5lcyBhbmQgdXNlcyB0aGVtLgoKMjAwOC0wMi0wMyAxMDo0ODowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0LzogTWFrZSBpdCBwb3NzaWJsZSAoYW5kIHJlY29tbWVuZGVkKSB0byBzZXQgZWxlbWVudCBkZXRhaWxzIGFuZCBhZGQgcGFkIHRlbXBsYXRlcyBpbiB0aGUgY2xhc3NfaW5pdCBmdW5jdGlvbnMgYnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIE1ha2UgaXQgcG9zc2libGUgKGFuZCByZWNvbW1lbmRlZCkgdG8gc2V0IGVsZW1lbnQgZGV0YWlscyBhbmQgYWRkCgkgIHBhZCB0ZW1wbGF0ZXMgaW4gdGhlIGNsYXNzX2luaXQgZnVuY3Rpb25zIGJ5IGNvcHlpbmcgdGhlIGRldGFpbHMvcGFkCgkgIHRlbXBsYXRlcyBpbiBHc3RFbGVtZW50J3MgYmFzZV9pbml0LgoJICBBbHNvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVwbGFjZSBleGlzdGluZyBwYWQgdGVtcGxhdGVzIGJ5IGFkZGluZwoJICBhIG5ldyBvbmUgd2l0aCB0aGUgc2FtZSBuYW1lLiBUaGlzIHdhcyBkb25lIGluIGEgaGFja2lzaCBmYXNoaW9uCgkgIGluIHNhbWUgZWxlbWVudHMgYmVmb3JlIGFscmVhZHkuCgkgIERvbid0IHJlZmVyZW5jZSBwYWQgdGVtcGxhdGVzIHRoYXQgYXJlIGFkZGVkIGEgc2Vjb25kIHRpbWUuIEEKCSAgbmV3IHBhZCB0ZW1wbGF0ZSBoYXMgYSByZWZjb3VudCBvZiBvbmUgYW5kIGlzIG5vdCBmbG9hdGluZyBhbnltb3JlCgkgIGFuZCB0byBiZSBvd25lZCBieSB0aGUgZWxlbWVudCdzIGNsYXNzLiBNYWtlIHRoaXMgbW9yZSBleHBsaWNpdCBieQoJICBtZW50aW9uaW5nIGl0IGluIHRoZSBkb2NzIG9mIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoKS4KCSAgVGhlc2UgY2hhbmdlcyBhcmUgYmFja3dhcmRzIGNvbXBhdGlibGUuIEZpeGVzIGJ1ZyAjNDkxNTAxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHNldHRpbmcgZWxlbWVudCBkZXRhaWxzLCBhZGRpbmcgcGFkIHRlbXBsYXRlcyBhbmQKCSAgcmVwbGFjaW5nIHRoZW0gaW4gYSBzdWJjbGFzcy4KCjIwMDgtMDItMDIgMDY6NDg6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAyLTAxIDE3OjE2OjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQWRkIG1vcmUgZnVuY3Rpb25zIGZvciB1bml0IHRlc3Rpbmc6IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsIGdzdF9jaGVja19jYXBzX2VxdWFsLCBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgbW9yZSBmdW5jdGlvbnMgZm9yIHVuaXQgdGVzdGluZzogZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywKCSAgZ3N0X2NoZWNrX2NhcHNfZXF1YWwsIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QsCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyCgoyMDA4LTAyLTAxIDE2OjM3OjIyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMi0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gdG8gdGhlCgkgIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KSwKCSAgKGdzdF9pbmRleF9mcmVlX3dyaXRlciksCgkgIChnc3RfaW5kZXhfZmluYWxpemUpLCAoZ3N0X2luZGV4X2VudHJ5X2ZyZWUpLAoJICAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBtZW1vcnkgbGVha3MuCgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjogQWRkIEdTVF9DSEVDS19WRVJTSU9OIG1hY3JvLgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksCgkgIChnc3RfbWVtX2luZGV4X2ZpbmFsaXplKTogRml4IG1lbW9yeSBsZWFrcy4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6IFVwZGF0ZWQgdG8gQ1ZTIEhFQUQuCgoyMDA4LTAyLTAxIDEyOjI1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogU29tZSBtb3JlIGRldGFpbHMgYWJvdXQgaG93IHRoZSBwbHVnaW4gZG9jcyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIFNvbWUgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0aGUgcGx1Z2luIGRvY3Mgd29ya3MuCgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgV2hpdGVzcGFjZSBjbGVhbnVwLgoKMjAwOC0wMi0wMSAxMjoxMDoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlLzogQWRkIGRlbGF5ZWQgc2V0LXByb3BlcnR5LiBUaGlzIGFsbG93cyB0byBzZXQgcHJvcGVydGllcyBvbiBkeW5hbWljYWx5IGNyZWF0ZWQgb2JqZWN0cyAocGFkcyBpbiB2aWRlb214ZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBBZGQgZGVsYXllZCBzZXQtcHJvcGVydHkuIFRoaXMgYWxsb3dzIHRvIHNldCBwcm9wZXJ0aWVzIG9uIGR5bmFtaWNhbHkKCSAgY3JlYXRlZCBvYmplY3RzIChwYWRzIGluIHZpZGVvbXhlcikuCgoyMDA4LTAyLTAxIDExOjI3OjMyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMi0wMSAxMDoyNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKToKCSAgQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nIGluIFBBVVNFRCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDA4LTAyLTAxIDEwOjIzOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogV2hlbiByZXBsYWNpbmcgYSBtaW5pb2JqZWN0LCBkbyBhIHF1aWNrIGVxdWFsaXR5IGNoZWNrIGZpcnN0IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGEgcmVmL3VucmVmIHBhaXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSk6CgkgIFdoZW4gcmVwbGFjaW5nIGEgbWluaW9iamVjdCwgZG8gYSBxdWljayBlcXVhbGl0eSBjaGVjayBmaXJzdCBzbyB0aGF0IHdlCgkgIGNhbiBhdm9pZCBhIHJlZi91bnJlZiBwYWlyLgoKMjAwOC0wMi0wMSAxMDoxNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBtdWx0aXF1ZXVlIHRvIHRoZSBkb2NzLgoKMjAwOC0wMS0zMCAxNDozODo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTcgPT09CgoyMDA4LTAxLTMwIDE0OjA1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE3CgoyMDA4LTAxLTMwIDEzOjEzOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIENoYW5nZUxvZyBlbnRyeSBmb3IgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgQ2hhbmdlTG9nIGVudHJ5IGZvciBwcmV2aW91cyBjb21taXQKCjIwMDgtMDEtMzAgMTM6MTI6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMS0zMCAxMjo1NTo0MiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDEtMzAgMTI6NDQ6MTMgKzAwMDAgIEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vIG1vbm90b25pYyBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vCgkgIG1vbm90b25pYyBjbG9jay4KCSAgRml4ZXM6ICM1MTI3MTUKCSAgUGF0Y2ggQnk6IEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6IGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZQoJICBkb3QgbmV0PgoKMjAwOC0wMS0zMCAxMjozOTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGluIHByZXBhcmF0aW9uIGZvciBhbiBpbXByb21wdHUgMC4xMC4xNyByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQgaW4gcHJlcGFyYXRpb24gZm9yIGFuIGltcHJvbXB0dSAwLjEwLjE3IHJlbGVhc2UKCjIwMDgtMDEtMjkgMDk6NDM6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAxLTI4IDIzOjMwOjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNiA9PT0KCjIwMDgtMDEtMjggMjM6Mjc6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNgoKMjAwOC0wMS0yOCAyMToyMDoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMS0yNCAyMzoyODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3IgX1BPU0lYX1RJTUVSLCBfUE9TSVhfTU9OT1RPTklDX0NMT0NLLCBldGMuIE1ha2VzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19UUllfQ09NUElMRSBpbnN0ZWFkIG9mIEFDX1RSWV9SVU4gdG8gY2hlY2sgZm9yCgkgIF9QT1NJWF9USU1FUiwgX1BPU0lYX01PTk9UT05JQ19DTE9DSywgZXRjLiBNYWtlcyBjb25maWd1cmUKCSAgbm90IGZhaWwgd2hlbiB0cnlpbmcgdG8gY3Jvc3Njb21waWxlIG9uIE9wZW5FbWJlZGRlZCAoIzUxMTc1MCkuCgoyMDA4LTAxLTIwIDE3OjA4OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL21hbnVhbHMubWFrOiBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UgdG8gZml4IHRoZSBidWlsZCBpZiBHTlUgbWFrZSBpcyBjYWxsZWQgZGlmZmVyZW50LiBGaXhlcyBidWcgIzUxMDc0Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlIHRvIGZpeCB0aGUgYnVpbGQgaWYgR05VIG1ha2UgaXMKCSAgY2FsbGVkIGRpZmZlcmVudC4gRml4ZXMgYnVnICM1MTA3NDcuCgoyMDA4LTAxLTIwIDE1OjA0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMKCSAgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gY2hhbmdpbmcgdGhlIEFQSQoJICBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpOiB0aGUgZ19saXN0X2ZvcmVhY2goKSBpbgoJICBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMgc3RpbGwgYXNzdW1lZCB0aGUgb2xkIGZ1bmN0aW9uCgkgIHNpZ25hdHVyZSBhbmQgd291bGQgdGhlcmVmb3JlIGZhaWwgKHJlLWZpeGVzICM1MTAxODcpLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9udW1fc3RhdGljX3BsdWdpbnMpLCAoX3N0YXRpY19wbHVnaW5zKSwKCSAgKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyk6CgkgIFJldmVydCB0aGUgKHRlY2huaWNhbGx5IGNvcnJlY3QpIGNoYW5nZSB0byBjYWxsIGdfdGhyZWFkX2luaXQoKSBmcm9tCgkgIHRoZSBwcmUtbWFpbigpIGNvbnN0cnVjdG9yLiBUaGlzIHdpbGwgYnJlYWsgcHJvZ3JhbXMgd2hpY2ggY2FsbAoJICBnX3RocmVhZF9pbml0KCkgd2l0aG91dCBhbiBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBndWFyZCBpbiB0aGVpcgoJICBtYWluIGZ1bmN0aW9uLiBXZSBjb3VsZCBqdXN0IGJsYW1lIGl0IG9uIEdMaWIgb3IgdGhlIGFwcGxpY2F0aW9uLCBidXQKCSAgaXQncyBwcm9iYWJseSBiZXN0IHRvIGp1c3QgYXZvaWQgdGhpcyBhbHRvZ2V0aGVyIGFuZCBzaW1wbHkgbm90IHVzZQoJICBhbnkgR0xpYiBmdW5jdGlvbnMgaGVyZSBhbmQgdXNlIHBsYWluIG9sZCBtYWxsb2MoKSB3aXRoIGEgc2ltcGxlCgkgIGFycmF5IHRvIHN0b3JlIHRoZSBwbHVnaW5zIHRvIHJlZ2lzdGVyIGxhdGVyIHdoZW4gZ3N0X2luaXQoKSBpcwoJICBmaW5hbGx5IGNhbGxlZCAocmUtZml4ZXMgIzUxMDE4NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAoR1NUX0dOVUNfQ09OU1RSVUNUT1JfREVGSU5FRCksCgkgIChHU1RfR05VQ19DT05TVFJVQ1RPUl9ERUZJTkVEKSwgKHBsdWdpbl9pbml0X2NvdW50ZXIpLAoJICAocGx1Z2luMV9pbml0KSwgKHBsdWdpbjJfaW5pdCksIChwbHVnaW4zX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIER1bWIgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgb2xkIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBzdGlsbAoJICB3b3Jrcy4KCjIwMDgtMDEtMTcgMjI6MjI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYXJvdW5kIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgUmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhcm91bmQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoJICBUaGlzIG1ha2VzIGd0ay1kb2MgY29tcGxhaW4sIGJ1dCByZXN1bHRzIGluIHNsaWdodGx5IGJldHRlcgoJICBjb21waWxlciBlcnJvcnMuIFRoZSBvbGQgX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgaXMKCSAgc3RpbGwgZ3VhcmRlZCwgc28gdGhlcmUnbGwgYmUgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHRoYXQKCSAgaW5zdGVhZC4gRml4ZXMgIzUxMDE4NyB0b28uCgoyMDA4LTAxLTE3IDIyOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQ2hhbmdlIEFQSSBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIHRvIG5vdCB0YWtlIGEgR3N0UGx1Z2luRGVzYywgYnV0IHJhdGhlciBqdXN0IHRha2UgYWxsIHRoZSBhcmd1bWVudHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdzdFBsdWdpbkZpbHRlcik6CgkgIENoYW5nZSBBUEkgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSB0byBub3QgdGFrZQoJICBhIEdzdFBsdWdpbkRlc2MsIGJ1dCByYXRoZXIganVzdCB0YWtlIGFsbCB0aGUgYXJndW1lbnRzCgkgIGluIGEgR3N0UGx1Z2luRGVzYyBkaXJlY3RseS4gVGhpcyBpcyBtb3JlIGludHVpdGl2ZSBhbmQKCSAgYXZvaWRzIGNlcnRhaW4gbWlzdGFrZXMgd2hlbiBwb3J0aW5nIGNvZGUgZnJvbQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgdG8gZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKS4KCSAgRml4ZXMgIzUxMDE4Ny4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCB1cCBmb3IgY2hhbmdlZCBBUEkuCgoyMDA4LTAxLTE3IDE4OjUwOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2xlZ2FsLnhtbDogVXBkYXRlIEZBUSwgVG90ZW0gYWN0dWFsbHkgaGFzIGFuIGV4Y2VwdGlvbiB0aGVzZSBkYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkgIFVwZGF0ZSBGQVEsIFRvdGVtIGFjdHVhbGx5IGhhcyBhbiBleGNlcHRpb24gdGhlc2UgZGF5cy4KCjIwMDgtMDEtMTQgMjI6MjA6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgQVBJIGRlY2xhcmF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBBUEkgZGVjbGFyYXRpb25zCgoyMDA4LTAxLTE0IDEzOjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoKMjAwOC0wMS0xNCAxMTo0NzozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCjIwMDgtMDEtMTQgMTE6NDA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggbG9uZyBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3IgUW9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGxvbmcgcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIFFvUy4KCjIwMDgtMDEtMTIgMjA6MjI6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlIGl0IG91cnNlbHZlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlCgkgIGl0IG91cnNlbHZlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgJ2J1ZmZlcnMnLCAnY2hlY2tfY29uZCcgYW5kICdjaGVja19tdXRleCcgZnJvbSBsaWJnc3RjaGVjawoJICBhbmQgcmVtb3ZlIHN0cmFuZ2UgdGNhc2VfYWRkX3Rlc3Qgd2hpY2ggaXMgb3V0cHV0dGluZyBhIHdhcm5pbmcuCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBQcm9wZXJseSBkZWNsYXJlICdidWZmZXJzJywgJ2NoZWNrX2NvbmQnLCAnY2hlY2tfbXV0ZXgnIGV4dGVybgoJICBhbmQgZGVmaW5lIHRoZW0gaW4gZ3N0Y2hlY2suYyBpbnN0ZWFkIG9mIGhhdmluZyBldmVyeSAuYyBmaWxlIHdoY2loCgkgIGluY2x1ZGVzIGdzdGNoZWNrLmggYmUgZGVmaW5pbmcgaXRzIG93biBjb3B5IGFuZCByZWx5aW5nIG9uIHN5bWJvbAoJICBpbnRlcnBvc2luZyB0byBtYXJyeSB0aGVtIGFsbCwgd2hpY2ggZG9lc24ndCB3b3JrIG9uIFNvbGFyaXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgZGVmaW5lICdidWZmZXJzJyBsb2NhbGx5LCBpdCBjb21lcyBmcm9tIGxpYmdzdGNoZWNrLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfYnVmZmVyKToKCSAgRml4IHR5cGUgb2YgdmFyaWFibGUgKEdzdEZsb3dSZXR1cm4sIG5vdCBHc3RTdGF0ZUNoYW5nZVJldHVybikKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhIGJ1bmNoIG9mIGNhc3RzIHRvIG1ha2UgdmFyaW91cyBjb25zdGFudHMgZml0IHRoZSB0eXBlcwoJICB0aGV5J3JlIGJlaW5nIGFzc2lnbmVkIHRvLgoKMjAwOC0wMS0xMCAyMTowNjo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogSW1wcm92ZSBkb2NzIGFuZCBhZGQgc29tZSBpZGVhcyBmb3IgbWFraW5nIHRoaXMgbW9yZSBnZW5lcmFsLXB1cnBvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEltcHJvdmUgZG9jcyBhbmQgYWRkIHNvbWUgaWRlYXMgZm9yIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJhbC1wdXJwb3NlLgoKMjAwOC0wMS0xMCAxNTo1NTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKEdTVF9DQVRfVFlQRVMpOgoJICBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIKCSAgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gU3BvdHRlZCBieSBTYXVyIG9uIElSQy4KCjIwMDgtMDEtMTAgMTM6MDM6MzUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTW92ZSB0eXBlcy5oIGZyb20gRVhUUkFfRElTVCB0byBub2luc3RfSEVBREVSUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNb3ZlIHR5cGVzLmggZnJvbSBFWFRSQV9ESVNUIHRvIG5vaW5zdF9IRUFERVJTLgoKMjAwOC0wMS0xMCAxMjoxNDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgYXV0b2dlbi5zaDogQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncyBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MKCSAgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZSByZXF1aXJlIEdOVSBtYWtlIGluIGFsbW9zdAoJICBldmVyeSBNYWtlZmlsZSBhbnl3YXkuCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQU1fUFJPR19DQ19DX08gYXMgYSBjb21waWxlciB0aGF0IGFjY2VwdHMgYm90aCAtYyBhbmQgLW8KCSAgYXQgdGhlIHNhbWUgdGltZSBpcyByZXF1aXJlZCBmb3IgcGVyIHRhcmdldCBmbGFncy4KCjIwMDgtMDEtMDkgMTg6MjM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGFuZCBkZXByZWNhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYyk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBhbmQgZGVwcmVjYXRlCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgc2luY2UgaXQncyBub3QgcG9ydGFibGUKCSAgKCM0OTg5MjQpLgoJICBBbHNvLCBpbiBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSwgbWFrZSBzdXJlIHRvIGNhbGwKCSAgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBjYWxsaW5nIEdMaWIgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19saXN0X2FwcGVuZCgpIGlmIHdlJ3JlIG5vdCBpbml0aWFsaXNlZCB5ZXQsIHNpbmNlIHRoYXQKCSAgbWF5IGxlYWQgdG8gcmFuZG9tIGNyYXNoZXMgd2l0aCBvbGRlciBHU2xpY2UvR0xpYiB2ZXJzaW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEFkYXB0IHVuaXQgdGVzdCB0byBhYm92ZSBjaGFuZ2VzLgoKMjAwOC0wMS0wOSAxNjozNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFlldCBhbm90aGVyIGdyYXR1aXRvdXMgR1N0cmluZyBtaWNyby1vcHRpbWlzYXRpb246IGFkZCBhIChwcml2YXRlKSBmdW5jdGlvbiB0aGF0IHNlcmlhbGlzZXMgYSBzdHJ1Y3R1cmUgYXBwZW5kaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKFNUUlVDVFVSRV9FU1RJTUFURURfU1RSSU5HX0xFTik6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX0FTQ0lJX0lTX1NUUklORyksCgkgIChwcml2X2dzdF9zdHJ1Y3R1cmVfYXBwZW5kX3RvX2dzdHJpbmcpLCAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpOgoJICBZZXQgYW5vdGhlciBncmF0dWl0b3VzIEdTdHJpbmcgbWljcm8tb3B0aW1pc2F0aW9uOiBhZGQgYSAocHJpdmF0ZSkKCSAgZnVuY3Rpb24gdGhhdCBzZXJpYWxpc2VzIGEgc3RydWN0dXJlIGFwcGVuZGluZyB0byBhbiBleGlzdGluZwoJICBHU3RyaW5nLCBzbyB0aGF0IHdoZW4gd2Ugc2VyaWFsaXNlIGNhcHMgd2UgZG9uJ3QgbmVlZCB0byBhbGxvYytmcmVlCgkgIGEgdGhyb3dhd2F5IEdTdHJpbmcgZm9yIGVhY2ggc3RydWN0dXJlIChlYWNoIG9mIHdoaWNoIGFsc28gZW50YWlsaW5nCgkgIG11bHRpcGxlIHJlYWxsb2NzIG9uIHRoZSB3YXkpOyBhbHNvIHVzZSBnX3N0cmluZ19zaXplZF9uZXcoKSBpbgoJICB2YXJpb3VzIHBsYWNlcyB3aXRoIGFuIGFwcHJveGltYXRlIHN0cmluZyBsZW5ndGggdG8gYXZvaWQgcmVhbGxvY3MKCSAgd2l0aGluIEdTdHJpbmcuIFNlZSAjNTAwMTQzLgoKMjAwOC0wMS0wOSAxNTowNToyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWx3YXlzIGNoZWNrIFVURi04IGNvbmZvcm1hbmNlIG9mIHN0cnVjdHVyZSBzdHJpbmdzIGFuZCBub3Qgb25seSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIEFsd2F5cyBjaGVjayBVVEYtOCBjb25mb3JtYW5jZSBvZiBzdHJ1Y3R1cmUgc3RyaW5ncyBhbmQgbm90IG9ubHkKCSAgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZDsgcmVhc29uaW5nOiB0aGUgYmVoYXZpb3VyIG9mCgkgIHRoZSBhY3R1YWwgY29kZSBzaG91bGRuJ3QgcmVhbGx5IGNoYW5nZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUKCSAgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkIG9yIG5vdCAoIzUwODI5MSkuCgoyMDA4LTAxLTA5IDEzOjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlZmlsZS5hbTogUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoKMjAwOC0wMS0wOSAxMjoyNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoKMjAwOC0wMS0wOSAxMjoyMjoyMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaDogQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUKCSAgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW1lLiBmaXhlcyAjNTA4MTc1LgoKMjAwOC0wMS0wOSAxMjoxOTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSW1wcm92ZSBwcmludGluZyBvZiBmbGFncy4KCjIwMDgtMDEtMDggMjE6MTM6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJpbnQgZWxlbWVudCBuYW1lIHdpdGggZ193YXJuaW5nKCkgaWYgdGhlcmUncyBhIHByb2JsZW0gd2l0aCB0aGUgdW5pdCBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIFByaW50IGVsZW1lbnQgbmFtZSB3aXRoIGdfd2FybmluZygpIGlmIHRoZXJlJ3MgYSBwcm9ibGVtCgkgIHdpdGggdGhlIHVuaXQgc2l6ZS4KCjIwMDgtMDEtMDggMDI6MDc6MzggKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC86IEZpeCBlbXB0eSBwcm90b3R5cGVzLiAgRml4ZXMgYnVnICM1MDc5NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBGaXggZW1wdHkgcHJvdG90eXBlcy4gIEZpeGVzIGJ1ZyAjNTA3OTU3LgoKMjAwOC0wMS0wOCAwMjowMTozNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDogRml4IHR5cG8uCgoyMDA4LTAxLTA3IDExOjIzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIGluIGRvX3NlZWssIHRoYXQncyB0aGUgcG9zaXRpb24gd2UgZGlkIGEgc2VlayB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3QgdXBkYXRlIHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gaW4gZG9fc2VlaywgdGhhdCdzIHRoZSBwb3NpdGlvbiB3ZQoJICBkaWQgYSBzZWVrIHRvLgoJICBSZWFkIGJhY2t3YXJkcyB3aGVuIHdlIGhhdmUgYSBuZWdhdGl2ZSByYXRlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGV2ZW50X2Z1bmMpLCAod2FpdF9lb3MpLAoJICAoc2V0dXBfZmlsZXNyYyksIChjbGVhbnVwX2ZpbGVzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCBjaGVjayBmb3IgcmV2ZXJzZSByZWFkaW5nLgoKMjAwOC0wMS0wNyAwOTo0Nzo0OSArMDAwMCAgQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyQGdlbnRvby5vcmc+CgoJICB0ZXN0cy9jaGVjay86IERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldCBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXIgYXQgZ2VudG9vIG9yZz4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgIERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldAoJICBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXJlIHNpemVzIG9mIHBwYzY0IGhlYWRlcgoJICBmb3IgNjQtYml0IHVzZXJsYW5kICgjNTAzNTkwKS4gIE1pZ2h0IG5lZWQgc29tZXRoaW5nIHNpbWlsYXIgZm9yCgkgIHg4NiB0b28uCgoyMDA4LTAxLTA1IDEzOjQ1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogTG9nIHRoZSByZWFzb24gd2h5IGZvcGVuIGZhaWxzIGluIGFkZGl0aW9uIHRvIHRoZSBmYWN0IHRoYXQgaXQgZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpOgoJICBMb2cgdGhlIHJlYXNvbiB3aHkgZm9wZW4gZmFpbHMgaW4gYWRkaXRpb24gdG8gdGhlIGZhY3QgdGhhdCBpdCBmYWlsZWQuCgoyMDA4LTAxLTA0IDE4OjQ0OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogVXNlICIlb3B0aW9uIG5ldmVyLWludGVyYWN0aXZlIiB0byBwcmV2ZW50IHVzZWxlc3MgY2FsbHMgdG8gaXNhdHR5KCkgb24gZXZlcnkgaW5wdXQgd2hlbiBwYXJzaW5nLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFVzZSAiJW9wdGlvbiBuZXZlci1pbnRlcmFjdGl2ZSIgdG8gcHJldmVudCB1c2VsZXNzIGNhbGxzIHRvIGlzYXR0eSgpCgkgIG9uIGV2ZXJ5IGlucHV0IHdoZW4gcGFyc2luZy4gQWxzbyB1c2UgIiVvcHRpb24gbm9pbnB1dCIgdG8gbm90IGRlZmluZQoJICB0aGUgc3RhdGljIGlucHV0L3l5aW5wdXQgZnVuY3Rpb25zIHdoaWNoIHdlIGRvbid0IHVzZSBhbnl3YXkuIFRoaXMKCSAgcmVtb3ZlcyBhIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBnY2MgNC4zIGFuZCBzYXZlcyBzb21lIGJ5dGVzIGluIHRoZQoJICBsaWJyYXJ5LgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVnZW5lcmF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2UuCgoyMDA4LTAxLTA0IDE4OjM5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBjcmFzaCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYW5kIGVtcHR5IGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIERvbid0IGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhbmQgZW1wdHkgbGlzdC4KCSAgRml4ZXMgIzUwNjY0My4KCjIwMDgtMDEtMDMgMDk6NDM6NDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQ2xhcmlmeSB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGUgdXNhZ2Ugb2YgdGhpcyBzY3JpcHQgYW5kIHdoYXQgaXQgZG9lcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBDbGFyaWZ5IHRoZSBjb21tZW50cyB0byBtYWtlIHRoZSB1c2FnZSBvZiB0aGlzIHNjcmlwdCBhbmQgd2hhdCBpdAoJICBkb2VzIGVhc2llciB0byB1bmRlcnN0YW5kLgoKMjAwOC0wMS0wMSAxNzoxMDozMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgoyMDA3LTEyLTMxIDE5OjExOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTb21lIG1vcmUgaW5mbyBvbiBob3cgdGhlIHN0cmVhbV90aW1lIGluIEdzdEJhc2VTaW5rIGlzIGRvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU29tZSBtb3JlIGluZm8gb24gaG93IHRoZSBzdHJlYW1fdGltZSBpbiBHc3RCYXNlU2luayBpcyBkb25lLgoKMjAwNy0xMi0zMCAxMzozNjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IHJlbW92ZSBib2d1cyBjaGFuZ2Vsb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiByZW1vdmUgYm9ndXMgY2hhbmdlbG9nIGVudHJ5CgoyMDA3LTEyLTMwIDEzOjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBQdXQgYmFjayB0aGUgdGNhc2Vfc2V0X3RpbWVvdXQoKSwgYXBwYXJlbnRseSBpdCdzIG5lZWRlZCBhZnRlciBhbGw7IGZpeCBpdCB1cCBpbiBhIHdheSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGdzdF9zaW5rc19zdWl0ZSk6CgkgIFB1dCBiYWNrIHRoZSB0Y2FzZV9zZXRfdGltZW91dCgpLCBhcHBhcmVudGx5IGl0J3MgbmVlZGVkIGFmdGVyCgkgIGFsbDsgZml4IGl0IHVwIGluIGEgd2F5IHRoYXQgbWFrZXMgdGhpbmdzIHdvcmsgd2l0aCB2YWxncmluZCB0b28uCgoyMDA3LTEyLTMwIDEyOjIyOjQ5ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogYWRkIHdhcm5pbmcgd2hlbiBmYWlsZWQgdG8gb3BlbiBmaWxlIGZvciB3cml0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGFkZCB3YXJuaW5nIHdoZW4gZmFpbGVkIHRvIG9wZW4gZmlsZSBmb3Igd3JpdGluZwoKMjAwNy0xMi0yOCAxNDozNDozNCArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE9wdGltaXNhdGlvbjogYmFpbCBvdXQgb2YgdGhlIGxvb3AgYXMgZWFybHkgYXMgcG9zc2libGUgKCM1MDAxNDMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsICA8c3BnbGVnbGUgeWFob28gZnI+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBPcHRpbWlzYXRpb246IGJhaWwgb3V0IG9mIHRoZSBsb29wIGFzIGVhcmx5IGFzIHBvc3NpYmxlICgjNTAwMTQzKS4KCjIwMDctMTItMjggMTQ6MTU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBCdW5jaCBvZiBncmF0dWl0b3VzIG5hbm8tb3B0aW1pc2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb25zdHJ1Y3RfdGVybV9jb2xvcik6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kdW1wX21lbSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2FueV9saXN0KSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYW55X2xpc3Rfc3RyaW5nKToKCSAgQnVuY2ggb2YgZ3JhdHVpdG91cyBuYW5vLW9wdGltaXNhdGlvbnMuCgoyMDA3LTEyLTI4IDEzOjU3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBGaXggbGVhayBpbiB1bml0IHRlc3QgKGJ1cyBzeW5jIGhhbmRsZXIgbXVzdCB1bnJlZiB0aGUgbWVzc2FnZSBpZiBpdCByZXR1cm5zIEdTVF9CVVNfRFJPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGFzeW5jX2RvbmVfZnVuYyksCgkgIChhc3luY19kb25lX2Vvc19mdW5jKToKCSAgRml4IGxlYWsgaW4gdW5pdCB0ZXN0IChidXMgc3luYyBoYW5kbGVyIG11c3QgdW5yZWYgdGhlIG1lc3NhZ2UKCSAgaWYgaXQgcmV0dXJucyBHU1RfQlVTX0RST1ApLiBEb24ndCBmaWRkbGUgd2l0aCB0aGUgZGVmYXVsdCB0ZXN0CgkgIHRpbWVvdXQsIHRoaXMgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHByZWNvbmZpZ3VyZWQgdmFsdWUKCSAgdmlhIENLX0RFRkFVTFRfVElNRU9VVCwgYW5kIGFsc28gYnJlYWtzIHRoaW5ncyB3aXRoIHZhbGdyaW5kCgkgIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gQ0tfREVGQVVMVF9USU1FT1VULgoKMjAwNy0xMi0yNCAxOToyMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoKMjAwNy0xMi0yNCAxOToxMToyOSArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgY29uZmlndXJlLmFjOiBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGJ1ZmZlcl9tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfZmlsZV9zaW5rX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kaXNwb3NlKSwgKGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGQgdHdvIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgYnVmZmVyaW5nIG1vZGUgYW5kIHNpemUuCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1tb2RlCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1zaXplCgoyMDA3LTEyLTI0IDE0OjM1OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZG9jcyB0byBleHBsYWluIHdoeSBhIEZJWE1FIHdhcyB3cm9uZ2x5IGFkZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgdG8gZXhwbGFpbiB3aHkgYSBGSVhNRSB3YXMgd3JvbmdseSBhZGRlZC4KCjIwMDctMTItMjIgMTI6NDg6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHR5cG8gaW4gdGhlIGdzdF9vYmplY3Rfe3JlZix1bnJlZn0gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBGaXggdHlwbyBpbiB0aGUgZ3N0X29iamVjdF97cmVmLHVucmVmfSBkb2N1bWVudGF0aW9uLgoKMjAwNy0xMi0yMSAyMToxNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogRG9uJ3QgdXNlIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgaXQgaXMgbm90IHBvcnRhYmxlIGFuZCBpcyBnb2luZyB0byBiZSBkZXByZWNhdGVkIChzZWUgIzQ5ODkyNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIERvbid0IHVzZSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIGl0IGlzIG5vdCBwb3J0YWJsZSBhbmQgaXMKCSAgZ29pbmcgdG8gYmUgZGVwcmVjYXRlZCAoc2VlICM0OTg5MjQpLgoKMjAwNy0xMi0yMSAyMDo1ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5jOiBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywKCSAgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKHByZXJlcXVpc2l0ZSBmb3IgIzQ5ODkyNCkuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb24uCgoyMDA3LTEyLTIxIDEzOjU0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMCgkgIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBUaGlzIGNvcnJlY3RseSBjYWxscyB0aGUgdW5saW5rIGZ1bmN0aW9ucyBhbmQgbWFrZXMgc3VyZSB0aGF0IHRoZSBwZWVyCgkgIGRvZXMgbm90IGhhdmUgYSBoYW5kbGUgdG8gaW52YWxpZCBtZW1vcnkuIFNlZSAjNTA0NjcxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGQgdGVzdHN1aXRlIGZvciBhYm92ZSBjYXNlLgoKMjAwNy0xMi0yMCAwOToyMDoyNyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZCBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZAoJICBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2sgZ29lcyB2MC4xMC4wKTsgY29ycmVjdGx5IHJlcG9ydCB0aGUKCSAgbmFtZSBvZiB0aGUgZmFpbGVkIHRlc3QgYWdhaW4gaW4gY2FzZSBvZiBmYWlsdXJlLCBpbnN0ZWFkIG9mCgkgIGp1c3QgJ3RmJyAoZml4ZXMgIzUwNDQ5OSkuCgoyMDA3LTEyLTE5IDE3OjQ5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbQoJICB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgVXBkYXRlIGRvY3MgYW5kIGRlcHJlY2F0ZSB0aGUgb2xkIE5VTEwvUkVBRFkgc2h1dGRvd24gbWV0aG9kLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjb250cm9sbGVkIHNodXRkb3duLgoKMjAwNy0xMi0xOSAxMjo0ODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU21hbGwgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTbWFsbCB1cGRhdGVzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIFRoZSBzZWVrIGZvcm1hdCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gdGhlIHN0YXJ0CgkgIGFuZCBzdG9wIHZhbHVlcyBhcmUgbm90IHRvIGJlIHVwZGF0ZWQsIHdoZW4gd2Ugb25seSBkbyBhIHJhdGUgY2hhbmdlIGZvcgoJICBleGFtcGxlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIEFkZCBhIHRlc3RjYXNlIGZvciB0aGUgcmF0ZS1vbmx5IHNlZWtzLCBjaGVja2luZyB0aGF0IHRoZSBmb3JtYXQgaXMKCSAgY29ycmVjdGx5IGlnbm9yZWQgd2hlbiBzdGFydCBhbmQgc3RvcCBhcmUgbm90IHVwZGF0ZWQuCgoyMDA3LTEyLTE4IDEzOjM4OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5LCBnc3RlbnVtdHlwZXMuYyBjaGFuZ2VzIHdlcmUgbm90IGNvbW1pdHRlZCBiZWNhdXNlIHRoZXJlIHdlcmUgbm9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2cgc3VyZ2VyeSwgZ3N0ZW51bXR5cGVzLmMgY2hhbmdlcyB3ZXJlIG5vdCBjb21taXR0ZWQgYmVjYXVzZSB0aGVyZSB3ZXJlIG5vbmUKCjIwMDctMTItMTggMTM6MTg6MzUgKzAwMDAgIE1hdHRoaWFzIEJvbHRlIDxwaG90b25AbWFpbC51cGIuZGU+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogKHJlZ2lzdGVyX2dzdF9idWZmZXJfZmxhZyksCgkgIChyZWdpc3Rlcl9nc3RfYnVmZmVyX2NvcHlfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2Nsb2NrX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9kZWJ1Z19ncmFwaF9kZXRhaWxzKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2UpLAoJICAocmVnaXN0ZXJfZ3N0X2VsZW1lbnRfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2NvcmVfZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X2xpYnJhcnlfZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdHJlYW1fZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGUpLCAocmVnaXN0ZXJfZ3N0X2luZGV4X2VudHJ5X3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X2Fzc29jX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9tZXNzYWdlX3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X21pbmlfb2JqZWN0X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wYWRfbGlua19yZXR1cm4pLAoJICAocmVnaXN0ZXJfZ3N0X2Zsb3dfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9wYWRfdGVtcGxhdGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X3BpcGVsaW5lX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wbHVnaW5fZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X3RhZ19tZXJnZV9tb2RlKSwgKHJlZ2lzdGVyX2dzdF9hbGxvY190cmFjZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfdHlwZV9maW5kX3Byb2JhYmlsaXR5KSwgKHJlZ2lzdGVyX2dzdF9wYXJzZV9lcnJvcik6CgkgIFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIFBhdGNoIGJ5OiBNYXR0aGlhcyBCb2x0ZSA8cGhvdG9uIGF0IG1haWwgZG90IHVwYiBkb3QgZGU+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggVlM4IGFuZCBpbmNsdWRlIHNvbWUgbWlzc2luZyBmaWxlcy4KCjIwMDctMTItMTggMTI6MDM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uOiBtZW50aW9uIHRoYXQgdGhlIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcqKCkgYXJlIGluIFVURi04IGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbjogbWVudGlvbiB0aGF0IHRoZSBzdHJpbmdzIHJldHVybmVkIGJ5CgkgIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKigpIGFyZSBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMDctMTItMTcgMTk6NTk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoKMjAwNy0xMi0xNyAxNjozODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIF93YWl0X3BsYXlpbmcoKSBub3QgY2hlY2sgYW55IHZhcmlhYmxlcyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSBzdWJjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBfd2FpdF9wbGF5aW5nKCkgbm90IGNoZWNrIGFueSB2YXJpYWJsZXMgc28gdGhhdCB3ZSBjYW4gY2FsbCB0aGlzCgkgIGZ1bmN0aW9uIGZyb20gc3ViY2xhc3Nlcy4gTW92ZSB0aGUgY2hlY2tzIGVsc2V3aGVyZSBzaW1pbGFyIHRvCgkgIF93YWl0X3ByZXJvbGwoKSBpbiBiYXNlc2luay4KCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPbmx5IHNpZ25hbCB0aGUgTElWRSBjb25kIHdoZW4gd2UgYXJlIGdvaW5nIGJhY2sgdG8gUExBWUlORy4KCjIwMDctMTItMTYgMTg6Mjk6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQKCSAgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2NyaXB0b3IgaWYgd2UgZXJyb3Igb3V0IHdoZW4gd3JpdGluZy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBNdXN0IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgY2xvc2UoKSBhZnRlciB3cml0aW5nIG91dCB0aGUgbmV3CgkgIHJlZ2lzdHJ5IGZpbGUuICBTb21ldGltZXMgd3JpdGUgcHJvYmxlbXMgc3VjaCBhcyBvdXQtb2YtZGlza3NwYWNlCgkgIGFyZSBvbmx5IHJlcG9ydGVkIHdoZW4gdGhlIGZpbGUgaXMgY2xvc2VkIGFuZCBub3QgYWxyZWFkeSBkdXJpbmcKCSAgdGhlIHdyaXRlLiAgVGhpcyBtYXkgaGF2ZSBjYXVzZWQgcGFydGlhbC9icm9rZW4gcmVnaXN0cnkgZmlsZXMgaW4KCSAgc29tZSByYXJlIGNpcmN1bXN0YW5jZXMuIFNob3VsZCBmaXggIzUwMzY3NS4KCjIwMDctMTItMTYgMTc6Mzc6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzLzogSWdub3JlIGZpbGVzIGdlbmVyYXRlZCBieSBuZXcgY29tbW9uLyogbW9kaWZpY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvbGlicy8uY3ZzaWdub3JlOgoJICAqIGRvY3MvcGx1Z2lucy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZXMgZ2VuZXJhdGVkIGJ5IG5ldyBjb21tb24vKiBtb2RpZmljYXRpb25zCgoyMDA3LTEyLTE1IDE1OjE5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IFllcywgeW91IGNhbiBhbHNvIGhhdmUgYSA8VEFCPiBpZiB5b3Ugd2FudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBZZXMsIHlvdSBjYW4gYWxzbyBoYXZlIGEgPFRBQj4gaWYgeW91IHdhbnQuCgoyMDA3LTEyLTE1IDE0OjU4OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoKMjAwNy0xMi0xNSAxNDo0MjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGp1c3QgdGhlIHRlc3QgdG8gdGhlIHJlZmNvdW50IGNoYW5nZSB0d28gZGF5cyBhZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgQWRqdXN0IHRoZSB0ZXN0IHRvIHRoZSByZWZjb3VudCBjaGFuZ2UgdHdvIGRheXMgYWdvLgoKMjAwNy0xMi0xNCAyMTozNjo1MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOiBGaXggdHlwby4KCjIwMDctMTItMTQgMTY6NTI6MzggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyCgkgIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igc2hvdWxkbid0CgkgIGdldCBidWZmZXJzIHdpdGggdGhpcyBmbGFnIGF0IGFsbC4gRml4ZXMgIzUwMzIzMS4KCjIwMDctMTItMTMgMTY6NDk6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBSZXBsYWNlIGdzdF9wYWRfZ2V0X3BhcmVudCBieSBHU1RfT0JKRUNUX1BBUkVOVCBpbnNpZGUgc3RyZWFtaW5nIHRocmVhZC4gQ29ycmVjdCBsb2cgbWVzc2FnZSBpbiBnc3RiYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJlcGxhY2UgZ3N0X3BhZF9nZXRfcGFyZW50IGJ5IEdTVF9PQkpFQ1RfUEFSRU5UIGluc2lkZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBDb3JyZWN0IGxvZyBtZXNzYWdlIGluIGdzdGJhc2VzcmMuYy4KCjIwMDctMTItMTMgMTM6NTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IHBvc3NpYmxlIGNvbXBpbGVyIHdhcm5pbmcgKCM1MDM0MTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmNvbm5lY3RlZF9wYWQpOgoJICBGaXggcG9zc2libGUgY29tcGlsZXIgd2FybmluZyAoIzUwMzQxNykuCgoyMDA3LTEyLTEzIDExOjQxOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCjIwMDctMTItMTMgMTA6MzE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCBzdXBwb3J0IGZvciBHc3RGcmFjdGlvbiBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBBZGQgc3VwcG9ydCBmb3IgR3N0RnJhY3Rpb24gcHJvcGVydGllcy4KCjIwMDctMTItMTIgMjM6MjA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogQWRkIGNoZWNrLWV4cG9ydHMgdGFyZ2V0IGFuZCBydW4gaXQgYXMgcGFydCBvZiAnbWFrZSBjaGVjaycgKHNlZSAjNDk5MTQwIGFuZCAjNDkzOTgzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIEFkZCBjaGVjay1leHBvcnRzIHRhcmdldCBhbmQgcnVuIGl0IGFzIHBhcnQgb2YgJ21ha2UgY2hlY2snCgkgIChzZWUgIzQ5OTE0MCBhbmQgIzQ5Mzk4MykuCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5fdmFsZ3JpbmQpLCAoX2dzdF9kZWJ1Z19pbml0KSwKCSAgKF9wcml2X2dzdF9pbl92YWxncmluZCk6CgkgICogZ3N0L2dzdGluZm8uaDogKEdzdExvZ0Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKHR5cGVfZmluZF9kZWJ1ZyksIChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAodHlwZV9maW5kX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKEdTVF9DQVRfREVGQVVMVCksIChwYXJlbnRfY2xhc3MpLCAocHJpdl9nc3RfY29udHJvbGxlcl9rZXkpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoR1NUX0NBVF9ERUZBVUxUKSwgKGdzdF9vYmplY3RfdW5jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMpLCAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3NvdXJjZSksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXkpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICBNYWtlIHNvbWUgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHN0YXRpYyBzdGF0aWM7IHJlbmFtZSBzb21lCgkgIHByaXZhdGUgc3ltYm9scyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkOyBhZGQgc29tZSBGSVhNRQoJICBjb21tZW50cyBzbyB3ZSBjYW4gbW92ZSBhY2NpZGVudGFsbHkgZXhwb3J0ZWQgZnVuY3Rpb25zIGludG8KCSAgb3VyIHByaXZhdGUgc2VjdGlvbiBpbiAwLjExLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3V0aWxzX2dldF90aW1lc3RhbXAoKS4KCjIwMDctMTItMTIgMTQ6MDQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBBZGQgbW9yZSBtaXNzaW5nICJTaW5jZToiIHRhZ3MgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEFkZCBtb3JlIG1pc3NpbmcgIlNpbmNlOiIgdGFncyB0byBkb2NzLgoKMjAwNy0xMi0xMiAwNjo1ODo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCjIwMDctMTItMTEgMjI6MDM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSW5jbHVkZSAiZ2xpYi1jb21wYXQtcHJpdmF0ZS5oIiB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbSB3aXRoIGdsaWIgPCAyLjEwLiBGaXhlcyAjNTAzMTMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEluY2x1ZGUgImdsaWItY29tcGF0LXByaXZhdGUuaCIgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW0gd2l0aAoJICBnbGliIDwgMi4xMC4gRml4ZXMgIzUwMzEzMS4KCjIwMDctMTItMTEgMjA6MzI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy4qOiBBY3R1YWxseSBpdHMgbm90IFBVUkUgYXMgaXQgZ2V0cyB0aGUgdGltZSBmcm9tIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFjdHVhbGx5IGl0cyBub3QgUFVSRSBhcyBpdCBnZXRzIHRoZSB0aW1lIGZyb20gZWxzZXdoZXJlLgoKMjAwNy0xMi0xMSAyMDoyMzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlIEdTVF9HRVRfVElNRVNUQU1QIGludG8gZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCBhbmQgcmVwbGFjZSBhbGwgdXNlcyBhcyB3ZSBkb24ndCBoYXZlIEhBVkVfUE9TSVhfVElNRVJTIGluIHB1YmxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSBHU1RfR0VUX1RJTUVTVEFNUCBpbnRvIGdzdF91dGlsX2dldF90aW1lc3RhbXAgYW5kIHJlcGxhY2UgYWxsCgkgIHVzZXMgYXMgd2UgZG9uJ3QgaGF2ZSBIQVZFX1BPU0lYX1RJTUVSUyBpbiBwdWJsaWMgaGVhZGVycy4KCSAgVGhhbmtzIFRpbSBmb3Igc3BvdHRpbmcuCgoyMDA3LTEyLTExIDE1OjI5OjI2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZSBieSBtaXJyb3JpbmcgbGF0ZXN0IEZlZG9yYSBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUgYnkgbWlycm9yaW5nIGxhdGVzdCBGZWRvcmEgb25lCgoyMDA3LTEyLTA5IDA0OjI4OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBkZWZpbmUgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBmb3IgcmVsZWFzZXMuIEZpeGVzICM0OTgxODEuCgoyMDA3LTEyLTA4IDEyOjU0OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBEb24ndCBjcmFzaCBpbiBfZnJvbV9zdHJpbmcoKSBpZiB0aGUgc3RydWN0dXJlIG5hbWUgaXMgbm90IHZhbGlkIChmaXhlcyAjNTAxNTYwKS4gIEFsbG93IHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsaWRhdGVfbmFtZSksCgkgIChnc3Rfc3RydWN0dXJlX25ld192YWxpc3QpLCAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRG9uJ3QgY3Jhc2ggaW4gX2Zyb21fc3RyaW5nKCkgaWYgdGhlIHN0cnVjdHVyZSBuYW1lIGlzIG5vdCB2YWxpZAoJICAoZml4ZXMgIzUwMTU2MCkuICBBbGxvdyBzdHJ1Y3R1cmUgbmFtZXMgdG8gc3RhcnQgd2l0aCBhIG51bWJlcgoJICBhZ2FpbiAodGhpcyBhcHBhcmVudGx5IGJyb2tlIHRoZSB1YnVudHUgY29kZWMgaW5zdGFsbGVyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjcmFzaDsgdXBkYXRlIHVuaXQgdGVzdHMgZm9yIG5ldyBiZWhhdmlvdXIuCgoyMDA3LTEyLTAzIDExOjA0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgRml4ZXMgIzUwMDkxOS4KCjIwMDctMTItMDIgMjA6MzM6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgoyMDA3LTExLTI4IDEzOjAyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCjIwMDctMTEtMjggMTI6NTI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCB3cm9uZyBvcmRlciBvZiBhcmdzIGluIEdTVF9DTE9DS19ESUZGKCkgdXNhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdyb25nIG9yZGVyIG9mIGFyZ3MgaW4gR1NUX0NMT0NLX0RJRkYoKSB1c2FnZS4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgoyMDA3LTExLTI4IDEyOjM1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgbmV3IEFQSSArIENoYW5nZUxvZyBzdXJnZXJ5IHRvIHJlbW92ZSBvbGQgbmFtZSBmcm9tIGxhc3QgZW50cnkuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUmVuYW1lIG5ldyBBUEkgKyBDaGFuZ2VMb2cgc3VyZ2VyeSB0byByZW1vdmUgb2xkIG5hbWUgZnJvbSBsYXN0IGVudHJ5Li4KCSAgQVBJOiBHU1RfR0VUX1RJTUVTVEFNUAoKMjAwNy0xMS0yOCAxMjoxMTo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTm93IGhpZGUgdGhlIGRpZmZlcmVudCBjbG9jayBzdHVmZiBiZWhpbmQgYSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIE5vdyBoaWRlIHRoZSBkaWZmZXJlbnQgY2xvY2sgc3R1ZmYgYmVoaW5kIGEgbWFjcm8uCgkgIEFQSTogR1NUX0dFVF9DVVJSRU5UX1RJTUUKCjIwMDctMTEtMjggMTE6Mzk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFwcGx5IHRoZSBwb3NpeC10aW1lciBjaGVjayBmcm9tICMzNjExNTUuIENvbmRpdGlvbmFsbHkgdXNlIHRoZSBwb3NpeCB0aW1lciBmb3IgbG9nZ2luZy4gVGhpcyBnaXZlcyBiZXR0ZXIgdGltZXN0YW1wIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBBcHBseSB0aGUgcG9zaXgtdGltZXIgY2hlY2sgZnJvbSAjMzYxMTU1LiBDb25kaXRpb25hbGx5IHVzZSB0aGUgcG9zaXgKCSAgdGltZXIgZm9yIGxvZ2dpbmcuIFRoaXMgZ2l2ZXMgYmV0dGVyIHRpbWVzdGFtcCBwcmVjaXNzaW9uLCBsZXNzCgkgIG92ZXJoZWFkIGFuZCBubyBudHAgaml0dGVyLgoKMjAwNy0xMS0yOCAxMToxMTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU29tZSBjbGVhbnVwIGFuZCBjaGVja2luZyBhZ2FpbnN0IGludmFsaWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfY2xhc3NfaW5pdCksIChnc3RfbWluaV9vYmplY3RfY29weV9kZWZhdWx0KSwKCSAgKGdzdF9taW5pX29iamVjdF9maW5hbGl6ZSksIChnc3RfbWluaV9vYmplY3RfY29weSksCgkgIChnc3RfbWluaV9vYmplY3RfaXNfd3JpdGFibGUpLCAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpLCAocGFyYW1fbWluaV9vYmplY3RfdmFsaWRhdGUpLAoJICAoZ3N0X3BhcmFtX3NwZWNfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBTb21lIGNsZWFudXAgYW5kIGNoZWNraW5nIGFnYWluc3QgaW52YWxpZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoKMjAwNy0xMS0yOCAxMDo1ODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFN0YXJ0IG1lcmdpbmcgaW4gdGhlIGVhc3kgYml0cyBvZiAjMzYxMTU1LCB0aGUgbW9ub3RvbmljIGNsb2NrIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgU3RhcnQgbWVyZ2luZyBpbiB0aGUgZWFzeSBiaXRzIG9mICMzNjExNTUsIHRoZSBtb25vdG9uaWMgY2xvY2sgcGF0Y2guCgkgIFRoaXMgb25lIGFkZHMgYSBmZXcgaGFuZHkgbWFjcm9zIHdpdGggZG9jcyBhbmQgYSB0ZXN0c3VpdGUuCgoyMDA3LTExLTI3IDE4OjQ1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3Mgbm90IG5lZWRlZC4gVGhpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3MKCSAgbm90IG5lZWRlZC4gVGhpcyBhdm9pZHMgZXJyb3JzIHdoZW4gdGhlIGZpbGUgaXMgbm90IHNlZWthYmxlLgoJICBGaXhlcyAjNDk5NzcxLgoKMjAwNy0xMS0yNiAxMzoxNjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCByZW1vdmUgcHJlc2V0IGludGVyZmFjZSBhZ2Fpbi4gOi0oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgcmVtb3ZlIHByZXNldCBpbnRlcmZhY2UgYWdhaW4uIDotKC4KCjIwMDctMTEtMjIgMjE6MzI6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50ICdkZWZhdWx0IHZhbHVlJyBmb3IgZW51bXMgYW5kIGZsYWdzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUHJpbnQgJ2RlZmF1bHQgdmFsdWUnIGZvciBlbnVtcyBhbmQgZmxhZ3MgdG9vLgoKMjAwNy0xMS0yMiAxNTo1OTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OiBNb3JlIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIE1vcmUgaWRlYXMuCgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggdHlwbyBhbmQgZ2l2ZSBiZXR0ZXIgbG9nIG91dHB1dC4KCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIE1vcmUgaWRlYXMsIG1ha2UgZ3JhcGhzIGEgYml0IHNtYWxsZXIgYW5kIGZpeCBwYXJhbSBuYW1lIGluIG1hY3JvLgoKMjAwNy0xMS0yMiAxMzo1NjoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCjIwMDctMTEtMjEgMTY6MDg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRm9yIHRoZXNlcyB0d28gZmdldHMgd2UgaGFuZGxlIHRoZSBlcnJvciBiZWxvdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBGb3IgdGhlc2VzIHR3byBmZ2V0cyB3ZSBoYW5kbGUgdGhlIGVycm9yIGJlbG93LgoKMjAwNy0xMS0yMSAxMzo0Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCjIwMDctMTEtMjEgMTM6Mjc6NTAgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogQWRkIHByb3BlcnR5IHRvIGRpc2FibGUgaGFuZG9mZiBzaWduYWwgZW1pc3Npb24uIEZpeGVzICM0OTg2OTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBoYW5kb2ZmIHNpZ25hbCBlbWlzc2lvbi4gRml4ZXMgIzQ5ODY5NC4KCSAgQVBJOiBHc3RJZGVudGl0eTo6c2lnbmFsLWhhbmRvZmZzCgoyMDA3LTExLTIxIDA5OjQ2OjUwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTIxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUKCSAgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgoyMDA3LTExLTIxIDAwOjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOiBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSBjb250YWN0IGVtYWlsIGFkZHJlc3MgZm9yIHRoZSBUcmFuc2xhdGlvbiBQcm9qZWN0CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaGUgcGFyZW50X2NsYXNzIGZvciBmZHNyYyBpcyBwdXNoc3JjLCBub3QgR3N0RWxlbWVudC4KCjIwMDctMTEtMjAgMTY6MzQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgoyMDA3LTExLTIwIDE2OjEwOjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGdzdF9wcmVzZXRfX2dldF9wcm9wZXJ0eV9uYW1lcygpIGZ1bmN0aW9uIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZ3N0X3ByZXNldF9fZ2V0X3Byb3BlcnR5X25hbWVzKCkgZnVuY3Rpb24gdG8gdGhlIGRvY3MKCSAgdG8gZml4IHRoZSBidWlsZC4KCjIwMDctMTEtMjAgMTU6NDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuKjogQ2hhbmdlIF9nZXRfcHJlc2V0X25hbWVzIEFQSSB0byByZXR1cm4gYSBzdHJ2IHdpdGggY29waWVzLiBBZGQgX2dldF9wcm9wZXJ0eV9uYW1lcyB0byBhbGxvdyBpbXBsZW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBDaGFuZ2UgX2dldF9wcmVzZXRfbmFtZXMgQVBJIHRvIHJldHVybiBhIHN0cnYgd2l0aCBjb3BpZXMuIEFkZAoJICBfZ2V0X3Byb3BlcnR5X25hbWVzIHRvIGFsbG93IGltcGxlbWVudGF0aW9ucyB0byBmaWx0ZXIgYW5kIHByb3ZpZGUKCSAgZ29vZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwNy0xMS0yMCAxMTo0NjozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCAoc2RwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjAgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkCgkgIHNjcmlwdCAoc2RwKS4KCjIwMDctMTEtMTkgMTU6MjM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgoyMDA3LTExLTE5IDE0OjM4OjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIG5ldyBiYXNlIGxpYnJhcmllcyBpbiB0aGUgTEQgc2VhcmNoIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbmV3IGJhc2UgbGlicmFyaWVzIGluIHRoZSBMRAoJICBzZWFyY2ggcGF0aC4KCjIwMDctMTEtMTkgMTE6NTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlIHNpbWlsYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlCgkgIHNpbWlsYXIuCgoyMDA3LTExLTE5IDA5OjMzOjA1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTWFrZSBpdCBidWlsZCBvbiBPUyBYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfZGVmYXVsdF9jcmVhdGVfcHJlc2V0KTogTWFrZQoJICBpdCBidWlsZCBvbiBPUyBYLgoKMjAwNy0xMS0xOSAwODo1MDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2hhbmdlIGVtYWlsLCBjbGVhbnVwcyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBDaGFuZ2UgZW1haWwsIGNsZWFudXBzIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGNvbW1lbnRzLgoJICBBbHNvIHNldCBidXMgYW5kIGNsb2NrIG9uIG5ldyBlbGVtZW50cyB3aGVuIHRoZSBwaXBlbGluZSB3YXMgaW4gZXJyb3IuCgoyMDA3LTExLTE4IDE5OjMwOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLiBGaXhlcyAjNDk3ODU5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4gRml4ZXMgIzQ5Nzg1OS4KCSAgU3BvdHRlZCBieSBTYW1lZXIgTmFpay4KCjIwMDctMTEtMTcgMTc6NTA6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBMaXR0bGUgZG9jdW1lbnRhdGlvbiBpbXByb3ZtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgTGl0dGxlIGRvY3VtZW50YXRpb24gaW1wcm92bWVudC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIE1vcmUgVE9ETyBjbGVhbnVwcy4gUmVtb3ZlIGMrKyBjb21tZW50cy4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIFRPRE8gYW5kIHVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgoyMDA3LTExLTE3IDE3OjI0OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEFkZCBzb21lIGNvbW1lbnRzIGFuZCBUT0RPcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBBZGQgc29tZSBjb21tZW50cyBhbmQgVE9ET3MuCgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgcGFkZGluZyBmb3IgZnV0dXJlIGNoYW5nZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBJbXBsZW1lbnQgdGhlIGlmYWNlLgoKMjAwNy0xMS0xNyAxNjo0MzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHRoZSBwcmVzZXQgaW50ZXJmYWNlIChGaXhlcyAjMzk2Nzc5KS4gRG8gc29tZSBkb2MgY2xlYW51cHMgYWxvbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgdGhlIHByZXNldCBpbnRlcmZhY2UgKEZpeGVzICMzOTY3NzkpLiBEbyBzb21lIGRvYyBjbGVhbnVwcyBhbG9uZy4KCjIwMDctMTEtMTYgMDA6MjM6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE1ID09PQoKMjAwNy0xMS0xNiAwMDowNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjE1LCAiT2N0b2JlciIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMTUgPT09CgkgIDIwMDctMTEtMTUgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMTUsICJPY3RvYmVyIgoKMjAwNy0xMS0xNSAyMzozMToxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0xMS0xNCAxMjoyNDowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDogQ29udmVydCBsaW5lIGVuZGluZ3MgYmFjayB0byBET1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBDb252ZXJ0IGxpbmUgZW5kaW5ncyBiYWNrIHRvIERPUy4KCjIwMDctMTEtMTMgMTE6MzA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBVcGRhdGUgZmFzdCB0YWdyZWFkaW5nIGRyYWZ0IGFuZCBwZXJmb3JtYW5jZSBwcm9maWxpbmcgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgVXBkYXRlIGZhc3QgdGFncmVhZGluZyBkcmFmdCBhbmQgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIGlkZWFzLgoKMjAwNy0xMS0wOSAxNDowNTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hlbiB1bnJlZmZpbmcgYSBidWZmZXIgYmVjYXVzZSBpdCBjb3VsZCBjYXVzZSBhIGRlYWRsb2NrIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlcik6CgkgIERvbid0IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoZW4gdW5yZWZmaW5nIGEgYnVmZmVyIGJlY2F1c2UgaXQgY291bGQKCSAgY2F1c2UgYSBkZWFkbG9jayB3aGVuIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiB3YW50cyB0byBncmFiIHRoZSBvYmplY3QKCSAgbG9jayB0b28uIEZpeGVzICM0OTUxMzMuCgoyMDA3LTExLTA5IDExOjU2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMgIzQ4ODIwMSwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMKCSAgIzQ4ODIwMSwKCSAgV2hlbiBjb252ZXJ0aW5nIHRvIHJ1bm5pbmcgYW5kIHN0cmVhbSB0aW1lLCB1c2UgZGVmYXVsdCB2YWx1ZXMgZm9yCgkgIHN0YXJ0L3N0b3AvdGltZS9hY2N1bSB3aGVuIGNvbXBhcmluZyBkaWZmZXJlbnQgZm9ybWF0cy4gRml4ZXMgIzQ5NDI0NS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgRG8gcnVubmluZy9zdHJlYW0gdGltZSBpbiBUSU1FIGZvcm1hdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAyIG5ldyB1bml0IHRlc3RzIGZvciBzZWdtZW50IGFjY3VtdWxhdGlvbi4KCjIwMDctMTEtMDcgMTU6NTM6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGdldGVudigpIGJhY2sgaW50byBnc3RfaW5pdCwgc28gZXZlcnlvbmUgY2FuIGxpdmUgaGFwcGlseSBldmVyIGFmdGVyLiBNYWtlIHN1cmUgdGhlIHN5bWJvbCBpc24ndCBleHBvcnRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChwcml2X2dzdF9kdW1wX2RvdF9kaXIpLCAoZGVidWdfZHVtcF9lbGVtZW50KSwKCSAgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKToKCSAgTW92ZSBnZXRlbnYoKSBiYWNrIGludG8gZ3N0X2luaXQsIHNvIGV2ZXJ5b25lIGNhbiBsaXZlIGhhcHBpbHkKCSAgZXZlciBhZnRlci4gTWFrZSBzdXJlIHRoZSBzeW1ib2wgaXNuJ3QgZXhwb3J0ZWQgdGhvdWdoLgoKMjAwNy0xMS0wNiAyMzoxNzowOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZSBlbnVtIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgIDxzZWJhc3RpZW4gbW91dHRlIG5ldD4KCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUgZW51bSB0eXBlcy4KCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXBkYXRlIHZzNiBwcm9qZWN0IGZpbGVzICgjNDk0MzQzKS4KCjIwMDctMTEtMDYgMTc6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIFRha2UgdGhlIHN0cmVhbWluZyBsb2NrIHdoZW4gc2Vla2luZyB0byBhdm9pZCByYWNlcy4gRml4ZXMgIzQ5MjcyOS4KCSAgQWRkZWQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0xMS0wNiAxNToxMDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogTWFrZSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAgc3RhdGljLCBpdCdzIG9ubHkgdXNlZCBpbiBnc3RwbHVnaW4uYyBhbmQgd2UgY2FuIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChfZ3N0X2Rpc2FibGVfc2VndHJhcCk6CgkgIE1ha2UgIF9nc3RfZGlzYWJsZV9zZWd0cmFwIHN0YXRpYywgaXQncyBvbmx5IHVzZWQgaW4gZ3N0cGx1Z2luLmMgYW5kCgkgIHdlIGNhbiB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIHRoZXJlIG5vdyB0aGF0IHdlIGhhdmUgdGhhdCBBUEkuCgkgIE1vdmUgX2dzdF9kZWJ1Z19kdW1wX2RvdF9kaXIgaW50byBnc3RkZWJ1Z3V0aWxzLmMsIHRoZXJlJ3Mgbm8gcmVhc29uCgkgIHRvIGRvIHRoZSBnZXRlbnYgaGVyZSAoYW5kIGV4cG9ydCB0aGUgdmFyaWFibGUpLgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChkZWJ1Z19kdW1wX2VsZW1lbnQpLAoJICAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpLCAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGVfd2l0aF90cyk6CgkgIERvbid0IHVzZSBWTEFzIHdoaWNoIGlzIGEgQzk5aXNtIGFuZCB0aHJvd3Mgb2ZmIE1TVkMgKCM0OTM5ODMpLgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lKSwgKF9nc3RfZGVidWdfaW5pdCksCgkgIChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBSZW5hbWUgX2dzdF9pbmZvX3N0YXJ0X3RpbWUgdG8gcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHNvIGl0CgkgIGRvZXNuJ3QgZ2V0IGV4cG9ydGVkICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9zZXR1cCksCgkgIChnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXgpOgoJICBNYWtlIHN0YXRpYyBtdXRleCBnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXggcmVhbGx5IHN0YXRpYyAod2FzIG5ldmVyCgkgIGluIGFueSBoZWFkZXIpLCBhbmQgdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSBpbnN0ZWFkIG9mCgkgIF9nc3RfZGlzYWJsZV9zZWd0cmFwLgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoX2dzdF90cmFjZV9kZWZhdWx0KToKCSAgTWFrZSBsb2NhbCBfZ3N0X3RyYWNlX2RlZmF1bHQgc3RhdGljICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgoyMDA3LTExLTA2IDE0OjQzOjE0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydCBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydAoJICBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmaXhlcyAjNDkzOTgzKS4KCjIwMDctMTEtMDYgMTI6Mjg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlCgkgIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoKMjAwNy0xMS0wNiAxMTo0MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZW1vdmUgdW51c2VkIGFuZCB1bmluaXRpYWxpc2VkIHR5cGUgdmFyaWFibGVzIHRoYXQgd2VyZSBzdGlsbCBleHBvcnRlZCBmb3Igc29tZSByZWFzb24gKHRoZXkgd2VyZSBuZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBhbmQgdW5pbml0aWFsaXNlZCB0eXBlIHZhcmlhYmxlcyB0aGF0IHdlcmUgc3RpbGwKCSAgZXhwb3J0ZWQgZm9yIHNvbWUgcmVhc29uICh0aGV5IHdlcmUgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcwoJICB0aG91Z2gpLgoKMjAwNy0xMS0wNiAxMDozMzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdHJ5IHRvIHJlcG9ydCBhIDAgcG9zaXRpb24gd2hlbiB3ZSBkb24ndCBrbm93LCByZXR1cm4gLTEgYW5kIEZBTFNFIGluc3RlYWQuIFRoaXMgbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCB0cnkgdG8gcmVwb3J0IGEgMCBwb3NpdGlvbiB3aGVuIHdlIGRvbid0IGtub3csIHJldHVybiAtMSBhbmQgRkFMU0UKCSAgaW5zdGVhZC4gVGhpcyBtb3N0bHkgaGFwcGVucyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBNYWtlIHN1cmUgd2UgY2FuIHJlcG9ydCB0aGUgcmlnaHQgcG9zaXRpb24gYmVmb3JlIHdlIHBvc3QgdGhlIEFTWU5DX0RPTkUKCSAgbWVzc2FnZSBzbyB0aGF0IGEgbWVzc2FnZSBoYW5kbGVyIGNhbiBxdWVyeSBwb3NpdGlvbiB3aXRob3V0IHJhY2VzLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfZW9zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGFzeW5jX2RvbmVfaGFuZG9mZiksIChhc3luY19kb25lX2Z1bmMpLCAoc2VuZF9idWZmZXIpLAoJICAoYXN5bmNfZG9uZV9lb3NfZnVuYyksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdHdvIHRlc3RzIGZvciB0aGUgYWJvdmUuCgoyMDA3LTExLTA2IDEwOjIxOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTUFJTlRBSU5FUlM6IFVwZGF0ZSB3aXRoIG5ldyBlbWFpbCBhZGRyZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRlIHdpdGggbmV3IGVtYWlsIGFkZHJlc3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBpbmZvIGFib3V0IGZ1dHVyZSBwYWQtYmxvY2sgYW5kIG5lZ290aWF0aW9uIGNoYW5nZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBBZGQgc29tZSBpZGVhcyBhYm91dCBidWZmZXJpbmcgcmVwb3J0aW5nLgoKMjAwNy0xMS0wNiAxMDowMTowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBTUEVDIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcywgYWxzbyBhZGQgTUFJTlRBSU5FUlMgZmlsZSB0byBFWFRSQV9ESVNULCB0aGUgb21taXNzaW9uIG9mIHRoaXMgY2F1c2UgYSB3ZWlyZCBSUC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFNQRUMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLCBhbHNvIGFkZCBNQUlOVEFJTkVSUyBmaWxlIHRvIEVYVFJBX0RJU1QsIHRoZSBvbW1pc3Npb24gb2YgdGhpcyBjYXVzZSBhIHdlaXJkIFJQTSBidWlsZCBlcnJvciBvbiBGQzgKCjIwMDctMTEtMDYgMDA6NTk6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiBEaXNhYmxlIHNpbGx5IHJhY3kgdGVzdCB0aGF0IGFsd2F5cyBmYWlscyBvbiB0aGlzIGNvbWJpbmF0aW9uIG9mIENQVSBhbmQga2VybmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIERpc2FibGUgc2lsbHkgcmFjeSB0ZXN0IHRoYXQgYWx3YXlzIGZhaWxzIG9uIHRoaXMgY29tYmluYXRpb24gb2YgQ1BVCgkgIGFuZCBrZXJuZWwuCgoyMDA3LTExLTA0IDEwOjE2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgoyMDA3LTExLTA0IDEwOjEzOjMzICswMDAwICBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogQ29ycmVjdGVkIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldCBzaWduYWxzOiBUaGUgcGFyYW1ldGVyIGlzIGEgR3N0T2JqZWN0LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE11cnJheSBDdW1taW5nICA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIENvcnJlY3RlZCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQKCSAgc2lnbmFsczogVGhlIHBhcmFtZXRlciBpcyBhIEdzdE9iamVjdCwgbm90IGEgR09iamVjdC4KCjIwMDctMTEtMDIgMTg6MzU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvCgkgIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBhbGwgYWxvbmcuCgoyMDA3LTExLTAyIDE3OjQzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3RrLWRvYyBmaXhlczsgdHJhaWxpbmctY29tbWEtaW4tZW51bSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBndGstZG9jIGZpeGVzOyB0cmFpbGluZy1jb21tYS1pbi1lbnVtIGZpeC4KCjIwMDctMTEtMDIgMTY6Mjc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENsZWFuIHVwIG9uIGRlaW5pdCAobm90IHRoZSBleHRlcm5hbCBvbmVzIHRob3VnaCwgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBmb3Igc29tZSByZWFzb24pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVpbml0KToKCSAgQ2xlYW4gdXAgb24gZGVpbml0IChub3QgdGhlIGV4dGVybmFsIG9uZXMgdGhvdWdoLCBkb2Vzbid0IHNlZW0gdG8gYmUKCSAgbmVlZGVkIGZvciBzb21lIHJlYXNvbikuCgoyMDA3LTExLTAxIDIzOjUxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6IChHU1RfREVCVUdfQ0FURUdPUllfRVhURVJOKToKCSAgUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUKCSAgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgZXZlciBoYXZpbmcgYmVlbiB0ZXN0ZWQgKG5vdGUgdGhlCgkgIHNpbmdsZSB1bmRlcnNjb3JlIGluIF9kZWNsc3BlYyBpbiB0aGUgaW5pdGlhbCBjb21taXQpLCBhbmQgdGhhdCBkb2Vzbid0CgkgIHJlYWxseSBtYWtlIHNlbnNlLiAgU2VlICM0OTIwNzcuCgoyMDA3LTExLTAxIDIxOjUwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9pbml0KToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKToKCSAgU2ltcGxpZnkgZXhpc3RpbmcgZ190eXBlX2NsYXNzX3JlZigpLgoKMjAwNy0xMS0wMSAyMDoxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlCgkgIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVHlwZSBzeXN0ZW0sIGllLiBidWcgIzM0OTQxMCBhbmQKCSAgYnVnICM2NDc2NC4gU2hvdWxkIGZpeCBpbnRlcm1pdHRlbnQgdGVlIHVuaXQgdGVzdCBmYWlsdXJlcyAoIzQ3NDgyMykuCgoyMDA3LTExLTAxIDE5OjE5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdCBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAodGVzdF9udW1fYnVmZmVycyk6CgkgIFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdAoJICBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgYWxsb3cgTiBzdWItc3RyZWFtcy4gSW5jcmVhc2luZwoJICB0aGUgbnVtYmVyIG9mIHN1Yi1zdHJlYW1zIHNlZW1zIHRvIHJlcHJvZHVjZSAjNDc0ODIzIG1vcmUgZWFzaWx5LgoKMjAwNy0xMC0zMSAyMjowMTowMyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIEZpeCBhIGNvdXBsZSBvZiBtaXNzaW5nIGluY2x1ZGVzIGZvciBNU1ZDMjAwNSBhbmQgYSBDOTkgaXNzdWUuIEFsc28sIHN0YXJ0aW5nIHdpdGggMi4xNC4wLCBHTGliIHdvbid0IHByb3ZpZGUgYSBwaXBlKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgaW5jbHVkZXMgZm9yIE1TVkMyMDA1IGFuZCBhIEM5OSBpc3N1ZS4gQWxzbywKCSAgc3RhcnRpbmcgd2l0aCAyLjE0LjAsIEdMaWIgd29uJ3QgcHJvdmlkZSBhIHBpcGUoKSBtYWNybyBhbnkgbG9uZ2VyLAoJICBzbyB1c2UgX3BpcGUoKSBkaXJlY3RseSAoIzQ5MjA3NykuCgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOiAoX3RyZWFkZGlyKToKCSAgQWRkIGEgY291cGxlIG9mIGNhc3RzIHRvIG1ha2UgaXQgYnVpbGQgd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBzb21lIG1vcmUgc3ltYm9scyB0aGF0IG5lZWQgdG8gYmUgZXhwb3J0ZWQuCgoyMDA3LTEwLTMxIDE4OjA4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiBVc2UgX0tFRVAgYXMgbWVyZ2UgbW9kZSByYXRoZXIgdGhhbiBfS0VFUF9BTEwsIHNvIHRhZ3MgYXJyaXZpbmcgaW4gYSBzZWNvbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBfS0VFUCBhcyBtZXJnZSBtb2RlIHJhdGhlciB0aGFuIF9LRUVQX0FMTCwgc28gdGFncwoJICBhcnJpdmluZyBpbiBhIHNlY29uZCBvciB0aGlyZCB0YWcgbWVzc2FnZSBhcmUgYWRkZWQgdG8KCSAgdGhlIHRhZyBsaXN0IGFzIHdlbGwuCgoyMDA3LTEwLTMxIDEzOjAxOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSXRzICJTaW5jZToiIGFuZCBub3QgIkBTaW5jZToiLiBBbmQgcmVtb3ZlIGFuIHN1cGVyZmxvdXMgY2FzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIEl0cyAiU2luY2U6IiBhbmQgbm90ICJAU2luY2U6Ii4gQW5kIHJlbW92ZSBhbiBzdXBlcmZsb3VzIGNhc3QuCgoyMDA3LTEwLTMwIDE4OjMwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4gYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2xhc3RfYnVmZmVyKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4KCSAgYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1ha2luZyBzbmFwc2hvdHMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbGFzdF9idWZmZXIoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpsYXN0LWJ1ZmZlcgoKMjAwNy0xMC0yOSAxMzo0NjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSW1wcm92ZSBiaW4gZ3JhcGggZHVtcGluZywgYnkgdXNpbmcgdGhlIGVudnZhciB0byBzcGVjaWZ5IGEgcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEltcHJvdmUgYmluIGdyYXBoIGR1bXBpbmcsIGJ5IHVzaW5nIHRoZSBlbnZ2YXIgdG8gc3BlY2lmeSBhIHBhdGguCgkgIFJlbmFtZSB0aGUgZW52dmFyIHRvIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIuCgoyMDA3LTEwLTI5IDEzOjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBzcGVjaWFsIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIGEgc3RyZWFtIGJlY2F1c2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFBvc3Qgc3BlY2lhbCBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbid0IGRldGVybWluZSB0aGUgdHlwZSBvZiBhIHN0cmVhbQoJICBiZWNhdXNlIGl0J3MgZW1wdHkuCgoyMDA3LTEwLTI5IDEwOjA1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBuZXcgZW52LXZhci4gQWRkIG9uZSBsb2ctbGluZSBhZnRlciBkdW1wbmcgYSBncmFwaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRG9jdW1lbnQgbmV3IGVudi12YXIuIEFkZCBvbmUgbG9nLWxpbmUgYWZ0ZXIgZHVtcG5nIGEgZ3JhcGguCgoyMDA3LTEwLTI2IDE4OjM5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVZ2x5IGhhY2sgdG8gcHV0IHRoZSAocmVjZW50bHkgcmVtb3ZlZCBhbmQgbm9uLXBvcnRhYmxlLCBhcHBhcmVudGx5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVnbHkgaGFjayB0byBwdXQgdGhlIChyZWNlbnRseSByZW1vdmVkIGFuZCBub24tcG9ydGFibGUsIGFwcGFyZW50bHkpCgkgIC1XbCwtLWV4cG9ydC1keW5hbWljIGJhY2sgaW50byBsaWJnc3RjaGVjaydzIExERkxBR1Mgd2hlbiB3ZSdyZSB1c2luZwoJICBHTlUgbGQsIGJlY2F1c2Ugd2l0aG91dCB0aGF0ICdtYWtlIGNoZWNrJyBmYWlscyBtaXNlcmFibHkgb24gbXkgZGViaWFuCgkgIHN0YWJsZSBib3guICBTb21lb25lIHdpdGggbW9yZSBrbm93bGVkZ2Ugb2YgbGlua2VyIGludHJpY2FjaWVzIGFuZAoJICBwb3J0YWJpbGl0eSBpc3N1ZXMgdGhhbiBtZSBmaXggdGhpcyBwcm9wZXJseSBwbGVhc2UuCgoyMDA3LTEwLTI1IDE3OjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXNldCBsYXN0IHNlZW4gcG9zaXRpb24gYWZ0ZXIgZmx1c2hpbmcgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgdGhlIG9sZCBwb3NpdGlvbiBhbnltb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgUmVzZXQgbGFzdCBzZWVuIHBvc2l0aW9uIGFmdGVyIGZsdXNoaW5nIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IHRoZSBvbGQKCSAgcG9zaXRpb24gYW55bW9yZS4KCjIwMDctMTAtMjUgMTY6MTk6MDUgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0LzogUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQKCSAgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyZmFjZQoJICB0byBhbGxvdyBiaW5kaW5ncyB0byBzdXBwb3J0IGNyZWF0aW5nIFVSSSBoYW5kbGVycy4KCSAgUGFydGlhbGx5IGZpeGVzOiAjMzM5Mjc5CgkgIEFQSTogR3N0VVJJSGFuZGxlckludGVyZmFjZTo6Z2V0X3R5cGVfZnVsbAoJICBBUEk6IEdzdFVSSUhhbmRsZXJJbnRlcmZhY2U6OmdldF9wcm90b2NvbHNfZnVsbAoKMjAwNy0xMC0yNSAxNToxNDowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZCBhbmQgZGlzY292ZXJlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZAoJICBhbmQgZGlzY292ZXJlZCBvdGhlcndpc2UuIFRoaXMgYXZvaWRzIHByb2JsZW1zIHdpdGggZGVjb2RlYmluMiBoYW5naW5nCgkgIGFmdGVyIGEgc2VlayBpbiB0aGUgZmlsZXNyYyAhIGRlY29kZWJpbjIgbmFtZT1kICEgZmFrZXNpbmsgZC4gISBmYWtlc2luawoJICBjYXNlLgoJICBNYWtlIHN1cmUgd2UgbG9jayB0aGUgbXVsdGlxdWV1ZSB3aGVuIHVwZGF0aW5nIHRoZSBtYXgtc2l6ZSBwcm9wZXJ0aWVzLgoJICBGaXggYSBjcmFzaCBvbiBTb2xhcmlzIGluIGEgZGVidWcgc3RhdGVtZW50IGluIGdldF9yZXF1ZXN0X3BhZCB0aGF0CgkgIHBhc3NlcyBhIE5VTEwgc3RyaW5nIHRvIEdTVF9ERUJVRy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBGaXggdGhlIHRlc3QgdG8gYWxsb3cgdGhlIGZpcnN0IGJ1ZmZlciBvbiBub3QtbGlua2VkIHBhZHMgdG8gY29tZSBvdXQKCSAgb2Ygc2VxdWVuY2Ugd2hpbGUgbXVsdGlxdWV1ZSBkaXNjb3ZlcnMgdGhhdCB0aGV5IGFyZSBub3QtbGlua2VkLgoKMjAwNy0xMC0yNSAxNDo1MDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzCgkgIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW1lciBnc3RfKgoJICBwYXR0ZXJuLCBhbmQgIC0tZXhwb3J0LWR5bmFtaWMgaXMgbm90IHBvcnRhYmxlIChvbmx5IHdvcmtzIG9uCgkgIEdOVSBsZCkKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgTWFrZSBzdXJlIHRvIHBhc3MgYSBtZXNzYWdlIHBhcmFtZXRlciB0byB0aGUgZmFpbF8qIG1hY3Jvcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggc29tZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMDctMTAtMjUgMTQ6NDE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IERpc2FibGUgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdoaXRlIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RydWN0dXJlIG5hbWVzIG9yIGZpZWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAodGVzdF90b19zdHJpbmcpOgoJICBEaXNhYmxlIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB3aGl0ZSBzcGFjZXMgYXJlIG5vdCBhbGxvd2VkCgkgIGluIHN0cnVjdHVyZSBuYW1lcyBvciBmaWVsZCBuYW1lcywgc2luY2Ugd2UgbmVlZCB0bwoJICBzdXBwb3J0IHRoYXQgZm9yIG5vdyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KCjIwMDctMTAtMjQgMTM6MTM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgQVBJOiBhZGQgR1NUX1RBR19BTEJVTV9TT1JUTkFNRQoJICBBUEk6IGFkZCBHU1RfVEFHX1RJVExFX1NPUlROQU1FCgkgIEFkZCB0YWcgdmFyaWFudHMgZm9yIHNvcnRpbmcgKCM0MTQ1MzkpLgoKMjAwNy0xMC0yNCAxMzowMDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsKCSAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDA3LTEwLTIyIDE1OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIFNtYWxsIHVwZGF0ZXMuCgoyMDA3LTEwLTIyIDExOjMyOjE0ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXhlZCBkb2N1bWVudGF0aW9uIGZyb20gbXkgcHJldmlvdXMgY29tbWl0IChhZGRlZCBuZXcgQVBJIGFkZCBnc3RfdmFsdWVfc2V0X3N0cnVjdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4ZWQgZG9jdW1lbnRhdGlvbiBmcm9tIG15IHByZXZpb3VzIGNvbW1pdCAoYWRkZWQgbmV3IEFQSSBhZGQKCSAgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUoKSwgYWRkIGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKCkgYW5kCgkgIEdTVF9WQUxVRV9IT0xEU19TVFJVQ1RVUkUpLgoKMjAwNy0xMC0yMiAxMToxMDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCjIwMDctMTAtMjIgMDg6NTM6MjYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIEFkZGVkIEdzdFN0cnVjdHVyZSB0byBnc3RfdmFsdWVfdGFibGUgYW5kIGl0cyByZWxhdGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyksCgkgIChnc3RfY2Fwc19mcm9tX3N0cmluZ19pbnBsYWNlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9hYmJycyksCgkgIChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyksIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zdHJ1Y3R1cmUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgR3N0U3RydWN0dXJlIHRvIGdzdF92YWx1ZV90YWJsZSBhbmQgaXRzIHJlbGF0ZWQgZnVuY3Rpb25zLgoJICBDaGFuZ2VkIGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nIHRvIHByaW50ICc7JyBpbiB0aGUgZW5kLgoJICBDaGFuZ2VkIGdzdF9jYXBzX3RvX3N0cmluZyB0byBub3QgcHJpbnQgJzsnIGJldGV3ZWVuIGl0cwoJICBmaWVsZHMgKHN0cnVjdHVyZXMpIGFueW1vcmUgYW5kIHJlbW92ZSB0aGUgbGFzdGVzICc7JyBmcm9tIGxhdGVzdAoJICBzdHJ1Y3R1cmUuIE5vdyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBJbiBhZGRpdGlvbiwgYmFja3dhcmQgY29tcGF0aWJpbHR5IGlzIGFzc3VyZWQgYnkgYWNjZXB0aW5nICdcMCcgYXMKCSAgZW5kIGRlbGltaXRlci4gRml4ZXM6ICM0ODc5NjkuCgkgIEFQSTogYWRkIGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKCkKCSAgQVBJOiBhZGQgZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUoKQoKMjAwNy0xMC0xOSAwOTo0ODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIKCSAgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgoyMDA3LTEwLTE3IDEyOjU4OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoKMjAwNy0xMC0xNiAyMTo0ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxsb3cgJysnIGFzIHdlbGwsIGl0IGNhbiBiZSBwYXJ0IG9mIG1lZGlhIG9yIG1pbWUgdHlwZXMgc3VjaCBhcyBpbWFnZS9zdmcreG1sLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFsbG93ICcrJyBhcyB3ZWxsLCBpdCBjYW4gYmUgcGFydCBvZiBtZWRpYSBvciBtaW1lIHR5cGVzCgkgIHN1Y2ggYXMgaW1hZ2Uvc3ZnK3htbC4KCjIwMDctMTAtMTYgMjA6MzA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYnVzX3BvcF9maWx0ZXJlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFQSTogYWRkIGdzdF9idXNfcG9wX2ZpbHRlcmVkCgkgIEFQSTogYWRkIGdzdF9idXNfdGltZWRfcG9wX2ZpbHRlcmVkCgkgIFR3byBuZXcgZnVuY3Rpb25zIGZvciB3YWl0aW5nIGZvciBzcGVjaWZpYyBtZXNzYWdlIHR5cGVzIG9uIHRoZQoJICBidXMgZm9yIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lIHdpdGhvdXQgaXRlcmF0aW5nIGFueSBtYWluCgkgIGxvb3BzIG9yIG1haW4gY29udGV4dHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBTb21lIHRlc3RzIGZvciB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDctMTAtMTYgMTc6MjE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBNYWtlIGd0ay1kb2MgaWdub3JlIHN0dWZmIGl0IHNob3VsZCBpZ25vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIE1ha2UgZ3RrLWRvYyBpZ25vcmUgc3R1ZmYgaXQgc2hvdWxkIGlnbm9yZS4KCjIwMDctMTAtMTYgMTY6MTI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QgY2FzZSBmdW5jdGlvbiBuYW1lcywgY29tbWEtc2VwYXJhdGVkKS4KCjIwMDctMTAtMTYgMTM6NTg6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCBzZXJpYWxpc2F0aW9uIGNoYW5nZSBhbmQgY29uc3RyYWluIHN0cnVjdHVyZS1uYW1lcyBhZnRlciBjb25zZW5zdXMgb24gaXJjLiBVcGRhdGUgYXBpIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgc2VyaWFsaXNhdGlvbiBjaGFuZ2UgYW5kIGNvbnN0cmFpbiBzdHJ1Y3R1cmUtbmFtZXMgYWZ0ZXIKCSAgY29uc2Vuc3VzIG9uIGlyYy4gVXBkYXRlIGFwaSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS4KCjIwMDctMTAtMTYgMDY6MzI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgYW5vdGhlciB0ZXN0IHRoYXQgY292ZXJzIHdoeSBJIGFjdHVhbGx5IGRpZCB0aGUgcHJldmlvdXMgc3RydWN0dXJlCgkgIGNoYW5nZS4KCjIwMDctMTAtMTUgMTQ6MzM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCBjcmFzaCB3aGVuIGluc3BlY3RpbmcgYW4gZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIERvbid0IGNyYXNoIHdoZW4gaW5zcGVjdGluZyBhbiBlbGVtZW50LgoKMjAwNy0xMC0xNSAxMTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZXNjYXBpbmcgb2Ygc3RydWN0dXJlIG5hbWUgd2hlbiBzZXJpYWxpc2luZyBhbmQgZGVzZXJpYWxpc2luZyB0by9mci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGVzY2FwaW5nIG9mIHN0cnVjdHVyZSBuYW1lIHdoZW4gc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgdG8vZnJvbSBzdHJpbmdzLgoKMjAwNy0xMC0xNSAxMTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIElmIGFjY2VwdGNhcHMgdW5jb25kaXRpb25hbGx5IHJldHVybnMgVFJVRSwgdXBzdHJlYW0gaXMgdHJpY2tlZCBpbnRvIHRoaW5raS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gSWYgYWNjZXB0Y2FwcyB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyBUUlVFLAoJICB1cHN0cmVhbSBpcyB0cmlja2VkIGludG8gdGhpbmtpbmcgaXQgY2FuIHN1Z2dlc3QgYSBmb3JtYXQgZG93bnN0cmVhbQoJICB3aGlsZSBkb3duc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgdGhhdCBmb3JtYXQuIFRoZSByZWFsIHByb2JsZW0gaXMgdGhhdAoJICBjb3JlIGNhbGxzIGFjY2VwdGNhcHMgd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHdpdGggbmV3IGNhcHMsIGZvciB3aGljaCB3ZQoJICBkbyBhIGxpdHRsZSB3b3JrYXJvdW5kIGJ5IHNldHRpbmcgdGhlIGNhcHMgb24gdGhlIHNyY3BhZCBvdXJzZWx2ZXMKCSAgYmVmb3JlIHB1c2hpbmcgdGhlIGJ1ZmZlciAodW50aWwgdGhpcyBpcyBmaWd1cmVkIG91dCkuIEZpeGVzICM0ODY3NTguCgoyMDA3LTEwLTE1IDExOjE5OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBvdXRwdXQuIFF1b3RlIHN0cnVjdHVyZSBuYW1lIHRvIGZpeCBkZXNlcmlhbGlzYXRpb24gb2Ygc29tZSBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGRlYnVnIG91dHB1dC4gUXVvdGUgc3RydWN0dXJlIG5hbWUgdG8gZml4CgkgIGRlc2VyaWFsaXNhdGlvbiBvZiBzb21lIHN0cmluZ3MuCgoyMDA3LTEwLTE1IDA3OjM3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERlZmluZSBHU1RfQlVGRkVSX0ZMQUdfR0FQIG1vcmUgc3RyaWN0bHkgdG8gZW5hYmxlIG9wdGltaXphdGlvbnMgYmFzZWQgb24gaXQuIEZpeCBkb2NzIGZvciBHU1RfQlVGRkUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEZWZpbmUgR1NUX0JVRkZFUl9GTEFHX0dBUCBtb3JlIHN0cmljdGx5IHRvIGVuYWJsZSBvcHRpbWl6YXRpb25zIGJhc2VkCgkgIG9uIGl0LiBGaXggZG9jcyBmb3IgR1NUX0JVRkZFUl9NQUxMT0NEQVRBIGFuZCBHc3RCdWZmZXIubWFsbG9jX2RhdGEuCgoyMDA3LTEwLTE1IDA3OjExOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBTYXZlIGFwcHJveC4gNDAwIDEgYnl0ZSBhbGxvY3Mgd2hlbiBwcmludGluZy4gVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFNhdmUgYXBwcm94LiA0MDAgMSBieXRlIGFsbG9jcyB3aGVuIHByaW50aW5nLiBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIEF2b2lkIGEgc3RyZHVwLgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudCBkZXRhaWxzLgoKMjAwNy0xMC0xNSAwNjo1MjowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggc29tZSBzcGVsbGluZyBlcnJvcnMuCgoyMDA3LTEwLTE0IDE1OjU0OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDb3JyZWN0bHkgc2V0IHRoZSBuZXh0IHN0YXRlIGlmIGFsbCBvZiBvdXIgYXN5bmMgY2hpbGRyZW4gY29tbWl0ZWQgdGhlaXIgc3RhdGUuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSk6CgkgIENvcnJlY3RseSBzZXQgdGhlIG5leHQgc3RhdGUgaWYgYWxsIG9mIG91ciBhc3luYyBjaGlsZHJlbiBjb21taXRlZCB0aGVpcgoJICBzdGF0ZS4gVGhpcyBtYWtlcyBzdXJlIHdlIGNhbiBhY3R1YWxseSBjYW5jZWwgdGhlIHN0YXRlIGNoYW5nZSBpbgoJICBwcm9ncmVzcy4gRml4ZXMgYSByZWdyZXNzaW9uIGluIFJoeXRobWJveCB3aGVuIHNlZWtpbmcuCgoyMDA3LTEwLTEzIDE3OjQzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBzaGFkb3cgbG9jYWwgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRG9uJ3Qgc2hhZG93IGxvY2FsIHZhcmlhYmxlLgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIERvbid0IHNoYWRvdyBnbG9iYWwgZnVuY3Rpb24gbmFtZS4KCjIwMDctMTAtMTMgMTc6MjA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgYWxyZWFkeS1pbnRlcm5lZCBzdHJpbmcgZm9yIHRoZSBwcml2YXRlIEdzdFBsdWdpbkZlYXR1cmUgcGx1Z2luX25hbWUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgVXNlIGFscmVhZHktaW50ZXJuZWQgc3RyaW5nIGZvciB0aGUgcHJpdmF0ZSBHc3RQbHVnaW5GZWF0dXJlCgkgIHBsdWdpbl9uYW1lIGZpZWxkLgoKMjAwNy0xMC0xMCAyMjo0MzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvY3M7IGZpeGVzIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jczsgZml4ZXMgdGhlIGJ1aWxkLgoKMjAwNy0xMC0xMCAxNToxODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIEVPUywgc3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgdG8gY29ycmVjdGx5IHdhaXQgZm9yIGRldmljZXMgdG8gZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggaW5zcGlyZWQgYnk6IEJlbm9pdCBGb3VldCA8YmVub2l0IGRvdCBmb3VldCBhdCBwdXJwbGVsYWJzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBmdW5jdGlvbiB0byB3YWl0IGZvciBFT1MsIHN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIHRvIGNvcnJlY3RseSB3YWl0CgkgIGZvciBkZXZpY2VzIHRvIGRyYWluIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBFT1MgbG9naWMuIEZpeGVzICM0ODUzNDMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X2VvcygpCgoyMDA3LTEwLTEwIDEwOjUzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBDYXN0IGRlc2NyaXB0aW9uIHN0cmluZyBjb25zdGFudHMgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zIHRvIGEgKGdjaGFyKikgdG8gbWFrZSBDKysgY29kZSB1c2luZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQ2FzdCBkZXNjcmlwdGlvbiBzdHJpbmcgY29uc3RhbnRzIGluIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcwoJICB0byBhIChnY2hhciopIHRvIG1ha2UgQysrIGNvZGUgdXNpbmcgdGhlc2UgbWFjcm9zIGNvbXBpbGUKCSAgd2l0aG91dCB3YXJuaW5nIHdpdGggZysrLTQuMiAoc2VlICM0NjI3MzcpLiAgRXZlbiBpZiBzbGlnaHRseQoJICB1Z2x5LCB0aGlzIHNlZW1zIHByZWZlcmFibGUgdG8gcHV0dGluZyB0aGUgZGVzY3JpcHRpb24gc3RyaW5ncwoJICBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlIG9yIG1ha2luZyB0aGUgc3RydWN0dXJlIG1lbWJlciBhCgkgIGNvbnN0IGdjaGFyICogYW5kIGRvaW5nIGNhc3RzIGluIGNvcmUgY29kZSB0aGF0IGFsbG9jcyBhbmQKCSAgZnJlZXMgdGhlc2Ugc3RyaW5ncywgb3IgcmVxdWlyaW5nIGEgY2FzdCBpbiB0aGUgQysrIGNvZGUuCgoyMDA3LTEwLTA5IDIwOjQ1OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogVXNlIF9fRlVOQ1RJT05fXyBpbnN0ZWFkIG9mIF9fUFJFVFRZX0ZVTkNUSU9OX18sIGl0J3Mgc2lsbHkgdG8gcHJpbnQgdGhlIGVudGlyZSBjbGFzcy9mdW5jdGlvbiBzaWduYXR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFVzZSBfX0ZVTkNUSU9OX18gaW5zdGVhZCBvZiBfX1BSRVRUWV9GVU5DVElPTl9fLCBpdCdzIHNpbGx5CgkgIHRvIHByaW50IHRoZSBlbnRpcmUgY2xhc3MvZnVuY3Rpb24gc2lnbmF0dXJlIGludG8gdGhlIGxvZwoJICBmaWxlIGZvciBDKysgY29kZS4gIFRoaXMgb25seSBhZmZlY3RzIEMrKyBjb2RlLCBmb3IgQyBjb2RlCgkgIGV2ZXJ5dGhpbmcgcmVtYWlucyB0aGUgc2FtZS4KCjIwMDctMTAtMDkgMTY6MjA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHBpcGVsaW5lcyBjb250YWluaW5nIChzZW1pKWxvb3BzIHVudGlsIGEgcHJvcGVyLCBtb3JlIGNvbXBsaWNhdGVkIHNvbHV0aW9uIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAocmVtb3ZlX2Zyb21fcXVldWUpOgoJICBXb3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBwaXBlbGluZXMgY29udGFpbmluZyAoc2VtaSlsb29wcyB1bnRpbCBhCgkgIHByb3BlciwgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiBpcyByZWFkeS4gU2VlICM0NzU0NTUuCgoyMDA3LTEwLTA5IDE0OjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUHV0IG1vcmUgc3RyaW5ncyBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlLiBObyBuZWVkIHRvIGtlZXAgYSBodW5kcmVkLXNvbWV0aGluZyBjb3BpZXMgb2YgaWRlbnRpY2FsIHZlcnNpb24gc3RyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIFB1dCBtb3JlIHN0cmluZ3MgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZS4gTm8gbmVlZCB0byBrZWVwCgkgIGEgaHVuZHJlZC1zb21ldGhpbmcgY29waWVzIG9mIGlkZW50aWNhbCB2ZXJzaW9uIHN0cmluZ3MsCgkgIGxpY2Vuc2Ugc3RyaW5ncywgcGFja2FnZSBuYW1lIHN0cmluZ3MgYW5kIHBhY2thZ2Ugb3JpZ2luCgkgIHN0cmluZ3MgYXJvdW5kLgoKMjAwNy0xMC0wOSAxMDo0MTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBEb24ndCBpbXBseSB0aGF0IGl0J3Mgb2theSB0byB1bmNvbmRpdGlvbmFsbHkgY2hhbmdlIGJ1ZmZlciBkYXRhIG9yIGJ1ZmZlciBtZXRhZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRG9uJ3QgaW1wbHkgdGhhdCBpdCdzIG9rYXkgdG8gdW5jb25kaXRpb25hbGx5IGNoYW5nZQoJICBidWZmZXIgZGF0YSBvciBidWZmZXIgbWV0YWRhdGEgaW4gYSBwYWQgcHJvYmUgY2FsbGJhY2ssCgkgIGFuZCBhIGJ1bmNoIG9mIG90aGVyIGNvbW1lbnRzLiBGaXhlcyAjNDMwMDMxLgoKMjAwNy0xMC0wOCAyMDo0NTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIGdlbmVyYXRlZCBmaWxlcy4KCjIwMDctMTAtMDggMTc6NTk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBQcmVmaXggc2VjdGlvbiB3aXRoIGJyb2tlbiBjb2RlIHdpdGggYSB3YXJuaW5nIChzZWUgIzM0MjQzMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIFByZWZpeCBzZWN0aW9uIHdpdGggYnJva2VuIGNvZGUgd2l0aCBhIHdhcm5pbmcgKHNlZSAjMzQyNDMyKS4KCjIwMDctMTAtMDggMTc6MjY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IENhbGwgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpIHRvIGF2b2lkIHdhcm5pbmdzLiBTcG90dGVkIGJ5IFJpdGVzaCBLaGFkZ2FyYXkuIEZpeGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgdG8KCSAgYXZvaWQgd2FybmluZ3MuIFNwb3R0ZWQgYnkgUml0ZXNoIEtoYWRnYXJheS4gRml4ZXMgIzQ4NDIyNS4KCjIwMDctMTAtMDggMTc6MDU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gd2UgcmVjZWl2ZWQgRU9TIGFuZCBhcmUgd2FpdGluZyBmb3Igd2hlbiB0byBwb3N0IHRoZSBFT1MgbWVzc2FnZSwgb3VyIHN0YXRlIGlzIHByZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBXaGVuIHdlIHJlY2VpdmVkIEVPUyBhbmQgYXJlIHdhaXRpbmcgZm9yIHdoZW4gdG8gcG9zdCB0aGUgRU9TIG1lc3NhZ2UsCgkgIG91ciBzdGF0ZSBpcyBwcmVyb2xsZWQgYW5kIHdlIHNob3VsZCBub3QgcmV0dXJuIEFTWU5DLgoJICBSZW9yZ2FuaXplIHNvbWUgY29kZSBwYXRocyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlvci4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2VvcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IHRvIHZlcmlmeSBhYm92ZSBFT1MgZml4LgoKMjAwNy0xMC0wOCAxMDoyODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE1vdmUgZGV0ZWN0aW5nIHRoZSBpbnB1dCBjYXBzIG9mIHRoZSBzaW5rcGFkIHRvIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0Y2FwcyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3ZlIGRldGVjdGluZyB0aGUgaW5wdXQgY2FwcyBvZiB0aGUgc2lua3BhZCB0byB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gdXBkYXRlIHRoZSBvdXRwdXQgY2FwcyB3aGVuIHdlIHJlY2VpdmUgbmV3IGlucHV0IGNhcHMKCSAgaW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgdGhlIGZpcnN0IGRldGVjdGVkIGNhcHMuCgoyMDA3LTEwLTA4IDEwOjIxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB0cnkgdG8gcHJlcm9sbCBub24tYXN5bmMgZWxlbWVudHMgYWZ0ZXIgYSBmbHVzaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHRyeSB0byBwcmVyb2xsIG5vbi1hc3luYyBlbGVtZW50cyBhZnRlciBhIGZsdXNoLgoJICBTdWJ0cmFjdCBsYXRlbmN5IGZvcm0gY2xvY2sgdGltZXMgd2hlbiByZXBvcnRpbmcgcG9zaXRpb24uCgoyMDA3LTEwLTA1IDE0OjQ0OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY29tbWVudCBhbmQgZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGF1c2VfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGNvbW1lbnQgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAwNy0xMC0wNSAxNDo0MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZXdvcmsgdGhlIGxvY2tpbmcgb2YgYmFzZXNyYyBpbiBhIHNpbWlsYXIgZmFzaGlvbiB0byBiYXNlc2luay4gV2UgYmFzaWNhbGx5IGhhdmUgb25lIGxvYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfdW5sb2NrKSwgKGdzdF9iYXNlX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrIHRoZSBsb2NraW5nIG9mIGJhc2VzcmMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gYmFzZXNpbmsuIFdlCgkgIGJhc2ljYWxseSBoYXZlIG9uZSBsb2NrIChMSVZFX0xPQ0spIHByb3RlY3RpbmcgdGhlIGRhdGFmbG93LiBUaGlzIGFsbG93cwoJICB1cyB0byBoYW5kbGUgbGl2ZSBzb3VyY2VzIGFuZCBzZW1pIGxpdmUgb25lcyBtdWNoIGJldHRlci4KCSAgU2ltcGxpZnkgZmx1c2hpbmcuCgkgIEZpeCB1bmxvY2tpbmcgd2hlbiBzZWVraW5nLCBzaHV0dGluZyBkb3duIGFuZCBwYXVzaW5nIGluIGxpdmUgc291cmNlcy4KCjIwMDctMTAtMDUgMTE6NTI6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBGaXggY29tcGlsYXRpb24gYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICBGaXggY29tcGlsYXRpb24gYWdhaW4uCgoyMDA3LTEwLTAzIDE1OjI3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgbWVhbmluZ2Z1bCBjYXRlZ29yaWVzIGZvciB0aGUgbG9ncyB0byBjbGVhbiB0aGUgZGVmYXVsdCBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFVzZSBtZWFuaW5nZnVsIGNhdGVnb3JpZXMgZm9yIHRoZSBsb2dzIHRvIGNsZWFuIHRoZSBkZWZhdWx0IG9uZS4KCjIwMDctMTAtMDMgMTU6MDU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTU6MDI6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGQgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMTAtMDMgMTQ6NTE6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTI6MDU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgoyMDA3LTEwLTAzIDExOjM2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBkb2NzIHRoYXQgbWVudGlvbiAncGx1Z2luX2Rlc2MnIGluc3RlYWQgb2YgJ2dzdF9wbHVnaW5fZGVzYycuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgRml4IGRvY3MgdGhhdCBtZW50aW9uICdwbHVnaW5fZGVzYycgaW5zdGVhZCBvZiAnZ3N0X3BsdWdpbl9kZXNjJy4KCSAgU3BvdHRlZCBieSBKb3NlcCBUb3JyYSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPi4KCjIwMDctMTAtMDMgMTE6MTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncyBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncwoJICBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoKMjAwNy0xMC0wMiAxNToyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDYWxsIHVubG9jayBmb3IgbGl2ZSBzb3VyY2VzIHNvIHRoYXQgdGhleSBjYW4ndCBnZXQgc3R1Y2sgaW4gX2NyZWF0ZSBhbmQgcHJvZHVjZSBhIGJ1ZmZlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIENhbGwgdW5sb2NrIGZvciBsaXZlIHNvdXJjZXMgc28gdGhhdCB0aGV5IGNhbid0IGdldCBzdHVjayBpbiBfY3JlYXRlIGFuZAoJICBwcm9kdWNlIGEgYnVmZmVyIGJlZm9yZSB0aGV5IGFyZSBzZXQgYmFjayB0byBQTEFZSU5HLgoKMjAwNy0xMC0wMiAwOToyMTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQ29tbWVudCB0aGUgc2VnbWVudC1yZWxhdGVkIGNvZGUuLi4gaW4gdGhlIFBST1BFUiBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIENvbW1lbnQgdGhlIHNlZ21lbnQtcmVsYXRlZCBjb2RlLi4uIGluIHRoZSBQUk9QRVIgZnVuY3Rpb24uCgkgIFNlZSAjNDgyMTQ3IGFuZCBteSBjb21taXQgZnJvbSB5ZXN0ZXJkYXkuCgoyMDA3LTEwLTAxIDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhIGJ1ZmZlciBjb3JyZWN0bHkgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhCgkgIGJ1ZmZlciBjb3JyZWN0bHkgZm9yIG5vbi1saXZlIHNvdXJjZXMuCgoyMDA3LTEwLTAxIDEyOjMxOjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBTZWUgIzQ4MjE0NwoKMjAwNy0wOS0zMCAxODoxNjozNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIE1fUEkgYW5kIElNUE9SVF9TWU1CT0wgdG8gdGhlIHByaXZhdGUgcGFydCBvZiB0aGUgR3N0SW5mbyBzZWN0aW9uIGFzIHRoZXkgc2hvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBNX1BJIGFuZCBJTVBPUlRfU1lNQk9MIHRvIHRoZSBwcml2YXRlIHBhcnQgb2YgdGhlIEdzdEluZm8gc2VjdGlvbgoJICBhcyB0aGV5IHNob3VsZG4ndCBzaG93IHVwLiBGaXhlcyB0aGUgZG9jcyBidWlsZC4KCjIwMDctMDktMjkgMTE6NDY6MzEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IEFkZCBhbiBleHBsaWNpdCB2YXJpYWJsZSBpbXBvcnRhdGlvbiBuZWVkZWQgb24gVlM2IChvbmx5IGZvciBNU0NfVkVSKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgYW4gZXhwbGljaXQgdmFyaWFibGUgaW1wb3J0YXRpb24gbmVlZGVkIG9uIFZTNiAob25seSBmb3IgTVNDX1ZFUikKCSAgRGVmaW5lIE1fUEkgd2hpY2ggaXMgdXNlZCBpbiBmaWxlcyB3aGljaCBhcmUgaW5jbHVkaW5nIGdzdGluZm8uaC4KCSAgVlM2IGluY2x1ZGVzIGRvZXNuJ3QgZGVmaW5lIGl0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVcGRhdGUgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYnVpbGQuCgoyMDA3LTA5LTI4IDEwOjIyOjQwICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlIGRvdCBjb250cmVyYXMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6ICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgoyMDA3LTA5LTI4IDEwOjE1OjIzICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUgbWFjcm9zIHRvIHNpZ25hbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZSBkb3QgY29udHJlcmFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUKCSAgbWFjcm9zIHRvIHNpZ25hbCBhbmQgbG9jayB0aGUgcXVldWUuIFNlZSAjNDgwODU4LgoKMjAwNy0wOS0yNiAxODowNjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAocG9sbF9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCjIwMDctMDktMjYgMTg6MDQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IG1lbW9yeSBsZWFrIEkgaW50cm9kdWNlZCBhIGZldyBkYXlzIGFnby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEZpeCBtZW1vcnkgbGVhayBJIGludHJvZHVjZWQgYSBmZXcgZGF5cyBhZ28uCgoyMDA3LTA5LTI2IDE3OjAwOjIyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE1ha2UgaXQgb25jZSBhZ2FpbiBwb3NzaWJsZSB0byBmcmVlIEdzdEJ1ZmZlcnMgaW4gdGhlIGRlZmF1bHQgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBNYWtlIGl0IG9uY2UgYWdhaW4gcG9zc2libGUgdG8gZnJlZSBHc3RCdWZmZXJzIGluIHRoZSBkZWZhdWx0CgkgIGJ1aWxkLgoJICBUaGUgcG9pc29uaW5nIHNjcmliYmxlcyBvbiBwYXJ0cyBvZiB0aGUgbWluaW9iamVjdCB3ZSBuZWVkIGluCgkgIG9yZGVyIHRvIGZyZWUgaXQuCgkgIEZpeGVzICM0ODAzNDEKCjIwMDctMDktMjUgMTg6MzU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTVBPU0VSLCBmaXhlcyAjNDU5ODA5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19DT01QT1NFUiwgZml4ZXMgIzQ1OTgwOS4KCjIwMDctMDktMjQgMTc6NDE6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uKjogQWRkIHRoZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhbmQgdGhlIE1JVC9YMTEgbGljZW5zZSB0byB0aGUgbGljZW5zZSBsaXN0LiBGaXhlcyAjNDc5Nzg0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBBZGQgdGhlIDMtY2xhdXNlIEJTRCBsaWNlbnNlIGFuZCB0aGUgTUlUL1gxMSBsaWNlbnNlIHRvIHRoZSBsaWNlbnNlCgkgIGxpc3QuIEZpeGVzICM0Nzk3ODQuCgoyMDA3LTA5LTI0IDE3OjIyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ2V0dGluZy54bWw6IEFkZCBRK0EgYWJvdXQgZGlmZmVyZW50IEdTdHJlYW1lciB2ZXJzaW9ucyAoIzM2NDA1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICBBZGQgUStBIGFib3V0IGRpZmZlcmVudCBHU3RyZWFtZXIgdmVyc2lvbnMgKCMzNjQwNTYpLgoKMjAwNy0wOS0yNCAxMjo0NjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV0dXJuIGNvcnJlY3QgZ2Jvb2xlYW4gZnJvbSBxdWVyeSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZXR1cm4gY29ycmVjdCBnYm9vbGVhbiBmcm9tIHF1ZXJ5IGZ1bmN0aW9uLgoKMjAwNy0wOS0yNCAxMjoyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGxpZnkgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbXBsaWZ5IGxhdGVuY3kgcXVlcnkuCgkgIFdoZW4gbm90IHN5bmNocm9uaXppbmcsIHdlIGNhbiByZXBvcnQgbGF0ZW5jeSB3aXRob3V0IHF1ZXJ5aW5nIHRoZSBwZWVyCgkgIGVsZW1lbnQuCgoyMDA3LTA5LTI0IDExOjQ2OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHNtYWxsIHR5cG9zIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCBzbWFsbCB0eXBvcyBpbiB0aGUgZG9jcy4KCjIwMDctMDktMjQgMTE6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCjIwMDctMDktMjMgMTA6MTY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnIHRleHQgdG8gZXJyb3IgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGF0IHdlIGVycm9yZWQgb3V0IG9uIHJlcXVlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgQWRkIHNvbWUgZGVidWcgdGV4dCB0byBlcnJvciBtZXNzYWdlIHRvIGluZGljYXRlIHRoYXQKCSAgd2UgZXJyb3JlZCBvdXQgb24gcmVxdWVzdC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HIGZhaWxzLCBjaGVjayBmb3IgYW4KCSAgZXJyb3IgbWVzc2FnZSBvbiB0aGUgYnVzIGFuZCBwcmludCBpdC4KCjIwMDctMDktMjIgMTc6MjI6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vY3MucG86CgkqIHBvL2h1LnBvOgoJKiBwby91ay5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA3LTA5LTIyIDE3OjE4OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEpvcmdlIEdvbnrDoWxleiBHb256w6FsZXogPGFsb3JpZWxAZ21haWwuY29tPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZXMucG86CgkgIEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA5LTIxIDE0OjM3OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBGaXggcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTIwIDEwOjM2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoKMjAwNy0wOS0yMCAwNzo0MjozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiBNb3ZlIHByaXYgdG8gdGhlIHJpZ2h0IHBsYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1vdmUgcHJpdiB0byB0aGUgcmlnaHQgcGxhY2UuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIEFkZCBGSVhNRTogYW5kIGltcHJvdmUgbG9nLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgV29yayB3aXRoIGFsbCB0eXBlcyBvZiByZWdpc3RyaWVzLgoKMjAwNy0wOS0xOSAyMDozOTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1bnJlZiB0aGUgZXZlbnQgYWZ0ZXIgcHVzaGluZyBpdC4gRml4ZXMgIzQ3ODQwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIERvbid0IHVucmVmIHRoZSBldmVudCBhZnRlciBwdXNoaW5nIGl0LiBGaXhlcyAjNDc4NDAxLgoKMjAwNy0wOS0xOSAxODowNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCjIwMDctMDktMTkgMTM6Mjg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOiBBZGQgY29tcGF0aWJpbGl0eSBtYWNybyBmb3IgZ19pbnRlcm5fc3RyaW5nKCkgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEFkZCBjb21wYXRpYmlsaXR5IG1hY3JvIGZvciBnX2ludGVybl9zdHJpbmcoKSBmb3IKCSAgR0xpYi0yLjggKGFueSByZWFzb24gd2UgY2FuJ3QganVzdCBidW1wIHRoZQoJICByZXF1aXJlbWVudCB0byBhdCBsZWFzdCAyLjEwPykKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBHc3RTdGF0aWNQYWRUZW1wbGF0ZSdzIHRlbXBsX25hbWUgZmllbGQgYSBjb25zdCBnY2hhciAqIGFuZCBmaXgKCSAgdXAgdGhlIGludGVybmFsIGNvZGUgYWNjb3JkaW5nbHkuICBUaGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0sIHNpbmNlCgkgIHRoZXJlIGlzIG5vIHJlYXNvbiBleHRlcm5hbCBjb2RlIGNvdWxkIGV2ZXIgYXNzdW1lIHRoZSBzdHJpbmcgaW4gc3VjaAoJICBhIHN0cnVjdHVyZSBpcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdW5sZXNzIGl0IGRpZCB0aGF0IGl0c2VsZjsgIHRoZQoJICB1c2Ugb2YgZ19zdHJkdXAoKSBpcyBwcml2YXRlIHRvIGVsZW1lbnQgZmFjdG9yaWVzLiAgVGhlIG5ldyBjb2RlIGFsc28KCSAgc2F2ZXMgc29tZSBtZW1vcnkgYnkgcHV0dGluZyBwYWQgdGVtcGxhdGUgbmFtZSBzdHJpbmdzIGludG8gdGhlIEdMaWIKCSAgcXVhcmsgdGFibGUgaW5zdGVhZCBvZiBhbGxvY2F0aW5nIHRoZW0gZHluYW1pY2FsbHkuCgkgIERlY2xhcmluZyB0aGlzIGZpZWxkIGNvbnN0YW50IGZpeGVzIHdhcm5pbmdzIHdpdGggZysrLTQuMiB3aGVuIHVzaW5nCgkgIHRoZSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSBtYWNybyBpbiBjKysgY29kZSAoIzQ3ODA5MikuCgoyMDA3LTA5LTE5IDEyOjMxOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVsZWFzZSBzdGF0aWMgY2Fwcy4gRml4ZXMgIzQ3NTcyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIFJlbGVhc2Ugc3RhdGljIGNhcHMuIEZpeGVzICM0NzU3MjMuCgoyMDA3LTA5LTE4IDIyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uKjogTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0IGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0CgkgIGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystNC4yLjIgd2hlbgoJICBwYXNzaW5nIHN0cmluZyBjb25zdGFudHMgKHBhcnRpYWxseSBmaXhlcyAjNDc4MDkyKS4KCjIwMDctMDktMTcgMjA6NTU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEEgbGF0ZW5jeSBxdWVyeSBmYWlscyB3aGVuIG9uZSBvZiB0aGUgc2lua3MgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChnc3RfYmluX3F1ZXJ5KToKCSAgQSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIHdoZW4gb25lIG9mIHRoZSBzaW5rcyBmYWlsLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA5LTE3IDE3OjE3OjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgRml4IG1pbm9yIGNvbXBpbGF0aW9uIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgoyMDA3LTA5LTE3IDA2OjAxOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBNZWFzdXJlIHF1ZXVlIGxldmVsIGJhc2VkIG9uIHRoZSBkaWZmIGJldHdlZW4gaGVhZCBhbmQgdGFpbCB0aW1lc3RhbXBzIGV2ZW4gd2hlbiBwdXNoaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgTWVhc3VyZSBxdWV1ZSBsZXZlbCBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIGhlYWQgYW5kIHRhaWwgdGltZXN0YW1wcwoJICBldmVuIHdoZW4gcHVzaGluZyB0aGUgZmlyc3QgYnVmZmVyLgoKMjAwNy0wOS0xNCAyMzowNjozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIERvbid0IHBvc3QgQVNZTkMgc3RhcnQgd2hlbiB3ZSBhcmUgbm90IGFzeW5jLgoKMjAwNy0wOS0xNCAyMDoyNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0byBwdXNoIG1vcmUgYnVmZmVycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0bwoJICBwdXNoIG1vcmUgYnVmZmVycyBidXQgYWxsb3cgcHVzaGluZyBvZiBFT1MgYW5kIE5FV1NFR01FTlQuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBoZXJlIGFuZCB0aGVyZS4gRml4ZXMgIzQ3NjUxNC4KCjIwMDctMDktMTQgMTU6NTI6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZyBmb3IgdGhpcyBhbmQgc3RvcCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZwoJICBmb3IgdGhpcyBhbmQgc3RvcCBhYnVzaW5nIG90aGVyIHZhcmlhYmxlcy4KCjIwMDctMDktMTMgMjM6NTM6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVzaCBPT0IgZXZlbnRzIGRvd25zdHJlYW0gd2hlbiB3ZSBnZXQgdGhlbSBpbiBzZW5kX2V2ZW50LiBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIFB1c2ggT09CIGV2ZW50cyBkb3duc3RyZWFtIHdoZW4gd2UgZ2V0IHRoZW0gaW4gc2VuZF9ldmVudC4gVGhpcyBhbGxvd3MKCSAgdGhlIGFwcGxpY2F0aW9uIHRvIGluc2VydCBldmVudHMgaW4gdGhlIHBpcGVsaW5lLgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0wOS0xMyAyMToyNzozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGNsZWFyX3F1ZXVlKSwKCSAgKGRvX2Jpbl9sYXRlbmN5KSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvCgkgIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCjIwMDctMDktMTMgMjE6MTk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFVwZGF0ZSBkb2NzLgoJICBDbGVhbiB1cCB0aGUgdGltZXN0YW1waW5nIGFuZCBzeW5jaW5nIGNvZGUgZm9yIHBzZXVkbyBsaXZlIHNvdXJjZXMuCgoyMDA3LTA5LTEzIDE5OjI3OjUzICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDogTWVudGlvbiBsZXNzIC1SIHN3aXRjaCBpbiB0aGUgc2VjdGlvbiBhYm91dCBkZWJ1ZyBvdXRwdXQgKCM0NzQwNTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIE1lbnRpb24gbGVzcyAtUiBzd2l0Y2ggaW4gdGhlIHNlY3Rpb24gYWJvdXQgZGVidWcgb3V0cHV0ICgjNDc0MDU1KS4KCjIwMDctMDktMTMgMTc6MTU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBSZXBvcnQgdGhpcyBmYWN0IGluIHRoZSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wOS0xMyAwOTowODoyMyArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbiBhdCBtb3V0dGUgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBHc3RDbG9ja1RpbWUgdG8gZG91YmxlIHRvIGZpeCB0aGUgYnVpbGQgb24gd2luMzIuIEZpeGVzICM0NzQzNzEuCgoyMDA3LTA5LTEzIDA4OjQyOjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEltcGxlbWVudCBwb2lzb25pbmcgZm9yIEdzdEJ1ZmZlciBpZiAtLWVuYWJsZS1wb2lzb25pbmcgaXMgc3BlY2lmaWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgSW1wbGVtZW50IHBvaXNvbmluZyBmb3IgR3N0QnVmZmVyIGlmIC0tZW5hYmxlLXBvaXNvbmluZyBpcyBzcGVjaWZpZWQuCgkgIFdoZW4gZmluYWxpemluZyBhIGJ1ZmZlciB0aGUgY29tcGxldGUgc3RydWN0IGlzIGZpbGxlZCB3aXRoIDB4ZmYsCgkgIHRodXMgbWFraW5nIGEgdXNlIG9mIHRoZSBidWZmZXIgYWZ0ZXIgdGhlIGZpbmFsIHVucmVmIGltcG9zc2libGUuCgoyMDA3LTA5LTEzIDA4OjM2OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogVXNlIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQoYSwgYikgaW5zdGVhZCBvZiBmYWlsX3VubGVzc19lcXVhbHMgKGEgPT0gYikgdG8gZ2V0IGJldHRlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBmYWlsX3VubGVzc19lcXVhbHNfaW50KGEsIGIpIGluc3RlYWQgb2YKCSAgZmFpbF91bmxlc3NfZXF1YWxzIChhID09IGIpIHRvIGdldCBiZXR0ZXIgb3V0cHV0IG9uIGZhaWx1cmVzLgoKMjAwNy0wOS0xMiAxNjozNTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgoyMDA3LTA5LTEyIDEyOjM2OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBJZiB0aGVyZSdzIG5vIGhvc3RuYW1lLCB3ZSB3YW50IHRvIHJldHVybiAnYzovZm9vL2Jhci50eHQnIGFuZCBub3QgJy9jOi9mb28vYmFyLnR4dCcgb24gV2luZG93cy4gRml4ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X2xvY2F0aW9uKToKCSAgSWYgdGhlcmUncyBubyBob3N0bmFtZSwgd2Ugd2FudCB0byByZXR1cm4gJ2M6L2Zvby9iYXIudHh0JwoJICBhbmQgbm90ICcvYzovZm9vL2Jhci50eHQnIG9uIFdpbmRvd3MuIEZpeGVzICM0Njk0MDIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZSBhbmQgYSBmZXcgbW9yZSB0aGluZ3MuCgoyMDA3LTA5LTExIDIzOjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6IEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgIEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBGb3Igc3ViY2xhc3NlcyB0aGF0IGFyZSBsaXZlIGFuZCBsaWtlIHRvIHN5bmMsIGFkZCBhZGl0aW9uYWwgc3RhcnR1cAoJICBsYXRlbmN5IHRvIHN5bmMgdGltZSBhbmQgdGltZXN0YW1wcyBzbyB0aGF0IHdlIHRpbXN0YW1wIGFjY29yZGluZyB0byB0aGUKCSAgZGVzaWduIGRvYy4KCjIwMDctMDktMTEgMTg6NTk6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEFsc28gZG8gYSBnX3R5cGVfY2xhc3NfcmVmKCkgZm9yIHRoZSBzdWJidWZmZXIgdHlwZSBpbiB0aGUgaW5pdCBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBBbHNvIGRvIGEgZ190eXBlX2NsYXNzX3JlZigpIGZvciB0aGUgc3ViYnVmZmVyIHR5cGUgaW4KCSAgdGhlIGluaXQgZnVuY3Rpb24uCgoyMDA3LTA5LTExIDE1OjU1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgQVBJOiBnc3RfcGFkX3BlZXJfcXVlcnkoKQoKMjAwNy0wOS0xMSAxMzo0Mzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IENsZWFudXAgdGhlIHRlc3QgYSBsaXR0bGUgKHVzZSBnc3QtbG9nZ2luZyBhbmQgbm90IGdfbWVzc2FnZSkuIEltcHJvdmUgdGVzdCB0byBjaGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBDbGVhbnVwIHRoZSB0ZXN0IGEgbGl0dGxlICh1c2UgZ3N0LWxvZ2dpbmcgYW5kIG5vdCBnX21lc3NhZ2UpLiBJbXByb3ZlCgkgIHRlc3QgdG8gY2hlY2sgaWYgYSB3YWl0IHJlYWNoZWQgdGhlIHRhcmdldC4KCjIwMDctMDktMTEgMTA6MzM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoKMjAwNy0wOS0xMCAxNjo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgcHJvcGVydHkgdG8gbWFrZSB0aGUgYmFzZXNyYyB0aW1lc3RhbXAgYnVmZmVycyBiYXNlZCBvbiB0aGUgY3VycmVudCBydW5uaW5nIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXApLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGJhc2VzcmMgdGltZXN0YW1wIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQKCSAgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdEJhc2VTcmM6OmRvLXRpbWVzdGFtcAoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKCkKCSAgQVBJOiBnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCgpCgoyMDA3LTA5LTA4IDIwOjI1OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogUmVhbGx5IG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGEgcmVsZWFzZSAoIzQ2NTAxMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFJlYWxseSBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlIGJlZm9yZQoJICBhIHJlbGVhc2UgKCM0NjUwMTApLgoKMjAwNy0wOS0wNyAxNDo0Njo1MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgaGVhZGVyIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IGhlYWRlciBmaWxlcwoKMjAwNy0wOS0wNyAwNDo1MDoyMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsd2F5cyBkZXN0cm95IHRoZSB0aW1lciwgYWxzbyBpbiBlcnJvciBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBBbHdheXMgZGVzdHJveSB0aGUgdGltZXIsIGFsc28gaW4gZXJyb3IgY2FzZXMuCgoyMDA3LTA5LTA1IDIyOjI5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6IEZpeCBYTUwgZXhhbXBsZSBjb2RlLiBGaXhlcyAjNDcyNzE0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgRml4IFhNTCBleGFtcGxlIGNvZGUuIEZpeGVzICM0NzI3MTQuCgoyMDA3LTA5LTA1IDIyOjEyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcm90ZWN0IGVvcyBhbmQgaGF2ZV9wcmVyb2xsIHdpdGggdGhlIE9CSkVDVCBsb2NrIHNvIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGUgUFJFUk9MTCBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFByb3RlY3QgZW9zIGFuZCBoYXZlX3ByZXJvbGwgd2l0aCB0aGUgT0JKRUNUIGxvY2sgc28gd2UgZG9uJ3QgbmVlZCB0bwoJICB0YWtlIHRoZSBQUkVST0xMIGxvY2sgd2hlbiBxdWVyeWluZyB0aGUgbGF0ZW5jeS4gRml4ZXMgIzQ3Mzg0Ni4KCjIwMDctMDktMDUgMTM6MjQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEdpdmUgc29tZSBsb2ctbWVzc2FnZXMgYSBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgR2l2ZSBzb21lIGxvZy1tZXNzYWdlcyBhIGNhdGVnb3J5LgoKMjAwNy0wOS0wNSAwMTowMDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QKCSAgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IHRvIHZlcmlmeSBjb3JyZWN0IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gYmVoYXZpb3VyLgoKMjAwNy0wOS0wMiAyMDozMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBFeHBvcnQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9ydCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2ggdG9vLgoKMjAwNy0wOC0zMCAxNzo1MDo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgbWV0aG9kcyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IG1ldGhvZHMgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90c19vZmZzZXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCB0cy1vZmZzZXQgcHJvcGVydHkgdG8gZmluZS10dW5lIHRoZSBzeW5jaHJvbmlzYXRpb24uCgkgIEFQSTogR3N0QmFzZVNpbms6OnRzLW9mZnNldCBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfdHNfb2Zmc2V0KCkKCjIwMDctMDgtMjkgMjA6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZCBhc3luYyBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgc2luayBuZXZlciB0byBpbmZvcm0gdGhlIHBhcmVudCBhYm91dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX2FzeW5jX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGFzeW5jIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBzaW5rIG5ldmVyIHRvIGluZm9ybSB0aGUgcGFyZW50IGFib3V0CgkgIEFTWU5DIHN0YXRlIGNoYW5nZXMsIHVwZGF0ZSBkb2NzLgoJICBDaGVjayBhcmd1bWVudCB3aXRoIGdfcmV0dXJuXyogZm9yIHRoZSBwdWJsaWMgZnVuY3Rpb25zLgoJICBBUEk6IEdzdEJhc2VTaW5rOjphc3luYyBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfYXN5bmNfZW5hYmxlZCgpCgoyMDA3LTA4LTI4IDE1OjAyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19sb29wKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVhcnJhbmdlIHNvbWUgY29kZSBzbyB0aGF0IHdlIGNhbiBhZGQgc3VwcG9ydCBmb3IgbWVhc3VyaW5nIHRoZQoJICBzdGFydHVwIGxhdGVuY3kuCgoyMDA3LTA4LTI3IDIwOjAwOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHRob3VnaHMgb24gdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB0aG91Z2hzIG9uIHRoaXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIEFkZCBidWd6aWxsYSB0aWNrZXQgbnVtYmVyIHRvIEZJWE1FIGNvbW1lbnQuCgoyMDA3LTA4LTI2IDE4OjMwOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICByZW1vdmUgdGVtcCBmaWxlcyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlbXAgZmlsZXMgYWdhaW4KCjIwMDctMDgtMjYgMTY6NDI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wOC0yNiAxNTo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBBVVRIT1JTOgoJKiBNQUlOVEFJTkVSUzoKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA4LTI0IDIxOjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNy0wOC0yNCAxNjozOTowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdCBicmVha3MgbWFrZSBkaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdAoJICBicmVha3MgbWFrZSBkaXN0LgoKMjAwNy0wOC0yNCAxNDo1NTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEZpeCBsZWFrcyBpbiB0aGUgbmV3IHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVha3MgaW4gdGhlIG5ldyB1bml0IHRlc3QuCgoyMDA3LTA4LTIzIDIwOjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb24ndCB1c2UgR1NUX0lORk8gYmVmb3JlIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgYWN0dWFsbHkgaW5pdGlhbGlzZWQgKHNob3VsZG4ndCBkbyBhbnkgaGFybSwgYnV0IHdvbid0IHByaW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRG9uJ3QgdXNlIEdTVF9JTkZPIGJlZm9yZSB0aGUgZGVidWcgc3lzdGVtIGlzIGFjdHVhbGx5IGluaXRpYWxpc2VkCgkgIChzaG91bGRuJ3QgZG8gYW55IGhhcm0sIGJ1dCB3b24ndCBwcmludCBhbnl0aGluZyBlaXRoZXIsIHNvIHdlIGNhbgoJICBqdXN0IGFzIHdlbGwgcmVtb3ZlIGl0KS4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBHU1RfQ0FUX0xFVkVMX0xPR192YWxpc3QoKSwgd2hpY2ggaXMgb3VyIGlubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yCgkgIGNvbXBpbGVycyB0aGF0IGRvbid0IHN1cHBvcnQgdmFyaWFkaWMgbWFjcm9zIChzdWNoIGFzIE1TVkMpLCBzaG91bGQKCSAgY2hlY2sgZm9yIGRlYnVnX2xldmVsIDw9IF9fZ3N0X2RlYnVnX21pbiBhcyB3ZWxsLCBzaW5jZSB0aGF0J3MgdGhlCgkgIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGFsbCB0aGUgbGV2ZWwtc3BlY2lmaWMgR1NUX0NBVF8qX0xPR19PQkpFQ1QoKQoJICBpbmxpbmUgaGVscGVyIGZ1bmN0aW9ucy4gU2hvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UgYSBiaXQsIGJ1dCBhbHNvCgkgIG1ha2VzIHN1cmUgdXNlcyBvZiBHU1RfSU5GTyBldC5hbCBhcmUgaWdub3JlZCBpZiB0aGUgZGVidWdnaW5nCgkgIHN5c3RlbSBpc24ndCBpbml0aWFsaXNlZCB5ZXQgKGluc3RlYWQgb2YgcHJpbnRpbmcgYW4gYXNzZXJ0aW9uCgkgIGZhaWx1cmUpLgoKMjAwNy0wOC0yMyAwNzoxMDozMyArMDAwMCAgRGF2aWQgTmXEjWFzIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmVwbGFjZSBzb21lIG5vbiBwb3J0YWJsZSBtYWtlZmlsZSBjb25zdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IERhdmlkIE5lxI1hcyA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXBsYWNlIHNvbWUgbm9uIHBvcnRhYmxlIG1ha2VmaWxlIGNvbnN0cnVjdHMuCgoyMDA3LTA4LTIxIDE0OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb21tb24vZ3RrLWRvYy1wbHVnaW5zLm1hazogR3JycnJyLiBEb24ndCByZW1vdmUgdGhlIHR5cGVzIGZpbGUgb24gbWFrZSBjbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2d0ay1kb2MtcGx1Z2lucy5tYWs6CgkgIEdycnJyci4gRG9uJ3QgcmVtb3ZlIHRoZSB0eXBlcyBmaWxlIG9uIG1ha2UgY2xlYW4uCgoyMDA3LTA4LTIwIDE3OjUxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBBZGQgY29sb3JzcGFjZSB0byBleGFtcGxlIHBpcGVsaW5lLiBGaXhlcyAjNDU4Mjc0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEFkZCBjb2xvcnNwYWNlIHRvIGV4YW1wbGUgcGlwZWxpbmUuIEZpeGVzICM0NTgyNzQuCgoyMDA3LTA4LTIwIDEyOjMxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogVGhlIHJlbGVhc2UgbWFuYWdlciBzaG91bGQgcnVuICdtYWtlIGRvd25sb2FkLXBvJyBiZWZvcmUgbWFraW5nIGEgcmVsZWFzZSB0byBtYWtlIHN1cmUgdHJhbnNsYXRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFRoZSByZWxlYXNlIG1hbmFnZXIgc2hvdWxkIHJ1biAnbWFrZSBkb3dubG9hZC1wbycgYmVmb3JlIG1ha2luZyBhCgkgIHJlbGVhc2UgdG8gbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZS4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2JlLnBvOgoJICAqIHBvL3BsLnBvOgoJICAqIHBvL3J3LnBvOgoJICBBZGQgc29tZSBuZXcgdHJhbnNsYXRpb25zLgoKMjAwNy0wOC0xNyAxMzo0ODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uwrR0IHRyeSB0byBkbyBhbnkgc3RhdGUgbWFuYWdlbWVudCB3aGVuIGEgbGl2ZSBwaXBlbGluZSBwb3N0cyBidWZmZXJpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbsK0dCB0cnkgdG8gZG8gYW55IHN0YXRlIG1hbmFnZW1lbnQgd2hlbiBhIGxpdmUgcGlwZWxpbmUgcG9zdHMKCSAgYnVmZmVyaW5nIG1lc3NhZ2VzLgoJICBBbHNvIG1ha2UgdGhlIGJ1ZmZlcmluZyBzdHJpbmcgdHJhbnNsYXRhYmxlLgoKMjAwNy0wOC0xNiAxMTowNDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIFdoZW4gYWRkaW5nIGVsZW1lbnRzLCBpbnNlcnQgbWVzc2FnZXMgaW50byB0aGUgYnVzIG9mIHRoZSBuZXdseSBhZGRlZAoJICBlbGVtZW50IGFuZCBtYWtlIHN1cmUgdGhlIGVsZW1lbnQgaXMgdGhlIHNvdXJjZSBvZiB0aGUgbWVzc2FnZS4gVGhpcwoJICBhbGxvd3MgdGhlIHBhcmVudCBiaW4gdG8gaW50ZXJjZXB0IHRoZSBtZXNzYWdlIGFuZCBkbyB0aGUKCSAgcmlnaHQgdGhpbmcuIEl0IGFsc28gYXZvaWRzIHVzIHBvc3RpbmcgQVNZTkNfU1RBUlQgYW5kIENMT0NLX1BST1ZJREUKCSAgbWVzc2FnZXMgdG8gdGhlIGFwcCAod2hpY2ggaXMgbm90IGFsbG93ZWQpLgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdHN1aXRlIHNvIHRoYXQgaXMgZG9lcyBub3Qgd29yayBhcm91bmQgbWVzc2FnZXMgdGhhdCBzaG91bGQgbm90CgkgIGhhdmUgYmVlbiBwb3N0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgoKMjAwNy0wOC0xNiAxMDoyNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGFubm95aW5nIGJ1ZyBpbiB0aGUgc29ydGVkIGl0ZXJhdG9yIHdoZXJlIGEgc2luayB0aGF0IGlzIG5vdCByZWFsbHkgYSBzaW5rICh3aGVuIGl0IGhhcyBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAocmVtb3ZlX2Zyb21fcXVldWUpLCAoY2xlYXJfcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCk6CgkgIEZpeCBhbm5veWluZyBidWcgaW4gdGhlIHNvcnRlZCBpdGVyYXRvciB3aGVyZSBhIHNpbmsgdGhhdCBpcyBub3QgcmVhbGx5CgkgIGEgc2luayAod2hlbiBpdCBoYXMgZG93bnN0cmVhbSBsaW5rcykgc2NyZXdlZCB1cCB0aGUgaXRlcmF0b3IuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIFVuaXQgdGVzdCB0byB2ZXJpZnkgdGhlIGZpeC4KCjIwMDctMDgtMTYgMTA6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBBZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgbWVzc2FnZXMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBXaGVuIGludGVycnVwdGluZywgZG9uJ3QgdHJ5IHRvIHNldCBwaXBlbGluZSB0byBQQVVTRUQgdHdpY2UuCgoyMDA3LTA4LTE0IDE0OjEwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNb3ZlIEFTWU5DX1NUQVJUIG1lc3NhZ2UgcG9zdGluZyB0byB3aGVyZSBpdCBiZWxvbmdzLCBzaW1pbGFyIHRvIGFzeW5jX2RvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1vdmUgQVNZTkNfU1RBUlQgbWVzc2FnZSBwb3N0aW5nIHRvIHdoZXJlIGl0IGJlbG9uZ3MsIHNpbWlsYXIgdG8KCSAgYXN5bmNfZG9uZS4KCSAgRG9uJ3QgcG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFyZSBpbiBlcnJvci4KCSAgUG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFkZGVkIGFuIGFzeW5jIGVsZW1lbnQgdG8gYSBiaW4uCgoyMDA3LTA4LTE0IDEzOjQzOjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmRleC5jOiBGaXggaW5kZXggZW50cnkgZ2VuZXJhdGlvbiBmcm9tIHZhcmdzLiBGaXhlcyAjNDY2NTk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBpbmRleCBlbnRyeQoJICBnZW5lcmF0aW9uIGZyb20gdmFyZ3MuIEZpeGVzICM0NjY1OTUuCgoyMDA3LTA4LTE0IDEzOjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbHdheXMgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIE5PX1BSRVJPTEwgZWxlbWVudCBldmVuIGlmIGl0IGhhcyBBU1lOQyBlbGVtZW50cyBpbnNpZGUgKGluIGNhc2Ugb2YgYSBiaW4pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWx3YXlzIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBOT19QUkVST0xMIGVsZW1lbnQgZXZlbiBpZiBpdCBoYXMgQVNZTkMKCSAgZWxlbWVudHMgaW5zaWRlIChpbiBjYXNlIG9mIGEgYmluKS4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCjIwMDctMDgtMTMgMTM6MzM6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBtb3JlIG1pc3NpbmcgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBBZGQgbW9yZSBtaXNzaW5nIGRvY3MuCgoyMDA3LTA4LTEyIDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBZGQgU2luY2UgdGFnIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIFNpbmNlIHRhZyB0byBkb2NzLgoKMjAwNy0wOC0xMiAxNjo0MDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBmdW5jdGlvbiB0byBnZXQgdWludCBmcm9tIGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIGdldCB1aW50IGZyb20gYSBzdHJ1Y3R1cmUuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfdWludCgpCgoyMDA3LTA4LTEyIDE2OjM4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHByb3BlciBjaGVjayBmb3Igc2ltcGxlIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksCgkgIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBGaXggcHJvcGVyIGNoZWNrIGZvciBzaW1wbGUgY2Fwcy4KCjIwMDctMDgtMTAgMTc6MzU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBSZW1vdmUgY3J1ZnQgYW5kIGRvIHNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIGNydWZ0IGFuZCBkbyBzb21lIGNsZWFudXBzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgUHJlcGFyZSBmb3IgY29tbWluZyBndGtkb2MgZmVhdHVyZXMgKHJlYmFzZSBhZ2FpbnN0IG9ubGluZSBkb2NzKS4KCjIwMDctMDgtMTAgMTQ6NTI6NDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGggdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCB0byBkb2NzLgoJICBBbHNvIGZpeCBmb3JtYXR0aW5nIG9mIGFuIG9sZGVyIGNoYW5nZWxvZyBlbnRyeQoKMjAwNy0wOC0xMCAxNDo0MDoyNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lmg6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGgsIHdoaWNoIHdhcyBtaXNzaW5nIGZyb20gdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoLCB3aGljaCB3YXMgbWlzc2luZyBmcm9tIHRoaXMgaGVhZGVyLgoKMjAwNy0wOC0xMCAxMDozMDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOiBQcmludGYgZm9ybWF0IGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4LgoKMjAwNy0wOC0wOSAyMTo1MDoxOSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc2VuZCBhbiBhc3luY19zdGFydCBtZXNzYWdlIGR1cmluZyBkb3dud2FyZHMgc3RhdGUgY2hhbmdlIGlmIHRhcmdldCBzdGF0ZSBpcyBsZXNzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIERvbid0IHNlbmQgYW4gYXN5bmNfc3RhcnQgbWVzc2FnZSBkdXJpbmcgZG93bndhcmRzIHN0YXRlIGNoYW5nZSBpZiB0YXJnZXQKCSAgc3RhdGUgaXMgbGVzcyB0aGFuIFJFQURZCgoyMDA3LTA4LTA5IDEwOjUwOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogR2Fib3IgS2VsZW1lbiA8a2VsZW1lbmdAZ25vbWUuaHU+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9odS5wbzoKCSAgQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wOC0wOSAxMDo0ODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9maS5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby91ay5wbzoKCSAgVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgoyMDA3LTA4LTA3IDE2OjA2OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06IERpc3QgZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBEaXN0IGdzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmgKCjIwMDctMDgtMDcgMTU6MTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOiBEb24ndCByZWdpc3RlciB0aGUgZW51bSB0eXBlIGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUoKSBpbiB0aGUgLnR5cGVzIGZpbGUgLSBvbmx5IEdPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgRG9uJ3QgcmVnaXN0ZXIgdGhlIGVudW0gdHlwZSBnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKCkgaW4gdGhlCgkgIC50eXBlcyBmaWxlIC0gb25seSBHT2JqZWN0IGRlcml2ZWQgdHlwZXMgYmVsb25nLgoKMjAwNy0wOC0wNyAxNDowNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogUmVtb3ZlIGNvbW1hIGZyb20gbGFzdCBlbGVtZW50IGluIGVudW0gdG8gYXZvaWQgY29tcGlsZSBlcnJvcnMgd2hlbiB1c2luZyAtcGVuZGFudGljLiBGaXhlcyAjNDY0MzY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxhcmVuZXZpZXIgYXQgZmRuIGRvdCBmcj4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFJlbW92ZSBjb21tYSBmcm9tIGxhc3QgZWxlbWVudCBpbiBlbnVtIHRvIGF2b2lkIGNvbXBpbGUgZXJyb3JzIHdoZW4KCSAgdXNpbmcgLXBlbmRhbnRpYy4gRml4ZXMgIzQ2NDM2Ni4KCjIwMDctMDgtMDcgMDk6NTY6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgc29tZSBtb3JlIFRPRE8gaXRlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBUT0RPIGl0ZW1zCgkgICogZ3N0L2dzdGJpbi5jOiAoZmluZF9tZXNzYWdlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgT3B0aW1pemUgdHJpdmlhbCBpbnRlcnNlY3Rpb24gY2FzZSBiZXR3ZWVuIGlkZW50aWNhbCBjYXBzIHBvaW50ZXJzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWlzdGFrZXMuCgoyMDA3LTA4LTA1IDE0OjQ4OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBVcGRhdGUgUE9URklMRVMuIEZpeGVzICM0NjE1OTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIFVwZGF0ZSBQT1RGSUxFUy4gRml4ZXMgIzQ2MTU5OS4KCjIwMDctMDgtMDMgMTk6MjU6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogRml4IGNvbmZ1c2luZyB0eXBvIGluIGRlYnVnIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggY29uZnVzaW5nIHR5cG8gaW4gZGVidWcgb3V0cHV0LgoKMjAwNy0wOC0wMyAxNTo0NzoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogQWRkIEdzdExGT0NvbnRyb2xTb3VyY2UsIGEgY29udHJvbCBzb3VyY2UgdGhhdCBnaXZlcyB2YWx1ZXMgZm9yIHNwZWNpZmljIHRpbWVzdGFtcHMgYmFzZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6IChfY2FsY3VsYXRlX3BvcyksCgkgIChnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfcmVzZXQpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9zZXRfd2F2ZWZvcm0pLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9iaW5kKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBBZGQgR3N0TEZPQ29udHJvbFNvdXJjZSwgYSBjb250cm9sIHNvdXJjZSB0aGF0IGdpdmVzIHZhbHVlcwoJICBmb3Igc3BlY2lmaWMgdGltZXN0YW1wcyBiYXNlZCBvbiBzZXZlcmFsIHBlcmlvZGljIHdhdmVmb3Jtcy4KCSAgRml4ZXMgIzQ1OTcxNy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cyBmb3IgR3N0TEZPQ29udHJvbFNvdXJjZS4KCjIwMDctMDgtMDMgMTQ6NDA6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE0ID09PQoKMjAwNy0wOC0wMyAxNDozOToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTQKCjIwMDctMDgtMDMgMTM6MjA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDgtMDIgMTE6NTE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBNYWtlIHN0cmluZ3MgcGFzc2VkIHRvIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGNvbnN0YW50LCBhcyB0aGV5IHNob3VsZCBiZSAoIzQ2Mjc1MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1ha2Ugc3RyaW5ncyBwYXNzZWQgdG8gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCSAgY29uc3RhbnQsIGFzIHRoZXkgc2hvdWxkIGJlICgjNDYyNzUyKS4KCjIwMDctMDgtMDIgMTE6MTU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGZvcmdldCBhYm91dCB0aGUgZmFjdCB0aGF0IHNvbWUgZWxlbWVudCB3ZW50IEFTWU5DIGV2ZW4gYWZ0ZXIgYSByZXN5bmMuIFRoaXMgbWFrZXMgdXMgcG9zdCB0aGUgQVMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRG9uJ3QgZm9yZ2V0IGFib3V0IHRoZSBmYWN0IHRoYXQgc29tZSBlbGVtZW50IHdlbnQgQVNZTkMgZXZlbiBhZnRlciBhCgkgIHJlc3luYy4gVGhpcyBtYWtlcyB1cyBwb3N0IHRoZSBBU1lOQ19ET05FIG1lc3NhZ2UgY29ycmVjdGx5LgoJICBGaXhlcyAjNDYyNTU4LgoKMjAwNy0wNy0zMSAxMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogV2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmVhdHVyZSBpbiB0aGUgcmVnaXN0cnksIG1ha2Ugc3VyZSB0byBjb250aW51ZSBob2xkaW5nIGEgcmVmZXJlbmNlIHVudGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOgoJICBXaGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBmZWF0dXJlIGluIHRoZSByZWdpc3RyeSwgbWFrZSBzdXJlIHRvCgkgIGNvbnRpbnVlIGhvbGRpbmcgYSByZWZlcmVuY2UgdW50aWwgd2UndmUgcmVwbGFjZWQgdGhlIG5hbWUgc3RyaW5nCgkgIHdpdGhpbiBvdXIgZmVhdHVyZSBoYXNoIHRhYmxlLiBNYWtlIHN1cmUgdG8gdXNlIGdfaGFzaF90YWJsZV9yZXBsYWNlCgkgIGluc3RlYWQgb2YgZ19oYXNoX3RhYmxlX2luc2VydCB0byBlbnN1cmUgdGhlIG5ldyBuYW1lIHN0cmluZyBpcyB1c2VkCgkgIGFzIGEga2V5IGluc3RlYWQgb2YgdGhlIG9sZCBvbmUgdGhhdCB3ZSdyZSBhYm91dCB0byBmcmVlLgoJICBGaXhlczogIzQ2MjA4NQoKMjAwNy0wNy0zMSAxMDoxMDoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yayBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfc2V0X25hbWUpOgoJICBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yawoJICBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGVtIGlzIChpZiBhbnkpLgoKMjAwNy0wNy0yNiAxNTo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfTElDRU5TRV9VUkkgYW5kIEdTVF9UQUdfQ09QWVJJR0hUX1VSSSAoIzQ1MTkzOSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0xJQ0VOU0VfVVJJIGFuZCBHU1RfVEFHX0NPUFlSSUdIVF9VUkkgKCM0NTE5MzkpLgoKMjAwNy0wNy0yNiAxNDowNToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEluY2x1ZGUgb3VyIGJ1aWxkLXByZWZpeCBsaWJzIGFuZCBpbmNsdWRlcyBiZWZvcmUgdGhlIGdlbmVyaWMgb25lcyB0byBhdm9pZCBsaW5raW5nIGFnYWluc3QgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBJbmNsdWRlIG91ciBidWlsZC1wcmVmaXggbGlicyBhbmQgaW5jbHVkZXMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZXMgdG8KCSAgYXZvaWQgbGlua2luZyBhZ2FpbnN0IHRoZSBpbnN0YWxsZWQgbGlicyB3aGVuIHdlIHdhbnQgdGhlIGJ1aWxkLXRyZWUKCSAgb25lcy4KCjIwMDctMDctMjYgMDg6NDY6NDYgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQgaWYgcGVvcGxlIHRyeSB0byBidWkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQKCSAgaWYgcGVvcGxlIHRyeSB0byBidWlsZCBvciBpbnN0YWxsIHRoZSBleGFtcGxlIGZyb20gdGhlIHBsdWdpbgoJICB0ZW1wbGF0ZSBhZ2FpbnN0IGEgR1N0cmVhbWVyIGZyb20gcGFja2FnZSB1c2luZyB0aGUgY29uZmlndXJlCgkgIGRlZmF1bHRzLgoKMjAwNy0wNy0yNSAyMjoyOTo1NyArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46IERvY3VtZW50IC0tcHJpbnQtYWxsIGFuZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBjb21tYW5kIGxpbmUgb3B0aW9ucyBpbiBtYW4gcGFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICBEb2N1bWVudCAtLXByaW50LWFsbCBhbmQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gY29tbWFuZAoJICBsaW5lIG9wdGlvbnMgaW4gbWFuIHBhZ2UuCgoyMDA3LTA3LTI1IDE4OjQ2OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBhcGkgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgYXBpIGZ1bmN0aW9uLgoKMjAwNy0wNy0yNSAxODozNzoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS4qOiBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UoKQoJICBBZGRlZCBtZXRob2QgdG8gY2hlY2sgaWYgYW4gZWxlbWVudCBmYWN0b3J5IGltcGxlbWVudHMgYSBuYW1lZAoJICBpbnRlcmZhY2UuCgoyMDA3LTA3LTI1IDEzOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbm90aGVyIGNvbmRpdGlvbmFsIGRvYyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQW5vdGhlciBjb25kaXRpb25hbCBkb2MgY2hlY2suCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgIEFQSS1kb2MgZml4ZXMuCgoyMDA3LTA3LTI0IDEzOjQ0OjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCjIwMDctMDctMjQgMTM6Mzg6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogQ2xlYW51cCB0aGUgdHlwZWZpbmRoZWxwZXIgY29kZSBhbmQgYWRkIHByaXZhdGUgZG9jIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoaGVscGVyX2ZpbmRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLCAoYnVmX2hlbHBlcl9maW5kX3N1Z2dlc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcik6CgkgIENsZWFudXAgdGhlIHR5cGVmaW5kaGVscGVyIGNvZGUgYW5kIGFkZCBwcml2YXRlIGRvYyBjb21tZW50cy4KCjIwMDctMDctMjQgMTI6MzI6MzEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZSBhZGRpdGlvbmFsIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9zaXplKSwgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZQoJICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgoJICBGaXhlcyAjNDQ5MTk3CgoyMDA3LTA3LTI0IDExOjMxOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzIHRoYXQgcmVjb21tZW5lZCB3cm9uZyBmdW5jdGlvbiB0byB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgRml4IGRvY3MgdGhhdCByZWNvbW1lbmVkIHdyb25nIGZ1bmN0aW9uIHRvIHVzZS4KCjIwMDctMDctMjMgMTM6MDM6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9mZWF0dXJlcyk6CgkgIEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCjIwMDctMDctMjMgMTE6NDI6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBTcGVlZCB1cCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKCkgYnkgdXNpbmcgYSBoYXNobWFwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9pbml0KSwgKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgU3BlZWQgdXAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCgpIGJ5IHVzaW5nIGEgaGFzaG1hcC4KCSAgRml4ZXMgIzQ1OTUwMS4KCjIwMDctMDctMjMgMTA6Mzk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IEF2b2lkIGRvdWJsZSBtZW1vcnkgdXNhZ2UgZm9yIHBsdWdpbmZlYXR1cmUgbmFtZXMuIEZpeGVzICM0NTk0NjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX3NldF9uYW1lKToKCSAgQXZvaWQgZG91YmxlIG1lbW9yeSB1c2FnZSBmb3IgcGx1Z2luZmVhdHVyZSBuYW1lcy4gRml4ZXMgIzQ1OTQ2Ni4KCjIwMDctMDctMjIgMTg6MjY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IFNtYWxsIGFkZGl0aW9uIHRvIEdTVF9GTE9XX0lTX0ZBVEFMKCkgZG9jczogbWVudGlvbiB0aGF0IGVsZW1lbnRzIGRyaXZpbmcgdGhlIHBpcGVsaW5lIG1heSBuZWVkIHRvIGV4cGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBTbWFsbCBhZGRpdGlvbiB0byBHU1RfRkxPV19JU19GQVRBTCgpIGRvY3M6IG1lbnRpb24gdGhhdCBlbGVtZW50cwoJICBkcml2aW5nIHRoZSBwaXBlbGluZSBtYXkgbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIGZvciBOT1RfTElOS0VEIGFzCgkgIHdlbGwsIHNpbmNlIElTX0ZBVEFMIGRvZXNuJ3QgY292ZXIgdGhhdC4KCjIwMDctMDctMjIgMTg6MTY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoKMjAwNy0wNy0yMiAxMjoxODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCjIwMDctMDctMjEgMjE6MjA6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFdoZW4gbGluZWFybHkgaW50ZXJwb2xhdGluZyBpbnRlZ2VyIHR5cGVzLCByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgYnkgYWRkaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBXaGVuIGxpbmVhcmx5IGludGVycG9sYXRpbmcgaW50ZWdlciB0eXBlcywgcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50CgkgIGJ5IGFkZGluZyAwLjUuIERvbid0IGRvIGl0IGZvciBmbG9hdC9kb3VibGUgdHlwZXMuCgkgIEZpeGVzIHRoZSBmYWlsaW5nIGNvbnRyb2xsZXIgdGVzdCBvbiBteSBtYWNoaW5lLCB3aGljaCBpcyBzb21laG93CgkgIHJvdW5kaW5nIGRpZmZlcmVudGx5IHRoYW4gb24gdGhlIGJ1aWxkYm90cy4KCjIwMDctMDctMjAgMDc6MzY6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBCZXR0ZXIgbG9nIHBhcnNpbmcgKGNhdGVnb3JpZXMgY2FuIGhhdmUgLSkuIEFkanVzdCB0ZXh0IHZzLiBsaW5lcywgc28gdGhhdCB0aGV5IHNwYW4gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgQmV0dGVyIGxvZyBwYXJzaW5nIChjYXRlZ29yaWVzIGNhbiBoYXZlIC0pLiBBZGp1c3QgdGV4dCB2cy4gbGluZXMsIHNvCgkgIHRoYXQgdGhleSBzcGFuIHRoZSBzYW1lIHktcmFuZ2UuCgoyMDA3LTA3LTIwIDA3OjI2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogU2F2ZSBteSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9hdWRpb2Jhc2VjbGFzc2VzLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgU2F2ZSBteSB0aG91Z2h0cy4KCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgQWRkIG5vdGUgdG8gdXNlIGdfYXNzZXJ0IHR5cGUgbWFjcm9zLgoKMjAwNy0wNy0yMCAwNzowOToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGxpYm0gY2hlY2sgYXMgd2UgdXNlIGluIGZvciBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFkZCBsaWJtIGNoZWNrIGFzIHdlIHVzZSBpbiBmb3IgcGx1Z2lucy4KCjIwMDctMDctMTggMTQ6MzE6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDaGVjayB0aGF0IHRoZSBzdGF0ZV9jb29raWUgaGFzbid0IGNoYW5nZWQgc2luY2UgdGhlIGNvbnRpbnVlX2Z1bmMgd2FzIHNjaGVkdWxlZC4gQXZvaWRzIHByb2JsZW1zIHdoZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIENoZWNrIHRoYXQgdGhlIHN0YXRlX2Nvb2tpZSBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgY29udGludWVfZnVuYwoJICB3YXMgc2NoZWR1bGVkLiBBdm9pZHMgcHJvYmxlbXMgd2hlcmUgdGhlIHN0YXRlIGNoYW5nZXMgYmFjayB0bwoJICBzb21ldGhpbmcgaXQgc2hvdWxkbid0IGJlIGJlY2F1c2UgaXQgd2FzIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoKMjAwNy0wNy0xNyAwOTo0NDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2NvbnN0X3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgoyMDA3LTA3LTE2IDE2OjQ0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgoyMDA3LTA3LTE2IDE2OjA0OjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogVXNlIGEgR1N0YXRpY011dGV4IHRvIHByb3RlY3QgYWxsIGNhc2VzIHdoZXJlIGxpYmNoZWNrIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChtcV9kdW1teXBhZF9ldmVudCksIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBVc2UgYSBHU3RhdGljTXV0ZXggdG8gcHJvdGVjdCBhbGwgY2FzZXMgd2hlcmUgbGliY2hlY2sKCSAgZmFpbF9pZi9mYWlsX3VubGVzcyBtYWNyb3MgbWlnaHQgYmUgY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcwoJICBzaW11bHRhbmVvdXNseSB0byBhdm9pZCBlcnJvcnMgbGlrZToKCSAgImNoZWNrX3BhY2suYzoxMDc6IDotMTA4MTcyNTQwMDpCYWQgbWVzc2FnZSB0eXBlIGFyZyIKCjIwMDctMDctMTYgMTU6MTk6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIHRoZSBOVUxMIHN0YXRlIGJlZm9yZSBkcm9wcGluZyBvdXIgZmluYWwgcmVmZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIHdlIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byB0aGUgTlVMTCBzdGF0ZSBiZWZvcmUKCSAgZHJvcHBpbmcgb3VyIGZpbmFsIHJlZmVyZW5jZS4KCjIwMDctMDctMTYgMTQ6NTU6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IE1ha2UgdGhlIHRlZSBzdHJlc3MtdGVzdCBhIGxpdHRsZSBsZXNzIHN0cmVzc2Z1bCBzbyBpdCBkb2Vzbid0IGp1c3QgdGltZSBvdXQgb24gc2xvdy1tYWNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSB0ZWUgc3RyZXNzLXRlc3QgYSBsaXR0bGUgbGVzcyBzdHJlc3NmdWwgc28gaXQgZG9lc24ndCBqdXN0CgkgIHRpbWUgb3V0IG9uIHNsb3ctbWFjaGluZXMsIGFuZCByZW1vdmUgYSBzbWFsbCByYWNlIHdoZW4gaXQncyBzdGFydGluZwoJICB1cCBieSBhZGRpbmcgYSBnZXRfc3RhdGUoKSBjYWxsLgoKMjAwNy0wNy0xNiAxMjozNjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBBdm9pZCByZWFkaW5nIHJlZ2lzdHJ5IHR3aWNlIG9uIHN0YXJ0dXAuIEZpeGVzICM0NTczMjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQXZvaWQgcmVhZGluZyByZWdpc3RyeSB0d2ljZSBvbiBzdGFydHVwLiBGaXhlcyAjNDU3MzIyLgoKMjAwNy0wNy0xMyAxNDoxMToyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwa2djb25maWcvOiBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0IGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0CgkgIGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXJseSBpZiBsaWJjaGVjayBpcyBpbnN0YWxsZWQKCSAgaW50byBzb21lIG90aGVyIHByZWZpeC4KCjIwMDctMDctMTMgMTM6NDk6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgdGhlIHBrZy1jb25maWcgY2hlY2sgZm9yIGxpYmNoZWNrLCBzaW5jZSBpdCBwdWxscyBpbiB0aGUgd3Jvbmcgbm9uLVBJQyBsaWJjaGVjay5hIG9uIFVidW50dSBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0IHRoZSBwa2ctY29uZmlnIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2UgaXQgcHVsbHMgaW4gdGhlCgkgIHdyb25nIG5vbi1QSUMgbGliY2hlY2suYSBvbiBVYnVudHUgYW5kIHByb2JhYmx5IEZlZG9yYSB0b28uIFdlIG5lZWQKCSAgYSBwcm9wZXIgc29sdXRpb24sIGVpdGhlciBmcm9tIHRoZSBjaGVjayBwcm9qZWN0LCBvciBzb21ldGhpbmcgZWxzZS4KCjIwMDctMDctMTIgMTE6MTA6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCjIwMDctMDctMTAgMjA6MTA6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBkb2Mgc3ludGF4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBGaXggZG9jIHN5bnRheC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIGRlcHJlY2F0aW9uIGd1YXJkcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvbid0IGRvY3VtZW50IG9iamVjdCAodGhpcyBpcyBpbXBsaWNpdGx5IHByaXZhdGUpLgoKMjAwNy0wNy0wOCAxNDoxMTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhCgkgIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIHN0cmluZyB0eXBlLCBvdGhlcndpc2UgdGhpbmdzIGxpa2UKCSAgYXVkaW90ZXN0c3JjICEgYXVkaW8veC1yYXctaW50LHNpZ25lZD10cnVlICEgZmFrZXNpbmsgd29uJ3Qgd29yaywKCSAgYmVjYXVzZSB0aGUgZmlsdGVyY2FwcyBlbmQgdXAgaGF2aW5nIGEgc2lnbmVkPShzdHJpbmcpdHJ1ZSBmaWVsZCwKCSAgd2hpY2ggY2F1c2VzIHByb2JsZW1zIGxhdGVyIHdoZW4gaW50ZXJzZWN0aW9uIGNhcHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDA3LTA3LTA2IDIxOjUwOjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZSBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2FkZF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX2ZpbmRfY29udHJvbGxlZF9wcm9wZXJ0eSksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ldyksIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllcyksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHlfZGlzYWJsZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Rpc2FibGVkKSwgKGdzdF9jb250cm9sbGVyX3NldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfY29udHJvbF9zb3VyY2UpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfYWxsKSwgKGdzdF9jb250cm9sbGVyX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KSwgKGdzdF9jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9nZXRfdmFsdWUpLAoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2dldF92YWx1ZV9hcnJheSksIChnc3RfY29udHJvbF9zb3VyY2VfYmluZCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9maXJzdF92YWx1ZSksCgkgIChfaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSksCgkgIChfaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9yZXNldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9iaW5kKSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLCAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXRfYWxsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9hbGwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2NvdW50KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZQoJICBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3ZpZGluZyBhY3R1YWwgdmFsdWVzIGZvciB0aW1lc3RhbXBzLgoJICBJbXBsZW1lbnQgYSBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlIGFuZCB1c2UgdGhpcyBmb3IgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSwgZGVwcmVjYXRlIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdyBoYW5kbGVkCgkgIGJ5IEdzdENvbnRyb2xTb3VyY2Ugb3IgR3N0SW50ZXJwb2xhdGlvbkNvbnRyb2xTb3VyY2UuCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgY29udHJvbGxlciBjb21wbGV0ZWx5IG9yIG9ubHkgZm9yCgkgIHNwZWNpZmljIHByb3BlcnRpZXMuIEZpeGVzICM0NTA3MTEuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgdG8gdGhlIGRvY3MuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgUG9ydCB1bml0IHRlc3QgYW5kIGV4YW1wbGUgdG8gdGhlIG5ldyBBUEkgYW5kIGFkZCBzb21lIG5ldwoJICB1bml0IHRlc3RzLgoKMjAwNy0wNy0wNSAwOTowNjowMiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBJbXBsZW1lbnQgbm9uLWRlZmF1bHQgR3N0UGFkSW50TGlua0Z1bmN0aW9uIGZvciBtdWx0aXF1ZXVlIHBhZHMgc28gdGhhdCB0aGUgcGlwZWxpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X2ludGVybmFsX2xpbmtzKSwgKGFwcGx5X2J1ZmZlciksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEltcGxlbWVudCBub24tZGVmYXVsdCBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gZm9yIG11bHRpcXVldWUgcGFkcyBzbyB0aGF0CgkgIHRoZSBwaXBlbGluZSBsYXlvdXQgY2FuIGJlIHRyYWNrZWQgY29ycmVjdGx5LiBGaXhlcyAjNDUzNzMyLgoKMjAwNy0wNy0wNSAwODo0Mjo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFNpbXBsaXR5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgU2ltcGxpdHkgLS1leHRyYS1kaXIgYXMgZ3RrZG9jIHNjYW5zIHJlY3Vyc2l2ZWx5LgoKMjAwNy0wNy0wMyAxNzowMTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbiBzaHV0dGluZyBkb3duLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbgoJICBzaHV0dGluZyBkb3duLgoKMjAwNy0wNy0wMyAxNjoyNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEJlIGEgbG90IHNtYXJ0ZXIgd2hlbiBkZWNpZGluZyB3aGF0IHNyY3BhZCB0byB1c2UgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MuIEFsc28gaGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2ZpbmRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF90ZWVfZG9fcHVzaCksIChjbGVhcl9wYWRzKSwgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfdGVlX2NoYWluKToKCSAgQmUgYSBsb3Qgc21hcnRlciB3aGVuIGRlY2lkaW5nIHdoYXQgc3JjcGFkIHRvIHVzZSBmb3IgcHJveHlpbmcKCSAgdGhlIGJ1ZmZlcl9hbGxvYy4gQWxzbyBoYW5kbGUgcGFkIGFkZGVkL3JlbW92ZWQgd2hlbiBkb2luZyBzby4KCSAgRml4ZXMgIzM1Nzk1OS4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IHBhZHMgd2UgYWxyZWFkeSBwdXNoZWQgb24gaW4gY2FzZSB3ZSBoYXZlIHBhZHMKCSAgYWRkZWQvcmVtb3ZlZCB3aGlsZSBwdXNoaW5nLiBGaXhlcyAjMzc0NjM5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChoYW5kb2ZmKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRlZV9zdWl0ZSk6CgkgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcGFkIHJlc3luYy4KCjIwMDctMDctMDEgMjE6MzE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vbmwucG86CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wNy0wMSAyMTozMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIG5ldyBGaW5uaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRpb24gYnk6IFRvbW1pIFZhaW5pa2FpbmVuIDxUb21taS5WYWluaWthaW5lbkBpa2kuZmk+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9maS5wbzoKCSAgQWRkZWQgbmV3IEZpbm5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA2LTI4IDExOjI1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZmlndXJpbmcgb3V0IHdoZW4gYSBxdWV1ZSBpcyBmaWxsZWQsIHVzZSBvdXIgaW50ZXJuYWwgdGltZSBlc3RpbWF0ZSBiYXNlZCBvbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKToKCSAgV2hlbiBmaWd1cmluZyBvdXQgd2hlbiBhIHF1ZXVlIGlzIGZpbGxlZCwgdXNlIG91ciBpbnRlcm5hbCB0aW1lIGVzdGltYXRlCgkgIGJhc2VkIG9uIHNlZ21lbnRzLCBqdXN0IGxpa2UgY2hlY2tfZnVsbCBkb2VzLgoKMjAwNy0wNi0yNyAxMTo0Nzo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIDQzMDY4MiBjbG9zZWQgYnkgcHJldmlvdXMgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgNDMwNjgyIGNsb3NlZCBieSBwcmV2aW91cyBjb21taXQuCgoyMDA3LTA2LTI3IDExOjQzOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgoyMDA3LTA2LTI3IDExOjI0OjA4ICswMDAwICBUaW0gQW5ndXMgPHRpbUBuZ3VzLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGltIEFuZ3VzIDx0aW0gYXQgbmd1cyBkb3QgbmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIEZpeCBkb2N1bWVudGF0aW9uIHRvIGNsYXJpZnkgdGhpcyBiZWhhdmlvdXIuIEZpeGVzICM0NDk0MTQuCgoyMDA3LTA2LTI3IDEwOjEyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgZW1wdHkgaW5zdGFuY2VfaW5pdCgpIGZ1bmN0aW9ucyB0byBzYXZlIHJlbG9jcyBhbmQgbGVzc2VuIHRoZSBub2lzZS4gUmVtb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIHByb3RvdHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9pbml0KToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfaW5pdCk6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2Jhc2VfaW5pdCk6CgkgIFJlbW92ZSBlbXB0eSBpbnN0YW5jZV9pbml0KCkgZnVuY3Rpb25zIHRvIHNhdmUgcmVsb2NzIGFuZCBsZXNzZW4gdGhlCgkgIG5vaXNlLiBSZW1vdmUgc29tZSBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlcyB0aGF0IGFyZSBkb3VibGVkIGJ5CgkgIEdfREVGSU5FX1RZUEUuCgoyMDA3LTA2LTI3IDA5OjM0OjAxICswMDAwICDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZUBkZWVwdW5kZXIub3JnPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBwZWVyIGFuZCBkaXJlY3Rpb24gaW4gdGhlIFhNTCBzZXJpYWxpc2F0aW9uIG9mIGdob3N0cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZSBhdCBkZWVwdW5kZXIgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2F2ZV90aHlzZWxmKToKCSAgQWRkIHBlZXIgYW5kIGRpcmVjdGlvbiBpbiB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgZ2hvc3RwYWRzLgoJICBGaXhlcyAjNDQ5MjI2LgoKMjAwNy0wNi0yNiAxNjoyNDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBQcmVzZXJ2ZSB1c2VmdWwgaW5mb3JtYXRpb24sIHRoYW5rcyBUaW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUHJlc2VydmUgdXNlZnVsIGluZm9ybWF0aW9uLCB0aGFua3MgVGltLgoKMjAwNy0wNi0yNiAxNDo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogVGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHdoZW4gdXBkYXRpbmcgdGhlIGZpbGwgbGV2ZWwgc28gd2UgZG9uJ3QgZ2V0IGNvbmZ1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfbG9vcCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksICh3YWtlX3VwX25leHRfbm9uX2xpbmtlZCksCgkgIChjb21wdXRlX2hpZ2hfaWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBUYWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgd2hlbiB1cGRhdGluZyB0aGUgZmlsbCBsZXZlbCBzbyB3ZSBkb24ndCBnZXQKCSAgY29uZnVzZWQuCgkgIEFmdGVyIGFwcGx5aW5nIGEgYnVmZmVyIG9yIGV2ZW50IG9uIHRoZSBzcmMgcGFkIHNlZ21lbnQsIG1ha2Ugc3VyZSB0bwoJICBjYWxsIGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKCkgdG8gZ2V0IHRoZSBkYXRhIHF1ZXVlIHRvIHVuYmxvY2sKCSAgYW5kIGNoZWNrIHRoZSBmaWxsZWQgc3RhdGUgYWdhaW4uCgkgIFJld29yayB0aGUgbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgc28gdGhlIGxvZ2ljIGlzIHRoYXQgbm90LWxpbmtlZAoJICBwYWRzIGNhbiBwdXNoIGFzIGZhc3QgYXMgdGhleSBsaWtlLCBidXQgb25seSBzbyB0aGV5IG5ldmVyIGdldAoJICBhaGVhZCBvZiBhbnkgbGlua2VkIHBhZHMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfc2lua3BhZF90b19zcmNwYWQpLAoJICAobXFfZHVtbXlwYWRfZ2V0Y2FwcyksIChtcV9kdW1teXBhZF9jaGFpbiksIChtcV9kdW1teXBhZF9ldmVudCksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpLCAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBhIHRlc3QgdG8gY2hlY2sgdGhhdCBub3QtbGlua2VkIHBhZHMgYWx3YXlzIHN0YXkgYmVoaW5kCgkgIGxpbmtlZCBwYWRzLgoKMjAwNy0wNi0yNiAxMTo1NzoyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoKMjAwNy0wNi0yNiAwODoyNjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IE1pY3Jvb3B0aW1pemF0aW9uIHRoYXQgc2F2ZXMgc3R1bm5pbmcgODAgYnl0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoX19nc3RfZWxlbWVudF9kZXRhaWxzX2NsZWFyKToKCSAgTWljcm9vcHRpbWl6YXRpb24gdGhhdCBzYXZlcyBzdHVubmluZyA4MCBieXRlcy4KCjIwMDctMDYtMjUgMTI6MzU6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgoyMDA3LTA2LTIzIDIyOjU2OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL2l0LnBvOiBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2l0LnBvOgoJICBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgoyMDA3LTA2LTIzIDExOjE5OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZml4IHdpbjMyIGFyY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB3aW4zMiBhcmNoCgoyMDA3LTA2LTIzIDExOjE4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIDgwIGxpbmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA4MCBsaW5lIGZpeAoKMjAwNy0wNi0yMyAxMToxNToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSBWaWV0bmFtZXNlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGUgVmlldG5hbWVzZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTIxIDIyOjM3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZW1vdmUgdW51c2VkIHNpZ25hbCBlbnVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFJlbW92ZSB1bnVzZWQgc2lnbmFsIGVudW0uCgoyMDA3LTA2LTIxIDE4OjAwOjU4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgdXBkYXRlIE1BSU5UQUlORVJTIGZpbGUgdG8gcmVmbGVjdCBjdXJyZW50IHJlYWxpdGllcyBiZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBNQUlOVEFJTkVSUyBmaWxlIHRvIHJlZmxlY3QgY3VycmVudCByZWFsaXRpZXMgYmV0dGVyCgoyMDA3LTA2LTIxIDE2OjM5OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQVBJIGtleXdvcmQKCSAgaW4gdGhlIENoYW5nZUxvZy4KCjIwMDctMDYtMjEgMTQ6MzU6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKToKCSAgRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBVc2UgSVNfRklMTEVEIGZvciBjaGVja2luZyB2aXNpYmxlIGl0ZW1zLgoJICBTaWduYWwgb3ZlcnJ1biBpZiBtdWx0aXBsZSBxdWV1ZXMgb3ZlcnJ1bi4KCSAgQWRkIGV4dHJhIGRlYnVnIG91dHB1dC4KCSAgUGF0Y2ggYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoyMDA3LTA2LTIxIDE0OjI5OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBTYXZpbmcgcmVsb2NhdGlvbnMgZm9yIEdUeXBlSW5mbyBhbmQgR3N0RWxlbWVudERldGFpbHMuIEZpeGVzICM0Mzc0NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIFNhdmluZyByZWxvY2F0aW9ucyBmb3IgR1R5cGVJbmZvIGFuZCBHc3RFbGVtZW50RGV0YWlscy4gRml4ZXMgIzQzNzQ1Ny4KCjIwMDctMDYtMjEgMDk6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGluIGlhbmEub3JnIFVSSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggdHlwbyBpbiBpYW5hLm9yZyBVUkkuCgoyMDA3LTA2LTE5IDIxOjU4OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBFbmFibGUgcHVsbC1tb2RlIHRlc3RzIG5vdyB0aGF0CgkgIGJhc2VzaW5rIGhhcyBiZWVuIGZpeGVkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKToKCSAgQ2hhbmdlZCBmcm9tIGdzdF9iYXNlX3NpbmtfaXNfcHJlcm9sbGVkLCByZXZlcnNpbmcgdGhlIHNlbnNlIG9mCgkgIHRoZSByZXR1cm4gdmFsdWUuIFJldHVybnMgRkFMU0UgYWxzbyBpZiB0aGUgc2luayBpcyBpbiBwdWxsIG1vZGUsCgkgIGluIHdoaWNoIGNhc2UgaXQgbmVlZHMgbm8gcHJlcm9sbC4KCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnksIGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogVXBkYXRlIGZvcgoJICBuZWVkc19wcmVyb2xsIGNoYW5nZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogQWRkIGEgY2FzZSBmb3IgUkVBRFlfVE9fUEFVU0VEIGFmdGVyCgkgIGNoYWluaW5nIHVwLCBpbiB3aGljaCB3ZSByZXR1cm4gU1VDQ0VTUyBkaXJlY3RseSBpZiB3ZSBhY3RpdmF0ZWQKCSAgaW4gcHVsbCBtb2RlIGluc3RlYWQgb2YgQVNZTkMuIEludm9sdmVzIGNvdW50ZXJpbmcgYW4gYXN5bmNfc3RhcnQKCSAgbWVzc2FnZSBzZW50IGJlZm9yZSBjaGFpbmluZyB1cDsgbm90IHN1cmUgaWYgdGhpcyBpcyBjb3JyZWN0LCBpbgoJICBhbiBpZGVhbCB3b3JsZCB3ZSBvbmx5IHNlbmQgYXN5bmMtc3RhcnQgd2hlbiBhY3RpdmF0aW5nIGluIHB1c2gKCSAgbW9kZS4KCjIwMDctMDYtMTkgMjE6Mjg6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBOZXcgdGVzdCwgcGFydGlhbGx5IGRpc2FibGVkIHVudGlsCgkgIGJhc2VzaW5rIGlzIGZpeGVkLgoKMjAwNy0wNi0xOSAxNjowNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggZXZlbnQgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBGaXggZXZlbnQgbGVhay4KCjIwMDctMDYtMTkgMTA6NDE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1vdmUgdGhlIGNvbW1vbiBjb2RlIGZvciBwb3N0aW5nIHN0YXRlLWNoYW5nZSBtZXNzYWdlcyBpbnRvIG9uZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTW92ZSB0aGUgY29tbW9uIGNvZGUgZm9yIHBvc3Rpbmcgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIGludG8KCSAgb25lIGZ1bmN0aW9uLgoJICBCcm9hZGNhc3QgdGhlIHN0YXRlIHNpZ25hbCBhZnRlciB3ZSBwb3N0ZWQgdGhlIG1lc3NhZ2VzLgoJICBNYXJrIHRoZSBiaW4gYXMgYnVzeSB3aGVuIGl0J3MgZG9pbmcgYSBzdGF0ZS1jaGFuZ2UuCgkgIE1ha2Ugc3VyZSBhc3luYy1zdGFydC9kb25lIG1lc3NhZ2VzIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBiaW4ncwoJICBzdGF0ZSB3aGVuIGl0J3MgYnVzeS4KCSAgQWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSwgbGV0IHRoZSBiaW4gY2hlY2sgd2hpY2ggZWxlbWVudHMgY29tcGxldGVkIHRoZQoJICBzdGF0ZSBjaGFuZ2Ugd2hpbGUgaXQgd2FzIGJ1c3kgc28gdGhhdCBpdCBjYW4gdXBkYXRlIGl0cyBzdGF0ZS4KCjIwMDctMDYtMTkgMTA6Mzg6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogQWRkIGEgbm90ZSBhYm91dCB1cGRhdGluZyB0aGUgZG9hcCBmaWxlIHRvIHRoZSByZWxlYXNlIGNoZWNrbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBBZGQgYSBub3RlIGFib3V0IHVwZGF0aW5nIHRoZSBkb2FwIGZpbGUgdG8gdGhlIHJlbGVhc2UgY2hlY2tsaXN0CgoyMDA3LTA2LTE4IDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCByZWZlcmVuY2UgdGhlIGJ1ZmZlci9ldmVudCBhZnRlciB3ZSBoYXZlIGdpdmVuIGF3YXkgb3duZXJzaGlwIGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHJlZmVyZW5jZSB0aGUgYnVmZmVyL2V2ZW50IGFmdGVyIHdlIGhhdmUgZ2l2ZW4gYXdheQoJICBvd25lcnNoaXAgaW4gdGhlIHF1ZXVlLgoKMjAwNy0wNi0xOCAxNToxNTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBVcGRhdGUgcXVldWUgc3RhdGUgX2FmdGVyXyBhZGRpbmcgdGhlIGl0ZW0gaW4gdGhlIHF1ZXVlIGJlY2F1c2UgZWxzZSB3ZSBjb3VsZCBlbmQgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgVXBkYXRlIHF1ZXVlIHN0YXRlIF9hZnRlcl8gYWRkaW5nIHRoZSBpdGVtIGluIHRoZSBxdWV1ZSBiZWNhdXNlIGVsc2Ugd2UKCSAgY291bGQgZW5kIHVwIGJlaW5nIGZ1bGwgd2l0aG91dCB0aGUgZWxlbWVudCBhZGRlZCB5ZXQuCgoyMDA3LTA2LTE4IDE1OjEyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBJbW1lZGlhdGx5IGNvbW1pdCB0aGUgdG9wbGV2ZWwgYmluIHN0YXRlIHdoZW4gcmVjZWl2aW5nIGFuIGFzeW5jLWRvbmUgbWVzc2FnZS4gVGhpcyBlbmFibGVzIHVzIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyksCgkgIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgSW1tZWRpYXRseSBjb21taXQgdGhlIHRvcGxldmVsIGJpbiBzdGF0ZSB3aGVuIHJlY2VpdmluZyBhbiBhc3luYy1kb25lCgkgIG1lc3NhZ2UuIFRoaXMgZW5hYmxlcyB1cyB0byBhdm9pZCBzcGF3bmluZyBhIHRocmVhZCB0byBjb21taXQgdGhlIHN0YXRlCgkgIGluIHNvbWUgY29tbW9uIGNhc2VzIGFuZCBpdCBhbHNvIGF2b2lkcyBzb21lIHJhY2VzLgoJICBBdm9pZCBzcGF3bmluZyBhIHN0YXRlIHRocmVhZCB3aGVuIGFkZGluZy9yZW1vdmluZyBhc3luYyBlbGVtZW50cyB0byBhCgkgIHRvcGxldmVsIGJpbi4gSW5zdGVhZCB3ZSBpbW1lZGlhdGx5IHVwZGF0ZSB0aGUgYmluIHN0YXRlLgoJICBHZXQgcmlkIG9mIGl0ZXJhdGluZyBhbGwgdGhlIGNoaWxkcmVuIHdoZW4gZ2V0dGluZyB0aGUgc3RhdGUgaW4gdGhlIGJpbgoJICBiZWNhdXNlIGl0IGlzIG5vdyBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgRml4IGJ1ZyB3aGVyZSBsb2NrZWQgZWxlbWVudHMgd291bGQgYWx3YXlzIHJldHVybiBfU1VDQ0VTUyBldmVuIGl0IHRoZXkKCSAgcmV0dXJuZWQgTk9fUFJFUk9MTCBiZWZvcmUgYmVpbmcgbG9ja2VkLgoJICBGaXggdGhlIG9yZGVyIG9mIHRoZSBzdGF0ZV9jaGFuZ2UsIGFzeW5jLXN0YXJ0L2RvbmUgbWVzc2FnZXMgdGhhdCB3YXMKCSAgc29tZXRpbWVzIGluY29ycmVjdC4KCSAgTWFyayB0aGUgc3RhdGVfZGlydHkgZmllbGQgYXMgZGVwcmVjYXRlZCwgd2UgZG9uJ3QgbmVlZCBpdCBhbnltb3JlIGFzIHdlCgkgIGFyZSBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpOgoJICBTbWFsbCBkZWJ1ZyBpbnByb3ZlbWVudHMuCgkgIFJldHVybiB0aGUgcHJldmlvdXMgZWxlbWVudCBzdGF0ZSByZXR1cm4gd2hlbiBub3RoaW5nIGlzIHBlbmRpbmcgaW5zdGVhZAoJICBvZiBibGluZGx5IHJldHVybmluZyBTVUNDRVNTLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBhZF9ibG9ja2VkX2NiKSwKCSAgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCBhIHdob2xlIGJ1bmNoIG9mIG5ldyB0ZXN0Y2FzZXMuCgoyMDA3LTA2LTE3IDE3OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTE1IDE0OjM3OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHR5cG8gaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDExOjQ5OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgoyMDA3LTA2LTE1IDExOjM1OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVzZSBHU2xpY2UgYmVjYXVzZSB3ZSBkb24ndCBkZXBlbmQgb24gPj0gMi4xMCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpOgoJICBEb24ndCB1c2UgR1NsaWNlIGJlY2F1c2Ugd2UgZG9uJ3QgZGVwZW5kIG9uID49IDIuMTAgeWV0LgoKMjAwNy0wNi0xNSAxMTowOTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgZGVidWcgcHJpbnRmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpOgoJICBSZW1vdmUgZGVidWcgcHJpbnRmLgoKMjAwNy0wNi0xNSAxMTowMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLio6IFZhcmlvdXMgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9jbGVhbnVwKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19lbXB0eSksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfZmx1c2hpbmcpLCAoZ3N0X2RhdGFfcXVldWVfcHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9wb3ApLCAoZ3N0X2RhdGFfcXVldWVfZHJvcF9oZWFkKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKSwgKGdzdF9kYXRhX3F1ZXVlX2dldF9sZXZlbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgQWRkZWQgbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgbGV2ZWxzIGFuZCB0byBpbmZvcm0gdGhlIHF1ZXVlIHRoYXQgdGhlCgkgICdmdWxsJyBsaW1pdHMgY2hhbmdlZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9zdGVhbF9vYmplY3QpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLCAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgS2VlcCB0cmFjayBvZiB0aW1lIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgoJICBydW5uaW5nX3RpbWUgb24gaW5wdXQgYW5kIG91dHB1dC4gVGhpcyBnaXZlcyBtb3JlIGFjY3VyYXRlIHJlc3VsdHMgYW5kCgkgIGNhbiBjb21wZW5zYXRlIGZvciBzZWdtZW50cyBjb3JyZWN0bHkuCgkgIE1ha2UgYSBxdWV1ZSBieSBkZWZhdWx0IG9ubHkgNSBidWZmZXJzIGRlZXAuIFdlIHdpbGwgbm93IGluY3JlYXNlIHRoZQoJICBidWZmZXIgc2l6ZSBkZXBlbmRpbmcgb24gdGhlIGZpbGxlZG5lc3Mgb2YgdGhlIG90aGVyIHF1ZXVlcy4KCSAgRmFjdG9yIG91dCBjb21tb25nIGZsdXNoIGNvZGUuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQgYWRkaXRpb25hbCByZWZjb3VudHMgdG8gYnVmZmVycyB3aGVuIHdlIGNhbiBhdm9pZAoJICBpdC4KCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gZGlmZmVyZW50bHkuCgkgIFVzZSBHU2xpY2UgZm9yIGludGVybWVkaWF0ZSBHc3RNdWx0aVF1ZXVlSXRlbXMuCgkgIEtlZXAgdHJhY2sgb2YgRU9TLgoJICBSZXNpemUgcXVldWVzIG9uIG92ZXIgYW5kIHVuZGVycnVucyBiYXNlZCBvbiBmaWxsZWQgbGV2ZWwgb2Ygb3RoZXIKCSAgcXVldWVzLgoJICBXaGVuIGNoZWNraW5nIGlmIHRoZSBxdWV1ZSBpcyBmaWxsZWQsIHByZWZlciB0byBtZWFzdXJlIGluIHRpbWUgaWYgd2UKCSAgY2FuIGFuZCBmYWxsIGJhY2sgdG8gYnl0ZXMgd2hlbiBubyB0aW1lIGlzIGtub3duLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTUgMTA6NDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogV29yayBhcm91bmQgdGhlIGJyb2tlbm5lc3Mgb2YgdGhlIGV2ZW50IHZtZXRob2QgaW4gYmFzZXRyYW5zZm9ybS4gUHJlZmVyIHRvIHJldHVybiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFdvcmsgYXJvdW5kIHRoZSBicm9rZW5uZXNzIG9mIHRoZSBldmVudCB2bWV0aG9kIGluIGJhc2V0cmFuc2Zvcm0uIFByZWZlcgoJICB0byByZXR1cm4gVFJVRSB3aGVuIHRoZSBzdWJjbGFzcyByZXR1cm5lZCBGQUxTRSAobWVhbmluZyBkb24ndCBmb3J3YXJkCgkgIHRoZSBldmVudCkuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENsYXJpZnkgdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDEwOjQzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHNldHVwX3BpcGVsaW5lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA2LTE1IDA3OjI3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoKMjAwNy0wNi0xNSAwNzowMjowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBSZW1vdmUgY3J1ZnkgY29kZS4gR09wdGlvbiBkb2VzIG5vdCBuZWVkIHRoaXMgd29ya2Fyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFJlbW92ZSBjcnVmeSBjb2RlLiBHT3B0aW9uIGRvZXMgbm90IG5lZWQgdGhpcyB3b3JrYXJvdW5kLgoKMjAwNy0wNi0xNCAyMDoyOTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgIEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTE0IDE3OjM2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KToKCSAgSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgQVNTRVJUX0NSSVRJQ0FMKCkgZXRjLiBjYW4gYmUgdXNlZCBpbiBnc3QtcGhvbm9uJ3MgdW5pdCB0ZXN0cyBhcwoJICB3ZWxsLgoKMjAwNy0wNi0xNCAxNjowNzowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYXJhbXNwZWNzLmM6IFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWxpZGF0ZSk6CgkgIFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZQoJICBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaWYgZGVidWdnaW5nIHdhcyBkaXNhYmxlZC4KCjIwMDctMDYtMTQgMTU6NTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVZ2x5ICdmaXgnIGZvciB0aGUgY29udHJvbGxlciB1bml0IHRlc3Qgb24gdGhlIHA1IGJvdDogaW4gZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGFyZSAnYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFVnbHkgJ2ZpeCcgZm9yIHRoZSBjb250cm9sbGVyIHVuaXQgdGVzdCBvbiB0aGUgcDUgYm90OiBpbgoJICBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlICdhbG1vc3QKCSAgZXF1YWwnIGJ5IGFsbG93aW5nIGEgc21hbGwgYWJzb2x1dGUgZXJyb3IsIHdoaWNoIHNob3VsZCBiZSBnb29kCgkgIGVub3VnaCBmb3Igb3VyIHVzZSBjYXNlcyAobm9ybWFsIG51bWJlcnMgYW5kIHZhbHVlcyBjbG9zZSB0byAwKS4KCSAgUHJvcGVyIGZpeGFnZSBsZWZ0IHRvIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgYWZpY2lvbmFkb3MuCgoyMDA3LTA2LTE0IDEyOjAzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgoyMDA3LTA2LTE0IDExOjU2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgYW5kIGFzc2VydF9lcXVhbHNfZmxvYXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBUEk6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBhbmQgYXNzZXJ0X2VxdWFsc19mbG9hdCgpLgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igc29tZSBvZiB0aGUgbWFjcm9zLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgbmV3bHktYWRkZWQgYXNzZXJ0cy4KCjIwMDctMDYtMTQgMTA6MzM6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdCBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLCAoZ3N0X3BhZF9wdXNoKToKCSAgU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdAoJICBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgoyMDA3LTA2LTE0IDA4OjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDogRml4IHR5cG9zLCBzcG90dGVkIGJ5IFRoaWpzIFZlcm1laXIgKCM0NDcxOTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBGaXggdHlwb3MsIHNwb3R0ZWQgYnkgVGhpanMgVmVybWVpciAoIzQ0NzE5MCkuCgoyMDA3LTA2LTEzIDE2OjE1OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6IElnbm9yZSBmaWxlIHRvIGtlZXAgdGhlIGJ1aWxkYm90cyBoYXBweQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZSB0byBrZWVwIHRoZSBidWlsZGJvdHMgaGFwcHkKCjIwMDctMDYtMTMgMTU6Mzk6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogUHVsbCBmZHNpbmsgaW50byB0aGUgZG9jcyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIFB1bGwgZmRzaW5rIGludG8gdGhlIGRvY3MgdG9vLgoKMjAwNy0wNi0xMSAwNzoxNDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFjdHVhbGx5IHVzZSB0aGUgbmV3IGZ1bmN0aW9ucyB3aXRoIG1pbi9tYXggY2hlY2tzIGZvciB0aGUgdHJpZ2dlciBhbmQgbm9uZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBBY3R1YWxseSB1c2UgdGhlIG5ldyBmdW5jdGlvbnMgd2l0aCBtaW4vbWF4IGNoZWNrcyBmb3IgdGhlIHRyaWdnZXIgYW5kCgkgIG5vbmUgaW50ZXJwb2xhdGlvbiBtb2RlcyBmb3IgZ2V0KCkgYW5kIGdldF92YWx1ZV9hcnJheSgpIGluc3RlYWQgb2YKCSAganVzdCB0aGUgbGF0dGVyLgoKMjAwNy0wNi0xMCAxMjozODoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSk6CgkgIFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIEdzdENvbnRyb2xsZXJQcm9wZXJ0eSBzdHJ1Y3QuCgoyMDA3LTA2LTA5IDE2OjU4OjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0KCSAgYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IHdoZW4gdXNpbmcgdmFsdWVzIHRoYXQgY2FuIGJlIGNvbXBhcmVkLgoJICBPcHRpbWl6ZSB0cmlnZ2VyIGludGVycG9sYXRvciBhIGJpdCBieSB0YWtpbmcgdGhlIGxhc3QgcmVxdWVzdGVkIHZhbHVlCgkgIGludG8gYWNjb3VudCBpbnN0ZWFkIG9mIGFsd2F5cyBsb29waW5nIHRocm91Z2ggdGhlIGNvbXBsZXRlIGxpc3QuCgkgIEZpeCBjb2Rpbmcgc3R5bGUgYSBiaXQsIGV2ZXJ5d2hlcmUgZWxzZSB3ZSB1c2UgInJldHVybiBmb28iIGluc3RlYWQKCSAgb2YgInJldHVybiAoZm9vKSIuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBwcm90ZWN0aW9uIGFnYWluc3QgdG9vIGxhcmdlIG9yIHRvbyBzbWFsbAoJICB2YWx1ZXMuCgoyMDA3LTA2LTA4IDIxOjA4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYWJvdXQgdGhlIGZ1dHVyZSBvZiB0aGUgY29udHJvbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6CgkgIEFkZCBzb21lIHRob3VnaHRzIGFib3V0IHRoZSBmdXR1cmUgb2YgdGhlIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTA4IDExOjAwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb24ndCBvdmVyZmxvdyBpbiByZXRpbWVzdGFtcGluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgRG9uJ3Qgb3ZlcmZsb3cgaW4gcmV0aW1lc3RhbXBpbmcgY29kZS4KCjIwMDctMDYtMDcgMjA6NTE6MzUgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBVc2UgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChERUZJTkVfQ1VCSUNfR0VUKToKCSAgVXNlIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wNi0wNyAxNzoyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbi4KCjIwMDctMDYtMDcgMTQ6NDk6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogUmVtb3ZlIHRoYXQgdGVzdCBsaW5lIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFJlbW92ZSB0aGF0IHRlc3QgbGluZSBhZ2Fpbi4KCjIwMDctMDYtMDcgMTQ6MzY6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogVGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTQ6MTc6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IHR5cG8gYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggdHlwbyBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxNDoxMjowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IEltcHJvdmUgY29tbWVudCBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgSW1wcm92ZSBjb21tZW50IGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDEwOjExOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGZpbmRfbWVzc2FnZSksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwgKGlzX2VvcyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1lc3NhZ2VzLgoJICBHZW5lcmF0ZSB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlcyB0b2dldGhlciB3aXRoIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgbWVzc2FnZXMuCgkgIFNtYWxsIGNsZWFudXBzIGluIGhhbmRsaW5nIHRvcGxldmVsIGJpbnMuCgoyMDA3LTA2LTA2IDE4OjExOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IG11bHRpcXVldWUgbGVha2luZyBidWZmZXJzIGFuZCBldmVudHMgd2hlbiBkb3duc3RyZWFtIG9yIHRoZSBxdWV1ZSBhcmUgZmx1c2hpbmcuIE1ha2UgcmVmY291bnRpbmcgYXNzdW1wdGlvbnMgZXhwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEZpeCBtdWx0aXF1ZXVlIGxlYWtpbmcgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gZG93bnN0cmVhbSBvciB0aGUKCSAgcXVldWUgYXJlIGZsdXNoaW5nLiBNYWtlIHJlZmNvdW50aW5nIGFzc3VtcHRpb25zIGV4cGxpY2l0IGFuZAoJICBkb2N1bWVudCB0aGVtIChzaG91bGRuJ3QgYnJlYWsgZXhpc3RpbmcgY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbgoJICBtYXliZSBsZWFrIG1pbmlvYmplY3RzLCBidXQgdGhhdCBhbHJlYWR5IGhhcHBlbnMgYW55d2F5KS4gQWRkIHVuaXQKCSAgdGVzdCBmb3IgdGhlIG1vc3QgY29tbW9uIGZsdXNoaW5nIGNhc2UuIEZpeGVzICM0MjM3MDAuCgoyMDA3LTA2LTA2IDE0OjIwOjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQ2xhcmlmeSBkb2NzOiBUaGUgZ2V0X2FsbCwgZ2V0X3ZhbHVlX2FycmF5KHMpIGZ1bmN0aW9ucyBkb24ndCBtb2RpZnkgdGhlIEdPYmplY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIENsYXJpZnkgZG9jczogVGhlIGdldF9hbGwsIGdldF92YWx1ZV9hcnJheShzKSBmdW5jdGlvbnMKCSAgZG9uJ3QgbW9kaWZ5IHRoZSBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA3LTA2LTA2IDE0OjAxOjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogRmFjdG9yIG91dCB0aGUgJ3NldCcgbG9naWMgaW50byBnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQgZm9yIHRoZSBnc3RfY29udHJvbGxlcl9zZXQgYW5kIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3ByZXBlbmRfZGVmYXVsdCksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBGYWN0b3Igb3V0IHRoZSAnc2V0JyBsb2dpYyBpbnRvIGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCBmb3IgdGhlCgkgIGdzdF9jb250cm9sbGVyX3NldCBhbmQgZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCBmdW5jdGlvbnMuCgkgIFRvIG1ha2UgbGlmZSBvZiB0aGUgaW50ZXJwb2xhdG9ycyBlYXNpZXIgYWx3YXlzIGFkZCBhIGNvbnRyb2wgcG9pbnQKCSAgYXQgdGltZXN0YW1wIHplcm8gd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZS4KCSAgSW4gdGhlIGxpbmVhciBpbnRlcnBvbGF0b3IgbWFrZSB0aGluZ3MgbW9yZSBvYnZpb3VzIGJ5IGJldHRlciB2YXJpYWJsZQoJICBuYW1pbmcgKHNsb3BlKS4KCSAgSW1wbGVtZW50IGN1YmljIGludGVycG9sYXRpb24gbW9kZSAoYnkgdXNpbmcgYSBuYXR1cmFsIGN1YmljIHNwbGluZSkKCSAgYW5kIG1hcCB0aGUgcXVhZHJhdGljIGludGVycG9sYXRpb24gbW9kZSB0byB0aGlzIHRvbyAoYXMgcXVhZHJhdGljCgkgIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLCBzZWUgZGlzY3Vzc2lvbiBvbiB0aGUgbGlzdCkuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUgYW5kIGNoZWNrIGV2ZXJ5d2hlcmUKCSAgaWYgdGhlIGludGVycG9sYXRpb24gbW9kZSBjb3VsZCBiZSBzZXQgYXMgZXhwZWN0ZWQuCgoyMDA3LTA2LTA2IDExOjM4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhcmFtc3BlY3MuYzogRG9uJ3QgdXNlIEdMaWItMi4xMCBmdW5jdGlvbnMsIHdlIHN0aWxsIGRlcGVuZCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb25fZ2V0X3R5cGUpOgoJICBEb24ndCB1c2UgR0xpYi0yLjEwIGZ1bmN0aW9ucywgd2Ugc3RpbGwgZGVwZW5kIG9uCgkgIEdMaWItaG93LW9sZC1pcy1pdC1hZ2Fpbi0yLjguCgoyMDA3LTA2LTA2IDExOjE4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKF9nc3RfcGFyYW1fZnJhY3Rpb25faW5pdCksCgkgIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3NldF9kZWZhdWx0KSwgKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsaWRhdGUpLAoJICAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWx1ZXNfY21wKSwKCSAgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uX2dldF90eXBlKSwgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6IChnc3RfZHVtbXlfb2JqX2Jhc2VfaW5pdCksCgkgIChnc3RfZHVtbXlfb2JqX2NsYXNzX2luaXQpLCAoZ3N0X2R1bW15X29ial9pbml0KSwKCSAgKGdzdF9kdW1teV9vYmpfc2V0X3Byb3BlcnR5KSwgKGdzdF9kdW1teV9vYmpfZ2V0X3Byb3BlcnR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYXJhbV9zcGVjX3N1aXRlKToKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uCgkgIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2NDgpLgoKMjAwNy0wNi0wNSAxNjoyNTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHNpZ25hbCBzaWduYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgIEZpeCBzaWduYWwgc2lnbmF0dXJlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZCBzbWFsbCBjbGFyaWZpY2F0aW9uIGluIHRoZSBhcGkgZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfbG9jYXRpb24pOgoJICBTdGF0ZXMgYXJlIHByb3RlY3RlZCB3aXRoIG9iamVjdCBsb2NrLgoKMjAwNy0wNi0wNSAxNDoxMTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBVVRIT1JTOiBJIHNob3VsZCBwcm9iYWJseSBiZSBsaXN0ZWQgYXMgYW4gYXV0aG9yIGJ5IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQVVUSE9SUzoKCSAgSSBzaG91bGQgcHJvYmFibHkgYmUgbGlzdGVkIGFzIGFuIGF1dGhvciBieSBub3cuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSByZWxlYXNlIGRvYwoKMjAwNy0wNi0wNSAxMzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBNYWtlIGRvY3MgZm9yIGdzdF92YWx1ZV9jb21wYXJlKCkgbWVudGlvbiByZXR1cm4gZW51bXMgdGhhdCBhY3R1YWxseSBleGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIE1ha2UgZG9jcyBmb3IgZ3N0X3ZhbHVlX2NvbXBhcmUoKSBtZW50aW9uIHJldHVybiBlbnVtcyB0aGF0CgkgIGFjdHVhbGx5IGV4aXN0LgoKMjAwNy0wNi0wNSAxMzoyMTo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTMgPT09CgoyMDA3LTA2LTA1IDEyOjQ3OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCjIwMDctMDYtMDUgMTI6MDY6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wNS0yOSAxNTo1MDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0OTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0ODo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDozNzoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHNlbmQgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzZW5kIGEgbWFpbAoKMjAwNy0wNS0yOSAxMTo1MjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTo0MDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTowMDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDo0MzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDoyMDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yNSAxNTozNjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGJpbiBzdG9wcyBhZnRlciBjb21wbGV0aW5nIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCB0aGUgcGFyZW50IGNhbiBjb250aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX2RvbmUpOgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgYmluIHN0b3BzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGFzeW5jIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGNvbnRpbnVlIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORy4KCSAgRml4ZXMgIzQ0MTE1OS4KCjIwMDctMDUtMjUgMDk6MjY6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSBhZGRpdGlvbmFsIHJlZmNvdW50aW5nIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIHBhZHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpOgoJICBVc2UgYWRkaXRpb25hbCByZWZjb3VudGluZyB0byBhdm9pZCBjcmFzaGVzIHdoZW4gZHluYW1pY2FsbHkgYWRkaW5nIGFuZAoJICByZW1vdmluZyBwYWRzLiBGaXhlcyAjNDIwMjA2LgoKMjAwNy0wNS0yNCAxNTowMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlCgkgIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZCBkaWdpdCBieSB3cml0aW5nIGEgYmxhbmsgb3ZlciBpdC4KCjIwMDctMDUtMjQgMTI6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiBFbGltaW5hdGUgdGFicyBhbmQgdHJhaWxpbmcgY29tbWEgaW4gZW51bSBsaXN0OyBmaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgRWxpbWluYXRlIHRhYnMgYW5kIHRyYWlsaW5nIGNvbW1hIGluIGVudW0gbGlzdDsgZml4IHNvbWUgdHlwb3MuCgoyMDA3LTA1LTI0IDExOjUwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBbGxvdyByZWZjb3VudCBvZiAzIGFuZCA0IGJlY2F1c2Ugc29tZSBzdGF0ZSB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgYnVzeSB3aXRoIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IHJlZmNvdW50IG9mIDMgYW5kIDQgYmVjYXVzZSBzb21lIHN0YXRlIHRocmVhZCBtaWdodCBzdGlsbCBiZSBidXN5CgkgIHdpdGggaXQuCgoyMDA3LTA1LTI0IDA5OjQxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFRoZXNlIGFyZSBub3QgaW5zdGFsbGVkIGhlYWRlcnMsIG5vIG5lZWQgZm9yIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBUaGVzZSBhcmUgbm90IGluc3RhbGxlZCBoZWFkZXJzLCBubyBuZWVkIGZvciBwYWRkaW5nLgoKMjAwNy0wNS0yNCAwODozNTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgUmVzdG9yZSBTVEFURV9MT0NLIGFyb3VuZCByZWNhbGNfc3RhdGUgdGhhdCB3YXMgbGVmdCBvdXQgZHVyaW5nIHRoZQoJICByZXdyaXRlIGFuZCBjb3VsZCByZXN1bHQgaW4gcmFjeSBiZWhhdmlvdXIgd2hlbiBfZ2V0X3N0YXRlIGFuZAoJICByZWNhbGNfc3RhdGUgYXJlIHJ1biBjb25jdXJyZW50bHkuIFNlZSAjNDQwNDYzLgoKMjAwNy0wNS0yMyAxMzo1NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBJbXByb3ZlIHRlc3RfYXN5bmNfb3JkZXIgdG8gYWxzbyB3b3JrIHdoZW4gYm90aCB0aW1lcnMgYXJlIGFscmVhZHkgZXhwaXJlZCB3aGVuIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKHN0b3JlX2NhbGxiYWNrKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSB0ZXN0X2FzeW5jX29yZGVyIHRvIGFsc28gd29yayB3aGVuIGJvdGggdGltZXJzIGFyZSBhbHJlYWR5CgkgIGV4cGlyZWQgd2hlbiB3ZSBnZXQgc2NoZWR1bGVkIHRvIGNoZWNrIGl0LgoKMjAwNy0wNS0yMiAxNzoxMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uKjogJ3ByaXZhdGUnIGlzIGEgYysrIGtleXdvcmQsIGxldCdzIG5vdCB1c2UgdGhhdCBpbiBoZWFkZXIgZmlsZXMsIG90aGVyd2lzZSBjKysgY29tcGlsZXJzIHdpbGwgdGhyb3cgYSB0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICdwcml2YXRlJyBpcyBhIGMrKyBrZXl3b3JkLCBsZXQncyBub3QgdXNlIHRoYXQgaW4gaGVhZGVyIGZpbGVzLAoJICBvdGhlcndpc2UgYysrIGNvbXBpbGVycyB3aWxsIHRocm93IGEgdGFudHJ1bS4KCjIwMDctMDUtMjIgMTE6NTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zLzogVXNlICNpZmRlZiBmb3IgSEFWRV9YWVogZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIFVzZSAjaWZkZWYgZm9yIEhBVkVfWFlaIGZvciBjb25zaXN0ZW5jeS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6IChzZXR1cF9maWxlc2luayksCgkgIChjbGVhbnVwX2ZpbGVzaW5rKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzaW5rX3N1aXRlKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgZmlsZXNpbmsuCgoyMDA3LTA1LTIyIDExOjQzOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay4qOiBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0byByZWZsZWN0IGl0cyByZWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX3F1ZXJ5KSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0bwoJICByZWZsZWN0IGl0cyByZWFsIG1lYW5pbmcgKGZpeGVzICM0MTI2NDgpLgoKMjAwNy0wNS0yMiAxMTowOTo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBGaXhlcyAjNDM1ODgwCgoyMDA3LTA1LTIyIDEwOjIxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGFkZCBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHF1b3RlCgoyMDA3LTA1LTIyIDA5OjU2OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogVXNlIGFuIGFycmF5IG9mIHRoZSBjb3JyZWN0IHR5cGUgd2hlbiB1c2luZyBfZ2V0X3ZhbHVlX2FycmF5IHdpdGggbGluZWFyIGludGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIFVzZSBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCB0eXBlIHdoZW4gdXNpbmcgX2dldF92YWx1ZV9hcnJheSB3aXRoCgkgIGxpbmVhciBpbnRlcnBvbGF0aW9uLgoKMjAwNy0wNS0yMiAwNjozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrLCBnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jaywgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQsIGdzdF9lbGVtZW50X2NsYXNzXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jaywKCSAgZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2ssIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkLAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscywgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlLAoJICBnc3RfZWxlbWVudF9kZWZhdWx0X3NlbmRfZXZlbnQsIGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSwgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYywgaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyk6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwsIGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24sCgkgIGdzdF9wYWRfZml4YXRlX2NhcHMsIGdzdF9wYWRfY29uZmlndXJlX3NpbmssIGdzdF9wYWRfY29uZmlndXJlX3NyYywKCSAgZ3N0X3BhZF9xdWVyeSwgZ3N0X3BhZF9zYXZlX3RoeXNlbGYsIGhhbmRsZV9wYWRfYmxvY2ssIGdzdF9wYWRfcHVzaCwKCSAgZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCwgR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MsCgkgIEdTVF9GTE9XX05PVF9TVVBQT1JURUQsIEdTVF9GTE9XX0lTX0ZBVEFMLCBHc3RQYWRBY3RpdmF0ZUZ1bmN0aW9uLAoJICBHc3RQYWRBY3RpdmF0ZU1vZGVGdW5jdGlvbiwgR3N0UGFkQ2hhaW5GdW5jdGlvbiwKCSAgR3N0UGFkR2V0Q2Fwc0Z1bmN0aW9uLCBHc3RQYWRBY2NlcHRDYXBzRnVuY3Rpb24sCgkgIEdzdFBhZEZpeGF0ZUNhcHNGdW5jdGlvbiwgR3N0UGFkVGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlLAoJICBnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSwgZ3N0X3BpcGVsaW5lX3VzZV9jbG9jaywKCSAgZ3N0X3BpcGVsaW5lX3NldF9jbG9jaywgZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2ssCgkgIGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBXaGl0ZXNwYWNlIGFuZCBkb2NzIGZpeGVzLgoKMjAwNy0wNS0yMSAyMTo0ODowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFkZCBzdXBwb3J0IGZvciByZXRyaWV2aW5nIHZhbHVlIGFycmF5cyB3aGVuIHVzaW5nIHRoZSB0cmlnZ2VyIGludGVycG9sYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyB2YWx1ZSBhcnJheXMgd2hlbiB1c2luZyB0aGUgdHJpZ2dlcgoJICBpbnRlcnBvbGF0aW9uIG1vZGUuCgoyMDA3LTA1LTIxIDIxOjM0OjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuKjogQ2xhcmlmeSB0aGUgZG9jcyBvZiBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKTogVGhlIGFycmF5IHdoZXJlIHRoZSB2YWx1ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIG9mIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpOiBUaGUgYXJyYXkgd2hlcmUKCSAgdGhlIHZhbHVlcyBzaG91bGQgYmUgd3JpdHRlbiB0byBtdXN0IGJlIGFsbG9jYXRlZCBhcyB0aGVyZSBzZWVtcyB0byBiZQoJICBubyB3YXkgdG8gZ2V0IHRoZSBzaXplIG9mIGEgcmFuZG9tIEdUeXBlLiBUaGlzIGRvZXNuJ3QgY2hhbmdlIGFueQoJICBiZWhhdmlvdXIuIEFsc28gZml4IHNvbWUgdHlwb3MgYWxsIG92ZXIgdGhlIHBsYWNlIGFuZCByZW1vdmUgYW4gdW51c2VkLAoJICBjb21tZW50ZWQgZnVuY3Rpb24gdGhhdCBpcyBub3QgbmVjZXNzYXJ5IGFzIGdfb2JqZWN0X3NldCgpIGNvdWxkIGJlCgkgIHVzZWQgaW5zdGVhZC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCkuCgoyMDA3LTA1LTIxIDE0OjUwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogRGlzYWJsZSBwYXJ0IG9mIHRoZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jIHRlc3QsIGJlY2F1c2UgaXQgY2FuIGhhcHBpbHkgc3VjY2VlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERpc2FibGUgcGFydCBvZiB0aGUgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyB0ZXN0LCBiZWNhdXNlCgkgIGl0IGNhbiBoYXBwaWx5IHN1Y2NlZWQgb24gNjQtYml0IHN5c3RlbXMgd2hlcmUgdGhlcmUncyBtb3JlIGFkZHJlc3MKCSAgc3BhY2UgYXZhaWxhYmxlLgoKMjAwNy0wNS0yMSAxMjowNTo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgaW1wcm92ZWQgY2FwcyBjaGVja2luZyBmcm9tIGJ1ZyAjNDIxNTQzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcgZnJvbSBidWcgIzQyMTU0My4KCjIwMDctMDUtMjEgMTI6MDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNtYWxsIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNtYWxsIGFkZGl0aW9uLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X3NlZ21lbnQpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBJbXByb3ZlIGRvY3MuCgoyMDA3LTA1LTIxIDEyOjAwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseSBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpOgoJICBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseQoJICBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FwcyBidXQKCSAgcGVvcGxlIHByZWZlciB1cyB0byBjaGVjayBjYXBzIGFnYWluc3QgdGhlIHRlbXBsYXRlIGF1dG9tYXRpY2FsbHkuCgkgIEZpeGVzICM0MjE1NDMuCgoyMDA3LTA1LTIxIDExOjI5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6IEZpeCBtYWNybyBmb3IgbG9ja2luZy91bmxvY2tpbmcgdGhlIHRyYW5zZm9ybSBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4IG1hY3JvIGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUgdHJhbnNmb3JtIGxvY2suCgoyMDA3LTA1LTE5IDEzOjUzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZTogSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwNy0wNS0xOCAxNjo1MzoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSGVsbG8sIEkgYW0gTXIgVGF5bWFucycgcGVyc29uYWwgZGVidWdnZXIuIFRvZGF5IEkgd2lsbCBpbnRyb2R1Y2UgYSBmaXggZm9yIHRoZSBzdWJ0bGUgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIEhlbGxvLCBJIGFtIE1yIFRheW1hbnMnIHBlcnNvbmFsIGRlYnVnZ2VyLiBUb2RheSBJIHdpbGwgaW50cm9kdWNlIGEgZml4CgkgIGZvciB0aGUgc3VidGxlIGFydCBvZiB3YXJuaW5nIGEgcG90ZW50aWFsbHkgYmxvY2tpbmcgdGhyZWFkIHRoYXQgaXQKCSAgc2hvdWxkIGNoZWNrIHRoZSBzb3VyY2UgcGFkIHJldHVybiB2YWx1ZSwgYW5kIHJlbGF5IHRoZSBpbmZvcm1hdGlvbgoJICB1cHN0cmVhbS4KCjIwMDctMDUtMTggMTE6MjA6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBSZWxlYXNlIHRoZSBxdWV1ZSBsb2NrICEKCjIwMDctMDUtMTcgMTc6NTU6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgoyMDA3LTA1LTE3IDE3OjM3OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYygpLCBnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYyksIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZ2V0X3Byb3BlcnR5KSwgKF9nc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHkpLAoJICAoX2dzdF9jb250cm9sbGVyX2luaXQpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKCksIGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMoKQoJICBBZGQgQVBJIHRoYXQgcHJvdmlkZXMgc3luYyBzdWdnZXN0aW9uIHRpbWVzdGFtcHMgZm9yIGVsZW1lbnRzIHRoYXQKCSAgY2FsbCBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKCkgZnJvbSB3aGljaCB0aG9zZSBlbGVtZW50cyBjYW4gc3ViZGl2aWRlCgkgIHRoZWlyIHByb2Nlc3NpbmcgbG9vcCB0byBnZXQgdGhlIGJlc3QgcmVzdWx0cyBmb3IgdGhlIGNvbnRyb2xsZWQKCSAgcHJvcGVydGllcy4gRm9yIG5vdyBpdCBqdXN0IHN1Z2dlc3RzIGxhc3Rfc3luYyArIGNvbnRyb2xfcmF0ZSBhcwoJICBuZXcgdGltZXN0YW1wIGJ1dCB0aGlzIHdpbGwgYmUgaW1wcm92ZWQgaW4gdGhlIGZ1dHVyZS4KCSAgV2hpbGUgZG9pbmcgdGhhdCBjaGFuZ2UgdGhlIGNvbnRyb2wtcmF0ZSBwcm9wZXJ0eSB0byBhIEdzdENsb2NrVGltZQoJICBmcm9tIGd1aW50IGFuZCBjaGFuZ2UgaXQncyBtZWFuaW5nIGZyb20gc2FtcGxlcyB0byBuYW5vc2Vjb25kcyBhcwoJICB0aGUgR3N0Q29udHJvbGxlciBkb2Vzbid0IGtub3cgYW55dGhpbmcgYWJvdXQgc2FtcGxpbmcgcmF0ZS4gU3RyaWN0bHkKCSAgc3BlYWtpbmcgdGhpcyBicmVha3MgQUJJIGJ1dCBhcyB0aGUgY29udHJvbC1yYXRlIHByb3BlcnR5IGRpZG4ndCBkbwoJICBhbnl0aGluZyBpbiB0aGUgcGFzdCBhbmQgYXMgc3VjaCBjb3VsZG4ndCBiZSB1c2VkIHRoaXMgc2hvdWxkIGJlIG5vCgkgIHByb2JsZW0uCgoyMDA3LTA1LTE3IDE3OjE2OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKToKCSAgU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlCgkgIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGVlZHMgZXZlcnl0aGluZyB1cCBhIGJpdC4KCjIwMDctMDUtMTcgMTc6MDU6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpOgoJICBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBHc3RUaW1lZFZhbHVlIHRvIGFsbG93IGRpZmZlcmVudCBpbnRlcnBvbGF0b3JzIHRvIHN0b3JlIGludGVybmFsCgkgIHZhbHVlcyBuZXh0IHRvIGVhY2ggY29udHJvbCBwb2ludC4gRnJvbSB0aGUgb3V0c2lkZSBldmVyeXRoaW5nIGlzCgkgIHN0aWxsIGEgR3N0Q29udHJvbFBvaW50IHNvIHdlIGRvbid0IGxvb3NlIGJpbmFyeSBjb21wYXRpYmlsaXR5LgoJICBBbHNvIGZpeHVwIGFsbCB0aGUgR1ZhbHVlIGhhbmRsaW5nIHRvIG5vdCBsZWFrIEdWYWx1ZXMgb3IgbGlzdCBub2Rlcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRnJlZSB0aGUgbGlzdCBub2RlcyBhbmQgR1ZhbHVlcyBpbiB0aGUgY29udHJvbGxlcl9taXNjIHRlc3QuCgoyMDA3LTA1LTE3IDExOjA1OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgU21hbGwgZG9jIGZpeC4KCjIwMDctMDUtMTYgMTk6MzU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IElmIHdlIGZhaWwgdG8gbG9hZCBhIHBsdWdpbiBiZWNhdXNlIG9mIHVucmVzb2x2ZWQgc3ltYm9scyBvciBtaXNzaW5nIGxpYnJhcmllcyBhbmQgc3BldyBhIHdhcm5pbmcgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBJZiB3ZSBmYWlsIHRvIGxvYWQgYSBwbHVnaW4gYmVjYXVzZSBvZiB1bnJlc29sdmVkIHN5bWJvbHMgb3IgbWlzc2luZwoJICBsaWJyYXJpZXMgYW5kIHNwZXcgYSB3YXJuaW5nIHRvIHN0ZGVyciwgd2UgbWF5IGp1c3QgYXMgd2VsbCBtZW50aW9uCgkgIHdoaWNoIHBsdWdpbiBpdCB3YXMgdGhhdCBmYWlsZWQgdG8gbG9hZC4KCjIwMDctMDUtMTMgMjA6Mjg6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogdGhlIGd0ay1kb2MgbWFrZWZpbGUgc25pcHBldCBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgY2FzZSB3aGVuIEVOQUJMRV9HVEtfRE9DIGlzIGZhbHNlLCBhbmQgaW5zdGFsbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06IHRoZSBndGstZG9jIG1ha2VmaWxlIHNuaXBwZXQgY29ycmVjdGx5CgkgIGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiBFTkFCTEVfR1RLX0RPQyBpcyBmYWxzZSwgYW5kIGluc3RhbGxzCgkgIHRoZSBwcmVidWlsdCBkb2N1bWVudGF0aW9uLiAgU28gZ3RrLWRvYyBzdWJkaXJzIGFyZQoJICB1bmNvbmRpdGlvbmFsbHkgZW5hYmxlZC4gIEZpeGVzOiAjMzQ5MDk5LgoKMjAwNy0wNS0xMyAyMDoxMToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogUmV3b3JkIHNvbWUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6IFJld29yZCBzb21lIGRvY3VtZW50YXRpb24uCgoyMDA3LTA1LTEzIDAwOjIwOjM1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKCkgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyB3aXRoIHRoZSBwYXNzZWQgIm1vZHVsZSIgcGFyYW1ldGVyLCBzbyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYygpIGRvZXNuJ3QgYWN0dWFsbHkKCSAgZG8gYW55dGhpbmcgd2l0aCB0aGUgcGFzc2VkICJtb2R1bGUiIHBhcmFtZXRlciwgc28gcmVtb3ZlIGl0LgoJICBBbGxvd3MgcmVtb3ZhbCBvZiBhZGRpdGlvbmFsIHZlc3RpZ2FsIGNvZGUuCgoyMDA3LTA1LTEzIDAwOjA5OjAwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogVXNpbmcgc2lnYWN0aW9uIHNob3VsZCBkZXBlbmQgb24gSEFWRV9TSUdBQ1RJT04sIG5vdCBIQVZFX1dJTjMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIFVzaW5nIHNpZ2FjdGlvbiBzaG91bGQgZGVwZW5kIG9uIEhBVkVfU0lHQUNUSU9OLCBub3QgSEFWRV9XSU4zMi4KCSAgU3dpdGNoIHRvIHVzaW5nIGdfc3RhdCgpIGJlY2F1c2UgaXQncyBtb3JlIHBvcnRhYmxlLgoKMjAwNy0wNS0xMiAyMzo1MzowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IEFkZCBHU1RfRElTQUJMRV9PUFRJT05fUEFSU0lORywgaW4gb3JkZXIgdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBZGQgR1NUX0RJU0FCTEVfT1BUSU9OX1BBUlNJTkcsIGluIG9yZGVyIHRvIGRpc2FibGUgb3B0aW9uCgkgIHBhcnNpbmcgZm9yIGVtYmVkZGVkIHN5c3RlbXMuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEFsbG93IGdzdF9lbGVtZW50X3JlZ2lzdGVyKCkgdG8gYmUgY2FsbGVkIHdpdGggcGx1Z2luPT1OVUxMLgoJICBEaWQgbm9ib2R5IG5vdGljZSB0aGF0IHN0YXRpYyBlbGVtZW50cyB3ZXJlIGJyb2tlbj8KCjIwMDctMDUtMTIgMTU6Mzg6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEdpdmUgbW9yZSBpbnRlcmVzdGluZyBpbmZvIHdoZW4gYnVmZmVyaW5nIHN0YXJ0cyBhbmQgc3RvcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBHaXZlIG1vcmUgaW50ZXJlc3RpbmcgaW5mbyB3aGVuIGJ1ZmZlcmluZyBzdGFydHMgYW5kIHN0b3BzLgoJICBGaXggY2FzZSB3aGVyZSBidWZmZXJpbmcgc3RhcnRzIGJ1dCB3ZSBmYWlsIHRvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIGZsYWcKCSAgYmVjYXVzZSB0aGUgdGFyZ2V0IHN0YXRlIGlzIG5vdCBQTEFZSU5HLgoKMjAwNy0wNS0xMiAxNTozNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogUmVmYWN0b3IgYW4gY2xlYW51cCBxdWV1ZSBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBSZWZhY3RvciBhbiBjbGVhbnVwIHF1ZXVlIGEgYml0LgoJICBEbyBiZXR0ZXIgdGltZSBsZXZlbCBjYWxjdWxhdGlvbnMgdGhhdCBhbHNvIHdvcmsgd2hlbiB0aGUgc3JjcGFkIGlzIG5vdAoJICB5ZXQgcnVubmluZy4KCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZGVidWcgbGluZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHRpbWUgbGV2ZWwgbWVhc3VyZW1lbnQuCgkgIFRyeSB0byBtYWtlIHNvbWUgc3R1ZmYgbW9yZSByYWNlZnJlZS4KCjIwMDctMDUtMTEgMTQ6NDY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91cmlfc3VpdGUpOgoJICBBZGQgYnJhaW4tZGVhZCB1bml0IHRlc3QuCgoyMDA3LTA1LTExIDE0OjI4OjU1ICswMDAwICBKZXJvZW4gV291dGVycyA8d291dGVyc2pAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHVyaS5jOiBUcmVhdCBwcm90b2NvbCBzdHJpbmdzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkgKCM0Mzc1NjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEplcm9lbiBXb3V0ZXJzIDx3b3V0ZXJzaiBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpLCAoc2VhcmNoX2J5X2VudHJ5KToKCSAgVHJlYXQgcHJvdG9jb2wgc3RyaW5ncyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5ICgjNDM3NTYzKS4KCjIwMDctMDUtMTEgMTA6NTY6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgSW5zdGVhZCwgcHVzaCB0aGlzIGRvd24gaW50byBnc3RwbHVnaW4uYywgYW5kIHdhcm4gX29ubHlfIGlmIHdlCgkgIGZhaWxlZCB0byBvcGVuIHRoZSBtb2R1bGUgKGkuZS4gZmFpbHVyZSB0byBsaW5rKS4KCSAgQXZvaWRzIHdhcm5pbmdzIG9uIG5vcm1hbCwgd29ya2luZywgbm9uLXBsdWdpbiAuc28gZmlsZXMuCgoyMDA3LTA1LTExIDA4OjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwKCSAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFByaW50IGEgZ193YXJuaW5nIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIGxvYWRpbmcgYSBwbHVnaW5zIGR1cmluZwoJICByZWdpc3RyeSBzY2FuLiBUaGUgc2h1bGQgaGVscCBiZWdpbm5lcnMgc3RhcnRpbmcgd2l0aCBnc3QtcGx1Z2luCgkgIHRlbXBsYXRlLgoKMjAwNy0wNS0xMCAxNToyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogQmUgc21hcnRlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGFtb3VudCBvZiBkYXRhIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEJlIHNtYXJ0ZXIgd2hlbiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCBhbW91bnQgb2YgZGF0YSBpbiB0aGUgcXVldWUgYnkKCSAgbWVhc3VyaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0aW1lc3RhbXBzIChpbiBydW5uaW5nCgkgIHRpbWUpIGluc2lkZSB0aGUgcXVldWUuIEZpeGVzICM0MzI4NzYuCgkgIEFQSTogR3N0UXVldWU6OnB1c2hpbmcgdG8gbm90aWZ5IGVsZW1lbnRzIHRoYXQgd2UgYXJlIHB1c2hpbmcgZGF0YSBhZ2FpbgoJICBzaW5jZSB0aGUgcnVubmluZyBzaWduYWwgaXMgcmF0aGVyIGJyb2tlbiBmb3IgdGhpcyBwdXJwb3NlLgoKMjAwNy0wNS0xMCAxMjo0MDoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChfZG9faW5pdCwgZ3N0X3F1ZXVlX3NpZ25hbHMsIGdzdF9xdWV1ZV9iYXNlX2luaXQsIGdzdF9xdWV1ZV9pbml0KTogdXNlIEdTVF9CT0lMRVJQTEFURQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKF9kb19pbml0LCBnc3RfcXVldWVfc2lnbmFscywKCSAgZ3N0X3F1ZXVlX2Jhc2VfaW5pdCwgZ3N0X3F1ZXVlX2luaXQpOgoJICB1c2UgR1NUX0JPSUxFUlBMQVRFCgoyMDA3LTA1LTA5IDIxOjA2OjA2ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIFVzZSBncmFtbWFyIHByZS1nZW5lcmF0ZWQgZmlsZXMuCgoyMDA3LTA1LTA5IDE2OjMyOjA3ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0IHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCAgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0CgkgIHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dXJuIE5VTEwgYW5kIHRoZQoJICBhcHByb3ByaWF0ZSBlcnJvciB3aGVuIGdzdF9wYXJzZV9sYXVuY2goKSBpcyB1c2VkIGRlc3BpdGUgaXQgaGF2aW5nCgkgIGJlZW4gZGlzYWJsZWQgKCMzNDI1NjQpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJICBNYWtlIHN1cmUgdGhlc2UgZnVuY3Rpb25zIGV4aXN0IGFuZCByZXR1cm4gTlVMTCBwbHVzIGEgR0Vycm9yIHdoZW4KCSAgLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuCgoyMDA3LTA1LTA5IDEwOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IFNldCBhIGdvb2QgZXhhbXBsZSBhbmQgZG9uJ3QgbGVhayBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6IChtYWluKToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzogKG1haW4pOgoJICBTZXQgYSBnb29kIGV4YW1wbGUgYW5kIGRvbid0IGxlYWsgbWVzc2FnZXMuCgoyMDA3LTA1LTA2IDE4OjI3OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogQ29ycmVjdCBmaXh4cmVmcyBvcHRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIENvcnJlY3QgZml4eHJlZnMgb3B0aW9ucy4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgKGdzdF9jYXBzZmlsdGVyX2RldGFpbHMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oIChfX0dTVF9DQVBTRklMVEVSX0hfXywKCSAgR1NUX1RZUEVfQ0FQU0ZJTFRFUiwgR1NUX0NBUFNGSUxURVIsIEdTVF9DQVBTRklMVEVSX0NMQVNTLAoJICBHU1RfSVNfQ0FQU0ZJTFRFUiwgR1NUX0lTX0NBUFNGSUxURVJfQ0xBU1MsIEdzdENhcHNGaWx0ZXIsCgkgIEdzdENhcHNGaWx0ZXJDbGFzcywgX0dzdENhcHNGaWx0ZXIsIHRyYW5zLCBmaWx0ZXJfY2FwcywKCSAgX0dzdENhcHNGaWx0ZXJDbGFzcywgdHJhbnNfY2xhc3MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyAobmFtZSwgcmFuaywgdHlwZSwgX2VsZW1lbnRzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3RfdGltZXN0YW1wLAoJICBnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6CgkgIERvY3VtZW50IGNhcHNmaWx0ZXIgYW5kIGFkZCBkb2MtYmx1cmIgdG8gaWRlbnRpdHkuCgoyMDA3LTA1LTA0IDEyOjM3OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0IGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0CgkgIGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0ZWQgeWV0LiBGaXhlcyAjNDIyMjk1LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgYSB0ZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDctMDUtMDMgMTY6NDQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvcGVybHkgc2V0IHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gb24gR3N0U2VnbWVudC4gVGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBQcm9wZXJseSBzZXQgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBvbiBHc3RTZWdtZW50LiBUaGlzIHdpbGwgb25seSBoYXBwZW4KCSAgaWYgdGhlcmUgaXMgYSBidWZmZXIgdG8gcHVzaCBvdXQuCgoyMDA3LTA1LTAzIDE0OjU4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUgc2FtZSEgTWFrZSBzdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUKCSAgc2FtZSEgTWFrZSBzdXJlIHdlIGRvbid0IGJsaW5kbHkgcHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBpbiB0aGlzIGNhc2UuCgoyMDA3LTA1LTAzIDE0OjU0OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbgoJICBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgoyMDA3LTA1LTAzIDA5OjI0OjU4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfaW1wbGVtZW50YXRpb25faW5mbyk6IFJlbW92ZSAwLjggY3J1ZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2ltcGxlbWVudGF0aW9uX2luZm8pOgoJICBSZW1vdmUgMC44IGNydWZ0LgoKMjAwNy0wNS0wMiAxNzowOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogRG9uJ3QgY3JlYXRlIGEgY3VzdG9taXNlZCBtYW4gcGFnZSBiYXNlZCBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUsIGRlc2NyaWJlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHBhdGggZ2VuZXJpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvbid0IGNyZWF0ZSBhIGN1c3RvbWlzZWQgbWFuIHBhZ2UgYmFzZWQgb24gdGhlIGhvc3QgYXJjaGl0ZWN0dXJlLAoJICBkZXNjcmliZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBwYXRoIGdlbmVyaWNhbGx5LiBUaGF0IHdheSB0aGUgbWFuCgkgIHBhZ2UgaXMgdGhlIHNhbWUgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGFuZCBwYWNrYWdlcnMgaGF2ZSBvbmUKCSAgbXVsdGlsaWIgaXNzdWUgbGVzcyB0byBkZWFsIHdpdGguIEZpeGVzICM0MzQ5MjYuCgoyMDA3LTA1LTAyIDE1OjE0OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCjIwMDctMDQtMjkgMTc6MzY6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgoyMDA3LTA0LTI5IDE0OjA0OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9SRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDctMDQtMjggMTE6Mjk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBUeXBvIGZpeGVzOyBtaW5vciBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFR5cG8gZml4ZXM7IG1pbm9yIGRvY3MgYWRkaXRpb24uCgoyMDA3LTA0LTI3IDA4OjMwOjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCgpLCB3aGljaCBjaGVja3MgaWYgYW4gc2luayBvciBzcmMgdGhhdCBzdXBwb3J0cyBhIGdpdmVuIFVSSSBwcm90b2NvbCBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ2V0X2VsZW1lbnRfZmFjdG9yaWVzX2Zyb21fdXJpX3Byb3RvY29sKSwKCSAgKGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKSwgKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgQVBJOiBBZGQgZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQoKSwgd2hpY2ggY2hlY2tzIGlmIGFuIHNpbmsKCSAgb3Igc3JjIHRoYXQgc3VwcG9ydHMgYSBnaXZlbiBVUkkgcHJvdG9jb2wgZXhpc3RzLgoKMjAwNy0wNC0yNyAwNzozNDoxMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNldCB0aGUgbG9jYXRpb24gdG8gTlVMTCBpZiAiZmlsZTovLyIgaXMgc2V0IGFzIFVSSS4gT3RoZXJ3aXNlIHNvbWUgcmFuZG9tIHByZXZpb3VzIFVSSSB3b3VsZCBzdGlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU2V0IHRoZSBsb2NhdGlvbiB0byBOVUxMIGlmICJmaWxlOi8vIiBpcyBzZXQgYXMgVVJJLiBPdGhlcndpc2UKCSAgc29tZSByYW5kb20gcHJldmlvdXMgVVJJIHdvdWxkIHN0aWxsIGJlIHNldCBpZiAiZmlsZTovLyIgaXMKCSAgc2V0IG9uIGFuIGFscmVhZHkgdXNlZCBmaWxlc2luay9maWxlc3JjLgoKMjAwNy0wNC0yNyAwNzoyNzozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNwZWNpYWwgY2FzZSB0aGUgImZpbGU6Ly8iIFVSSSBhcyBhcyB0aGlzIGlzIHVzZWQgYnkgc29tZSBhcHBsaWNhdGlvbnMgdG8gdGVzdCB3aXRoIGdzdF9lbGVtZW50X21hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU3BlY2lhbCBjYXNlIHRoZSAiZmlsZTovLyIgVVJJIGFzIGFzIHRoaXMgaXMgdXNlZCBieSBzb21lCgkgIGFwcGxpY2F0aW9ucyB0byB0ZXN0IHdpdGggZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSBpZiB0aGVyZSdzCgkgIGFuIGVsZW1lbnQgdGhhdCBzdXBwb3J0cyB0aGUgVVJJIHByb3RvY29sLgoJICBBbHNvIG1vdmUgdGhlIGdfcGF0aF9pc19hYnNvbHV0ZSgpIGNoZWNrIGZvciB0aGUgbG9jYXRpb24gcGFydAoJICBvZiB0aGUgVVJJIHRvIGFsc28gY2hlY2sgdGhpcyBmb3IgImZpbGU6Ly9sb2NhbGhvc3QvYmxhIiBVUklzLgoKMjAwNy0wNC0yNiAxMDowMDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBwbHVzIHVuaXQgdGVzdCAoIzQzMTk0MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9idWZmZXJfc3VpdGUpOgoJICBBUEk6IGFkZCBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgcGx1cyB1bml0IHRlc3QgKCM0MzE5NDApLgoKMjAwNy0wNC0yNiAwNzozMjowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBBZGQgbW9yZSBjb21tZW50cyBhYm91dCBhdm9pZGluZyBzdHJkdXBzIGZvciBhbGwgdGV4dCBkYXRhLiBDb21tZW50cwoJICB3ZWxjb21lLgoKMjAwNy0wNC0yNSAxMjozMDoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmggKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50LAoJICBHc3RCaW5hcnlQbHVnaW5GZWF0dXJlLCBfR3N0QmluYXJ5RWxlbWVudEZhY3RvcnksIHBsdWdpbl9mZWF0dXJlLAoJICBHc3RCaW5hcnlFbGVtZW50RmFjdG9yeSwgX0dzdEJpbmFyeVR5cGVGaW5kRmFjdG9yeSwgcGx1Z2luX2ZlYXR1cmUpOgoJICBDb21tZW50IHN0cnVjdHMgYW5kIHJlZm9ybWF0IHRvIGZpeCB0aGUgYnVpbGQgKHRoYXQgc3R1ZmYgc2hvdWxkIGdvCgkgIGludG8gYSBwcml2LiBoZWFkZXIpLgoKMjAwNy0wNC0yNSAxMTo0NDoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IFJlZmFjdG9yIHNvIHRoYXQgd2UgY2FuIGltcGxlbWVudCBtdWx0aXBsZSBmZWF0dXJlcy4gQWRkIHN1cHBvcnQgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBSZWZhY3RvciBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgZmVhdHVyZXMuIEFkZCBzdXBwb3J0IGZvcgoJICBUeXBlRmluZEZhY3RvcnkgZmVhdHVyZXMuCgoyMDA3LTA0LTI0IDA2OjE0OjM1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IEFNX0NPTkRJVElPTkFMKEdTVF9ESVNBQkxFX0dTVF9ERUJVRywuLi4pIGFuZCB1cGRhdGUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBBTV9DT05ESVRJT05BTChHU1RfRElTQUJMRV9HU1RfREVCVUcsLi4uKSBhbmQgdXBkYXRlIGNvbW1lbnQuCgoyMDA3LTA0LTIzIDA3OjMwOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgoyMDA3LTA0LTIxIDEzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSBzdHJlYW1pbmcgaGFzIGZpbmlzaGVkIGJlZm9yZSBjYWxsaW5nIHRoZSA6OnN0b3AoKSB2ZnVuYywgc2luY2UgdGhhdCB2ZnVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgTWFrZSBzdXJlIHN0cmVhbWluZyBoYXMgZmluaXNoZWQgYmVmb3JlIGNhbGxpbmcgdGhlIDo6c3RvcCgpIHZmdW5jLAoJICBzaW5jZSB0aGF0IHZmdW5jIG1pZ2h0IGNsZWFyIHN0YXRlIHdoaWNoIGlzIGJlaW5nIHVzZWQgaW4gdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuIFRoaXMgZml4ZXMgYSByYWNlIHRoYXQgY2F1c2VkIGNyYXNoZXMgaW4KCSAgYXVkaW9yZXNhbXBsZSB3aGVuIHNodXR0aW5nIGRvd24gYSBwaXBlbGluZSAoIzQyMDEwNikuCgoyMDA3LTA0LTIwIDA4OjUzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoKMjAwNy0wNC0yMCAwODozOTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgMm5kIGF0dGVtcHQgdG8gaGF2ZSBhIHhtbC1sZXNzIGJ1aWxkIGFzIGEgam9pbmVkIGVmZm9ydCBvZiAjNDEzMTIzIGFuZCAjNDIxNDgwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2lnbmFsX29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIDJuZCBhdHRlbXB0IHRvIGhhdmUgYSB4bWwtbGVzcyBidWlsZCBhcyBhIGpvaW5lZCBlZmZvcnQgb2YgIzQxMzEyMwoJICBhbmQgIzQyMTQ4MC4KCjIwMDctMDQtMjAgMDg6MjE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGRlZCBvcGVuIGlzc3Vlcy90aG91Z2h0cyB0byBkcmFmdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIEFkZGVkIG9wZW4gaXNzdWVzL3Rob3VnaHRzIHRvIGRyYWZ0LgoKMjAwNy0wNC0xOSAxNDozMjo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlLzogVXBkYXRlIHRoZSBwcmVidWlsZCBwYXJzZXIgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFVwZGF0ZSB0aGUgcHJlYnVpbGQgcGFyc2VyIHNvdXJjZXMuCgoyMDA3LTA0LTE5IDE0OjIzOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFuZCBub3cgZml4IHRoZSBidWlsZGluZyBvZiB0aGUgZmxleCBzb3VyY2VzLiBOb3cgZXZlcnl0aGluZyBzaG91bGQgd29yayBhcyBleHBlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBBbmQgbm93IGZpeCB0aGUgYnVpbGRpbmcgb2YgdGhlIGZsZXggc291cmNlcy4gTm93IGV2ZXJ5dGhpbmcgc2hvdWxkCgkgIHdvcmsgYXMgZXhwZWN0ZWQuCgoyMDA3LTA0LTE5IDE0OjA2OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE5vdyBob3BlZnVsbHkgZml4IHRoZSBidWlsZCBmYWlsdXJlcyBieSBzZXR0aW5nIHByb3BlciBydWxlIGRlcGVuZGVuY2llcyBhbmQgbW92aW5nIGluc3RlYWQgb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBOb3cgaG9wZWZ1bGx5IGZpeCB0aGUgYnVpbGQgZmFpbHVyZXMgYnkgc2V0dGluZyBwcm9wZXIgcnVsZQoJICBkZXBlbmRlbmNpZXMgYW5kIG1vdmluZyBpbnN0ZWFkIG9mIGNvcHlpbmcuCgoyMDA3LTA0LTE5IDEwOjQzOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogVG90YWwgbGljZW5zaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuZ251cGxvdDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5nbnVwbG90OgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5zY206CgkgIFRvdGFsIGxpY2Vuc2lmaWNhdGlvbi4KCjIwMDctMDQtMTkgMTA6MjI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHRoZSBidWlsZCBieSBjb3JyZWN0aW5nIHRoZSBydWxlIHRoYXQgZ2F2ZSB3cm9uZyBmaWxlcyB0byBmbGV4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0aGUgYnVpbGQgYnkgY29ycmVjdGluZyB0aGUgcnVsZSB0aGF0IGdhdmUgd3JvbmcgZmlsZXMgdG8gZmxleC4KCjIwMDctMDQtMTkgMDg6NDA6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgoyMDA3LTA0LTE5IDA2OjE4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFkZCBjb3JyZWN0IGdyYW1tYXIudGFiLmggZGVwZW5kZW5jeSBpZiBjb21waWxpbmcgd2l0aG91dCBuZXcgZW5vdWdoIGZsZXguIEZpeGVzICM0MzExNTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgQWRkIGNvcnJlY3QgZ3JhbW1hci50YWIuaCBkZXBlbmRlbmN5IGlmIGNvbXBpbGluZyB3aXRob3V0IG5ldyBlbm91Z2gKCSAgZmxleC4gRml4ZXMgIzQzMTE1MC4KCjIwMDctMDQtMTggMTM6MzQ6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHR5cG8gYW5kIHVzZSBvdXRkYXRlZCBzb3VyY2VzIGlmIHRoZSBmbGV4L2Jpc29uIHNvdXJjZXMgYXJlIG5ld2VyIHRoYW4gdGhlIHByZWdlbmVyYXRlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0eXBvIGFuZCB1c2Ugb3V0ZGF0ZWQgc291cmNlcyBpZiB0aGUgZmxleC9iaXNvbiBzb3VyY2VzIGFyZSBuZXdlcgoJICB0aGFuIHRoZSBwcmVnZW5lcmF0ZWQgb25lcyBidXQgZmxleCBpcyB0b28gb2xkLiBQcmludCBhIHdhcm5pbmcgaW4KCSAgdGhhdCBjYXNlLiBUaGlzIHNob3VsZCBmaXggdGhlIGJ1aWxkIG9uIHRoZSBidWlsZCBib3QuCgoyMDA3LTA0LTE4IDEyOjM0OjUxICswMDAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvOiBNYWtlIHRoZSBwYXJzZXIgcmVlbnRyYW50IGFuZCByZWN1cnNpdmVseSBjYWxsYWJsZS4gVGhpcyByZXF1aXJlcyBmbGV4ID49IDIuNS4zMSwgZm9yIG9sZGVyIHZlcnNpb25zIHByZWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlIGRvdCBsdXJlYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgTWFrZSB0aGUgcGFyc2VyIHJlZW50cmFudCBhbmQgcmVjdXJzaXZlbHkgY2FsbGFibGUuIFRoaXMgcmVxdWlyZXMgZmxleAoJICA+PSAyLjUuMzEsIGZvciBvbGRlciB2ZXJzaW9ucyBwcmVnZW5lcmF0ZWQgc291cmNlcyBhcmUgdXNlZCBhcyB3ZQoJICBjYW4ndCBidW1wIHRoZSBidWlsZCBkZXBlbmRlbmN5LiBGaW5hbGx5IGZpeGVzICMzNDkxODAuCgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRHJvcCB0aGUgSEFWRV9NVF9TQVZFX0ZMRVggI2lmZGVmcyBhcyB3ZSBhbHdheXMgdXNlIGEgbmV3IGVub3VnaCBmbGV4CgkgIG5vdyBhbnl3YXkuCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOiAoX19nc3RfcGFyc2Vfc3RyZHVwKSwKCSAgKF9fZ3N0X3BhcnNlX3N0cmZyZWUpLCAoX19nc3RfcGFyc2VfbGlua19uZXcpLAoJICAoX19nc3RfcGFyc2VfbGlua19mcmVlKSwgKF9fZ3N0X3BhcnNlX2NoYWluX25ldyksCgkgIChfX2dzdF9wYXJzZV9jaGFpbl9mcmVlKSwgKFNFVF9FUlJPUiksIChZWVBSSU5URiksCgkgIChnc3RfcGFyc2VfZWxlbWVudF9zZXQpLCAoZ3N0X3BhcnNlX2ZyZWVfbGluayksCgkgIChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluayksCgkgIChnc3RfcGFyc2VfcGVyZm9ybV9saW5rKSwgKHl5dG5hbWVyciksICh5eXN5bnRheF9lcnJvciksICh5eWVycm9yKSwKCSAgKF9nc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiAoUFJJTlQpLCAoeXlfZ2V0X25leHRfYnVmZmVyKSwKCSAgKHl5X2dldF9wcmV2aW91c19zdGF0ZSksICh5eV90cnlfTlVMX3RyYW5zKSwgKGlucHV0KSwKCSAgKF9nc3RfcGFyc2VfeXlyZXN0YXJ0KSwgKF9nc3RfcGFyc2VfeXlfc3dpdGNoX3RvX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2xvYWRfYnVmZmVyX3N0YXRlKSwgKF9nc3RfcGFyc2VfeXlfY3JlYXRlX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2RlbGV0ZV9idWZmZXIpLCAoX2dzdF9wYXJzZV95eV9pbml0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2ZsdXNoX2J1ZmZlciksIChfZ3N0X3BhcnNlX3l5cHVzaF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eXBvcF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eWVuc3VyZV9idWZmZXJfc3RhY2spLCAoX2dzdF9wYXJzZV95eV9zY2FuX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X3NjYW5fc3RyaW5nKSwgKF9nc3RfcGFyc2VfeXlfc2Nhbl9ieXRlcyksCgkgICh5eV9mYXRhbF9lcnJvciksIChfZ3N0X3BhcnNlX3l5Z2V0X2V4dHJhKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfbGluZW5vKSwgKF9nc3RfcGFyc2VfeXlnZXRfY29sdW1uKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfaW4pLCAoX2dzdF9wYXJzZV95eWdldF9vdXQpLAoJICAoX2dzdF9wYXJzZV95eWdldF9sZW5nKSwgKF9nc3RfcGFyc2VfeXlnZXRfdGV4dCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2V4dHJhKSwgKF9nc3RfcGFyc2VfeXlzZXRfbGluZW5vKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfY29sdW1uKSwgKF9nc3RfcGFyc2VfeXlzZXRfaW4pLAoJICAoX2dzdF9wYXJzZV95eXNldF9vdXQpLCAoX2dzdF9wYXJzZV95eWdldF9kZWJ1ZyksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2RlYnVnKSwgKF9nc3RfcGFyc2VfeXlnZXRfbHZhbCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2x2YWwpLCAoX2dzdF9wYXJzZV95eWxleF9pbml0KSwKCSAgKHl5X2luaXRfZ2xvYmFscyksIChfZ3N0X3BhcnNlX3l5bGV4X2Rlc3Ryb3kpLCAoeXlfZmxleF9zdHJuY3B5KSwKCSAgKHl5X2ZsZXhfc3RybGVuKSwgKF9nc3RfcGFyc2VfeXlhbGxvYyksIChfZ3N0X3BhcnNlX3l5cmVhbGxvYyksCgkgIChfZ3N0X3BhcnNlX3l5ZnJlZSk6CgkgIElmIHRoZSBpbnN0YWxsZWQgZmxleCB2ZXJzaW9uIGlzIHRvbyBvbGQgdXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyCgkgIHNvdXJjZXMuIFRoZXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyIHNvdXJjZXMgYXJlIGFsd2F5cyB1cGRhdGVkIHdoZW4KCSAgdGhlIGFjdHVhbCBmbGV4L2Jpc29uIHNvdXJjZXMgY2hhbmdlIGJ1dCByZXF1aXJlIGV2ZXJ5Ym9keSB3aG8gd2FudHMKCSAgdG8gY2hhbmdlIHNvbWV0aGluZyBpbiB0aGUgcGFyc2VyIHRvIGhhdmUgZmxleCA+PSAyLjUuMzEgaW5zdGFsbGVkLgoKMjAwNy0wNC0xOCAxMDo1ODozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL200L2dzdC1nZXR0ZXh0Lm00OgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCjIwMDctMDQtMTcgMTY6MTI6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdGhhdCBicm9rZSB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB0aGF0IGJyb2tlIHRoZSBidWlsZC4KCjIwMDctMDQtMTcgMTQ6MzY6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBNQU5QQVRIIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTUFOUEFUSCBmaXgKCjIwMDctMDQtMTcgMTA6NDY6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERyb3AgbGlieG1sMiBkZXBlbmRlbmN5IHdoZW4gYnVpbGRpbmcgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRHJvcCBsaWJ4bWwyIGRlcGVuZGVuY3kgd2hlbiBidWlsZGluZyB3aXRoCgkgIC0tZW5hYmxlLWJpbmFyeS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUKCjIwMDctMDQtMTYgMjE6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCjIwMDctMDQtMTYgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogUmVtb3ZlIHVubmVjZXNzYXJ5IDxzeXMvbW1hbi5oPiBpbmNsdWRlIHdoaWNoIGJyb2tlIHRoZSB3aW4zMiBidWlsZCB3aXRoIE1pbmdXOyBtb3ZlIGluY2x1ZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSA8c3lzL21tYW4uaD4gaW5jbHVkZSB3aGljaCBicm9rZSB0aGUgd2luMzIgYnVpbGQKCSAgd2l0aCBNaW5nVzsgbW92ZSBpbmNsdWRlcyBmcm9tIGhlYWRlciBmaWxlIHRvIC5jIGZpbGUsIGV2ZW4gaWYgdGhlCgkgIGhlYWRlciBmaWxlIGlzbid0IGluc3RhbGxlZDsgdXNlIGdfc3RyZXJyb3IoKSB3aGVyZSBVVEYtOCBzdHJpbmdzCgkgIGFyZSBleHBlY3RlZCwgc3VjaCBhcyBpbiBHU1RfREVCVUcgbWVzc2FnZXMuCgoyMDA3LTA0LTEzIDE1OjE1OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSBib2d1cyBhZGRpdGlvbiBmb3IgQVBJIEkgZGlkbid0IGVuZCB1cCBrZWVwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgYm9ndXMgYWRkaXRpb24gZm9yIEFQSSBJIGRpZG4ndCBlbmQgdXAga2VlcGluZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWVudGlvbiBTaW5jZTogMC4xMC4xMyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgQWRkIHRoZSBBUEkga2V5d29yZCB0byB0aGUgcHJldmlvdXMgQ2hhbmdlTG9nIGVudHJ5LgoKMjAwNy0wNC0xMyAxNDoxODo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBbGxvdyBiYXNlc3JjIGRlcml2ZWQgY2xhc3NlcyB0byBleGVjdXRlIHNlZWtzIGluIG90aGVyIGZvcm1hdHMgYnkgcHJvdmlkaW5nIGEgcHJlcGFyZV9zZWVrX3NlZ21lbnQgdm1ldGhvZC4gU3ViLWNsYXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3ByZXBhcmVfc2Vla19zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19wcmVwYXJlX3NlZWtfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWxsb3cgYmFzZXNyYyBkZXJpdmVkIGNsYXNzZXMgdG8gZXhlY3V0ZSBzZWVrcyBpbiBvdGhlciBmb3JtYXRzCgkgIGJ5IHByb3ZpZGluZyBhIHByZXBhcmVfc2Vla19zZWdtZW50IHZtZXRob2QuIFN1Yi1jbGFzc2VzIGNhbiBjaG9vc2UKCSAgdG8gcHJlcGFyZSB0aGUgR3N0U2VnbWVudCBpbiBhbnkgZm9ybWF0IHRoYXQgdGhlaXIgcGVyZm9ybV9zZWVrIG1ldGhvZAoJICB3aWxsIGJlIGFibGUgdG8gdW5kZXJzdGFuZC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgdGhlCgkgIG9sZCBiZWhhdmlvdXIgb2YgYXR0ZW1wdGluZyB0byBjb252ZXJ0IHRoZSBzZWVrIG9mZnNldHMgdG8gdGhlCgkgIGNvbmZpZ3VyZWQgbmF0aXZlIGZvcm1hdC4KCjIwMDctMDQtMTMgMTE6NTM6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKToKCSAgRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3RyeV90b19tZXJnZV91cCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgT3B0aW1pc2UgdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBidWZmZXJzIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSB0aGF0CgkgIGNhbiBiZSBqb2luZWQgcXVpY2tseSAoYmVjYXVzZSB0aGV5J3JlIGNvbnRpZ3VvdXMgc3ViLWJ1ZmZlcnMpIGJ5CgkgIG1lcmdpbmcgdGhlbSB0b2dldGhlciByYXRoZXIgdGhhbiBjb3B5aW5nIGRhdGEgb3V0IGludG8gbmV3IG1lbW9yeS4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IGEgbGVhayBpbiBhbiBlcnJvciBwYXRoIGZvciBwYXJzZV9sYXVuY2gsIGFuZCBhZGQgYSBjaGVjawoJICBmb3IgaXQgdG8gdGhlIHRlc3RzdWl0ZS4KCjIwMDctMDQtMTMgMTE6MjA6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGRlYWRsb2NrIHdoZW4gcmVsZWFzaW5nIGEgcGFkIC0gZ3N0X3BhZF9zZXRfYWN0aXZlIG1heSB0cnkgYW5kIHRha2UgdGhlIG11bHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWxlYXNpbmcgYSBwYWQgLSBnc3RfcGFkX3NldF9hY3RpdmUgbWF5IHRyeQoJICBhbmQgdGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHRvby4KCjIwMDctMDQtMTIgMTI6NTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQVBJOiBhZGQgR1NUX0NPUkVfRVJST1JfRElTQUJMRUQgKCMzOTI4MDQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFQSTogYWRkIEdTVF9DT1JFX0VSUk9SX0RJU0FCTEVEICgjMzkyODA0KS4KCjIwMDctMDQtMTIgMTA6MzI6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBkb24ndCBnZXQgZW1wdHkgcGF0aHMgb24gdGhlIFBBVEggdmFyaWFibGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgZ2V0IGVtcHR5IHBhdGhzIG9uIHRoZSBQQVRIIHZhcmlhYmxlcwoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pc19hY3RpdmUsIGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBEb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiB0ZXJtaW5hbCB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzLgoKMjAwNy0wNC0wOSAxMTo1OToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA3LTA0LTA5IDA4OjE3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gZWRpdG9yIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIGVkaXRvciB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzCgoyMDA3LTA0LTA2IDExOjQ4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE9ubHkgdHJ5IHRvIHNlbGVjdCBhIGRpZmZlcmVudCBwaXBlbGluZSBjbG9jayB3aGVuIHdlIHdlbnQgYmFjayB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKHJlc2V0X3N0cmVhbV90aW1lKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBPbmx5IHRyeSB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcGlwZWxpbmUgY2xvY2sgd2hlbiB3ZSB3ZW50IGJhY2sgdG8KCSAgUEFVU0VEIGFuZCBub3Qgd2hlbiB3ZSBtZXJlbHkgZ290IGZsdXNoZWQuCgoyMDA3LTA0LTA1IDE2OjE3OjI0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IGZyYWN0aW9ucyBhcmUgYmV0dGVyIHN1cHBvcnRlZCBpbiBnc3RyZWFtZXIgdGhhbiByYWN0aW9ucywgc28gc3VnZ2VzdCB1c2luZyB0aG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBmcmFjdGlvbnMgYXJlIGJldHRlciBzdXBwb3J0ZWQgaW4gZ3N0cmVhbWVyIHRoYW4gcmFjdGlvbnMsIHNvCgkgIHN1Z2dlc3QgdXNpbmcgdGhvc2UuCgoyMDA3LTA0LTA1IDEzOjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL25sLnBvOgoJICB1cGRhdGUgZHV0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkdXRjaAoKMjAwNy0wNC0wNSAxMzo0Njo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFN1Ym1pdHRlZCBieTogTW9nZW5zIEphZWdlciA8bW9nZW5zQGphZWdlci50Zj4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2RhLnBvOgoJICBBZGRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA0LTA1IDExOjE2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggbGVhayBjYXVzZWQgd2hlbiByZWZ1c2luZyBuZXdzZWdtZW50IGFmdGVyIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIEZpeCBsZWFrIGNhdXNlZCB3aGVuIHJlZnVzaW5nIG5ld3NlZ21lbnQgYWZ0ZXIgRU9TLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2luaXQpLCAoZ3N0X2Zha2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBlbGVtZW50IGdlbmVyYXRlIEVPUyBhZnRlciBhCgkgIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgYnVmZmVycy4KCSAgQVBJOiBmYWtlc2luazo6bnVtLWJ1ZmZlcnMgcHJvcGVydHkuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgRml4IEdzdEJ1cyBsZWFrIGluIHRlc3QuCgkgIFRlc3QgZm9yIGZha2VzaW5rIG51bS1idWZmZXJzLgoKMjAwNy0wNC0wNSAxMDoxMDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgYWNjZXB0IGFueXRoaW5nIGFmdGVyIGFuIEVPUywgcmV0dXJuIFVORVhQRUNURUQgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGFjY2VwdCBhbnl0aGluZyBhZnRlciBhbiBFT1MsIHJldHVybiBVTkVYUEVDVEVEIGluc3RlYWQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBuZXcgRU9TIGJlaGF2aW91ci4KCjIwMDctMDQtMDUgMTA6MDg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpOgoJICBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgoyMDA3LTA0LTA1IDEwOjA2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBfYWRqdXN0X3VubG9ja2VkKCkgc28gdGhhdCBpdCBvdmVyZmxvd3MgbGVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKSwgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBJbXByb3ZlIF9hZGp1c3RfdW5sb2NrZWQoKSBzbyB0aGF0IGl0IG92ZXJmbG93cyBsZXNzLgoJICBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkIHRvIGNvbnZlcnQgZnJvbSBleHRlcm5hbCB0aW1lIHRvCgkgIGludGVybmFsIHRpbWUgYmFzZWQgb24gY2FsaWJyYXRpb24uCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIEFQSTogR3N0Q2xvY2s6OmdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpCgoyMDA3LTA0LTAzIDExOjAyOjQxICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERlYWN0aXZhdGUgcGFkcyBhbmQgZnJlZSBHc3RTaW5nbGVRdWV1ZSB3aXRoIGdzdF9zaW5nbGVfcXVldWVfZnJlZSgpIHdoZW4gcmVsZWFzaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRGVhY3RpdmF0ZSBwYWRzIGFuZCBmcmVlIEdzdFNpbmdsZVF1ZXVlIHdpdGggZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKCkKCSAgd2hlbiByZWxlYXNpbmcgc2luayBwYWQuIEZpeGVzICM0MjU0MDAuCgoyMDA3LTA0LTAyIDE0OjQ4OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHdvcmsgb24gcHJvcG9zYWwgZm9yIG5ldyBjb3JlIGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB3b3JrIG9uIHByb3Bvc2FsIGZvciBuZXcgY29yZSBhcGkuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQVBJOiBHU1RfQkFTRV9UUkFOU0ZPUk1fTE9DSy9VTkxPQ0sgYWRkZWQKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIExlc3MgdmVyYm9zZSBsb2dnaW5nIGFkZCBkb2NzIGZvciB1bmltcGxlbWVudGVkIHBhcnRzIGFuZCBjb3JyZWN0bHkKCSAgcmV0dXJuIHdoZW4gdXNpbmcgdW5hdmFpbGFibGUgcGFydHMuCgoyMDA3LTAzLTI5IDE2OjA0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNb3ZlIGFsbCB0aGUgZGVidWcgdG8gdGhlIENMT0NLIGNhdGVnb3J5LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGggdGhlIGNsb2NrIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIE1vdmUgYWxsIHRoZSBkZWJ1ZyB0byB0aGUgQ0xPQ0sgY2F0ZWdvcnksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aAoJICB0aGUgY2xvY2sgb2JqZWN0LgoKMjAwNy0wMy0yOSAxNTo1MzowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogTWFrZSB0YWtlX2J1ZmZlciBhIGJpdCBxdWlja2VyIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBjaGVja3MgY2F1c2VkIGJ5IGNhbGxpbmcgZ3N0X2FkYXB0ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIE1ha2UgdGFrZV9idWZmZXIgYSBiaXQgcXVpY2tlciBieSByZW1vdmluZyByZWR1bmRhbnQgY2hlY2tzCgkgIGNhdXNlZCBieSBjYWxsaW5nIGdzdF9hZGFwdGVyX3Rha2UuCgoyMDA3LTAzLTI4IDE4OjM4OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGxlYWsgR0NvbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRG9uJ3QgbGVhayBHQ29uZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKHNldHVwX211bHRpcXVldWUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBzb21lIGRlYWQgc2ltcGxlIHVuaXQgdGVzdHMgZm9yIHRoZSAnbXVsdGlxdWV1ZScgZWxlbWVudAoJICAoc29tZSBiaXRzIGRvbid0IHdvcmsgeWV0IGFuZCBhcmUgZGlzYWJsZWQgZm9yIG5vdykuCgoyMDA3LTAzLTI4IDE4OjI1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfZ2V0X3JlcXVlc3RfcGFkX3RlbXBsYXRlKToKCSAgTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yCgkgIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgc2F5LCBzb21ldGltZXMgcGFkIHRlbXBsYXRlcy4KCjIwMDctMDMtMjggMTM6NDQ6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4YW1wbGUgdGhhdCBuZWVkcyBtb3JlIHRoaW5raW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGFtcGxlIHRoYXQgbmVlZHMgbW9yZSB0aGlua2luZy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHRob3VnaHRzIGFib3V0IHd0cmFwcGVyIHBsdWdpbnMuCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBNb3JlIGRlc2lnbiB3b3JrLgoKMjAwNy0wMy0yNSAxNTozMzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBPbmx5IHB1c2ggdGhlIHNlZ21lbnQgZXZlbnRzIGluIHRoZSBQTEFZSU5HIHN0YXRlIGZvciBsaXZlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE9ubHkgcHVzaCB0aGUgc2VnbWVudCBldmVudHMgaW4gdGhlIFBMQVlJTkcgc3RhdGUgZm9yIGxpdmUgc291cmNlcy4KCjIwMDctMDMtMjMgMTc6NTI6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UKCSAgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvY2sgdW5sZXNzIHdlJ3JlIGFjdHVhbGx5IGxlYXZpbmcKCSAgdGhlIFBBVVNFRCBzdGF0ZSBmb3IgdGhlIGZpcnN0IHRpbWUuIFRoaXMgcHJldmVudHMgY2hvb3NpbmcgYQoJICBkaWZmZXJlbnQgY2xvY2sgd2hlbiB0aGUgc3RhdGVfY2hhbmdlIGdldHMgY2FsbGVkIGZvciBhIDJuZCB0aW1lIGR1ZQoJICB0byBzb21lIGVsZW1lbnQgZG9pbmcgYW4gYXN5bmMgc3RhdGUgY2hhbmdlLgoKMjAwNy0wMy0yMiAxODoyODowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgbGFzdCBjb21taXQuIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmV2ZXJ0IGxhc3QgY29tbWl0LiBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMDMtMjIgMTc6MTI6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUKCSAgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbm93LiBGaXhlcyAjNDIxNTQzLgoKMjAwNy0wMy0yMiAxMjozMTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBVbnJlZiBzb21lIG1vcmUgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChtaXhlZF90aHJlYWQpLCAobWl4ZWRfYXN5bmNfY2IpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgVW5yZWYgc29tZSBtb3JlIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA3LTAzLTIyIDExOjU4OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEZpeCBhbm95aW5nIHJlZ3Jlc3Npb24gdGhhdCBzdXJ2aXZlZCBhIGZldyByZWxlYXNlcy4gV2hlbiBhZGRpbmcgYW4gYXN5bmMgZW50cnkgd2hpbGUgYmxvY2tpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBGaXggYW5veWluZyByZWdyZXNzaW9uIHRoYXQgc3Vydml2ZWQgYSBmZXcgcmVsZWFzZXMuIFdoZW4gYWRkaW5nIGFuCgkgIGFzeW5jIGVudHJ5IHdoaWxlIGJsb2NraW5nIG9uIGEgc3luYyBlbnRyeSwgdGhlIHN5bmMgZW50cnkgd2lsbCB1bmJsb2NrCgkgIGJ1dCBzdGlsbCBiZSBidXN5LCBzbyBpdCBzaG91bGQgY29udGludWUgdG8gd2FpdCBpbnN0ZWFkIG9mIHJldHVybmluZwoJICBfQlVTWSB0byB0aGUgYXBwLgoJICBBZGQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKG1peGVkX3RocmVhZCksCgkgIChtaXhlZF9hc3luY19jYiksIChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHRoaXMuCgoyMDA3LTAzLTIyIDExOjE5OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgY2xvY2sgc3luYyBiZXR0ZXIsIG9ubHkgVU5TQ0hFRFVMRUQgaW5kaWNhdGVzIGEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgSGFuZGxlIGVycm9ycyBmcm9tIHRoZSBjbG9jayBzeW5jIGJldHRlciwgb25seSBVTlNDSEVEVUxFRCBpbmRpY2F0ZXMgYQoJICBXUk9OR19TVEFURSBhbmQgY2FuIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLiBBbGwgb3RoZXIgY2FzZXMgc2hvdWxkCgkgIGVycm9yIG91dC4KCjIwMDctMDMtMjIgMDg6MjM6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpZiBwYWQgZXZlbnRmdW5jIGlzIG5vdCBzcGVjaWZpZWQuICBGaXhlcyAjNDIxMTc3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxzeXJqYWxhIGF0IHNjaSBkb3QgZmk+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggcG9zc2libGUgZGVhZGxvY2sgaWYgcGFkIGV2ZW50ZnVuYyBpcyBub3Qgc3BlY2lmaWVkLiAgRml4ZXMgIzQyMTE3Ny4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAzLTIxIDE4OjEzOjQwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCBzb21lIGVycm9ycyBpbiB0aGUgdHlwZWZpbmRpbmcgZG9jcyBwb2ludGVkIG91dCBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHNvbWUgZXJyb3JzIGluIHRoZSB0eXBlZmluZGluZyBkb2NzIHBvaW50ZWQgb3V0IG9uIGlyYy4KCjIwMDctMDMtMjEgMTc6NTA6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENsYXJpZnkgRklYTUUgY29tbWVudCBpbiB0aGUgZmFjZSBvZiBoYXZpbmcgYWRkZWQgdW5sb2NrX3N0b3AoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgQ2xhcmlmeSBGSVhNRSBjb21tZW50IGluIHRoZSBmYWNlIG9mIGhhdmluZyBhZGRlZCB1bmxvY2tfc3RvcCgpCgoyMDA3LTAzLTIxIDExOjUyOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBQcmVwYXJlIGZvciByZWxlYXNlIHdoZXJlIHdlIHdhcm4gYWdhaW5zdCBwb3NzaWJsZSBhcHAgYnJlYWthZ2UgaW4gdGhlIGNhc2Ugb2YgbGl2ZSBwaXBlbGluZXMgYWxvbmcgd2l0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByZXBhcmUgZm9yIHJlbGVhc2Ugd2hlcmUgd2Ugd2FybiBhZ2FpbnN0IHBvc3NpYmxlIGFwcCBicmVha2FnZSBpbiB0aGUKCSAgY2FzZSBvZiBsaXZlIHBpcGVsaW5lcyBhbG9uZyB3aXRoIGFuIGVudiB2YXIgdG8gZW5hYmxlL2Rpc2FibGUgbGl2ZQoJICBwcmVyb2xsIG1vZGUgKEdTVF9DT01QQVQ9W25vLV1saXZlLXByZXJvbGwpLgoKMjAwNy0wMy0yMCAxNDoyNToxNSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOiBTbyB3ZSBzaG91bGQgdXNlIGNvcnJlY3QgY29uc3RhbnRzIGZvciBjaGVja2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KToKCSAgU28gd2Ugc2hvdWxkIHVzZSBjb3JyZWN0IGNvbnN0YW50cyBmb3IgY2hlY2tpbmcgZm9yIE5vbmUgb2Zmc2V0LgoKMjAwNy0wMy0yMCAxNDoxNzo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdCBsZWFzdCBQQVVTRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdAoJICBsZWFzdCBQQVVTRUQuCgoyMDA3LTAzLTIwIDEwOjIzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggY29tcGlsYXRpb24gd2l0aCByZWdpc3RyeSBkaXNhYmxlZCBhcyBzcG90dGVkIGJ5IFNhdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggcmVnaXN0cnkgZGlzYWJsZWQgYXMgc3BvdHRlZCBieSBTYXVyLgoKMjAwNy0wMy0yMCAwOTo0NjoxMSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IExvb2sgYXQgdGhlIHBlbmRpbmcgc3RhdGUgdG9vIHdoZW4gc3luY2luZyB0aGUgZWxlbWVudCBzdGF0ZSB0byB0aGUgcGFyZW50LiBGaXhlcyAjNDIwMTMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0ZSB0b28gd2hlbiBzeW5jaW5nIHRoZSBlbGVtZW50IHN0YXRlIHRvIHRoZQoJICBwYXJlbnQuIEZpeGVzICM0MjAxMzMuCgoyMDA3LTAzLTE5IDE1OjAxOjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlYWN0aXZhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkKCSAgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbGVhciBhbnkgc3RhdGUgdGhleSBzZXQgdHJ5aW5nIHRvCgkgIHVubG9jaywgc3VjaCBhcyBjbGVhcmluZyBvdXQgdW5sb2NrIGNvbW1hbmRzIGZyb20gYSBjb21tYW5kIGZkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX3JlbmRlciksIChnc3RfZmRfc2lua191bmxvY2spLAoJICAoZ3N0X2ZkX3NpbmtfdW5sb2NrX3N0b3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwgKGdzdF9mZF9zcmNfZG9fc2Vlayk6CgkgIEltcGxlbWVudCB1bmxvY2tfc3RvcCBpbiBmZHNyYyBhbmQgZmRzaW5rLgoJICBJbXBsZW1lbnQgc2Vla2luZyBpbiBmZHNyYyB3aGVuIGEgc2Vla2FibGUgZmQgaXMgcGFzc2VkLCBhcyBpbgoJICBnc3QtbGF1bmNoLTAuMTAgZmRzcmMgISAuLi4gISB4dmltYWdlc2luayA8IC9wYXRoL3RvL2ZpbGUKCjIwMDctMDMtMTkgMTI6MDc6MzIgKzAwMDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMuZGFzaC5ncm91cC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBGaXggcGFkLWFkZGVkIGFuZCBwYWQtcmVtb3ZlZCBzaWduYWwgc2lnbmF0dXJlcyBzbyB0aGF0IHRoZSBwYWQgdHlwZSBpcyBzdGF0ZWQgYXMgR1NUX1RZUEVfUEFEIGluc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBFdmFuIE5lbWVyc29uIDxldmFuIGF0IGNvZXVzIGRhc2ggZ3JvdXAgZG90IGNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIEZpeCBwYWQtYWRkZWQgYW5kIHBhZC1yZW1vdmVkIHNpZ25hbCBzaWduYXR1cmVzIHNvIHRoYXQgdGhlIHBhZCB0eXBlIGlzCgkgIHN0YXRlZCBhcyBHU1RfVFlQRV9QQUQgaW5zdGVhZCBvZiBHX1RZUEVfT0JKRUNULiBGaXhlcyAjNDE5ODUxLgoKMjAwNy0wMy0xOSAxMDo0Nzo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZWxlbWVudCBmaWVsZCBhbmQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGVsZW1lbnQgZmllbGQgYW5kIG1ldGhvZC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY29udGludWVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLCAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTWFrZSBhc3luYyBzdGF0ZSBjaGFuZ2VzIGEgYml0IHNtYXJ0ZXIgYnkgdXNpbmcgbmV3IEFTWU5DX1NUQVJUIGFuZAoJICBBU1lOQ19ET05FIG1lc3NhZ2VzLiBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBydW4gdGhlIHN0YXRlCgkgIHJlY2FsY3VsYXRpb24gdGhyZWFkLgoJICBEb24ndCBjaGFuZ2Ugc3RhdGUgb2YgZWxlbWVudCB3aXRoIGEgcGVuZGluZyBBU1lOQ19TVEFSVCBtZXNzYWdlLgoJICBEZXByZWNhdGUgU1RBVEVfRElSVFkgbWVzc2FnZXMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLCAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgS2VlcCB0aGUgc3RhdGUgdGhhdCB3YXMgbGFzdCBzZXQgYnkgdGhlIGFwcCBpbiBhIG5ldyBlbGVtZW50IGZpZWxkLgoJICBEb24ndCBhbGxvdyBzdGF0ZSBjaGFuZ2VzIHdoZW4gaGFuZGxpbmcgYW4gZWxlbWVudCBldmVudC4KCSAgUG9zdCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcy4KCSAgQ2hhbmdlIGxvc3Rfc3RhdGUgc28gdGhhdCB3ZSBnbyB0byBQQVVTRUQgYW5kIHdhaXQgZm9yIHRoZSBwYXJlbnQgdG8gc2V0CgkgIHVzIHRvIFBMQVlJTkcgYWdhaW4gKHNvIGxhdGVuY3kgY2FsY3VsYXRpb24gY2FuIGJlIHBlcmZvcm1lZCkKCSAgRXhwb3J0IGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KCSAgQVBJOiBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKQoJICBBUEk6IEdTVF9TVEFURV9UQVJHRVQKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKHJlc2V0X3N0cmVhbV90aW1lKSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgVXNpbmcgdGhlIG5ldyBBU1lOQ19TVEFSVCBtZXNzYWdlIHdlIGNhbiByZXNldCB0aGUgYmFzZV90aW1lIHdoZW4KCSAgbmVlZGVkLiBUaGlzIGNhbiB0aGVuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGJhc2VfdGltZSByZWRpc3RyaWJ1dGlvbiBpbgoJICBmbHVzaGluZyBzZWVrcyBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIGV4cGxpY2l0IHNlZWsgaGFuZGxpbmcuCgkgIFBlcmZvcm0gbGF0ZW5jeSBxdWVyeSBhbmQgY29uZmlndXJhdGlvbiB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFBvc3QgbmV3IEFTWU5DX1NUQVJUL0FTWU5DX0RPTkUgbWVzc2FnZXMuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdCBiZWNhdXNlIHRoZSBiaW4gd2lsbCBub3Qgc2V0IHRoZSBhc3luYyBlbGVtZW50IHRvIFBMQVlJTkcgcmlnaHQKCSAgYXdheS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfYXN5bmNfZG9uZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIG1lc3NhZ2UgY2hlY2sgYSBsaXR0bGUgc3Ryb25nZXIuCgkgIEhhbmRsZSBBU1lOQyBtZXNzYWdlcy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEV4cGVjdCBBU1lOQ19ET05FIG1lc3NhZ2VzLgoKMjAwNy0wMy0xOSAwOTo1NTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyB0byBwcmVwYXJlIGZvciBsYXRlbmN5IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19hc3luY19zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgdG8gcHJlcGFyZSBmb3IgbGF0ZW5jeQoJICBzdXBwb3J0LgoKMjAwNy0wMy0xNSAyMjozMzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0eXBvcwoKMjAwNy0wMy0xNSAxMjozNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IE5vdyB0aGF0IHdlIGRvbid0IGNoZWNrIGZvciB0aGUgJ0NvZGVjJyBrZXl3b3JkIGFueSBsb25nZXIgaW4gdGhlIGtsYXNzLCB3ZSBzaG91bGRuJ3Qgc3BldyBhIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKToKCSAgTm93IHRoYXQgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSAnQ29kZWMnIGtleXdvcmQgYW55IGxvbmdlciBpbiB0aGUKCSAga2xhc3MsIHdlIHNob3VsZG4ndCBzcGV3IGEgd2FybmluZyBpZiB0aGUga2xhc3MgaXNuJ3QgYSBkZWNvZGVyIG9yCgkgIGVuY29kZXIgKHNpbmNlIGl0IG1pZ2h0IGJlIGEgU291cmNlL05ldHdvcmssIGZvciBleGFtcGxlKS4KCjIwMDctMDMtMTQgMTc6MjQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCByZXF1aXJlIGRlY29kZXIvZGVtdXhlci9kZXBheWxvYWRlciBlbGVtZW50cyBvciBlbmNvZGVyL211eGVyL3BheWxhZGVyIGVsZW1lbnRzIHRvIGhhdmUgJ0MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyk6CgkgIERvbid0IHJlcXVpcmUgZGVjb2Rlci9kZW11eGVyL2RlcGF5bG9hZGVyIGVsZW1lbnRzIG9yCgkgIGVuY29kZXIvbXV4ZXIvcGF5bGFkZXIgZWxlbWVudHMgdG8gaGF2ZSAnQ29kZWMnIGFzIHBhcnQgb2YgdGhlaXIKCSAgZmFjdG9yeSBjbGFzcyBzdHJpbmcgd2hlbiBpbnRyb3NwZWN0aW5nIGEgcGx1Z2luJ3MgY2FwYWJpbGl0aWVzLgoJICBkcmFmdC1rbGFzcy50eHQgbWVudGlvbnMgdGhhdCBpdCBtaWdodCBiZSByZW1vdmVkIGluIGZ1dHVyZSwgYW5kCgkgIGZsdW1wM2RlYyBkb2Vzbid0IGhhdmUgaXQgYXMgcGFydCBvZiBpdHMgY2xhc3Mgc3RyaW5nLCBzbyBjaGFuY2VzCgkgIGFyZSBvdGhlcnMgbWlnaHQgYWxzbyBub3QgaGF2ZSBpdC4KCjIwMDctMDMtMTQgMTU6NDI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vaTE4bjoKCSAgdXBkYXRlIGkxOG4gZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgaTE4biBkb2MKCjIwMDctMDMtMTQgMTU6MTc6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICByZWZvcm1hdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVmb3JtYXQKCjIwMDctMDMtMTQgMTU6MTU6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gdHJhbnNsYXRpb24gcHJvamVjdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QKCjIwMDctMDMtMTQgMTM6NDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEludmVydCBwcmVjb25kaXRpb24gY2hlY2sgdG8gYmUgYWxpa2UgdGhlIG9uZXMgaW4gdGhlIG1pbWljZWQgZ29iamVjdCBhcGkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpOgoJICBJbnZlcnQgcHJlY29uZGl0aW9uIGNoZWNrIHRvIGJlIGFsaWtlIHRoZSBvbmVzIGluIHRoZSBtaW1pY2VkIGdvYmplY3QKCSAgYXBpLgoKMjAwNy0wMy0xNCAxMToyMTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCjIwMDctMDMtMTMgMTQ6NTM6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2F1ZGlvYmFzZWNsYXNzZXMudHh0OgoJICBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWUpOgoJICBBZGQgYSBXQVJOSU5HLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkIGRvY3MgdGhhdCBwb2ludCBmcm9tIGdzdF9wYWRfZ2V0X3JhbmdlIHRvIGdzdF9wYWRfcHVsbF9yYW5nZQoKMjAwNy0wMy0xMiAxNToyNzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogRGVmZXIgc3RhcnRpbmcgdGhlIGFzeW5jIHN5c3RlbSBjbG9jayB0aHJlYWQgdW50aWwgdGhlIGZpcnN0IGFzeW5jIHdhaXQgaXMgc2NoZWR1bGVkLiBGaXhlcyAjNDEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19zdGFydF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpOgoJICBEZWZlciBzdGFydGluZyB0aGUgYXN5bmMgc3lzdGVtIGNsb2NrIHRocmVhZCB1bnRpbCB0aGUgZmlyc3QgYXN5bmMKCSAgd2FpdCBpcyBzY2hlZHVsZWQuIEZpeGVzICM0MTQ5ODYuCgoyMDA3LTAzLTEyIDE0OjIzOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBzbWFsbCBsZWFrIChmcmVlIEdzdFNpbmdsZVF1ZXVlIHN0cnVjdHVyZSB0b28sIG5vdCBvbmx5IGNvbnRlbnRzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRml4IHNtYWxsIGxlYWsgKGZyZWUgR3N0U2luZ2xlUXVldWUgc3RydWN0dXJlIHRvbywgbm90IG9ubHkgY29udGVudHMpLgoKMjAwNy0wMy0xMCAxNTo0NDo0NCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgR1NUX1NUUl9OVUxMIHRvIHByZXZlbnQgTlVMTCBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBHU1RfQ0FUX0RFQlVHLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6KGdzdF9iaW5fYWRkKToKCSAgVXNlIEdTVF9TVFJfTlVMTCB0byBwcmV2ZW50IE5VTEwgcG9pbnRlciB0byBiZSBwYXNzZWQgdG8gR1NUX0NBVF9ERUJVRy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNjozOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6IEZpeCBHc3RUZWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IEdzdFRlZSBkb2NzLgoKMjAwNy0wMy0wOSAxNjozMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4gRml4ZXMgIzM5MzA5OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2NvcHlfbWV0YWRhdGEpLCAoX2dzdF9idWZmZXJfY29weSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuIEZpeGVzICMzOTMwOTkuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX3N0YW1wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBVc2UgbmV3IG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNDoyMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IFNlcGFyYXRlIG91dCBjaGVjay1pbXBlcmZlY3QtdGltZXN0YW1wIGFuZCBjaGVjay1pbXBlcmZlY3Qtb2Zmc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X3RpbWVzdGFtcCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBTZXBhcmF0ZSBvdXQgY2hlY2staW1wZXJmZWN0LXRpbWVzdGFtcCBhbmQgY2hlY2staW1wZXJmZWN0LW9mZnNldC4KCSAgUHV0IGJhY2sgY2hlY2stcGVyZmVjdCBhcyBpdCB3YXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LgoKMjAwNy0wMy0wOSAxMjozNDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMKCSAgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQgdGhhdCdzIGNoZWNrZWQgaW1tZWRpYXRlbHkKCSAgYWJvdmUuCgoyMDA3LTAzLTA4IDE3OjU4OjU3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA4ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEKCSAgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNraW5nIGRhdGEgY29udGlndWl0eS4KCjIwMDctMDMtMDggMTY6MjY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IElORk8gbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBJTkZPIG1lc3NhZ2VzLgoKMjAwNy0wMy0wOCAxMTo0MDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgc3VwcG9ydCBmb3IgZHJvcHBpbmcgYnVmZmVycyB3aXRoIGN1c3RvbSBHc3RGbG93UmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGJ1ZmZlcnMgd2l0aCBjdXN0b20gR3N0Rmxvd1JldHVybi4KCSAgU2V0IERJU0NPTlQgZmxhZ3Mgb24gb3V0Z29pbmcgYnVmZmVycyBiYXNlZCBvbiBRb1MsIGluY29tbWluZyBESVNDT05UCgkgIGJ1ZmZlcnMgb3IgZHJvcHBlZCBidWZmZXJzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3MgZm9yIG5ldyBjdXN0b20gcmV0dXJuIGNvZGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVzZSBkcm9wIHN1cHBvcnQgaW4gYmFzZSBjbGFzcyB0byBpbXBsZW1lbnQgZHJvcC1wcm9iYWJpbGl0eS4KCjIwMDctMDMtMDcgMTc6MjY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChsb2FkX3BsdWdpbl9mdW5jKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfYnlfbmFtZSksIChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dHJhY2UuYzogKGdzdF90cmFjZV9uZXcpLCAoZ3N0X2FsbG9jX3RyYWNlX3NldF9mbGFnc19hbGwpOgoJICBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoKMjAwNy0wMy0wNyAxNzoxNDo1MyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoKMjAwNy0wMy0wNyAxNzoxMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogQWRkIGRvYyBhYm91dCBzeW5jaHJvbmlzYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBBZGQgZG9jIGFib3V0IHN5bmNocm9uaXNhdGlvbgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA3LTAzLTA3IDE3OjA5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdHJlYW1lci5kb2FwOiBVcGRhdGUgdGhlIGRvYXAgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgIFVwZGF0ZSB0aGUgZG9hcCBmaWxlLgoKMjAwNy0wMy0wNyAxNzowMjo1MSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmVuYW1lIG5vbi1wZXJmZWN0IHRvIGltcGVyZmVjdCBmb3IgTWlrZSBhbmQgZm9yIHRoZSBzYW5jdGl0eSBvZiB0aGUgbGFuZ3VhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBSZW5hbWUgbm9uLXBlcmZlY3QgdG8gaW1wZXJmZWN0IGZvciBNaWtlIGFuZCBmb3IgdGhlIHNhbmN0aXR5IG9mCgkgIHRoZSBsYW5ndWFnZS4KCSAgQWxzbyBtYWtlIHN1cmUgYnVzIG1lc3NhZ2UgZ2V0cyBlbWl0dGVkIGZvciBkYXRhLWluY29udGlndWl0aWVzLgoKMjAwNy0wMy0wNyAxNjo1ODo0MiArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogRW1pdCBidXMgbWVzc2FnZSBpZiBjaGVjay1wZXJmZWN0IGlzIHRydWUgYW5kIHdlIGVuY291bnRlciBhIG5vbi1wZXJmZWN0IHN0cmVhbSBiZXR3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBFbWl0IGJ1cyBtZXNzYWdlIGlmIGNoZWNrLXBlcmZlY3QgaXMgdHJ1ZSBhbmQgd2UgZW5jb3VudGVyIGEKCSAgbm9uLXBlcmZlY3Qgc3RyZWFtIGJldHdlZW4gMiBjb25zZWN1dGl2ZSBidWZmZXJzLgoJICBGaXhlcyAjNDE1Mzk0LgoKMjAwNy0wMy0wNyAxNjo1NTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTIgPT09CgoyMDA3LTAzLTA3IDE2OjQ0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjEyCgoyMDA3LTAzLTA3IDE2OjMxOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wNyAxMjo1MToyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBjb21tb246CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wMSAxODo0NjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBCdW1wIGxpYnRvb2wgdmVyc2lvbmluZy4KCjIwMDctMDMtMDEgMTQ6NDk6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgoyMDA3LTAyLTI4IDE5OjI1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCjIwMDctMDItMjggMTg6NTE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVucmVmIHF1ZXJ5IHR3aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpOgoJICBEb24ndCB1bnJlZiBxdWVyeSB0d2ljZS4KCjIwMDctMDItMjggMTY6NTc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcyB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX29iamVjdF9zdHJpbmcpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcwoJICB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyBHc3RPYmplY3RzLgoKMjAwNy0wMi0yOCAxNjo1NTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgc3R1ZmYgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBzdHVmZiB0byBkb2NzLgoKMjAwNy0wMi0yOCAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIGxhdGVuY3kgcXVlcnkgY29kZS4KCSAgRG9uJ3QgbGVhayBsYXRlbmN5IGV2ZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0yOCAxNjo0Mzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zaW5rKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhbmQgZG9jcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMjggMTY6NDA6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgU21hbGwgY29kZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfaW5mbygpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbygpCgkgIEFkZCBJTkZPIG1lc3NhZ2UgY3JlYXRlIGFuZCBwYXJzZSBjb2RlLgoKMjAwNy0wMi0yOCAxNjozNTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWxzbyByZXBvcnQgdGhlIGxpdmUgcGFyYW1ldGVyIG9mIGEgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X21pbl9tYXhfaW5pdCksIChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwKCSAgKGJpbl9xdWVyeV9sYXRlbmN5X2RvbmUpOgoJICBBbHNvIHJlcG9ydCB0aGUgbGl2ZSBwYXJhbWV0ZXIgb2YgYSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yOCAxMjo1Nzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBwbHVnIHRlc3QgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyB0ZXN0IGxlYWsKCjIwMDctMDItMjggMTI6NDM6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCjIwMDctMDItMjggMTI6NDA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQ29weSB0aGUgY3VycmVudCBnZW5lcmljL3N0YXRlcyBleGFtcGxlIGZyb20gLWJhc2UgYW5kIGFkYXB0IHNvIHdlIGNhbiB1c2UgdGhlIGV4YWN0IHNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBDb3B5IHRoZSBjdXJyZW50IGdlbmVyaWMvc3RhdGVzIGV4YW1wbGUgZnJvbSAtYmFzZSBhbmQgYWRhcHQgc28KCSAgd2UgY2FuIHVzZSB0aGUgZXhhY3Qgc2FtZSBjb2RlIGV2ZXJ5d2hlcmUuCgkgIENoZWNrIGEgU1RBVEVTX0lHTk9SRV9FTEVNRU5UUyBlbnYgdmFyIHdoaWNoIGNhbiBiZSB1c2VkCgkgIHRvIGlnbm9yZSBjZXJ0YWluIGVsZW1lbnQgZmFjdG9yaWVzIGZvciB0aGlzIHRlc3QsIHdoaWNoIGlzCgkgIHdoYXQgaXMgYmVpbmcgZG9uZSBpbiAtYmFzZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNZW50aW9uIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA3LTAyLTI3IDE3OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c190aW1lZF9wb3ApLCAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIEltcGxlbWVudCBnc3RfYnVzX3RpbWVkX3BvcCgpIHRvIGRvIGEgYmxvY2tpbmcgdGltZWQgd2FpdCBmb3IgYQoJICBtZXNzYWdlIHRvIGFycml2ZSBvbiB0aGUgYnVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBvcF90aHJlYWQpLAoJICAoZ3N0X2J1c19zdWl0ZSk6CgkgIFR3byB1bml0IHRlc3RzIGZvciBuZXcgX3RpbWVkX3BvcCgpIGZ1bmN0aW9uLgoKMjAwNy0wMi0yMyAxNzo0MjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEb24ndCByZWYgYSBOVUxMIGNsb2NrIGluIF9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSk6CgkgIERvbid0IHJlZiBhIE5VTEwgY2xvY2sgaW4gX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBEb24ndCBhbGxvdyBhbiBJTlZBTElEIGRlbGF5LgoJICBEb24ndCB0cnkgdG8gY2FsY3VsYXRlIGJhc2VfdGltZSB3aXRoIGFuIGludmFsaWQgc3RhcnRfdGltZS4KCSAgQWxzbyBkaXN0cmlidXRlIGFuZCBub3RpZnkgYSBOVUxMIGNsb2NrIHdoZW4gaXQgd2FzIHNlbGVjdGVkLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBEb24ndCBjcmFzaCB3aGVuIGEgTlVMTCBjbG9jayB3YXMgc2VsZWN0ZWQgaW4gdGhlIHBpcGVsaW5lLgoKMjAwNy0wMi0yMyAxMzo0MjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBTb21lIHNtYWxsIHVwZGF0ZXM6IHVwZGF0ZSBwbHVnaW4gc3lzdGVtIGlkZW50aWZpZXIgcHJlZml4IG1lbnRpb24gb3VyIG5ldyBpbnN0YWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCB1cGRhdGVzOiB1cGRhdGUgcGx1Z2luIHN5c3RlbSBpZGVudGlmaWVyIHByZWZpeAoJICAoJ2dzdHJlYW1lci5uZXQnIHRvICdnc3RyZWFtZXInKSwgbWVudGlvbiBvdXIgbmV3IGluc3RhbGwKCSAgQVBJIGluIGxpYmdzdGJhc2V1dGlscyByYXRoZXIgdGhhbiBsaWJnaW1tZS1jb2RlYywgYWRkCgkgIHJlZmVyZW5jZSB0byB0aGUgb25saW5lIGRvY3MuCgoyMDA3LTAyLTIxIDE1OjM1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaDogUHJldHR5IHN1cmUgQmlsbCBuZXZlciBtYWRlIGEgcG93ZXJwYyB2ZXJzaW9uLiAgUG93ZXJwYyBoYWNrZXJzLCB1c2UgbW9hcCBjbCBjaSB0byBvbmx5IGNoZWNrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFByZXR0eSBzdXJlIEJpbGwgbmV2ZXIgbWFkZSBhIHBvd2VycGMgdmVyc2lvbi4gIFBvd2VycGMgaGFja2VycywKCSAgdXNlIG1vYXAgY2wgY2kgdG8gb25seSBjaGVjayBpbiB3aGF0IGlzIG1lbnRpb25lZCBpbiB0aGUgQ2hhbmdlTG9nLgoKMjAwNy0wMi0yMSAxNTozNDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBGaXggdXAgZG9jdW1lbnRhdGlvbiB0byBsaW5rIHRvIHRoZSBjb3JyZWN0IEdzdEdFcnJvciBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB1cCBkb2N1bWVudGF0aW9uIHRvIGxpbmsgdG8gdGhlIGNvcnJlY3QgR3N0R0Vycm9yIHNlY3Rpb24uCgkgIEFkZCBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIHNpbmNlIHNvbWVvbmUgZWxzZSBhZGRlZCBhIEluZm8gbWVzc2FnZS4KCjIwMDctMDItMjEgMTU6MzA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNYWtlIHN1cmUgdGhhdCB3ZSBhY3R1YWxseSBzaG93IHRoZSBpbXBvcnRhbnQgbWVzc2FnZSBwYXJ0IG9mIGEgd2FybmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBzdXJlIHRoYXQgd2UgYWN0dWFsbHkgc2hvdyB0aGUgaW1wb3J0YW50IG1lc3NhZ2UgcGFydCBvZiBhCgkgIHdhcm5pbmcgbWVzc2FnZS4KCSAgTm8gbmVlZCB0byBjaGVjayBpZiB0aGUgZ2Vycm9yIGlzIG5vdCBOVUxMIHRvIGZyZWU7IGZpcnN0IG9mIGFsbAoJICBnX2ZyZWUgYWNjZXB0cyBOVUxMOyBhbmQgc2Vjb25kIHRoZSBkZWZhdWx0IGVycm9yIGhhbmRsZXIgd291bGQKCSAgc2VnZmF1bHQgaWYgZ2Vycm9yIHdhcyBOVUxMLgoKMjAwNy0wMi0yMSAxMjoxMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZWQgZG9jcyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmVkIGRvY3MgYXMgd2VsbC4KCjIwMDctMDItMjEgMTI6MDE6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBSZW1vdmUgbmV3IG1lc3NhZ2VzIGZvciByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJlbW92ZSBuZXcgbWVzc2FnZXMgZm9yIHJlbGVhc2UuCgoyMDA3LTAyLTIwIDE4OjAyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSB0aGUgZ2hvc3RwYWQgYSBwYXJlbnQgb2YgdGhlIGludGVybmFsIHBhZCBhZ2FpbiBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIERvbid0IHdyaXRlIGNvZGUgdGhhdCByZWxpZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBNYWtlIHRoZSBnaG9zdHBhZCBhIHBhcmVudCBvZiB0aGUgaW50ZXJuYWwgcGFkIGFnYWluIGZvciBiZXR0ZXIgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eS4gRG9uJ3Qgd3JpdGUgY29kZSB0aGF0IHJlbGllcyBvbiB0aGlzIGhvd2V2ZXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KToKCSAgUmVxdWlyZSB0aGF0IHBhcmVudHMgc2hvdWxkIGJlIEdzdEVsZW1lbnRzIGluIHRoZSBoaWVyYXJjaHkgY2hlY2suCgoyMDA3LTAyLTIwIDEwOjQ1OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZXBsYWNlX21lc3NhZ2UpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9xdWVyeV9taW5fbWF4X2luaXQpLAoJICAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChiaW5fcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yMCAxMDoxNjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZCBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZAoJICBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhcmVudCB5ZXQuIFRoaXMgYWxzbwoJICBmaXhlcyBmYWlsZWQgYWN0aXZhdGlvbiBiZWNhdXNlIG9mIHVubGlua2VkIGludGVybmFsIHBhZHMsIHdoaWNoIGluCgkgIHR1cm4gZml4ZXMgdGhlIGltcG9zc2libGUgY2FzZSB3aGVyZSB5b3UgaGF2ZSB0byBhY3RpdmF0ZSBhIHBhZCBiZWZvcmUKCSAgeW91IGNhbiBhZGQgaXQgdG8gYSBydW5uaW5nIGVsZW1lbnQuCgkgIEFsc28gZml4IHRoZSBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSksIChwb3N0X2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFyayBhY3RpdmF0aW9uIG1vZGUgaW4gcHJlX2FjdGl2YXRlIHNvIHRoYXQgd2UgZG9uJ3QgdHJ5IHRvIGFjdGl2YXRlIGluCgkgIGVuZGxlc3MgbG9vcHMuIEZpeGVzICMzODUwODQuCgoyMDA3LTAyLTE5IDE4OjA4OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0IGNvcmUgYmVoYXZpb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoZWNrX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0CgkgIGNvcmUgYmVoYXZpb3VyIHRoYXQgYXNzdW1lcyB3ZSBjYW4gb3BlcmF0ZSBpbiBwdWxsIG1vZGUgaWYgd2UgaGF2ZSBhCgkgIGdldHJhbmdlIGZ1bmN0aW9uLiBGaXJzdCBzdGVwIGF0IGZpeGluZyAjMzg1MDg0LgoKMjAwNy0wMi0xNSAxMjowNTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBkb2NzIGNvdmVyYWdlIGFuZCBzb21lIENoYW5nZUxvZyBzdXJnZXJ5IChhZGQgbWlzc2luZyBuYW1lcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1vcmUgZG9jcyBjb3ZlcmFnZSBhbmQgc29tZSBDaGFuZ2VMb2cgc3VyZ2VyeSAoYWRkIG1pc3NpbmcgbmFtZXMpCgoyMDA3LTAyLTE1IDExOjMyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIGRvYyB1cGRhdGVzLiBTdGFydCByZW5hbWluZyBmcm9tIHN0cmVhbV90aW1lIHRvIHJ1bm5pbmdfdGltZSB3aGVyZSBpdCB3YXMgdXNlZCB3cm9uZ2x5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIFNvbWUgZG9jIHVwZGF0ZXMuIFN0YXJ0IHJlbmFtaW5nIGZyb20gc3RyZWFtX3RpbWUgdG8gcnVubmluZ190aW1lIHdoZXJlCgkgIGl0IHdhcyB1c2VkIHdyb25nbHkuCgoyMDA3LTAyLTE1IDA5OjA3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFuc3dlciBMQVRFTkNZIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgQW5zd2VyIExBVEVOQ1kgcXVlcnkuCgoyMDA3LTAyLTE1IDA4OjQwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMTUgMDg6Mzc6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGRlZmF1bHQgcGFkIGRpc3BhdGNoZXIgYW5kIHF1ZXJ5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBkZWZhdWx0IHBhZCBkaXNwYXRjaGVyIGFuZCBxdWVyeSBmdW5jdGlvbnMuCgoyMDA3LTAyLTE1IDA4OjMxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlIG9sZCB1bnVzZWQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgb2xkIHVudXNlZCBtZXRob2QuCgoyMDA3LTAyLTEzIDE1OjUxOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogRml4IGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBjaGVjawoKMjAwNy0wMi0xMyAxNTozNDoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6IFNvbWUgc21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIHNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBSZXZlcnQgb2xkIGJvZ3VzIGNoYW5nZSB0aGF0IHNob3VsZCBtYWtlIHNlZWtpbmcgd29yayBhZ2Fpbi4KCjIwMDctMDItMTMgMTQ6NTI6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBQb3NzaWJsZSBkeW5hbWljIHJlY29ubmVjdGlvbiBhcGksIHBsdXMgc29tZSB0eXBlIGZpeGVzIHRoZSBvdGhlciB0d28gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2ludGVyZmFjZXMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgUG9zc2libGUgZHluYW1pYyByZWNvbm5lY3Rpb24gYXBpLCBwbHVzIHNvbWUgdHlwZSBmaXhlcyB0aGUgb3RoZXIgdHdvCgkgIGRvY3MuCgoyMDA3LTAyLTEzIDEzOjQwOjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxzbyBjaGVjayBmb3IgYW4gYWJzb2x1dGUgcGF0aCBmb2xsb3dpbmcgZmlsZTovLyBpbiB0aGUgZmlsZXNyYyBlbGVtZW50LiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbHNvIGNoZWNrIGZvciBhbiBhYnNvbHV0ZSBwYXRoIGZvbGxvd2luZyBmaWxlOi8vIGluIHRoZSBmaWxlc3JjCgkgIGVsZW1lbnQuIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgYW5kIGNhbGwgZ19wYXRoX2lzX2Fic29sdXRlKCkgb24gdGhlCgkgIHVuZXNjYXBlZCBsb2NhdGlvbi4KCjIwMDctMDItMTMgMDk6MTA6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4aXN0aW5nIGNhdGVnb3J5IGFuYWx5c2lzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGlzdGluZyBjYXRlZ29yeSBhbmFseXNpcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBGaXggZG9jIGV4YW1wbGUsIGZyYW1lcmF0ZSBpcyBhIGZyYWN0aW9uLgoKMjAwNy0wMi0xMiAxOTo1NToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIEFkZCBjcm9zc3JlZmVyZW5jZXMgdG8gZ2xpYi9nb2JqZWN0IGRvY3MuCgoyMDA3LTAyLTEyIDExOjMyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3koKSB0byBsZXQgc3ViY2xhc3NlcyBxdWVyeSB0aGUgdXBzdHJlYW0KCSAgbGF0ZW5jeS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KCkgdG8gbGV0IHN1YmNsYXNzZXMgcXVlcnkgdGhlIGNvbmZpZ3VyZWQKCSAgbGF0ZW5jeSBpbiB0aGUgc2luay4KCSAgSW1wbGVtZW50IHF1ZXJ5IGFuZCBzZXQgbGF0ZW5jeS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgQXMgc3BvdHRlZCBieSBXaWxsIE5ld3RvbiA8d2lsbCBkb3QgbmV3dG9uIGF0IGdtYWlsIGRvdCBjb20+OiBNYWtlIHN1cmUgd2UKCSAgZG9uJ3QgY29udGludWUgcHJlcm9sbCB3aGVuIHdlIGFyZSBmbHVzaGluZy4gRml4ZXMgIzQwNTI4NC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChjaGFuZ2Vfc3RhdGVfdGltZW91dCksCgkgIChxdWl0X3RpbWVvdXQpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc3RyZXNzX3N1aXRlKToKCSAgVGVzdCBmb3IgIzQwNTI4NC4KCjIwMDctMDItMTIgMTA6NTA6MjAgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgoyMDA3LTAyLTExIDE5OjU5OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBwYXRoIHRvIGNvcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggcGF0aCB0byBjb3JlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgUmVmaXggZG9jcyBieSBhbHNvIHJlbmFtaW5nICdpbnRlcmZhY2UnIHRvICdpZmFjZScgaW4gaW1wbGVtZW50YXRpb24uCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgRG9jdW1lbnQgbW9yZS4KCjIwMDctMDItMTAgMTg6MzE6MTIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogUmVwbGFjZSBpbnRlcmZhY2UgcGFyYW1ldGVyIG5hbWUgYnkgaWZhY2UgYXMgaW50ZXJmYWNlIGlzIGEgcmVzZXJ2ZWQga2V5d29yZCBpbiBWaXN1YWwgU3R1ZGlvIGZvciBDKysgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6KGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIFJlcGxhY2UgaW50ZXJmYWNlIHBhcmFtZXRlciBuYW1lIGJ5IGlmYWNlIGFzIGludGVyZmFjZSBpcwoJICBhIHJlc2VydmVkIGtleXdvcmQgaW4gVmlzdWFsIFN0dWRpbyBmb3IgQysrIHByb2plY3RzIHNvIGl0IHJlbW92ZXMKCSAgYSBidWlsZCBlcnJvciBmb3IgYXBwbGljYXRpb24gZGV2ZWxvcHBlcnMgdXNpbmcgVlMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6KGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBhIGJ1ZyBvbiBXaW5kb3dzIGluIHVyaSBmb3JtYXQgY2hlY2suIE5vdyB0aGUgcHJlZml4IGNoZWNrZWQKCSAgaXMgZmlsZTovLyBhbmQgbmV4dCB3ZSBjaGVjayBpZiB0aGUgcGF0aCBhZnRlciBmaWxlOi8vIGlzIGFic29sdXRlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Z3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTAyLTA5IDE1OjI1OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSwgdGVzdF90ZWUpOiBEaXNhYmxlIHRlZSB0ZXN0IHVudGlsIEkKCSAgaGF2ZSB0aW1lIHRvIGZpeCBpdCA6LSgKCjIwMDctMDItMDkgMTM6NTk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbSAobm9pbnN0X0hFQURFUlMpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgoyMDA3LTAyLTA5IDEzOjQ1OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jICh0ZXN0X3RlZSk6IEFkZCB0ZXN0cyBmb3IgcHVzaCBhbmQgcHVsbCB0ZWUgYmVoYXZpb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMgKHRlc3RfdGVlKTogQWRkCgkgIHRlc3RzIGZvciBwdXNoIGFuZCBwdWxsIHRlZSBiZWhhdmlvci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IERlc2NyaWJlIGhhcy1zaW5rLWxvb3AgYmV0dGVyLCBhbmQKCSAgbWFyayBhcyBkZXByZWNhdGVkIGFzIHdlbGwgYXMgdW5pbXBsZW1lbnRlZC4gSXQgd2FzIGEgY3JhY2sgaWRlYS4KCSAgQWRkIHN1cHBvcnQgZm9yIHRlZSBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBvZmYgYnkgZGVmYXVsdC4KCjIwMDctMDItMDkgMTM6NDE6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jIChsb2FkX2ZlYXR1cmUsIGxvYWRfcGx1Z2luKTogRHJvcCBzb21lIG5vcm1hbC1jYXNlIGxvZ3MgZG93biB0byBMT0csIHJhaXNlIGVycm9ycyB0byBXQVJOSU5HLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYyAobG9hZF9mZWF0dXJlLCBsb2FkX3BsdWdpbik6IERyb3Agc29tZQoJICBub3JtYWwtY2FzZSBsb2dzIGRvd24gdG8gTE9HLCByYWlzZSBlcnJvcnMgdG8gV0FSTklORy4KCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6IERvbid0IGxvZyBiZWZvcmUgY2FsbGluZyBhIGZ1bmN0aW9uCgkgIHRoYXQgbG9ncy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKTogTGVzcyBkZWJ1ZyBvbiBwcm9ncmFtCgkgIGV4aXQgKHJlZ2lzdHJ5IGZpbmFsaXplKS4KCSAgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luLCBnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOiBObyBuZWVkIGZvciBhCgkgIERFQlVHIGxvZyB3aGVuIHdlIGVtaXQgc2lnbmFscyB0aGF0IHBlb3BsZSBkb24ndCBldmVuIGhhdmUgdGhlCgkgIGNoYW5jZSB0byBjb25uZWN0IHRvLgoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6IExlc3MgbG9nZ2luZyBpbiB0aGUgbm9ybWFsIGNhc2UuCgoyMDA3LTAyLTA1IDEzOjE1OjQ0ICswMDAwICBNaWNoYWwgQmVuZXMgPG1pY2hhbC5iZW5lc0BpdG9uaXMudHY+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ29ycmVjdGx5IGdlbmVyYXRlIEVPUyBmb3Igbm9uLXNlZWthYmxlIGZpbGVzLiBXZSBkb24ndCBoYXZlIGEgdG90YWwgbGVuZ3RoIGZvciB0aGVtIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNaWNoYWwgQmVuZXMgPG1pY2hhbCBkb3QgYmVuZXMgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIENvcnJlY3RseSBnZW5lcmF0ZSBFT1MgZm9yIG5vbi1zZWVrYWJsZSBmaWxlcy4gV2UgZG9uJ3QgaGF2ZSBhIHRvdGFsCgkgIGxlbmd0aCBmb3IgdGhlbSBhbmQgd291bGQgZ2V0IGFuIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaWYgd2Ugb25seQoJICBzcGVjaWFsLWNhc2VkIGZvciByZWd1bGFyIGZpbGVzLiAoRml4ZXM6ICM0MDQ1NjkpCgoyMDA3LTAyLTA1IDA4OjE1OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28gdGVzdHMgdGhlIG5ld2x5IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28KCSAgdGVzdHMgdGhlIG5ld2x5IGFkZGVkIGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBzdXBwb3J0LgoKMjAwNy0wMi0wNCAxNjoxNDoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOiBUaGUga2xhc3Mgc3RyaW5nIGlzIG5vdCBhIGhpZXJhcmNoeS4gQWRkIHJlZmVyZW5jZSB0byB0aGUgZGVzaWduIGRvYyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgVGhlIGtsYXNzIHN0cmluZyBpcyBub3QgYSBoaWVyYXJjaHkuIEFkZCByZWZlcmVuY2UgdG8gdGhlIGRlc2lnbiBkb2MKCSAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGNvbW1vbiB0eXBlcy4KCjIwMDctMDItMDIgMTg6MDg6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KToKCSAgUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgoyMDA3LTAyLTAyIDEyOjI3OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEdpdmUgZXhhbXBsZSBmb3IgbmV0d29yayBzdHJlYW1pbmcgKCMzNTE5OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgR2l2ZSBleGFtcGxlIGZvciBuZXR3b3JrIHN0cmVhbWluZyAoIzM1MTk5OCkKCjIwMDctMDItMDIgMTE6NDg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbGF0ZW5jeSksCgkgIChnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBuZXcgTEFURU5DWSBldmVudCB0byBjb25maWd1cmUgbGF0ZW5jeSBpbiBhIHBpcGVsaW5lLgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbGF0ZW5jeQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2xvc3RfcHJlcm9sbCksIChnc3RfbWVzc2FnZV9uZXdfcHJlcm9sbGVkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19sYXRlbmN5KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9sb3N0X3ByZXJvbGwpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIG1lc3NhZ2VzIHVzZWQgaW4gZHJhZnQtbGF0ZW5jeS4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3ByZXJvbGxlZAoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19sYXRlbmN5CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgSW1wbGVtZW50ZWQgbmV3IGxhdGVuY3kgcXVlcnkgYXMgaW4gZGVzaWduIGRvYy4KCSAgQVBJOiBnc3RfcXVlcnlfbmV3X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeQoKMjAwNy0wMi0wMiAxMTozMzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBTbGlnaHQgcmVkZXNpZ24gdG8gYWxsb3cgZm9yIGR5bmFtaWMgbGF0ZW5jeSBhZGp1c3RtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNsaWdodCByZWRlc2lnbiB0byBhbGxvdyBmb3IgZHluYW1pYyBsYXRlbmN5IGFkanVzdG1lbnRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBGaXggc29tZSB0eXBvcy4KCjIwMDctMDItMDIgMTA6NDE6MjkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyCgkgIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaXMgd2FzIGdub21ldmZzc3JjIGlzIGxpbmtlZCBmb3IgdGhvc2UgaWYKCSAgaW5zdGFsbGVkIGFzIGl0IGNhbiBoYW5kbGUgaXQgKCM0MDMxNzIpCgoyMDA3LTAyLTAxIDE5OjAwOjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IERvbid0IHB1dCB0aGUgcHJldmlvdXNseSBhZGRlZCBkZXN0cm95IG5vdGlmeSBpbiB0aGUgR3N0Q29sbGVjdERhdGEgc3RydWN0IGFzIGFsbCBpdCcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9uJ3QgcHV0IHRoZSBwcmV2aW91c2x5IGFkZGVkIGRlc3Ryb3kgbm90aWZ5IGluIHRoZSBHc3RDb2xsZWN0RGF0YQoJICBzdHJ1Y3QgYXMgYWxsIGl0J3MgcGFkZGluZyBpcyBhbHJlYWR5IHVzZWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gYnJlYWsKCSAgQUJJLiBJbnN0ZWFkIHB1dCBpbiB0aGUgcGFkJ3MgR09iamVjdCBkYXRhIGZvciBub3cuIFRoaXMgc2hvdWxkIGJlCgkgIGNsZWFuZWQgdXAgZm9yIDAuMTEgKCM0MDIzOTMpLgoKMjAwNy0wMi0wMSAxNzo1MjoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIGRlc3Ryb3kgbm90aWZpY2F0aW9uIGZvciBjdXN0b20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBUEk6IEFkZCBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgZGVzdHJveSBub3RpZmljYXRpb24gZm9yIGN1c3RvbQoJICBHc3RDb2xsZWN0RGF0YSB3aGVuIGFkZGluZyBuZXcgcGFkcyBpbiBHc3RDb2xsZWN0UGFkcyAoIzQwMjM5MykuCgoyMDA3LTAyLTAxIDE3OjEwOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcG8vc3YucG86IFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCjIwMDctMDEtMzEgMTE6NDI6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogRml4IHRoZSBwcmV2aW91cyBjaGFuZ2UsIHRoaXMgaXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMgYW5kIG5vdCBhIGhpZXJhcmNoeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBGaXggdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBhIGxpc3Qgb2YgY2F0ZWdvcmllcyBhbmQgbm90IGEgaGllcmFyY2h5LgoKMjAwNy0wMS0zMSAxMTowMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgaW5mbyBhYm91dCBob3cgdG8gZ2V0IGEgbGlzdCBvZiB1c2VkIGNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGluZm8gYWJvdXQgaG93IHRvIGdldCBhIGxpc3Qgb2YgdXNlZCBjbGFzc2VzLgoKMjAwNy0wMS0zMCAxOToxMjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IGxlYWsgZm91bmQgY2FwcyBpbiBjaGFpbiBmdW5jdGlvbiAobm8gaWRlYSB3aHkgdGhhdCBuZXZlciBzaG93ZWQgdXAgYXMgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluX2RvX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBsZWFrIGZvdW5kIGNhcHMgaW4gY2hhaW4gZnVuY3Rpb24gKG5vIGlkZWEgd2h5IHRoYXQgbmV2ZXIKCSAgc2hvd2VkIHVwIGFzIGEgbGVhayBhbnl3aGVyZSkuCgoyMDA3LTAxLTMwIDE1OjA0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IEZpeCBhbmQgZXhwYW5kIEdzdFBsdWdpbkRlc2MgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgRml4IGFuZCBleHBhbmQgR3N0UGx1Z2luRGVzYyBBUEkgZG9jcy4KCjIwMDctMDEtMjkgMTU6NTQ6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogY29tbWVudCBhYm91dCByZWZpbmluZyB0aGUgeG1sIGRlcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb21tZW50IGFib3V0IHJlZmluaW5nIHRoZSB4bWwgZGVwcwoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIGNvbW1lbnRzIGFib3V0IG1vdmluZyBhd2F5IGZyb20gamFkZSBmb3IgZG9jcwoJICAqIGdzdC9nc3QuYzoKCSAgcmVjb21taXQgdGhlIGlmZGVmcyB0byB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeQoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICB0aGlzIGJyZWFrIGlzIG9ic29sZXRlCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGJldHRlciBHU1RfRUxFTUVOVF9ERVRBSUxTIGRvY3MsIGFkZCBjb21tZW50IGFib3V0IHRyYW5zbGF0aW9uCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgcmVtb3ZlIGVvbCBzbGFzaAoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9zaWduYWxfb2JqZWN0X2dldF90eXBlKToKCSAgYWRkIEdfVU5MSUtFTFkgYXMgdXN1YWwKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBhZGQgZmFsbCB0cmh1IGNvbW1lbnQKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgY29tbWVudCB0eXBvIGFuZCBmb3JtYXR0aW5nCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSksCgkgIChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgcmVtb3ZlIG9ic29sZXRlIGJyZWFrcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgYWRkIEZJWE1FIDAuMTEgYW5kIHJlbW92ZSBjcHAgY29tbWVudAoKMjAwNy0wMS0yOSAxNTowMjoxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggcHJpbnQgc3RhdGVtZW50IGluIGFuIGV2ZW4gbW9yZSBwb3J0YWJsZSB3YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgRml4IHByaW50IHN0YXRlbWVudCBpbiBhbiBldmVuIG1vcmUgcG9ydGFibGUgd2F5LgoKMjAwNy0wMS0yOSAxMzo0MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9ST1VORF9ET1dOXyogbWFjcm9zICgjNDAxNzgxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgR1NUX1JPVU5EX0RPV05fKiBtYWNyb3MgKCM0MDE3ODEpLgoKMjAwNy0wMS0yNyAxODo0NDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoKMjAwNy0wMS0yNiAxODoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgc29tZSBhdWRpb2NvbnZlcnRzIGFuZCBhdWRpb3Jlc2FtcGxlIHRvIHRoZSBwaXBlbGluZSwgYW5kIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIHNvbWUgYXVkaW9jb252ZXJ0cyBhbmQgYXVkaW9yZXNhbXBsZSB0byB0aGUgcGlwZWxpbmUsIGFuZCBzb21lCgkgIG1vcmUgY29tbWVudHMgYW5kIGVycm9yIGhhbmRsaW5nLgoKMjAwNy0wMS0yNiAxMzowNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBGaXggdHlwbyAoIzQwMDk4NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRml4IHR5cG8gKCM0MDA5ODcpLgoKMjAwNy0wMS0yNiAwOTozNzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEluaXQgY2FwcyBmbGFncyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgSW5pdCBjYXBzIGZsYWdzIHRvby4KCjIwMDctMDEtMjUgMTc6NTQ6MDcgKzAwMDAgIEppbmRyaWNoIE1ha292aWNrYSA8amluZHJpY2gubWFrb3ZpY2tAaXRvbmlzLnR2PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IElmIG5vdCB1c2luZyBtbWFwJ2VkIGZpbGVzIHRyeSB0byBzZWVrIHRvIHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUgc3RhcnQgdG8gZGV0ZXJtaW5lIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmluZHJpY2ggTWFrb3ZpY2thIDxqaW5kcmljaC5tYWtvdmljayBhdCBpdG9uaXMgZG90IHR2PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgSWYgbm90IHVzaW5nIG1tYXAnZWQgZmlsZXMgdHJ5IHRvIHNlZWsgdG8gdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZQoJICBzdGFydCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBjYW4gc2VlayBhdCBhbGwuIFRoaXMgZml4ZXMgdGhlIGNhc2UKCSAgb2YgMkdCKyBmaWxlcyBvdmVyIE5GUywgd2hlcmUgc2Vla3MgaW4gdGhlIGZpcnN0IDJHQiBjYW4gc3VjY2VlZCBidXQKCSAgc2Vla3MgZm9yIGV2ZXJ5dGhpbmcgYWZ0ZXJ3YXJkcyBmYWlsLiBGaXhlcyAjNDAwNjU2CgoyMDA3LTAxLTI1IDE3OjQxOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgcmVmY291bnQgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoX2dzdF9jYXBzX2ZyZWUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgIEFkZCBzb21lIHJlZmNvdW50IGRlYnVnZ2luZy4KCSAgTWFrZSBnc3Rfc3RhdGljX2NhcHNfZ2V0IHRocmVhZHNhZmUsIHdoaWNoIGlzIG5lZWRlZCB3aGVuIGF1dG9wbHVnZ2luZwoJICBpbiBtdWx0aXBsZSBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDctMDEtMjUgMTA6NTA6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGF2aWQgU2NobGVlZiA8ZHMgYXQgc2NobGVlZiBkb3Qgb3JnPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jb3B5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4KCSAgZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgoyMDA3LTAxLTI1IDEwOjE0OjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHByaW50IHN0YXRlbWVudHMsICIleCIgaXMgZm9yIGd1aW50LiBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgSW4gcHJpbnQgc3RhdGVtZW50cywgIiV4IiBpcyBmb3IgZ3VpbnQuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeC4KCjIwMDctMDEtMjQgMTE6MzI6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogU21hbGwgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgU21hbGwgZml4LgoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgSW1wbGVtZW50IHNpbmdsZSBxdWV1ZSBncm93dGggc3lzdGVtLgoJICBUaGlzIHVzZXMgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcywgYW5kIHdpbGwgZ3JvdyBzaW5nbGUgcXVldWVzIGJ5CgkgIHRoYXQgbXVjaCBpZiBvbmUgZ29lcyBmdWxsIHdoZXJlYXMgdGhlcmUgYXJlIG90aGVycyBlbXB0eS4gVGhpcyBpcwoJICBjYWxsZWQgZXh0cmEtbW9kZSBpbiB0aGUgY29kZS4KCSAgV2hlbiBhIHNpbmdsZSBxdWV1ZSdzIGxldmVscyBnbyBiYWNrIGJlbG93IHRoZSBpbml0aWFsIG1heC1zaXplCgkgIGxpbWl0cywgaXQgaXMgbm8gbG9uZ2VyIGluIGV4dHJhLW1vZGUuIFRoaXMgaXMgdG8gZW5zdXJlIHdlIGRvbid0CgkgIGNvbnN1bWUgdG9vIG11Y2ggbWVtb3J5LgoJICBGaXhlcyAjMzk5ODc1CgoyMDA3LTAxLTIzIDEzOjUwOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApOgoJICBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwKCSAgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHdoYXQgdGhleSBuZWVkCgkgIHRvIGRvIGlmIGEgdXNlciBmaWxlcyBhIGJ1ZyBhZ2FpbnN0IHRoZWlyIGFwcGxpY2F0aW9uLgoKMjAwNy0wMS0yMiAxNjowMDozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgcHJldmlvdXMgaGFjayBvZiB1bnNldHRpbmcgdGhlIGZsdXNoaW5nIGZsYWcgZm9yIHRoZSBzb3VyY2UgcGFkIGluc3RlYWQgb2YgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIFJlbW92ZSBwcmV2aW91cyBoYWNrIG9mIHVuc2V0dGluZyB0aGUgZmx1c2hpbmcgZmxhZyBmb3IgdGhlIHNvdXJjZSBwYWQKCSAgaW5zdGVhZCBvZiBhY3RpdmF0aW5nIGl0LiBJbnN0ZWFkLCBmaXggdGhlIHNvdXJjZSBwYWQgYWN0aXZhdGUgZnVuY3Rpb24KCSAgc28gdGhhdCBpdCBubyBsb25nZXIgZGVwZW5kcyBvbiBoYXZpbmcgYSBwYXJlbnQgc2V0IG9yIG5vdC4KCjIwMDctMDEtMjIgMTQ6MzA6MjcgKzAwMDAgIENhcmxvcyBTYW5tYXJ0aW4gRG9taW5ndWV6IDxjc2FubWFydGluQGlnYWxpYS5jb20+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ2FybG9zIFNhbm1hcnRpbiBEb21pbmd1ZXogPGNzYW5tYXJ0aW5AaWdhbGlhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgoyMDA3LTAxLTIxIDIwOjI0OjExICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggdHdvIGRvY3MgdHlwb2VzICgjMzk5MDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR3byBkb2NzIHR5cG9lcyAoIzM5OTA5NCkuCgoyMDA3LTAxLTE5IDA5OjE1OjIxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgZ3N0LXBsdWdpbnMtYmFzZS9nc3QvdXRpbHMvIHRvIExEX0xJQlJBUllfUEFUSCBzbyB0aGF0IHBsdWdpbnMgZGVwZW5kaW5nIG9uIGxpYmdzdGJhc2V1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWJhc2UvZ3N0L3V0aWxzLyB0byBMRF9MSUJSQVJZX1BBVEggc28gdGhhdCBwbHVnaW5zCgkgIGRlcGVuZGluZyBvbiBsaWJnc3RiYXNldXRpbHMgY2FuIHdvcmsgaW4gdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQuCgoyMDA3LTAxLTE4IDEyOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJyBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJwoJICBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgoyMDA3LTAxLTE3IDE0OjMzOjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZHluYW1pY2FsbHkgY3JlYXRpbmcgc2luZ2xlIHF1ZXVlcywgYWN0aXZhdGUgc2lua3BhZCBiZWZvcmUgYWRkaW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgV2hlbiBkeW5hbWljYWxseSBjcmVhdGluZyBzaW5nbGUgcXVldWVzLCBhY3RpdmF0ZSBzaW5rcGFkIGJlZm9yZSBhZGRpbmcKCSAgaXQuCgkgIFdlIHNob3VsZCBiZSBkb2luZyB0aGUgc2FtZSB0aGluZyBmb3IgdGhlIHNvdXJjZSBwYWQsIGJ1dCB3ZSBjYW4ndAoJICBzaW5jZSBpdCB3b3VsZCBjYWxsIGEgbWV0aG9kIHdoaWNoIG5lZWRzIHRoZSBwYXJlbnQgdG8gYmUgc2V0IGluIG9yZGVyCgkgIHRvIHdvcmsgcHJvcGVydGx5LiBJbnN0ZWFkIG9mIGFjdGl2YXRpbmcgdGhlIHNvdXJjZSBwYWQsIHdlIGp1c3QgdW5zZXQKCSAgdGhlIGZsdXNoaW5nIGZsYWcsIHdoaWNoIGlzIHRoZSBtaW5pbWFsIHJlcXVpcmVtZW50IGZvciBhZGRpbmcgYSBwYWQKCSAgdG8gYW4gZWxlbWVudCBpbiBhIHN0YXRlIGdyZWF0ZXIgdGhhbiBSRUFEWS4KCjIwMDctMDEtMTcgMTQ6MjY6NDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBEWUxEX0xJQlJBUllfUEFUSCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGFsc28gdXNlIHRoaXMgc2NyaXB0IG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIERZTERfTElCUkFSWV9QQVRIIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gYWxzbyB1c2UgdGhpcyBzY3JpcHQgb24KCSAgTWFjIE9TIFguCgoyMDA3LTAxLTE3IDEyOjMxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgQUJJIHN0cnVjdHMgZm9yIEhQUEEgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSAgQWRkIEFCSSBzdHJ1Y3RzIGZvciBIUFBBIChzZWUgIzM5Mzc5NikuCgoyMDA3LTAxLTE2IDA5OjU3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogQWN0dWFsbHkgd3JpdGUgQUJJIHN0cnVjdHMgdG8gdGhlIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBHU1RfQUJJIGVudmlyb25tZW50IHZhcmlhYmxlLCBhcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICBBY3R1YWxseSB3cml0ZSBBQkkgc3RydWN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gdGhlIEdTVF9BQkkKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIHRoZSBtZXNzYWdlIHdlIHByaW50IGNsYWltcyB3ZSB3b3VsZC4KCjIwMDctMDEtMTUgMTQ6NTE6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6IEZpeCBoZWFkZXIgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgRml4IGhlYWRlciBjb21tZW50LgoKMjAwNy0wMS0xNSAxNDozOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQ2hhbmdlIHRhZyB0eXBlIGZyb20gU1RSSU5HIHRvIERPVUJMRS4gQXBwbHkgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIG15IHByZXZpb3VzIHR3byBlbnRyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIENoYW5nZSB0YWcgdHlwZSBmcm9tIFNUUklORyB0byBET1VCTEUuIEFwcGx5IENoYW5nZUxvZyBzdXJnZXJ5IGZvciBteQoJICBwcmV2aW91cyB0d28gZW50cmllcy4KCjIwMDctMDEtMTUgMTM6NTc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgoyMDA3LTAxLTE1IDEyOjE4OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLCAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9tYWtlX2RhdGEpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoKMjAwNy0wMS0xMyAxMDozMzo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogQWxsb3cgZ2V0cmFuZ2UoKSB0byByZXR1cm4gYnVmZmVycyB3aXRoIG90aGVyIGNhcHMsIHdoaWxlIHdlIGZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IEFsbG93CgkgIGdldHJhbmdlKCkgdG8gcmV0dXJuIGJ1ZmZlcnMgd2l0aCBvdGhlciBjYXBzLCB3aGlsZSB3ZSBmaXgKCSAgZGVtdXhlcnMgYW5kIHR5cGVmaW5kLCBvciBvdGhlcndpc2UgY2hhbmdlIHBhcnQtbmVnb3RpYXRpb24udHh0LgoKMjAwNy0wMS0xMiAyMToxMzozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6IEZhY3RvciBzdGFydC9zdG9wIGludG8gdGhpcyBwcml2YXRlIGZ1bmN0aW9uIGluc3RlYWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICBGYWN0b3Igc3RhcnQvc3RvcCBpbnRvIHRoaXMgcHJpdmF0ZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHBhcnRpYWxseQoJICBpbiBhY3RpdmF0ZSBmdW5jdGlvbnMgYW5kIHBhcnRpYWxseSBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBGaXhlcyBzZXR1cCBiZWZvcmUgdGhlIGVsZW1lbnQgaGFzIGNoYW5nZWQgZnJvbSBSRUFEWS0+UEFVU0VELCBhcwoJICBpcyB0aGUgY2FzZSBpbiBwdWxsLW1vZGUgcGlwZWxpbmVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCkKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCk6IFJlZmFjdG9yIHRvIHVzZQoJICBnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUoKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBSZW1vdmVkLCBub3QgbmVlZGVkIGFueSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6CgkgIFRydW5jYXRlIGJlZm9yZSBmaXhhdGluZy4KCjIwMDctMDEtMTIgMTg6MDY6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IERvbid0IHNldF9jYXBzKCkgaWYgdGhlIHJlc3VsdCBvZiBmaXhhdGluZyBpcyBBTlksIGFzIGl0Jy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOgoJICBEb24ndCBzZXRfY2FwcygpIGlmIHRoZSByZXN1bHQgb2YgZml4YXRpbmcgaXMgQU5ZLCBhcyBpdCdzIG5vdAoJICBzdXBwb3J0ZWQsIGFuZCBub3QgbmVjZXNzYXJ5IGluIHRoZSBjYXNlIG9mIGEgbGluayB3aXRoIG5vCgkgIHRlbXBsYXRlIGNhcHMgb24gZWl0aGVyIHNpZGUuIEZpeGVzIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYyBpbgoJICBzb21lIHB1bGwtbW9kZSB0ZXN0cy4KCjIwMDctMDEtMTIgMTU6NTY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChfR3N0QmFzZVRyYW5zZm9ybVByaXZhdGUpOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQsIGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoX0dzdEJhc2VUcmFuc2Zvcm1Qcml2YXRlKToKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0LCBnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVHJhY2sgdGhlIGFjdGl2YXRpb24gbW9kZS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogSW4gcHVsbCBtb2RlLCB3aGVuIGFjdGl2YXRpbmcgdGhlCgkgIHNyYyBwYWQsIGFmdGVyIGFjdGl2YXRpbmcgdGhlIHNpbmsgcGFkLCBhY3RpdmF0ZSB0aGUgc2luayBwYWQncwoJICBwZWVyLCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19maXhhdGUpOiBBZGQgZml4YXRlCgkgIHZtZXRob2QsIGFzIGluIGJhc2VzaW5rLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogUmVmb3JtYXQgZG9jcywgYWRkIGZpeGF0ZSB2bWV0aG9kLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2Fwcyk6IEluIHB1bGwKCSAgbW9kZSwgZmlyc3QgcHJveHkgdGhlIHNldGNhcHMgdG8gdGhlIHBlZXIgcGFkLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfZml4YXRlKTogQWRkIGEgZml4YXRlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlCgkgIG5ldyBmaXhhdGUgdm1ldGhvZC4KCSAgKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9hY3RpdmF0ZV9wdWxsKTogUmVuYW1lIGZyb20KCSAgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsLgoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IE5ldyBmdW5jdGlvbiwgcGVyZm9ybXMgbmVnb3RpYXRpb24KCSAgaW4gcHVsbCBtb2RlIGJlZm9yZSBjYWxsaW5nIDo6YWN0aXZhdGVfcHVsbCgpLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCk6IEFjdHVhbGx5IGNhbGwgdGhlIGFjdGl2YXRlX3B1bGwKCSAgdm1ldGhvZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBJIGhhdmUgbm8gaWRlYSBob3cKCSAgdGhpcyB3b3JrZWQgYmVmb3JlLiBOZWdvdGlhdGUgYmVmb3JlIGNhbGxpbmcgYWN0aXZhdGVfcHVsbC4KCjIwMDctMDEtMTIgMTU6NDg6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogUmVmdXNlIHRvIGFjdGl2YXRlIHVubGlua2VkIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGNvcnJlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IFJlZnVzZSB0byBhY3RpdmF0ZSB1bmxpbmtlZAoJICBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlLiBJbiBhZGRpdGlvbiB0byBiZWluZyBjb3JyZWN0LCBmaXhlcwoJICBmaWxlc3JjICEgZGVjb2RlYmluICEgaWRlbnRpdHkgISBmYWtlc2luay4KCSAgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBEb24ndCBjYWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMoKSBpZiB0aGUgY2FwcyBjaGFuZ2VzOyBpbnN0ZWFkIGVycm9yIG91dCB3aXRoCgkgIEdTVF9GTE9XX05PVF9ORUdPVElBVEVELCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgoyMDA3LTAxLTEyIDE1OjM5OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGggbW9yZSBwb2xpY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCBtb3JlIHBvbGljeS4KCjIwMDctMDEtMTIgMTI6NDg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay86IEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdCBiZWxvbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdAoJICBiZWxvbmdzLgoKMjAwNy0wMS0xMiAxMDo1Mzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBiZWZvcmVtZW50aW9uZWQgR3N0VGFnU2V0dGVyIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X2R1bW15X2VuY19hZGRfaW50ZXJmYWNlcyksCgkgIChnc3RfZHVtbXlfZW5jX2Jhc2VfaW5pdCksIChnc3RfZHVtbXlfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2R1bW15X2VuY19pbml0KSwgKHRhZ19saXN0X2ZvcmVhY2gpLCAodGFnX3NldHRlcl9saXN0X2xlbmd0aCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3NldHRlcl9zdWl0ZSk6CgkgIEFkZCBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgYmVmb3JlbWVudGlvbmVkIEdzdFRhZ1NldHRlciBidWcuCgoyMDA3LTAxLTEyIDEwOjQ4OjQ5ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBnc3RfdGFnX2xpc3RfbWVyZ2UoKSByZXR1cm5zIGEgbmV3IGxpc3QsIHNvIGl0J3Mgbm90IHRoZSBiZXN0IGlkZWEgdG8gaW5nb3JlIGl0cyByZXR1cm4gdmFsdWUuIEVmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncyk6CgkgIGdzdF90YWdfbGlzdF9tZXJnZSgpIHJldHVybnMgYSBuZXcgbGlzdCwgc28gaXQncyBub3QgdGhlIGJlc3QgaWRlYQoJICB0byBpbmdvcmUgaXRzIHJldHVybiB2YWx1ZS4gRWZmZWN0aXZlbHkgbWVhbnQgdGhhdCB0YWdzIGNvdWxkIG9ubHkKCSAgYmUgbWVyZ2VkIG9uIGEgR3N0VGFnU2V0dGVyIG9uY2UgdXNpbmcgX21lcmdlX3RhZ3MoKS4gRml4ZXMgIzM5NTU1NC4KCSAgQWxzbyBhZGQgZnVuY3Rpb24gZ3VhcmQgdG8gcmVxdWlyZSBhIG5vbi1OVUxMIHRhZ2xpc3QgYXMgaW5wdXQgKGhhcwoJICBhbHdheXMgYmVlbiBzbyBkdWUgdG8gZ3N0X3RhZ19saXN0X2NvcHkoKSwganVzdCBtYWtpbmcgaXQgZXhwbGljaXQpLgoKMjAwNy0wMS0xMSAxNTowMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgYWRkaXRpb25zOiBtZW50aW9uIG5ldyBBUEkgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHRoZSB2YXJpb3VzIHN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIGFkZGl0aW9uczogbWVudGlvbiBuZXcgQVBJIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBhdCB0aGUKCSAgdmFyaW91cyBzdGFnZXM7IHNob3J0IGJsb2IgYWJvdXQgbmV3IGdzdC1pbnNwZWN0IGludHJvc3BlY3Rpb24KCSAgb3B0aW9uOyBtZW50aW9uIHBvdGVudGlhbCBmdXR1cmUgcHJvYmxlbSB3aXRoIHBsdWdpbnMgdGhhdCBoYXZlCgkgIGEgZHluYW1pYyBsaXN0IG9mIGVsZW1lbnRzIChzdWNoIGFzIGxhZHNwYSwgcGl0ZmRsbCwgbGlidmlzdWFsKS4KCjIwMDctMDEtMTEgMTQ6MTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gb3B0aW9uIHRvIGdzdC1pbnNwZWN0LCBzbyB3ZSBjYW4gaW50cm9zcGVjdCBwbHVnaW4gZmlsZXMgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyksCgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19wcm90b2NvbHMpLAoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm8pLCAobWFpbik6CgkgIEFkZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBvcHRpb24gdG8gZ3N0LWluc3BlY3QsIHNvIHdlIGNhbgoJICBpbnRyb3NwZWN0IHBsdWdpbiBmaWxlcyBhbmQgZ2V0IG1hY2hpbmUtcGFyc2FibGUgb3V0cHV0IHRoYXQgY29ycmVzcG9uZHMKCSAgdG8gdGhlIGxhc3QgYml0IG9mIHRoZSBtaXNzaW5nLXBsdWdpbiBpbnN0YWxsZXIgc3RyaW5nIChzbWFsbCBnb3RjaGE6CgkgIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgcmFua3MpLgoKMjAwNy0wMS0xMSAxMzo0NTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29tbWl0IGJpbmFyeSByZWdpc3RyeSAoZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2VlICMzNTk2NTMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIGNvbW1pdCBiaW5hcnkgcmVnaXN0cnkgKGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNlZSAjMzU5NjUzKQoKMjAwNy0wMS0xMSAxMDo0ODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogRml4ICdtYWtlIGNoZWNrJyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKHRlc3RfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIEZpeCAnbWFrZSBjaGVjaycgdG9vLgoKMjAwNy0wMS0xMCAyMToyNDowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZSBub3Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZQoJICBub3Rlcy4KCjIwMDctMDEtMTAgMjE6MTU6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCwgdW0sIG9uZSB3YXkgdGhhdCBwdWxsLW1vZGUgbmVnb3RpYXRpb24gbWlnaHQgd29yaz8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoLCB1bSwgb25lIHdheSB0aGF0CgkgIHB1bGwtbW9kZSBuZWdvdGlhdGlvbiBtaWdodCB3b3JrPwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24KCSAgdGhhdCB0aGUgcGFkIG11c3QgYmUgYSBzcmMgcGFkOyBtYWtlcyBzZW5zZSB0byBjYWxsIGl0IHRoZSBvdGhlcgoJICB3YXkgaW4gcHVsbCBtb2RlLCBhbmQgdGhlIGxvZ2ljIGlzIHN5bW1ldHJpYyBhbnl3YXkuCgoyMDA3LTAxLTEwIDE5OjI1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBJbmNsdWRlIDxzdGRpby5oPiBmb3IgZnNlZWtvKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgSW5jbHVkZSA8c3RkaW8uaD4gZm9yIGZzZWVrbygpLgoKMjAwNy0wMS0xMCAxMDoyMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgoyMDA3LTAxLTA5IDE4OjA5OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBVcGRhdGVzLgoKMjAwNy0wMS0wOSAxNTozODo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBVcGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgVXBkYXRlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgU21hbGwgdHlwbyBmaXhlcy4KCjIwMDctMDEtMDkgMTQ6Mzg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOiBJZ25vcmUgdGVzdC1yZWdpc3RyeS54bWwgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svLmN2c2lnbm9yZToKCSAgSWdub3JlIHRlc3QtcmVnaXN0cnkueG1sIGFzIHdlbGwuCgoyMDA3LTAxLTA5IDEyOjM0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiB1bnJlZiBkYXRhIGF0IHRoZSBlbmQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIHVucmVmIGRhdGEgYXQgdGhlIGVuZCB3aGVuIHdlIGFyZSBkb25lIHdpdGggdGhlIHBhZC4KCjIwMDctMDEtMDggMjA6MzA6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdXBkYXRlX3JlZ2lzdHJ5KCkgKCMzOTEyOTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGxvYWRfcGx1Z2luX2Z1bmMpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVpbml0KSwgKGdzdF91cGRhdGVfcmVnaXN0cnkpOgoJICAqIGdzdC9nc3QuaDoKCSAgQVBJOiBhZGQgZ3N0X3VwZGF0ZV9yZWdpc3RyeSgpICgjMzkxMjk2KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgU2ltcGxlIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNy0wMS0wOCAxNjoyMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQbHVnaW4gZXh0ZW5zaW9uIG9uIEhQLVVYIGlzIC5zbCwgYWRkIHRoYXQgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2luIGV4dGVuc2lvbnMgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUGx1Z2luIGV4dGVuc2lvbiBvbiBIUC1VWCBpcyAuc2wsIGFkZCB0aGF0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkCgkgIHBsdWdpbiBleHRlbnNpb25zIChzZWUgIzM5Mzc5NikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB1bG9uZyA9PiBndWxvbmcuIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggSFAtVVggY29tcGlsZXIuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY29tcGlsYXRpb24gaWYgdmFsZ3JpbmQgaGVhZGVycyBhcmUgbm90IGF2YWlsYWJsZS4KCjIwMDctMDEtMDcgMTA6MjE6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbi4KCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgIEFkZCBnc3RkYXRhcXVldWUuYyB0byB0aGUgYnVpbGQuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgIEFkZCBnc3RtdWx0aXF1ZXVlLmMgdG8gdGhlIGJ1aWxkLgoKMjAwNy0wMS0wNiAxNzoxODowMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBOZXcgR3N0QmFzZVNpbmtDbGFzcyB2bWV0aG9kLCBhY3RpdmF0ZV9wdWxsKCksIHByb3ZpZGluZyBmb3IgYSB3YXkgdG8gc3BlY2lhbGl6ZSB0aGUgcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogTmV3IEdzdEJhc2VTaW5rQ2xhc3Mgdm1ldGhvZCwKCSAgYWN0aXZhdGVfcHVsbCgpLCBwcm92aWRpbmcgZm9yIGEgd2F5IHRvIHNwZWNpYWxpemUgdGhlIHByb2Nlc3Mgb2YKCSAgc3Bhd25pbmcgYSB0aHJlYWQgdG8gcHVsbCBvbiB0aGUgc2luayBwYWQuIFRoZXJlIGlzIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdXNoLCBnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSkKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCk6IFJlbmFtZWQgcGFkIGFjdGl2YXRpb24gZnVuY3Rpb25zIChpbnNlcnRpbmcKCSAgIl9wYWQiIGluIHRoZWlyIG5hbWVzKS4gUmVmYWN0b3IgdG8gdXNlIHRoZSBuZXcgYWN0aXZhdGVfcHVsbAoJICB2bWV0aG9kLCBhcyBhcHByb3ByaWF0ZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCwgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogU2V0IHRoZQoJICBkZWZhdWx0IGFjdGl2YXRlX3B1bGwgZnVuY3Rpb24gdG8gc3RhcnQgYSB0YXNrIHB1bGxpbmcgZnJvbSB0aGUKCSAgc2luayBwYWQsIGFzIGJlZm9yZS4KCjIwMDctMDEtMDYgMTc6MDk6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IFNldCBjYXBzIG9uIHRoZSBwYWRzIGlmIG5lY2Vzc2FyeSwgYXMgaW4gcHVzaCgpL2NoYWluKCkuIFVwZGF0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBTZXQgY2FwcwoJICBvbiB0aGUgcGFkcyBpZiBuZWNlc3NhcnksIGFzIGluIHB1c2goKS9jaGFpbigpLiBVcGRhdGUgZG9jcy4KCSAgU2hvdWxkbid0IGFmZmVjdCBleGlzdGluZyBwdWxsKCkgdXNhZ2UgYXMgaXQgaXMgY3VycmVudGx5IG9ubHkKCSAgYmVpbmcgdXNlZCBvbiBidWZmZXJzIHdpdGhvdXQgY2Fwcy4KCjIwMDctMDEtMDUgMTY6MzY6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENhbGwgZ190aHJlYWRfaW5pdCgpIGZpcnN0IHRoaW5nIGluIGdzdF9pbml0KCkgLyBnc3RfY2hlY2tfaW5pdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGluaXRfcHJlKToKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgZmlyc3QgdGhpbmcgaW4gZ3N0X2luaXQoKSAvIGdzdF9jaGVja19pbml0KCkuCgkgIFdoZW4gaW5pdGlhbGlzYXRpb24gaXMgZG9uZSB2aWEgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGFuZAoJICBHT3B0aW9uIHBhcnNpbmcsIGlzc3VlIGEgd2FybmluZyBpZiB0aGUgR0xpYiB0aHJlYWQgc3lzdGVtIGhhcyBub3QKCSAgYmVlbiBpbml0aWFsaXNlZCB5ZXQgYnkgdGhlIHRpbWUgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGlzCgkgIGNhbGxlZCwgYXMgaXQncyBxdWl0ZSBsaWtlbHkgb3RoZXIgR0xpYiBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX29wdGlvbl9jb250ZXh0X25ldygpIGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeSB0aGVuLCBhbmQKCSAgZ190aHJlYWRfaW5pdCgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbi4gVGhlCgkgIGFwcGxpY2F0aW9uIGluIHF1ZXN0aW9uIG11c3QgYmUgZml4ZWQgaW4gdGhhdCBjYXNlLCBzaW5jZSBtZW1vcnkKCSAgY29ycnVwdGlvbiBtaWdodCBoYXBwZW4gb3RoZXJ3aXNlLgoJICBXZSBpc3N1ZSB0aGUgd2FybmluZyBiZWNhdXNlIGV2ZW4gaWYgdGhlIEdMaWIgZm9sa3MgZGVjaWRlIHRvIHdvcmsKCSAgYXJvdW5kIHRoZSBwcm9ibGVtIG9uIHRoZWlyIGVuZCBpbiBmdXR1cmUsIHRoaXMgaXMgc3RpbGwgYW4gaXNzdWUKCSAgd2l0aCBhbGwgR0xpYiB2ZXJzaW9ucyA+PSAyLjEwLjAsIHNvIHdlIHNob3VsZCB3YXJuIHVudGlsIHdlIGRlcGVuZAoJICBvbiBhIEdMaWIgdmVyc2lvbiB3ZSBrbm93IHRvIGJlIHNhZmUuCgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGFzIHdlbGwuCgkgIENsb3NlcyBidWcgIzM5MTI3OC4KCjIwMDctMDEtMDUgMTU6NTU6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IENhbGwgZ190aHJlYWRfaW5pdCgpIHJlYWxseSByZWFsbHkgZWFybHksIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbiAoc2VlICMzNDI1NjQgYW5kIHJlY2VudCBkaXNjdXNzaW9uIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSByZWFsbHkgcmVhbGx5IGVhcmx5LCBiZWZvcmUgYW55IG90aGVyIEdMaWIKCSAgZnVuY3Rpb24gKHNlZSAjMzQyNTY0IGFuZCByZWNlbnQgZGlzY3Vzc2lvbiBvbiBndGstZGV2ZWwtbGlzdCkuCgoyMDA3LTAxLTA1IDEzOjIzOjAyICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZ3N0LzogT24gd2luMzIsIGFsbCB0aGUgX19kZWNsc3BlYyBzdHVmZiBmb3Igc3ltYm9sIGV4cG9ydGluZyBpcyBhcHBhcmVudGx5IG9ubHkgbmVlZGVkIHdpdGggTVNWQywgYnV0IGRvZXNuJ3Qgd29yayB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVmluY2VudCBUb3JyaSAgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZG90IGZyPgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBPbiB3aW4zMiwgYWxsIHRoZSBfX2RlY2xzcGVjIHN0dWZmIGZvciBzeW1ib2wgZXhwb3J0aW5nIGlzCgkgIGFwcGFyZW50bHkgb25seSBuZWVkZWQgd2l0aCBNU1ZDLCBidXQgZG9lc24ndCB3b3JrIHdpdGggTWluZ1cuCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTWluZ1cgYW5kICMzOTE5MDkuCgoyMDA3LTAxLTA1IDExOjU3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENoYW5nZSBzb21lIEdTVF9FUlJPUl9PQkpFQ1QgdGhhdCBhcmVuJ3QgcmVhbGx5IGVycm9ycyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgQ2hhbmdlIHNvbWUgR1NUX0VSUk9SX09CSkVDVCB0aGF0IGFyZW4ndCByZWFsbHkgZXJyb3JzIHRvCgkgIEdTVF9XQVJOSU5HX09CSkVDVCBpbiBvcmRlciB0byByZWR1Y2UgdGVybWluYWwgc3BhbS4KCjIwMDctMDEtMDQgMTM6NTQ6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBkaXNhYmxlIHRlc3QgYWdhaW4sIGFzIHRoZXJlIHNlZW0gdG8gYmUgc3RpbGwgcmFjZSBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB0ZXN0IGFnYWluLCBhcyB0aGVyZSBzZWVtIHRvIGJlIHN0aWxsIHJhY2UgcHJvYmxlbXMKCjIwMDctMDEtMDQgMTM6Mzc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4sIGFkZCB0ZXN0cyBmb3IgdGhlIGxlYWt5IGJlaGF2aW91cgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluLCBhZGQgdGVzdHMgZm9yIHRoZSBsZWFreSBiZWhhdmlvdXIKCjIwMDctMDEtMDIgMTc6MDE6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBDb21waWxlIGFkYXB0ZXIgdGVzdC9leGFtcGxlIG9ubHkgaWYgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYXJlIGF2YWlsYWJsZSAoZml4ZXMgIzM5MTkxNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgQ29tcGlsZSBhZGFwdGVyIHRlc3QvZXhhbXBsZSBvbmx5IGlmIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFyZQoJICBhdmFpbGFibGUgKGZpeGVzICMzOTE5MTUpLgoKMjAwNy0wMS0wMiAwOTozMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdGVsbCB1cyB3aGF0J3Mgbm90IGltcGxlbWVudGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZWxsIHVzIHdoYXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDctMDEtMDIgMDk6MzE6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBidW1wIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYnVtcCB0byBDVlMKCjIwMDctMDEtMDIgMDY6MTQ6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBSZXN0b3JlIHRoZSBwcmV2aW91cyBzaWduYWwgaGFuZGxlciBmb3IgU0lHU0VHViBpbnN0ZWFkIG9mIHNldHRpbmcgdG8gZGVmYXVsdCwgc2luY2Ugd2UgbWF5IGhhdmUgc3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgUmVzdG9yZSB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1NFR1YgaW5zdGVhZCBvZgoJICBzZXR0aW5nIHRvIGRlZmF1bHQsIHNpbmNlIHdlIG1heSBoYXZlIHN0b2xlbiBpdCBhd2F5IGZyb20KCSAgc29tZW9uZS4gIChpLmUuLCBNb25vKQoKMjAwNi0xMi0yNiAxNTo1NToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgc21hbGwgYWRkaXRpb25zIGFuZCBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMgYW5kIGNsYXJpZmljYXRpb25zLgoKMjAwNi0xMi0yNiAxNTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlX2VzY2FwZWQpOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwKCSAgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbWVtb3J5IGNvcnJ1cHRpb25zIGFuZCBjcmFzaGVzCgkgIChtYXkgb3IgbWF5IG5vdCBiZSByZWxhdGVkIHRvICMzODMyNDQsICMzODY3MTEsIGFuZCAjMzg2NzExKS4KCjIwMDYtMTItMjEgMTU6NTQ6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogc3luYyAuY3ZzaWdub21lIGFuZCBDTEVBTkZJTEVTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHN5bmMgLmN2c2lnbm9tZSBhbmQgQ0xFQU5GSUxFUwoKMjAwNi0xMi0yMSAxNTozMjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDYtMTItMjEgMTU6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogdHdvIHRpbnkgYWRkaXRpb25hbCBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIHR3byB0aW55IGFkZGl0aW9uYWwgY29tbWVudHMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvYyBmaXhpbmcKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGRpc2FibGUgdGVzdCBmb3Igbm93LCB1bmxlc3MgaXQgZ2V0cyBmaXhlZAoKMjAwNi0xMi0yMSAxNDoyNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogZml4IHJhY2UgaW4gdW5kZXJydW4gdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCByYWNlIGluIHVuZGVycnVuIHRlc3QKCjIwMDYtMTItMjEgMDk6NTg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB0cnkgdG8gbmFycm93IHRlc3QgZmFpbHVyZQoKMjAwNi0xMi0yMSAwOTozNzo1NiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogVXNlIGdfcmFuZG9tX2ludF9yYW5nZSgpLCBzaW5jZSBpdCBwcm9kdWNlcyBiZXR0ZXIgcmFuZG9tIG51bWJlcnMgaW4gYSByYW5nZSB0aGFuIGFsbW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIFVzZSBnX3JhbmRvbV9pbnRfcmFuZ2UoKSwgc2luY2UgaXQgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbQoJICBudW1iZXJzIGluIGEgcmFuZ2UgdGhhbiBhbG1vc3QtY29ycmVjdCBmbG9hdGluZyBwb2ludCBjb2RlLgoKMjAwNi0xMi0yMSAwODoxMjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogZG8gbm90IGF1dG9tYXRpY2FsbHkgKGRlKWFjdGl2YXRlIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICBkbyBub3QgYXV0b21hdGljYWxseSAoZGUpYWN0aXZhdGUgcGFkcwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKHNldHVwX3F1ZXVlKSwgKGNsZWFudXBfcXVldWUpLCAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBhZGQgbmV3LCB5ZXQgc2ltcGxlIHRlc3RzIGZvciBxdWV1ZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKGNsZWFudXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKGNsZWFudXBfZmRzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGNsZWFudXBfZmlsZXNyYyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKGNsZWFudXBfaWRlbnRpdHkpOgoJICBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoKMjAwNi0xMi0yMCAxOTowNjowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPHNsb21vIHVidW50dSBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgoyMDA2LTEyLTE5IDE1OjA2OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCjIwMDYtMTItMTkgMTI6Mzg6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBGaW5lIHR1bmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AgdmFsdWVzIGFyZSByZWFsbHkgdXBkYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgRmluZSB0dW5lIHRoZSBjYXNlcyB3aGVyZSB0aGUgc2VnbWVudCBzdGFydC9zdG9wIHZhbHVlcyBhcmUgcmVhbGx5CgkgIHVwZGF0ZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHRlc3RzIGZvciB0aGUgcmV0dXJuIHZhbHVlcyBvZiBnc3Rfc2VnbWVudF9zZXRfc2VlaygpLgoKMjAwNi0xMi0xOSAxMTowNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9jcyB0eXBvIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBEb2NzIHR5cG8gZml4LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IGluY29ycmVjdCBkb2N1bWVudGF0aW9uIGFuZCBmbGVzaCBpdCBvdXQgYSBiaXQgbW9yZS4KCSAgU2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgbWF4IHByb3BlcnRpZXMgb24gdGhlIEdQYXJhbVNwZWMgYXMgd2VsbCwKCSAgc28gaXQgc2hvd3MgdXAgY29ycmVjdGx5IGluIGdzdC1pbnNwZWN0LgoKMjAwNi0xMi0xOCAxNjowMTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBDb3JyZWN0IGRvY3Mgb2YgcXVldWUsIGFkZCBtb3JlIGRldGFpbCBhbmQgY3Jvc3NsaW5rIGl0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgQ29ycmVjdCBkb2NzIG9mIHF1ZXVlLCBhZGQgbW9yZSBkZXRhaWwgYW5kIGNyb3NzbGluayBpdCBtb3JlLgoKMjAwNi0xMi0xNiAxOTozMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUHJpbnQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHdoZW4gdGhlIHN0cmVhbSBpc24ndCBwZXJmZWN0bHkgdGltZXN0YW1wZWQ7IGRvbid0IHRyeSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIFByaW50IGFkZGl0aW9uYWwgZGVidWcgaW5mbyB3aGVuIHRoZSBzdHJlYW0gaXNuJ3QgcGVyZmVjdGx5CgkgIHRpbWVzdGFtcGVkOyBkb24ndCB0cnkgdG8gdXNlIGludmFsaWQgZHVyYXRpb25zLgoKMjAwNi0xMi0xNiAxNjoxNDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IG5ldyBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3QgbmV3IGRlc2lnbiBkb2NzLgoKMjAwNi0xMi0xNiAxNToxNzo1NCArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlIHRvIGZyZWUgdGhlIGRhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChyZWZfZGF0YSksICh1bnJlZl9kYXRhKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlCgkgIHRvIGZyZWUgdGhlIGRhdGEuIEZpeGVzICMzODMzODIuCgoyMDA2LTEyLTE1IDE3OjA5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEgc3RhcnRlZC9zdG9wZWQgY29sbGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEKCSAgc3RhcnRlZC9zdG9wZWQgY29sbGVjdHBhZHMuCgoyMDA2LTEyLTE1IDE2OjAxOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2V0IHBhZHMgdG8gRkxVU0hJTkcgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLiBDaGVjaywgd2FybiBhbmQgZml4IHdoZW4gYSBkZW11eGVyIGFkZHMgYW4gaW5hY3RpdmUgcGFkIHRvIGl0c2VsZiB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFNldCBwYWRzIHRvIEZMVVNISU5HIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gQ2hlY2ssIHdhcm4gYW5kIGZpeCB3aGVuIGEKCSAgZGVtdXhlciBhZGRzIGFuIGluYWN0aXZlIHBhZCB0byBpdHNlbGYgd2hlbiBydW5uaW5nLiBGaXhlcyAjMzM5MzI2LgoKMjAwNi0xMi0xNSAxNTo0OToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdCBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9xdWVyeSksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgIEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdAoJICBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCjIwMDYtMTItMTUgMTU6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNi0xMi0xNSAxNToyNjo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBDaGVja2VkIGluIGRyYWZ0IGZvciBoYW5kbGluZyBsYXRlbmN5IGluIHBpcGVsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIENoZWNrZWQgaW4gZHJhZnQgZm9yIGhhbmRsaW5nIGxhdGVuY3kgaW4gcGlwZWxpbmVzLgoKMjAwNi0xMi0xNSAwMDoxNjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGRpbmcgLmRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkaW5nIC5kb2FwIGZpbGUKCjIwMDYtMTItMTQgMTQ6MDY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IGluaXRfcHJlKCkgYW5kIGluaXRfcG9zdCgpIG1pZ2h0IGJlIGNhbGxlZCB2aWEgb3VyIEdPcHRpb25Hcm91cCBvciBmcm9tIGdzdF9pbml0KCksIGFuZCB3ZSBzaG91bGQgc2tpcCBib3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoaW5pdF9wb3N0KToKCSAgaW5pdF9wcmUoKSBhbmQgaW5pdF9wb3N0KCkgbWlnaHQgYmUgY2FsbGVkIHZpYSBvdXIgR09wdGlvbkdyb3VwIG9yCgkgIGZyb20gZ3N0X2luaXQoKSwgYW5kIHdlIHNob3VsZCBza2lwIGJvdGggb2YgdGhlbSBpZiB3ZSd2ZSBhbHJlYWR5CgkgIGJlZW4gaW5pdGlhbGlzZWQsIG90aGVyd2lzZSB3ZSB3aWxsIGluaXQgc29tZSB0aGluZ3MgdHdpY2Ugb3IgYWRkCgkgIHR3byBkZWZhdWx0IGxvZyBmdW5jdGlvbnMuCgoyMDA2LTEyLTEzIDEyOjQ2OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IE5vLCBnc3RfbWFpbl9sb29wIGRvZXMgbm90IGV4aXN0LiBJdHMgZ19tYWluX2xvb3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBObywgZ3N0X21haW5fbG9vcCBkb2VzIG5vdCBleGlzdC4gSXRzIGdfbWFpbl9sb29wLgoJICBEaXNjb3ZlcmVkIGJ5IHNvbWVib2R5IHdobyBhYnVzZWQgdGhlIGNvcHktcGFzdGUgdGVjaG5pcXVlIG9mIGNvZGluZyA6KQoKMjAwNi0xMi0xMyAxMTowNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBMb2cgZ2hvc3RwYWQgZGVidWcgc3R1ZmYgdG8gdGhlIEdTVF9QQURTIGNhdGVnb3J5IGFzIHdlbGwgcmF0aGVyIHRoYW4ganVzdCB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIExvZyBnaG9zdHBhZCBkZWJ1ZyBzdHVmZiB0byB0aGUgR1NUX1BBRFMgY2F0ZWdvcnkgYXMgd2VsbCByYXRoZXIKCSAgdGhhbiBqdXN0IHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5LgoKMjAwNi0xMi0xMiAxMzo1MzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBzb21lIGJhc2ljIHN5c3RlbSBkZXRhaWxzIHN1Y2ggYXMgT1MgYW5kIGFyY2hpdGVjdHVyZSB0byB0aGUgZGVidWcgb3V0cHV0IGlmIHBvc3NpYmxlLCBjb3VydGVzeSBvZiB1bmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICBBZGQgc29tZSBiYXNpYyBzeXN0ZW0gZGV0YWlscyBzdWNoIGFzIE9TIGFuZCBhcmNoaXRlY3R1cmUKCSAgdG8gdGhlIGRlYnVnIG91dHB1dCBpZiBwb3NzaWJsZSwgY291cnRlc3kgb2YgdW5hbWUoKS4KCjIwMDYtMTItMTEgMTM6NDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9ydW5uaW5nLnhtbDogRG9jdW1lbnQgR1NUX1JFR0lTVFJZX0ZPUksgYW5kIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBEb2N1bWVudCBHU1RfUkVHSVNUUllfRk9SSyBhbmQgR1NUX0RFQlVHX05PX0NPTE9SCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCjIwMDYtMTItMDkgMjA6MjM6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBJdCBpcyBhY2NlcHRhYmxlIHRvIGhhdmUgYSByZWZjb3VudCBvZiAyIG9yIDMgYXQgdGhpcyBwb2ludCBpbiB0aGUgdGVzdCwgYmVjYXVzZSB0aGUgcGlwZWxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgcmVmY291bnQgb2YgMiBvciAzIGF0IHRoaXMgcG9pbnQgaW4gdGhlCgkgIHRlc3QsIGJlY2F1c2UgdGhlIHBpcGVsaW5lIG1pZ2h0IGJlIGp1c3QgcG9zdGluZyBpdHMgc3RhdGVfY2hhbmdlCgkgIG1lc3NhZ2UuIFRoZSBuZXh0IGxpbmUgdGhlbiB3YWl0cyBmb3IgdGhhdCBtZXNzYWdlIHRvIGFwcGVhciB1c2luZwoJICBidXNfcG9sbCwgc28gdGhhdCBzaG91bGQgYmUgZmluZSB0b28uCgoyMDA2LTEyLTA5IDE4OjQ4OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBFeHBsaWNpdGx5IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gY2xvc2UsIHNpbmNlIGl0IG1ha2VzIG5vCgkgIGRpZmZlcmVuY2UuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKToKCSAgV2hlbiBkZWJ1Z2dpbmcgcmVmY291bnRzLCBjaGVjayBHU1RfSVNfTUlOSV9PQkpFQ1QgYW5kIHdhcm4uCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOgoJICBXaGVuIHJlbW92aW5nIGNhY2hlZCBwbHVnaW5zLCByZW1vdmUgdGhlaXIgZmVhdHVyZXMgdG9vLCBzbyB0aGV5J3JlCgkgIG5vdCB2aXNpYmxlIGFmdGVyIHRoZXkndmUgZGlzYXBwZWFyZWQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChwcmVwYXJlX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOgoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB0aGF0IHdlIGFyZSBsaW5raW5nIHBhZHMgd2l0aCBubyBwYXJlbnRzLCBkb24ndAoJICBjcmFzaCB0cnlpbmcgdG8gZ2V0IHRoZSBub24tZXhpc3RlbnQgcGFyZW50IGJpbi4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBPdXRwdXQgZGVidWcgaW4gdGhlIFBJUEVMSU5FIGNhdGVnb3J5CgoyMDA2LTEyLTA4IDE2OjEyOjQ0ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IFJlamVjdCBpbnZhbGlkIGNsb2NrIHRpbWVzIGZvciBpbnRlcnZhbCBvZiBwZXJpb2RpYyBpZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfbmV3X3BlcmlvZGljX2lkKToKCSAgUmVqZWN0IGludmFsaWQgY2xvY2sgdGltZXMgZm9yIGludGVydmFsIG9mIHBlcmlvZGljIGlkcy4KCSAgRml4ZXMgIyMzODM1MDYuCgoyMDA2LTEyLTA3IDEyOjExOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgRml4ZXM6ICMzODAxMjkKCjIwMDYtMTItMDcgMTA6NTk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCjIwMDYtMTItMDcgMTA6NTE6MzYgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZCBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZAoJICBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHdoaWNoIGNhbiBiZSB3cm9uZyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZQoJICB3YWl0ZXJzIGZvciB0aGUgc2FtZSBpZC4gRml4ZXMgIzM4MjU5Mi4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIEZpeCByZXN0YXJ0IGluIHRoZSBhc3luYyBub3RpZnkgdGhyZWFkIHdoZW4gYW4gYXN5bmMgZW50cnkgaXMgYWRkZWQgdG8KCSAgdGhlIGZyb250IG9mIHRoZSBsaXN0LiBGaXhlcyAjMzgxNDkyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoc3RvcmVfY2FsbGJhY2spLAoJICAobm90aWZ5X2NhbGxiYWNrKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIG11bHRpcGxlIGFzeW5jIHdhaXRzLgoJICBBZGRlZCB0ZXN0IGZvciBhc3luYyB3YWl0IG9yZGVyLgoKMjAwNi0xMi0wNyAxMDowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIHNvbWUgbW9yZSBkb2NzIGFib3V0IHRoZSBQT1NJVElPTiBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhYm91dCB0aGUgUE9TSVRJT04gcXVlcnkuCgoyMDA2LTEyLTA3IDAyOjM3OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG5hbm8gLSBiYWNrIHRvIENWUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbmFubyAtIGJhY2sgdG8gQ1ZTLgoKPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCjIwMDYtMTItMDcgMDI6MzM6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCSAgMjAwNi0xMi0wNiAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoKMjAwNi0xMi0wMSAxMDoyMzoyNiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyLzogRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBGaXggY29tcGlsYXRpb24gb24gd2luMzIgdW5kZXIgVlM4CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgIFBhcnRpYWxseSBmaXhlcyAjMzgxMTc1CgoyMDA2LTExLTMwIDIyOjU1OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0xMS0yOSAxNjozOTozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSWYgc29tZW9uZSBpcyBmb29saXNoIGVub3VnaCB0byBjb21wYXJlIDIgZnJhY3Rpb25zIHdpdGggZGVub21pbmF0b3IgPSAwLCByZXR1cm4gVU5PUkRFUkVEIHJhdGhlciB0aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIElmIHNvbWVvbmUgaXMgZm9vbGlzaCBlbm91Z2ggdG8gY29tcGFyZSAyIGZyYWN0aW9ucyB3aXRoIGRlbm9taW5hdG9yID0KCSAgMCwgcmV0dXJuIFVOT1JERVJFRCByYXRoZXIgdGhhbiBhYm9ydGluZy4KCjIwMDYtMTEtMjggMTI6MDc6MDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogTmV3IEdzdERhdGFRdWV1ZSBvYmplY3QgZm9yIHRocmVhZHNhZmUgcXVldWVpbmcuIE1vc3QgdXNlZnVsIGZvciBlbGVtZW50cyB0aGF0IG5lZWQgc29tZSBxdWV1ZWluZyBmdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X2RhdGFfcXVldWVfYmFzZV9pbml0KSwgKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RhdGFfcXVldWVfaW5pdCksIChnc3RfZGF0YV9xdWV1ZV9uZXcpLAoJICAoZ3N0X2RhdGFfcXVldWVfY2xlYW51cCksIChnc3RfZGF0YV9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2VtcHR5KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19mdWxsKSwgKGdzdF9kYXRhX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9kYXRhX3F1ZXVlX2lzX2Z1bGwpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X2ZsdXNoaW5nKSwgKGdzdF9kYXRhX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfcG9wKSwgKGdzdF9kYXRhX3F1ZXVlX2Ryb3BfaGVhZCksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X2RhdGFfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBOZXcgR3N0RGF0YVF1ZXVlIG9iamVjdCBmb3IgdGhyZWFkc2FmZSBxdWV1ZWluZy4gTW9zdCB1c2VmdWwgZm9yCgkgIGVsZW1lbnRzIHRoYXQgbmVlZCBzb21lIHF1ZXVlaW5nIGZ1bmN0aW9ubmFsaXR5LgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgSW5zZXJ0IGRvY3VtZW50YXRpb24gZm9yIEdzdERhdGFRdWV1ZQoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLCAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfYWNjZXB0Y2FwcyksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2V2ZW50KSwgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLAoJICAod2FrZV91cF9uZXh0X25vbl9saW5rZWQpLCAoY29tcHV0ZV9uZXh0X25vbl9saW5rZWQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgTmV3IG11bHRpcXVldWUgZWxlbWVudCwgdXNpbmcgR3N0RGF0YVF1ZXVlLiBVc2VkIGZvciBxdWV1aW5nIG11bHRpcGxlCgkgIHN0cmVhbXMuCgkgIENsb3NlcyAjMzQ0NjM5IGFuZCAjMzQ3Nzg1CgoyMDA2LTExLTIyIDEyOjI5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGFkZCBtb3JlIG1pc3NpbmcgdHlwZSBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgYWRkIG1vcmUgbWlzc2luZyB0eXBlIGRldGFpbHMKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwNi0xMS0yMSAwODozMDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzLzogYWRkIHR5cGVzIG9mIGJhc2UgY2xhc3NlcyB0byBlbmFibGUgZ29iamVjdCBzcGVjaWZpYyBzdHVmZiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBhZGQgdHlwZXMgb2YgYmFzZSBjbGFzc2VzIHRvIGVuYWJsZSBnb2JqZWN0IHNwZWNpZmljIHN0dWZmIGluIHRoZSBkb2NzCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgIG1vcmUgaWRlYXMgYWJvdXQgaXNvbGF0aW5nIHBsYXRmb3JtIHNwZWNpZmljIHRoaW5ncwoKMjAwNi0xMS0yMCAxMToxMToyMCArMDAwMCAgU2ViYXN0aWFuIERyb2VnZSA8c2xvbW9AdWJ1bnR1LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcm9lZ2UgPHNsb21vIGF0IHVidW50dSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoKMjAwNi0xMS0yMCAxMDoyNzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEZpeCBib3VuZGFyeSBjaGVja2luZyBpbiB0b19ydW5uaW5nX3RpbWUoKSBhbmQgdG9fc3RyZWFtX3RpbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgRml4IGJvdW5kYXJ5IGNoZWNraW5nIGluIHRvX3J1bm5pbmdfdGltZSgpIGFuZCB0b19zdHJlYW1fdGltZSgpLgoJICBGaXhlcyAjMzc3MTgzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHN0cmVhbSBhbmQgcnVubmluZyB0aW1lIGNhbiBub3cgYmUgY2FsY3VsYXRlZCBmb3IgdGhlIGNvbXBsZXRlCgkgIGNsaXBwZWQgc2VnbWVudC4KCjIwMDYtMTEtMTUgMTc6Mzg6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IENhbid0IGFjY2VzcyBldmVudCBzdHJ1Y3R1cmUgYWZ0ZXIgZ2l2aW5nIGF3YXkgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgQ2FuJ3QgYWNjZXNzIGV2ZW50IHN0cnVjdHVyZSBhZnRlciBnaXZpbmcgYXdheSBvd25lcnNoaXAgb2YKCSAgdGhlIGV2ZW50LgoKMjAwNi0xMS0xNSAxMzowMDoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgdGhpbmtpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgbW9yZSB0aGlua2luZwoKMjAwNi0xMS0xMyAxODowMzozNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9wYWRfZGlzcGF0Y2hlci4gRml4ZXMgIzM3NDQ3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfcGFkX2Rpc3BhdGNoZXIuIEZpeGVzICMzNzQ0NzUuCgoyMDA2LTExLTEzIDE3OjU0OjU4ICswMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBrYW9saW4ud2g5Lm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTdG9yZSBuZXcgbGVuZ3RoIGluIHNlZ21lbnQgZHVyYXRpb24gc28gd2UgZG9uJ3Qga2VlcCBvbiBjYWxsaW5nIHRoZSBwb3RlbnRpYWxseSBleHBlbnNpei4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuIGF0IGthb2xpbiBkb3Qgd2g5IGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgIFN0b3JlIG5ldyBsZW5ndGggaW4gc2VnbWVudCBkdXJhdGlvbiBzbyB3ZSBkb24ndCBrZWVwIG9uIGNhbGxpbmcgdGhlCgkgIHBvdGVudGlhbGx5IGV4cGVuc2l6ZSBnZXRfc2l6ZSgpIGNhbGwuIEZpeGVzICMzNzA4NjUuCgoyMDA2LTExLTEwIDE4OjU2OjQ0ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2VyeS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggIDxzZXJnZXJ5LnNjb2JpY2ggYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgoyMDA2LTExLTEwIDEwOjUwOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIFJlbW92ZSB1c2VsZXNzID49IGNoZWNrIG9uIGEgZ3VpbnQKCjIwMDYtMTEtMDkgMTU6MjU6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvYWRhcHRlci8uY3ZzaWdub3JlOiBJZ25vcmUgYnVpbGQgZmlsZSBhcyBjb21tYW5kZWQgYnkgdGhlIGJ1aWxkLWJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBidWlsZCBmaWxlIGFzIGNvbW1hbmRlZCBieSB0aGUgYnVpbGQtYm90CgoyMDA2LTExLTA5IDE0OjM4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvOiBBZGQgbmV3IGZpbGVzIGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6IChydW5fdGVzdF90YWtlKSwKCSAgKHJ1bl90ZXN0X3Rha2VfYnVmZmVyKSwgKHJ1bl90ZXN0cyksIChtYWluKToKCSAgQWRkIG5ldyBmaWxlcyBmcm9tIHRoZSBwcmV2aW91cyBjb21taXQKCjIwMDYtMTEtMDkgMTQ6Mzc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRG8gc29tZSBvcHRpbWlzYXRpb24gd29yayBpbiBHc3RBZGFwdGVyIHRvIGF2b2lkIGNvcGllcyBpbiBtb3JlIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jbGVhciksCgkgIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWtfaW50byksIChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2FkYXB0ZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBEbyBzb21lIG9wdGltaXNhdGlvbiB3b3JrIGluIEdzdEFkYXB0ZXIgdG8gYXZvaWQgY29waWVzIGluIG1vcmUgY2FzZXMuCgkgIEl0IGNvdWxkIHN0aWxsIGRvIHNsaWdodGx5IGJldHRlciBieSBtZXJnaW5nIGJ1ZmZlcnMgd2hlbgoJICBnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCBpcyB0cnVlLCBidXQgaXMgYWxyZWFkeSBmYXN0ZXIuCgkgIEFsc28sIGF2b2lkIHRyYXZlcnNpbmcgYSBzaW5nbGUtbGlua2VkIGxpc3QgdG8gYXBwZW5kIGVhY2ggaW5jb21pbmcKCSAgYnVmZmVyIGluc2lkZSB0aGUgYWRhcHRlci4KCSAgQWRkIHNpbXBsZSB0ZXN0IGFwcCB0aGF0IHRpbWVzIHRoZSBhZGFwdGVyIGJlaGF2aW91ciBpbiBkaWZmZXJlbnQKCSAgc2l0dWF0aW9ucywgYW5kIGV4dGVuZCB0aGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgYnl0ZXMgZW50ZXIgYW5kCgkgIGV4aXQgdGhlIGFkYXB0ZXIgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuCgoyMDA2LTExLTA4IDE5OjI3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogVXBkYXRlOiB1c2UgZWxlbWVudCBtZXNzYWdlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IG1lc3NhZ2UgdHlwZSB0byB0aGUgY29yZTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFVwZGF0ZTogdXNlIGVsZW1lbnQgbWVzc2FnZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBtZXNzYWdlCgkgIHR5cGUgdG8gdGhlIGNvcmU7IGRvbid0IHByb3ZpZGUgR1N0cmVhbWVyIEFQSSB0byBpbml0aWF0ZSB0aGUKCSAgcGx1Z2luIGRvd25sb2FkLCBqdXN0IHByb3ZpZGUgQVBJIHRvIGNvbXBvc2UgdGhlIHN0cmluZ3MgbmVlZGVkCgkgIGFuZCBsZXQgYW4gZXh0ZXJuYWwgbGliZ2ltbWVzdHVmZiBoYW5kbGUgdGhlIHJlc3QuCgoyMDA2LTExLTA4IDExOjQxOjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50IGEgc3RyaW5nIGluc3RlYWQgb2YgJ3Vua25vd24gdHlwZScgZm9yIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUHJpbnQgYSBzdHJpbmcgaW5zdGVhZCBvZiAndW5rbm93biB0eXBlJyBmb3IgR1ZhbHVlQXJyYXkgcHJvcGVydGllcwoKMjAwNi0xMS0wOCAxMDozNToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZpeCBDaHJpc3RpYW4ncyBlbWFpbCBhZGRyZXNzIGluIENoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IENocmlzdGlhbidzIGVtYWlsIGFkZHJlc3MgaW4gQ2hhbmdlbG9nCgoyMDA2LTExLTA4IDAyOjA0OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBNb3JlIHNtYWxsIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHNtYWxsIGZpeGVzLgoKMjAwNi0xMS0wOCAwMjowMzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6IE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYSBsaWNlbnNlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpLCAobWFpbik6CgkgIE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYQoJICBsaWNlbnNlIGhlYWRlci4KCjIwMDYtMTEtMDggMDE6NDA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBDb21taXQgaW5pdGlhbCBkcmFmdCBhYm91dCBob3cgdG8gZGVhbCB3aXRoIG1pc3NpbmcgcGx1Z2lucywgbmVlZHMgd29yayAoQVBJIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgQ29tbWl0IGluaXRpYWwgZHJhZnQgYWJvdXQgaG93IHRvIGRlYWwgd2l0aCBtaXNzaW5nIHBsdWdpbnMsCgkgIG5lZWRzIHdvcmsgKEFQSSB0b28pLgoKMjAwNi0xMS0wNyAwNzozNDo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCjIwMDYtMTEtMDYgMTc6NTM6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVc2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKSAtIHdlIHdhbnQgVVRGLTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgIFVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpIC0gd2Ugd2FudCBVVEYtOC4KCjIwMDYtMTEtMDYgMTc6MjU6MDEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBbm90aGVyIHByaW50ZiBmaXggKCMzNzE0OTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQW5vdGhlciBwcmludGYgZml4ICgjMzcxNDkzKS4KCjIwMDYtMTEtMDYgMTU6MjI6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgoyMDA2LTExLTA2IDE1OjE4OjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEVuaGFuY2UgZGVidWcgYW5kIGltcHJvdmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgRW5oYW5jZSBkZWJ1ZyBhbmQgaW1wcm92ZSBkb2NzCgkgICogZ3N0L2dzdHVyaS5jOgoJICBGaXggZG9jcwoKMjAwNi0xMS0wNiAxNToxNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgaWRlYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBtb3JlIGlkZWFzCgoyMDA2LTExLTA2IDE1OjE0OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgdXNlIG5ldyBBUEkgYW5kIGltcHJvdmUgbG9nZ2luZwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGZ1bmN0aW9uIHRvIGdldCBTdGF0ZUNoYW5nZXJldHVybiBuYW1lcyB0byBpbXByb3ZlIGxvZ3MKCjIwMDYtMTEtMDYgMTI6MDE6MjcgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBkb2NzL3JhbmRvbS96YWhlZXJtL2R2Yi1pbnRlcmZhY2UudHh0OgoJICBOb3RlcyB0YWtlbiB3aGlsZSBkaXNjdXNzaW5nIGR2YiBjaGFubmVsIHNlbGVjdGlvbiB3aXRoIFdpbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTm90ZXMgdGFrZW4gd2hpbGUgZGlzY3Vzc2luZyBkdmIgY2hhbm5lbCBzZWxlY3Rpb24gd2l0aCBXaW0KCjIwMDYtMTEtMDQgMTI6NTQ6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGRvbid0IHB1dCBzdHJlcnJvciBpbiB0cmFuc2xhdGFibGUgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgcHV0IHN0cmVycm9yIGluIHRyYW5zbGF0YWJsZSBtZXNzYWdlCgoyMDA2LTExLTAzIDE1OjA0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIHR5cGUgYW5kIHByaW50ZiBjb252ZXJzaW9uIHNwZWNpZmllcnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgR2V0IHRoZSB0eXBlIGFuZCBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpZXJzIHJpZ2h0LgoKMjAwNi0xMS0wMyAxMzo1NzoyOCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogU29tZSBzbWFsbCBjbGVhbnVwcy4gSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKHByZV9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBTb21lIHNtYWxsIGNsZWFudXBzLiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpZ25hbCBhbGwgd2FpdGluZyB0aHJlYWRzIHdpdGggYSBicm9hZGNhc3QgaW5zdGVhZCBvZiBqdXN0IG9uZS4KCSAgRml4ZXMgIzM2OTk0Mi4KCjIwMDYtMTEtMDMgMDk6NDA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9ubHkgdXBkYXRlIGZkIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkLgoKMjAwNi0xMS0wMiAyMDo1MjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCjIwMDYtMTEtMDIgMTM6MDA6MzggKzAwMDAgIEphbiBEYXZpZCBNb2wgPGouai5kLm1vbEB0dWRlbGZ0Lm5sPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFByaW50ZiBmaXhlcyBmb3IgZ3NpemUgcGFyYW1ldGVycyBvbiBQUEMvT1NYICgjMzY5MzY2KS4gQWxzbywgZG9uJ3QgY2FzdCB0byBsb25nIGxvbmcgZm9yIHBvcnRhYmlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSmFuIERhdmlkIE1vbCAgPGouai5kLm1vbCBhdCB0dWRlbGZ0IG5sPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIGdzaXplIHBhcmFtZXRlcnMgb24gUFBDL09TWCAoIzM2OTM2NikuIEFsc28sCgkgIGRvbid0IGNhc3QgdG8gbG9uZyBsb25nIGZvciBwb3J0YWJpbGl0eSByZWFzb25zLCBidXQgdXNlCgkgIEdMaWIncyB0eXBlcyBpbnN0ZWFkLgoKMjAwNi0xMC0zMCAxODo0MzoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIGFyZ3VtZW50cyB0byBsc2VlaygpIHRoZSByaWdodCB3YXkgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIEdldCB0aGUgYXJndW1lbnRzIHRvIGxzZWVrKCkgdGhlIHJpZ2h0IHdheSBhcm91bmQuCgkgIEZpeGVzIDM2NzY3Ny4KCjIwMDYtMTAtMzAgMDc6NTE6MTMgKzAwMDAgIGdvcnNoa292IDxnb3JzaGtvdkBvZ2htYS5vbi5jYT4KCgkgIGdzdC9nc3RpbmZvLmg6IF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGdvcnNoa292IDxnb3JzaGtvdiBhdCBvZ2htYSBkb3Qgb24gZG90IGNhPgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoKMjAwNi0xMC0yOCAxNTo0MjoyOSArMDAwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS2phcnRhbiBNYXJhYXMgIDxrbWFyYWFzIGF0IGdub21lIG9yZz4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L2NhcHNuZWdvMi1kb2NzOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgoyMDA2LTEwLTI4IDE1OjEwOjI2ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3QuYzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIFVzZSBIQVZFX1VOSVNURF9ILgoJICBSZWFycmFuZ2UgZGVmIGZpbGVzIGluIHZzOCBzb2x1dGlvbnMuIEZpeGVzICMzNjYyODYuCgoyMDA2LTEwLTI4IDE1OjAzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgR1NUX1NFR01FTlRfRk9STUFUIGFuZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byB0aGUgaGFuZC1tYWRlIHdpbjMyIGdzdGNvbmZpZy5oLiBGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgQWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCBhbmQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gdGhlCgkgIGhhbmQtbWFkZSB3aW4zMiBnc3Rjb25maWcuaC4gRml4ZXMgIzM2NjMyMS4KCjIwMDYtMTAtMjcgMTY6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTWFrZSBhY2NlcHRjYXBzIHJldHVybiBUUlVFIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldCwganVzdCBsaWtlIHNldGNhcHMgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIE1ha2UgYWNjZXB0Y2FwcyByZXR1cm4gVFJVRSB3aGVuIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQsIGp1c3QgbGlrZQoJICBzZXRjYXBzIGRvZXMuCgoyMDA2LTEwLTI3IDEwOjEwOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoKMjAwNi0xMC0yNiAwODo0OTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSWYgc29tZW9uZSB0cmllcyB0byBzZXQgYSBub24tVVRGOCBzdHJpbmcgZmllbGQgb24gYSBzdHJ1Y3R1cmUsIGRvbid0IGp1c3QgcHJpbnQgYSB3YXJuaW5nLCBidXQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIElmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGEgbm9uLVVURjggc3RyaW5nIGZpZWxkIG9uIGEgc3RydWN0dXJlLAoJICBkb24ndCBqdXN0IHByaW50IGEgd2FybmluZywgYnV0IGFsc28gaWdub3JlIHRoZSByZXF1ZXN0IGFuZCBkbwoJICBub3QgY2hhbmdlL2FkZCB0aGF0IGZpZWxkIHRvIHRoZSBzdHJ1Y3R1cmUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMjYgMDA6MDA6MzQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uYzogZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCjIwMDYtMTAtMjUgMjM6NDc6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uKjogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdCB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdAoJICB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0aGUgZnVuY3Rpb24gYXMgd2VsbAoJICBhcyB0byBxdWlldCBhIGdjYyB3YXJuaW5nLgoKMjAwNi0xMC0yNSAxMzo0MTo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgQ2xvc2VzICMzNjMwOTUKCjIwMDYtMTAtMjQgMDg6MjI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIHNtYWxsIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgc21hbGwgY29tbWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6CgkgIERlYnVnIHNlZ21lbnQgdmFsdWVzICphZnRlciogdXBkYXRpbmcgdGhlbSBhcyB0aGlzIGlzIG1vcmUKCSAgaW50ZXJlc3RpbmcuCgoyMDA2LTEwLTIzIDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pc19ibG9ja2luZyksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJldmVydCBCTE9DS0lORyBwYXRjaCwgaXQgdHJpZXMgdG8gYmUgc21hcnQgd2l0aG91dCByZWFsbHkgaGF2aW5nIGEKCSAgY2xlYXIgaWRlYSB3aGF0IG9yIGhvdy4gU28sIG5vdyB3ZSBkaXNjYXJkIGFsbCBGTFVTSElORyBldmVudHMgYWdhaW4gb24KCSAgYSBibG9ja2luZyBwYWQuIFNob3VsZCBmaXggZ25vbmxpbiBhZ2Fpbi4KCjIwMDYtMTAtMjMgMTQ6NTE6MzAgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoKMjAwNi0xMC0yMCAxMTozNjo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6IGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgIGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIGdldF9ydXNhZ2UgbG9vayBwcm9taXNpbmcKCjIwMDYtMTAtMTggMTk6NDM6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogQWRkIGEgY2FzdCBpbiBleGFtcGxlIHRvIGZpeCBjb21waWxlIHdhcm5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBBZGQgYSBjYXN0IGluIGV4YW1wbGUgdG8gZml4IGNvbXBpbGUgd2FybmluZwoKMjAwNi0xMC0xOCAxNToyODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCjIwMDYtMTAtMTggMTM6Mjc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIEEgX1RZUEVfU0VUIHRvIC0xIG1lYW5zIHNlZWsgdG8gMC4KCSAgQ2FsYyBsYXN0X3N0b3AgY29ycmVjdGx5IGZvciBuZWdhdGl2ZSByYXRlcy4KCSAgTWFrZSBzdXJlIHdlIHdvcmsgd2l0aCBwb3NpdGl2ZSBkdXJhdGlvbnMgd2hlbiB1cGRhdGluZyBhIHNlZ21lbnQuCgoyMDA2LTEwLTE4IDEzOjIxOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvY3MgZml4ZXMuCgoyMDA2LTEwLTE4IDEwOjA4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RCdWZmZXIqKiB0byBrZWVwIG9sZCBjb2RlIHRoYXQgYWRkZWQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RNaW5pT2JqZWN0KiogLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0QnVmZmVyKiogdG8ga2VlcCBvbGQgY29kZSB0aGF0IGFkZGVkIGFuCgkgIGV4cGxpY2l0IGNhc3QgdG8gR3N0TWluaU9iamVjdCoqIGZvciBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpCgkgIGNvbXBpbGluZyB3aXRob3V0IHdhcm5pbmcuCgoyMDA2LTEwLTE4IDA4OjU0OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9kYXRlKSwgKGdzdF9kYXRlX2NvcHkpOgoJICBjaGVjayBmb3IgdmFsaWRpdHkgb2YgZGF0ZXMKCjIwMDYtMTAtMTcgMTI6MDk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGb3Jnb3QgdGhpcyBvbmUsIG1ha2VzIGd0ay1kb2Mgc2h1dCB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRm9yZ290IHRoaXMgb25lLCBtYWtlcyBndGstZG9jIHNodXQgdXAuCgoyMDA2LTEwLTE3IDExOjU3OjMyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaDogRG9uJ3QgZGVmaW5lIHhtbE5vZGVQdHIgdG8gZ3BvaW50ZXIgaWYgdGhlIGNvcmUgd2FzIGJ1aWx0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvbid0IGRlZmluZSB4bWxOb2RlUHRyIHRvIGdwb2ludGVyIGlmIHRoZSBjb3JlIHdhcyBidWlsdCB3aXRoCgkgIC0tZGlzYWJsZS1sb2Fkc2F2ZSBhbmQgLS1kaXNhYmxlLXJlZ2lzdHJ5LCB0aGlzIHdpbGwgYnJlYWsKCSAgYXBwbGljYXRpb25zIHRoYXQgd2FudCB0byB1c2UgbGlieG1sMiBidXQgYXJlIGJ1aWxkbGluZyBhZ2FpbnN0IGEKCSAgY29yZSB0aGF0IGRvZXNuJ3QgdXNlIGxpYnhtbDIuIFVzZSBhbiBpbnRlcm1lZGlhcnkgdHlwZSBHc3RYbWxOb2RlUHRyCgkgIGluc3RlYWQgc28gd2UgZG9uJ3QgaGF2ZSB0byBtZXNzIHdpdGggdGhlIGxpYnhtbDIgbmFtZXNwYWNlCgkgICgjMzYxNjc1KS4KCjIwMDYtMTAtMTcgMTA6MzA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEZpeCBnc3RfYnVmZmVyX3JlcGxhY2UoKSBtYWNybyB0byBhdm9pZCBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpLXJlbGF0ZWQgdHlwZS1wdW5uZWQgcG9pbnRlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBGaXggZ3N0X2J1ZmZlcl9yZXBsYWNlKCkgbWFjcm8gdG8gYXZvaWQgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKS1yZWxhdGVkCgkgIHR5cGUtcHVubmVkIHBvaW50ZXIgd2FybmluZ3MuCgoyMDA2LTEwLTE2IDIwOjAyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uCgkgIG1hY3Jvcy4KCjIwMDYtMTAtMTYgMTM6NTM6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OiBkZXNjcmliZSBob3d0byBoYW5kbGUgbGF0ZW5jeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgZGVzY3JpYmUgaG93dG8gaGFuZGxlIGxhdGVuY3kKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIG1vcmUgaWRlYXMKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgZml4IGxvZyBwYXJzaW5nIGZvciBzb2xhcmlzLCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDA2LTEwLTE2IDExOjQ2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDYtMTAtMTUgMTI6NDc6MTMgKzAwMDAgIE1hcmN1cyBHcmFuYWRvIDxtcmMuZ3JhbkBnbWFpbC5jb20+CgoJICB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6IEVycm9yIG91dCB3aXRoIGEgd2FybmluZyBpZiBnbGliLWdlbm1hcnNoYWwuZXhlIGlzIG5vdCBpbiBwYXRoLCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGJvZ3VzIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjdXMgR3JhbmFkbyAgPG1yYyBkb3QgZ3JhbiBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICBFcnJvciBvdXQgd2l0aCBhIHdhcm5pbmcgaWYgZ2xpYi1nZW5tYXJzaGFsLmV4ZSBpcyBub3QgaW4gcGF0aCwKCSAgaW5zdGVhZCBvZiBjcmVhdGluZyBib2d1cyBnc3RtYXJzaGFsLltjaF0gZmlsZXMuIEZpeGVzICMzNjE3MjAuCgoyMDA2LTEwLTEzIDE2OjA5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCjIwMDYtMTAtMTMgMTM6Mjc6NDYgKzAwMDAgIFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGVAYWJhY29tLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IENsYXJpZnkgX05PX1BSRVJPTEwgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQ2xhcmlmeSBfTk9fUFJFUk9MTCBhIGJpdCBtb3JlLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgUGF0Y2ggYnk6IFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGUgYXQgYWJhY29tIGRvdCBjb20+IEZpeCBwb3NzaWJsZSBkZWFkbG9jawoJICBkdWUgdG8gd3JvbmcgbG9ja2luZyBvcmRlci4gRml4ZXMgIzM2MTc2OS4KCSAgUmVtb3ZlIHNvbWUgcmVkdW5kYW50L21pc3BsYWNlZCBjaGVja3MgaW4gcGFkX2Jsb2NrLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIG5lZ2F0aXZlIHJhdGVzLCBjb3VudCBiYWNrd2FyZHMgZnJvbSB0aGUgZHVyYXRpb24uCgoyMDA2LTEwLTEzIDA5OjM3OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9TRVRUSU5HUyAoZmVlbCBmcmVlIHRvIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2xpYnJhcnlfZXJyb3JzX2luaXQpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfU0VUVElOR1MgKGZlZWwgZnJlZSB0byBjb21lCgkgIHVwIHdpdGggc29tZXRoaW5nIGJldHRlcikuCgoyMDA2LTEwLTEyIDIyOjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvOiBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdCBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICAqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdAoJICBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhZGRlZC4gRml4ZXMgIzM2MTczMC4KCjIwMDYtMTAtMTIgMTY6MDk6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgYSBidW5jaCBvZiBvdGhlciByZWNlbnRseS1hZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHJlY2VudGx5LWFkZGVkIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzM2MTczMi4KCjIwMDYtMTAtMTEgMTY6MzA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBVcGRhdGUgZWxlbWVudCBhcmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGVsZW1lbnQgYXJncy4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgU21hbGwgY29tbWVudCB1cGRhdGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCksIChnc3RfdGVlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgU29tZSB0ZWUgbG92aW5nOgoJICBBZGQgZGVmYXVsdCBwcm9wZXJ0eSBkZWZpbmVzLgoJICBJbXBsZW1lbnQgcmVsZWFzZSBwYWQgZnVuY3Rpb24uCgkgIEdpdmUgcHJvcGVydGllcyBiZXR0ZXIgYmx1YnMgZXRjLgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBhZGRpbmcgdGhlbSB0byBhIHJ1bm5pbmcgdGVlLgoJICBEbyBzaW1wbGUgYnVmZmVyX2FsbG9jIG9uIHRoZSBmaXJzdCByZXF1ZXN0ZWQgcGFkLgoJICBQb3N0IGVycm9yIHdoZW4gYWN0aXZhdGlvbiBmYWlscy4KCjIwMDYtMTAtMTEgMTI6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBDaGVjayByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKSB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoKMjAwNi0xMC0xMSAxMDoxMDozNyArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0IHRvIGxlYWsgZG93bnN0cmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0CgkgIHRvIGxlYWsgZG93bnN0cmVhbSBiZWNhdXNlIHdlIHJlbGVhc2VkIHRoZSBsb2NrIHdoZW4gZW1pdHRpbmcgdGhlIHNpZ25hbAoJICBhbmQgdGhlIHF1ZXVlIGNvdWxkIGJlIGVtcHR5IGFnYWluLiBGaXhlcyAjMzUyMzQ1LgoKMjAwNi0xMC0xMSAwOToxMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggcmVmY291bnRpbmcgaGVyZSB0b28sIGp1c3QgbGlrZSB3ZSBkaWQgZm9yIF9uZXdfdmFsaXN0KCkgYSBmZXcgZGF5cyBhZ28gKCMzNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgRml4IHJlZmNvdW50aW5nIGhlcmUgdG9vLCBqdXN0IGxpa2Ugd2UgZGlkIGZvciBfbmV3X3ZhbGlzdCgpIGEgZmV3CgkgIGRheXMgYWdvICgjMzU3MTgwKSAodGhhbmtzIHRvIFJlbsOpIFN0YWRsZXIpLiBBbHNvIHJlbW92ZSBhbGwgdGhvc2UKCSAgJ1NpbmNlOiAwLjknIGZyb20gdGhlIGd0ay1kb2MgYmxvYnMuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChjb250cm9sbGVyX3JlZmNvdW50X25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTEwIDE0OjQ3OjQwICswMDAwICBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDJAeWFob28uY2E+CgoJICBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyIGF0IHlhaG9vIGRvdCBjYT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKToKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgV3JpdGUgcGFkIGRpcmVjdGlvbiBpbiBYTUwgb3V0cHV0LiBGaXhlcyAjMzQ1NDk2LgoKMjAwNi0xMC0xMCAxNDoxMzowOCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBUYWtlIHJlZiB0byBjb250cm9sbGVkIG9iamVjdCBzbyB0aGF0IGl0IGNhbm5vdCBkaXNhcHBlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwKCSAgKF9nc3RfY29udHJvbGxlcl9maW5hbGl6ZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgIFRha2UgcmVmIHRvIGNvbnRyb2xsZWQgb2JqZWN0IHNvIHRoYXQgaXQgY2Fubm90IGRpc2FwcGVhci4KCSAgRml4ZXMgIzM1NzQzMi4KCjIwMDYtMTAtMTAgMTQ6MDk6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBBY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgaW4gc2V0dXAvdGVhcmRvd24gcmVzcGVjdGl2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgIEFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyBpbiBzZXR1cC90ZWFyZG93biByZXNwZWN0aXZlbHkuCgoyMDA2LTEwLTEwIDEyOjEyOjQ0ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBDYXN0IHZhbHVlcyB3aGVuIG1ha2luZyBnc3RlbnVtdHlwZXMuaC4gIFRoaXMgcGFjaWZpZXMgRm9ydGUgc28gaXQgZG9lc24ndCB3YXJuIGFib3V0IHRoZSB+MCBhcyBHU1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTEwICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQ2FzdCB2YWx1ZXMgd2hlbiBtYWtpbmcgZ3N0ZW51bXR5cGVzLmguICBUaGlzIHBhY2lmaWVzIEZvcnRlCgkgIHNvIGl0IGRvZXNuJ3Qgd2FybiBhYm91dCB0aGUgfjAgYXMgR1NUX01FU1NBR0VfQU5ZIG5vdCBmaXR0aW5nCgkgIGluIHRoZSBlbnVtZXJhdGlvbi4KCjIwMDYtMTAtMDkgMTc6MTU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogUmVuYW1lIHNvbWUgbW9yZSBAY3VyIHRvIEBzdGFydCB0byBmaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X3NlZWspLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspOgoJICBSZW5hbWUgc29tZSBtb3JlIEBjdXIgdG8gQHN0YXJ0IHRvIGZpeCBkb2NzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIEZpeCB0eXBvLgoJICB0aW1lIGFuZCBzdGFydCBtdXN0IGFsd2F5cyBzdGF5IGluIHN5bmMgYXMgZGVmaW5lZCBpbiBkZXNpZ24gZG9jLgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfaXNfZW1wdHkpOgoJICBSZW5hbWUgcGFyYW0gdG8gZml4IGRvY3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgdGhhdCBzdGFydCBhbmQgdGltZSBhcmUgaW4gc3luYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEFjdGl2YXRlIHBhZCBiZWZvcmUgYWRkaW5nIHRvIHRoZSBlbGVtZW50LgoKMjAwNi0xMC0wOSAxNjozMzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFVwZGF0ZSBzZWVrIGV2ZW50IGRvY3MgcmVnYXJkaW5nIG5lZ2F0aXZlIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBVcGRhdGUgc2V0X3NlZWsgZG9jcyByZWdhcmRpbmcgbmVnYXRpdmUgcmF0ZXMuCgkgIENvcnJlY3RseSB1cGRhdGUgbGFzdF9zdG9wIHRvIEBzdG9wIHdoZW4gZGVhbGluZyB3aXRoIG5lZ2F0aXZlCgkgIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB0cnlpbmcgdG8gdXNlIHRoZW0uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgQWRkIHNpbXBsZSBjaGVjayBmb3Igc2VnbWVudHMgYW5kIG5lZ2F0aXZlIHJhdGVzLgoKMjAwNi0xMC0wOSAxMToyMDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9pc19lbXB0eSgpICgjMzYwNDY3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9pc19lbXB0eSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKSAoIzM2MDQ2NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbmQgYSB0ZXN0IGNhc2UuCgoyMDA2LTEwLTA5IDExOjA2OjUwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZyBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZwoJICBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgoyMDA2LTEwLTA5IDEwOjE0OjI4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCjIwMDYtMTAtMDkgMDk6MzI6MjkgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBjb21tb24vbTQvZ3N0LWVycm9yLm00OiBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBERUJVRyBtYWNybyBzYXlzIGl0IHRha2VzIG1pbmltdW0gb2YgMiBhcmdzIGFuZCBzbyBGb3J0ZQoJICBjb21wbGFpbnMgYWJvdXQgdGhlIHVzZSB3aXRoIGp1c3QgMSBhcmcuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgY29ycmVjdCByZXR1cm4gdHlwZSBmb3IgdGhlIHVyaSBoYW5kbGVyIGltcGxlbWVudGF0aW9ucy4KCSAgQWxsIHRoZXNlIGZpeCB3YXJuaW5ncyBpbiBGb3J0ZS4gIEZpeGVzIGJ1ZyAjMzYwODYwLgoKMjAwNi0xMC0wOCAxMzoyNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IGdjYyB2ZXJzaW9ucyBwcmlvciB0byBnY2MgMy4zIGFwcGFyZW50bHkgY29tcGxhaW4gYWJvdXQgYSBOVUxMIHByaW50ZiBmb3JtYXQgc3RyaW5nLCBzbyBkb24ndCB1c2UgRy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnY2MgdmVyc2lvbnMgcHJpb3IgdG8gZ2NjIDMuMyBhcHBhcmVudGx5IGNvbXBsYWluIGFib3V0IGEgTlVMTCBwcmludGYKCSAgZm9ybWF0IHN0cmluZywgc28gZG9uJ3QgdXNlIEdfR05VQ19QUklOVEYgZm9yIHRob3NlIHZlcnNpb25zLgoKMjAwNi0xMC0wNyAxODo0MToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfaXNfdGFnX2xpc3QpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFNtYWxsIHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMDcgMTg6MTE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoKMjAwNi0xMC0wNiAxNzoyMTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFRob3NlIHR3byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZG8gYWN0dWFsbHkgYmVsb25nIHRoZXJlLCByZXZlcnQgY29tbWl0IGZyb20geWVzdGVyZGF5IHRoYXQgdHVybmVkIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBUaG9zZSB0d28gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGRvIGFjdHVhbGx5IGJlbG9uZyB0aGVyZSwgcmV2ZXJ0CgkgIGNvbW1pdCBmcm9tIHllc3RlcmRheSB0aGF0IHR1cm5lZCB0aGVtIGludHJvIG1hY3Jvcy4KCjIwMDYtMTAtMDYgMTQ6NDY6MDQgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCk6CgkgIEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2guCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoZXMuCgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb21wYXJlX2xvZ19mdW5jdGlvbl9ieV9mdW5jKSwKCSAgKGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKSwgKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBDYXN0IGFzIGFwcHJvcHJpYXRlLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9jbGFzc19zaWduYWxfY29ubmVjdCk6CgkgIENhc3QgYXMgYXBwcm9wcmlhdGUuICBUaGUgZnVuY3Rpb24gcG9pbnRlciBwYXJhbWV0ZXIgcmVhbGx5CgkgIGhhcyB0aGUgd3JvbmcgdHlwZSBidXQgd291bGQgYnJlYWsgQVBJIGlmIHdlIGNoYW5nZSBpdC4KCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgRml4IHJlZGVmaW5pdGlvbiBvZiBfRklMRV9PRkZTRVRfQklUUyBjYXVzZWQgb24gU29sYXJpcyB3cnQKCSAgb3JkZXIgb2YgaW5jbHVkaW5nIHN0cmluZy5oLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICBSZW1vdmUgdW5yZWFjaGFibGUgbGluZS4KCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX3BhcnNlX2RvYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoLgoJICBBbGwgdGhlc2UgY2F1Z2h0IGJ5IEZvcnRlLgoKMjAwNi0xMC0wNiAxNDowMDo0OSArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6IEZpeGVkIGJ1ZyAjMzYwMTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBGaXhlZCBidWcgIzM2MDE1MS4KCSAgV2UgbmVlZCB0byBkaXNhYmxlIHdhcm5pbmdzIG9uIEZvcnRlIGZvciBlbXB0eSBkZWNsYXJhdGlvbnMKCSAgZHVlIHRvIGdzdC1pbmRlbnQgYWRkaW5nIDtzIHRvIGxpbmVzIHRoYXQganVzdCB1c2UgbWFjcm9zCgkgIHdoZXJlIHRoZSBtYWNybyBhY3R1YWxseSBkb2Vzbid0IG5lZWQgYSA7IGF0IGVuZCB0byBlbmQKCSAgc3RhdGVtZW50LgoKMjAwNi0xMC0wNiAxMzowMTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogQWRkIHNvbWUgRklYTUUgZm9yIHRoZSBORVdTRUdNRU5UIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEFkZCBzb21lIEZJWE1FIGZvciB0aGUgTkVXU0VHTUVOVCBoYW5kbGluZy4KCjIwMDYtMTAtMDUgMTU6NDc6NDQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMKCSAgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCjIwMDYtMTAtMDUgMTU6MzE6MTYgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBGaXggYSBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEZvcnRlIG9uIFNvbGFyaXMuICBpbmV0X2F0b24gaXMgaW4gbGlicmVzb2x2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEZpeCBhIGNvbXBpbGF0aW9uIGlzc3VlIHdpdGggRm9ydGUgb24gU29sYXJpcy4gIGluZXRfYXRvbiBpcyBpbgoJICBsaWJyZXNvbHYuCgoyMDA2LTEwLTA1IDE0OjI2OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHJpbnRmIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgUHJpbnRmIGZpeGVzLgoKMjAwNi0xMC0wNSAxMjozMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byBnc3Rjb25maWcuaCBzbyB0aGF0IHdlIGtub3cgd2hldGhlciB3ZSBjYW4gdXNlIEdfR05VQ19QUklOVEYgaW4gb3RoZXIgaGVhZGVyIGZpbGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gZ3N0Y29uZmlnLmggc28gdGhhdCB3ZSBrbm93CgkgIHdoZXRoZXIgd2UgY2FuIHVzZSBHX0dOVUNfUFJJTlRGIGluIG90aGVyIGhlYWRlciBmaWxlcyBhbmQgYXQKCSAgbGVhc3QgY2hlY2sgdGhlIHByaW50ZiBmb3JtYXQvYXJndW1lbnRzIG9mIGRlYnVnIG1lc3NhZ2VzIGFuZAoJICBHU1RfRUxFTUVOVF9FUlJPUiBtZXNzYWdlcyB3aGVuIHRoZSBwcmludGYgZXh0ZW5zaW9uIGlzIG5vdAoJICBiZWluZyB1c2VkLgoJICBSZXBsYWNlIG1vcmUgdGFicyB3aXRoIHNwYWNlcyBpbiBnc3RpbmZvLmggYW5kIHJlbW92ZSB0d28gc3B1cmlvdXMKCSAgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluIEdTVF9ESVNBQkxFX0RFQlVHIHBhcnQgd2l0aCBtYWNyb3MuCgoyMDA2LTEwLTAzIDE5OjEzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90IGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90CgkgIGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyZXMgb2YgbWVzc2FnZXMgcG9zdGVkIG9uCgkgIHRoZSBidXMgYXMgd2VsbC4KCjIwMDYtMTAtMDMgMTU6MTA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZCBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZAoJICBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzICMzNTU0OTkKCjIwMDYtMTAtMDIgMTY6NDY6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogRml4IGxlYWsgaW4gY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEZpeCBsZWFrIGluIGNoZWNrLgoKMjAwNi0xMC0wMiAxNjozNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgoyMDA2LTEwLTAyIDE2OjAxOjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXNfYmxvY2tpbmcpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgbmV3IEdzdFBhZEZsYWcgOiBHU1RfUEFEX0JMT0NLSU5HLgoJICBBZGRzIHRoZSBub3Rpb24gb2YgcGFkcyByZWFsbHkgYmxvY2tpbmcsIHdoaWNoIGVuYWJsZXMgdG8gcHJvcGVybHkKCSAgaGFuZGxlIEZMVVNIX1NUQVJUL0ZMVVNIX1NUT1AgZXZlbnRzIG9uIGJsb2NrZWQgcGFkcy4KCSAgRml4ZXMgIzM1ODk5OQoJICBBUEk6IGdzdF9wYWRfaXNfYmxvY2tpbmcoKQoJICBBUEk6IEdTVF9QQURfSVNfQkxPQ0tJTkcoKSBtYWNybwoJICBBUEk6IEdTVF9QQURfQkxPQ0tJTkcgR3N0UGFkRmxhZwoKMjAwNi0xMC0wMiAxMDowNjoxNyArMDAwMCAgbXJjZ3JhbiA8bXJjLmdyYW5AZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEZpbHRlciB0aGUgcHJveGllZCBjYXBzIGFnYWluc3QgdGhlIHBhZHRlbXBsYXRlIGlmIHdlIGhhdmUgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IG1yY2dyYW4gPG1yYy5ncmFuIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpOgoJICBGaWx0ZXIgdGhlIHByb3hpZWQgY2FwcyBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZSBpZiB3ZSBoYXZlIG9uZS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCk6CgkgIEFkZCBpbmNsdWRlIGZvciBnc3RpbmZvLmggc28gdGhhdCBjb21waWxhdGlvbiB3aXRoCgkgIC1ER1NUX0RJU0FCTEVfR1NUX0RFQlVHIHdvcmtzIGFnYWluLiBGaXhlcyAjMzU4NDM2LgoKMjAwNi0xMC0wMiAwOTo0NDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgR2l2ZSBjcmVkaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdpdmUgY3JlZGl0CgoyMDA2LTEwLTAyIDA5OjQxOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTZXQgZmlsZSB0byBOVUxMIHdoZW4gY2xvc2luZyBmaWxlc2luayBzbyB0aGF0IHdlIGNhbiBzZXQgYSBuZXcgZmlsZW5hbWUgaW4gUkVBRFkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksIChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFNldCBmaWxlIHRvIE5VTEwgd2hlbiBjbG9zaW5nIGZpbGVzaW5rIHNvIHRoYXQgd2UgY2FuIHNldCBhIG5ldyBmaWxlbmFtZQoJICBpbiBSRUFEWS4gRml4ZXMgIzM1ODYxMy4KCjIwMDYtMTAtMDIgMDg6Mzc6MjQgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEZpeCBnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSgpIGFuZCBnc3RfZXZlbnRfY29weSgpIGZvciBldmVudHMgd2l0aCBldmVudCBzdHJ1Y3R1cmVzIGJ5IHNldHRpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgIDxhbGVzc2FuZHJvIGF0IG5udmEgb3JnPgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KToKCSAgRml4IGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKCkgYW5kIGdzdF9ldmVudF9jb3B5KCkgZm9yIGV2ZW50cwoJICB3aXRoIGV2ZW50IHN0cnVjdHVyZXMgYnkgc2V0dGluZyB0aGUgcGFyZW50IHJlZmNvdW50IGFkZHJlc3Mgb2YgdGhlCgkgIGNvcGllZCBzdHJ1Y3R1cmUgdG8gdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZmNvdW50IG1lbWJlciBvZiB0aGUgbmV3bHkKCSAgY29waWVkIGV2ZW50IHJhdGhlciB0aGFuIHRoZSBhZGRyZXNzIG9mIHRoZSByZWZjb3VudCBtZW1iZXIgb2YgdGhlCgkgIG9yaWdpbmFsIGV2ZW50LiBGaXhlcyAjMzU4NzM3LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMDktMjkgMjA6Mjk6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IHNvbWUgbW9yZSBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3Qgc29tZSBtb3JlIGZpbGVzLgoKMjAwNi0wOS0yOSAxMjozMToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBBZGQgdGVzdCBmb3IgdGhlIHByZXZpb3VzIGZpeDsgYWRkIHNvbWUgbW9yZSB0ZXN0cyBmb3IgY29ycmVjdCByZWZjb3VudGluZyBiZWhhdmlvdXI7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHRlc3QgZm9yIHRoZSBwcmV2aW91cyBmaXg7IGFkZCBzb21lIG1vcmUgdGVzdHMKCSAgZm9yIGNvcnJlY3QgcmVmY291bnRpbmcgYmVoYXZpb3VyOyBmaXggYSBmZXcgbGVha3MKCSAgaW4gdGVzdCBjYXNlczsgY2FsbCBnc3RfY29udHJvbGxlcl9pbml0KCkgYXQgc3RhcnQKCSAgb2YgYWxsIHRlc3RzLgoKMjAwNi0wOS0yOSAxMjoyNDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBEb24ndCBnX3JldHVybl92YWxfaWZfZmFpbCgpIG9uIHRpbWVkIHZhbHVlcyB3aXRoIGludmFsaWQgdGltZXN0YW1wcyBpbnNpZGUgYSBjci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCk6CgkgIERvbid0IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgb24gdGltZWQgdmFsdWVzIHdpdGggaW52YWxpZCB0aW1lc3RhbXBzCgkgIGluc2lkZSBhIGNyaXRpY2FsIHNlY3Rpb24gd2l0aG91dCB1bmxvY2tpbmcgdGhlIG11dGV4LiBTcG90dGVkIGJ5CgkgIFJlbsOpIFN0YWRsZXIuICgjMzU3NjE3KQoJICBBbHNvLCBmaXggdXAgcmVmY291bnRpbmcgcHJvcGVybHk6IHdoZW4gcmV0dXJuaW5nIGFuIGV4aXN0aW5nCgkgIGNvbnRyb2xsZXIsIHdlIHNob3VsZCBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIG9ubHkgb25jZSBhbmQgbm90CgkgIG9uY2UgcGVyIHByb3BlcnR5IGFuZCB3aGVuIHRyeWluZyB0byBjb250cm9sIGEgcHJvcGVydHkgYWdhaW4KCSAgd2Ugc2hvdWxkIGFsc28gaW5jcmVhc2UgdGhlIHJlZmNvdW50LgoKMjAwNi0wOS0yOSAwODoyMjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCk6CgkgIFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBVbmlmeSBkZXNjcmlwdGlvbiBvZiB0aGUgZHVtcCBwcm9wZXJ0eS4KCjIwMDYtMDktMjggMTc6MjA6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgoyMDA2LTA5LTI4IDE1OjUyOjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOiBPSywgc28gaXQncyBhY3R1YWxseSBjdnNpZ25vcmUgdGhhdCBuZWVkcyBjaGFuZ2luZy4gU3RvcCBsYXVnaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgIE9LLCBzbyBpdCdzIGFjdHVhbGx5IGN2c2lnbm9yZSB0aGF0IG5lZWRzIGNoYW5naW5nLiBTdG9wIGxhdWdoaW5nLgoKMjAwNi0wOS0yOCAxNToyNzoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06IEdhaCwgZGVjbGFyZSB2YXJzICpiZWZvcmUqIHVzaW5nIHRoZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBHYWgsIGRlY2xhcmUgdmFycyAqYmVmb3JlKiB1c2luZyB0aGVtCgoyMDA2LTA5LTI4IDE0OjAwOjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJlLWNvbW1pdCB0aGUgcmVnaXN0cnkgY2hhbmdlcywgYWxvbmcgd2l0aCBhbiBleHRyYSBmaXg6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmUtY29tbWl0IHRoZSByZWdpc3RyeSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGFuIGV4dHJhIGZpeDoKCSAgV2hlbiBhIGNhY2hlZCBwbHVnaW4gaXMgZW5jb3VudGVyZWQgYXQgYSBkaWZmZXJlbnQgZmlsZSBwYXRoLAoJICB1cGRhdGUgdGhlIHN0b3JlZCBwYXRoIGluIHRoZSByZWdpc3RyeSBjYWNoZSBzbyB0aGF0IHRoZSBwYXJlbnQKCSAgcHJvY2VzcyBrbm93cyB3aGVyZSBpdCBhY3R1YWxseSBpcyBub3cgd2hlbiBpdCByZS1yZWFkcyB0aGUgcmVnaXN0cnkKCSAgY2FjaGUuIEZpeGVzIHRoZSB0aGluZyB0aGF0IGJyb2tlIGRpc3RjaGVjayB3aXRoIHRoZSBwcmV2aW91cyBjb21taXQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIENsZWFuIHVwIGZpbGVzIG5hbWVkICdjb3JlJyB0b28gd2hlbiBydW5uaW5nIG1ha2UgY2xlYW4uCgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBTZXQgdXAgYSByZWdpc3RyeSBwYXRoIGZvciBydW5uaW5nIHRoZXNlIHRlc3RzLCBhbmQgY2xlYW4gaXQgcHJvcGVybHkKCSAgZm9yIGRpc3RjaGVjay4KCjIwMDYtMDktMjggMTE6MTE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBwdWxsIGluIGdtb2R1bGUtMi4wLnBjIGFzIGEgZGVwZW5kZW5jeSBpbiBvdXIgLnBjIGZpbGVzIC0gd2Ugd2FudCBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMgaW5zdGVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgcHVsbCBpbiBnbW9kdWxlLTIuMC5wYyBhcyBhIGRlcGVuZGVuY3kgaW4gb3VyIC5wYyBmaWxlcyAtIHdlCgkgIHdhbnQgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjIGluc3RlYWQgc28gdGhhdCB3ZSBkb24ndCBkcmFnIGluCgkgIC0tZXhwb3J0LWR5bmFtaWMgb24gZXZlcnkgcHJvamVjdCB0aGF0IGxpbmtzIHRvIEdTdHJlYW1lci4KCSAgQWxzbywgbWFrZSBvdXIgZXhwb3J0IHJlZ2V4IG9ubHkgbWF0Y2ggdGhlIHN0YXJ0IG9mIHN5bWJvbHMsIHJhdGhlcgoJICB0aGFuIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyAnX2dzdCcgc29tZXdoZXJlLgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBUaGUgbGliZ3N0Y2hlY2sgd2UgYnVpbGQgZG9lcyBob3dldmVyIG5lZWQgZXhwb3J0LWR5bmFtaWMsIGFzIGl0CgkgIHByb2R1Y2VzIHNvbWUgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIG91ciBfZ3N0Li4uIHN0eWxlIHJlZ2V4LgoKMjAwNi0wOS0yNyAxNzo0Mjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHVudGlsIEkgZmlndXJlIG91dCB3aHkgaXQgYnJlYWtzIGRpc3RjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB1bnRpbCBJIGZpZ3VyZSBvdXQgd2h5IGl0IGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA2LTA5LTI3IDE2OjUyOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYyBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYwoJICBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4gTWFrZSB0aGUgcmVnaXN0cnkgdXBkYXRpbmcKCSAgZnVuY3Rpb25zIGRvIHNvLgoJICBDYWxsIF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyBhZnRlciBzY2FubmluZyBmaWxlcyB0bwoJICBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgd2UncmUgYWJvdXQgdG8gd3JpdGUgb3V0IGRvZXNuJ3QgY29udGFpbgoJICBzdGFsZSBpbmZvcm1hdGlvbiBhYm91dCBvbGQtZGVsZXRlZCBwbHVnaW4gZmlsZXMuCgkgIE1ha2UgX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIHJldHVybiBhIGJvb2xlYW4gc28KCSAgdGhhdCBkZWxldGlvbiBvZiBwbHVnaW4gZmlsZXMgaXMgY29uc2lkZXJlZCBhIHJlZ2lzdHJ5IGNoYW5nZS4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlbmFtZSBfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIGFuZCBfZ3N0X3JlZ2lzdHJ5X2NsZWFudXAKCSAgYnkgYWRkaW5nIF9wcml2IHByZWZpeCwgc28gdGhhdCB0aGV5IHdvbid0IGFwcGVhciBpbiB0aGUgZ2xvYmFsCgkgIHN5bWJvbCB0YWJsZS4gVGhleSBzdGlsbCBkbyBhdG0gdGhvdWdoIGJlY2F1c2Ugb2YgIzMxODAzMS4gTW92ZSB0aGUKCSAgcHJvdG90eXBlcyB0byBnc3RfcHJpdmF0ZS5oCgkgIFdoZW4gcmVtb3ZpbmcgYSBwbHVnaW4sIHJlbW92ZSBhbGwgZmVhdHVyZXMgZm9yIHRoYXQgcGx1Z2luIHRvby4KCSAgRml4ZXMgIzM0MDg3OC4KCjIwMDYtMDktMjcgMTM6MTk6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbiB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbgoJICB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKToKCSAgVXBkYXRlIGRvY3MuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGJsb2NrIHdoaWxlIHdhaXRpbmcgZm9yIFBMQVlJTkcsIHRoaXMgZnVuY3Rpb24KCSAgaXMgdXNlZCBieSBsaXZlIHNvdXJjZXMgdGhhdCBibG9jayBvbiB0aGUgY2xvY2suCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZygpCgoyMDA2LTA5LTI3IDEwOjEzOjEzICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIE1ha2VmaWxlLmFtOiBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIE1ha2VmaWxlLmFtOgoJICBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUKCSAgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291cmNlIGRpciAoIzM1NzU5MykuCgkgICdtYWtlIGRpc3RjaGVjaycgaGFzbid0IG5vdGljZWQgdGhpcyBiZWNhdXNlIHdlIHdlcmUgZGlzdGluZwoJICB0aGUgZmlsZSBhcyB3ZWxsLCBzbyBzdG9wIGRvaW5nIHRoYXQuCgoyMDA2LTA5LTI3IDA5OjIzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9jYXBzX2ludGVyc2VjdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2NhcHNfaW50ZXJzZWN0KCkuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IGFsbCBidWZmZXJpbmcgcGVyY2VudGFnZXMgd2UgZ2V0LCBldmVuIHRoZSAxMDAlIG9uZS4KCjIwMDYtMDktMjYgMTI6Mzk6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggcHJpbnRpbmcgb2YgZmxhZ3MgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgZW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIEZpeCBwcmludGluZyBvZiBmbGFncyB0byBtYXRjaCB0aGUgbG9vayBvZiBlbnVtcy4KCjIwMDYtMDktMjUgMTM6MDg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogRml4IHR5cG8gaW4gZG9jcyBibHVyYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEZpeCB0eXBvIGluIGRvY3MgYmx1cmIuCgoyMDA2LTA5LTI1IDExOjE2OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBhc3NlcnQvY3Jhc2ggaGVyZSBpZiBhIHVyaSBoYW5kbGVyIGRvZXNuJ3QgcmV0dXJuIGFueSBzdXBwb3J0ZWQgcHJvdG9jb2xzLiBUaGUgbGlzdCBvZiBwcm90b2NvbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKHNlYXJjaF9ieV9lbnRyeSk6CgkgIERvbid0IGFzc2VydC9jcmFzaCBoZXJlIGlmIGEgdXJpIGhhbmRsZXIgZG9lc24ndCByZXR1cm4gYW55CgkgIHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBsaXN0IG9mIHByb3RvY29scyBjb3VsZCBiZSBnZW5lcmF0ZWQKCSAgZHluYW1pY2FsbHkgYXQgcnVudGltZSBvciBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uLCBhbmQgYW4gZXJyb3IKCSAgaW4gdGhlIHVuZGVybHlpbmcgbGlicmFyeSBzaG91bGRuJ3QgYmUgZmF0YWwgKCMzNTMzMDEpLgoKMjAwNi0wOS0yNSAxMDozNjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCB3YXJuaW5nIGlmIEhBVkVfUFJJTlRGX0VYVEVOU0lPTiBpcyB1bmRlZmluZWQgKHNwb3R0ZWQgYnkgUGV0ZXIgS2plbGxlcnN0ZWR0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdhcm5pbmcgaWYgSEFWRV9QUklOVEZfRVhURU5TSU9OIGlzIHVuZGVmaW5lZAoJICAoc3BvdHRlZCBieSBQZXRlciBLamVsbGVyc3RlZHQpLgoKMjAwNi0wOS0yMyAwOTozMDo0MCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYXRjaCBfc3RhcnQvX3N0b3AgY2FsbHMgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucy4gUmVtb3ZlIHJlZHVuZGFudCBfc3RvcCBjYWxsIGZyb20gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWF0Y2ggX3N0YXJ0L19zdG9wIGNhbGxzIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMuIFJlbW92ZSByZWR1bmRhbnQKCSAgX3N0b3AgY2FsbCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uIEZpeGVzICMzNTY5MTAuCgkgIFR1cm4gZmFpbHVyZSBERUJVRyBpbnRvIEVSUk9SLgoKMjAwNi0wOS0yMiAxNToyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyk6CgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBGaXggdHlwby4KCjIwMDYtMDktMjIgMTQ6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgYXVkaW90ZXN0c3JjIGlzIG5vdCBwYXJ0IG9mIGNvcmUsIGZha2VzcmMgaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1ZGlvdGVzdHNyYyBpcyBub3QgcGFydCBvZiBjb3JlLCBmYWtlc3JjIGlzCgoyMDA2LTA5LTIyIDEzOjMyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmVmIGluc3RhbmNlcyB3aGVuIHJldHVybmluZyB0aGVtIGFnYWluIChmaXhlcyAjMzU3MTgwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBSZWYgaW5zdGFuY2VzIHdoZW4gcmV0dXJuaW5nIHRoZW0gYWdhaW4gKGZpeGVzICMzNTcxODApCgoyMDA2LTA5LTIyIDEwOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoKMjAwNi0wOS0yMCAxNjoxNzoyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oOiBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzIHdoZW4gdXNpbmcgLVdleHRyYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzCgkgIHdoZW4gdXNpbmcgLVdleHRyYQoKMjAwNi0wOS0xOCAxMzo1NjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldCBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldAoJICBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgY2Fwcy4KCjIwMDYtMDktMTggMTM6NDQ6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgX0RFQlVHX09CSkVDVCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFVzZSBfREVCVUdfT0JKRUNUIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgQXZvaWQgdHlwZWNoZWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgSWYgdGhlIHRvcGxldmVsIGVsZW1lbnQgaXMgbm90IGEgR3N0UGlwZWxpbmUsIGl0IG11c3QgYmUgcHV0IGluIGEKCSAgcGlwZWxpbmUgc28gdGhhdCBhIGJ1cyBhbmQgY2xvY2sgaXMgc2VsZWN0ZWQuCgoyMDA2LTA5LTE3IDE5OjMxOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEpJVFRFUiwgUkFURSwgYW5kIExBVEVOQ1kgcXVlcnkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgY2FzZSBhbmQgbm90IGJ5IHRoZSBDT05WLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBKSVRURVIsIFJBVEUsIGFuZCBMQVRFTkNZIHF1ZXJ5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZQoJICBkZWZhdWx0IGNhc2UgYW5kIG5vdCBieSB0aGUgQ09OVkVSVCBxdWVyeSBjb2RlLgoKMjAwNi0wOS0xNyAxOToyNjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRml4IGxvY2tpbmcgb3JkZXIgKG11c3QgdGFrZSBsb2NrIGJlZm9yZSB1c2luZyBuX3ZhbHVlcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfcmVnaXN0ZXIpOgoJICBGaXggbG9ja2luZyBvcmRlciAobXVzdCB0YWtlIGxvY2sgYmVmb3JlIHVzaW5nIG5fdmFsdWVzKS4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZW51bSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bV9pdGVyX2NtcCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bSk6CgkgIEZpeCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBvZiBjdXN0b20gcmVnaXN0ZXJlZCBHc3RGb3JtYXRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBjdXN0b20gZm9ybWF0IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uLgoKMjAwNi0wOS0xNiAyMTozODowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuIEFsc28gRml4IHNvbWUgZGV0YWlscyBvbiB0aGUgcGx1Z2luLXN0YW1wIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLiBBbHNvIEZpeCBzb21lIGRldGFpbHMgb24gdGhlIHBsdWdpbi1zdGFtcAoJICBzZWN0aW9uLgoKMjAwNi0wOS0xNiAxMjo0OTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayBpZiByZXF1ZXN0ZWQgY2FwcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHNpbmtzIGNhcHMgSUYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgaWYgcmVxdWVzdGVkIGNhcHMgYXJlIHRoZSBzYW1lIGFzIHRoZSBzaW5rcyBjYXBzIElGCgkgIC0+aGF2ZV9zYW1lX2NhcHMgaXMgVFJVRS4gSWYgdGhleSBhcmUgbm90LCBhY3QgYXMgaWYgaGF2ZV9zYW1lX2NhcHMKCSAgaXMgRkFMU0UuCgkgIFRoaXMgZml4ZXMgdGhlIHJlbmVnb3RpYXRpb24gaXNzdWVzIHN0YXRlZCBpbiAjMzUyODI3LgoKMjAwNi0wOS0xNiAxMDo0OTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBFeHRyYWN0IHRoZSBtYW51YWwgZXhhbXBsZXMgYWdhaW4gbGlrZSB3ZSB1c2VkIHRvIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIEV4dHJhY3QgdGhlIG1hbnVhbCBleGFtcGxlcyBhZ2FpbiBsaWtlIHdlIHVzZWQgdG8gZG8uCgkgIEZpeCBvbmUgb2YgdGhlbS4KCjIwMDYtMDktMTYgMTA6NDc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oOiB1cGRhdGUgZm9yIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIHZlcnNpb24KCjIwMDYtMDktMTUgMjE6MzA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBEb2N1bWVudHMgaG93IHRvIHJlY2VpdmUgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgRG9jdW1lbnRzIGhvdyB0byByZWNlaXZlIGVycm9ycy4KCjIwMDYtMDktMTUgMTA6NDM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEFkZGVkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpLCAoY2hlY2tfaW50ciksCgkgIChldmVudF9sb29wKSwgKG1haW4pOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICBQb3N0IGFuIGFwcGxpY2F0aW9uIG1lc3NhZ2Ugd2hlbiBhbiBpbnRlcnJ1cHQgaXMgY2F1Z2h0IGluc3RlYWQgb2YgZG9pbmcKCSAgYW4gdW5jb250cm9sbGVkIHN0YXRlIGNoYW5nZS4KCSAgQ2xlYW4gdXAgdGhlIGV2ZW50IGxvb3AuCgkgIEhhbmRsZSBidWZmZXJpbmcgbWVzc2FnZXMsIHBhdXNlL3Jlc3VtZSB0aGUgcGlwZWxpbmUuCgkgIE1ha2Ugc2h1dGRvd24gYmVjYXVzZSBvZiBhbiBpbnRlcnJ1cHQgbW9yZSByZWxpYWJsZS4KCjIwMDYtMDktMTUgMDk6NDk6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3VyZSB0aGF0IG91ciBpbnRlcm5hbCBzdGF0ZSBpcyBjb3JyZWN0IHdoZW4gd2UgY29tbWl0IG91ciBzdGF0ZSBhc3luY2hyb25vdXNseS4gVGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhhdCBvdXIgaW50ZXJuYWwgc3RhdGUgaXMgY29ycmVjdCB3aGVuIHdlIGNvbW1pdCBvdXIgc3RhdGUKCSAgYXN5bmNocm9ub3VzbHkuIFRoaXMgc29sdmVzIGEgcmFjZSB3aGVyZSBhIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIGNvdWxkIGNhdXNlIHRoZSBzaW5rIHRvIHJlbWFpbiBibG9ja2VkIGluIHByZXJvbGwgaW4gc29tZSBzaXR1YXRpb25zLgoKMjAwNi0wOS0xNSAwODo1MDoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IExpc3QgZmxhZ3MgYXMgaGV4IHNvIGl0J3MgZWFzaWVyIHRvIGRlYWwgd2l0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgTGlzdCBmbGFncyBhcyBoZXggc28gaXQncyBlYXNpZXIgdG8gZGVhbCB3aXRoLgoKMjAwNi0wOS0xNSAwODo0NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luayBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luawoJICBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwoKQoKMjAwNi0wOS0xNSAwODo0Mzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNsZWFudXBzIGluIGRvY3MgYW5kIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChkb19waXBlbGluZV9zZWVrKToKCSAgU21hbGwgY2xlYW51cHMgaW4gZG9jcyBhbmQgY29kZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgaWYgc3RvcCA9PSBzdGFydCBhbmQgc3RhcnQgaXMgaW4gdGhlIHNlZ21lbnQsIG5vIGNsaXBwaW5nIHNob3VsZCBiZQoJICBkb25lLiBBbHNvIGFkZCBhIHRlc3QgZm9yIHRoaXMuCgoyMDA2LTA5LTE1IDA4OjM5OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgbWV0aG9kcyB0byBjcmVhdGUgYW5kIHBhcnNlIEJVRkZFUklORyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBtZXRob2RzIHRvIGNyZWF0ZSBhbmQgcGFyc2UgQlVGRkVSSU5HIG1lc3NhZ2VzLgoJICBBZGRlZCBwcmVsaW1pbmFyeSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nCgoyMDA2LTA5LTE1IDA4OjMyOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9yZWxlYXNlX3JlcXVlc3RfcGFkKSwgKGdzdF9lbGVtZW50X3NldF9jbG9jayksCgkgIChnc3RfZWxlbWVudF9nZXRfaW5kZXgpLCAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKSwKCSAgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5KSwgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBSZW5hbWUgbGFzdCBiaXQgb2YgdGhlIG5ldy1wYWQgLT4gcGFkLWFkZGVkIHNpZ25hbCByZW5hbWUuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBhbiBlbGVtZW50IHF1ZXJ5IHdvdWxkIG9ubHkgd29yayBpZiB0aGUgc291cmNlCgkgIHBhZCB3YXMgbGlua2VkLgoJICBBdm9pZCBzb21lIHVzZWxlc3MgdHlwZSBjaGVja2luZyBpbiBtZXNzYWdlIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTA5LTE0IDIwOjEyOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBhZGQgYW4gSU5GTyBsaW5lIGZvciB3aGVuIHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgZmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBJTkZPIGxpbmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkgdXBkYXRlIHRoZSBmZAoKMjAwNi0wOS0xNCAyMDoxMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byB0cnVuawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byB0cnVuawoKPT09IHJlbGVhc2UgMC4xMC4xMCA9PT0KCjIwMDYtMDktMTQgMjA6MDg6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4xMAoKMjAwNi0wOS0wOSAxNjowODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZmlyc3QgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNi0wOS0wOSAxNjowNzozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCjIwMDYtMDktMDUgMTQ6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6IEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoKMjAwNi0wOS0wNSAwODozNToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IE1ha2Ugc3R1ZmYgY29tcGlsZSBvbiB3aW5kb3dzLiBGaXhlcyAjMzQ1Mjk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGluZXRfYXRvbiksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoaW5ldF9hdG9uKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgTWFrZSBzdHVmZiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUyOTUuCgoyMDA2LTA5LTAzIDExOjE2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBQcmludCBiZXR0ZXIgZGV0YWlscyB3aGVuIGNoaWxkIHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIFByaW50IGJldHRlciBkZXRhaWxzIHdoZW4gY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsLgoKMjAwNi0wOS0wMyAxMTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBQcmludCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZ19hc3NlcnQoKSBpZiBhIHBsdWdpbiBmZWF0dXJlIGlzIGEgVVJJIGhhbmRsZXIgYnV0IHJldHVybnMgbm8gcHJvdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgUHJpbnQgYSB3YXJuaW5nIHJhdGhlciB0aGFuIGdfYXNzZXJ0KCkgaWYgYSBwbHVnaW4gZmVhdHVyZQoJICBpcyBhIFVSSSBoYW5kbGVyIGJ1dCByZXR1cm5zIG5vIHByb3RvY29scyAoIzM1Mzk3NikuCgoyMDA2LTA5LTAyIDE5OjEwOjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA2LTA5LTAyIDE5OjAzOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDIgMTM6NDA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGNsYXJpZnkgZXJyb3IgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xhcmlmeSBlcnJvciBtZXNzYWdlCgoyMDA2LTA5LTAyIDEzOjM2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDEgMTY6MDM6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCB0eXBvCgoyMDA2LTA5LTAxIDE1OjU1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGxvY2tpbmcgb3JkZXIsIGhhbmRsZSBOVUxMIGZ1bmN0aW9uIHZhbHVlcyBwcm9wZXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBGaXggbG9ja2luZyBvcmRlciwgaGFuZGxlIE5VTEwgZnVuY3Rpb24gdmFsdWVzIHByb3Blcmx5LgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCk6CgkgIEluaXRpYWxpc2VkIHZhcmlhYmxlIGJlZm9yZSB1c2luZyBpdCBhbmQgZml4IGRlYnVnIHN0YXRlbWVudCB0bwoJICBwcmludCB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGFkZHJlc3Mgb2YgdGhlCgkgIHZhcmlhYmxlIG9uIHRoZSBzdGFjayBob2xkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDYtMDktMDEgMTA6MzM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTW9yZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9pbml0KSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX25ldyksIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBNb3JlIGNsZWFudXBzLgoJICBBdm9pZCBuZWVkbGVzcyB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICBTaW5jZSB0aGUgaW50ZXJuYWwgcGFkIGlzIGFsd2F5cyBwcmVzZW50IGFuZCBuZXZlciBjaGFuZ2VzLCB0aGVyZSBpcwoJICBubyBuZWVkIHRvIGxvY2tpbmcgb3IgcmVmIHdoZW4gcmV0cmlldmluZyBpdC4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgkgIEhhbmRsZSBsaW5rIGVycm9ycyB3aGVuIHNldHRpbmcgdGhlIHRhcmdldC4gRml4ZXMgIzM0MTAyOS4KCjIwMDYtMDktMDEgMTA6MjY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogRml4IGRvY3Mgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIEZyZWUgcXVldWVkIGJ1ZmZlciB3aGVuIHJlbW92aW5nIGEgcGFkLgoKMjAwNi0wOC0zMSAxNzoxMzozNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdCB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgIEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdAoJICB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkIGNyaXRpY2Fscy4KCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgdW5yZWZmaW5nIHNyY3BhZCwgd2hpY2ggaXMgZXhwbGljbHkgTlVMTGVkCgkgIGFib3ZlIChhIHRyaXZpYWwgY29kZSBjbGVhbnVwKS4KCjIwMDYtMDgtMzEgMTU6MTk6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgU21hbGwgY2xlYW51cHMgYW5kIGxlYWsgZml4ZXMuCgkgIFJlbW92ZSBzb21lIGNoZWNrcyBub3cgdGhhdCB0aGUgaW50ZXJuYWwgcGFkIGlzIG5ldmVyIE5VTEwuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBsaW5raW5nIHBhZHMgd2l0aG91dCBhIHRhcmdldCB3b3VsZCBjcmVhdGUgbmFzdHkKCSAgY3JpdGljYWxzLiBGaXhlcyAjMzQxMDI5LgoJICBEb24ndCBhc3NpZ24gYSBHc3RQYWRMaW5rUmV0dXJuIHRvIGEgZ2Jvb2xlYW4gYW5kIG1lc3MgdXAgdGhlIHJldHVybgoJICB2YWx1ZSBvZiBfc2V0X3RhcmdldCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIFNvbWUgbW9yZSB0ZXN0cyBmb3IgY3JlYXRpbmcgYW5kIGxpbmtpbmcgdW50YXJnZXRlZCBnaG9zdHBhZHMuCgoyMDA2LTA4LTMxIDEwOjU5OjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX25ldyksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgVGVtcGxhdGVzIGFyZSBub3cgdXNlZCBhcyBhIGdfb2JqZWN0X25ldygpIHBhcmFtZXRlci4KCSAgVXNlIHRlbXBsYXRlIGluIF9kb19nZXRjYXBzKCkgaWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldC4KCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwcy4KCSAgQWRkZWQgdHdvIG5ldyBjb25zdHJ1Y3RvcnM6CgkgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUoKQoJICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSgpCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdHMgZm9yIG5ldyBnaG9zdHBhZCBpbnN0YW5jaWF0aW9uIGZ1bmN0aW9ucy4KCSAgQVBJIGFkZGl0aW9uczogZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSwKCSAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUKCjIwMDYtMDgtMzAgMTI6Mjg6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDogSWRlYXMgYWJvdXQgcW9zIHByb2ZpbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBJZGVhcyBhYm91dCBxb3MgcHJvZmlsaW5nLgoKMjAwNi0wOC0yOSAxNDozOTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKToKCSAgQ29kZSBjbGVhbnVwcy4KCSAgRml4IG1lbWxlYWsuCgoyMDA2LTA4LTI5IDEwOjQ5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHhtbC5jOiBJbXByb3ZlIGFuZCBkZXR5cG9meSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIEltcHJvdmUgYW5kIGRldHlwb2Z5IGRvY3MuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3htbF9zdWl0ZSk6CgkgIEFkZCBhIGJhc2ljIHRlc3Qgc3VpdGUgZm9yIEdzdFhNTC4KCjIwMDYtMDgtMjkgMDk6NTY6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZCBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLCAoY2xlYXJfY2FwcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZAoJICBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCBtb2RpZnkgdGhlIGNhcHMuCgkgIEZpeGVzICMzNTI5NTguCgoyMDA2LTA4LTI5IDA4OjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgSSBkb24ndCBldmVuIGtub3cgd2hpY2ggYXJjaCB0aGF0IGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJIGRvbid0IGV2ZW4ga25vdyB3aGljaCBhcmNoIHRoYXQgaXMKCjIwMDYtMDgtMjggMjM6MTY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBtb3JlIGxvZ2ljYWwgdG8gbG9nIHRoZSBzZW5kaW5nIHBhZCwgYW5kIHRoZSBwYWQgaXQgaXMgc2VuZGluZyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBsb2dpY2FsIHRvIGxvZyB0aGUgc2VuZGluZyBwYWQsIGFuZCB0aGUgcGFkIGl0IGlzIHNlbmRpbmcgdG8KCjIwMDYtMDgtMjggMTg6MjA6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZTsgSSBtaXN1bmRlcnN0b29kIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlOyBJIG1pc3VuZGVyc3Rvb2Qgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDgtMjggMTg6MDg6MDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogVW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIHdoZW4gdXNpbmcgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVuc2V0IERJU0NPTlQgb24gYnVmZmVycyB3aGVuIHVzaW5nIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTA4LTI4IDE2OjM5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogRml4IGRvY3MgYW5kIGluZGVudGF0aW9uIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBGaXggZG9jcyBhbmQgaW5kZW50YXRpb24gYWdhaW4uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3RzIGFuZCBhZGQgc29tZSBtb3JlIHRlc3RzLgoKMjAwNi0wOC0yOCAxNTo1NzozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB0byBoYXZlIGEgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQKCSAgc2VnbWVudCB0byBoYXZlIGEgcHJvcGVyIGR1cmF0aW9uIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIHN0b3AKCSAgcG9zaXRpb24gZnJvbSB3aGljaCBhIGR1cmF0aW9uIGNvdWxkIGJlIGNhbGN1bGF0ZWQuCgkgIFRoaXMgYnVnIHdhcyBub3RpY2VhYmxlIHdoZW4gYSBub24tZmx1c2hpbmcsIG5vbi11cGRhdGUgbmV3IHNlZ21lbnQgd2FzCgkgIGZvbGxvd2VkIGJ5IGFub3RoZXIgc2VnbWVudCAoYWxsIGJ1ZmZlcnMgZnJvbSB0aGUgbmV3IHNlZ21lbnQgd2VyZSBiZWluZwoJICBkcm9wcGVkKS4KCjIwMDYtMDgtMjggMTU6NDg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgY29tbWVudCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBEcm9wLXByb2JhYmlsaXR5IGlzIGJyb2tlbiwgbWVudGlvbiB0aGlzIGluIHRoZSBjb2RlIHdpdGggYQoJICBGSVhNRSBhbmQgYWxzbyBpbiB0aGUgcHJvcGVydHkgZGVzY3JpcHRpb24uCgkgIE1ha2Ugc2lsZW50IGFsc28gYmUgc2lsZW50IGFib3V0IHRoZSBkcm9wIG1lc3NhZ2VzLgoKMjAwNi0wOC0yOCAxMTowNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDogUmVtb3ZlIG1lbnRpb24gb2YgcG9wdCwgd2UgZG9uJ3QgZGVwZW5kIG9uIHRoYXQgYW55IGxvbmdlciAoIzM1MzEzNikuIEFkZCBzb21lIGNvbW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6CgkgIFJlbW92ZSBtZW50aW9uIG9mIHBvcHQsIHdlIGRvbid0IGRlcGVuZCBvbiB0aGF0IGFueQoJICBsb25nZXIgKCMzNTMxMzYpLiBBZGQgc29tZSBjb21tZW50cyBwb2ludGluZyBvdXQgdGhhdAoJICB0aGlzIHNlY3Rpb24gaXMgc2xpZ2h0bHkgb3V0ZGF0ZWQuCgoyMDA2LTA4LTI4IDA4OjQ0OjI5ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteCBkb3QgZGU+CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgcXVlcnkuCgkgIEZpeGVzICMzNTMxMjEuCgoyMDA2LTA4LTI4IDA4OjM1OjMxICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIENoZWNrIGZvciBOVUxMIGJlZm9yZSBfcmVmZmluZyB0aGUgYnVzLiBGaXhlcyAjMzUzMTIyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgZm9yIE5VTEwgYmVmb3JlIF9yZWZmaW5nIHRoZSBidXMuIEZpeGVzICMzNTMxMjIuCgoyMDA2LTA4LTI1IDE2OjQ2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IERvY3MgdXBkYXRlOiBmaXggd3JvbmcgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIGV4cGxhbmF0aW9uOyBhZGQgc29tZSBsaW5lcyBhYm91dCB0aGUgaW1wbGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBEb2NzIHVwZGF0ZTogZml4IHdyb25nIGNhbGxiYWNrIHJldHVybiB2YWx1ZSBleHBsYW5hdGlvbjsgYWRkCgkgIHNvbWUgbGluZXMgYWJvdXQgdGhlIGltcGxpY2l0IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1haW4gbG9vcAoJICBhbmQgbWFpbiBjb250ZXh0OyByZW1vdmUgZHVwbGljYXRlIG1haW4gbG9vcCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KCjIwMDYtMDgtMjQgMTI6MzA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUKCSAgY2hlY2tzLgoKMjAwNi0wOC0yNCAxMDo0MDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCksCgkgIChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0KSwgKGdzdF9jYXBzX21lcmdlKSwKCSAgKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCjIwMDYtMDgtMjMgMTg6NTM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzLzogYWRkIGRlYnVnLWxvZyBwbG90dGluZyBkZXZlbG9wZXIgdG9vbCAoIzM0MDY3NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGFkZCBkZWJ1Zy1sb2cgcGxvdHRpbmcgZGV2ZWxvcGVyIHRvb2wgKCMzNDA2NzQpCgoyMDA2LTA4LTIzIDE2OjUxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLCAoZ3N0X3Rhc2tfam9pbik6CgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSB0YXNrIGZ1bmN0aW9uIHN0YXJ0ZWQgYW5kIGZpbmlzaGVkIGFmdGVyIGEKCSAgam9pbigpLgoJICBEb24ndCB0cnkgdG8gcHVzaCB0aGUgdGFzayBmdW5jdGlvbiBvbiB0aGUgdGhyZWFkcG9vbCBtdWx0aXBsZQoJICB0aW1lcy4KCSAgSW1wcm92ZSB0aGUgZ193YXJuaW5nIG1lc3NhZ2Ugd2l0aCBzb21lIHVzZWZ1bCBzdWdnZXN0aW9ucwoJICBhYm91dCBob3cgdG8gZml4IHRoZSBwcm9ibGVtLgoKMjAwNi0wOC0yMyAxMDo1OTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCjIwMDYtMDgtMjMgMDk6NDc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3b3JkIHJlZmNvdW50aW5nIG1vcmUgcHJlY2lzZWx5IGZvciBnc3RfdmFsdWVfKl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmQgcmVmY291bnRpbmcgbW9yZSBwcmVjaXNlbHkgZm9yIGdzdF92YWx1ZV8qX2J1ZmZlcgoKMjAwNi0wOC0yMSAxNToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R4bWwuYzogQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28gdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9kaXNwb3NlKSwgKGdzdF94bWxfcGFyc2VfZmlsZSksCgkgIChnc3RfeG1sX3BhcnNlX21lbW9yeSksIChnc3RfeG1sX2dldF9lbGVtZW50KToKCSAgQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28KCSAgdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgRG9uJ3QgbGVhayBYbWxEb2NQdHIgaW4gX3BhcnNlX2ZpbGUoKSBhbmQgX3BhcnNlX21lbW9yeSgpLgoJICBBbHdheXMgcmV0dXJuIGEgcmVmZXJlbmNlIGluIGdzdF94bWxfZ2V0X2VsZW1lbnQoKSByYXRoZXIKCSAgdGhhbiBvbmx5IHNvbWV0aW1lcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgIERvbid0IGxlYWsgR3N0WG1sIG9iamVjdC4KCjIwMDYtMDgtMjEgMTQ6NTQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFQSTogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIHVzZSBpdCBpbiBiYXNldHJhbnNmb3JtLCBmaXhlcyAjMzQ1NDQ0IGluIGEgYmV0dGVyIHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RydWN0dXJlX2lzX2VxdWFsX2ZvcmVhY2gpLAoJICAoZ3N0X2NhcHNfbWVyZ2UpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBBUEk6IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXRyYW5zZm9ybSwgZml4ZXMgIzM0NTQ0NAoJICBpbiBhIGJldHRlciB3YXkKCjIwMDYtMDgtMjEgMTQ6MDM6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0eG1sLmM6IEltcGxlbWVudCBHT2JqZWN0OjpkaXNwb3NlIHZpcnR1YWwgbWV0aG9kIGluIEdzdFhNTCBzbyB3ZSBjYW4gZnJlZSB0aGUgdG9wX2VsZW1lbnRzIEdMaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpLCAoZ3N0X3htbF9kaXNwb3NlKToKCSAgSW1wbGVtZW50IEdPYmplY3Q6OmRpc3Bvc2UgdmlydHVhbCBtZXRob2QgaW4gR3N0WE1MIHNvIHdlIGNhbiBmcmVlIHRoZQoJICB0b3BfZWxlbWVudHMgR0xpc3QuCgoyMDA2LTA4LTIxIDA5OjMwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZSBjb21wbGV0ZSBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZQoJICBjb21wbGV0ZSBwYXJlbnQuCgkgIE1ha2UgdGhlIHN1YmJ1ZmZlciByZWFkLW9ubHkgd2hlbiB3ZSBtYWtlIHRoZSBtZXRhZGF0YSB3cml0YWJsZSBmb3IKCSAgbm93LiBGaXhlcyAjMzUxNzY4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgY2hlY2sgZm9yIG1ldGFkYXRhIGNvcHkgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoKMjAwNi0wOC0yMSAwOToyMDo0MiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2ggb3IgYWx3YXlzX2luXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2gKCSAgb3IgYWx3YXlzX2luX3BsYWNlLiBDbG9zZXMgIzM1MDQ0OS4KCjIwMDYtMDgtMjAgMTk6MzY6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGNvbW1lbnRzIHRvIHByZXZpb3VzIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY29tbWVudHMgdG8gcHJldmlvdXMgY2hhbmdlcwoKMjAwNi0wOC0yMCAxOTozMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgU2ltcGxpZnkgY2FwcyB0byBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGZpeGVzICMzNDU0NDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBTaW1wbGlmeSBjYXBzIHRvIGdldCByaWQgb2YgZHVwbGljYXRlcywgZml4ZXMgIzM0NTQ0NAoKMjAwNi0wOC0yMCAxNTo1NToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSB0aGVzZSBvcHRpbWl6YXRpb25zIG9ubHkgaW50ZXJuYWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlIHRoZXNlIG9wdGltaXphdGlvbnMgb25seSBpbnRlcm5hbHkuCgoyMDA2LTA4LTIwIDE0OjMwOjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogU2F2ZXMgdGhlIGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb24gaW4gbWFueSBjYXNlcyAoIzM0NTQ0NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9nZXRfY29tcGFyZV9mdW5jKSwgKGdzdF92YWx1ZV9jb21wYXJlKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX3dpdGhfZnVuYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFNhdmVzIHRoZSBleHBlbnNpdmUgbG9va3VwIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGluIG1hbnkgY2FzZXMKCSAgKCMzNDU0NDQpCgoyMDA2LTA4LTE4IDEzOjQxOjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKGdzdF9pbmZvX3N1aXRlKToKCSAgRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCjIwMDYtMDgtMTggMTA6NTI6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IHVwZGF0ZSBpZGVhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICB1cGRhdGUgaWRlYXMKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgcmVvcmRlciBmaWVsZHMsIHNhdmUgc29tZSBjb2x1bW5zLCBhZGQgb3B0aW5hbCBjb2xvciBjb2RlcyBmb3IgbG9nLQoJICBsZXZlbHMKCjIwMDYtMDgtMTggMDg6MDc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IGFkZCBpZGVhcyBhYm91dCBtYWtpbmcgdGhlIGxvZ3MgYWJpdCBtb3JlIHVzZWZ1bAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICBhZGQgaWRlYXMgYWJvdXQgbWFraW5nIHRoZSBsb2dzIGFiaXQgbW9yZSB1c2VmdWwKCjIwMDYtMDgtMTcgMTg6MTE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IFVwZGF0ZSBmb3IgMC4xMCBBUEkgKCMzNDA2MjcpLiBBZGQgbXlzZWxmIHRvIGF1dGhvcnMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBVcGRhdGUgZm9yIDAuMTAgQVBJICgjMzQwNjI3KS4gQWRkIG15c2VsZgoJICB0byBhdXRob3JzIGxpc3QuCgoyMDA2LTA4LTE3IDEwOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZSBnc3RjaGVjayBzdHVmZiBzaG93IHVwIGluIGRvY3MgKHN0aWxsIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkgdGhvdWdoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkgIE1ha2UgZ3N0Y2hlY2sgc3R1ZmYgc2hvdyB1cCBpbiBkb2NzIChzdGlsbCBuZWVkcyB0bwoJICBiZSBkb2N1bWVudGVkIHByb3Blcmx5IHRob3VnaCkuCgoyMDA2LTA4LTE2IDExOjQ3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X25ld19kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9jb252ZXJ0KSwgKGdzdF9xdWVyeV9wYXJzZV9jb252ZXJ0KSwKCSAgKGdzdF9xdWVyeV9uZXdfc2VnbWVudCksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X25ld19zZWVraW5nKSwKCSAgKGdzdF9xdWVyeV9zZXRfc2Vla2luZyksIChnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyk6CgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MKCSAgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsb29raW5nIHRoZW0gdXAgd2hlbgoJICBjcmVhdGluZyBhbmQgcGFyc2luZyBxdWVyaWVzLiBDYW4gYmUgdXNlZCBmb3IgZXZlbnQgY29uc3RydWN0aW9uIHRvby4KCSAgQ2xvc2VzICMzNTA0MzIuCgoyMDA2LTA4LTE2IDA4OjU0OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYm9ndXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggYm9ndXMgZG9jcy4KCjIwMDYtMDgtMTUgMTg6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IG1lbWxlYWsgKCMzNTE1MDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyk6CgkgIEZpeCBtZW1sZWFrICgjMzUxNTAyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIG1vc3Qgb2YgZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKCkKCSAgKG5vdCB0aGF0IG9uZSB3b3VsZCB3YW50IHRvIGVuY291cmFnZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbikuCgoyMDA2LTA4LTE1IDE4OjI5OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogVXNlIGNvbnN0IGdjaGFyICogdmFyaWFibGVzIGluIGZhaWxfdW5sZXNzX2VxdWFsc19zdHJpbmcgbWFjcm8gdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIFVzZSBjb25zdCBnY2hhciAqIHZhcmlhYmxlcyBpbiBmYWlsX3VubGVzc19lcXVhbHNfc3RyaW5nCgkgIG1hY3JvIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIChhbmQgZG9uJ3QgdXNlIHRhYnMgZm9yCgkgIGluZGVudGluZykuCgoyMDA2LTA4LTE1IDEwOjA4OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNb3JlIHNwYWNlIG9uIHRoZSBsZWZ0IGZvciB0aGUgdGFnIG5hbWVzLCB0byBjYXRlciBmb3IgdGhlICdleHRlbmRlZCBjb21tZW50JyB0YWcgKG5vdCB0b3VjaGluZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIE1vcmUgc3BhY2Ugb24gdGhlIGxlZnQgZm9yIHRoZSB0YWcgbmFtZXMsIHRvIGNhdGVyCgkgIGZvciB0aGUgJ2V4dGVuZGVkIGNvbW1lbnQnIHRhZyAobm90IHRvdWNoaW5nIHRoZQoJICBzdHJpbmcgZm9yIHRoZSBmaXJzdCBsaW5lIHNpbmNlIGl0J3MgdHJhbnNsYXRlZCkuCgoyMDA2LTA4LTE1IDA5OjQ0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgoyMDA2LTA4LTE1IDA5OjMzOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5IHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5CgkgIHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCjIwMDYtMDgtMTQgMTk6MDQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoKMjAwNi0wOC0xNCAxNzoyOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IE1ha2UgR1NUX1BUUl9GT1JNQVQgcHJpbnQgbWVzc2FnZXMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19wcmludF9vYmplY3QpOgoJICBNYWtlIEdTVF9QVFJfRk9STUFUIHByaW50IG1lc3NhZ2VzIGFzIHdlbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKHByaW50Zl9leHRlbnNpb25fbG9nX2Z1bmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2luZm9fc3VpdGUpOgoJICBNb3JlIHRlc3RzLgoKMjAwNi0wOC0xNCAxNTozMzoxNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBJZiB0aGUgR3N0RWxlbWVudENsYXNzIGRvZXNuJ3QgaGF2ZSBhIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggYWxsIGZpZWxkcyB0aGVuIGVycm9yIG91dCBuaWNlbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgSWYgdGhlIEdzdEVsZW1lbnRDbGFzcyBkb2Vzbid0IGhhdmUgYSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIGFsbCBmaWVsZHMKCSAgZmlsbGVkIHVwIGNvcnJlY3RseSAobG9uZ25hbWUsIGRlc2NyaXB0aW9uIEFORCBhdXRob3IpLCB0aGVuIGVycm9yIG91dAoJICBuaWNlbHkgaW5zdGVhZCBvZiBjcmFzaGluZy4KCjIwMDYtMDgtMTQgMTI6MzU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZpeCB0eXBvIGluIGRvY3MgYW5kIHJlLXdyYXAgZG9jcyBibHVyYiB0byBub3QgZXhjZWVkIDgwIGNoYXJzL2xpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgRml4IHR5cG8gaW4gZG9jcyBhbmQgcmUtd3JhcCBkb2NzIGJsdXJiIHRvIG5vdCBleGNlZWQgODAgY2hhcnMvbGluZS4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgRXhwYW5kIG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYXJyYXlzIGFuZCBsaXN0cyBhcyB3ZSB1c2UgdGhlbS4KCjIwMDYtMDgtMTQgMDc6NDQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseSBzdG9wIHRoZSBzb3VyY2UsIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseQoJICBzdG9wIHRoZSBzb3VyY2UsIHRoaXMgd2lsbCBiZSBkb25lIHdoZW4gdGhlIHBhZHMgYXJlIGRlYWN0aXZhdGVkLgoKMjAwNi0wOC0xNCAwNzozNTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2pvaW4pOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgV2hlbiBwYWQgKGRlKWFjdGl2YXRpb24gZmFpbGVkIGZvciBzb21lIHJlYXNvbiwgcmVzdG9yZSB0aGUgb2xkCgkgIGFjdGl2YXRpb24gbW9kZSBhbmQgc2V0IHRoZSBwYWQgdG8gZmx1c2hpbmcgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUKCSAgcGFkIGlzIGRlYWN0aXZhdGVkLgoJICBJZiB0aGUgX3Rhc2tfam9pbigpIGZhaWxlZCwgcmVpbnN0YWxsIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBpdCBjYW4KCSAgYmUgc3RvcHBlZCBsYXRlciBhbmQgcmV0dXJuIGFuIGVycm9yLgoKMjAwNi0wOC0xMSAxNToyNjozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyBvbmx5IGZvciB1c2VycyBvZiBBUEkgdGhhdCBkb24ndCB3YW50IHRvIHNlZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiB0aGUgaGVhZGVyczsgcGVvcGxlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA4LTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOiBHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIGlzIG9ubHkgZm9yIHVzZXJzIG9mIEFQSSB0aGF0IGRvbid0IHdhbnQgdG8gc2VlIGRlcHJlY2F0ZWQKCSAgZnVuY3Rpb25zIGluIHRoZSBoZWFkZXJzOyBwZW9wbGUgdGhhdCB3YW50IHRvIGNvbXBpbGUgb3V0CgkgIGRlcHJlY2F0ZWQgY29kZSBzaG91bGQgcGFzcyAtREdTVF9SRU1PVkVfREVQUkVDQVRFRCBpbnRvIHRoZQoJICBDRkxBR1MuIEZpeGVzIHRoZSBidWlsZCBvZiBtdWx0aWZkc2luaywgb3Igd2lsbCBzb29uLi4KCjIwMDYtMDgtMTEgMTU6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR3N0Q2xvY2tDbGFzcyB2bWV0aG9kIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBHc3RDbG9ja0NsYXNzIHZtZXRob2QgZG9jcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBNYXJrICNlbmRpZiB3aXRoIGNvbW1lbnQgZm9yIGFzc29jaWF0ZWQgI2lmCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEFkZCB2bWV0aG9kIHdhaXRfaml0dGVyIHRvIGF2b2lkIGFuIHVubmVlZGVkIF9nZXRfdGltZSgpIGZvcgoJICBtb3N0IGNsb2NrIGltcGxlbWVudGF0aW9ucy4KCSAgRG9jdW1lbnQgdm1ldGhvZHMuCgkgIEZsZXNoIG91dCBkb2NzIGFib3V0IHJlc29sdXRpb24gbWV0aG9kcy4KCSAgQVBJOiBHc3RDbG9ja0NsYXNzOjp3YWl0X2ppdHRlcgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIFVzZSBiYXNlIGNsYXNzIHdhaXRfaml0dGVyIHZhcmlhbnQgZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlCgkgIGR1ZSB0byBsZXNzIGNsb2NrIHBvbGxpbmcuCgoyMDA2LTA4LTExIDE1OjA3OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBTZXQgZ3N0IGFzIGJlaW5nIGluaXRpYWxpemVkIGJlZm9yZSBzY2FubmluZy91cGRhdGluZyB0aGUgcmVnaXN0cnksIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcGx1Z2lucyB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrKSwgKGluaXRfcG9zdCk6CgkgIFNldCBnc3QgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHNjYW5uaW5nL3VwZGF0aW5nIHRoZSByZWdpc3RyeSwKCSAgc2luY2UgdGhlcmUgbWlnaHQgYmUgc29tZSBwbHVnaW5zIHRoYXQgY2FsbCBnc3RfaW5pdCgpIGFuZCB3ZSBkb24ndAoJICB3YW50IHRvIGxvb3AgYmFjayBpbi4KCSAgQ2xvc2VzICMzNTA4NzkKCjIwMDYtMDgtMTEgMTM6MTM6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCjIwMDYtMDgtMTEgMTM6MDU6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEJyaW5nIGRvY3MgaW4gbGluZSB3aXRoIHRoZSBjb2RlLiBNb3N0bHkgdGhlIHNpZ24gb2YgdGhlIGppdHRlciB3YXMgd3JvbmcgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgQnJpbmcgZG9jcyBpbiBsaW5lIHdpdGggdGhlIGNvZGUuIE1vc3RseSB0aGUgc2lnbiBvZiB0aGUgaml0dGVyIHdhcwoJICB3cm9uZyBpbiB0aGUgZG9jcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgRml4IHRoZSBkb2NzIGZvciB0aGUgaml0dGVyLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwKCSAgKGdzdF9ldmVudF9uZXdfc2VlayksIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksCgkgIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICBNYWtlIHN1cmUgdGhlIEdzdFN0cnVjdHVyZSBoYXMgbm8gcGFyZW50IHdoZW4gY3JlYXRpbmcgY3VzdG9tCgkgIGV2ZW50cy4KCSAgQWRkIHNvbWUgbW9yZSBhcmd1bWVudCBjaGVja2luZyBzbyB0aGF0IHdlIGF2b2lkIDAuMCByYXRlcy4KCSAgRmxlc2ggb3V0IHRoZSBkb2NzIGZvciB0aGUgUW9TIGV2ZW50IHNvbWUgbW9yZS4KCjIwMDYtMDgtMTEgMTA6MjE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCjIwMDYtMDgtMTEgMTA6MTk6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyksIChnc3RfZGVpbml0KSwKCSAgKGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQpLCAoZ3N0X3JlZ2lzdHJ5X2Zvcmtfc2V0X2VuYWJsZWQpOgoJICAqIGdzdC9nc3QuaDoKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIEFQSSBhbmQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkaXNhYmxlIHJlZ2lzdHJ5IGZvcmtpbmcgaW4KCSAgYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBDb25zdGlmeSBzb21lIHN0YXRpYyBhcnJheXMuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgRG9uJ3QgZGVpbml0IHR3aWNlLgoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX3NldF9lbmFibGVkKCkKCSAgQVBJOiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5LWZvcmsgY29tbWFuZCBsaW5lIG9wdGlvbgoKMjAwNi0wOC0xMSAwOTo1OToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXQpOgoJICBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgoKMjAwNi0wOC0xMCAyMDowNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6IGZpeCBBQkkgc2l6ZS1jb3JyZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBmaXggQUJJIHNpemUtY29ycmVjdGlvbgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBtYWtlIHRlc3RzIHRoYXQgdXNlIGRlcHJlY2F0ZWQgQVBJIGNvbmRpdGlvbmFsCgoyMDA2LTA4LTEwIDE5OjQ2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9nZXRfcHJvcGVydHkpLCAoX2dzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfaW5pdCksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgYWRkIGRlcHJlY2F0aW9uIGd1YXJkcyB0byBtYWtlIGd0ay1kb2MgaGFwcHkgYW5kIGFsbG93IGRpc2FibGluZyBjcnVmdAoKMjAwNi0wOC0wOSAxNToyNjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogTGV0J3MgZW5hYmxlIHRoZSBuZXcgdW5pdCB0ZXN0IGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBMZXQncyBlbmFibGUgdGhlIG5ldyB1bml0IHRlc3QgYXMgd2VsbC4KCjIwMDYtMDgtMDkgMTU6MTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZSByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpLCAoZ3N0X2RlYnVnX3ByaW50X3NlZ21lbnQpLAoJICAoX2dzdF9pbmZvX3ByaW50Zl9leHRlbnNpb25fcHRyKSwKCSAgKF9nc3RfaW5mb19wcmludGZfZXh0ZW5zaW9uX3NlZ21lbnQpOgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZQoJICByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZwoJICBsb2dzICgjMzUwNDE5KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoc2VnbWVudF9wcmludGZfZXh0ZW5zaW9uX2xvZ19mdW5jKSwKCSAgKGluZm9fc2VnbWVudF9mb3JtYXRfcHJpbnRmX2V4dGVuc2lvbiksIChnc3RfaW5mb19zdWl0ZSk6CgkgIEFkZCBzaW1wbGUgdW5pdCB0ZXN0IHRoYXQgbG9ncyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBzZWdtZW50cyAobm90CgkgIHZhbGdyaW5kZWQgYXQgdGhlIG1vbWVudCBiZWNhdXNlIG9mIGxlYWtzIGluIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKS4KCjIwMDYtMDgtMDkgMTE6MDE6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwgY2FsbCBidWZmZXJfYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwKCSAgY2FsbCBidWZmZXJfYWxsb2MoKSBkb3duc3RyZWFtIHdpdGggdGhlIGlucHV0IHBhcmFtZXRlcnMgd2l0aG91dCBzZXR0aW5nCgkgIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQuIFRoaXMgd2lsbCBmb3JjZSBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4KCSAgZnVuY3Rpb24uCgkgIENsb3NlcyAjMzUwNDQ5CgoyMDA2LTA4LTA4IDE2OjI0OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFVubGlua2luZyBmcm9tIGEgcGFkIHdpdGhvdXQgYSB0YXJnZXQgaXMgbm93IGEgcGVyZmVjdGx5IHZhbGlkIGNhc2Ugd2hpY2ggc2hvdWxkIE5PVCByYWlzZSBhbiBhc3NlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspOgoJICBVbmxpbmtpbmcgZnJvbSBhIHBhZCB3aXRob3V0IGEgdGFyZ2V0IGlzIG5vdyBhIHBlcmZlY3RseSB2YWxpZCBjYXNlCgkgIHdoaWNoIHNob3VsZCBOT1QgcmFpc2UgYW4gYXNzZXJ0aW9uLgoJICBUaGlzIGNhc2Ugd291bGQgaGFwcGVuIGlmIGEgbGlua2VkIGdob3N0cGFkIGl0cyB0YXJnZXQgc2V0IHRvIE5VTEwgYWZ0ZXIKCSAgaXQgd2FzIHByZXZpb3VzbHkgbGlua2VkLgoKMjAwNi0wOC0wOCAwOTo1Njo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgoyMDA2LTA4LTA4IDA5OjA3OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogVXNlIHRoZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gZnJvbSBjb25maWcuaCBhbmQgbm90IGdjYyBtYWNyb3MgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGlzYWJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBVc2UgdGhlIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGNvbmZpZy5oIGFuZCBub3QgZ2NjIG1hY3JvcwoJICBpbiBvcmRlciB0byBwcm9wZXJseSBkaXNhYmxlIGEgdGVzdCB0aGF0IGZhaWxzIG9uIFBQQzY0LgoKMjAwNi0wOC0wNCAxNToxNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IERvbid0IGNyYXNoIHByaW50aW5nIHRoZSB3YXJuaW5nIGlmIHRoZSBwYWQgaGFzIG5vIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpOgoJICBEb24ndCBjcmFzaCBwcmludGluZyB0aGUgd2FybmluZyBpZiB0aGUgcGFkIGhhcyBubyBwYXJlbnQuCgoyMDA2LTA4LTAyIDE1OjE5OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBNYWtlIGRlYnVnIGNhdGVnb3J5IHN0YXRpYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX2NyYyksIChnc3RfZHBfaGVhZGVyX3BheWxvYWRfbGVuZ3RoKSwKCSAgKGdzdF9kcF9oZWFkZXJfcGF5bG9hZF90eXBlKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKSwgKGdzdF9kcF9idWZmZXJfZnJvbV9oZWFkZXIpLAoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX3ZhbGlkYXRlX2hlYWRlciksCgkgIChnc3RfZHBfdmFsaWRhdGVfcGF5bG9hZCk6CgkgIE1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgkgIENvbnN0aWZ5IHRoZSBjcmMgdGFibGUuCgkgIERvIHNvbWUgbW9yZSBhcmcgY2hlY2tpbmcgaW4gcHVibGljIGZ1bmN0aW9ucy4KCSAgRml4IHNvbWUgZG9jcyBhbmQgZG8gc29tZSBzbWFsbCBjbGVhbnVwcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2RwX3N1aXRlKToKCSAgQWRkIHNvbWUgbW9yZSBjaGVja3MgdG8gc2VlIGlmIEdEUCBkZWFscyB3aXRoIGJvZ3VzIGlucHV0LgoKMjAwNi0wNy0zMSAxNjozNDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24gY29kZS4gRml4ZXMgIzM0NzI5My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KToKCSAgRml4IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uIGNvZGUuIEZpeGVzICMzNDcyOTMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRvIHRlc3QgR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24uCgoyMDA2LTA3LTMxIDE1OjEyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUKCSAgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNhcHMgY291bGQgY2hhbmdlIHdoaWxlIHdlIGFyZQoJICBidXN5IHdpdGggdGhlbS4gRml4ZXMgIzM0OTEwNQoKMjAwNi0wNy0zMSAxNToxMjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2Ugc3VyZSB0byBmcmVlIHRoZSBwYXJzZSBidWZmZXIgb24gYWxsIGNvZGUgcGF0aHMuCgkgIE1vdmUgYSBnX2ZyZWUgdXAgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUgaXQncyBlYXNpZXIgdG8gc2VlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIEV4dGVuZGluZyB0aW1lb3V0IGZvciBkb3duc3RyZWFtIHRyYXZlbGxpbmcgZXZlbnRzIHRvIDEwIHNlY29uZHMgdG8KCSAgaG9wZWZ1bGx5IGF2b2lkIGludGVybWl0dGVudCBmYWlsdXJlIG9uIHRoZSBidWlsZGJvdHMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCk6CgkgIERvbid0IG1hbnVhbGx5IHNldCB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IC0gaXQgd2lsbCBoYXBwZW4gYXMgYQoJICBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRoZSBwaXBlbGluZSBjaGFuZ2luZyBzdGF0ZSwgYW5kIHRoYXQgd2F5IGl0CgkgIHdpbGwgZG8gaXQgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvby4KCjIwMDYtMDctMzEgMTU6MDc6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBzdXJlIHRvIGZyZWUgdGhlIHBhcnNlIGJ1ZmZlciBvbiBhbGwgY29kZSBwYXRocy4KCSAgTW92ZSBhIGdfZnJlZSB1cCB0byB0aGUgZXJyb3IgaGFuZGxlciB3aGVyZSBpdCdzIGVhc2llciB0byBzZWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgRXh0ZW5kaW5nIHRpbWVvdXQgZm9yIGRvd25zdHJlYW0gdHJhdmVsbGluZyBldmVudHMgdG8gMTAgc2Vjb25kcyB0bwoJICBob3BlZnVsbHkgYXZvaWQgaW50ZXJtaXR0ZW50IGZhaWx1cmUgb24gdGhlIGJ1aWxkYm90cy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KToKCSAgRG9uJ3QgbWFudWFsbHkgc2V0IHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgLSBpdCB3aWxsIGhhcHBlbiBhcyBhCgkgIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIHBpcGVsaW5lIGNoYW5naW5nIHN0YXRlLCBhbmQgdGhhdCB3YXkgaXQKCSAgd2lsbCBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIgdG9vLgoKMjAwNi0wNy0zMSAxNDoyMzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBQcm90ZWN0IF9QQURfQ0FQUyB3aXRoIE9CSkVDVF9MT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYyk6CgkgIFByb3RlY3QgX1BBRF9DQVBTIHdpdGggT0JKRUNUX0xPQ0suCgoyMDA2LTA3LTMxIDE0OjIxOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9pbnRlcm5hbF9saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2xpbmtfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfdW5saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9maXhhdGVjYXBzX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3NldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYnVmZmVyYWxsb2NfZnVuY3Rpb24pLCAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLAoJICAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKSwgKGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcyksCgkgIChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfbG9hZF9hbmRfbGluayksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBQcm90ZWN0IEdTVF9QQURfQ0FQUyB3aXRoIHRoZSBPQkpFQ1RfTE9DSy4KCSAgU21hbGwgY2xlYW51cHMgYW5kIGNvZGUgcmVmbG93cy4KCSAgQXZvaWQgY2FwcyByZWZjb3VudGluZyBpbiBfYWNjZXB0X2NhcHMuCgkgIFJlZmFjdG9yIGFsbG9jX2J1ZmZlciBzbyB0aGF0IHRoZSBjb2RlIHBlcmZvcm1lZCBvbiB0aGUgcGVlciBpcyBpbiBhCgkgIHNlcGFyYXRlIGZ1bmN0aW9uLiBBbHNvIGlmIHRoZSBwYWQgZG9lcyBub3QgaW1wbGVtZW50IGEgYnVmZmVyIGFsbG9jCgkgIGZ1bmN0aW9uLCB3ZSBzaG91bGQgc3RpbGwgY2hlY2sgaWYgdGhlIHBhZCBpcyBmbHVzaGluZyBiZWZvcmUgZmFsbGluZwoJICBiYWNrIHRvIHRoZSBkZWZhdWx0IGFsbG9jYXRvci4KCjIwMDYtMDctMzAgMjI6MjA6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBNYWtlIGFsbCB1c2VzIG9mIGlkZW50aXR5IGFuZCBmYWtlc2luayBoYXZlIHNpbGVudD10cnVlIHRvIGF2b2lkIHNlcmlhbGlzaW5nIGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBhbGwgdXNlcyBvZiBpZGVudGl0eSBhbmQgZmFrZXNpbmsgaGF2ZSBzaWxlbnQ9dHJ1ZSB0byBhdm9pZAoJICBzZXJpYWxpc2luZyBldmVyeSBwYXNzaW5nIGRhdGEgc3RydWN0dXJlLCB3aGljaCBpcyBicmVha2luZyB0ZXN0cwoJICBvbiBGQzQgZm9yIHNvbWUgdW5rbm93biByZWFzb24uCgoyMDA2LTA3LTMwIDE4OjU4OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvOiBSZXZlcnRlZCBwcmV2aW91cyBwYXRjaCBhcyBpdCByZXF1aXJlZCB0byBidW1wIHRoZSBmbGV4IGRlcGVuZGVuY3kgdG8gMi41LjMxLCB3aGVyZSBmYzQvNSBzZWVtIHRvIHNoaXAgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFJldmVydGVkIHByZXZpb3VzIHBhdGNoIGFzIGl0IHJlcXVpcmVkIHRvIGJ1bXAgdGhlIGZsZXggZGVwZW5kZW5jeSB0bwoJICAyLjUuMzEsIHdoZXJlIGZjNC81IHNlZW0gdG8gc2hpcCBvbmx5IHRoZSBhbmNpZW50IDIuNS40YSA6KAoKMjAwNi0wNy0zMCAxODozMjo0OSArMDAwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlLzogcHVzaCAmIHBvcCB0aGUgc3RhdGUgb2YgdGhlIGxleGVyIGZvciByZWVudHJhbnQgdXNlIGNhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIHB1c2ggJiBwb3AgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBmb3IgcmVlbnRyYW50IHVzZSBjYXNlCgkgIEZpeGVzICMzNDkxODAKCjIwMDYtMDctMjkgMTM6NDU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoZSA6Om5ld3NlZ21lbnQgdmZ1bmMgaXMgbm90IGFjdHVhbGx5IHVzZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGUgOjpuZXdzZWdtZW50IHZmdW5jIGlzIG5vdCBhY3R1YWxseSB1c2VkIGJ5CgkgIEdzdEJhc2VTcmMuCgoyMDA2LTA3LTI4IDE0OjA5OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xlYXIpLCAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVzZSBpdCB3aGVuIHdlIHNob3VsZG4ndC4KCSAgRml4IGxlYWtzIGJ5IGlucmVmZmluZyBpbmNvbW1pbmcgYnVmZmVyLgoJICBGbHVzaCBvdXQgcXVldWVkIGJ1ZmZlcnMgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIEZpeGVzICMzNDc0NTIuCgoyMDA2LTA3LTI4IDEwOjE3OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vcGhvbm9uLWdzdDogUmFuZG9tIG5vdGVzIGFib3V0IGEgUGhvbm9uIGJhY2tlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3Bob25vbi1nc3Q6CgkgIFJhbmRvbSBub3RlcyBhYm91dCBhIFBob25vbiBiYWNrZW5kLgoKMjAwNi0wNy0yNyAxNDozMjowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXh0cmEgZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBFeHRyYSBkZWJ1ZyBvdXRwdXQKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgVGFrZSBhIHdoYWNrIGF0IGZpeGluZyB0aGUgcHBjIGNvbXBpbGUgdXNpbmcgYSBkaWZmZXJlbnQgZGVmaW5lIHRvCgkgIGRpc2FibGUgdGhlIGJyb2tlbiB0ZXN0LgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGV4Y2VzcyBnX3ByaW50KCkKCjIwMDYtMDctMjcgMTM6NDQ6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoKMjAwNi0wNy0yNyAxMzoyNjoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocGFyc2Vfc3VpdGUpOgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsCgkgIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXJhdGUgdGVzdCB0aGF0IHdvbid0IHJ1bgoJICB0aGUgcGlwZWxpbmVzIHVubGVzcyB0aGUgYXBwcm9wcmlhdGUgbGluZSBpcyB1bmNvbW1lbnRlZC4KCjIwMDYtMDctMjcgMTI6Mzk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVxdWVzdGluZyAwIGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmaWxlIHNob3VsZCByZXN1bHQgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSZXF1ZXN0aW5nIDAgYnl0ZXMgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUgc2hvdWxkIHJlc3VsdCBpbgoJICBGTE9XX09LIGFuZCBhbiBlbXB0eSBidWZmZXIsIG5vdCBGTE9XX1VORVhQRUNURUQuIFRoYW5rIHlvdQoJICB1bml0IHRlc3QuCgoyMDA2LTA3LTI3IDExOjAwOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlKToKCSAgRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mb3JlYWNoKSwgKGdzdF9zdHJ1Y3R1cmVfbWFwX2luX3BsYWNlKToKCSAgQ2hlY2sgaW5wdXQgYXJndW1lbnRzIGZvciBwdWJsaWMgZnVuY3Rpb25zIHRvIGF2b2lkIG9idmlvdXMgY3Jhc2hlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBEbyBsZXNzIHVzZWxlc3MgdHlwZWNoZWNraW5nLgoKMjAwNi0wNy0yNyAxMDo1NDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBEbyBub3QgdXNlIG1tYXAoKSBieSBkZWZhdWx0IHNpbmNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBlcnJvciBjb25kaXRpb25zIHRoYXQgd2Ugd291bC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgRG8gbm90IHVzZSBtbWFwKCkgYnkgZGVmYXVsdCBzaW5jZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXJyb3IKCSAgY29uZGl0aW9ucyB0aGF0IHdlIHdvdWxkIGxpa2UgdG8gaGFuZGxlIGluIGEgbm9uLWZhdGFsIHdheSB0aGF0CgkgIHdpbGwgcmVzdWx0IGluIGEgU0lHQlVTIGlmIHdlIHVzZSBtbWFwKCkuIEV4YW1wbGVzOiBleHRlcm5hbAoJICBkZXZpY2VzIChVU0IgaGFyZGRyaXZlLCBwb3J0YWJsZSBtdXNpYyBwbGF5ZXIpIGJlaW5nIHVucGx1Z2dlZAoJICB3aGlsZSBpbiB1c2U7IGZpbGUgb24gbW91bnRlZCBDRC9EVkQgdGhhdCBjYW4ndCBiZSByZWFkIGJlY2F1c2UKCSAgdGhlIG1lZGl1bSBpcyBwYXJ0bHkgZGFtYWdlZC4gRml4ZXMgIzM0ODQ1NSBhbmQgIzM0ODQ3NS4KCjIwMDYtMDctMjYgMjI6NTk6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lmg6IERlbGV0ZSB1bnVzZWQgYW5kIG1pc2xlYWRpbmcgZGVmaW5lIG9mIEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOIC0gcmF0ZXMgYXJlIGEgZ2RvdWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRGVsZXRlIHVudXNlZCBhbmQgbWlzbGVhZGluZyBkZWZpbmUgb2YgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4gLQoJICByYXRlcyBhcmUgYSBnZG91YmxlCgoyMDA2LTA3LTI2IDIwOjMwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogTW92ZSBiaWcgZG9jdW1lbnRhdGlvbiBjb21tZW50IGludG8gY2xhc3Mgc2VjdGlvbiBoZWFkZXIsIHNvIHRoYXQgaXQgYXBwZWFycyBpbiB0aGUgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNb3ZlIGJpZyBkb2N1bWVudGF0aW9uIGNvbW1lbnQgaW50byBjbGFzcyBzZWN0aW9uIGhlYWRlciwgc28gdGhhdCBpdAoJICBhcHBlYXJzIGluIHRoZSBBUEkgZG9jcy4KCjIwMDYtMDctMjYgMTc6MTg6MjUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogT29wcy4gQ29tbWl0IHRoZSBkb2NzIGFkZGl0aW9ucyB0b28gZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE9vcHMuIENvbW1pdCB0aGUgZG9jcyBhZGRpdGlvbnMgdG9vIGZvciBuZXcgQVBJLgoJICBBbHNvLCByZW1vdmUgdGhlIG1lbnRpb24gb2YgdGhlIG5vbi1leGlzdGVudCBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTgoKMjAwNi0wNy0yNiAxNzowNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLio6IEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXQpLAoJICAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcKCSAgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSBxdWFyayBpcyBhbHJlYWR5IGtub3duLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfc2V0CgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgUmVtb3ZlIHNvbWUgZGVhZCBjb2RlIHNob3duIGJ5IHRoZSBjb3ZlcmFnZSBpbmZvcm1hdGlvbi4KCSAgRG9uJ3QgdGhyb3cgYSBjcml0aWNhbCBnX3dhcm5pbmcgd2hlbiBlbmNvdW50ZXJpbmcgYSBzeW50YXggZXJyb3IsCgkgIGp1c3Qgd2FybiBhbmQgbGV0IHRoZSBub3JtYWwgZXJyb3IgcGF0aCBoYW5kbGUgaXQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBCdW1wIHRoZSByYW5rIG9mIGZpbGVzaW5rIHVwIHRvIFBSSU1BUlkgc28gdGhhdCBpdCBpcyBwcmVmZXJyZWQgb3ZlcgoJICBnbm9tZXZmc3NpbmsgZm9yIGZpbGU6Ly8gc2luayB1cmkncwoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3JlZ2lzdGVyX3BhcnNlX2VsZW1lbnQpLCAocGFyc2Vfc3VpdGUpOgoJICBCZWVmIHVwIHRoZSB0ZXN0cyBmb3IgcGFyc2Ugc3ludGF4IHRvIGNoZWNrIHRoYXQgbW9yZSBlcnJvciBjYXNlcwoJICBmYWlsIGFzIHRoZXkgYXJlIHN1cHBvc2VkIHRvLiBJbmNyZWFzZXMgdGhlIHRlc3QgY292ZXJhZ2UgYSBiaXQuCgoyMDA2LTA3LTI2IDExOjQzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDogRml4IGdzdF9lbGVtZW50X2xpbmsoKSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBGaXggZ3N0X2VsZW1lbnRfbGluaygpIGV4YW1wbGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1lbnRpb24gaW4gQVBJIGRvY3MgdGhhdCBvbmUgc2hvdWxkIHVzdWFsbHkgZ3N0X2Jpbl9hZGQoKQoJICBlbGVtZW50cyB0byBhIGJpbiBvciBwaXBlbGluZSBiZWZvcmUgZG9pbmcgdGhlIGxpbmtpbmcuCgoyMDA2LTA3LTI2IDEwOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byAzMiBiaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gMzIgYml0CgoyMDA2LTA3LTI2IDEwOjM5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9uZXcpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kCgkgIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSYW5kb20gc2lsbHkgb3B0aW1pc2F0aW9ucyBpbiByZWFkKCkgcGF0aC4KCjIwMDYtMDctMjYgMDY6MTg6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlCgkgIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlbCBlbGVtZW50LCBzbyBwbGFjZSBpdCBpbnNpZGUgYQoJICBwaXBlbGluZS4KCjIwMDYtMDctMjUgMTk6Mzc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KToKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMKCSAgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCjIwMDYtMDctMjUgMTU6MDc6NTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgoyMDA2LTA3LTI1IDEzOjA2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBNb3ZlIHRoZSBXaW4zMiB2ZXJzaW9uIGZyb20gZ3N0LXBsdWdpbnMtZ29vZC9nc3QvYXZpL2F2aWRlbXV4LmMgdG8gaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTW92ZSB0aGUgV2luMzIgdmVyc2lvbiBmcm9tIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L2F2aS9hdmlkZW11eC5jIHRvCgkgIGhlcmUuCgoyMDA2LTA3LTI0IDE2OjMzOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQWxsb3cgbW9yZSB0aGFuIG9uZSBHU1RfVEFHX0lNQUdFIHBlciB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIEFsbG93IG1vcmUgdGhhbiBvbmUgR1NUX1RBR19JTUFHRSBwZXIgdGFnbGlzdC4KCjIwMDYtMDctMjQgMDc6NDA6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogdXBkYXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdXBkYXRlIGRvY3MKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIGxvZyByZWN1cnJpbmcgZXZlbnRzIGF0IExPRyBsZXZlbAoJICBhZGQgbW9yZSBkZWJ1ZyBmb3Igd2hlbiB0aGUgZmQgZ2V0cyBzZXQKCjIwMDYtMDctMjQgMDc6Mzc6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICByZW1vdmUgLS1lbmFibGUtZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIC0tZW5hYmxlLWRvY3MKCjIwMDYtMDctMjMgMDk6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBidWcgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIGJ1ZyByZWZlcmVuY2UKCjIwMDYtMDctMjEgMTg6NTI6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYXJzZS5jOiBBbHNvIHJlbW92ZSByZWVudHJhbmNlIGNoZWNrcyBpZiBmbGV4IGlzIE1UIHNhdmUgKCMzNDgxNzkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIEFsc28gcmVtb3ZlIHJlZW50cmFuY2UgY2hlY2tzIGlmIGZsZXggaXMgTVQgc2F2ZSAoIzM0ODE3OSkKCSAgRml4IG15IGVtcHR5IENoYW5nZUxvZyBlbnRyeSBiZWxvdwoKMjAwNi0wNy0yMSAxNjowMTozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQXR0ZW1wdCB0byBwYWNpZnkgYnVpbGRib3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEF0dGVtcHQgdG8gcGFjaWZ5IGJ1aWxkYm90LgoKMjAwNi0wNy0yMSAxNTo0ODowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0gKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBpbmNsdWRlX0hFQURFUlMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAaW5jbHVkZV9IRUFERVJTKQoJICAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6IEFkZCBzb21lIG5ldyBoeXBlIHRlc3RpbmcKCSAgZnVuY3Rpb25zLCB0aHVzIHByb3ZpbmcgSSBhbSBzdGlsbCBhIEdTdHJlYW1lciBoYXhvci4gT0sgSSB3cm90ZQoJICB0aGVtIGEgbG9uZyB0aW1lIGFnbywgYnV0IGFueXdheXMuCgoyMDA2LTA3LTIxIDEzOjExOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6ICogY29uZmlndXJlLmFjOiAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgoyMDA2LTA3LTIxIDEwOjQwOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhcnNlLmM6IFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4IGFuZCBidXN5IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIGFuZCBidXN5IGZsYWcuCgoyMDA2LTA3LTIxIDEwOjM4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBGaXggbGVhayBpbiB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3QuCgoyMDA2LTA3LTIwIDIwOjAyOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFyc2UuYzogRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCjIwMDYtMDctMjAgMTY6MTA6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBZGQgc29tZSBtb3JlIGRvY3MsIGNvbW1lbnRzIGFuZCBGSVhNRSAwLjExcyBoZXJlIGFuZCB0aGVyZSBhbmQgIGFsc28gZml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEFkZCBzb21lIG1vcmUgZG9jcywgY29tbWVudHMgYW5kIEZJWE1FIDAuMTFzIGhlcmUgYW5kIHRoZXJlCgkgIGFuZCAgYWxzbyBmaXggc29tZSB0eXBvcy4KCjIwMDYtMDctMjAgMTA6NTA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBDb252ZXJ0IHRhYnMgdG8gc3BhY2VzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIENvbnZlcnQgdGFicyB0byBzcGFjZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMDYtMDctMjAgMTA6MjU6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiB0aGUgdGVzdF9idWZmZXIgdGVzdCBmYWlscyBhdCBsaW5lIDE0MCBvbiBwcGM2NCBhdCB0aGUgZm9sbG93aW5nIGNoZWNrOiAiR1NUX0JVRkZFUl9JTl9DQVBTIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIHRoZSB0ZXN0X2J1ZmZlciB0ZXN0IGZhaWxzIGF0IGxpbmUgMTQwIG9uIHBwYzY0IGF0IHRoZSBmb2xsb3dpbmcKCSAgY2hlY2s6CgkgIGZhaWxfdW5sZXNzIChHU1RfQlVGRkVSX0ZMQUdfSVNfU0VUIChuZXdidWZmZXIsIEdTVF9CVUZGRVJfRkxBR19JTl9DQVBTKSwKCSAgIkdTVF9CVUZGRVJfSU5fQ0FQUyBmbGFnIHNob3VsZCBoYXZlIGJlZW4gY29waWVkICEiKTsKCSAgU2VlIGJ1ZyAjMzQ4MTE0IGZvciBtb3JlIGRldGFpbHMuCgoyMDA2LTA3LTE5IDEyOjQwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IHR5cG9zICgjMzQ4MDAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwb3MgKCMzNDgwMDApLgoKMjAwNi0wNy0xOCAyMDozODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6IEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgoyMDA2LTA3LTE4IDE5OjAxOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtYWtlIC0tZGlzYWJsZS1pbmRleCB3b3JrICgjMzQyNTY0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgbWFrZSAtLWRpc2FibGUtaW5kZXggd29yayAoIzM0MjU2NCkKCjIwMDYtMDctMTggMDk6NDI6MzEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZyBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0dHJhY2UuaDoKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZwoJICBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0aW5nIGRlZmluZS4KCSAgRml4ZXMgIzM0Nzc1Ni4KCjIwMDYtMDctMTcgMTc6NDA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgdHdvIGZ1bmN0aW9ucyB0byBjaGVjayBhbmQgY2hhbmdlIHRoZSBTSUdTRUdWIGJlaGF2aW91ciB3aGVuIGxvYWRpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3Rfc2VndHJhcF9pc19lbmFibGVkKSwgKGdzdF9zZWd0cmFwX3NldF9lbmFibGVkKToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9yZXN0b3JlKToKCSAgQWRkIHR3byBmdW5jdGlvbnMgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgU0lHU0VHViBiZWhhdmlvdXIKCSAgd2hlbiBsb2FkaW5nIHBsdWdpbnMuCgkgIERvbid0IG1lc3Mgd2l0aCB0aGUgU0lHU0VHViBoYW5kbGVyIHdoZW4gd2Ugd2VyZSB0b2xkIG5vdCB0by4KCSAgRml4ZXMgIzM0Nzc5NC4KCSAgQVBJOiBnc3Rfc2VndHJhcF9pc19lbmFibGVkCgkgIEFQSTogZ3N0X3NlZ3RyYXBfc2V0X2VuYWJsZWQKCjIwMDYtMDctMTQgMTY6NDI6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCjIwMDYtMDctMTQgMTY6MjA6MTggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRnJlZSBpdGVyYXRvciB3aGVuIGRvbmUgKCMzNDczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspOgoJICBGcmVlIGl0ZXJhdG9yIHdoZW4gZG9uZSAoIzM0NzMxMSkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBbmQgYWRkIGEgdGVzdCBjYXNlIGZvciB0aGlzLgoKMjAwNi0wNy0xNCAxNTo1Mjo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgbmFubyBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgbmFubyBiYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC45ID09PQoKMjAwNi0wNy0xNCAxNTo1MDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjksICJPbiB0aGUgcm9hZCBhZ2FpbiIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMTMgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuOSwgIk9uIHRoZSByb2FkIGFnYWluIgoKMjAwNi0wNy0xMyAxOTo0NzoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDctMTMgMTU6NTE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCjIwMDYtMDctMTMgMTQ6MDI6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aCBlbXB0eSBwYXlsb2FkIChvbmx5IGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8xXzApOgoJICBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aAoJICBlbXB0eSBwYXlsb2FkIChvbmx5IGV2ZW50IHR5cGUpCgoyMDA2LTA3LTEzIDEzOjU3OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgoyMDA2LTA3LTEzIDEwOjQ3OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEdob3N0UGFkIG5vIGxvbmdlciBpbXBsaWNpdGVseSB1c2UgdGhlIHBhZHRlbXBsYXRlcyBvZiB0aGUgdGFyZ2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpOgoJICBHaG9zdFBhZCBubyBsb25nZXIgaW1wbGljaXRlbHkgdXNlIHRoZSBwYWR0ZW1wbGF0ZXMgb2YgdGhlIHRhcmdldHMuCgkgIEZpeGVzICMzNDczODQKCjIwMDYtMDctMTEgMjI6NTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA3LTExIDIwOjQ0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgIzM0MTAyOSBmaXhlZCBieSBiaWxib2VkJ3MgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyAjMzQxMDI5IGZpeGVkIGJ5IGJpbGJvZWQncyBwcmV2aW91cyBjb21taXQKCjIwMDYtMDctMTEgMjA6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfYXJyYXkpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBBZGQgY2hlY2tzIGZvciB2YWx1ZSBsaXN0cyBhbmQgdmFsdWUgYXJyYXkgY29tcGFyaXNvbnMuCgkgIEZpeGVzICMzNDcyMjEKCjIwMDYtMDctMTEgMTY6MjA6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWN0aXZhdGVfcGFkcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9iaW5fc3JjX3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgVGhpcyBpcyB0byBhdm9pZCB0aGUgY2FzZSB3aGVyZSBhIHNyYyBnaG9zdHBhZCBpcyBibG9ja2VkIChob2xkaW5nIHRoZQoJICBzdHJlYW0gbG9jayksIHdoaWNoIHdvdWxkIGJsb2NrIHRoZSBkZWFjdGl2YXRpb24gb2YgdGhlIGdob3N0cGFkJ3MKCSAgdGFyZ2V0IHBhZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2dldF9pbnRlcm5hbCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIEdob3N0UGFkcyBub3cgY3JlYXRlIHRoZWlyIGludGVybmFsIEdzdFByb3h5UGFkIGF0IGNyZWF0aW9uIChhbmQgbm90CgkgIHdoZW4gdGhleSdyZSBsaW5rZWQsIGFzIGl0IHdhcyBiZWluZyBkb25lIHByZXZpb3VzbHkpLgoJICBUaGUgaW50ZXJuYWwgYW5kIHRhcmdldCBwYWRzIGFyZSBsaW5rZWQgc3RyYWlnaHQgYXdheS4KCSAgVGhlIGRhdGEgd2lsbCBhbHNvIHRyYXZlbCB0aHJvdWdoIHRoZSBvdGhlciBwYWQgaW4gb3JkZXIgdG8gbWFrZQoJICBwYWQgYmxvY2tpbmcgYW5kIHByb2JlcyBub24taGFja2lzaCAodGhlIHByb2JlL2Jsb2NrIG5vdyByZWFsbHkgaGFwcGVucwoJICBvbiB0aGUgR2hvc3RQYWQgYW5kIG5vdCBvbiB0aGUgdGFyZ2V0KS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJlbW92ZSBwcmV2aW91cyBnaG9zdHBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlIHByZXZpb3VzIGdob3N0IHBhZCBjcnVmdC4KCSAgQWRkZWQgbW9yZSBkZXRhaWxlZCBkZWJ1ZyBzdGF0ZW1lbnRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGhlIHRlc3RzdWl0ZSBmb3IgcmVmY291bnRpbmcgY2hhbmdlcy4KCSAgVGhlIGNvbW1lbnRzIGFib3V0IHdobyBoYXMgcmVmZXJlbmNlcyB3ZXJlIGNvcnJlY3QsIGJ1dCB0aGUgcmVmY291bnQKCSAgYmVpbmcgY2hlY2tlZCB3YXNuJ3QgdGhlIHNhbWUgKCE/ISkuCgoyMDA2LTA3LTEwIDE5OjM1OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGRvY3MgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYWRkIGRvY3MgdG8gZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIE1vcmUgZG9jcyBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhZGQgZG9jcyB0byBndGstZG9jLgoKMjAwNi0wNy0xMCAxODoyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGJ1aWxkIHdoZW4gZGlzYWJsaW5nIHRyYWNpbmcgKGZpeGVzICMzNDQwMTYpLiBBbHNvIHN0YXJ0IHRvIGRvY3VtZW50IHRoZSBkZWZpbmVzIHRoYXQgZGlzYWJsZSB0aGUgc3ViLXN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBGaXggYnVpbGQgd2hlbiBkaXNhYmxpbmcgdHJhY2luZyAoZml4ZXMgIzM0NDAxNikuIEFsc28gc3RhcnQgdG8gZG9jdW1lbnQKCSAgdGhlIGRlZmluZXMgdGhhdCBkaXNhYmxlIHRoZSBzdWItc3lzdGVtcy4KCjIwMDYtMDctMTAgMDk6NDI6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCjIwMDYtMDctMDkgMTY6NTY6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBCZXR0ZXIgcGFkIGFjdGl2YXRpb24gY29kZTogUmVzZXQgdGhlIGNvbGxlY3QgdmFsdWUgdG9vIG9uIHJlc3luYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgQmV0dGVyIHBhZCBhY3RpdmF0aW9uIGNvZGU6IFJlc2V0IHRoZSBjb2xsZWN0IHZhbHVlIHRvbyBvbiByZXN5bmMuCgkgIEFkZCBzb21lIGNvbW1lbnRzLgoKMjAwNi0wNy0wOSAxMzoyNjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKToKCSAgVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIEFsbG93IHBhZCBtb2RlIHN3aXRjaGluZyBpbnN0ZWFkIG9mIGFzc2VydGluZy4gV2hlbiBhIHBhZAoJICBpcyBhY3RpdmF0ZWQgaW4gb25lIG1vZGUgYW5kIHdlIGFjdGl2YXRlIGl0IGluIGFub3RoZXIsCgkgIGRlYWN0aXZhdGUgaXQgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgaXQgaW4gYSBkaWZmZXJlbnQgbW9kZS4KCSAgRml4ZXMgIzMyOTE5OC4KCjIwMDYtMDctMDggMTM6MjI6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYyAobWFpbik6IEhhbmRsZSBlcnIgPT0gTlVMTC4gZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmMgKG1haW4pOiBIYW5kbGUgZXJyID09IE5VTEwuCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KQoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZykKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpOiBSZWR1Y2UgI2lmZGVmIHJhdG5lc3QgYnkKCSAgZmFjdG9yaW5nIG91dCB0aGUgcmVnaXN0cnkgc2Nhbm5pbmcgaW50byBzZXBhcmF0ZSBmdW5jdGlvbnMuIERvbid0CgkgIGZvcmsgZm9yIHRoZSByZXNjYW4gaXMgR1NUX1JFR0lTVFJZX0ZPUks9bm87IHVzZWZ1bCBpbiBkZWJ1Z2dpbmcuCgkgIEJldHRlciBlbnZpcm9ubWVudCB2YXIgbmFtZS9pbnRlcmZhY2Ugc3VnZ2VzdGlvbnMgYWNjZXB0ZWQuCgoyMDA2LTA3LTA3IDE3OjE2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBSYW5kb20gbWljcm8tb3B0aW1pc2F0aW9uOiBkb24ndCB1c2UgYSBoYXNoIHRhYmxlIHdpdGggc3RyaW5ncyBhcyBrZXlzIGFuZCB0aGUgdXN1YWwgc3RyZHVwL3N0cmNtcCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCksCgkgIChnc3Rfb2JqZWN0X3NldF9uYW1lKToKCSAgUmFuZG9tIG1pY3JvLW9wdGltaXNhdGlvbjogZG9uJ3QgdXNlIGEgaGFzaCB0YWJsZQoJICB3aXRoIHN0cmluZ3MgYXMga2V5cyBhbmQgdGhlIHVzdWFsIHN0cmR1cC9zdHJjbXAKCSAgaW52b2x2ZWQsIGJ1dCByYXRoZXIganVzdCB1c2UgdGhlIEdRdWFyayBvZiB0aGUKCSAgdHlwZSBuYW1lIGFzIGtleSwgc2luY2UgaXQgbmVlZHMgdG8gYmUgbG9va2VkIHVwCgkgIGFueXdheSB0byBnZXQgdGhlIHR5cGUgbmFtZSBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdmFyaW91cyBsZWFrcy4KCjIwMDYtMDctMDcgMTU6NDI6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IENhbid0IHVzZSBHUE9JTlRFUl9UT19JTlQgYW5kIEdJTlRfVE9fUE9JTlRFUiB3aXRoIEdUeXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY29tcGFyZV9pbnRlcmZhY2UpLCAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgQ2FuJ3QgdXNlIEdQT0lOVEVSX1RPX0lOVCBhbmQgR0lOVF9UT19QT0lOVEVSIHdpdGggR1R5cGVzLgoJICBHVHlwZXMgYXJlIGd1bG9uZ3MgYW5kIHRodXMgdGhlIHRvcCA0IGJ5dGVzIG1pZ2h0IGJlIGN1dAoJICBvZmYgb24gc29tZSBwbGF0Zm9ybXMgd2hlbiBkb2luZyBHUE9JTlRFUl9UT19JTlQsIGxlYWRpbmcKCSAgdG8gaW52YWxpZCBHVHlwZXMgYW5kIGJhZCB0aGluZ3MgaGFwcGVuaW5nLgoJICBBbHNvIGFkZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgdHlwZSBwYXNzZWQgaW4gaXMgcmVhbGx5CgkgIGFuIGludGVyZmFjZSB0eXBlLgoKMjAwNi0wNy0wNyAwOTo0NzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIC5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAuY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDYtMDctMDcgMDk6MDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIGdzdC1lbGVtZW50LWNoZWNrLSRWRVJTSU9OLm00IGNhbGwgZ3N0LWluc3BlY3QtJFZFUlNJT04gaW5zdGVhZCBvZiB0aGUgdW52ZXJzaW9uZWQgZ3N0LWluc3BlY3QgKCMzMjQxNzYsICMxNjg2NTkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkgIE1ha2UgZ3N0LWVsZW1lbnQtY2hlY2stJFZFUlNJT04ubTQgY2FsbCBnc3QtaW5zcGVjdC0kVkVSU0lPTgoJICBpbnN0ZWFkIG9mIHRoZSB1bnZlcnNpb25lZCBnc3QtaW5zcGVjdCAoIzMyNDE3NiwgIzE2ODY1OSkuCgoyMDA2LTA3LTA2IDE2OjE3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogVXNlIGEgdmFsaWQgaW50IGZvciB0aGUgX01FU1NBR0VfQU5ZIGVudW0gdmFsdWUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFVzZSBhIHZhbGlkIGludCBmb3IgdGhlIF9NRVNTQUdFX0FOWSBlbnVtIHZhbHVlIHRvIGF2b2lkIGNvbXBpbGVyCgkgIHdhcm5pbmdzLgoKMjAwNi0wNy0wNiAxNTo0NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgZG9jcy4gYmxvY2tzaXplID09IDAgbm93IG1lYW5zIHRoZSBkZWZhdWx0IGJsb2Nrc2l6ZSB3aGVuIHdvcmtpbmcgaW4gcHVzaCBiYXNlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVXBkYXRlIGRvY3MuCgkgIGJsb2Nrc2l6ZSA9PSAwIG5vdyBtZWFucyB0aGUgZGVmYXVsdCBibG9ja3NpemUgd2hlbiB3b3JraW5nIGluIHB1c2gKCSAgYmFzZWQgbW9kZS4KCSAgUmVtb3ZlIHNvbWUgcG9pbnRsZXNzIGFzc2VydHMgaW4gX3dhaXQgZnVuY3Rpb24uCgkgIEZpeCBvZmZzZXQvbGVuZ3RoIGNhbGN1bGF0aW9ucyBhbmQgRU9TIGhhbmRsaW5nLiBXZSBjYW4gbm93IHB1bGwgMAoJICBieXRlcyBhcyB3ZWxsLCB3aGljaCBpcyBhbGxvd2VkLgoJICB1c2UgX2NoZWNrX2dldF9yYW5nZSgpIHRvIGRlY2lkZSBpZiB3ZSBjYW4gb3BlcmF0ZSBpbiBfcHVsbCBiYXNlZAoJICBtb2RlLgoJICBGaXggcmVmY291bnRpbmcgbGVhayB3aGVuIGNoZWNrX2dldF9yYW5nZSBmdW5jdGlvbiB3YXMgbm90CgkgIGltcGxlbWVudGVkLgoJICBBUEkgR3N0QmFzZVNyYzo6YmxvY2tzaXplIHJhbmdlIGNhbiBiZSAwIHRvbyBub3cgKGRlZmF1bHQpCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgX2dldF9yYW5nZSgpIGJlaGF2aW91ci4KCjIwMDYtMDctMDYgMTU6MjE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IExvdHMgb2YgY29tbWVudHMgYW5kIGRvY3MgYWRkZWQgdG8gdGhlIHBhZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTG90cyBvZiBjb21tZW50cyBhbmQgZG9jcyBhZGRlZCB0byB0aGUgcGFkIGZ1bmN0aW9ucy4KCSAgRmxlc2ggb3V0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXIgb2YgdGhlIGdldF9yYW5nZSgpIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDYgMDk6MjE6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QuCgoyMDA2LTA3LTA1IDE5OjU2OjA4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJzZ3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDUgMTg6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogQWRkIHNvbWUgbW9yZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoX3NyY19jaGVja19nZXRfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA2LTA3LTA1IDE4OjE4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZSByZWFkIHNlcXVlbnRpYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZQoJICByZWFkIHNlcXVlbnRpYWxseS4KCjIwMDYtMDctMDUgMTg6MTc6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQXZvaWQgc3RyZHVwLiAod2lsbCBoYXBwZW4gaW4gbGlieG1sLCBidXQgaGV5ISkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyk6CgkgIEF2b2lkIHN0cmR1cC4gKHdpbGwgaGFwcGVuIGluIGxpYnhtbCwgYnV0IGhleSEpCgkgICogZ3N0L2dzdHVyaS5jOgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTA3LTA1IDE3OjA5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZSBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2NvcHkpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnVmZmVyX3N1aXRlKToKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZQoJICBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgemVybyBzaXplZCBfbmV3X2FuZF9hbGxvYyBhbmQKCSAgX2NvcHkuIEZpeGVzICMzNDY2NjMuCgoyMDA2LTA3LTA1IDA4OjE2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHdlIHBhc3MgdG8gdHJhbnNmb3JtX2lwIGhhcyBhIHJlZmNvdW50IG9mIDEgYW5kIHRodXMgaXMgd3JpdGFiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgTWFrZSBzdXJlIHRoZSBidWZmZXIgd2UgcGFzcyB0byB0cmFuc2Zvcm1faXAgaGFzIGEgcmVmY291bnQgb2YKCSAgMSBhbmQgdGh1cyBpcyB3cml0YWJsZS4gRml4ZXMgIzM0MzE5NgoKMjAwNi0wNy0wNCAwOTowMTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuKjogQWRkICJzZXF1ZW50aWFsIiBwcm9wZXJ0eSwgb2ZmIGJ5IGRlZmF1bHQsIHRvIHVzZSBtYWR2aXNlIGFuZCBoaW50IHRvIHRoZSBrZXJuZWwgdGhhdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfaW5pdCksIChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgInNlcXVlbnRpYWwiIHByb3BlcnR5LCBvZmYgYnkgZGVmYXVsdCwgdG8gdXNlIG1hZHZpc2UgYW5kIGhpbnQKCSAgdG8gdGhlIGtlcm5lbCB0aGF0IHNlcXVlbnRpYWwgYWNjZXNzIGlzIGRlc2lyZWQuCgkgIFRvdWNoIGFsbCByZXRyaWV2ZWQgcGFnZXMgYnkgZGVmYXVsdCB0byBlbnN1cmUgdGhleSBhcmUgcHVsbGVkCgkgIGludG8gbWVtb3J5LiAoQ2xvc2VzICMzNDU3MjApCgoyMDA2LTA3LTAzIDE3OjQ0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCjIwMDYtMDctMDMgMTY6NTc6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgR1NsaWNlIHdoZW4gdGhlIGdsaWIgd2UgYnVpbGQgYWdhaW5zdCBpcyA+PSAyLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpLAoJICAoZ3N0X2NhcHNfdW5yZWYpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCksCgkgIChnc3RfY2Fwc19hcHBlbmRfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgVXNlIEdTbGljZSB3aGVuIHRoZSBnbGliIHdlIGJ1aWxkIGFnYWluc3QgaXMgPj0gMi4xMAoKMjAwNi0wNy0wMyAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIGNsZWFudXAgaW4gcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBTbWFsbCBjbGVhbnVwIGluIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA2LTA3LTAzIDE0OjE0OjQ4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbiBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9zaWduYWxfaW5mbyk6CgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbgoJICBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYW5kIGl0IHdpbGwgcmVtb3ZlIHRoZSBpbmNsdXNpb24gb2YKCSAgbGliaW50bC5oIGluIHRvb2xzL2dzdC1pbnNwZWN0LmMuCgkgIFRoaXMgYWxsb3dzIHVzZSBvZiAtLWRpc2FibGUtbmxzIGFnYWluIGFuZCBmaXhlcyAjMzQ0NjQyLgoKMjAwNi0wNy0wMyAxMToxMDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpeCBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhawoKMjAwNi0wNy0wMyAxMDozMDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IHBhZCBibG9ja2luZyBvbiBldmVudHMgYWNjb3JkaW5nIHRvIHBhcnQtYmxvY2sudHh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIEltcGxlbWVudCBwYWQgYmxvY2tpbmcgb24gZXZlbnRzIGFjY29yZGluZyB0byBwYXJ0LWJsb2NrLnR4dC4KCSAgTW9yZSBjb21tZW50cyBvbiBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgU2VuZCBldmVudCB0byBwZWVyIHBhZCBvZiBibG9ja2VkIHBhZCAoZWxzZSBpdCB3aWxsIGJsb2NrKS4KCjIwMDYtMDctMDIgMjM6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogaWYgd2UgZ2V0IHRoZSB3cm9uZyBtZXNzYWdlLCBnaXZlIHVzIHRoZSB0eXBlcyBhcyBzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICBpZiB3ZSBnZXQgdGhlIHdyb25nIG1lc3NhZ2UsIGdpdmUgdXMgdGhlIHR5cGVzIGFzIHN0cmluZwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgRml4IGEgdHJhbnNsYXRhYmxlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgYSB0ZXN0IGZvciB0cnlpbmcgdG8gb3BlbiBhIG5vbi1leGlzdGluZyBmaWxlCgoyMDA2LTA3LTAyIDIyOjQ0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtYWNyb3MKCjIwMDYtMDctMDIgMjI6Mjg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkb3VibGUgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZG91YmxlIHZhcgoKMjAwNi0wNy0wMiAyMjoyNzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBjbGVhbiBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiBtb3JlCgoyMDA2LTA3LTAyIDIyOjIwOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAyMjoxNzozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBhIHRlc3QgZm9yIGFkZGluZyBzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBhZGRpbmcgc2VsZgoKMjAwNi0wNy0wMiAyMjowNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBhZGQgc29tZSBhc3NlcnRfIGFzIGFsaWFzIGZvciBmYWlsX3VubGVzc18qCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBzb21lIGFzc2VydF8gYXMgYWxpYXMgZm9yIGZhaWxfdW5sZXNzXyoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3VpdGUpOgoJICBpbmNyZWFzZSB0ZXN0IGNvdmVyYWdlCgoyMDA2LTA3LTAyIDIxOjU0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBpbmNsdWRlIGxjb3YubWFrIGZvciBsY292IGNvdmVyYWdlIGdlbmVyYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGluY2x1ZGUgbGNvdi5tYWsgZm9yIGxjb3YgY292ZXJhZ2UgZ2VuZXJhdGlvbgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBhZGQgdG8gQ0xFQU5GSUxFUwoKMjAwNi0wNy0wMiAyMTo1Mjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDYtMDctMDIgMTY6Mjc6MTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBtb2FwaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIG1vYXBpbmcKCjIwMDYtMDctMDIgMTQ6Mzk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBkb24ndCBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIGZvciBnY292LCBkb25lIGZyb20gR1NUX0dDT1Ygbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZG9uJ3Qgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyBmb3IgZ2NvdiwgZG9uZSBmcm9tIEdTVF9HQ09WIG5vdwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBnY292IGZpbGVzCgoyMDA2LTA3LTAyIDE0OjM3OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IHJlbW92ZSBnc3RfY2Fwc19zaW1wbGlmeTsgaXQgd2FzIG5vdCBkZWNsYXJlZCBhbmQgbm90IHVzZWQgYW5kIGRlcHJlY2F0ZWQgaW4gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZW1vdmVfYW5kX2dldF9zdHJ1Y3R1cmUpOgoJICByZW1vdmUgZ3N0X2NhcHNfc2ltcGxpZnk7IGl0IHdhcyBub3QgZGVjbGFyZWQgYW5kIG5vdCB1c2VkCgkgIGFuZCBkZXByZWNhdGVkIGluIDAuOAoKMjAwNi0wNy0wMiAxNDowNTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGRvbid0IHB1dCBlbXB0eSBwYXRocyBvbiBQWVRIT05QQVRICgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgcHV0IGVtcHR5IHBhdGhzIG9uIFBZVEhPTlBBVEgKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc29tZSBzeW1ib2xzIHRoYXQgYXJlIG5vdCB0aGVyZQoKMjAwNi0wNy0wMiAxMjo1NzoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB1bmJyZWFrIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVuYnJlYWsgdGVzdAoKMjAwNi0wNy0wMiAxMjo1NDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19jb21wYXJlX3N0cnVjdHVyZXMpOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGFkZCBtb3JlIHRlc3RzCgoyMDA2LTA3LTAyIDEyOjUyOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDctMDIgMDk6MDQ6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOiBidWlsZCBkYXRhcHJvdG9jb2wgdGVzdCBieSBsaW5raW5nIHRvIHRoZSBsaWIsIGluc3RlYWQgb2YgY29tcGlsaW5nIHRoZSBzb3VyY2UsIHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgYnVpbGQgZGF0YXByb3RvY29sIHRlc3QgYnkgbGlua2luZyB0byB0aGUgbGliLCBpbnN0ZWFkIG9mCgkgIGNvbXBpbGluZyB0aGUgc291cmNlLCBzbyB3ZSBnZXQgY292ZXJhZ2UKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChldmVudF9mdW5jKSwgKHNldHVwX2ZpbGVzcmMpLAoJICAoY2xlYW51cF9maWxlc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzcmNfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBmaWxlc3JjCgoyMDA2LTA3LTAyIDA4OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjQwOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjM5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozODozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZ3N0LWluc3BlY3QgZXZlcnkgZWxlbWVudDsgdGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgYWxzbyBnZXQgY292ZXJhZ2Ugb24gZWxlbWVudCdzIGdldC9zZXQgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdzdC1pbnNwZWN0IGV2ZXJ5IGVsZW1lbnQ7IHRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGFsc28gZ2V0CgkgIGNvdmVyYWdlIG9uIGVsZW1lbnQncyBnZXQvc2V0IGZ1bmN0aW9ucwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMSAyMzoyNjowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgdG8gLU8wIGlmIGdjb3YgaXMgYmVpbmcgdXNlZCBhZGQgR0NPViBMSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyB0byAtTzAgaWYgZ2NvdiBpcyBiZWluZyB1c2VkCgkgIGFkZCBHQ09WIExJQlMKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBhZGQgbWFrZWZpbGUgcnVsZXMgdG8gZ2VuZXJhdGUgZ2NvdiBkYXRhIGFuZCBjbGVhbiB1cAoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSBjb3ZlcmFnZSB0YXJnZXQgdGhhdCBnZW5lcmF0ZXMgYW4gaHRtbCBvdmVydmlldwoJICBvZiBjb3ZlcmFnZSBkYXRhCgoyMDA2LTA3LTAxIDIzOjE5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGZpeCBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcyBidWlsZAoKMjAwNi0wNy0wMSAyMDo1Njo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IHVzZSB0aGUgbmV3IG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChnc3Rfc2lua3Nfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChsaWJzYWJpX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChzdHJlc3Nfc3VpdGUpOgoJICB1c2UgdGhlIG5ldyBtYWNybwoKMjAwNi0wNy0wMSAyMDo1NDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBjcmVhdGUgYSBtYWNybyBhbmQgZnVuY3Rpb24gc28gdGhhdCB0aGUgc2ltcGxlIHVuaXQgdGVzdCBjYXNlIGNhbiBiZSBqdXN0IG9uZSBtYWNybyB0byBjcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNyZWF0ZSBhIG1hY3JvIGFuZCBmdW5jdGlvbiBzbyB0aGF0IHRoZSBzaW1wbGUgdW5pdCB0ZXN0CgkgIGNhc2UgY2FuIGJlIGp1c3Qgb25lIG1hY3JvIHRvIGNyZWF0ZSBtYWluKCkKCjIwMDYtMDYtMzAgMTM6MTc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBGaXggZGVzZXJpYWxpc2F0aW9uIGZyb20gWE1MLiBTZXQgcGFyZW50IG1hbnVhbGx5IGluc3RlYWQgb2YgdXNpbmcgZ3N0X2Jpbl9hZGQoKSwgc2luY2UgZ3N0X2Jpbl9hZGQoKSB3aWxsIHVubGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfbWFrZV9lbGVtZW50KToKCSAgRml4IGRlc2VyaWFsaXNhdGlvbiBmcm9tIFhNTC4gU2V0IHBhcmVudCBtYW51YWxseQoJICBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9iaW5fYWRkKCksIHNpbmNlIGdzdF9iaW5fYWRkKCkKCSAgd2lsbCB1bmxpbmsgYWxsIHBhZHMgb2YgdGhlIGVsZW1lbnQgYmVpbmcgYWRkZWQuCgkgIEZpeGVzICMzNDE2NjcuCgoyMDA2LTA2LTI4IDE1OjE5OjA4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0LmM6IChwcmVwYXJlX2Zvcl9sb2FkX3BsdWdpbl9mdW5jKSwgKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgLS1nc3QtcGx1Z2luLWxvYWQgY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0NjA5NykuCgoyMDA2LTA2LTIzIDEzOjE2OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIFVzZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGhlcmUgdG9vICgjMzQyNTAzKS4KCjIwMDYtMDYtMjMgMTA6MzA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IGJ1ZmZlciBwcm9iZSBleGFtcGxlIGNvbXBpbGF0aW9uIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggYnVmZmVyIHByb2JlIGV4YW1wbGUgY29tcGlsYXRpb24gaW4KCSAgQURNICgjMzQ1NzA4KS4KCjIwMDYtMDYtMjIgMTc6MDk6MTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXZSBuZWVkIHRvIGRlYWN0aXZhdGUgc3JjIHBhZHMgZmlyc3QgYW5kIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdlIG5lZWQgdG8gZGVhY3RpdmF0ZSBzcmMgcGFkcyBmaXJzdCBhbmQgdGhlbiBzaW5rIHBhZHMuCgkgIFRoZSByZWFzb24gaXMgdGhlIHNyYyBwYWRzIG1pZ2h0IGJlIGJsb2NraW5nIHdoaWxlIGhvbGRpbmcgdGhlIHN0cmVhbWluZwoJICBsb2NrLCBzbyB3ZSBuZWVkIHRvIGRlYWN0aXZhdGUgdGhlbSBmaXJzdCBzbyB0aGF0IGRlYWN0aXZhdGluZyB0aGUgc2luawoJICBwYWRzIGRvZXNuJ3QgYmxvY2sgKHNpbmNlIGl0IHdpbGwgcmVxdWlyZSB0aGUgc3RyZWFtaW5nIGxvY2spLgoKMjAwNi0wNi0yMiAxNToxMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGb3Jnb3QgdG8gcmVtb3ZlIHR3byB1bm5lZWRlZCB1bnJlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZvcmdvdCB0byByZW1vdmUgdHdvIHVubmVlZGVkIHVucmVmcy4KCSAgU2ltcGxpZnkgYSBjaGVjayBfaXNfZXF1YWwgYWxscmVhZHkgY2hlY2tzIHRoZSBvYnZpb3VzIGNhc2UuCgoyMDA2LTA2LTIyIDE0OjA5OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IFNvbWUgZG9jcyBhYm91dCB3aGF0IHBhZF9ibG9jayBzaG91bGQgZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBTb21lIGRvY3MgYWJvdXQgd2hhdCBwYWRfYmxvY2sgc2hvdWxkIGRvLgoKMjAwNi0wNi0yMiAxMzo1MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgIEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcHRpbWl6ZSBmb3IgdGhlIHRyaXZpYWwgY2FzZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHVzZSBzaWxseSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMsIEdTVF9QQURfQ0FQUwoJICBpcyB3aGF0IHdlIG5lZWQgYW5kIGl0IGF2b2lkcyBhIHdob2xlIGxvdCBvZiByZWR1bmRhbnQKCSAgcmVmY291bnQgb3BlcmF0aW9ucy4KCjIwMDYtMDYtMjIgMDg6NTM6NDAgKzAwMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGx5c2F0b3IubGl1LnNlPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXAgSsOkZ2Vuc3RlZHQgIDxwaGlsaXAgYXQgbHlzYXRvciBsaXUgc2U+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDICgjMzQ1NjA3KS4KCjIwMDYtMDYtMjEgMTE6MTI6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBBdHRlbXB0IHRvICdmaXgnIHNwdXJpb3VzbHkgZmFpbGluZyB0ZXN0IGNhc2U6IGl0IHNlZW1zIGxpa2UgdGhlIHRpbWVvdXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHRlc3Rfc3RvcF9mcm9tX2FwcCk6CgkgIEF0dGVtcHQgdG8gJ2ZpeCcgc3B1cmlvdXNseSBmYWlsaW5nIHRlc3QgY2FzZTogaXQgc2VlbXMgbGlrZSB0aGUKCSAgdGltZW91dCBvZiBoYWxmIGEgc2Vjb25kIGlzIHNpbXBseSB0b28gc21hbGwgd2hlbiB0aGUgc3lzdGVtIGlzIHVuZGVyCgkgIGxvYWQgb3RoZXJ3aXNlLCBhbmQgdGhlIHRpbWVvdXQgZG9lc24ndCByZWFsbHkgc2VlbSB0byBzZXJ2ZSBhbnkKCSAgcGFydGljdWxhciBwdXJwb3NlIGhlcmUuIEdpdmUgdGhlIHBpcGVsaW5lIGEgZmV3IHNlY29uZHMgdG8gcHJlcm9sbAoJICBmaXJzdCwgYW5kIHRoZW4gZ2l2ZSBpdCBhbm90aGVyIGhhbGYgYSBzZWNvbmQgdG8gZ28gZnJvbSBQQVVTRUQgdG8KCSAgUExBWUlORyBhbmQgbWFyc2hhbCB0aGUgbWVzc2FnZSBpbnRvIHRoZSBtYWluIHRocmVhZC4KCjIwMDYtMDYtMjEgMTA6MTQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2stbS5tOiBEb24ndCBvbmx5IHVzZSB1bnZlcnNpb25lZCB0b29scywgdHJ5IHZlcnNpb25lZCB0b29scyBhcyB3ZWxsICgjMzQ1MDg2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSAgRG9uJ3Qgb25seSB1c2UgdW52ZXJzaW9uZWQgdG9vbHMsIHRyeSB2ZXJzaW9uZWQgdG9vbHMgYXMgd2VsbAoJICAoIzM0NTA4NikuCgoyMDA2LTA2LTIxIDEwOjAxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcywgbWFrZSBkb2NzIG1vcmUgZXhwbGljaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIEZpeCBzb21lIHR5cG9zLCBtYWtlIGRvY3MgbW9yZSBleHBsaWNpdC4KCjIwMDYtMDYtMjAgMDg6NDA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcgYW5kIHByb2Jlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChibG9ja19jYWxsYmFjayksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcKCSAgYW5kIHByb2Jlcy4KCjIwMDYtMDYtMTkgMDg6NTY6NDggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBsYXRlc3QgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGF0ZXN0IHVwZGF0ZXMKCjIwMDYtMDYtMTYgMTY6Mjg6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLio6IENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcKCSAgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGVuIHdlIGFyZSBhc2tlZCB0byBzZWVrIGluIGEKCSAgbm9uLXNlZWthYmxlIGZpbGUgKGxpa2UgYSBmaWZvKS4gRml4ZXMgIzM0MzMxMi4KCSAgU29tZSBjbGVhbnVwcy4KCjIwMDYtMDYtMTYgMTQ6MzE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoKMjAwNi0wNi0xNiAwOTozOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRG9uJ3QgbGVhayBidXMgcmVmZXJlbmNlIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIERvbid0IGxlYWsgYnVzIHJlZmVyZW5jZSBpbiBzYW1wbGUgY29kZS4KCjIwMDYtMDYtMTYgMDg6MzA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBhdXRvZ2VuLnNoOiBBZGQgZGVmYXVsdCBmb3IgbmV3IC0tZW5hYmxlLXBsdWdpbi1kb2NzIHN3aXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgQWRkIGRlZmF1bHQgZm9yIG5ldyAtLWVuYWJsZS1wbHVnaW4tZG9jcyBzd2l0Y2guCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgbmV3IEdTVF9QTFVHSU5fRE9DUyBtYWNybyB0byBjaGVjayBmb3IgcHl4bWwgZXRjLgoJICBGaXhlcyAjMzQ0MDM5LgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIFVzZSBuZXcgRU5BQkxFX1BMVUdJTl9ET0NTIGNvbmRpdGlvbmFsLgoKMjAwNi0wNi0xNCAxMDozNDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBpdCBjbGVhciB3aXRoIGEgRklYTUUgYW5kIGEgcmVhbCBkZWZpbmUgd2hhdCB0aGUgI2lmIDAgcHJldmlvdXNseSBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIE1ha2UgaXQgY2xlYXIgd2l0aCBhIEZJWE1FIGFuZCBhIHJlYWwgZGVmaW5lIHdoYXQgdGhlICNpZiAwCgkgIHByZXZpb3VzbHkgZGlzYWJsZWQuCgoyMDA2LTA2LTE0IDEwOjMxOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IERvbid0IHJhbmRvbWx5IGFuZCBzaWxlbnRseSByZXNldCBhIHNlZ21lbnQgd2hlbiB0aGUgZm9ybWF0IGNoYW5nZXMgYXMgdGhpcyBpcyBhIGJ1ZyBzb21ld2hlcmUgdXBzdHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBEb24ndCByYW5kb21seSBhbmQgc2lsZW50bHkgcmVzZXQgYSBzZWdtZW50IHdoZW4gdGhlIGZvcm1hdAoJICBjaGFuZ2VzIGFzIHRoaXMgaXMgYSBidWcgc29tZXdoZXJlIHVwc3RyZWFtLiBGaXhlcyAjMzMwMzc5LgoKMjAwNi0wNi0xNCAwODoyNjo1MyArMDAwMCAgV291dGVyIFBhZXNlbiA8d291dGVyQGthbmdhcm9vdC5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IGNvbnRyb2xsaW5nIG9mIGZsb2F0IHByb3BlcnRpZXMgKCMzNDQ4NDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBQYWVzZW4gIDx3b3V0ZXIgYXQga2FuZ2Fyb290IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIEZpeCBjb250cm9sbGluZyBvZiBmbG9hdCBwcm9wZXJ0aWVzICgjMzQ0ODQ5KS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgc29tZSBmbG9hdCBzdHVmZiB0byB1bml0IHRlc3QuCgoyMDA2LTA2LTEzIDE5OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBnZHAgaW1hZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9pbWFnZXMvZ2RwLWhlYWRlci5zdmc6CgkgIGFkZCBhIGdkcCBpbWFnZQoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ2RwLWhlYWRlci5wbmc6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBhZGQgaXQgdG8gdGhlIEFQSSBkb2NzCgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGZpeCB0eXBvCgoyMDA2LTA2LTEzIDE2OjQxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksIChpbml0X3Bvc3QpOgoJICBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUKCSAgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpdCBleGl0IHdpdGggYSBmYWlsdXJlIGV4aXQgY29kZSwKCSAgc28gdGhhdCB0aGUgcGFyZW50IGNhbiB0aGVuIHJlLXNjYW4gdGhlIHBsdWdpbnMgaXRzZWxmIGFuZCB1cGRhdGUgdGhlCgkgIHJlZ2lzdHJ5IHN0cnVjdHVyZXMgaW4gbWVtb3J5IGFuZCB3b3JrIHdpdGggdGhhdCAocmF0aGVyIHRoYW4gZmFpbGluZwoJICB3aGVuIGNyZWF0aW5nIGVsZW1lbnRzIGJlY2F1c2Ugc2VlbWluZ2x5IG5vIHBsdWdpbnMgYXJlIGF2YWlsYWJsZSkuCgkgIFJlZmFjdG9yIHJlZ2lzdHJ5IHNjYW5uaW5nIGNvZGUgaW50byBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgdGhpcyBhbmQKCSAgYWxzbyBzZXBhcmF0ZSBmb3JrKCkgYW5kIG5vbi1mb3JrKCkgY29kZSBwYXRocy4gRml4ZXMgIzM0NDc0OC4KCjIwMDYtMDYtMTMgMTY6MjQ6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IHdyb25nIFBsdWdpbkRlc2MuIEZpeGVzICMzNDQ3NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggd3JvbmcgUGx1Z2luRGVzYy4gRml4ZXMgIzM0NDc1NS4KCjIwMDYtMDYtMTMgMTM6MzA6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nCgkgIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUKCSAgZ28gKHRoZSBmaXJzdCBjYWxsIHRvIGdfbWtzdGVtcCgpIHdvdWxkIG92ZXJ3cml0ZSB0aGUKCSAgcGxhY2Vob2xkZXIgaW4gdGhlIHRlbXBsYXRlIHN0cmluZywgc28gdGhlIHNlY29uZCBjYWxsCgkgIHRvIGdfbWtzdGVtcCgpIGFmdGVyIGNyZWF0aW5nIHRoZSBtaXNzaW5nIGRpcmVjdG9yeQoJICB3b3VsZCB0aGVuIGVycm9yIG91dCB3aXRoICdpbnZhbGlkIGFyZ3VtZW50JykuCgoyMDA2LTA2LTEzIDExOjE3OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBGcmVlIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgRnJlZSBzdHJpbmcuCgoyMDA2LTA2LTEzIDA4OjIwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBHTGliIDIuNiBjb21wYXRpYmlsaXR5IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICByZW1vdmUgR0xpYiAyLjYgY29tcGF0aWJpbGl0eSBjb2RlCgoyMDA2LTA2LTEyIDE2OjUwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggYnVpbGQgd2l0aCAnbWFrZSAtaiBOJyBldmVuIG1vcmUgKCMzNDAwMTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZCB3aXRoICdtYWtlIC1qIE4nIGV2ZW4gbW9yZSAoIzM0MDAxNikuCgoyMDA2LTA2LTEyIDA5OjM3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzLgoKMjAwNi0wNi0xMiAwOToyOTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgIFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoKMjAwNi0wNi0xMiAwOToyODozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAc29uaWNwdWxzZS5kZT4KCgkgIGdzdC86IGNvbnN0aWZ5IHF1YXJrIHJlZ2lzdHJhdGlvbiBzdHJpbmdzLiBGaXhlcyAjMzQ0MTE1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWMgYXQgc29uaWNwdWxzZSBkb3QgZGU+CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBjb25zdGlmeSBxdWFyayByZWdpc3RyYXRpb24gc3RyaW5ncy4gRml4ZXMgIzM0NDExNQoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nIGlzIF9wYWRfcHVzaCgpIGJ5IGludGVybmFsbHkKCSAgY2FsbGluZyBnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCgpLgoKMjAwNi0wNi0xMiAwOToyMzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSksCgkgIChfZ3N0X2J1ZmZlcl9jb3B5KSwgKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLAoJICAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIFVzZSBfRkxBR1MgbWFjcm8gdG8gYXZvaWQgdHlwZSBjaGVjay4KCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja3MgaW4gc3ViYnVmZXIgY29kZS4KCjIwMDYtMDYtMTIgMDk6MTc6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgX0NBU1QgbWFjcm9zIHRvIGF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWJ1Z19oZWxwKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9wbHVnaW5fZmlsdGVyKSwKCSAgKGdzdF9yZWdpc3RyeV9mZWF0dXJlX2ZpbHRlciksIChnc3RfcmVnaXN0cnlfZmluZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfZ2V0X3BsdWdpbl9saXN0KSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLCAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKSwKCSAgKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKSwgKGdzdF92YWx1ZV9taW5pX29iamVjdF9mcmVlKSwKCSAgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb3B5KToKCSAgVXNlIF9DQVNUIG1hY3JvcyB0byBhdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBBZGRlZCBzb21lIG1vcmUgR19VTkxJS0VMWS4KCjIwMDYtMDYtMTIgMDk6MTE6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgQVBJOiBHU1RfQlVGRkVSX0lTX0RJU0NPTlQKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBBdm9pZCB0eXBlIGNoZWNrIGluIGZsYWcgYWNjZXNzb3IuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEFkZCBfQ0FTVCBtYWNyb3MuCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9GRUFUVVJFX0NBU1QKCjIwMDYtMDYtMTIgMDk6MDY6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2dldF90eXBlKSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgQXZvaWQgdHlwZSBjaGVjayBpbiBfcmVmL191bnJlZiBzaW5jZSB0aGF0IGlzIGFsc28KCSAgZG9uZSBpbiBnbGliLgoKMjAwNi0wNi0xMiAwODo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKGdzdF9nX2Vycm9yX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSk6CgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoKMjAwNi0wNi0xMiAwODo1MToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByb3Blcmx5IHByaW50IGVudW0gdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBQcm9wZXJseSBwcmludCBlbnVtIHZhbHVlcy4KCjIwMDYtMDYtMTIgMDg6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby4qOiBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCksIChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE1haW50YWluIF9fZ3N0X2RlYnVnX21pbiB0byBhdm9pZCBmb3JtYXR0aW5nIHRoZSBhcmd1bWVudHMgb2YKCSAgZGVidWcgbWVzc2FnZXMgdGhhdCB3aWxsIGJlIGRyb3BwZWQgYW55d2F5IHRvIGF2b2lkIGEgbG90IG9mCgkgIG92ZXJoZWFkIGZyb20gdGhlIGRlYnVnZ2luZyBzeXN0ZW0uCgoyMDA2LTA2LTExIDIwOjM3OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBhZGQgbWlzc2luZyBmaWxlcyBjb250YWluaW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzLCB0ZWxsIGludGx0b29sIGFib3V0IG9uZSBleGNlcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgYWRkIG1pc3NpbmcgZmlsZXMgY29udGFpbmluZyB0cmFuc2xhdGFibGUgc3RyaW5ncywgdGVsbCBpbnRsdG9vbCBhYm91dAoJICBvbmUgZXhjZXB0aW9uCgoyMDA2LTA2LTExIDE3OjI4OjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6IGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoKMjAwNi0wNi0xMSAxNzowMzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogcmVvcmRlciAocHV0IGRwIGludG8gYSBjaGFwdGVyKSBhbmQgaW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIHJlb3JkZXIgKHB1dCBkcCBpbnRvIGEgY2hhcHRlcikgYW5kIGluZGVudAoKMjAwNi0wNi0xMSAxMTo1NjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSAgYWRkIG5vdGVzIG9uIG91ciBhdXRvdG9vbHMgc2V0dXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlcyBvbiBvdXIgYXV0b3Rvb2xzIHNldHVwCgoyMDA2LTA2LTEwIDE3OjMyOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjggPT09CgoyMDA2LTA2LTEwIDE3OjA2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC44CgoyMDA2LTA2LTEwIDExOjUxOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCjIwMDYtMDYtMTAgMTE6NDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBvdXIgZm9ya2VkIGNoaWxkOyB0aGlzIGVuc3VyZXMgdGhhdCBub25lIG9mIHRoZSByZWdpc3RlcmVkIGV4aXQgaGFuZGxlcnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIG91ciBmb3JrZWQgY2hpbGQ7IHRoaXMgZW5zdXJlcwoJICB0aGF0IG5vbmUgb2YgdGhlIHJlZ2lzdGVyZWQgZXhpdCBoYW5kbGVycyBmcm9tIHdoYXRldmVyIGlzIHVzaW5nCgkgIEdTdHJlYW1lciBnZXQgZXhlY3V0ZWQuICBUaGlzIGZpeGVzIGdub21lLW1peGVyLWFwcGxldCBmYWlsaW5nCgkgIHRvIGxvYWQsIGJlY2F1c2UgT1JCaXQgd291bGQgc2h1dCBkb3duLgoJICBTcG90dGVkIGJ5OiBFZHdhcmQgSGVydmV5ICA8ZWR3YXJkQGZsdWVuZG8uY29tPgoJICBGaXggc3VnZ2VzdGVkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgIEZpeGVzICMzNDQ0NzQKCjIwMDYtMDYtMDkgMTg6NTI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIFRSVU5LCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA2LTA5ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBUUlVOSwoKPT09IHJlbGVhc2UgMC4xMC43ID09PQoKMjAwNi0wNi0wOSAxODo0OToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNwoKMjAwNi0wNi0wNyAxMDo0NjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICAwLjEwLjYuMiBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuNi4yIHByZXJlbGVhc2UKCjIwMDYtMDYtMDcgMDg6Mzg6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggbGVhayBzcG90dGVkIGJ5IGNvdmVyaXR5IGNoZWNrZXIuIEZpeGVzICMzNDM4MjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZ3R5cGVfcmVzb2x2ZXIpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIEZpeCBsZWFrIHNwb3R0ZWQgYnkgY292ZXJpdHkgY2hlY2tlci4gRml4ZXMgIzM0MzgyNwoJICBGaXggYW5vdGhlciBvdGhlciBsZWFrIGZvdW5kIGJ5IHBhb2xvIGJvcmVsbGkuCgoyMDA2LTA2LTA2IDE2OjUyOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaWZkZWYgTE9BRFNBVkUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlmZGVmIExPQURTQVZFCgoyMDA2LTA2LTA2IDE1OjE4OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSAgcmVtb3ZlIG9sZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGRvY3MKCjIwMDYtMDYtMDYgMTQ6NTE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlcm1pbmF0ZSBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVybWluYXRlIGlmZGVmCgoyMDA2LTA2LTA2IDE0OjMyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGJ5dGVzdHJlYW0uc2dtbDoKCSAgcmVtb3ZlIHVudXNlZCB0bXBsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdW51c2VkIHRtcGwKCjIwMDYtMDYtMDYgMTQ6Mjk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoKMjAwNi0wNi0wNiAxNDoyNDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLio6IEFQSTogYWRkIGEgR3N0RFBQYWNrZXRpemVyIG9iamVjdCwgYW5kIGNyZWF0ZS9mcmVlIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX3ZlcnNpb25fZ2V0X3R5cGUpLCAoZ3N0X2RwX2luaXQpLAoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyXzFfMCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc18xXzApLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMV8wKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCksIChnc3RfZHBfcGFja2V0aXplcl9uZXcpLAoJICAoZ3N0X2RwX3BhY2tldGl6ZXJfZnJlZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IGFkZCBhIEdzdERQUGFja2V0aXplciBvYmplY3QsIGFuZCBjcmVhdGUvZnJlZSBmdW5jdGlvbnMKCSAgQVBJOiBhZGQgR3N0RFBWZXJzaW9uIGVudW0KCSAgQWRkIDEuMCBldmVudCBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIFNlcmlhbGl6ZSBtb3JlIHVzZWZ1bCBidWZmZXIgZmxhZ3MKCSAgRml4ZXMgIzM0Mzk4OAoKMjAwNi0wNi0wNiAxNDoyMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgYWRkIHN5bWJvbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN5bWJvbAoKMjAwNi0wNi0wNiAxNDoxNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdpZHRoIHJlc3BlY3RhdGlvbml6aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aWR0aCByZXNwZWN0YXRpb25pemluZwoKMjAwNi0wNi0wNiAxNDoxMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IGFkZCBwcGM2NCBzdHJ1Y3R1cmUgc2l6ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICBhZGQgcHBjNjQgc3RydWN0dXJlIHNpemVzCgoyMDA2LTA2LTA2IDEzOjU5OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogZ2VuZXJhdGUgYW5kIGFkZCBzdHJ1Y3R1cmUgc2l6ZSBsaXN0cyBmb3IgeDg2XzY0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBnZW5lcmF0ZSBhbmQgYWRkIHN0cnVjdHVyZSBzaXplIGxpc3RzIGZvciB4ODZfNjQKCjIwMDYtMDYtMDYgMTM6NTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY29zbWV0aWNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpY3MKCjIwMDYtMDYtMDYgMTM6NDg6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogZmFjdG9yIG91dCB0aGUgbWV0aG9kIGZyb20gdGVzdHMgdGhhdCBjaGVja3Mgc2l6ZSBvZiBzdHJ1Y3R1cmVzLCBhbmQgYWRkIGNvZGUgdG8gZ2VuZXJhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGZhY3RvciBvdXQgdGhlIG1ldGhvZCBmcm9tIHRlc3RzIHRoYXQgY2hlY2tzIHNpemUgb2Ygc3RydWN0dXJlcywKCSAgYW5kIGFkZCBjb2RlIHRvIGdlbmVyYXRlIHRoZSBoZWFkZXIgY29udGFpbmluZyB0aGVzZSBzaXplcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHVzZSBpdAoKMjAwNi0wNi0wNiAxMzoxMTowMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogRG9uJ3QgdXNlIGMrKy1zdHlsZSBjb21tZW50cywgZml4ZXMgIzM0MzkyOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBEb24ndCB1c2UgYysrLXN0eWxlIGNvbW1lbnRzLCBmaXhlcyAjMzQzOTI5CgoyMDA2LTA2LTA2IDA5OjQ3OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCjIwMDYtMDYtMDYgMDg6NTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA2LTA2IDA4OjUwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIHJlbW92ZSBhbiBleHRyYSBzcGFjZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuIGV4dHJhIHNwYWNlCgoyMDA2LTA2LTA1IDEzOjA1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBwbHVnaW5fcGF0aHMgaXMgbm90IHVzZWQgaWYgd2UgYnVpbGQgd2l0aG91dCByZWdpc3RyeSBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIHBsdWdpbl9wYXRocyBpcyBub3QgdXNlZCBpZiB3ZSBidWlsZCB3aXRob3V0IHJlZ2lzdHJ5IHN1cHBvcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDUgMTI6NTU6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDIgMTY6NDY6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBmYWN0b3Igb3V0IENSQyBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBDUkMgY29kZQoKMjAwNi0wNi0wMiAxNjo0NTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpOgoJICBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoKMjAwNi0wNi0wMiAxNjo0MTowMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCksCgkgIChnc3RfY2hlY2tfY2hhaW5fZnVuYyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlCgkgIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0LiBUaGlzIHdpbGwgYWxsb3cgdGVzdHMgdG8gbm90IGJ1c3ktd2FpdCBvbgoJICB0aGUgYnVmZmVyLWxpc3QuCgoyMDA2LTA2LTAyIDEwOjU4OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgoyMDA2LTA2LTAyIDEwOjA4OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEFQSTogbWFrZSBnc3RfZHBfY3JjKCkgcHVibGljCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX2NyYyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IG1ha2UgZ3N0X2RwX2NyYygpIHB1YmxpYwoKMjAwNi0wNi0wMiAwOToxMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZGVidWcgY2hhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBjaGFuZ2UKCjIwMDYtMDYtMDEgMTg6MzA6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogY29uZGl0aW9uYWxseSByZWdpc3RlciBmaWxlaW5kZXhlciAoZml4ZXMgIzM0MzU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBjb25kaXRpb25hbGx5IHJlZ2lzdGVyIGZpbGVpbmRleGVyIChmaXhlcyAjMzQzNTk4KQoKMjAwNi0wNi0wMSAxODoyMjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5oOiBDYW4ndCBjYXN0IGlmYWNlcyB0byBhIGNsYXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgQ2FuJ3QgY2FzdCBpZmFjZXMgdG8gYSBjbGFzcwoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIEZpeCBtb3JlIGdvYmplY3QgbWFjcm9zOiBvYmo8LT5rbGFzcywgR3N0WFhYPC0+R3N0WFhYQ2xhc3MKCjIwMDYtMDYtMDEgMTE6MTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBtYWtlIHN1cmUgd2UgemVybyB0aGUgd2hvbGUgQUJJLWNvbXBhdGlibGUgYXJlYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgbWFrZSBzdXJlIHdlIHplcm8gdGhlIHdob2xlIEFCSS1jb21wYXRpYmxlIGFyZWEKCjIwMDYtMDYtMDEgMDk6MDI6MjMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBNYWtlIHN1cmUgdGhlIEVPUyBmbGFnIGlzIGNsZWFyZWQgZnJvbSBwYWRzIGFmdGVyIGEgZmx1c2ggb3Igc3RvcC4gRml4ZXMgIzM0MzUzOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgTWFrZSBzdXJlIHRoZSBFT1MgZmxhZyBpcyBjbGVhcmVkIGZyb20gcGFkcyBhZnRlciBhIGZsdXNoCgkgIG9yIHN0b3AuIEZpeGVzICMzNDM1MzguCgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIGNvbGxlY3RwYWRzIHJldXNhZ2UgYWZ0ZXIgRU9TLgoKMjAwNi0wNS0zMCAyMDoyNTowMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdC5jOiBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGV4cG9ydCBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiwgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcsCgkgIGdzdF92YWx1ZV9mcmFjdGlvbl9tdWx0aXBseQoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgIGFkZCBhIGxpbmsgdG8gaW50bC5saWIKCjIwMDYtMDUtMzAgMTU6NTU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHBhZCBpcyByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3Rpb24gdGhhdCBjb3VsZCBjYXVzZSB0aGUgb3RoZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjb2xsZWN0aW9uCgkgIHRoYXQgY291bGQgY2F1c2UgdGhlIG90aGVyIHBhZHMgdG8gYmVjb21lIGNvbGxlY3RhYmxlLgoKMjAwNi0wNS0zMCAxNTo1Mzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsYXJpZnkgdGhlIHVzZSBvZiBfcmVsZWFzZV9yZXF1ZXN0X3BhZCgpIGFuZCBfZ2V0X3JlcXVlc3RfcGFkKCkgYSBiaXQgYmV0dGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBDbGFyaWZ5IHRoZSB1c2Ugb2YgX3JlbGVhc2VfcmVxdWVzdF9wYWQoKSBhbmQKCSAgX2dldF9yZXF1ZXN0X3BhZCgpIGEgYml0IGJldHRlci4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggc29tZSBkb2MgYW5kIGNvbW1lbnQgdHlwb3MuCgoyMDA2LTA1LTMwIDE0OjQzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgZGVjbGFyZWQgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBkZWNsYXJlZCBzeW1ib2xzCgoyMDA2LTA1LTMwIDE0OjQxOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIHBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgcG8gZmlsZXMKCjIwMDYtMDUtMzAgMTQ6NDA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkCgoyMDA2LTA1LTMwIDE0OjAzOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkZWQgSEFWRV9GT1JLCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBIQVZFX0ZPUksKCjIwMDYtMDUtMzAgMTI6MDQ6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBkZWJ1ZyB0aGF0IGNhbiBiZSBlbmFibGVkIHVzaW5nIGEgI2RlZmluZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLCBmb3IgZHVtcGluZyBzdGF0cyBhYm91dCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQWRkIGRlYnVnIHRoYXQgY2FuIGJlIGVuYWJsZWQgdXNpbmcgYSAjZGVmaW5lIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsCgkgIGZvciBkdW1waW5nIHN0YXRzIGFib3V0IGhvdyBsYXRlL2Vhcmx5IHdlIHdlcmUgd2hlbiB3YWtpbmcgdXAgZnJvbQoJICB3YWl0aW5nIG9uIHRoZSBjbG9jay4KCjIwMDYtMDUtMzAgMTE6NDM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyk6CgkgIFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgoyMDA2LTA1LTMwIDEwOjU3OjQ0ICswMDAwICBMdXR6IE11ZWxsZXIgPGx1dHpAdG9wZnJvc2UuZGU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVibGlzaCBzdXBwb3J0ZWQgcXVlcnkgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICBQdWJsaXNoIHN1cHBvcnRlZCBxdWVyeSB0eXBlcy4KCSAgVXBkYXRlIGxhc3Rfc3RvcCBmaWVsZCBpbiBnZXRfcmFuZ2UgbW9kZSBzbyB0aGUgcG9zaXRpb24KCSAgcXVlcnkgd29ya3MuIEZpeGVzICMzNDIzMjEuCgoyMDA2LTA1LTMwIDEwOjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCjIwMDYtMDUtMzAgMDk6NDI6MDkgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVbmxvY2sgbXV0ZXggd2hlbiByZW1vdmluZyBhbiB1bmtub3duIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgVW5sb2NrIG11dGV4IHdoZW4gcmVtb3ZpbmcgYW4gdW5rbm93biBwYWQuCgkgIEZpeGVzICMzNDMzMzQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoY29sbGVjdGVkX2NiKSwgKHB1c2hfYnVmZmVyKSwKCSAgKHB1c2hfZXZlbnQpLCAoc2V0dXApLCAodGVhcmRvd24pLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgY29sbGVjcGFkcyBjaGVjaywgZGlzYWJsZWQgZm9yIG5vdyBhcyBjaGVjayBjcmFzaGVzIGZvcgoJICBzb21lIHJlYXNvbi4KCjIwMDYtMDUtMjkgMTc6MjA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSk6CgkgIERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCjIwMDYtMDUtMjkgMTY6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICBBZGRlZCBhcGkgdG8gc2V0IHRoZSBwYWRzIHRvIGZsdXNoaW5nLCB1c2VmdWxsIGZvciBzZWVraW5nCgkgIGNvZGUgaW4gZWxlbWVudHMgdXNpbmcgY29sbGVjdHBhZHMuCgkgIENsZWFyIHNlZ21lbnQgd2hlbiByZWNlaXZpbmcgYSBmbHVzaC4KCjIwMDYtMDUtMjkgMTE6NTI6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvbid0IHNjYW4gcmVnaXN0cnkgcGF0aHMgcGFzc2VkIHZpYSAtLWdzdC1wbHVnaW4tLXBhdGggaW1tZWRpYXRlbHkgKHdpbGwgY3Jhc2gsIGJlY2F1c2UgYWJzb2x1dGVseSBub3RoaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3Bvc3QpOgoJICBEb24ndCBzY2FuIHJlZ2lzdHJ5IHBhdGhzIHBhc3NlZCB2aWEgLS1nc3QtcGx1Z2luLS1wYXRoIGltbWVkaWF0ZWx5CgkgICh3aWxsIGNyYXNoLCBiZWNhdXNlIGFic29sdXRlbHkgbm90aGluZyBpcyBzZXQgdXAgYW5kIG5vIHR5cGVzIGFyZQoJICByZWdpc3RlcmVkIGV0Yy4pOyBkbyB0aGlzIGxhdGVyIGluIGluaXRfcG9zdCgpLiBGaXhlcyAjMzQzMDU3LgoKMjAwNi0wNS0yOCAwOTowOTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IGlmIHdlIGhhdmUgZm9yaywgZm9yayB3aGlsZSByZWFkaW5nL3JlYnVpbGRpbmcgdGhlIHJlZ2lzdHJ5IHNvIHRoZSBwYXJlbnQgZG9lc24ndCB0YWtlIHRoZSBoaXQgb2YgaGF2aW5nIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgaWYgd2UgaGF2ZSBmb3JrLCBmb3JrIHdoaWxlIHJlYWRpbmcvcmVidWlsZGluZyB0aGUgcmVnaXN0cnkKCSAgc28gdGhlIHBhcmVudCBkb2Vzbid0IHRha2UgdGhlIGhpdCBvZiBoYXZpbmcgYWxsIHBsdWdpbnMgbG9hZGVkCgkgIGluIG1lbW9yeS4gIEZpeGVzICMzNDI3NzcuCgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBpZiB3ZSBoYXZlIGZvcmsoKQoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgbm8gZm9yaygpIG9uIHdpbjMyCgoyMDA2LTA1LTI2IDEzOjUyOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19pbml0KSwgKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIEJ1bXAgcmFuayB0byBQUklNQVJZLCBzbyBmaWxlc3JjIGlzIHRoZSBwcmVmZXJyZWQgZmlsZSByZWFkZXIgYW5kIHVzZWQKCSAgaW4gdGhlIGFic2VuY2Ugb2YgZ25vbWV2ZnNzcmMuIChDbG9zZXMgIzM0MDUwMSkKCjIwMDYtMDUtMjYgMTA6MzU6MzQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgbWlzc2luZyBpbmNsdWRlLCByZW1vdmVzIHdhcm5pbmcgb2YgbmdldHRleHQgbm90IGJlaW5nIGRlZmluZWQgb24gc29tZSBhcmNoZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTI2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIG1pc3NpbmcgaW5jbHVkZSwgcmVtb3ZlcyB3YXJuaW5nIG9mIG5nZXR0ZXh0IG5vdCBiZWluZyBkZWZpbmVkIG9uCgkgIHNvbWUgYXJjaGVzLgoKMjAwNi0wNS0yNiAwOToxOToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSGFuZGxlIE5VTEwgaW5wdXQgYW5kIG91dHB1dCBwb2ludGVycyBzaWxlbnRseSBhcyBhIGZhaWxlZCBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBnX3dhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIEhhbmRsZSBOVUxMIGlucHV0IGFuZCBvdXRwdXQgcG9pbnRlcnMgc2lsZW50bHkgYXMgYSBmYWlsZWQgY29udmVyc2lvbiwKCSAgcmF0aGVyIHRoYW4gZ193YXJuaW5ncy4KCjIwMDYtMDUtMjUgMTU6NTI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogSW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNpbmcuIEZpeGVzICMzNDI4MjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2luZy4gRml4ZXMgIzM0MjgyMC4KCjIwMDYtMDUtMjQgMTc6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEZpeCBvZmYtYnktb25lIGJ1ZyB0aGF0IHdvdWxkIG9ubHkgYWxsb3cgcGVla3Mgb2YgTi0xIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IGV2ZW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoYnVmX2hlbHBlcl9maW5kX3BlZWspOgoJICBGaXggb2ZmLWJ5LW9uZSBidWcgdGhhdCB3b3VsZCBvbmx5IGFsbG93IHBlZWtzIG9mIE4tMSBieXRlcwoJICBmcm9tIHRoZSBzdGFydCBldmVuIGlmIHRoZSBidWZmZXIgdG8gdHlwZWZpbmQgb24gY29udGFpbnMKCSAgaW4gZmFjdCBOIGJ5dGVzIG9mIGRhdGEgKG1ha2VzIHZvcmJpcyB0eXBlZmluZGluZyBmcm9tIGEKCSAgdm9yYmlzIGlkZW50aWZpY2F0aW9uIGhlYWRlciBidWZmZXIgd29yaykuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF90eXBlZmluZGhlbHBlcl9zdWl0ZSksIChtYWluKSwgKGZvb2Jhcl90eXBlZmluZCksCgkgIChwbHVnaW5faW5pdCk6CgkgIEFkZCB2ZXJ5IGJhc2ljIHVuaXQgdGVzdCBmb3IgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpCgkgIHRoYXQgY2hlY2tzIGZvciB0aGUgcHJvYmxlbSBmaXhlZCBhYm92ZS4KCjIwMDYtMDUtMjQgMDk6MDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGRvYyBpbmRlbnQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgaW5kZW50IGZpeAoKMjAwNi0wNS0yNCAwOTowMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1hcmsgbW9yZSBzdHJpbmdzIGZvciB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBtb3JlIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCgoyMDA2LTA1LTIzIDE0OjIzOjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1ha2UgbmV3IEdTVF9GTE9XX0lTX1NVQ0NFU1MgbWFjcm8gdmlzaWJsZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEp1bGllbiBNb3V0dGUgIDxqdWxpZW4gYXQgbW91dHRlIG5ldD4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNYWtlIG5ldyBHU1RfRkxPV19JU19TVUNDRVNTIG1hY3JvIHZpc2libGUgaW4gZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBuZXcgOjpwcmVyb2xsLWhhbmRvZmYgc2lnbmFsICgjMzM3MTAwKS4KCjIwMDYtMDUtMjMgMTE6MTM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZSB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9mbG93X2dldF9uYW1lKSwgKGdzdF9mbG93X3RvX3F1YXJrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZQoJICB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIEFkZGVkIG1hY3JvIHRvIGNoZWNrIGZvciBTVUNDRVNTIGZsb3dyZXR1cm5zLgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SCgkgIEFQSTogR1NUX0ZMT1dfSVNfU1VDQ0VTUwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgR3N0Rmxvd1JldHVybiBzYW5pdHkuCgoyMDA2LTA1LTIzIDA5OjQwOjE0ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBjbGVhci9yZXNldCBzZWdtZW50IGluZm8gaW4gRkxVU0hfU1RPUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGNsZWFyL3Jlc2V0IHNlZ21lbnQgaW5mbyBpbiBGTFVTSF9TVE9QLgoJICBGaXhlcyAjMzM2OTI5LgoKMjAwNi0wNS0yMiAxNjozMDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGbHVzaCBxdWV1ZWQgYnVmZmVyIG9uIF9zdG9wKCksIGZpeGVzIHBsYXlpbmcgYWdhaW4gKCMzNDI0NTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX2NvbGxlY3RlZCk6CgkgIEZsdXNoIHF1ZXVlZCBidWZmZXIgb24gX3N0b3AoKSwgZml4ZXMgcGxheWluZyBhZ2FpbiAoIzM0MjQ1NCkKCjIwMDYtMDUtMjIgMTM6MzQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBhZGQgYSB0ZXN0IGZvciBhIGNvbXBsZXRlIHN0cnVjdHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUKCjIwMDYtMDUtMjIgMTM6MzE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZGVidWdnaW5nIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnZ2luZyBjaGFuZ2VzCgoyMDA2LTA1LTE5IDE1OjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvOiBTb21lIG1pbm9yIEZBUSB1cGRhdGVzIHRoYXQgd29uJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgb3VyIEZBUSBpcyBiYWRseSBzdHJ1Y3R1cmVkLCBmdWxsIG9mIGluZm9ybWF0aW9uIGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICAqIGRvY3MvZmFxL2ZhcS54bWw6CgkgICogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIFNvbWUgbWlub3IgRkFRIHVwZGF0ZXMgdGhhdCB3b24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdAoJICBvdXIgRkFRIGlzIGJhZGx5IHN0cnVjdHVyZWQsIGZ1bGwgb2YgaW5mb3JtYXRpb24gaGFyZGx5CgkgIGFueW9uZSBuZXcgdG8gR1N0cmVhbWVyIG5lZWRzIHRvIGtub3cgYW5kIGxhY2tpbmcgbG90cwoJICBvZiBpbmZvcm1hdGlvbiBwZW9wbGUgY29uc3RhbnRseSBhc2sgZm9yLgoKMjAwNi0wNS0xOSAxMzo0NjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZyBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZwoJICBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQKCSAgcmVmZmluZy91bnJlZmZpbmcgdGhlIGNhcHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlcmUncyBhY3R1YWxseSBubyBuZWVkIHRvIHNldCB0aGUgY2FwcyBiZWZvcmUgcHVzaGluZyAtCgkgIHRoZSBhY2NlcHRjYXBzIG1ldGhvZCB3aWxsIGhhbmRsZSBpdCBhbnl3YXkuCgoyMDA2LTA1LTE5IDEwOjI5OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUoKSAoIzM0MjIzOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKCkgKCMzNDIyMzgpLgoKMjAwNi0wNS0xOCAxNDoyNTowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R0eXBlZmluZC4qOiBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMKCSAgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcG9pbnRlcnMuIFRoaXMgYWxsb3dzIHdyYXBwaW5nIHRoZSBzdHJ1Y3R1cmUKCSAgaW4gYmluZGluZ3MgKGkuZS4gZ3N0LXB5dGhvbikuCgoyMDA2LTA1LTE4IDE0OjAxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCjIwMDYtMDUtMTggMDk6MDc6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFRoZSBjYXBzIGludGVyc2VjdGlvbiBhbGdvcml0aG0gY2FuIHByb2R1Y2UgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBjYXBzLiBVbnRpbCB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBUaGUgY2FwcyBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIGNhbiBwcm9kdWNlIG11bHRpcGxlIGNvcGllcyBvZiB0aGUKCSAgY2Fwcy4gVW50aWwgdGhhdCBpcyBmaXhlZCwgd2UgbmVlZCB0byBzaW1wbGlmeSB0aGUgcmVzdWx0IHRvIGJlCgkgIHN1cmUgd2hldGhlciB0aGUgYWxsb3dlZCBjYXBzIGFyZSBmaXhlZCBvciBub3QuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFByb3hpZWQgYnVmZmVyIGFsbG9jIHNob3VsZCBub3Qgc2V0IHRoZSBjYXBzIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBXaGVuIHB1c2hpbmcgYnVmZmVycywgd2UgYWx3YXlzIGFjY2VwdCB0aGUgY2FwcyBjaGFuZ2UgdGhhdCB0cmlnZ2Vycy4KCSAgVGhpcyBwcmV2ZW50cyBuZWdvdGlhdGlvbiBlcnJvcnMgY2F1c2VkIGJ5IGNhcHMgY2hhbmdpbmcgbWlkLXN0cmVhbQoJICBhbmQgdGhlbiBiZWluZyByZWZ1c2VkIG9uIG91ciBzb3VyY2UgcGFkIChiZWNhdXNlIHVwc3RyZWFtIGlzIG5vdwoJICByZWZ1c2luZyB0aG9zZSBjYXBzKS4KCjIwMDYtMDUtMTggMDg6NDg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogTXVzdCBwbHVnIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBsZSBiZXR3ZWVuIGRlY29kZXIgYW5kIGF1ZGlvIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIE11c3QgcGx1ZyBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgYmV0d2VlbiBkZWNvZGVyCgkgIGFuZCBhdWRpbyBzaW5rLgoKMjAwNi0wNS0xNyAxNDoxODoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIGZpeGVkIGJ5IHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgZml4ZWQgYnkgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA1LTE3IDE0OjAxOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBbGxvdyBlbXB0eSBzdHJpbmdzIGZvciBzb21lIG9mIHRoZSBwbHVnaW4gZmllbGRzIHNvIHdlIGRvbid0IGRyb3AgdmFsaWQgcGx1Z2luIGVudHJpZXMgdGhhdCB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbik6CgkgIEFsbG93IGVtcHR5IHN0cmluZ3MgZm9yIHNvbWUgb2YgdGhlIHBsdWdpbiBmaWVsZHMgc28gd2UgZG9uJ3QKCSAgZHJvcCB2YWxpZCBwbHVnaW4gZW50cmllcyB0aGF0IHdlcmUgd3JpdHRlbiBvdXQgY29ycmVjdGx5LgoKMjAwNi0wNS0xNyAxMzo0MDoyMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0IGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0CgkgIGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtZSB3YXMgZmFpbGluZyBmb3IgdXNlcnMgd2hvIGhhZCBzcGVjaWZpYwoJICBjaGFyYWN0ZXJzIGluIHRoZWlyIG5hbWUgdGhlbiB0aGUgcmVnaXN0cnkgd2FzIGJ1aWx0IGF0IGVhY2ggZ3N0cmVhbWVyIGluaXQuCgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVc2UgYSBkZWJ1ZyB2ZXJzaW9uIG9mIGxpYnhtbDIgKGxpYnhtbDJELmxpYixsaWJ4bWwyRC5kbGwpIGZvciBERUJVRyBidWlsZAoJICBvZiBsaWJnc3RyZWFtZXIgYW5kIGNsZWFuIHVudXNlZCBsaWJyYXJpZXMgaW4gcHJvamVjdCBsaW5rcyBzZXR0aW5ncy4KCjIwMDYtMDUtMTcgMDk6MjQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgYW4gRU9TIHdoZW4gcmVjZWl2aW5nIGEgZmF0YWwgZmxvdyBlcnJvci4gSXQncyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgcHVzaGluZyBhbiBFT1Mgd2hlbiByZWNlaXZpbmcgYSBmYXRhbAoJICBmbG93IGVycm9yLiBJdCdzIHVwIHRvIHRoZSByZWFsIGVsZW1lbnQgZHJpdmluZyB0aGUgcGlwZWxpbmUgdG8gZG8gdGhhdC4KCjIwMDYtMDUtMTYgMTc6MTU6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSB3YXMgcG9zdGluZyBhIG5vbi1uZWVkZWQgR1NUX01FU1NBR0VfRVJST1Igd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHJldHVybmVkIGEgZmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIHdhcyBwb3N0aW5nIGEgbm9uLW5lZWRlZCBHU1RfTUVTU0FHRV9FUlJPUiB3aGVuIHB1c2hpbmcgYQoJICBidWZmZXIgcmV0dXJuZWQgYSBmYXRhbCBlcnJvci4gSXQgc2hvdWxkIGp1c3Qgc2VuZCBhbiBFT1MgYW5kIHN0b3AKCSAgaXQncyB0YXNrLgoJICBVcHN0cmVhbSBlbGVtZW50cyB3aWxsIHRoZW4gcHJvcGVybHkgcmVjZWl2ZSB0aGUgR1NUX0ZMT1dfVU5FWFBFQ1RFRAoJICB3aGVuIHB1c2hpbmcgYnVmZmVycyBvbiB0aGUgcXVldWUgYW5kIHdpbGwgYmUgYWJsZSB0byBoYW5kbGUgdGhlIGV2ZW50LgoKMjAwNi0wNS0xNiAxNjoxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IHR5cG9zIGFuZCBtaW5vciBlcnJvcnMgaW4gc2FtcGxlIGNvZGUgKCMzNDE4NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICBGaXggdHlwb3MgYW5kIG1pbm9yIGVycm9ycyBpbiBzYW1wbGUgY29kZSAoIzM0MTg1NikuCgoyMDA2LTA1LTE2IDEzOjMxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXggaW5kZXhlcyBpbiBmb3JtdWxhcyB0byBtYWtlIG1vcmUgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IGluZGV4ZXMgaW4gZm9ybXVsYXMgdG8gbWFrZSBtb3JlIHNlbnNlLgoKMjAwNi0wNS0xNSAxMTo1NDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcyBkaXNhYmxlZCBpbiBhIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcwoJICBkaXNhYmxlZCBpbiBhIHNpbmsuCgoyMDA2LTA1LTE1IDA4OjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5oOiBBZGQgY2FzdCB0byBtYWtlIGNvbXBpbGVyIGhhcHB5IC0gcmVmY291bnQgdmFyaWFibGUgd2FzIGEgZ2ludCBpbiBHc3RPYmplY3QgYnV0IGlzIGEgZ3VpbnQgaW4gR09iamVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgQWRkIGNhc3QgdG8gbWFrZSBjb21waWxlciBoYXBweSAtIHJlZmNvdW50IHZhcmlhYmxlIHdhcyBhIGdpbnQKCSAgaW4gR3N0T2JqZWN0IGJ1dCBpcyBhIGd1aW50IGluIEdPYmplY3QgYW5kIGdfYXRvbWljX2ludF9nZXQoKQoJICB3YW50cyBhIGdpbnQgKi4KCjIwMDYtMDUtMTQgMjM6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGZpeCBwYXJhbGxlbCBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFyYWxsZWwgbWFrZQoKMjAwNi0wNS0xNCAyMToxODoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGNvbmZpZy5oCgoyMDA2LTA1LTE0IDIxOjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0xNCAyMToxNjo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCjIwMDYtMDUtMTQgMTk6MjU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNaW5vciBkb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1pbm9yIGRvY3MgZml4ZXMuCgoyMDA2LTA1LTE0IDE2OjAzOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuNiA9PT0KCjIwMDYtMDUtMTQgMTU6MjA6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC42LCAiVGFrZSB0aGUgY2Fubm9saSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMTQgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuNiwgIlRha2UgdGhlIGNhbm5vbGkiCgoyMDA2LTA1LTE0IDE1OjE4OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNS0xMyAxNzo1MDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluIHRoZSBoeXBvdGhldGljYWwgY2FzZSB0aGF0IHNvbWUgYnJva2VuIHBsdWdpbiBjcmVhdGVzIGEgR1NUXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaW4gdGhlIGh5cG90aGV0aWNhbAoJICBjYXNlIHRoYXQgc29tZSBicm9rZW4gcGx1Z2luIGNyZWF0ZXMgYSBHU1RfVEFHX0lNQUdFCgkgIHRhZyBjb250YWluaW5nIGEgTlVMTCBidWZmZXIgKCMzNDE2NjcpLgoKMjAwNi0wNS0xMiAxNjo1MDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlIGZvciBpbWFnZSB0YWdzIHdoZW4gdXNpbmcgdGhlIC10IHN3aXRjaCAoIzM0MTU1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIFByaW50IHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZSBmb3IgaW1hZ2UgdGFncyB3aGVuCgkgIHVzaW5nIHRoZSAtdCBzd2l0Y2ggKCMzNDE1NTYpLgoKMjAwNi0wNS0xMiAxNDo1Mzo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogdXBkYXRlcyBmb3Igd2luMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHVwZGF0ZXMgZm9yIHdpbjMyCgkgICogY29uZmlndXJlLmFjOgoJICBkZWZpbmUgR1NUX01BSk9STUlOT1Igc28gd2UgaGF2ZSBpdCBhdmFpbGFibGUgaW4gd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIFBvc3NpYmx5IHJlbW92ZSBpdCBmcm9tIG91ciBNYWtlZmlsZS5hbSBmaWxlcyBsYXRlcgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZGVkIEdTVF9NQUpPUk1JTk9SCgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGVkCgoyMDA2LTA1LTEyIDEzOjQyOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoKMjAwNi0wNS0xMiAxMDo1MDo0MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IFVwZGF0ZSB3aW4zMiBmaWxlcyBsaXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzIGxpc3RpbmcuCgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQWRkIEdTVF9NQUpPUk1JTk9SIGRlZmluaXRpb24uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNi0wNS0xMiAwOToyODoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJZiBhbiBzbyBmaWxlIGhhcyBubyBwbHVnaW4gZW50cnkgcG9pbnQsIHVubG9hZCB0aGUgbW9kdWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIElmIGFuIHNvIGZpbGUgaGFzIG5vIHBsdWdpbiBlbnRyeSBwb2ludCwgdW5sb2FkIHRoZSBtb2R1bGUuCgoyMDA2LTA1LTExIDE5OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEb24ndCBmb3JnZXQgdG8gc2lnbmFsIHRoZSBfY2hhaW4gb3IgX2xvb3AgZnVuY3Rpb24gd2hlbiB0aGUgcXVldWUgc2l6ZSBvciB0aHJlc2hvbGRzIGNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIHNpZ25hbCB0aGUgX2NoYWluIG9yIF9sb29wIGZ1bmN0aW9uCgkgIHdoZW4gdGhlIHF1ZXVlIHNpemUgb3IgdGhyZXNob2xkcyBjaGFuZ2Ugc2luY2UgdGhhdCBtaWdodAoJICBjYXVzZSB0aGVtIHRvIG1ha2UgcHJvZ3JlcyBhZ2Fpbi4KCjIwMDYtMDUtMTEgMTg6MTA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEdfT0JKRUNUX0NMQVNTIG1hY3JvIHVzYWdlIGJhdGNoIGNsZWFudXAsIGZpeGVzICMzMzc3NDcgZm9yIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzogKGdzdF9leGFtcGxlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KToKCSAgR19PQkpFQ1RfQ0xBU1MgbWFjcm8gdXNhZ2UgYmF0Y2ggY2xlYW51cCwgZml4ZXMgIzMzNzc0NyBmb3IgY29yZQoKMjAwNi0wNS0xMSAxMDozNToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdCBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKToKCSAgUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdAoJICBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTgoJICBkaWZmZXJlbnQgc3RyZWFtaW5nIHRocmVhZHMgaW4gYSBub24gdGhyZWFkc2FmZSB3YXkuCgoyMDA2LTA1LTEwIDE2OjQ0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTWFrZSBndGstZG9jIGdlbmVyYXRlIGRvY3MgZm9yIG91ciBpbmxpbmVkIGdzdF9idWZmZXJfcmVmKCksIGdzdF9ldmVudF9yZWYoKSBhbmQgZ3N0X21lc3NhZ2VfcmVmKCkgZnVuY3Rpb25zIGFnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYWtlIGd0ay1kb2MgZ2VuZXJhdGUgZG9jcyBmb3Igb3VyIGlubGluZWQgZ3N0X2J1ZmZlcl9yZWYoKSwKCSAgZ3N0X2V2ZW50X3JlZigpIGFuZCBnc3RfbWVzc2FnZV9yZWYoKSBmdW5jdGlvbnMgYWdhaW4KCSAgKHVnbHkgaGFjaywgcGxlYXNlIGRvIGZpeCBpZiB0aGVyZSdzIGEgYmV0dGVyIHdheSBiZXNpZGVzCgkgIG92ZXJyaWRlcy50eHQsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byB3b3JrKS4KCjIwMDYtMDUtMTAgMTU6NDk6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogYWRkIGFuIGFzc2VydCBmb3Igc2V0dGluZyBzdGF0ZSB0byBhdm9pZCBsb3RzIG9mIHJlcGV0aXRpdmUgY29kZSBpbiB0aGUgZnV0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTEwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhbiBhc3NlcnQgZm9yIHNldHRpbmcgc3RhdGUgdG8gYXZvaWQgbG90cyBvZiByZXBldGl0aXZlIGNvZGUKCSAgaW4gdGhlIGZ1dHVyZQoKMjAwNi0wNS0xMCAxNTozODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogZml4IGEgbGVhayBpZiBubyBmbGFncyBhcmUgc2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIGZpeCBhIGxlYWsgaWYgbm8gZmxhZ3MgYXJlIHNldAoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggbGVhayBpbiB0ZXN0cwoKMjAwNi0wNS0xMCAxNTowMDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDogRXhwYW5kIGEgYml0IG9uIGNhcHMgYW5kIGZpbHRlcmVkIGxpbmtzIGFuZCB1cGRhdGUgZXhhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsIHVzaW5nIHRoZSBuby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEV4cGFuZCBhIGJpdCBvbiBjYXBzIGFuZCBmaWx0ZXJlZCBsaW5rcyBhbmQgdXBkYXRlCgkgIGV4YW1wbGVzIHRoYXQgd2VyZSBzdGlsbCB1c2luZyB0aGUgbm8gbG9uZ2VyIGV4aXN0aW5nCgkgIGdzdF9wYWRfbGlua19maWx0ZXJlZCgpICgjMzM4MjA2KS4KCjIwMDYtMDUtMTAgMTQ6NTE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IE5vIG5lZWQgdG8gY2FsbCBfc3RvcCBpbiBfZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBObyBuZWVkIHRvIGNhbGwgX3N0b3AgaW4gX2ZpbmFsaXplLgoJICBJdGVyYXRlIHRoZSBtYWluIHBhZCBsaXN0IGluIF9maW5hbGl6ZS4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnLgoJICBGcmVlIGxpc3RzIGFuZCBkYXRhIGluIHRoZSByaWdodCBvcmRlci4KCSAgQWxzbyBmcmVlIGRhdGEgd2hlbSBkb2luZyBfcmVtb3ZlX3BhZCB3aGVuIHN0b3BwZWQgZm9yCgkgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcHJvdGVjdCA6OnN0YXJ0ZWQgd2l0aCBQQURfTE9DSyBhcwoJICB3ZWxsLgoKMjAwNi0wNS0xMCAxNDoxMjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IGFkZCBzb21lIGNvbW1lbnRzIHJlbmFtZSBhIG1ldGhvZCBzbyB0aGF0IGl0IGFjdHVhbGx5IHNheXMgd2hhdCBpdCBkb2VzIGJldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2d0eXBlX2Zyb21fYWJiciksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgYWRkIHNvbWUgY29tbWVudHMKCSAgcmVuYW1lIGEgbWV0aG9kIHNvIHRoYXQgaXQgYWN0dWFsbHkgc2F5cyB3aGF0IGl0IGRvZXMgYmV0dGVyCgoyMDA2LTA1LTEwIDE0OjA1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCB0eXBlcyB1c2VkIGJ5IGV2ZW50cyBhcmUgcmVnaXN0ZXJlZCBhcyBwYXJ0IG9mIGdzdF9pbml0KCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpOgoJICBtYWtlIHN1cmUgc29tZSBlc3NlbnRpYWwgdHlwZXMgdXNlZCBieSBldmVudHMgYXJlIHJlZ2lzdGVyZWQKCSAgYXMgcGFydCBvZiBnc3RfaW5pdCgpCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgaWYgbm8gZmxhZ3MgYXJlIHNldCwgc2VyaWFsaXplIHRoZW0gdG8gYSB2YWx1ZSB0aGF0IHJlcHJlc2VudHMgTk9ORQoJICBzbyB0aGF0IGRlc2VyaWFsaXppbmcgdGhlbSB3b3JrcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgZmxhZ3MKCjIwMDYtMDUtMTAgMTM6NTM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgbGltaXQgdG8gODAgY2hhcnMgYWRkIG5vdGUgYWJvdXQgY2hhbmdpbmcgZGl2aWRlciBmb3IgZmxhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxpbWl0IHRvIDgwIGNoYXJzCgkgIGFkZCBub3RlIGFib3V0IGNoYW5naW5nIGRpdmlkZXIgZm9yIGZsYWdzCgoyMDA2LTA1LTEwIDExOjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgVXBkYXRlIGRvY3MuCgkgIEJldHRlciBkZWJ1ZyBpbmZvLgoJICBDYXRjaCBhbmQgcmV0dXJuIGVycm9ycyBmcm9tIHRoZSBjb2xsZWN0IGZ1bmN0aW9uCgkgIFJlZnVzZSBkYXRhIG9uIGVvcyBwYWRzLgoKMjAwNi0wNS0xMCAxMDoyNjo1NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuaDogR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFIGFuZCBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0UgdXNlIHRoZSBub3JtYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGludGVyZmFjZS5oOgoJICBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0UgYW5kIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRSB1c2UgdGhlIG5vcm1hbAoJICBHSW50ZXJmYWNlIHR5cGUgY2hlY2tpbmcuCgkgIFRoZXkgd2VyZSBwcmV2aW91c2x5IHVzaW5nIG5vbi1kZWZpbmVkIG1hY3Jvcy4KCjIwMDYtMDUtMDkgMjA6NDc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IENsZWFuIHVwIHRoZSBtZXNzIHRoYXQgaXMgY29sbGVjdHBhZHMsIGFkZCBjb21tZW50cyBhbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBDbGVhbiB1cCB0aGUgbWVzcyB0aGF0IGlzIGNvbGxlY3RwYWRzLCBhZGQgY29tbWVudHMgYW5kCgkgIEZJWE1FcyB3aGVyZSBuZWVkZWQuCgkgIE1haW50YWluIGEgc2VwYXJhdGUgcGFkIGxpc3Qgc28gd2UgY2FuIGFkZCBwYWRzIHdoaWxlCgkgIGNvbGxlY3RpbmcgdGhlIG90aGVyIG9uZXMuIEZvciB0aGlzIHdlIG5lZWQgYSBuZXcgc2VwYXJhdGUKCSAgbG9jayAoc2VlIGNvbWljcykuCgkgIEZpeCBtZW1vcnkgbGVhayBpbiBmaW5hbGl6ZS4KCSAgUmVmYWN0b3Igc29tZSB3ZWlyZCBjb2RlIHRvIHNldC91bnNldCBwYWQgZmx1c2hpbmcgZmxhZ3MsIG1hcmsKCSAgd2l0aCBjb21tZW50cy4KCSAgRG9uJ3QgY3Jhc2ggaW4gX2F2YWlsYWJsZSwgX3JlYWQsIF9mbHVzaCB3aGVuIHdlJ3JlIEVPUy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBhZGFwdGVyIGNoZWNrIGJpbmFyeS4KCjIwMDYtMDUtMDkgMTk6MTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvYyB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2Mgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0wOSAxNzo1ODozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfcmVzb2x2ZXJfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2RhdGFfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3NpemV0eXBlX2dldF90eXBlKSwgKGdzdF9mYWtlX3NyY19maWxsdHlwZV9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgoyMDA2LTA1LTA5IDEzOjIzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBBZGQgdGVzdCBjYXNlIGZvciBmbGFncyArIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIGZsYWdzICsgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkuCgoyMDA2LTA1LTA5IDEyOjAxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBzaG91bGQgbWFpbnRhaW4gdGhlIGJ1ZmZlciBmbGFncyAodGhvc2UgdGhhdCBtYWtlIHNlbnNlIGF0IGxlYXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIHNob3VsZCBtYWludGFpbiB0aGUKCSAgYnVmZmVyIGZsYWdzICh0aG9zZSB0aGF0IG1ha2Ugc2Vuc2UgYXQgbGVhc3QpIChzZWUgIzM0MDg1OSkuCgoyMDA2LTA1LTA5IDEwOjUzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBGaXggdXAgaW5jbHVkZXM6IG5lZWQgdG8gaW5jbHVkZSBzdGRsaWIuaCBpbiB0b29scy5oIGZvciBleGl0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgRml4IHVwIGluY2x1ZGVzOiBuZWVkIHRvIGluY2x1ZGUgc3RkbGliLmggaW4gdG9vbHMuaCBmb3IgZXhpdCgpLgoKMjAwNi0wNS0wOSAxMDowMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCjIwMDYtMDUtMDggMTc6MTI6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWRkZWQgc29tZSBkb2NzIGZvciB0aGUgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEFkZGVkIHNvbWUgZG9jcyBmb3IgdGhlIHNlZ21lbnQgcXVlcnkuCgoyMDA2LTA1LTA4IDE3OjAzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsd2F5cyBwdXNoIG5vbi1mbHVzaGluZyBzZXJpYWxpemVkIGV2ZW50cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbHdheXMgcHVzaCBub24tZmx1c2hpbmcgc2VyaWFsaXplZCBldmVudHMgaW4gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuCgoyMDA2LTA1LTA4IDE1OjUzOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgd2hpdGVzcGFjZSwgY29tbWVudCwgZG9jIGZpeHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlLCBjb21tZW50LCBkb2MgZml4dXAKCjIwMDYtMDUtMDggMTU6NTI6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVycm9yLmM6IEFkZCBhIG1pc3NpbmcgZXJyb3Igc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgQWRkIGEgbWlzc2luZyBlcnJvciBzdHJpbmcuCgoyMDA2LTA1LTA4IDE0OjU1OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGFwcGxpZWRfcmF0ZSB0byB0aGUgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCk6CgkgIEFkZCBhcHBsaWVkX3JhdGUgdG8gdGhlIGRlYnVnCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgQ29weSBhcHBsaWVkX3JhdGUgaW50byB0aGUgb3V0Z29pbmcgTkVXU0VHTUVOVCBldmVudAoKMjAwNi0wNS0wOCAxMTo0OTo0MyArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPHBoaWxpcHBlcm9AbGliZXJ0eXN1cmYuZnI+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IGNhbGwgOjp1bmxvY2sgYmVmb3JlIHRha2luZyB0aGUgUFJFUk9MTF9MT0NLIHNvIHdlIGNhbiBzYWZlbHkgaGFuZGxlIGVsZW1lbnRzIHRoYXQgbG9jayAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXBwZSBSb3VxdWllciA8cGhpbGlwcGVybyBhdCBsaWJlcnR5c3VyZiBkb3QgZnI+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBjYWxsIDo6dW5sb2NrIGJlZm9yZSB0YWtpbmcgdGhlIFBSRVJPTExfTE9DSyBzbyB3ZSBjYW4gc2FmZWx5CgkgIGhhbmRsZSBlbGVtZW50cyB0aGF0IGxvY2sgaW4gOjpyZW5kZXIuCgkgIEZpeGVzICMzNDAxNzQuCgoyMDA2LTA1LTA4IDExOjQzOjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYXV0b2dlbi5zaDogRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDogKENPTkZJR1VSRV9ERUZfT1BUKToKCSAgRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgQWRkaW5nIGdsaWJ0b29saXplIHRvIHRoZSBsaXN0IG9mIGFjY2VwdGVkIG5hbWVzIGZvciBsaWJ0b29saXplLgoKMjAwNi0wNS0wOCAxMTozNToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVbmlmeSBlcnJvciBoYW5kbGluZywgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gYSBwdXNoKCkgcmV0dXJucyBFT1MgYnV0IHBlcmZvcm0gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgVW5pZnkgZXJyb3IgaGFuZGxpbmcsIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZQoJICB3aGVuIGEgcHVzaCgpIHJldHVybnMgRU9TIGJ1dCBwZXJmb3JtIG91ciBub3JtYWwgRU9TCgkgIGhhbmRsaW5nIGNvZGUuIEZpeGVzICMzNDA3NzIuCgoyMDA2LTA1LTA4IDA5OjUyOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6IE1ha2UgdXBzdGVhbS9kb3duc3RyZWFtIGNvbmNlcHRzIG1vcmUgY2xlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBNYWtlIHVwc3RlYW0vZG93bnN0cmVhbSBjb25jZXB0cyBtb3JlIGNsZWFyLgoJICBHaXZlIGFuIGV4YW1wbGUgb2Ygc2VyaWFsaXplZC9ub24tc2VyaWFsaXplZCBldmVudHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZF9yYXRlLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZCByYXRlLCBmbGVzaCBvdXQgc29tZSBtb3JlIHVzZSBjYXNlcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLAoJICAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGFwcGxpZWRfcmF0ZSBmaWVsZCB0byBORVdTRUdNRU5UIGV2ZW50LgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCgpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwoKQoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBZGQgYXBwbGllZF9yYXRlIHRvIEdzdFNlZ21lbnQgc3RydWN0dXJlLgoJICBNYWtlIGNhbGN1bGF0aW9uIG9mIHN0cmVhbV90aW1lIGFuZCBydW5uaW5nX3RpbWUgbW9yZSBjb3JyZWN0CgkgIHdydCByYXRlL2FwcGxpZWRfcmF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmFwcGxpZWRfcmF0ZSBmaWVsZAoJICBBUEk6IGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwoKTsKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFyc2UgYW5kIHVzZSBhcHBsaWVkX3JhdGUgaW4gdGhlIEdzdFNlZ21lbnQgZmllbGQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBjaGVjayBmb3IgYXBwbGllZF9yYXRlIGZpZWxkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RzZWdtZW50c19zdWl0ZSk6CgkgIEFkZCBtb3JlIGNoZWNrcyBmb3IgdmFyaW91cyBHc3RTZWdtZW50IG9wZXJhdGlvbnMuCgoyMDA2LTA1LTA4IDA5OjE2OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhCgkgIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gd2UgY2FuIHByb3Blcmx5IHN5bmMgdGhlIEVPUyBldmVudC4KCSAgRml4ZXMgIzM0MDY5Ny4KCSAgRml4IHRoZSBkb2NzIGZvciBnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCgpLgoJICBEb24ndCBzZXQgc2VnbWVudCBzdGFydCB0byBpbnZhbGlkIHZhbHVlIHdoZW4gd2UgcmVjZWl2ZSBhCgkgIG5vbiBUSU1FIG5ld3NlZ21lbnQuCgkgIGdldCBjbG9zZXIgdG8gaGFuZGxpbmcgcG9zaXRpb24gcmVwb3J0aW5nIGZvciBuZWdhdGl2ZSByYXRlcwoJICBjb3JyZWN0bHkuCgoyMDA2LTA1LTA3IDE5OjU3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBEb2NzIGFib3V0IGhvdyB0byBwcmludCBjYXBzIGZvciBkZWJ1ZyBwdXJwb3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgRG9jcyBhYm91dCBob3cgdG8gcHJpbnQgY2FwcyBmb3IgZGVidWcgcHVycG9zZXMuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpOgoJICB1c2UgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSBpbnN0ZWFkIG9mIGdzdF9jYXBzX2NvcHksIEZpeGVzICMzNDA2MDgKCjIwMDYtMDUtMDYgMjE6NDU6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IHVzZSBmdWxsIGVudW0gbmFtZXMgYW5kIHByZXByZW5kIGEgJyUnIGluIGRvY3Mgc3RyaW5ncyB0byBtYWtlIHJlY2VudCBndGstZG9jIHR1cm4gdGhhdCBpbnRvIGEgbGluawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB1c2UgZnVsbCBlbnVtIG5hbWVzIGFuZCBwcmVwcmVuZCBhICclJyBpbiBkb2NzIHN0cmluZ3MgdG8gbWFrZSByZWNlbnQKCSAgZ3RrLWRvYyB0dXJuIHRoYXQgaW50byBhIGxpbmsKCjIwMDYtMDUtMDUgMjE6NDQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTA1LTA1IDE3OjQ1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBVc2UgdGhlIHN0cmluZyBwYXNzZWQgdG8gZ19vcHRpb25fY29udGV4dF9uZXcoKSBmb3Igd2hhdCBpdCdzIGludGVuZGVkIGZvciAtIHRoZSBwcm9ncmFtIG5hbWUgaXMgYWxyZWFkeSBwcmluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVXNlIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgZm9yCgkgIHdoYXQgaXQncyBpbnRlbmRlZCBmb3IgLSB0aGUgcHJvZ3JhbSBuYW1lIGlzIGFscmVhZHkKCSAgcHJpbnRlZCBlbHNld2hlcmUuCgoyMDA2LTA1LTA1IDE3OjA3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgYmFjayAtLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0MDQ2MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgQWRkIGJhY2sgLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDA0NjApLgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAoaGF2ZV90eXBlX2hhbmRsZXIpLCAodHlwZWZpbmRfZmlsZSksIChtYWluKToKCSAgQWRkIC0tdmVyc2lvbiBvcHRpb24gYW5kIHVzZSBHT3B0aW9uIGZvciBhcmd1bWVudCBwYXJzaW5nOyByZWZhY3RvciBhCgkgIGJpdDsgYWNjZXB0IGRpcmVjdG9yaWVzIGFzIGFyZ3VtZW50cyBhbmQgcmVjdXJzZSBpbnRvIHRoZW07IGxhc3RseSwKCSAgcHJpbnQgYSBkZWNlbnQgZXJyb3IgbWVzc2FnZSB3aGVuIHRoaW5ncyBnbyB3cm9uZy4KCjIwMDYtMDUtMDUgMTQ6Mzg6MDEgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBEb24ndCBtZW50aW9uIEdzdFRocmVhZCAoIzM0MDYxMSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvbid0IG1lbnRpb24gR3N0VGhyZWFkICgjMzQwNjExKQoJICBVcGRhdGUgbGluayB0byBHT2JqZWN0IHR1dG9yaWFsICgjMzQwNjA3KQoKMjAwNi0wNS0wNSAxNDoyNzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZCBub3RlIGFib3V0IHJlZmNvdW50aW5nIGFuZCBtaW5pb2JqZWN0L2J1ZmZlciB3cml0ZWFiaWxpdHkgdG8gZG9jcy4gRml4ZXMgIzM0MDYwNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIG5vdGUgYWJvdXQgcmVmY291bnRpbmcgYW5kIG1pbmlvYmplY3QvYnVmZmVyIHdyaXRlYWJpbGl0eQoJICB0byBkb2NzLiBGaXhlcyAjMzQwNjA0CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIEFkZGVkIHNvbWUgZXhwbGFuYXRpb24gYWJvdXQgQGtsYXNzLgoKMjAwNi0wNS0wNSAxNDowOToyMSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgQXZvaWQgQ09SQkEgJiBCb25vYm8gcmVmZXJlbmNlcyAoIzM0MDU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEF2b2lkIENPUkJBICYgQm9ub2JvIHJlZmVyZW5jZXMgKCMzNDA1OTgpCgoyMDA2LTA1LTA1IDEzOjUzOjI4ICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCjIwMDYtMDUtMDUgMTI6NTM6MzMgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCjIwMDYtMDUtMDUgMDk6MDE6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE1ha2UgJ21ha2UgLWonIHByb29mIChzZWUgIzM0MDY5OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTWFrZSAnbWFrZSAtaicgcHJvb2YgKHNlZSAjMzQwNjk4KS4KCjIwMDYtMDUtMDUgMDg6NTY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoKMjAwNi0wNS0wNSAwODoxNzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBwcmUgZ2xpYjIuOCBjb21wYXRpYmlsaXR5LCBmaXhlcyAjMzQwNTA4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3JlcGxhY2UpLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBSZW1vdmUgcHJlIGdsaWIyLjggY29tcGF0aWJpbGl0eSwgZml4ZXMgIzM0MDUwOAoKMjAwNi0wNS0wNCAxODoxNDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgoyMDA2LTA1LTA0IDE2OjM0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZSBiZWVuIHJlbGVhc2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZQoJICBiZWVuIHJlbGVhc2VkLgoKMjAwNi0wNS0wNCAxNToyMDoxNCArMDAwMCAgSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwQHRhcnRhcnVzLnV3YS5lZHUuYXU+CgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQkkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKYW1lcyBBbmRyZXdhcnRoYSA8dHJzODAgYXQgdGFydGFydXMgdXdhIGVkdSBhdT4KCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUKCSAgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIKCSAgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQklUUykgbWlnaHQgYmUKCSAgcmVkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVycy4gRml4ZXMgYnVpbGQKCSAgb24gb3BlbnNvbGFyaXMgKCMzNDAwMTYpLgoKMjAwNi0wNS0wNCAxNDoxOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFQSTogYWRkaXRpb246IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBhZGRpdGlvbjogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBQcmVwYXJlIGZvciBvcHRpbWl6aW5nIHRoZSBoZWxsIG91dCBvZiB0aGlzIGh1Z2VseSBpbmVmZmljaWVudAoJICBwaWVjZSBvZiBjb2RlLgoJICBBZGRlZCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIHNvIHdlIGNhbiBhdCBsZWFzdCBzdGFydCB0aGlua2luZwoJICBhYm91dCBzdWJidWZmZXJpbmcgYW5kIG1lcmdpbmcuCgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYWRhcHRlcl9zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgR3N0QWRhcHRlciBjaGVjay4KCjIwMDYtMDUtMDQgMTM6MzA6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDogRml4IHNvbWUgdHlwb3MsIGFkZCBibHVyYiBhYm91dCBidWZmZXIgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBGaXggc29tZSB0eXBvcywgYWRkIGJsdXJiIGFib3V0IGJ1ZmZlciBmbGFncy4KCjIwMDYtMDUtMDMgMTY6NDU6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogbWFrZSBzdXJlIEdzdEJhc2VUcmFuc2Zvcm1DbGFzcyBzaG93cyB1cCBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBtYWtlIHN1cmUgR3N0QmFzZVRyYW5zZm9ybUNsYXNzIHNob3dzIHVwIGluIHRoZSBkb2NzCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIG1vdmUgZG9jcyBzbyBndGstZG9jIHBpY2tzIGl0IHVwIG5vdwoKMjAwNi0wNS0wMyAxNjo0MjowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoKMjAwNi0wNS0wMyAxNjo0MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgd2hpdGVzcGFjZSBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgbW92aW5nCgoyMDA2LTA1LTAyIDE3OjI5OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBhZGQgbWlzc2luZyBzeW1ib2xzIHRvIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG1pc3Npbmcgc3ltYm9scyB0byBkb2NzCgoyMDA2LTA1LTAyIDE3OjE3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGJhY2sgb3V0IHRoZSBuZXdzZWdtZW50IGhhbmRsaW5nIGNoYW5nZSwgc2VlICMzNDAwNjAgZm9yIG9uZ29pbmcgZGlzY3Vzc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgYmFjayBvdXQgdGhlIG5ld3NlZ21lbnQgaGFuZGxpbmcgY2hhbmdlLCBzZWUgIzM0MDA2MCBmb3Igb25nb2luZwoJICBkaXNjdXNzaW9uCgoyMDA2LTA0LTI5IDIzOjE1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3Qgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGdldF9jYW5kaWRhdGVzKSwgKG1haW4pOgoJICBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3QKCSAgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpeGVzICMzNDAwNzkuCgoyMDA2LTA0LTI5IDAwOjM4OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNi0wNC0yOSAwMDozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkgICogZG9jcy91cGxvYWQubWFrOgoJICAqIGNvbW1vbi91cGxvYWQubWFrOgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgoyMDA2LTA0LTI5IDAwOjM1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBhZGQgbW9yZSBub3RlcyBvbiBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIG5vdGVzIG9uIG1vdmluZwoKMjAwNi0wNC0yOSAwMDozMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogYWRkIG1vcmUgYXNzZXJ0cyBvbiByZWZjb3VudHMgZG8gbW9yZSBjbGVhbnVwIGF0IGVuZCBvZiB0ZXN0cyBmaXggdGVzdCBsZWFrcyBzaG93aW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMjkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIGFzc2VydHMgb24gcmVmY291bnRzCgkgIGRvIG1vcmUgY2xlYW51cCBhdCBlbmQgb2YgdGVzdHMKCSAgZml4IHRlc3QgbGVha3Mgc2hvd2luZyBpbiBGQzUKCjIwMDYtMDQtMjggMjI6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvIHRoaXMgdHJhcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvCgkgIHRoaXMgdHJhcAoKMjAwNi0wNC0yOCAyMDo1NTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBmaXggY2hhbmdlbG9nIGVudHJ5IGFib3V0IGxhc3QgY29sbGVjdHBhZHMgY2hhbmdlLCBhZGQgbm90ZXMgYWJvdXQgcHJvcGVyIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgZml4IGNoYW5nZWxvZyBlbnRyeSBhYm91dCBsYXN0IGNvbGxlY3RwYWRzIGNoYW5nZSwKCSAgYWRkIG5vdGVzIGFib3V0IHByb3BlciBmaXgKCjIwMDYtMDQtMjggMjA6NDc6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgoyMDA2LTA0LTI4IDIwOjQ0OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoKMjAwNi0wNC0yOCAxODo1NToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWFrZSBHc3RFbGVtZW50RGV0YWlscyBjb25zdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBtYWtlIEdzdEVsZW1lbnREZXRhaWxzIGNvbnN0CgoyMDA2LTA0LTI4IDE4OjQ4OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogbW9yZSBkZXRhaWxlZCBkZWJ1ZyBhbmQgZm9ybWF0dGluZyBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBtb3JlIGRldGFpbGVkIGRlYnVnIGFuZCBmb3JtYXR0aW5nIGNsZWFudXAKCjIwMDYtMDQtMjggMTc6NTI6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBjbGVhbnVwIGRvdWJsZSBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgY2xlYW51cCBkb3VibGUgY29kZQoKMjAwNi0wNC0yOCAxNzozMzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IHNvbWUgbGl0dGxlIHR1bmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKToKCSAgc29tZSBsaXR0bGUgdHVuaW5nCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIGEgbmV3IHRlc3QgZm9yIGxpdmUgdmFsdWUgaGFuZGxpbmcKCjIwMDYtMDQtMjggMTU6NTE6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEdpdmUgY3JlZGl0IHRvIFRhcGkgUGFhdm9sYSBmb3IgbGFzdCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2l2ZSBjcmVkaXQgdG8gVGFwaSBQYWF2b2xhIGZvciBsYXN0IHBhdGNoCgoyMDA2LTA0LTI4IDE1OjQ4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHB1c2hfYW5kX3JlZik6CgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBGaXggcmVmY291bnQgaXNzdWUgd2hpdGggZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpIGhlbHBlcgoJICBmdW5jdGlvbi4gRml4ZXMgIzMzODMzNQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkuCgoyMDA2LTA0LTI4IDEzOjUxOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZyBpbnZhbGlkIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZwoJICBpbnZhbGlkIHZhbHVlcy4KCjIwMDYtMDQtMjggMTM6NDQ6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzbWFsbCBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBkb2MgZml4CgoyMDA2LTA0LTI4IDEzOjQzOjAzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlCgkgIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmFyaWFibGVzLgoKMjAwNi0wNC0yOCAxMzo0MDoxNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtIGRlcmVmZXJlbmNpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtCgkgIGRlcmVmZXJlbmNpbmcgTlVMTCBldmVudHMgZm9yIHVua25vd24vaW52YWxpZCBldmVudCB0eXBlcywgbWVtb3J5CgkgIGxlYWssIGFuZCBjaGFuZ2UgZ193YXJuaW5nIHRvIEdTVF9XQVJOSU5HLgoKMjAwNi0wNC0yOCAxMzoyNTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiBmcmFtZSBkcm9wcGluZyBpcyBlbmFibGVkLCB3ZSBzaG91bGQgbm90IGlnbm9yZSBmcmFtZXMgd2l0aG91dCBhIGR1cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFdoZW4gZnJhbWUgZHJvcHBpbmcgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkIG5vdCBpZ25vcmUgZnJhbWVzCgkgIHdpdGhvdXQgYSBkdXJhdGlvbi4KCSAgVXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbi4KCjIwMDYtMDQtMjggMTM6MTg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDQtMjggMTM6MTY6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbiB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19jaGVja19mZCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbgoJICB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCBhIGRlYWRsb2NrIG9uIGJhZCBmaWxlIGRlc2NyaXB0b3JzIGFuZAoJICB1c2UgR1NUX0RFQlVHX09CSkVDVC4KCSAgRml4ZXMgIzMzOTg0MwoKMjAwNi0wNC0yOCAxMzoxMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb24ndCB0cnkgdG8gc2VyaWFsaXplIGEgR1ZhbHVlIHdpdGggYSBOVUxMIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKToKCSAgRG9uJ3QgdHJ5IHRvIHNlcmlhbGl6ZSBhIEdWYWx1ZSB3aXRoIGEgTlVMTCBidWZmZXIuCgkgIEZpeGVzICMzMzk4MjEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3Igc2VyaWFsaXNhdGlvbiBvZiBOVUxMIGJ1ZmZlcnMuCgoyMDA2LTA0LTI4IDEzOjEwOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogVGFraW5nIGEgTlVMTCBtaW5pb2JqZWN0IGlzIHZhbGlkLCBmaXggdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIHVucmVmIHRoZSBOVUxMIG1pbmlvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCk6CgkgIFRha2luZyBhIE5VTEwgbWluaW9iamVjdCBpcyB2YWxpZCwgZml4IHRoZSBjYXNlIHdoZXJlCgkgIHdlIHRyeSB0byB1bnJlZiB0aGUgTlVMTCBtaW5pb2JqZWN0LgoKMjAwNi0wNC0yOCAxMzowNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA2LTA0LTI4IDEzOjA0OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0Bzb25pY3B1bHNlLmRlPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pYyBhdCBzb25pY3B1bHNlIGRvdCBkZT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBVcGRhdGUgZG9jcy4KCSAgRG9uJ3QgbGVhayBiaW4gcmVmY291bnQgd2hlbiBhIHN0YXRlIHJlY2FsYyBpcwoJICBpbiBwcm9ncmVzcyBhbmQgd2UgZGVsYXkgYW5vdGhlciBvbmUgIzMzOTgwOC4KCjIwMDYtMDQtMjggMTI6NTg6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNZW50aW9uIFFvUyBhcyBhbiBvbmdvaW5nIHdvcmsgaXRlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTWVudGlvbiBRb1MgYXMgYW4gb25nb2luZyB3b3JrIGl0ZW0uCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBOZXcgZG9jIGFib3V0IGJ1ZmZlcmluZyB0aGF0IG5lZWRzIHRvIGJlIGZsZXNoZWQgb3V0CgkgIGF0IHNvbWUgcG9pbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBNb3JlIFFvUyBwb2xpY3kgZm9yIGRlY29kZXJzL2RlbXV4ZXJzL3RyYW5zZm9ybXMKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBTbWFsbCB1cGRhdGUuCgoyMDA2LTA0LTI4IDEwOjU2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC41ID09PQoKMjAwNi0wNC0yOCAxMDo1MzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC41CgoyMDA2LTA0LTI4IDA5OjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoKMjAwNi0wNC0yOCAwOToyMDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgYWRkaW5nIG1pc3NpbmcgZHNwIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbWlzc2luZyBkc3AgZmlsZXMKCjIwMDYtMDQtMjYgMTM6NTQ6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDQtMjIgMjE6MzQ6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4gIEZpeGVzICMzMzg3MTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogV2ltIFRheW1hbnMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgRml4IGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuICBGaXhlcyAjMzM4NzExLgoKMjAwNi0wNC0xMiAxMTo1ODo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgoyMDA2LTA0LTEyIDExOjA2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNi0wNC0xMiAxMTowNDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoKMjAwNi0wNC0xMiAxMDo1NzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTA0LTEyIDEwOjI4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgIEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBTaG91bGQgZml4IGxlYWtzICdtYWtlIGNoZWNrLXZhbGdyaW5kJyBjb21wbGFpbnMgYWJvdXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBBZGQgZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsLgoKMjAwNi0wNC0xMiAxMDoxNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGZpeCBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBDaGFuZ2VMb2cKCjIwMDYtMDQtMTEgMjE6MDc6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZGVkIG5ldyBtZXRob2QgX3Vuc2V0X2FsbCgpIGFuZCBmaXhlZCBfdW5zZXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQWRkZWQgbmV3IG1ldGhvZCBfdW5zZXRfYWxsKCkgYW5kIGZpeGVkIF91bnNldCgpCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZGVkIHR3byB0ZXN0Y2FzZXMgZm9yIG5ldyBhbmQgZml4ZWQgbWV0aG9kCgoyMDA2LTA0LTExIDE4OjQzOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogTVNHX0RPTlRXQUlUIGlzIG5vdCBkZWZpbmVkIG9uIEN5Z3dpbiwgc28gd29yayBhcm91bmQgdGhhdCAoZml4ZXMgIzMxNzA0OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICBNU0dfRE9OVFdBSVQgaXMgbm90IGRlZmluZWQgb24gQ3lnd2luLCBzbyB3b3JrCgkgIGFyb3VuZCB0aGF0IChmaXhlcyAjMzE3MDQ4KS4KCjIwMDYtMDQtMTEgMTQ6NDg6MzQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdmVyc2lvbmluZyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHZlcnNpb25pbmcgbWFjcm8KCjIwMDYtMDQtMTEgMTE6NDc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3RlciksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSksIChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBTb21lIGNsZWFudXBzLgoJICBGaXhlZCBhIEZJWE1FLgoJICBVcGRhdGVkIGRvY3MgKEZpeGVzICMxMzEwNzkpCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIGVsZW1lbnRmYWN0b3J5IGNsYXNzIGZpZWxkLgoKMjAwNi0wNC0xMCAxMDo0Njo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKToKCSAgQ2FsY3VsYXRlIG1vcmUgYWNjdXJhdGUgcmF0ZSB2YWx1ZXMuCgoyMDA2LTA0LTA5IDE2OjU3OjM0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIGEgbmV3ICNpZmRlZiB0byB1c2UgX19kZWNsc3BlYyhkbGxpbXBvcnQpIG9ubHkgZm9yIG90aGVyIG1vZHVsZXMgYW5kIG5vdCBmb3IgZ3N0cmVhbWVyIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCBhIG5ldyAjaWZkZWYgdG8gdXNlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBvbmx5IGZvcgoJICBvdGhlciBtb2R1bGVzIGFuZCBub3QgZm9yIGdzdHJlYW1lciBjb3JlCgkgICogZ3N0L2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb24KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJICB1cGRhdGUgcHJvamVjdCBmaWxlcwoKMjAwNi0wNC0wOCAyMDo1NzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaWduYWxfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6IChnc3RfZXhhbXBsZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOiAoZ3N0X3Rlc3RfY2xhc3NfaW5pdCk6CgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgoyMDA2LTA0LTA4IDE4OjExOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBNdXN0IHNldCBwZWVyIHBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIGxpbmsgZnVuY3Rpb24sIG90aGVyd2lzZSBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgbGluayBmdW5jdGlvbiBtaWdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGluayk6CgkgIE11c3Qgc2V0IHBlZXIgcGFkcyBiZWZvcmUgY2FsbGluZyB0aGUgbGluayBmdW5jdGlvbiwgb3RoZXJ3aXNlCgkgIGEgdGFzayBzdGFydGVkIGZyb20gYSBsaW5rIGZ1bmN0aW9uIG1pZ2h0IGdldCBhIGZsb3ctbm90LWxpbmtlZAoJICByZXN1bHQgd2hlbiB0cnlpbmcgdG8gcHVzaCBiZWNhdXNlIHRoZSBvdGhlciB0aHJlYWQgd2hlcmUgdGhlCgkgIGxpbmtpbmcgaGFwcGVucyBoYXNuJ3QgaGFkIGEgY2hhbmNlIHRvIHNldCB0aGUgcGVlcnMgeWV0LiBUaGlzCgkgIG1pZ2h0IGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGEgcXVldWUgZ2V0cyBsaW5rZWQgdG8gYSBkb3duc3RyZWFtCgkgIGVsZW1lbnQsIGFzIHF1ZXVlIHN0YXJ0cyBhIHN0cmVhbWluZyB0YXNrIHdoZW4gaXRzIHNvdXJjZSBwYWQKCSAgZ2V0cyBsaW5rZWQuIEhhcHBlbnMgaW4gcmVhbCBsaWZlIHdoZW4gcGxheWluZyBiYWNrIGZsYWMvbXVzZXBhY2sKCSAgZmlsZXMgaW4gcGxheWJpbiAoIzMzMjM5MCkuCgoyMDA2LTA0LTA4IDE4OjA1OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgoyMDA2LTA0LTA3IDE1OjE5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgoyMDA2LTA0LTA3IDE0OjUwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdCB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdAoJICB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgc2VnbWVudHMgYW5kIHRpbWVzdGFtcHMgKHN1Y2ggYXMgZmFrZXNyYwoJICBpbiB0aGUgdGVzdHN1aXRlKS4KCjIwMDYtMDQtMDcgMTQ6MDI6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIENvbnZlcnQgYW5kIHN0b3JlIHRpbWVzdGFtcHMgaW4gc3RyZWFtIHRpbWUgYW5kIHJ1bm5pbmcgdGltZSwgdGhlCgkgIHJhdyB0aW1lc3RhbXBzIGFyZSBub3QgdXNlZnVsbCwgYWxzbyBkb2N1bWVudCB0aGlzIGJldHRlci4KCSAgVXNlIGRpZmZlcmVudCB3aW5kb3cgc2l6ZXMgZm9yIGdvb2QgYW5kIGJhZCBRb1Mgb2JzZXJ2YXRpb25zIHNvCgkgIHdlIHJlYWN0IHRvIGJhZG5lc3MgYSBsaXR0bGUgcXVpY2tlci4KCSAgS2VlcCB0cmFjayBvZiB0aGUgYW1vdW50IG9mIHJlbmRlcmVkIGFuZCBkcm9wcGVkIGJ1ZmZlcnMuCgkgIFNlbmQgUW9TIHRpbWVzdGFtcHMgaW4gcnVubmluZyB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgQ29tcGFyZSBRb1MgdGltZXN0YW1wcyBhZ2FpbnN0IHJ1bm5pbmcgdGltZS4KCjIwMDYtMDQtMDYgMTc6MzY6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ25vbmxpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdub25saW4KCjIwMDYtMDQtMDYgMTU6NDY6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IFR5cG8gZml4ZXMgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBUeXBvIGZpeGVzIGluIGRvY3MuCgoyMDA2LTA0LTA2IDE1OjA3OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBnX3ZhbHVlX2dldF9vYmplY3QoKSBpbnN0ZWFkIG9mIGdfdmFsdWVfZHVwX2dzdF9vYmplY3QoKSwgdG8gYXZvaWQgZG91YmxlLXJlZmZpbmcgdGhlIHBhZCB0ZW1wbGF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ192YWx1ZV9nZXRfb2JqZWN0KCkgaW5zdGVhZCBvZiBnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KCksCgkgIHRvIGF2b2lkIGRvdWJsZS1yZWZmaW5nIHRoZSBwYWQgdGVtcGxhdGUgKHdoaWNoIHdlIHRoZW4gc2luaywKCSAgc28gdGhpcyB3b3JrZWQgcHJldmlvdXNseSBpZiAoYW5kIG9ubHkgaWYpIHRoZSBwYWQgdGVtcGxhdGUKCSAgd2FzIGZsb2F0aW5nLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpOgoJICBOZXZlciByZXR1cm4gZmxvYXRpbmcgcmVmZXJlbmNlcyB0byBwYWQgdGVtcGxhdGVzLCBjcmVhdGUKCSAgdGhlbSBhcyBpbml0aWFsbHktc3Vua2VuLgoJICBEb2N1bWVudCBhbiBleHRyYSBmdW5jdGlvbiAoYW5kIG1ha2UgdGhpcyBzdG9wIHNpbmtpbmcgb3VyCgkgIHBhZCB0ZW1wbGF0ZSwgc2luY2UgdGhhdCBpcyBub3cgZ3VhcmFudGVlZCB0byBkbyBub3RoaW5nLAoJICBzaW5jZSB3ZSBjcmVhdGVkIGl0IHN1bmtlbikuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEZpeCBkb2NzIHR5cG8uCgoyMDA2LTA0LTA2IDExOjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogQWRkIHNvbWUgbmV3bGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfX2dzdF9pbl92YWxncmluZCk6CgkgIEFkZCBzb21lIG5ld2xpbmVzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBEb24ndCBsZWFrIGJ1ZmZlciBjYXBzLgoKMjAwNi0wNC0wNiAxMDozODo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50IHJlZmVyZW5jZXMgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50CgkgIHJlZmVyZW5jZXMgdXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBVbnJlZiB0aGUgcGlwZWxpbmUgaWYgaXQgZXhpc3RzIGFmdGVyIHdlJ3ZlIGZhaWxlZCBwYXJzaW5nLgoKMjAwNi0wNC0wNSAxNTo0NjowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFdoZW4gd2UgY3JlYXRlIGEgcGlwZWxpbmUgYnVzLCBpbml0aWFsbHkgY3JlYXRlIGl0IGluIGZsdXNoaW5nIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICBXaGVuIHdlIGNyZWF0ZSBhIHBpcGVsaW5lIGJ1cywgaW5pdGlhbGx5IGNyZWF0ZSBpdCBpbiBmbHVzaGluZyBtb2RlLgoJICBGaXhlcyBsZWFrcyBpbiBhdCBsZWFzdCBvbmUgdGVzdCwgYW5kIG1ha2VzIGEgbmV3IHBpcGVsaW5lIHdvcmsgdGhlCgkgIHNhbWUgYXMgb25lIHRoYXQgaGFzIGdvbmUgdG8gUkVBRFkgYW5kIHRoZW4gYmFjayB0byBOVUxMLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFR5cG8gZml4IGluIGRvY3MuCgoyMDA2LTA0LTA1IDE1OjEyOjM5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBiaW5zCgoyMDA2LTA0LTA1IDEzOjE4OjI5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cXVlcnkuYzogRml4IGxlYWtpbmcgR1ZhbHVlcyBpbiBxdWVyaWVzLCBhcyBzaG93biBieSB2YWxncmluZC90ZXN0c3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpOgoJICBGaXggbGVha2luZyBHVmFsdWVzIGluIHF1ZXJpZXMsIGFzIHNob3duIGJ5IHZhbGdyaW5kL3Rlc3RzdWl0ZS4KCjIwMDYtMDQtMDUgMTI6MTE6MjAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogRml4IGEgdmFyaWV0eSBvZiBtZW1sZWFrcyBpbiBzaW5rcyBjaGVjaywgd2hpY2ggYXJlIG9ubHkgc29tZXRpbWVzIHNob3duIGJ5IHJ1bm5pbmcgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIHZhcmlldHkgb2YgbWVtbGVha3MgaW4gc2lua3MgY2hlY2ssIHdoaWNoIGFyZSBvbmx5IHNvbWV0aW1lcwoJICBzaG93biBieSBydW5uaW5nIHRoZSB0ZXN0cyB1bmRlciB2YWxncmluZCAod2VpcmQ/KS4KCjIwMDYtMDQtMDUgMTE6MDQ6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOiBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUgd2Vla2VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJICBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUKCSAgd2Vla2VuZC4KCjIwMDYtMDQtMDUgMTA6MzE6MjAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvZ3N0aW5mby5jOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX19nc3RfaW5fdmFsZ3JpbmQpOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgVkFMR1JJTkRfUFJJTlRGCgoyMDA2LTA0LTA1IDEwOjI2OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOiBXaGVuIHJlc2V0dGluZyBvdXIgc2VnbWVudCBvbgoJICBGTFVTSF9TVE9QLCBhbHNvIHVwZGF0ZSB0aGUgZmxhZyBzYXlpbmcgd2UgaGF2ZW4ndCBzZWVuIGEKCSAgbmV3c2VnbWVudC4KCjIwMDYtMDQtMDQgMTg6MDI6MDcgKzAwMDAgIFBhb2xvIEJvcmVsbGkgPHBib3JlbGxpQGthdGFtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogbWlub3IgY2xlYW4tdXBzOiBHX0RFRklORV9UWVBFIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUgcGFyZW50X2NsYXNzIHN0dWZmLCBubyBuZWVkIHRvIGRvIGl0IHR3aWNlLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBhb2xvIEJvcmVsbGkgIDxwYm9yZWxsaSBhdCBrYXRhbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9wbHVnaW5fY2hlY2tfbGljZW5zZSk6CgkgIG1pbm9yIGNsZWFuLXVwczogR19ERUZJTkVfVFlQRSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlCgkgIHBhcmVudF9jbGFzcyBzdHVmZiwgbm8gbmVlZCB0byBkbyBpdCB0d2ljZS4gTWFyayBhcnJheSBvZgoJICBsaWNlbnNlIHN0cmluZ3MgYXMgY29uc3RhbnQuICgjMzM3MTAzKQoKMjAwNi0wNC0wNCAxNzo1NDozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRnJlZSB0aGUgcmlnaHQgcGx1Z2luIGxpc3Q7IGZpeGVzIGEgbWVtb3J5IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2xpc3QpOgoJICBGcmVlIHRoZSByaWdodCBwbHVnaW4gbGlzdDsgZml4ZXMgYSBtZW1vcnkgbGVhay4KCjIwMDYtMDQtMDQgMTU6NDU6MzYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IGVycm9yIG91dCBvbiBlbXB0eSBidWZmZXJzICgjMzM2OTQ1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBEb24ndCBlcnJvciBvdXQgb24gZW1wdHkgYnVmZmVycyAoIzMzNjk0NSkuCgoyMDA2LTA0LTA0IDE0OjU4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4gTWFrZSBCYXNlU2luayBhbmQgQmFzZVNyYyBkb2NzIGNvbnRhaW4gdGhlIGNsYXNzIHN0cnVjdHVyZSBzbyB0aGF0IHBlb3BsZSBjYW4gYWN0dWFsbHkgc2VlIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBNYWtlIEJhc2VTaW5rIGFuZCBCYXNlU3JjIGRvY3MgY29udGFpbiB0aGUKCSAgY2xhc3Mgc3RydWN0dXJlIHNvIHRoYXQgcGVvcGxlIGNhbiBhY3R1YWxseSBzZWUgdGhlIHByb3RvdHlwZXMgZm9yCgkgIHZpcnR1YWwgZnVuY3Rpb25zIHRoZXkncmUgc3VwcG9zZWQgdG8gYmUgb3ZlcnJpZGluZy4KCjIwMDYtMDQtMDQgMDg6NTU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkCgkgIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgoyMDA2LTA0LTAzIDE3OjA1OjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwNi0wNC0wMyAwODo1OTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgY29tbW9uIGRpcjsgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbW1vbiBkaXI7IHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCjIwMDYtMDQtMDEgMTU6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGRpc2FibGUgdXNlIG9mIEFTX0xJQlRPT0xfVEFHUywgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgoyMDA2LTA0LTAxIDA5OjQxOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIG5ldyBBU19WRVJTSU9OIGFuZCBBU19OQU5PIG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBuZXcgQVNfVkVSU0lPTiBhbmQgQVNfTkFOTyBtYWNyb3MKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlIGFjY29yZGluZ2x5CgoyMDA2LTAzLTMxIDE1OjI2OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEbyBub3QgdHlwZWZpbmQgY29udGVudCBpZiB0aGUgYnVmZmVycyBhbHJlYWR5IGhhdmUgY2Fwcy4gYW5kIHRoZSByaWdodCB0aGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIERvIG5vdCB0eXBlZmluZCBjb250ZW50IGlmIHRoZSBidWZmZXJzIGFscmVhZHkgaGF2ZSBjYXBzLgoJICBOZWNjZXNhcnkgZm9yIGljeWRlbXV4ICgjMzMzNjU3KSwgYW5kIHRoZSByaWdodCB0aGluZyB0byBkbyBhbnl3YXkuCgoyMDA2LTAzLTMwIDE2OjM2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNb3JlIFFvUyBtZWFzdXJlbWVudHMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3JlY29yZF9xb3Nfb2JzZXJ2YXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE1vcmUgUW9TIG1lYXN1cmVtZW50cyBhcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MuCgkgIEdldCByaWQgb2YgcmluZ2J1ZmZlciB3aXRoIG9ic2VydmF0aW9ucywgcnVubmluZyBhdmVyYWdlIGlzCgkgIG1vcmUgc2ltcGxlIGFuZCBlcXVhbGx5IGdvb2QuCgkgIENhbGN1bGF0ZXMgdmFsaWQgcHJvcG9ydGlvbiBub3cuCgkgIEFkZGVkIGJlZ2lubmluZyBvZiBmbG9vZCBtZWFzdXJlbWVudC4KCjIwMDYtMDMtMjkgMTM6NDU6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCjIwMDYtMDMtMjkgMTM6Mzk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUGVyZm9ybSB0aGUgRU9TIGxvZ2ljIHdoZW4gd2UgcmVhY2ggdGhlIHNlZ21lbnQgc3RvcCBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFBlcmZvcm0gdGhlIEVPUyBsb2dpYyB3aGVuIHdlIHJlYWNoIHRoZSBzZWdtZW50IHN0b3AgcG9zaXRpb24uCgkgIEZpeCBjb21waWxhdGlvbiBvbiBnY2M0LjEKCjIwMDYtMDMtMjkgMTE6MDI6MzMgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5IFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtCgkgIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGlzIGNoYW5jZSB0aGF0IHF1ZXVlIGJsb2NrcyBmb3JldmVyIGluIGNvbmRpdGlvbmFsIGl0ZW0KCSAgZGVsIHdhaXQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcXVldWUgaXMgbm90IGVtcHRpZWQgY29tcGxldGVseSBkdWUgdG8gbWluaW11bQoJICB0aHJlc2hvbGQuCgkgIEhlcmUgaXMgYW5vdGhlciBhcHByb2FjaC4gSW5zdGVhZCBvZiBzZXR0aW5nIGN1cl9sZXZlbHMgdG8gbWF4IGluIEVPUywganVzdAoJICB6ZXJvIGFsbCBtaW5pbXVtIHRocmVzaG9sZCBsZXZlbHMuIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHF1ZXVlIGdpdmVzIG91dAoJICBhbGwgZGF0YS4gV2hlbiBnb2luZyB0byBSRUFEWSAoc3RvcCkgc3RhdGUsIGp1c3QgcmVzZXQgdGhlIG9yaWdpbmFsIG1pbmltdW0KCSAgdGhyZXNob2xkIGxldmVscy4KCSAgRml4ZXMgIzMzNjMzNi4KCjIwMDYtMDMtMjkgMTA6MzM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBXaGVuIHR5cGVmaW5kaW5nIGlzIGRvbmUgaW4gcHVzaCBtb2RlLCB3ZSBzaG91bGQgY2FjaGUgZXZlbnRzIHdlIHJlY2VpdmUgZHVyaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFdoZW4gdHlwZWZpbmRpbmcgaXMgZG9uZSBpbiBwdXNoIG1vZGUsIHdlIHNob3VsZCBjYWNoZQoJICBldmVudHMgd2UgcmVjZWl2ZSBkdXJpbmcgdHlwZWZpbmRpbmcgaW5zdGVhZCBvZiBqdXN0CgkgIGRyb3BwaW5nIHRoZW0gKGUuZy4gbmV3c2VnbWVudCwgY3VzdG9tIGV2ZW50cyBmcm9tCgkgIGR2ZHJlYWRzcmMgZXRjLikgYW5kIHRoZW4gc2VuZCB0aGVtIG91dCBvbmNlIHdlJ3ZlCgkgIGRldGVybWluZWQgdGhlIHR5cGUgb2YgdGhlIHN0cmVhbSAoYW5kIGRlY29kZWJpbgoJICBoYXMgaGFkIGEgY2hhbmNlIHRvIHBsdWcgaW4gYSBkZWNvZGVyL2RlbXV4ZXIpLgoKMjAwNi0wMy0yNyAxODozODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRmlyc3QgUW9TIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpcnN0IFFvUyBpZGVhcy4KCjIwMDYtMDMtMjcgMTE6NDg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5zcGlyZWQgYnkgYSBwYXRjaCBvZjogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBGaXhlcyAjMzI2OTk4LgoKMjAwNi0wMy0yNCAxODozODoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBTZXQgdXAgTERfTElCUkFSWV9QQVRIIHRvIHBvaW50IGF0IGFsbCB0aGUgZ3N0cmVhbWVyIGxpYnMuIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gY29ycmVjdGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgU2V0IHVwIExEX0xJQlJBUllfUEFUSCB0byBwb2ludCBhdCBhbGwgdGhlIGdzdHJlYW1lciBsaWJzLiBUaGlzIHdpbGwKCSAgYWxsb3cgeW91IHRvIGNvcnJlY3RseSBydW4gaW50YWxsZWQgYXBwbGljYXRpb25zIGJ1aWx0IGFnYWluc3Qgb2xkICAgICAgICAgICBjb3JlLCB1c2luZyBwbHVnaW5zIHRoYXQgcmVxdWlyZSB1cGRhdGVkIGNvcmUgKGUuZy4gcnVubmluZwoJICBpbnN0YWxsZWQgdG90ZW0gYWdhaW5zdCBhIGZ1bGwgdW5pbnN0YWxsZWQgZ3N0cmVhbWVyIHN0YWNrKQoKMjAwNi0wMy0yNCAxNzoyOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCjIwMDYtMDMtMjQgMTc6MTA6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogbW9yZSBkZWJ1ZyBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKToKCSAgbW9yZSBkZWJ1ZyBkZXRhaWxzCgoyMDA2LTAzLTI0IDExOjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVhcnJhbmdlIHRoZSBvcmRlciBvZiB0aGUgbWV0aG9kcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcyBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlYXJyYW5nZSB0aGUgb3JkZXIgb2YgdGhlIG1ldGhvZHMgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMKCSAgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gc2VjdGlvbnMuCgoyMDA2LTAzLTI0IDEwOjQ0OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoKMjAwNi0wMy0yNCAxMDozODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IGZvcm1hdHRpbmcgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBmb3JtYXR0aW5nIGZpeAoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBHU1RfRUxFTUVOVF9ERVRBSUxTIGZvcm1hdHRpbmcKCjIwMDYtMDMtMjQgMDk6NDg6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE9ubHkgYWRkIGZpZWxkcywgbm90IGluc2VydCBvciB3ZSBicmVhayBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgT25seSBhZGQgZmllbGRzLCBub3QgaW5zZXJ0IG9yIHdlIGJyZWFrIEFCSS4KCjIwMDYtMDMtMjMgMTg6NTE6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUsIGFkZCByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlLCBhZGQgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoKMjAwNi0wMy0yMyAxODo0NTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9wZWVyX3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3BlZXJfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9wb3NpdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9jb252ZXJ0CgoyMDA2LTAzLTIzIDE2OjMyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdG8gbWVudGlvbiB0aGUgcHJldmlvdXMgY29tbWl0IGZpeGVkICMzMjYzMTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIHRoZSBwcmV2aW91cyBjb21taXQgZml4ZWQgIzMyNjMxMQoKMjAwNi0wMy0yMyAxNjoyMDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkIHdpdGggYSBuZXcgcHJvcGVydHkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hZGRfcW9zX29ic2VydmF0aW9uKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkCgkgIHdpdGggYSBuZXcgcHJvcGVydHkgKHFvcykuCgkgIEFkZCB2bWV0aG9kIHNvIHN1YmNsYXNzZXMgY2FuIGJlIG5vdGlmaWVkIG9mIEFTWU5DIHBsYXlpbmcKCSAgc3RhdGUgY2hhbmdlcy4KCSAgQ29sbGVjdCB0aW1lc3RhbXAgc3RhcnQgYW5kIHN0b3AgdG8gcmVwb3J0IGJldHRlciBjdXJyZW50CgkgIHBvc2l0aW9uIGluIEVPUy9QTEFZSU5HL1BBVVNFRC9SRUFEWS9OVUxMLgoJICBSZWZhY3RvciBRb1MvZnJhbWUgZHJvcHBpbmcgYW5kIG90aGVyIG1lYXN1cmVtZW50cy4KCSAgQVBJOiBHc3RCYXNlU3JjOjpxb3MKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIFByaXZhdGUgc3RydWN0LgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZAoKMjAwNi0wMy0yMyAxMTo1NDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBJZiBjb21waWxpbmcgYWdhaW5zdCBHTGliLTIuOCBvciBuZXdlciwgdHJ5IHRvIHJlYWQgdGhlIHJlZ2lzdHJ5IGZpbGUgdXNpbmcgR01hcHBlZEZpbGUgZmlyc3QgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIElmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWItMi44IG9yIG5ld2VyLCB0cnkgdG8gcmVhZCB0aGUKCSAgcmVnaXN0cnkgZmlsZSB1c2luZyBHTWFwcGVkRmlsZSBmaXJzdCBiZWZvcmUgZmFsbGluZyBiYWNrCgkgIHRvIGZvcGVuKCkgKyBmcmVhZCgpICgjMzMyMTUxKS4KCjIwMDYtMDMtMjIgMTg6MjU6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby5jOiBEaXNhYmxlIGRlYnVnZ2luZyB1bmxlc3MgZXhwbGljaXRseSBhY3RpdmF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCk6CgkgIERpc2FibGUgZGVidWdnaW5nIHVubGVzcyBleHBsaWNpdGx5IGFjdGl2YXRlZC4KCSAgRml4ZXMgIzMzNTQ4MC4KCjIwMDYtMDMtMjIgMTM6MTA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhbnVwIHRoZSBlcnJvciBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgQ2xlYW51cCB0aGUgZXJyb3IgY2FzZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3Bvc2UpOgoJICBwcmludCBhIGNyaXRpY2FsIHdoZW4gc29tZSBvYmplY3Qgd2FzIGRpc3Bvc2VkIHdpdGgKCSAgYSBwYXJlbnQsIGFsc28gcmV2aXZlIHRoZSBvYmplY3Qgc2luY2UgaXQgbWlnaHQKCSAgY3Jhc2ggdGhlIHBhcmVudC4KCjIwMDYtMDMtMjIgMDk6MDM6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZpeCBhbm90aGVyIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRml4IGFub3RoZXIgdHlwby4KCjIwMDYtMDMtMjEgMTk6Mjc6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbHNfc3VpdGUpOgoJICBkb24ndCBidWlsZCB0aGUgcGFydCB0aGF0IG5lZWRzIHBhcnNpbmcKCjIwMDYtMDMtMjEgMTc6MjU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbQoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBmaXggLS1kaXNhYmxlLXBhcnNlIGJ1aWxkCgoyMDA2LTAzLTIxIDE3OjI0OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoKMjAwNi0wMy0yMSAxNTo0MjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOiBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgoyMDA2LTAzLTIxIDE1OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgRklMRVMgc2VjdGlvbiBhbmQgY29ycmVjdCBlbnRyeSBhYm91dCBHU1RfUkVHSVNUUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSAoIzEzMzQ5NTsgIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQWRkIEZJTEVTIHNlY3Rpb24gYW5kIGNvcnJlY3QgZW50cnkgYWJvdXQgR1NUX1JFR0lTVFJZX1BBVEgKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKCMxMzM0OTU7ICMxMzM0OTQpLgoKMjAwNi0wMy0yMSAxNDo0MTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogUmVtb3ZlIGdzdC1tZDVzdW0gYW5kIG1hbiBwYWdlICh0aGUgbWQ1c2luayBlbGVtZW50IHJlcXVpcmVkIHdhcyByZW1vdmVkIGFnZXMgYWdvKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLjEuaW46CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJICBSZW1vdmUgZ3N0LW1kNXN1bSBhbmQgbWFuIHBhZ2UgKHRoZSBtZDVzaW5rIGVsZW1lbnQKCSAgcmVxdWlyZWQgd2FzIHJlbW92ZWQgYWdlcyBhZ28pCgoyMDA2LTAzLTIxIDE0OjI0OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBNYWtlIHN1cmUgdGhhdCBzdHJpbmcgZmllbGRzIGluIHN0cnVjdHVyZXMvdGFnbGlzdHMgY29udGFpbiB2YWxpZCBVVEYtOCAtIHdlIGRvbid0IHdhbnQgdG8gcGFzcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgTWFrZSBzdXJlIHRoYXQgc3RyaW5nIGZpZWxkcyBpbiBzdHJ1Y3R1cmVzL3RhZ2xpc3RzCgkgIGNvbnRhaW4gdmFsaWQgVVRGLTggLSB3ZSBkb24ndCB3YW50IHRvIHBhc3MgcnViYmlzaCB0bwoJICBhcHBsaWNhdGlvbnMgYmVjYXVzZSBvZiBhIGJ1Z2d5IHBsdWdpbiAoY3AuICMzMzQxNjcpLgoKMjAwNi0wMy0yMSAxNDoxNDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFNlcmllcyBvZiBmaXhlcyBmb3IgZGVyZWZlcmVuY2VkIHBvaW50ZXJzIHRoYXQgZ2NjIDQuMSBjb21wbGFpbnMgYWJvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogPGRlbGV0ZSBpZiBub3QgdXNpbmcgYSBidWRkeT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19kaXNwb3NlKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZGlzcG9zZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSksCgkgIChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKSwgKGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KToKCSAgU2VyaWVzIG9mIGZpeGVzIGZvciBkZXJlZmVyZW5jZWQgcG9pbnRlcnMgdGhhdCBnY2MgNC4xIGNvbXBsYWlucyBhYm91dC4KCSAgSXQncyBpbiBmYWN0IGFsbCBpc3N1ZXMgd2l0aCBnc3RfKm9iamVjdF9yZXBsYWNlKCkuCgoyMDA2LTAzLTIxIDEzOjU1OjQ0ICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIHBrZ2NvbmZpZy86IFVzZSBAQ0hFQ0tfTElCU0AgaGVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIC1sY2hlY2sgKCMzMzQxMDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExvw69jIE1pbmllciAgPGxvb2wgKyBnbm9tZSBhdCB2aWEgZG90IGVjcCBkb3QgZnI+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBVc2UgQENIRUNLX0xJQlNAIGhlcmUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAtbGNoZWNrICgjMzM0MTA5KS4KCjIwMDYtMDMtMjEgMTM6NTA6NTIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBnc3RfW2J1ZmZlcnxldmVudHxtZXNzYWdlXV9yZWYoKSBtYWNyb3MgYXJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgYmVjYXVzZSBnY2MtNC4xIHdpbGwgYWJvdXQgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdF9bYnVmZmVyfGV2ZW50fG1lc3NhZ2VdX3JlZigpIG1hY3JvcyBhcmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMKCSAgaW5saW5lIGZ1bmN0aW9ucyBiZWNhdXNlIGdjYy00LjEgd2lsbCBhYm91dCBpZiB0aGUgcmV0dXJuIHZhbHVlCgkgIGlzbid0IHVzZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSk6CgkgIGdzdF9ldmVudF9yZWYgbm93IGhhcyB0byBiZSBnaXZlbiBhIEdzdEV2ZW50KiAsIGZpeCBjaGVjayBhY2NvcmRpbmdseS4KCjIwMDYtMDMtMjAgMTY6NDc6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoKMjAwNi0wMy0yMCAxNjo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIEdfVU5MSUtFTFkgdG8gb3VyIGJvaWxlcnBsYXRlIHRvIG9wdGltaXNlIHRoZSAnYWxyZWFkeSByZWdpc3RlcmVkIHRoZSB0eXBlJyBjYXNlLiAoQ2xvc2VzOiAjMzM1MTkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX1VOTElLRUxZIHRvIG91ciBib2lsZXJwbGF0ZSB0byBvcHRpbWlzZSB0aGUgJ2FscmVhZHkgcmVnaXN0ZXJlZAoJICB0aGUgdHlwZScgY2FzZS4gKENsb3NlczogIzMzNTE5NSBmb3Igbm93KS4gSW4gdGhlIGZ1dHVyZSwgd2hlbiB3ZQoJICBkZXBlbmQgb24gR0xpYiAyLjEwLCB3ZSBjb3VsZCBhbHNvIGludGVybiB0aGUgdHlwZSBuYW1lIHVzaW5nCgkgIGdfaW50ZXJuX3N0YXRpY19zdHJpbmcoKQoKMjAwNi0wMy0yMCAxMDo1NjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUG9zaXRpb24gcXVlcnkgc2hvdWxkIGFsc28gdGFrZSBtYXggb2YgYWxsIHN0cmVhbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksCgkgIChiaW5fcXVlcnlfbWF4X2luaXQpLCAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIFBvc2l0aW9uIHF1ZXJ5IHNob3VsZCBhbHNvIHRha2UgbWF4IG9mIGFsbCBzdHJlYW1zLgoKMjAwNi0wMy0yMCAwOToyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZmluYWxpemUpOgoJICBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrcyBpbiB0aGUgdGVzdGNhc2UuCgoyMDA2LTAzLTE5IDIxOjM5OjIxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIHdpbjMyIHNwZWNpZmljIGltcG9ydCBkZWNvcmF0aW9uKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkgZm9yIGFsbCBleHRlcm4gR3N0RGVidWdDYXRlZ29yeSAqIHZhcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCB3aW4zMiBzcGVjaWZpYyBpbXBvcnQgZGVjb3JhdGlvbihfX2RlY2xzcGVjKGRsbGltcG9ydCkpCgkgIGZvciBhbGwgZXh0ZXJuIEdzdERlYnVnQ2F0ZWdvcnkgKiB2YXJpYWJsZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgc29tZSBleHBvcnRzLCByZW1vdmUgZW1wdHkgbGluZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRzcDoKCSAgbmV3IHByb2plY3QgZmlsZXMgYW5kIGV4cG9ydGF0aW9uIGZpbGVzIGFkZGVkCgoyMDA2LTAzLTE5IDE2OjA1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlcik6CgkgIFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCjIwMDYtMDMtMTcgMTk6Mjc6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGxlYWsgYnVmZmVycywgY2FwcyBhbmQgcGFkcyBvbiBuZWdvdGlhdGlvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBEb24ndCBsZWFrIGJ1ZmZlcnMsIGNhcHMgYW5kIHBhZHMgb24gbmVnb3RpYXRpb24gZXJyb3JzLgoKMjAwNi0wMy0xNiAxNTozMzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9mYXEvOiBGYXEgcmV2aWV3IGFuZCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9mYXEueG1sOgoJICAqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICAqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSAgKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRmFxIHJldmlldyBhbmQgdXBkYXRlLgoKMjAwNi0wMy0xNiAxMDoxODoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMKCSAgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUgcGFkIGFscmVhZHkgaGFzLgoJICBVc2UgR1NUX0RFQlVHX09CSkVDVCB3aGVuIG91dHB1dHRpbmcgY2FwcyBjaGFuZ2UgaW5mb3JtYXRpb24uCgoyMDA2LTAzLTE1IDIwOjE3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgRml4IGRvY3MuCgoyMDA2LTAzLTE1IDE2OjI5OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogRG9jdW1lbnRhdGlvbiBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXguCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpOgoJICBNYWtlIHRoZSBkZWZhdWx0IGFjY2VwdGNhcHMgYmVoYXZpb3VyIGJlIHRvIGNoZWNrIHRoZSByZXF1ZXN0ZWQKCSAgY2FwcyBhZ2FpbnN0IHRoZSBnc3RfcGFkX2dldF9jYXBzIG91dHB1dC4KCSAgRW5zdXJlIHRoYXQgZ3N0X3BhZF9hY2NlcHRfY2FwcyBpcyB1c2VkIHRvIGNoZWNrIGNhcHMgd2hlbiBhIHBhZAoJICBkb2Vzbid0IGhhdmUgYSBzZXRjYXBzIGZ1bmN0aW9uLCBzbyB0aGF0IHBhZHMgYXV0b21hdGljYWxseSByZWZ1c2UKCSAgY2FwcyB0aGF0IHRoZXkgZG9uJ3QgYWxsb3cgaW4gdGhlaXIgcGFkIHRlbXBsYXRlLiAoRml4ZXMgIzMzMjk4NikKCSAgV2hlbiBhIGJ1ZmZlciB3aXRoIGF0dGFjaGVkIGNhcHMgaXMgcHVzaGVkLCBlbnN1cmUgdGhhdCB0aGUgc291cmNlCgkgIHBhZCByZWNlaXZlcyB0aG9zZSBjYXBzIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGlkbid0IGNhbGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBmaXJzdC4KCjIwMDYtMDMtMTUgMTY6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogQWRkIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEFkZCBzb21lIGRvY3MuCgoyMDA2LTAzLTE1IDE1OjU3OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIGEgd2hvbGUgYnVuY2ggb2YgbWlzc2luZyBmdW5jdGlvbnMgKCMzMzQ0MzQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgYSB3aG9sZSBidW5jaCBvZiBtaXNzaW5nIGZ1bmN0aW9ucyAoIzMzNDQzNCkuCgoyMDA2LTAzLTE0IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgZGVidWcgaW5mbyB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIEJldHRlciBkZWJ1ZyBpbmZvIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQuCgkgIFJlb3JnYW5pemUgYSBiaXQgc28gd2UgY2FuIHBhc3MgdGhlIGdldF90aW1lcygpIHJlc3VsdHMgYXJvdW5kLgoJICBVc2UgdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHJ1bm5pbmcgdGltZS4KCSAgRG9uJ3QgZG8gUW9TIGlzIHN5bmMgaXMgZGlzYWJsZWQgb3Igd2UgaGF2ZSBubyBjbG9jayBvciB0aGUKCSAgZWxlbWVudCBkb2VzIG5vdCB3YW50IHVzIHRvIHN5bmMgdG8gdGhlIGNsb2NrLgoJICBEb24ndCBkcm9wIGJ1ZmZlcnMgaWYgUW9TIGlzIGRpc2FibGVkIGZvciBub3cuCgoyMDA2LTAzLTE0IDE5OjI4OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1hcmtlZCB0aGUgc3RhdHMgcHJvcGVydHkgYXMgdW5pbXBsZW1lbnRlZCBzbyBwZW9wbGUgZG9uJ3QgZ2V0IHdpbGQgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICBNYXJrZWQgdGhlIHN0YXRzIHByb3BlcnR5IGFzIHVuaW1wbGVtZW50ZWQgc28gcGVvcGxlIGRvbid0IGdldAoJICB3aWxkIGlkZWFzLgoJICBBZGQgZGVidWcgbWVzc2FnZSB3aGVuIHJlZ3Jlc3Npb24gZ29lcyB3cm9uZy4KCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTAzLTE0IDE5OjI2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogUmV0dXJuIGNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSk6CgkgIFJldHVybiBjb3JyZWN0IHJldHVybiB0eXBlIGluIGNhc2Ugb2YgZXJyb3JzLgoKMjAwNi0wMy0xNCAxOToxNjo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW52YWxpZCBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X2dldF9uYW1lKSwgKGdzdF9mb3JtYXRfdG9fcXVhcmspOgoJICBEb24ndCBzZWdmYXVsdCBvbiBpbnZhbGlkIGZvcm1hdHMuCgoyMDA2LTAzLTE0IDE4OjI1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudCBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudAoJICBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlIHdpdGggZmlsZXNpbmssIGZvciBleGFtcGxlKS4KCSAgU3RvcHMgZmxhYyBlbmNvZGluZyBwaXBlbGluZXMgZnJvbSBzcGV3aW5nIGNyaXRpY2FsIHdhcm5pbmdzCgkgIGF0IEVPUyAoIzMzMTI0OCkuCgoyMDA2LTAzLTE0IDE2OjMyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEFkZCAnU2luY2U6IDAuMTAuNScgdG8gZ3RrLWRvYyBibHVyYiBmb3IgYWRkZWQgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICBBZGQgJ1NpbmNlOiAwLjEwLjUnIHRvIGd0ay1kb2MgYmx1cmIgZm9yIGFkZGVkIHByb3BlcnR5LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgdHJ5IHRvIHR5cGVmaW5kIGVtcHR5IHN0cmVhbXMuCgoyMDA2LTAzLTE0IDExOjE4OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTZXBhcmF0ZSBRb1MgY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIFNlcGFyYXRlIFFvUyBjYWxjdWxhdGlvbi4KCSAgT25seSBkcm9wIGJ1ZmZlcnMgd2hlbiBsYXRlbmVzcyBpcyBiaWdnZXIgdGhhbiB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIGJ1ZmZlci4KCjIwMDYtMDMtMTMgMTU6MTc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBEb24ndCBkZWFkbG9jayB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4KCjIwMDYtMDMtMTMgMTE6Mjc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBiYXNldHJhbnNmb3JtIHZpcnR1YWwgbWV0aG9kIGZvciBzcmMgZXZlbnRzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIGJhc2V0cmFuc2Zvcm0gdmlydHVhbCBtZXRob2QgZm9yIHNyYyBldmVudHMgdG9vLgoJICBIYW5kbGUgUU9TIGluIGJhc2V0cmFuc2Zvcm0uCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MKCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkCgoyMDA2LTAzLTEzIDExOjE2OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBVc2UgUU9TIGRlYnVnIGNhdGVnb3J5LgoKMjAwNi0wMy0xMyAxMToxMToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVmVyeSBzbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFZlcnkgc21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDMtMTMgMTE6MDg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBRT1MgZGVidWcgY2F0ZWdvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIEFkZGVkIFFPUyBkZWJ1ZyBjYXRlZ29yeQoKMjAwNi0wMy0xMyAxMTowNDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksIChnc3RfcGlwZWxpbmVfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3Igc2V0dGluZyB0aGUgZGVsYXkuCgkgIEFQSTogZ3N0X3BpcGVsaW5lX3NldF9kZWxheQoJICBBUEk6IGdzdF9waXBlbGluZV9nZXRfZGVsYXkKCSAgQWRkIHBpcGVsaW5lIGRlYnVnIGNhdGVnb3J5CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIFVwZGF0ZWQgZG9jcy4KCSAgRG9uJ3QgcmVzZXQgc3RyZWFtIHRpbWUgd2hlbiBzZWVrIGZhaWxlZC4KCjIwMDYtMDMtMTMgMTA6MzI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wMy0xMiAyMDo0NDo0NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggcnViYmlzaCBkb2NzIHRoYXQgYXJlIGVuY291cmFnaW5nIHVzIHRvIGxlYWsgc3RyaW5ncy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMy0xMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBydWJiaXNoIGRvY3MgdGhhdCBhcmUgZW5jb3VyYWdpbmcKCSAgdXMgdG8gbGVhayBzdHJpbmdzLi4uCgoyMDA2LTAzLTEyIDIwOjQwOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBmaXggZG9jcwoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlCgoyMDA2LTAzLTEyIDE0OjMyOjM3ICswMDAwICBKdWxpbyBNLiBNZXJpbm8gVmlkYWwgPGptbXZAbmV0YnNkLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgY2hlY2sgZm9yIGxpYmdub21ldWkgKGxlZnRvdmVyIGZyb20gb2xkIGV4YW1wbGVzIHRoYXQgYXJlbid0IGJ1aWx0IG9yIGRpc3RlZCBhbnkgbG9uZ2VyKSAoIzMzNDMwMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSnVsaW8gTS4gTWVyaW5vIFZpZGFsIDxqbW12IGF0IG5ldGJzZCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBjaGVjayBmb3IgbGliZ25vbWV1aSAobGVmdG92ZXIgZnJvbSBvbGQgZXhhbXBsZXMKCSAgdGhhdCBhcmVuJ3QgYnVpbHQgb3IgZGlzdGVkIGFueSBsb25nZXIpICgjMzM0MzAzKS4KCjIwMDYtMDMtMTEgMTM6MDI6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRW1pdCBSRVNPVVJDRV9OT19TUEFDRV9MRUZUIGVycm9yIGhlcmUgYXMgd2VsbCB3aGVuIHRoZXJlJ3Mgbm8gc3BhY2UgbGVmdCBvbiB0aGUgZGV2aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEVtaXQgUkVTT1VSQ0VfTk9fU1BBQ0VfTEVGVCBlcnJvciBoZXJlIGFzIHdlbGwgd2hlbgoJICB0aGVyZSdzIG5vIHNwYWNlIGxlZnQgb24gdGhlIGRldmljZS4KCjIwMDYtMDMtMTAgMjM6NDQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIHNpZ25lZG5lc3MgaXNzdWVzIC0gd2UgbmVlZCB0byBjYXN0IHRoZSBpbnB1dCB0byBHc3RDbG9ja1RpbWUgYmVmb3JlIGNvbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBzaWduZWRuZXNzIGlzc3VlcyAtIHdlIG5lZWQKCSAgdG8gY2FzdCB0aGUgaW5wdXQgdG8gR3N0Q2xvY2tUaW1lIGJlZm9yZSBjb21wYXJpbmcgd2l0aAoJICBhbm90aGVyIEdzdENsb2NrVGltZSB2YWx1ZS4KCjIwMDYtMDMtMTAgMTk6MTI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCjIwMDYtMDMtMTAgMTk6MTE6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC4xMC40ID09PQoKMjAwNi0wMy0xMCAxOTowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9tYW51YWwvUkVBRE1FOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNAoKMjAwNi0wMy0xMCAxNTozMDoyNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZG9jcyBmb3IgZGF0YXByb2NvdG9sIHRvIG5vdCBnZXQgdGhlIHJldHVybiB0eXBlcyBjb21wbGV0ZWx5IHdyb25nIGZvciBhIGZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRml4IGRvY3MgZm9yIGRhdGFwcm9jb3RvbCB0byBub3QgZ2V0IHRoZSByZXR1cm4gdHlwZXMgY29tcGxldGVseQoJICB3cm9uZyBmb3IgYSBmZXcgZnVuY3Rpb25zLgoKMjAwNi0wMy0wOSAxOTowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2luZwoKMjAwNi0wMy0wOSAxNjo1MzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKCkgYW5kIGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMoKSB0byBkaXNhYmxlIGF1dG9tYXRpYyBmbHVzaGluZyBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cyksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMoKSBhbmQKCSAgZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cygpIHRvIGRpc2FibGUgYXV0b21hdGljCgkgIGZsdXNoaW5nIG9mIHRoZSBwaXBlbGluZSdzIEdzdEJ1cyB3aGVuIGdvaW5nIGZyb20gUkVBRFkKCSAgdG8gTlVMTCBzdGF0ZSAoIzMzMjA0NSkuCgoyMDA2LTAzLTA5IDEyOjA4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF91cmlfaGFzX3Byb3RvY29sKCkgKCMzMzM3NzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFzX3Byb3RvY29sKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfdXJpX2hhc19wcm90b2NvbCgpICgjMzMzNzc5KS4KCjIwMDYtMDMtMDkgMTE6NDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suKjogUmV2aWV3IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pZF91bnNjaGVkdWxlKSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19nZXRfaW50ZXJuYWxfdGltZSksCgkgIChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBSZXZpZXcgZG9jcy4KCSAgU21hbGwgY2xlYW51cHMuCgkgIEZpeCBhIHBvc3NpYmxlIHNlZ2ZhdWx0IHdoZW4gdGhlIHdpbmRvdy1zaXplIGlzIG1hZGUgc21hbGxlci4KCSAgQ2FsY3VsYXRlIGppdHRlciBiZWZvcmUgcGVyZm9ybWluZyB0aGUgY2xvY2sgd2FpdC4gSWRlYWxseQoJICB0aGUgY2xvY2sgaW1wbGVtZW50YXRpb24gc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYnV0IHdlIG5lZWQKCSAgQVBJIGJyZWFrYWdlIGZvciB0aGF0LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgRG9jcyByZXZpZXcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgUmVtb3ZlIGxlZnRvdmVyIGVsc2UKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgR1NUX0NMT0NLX0RJRkYuCgoyMDA2LTAzLTA5IDEwOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBJZiB3ZSBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgc2l6ZSwgd2Ugc2hvdWxkIGltcGxlbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSk6CgkgIElmIHdlIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBzaXplLCB3ZSBzaG91bGQgaW1wbGVtZW50CgkgIEdzdFR5cGVGaW5kOjpnZXRfbGVuZ3RoLCBzbyB0aGF0IHR5cGVmaW5kIGZ1bmN0aW9ucyB3aG8KCSAgd2FudCB0byBjYW4gYWN0dWFsbHkgcGVlayBhdCB0aGUgbWlkZGxlIG9mIGEgZmlsZS4KCjIwMDYtMDMtMDggMTQ6MzA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIFNvbWUgdXBkYXRlcyB0byB0aGUgbGlzdCBvZiB0aGluZ3MgdG8gY2hlY2sgd2hlbiB3cml0aW5nIGFuIGVsZW1lbnQuCgoyMDA2LTAzLTA4IDEzOjQ0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6IEFkZGVkIHNvbWUgZG9jcyBhYm91dCB0aGUgZGVzaWduIG9mIHRyYW5mb3JtIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgQWRkZWQgc29tZSBkb2NzIGFib3V0IHRoZSBkZXNpZ24gb2YgdHJhbmZvcm0gZWxlbWVudHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYXJrIGJ1ZmZlcnMgd2l0aCB0aGUgRElTQ09OVCBmbGFnLgoKMjAwNi0wMy0wOCAxMjo1NzozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IgZmFpbGVkIHdyaXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZSksCgkgIChnc3RfcmVnaXN0cnlfc2F2ZV9lc2NhcGVkKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9jYXBzKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IKCSAgZmFpbGVkIHdyaXRlcy4KCjIwMDYtMDMtMDggMTA6MTc6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgREVCVUcgbGluZXMuCgkgIERvbid0IHRyeSB0byByZW5lZ290aWF0ZSB3aGVuIGFsbG9jYXRpbmcgYW4gb3V0cHV0IGJ1ZmZlci4KCSAgQWxzbyBjb3B5IERJU0NPTlQgYnVmZmVyIGZsYWcgd2hlbiBjb3B5aW5nIGEgYnVmZmVyLgoJICBSZXNldCB0aGUgdHJhbnNmb3JtIGFmdGVyIHdlIGZpbmlzaCBzdHJlYW1pbmcsIG5vdCBkdXJpbmcuCgoyMDA2LTAzLTA4IDA5OjQ2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoKMjAwNi0wMy0wNyAxNzowNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnLzogQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoKMjAwNi0wMy0wNyAxNjoyMTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZGVkIGJhc2VzaW5rIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGRlZCBiYXNlc2luayBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgRG9jcyB1cGRhdGVzLiBGbGVzaCBvdXQgdGhlIFFvUyBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTbWFsbCBkb2MgY2xhcmlmaWNhdGlvbiBhYm91dCBvd25lcnNoaXAgYW5kIGZsdXNoaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBuZXcgbWV0aG9kcyB0byBhbGxvdyBzdWJjbGFzcyB0byBjb250cm9sIG1heC1sYXRlbmVzcwoJICBhbmQgc3luYy4KCSAgR2VuZXJhdGUgdmVyeSBiYXNpYyBRb1MgZXZlbnRzIGJhc2VkIG9uIGxhc3Qgc3luYyBvYnNlcnZhdGlvbi4KCSAgVXBkYXRlZCBkb2NzLCBmaXggdHlwbywgYWRkZWQgc29tZSBRb1MgYmx1cmIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBvYnNvbGV0ZSBfZ2V0X3N0YXRlKCkgY2FsbHMgZnJvbSBkb2NzLgoKMjAwNi0wMy0wNyAxNToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCAjMzMzNjY5LCBBZGQgcGFkIGFjY2Vzc29yIGRlZmluZXMgZm9yIEdzdEJhc2VUcmFuc2Zvcm0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4ICMzMzM2NjksIEFkZCBwYWQgYWNjZXNzb3IgZGVmaW5lcyBmb3IgR3N0QmFzZVRyYW5zZm9ybQoJICBGaXggZG9jcyBmb3IgR3N0QmFzZVNyYy4KCjIwMDYtMDMtMDcgMTU6MDg6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDYtMDMtMDcgMTE6NDc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9jdW1lbnQgdGhyZWFkLXVuc2FmZXR5IG9mIGdzdF92YWx1ZV9yZWdpc3Rlcl9mb29fZnVuYygpIHdoZW4gdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIGdzdF92YWx1ZV9mb28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50IHRocmVhZC11bnNhZmV0eSBvZiBnc3RfdmFsdWVfcmVnaXN0ZXJfZm9vX2Z1bmMoKQoJICB3aGVuIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBhcyBnc3RfdmFsdWVfZm9vKCkgKCMzMjI2MjgpLgoKMjAwNi0wMy0wNyAxMDoxOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDYtMDMtMDcgMDk6Mjg6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogUHVzaCBzb3VyY2VzIGRvbid0IHN1cHBvcnQgcHVsbCBtb2RlIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1c2hfc3JjX2NoZWNrX2dldF9yYW5nZSk6CgkgIFB1c2ggc291cmNlcyBkb24ndCBzdXBwb3J0IHB1bGwgbW9kZSBieSBkZWZhdWx0LgoKMjAwNi0wMy0wNiAxOTo1NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgOjpjaGVja19nZXRfcmFuZ2UoKSB2ZnVuYyB0byBHc3RCYXNlU3JjICgjMzMyNjExKSwgcHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCA6OmNoZWNrX2dldF9yYW5nZSgpIHZmdW5jIHRvIEdzdEJhc2VTcmMgKCMzMzI2MTEpLAoJICBwcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFuZCByZW5hbWUKCSAgZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSgpIHRvCgkgIGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKCkgZm9yIGNsYXJpdHkuCgoyMDA2LTAzLTA2IDE2OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0eWxlZ3VpZGU6CgkgIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdHlsZSBndWlkZQoKMjAwNi0wMy0wNiAxNjoxMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCjIwMDYtMDMtMDYgMTY6MDI6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgoyMDA2LTAzLTA2IDE1OjE2OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBldmVyIGRyYXcgYSBmcmFtZSB0aGF0IGlzID4xMG1zIGxhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KToKCSAgRG9uJ3QgZXZlciBkcmF3IGEgZnJhbWUgdGhhdCBpcyA+MTBtcyBsYXRlLgoKMjAwNi0wMy0wNiAxNDo1MTozNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogV2hlbiBjb3B5aW5nIGEgbWVzc2FnZSwgc2V0IHRoZSBwYXJlbnRfcmVmY291bnQgb2YgdGhlIGVuY2xvc2VkIHN0cnVjdHVyZSB0byBwb2ludCBhdCB0aGUgY29weSwgbm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSk6CgkgIFdoZW4gY29weWluZyBhIG1lc3NhZ2UsIHNldCB0aGUgcGFyZW50X3JlZmNvdW50IG9mIHRoZSBlbmNsb3NlZAoJICBzdHJ1Y3R1cmUgdG8gcG9pbnQgYXQgdGhlIGNvcHksIG5vdCB0aGUgb3JpZ2luYWwgbWVzc2FnZS4KCjIwMDYtMDMtMDYgMTQ6NDY6MzEgKzAwMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICB1c2FibGUgaW4gYysrIGNvZGUgKCMzMzM0MTc7IHBhdGNoIGJ5OiBDaHJpc3RvcGhlIEZlcmdlYXUpCgoyMDA2LTAzLTA2IDE0OjM0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5oOiBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgoyMDA2LTAzLTA2IDE0OjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBhbm90aGVyIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW5vdGhlciBxdW90ZQoKMjAwNi0wMy0wNSAyMDo1Njo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byBnc3RfY2Fwc19hcHBlbmQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0bwoJICBnc3RfY2Fwc19hcHBlbmQoKS4KCjIwMDYtMDMtMDQgMTQ6NDU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogRml4IHNvbWUgbWlub3IgZG9jcyBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBGaXggc29tZSBtaW5vciBkb2NzIGVycm9ycy4KCjIwMDYtMDMtMDQgMTM6NTQ6MjYgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzQGJ1cnRvbmluaS5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3Jlc291cmNlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgcGF0Y2ggYnk6IFJvc3MgQnVydG9uIDxyb3NzIGF0IGJ1cnRvbmluaSBkb3QgY29tPikuCgoyMDA2LTAzLTAzIDE2OjU4OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogQWRkIGEgY2hlY2sgYW5kIG91dHB1dCBhIGdfd2FybmluZyB3aGVuIEdTdHJlYW1lciBpcyBidWlsdCBhZ2FpbnN0IEdMaWIgMi42IGJ1dCBydW5uaW5nIGFnYWluc3QgMi44IG9yIGhpZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNoZWNrIGFuZCBvdXRwdXQgYSBnX3dhcm5pbmcgd2hlbiBHU3RyZWFtZXIgaXMgYnVpbHQKCSAgYWdhaW5zdCBHTGliIDIuNiBidXQgcnVubmluZyBhZ2FpbnN0IDIuOCBvciBoaWdoZXIsIGFuZCB2aWNlCgkgIHZlcnNhLiAoQ2xvc2VzOiAjMzIzNTQyKQoKMjAwNi0wMy0wMyAxNTozMjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogQ29tbWl0IHBhdGNoIGZvciBwYXJzZV9sYXVuY2ggc3ludGF4IGZyb20gIzMzMTI1NS4gUmVtb3ZlcyBzdXBwb3J0IGZvciBxdW90ZWQgc3RyaW5ncyBhbmQgbWltZXR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIENvbW1pdCBwYXRjaCBmb3IgcGFyc2VfbGF1bmNoIHN5bnRheCBmcm9tICMzMzEyNTUuIFJlbW92ZXMKCSAgc3VwcG9ydCBmb3IgcXVvdGVkIHN0cmluZ3MgYW5kIG1pbWV0eXBlcyB3aGVuIHdyaXRpbmcgZmlsdGVyZWQKCSAgY2Fwcy4gU2VlIHRoZSBidWcgcmVwb3J0IGZvciBtb3JlIGRldGFpbHMgLSBJJ20gcHJldHR5IHN1cmUgdGhpcwoJICBvYnNjdXJlIGZlYXR1cmUgaXMgbm90IGluIHVzZSBieSBfYW55b25lXyBhbnl3aGVyZS4KCSAgV2l0aCB0aGlzIHNpbXBsZSBjaGFuZ2UsIHRoZSBzaXplIG9mIHRoZSBnc3RyZWFtZXIuc28gaGVyZQoJICBkcm9wcyBmcm9tIDIxOTNLQiB0byAxNTY1S0IuCgoyMDA2LTAzLTAzIDE0OjE4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSBmb3IgY2hhaW4tYmFzZWQgdHlwZWZpbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoc3RhcnRfdHlwZWZpbmRpbmcpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW5fZG9fdHlwZWZpbmRpbmcpOgoJICBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpIGZvciBjaGFpbi1iYXNlZAoJICB0eXBlZmluZGluZy4KCjIwMDYtMDMtMDMgMTE6NDI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEZXByZWNhdGUgIm1heGltdW0iIHByb3BlcnR5IChub3Qgb25seSB3YXMgaXQgb25seSB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9wcm9wZXJ0eSk6CgkgIERlcHJlY2F0ZSAibWF4aW11bSIgcHJvcGVydHkgKG5vdCBvbmx5IHdhcyBpdCBvbmx5IHRha2VuIGludG8KCSAgYWNjb3VudCBmb3IgdHlwZWZpbmRpbmcgaW4gcHVzaC1tb2RlIGFueXdheSwgaXQgYWxzbyB3YXMgbmV2ZXIKCSAgYWN0dWFsbHkgcG9zc2libGUgdG8gc2V0IGl0IGluIHRoZSBmaXJzdCBwbGFjZSBiZWNhdXNlIHRoZQoJICBwcm9wZXJ0eSB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBudW1lcmljIHByb3BlcnR5IElEIGZvciB0aGUKCSAgIm1pbmltdW0iIHByb3BlcnR5KS4gUmVnaXN0ZXIgIm1heGltdW0iIHByb3BlcnR5IGNvcnJlY3RseSwKCSAgZm9yIHRoZSBzYWtlIG9mIGZ1dHVyZSBjb3B5J24ncGFzdGVycy4gUmVtb3ZlIHNvbWUgY3J1ZnQKCSAgZnJvbSBwcm9wZXJ0eSBnZXQvc2V0IGZ1bmN0aW9ucy4KCjIwMDYtMDMtMDMgMTE6Mjc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgaGVyZSwgc28gd2UgY2FuIGhvbm91ciB0aGUgbWluLXByb2JhYmlsaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSBoZXJlLCBzbyB3ZQoJICBjYW4gaG9ub3VyIHRoZSBtaW4tcHJvYmFiaWxpdHkgcHJvcGVydHkgYW5kIGFsc28gZW1pdAoJICB0aGUgc2lnbmFsIHdpdGggdGhlIGNvcnJlY3QgcHJvYmFiaWxpdHkgb2YgdGhlIGZvdW5kIGNhcHMuCgoyMDA2LTAzLTAyIDEzOjQ1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoKMjAwNi0wMy0wMiAxMTowNDo1OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFzc2VydGluZyBvbiBhIGZhaWx1cmUgdG8gcmVhZCBwYXJ0IG9mIHRoZSByZWdpc3RyeSBpcyBOb3QgQ29vbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpOgoJICBBc3NlcnRpbmcgb24gYSBmYWlsdXJlIHRvIHJlYWQgcGFydCBvZiB0aGUgcmVnaXN0cnkgaXMgTm90IENvb2wuCgkgIEp1c3QgbG9nIGEgd2FybmluZyBhbmQgcmV0dXJuIE5VTEwgKHdoaWNoIGlzIGFscmVhZHkgaGFuZGxlZCkKCjIwMDYtMDItMjggMjA6NTc6MTAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogYWRkZWQgZXhwb3J0IG9mIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGRlZCBleHBvcnQgb2YgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkZWQgc29tZSBleHBvcnRzIDogZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzLCBnc3RfaXRlcmF0b3JfcmVzeW5jLAoJICBnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQKCjIwMDYtMDItMjggMTc6MjQ6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFdlIHVzZSBGaWx0ZXIgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFdlIHVzZSBGaWx0ZXIgbm93LgoJICBBZGRlZCBDb25uZWN0b3IgdG8gbWFyayBlbGVtZW50cyB0aGF0IGFyZSBvbmx5IHVzZWQgdG8KCSAgYWxsb3cgcGlwZWxpbmUgY29ubmVjdGlvbnMuCgkgIE1vdmVkIERlYnVnIHRvIGV4dHJhIGZlYXR1cmUgc2luY2UgbW9zdCBvZiB0aGVtIGFyZQoJICBmdW5jdGlvbmFsbHkgc29tZXRoaW5nIGVsc2UuCgoyMDA2LTAyLTI4IDE3OjAzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBTb21lIHVwZGF0ZXMgYW5kIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFNvbWUgdXBkYXRlcyBhbmQgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTAyLTI4IDE1OjU0OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBQcm9wb3NhbCBmb3Iga2xhc3MgZmllbGQgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFByb3Bvc2FsIGZvciBrbGFzcyBmaWVsZCB2YWx1ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgU3RhcnQgb2YgYSBkb2MgZGVzY3JpYmluZyBzdHJlYW0gYW5hdG9teS4KCjIwMDYtMDItMjggMTA6NTI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEhlbHAgdGhlIGNvbXBpbGVyIGEgYml0IHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSGVscCB0aGUgY29tcGlsZXIgYSBiaXQgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgVXNlIGV4aXN0aW5nIGZvcndhcmQgY29kIHBhdGggaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCB3aGVuCgkgIGhhbmRsaW5nIGEgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZ2V0X3R5cGUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKSwKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBIZWxwIGNvbXBpbGVyIHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDItMjcgMjA6MDE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQKCSAgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UgaGFkIG5vdCB5ZXQgYWNjdW11bGF0ZWQKCSAgVFlQRV9GSU5EX01JTl9TSVpFIG9mIGRhdGEgeWV0KSwgdHJ5IHRvIGRldGVybWluZSB0aGUKCSAgdHlwZSBnaXZlbiB0aGUgZGF0YSB3ZSBoYXZlIHNvIGZhci4gRml4ZXMgdHlwZWZpbmRpbmcKCSAgZm9yIHZlcnkgc2hvcnQgc3RyZWFtcyBhZ2FpbiwgbW9zdCBub3RhYmx5IHF1aWNrdGltZQoJICByZWRpcmVjdGlvbnMgYXMgdXNlZCBvbiBBcHBsZSdzIHRyYWlsZXIgc2l0ZSAoIzMzMTcwMSkuCgoyMDA2LTAyLTI3IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAodHlwZV9maW5kX2ZhY3RvcnlfcmFua19jbXApLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCjIwMDYtMDItMjcgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc2VjdGlvbiBmb3IgdHlwZWZpbmQgaGVscGVyIGFuZCBhZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgQWRkIHNlY3Rpb24gZm9yIHR5cGVmaW5kIGhlbHBlciBhbmQgYWRkIGRvY3VtZW50YXRpb24KCSAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDA2LTAyLTI3IDE4OjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci4qOiBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgKCMzMzI3MjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChidWZfaGVscGVyX2ZpbmRfcGVlayksCgkgIChidWZfaGVscGVyX2ZpbmRfc3VnZ2VzdCksICh0eXBlX2ZpbmRfZmFjdG9yeV9yYW5rX2NtcCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSAoIzMzMjcyMykuCgoyMDA2LTAyLTI3IDE1OjQzOjEwICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIFBhdGNoIGZyb20gTG/Dr2MgTWluaWVyIHRvIHByZXZlbnQgQ1ZTIGRpcmVjdG9yaWVzIGdldHRpbmcgZGlzdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSAgUGF0Y2ggZnJvbSBMb8OvYyBNaW5pZXIgdG8gcHJldmVudCBDVlMgZGlyZWN0b3JpZXMgZ2V0dGluZyBkaXN0ZWQuCgoyMDA2LTAyLTI3IDEyOjEwOjQ3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDYtMDItMjcgMTE6MDE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBVc2UgdGhlIFJFRkNPVU5USU5HIGNhdGVnb3J5IGZvciBjYXBzIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKToKCSAgVXNlIHRoZSBSRUZDT1VOVElORyBjYXRlZ29yeSBmb3IgY2FwcyByZWZjb3VudGluZy4KCjIwMDYtMDItMjYgMTk6MjA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBUaGlzIHNob3VsZCBiZSAwIG5vdCBHU1RfQ0xPQ0tfVElNRV9OT05FIChzZWUgIzMzMTcwMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgVGhpcyBzaG91bGQgYmUgMCBub3QgR1NUX0NMT0NLX1RJTUVfTk9ORSAoc2VlICMzMzE3MDEpLgoKMjAwNi0wMi0yNiAxNDo0MjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UoKSBiZWZvcmUgX2FjdGl2YXRlX3B1bGwoKSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVXNlIGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSgpIGJlZm9yZSBfYWN0aXZhdGVfcHVsbCgpCgkgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wZW4vY2xvc2UgKHNlZSAjMzMxNjkwKS4KCjIwMDYtMDItMjQgMTY6NTQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9jcyBlbmhhbmNlbWVudDogbWFrZSBpdCBjcnlzdGFsIGNsZWFyIHdoYXQgdGhlIGdzdF9wYWRfYWRkXypfcHJvYmUoKSBjYWxsYmFja3Mgc2hvdWxkIGxvb2sgbGlrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3MgZW5oYW5jZW1lbnQ6IG1ha2UgaXQgY3J5c3RhbCBjbGVhciB3aGF0IHRoZQoJICBnc3RfcGFkX2FkZF8qX3Byb2JlKCkgY2FsbGJhY2tzIHNob3VsZCBsb29rIGxpa2UuCgoyMDA2LTAyLTI0IDEwOjU3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvY3VtZW50IGhvdyBhcHBsaWNhdGlvbnMgY2FuIHN0b3AgcmVjb3JkaW5nIGZyb20gbGl2ZSBzb3VyY2VzIChzZWUgIzMzMDk5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBEb2N1bWVudCBob3cgYXBwbGljYXRpb25zIGNhbiBzdG9wIHJlY29yZGluZyBmcm9tCgkgIGxpdmUgc291cmNlcyAoc2VlICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxODowNjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIElnbm9yZSBtb3JlIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlIHN0dWZmLgoKMjAwNi0wMi0yMyAxNzozOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogLi4uIGFuZCBhZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGJhc2Ugc291cmNlIEVPUyBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlciksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVsbCksIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaCksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaF9saXZlX29wKSwgKGJhc2VzcmNfZW9zX2V2ZW50c19wdWxsX2xpdmVfb3ApLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpLCAobWFpbik6CgkgIC4uLiBhbmQgYWRkIHNvbWUgdGVzdHMgZm9yIHRoZSBiYXNlIHNvdXJjZSBFT1Mgc3R1ZmYuCgoyMDA2LTAyLTIzIDE2OjU2OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6CgkgIFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywKCSAgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjayBhdCB0aGUgcGxhY2UKCSAgd2hlcmUgdGhleSB1c2VkIHRvIGJlLgoKMjAwNi0wMi0yMyAxNjoyNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBSRUFEWSBzdGF0ZSwgZXNwLiBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCB0d28gRU9TIGV2ZW50cwoJICBpbiBzb21lIGNhc2VzIChlLmcuIG9uZSB3aGVuIHJlYWNoaW5nIEVPUyBhbmQgb25lIHdoZW4KCSAgZ29pbmcgZnJvbSBQQVVTRUQgdG8gUkVBRFkpLiBBbHNvLCB3ZSBkb24ndCB3YW50IHRvIHNlbmQKCSAgRU9TIGV2ZW50cyB3aGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUuIEhvd2V2ZXIsIHdlIGRvCgkgIHdhbnQgdG8gc2VuZCBhbiBFT1MgZXZlbnQgd2hlbiBzaHV0dGluZyBkb3duIGEgbGl2ZQoJICBzb3VyY2UgZXhwbGljaXRseSwgZm9yIGV4YW1wbGUgKGZpeGVzICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxMDoyNDoxMyArMDAwMCAgUmVuY2hpIFJhanUgPHJlbmNoaUBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXBkYXRlIHNyYy0+cmVhZF9wb3NpdGlvbiBhZnRlciBhIHNlZWsgd2hlbiBub3QgdXNpbmcgbW1hcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBVcGRhdGUgc3JjLT5yZWFkX3Bvc2l0aW9uIGFmdGVyIGEgc2VlayB3aGVuIG5vdCB1c2luZyBtbWFwLgoJICBGaXhlcyAjMzMyMjc3LCBwYXRjaCBieTogUmVuY2hpIFJhanUgPHJlbmNoaSBnbWFpbCBjb20+CgoyMDA2LTAyLTIwIDIzOjM0OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IE1ha2UgdGhpbmdzIHdvcmsgd2l0aCAtLWRpc2FibGUtcGFyc2UgYXMgdGhleSBkbyB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSB0aGluZ3Mgd29yayB3aXRoIC0tZGlzYWJsZS1wYXJzZSBhcyB0aGV5IGRvIHdpdGgKCSAgLS1kaXNhYmxlLWxvYWQtc2F2ZSAtIHRoZSBzeW1ib2xzIGludm9sdmVkIGRpc2FwcGVhciwgYnV0IHRoZQoJICBoZWFkZXIgaXMgc3RpbGwgaW5zdGFsbGVkIGFuZCBHU1RfRElTQUJMRV9QQVJTRSBpcyBpbmNsdWRlZCB2aWEKCSAgZ3N0Y29uZmlnLmgKCjIwMDYtMDItMjAgMTY6MDc6NDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHN0dXBpZCBidWcuIEkgd2FzIHN1cmUgaSBjb21waWxlZCB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBGaXggYSBzdHVwaWQgYnVnLiBJIHdhcwoJICBzdXJlIGkgY29tcGlsZWQgdGhhdC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjA3OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC86IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZSBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZQoJICBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjAxOjE0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGJhc2V0cmFuc2Zvcm0gcmV1c2FibGUuIChDbG9zZXMgIzMzMTg5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogTWFrZSBiYXNldHJhbnNmb3JtIHJldXNhYmxlLgoJICAoQ2xvc2VzICMzMzE4OTgpCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxMjoyNjo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wCgkgIG9mIHRoZSBmaWxlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBBbGxvdyBtdWx0aXBsZSBzdGF0ZS1yZWNhbGN1bGF0aW9uIHRocmVhZHMuIChDbG9zZXMgIzMyODg3MykKCjIwMDYtMDItMTkgMTI6MjU6MDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogQWRkIEdTVF9TVFJfTlVMTCB0byB0aGUgc2Vjb25kIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0aW5mby5oOiBBZGQgR1NUX1NUUl9OVUxMIHRvIHRoZSBzZWNvbmQgc3RyaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbik6IEdTVF9ERUJVR19QQURfTkFNRSBldmFsdWF0ZXMgdG8KCSAgMiBzdHJpbmdzLiBZb3UgY2FuJ3QgdXNlIHRoZSBTVFJfTlVMTCBtYWNybyBvbiB0aGF0LgoKMjAwNi0wMi0xOSAxMjowMDozOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKQoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluaykKCSAgRml4ZWQgTlVMTCBwb2ludGVyIHVzZWQgaW4gR1NUX0NBVF9ERUJVRyB1c2luZyBHU1RfU1RSX05VTEwgbWFjcm8KCSAgU28gbm93LCB3ZSBjYW4gdXNlIC0tZ3N0LWRlYnVnLWxldmVsPTUgb24gV2luZG93cwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgQWRkZWQgZXhwb3J0IG9mIGdzdF9jb250cm9sbGVyX2luaXQKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIEZpeGVkIFJlbGVhc2UgcG9zdCBidWlsZCBjb25maWd1cmF0aW9uCgoyMDA2LTAyLTE3IDE1OjI1OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IEFkZGVkIGFub3RoZXIgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBhbm90aGVyIGNoZWNrLgoKMjAwNi0wMi0xNSAxMjoxNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdlIGNhbiBkbyBwZWVrcyBhdCBub24temVybyBvZmZzZXRzLCBhcyBsb25nIGFzIHRoZXkgZmFsbCB3aXRoaW4gdGhlIGJ1ZmZlciB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgV2UgY2FuIGRvIHBlZWtzIGF0IG5vbi16ZXJvIG9mZnNldHMsIGFzIGxvbmcgYXMgdGhleQoJICBmYWxsIHdpdGhpbiB0aGUgYnVmZmVyIHdlIGhhdmUuCgoyMDA2LTAyLTE1IDAxOjAyOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChleHBlY3RlZF9mYWlsX3BpcGUpLCAoY2hlY2tfcGlwZWxpbmVfcnVucyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChwYXJzZV9zdWl0ZSksIChtYWluKToKCSAgQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoKMjAwNi0wMi0xNCAyMDo1NzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBjaGFpbiBmdW5jdGlvbiwgZG9uJ3QgZXJyb3Igb3V0IGltbWVkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgV2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLCBkb24ndAoJICBlcnJvciBvdXQgaW1tZWRpYXRlbHkuIE9ubHkgZXJyb3Igb3V0IHdpdGggTk9fQ0FQU19GT1VORCBpZgoJICB0aGUgYW1vdW50IG9mIGRhdGEgaXMgYXQgbGVhc3QgTUFYX1RZUEVGSU5EX1NJWkUgYnl0ZXMsCgkgIG90aGVyd2lzZSBzaW1wbHkgd2FpdCBmb3IgbW9yZSBkYXRhIHNvIHdlIGNhbiB0cnkgdHlwZWZpbmRpbmcKCSAgYWdhaW4gd2l0aCBtb3JlIGRhdGEgbGF0ZXIuIEFsc28sIGRvbid0IGF0dGVtcHQgdG8gdHlwZWZpbmQKCSAgaWYgd2UgaGF2ZSBsZXNzIHRoYW4gTUlOX1RZUEVGSU5EX1NJWkUgZGF0YSBhdmFpbGFibGUuIE92ZXJhbGwsCgkgIHRoaXMgc2hvdWxkIGltcHJvdmUgdHlwZWZpbmRpbmcgZnJvbSBuZXR3b3JrIHNvdXJjZXMgd2hlcmUgdGhlCgkgIHNpemUgb2YgdGhlIGZpcnN0IGJ1ZmZlciBjYW4gYmUgc29tZXdoYXQgcmFuZG9tLgoKMjAwNi0wMi0xNCAxODoyNjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBwYWR0ZW1wbGF0ZSBkb2NzLCBmaXhlcyAjMzI4ODA1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBGaXggcGFkdGVtcGxhdGUgZG9jcywgZml4ZXMgIzMyODgwNS4KCjIwMDYtMDItMTQgMTc6MjU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE5PX1BSRVJPTEwgaXMgbm90IGFuIEVSUk9SIHNvIGRvbid0IHNlbmQgY29uZnVzaW5nIG1lc3NhZ2VzIHRvIHRoZSB1c2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTk9fUFJFUk9MTCBpcyBub3QgYW4gRVJST1Igc28gZG9uJ3Qgc2VuZCBjb25mdXNpbmcgbWVzc2FnZXMKCSAgdG8gdGhlIHVzZXIuCgoyMDA2LTAyLTE0IDE2OjE1OjA1ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQcm90ZWN0IGRlZmF1bHQgcmVnaXN0cnkgd2l0aCBsb2NrIGFuZCByZWYvc2luayBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgUHJvdGVjdCBkZWZhdWx0IHJlZ2lzdHJ5IHdpdGggbG9jayBhbmQgcmVmL3NpbmsgaXQuCgkgIEZpeGVzICMzMjQ4MTgsIHBhdGNoIGJ5IFRvcnN0ZW4gU2Nob2VuZmVsZC4KCjIwMDYtMDItMTQgMTM6MDc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbGVuZ3RoKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX250aCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIERvY3MgZml4ZXMuCgoyMDA2LTAyLTE0IDEyOjA3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwgKGdzdF9xdWVyeV9zZXRfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KSwgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX2xlbmd0aCksCgkgIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19udGgpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGbGVzaCBvdXQgZm9ybWF0cyBxdWVyeSwgYWRkZWQgc29tZSBuZXcgbWV0aG9kcy4KCSAgRml4IHBhcnQgb2YgIzMyNDM5OC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHF1ZXJ5X3N1aXRlKToKCSAgQWRkZWQgcXVlcnkgY3JlYXRpb24gdGVzdHMuCgoyMDA2LTAyLTE0IDExOjM4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIGEgZGVmYXVsdCBmaXhhdGlvbiBmb3IgZnJhY3Rpb24gbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIEFkZCBhIGRlZmF1bHQgZml4YXRpb24gZm9yIGZyYWN0aW9uIGxpc3RzLgoKMjAwNi0wMi0xMyAxNzowMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0YXNrLio6IERldGVjdCBhbmQgd2FybiBmb3Igb2J2aW91cyBkZWFkbG9ja3MuIGZpeGVzICMzMjAzNDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2luaXQpLCAoZ3N0X3Rhc2tfZnVuYyksCgkgIChnc3RfdGFza19zZXRfbG9jayksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksCgkgIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBEZXRlY3QgYW5kIHdhcm4gZm9yIG9idmlvdXMgZGVhZGxvY2tzLiBmaXhlcyAjMzIwMzQwCgkgIEZpeCBlcnJvciBjYXNlIHdoZXJlIGxvY2sgd2FzIG5vdCByZWxlYXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiAodGFza19mdW5jMiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh0YXNrX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0YXNrIGNoZWNrLgoKMjAwNi0wMi0xMyAxNDowMDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZwoKMjAwNi0wMi0xMyAxMzo1NzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBkb2NzLgoKMjAwNi0wMi0xMyAxMTo1Mjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzCgkgIGZvcm1hdHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVzZSBzaGlueSBuZXcgX1RZUEVfTkFNRSBtYWNyb3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgdXAuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTEzIDExOjE5OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogYWRkIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSBhbmQgR1NUX1FVRVJZX1RZUEVfTkFNRSBtYWNyb3MgKCMzMzA5MDYpLiBBbHNvLCBkb2N1bWVudCB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIE5ldyBBUEk6IGFkZCBHU1RfTUVTU0FHRV9UWVBFX05BTUUgYW5kIEdTVF9RVUVSWV9UWVBFX05BTUUKCSAgbWFjcm9zICgjMzMwOTA2KS4gQWxzbywgZG9jdW1lbnQgdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgR1NUX1FVRVJZX1RZUEUgbWFjcm8uCgoyMDA2LTAyLTEzIDEwOjU0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE9ubHkgZXZlbnRzIHVwIHRvIHRoZSBwaXBlbGluZSBFT1MgYXJlIGNvdW50ZWQsIHRoZXJlIGFyZSBzb21lIG1vcmUgd2hlbiBnb2luZyB0byBOVUxMIGN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoZGF0YV9wcm9iZSksIChidWZmZXJfcHJvYmUpLAoJICAoZXZlbnRfcHJvYmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBPbmx5IGV2ZW50cyB1cCB0byB0aGUgcGlwZWxpbmUgRU9TIGFyZSBjb3VudGVkLCB0aGVyZSBhcmUKCSAgc29tZSBtb3JlIHdoZW4gZ29pbmcgdG8gTlVMTCBjdXJyZW50bHkgd2hpY2ggd2UgZG9uJ3QgY2FyZQoJICBhYm91dCBmb3Igbm93LgoKMjAwNi0wMi0xMyAwOTo1OTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ29ycmVjdGx5IGNoZWNrIGZsdXNoaW5nIGFuZCBlbWl0IHByb2Jlcy4gZml4ZXMgIzMzMDEyNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBDb3JyZWN0bHkgY2hlY2sgZmx1c2hpbmcgYW5kIGVtaXQgcHJvYmVzLiBmaXhlcyAjMzMwMTI1CgoyMDA2LTAyLTEyIDEzOjExOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoKMjAwNi0wMi0xMCAxNjowNDo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2NsYXNzX2luaXQpOiBEZWNsYXJlIG91ciBwcml2YXRlIGRhdGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfY2xhc3NfaW5pdCk6IERlY2xhcmUgb3VyIHByaXZhdGUgZGF0YQoJICBzdHJ1Y3R1cmUuCgkgIChnc3RfYnVzX2luaXQpOiBDYWNoZSB0aGUgbG9jYXRpb24gb2YgdGhlIHByaXZhdGUgZGF0YSBpbiB0aGUKCSAgaW5zdGFuY2Ugc3RydWN0dXJlLgoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKQoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbik6IEltcGxlbWVudCBuZXcgcHVibGljCgkgIGZ1bmN0aW9ucy4KCSAgKGdzdF9idXNfcG9zdCk6IEVtaXQgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgaWYgdGhlIHVzZXIgYXNrZWQgZm9yCgkgIGl0LiBGaXhlcyAjMzMwNjg0LgoJICAqIGdzdC9nc3RidXMuaCAoR3N0QnVzKTogVXNlIGEgcGFkZGluZyBwb2ludGVyIHRvIGNhY2hlIHRoZQoJICBsb2NhdGlvbiBvZiB0aGUgYnVzLXByaXZhdGUgc3RydWN0dXVyZS4KCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbikKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pOiBOZXcgcHVibGljIGZ1bmN0aW9ucy4KCjIwMDYtMDItMDkgMjM6NDA6NDMgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBQV0cgcGF0Y2ggZnJvbSAjMzI2ODAwIChQYXRjaCBieSBWaW5jZW50IFRvcnJpKQoKMjAwNi0wMi0wOSAxODozMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGFuZCBhZGQgbWlzc2luZyBuZXcgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgYW5kIGFkZCBtaXNzaW5nIG5ldyBmaWxlCgoyMDA2LTAyLTA5IDE4OjI4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgRGlzdCBkZXNpZ24gZG9jcy4KCjIwMDYtMDItMDggMTc6MzQ6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgoyMDA2LTAyLTA4IDE3OjMxOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgkgIDIwMDYtMDItMDggIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgoyMDA2LTAyLTA4IDExOjEyOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMm5kIHByZXJlbGVhc2Ugb2YgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA4ICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAybmQgcHJlcmVsZWFzZSBvZiAwLjEwLjMKCSAgQnVtcCBsaWJ0b29sIHZlcnNpb25pbmcuCgoyMDA2LTAyLTA3IDE1OjQ5OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBPbmx5IHVwZGF0ZSBsYXN0X3N0b3AgaWYgd2UncmUgaW4gVElNRSBmb3JtYXQgYW5kIHRoZSB0aW1lc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogT25seQoJICB1cGRhdGUgbGFzdF9zdG9wIGlmIHdlJ3JlIGluIFRJTUUgZm9ybWF0IGFuZCB0aGUgdGltZXN0YW1wIGlzCgkgIHZhbGlkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KToKCSAgSWYgd2UgZ2V0IGEgbmV3IG5ld3NlZ21lbnQgd2l0aCBhIGRpZmZlcmVudCBmb3JtYXQsIGFkYXB0CgkgIGFjY29yZGluZ2x5LgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKTogQWNjZXB0IGEgbnVtZXJhdG9yCgkgIG9mIDAuIE5vdCBhIHByb2JsZW0sIHJlYWxseS4KCjIwMDYtMDItMDcgMTM6MjA6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkgd2FybiBpZiBzeW5jPXRydWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkKCSAgd2FybiBpZiBzeW5jPXRydWUuCgoyMDA2LTAyLTA3IDEwOjUxOjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNi0wMi0wNiAyMjowMToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFByZWxlYXNlIG9mIDAuMTAuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFByZWxlYXNlIG9mIDAuMTAuMwoKMjAwNi0wMi0wNiAyMTo1MzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDItMDYgMjE6Mjk6MDQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNzoKCSAgcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGRlZCBuZXcgc3ltYm9scywKCSAgcmVtb3ZlZCBlbXB0eSBsaW5lcywKCSAgc29ydGVkIGFsbCBleHBvcnRlZCBzeW1ib2xzIGFscGhhYmV0aWNhbGx5CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vZ2NoYXIuaDoKCSAgdXNlIHdpbmRvd3MgbGluZSBlbmQuCgoyMDA2LTAyLTA2IDE1OjI1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvYyBzdWI4MCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHN1YjgwIGZpeGVzCgoyMDA2LTAyLTA2IDE0OjU3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgoyMDA2LTAyLTA2IDEwOjQyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9SRUFETUU6IFRlbGwgZm9sa3Mgd2hhdCB0byBkbyBpZiB0aGUgcGx1Z2luLWZvb2Jhci54bWwgZmlsZSBoYXNuJ3QgYmVlbiBnZW5lcmF0ZWQgZm9yIGEgbmV3bHktYWRkZWQgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgVGVsbCBmb2xrcyB3aGF0IHRvIGRvIGlmIHRoZSBwbHVnaW4tZm9vYmFyLnhtbCBmaWxlCgkgIGhhc24ndCBiZWVuIGdlbmVyYXRlZCBmb3IgYSBuZXdseS1hZGRlZCBwbHVnaW4uCgoyMDA2LTAyLTA1IDE4OjEzOjI4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KTogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlCgkgIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IHRvIGxvb2sKCSAgYXQgcGFkcyB0aGF0IG1pZ2h0IGp1c3QgZ28gYXdheSB3aXRoIG5vIHdhcm5pbmcuLi4KCjIwMDYtMDItMDUgMTY6MTg6MzcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgZmx1c2guIEFkYXB0ZWQgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIGZsdXNoLiBBZGFwdGVkIGZyb20KCSAgTWFyayBOYXV3ZWxhZXJ0cydzIHBhdGNoIG9uIGJ1ZyAjMzI4NDkxLgoKMjAwNi0wMi0wNCAxMjo0OTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZCBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHRlc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQKCSAgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCjIwMDYtMDItMDQgMTE6NTY6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgoyMDA2LTAyLTAzIDIxOjE0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBUWVBFX05PVF9GT1VORCBlcnJvciBtZXNzYWdlIHdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBhY3RpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBQb3N0IFRZUEVfTk9UX0ZPVU5EIGVycm9yIG1lc3NhZ2Ugd2hlbiB0eXBlZmluZGluZwoJICBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIGFzIHdlbGwuCgoyMDA2LTAyLTAyIDE2OjE1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBVcGRhdGVkIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvYy4KCjIwMDYtMDItMDIgMTY6MTI6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkga2VlcCB0cmFjayBvZiBwcmVyb2xsYWJsZSBpdGVtcyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKToKCSAgT25seSBrZWVwIHRyYWNrIG9mIHByZXJvbGxhYmxlIGl0ZW1zIHdoZW4gd2UgYXJlCgkgIHByZXJvbGxpbmcuCgkgIEJlZm9yZSByZW5kZXJpbmcgYWZ0ZXIgcHJlcm9sbCwgYWx3YXlzIGNoZWNrIGlmIHdlCgkgIGhhdmUgcXVldWVkIGl0ZW1zLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWdnaW5nLgoKMjAwNi0wMi0wMiAxMzo1ODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEZpeGVkICMzMjY1NzYsIGJlZW4gcnVubmluZyB0aGlzIGZvciBxdWl0ZSBzb21lIHRpbWUgd2l0aCBubyByZWdyZXNzaW9ucyBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBGaXhlZCAjMzI2NTc2LCBiZWVuIHJ1bm5pbmcgdGhpcyBmb3IgcXVpdGUgc29tZSB0aW1lIHdpdGgKCSAgbm8gcmVncmVzc2lvbnMgYXQgYWxsLgoKMjAwNi0wMi0wMiAxMzo0NDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9nc3Quc3VwcDogQWRkZWQgbW9yZSBzdXBwcmVzc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBBZGRlZCBtb3JlIHN1cHByZXNzaW9ucwoKMjAwNi0wMi0wMiAxMjowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogVXBkYXRlZCBkb2N1bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvY3VtZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFRvdGFsbHkgcmVmYWN0b3JlZCBtYXRjaGluZyB0aGUgZGVzaWduIGRvYy4KCSAgVXNlIHR3byBzZWdtZW50cywgb25lIHRvIGNsaXAgaW5jb21taW5nIGJ1ZmZlcnMgYW5kIGFub3RoZXIgdG8KCSAgcGVyZm9ybSBzeW5jLgoJICBIYW5kbGUgcXVldWVpbmcgY29ycmVjdGx5LCBieXBhc3MgdGhlIHF1ZXVlIHdoZW4gcGxheWluZy4KCSAgTWFrZSBFT1MgY2FuY2VsYWJsZS4KCSAgSGFuZGxlIGVycm9ycyBjb3JyZWN0bHkgd2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBiYXNlZCBtb2RlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEFkZGVkIG5ldyBjaGVjayBmb3Igc2lua3MuCgoyMDA2LTAyLTAyIDExOjU5OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogTm8gcmVhc29uIHRvIHJlZnVzZSB0byBjbGlwIHdoZW4gc3RhcnQgPT0gLTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NsaXApOgoJICBObyByZWFzb24gdG8gcmVmdXNlIHRvIGNsaXAgd2hlbiBzdGFydCA9PSAtMQoKMjAwNi0wMi0wMiAxMToyNDoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGRlc2NyaWJlIGRwYXJhbXMgKGNvbnRyb2xsZXIpIGZvciBwbHVnaW5zIHVuaWZ5IGRvY3MgYSBsaXR0bGUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkZXNjcmliZSBkcGFyYW1zIChjb250cm9sbGVyKSBmb3IgcGx1Z2lucwoJICB1bmlmeSBkb2NzIGEgbGl0dGxlIG1vcmUKCjIwMDYtMDItMDIgMDk6NTE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLCAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZAoJICBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoKMjAwNi0wMi0wMSAyMjo0MzoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvUkVBRE1FOiB1bmNvdmVyIGEgbmFzdHkgZGV0YWlsIG9mIHRoZSBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL1JFQURNRToKCSAgdW5jb3ZlciBhIG5hc3R5IGRldGFpbCBvZiB0aGUgZG9jcyBidWlsZAoKMjAwNi0wMi0wMSAwODoyNzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgdXBkYXRlcyBmb3IgcGx1Z2luIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIHBsdWdpbiBkb2NzCgoyMDA2LTAxLTMxIDE4OjQ2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBjYWNoZSBkdXJhdGlvbiBtZXNzYWdlcyBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIG9yIGZyZWUgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSk6CgkgIERvbid0IGNhY2hlIGR1cmF0aW9uIG1lc3NhZ2VzIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB1c2Ugb3IKCSAgZnJlZSB0aGVtLgoKMjAwNi0wMS0zMSAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IG1vcmUgZHBhcmFtIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1vcmUgZHBhcmFtIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzoKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOiAoZ3N0X2NvbnRyb2xsZXJfaW5pdCk6CgkgIGluaXQganVzdCBvbmNlCgoyMDA2LTAxLTMxIDEwOjE2OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGFsc28gc2hvdyBmaWxlL2xpbmUvZnVuYyBpZiBubyBhZGRpdGlvbmFsIGRlYnVnIHdhcyBnaXZlbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKToKCSAgYWxzbyBzaG93IGZpbGUvbGluZS9mdW5jIGlmIG5vIGFkZGl0aW9uYWwgZGVidWcgd2FzIGdpdmVuCgoyMDA2LTAxLTMwIDIzOjUyOjUyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6IGFjdGl2YXRlIGNvcHkgb2YgYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajoKCSAgYWN0aXZhdGUgY29weSBvZiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMzAgMjI6Mjk6MDMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBleHBvcnQgZ3N0X3ZhbHVlX2NvbXBhcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfdmFsdWVfY29tcGFyZQoKMjAwNi0wMS0zMCAyMTo1NzowMCArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPGJvbmZpcmUtYXBwQHdhbmFkb28uZnI+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKF9kb19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksIChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2luaXQpLCAoZ3N0X2ZkX3NpbmtfZGlzcG9zZSksIChnc3RfZmRfc2lua19xdWVyeSksCgkgIChnc3RfZmRfc2lua19yZW5kZXIpLCAoZ3N0X2ZkX3NpbmtfY2hlY2tfZmQpLCAoZ3N0X2ZkX3Npbmtfc3RhcnQpLAoJICAoZ3N0X2ZkX3Npbmtfc3RvcCksIChnc3RfZmRfc2lua191bmxvY2spLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfZmRfc2lua191cmlfZ2V0X3R5cGUpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX2dldF9wcm90b2NvbHMpLCAoZ3N0X2ZkX3NpbmtfdXJpX2dldF91cmkpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX3NldF91cmkpLCAoZ3N0X2ZkX3NpbmtfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgUG9ydCBmZHNpbmsgdG8gMC4xMCAocGF0Y2ggYnkgUGhpbGlwcGUgUm91cXVpZXIpIChGaXhlcyAjMzI1NDkwKQoKMjAwNi0wMS0zMCAyMToxMTozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGl0bGVwYWdlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIGNsZWFudXAgeG1sIChtb3JlIHRvIGNvbWUpCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCB0eXBvCgoyMDA2LTAxLTMwIDIwOjM2OjUxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czYvZ3JhbW1hci5kc3A6IGFkZCBhdXRvZ2VuIG9mIGdzdG1hcnNoYWwuYyxoIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBhZGQgYXV0b2dlbiBvZiBnc3RtYXJzaGFsLmMsaCBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTMwIDE2OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19wcmVyb2xsZWQpLCAoZ3N0X2Jhc2Vfc2lua193YWl0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHN1YmNsYXNzIGNhbiBwcmVyb2xsIGluIHRoZSByZW5kZXIKCSAgbWV0aG9kIChtb3N0bHkgYXVkaW9zaW5rcykuCgkgIEhhbmRsZSBtb3JlIGV2ZW50cy4KCSAgUmVtb3ZlIHNvbWUgbG9ja3MgYXJvdW5kIHZhcmlhYmxlcyB0aGF0IGFyZSBub3cgcHJvdGVjdGVkCgkgIHdpdGggdGhlIFBSRVJPTExfTE9DSyAoY2xvY2tfaWQsIGZsdXNoaW5nLCAuLikuCgkgIE9wdGltaXplIHBvc2l0aW9uIHF1ZXJ5IHNvbWUgbW9yZSwgZG8gY29ycmVjdCBsb2NraW5nLgoJICBSZW1vdmUgb2xkIGNvZGUgdG8gcHVzaCBxdWV1ZSBpbiBzdGF0ZSBjaGFuZ2UsIHRoaXMgaXMgbm90CgkgIG5lZWRlZCBhbnltb3JlIHNpbmNlIHByZXJvbGwgYmxvY2tzIG9uIGFsbCBwcmVyb2xsYWJsZSBpdGVtcwoJICBub3cuCgkgIEFsbW9zdCBpbXBsZW1lbnRlZCBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvYy4KCjIwMDYtMDEtMzAgMTU6NTc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IFdhaXQgZm9yIHJlZmNvdW50IHRvIHNldHRsZSBkb3duIGJlZm9yZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBXYWl0IGZvciByZWZjb3VudCB0byBzZXR0bGUgZG93biBiZWZvcmUgY2hlY2tpbmcuCgoyMDA2LTAxLTMwIDE1OjE1OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBQc2V1ZG8gY29kZSBvdmVydmlldyBvZiBkZXNpcmVkIHNpbmsgYmVoYXZpb3VyIHJlZ2FyZGluZyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFBzZXVkbyBjb2RlIG92ZXJ2aWV3IG9mIGRlc2lyZWQgc2luayBiZWhhdmlvdXIgcmVnYXJkaW5nCgkgIHByZXJvbGwuCgoyMDA2LTAxLTMwIDE0OjI4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoKMjAwNi0wMS0yOSAyMTo1NjowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2L2dyYW1tYXIuZHNwOiBmaXggc29tZSBidWdzIGluIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIGZpeCBzb21lIGJ1Z3MgaW4gYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTI5IDE5OjI0OjE4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsCgkgIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCjIwMDYtMDEtMjkgMTc6Mzc6MDggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCk6CgkgIFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCjIwMDYtMDEtMjkgMTY6NTQ6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzODogYWRkIHZzOCBwcm9qZWN0IGZpbGVzIGNyZWF0ZWQgYnkgU2VyZ2V5IFNjb2JpY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM4OgoJICBhZGQgdnM4IHByb2plY3QgZmlsZXMgY3JlYXRlZCBieSBTZXJnZXkgU2NvYmljaAoKMjAwNi0wMS0yOCAwMDo1OTozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9uJ3QgbGVhayBwYWQgcmVmZXJlbmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmtfcGFkcyk6CgkgIERvbid0IGxlYWsgcGFkIHJlZmVyZW5jZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYSBidW5jaCBvZiBsZWFrcy4gTWFrZSBnZW5lcmljL3NpbmtzLmMKCSAgdXNlIGEgYml0IGxlc3MgY3B1IGJ5IHNsb3dpbmcgdGhlIGJ1ZmZlciByYXRlCgkgIGJldHdlZW4gZmFrZXNyYyBhbmQgZmFrZXNpbmsuCgoyMDA2LTAxLTI3IDIyOjM0OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QgcHJlZml4IHdpdGggJyMnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QKCSAgcHJlZml4IHdpdGggJyMnCgoyMDA2LTAxLTI3IDE2OjU5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwKCSAgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjCgkgIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIHJldHVybgoJICBXUk9OR19TVEFURSB3aGVuIGFsbCBzcmMgcGFkcyBhcmUgV1JPTkdfU1RBVEUKCSAgaW5zdGVhZCBvZiBOT1RfTElOS0VELgoJICBMb2NrIHdoZW4gcmVwbGFjaW5nIHRoZSBsYXN0IG1lc3NhZ2UgdG8gcHJldmVudAoJICByYWNpbmcgd2l0aCB0aGUgZ2V0X3Byb3BlcnR5IG1ldGhvZC4KCSAgQWRkIGRlYnVnIG91dHB1dAoKMjAwNi0wMS0yNyAxMTo1MzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBhIHZlcnkgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoZSBtZW1sZWFrIEkgZml4ZWQgbGFzdCBuaWdodCAoaWYgbm90IGZvciB0aGUgc2xpY2UgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RxdWVyeV9zdWl0ZSksCgkgIChtYWluKToKCSAgQWRkIGEgdmVyeSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgaGF2ZSBjYXVnaHQgdGhlIG1lbWxlYWsgSSBmaXhlZAoJICBsYXN0IG5pZ2h0IChpZiBub3QgZm9yIHRoZSBzbGljZSBhbGxvY2F0b3IgaGlkaW5nIGl0KQoKMjAwNi0wMS0yNyAwMTo0ODozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbiBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCk6CgkgIENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbgoJICBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBVbnJlZiBzaW5rcyB3aGVuIHBlcmZvcm1pbmcgYSBxdWVyeSB2aWEgZ3N0X2l0ZXJhdG9yX2ZvbGQsIGFzIHRoZQoJICBnc3RfYmluX2l0ZXJhdGVfc2lua3MgaXRlcmF0b3IgcmVmcyBlYWNoIGl0ZW0uIChGaXhlcyAjMzIzODc0KQoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZ3N0X2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOgoJICBEcm9wIG91ciByZWZlcmVuY2UgdG8gdGhlIG1hc3RlciBjbG9jaywgaWYgYW55LCB3aGVuIHdlIGFyZSBkaXNwb3NlZC4KCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSk6CgkgIENoYWluIHVwIGluIGRpc3Bvc2UuCgoyMDA2LTAxLTI3IDAxOjEzOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2kxOG46CgkgIGFkZCBub3RlcyBvbiBpMThuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZXMgb24gaTE4bgoKMjAwNi0wMS0yNiAxMjo1OTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCjIwMDYtMDEtMjYgMTI6NDA6MTcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQXBwbHkgcGF0Y2ggZnJvbSAjMzI4NzE1LiBUZWUgbm93IGhhbmRsZXMgcGFkIGJlaW5nIE5PVF9MSU5LRUQgb3IgaW4gV1JPTkdfU1RBVEUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksCgkgIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOiBBcHBseSBwYXRjaCBmcm9tICMzMjg3MTUuIFRlZSBub3cKCSAgaGFuZGxlcyBwYWQgYmVpbmcgTk9UX0xJTktFRCBvciBpbiBXUk9OR19TVEFURS4KCjIwMDYtMDEtMjYgMDg6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBtb3JlIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBtb3JlIHVwZGF0aW5nCgoyMDA2LTAxLTI2IDA4OjM5OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogcmVtb3ZlIG9ic29sZXRlIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICByZW1vdmUgb2Jzb2xldGUgZW50cnkKCjIwMDYtMDEtMjYgMDY6NTc6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGNvZGUgZm9yIGRvd25zdHJlYW0gZXZlbnRzLCByZXZpZXdlZCBkb2NzIGluIGdzdGV2ZW50LmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zcmMpLCAoc3JjX2l0ZXJhdG9yX2ZpbHRlciksCgkgIChnc3RfYmluX2l0ZXJhdGVfc291cmNlcyksIChnc3RfYmluX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgYWRkZWQgY29kZSBmb3IgZG93bnN0cmVhbSBldmVudHMsIHJldmlld2VkIGRvY3MgaW4gZ3N0ZXZlbnQuYwoKMjAwNi0wMS0yNSAxODowNzowMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIG9ubHkgcXVlcnkgcG9zaXRpb24gdXNpbmcgdGhlIGNsb2NrIGluIHRoZSBwbGF5aW5nIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgV2Ugb25seSBxdWVyeSBwb3NpdGlvbiB1c2luZyB0aGUgY2xvY2sgaW4gdGhlIHBsYXlpbmcgc3RhdGUuCgkgIFF1ZXJ5IHBlZXIgaW4gdGhlIG90aGVyIGNhc2VzLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogVXBkYXRlcy4KCjIwMDYtMDEtMjQgMTY6MjM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlCgkgIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDYtMDEtMjMgMTI6Mzc6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogQWRkIG5ldyB2czcgcHJvamVjdCBmaWxlcyBhbmQgc29sdXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNyA6CgkgIEFkZCBuZXcgdnM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoKMjAwNi0wMS0yMyAxMjoyMzowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBhbGwgZmlsZXMgcmVtb3ZlZCBhcyB0aGV5IHdlcmUgb3V0LWRhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czc6CgkgIGFsbCBmaWxlcyByZW1vdmVkIGFzIHRoZXkgd2VyZSBvdXQtZGF0ZWQuCgoyMDA2LTAxLTIwIDE5OjAxOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IHVwZGF0ZSBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGUgbm90ZXMKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfbmV3KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIHVzZSBnc3RfYnVzX25ldygpLCBpbXByb3ZlIGxvZ2dpbmcsIGZpeCBkb2NzCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIGN2cyBidWlsZAoKMjAwNi0wMS0yMCAxODo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhdXRvZ2VuLnNoOiB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoKMjAwNi0wMS0yMCAxMjo1Mzo0MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IGV4cG9ydCBnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZQoKMjAwNi0wMS0yMCAxMTo0NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBnc3RfZXZlbnRfcmVwbGFjZSgpICgjMzI3MDAxKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgZ3N0X2V2ZW50X3JlcGxhY2UoKSAoIzMyNzAwMSkKCjIwMDYtMDEtMjAgMDk6NTY6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoKMjAwNi0wMS0yMCAwOTo1MzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIENsZWFudXBzLiBEb24ndCB1bnJlZiBOVUxMIGNhcHMuCgkgIFdoZW4gc2V0dGluZyB0aGUgc2FtZSBjYXBzLCBwcm90ZWN0IGNhcHMgb2YgdGhlIHBhZCB3aXRoCgkgIHByb3BlciBsb2NrLgoJICBVc2UgZnVsbCBmdW5jdGlvbmFsaXR5IG9mIF9pc19lcXVhbCgpIHdoZW4gY29tcGFyaW5nIGNhcHMuCgoyMDA2LTAxLTIwIDA5OjI2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IGlmIHRoZXJlIGFyZSBubyBidWZmZXJzIHRvIHByZXNlbnQuIFBhcnRpYWxseSBmaXhlcyAjMzI3MTk3LCBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCk6CgkgIERvbid0IGxvb3AgaW5maW5pdGVseSBpZiB0aGVyZSBhcmUgbm8gYnVmZmVycyB0byBwcmVzZW50LiBQYXJ0aWFsbHkKCSAgZml4ZXMgIzMyNzE5NywgYnV0IGNvbGxlY3RwYWRzIGlzIGp1c3QgYnJva2VuIGZvciByZXVzaW5nIGVsZW1lbnRzCgkgIHRvIGRvIG11bHRpcGxlIGVuY29kZXMgYXRtLgoKMjAwNi0wMS0yMCAwOToxMjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy86IFVSTF9IQU5ETEVSIGlzIG5vdCBhIHBsdWdpbiBmZWF0dXJlIHdlIGNhbiBzZWFyY2ggZm9yIGluIHRoZSByZWdpc3RyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfZmVhdHVyZXMpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVVJMX0hBTkRMRVIgaXMgbm90IGEgcGx1Z2luIGZlYXR1cmUgd2UgY2FuIHNlYXJjaCBmb3IgaW4KCSAgdGhlIHJlZ2lzdHJ5LgoKMjAwNi0wMS0xOSAxODowNjoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBXaGVuIGRlLWFjdGl2YXRpbmcsIGRvIHNpbmsgcGFkcyBmaXJzdCwgdGhlbiBzcmMgcGFkcy4KCjIwMDYtMDEtMTkgMTQ6MDI6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252IHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udiB0byB0aGUgZG9jcwoKMjAwNi0wMS0xOSAxMzozMDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRml4IGRvY3MgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRml4IGRvY3MgdHlwbwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgRG8gc29tZSByZWZhY3RvcmluZy4gRG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgZnVuY3Rpb25hbGl0eSwKCSAgYnV0IG1ha2VzIGxhbmRpbmcgdGhlIERSQUlOIGV2ZW50IGVhc2llciBsYXRlci4KCjIwMDYtMDEtMTkgMTA6Mzk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDogVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdCBjbGVhcmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdAoJICBjbGVhcmVyLgoKMjAwNi0wMS0xOSAwOToyNDowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIG1ldGhvZHMuCgoyMDA2LTAxLTE5IDA5OjA4OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6IFVwZGF0ZSBzcGFyc2Ugc3RyZWFtcyBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgVXBkYXRlIHNwYXJzZSBzdHJlYW1zIGRvYwoKMjAwNi0wMS0xOSAwOTowMjoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgQWRkIERSQUlOIGV2ZW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFdyaXRlIHNvbWUgdGhpbmdzIGFib3V0IHVzaW5nIE5FV1NFR01FTlQgdG8ga2VlcCBzcGFyc2Ugc3RyZWFtcwoJICBmbG93aW5nLgoKMjAwNi0wMS0xOCAxODo1Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogR3VhcmQgZ3N0X29iamVjdF91bnJlZiBjYWxsIGFnYWluc3QgYSBOVUxMIG9iamVjdCAoZGlzcG9zZSBjYW4gdGhlb3JldGljYWxseSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpOgoJICBHdWFyZCBnc3Rfb2JqZWN0X3VucmVmIGNhbGwgYWdhaW5zdCBhIE5VTEwgb2JqZWN0IChkaXNwb3NlCgkgIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcykuCgoyMDA2LTAxLTE4IDE4OjA1OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBBZGQgRFJBSU4gZXZlbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgV3JpdGUgc29tZSB0aGluZ3MgYWJvdXQgdXNpbmcgTkVXU0VHTUVOVCB0byBrZWVwIHNwYXJzZSBzdHJlYW1zCgkgIGZsb3dpbmcuCgoyMDA2LTAxLTE4IDE4OjAxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgQWRkZWQgbW9yZSBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgoyMDA2LTAxLTE4IDE3OjU5OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgSWdub3JlIGZha2VzaW5rIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJZ25vcmUgZmFrZXNpbmsgdGVzdC4KCjIwMDYtMDEtMTggMTc6NTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGZha2VzaW5rIHRlc3QgdGhhdCBjaGVja3MgcHJlcm9sbGluZyBhbmQgY2xpcHBpbmcgYmVoYXZpb3VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoY2hhaW5fYXN5bmNfYnVmZmVyKSwKCSAgKGNoYWluX2FzeW5jKSwgKGNoYWluX2FzeW5jX3JldHVybiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgZmFrZXNpbmsgdGVzdCB0aGF0IGNoZWNrcyBwcmVyb2xsaW5nIGFuZCBjbGlwcGluZwoJICBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgY2hlY2sgcnVuIGZhc3RlciBzbyB0aGF0IGJ1aWxkYm90cyBkb24ndCB0aW1lb3V0LgoKMjAwNi0wMS0xOCAxNzoxODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIFdoZW4gdGhlIHNpbmsgZmluaXNoZXMgYmxvY2tpbmcgb24gdGhlIHByZXJvbGwgYnVmZmVyLCBpdCBjYW4KCSAgaW1tZWRpYXRseSByZW5kZXIgaXQgaW5zdGVhZCBvZiByZW5kZXJpbmcgd2hlbiB0aGUgbmV4dCBidWZmZXIKCSAgYXJyaXZlcy4KCjIwMDYtMDEtMTggMTY6NDA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBHU1RfRUxFTUVOVF9DTE9DSyBhbmQgc3luYyBhcmUgcHJvdGVjdGVkIHdpdGggTE9DSy4KCSAgRG9uJ3Qgc3RvcmUgX2xhc3Rfc3RvcCBpZiB0aGUgYnVmZmVyIGlzIGRyb3BwZWQuCgoyMDA2LTAxLTE4IDE2OjMxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogJ2hhdmUtdHlwZScgc2lnbmFsIG5lZWRzIHRvIGJlIEdfU0lHTkFMX1JVTl9GSVJTVCwgYXMgaXQgaXMgdGhlIG9iamVjdCBtZXRob2QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICdoYXZlLXR5cGUnIHNpZ25hbCBuZWVkcyB0byBiZSBHX1NJR05BTF9SVU5fRklSU1QsIGFzIGl0IGlzIHRoZQoJICBvYmplY3QgbWV0aG9kIGhhbmRsZXIgdGhhdCBzZXRzIHRoZSBjYXBzIG9uIHRoZSBwYWQgYW5kIHdlIHdhbnQKCSAgdGhhdCB0byBoYXBwZW4gYmVmb3JlIHdlIGVtaXQgdGhlIHNpZ25hbCAoZml4ZXMgZS5nLiBmZWVkaW5nIGEKCSAgcGxhaW4gdGV4dCBmaWxlIHRvIGRlY29kZWJpbikuCgoyMDA2LTAxLTE4IDExOjQ0OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgYWRkIE1QTCBhbmQgUHJvcGVyaWV0YXJ0IHRvIGxpc3Qgb2YgbGljZW5zZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNUEwgYW5kIFByb3BlcmlldGFydCB0byBsaXN0IG9mIGxpY2Vuc2VzCgoyMDA2LTAxLTE4IDA5OjQyOjEyICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RpbmRleC5oIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IEFkZCB0byBoZWFkZXIuIFRoZSBzeW1ib2wgd2FzIGV4cG9ydGVkIGJlZm9yZSwgaXQgYXBwZWFycyB0aGlzIHdhcyBqdXN0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBBZGQgdG8gaGVhZGVyLiBUaGUKCSAgc3ltYm9sIHdhcyBleHBvcnRlZCBiZWZvcmUsIGl0IGFwcGVhcnMgdGhpcyB3YXMganVzdCBhbiBvdmVyc2lnaHQuCgkgIEZpeGVzICMxNjg3MDMuCgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteC5kZT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBDaGFuZ2VkIGludCBpbgoJICBwcm90b3R5cGUgdG8gZ2ludC4gT0sgc2luY2UgdGhpcyBwcm90b3R5cGUgd2FzIG5vdCBpbiB0aGUgaGVhZGVyLgoKMjAwNi0wMS0xNyAxNjozOToyMyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoKMjAwNi0wMS0xNyAxMjo1MzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZSByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZQoJICByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9lbGVtZW50X2luZm8pOiBEb24ndCB1bnJlZiB0aGUKCSAgZmFjdG9yeSBhcmcsIHRoYXQgc2hvdWxkIGJlIHRoZSByZXNwb25zaWJpbGl0eSBvZiB3aGF0ZXZlciBjb2RlCgkgIHJlY2VpdmVkIHRoZSByZWYuIEZpeGVzIGEgZG91YmxlLWZyZWUgd2hlbiBjYWxsZWQgZnJvbQoJICBwcmludF9lbGVtZW50X2xpc3QgdmlhIGdzdC1pbnNwZWN0LTAuMTAgLWEuIEZpeGVzICMzMjczMjQuCgkgIChtYWluKTogVW5yZWYgdGhlIGZhY3RvcnkgaWYgd2UgaGF2ZSBvbmUuCgkgIChwcmludF9lbGVtZW50X2xpc3QpOiBObyBjaGFuZ2UgLS0gcmVsaWVzIG9uIHRoZQoJICBwbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUgdG8gZnJlZSB0aGUgbGlzdCBvZiBmZWF0dXJlcy4KCjIwMDYtMDEtMTcgMTI6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVwbGFjZSBnc3RfYnVmZmVyXyhtYWtlfGlzKV9tZXRhZGF0YV93cml0YWJsZSBwYXRjaCBub3cgdGhhdCB0aGUgcmVsZWFzZSBpcyBvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFJlcGxhY2UgZ3N0X2J1ZmZlcl8obWFrZXxpcylfbWV0YWRhdGFfd3JpdGFibGUgcGF0Y2ggbm93CgkgIHRoYXQgdGhlIHJlbGVhc2UgaXMgb3V0LgoKMjAwNi0wMS0xNyAxMjowODo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZmxvdyBkZXNpZ24gY29tbWVudC4gVXBkYXRlIHNvIGFzIHRvIHNwZWFrIGluIHRoZSBwcmVzZW50IHRlbnNlIHdpdGhvdXQgcmVmZXJlbmNlIHRvIHZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogUmVmbG93IGRlc2lnbiBjb21tZW50LiBVcGRhdGUgc28gYXMgdG8gc3BlYWsKCSAgaW4gdGhlIHByZXNlbnQgdGVuc2Ugd2l0aG91dCByZWZlcmVuY2UgdG8gdmVyc2lvbnMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKQoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4sIGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSkKCSAgKGdzdF9yZWdpc3RyeV9maW5kX2ZlYXR1cmUsIGdzdF9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0KQoJICAoZ3N0X3JlZ2lzdHJ5X2dldF9wbHVnaW5fbGlzdCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlKQoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCkKCSAgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpCgkgIChnc3RfcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9ieV9wbHVnaW4pOiBBZGQgYXJndW1lbnQKCSAgdmFsaWRhdGlvbi4KCjIwMDYtMDEtMTYgMjE6MDA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4yID09PQoKMjAwNi0wMS0xNiAyMDo1OTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjIKCjIwMDYtMDEtMTYgMTU6NDI6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQmFjayBvdXQgcGF0Y2ggdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChnc3RfdGVzdF9zdWl0ZSk6CgkgIEJhY2sgb3V0IHBhdGNoIHVudGlsIGFmdGVyIHRoZSByZWxlYXNlLgoKMjAwNi0wMS0xNiAxNDozNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXggaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgU3BlbGxpbmcgZml4IGluIGRvY3MuCgkgICogQ2hhbmdlTG9nIC0gcmVtb3ZlIGNvbmZsaWN0IGluZGljYXRvcgoKMjAwNi0wMS0xNiAxNDozNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAoTWlzc2VkIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIGluIHByZXZpb3VzIGNvbW1pdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChNaXNzZWQgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgaW4gcHJldmlvdXMgY29tbWl0KQoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNiAxNDozMjozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNCAyMjo1OTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTAxLTE0IDE0OjEyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkIHVubGluayBhbmQgc29tZSBhc3NlcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5saW5rIGFuZCBzb21lIGFzc2VydHMKCjIwMDYtMDEtMTQgMTE6MjA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06IGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFDX1NVQlNUIEhPU1RfQ1BVCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgZ2VuZXJhdGlvbnMgZm9yIEhPU1RfQ1BVIGFuZCBHU1RfTUFKT1JNSU5PUgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogICAgICAgICAgIGNvbW1pdCBnZW5lcmF0ZWQgcmVzdWx0CgoyMDA2LTAxLTEzIDE5OjUxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCjIwMDYtMDEtMTMgMTk6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IFVwZGF0ZSBHTk9NRSBpbnRlZ3JhdGlvbiBzZWN0aW9uIHRvIHVzZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgaW5zdGVhZCBvZiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBVcGRhdGUgR05PTUUgaW50ZWdyYXRpb24gc2VjdGlvbiB0byB1c2UgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpCgkgIGluc3RlYWQgb2YgdGhlIG9sZCBwb3B0IHN0dWZmICgjMzIyOTExKS4gQWxzbywgR05PTUUgYXBwbGljYXRpb25zCgkgIHNob3VsZCAgbm93IHVzZSBnY29uZipzaW5rIGFuZCBnY29uZipzcmMgaW5zdGVhZCBvZiB0aGUgb2xkIGdjb25mCgkgIGhlbHBlciBsaWIgd2UgaGFkLgoKMjAwNi0wMS0xMyAxNjoxNjoyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92aW5nIDAxMCBzdWZmaXhpbmcgb2YgcGFja2FnZSBuYW1lIGFzIEZlZG9yYSBvbmx5IHVzZSBpdCBmb3IgMC44LCB3YW50IHRvIGhhdmUgdGhlIHBhY2thZ2VzIGJlIGludGVyY2hhbmdlYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgMDEwIHN1ZmZpeGluZyBvZiBwYWNrYWdlIG5hbWUgYXMgRmVkb3JhIG9ubHkgdXNlIGl0IGZvciAwLjgsIHdhbnQKCSAgdG8gaGF2ZSB0aGUgcGFja2FnZXMgYmUgaW50ZXJjaGFuZ2VhYmxlCgoyMDA2LTAxLTEzIDE0OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vTElOR1VBUzoKCSAgcmVhZGQgemhfVFcgYW5kIGZvcmNlIGFuIGF1dG9nZW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlYWRkIHpoX1RXIGFuZCBmb3JjZSBhbiBhdXRvZ2VuCgoyMDA2LTAxLTEzIDE0OjIxOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIG1vdmUgcHJpdmF0ZSBzdHJ1Y3RzIHRvIHByaXZhdGUgaGVhZGVyCgkgICogcG8vUkVBRE1FOgoJICBnc3RyZWFtZXItMC43IC0+IGdzdHJlYW1lci0wLjEwCgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICByZW1vdmUgcHJpdmF0ZSBzdHJ1Y3RzCgoyMDA2LTAxLTEzIDE0OjE5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCjIwMDYtMDEtMTMgMTQ6MTk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgoyMDA2LTAxLTEzIDE0OjEyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06IEZpeGVzIGFzIHBhcnQgb2YgIzMxNzA0OAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBGaXhlcyBhcyBwYXJ0IG9mICMzMTcwNDgKCjIwMDYtMDEtMTMgMTM6NDE6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbTogZml4ICMzMTYwODYgLSBjb21waWxhdGlvbiB3aGVuIG1tYXAgaXMgbWlzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBmaXggIzMxNjA4NiAtIGNvbXBpbGF0aW9uIHdoZW4gbW1hcCBpcyBtaXNzaW5nCgoyMDA2LTAxLTEyIDIyOjA0OjU4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6ICpjdXIgPSAobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IHJlcGxhY2VkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKmN1ciA9IChub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgcmVwbGFjZWQgYnkKCSAgKmN1ciA9IGdzdF9ndWludDY0X3RvX2dkb3VibGUobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IGZvciB2czYKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZGVkIHNvbWUgZGVmaW5lcyBHU1RfTUFKT1JNSU5PUiBhbmQgSE9TVF9DUFUKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZGVkIHNvbWUgZXhwb3J0ZWQgZnVuY3Rpb25zCgoyMDA2LTAxLTEyIDIxOjU1OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgoyMDA2LTAxLTEyIDE2OjMxOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy86IGNsZWFudXAgbWFuLXBhZ2VzLCByZW1vdmUgcmVmZXJlbmNlIHRvIGdzdC1yZWdpc3RlciwgZG9jdW1lbnQgZW52LXZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvUkVBRE1FOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uMS5pbjoKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJICAqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgY2xlYW51cCBtYW4tcGFnZXMsIHJlbW92ZSByZWZlcmVuY2UgdG8gZ3N0LXJlZ2lzdGVyLCBkb2N1bWVudCBlbnYtdmFycwoKMjAwNi0wMS0xMiAxNjowNzo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IGdzdF9idWZmZXJfc3BhbiBzaG91bGQgY29weSB0aGUgdGltZXN0YW1wIG9mIHRoZSBmaXJzdCBidWZmZXIgaWYgdGhleSB3ZXJlIGJvdGggb3JpZ2luYWxseSBvdmVybGFwcGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgZ3N0X2J1ZmZlcl9zcGFuIHNob3VsZCBjb3B5IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IGJ1ZmZlcgoJICBpZiB0aGV5IHdlcmUgYm90aCBvcmlnaW5hbGx5IG92ZXJsYXBwaW5nIHN1YmJ1ZmZlcnMgb2YgdGhlCgkgIHNhbWUgcGFyZW50LCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyB0aGUgJ3Nsb3cgY29weScgY2FzZS4KCjIwMDYtMDEtMTEgMjE6MzI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBOZWVkIHRvIGF3YWtlbiBBTEwgdGhlIHBhZHMgd2hlbiB3ZSBwb3AgYSBidWZmZXIsIG90aGVyd2lzZSBjb2xsZWN0cGFkcyBvbmx5IHdvcmtzIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcG9wKToKCSAgTmVlZCB0byBhd2FrZW4gQUxMIHRoZSBwYWRzIHdoZW4gd2UgcG9wIGEgYnVmZmVyLCBvdGhlcndpc2UKCSAgY29sbGVjdHBhZHMgb25seSB3b3JrcyB3aGVuIHRoZXJlIGlzIDIgaW5wdXQgc3RyZWFtcy4KCjIwMDYtMDEtMTEgMTk6MTg6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6IG1vcmUgaWRlYXMgKGRidXMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIG1vcmUgaWRlYXMgKGRidXMpCgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBmaXggZG9jIGV4YW1wbGUsIGFkZCBjbGFyaWZpY2F0aW9uCgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBhZGQgaW5pdGlhbCBpbmZvIGFib3V0IEdTVF9QTFVHSU5fUEFUSCwgbmVlZHMgbW9yZSB3b3JrCgoyMDA2LTAxLTExIDEwOjM4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIG1vcmUgbWlub3IgZG9jcyBhZGRpdGlvbnMgYW5kIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIFNvbWUgbW9yZSBtaW5vciBkb2NzIGFkZGl0aW9ucyBhbmQgdXBkYXRlcy4KCjIwMDYtMDEtMTEgMTA6MjA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgc21hbGwgZml4ZXMgYXMgcG9pbnRlZCBvdXQgYnkgU2VyLXZlciBvbiBJUkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBTb21lIHNtYWxsIGZpeGVzIGFzIHBvaW50ZWQgb3V0IGJ5IFNlci12ZXIgb24gSVJDLgoKMjAwNi0wMS0xMCAxNTo0MjoyOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nIHRoZSBzaW5nbGUtc2VnbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nCgkgIHRoZSBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wMS0xMCAwOToyMzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBOYW1lIChwcml2YXRlKSB1bmlvbjsgbWFrZXMgU3VuJ3MgRm9ydGUgY29tcGlsZXIgaGFwcHkgKCMzMjQ5MDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5hbWUgKHByaXZhdGUpIHVuaW9uOyBtYWtlcyBTdW4ncyBGb3J0ZSBjb21waWxlciBoYXBweSAoIzMyNDkwMCkuCgoyMDA2LTAxLTA5IDEwOjQ3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUkVBRE1FOiBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCjIwMDYtMDEtMDcgMTE6MDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoKMjAwNi0wMS0wNyAxMTowNzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBvL0xJTkdVQVM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCjIwMDYtMDEtMDcgMTA6MDQ6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoKMjAwNi0wMS0wNyAwOTo1NjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDYtMDEtMDYgMTc6MTY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBEb24ndCBjcmFzaCB3aGVuIHJldHVybiBsb2NhdGlvbiBmb3IgZXJyb3Ivd2FybmluZyBkZWJ1ZyBzdHJpbmcgaXMgTlVMTDsgYWRkIGZhY3QgdGhhdCByZXR1cm4gbG9jYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3RhZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiByZXR1cm4gbG9jYXRpb24gZm9yIGVycm9yL3dhcm5pbmcgZGVidWcKCSAgc3RyaW5nIGlzIE5VTEw7IGFkZCBmYWN0IHRoYXQgcmV0dXJuIGxvY2F0aW9ucyBjYW4gYmUKCSAgTlVMTCB0byBkb2NzIHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNi0wMS0wNSAxMDo0MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgoyMDA2LTAxLTA0IDIzOjUzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZyBmb3IgLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb25maWcgZm9yIC4xCgoyMDA2LTAxLTA0IDIzOjUyOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogZml4IGRvYyBib3JrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZml4IGRvYyBib3JrYWdlCgoyMDA2LTAxLTA0IDIzOjUwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3poX1RXLnBvOgoJICBBZGRlZCBDaGluZXNlICh0cmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCjIwMDYtMDEtMDQgMTI6NDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB1cGRhdGVzIHRvIHZhcmlvdXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU21hbGwgdXBkYXRlcyB0byB2YXJpb3VzIGRvY3MuCgkgIEFkZGVkIGNvcmUgcGx1Z2lucyB0byBkb2NzLgoKMjAwNi0wMS0wMyAxODowODowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBhIHN1cHByZXNzaW9uIGZvciBsaWJvaWwncyB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZm9yIGxpYm9pbCdzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMDYtMDEtMDIgMjA6MjY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIHByb3RvdHlwZSBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb24gdG8gR1NUX0JPSUxFUlBMQVRFX0ZVTEwgbWFjcm8sIHNvIHRoYXQgZ2NjIGRvZXNuJ3QgY29tcGxhaW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBwcm90b3R5cGUgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRvIEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIG1hY3JvLCBzbyB0aGF0IGdjYyBkb2Vzbid0IGNvbXBsYWluIGlmIHRoZSAtV21pc3NpbmctcHJvdG90eXBlcwoJICBjb21waWxlciBzd2l0Y2ggaXMgYmVpbmcgdXNlZCAoIzMyNTQyOSkuCgoyMDA1LTEyLTI5IDE2OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzIGZpeGVkIChzZWUgIzMyNDgwNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzCgkgIGZpeGVkIChzZWUgIzMyNDgwNykuCgoyMDA1LTEyLTI3IDE4OjA0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCjIwMDUtMTItMjcgMTI6MTE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEluaXQgdGFncyBzdHVmZiBhbmQgc29tZSBvdGhlciB0aGluZ3MgYmVmb3JlIGxvYWRpbmcgYW55IHN0YXRpYyBwbHVnaW5zICh0aGVyZSBtYXkgYmUgb3RoZXIgc3RhdGljIHBsdWdpbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgSW5pdCB0YWdzIHN0dWZmIGFuZCBzb21lIG90aGVyIHRoaW5ncyBiZWZvcmUgbG9hZGluZwoJICBhbnkgc3RhdGljIHBsdWdpbnMgKHRoZXJlIG1heSBiZSBvdGhlciBzdGF0aWMgcGx1Z2lucwoJICB0aGFuIGp1c3QgdGhlIEdTdHJlYW1lciBvbmVzLCBhbmQgdGhleSBtYXkgd2FudCB0bwoJICByZWdpc3RlciB0aGVpciBvd24gdGFncyBvciBmb3JtYXRzIG9yIHdoYXRldmVyLCBhbmQKCSAgcHJlZmVyYWJseSB3aXRob3V0IHNlZ2ZhdWx0aW5nKS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFByaW50IGF0IGxlYXN0IGEgd2FybmluZyBpbiB0aGUgZGVidWcgbG9ncyBpZiB3ZSBkcm9wIGEKCSAgcXVlcnkganVzdCBiZWNhdXNlIHdlIGRvbid0IGtub3cgaG93IHRvIGFkanVzdCB0aGUgdmFsdWUKCSAgaW4gdGhlIHBhcnRpY3VsYXIgZm9ybWF0LgoKMjAwNS0xMi0yNSAwMzo0NTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogUmVwbGFjZW1lbnQgZm9yIGdzdC1jb21wbGV0ZSB3cml0dGVuIGluIHNoIGFuZCBzZWQuICBPbmx5IGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIFJlcGxhY2VtZW50IGZvciBnc3QtY29tcGxldGUgd3JpdHRlbiBpbiBzaCBhbmQgc2VkLiAgT25seQoJICBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1dCB0aGF0J3MgOTAlIG9mIHdoYXQgSSB3YW50CgkgIGl0IGZvci4gIFByb3BlcnRpZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gcmVnaXN0cnkueG1sLiAgKE1heWJlCgkgIHRoZXkgc2hvdWxkIGJlLi4uKQoKMjAwNS0xMi0yMyAxODoxNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjEgPT09CgoyMDA1LTEyLTIzIDE4OjA0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEKCjIwMDUtMTItMjMgMTQ6NTM6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTItMjMgMTM6NDU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTItMjIgMTQ6NDg6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9jdnMueG1sOiBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoKMjAwNS0xMi0yMCAxNjowMTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNpbmcKCjIwMDUtMTItMjAgMTI6NTA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OiBNb3JlIGRvY3VtZW50YXRpb24gb24gdHJpY2ttb2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uIG9uIHRyaWNrbW9kZXMuCgoyMDA1LTEyLTIwIDExOjEyOjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4KCSAgYmluZGluZ3MuCgoyMDA1LTEyLTE4IDE2OjA0OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMTItMTggMTQ6Mjg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoKMjAwNS0xMi0xNyAxNDoxOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogVXBkYXRlIGdzdC1sYXVuY2ggbWFuIHBhZ2U7IGFkZCBhIHNlY3Rpb24gd2l0aCB1c2VmdWwgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGaXhlcyAjMzIzODgyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVwZGF0ZSBnc3QtbGF1bmNoIG1hbiBwYWdlOyBhZGQgYSBzZWN0aW9uIHdpdGggdXNlZnVsCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRml4ZXMgIzMyMzg4Mi4KCjIwMDUtMTItMTYgMjE6NTk6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCjIwMDUtMTItMTYgMTk6MjQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKToKCSAgQ2xlYW51cHMuCgkgIERvbid0IHVzZSBnX29iamVjdF91bnJlZiBvbiBHc3RPYmplY3RzIHNvIHRoYXQgd2UgYXZvaWQKCSAgbGVha3Mgb24gdW5zYWZlIGdsaWJzLgoKMjAwNS0xMi0xNiAxODoyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgoyMDA1LTEyLTE2IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2NoZWNrLm1hazogQWRkZWQgbWFrZSBmb3JldmVyIHRhcmdldCBmb3IgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIEFkZGVkIG1ha2UgZm9yZXZlciB0YXJnZXQgZm9yIGNoZWNrLgoKMjAwNS0xMi0xNiAxNzozNDoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgoyMDA1LTEyLTE2IDE0OjQ0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyk6IFBheSBhdHRlbnRpb24gdG8gZ19saXN0X2FwcGVuZAoJICByZXR1cm4gdmFsdWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jCgkgICh0ZXN0X2Zha2Vfb2JqZWN0X25hbWVfdGhyZWFkZWRfdW5pcXVlKTogUGF5IGF0dGVudGlvbiB0bwoJICBnX2xpc3Rfc29ydCByZXR1cm4gdmFsdWUuCgoyMDA1LTEyLTE2IDExOjUyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubTogVXBkYXRlIGZvciAwLjkvMC4xMCAoZml4ZXMgIzMyMzg3MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkgIFVwZGF0ZSBmb3IgMC45LzAuMTAgKGZpeGVzICMzMjM4NzApLgoKMjAwNS0xMi0xNSAxMjoyMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEZpeCBsY29weSBmb3IgbWluaSBvYmplY3RzLCB0aGUgbWluaSBvYmplY3QgbmVlZHMgdG8gYmUgcmVmJ2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2xjb3B5KToKCSAgRml4IGxjb3B5IGZvciBtaW5pIG9iamVjdHMsIHRoZSBtaW5pIG9iamVjdCBuZWVkcyB0byBiZSByZWYnZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KSwKCSAgKG15X2Zvb19nZXRfcHJvcGVydHkpLCAobXlfZm9vX3NldF9wcm9wZXJ0eSksIChteV9mb29fY2xhc3NfaW5pdCksCgkgICh0ZXN0X3ZhbHVlX2NvbGxlY3Rpb24pLCAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgQWRkIHRlc3QgdG8gZW5zdXJlIHJlZmNvdW50cyBlbmQgdXAgYXMgZXhwZWN0ZWQgd2hlbiBwYXNzaW5nCgkgIEdzdE1pbmlPYmplY3RzIHRocm91Z2ggZ19vYmplY3RfZ2V0KCkgYW5kIGdfb2JqZWN0X3NldCgpLgoKMjAwNS0xMi0xNCAxNzowODozNiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFJlZmFjdG9yaW5nIG9mIGNvbGxlY3RwYWRzLiBUaGlzIHZlcnNpb24gcmVtb3ZlcyBhIGxvdCBvZiByYWNlcyB3aXRob3V0IHRvdWNoaW5nIEFQSS8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogUmVmYWN0b3JpbmcKCSAgb2YgY29sbGVjdHBhZHMuIFRoaXMgdmVyc2lvbiByZW1vdmVzIGEgbG90IG9mIHJhY2VzIHdpdGhvdXQKCSAgdG91Y2hpbmcgQVBJL0FCSS4gWWF5ICEKCjIwMDUtMTItMTQgMTA6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpOgoJICBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vCgkgIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBDaGFuZ2Ugc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIGJlIGEgbGl0dGxlIGNsZWFyZXIKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgcGVlciBiZWZvcmUgZXhlY3V0aW5nIHF1ZXJpZXMgdGhlcmV1cG9uLgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBnc3RfYnVzX3BvcCBpbnN0ZWFkIG9mIGdzdF9idXNfcG9sbCB3aGVuIHdlIGp1c3Qgd2FudCBpdCB0bwoJICBpbW1lZGlhdGVseSByZXR1cm4gdXMgYW55IGF2YWlsYWJsZSBtZXNzYWdlIHdpdGggMCB0aW1lb3V0LgoKMjAwNS0xMi0xMiAxOTowOTo0OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBEb24ndCB1bnJlZiBmYWN0b3JpZXMgYWZ0ZXIgY2FsbGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgIERvbid0IHVucmVmIGZhY3RvcmllcyBhZnRlciBjYWxsaW5nIHRoZW0uCgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBGcmVlIGxpc3RzIG9mIGZhY3RvcmllcyBhZnRlciB1c2luZyB0aGVtLiBGaXhpbmcgdHlwZWZpbmRpbmcgbWVtb3J5CgkgIGxlYWtzLgoKMjAwNS0xMi0xMiAxODoxMjoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbWFrZSBkaXN0Y2hlY2sgaGFwcHkgYWdhaW4KCjIwMDUtMTItMTIgMTc6Mzc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmUgYWxsIHRlc3RzL29sZCBNYWtlZmlsZXMgZnJvbSB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbGwgdGVzdHMvb2xkIE1ha2VmaWxlcyBmcm9tIHRoZSBidWlsZAoKMjAwNS0xMi0xMiAxNzowOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwgYnV0IHRoZSBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgIENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwKCSAgYnV0IHRoZSBkb3duc3RyZWFtIHBlZXIgcGFkIGhhcyBubyBjaGFpbiBmdW5jdGlvbi4gRW1pdCBhCgkgIGN1c3RvbSBlcnJvciBtZXNzYWdlIGluIHRoaXMgY2FzZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlCgkgIGNvcmUgZ2VuZXJhdGUgb25lIGltcGx5aW5nIHRoYXQgdGhpcyBpcyBzb21lIHNvcnQgb2YgY29yZQoJICBidWcuIEl0J3Mgbm90LCBpdCBqdXN0IG1lYW5zIHRoYXQgd2hhdGV2ZXIgZ290IHBsdWdnZWQKCSAgaW50byB0aGUgcGlwZWxpbmUgZG93bnN0cmVhbSB3aGVuIHdlIGFubm91bmNlZCB0aGUgdHlwZQoJICBjYW4gb25seSBvcGVyYXRlIHB1bGwtYmFzZWQsIHdoaWxlIG91ciBzb3VyY2UgY2FuIG9ubHkKCSAgb3BlcmF0ZSBwdXNoLWJhc2VkIChlLmcuIGh0dHA6Ly9mb28vYmFyLm1vdiAhIHF0ZGVtdXggISAuLi4pCgkgIEVycm9yIHN0cmluZyBoYXMgbm90IGJlZW4gbWFya2VkIGZvciB0cmFuc2xhdGlvbiB5ZXQsIGFzCgkgIGl0IHByb2JhYmx5IG5lZWRzIHNvbWUgbW9yZSB3b3JrIGZpcnN0LgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9iZXN0X3Bvc3NpYmlsaXR5KToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIHRoZSBiZXN0IG9mIGFsbCBhdmFpbGFibGUKCSAgZm91bmQgcG9zc2liaWxpdGllcyB0aGF0IHF1YWxpZnkgZ2l2ZW4gdGhlIG1pbi4gdGhyZXNob2xkLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIEZpeCB0aGUgY2FzZSB3aGVyZSB3ZSBnZXQgYW4gRU9TIHdoaWxlIHN0aWxsIGluIFRZUEVGSU5ECgkgIG1vZGUgKHdlIHdhbnQgdG8gY2hvc2UgdGhlIGJlc3Qgb2YgYWxsIHBvc3NpYmxlIHR5cGVzLAoJICBub3QganVzdCB0aGUgZmlyc3QgdHlwZSB0aGF0IGhhcHBlbnMgdG8gYmUgaW4gb3VyIHVuc29ydGVkCgkgIGxpc3Qgb2YgcG9zc2libGUgdHlwZXMpLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTWFrZSBzdXJlIHdlIHJldHVybiBHU1RfRkxPV19FUlJPUiB3aGVuIHdlIGVycm9yZWQgb3V0CgkgIGluIHN0b3BfdHlwZWZpbmRpbmcoKTsgYWxzbywgZG9uJ3QganVzdCBmaW5kIHRoZSBiZXN0IG9mCgkgIGFsbCBmb3VuZCB0eXBlIGVudHJpZXMgYW5kIHRoZW4gdXNlIHRoZSBsYXN0IGV4YW1pbmVkCgkgIHR5cGUgZW50cnksIGJ1dCBhY3R1YWxseSB1c2UgdGhlIGJlc3QgZW50cnkuCgoyMDA1LTEyLTEyIDE3OjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBNb3JlIGdjYzQgZml4ZXMgYW5kIGEgbWVtIGxlYWsgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCk6CgkgIE1vcmUgZ2NjNCBmaXhlcyBhbmQgYSBtZW0gbGVhayBmaXguCgoyMDA1LTEyLTEyIDE2OjIwOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIG1vcmUgZ2NjIDQgd2FybmluZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBnY2MgNCB3YXJuaW5nIGZpeGVzCgoyMDA1LTEyLTEyIDE2OjA0OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCjIwMDUtMTItMTIgMTU6NTk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogZ2NjIDQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiAob2JqZWN0X3NhdmVkKToKCSAgZ2NjIDQgZml4ZXMKCjIwMDUtMTItMTIgMTU6NDY6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL01ha2VmaWxlLmFtOiBlbmFibGUgdGhlIGV4YW1wbGVzIGV2ZW4gbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgZW5hYmxlIHRoZSBleGFtcGxlcyBldmVuIG1vcmUKCjIwMDUtMTItMTIgMTU6MDI6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYyAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQsIGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSAoZ3N0X25ldF90aW1lX3Byb3ZpZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmMKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0LCBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCkKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZ2V0X3Byb3BlcnR5KTogRXhwb3J0ICJhY3RpdmUiIGFzIGEgR09iamVjdAoJICBwcm9wZXJ0eS4KCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpOiBPbmx5IHJlc3BvbmQgdG8gdGltZSBxdWVyaWVzIGlmCgkgIHRoZSB0aW1lIHByb3ZpZGVyIGlzIGFjdGl2ZS4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IEFkZCBhbiAiYWN0aXZlIiBib29sZWFuIHRvCgkgIE5ldFRpbWVQcm92aWRlciwgcHJlc2VydmluZyBiaW5hcnkgY29tcGF0LgoKMjAwNS0xMi0xMiAxNDo0NjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgoyMDA1LTEyLTEyIDE0OjQzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgRml4IHR5cG8uCgoyMDA1LTEyLTEyIDE0OjQyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdGhlIENoYW5nZWxvZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBDaGFuZ2Vsb2cuLi4KCjIwMDUtMTItMTIgMTQ6NDE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9sIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIG5ldyBzeW1ib2wgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBJbXBsZW1lbnQgc2Vla2luZyB0byBvdGhlciBmb3JtYXRzIHRoYW4gX0JZVEVTLgoJICBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIG1ldGhvZHMgY29ycmVjdGx5LgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgcXVlcnkgdm1ldGhvZC4KCSAgQWRkZWQgZG9fc2VlayB2bWV0aG9kIHRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIHN1YmNsYXNzZXMKCSAgd2hlbiBzZWVraW5nLgoJICBBUEkgYWRkaXRpb246IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkKCjIwMDUtMTItMTIgMTQ6MDg6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOiBhZGRlZCB0aGF0IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYWRkZWQgdGhhdCB0b28KCjIwMDUtMTItMTIgMTQ6MDI6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKG1ha2VfcGlwZWxpbmUpLCAocHJpbnRfdGFnKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCksIChldmVudF9sb29wKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IChvYmplY3Rfc2F2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCksIChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvVE9ETzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9tcDNwbGF5OgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMKCSAgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoKMjAwNS0xMi0xMiAxMjo0ODozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE1ha2Ugc3VyZSB0aGUgbGFzdF9wb3MgdmFsdWUgaXMgdXBkYXRlZCBwcm9wZXJseS4KCSAgTWFrZSBzdXJlIHRvX3N0cmVhbV90aW1lIGFuZCB0b19ydW5uaW5nX3RpbWUgZG9uJ3QKCSAgb3BlcmF0ZSBvbiB3cm9uZyB2YWx1ZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlIGNoZWNrLgoKMjAwNS0xMi0xMiAxMjozMjowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTm93IHRoYXQgd2UncmUgbm90IGxlYWtpbmcgZmFjdG9yaWVzLCBtYWtlIHN1cmUgd2Uga2VlcCByZWZlcmVuY2VzIHRvIHRoZW0gd2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmcmVlX2VudHJ5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE5vdyB0aGF0IHdlJ3JlIG5vdCBsZWFraW5nIGZhY3RvcmllcywgbWFrZSBzdXJlIHdlIGtlZXAgcmVmZXJlbmNlcwoJICB0byB0aGVtIHdoaWxlIHdlIG5lZWQgdGhlbS4KCjIwMDUtMTItMTIgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6IGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgIGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCjIwMDUtMTItMTIgMTA6NTk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGZsb29yIGlzIG5vdCBuZWVkZWQsIEYgaXMgYWx3YXlzIHBvc2l0aXZlOyB0aGlzIG9idmlhdGVzIHRoZSBuZWVkIGZvciBhZGRpbmcgLWxtIHdoZW4gYnVpbGRpbmcgd2l0aG91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9kb3VibGVfZnJhY3Rpb24pOgoJICBmbG9vciBpcyBub3QgbmVlZGVkLCBGIGlzIGFsd2F5cyBwb3NpdGl2ZTsgdGhpcyBvYnZpYXRlcyB0aGUKCSAgbmVlZCBmb3IgYWRkaW5nIC1sbSB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgbGlieG1sCgoyMDA1LTEyLTEyIDEwOjU3OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2FzcGVjdHJhdGlvOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCjIwMDUtMTItMTIgMTA6MTY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRha2UgY3VycmVudCBwbGF5YmFjayByYXRlIGludG8gYWNjb3VudCB3aGVuIHJlcG9ydGluZyB0aGUgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgVGFrZSBjdXJyZW50IHBsYXliYWNrIHJhdGUgaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nCgkgIHRoZSBwb3NpdGlvbi4KCjIwMDUtMTItMTEgMTk6MzU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzogTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzCgkgIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoKMjAwNS0xMi0xMSAxOToxOTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOiBBZGQgYXVkaW9jb252ZXJ0IGVsZW1lbnQgdG8gZGlhZ3JhbSBzbyB0aGF0IGl0IG1hdGNoZXMgdGhlIHRleHQgYW5kIHRoZSBjb2RlIChmaXhlcyAjMzE5NS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgQWRkIGF1ZGlvY29udmVydCBlbGVtZW50IHRvIGRpYWdyYW0gc28gdGhhdCBpdAoJICBtYXRjaGVzIHRoZSB0ZXh0IGFuZCB0aGUgY29kZSAoZml4ZXMgIzMxOTUyNikuCgoyMDA1LTEyLTExIDE4OjI0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBVcGRhdGUgc3RhdGUgY2hhbmdlIHN0dWZmIGZvciAwLjEwIChmaXhlcyAjMzIyOTY5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkgIFVwZGF0ZSBzdGF0ZSBjaGFuZ2Ugc3R1ZmYgZm9yIDAuMTAgKGZpeGVzICMzMjI5NjkpLgoKMjAwNS0xMi0xMSAxNzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlIGZvciAwLjEwOiBzLzAuOS8wLjEwLzsgcy9hdWRpb3NjYWxlL2F1ZGlvcnNhbXBsZS87IGFkZCBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHBpcGVsaW5lczsgcmVtb3ZlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIFVwZGF0ZSBmb3IgMC4xMDogcy8wLjkvMC4xMC87IHMvYXVkaW9zY2FsZS9hdWRpb3JzYW1wbGUvOwoJICBhZGQgY29udmVydGVycyBpbiBmcm9udCBvZiBwaXBlbGluZXM7IHJlbW92ZSBjdXJseQoJICBicmFja2V0cyBmb3IgdGhyZWFkcyBzdHVmZiwgdGhleSBubyBsb25nZXIgZXhpc3Q7IHVzZQoJICBHU1RfVFlQRV9GUkFDVElPTiBmb3IgZnJhbWVyYXRlczsgdXBkYXRlIHNvbWUgcGllY2VzIG9mCgkgIGNvZGUgdG8gMC4xMCwgYnV0IHRoZXJlJ3MgcGxlbnR5IG1vcmUgdG8gZG8uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEV4cGFuZCBvbiBhc3luY2hyb25lb3VzIHN0YXRlIGNoYW5nZXM7IHMvMC45LzAuMTAvOwoJICBtZW50aW9uIGRpc2FwcGVhcmFuY2Ugb2YgZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUoKQoJICAoZml4ZXMgIzMyMjkxNikuCgoyMDA1LTEyLTExIDExOjUzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvdXNpbmcueG1sOiBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgVXBkYXRlIGV4YW1wbGVzIHRvIHVzZSBkZWNvZGViaW4gYW5kIHBsYXliaW4gYW5kIHB1dAoJICBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHNpbmtzIChmaXhlcyAjMzIzNzI2KS4KCjIwMDUtMTItMDkgMTc6MjY6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBGaXggcHJvYmxlbSB3aGVyZSB3ZSBmb3Jnb3QgYWJvdXQgYSBwcm9iYWJsZSB0eXBlIG9uIG5vbi1zZWVrYWJsZQoJICBmaWxlcywgYW5kIHRodXMgbGF0ZXIgbWlzLXR5cGVmb3VuZCBpdC4KCjIwMDUtMTItMDkgMTU6MDk6NDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIFJlbW92ZSBtYWtlY29udGV4dCBzdHVmZjsgbm90IHVzZWQgaW4gMC4xMCBhbmQgY2F1c2VzIHByb2JsZW1zIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9tNC9nc3QtbWFrZWNvbnRleHQubTQ6CgkgICogY29tbW9uL200L2dzdC1tY3NjLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBSZW1vdmUgbWFrZWNvbnRleHQgc3R1ZmY7IG5vdCB1c2VkIGluIDAuMTAgYW5kIGNhdXNlcyBwcm9ibGVtcyBvbgoJICBIUFVYIGFjY29yZGluZyB0byBidWcgIzMyMjQ0MQoKMjAwNS0xMi0wNyAxOTowMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzLCB0aGlzIHRpbWUgZm9yIHJlYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMsIHRoaXMgdGltZSBmb3IgcmVhbAoKMjAwNS0xMi0wNyAxOTowMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgoyMDA1LTEyLTA3IDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCjIwMDUtMTItMDcgMTc6MzY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGNoZWNrIGZvciBBQkkgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBjaGVjayBmb3IgQUJJIGNvbXBhdGliaWxpdHkuCgoyMDA1LTEyLTA3IDE1OjMzOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IEZpeCBicm9rZW4gc3luYyBvcHRpb24sIGZpeGVzICMzMjMyNTkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggYnJva2VuIHN5bmMgb3B0aW9uLCBmaXhlcyAjMzIzMjU5CgoyMDA1LTEyLTA3IDE1OjE2OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBEb24ndCBhc3NlcnQgb24gTlVMTCA8LS0+IFguIEZpeGVzICMzMjMyNjAKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpOgoJICBJZiB3ZSdyZSBkb2luZyBhdG9taWMgb3BlcmF0aW9ucywgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHVzZQoJICB0aGUgcHJvcGVyIHdheSB0byBnZXQgYW4gYXRvbWljIHBvaW50ZXIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBDbGVhbiB1cCBkZWJ1Z2dpbmcuCgoyMDA1LTEyLTA3IDExOjUyOjA1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoKMjAwNS0xMi0wNiAyMzozMjowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogc3BlbGluZyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBzcGVsaW5nIGZpeC4KCjIwMDUtMTItMDYgMTk6Mjk6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9yYW5kb20vb21lZ2EvdGVzdGluZy9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICBleHBhbmQgdGFicwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZXhwYW5kIHRhYnMKCjIwMDUtMTItMDYgMTk6MDQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBjdnMKCjIwMDUtMTItMDUgMTg6MTM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4wID09PQoKMjAwNS0xMi0wNSAxODowNTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4wCgoyMDA1LTEyLTA1IDE1OjU3OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTEyLTA1IDE0OjM2OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdWJtaXR0ZWQgYnk6IEZ1bmRhIFdhbmcgPGZ1bmRhd2FuZ0BsaW51eC5uZXQuY24+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby96aF9DTi5wbzoKCSAgYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgoyMDA1LTEyLTA1IDE0OjE0OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJICB1cGRhdGVkIEFmcmlrYWFucyB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCBBZnJpa2FhbnMgdHJhbnNsYXRpb24KCjIwMDUtMTItMDUgMTQ6MTQ6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICByZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmQgZnJvbSBkb2NzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkZXByZWNhdGlvbiBndWFyZCBmcm9tIGRvY3N0cmluZwoKMjAwNS0xMi0wNSAxMzoxMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTEyLTA1IDEzOjA2OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMTItMDUgMTM6MDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpOiBDYWxsCgkgIGFsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6IENoYW5nZWQgdG8gbm90IGNhbGwKCSAgc2V0X2NhcHMgb24gdGhlIHNvdXJjZSBwYWQuCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMpOiBOZXcgZnVuY3Rpb24sIGRvZXMgd2hhdAoJICBhbGxvY19idWZmZXIgdXNlZCB0byBkby4gRml4ZXMgIzMyMjg3NC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDogVXBkYXRlIGZvciB0aGUgYWxsb2NfYnVmZmVyCgkgIGNoYW5nZXMuCgoyMDA1LTEyLTA1IDEyOjMzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgoyMDA1LTEyLTA1IDEyOjA5OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoKMjAwNS0xMi0wNSAxMjowOTowMSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi86IHdpbjMyIGJ1aWxkIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZQoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIHdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTA1IDEwOjU5OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzCgkgIGluc3RlYWQuCgoyMDA1LTEyLTA1IDEwOjI3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEZpeCBicm9rZW4gc3luYyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfdGltZXMpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIEZpeCBicm9rZW4gc3luYyBjb2RlLgoKMjAwNS0xMi0wNSAxMDoyMjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvbXBhcmluZyBOVUxMIGFnYWluc3QgIU5VTEwgeWllbGRzIGRpZmZlcmVudCBjYXBzLCBub3QgYSBmYWlsdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBDb21wYXJpbmcgTlVMTCBhZ2FpbnN0ICFOVUxMIHlpZWxkcyBkaWZmZXJlbnQgY2Fwcywgbm90IGEKCSAgZmFpbHVyZS4KCjIwMDUtMTItMDUgMTA6MTg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRml4IHNtYWxsIHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEZpeCBzbWFsbCB0eXBvIGluIGRvY3MuCgoyMDA1LTEyLTA1IDA5OjUzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogcmVtb3ZlIGhhcmQtY29kZWQgMC45IGxvY2F0aW9uIGZvciByZWdpc3RyaWVzL3BsdWdpbnMgd2l0aCBhIE1BSk9STUlOT1Igb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiByZW1vdmUgaGFyZC1jb2RlZCAwLjkgbG9jYXRpb24gZm9yCgkgIHJlZ2lzdHJpZXMvcGx1Z2lucyB3aXRoIGEgTUFKT1JNSU5PUiBvbmUuCgkgIChwbHVnaW5fZGVzYyk6IFJlbmFtZSBsaWJyYXJ5IGZyb20gZ3N0Y29yZWxlZW1lbnRzIHRvCgkgIHN0YXRpY2VsZW1lbnRzLiBGaXhlcyAjMzIzMjIyLgoKMjAwNS0xMi0wNSAwOTo0NToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJyAoZml4ZXMgIzMyMzI1MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KToKCSAgQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJwoJICAoZml4ZXMgIzMyMzI1MCkuCgoyMDA1LTEyLTA0IDE5OjU3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW5hbWUgdHdvIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbmFtZSB0d28gZXhwb3J0cwoKMjAwNS0xMi0wNCAxODo1NDoxOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogdXNlIGNvbnZlcnQgZnVuY3Rpb24gZm9yIHVpbnQ2NC9kb3VibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHVzZSBjb252ZXJ0IGZ1bmN0aW9uIGZvciB1aW50NjQvZG91YmxlCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBsaW5rIHRvIEdMaWIKCjIwMDUtMTItMDQgMDk6NTc6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIHRlc3RzIHRoYXQgc2VlbSB0byBzaG93IHRoYXQgdGhlIGd1aW50NjQvZ2RvdWJsZSBjb252ZXJzaW9ucyBhcmUgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUpLAoJICAoZ3N0X3V0aWxfZ2RvdWJsZV90b19ndWludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBhZGQgdGVzdHMgdGhhdCBzZWVtIHRvIHNob3cgdGhhdCB0aGUgZ3VpbnQ2NC9nZG91YmxlIGNvbnZlcnNpb25zCgkgIGFyZSBjb3JyZWN0LgoKMjAwNS0xMi0wMiAxMjo0NDo1MyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIG1ha2UgdmVyc2lvbiBudW1iZXIgYSBsaXR0bGUgbGVzcyBob3BlZnVsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSB2ZXJzaW9uIG51bWJlciBhIGxpdHRsZSBsZXNzIGhvcGVmdWxsCgoyMDA1LTEyLTAyIDEyOjM0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGRvY3MgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgRml4IGRvY3MgYWdhaW4uCgkgIFJlbW92ZWQgb2xkIGNvZGUgZnJvbSBnc3RyZWdpc3RyeXhtbC5jCgoyMDA1LTEyLTAyIDEyOjE5OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwZGF0aW5nIGdzdHJlYW1lciBzcGVjIGZpbGUgbWFraW5nIGl0IDAuMTAgcmVhZHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cGRhdGluZyBnc3RyZWFtZXIgc3BlYyBmaWxlIG1ha2luZyBpdCAwLjEwIHJlYWR5CgoyMDA1LTEyLTAyIDExOjM2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFNtYWxsIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBTbWFsbCBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIEFkZCBkZWJ1ZyBsb2cgbGluZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIEFkZCBGSVhNRS4KCjIwMDUtMTItMDIgMDk6NDg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvOiByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgoyMDA1LTEyLTAyIDAxOjM1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzL2dzdC1ydW4uYzogZG8gcGllY2Utd2lzZSBtYWpvci9taW5vciBjb21wYXJpc29uIHNvIDAuOSA8IDAuMTAgYWxzbyBhbGxvdyAuZXhlIGV4dGVuc2lvbnMgZm9yIHRvb2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGNvbXBhcmVfbWFqb3JfbWlub3IpLCAoZmluZF9oaWdoZXN0X3ZlcnNpb24pLAoJICAoZ2V0X2NhbmRpZGF0ZXMpOgoJICBkbyBwaWVjZS13aXNlIG1ham9yL21pbm9yIGNvbXBhcmlzb24gc28gMC45IDwgMC4xMAoJICBhbHNvIGFsbG93IC5leGUgZXh0ZW5zaW9ucyBmb3IgdG9vbHMKCjIwMDUtMTItMDEgMjM6NTc6MDcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3QuYzogRXNjYXBlIGEgJSB0byBtYWtlIGd0a2RvYyBoYXBwaWVyOyBidWcgMzIyOTU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEVzY2FwZSBhICUgdG8gbWFrZSBndGtkb2MgaGFwcGllcjsgYnVnIDMyMjk1OC4KCjIwMDUtMTItMDEgMTk6MTg6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjcgPT09CgoyMDA1LTEyLTAxIDE5OjExOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENIQU5HRVMtMC45OgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS43CgoyMDA1LTEyLTAxIDE2OjUxOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMCByZXNldCBsaWJ0b29sIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMAoJICByZXNldCBsaWJ0b29sIHZlcnNpb24KCjIwMDUtMTItMDEgMTU6Mjg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLTAuNzoKCSAgcmVtb3ZlIG9sZCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGZpbGUKCjIwMDUtMTItMDEgMTU6MTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMi0wMSAxNTowODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgoyMDA1LTEyLTAxIDE1OjA0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJICBjb21taXQgZmluYWwgc3RhbXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGZpbmFsIHN0YW1wIGZpbGUKCjIwMDUtMTItMDEgMTQ6NTE6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCjIwMDUtMTItMDEgMTQ6NDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJICBhZGQgc2lnbmFscyBhbmQgYXJncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpZ25hbHMgYW5kIGFyZ3MKCjIwMDUtMTItMDEgMTI6MzY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGVzdAoKMjAwNS0xMi0wMSAxMjoyOTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnR5cGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvc2Nhbm9iai1idWlsZC5zdGFtcDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkgIGRvY3VtZW50IGNvcmUgcGx1Z2lucyBpbiBhIHNlcGFyYXRlIGRvY3VtZW50IGp1c3QgbGlrZSBhbGwgdGhlIG90aGVycyByZW5hbWUgdGhlc2UgcGx1Z2lucyB0byBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgY29yZSBwbHVnaW5zIGluIGEgc2VwYXJhdGUgZG9jdW1lbnQganVzdCBsaWtlIGFsbCB0aGUKCSAgb3RoZXJzCgkgIHJlbmFtZSB0aGVzZSBwbHVnaW5zIHRvIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIGNvcmUKCjIwMDUtMTItMDEgMTI6MDA6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYSBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYQoJICBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgoyMDA1LTEyLTAxIDEwOjA3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBhZGQgbGliZ3N0Y29udHJvbGxlciB0byB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsaWJnc3Rjb250cm9sbGVyIHRvIHRoZSBidWlsZAoKMjAwNS0xMi0wMSAwOTo1NDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogd2hpdGVzcGFjZSBwcmljZXMgaGF2ZSBjcmFzaGVkLCB3ZSBzaG91bGQgZmVlbCBmcmVlIHRvIHVzZSBzb21lIG5vdyB1c2UgZ3N0X2cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHdoaXRlc3BhY2UgcHJpY2VzIGhhdmUgY3Jhc2hlZCwgd2Ugc2hvdWxkIGZlZWwgZnJlZSB0byB1c2Ugc29tZSBub3cKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUKCjIwMDUtMTItMDEgMDk6MzI6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZml4IHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0eXBvCgoyMDA1LTEyLTAxIDA5OjIzOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICB3cmFwIGNvbmZpZy5oIGluY2x1ZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdyYXAgY29uZmlnLmggaW5jbHVkZQoKMjAwNS0xMi0wMSAwMjowODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVwZGF0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZG9jcwoKMjAwNS0xMi0wMSAwMDo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogbW9yZSBhbmFsIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19fYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jbGFzc19pbml0KSwgKGdzdF9mZF9zaW5rX19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jaGFpbiksIChnc3RfZmRfc2lua19fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zaW5rX19nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX2Rpc3Bvc2UpLAoJICAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLCAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLAoJICAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19jcmVhdGUpLAoJICAoZ3N0X2ZkX3NyY19pc19zZWVrYWJsZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2dldF90eXBlKSwgKGdzdF9mZF9zcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2ZkX3NyY191cmlfZ2V0X3VyaSksIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSk6CgkgIG1vcmUgYW5hbCBjbGVhbnVwCgoyMDA1LTExLTMwIDE5OjM2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZpeCB0aGUgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRoZSBkb2NzIGJ1aWxkCgoyMDA1LTExLTMwIDE5OjAzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgYWRkIG5ldyBpbnB1dCB0eXBlcyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbmV3IGlucHV0IHR5cGVzIGZpbGUKCjIwMDUtMTEtMzAgMTk6MDE6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBmaXhlcyB0byBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHZhcmlvdXMgZml4ZXMgdG8gbWFrZQoJICAtLWRpc2FibGUtbmxzIC0tZGlzYWJsZS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUgICAgICAgICAgIC0tZGlzYWJsZS1wYXJzZSAtLWRpc2FibGUtZ3N0LWRlYnVnCgkgIHdvcmsgYW5kIGdldCB0aGUgY29yZSAuc28gZG93biB0byAzNjA0NDQgYnl0ZXMgYWZ0ZXIgc3RyaXBwaW5nCgoyMDA1LTExLTMwIDE3OjA1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbW92ZSBsb2NhdGlvbiBvZiB0ZXN0IHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGxvY2F0aW9uIG9mIHRlc3QgcmVnaXN0cnkKCjIwMDUtMTEtMzAgMTY6NDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0zMCAxNjo0NToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9taXNjL01ha2VmaWxlLmFtOgoJICBtaXNzaW5nIG1ha2VmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaXNzaW5nIG1ha2VmaWxlCgoyMDA1LTExLTMwIDE2OjQzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgcHJ1bmUgZW1wdHkgZGlycyB3aGVuIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcnVuZSBlbXB0eSBkaXJzIHdoZW4gdXBkYXRpbmcKCjIwMDUtMTEtMzAgMTY6NDI6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogRE9DQlVJTERJTkc6CgkqIGRvY3MvUkVBRE1FOgoJICByZW1vdmUgZW1wdHkgZGlyczsgbW92ZSBkb2NidWlsZGluZyBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnM7IG1vdmUgZG9jYnVpbGRpbmcgbm90ZXMKCjIwMDUtMTEtMzAgMTY6Mzk6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgICogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9SRUFETUU6CgkgIGFkZCBhIFJFQURNRQoKMjAwNS0xMS0zMCAxNjozMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMzAgMTY6MzA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IGZhaWwgb24gbWlzc2luZyByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZmFpbCBvbiBtaXNzaW5nIHJlZ2lzdHJ5CgoyMDA1LTExLTMwIDE2OjI4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL1JFQURNRS50eHQ6CgkgIGFkZCBhIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL01ha2VmaWxlOgoJKiB3aW4zMi9NYWtlZmlsZS5pbnNwZWN0OgoJKiB3aW4zMi9NYWtlZmlsZS5sYXVuY2g6CgkqIHdpbjMyL01ha2VmaWxlLnJlZ2lzdGVyOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi9nc3QtcmVnaXN0ZXIudmNwcm9qOgoJKiB3aW4zMi9nc3RlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL2dzdGdldGJpdHMuZGVmOgoJKiB3aW4zMi9nc3RnZXRiaXRzLnZjcHJvajoKCSogd2luMzIvZ3N0cmVhbWVyLWRiZy5kZWY6CgkqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvbGlua19vbGRydW50aW1lLmM6CgkqIHdpbjMyL21tYW4uYzoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi9tbWFuLmlubDoKCSogd2luMzIvbXN2YzcxLnNsbjoKCSAgbW92ZSBldmVuIG1vcmUgc3R1ZmYsIHdpbjMyLyBpcyBuaWNlIGFuZCBjbGVhbiBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgZXZlbiBtb3JlIHN0dWZmLCB3aW4zMi8gaXMgbmljZSBhbmQgY2xlYW4gbm93CgoyMDA1LTExLTMwIDE2OjE3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9jb25maWcuaDoKCSogd2luMzIvZGlyZW50LmM6CgkqIHdpbjMyL2RpcmVudC5oOgoJKiB3aW4zMi9nc3RieXRlc3RyZWFtLmRlZjoKCSogd2luMzIvZ3N0Ynl0ZXN0cmVhbS52Y3Byb2o6CgkqIHdpbjMyL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2dzdG9wdGltYWxzY2hlZHVsZXIudmNwcm9qOgoJKiB3aW4zMi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2d0Y2hhci5oOgoJKiB3aW4zMi90ZXN0c3VpdGUvYmlucy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2NhcHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2xlYW51cC52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jbG9jay52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kZWJ1Zy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kbG9wZW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZHlucGFyYW1zLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2VsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2dob3N0cGFkcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9pbmRleGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wYXJzZS52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wbHVnaW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcmVmY291bnRpbmcudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvc2NoZWR1bGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9zdGF0ZXMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvdGFncy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS90aHJlYWRzLnZjcHJvajoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZSByZW9yZ2FuaXplZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZQoJICByZW9yZ2FuaXplZAoKMjAwNS0xMS0zMCAxNjoxMjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBnZXRiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ2V0Yml0cwoKMjAwNS0xMS0zMCAxNjoxMDo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzCgkgIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTY6MDg6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9uZXQvLmdpdGlnbm9yZToKCSogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvYXBwcmVhZGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGV4YW1wbGVzL2N1dHRlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jdXR0ZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiBleGFtcGxlcy9ldmVudHMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiBleGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogZXhhbXBsZXMvbGF1bmNoL21wM3BsYXk6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiBleGFtcGxlcy9taXhlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGluZ3BvbmcvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3Bpbmdwb25nL3Bpbmdwb25nLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIGV4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzoKCSogZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlMy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUzL3F1ZXVlMy5jOgoJKiBleGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWU0L01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTQvcXVldWU0LmM6CgkqIGV4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3JldGFnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiBleGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogZXhhbXBsZXMvdGhyZWFkLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3RocmVhZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiBleGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiBleGFtcGxlcy94bWwvcnVueG1sLmM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL1J1bGVzOgoJKiB0ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvYXBwX2ZpeGF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwcy5oOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzdWl0ZS9jYXBzL2NvbXBhdGliaWxpdHkuYzoKCSogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZXJhdG9zdGhlbmVzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tY29udmVydC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1tdWx0aXBseS1hbmQtemVyby5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N0cmluZy1jb252ZXJzaW9ucy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdHJ1Y3R1cmUuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHN1aXRlL2RlYnVnLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2RlYnVnL2NhdGVnb3J5LmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9jb21tYW5kbGluZS5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9vdXRwdXQuYzoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL2Rsb3Blbl9nc3QuYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3Rfc2l6ZS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL3BhcnNlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9wYXJzZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0c3VpdGUvcGFyc2UvcGFyc2UyLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BsdWdpbi9SRUFETUU6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vZHluYW1pYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9yZWdpc3RyeS5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYzIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMl9zLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbl9zLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tYWlubG9vcC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uaDoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL29iamVjdC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3N0YXRlcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLzE1OTg1Mi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9zdGF0aWNyZWMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGIuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGguYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaS5jOgoJICBtb3ZlIGFsbCBvZiB0aGVzZSB1bmRlciB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBhbGwgb2YgdGhlc2UgdW5kZXIgdGVzdHMKCjIwMDUtMTEtMzAgMTU6Mzc6MzYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgYWZ0ZXIgdGhvbWFzJ3MgQ1ZTIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBhZnRlciB0aG9tYXMncyBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxNTozNDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGFkZCBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIE1ha2VmaWxlLmFtCgoyMDA1LTExLTMwIDE1OjI5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTExLTMwIDE1OjIwOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSAgY29tcGlsZSB3YXJuaW5nIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdhcm5pbmcgZml4ZXMKCjIwMDUtMTEtMzAgMTM6Mjg6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtY29tcHByZXAtY2hlY2suaW46CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1jb21wcHJlcC1jaGVjay5pbjoKCSAgcmVtb3ZlIGNvbXBwcmVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29tcHByZXAKCjIwMDUtMTEtMzAgMTM6MjU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTM6MDg6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNoLW1hc3NfZWxlbWVudHMuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmdudXBsb3Q6CgkgICogdGVzdHMvaW5zdGFudGlhdGUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6CgkgICogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL3Bsb3QtZGF0YToKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgQ29tYmluZWQgd2l0aCBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxMzowNzoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIGluY2x1ZGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGluY2x1ZGVzCgoyMDA1LTExLTMwIDExOjU1OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoKMjAwNS0xMS0zMCAxMDo1MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoKMjAwNS0xMS0zMCAxMDoxNTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcXVldWUgaGFzIG1vdmVkLCB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgIHF1ZXVlIGhhcyBtb3ZlZCwgdXBkYXRlCgoyMDA1LTExLTMwIDEwOjEzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgYWRkIHNvbWUgZXhwbGljaXQgY2FzdHMgdXBkYXRlIGRzcCBmaWxlczsgYWxzbyBpbnN0YWxscyB0aGUgZGVidWcgYnVpbGQgaW4gXGdzdHJlYW1lclxkZWJ1ZyB0byBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBleHBsaWNpdCBjYXN0cwoJICB1cGRhdGUgZHNwIGZpbGVzOyBhbHNvIGluc3RhbGxzIHRoZSBkZWJ1ZyBidWlsZCBpbiBcZ3N0cmVhbWVyXGRlYnVnIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIG5vbi1kZWJ1ZyBidWlsZAoKMjAwNS0xMS0zMCAxMDowMzo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTo1OTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICByZW1vdmUgdGhlIFRIUkVBRCBkZWJ1ZyBjYXRlZ29yeQoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgY29tcGxldGVseSBtb3ZlIHF1ZXVlIGFuZCBmaXggdXAgZGVidWdnaW5nIGNhdGVnb3JpZXMKCjIwMDUtMTEtMzAgMDk6Mzg6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBtYWtlIGluaXRpYWxpemF0aW9uIHBvcnRhYmxlLCB1c2luZyBMTCBpcyBub3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIG1ha2UgaW5pdGlhbGl6YXRpb24gcG9ydGFibGUsIHVzaW5nIExMIGlzIG5vdAoKMjAwNS0xMS0zMCAwOTozNjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTozMDo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOToyNzo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IGFkZCBsYXJnZSBwYWRkaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgYWRkIGxhcmdlIHBhZGRpbmcKCjIwMDUtMTEtMzAgMDk6MjI6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IHJlbmFtZSBzeW1ib2xzOyBzb3J0IGJhc2Ugc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVuYW1lIHN5bWJvbHM7IHNvcnQgYmFzZSBzZWN0aW9uCgoyMDA1LTExLTMwIDA5OjE4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiByZW1vdmUgY3JhY2sgbm9uLXBvcnRhYmxlIGhhbmRyb2xsZWQgREVCVUcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIHJlbW92ZSBjcmFjayBub24tcG9ydGFibGUgaGFuZHJvbGxlZCBERUJVRyBtYWNybwoKMjAwNS0xMS0zMCAwOToxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGUgdmlzdWFsIHN0dWRpbyBnZW5lcmF0ZWQgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB2aXN1YWwgc3R1ZGlvIGdlbmVyYXRlZCBmaWxlcwoKMjAwNS0xMS0zMCAwODo1Njo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi92czYvOiB1cGRhdGUgcHJvamVjdCBmaWxlcyBmb3IgbmV3IGxvY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgdXBkYXRlIHByb2plY3QgZmlsZXMgZm9yIG5ldyBsb2NhdGlvbnMKCjIwMDUtMTEtMzAgMDg6NTI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBzb21lIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICByZW1vdmUgc29tZSBmaWxlcwoJICAqIFJFQURNRToKCSAgcmVpbnN0YXRlIGFuZCB1cGRhdGUKCSAgKiBERVZFTDoKCSAgKiBSRVFVSVJFTUVOVFM6CgkgIHJlbW92ZWQKCSAgKiBMSUNFTlNFOgoJICAqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkgIG1vdmVkIHRvIHJhbmRvbQoKMjAwNS0xMS0zMCAwODozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCjIwMDUtMTEtMzAgMDg6MzM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogVE9ETzoKCSAgY2xlYW4gdXAgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgVE9ETwoKMjAwNS0xMS0zMCAwODoyOToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2V4dC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoKMjAwNS0xMS0yOSAyMzo1NjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IEZpeCBtZW1vcnkgbGVhayBpbiBHc3RUeXBlRmluZEZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgRml4IG1lbW9yeSBsZWFrIGluIEdzdFR5cGVGaW5kRmFjdG9yeS4KCjIwMDUtMTEtMjkgMjA6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDUtMTEtMjkgMTk6NDc6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSBxdWV1ZSBmcm9tIGNvcmUgdG8gdGhlIGVsZW1lbnRzIHBsdWdpbiDDpwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtb3ZlIHF1ZXVlIGZyb20gY29yZSB0byB0aGUgZWxlbWVudHMgcGx1Z2luCgkgIMOnCgoyMDA1LTExLTI5IDE5OjQ0OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHBjIGZpbGVzCgoyMDA1LTExLTI5IDE5OjM3OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfUEFERElOR19MQVJHRSk6IE5ldyBkZWZpbmUsIHRoZSBudW1iZXIKCSAgb2YgcG9pbnRlcnMgYnkgd2hpY2ggdG8gcGFkIHZlcnkgZXh0ZW5zaWJsZSBiYXNlIGNsYXNzZXMgKGxpa2UgdGhlCgkgIG9uZXMgaW4gbGlicy9nc3QvYmFzZSkuCgoyMDA1LTExLTI5IDE5OjM0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBtb3ZpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGNvcmUgdG8gbGliCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIG1vdmluZyBkb2N1bWVudGF0aW9uIGZyb20gY29yZSB0byBsaWIKCjIwMDUtMTEtMjkgMTk6MTI6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBvL1BPVEZJTEVTLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdCBhbmQgaW50byBsaWJzL2dzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdAoJICBhbmQgaW50byBsaWJzL2dzdAoKMjAwNS0xMS0yOSAxODo1Nzo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaCAoc3RydWN0IF9Hc3RTdHJ1Y3R1cmUpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmcuCgkgICogZ3N0L2dzdHF1ZXJ5LmggKHN0cnVjdCBfR3N0UXVlcnkpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogUmVtb3ZlIGEgY29tbWVudCBpbiBQbHVnaW5GZWF0dXJlLgoJICAqIGdzdC9nc3RwbHVnaW4uaCAoc3RydWN0IF9Hc3RQbHVnaW5DbGFzcyk6IEFkZCBzb21lIHBhZGRpbmcuCgkgICogZ3N0L2dzdG9iamVjdC5oOiAoc3RydWN0IF9Hc3RPYmplY3QpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmc7IHJlZHVjZXMgb2JqZWN0IHNpemUgYnkgYWJvdXQgMzAlLiBXZSBkb24ndCBleHBlY3QKCSAgYW55dGhpbmcgZWxzZSB0byBnbyBpbnRvIGdzdG9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3QpCgkgIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3RDbGFzcyk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZzsgdGhlCgkgIHBheWxvYWQgaXMgb25seSBhIHBvaW50ZXIgYW5kIHR3byBpbnRzIGFueXdheS4gRm9yIHRoZSBjbGFzcyB0aGVyZQoJICBhcmUgb25seSB0d28gbWV0aG9kcyBhcyB3ZWxsLgoJICAqIGdzdC9nc3RlbGVtZW50LmggKHN0cnVjdCBfR3N0RWxlbWVudENsYXNzKTogUmVtb3ZlZAoJICB0aGUgc3RhdGVfY2hhbmdlZCBzaWduYWwgY2FsbGJhY2ssIGl0IGlzIG5vdCB1c2VkLgoKMjAwNS0xMS0yOSAxODo0OToxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5Ly5naXRpZ25vcmU6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9NYWtlZmlsZS5hbToKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2Jvbm9iby1nc3RtZWRpYXBsYXktdWkueG1sOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvYm9ub2JvLWdzdG1lZGlhcGxheS5jOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvZ3N0bWVkaWFwbGF5Lm9hZmluZm86CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL01ha2VmaWxlLmFtOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLWZhY3RvcnkuYzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci5nb2I6CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXIub2FmaW5mbzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lcnZpZGVvLmdvYjoKCSAgd2hhY2sgYSBtb2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGFjayBhIG1vbGUKCjIwMDUtMTEtMjkgMTg6Mzg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCjIwMDUtMTEtMjkgMTg6MjE6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBmaXggaW5jbHVkZXMsIHRob3VnaCB0aGV5IGFyZSBhIGxpdHRsZSBkaW5reQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGZpeCBpbmNsdWRlcywgdGhvdWdoIHRoZXkgYXJlIGEgbGl0dGxlIGRpbmt5CgoyMDA1LTExLTI5IDE4OjE0OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBsb29rIGluIHRoZSByaWdodCBwbGFjZSBmb3IgZWxlbWVudHMsIGEgbG90IG1vcmUgY2hhbmNlIG9mIHN1Y2Nlc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGxvb2sgaW4gdGhlIHJpZ2h0IHBsYWNlIGZvciBlbGVtZW50cywgYSBsb3QgbW9yZSBjaGFuY2Ugb2YKCSAgc3VjY2VzcwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluZGV4ZXJzIGFuZCBlbGVtZW50cyBzdWJkaXJzCgkgICogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgbWFrZSBpbmRleGVycyBjb25kaXRpb25hbAoKMjAwNS0xMS0yOSAxODowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBhZGQgbWlzc2luZyBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCjIwMDUtMTEtMjkgMTg6MDQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGZpeCBkb2MgYnVpbGQgZm9yIHN0dWZmIG1vdmVkIGFyb3VuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvYyBidWlsZCBmb3Igc3R1ZmYgbW92ZWQgYXJvdW5kCgoyMDA1LTExLTI5IDE4OjAzOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHJlbW92ZSBtb3ZlZCBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW92ZWQgZGlycwoKMjAwNS0xMS0yOSAxODowMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZW1wdHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnMKCjIwMDUtMTEtMjkgMTg6MDA6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMKCSAgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoZQoJICBnc3QvIGRpcmVjdG9yeQoKMjAwNS0xMS0yOSAxNzo0NzowNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgUmVuYW1lIGdzdG5ldC10ZW1wbmFtZSB0byBnc3RuZXQuIEZpeGVzICMzMjIyNTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IFJlbmFtZSBnc3RuZXQtdGVtcG5hbWUgdG8gZ3N0bmV0LiBGaXhlcwoJICAjMzIyMjU3LgoKMjAwNS0xMS0yOSAxNzozNTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMjkgMTc6MzM6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MzI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvOiByZW1vdmluZyAtY29tcHByZXAgYW5kIC1jb21wbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgcmVtb3ZpbmcgLWNvbXBwcmVwIGFuZCAtY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGZpeCAjMzIwNTI5IC0gY2xlYW4gdXAgbmV3X3NlZ21lbnQgQVBJIGFuZCBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBmaXggIzMyMDUyOSAtIGNsZWFuIHVwIG5ld19zZWdtZW50IEFQSSBhbmQgc3RydWN0dXJlLgoJICBMZXQncyBob3BlIGV2ZXJ5b25lIHdhcyB1c2luZyB0aGUgbWV0aG9kcywgYW5kIG5vdCB0aGUgc3RydWN0dXJlLgoKMjAwNS0xMS0yOSAxNzoxMzo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFRoaXMgZnVuY3Rpb24gaXMgdmFsaWQgaWYgdGhlIGFjY3VtdWxhdG9yIGlzIDAgYW5kIHRoZSBmb3JtYXQKCSAgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgoyMDA1LTExLTI5IDE1OjUwOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcXVlcnlfbmV3X3NlZWtpbmcgYW5kIGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X3F1ZXJ5X25ld19zZWVraW5nIGFuZCBnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyB0byB0aGUKCSAgZG9jcy4KCjIwMDUtMTEtMjkgMTU6MTU6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgoyMDA1LTExLTI5IDE1OjEyOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdCBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdAoJICBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdyBhIGNoYW5naW5nIHVwc3RyZWFtIG91dHB1dAoJICB0byBwcm9kdWNlIGEgbmV3IGZvcm1hdCBvZiBkYXRhLgoKMjAwNS0xMS0yOSAxNDo0NzowNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVGhlIGV2ZW50IHZpcnR1YWwgbWV0aG9kIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZCwgd2l0aCBhIGRlZmF1bHQgaGFuZGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgIFRoZSBldmVudCB2aXJ0dWFsIG1ldGhvZCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50ZWQsIHdpdGggYSBkZWZhdWx0CgkgIGhhbmRsZXIKCSAgU3ViIGNsYXNzZXMgc2hvdWxkIGNhbGwgdGhlIHBhcmVudF9jbGFzcyBldmVudCBtZXRob2QuIFRoZXkgc2hvdWxkCgkgIHJldHVybiBGQUxTRSBpZiB0aGV5IGhhZCBhIHByb2JsZW0gaGFuZGxpbmcgdGhlIGdpdmVuIGV2ZW50LCBvciBkb24ndAoJICB3YW50IEdzdEJhc2VUcmFuc2Zvcm0gdG8gc2VuZCB0aGF0IGV2ZW4gZG93bnN0cmVhbQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgQWRkZWQgdGhlIHNpbmdsZS1zZWdtZW50IGJvb2xlYW4gcHJvcGVydHkuCgkgIElmIHNldCB0byBUUlVFLCBpdCB3aWxsIG91dHB1dCBhIHNpbmdsZSBzZWdtZW50IG9mIGRhdGEsIHN0YXJ0aW5nIGZyb20KCSAgMCwgd2lsbCBlYXQgdXAgYWxsIGluY29taW5nIG5ld3NlZ21lbnQsIGFuZCBtb2RpZnkgdGhlIHRpbWVzdGFtcCBvZiB0aGUKCSAgYnVmZmVycyBhY2NvcmRpbmdseQoKMjAwNS0xMS0yOSAxNDo0Mzo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy8wLjEwOgoJICBmdXJ0aGVyIHJldmlldwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZnVydGhlciByZXZpZXcKCjIwMDUtMTEtMjkgMTM6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRG9uJ3QgcmVmIE5VTEwgdGFyZ2V0IHBhZCAoIzMyMjc1MSkuIEltcHJvdmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpOgoJICBEb24ndCByZWYgTlVMTCB0YXJnZXQgcGFkICgjMzIyNzUxKS4gSW1wcm92ZSBkb2NzLgoKMjAwNS0xMS0yOSAxMTowNzo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IERvbid0IGNyYXNoIGlmIHdlIGZhaWxlZCB0byBsb2FkIGEgZmVhdHVyZSBmcm9tIGEgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgRG9uJ3QgY3Jhc2ggaWYgd2UgZmFpbGVkIHRvIGxvYWQgYSBmZWF0dXJlIGZyb20gYSBwbHVnaW4uCgoyMDA1LTExLTI5IDAwOjUxOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzLzAuMTA6CgkgIGFkZCBteSB0b2RvcyBmb3IgMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG15IHRvZG9zIGZvciAwLjEwCgoyMDA1LTExLTI4IDIxOjUxOjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IHVzZSBtb3JlIGNoZWNrIEFQSSBhbmQgbGVzcyBHTGliIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB1c2UgbW9yZSBjaGVjayBBUEkgYW5kIGxlc3MgR0xpYiBBUEkKCjIwMDUtMTEtMjggMjE6NDg6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgY29zbWV0aWMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgY2hhbmdlcwoKMjAwNS0xMS0yOCAxOTo1ODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogZG9uJ3QgcnVuIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBkb24ndCBydW4gY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICByZW1vdmUgdGhlIHJlZ2lzdHJ5IHdoZW4gcnVubmluZyBtYWtlIHRvcnR1cmUKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc2Vjb25kIG11bHRpcGx5CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIGZpeCBhIGNvbXBpbGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZwoKMjAwNS0xMS0yOCAxOTo0MzoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0aW5mby5oOiBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQKCSAgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoKMjAwNS0xMS0yOCAxODo0NDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kaXYxMjhfNjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgRml4IDYgdGltZXMgZmFzdGVyIGRpdmlzaW9uIGNvZGUuIE9wdGltaXplIGZvciBjb21tb24KCSAgMS8xIGFuZCBsZXNzIGNvbW1vbiBYLzEgY2FzZXMuCgoyMDA1LTExLTI4IDE3OjU5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTEtMjggMTY6MDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgTW9yZSBjaGVja3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZmluYWxpemUpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLCAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIENsZWFudXBzLgoJICBSZWxlYXNlIGxvY2sgd2hlbiB0aGUgY2xvY2sgY2Fubm90IGJlIHNsYXZlZC4KCSAgQ2F0Y2ggdGhlIGNhc2Ugd2hlcmUgdGhlIHJlZ3Jlc3Npb24gcmV0dXJuZWQgYW4gaW52YWxpZCBkZW5vbWluYXRvci4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2RpdjEyOF82NF9pdGVyYXRlKSwKCSAgKGdzdF91dGlsX2RpdjEyOF82NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBBZGQgcHJvdGVudGlhbGx5IG1vcmUgcGVyZm9ybWFudCBub24taXRlcmF0aXZlIDEyOC82NCBkaXZpZGUgZnVuY3Rpb24KCSAgdGhhdCB1bmZvcnR1bmF0bHkgZG9lcyBub3Qgd29yayB5ZXQuCgkgIFNob3J0Y3V0IHRoZSB0cml2aWFsIDAvWCA9IDAgY2FzZS4KCSAgUmVtb3ZlIHRoZSB3YXJuaW5ncyBvbiBvdmVyZmxvdy4KCjIwMDUtMTEtMjggMTQ6MTg6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMpOgoJICBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoKMjAwNS0xMS0yOCAxNDowMjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgbG9nIGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyBjYXBzCgoyMDA1LTExLTI4IDE0OjAxOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0xMS0yOCAxMzoyNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kcGFyYW1zLnR4dDogc29tZSBUT0RPcyBmb3IgdGhlIG5leHQgZGV2IGN5Y2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHBhcmFtcy50eHQ6CgkgIHNvbWUgVE9ET3MgZm9yIHRoZSBuZXh0IGRldiBjeWNsZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICB1c2UgYmFzZSB0eXBlIHRvIGFzc2lnbiBhY2NjZXNzb3IgZnVuY3Rpb25zCgoyMDA1LTExLTI4IDExOjMxOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBPb3BzLCB0aGF0IHNob3VsZCBoYXZlIGJlZW4gdG9wX3NyY2RpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgT29wcywgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHRvcF9zcmNkaXIKCjIwMDUtMTEtMjggMTA6Mjk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRpc2FibGUgcGlwZWxpbmUgdGVzdCB1bnRpbCBzb21lb25lIGZpeGVzIHRoZSB1bnJlbGlhYmxlIGVycm9ycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBwaXBlbGluZSB0ZXN0IHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHVucmVsaWFibGUgZXJyb3JzCgoyMDA1LTExLTI4IDEwOjA3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogVXNlIGEgY21kbGluZSBkZWZpbmUgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGVzdGluZywgdG8gYXZvaWQgYnJlYWtpbmcgZGlzdGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgYSBjbWRsaW5lIGRlZmluZSB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGZpbGUgdG8gdXNlIGZvcgoJICB0ZXN0aW5nLCB0byBhdm9pZCBicmVha2luZyBkaXN0Y2hlY2suCgoyMDA1LTExLTI4IDEwOjA0OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGZpeGF0ZV92YWx1ZSk6IFVzZSBhcnJheSBmdW5jdGlvbnMgZm9yIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChmaXhhdGVfdmFsdWUpOiBVc2UgYXJyYXkgZnVuY3Rpb25zIGZvciBhcnJheXMuCgoyMDA1LTExLTI4IDA5OjU1OjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDbGFyaWZ5IHRoZSBvdXRwdXQgc3RyaW5ncywgbWFrZXMgaXQgZWFzaWVyIHRvIHRyYW5zbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIENsYXJpZnkgdGhlIG91dHB1dCBzdHJpbmdzLCBtYWtlcyBpdCBlYXNpZXIgdG8gdHJhbnNsYXRlLgoJICBGaXhlcyAjMzIyNjI2CgoyMDA1LTExLTI4IDA4OjIwOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgoyMDA1LTExLTI3IDIyOjUwOjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogQWRkIHRlc3RzIGZvciBmZHNyYyBzZWVrYWJpbGl0eQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoZXZlbnRfZnVuYyksIChzZXR1cF9mZHNyYyksCgkgIChjbGVhbnVwX2Zkc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZkc3JjX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGVzdHMgZm9yIGZkc3JjIHNlZWthYmlsaXR5CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfdXBkYXRlX2ZkKSwgKGdzdF9mZHNyY19zdGFydCksCgkgIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfZmRzcmNfZ2V0X3NpemUpLCAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmMgc2hvdWxkIG5vdCBiZSBhICdsaXZlJyBzb3VyY2UuCgkgIEltcGxlbWVudCBzZWVraW5nIG9uIHNlZWthYmxlIGZkJ3MuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZWtpbmcpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBJbXBsZW1lbnQgU0VFS0lORyBxdWVyeSBmdW5jdGlvbnM6CgkgICpfbmV3X3NlZWtpbmcgYW5kICpfcGFyc2Vfc2Vla2luZwoKMjAwNS0xMS0yNyAyMjo0MzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogZG9uJ3QgbG9vcCBmb3JldmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgZG9uJ3QgbG9vcCBmb3JldmVyCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2MgZml4ZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSk6CgkgIHN1cHBvcnQgY29udHJvbGxpbmcgZW51bXMKCjIwMDUtMTEtMjcgMTk6NTI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBnc3RfdmFsdWVfdW5pb24oKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3ZhbHVlX3VuaW9uKCkuCgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIENoYW5nZSByZXR1cm4gdmFsdWUgZm9yIHVuaW9uLCBpbnRlcnNlY3QgYW5kIHN1YnRyYWN0IGZ1bmN0aW9ucwoJICBmcm9tIGdpbnQgdG8gZ2Jvb2xlYW4uCgoyMDA1LTExLTI3IDE4OjExOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hbnlfbGlzdCksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FueV9saXN0X3N0cmluZyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfbGlzdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX3NldF9pbnRfcmFuZ2UpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2RvdWJsZV9yYW5nZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYm9vbGVhbiksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxvYXQpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2Zsb2F0KSwKCSAgKGdzdF9zdHJpbmdfd3JhcCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jcmVhdGVfbmV3X3JhbmdlKSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kCgkgIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgbW9yZSBjb25zaXN0ZW50KS4KCjIwMDUtMTEtMjcgMTc6MDU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgoyMDA1LTExLTI3IDE2OjQ2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB1cCBNYWtlZmlsZS5hbSBhbmQgcmVtb3ZlIEdTVF9FTkFCTEVfTkVXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgTWFrZWZpbGUuYW0gYW5kIHJlbW92ZSBHU1RfRU5BQkxFX05FVwoKMjAwNS0xMS0yNyAxNToxNTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgoyMDA1LTExLTI3IDE0OjE5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBGaXhlcyAjMzEyNTg5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlcyAjMzEyNTg5CgoyMDA1LTExLTI3IDE0OjAzOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIHNvbWUgYWRkaXRpb25hbCBmYWlsX2lmJ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGFkZGl0aW9uYWwgZmFpbF9pZidzCgoyMDA1LTExLTI2IDExOjI4OjMyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogVGhpcyBzaG91bGRuJ3QgaXNzdWUgYSBnX3dhcm5pbmcgc2luY2UgaXQgcmV0dXJucyBOVUxMIGlmIGl0IGNvdWxkbid0IGZpbmQgdGhlIHBsdWdpbiwgYW5kIGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIFRoaXMgc2hvdWxkbid0IGlzc3VlIGEgZ193YXJuaW5nIHNpbmNlIGl0IHJldHVybnMgTlVMTCBpZiBpdAoJICBjb3VsZG4ndCBmaW5kIHRoZSBwbHVnaW4sIGFuZCBhbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgYmVoYXZlCgkgIHByb3Blcmx5IG9uIGEgTlVMTCByZXR1cm4uIFN3aXRjaGluZyB0byBhIEdTVF9XQVJOSU5HLgoKMjAwNS0xMS0yNSAxNzowNjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgoyMDA1LTExLTI1IDExOjM4OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE9wdGltaXNhdGlvbnMsIHJlbW92ZSB1bm5lZWRlZCB2YXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgT3B0aW1pc2F0aW9ucywgcmVtb3ZlIHVubmVlZGVkIHZhcnMuCgoyMDA1LTExLTI1IDAwOjAyOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50IGhpZ2ggcHJlY2lzc2lvbiAoZ3VpbnQ2NCAqIGd1aW50NjQpIC8gZ3VpbnQ2NC4KCjIwMDUtMTEtMjQgMTk6MDY6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCB3cm9uZyBwZXJjZW50YWdlIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBGaXggd3JvbmcgcGVyY2VudGFnZSBxdWVyeS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQWRkIHNvbWUgbW9yZSBjb21tb24gY2FzZXMgdGhhdCBjYW4gYmUgaGFuZGxlZAoJICBlZmZpY2llbnRseSB0byBfc2NhbGUuCgoyMDA1LTExLTI0IDE4OjQ0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHJlbW92ZSB3cm9uZ2x5IGNvbW1pdGVkIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgd3JvbmdseSBjb21taXRlZCBjb21tZW50cwoKMjAwNS0xMS0yNCAxODo0MDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiBkb24ndCB1c2UgY2hlY2sgY2FsbHMgZnJvbSB0aHJlYWRzOyBjaGVjayBwcm9iYWJseSBpc24ndCB0aHJlYWRzYWZlIGFuZCB1c2luZyBhIGxvY2sgdG8gbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKHRocmVhZF9yZWYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgZG9uJ3QgdXNlIGNoZWNrIGNhbGxzIGZyb20gdGhyZWFkczsgY2hlY2sgcHJvYmFibHkgaXNuJ3QKCSAgdGhyZWFkc2FmZSBhbmQgdXNpbmcgYSBsb2NrIHRvIG1ha2UgaXQgdGhyZWFkc2FmZSB3b3VsZAoJICBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGVjawoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICB1c2UgR1NUX0RFQlVHIHNvbWUgbW9yZQoKMjAwNS0xMS0yNCAxODowMzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGFpbiB0cml2aWFsIGNhc2UgdG8gX3NjYWxlX2ludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIENoYWluIHRyaXZpYWwgY2FzZSB0byBfc2NhbGVfaW50LgoKMjAwNS0xMS0yNCAxNzo0NDo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGRlZCB0ZXN0IGZvciBzY2FsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIHNjYWxpbmcuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvYyBmaXguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50ZWQgaGlnaCBwcmVjaXNpb24gc2NhbGluZyBjb2RlLgoKMjAwNS0xMS0yNCAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogZG8gbm90IGNyYXNoIG9uIHBhZD09TlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBkbyBub3QgY3Jhc2ggb24gcGFkPT1OVUxMCgoyMDA1LTExLTI0IDE2OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIENsb3NlcyAjMzE5NTk5CgoyMDA1LTExLTI0IDE0OjM5OjU5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IEZpeCBidWcgIzMxNTAyNzogbWVtb3J5IGxlYWsgaW4gZXhhbXBsZSBjb2RlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgRml4IGJ1ZyAjMzE1MDI3OiBtZW1vcnkgbGVhayBpbiBleGFtcGxlIGNvZGUgaW4gZG9jcy4KCjIwMDUtMTEtMjQgMTI6NDQ6MjUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVubG9jayB0aGUgUFJFUk9MTF9MT0NLIGluIGEgZmFpbHVyZSBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yNCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQGZsdWVuZG8uY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBVbmxvY2sgdGhlIFBSRVJPTExfTE9DSyBpbiBhIGZhaWx1cmUgY2FzZS4KCjIwMDUtMTEtMjQgMTE6MTY6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL25ldC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTI0IDA5OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0yMyAyMjo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCjIwMDUtMTEtMjMgMjI6MjE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdAoKMjAwNS0xMS0yMyAyMToyNDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGQgYSB0b3J0dXJlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCjIwMDUtMTEtMjMgMjE6MTg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvY3JlYXRlLmM6CgkqIHRlc3RzL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi9jYXBzbmVnbzEuYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCjIwMDUtMTEtMjMgMjE6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2xhdC5jOgoJKiB0ZXN0cy9tdXhpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvbXV4aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzoKCSogdGVzdHMvcHJvYmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL3Byb2Jlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvcHJvYmVzL3Byb2JldGVzdC5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoKMjAwNS0xMS0yMyAyMToxMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRToKCSogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOgoJICByZW1vdmUgdHJpZ2dlciBzdWJkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0cmlnZ2VyIHN1YmRpcgoKMjAwNS0xMS0yMyAyMToxMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2Zha2UuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9mYWtlLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgoyMDA1LTExLTIzIDIwOjA0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjYgPT09CgoyMDA1LTExLTIzIDE5OjU1OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNgoKMjAwNS0xMS0yMyAxODowNzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTEtMjMgMTc6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJICBDaHJpc3RpYW4sIGxlYXJuIHRvIGNvbmZpZ3VyZSB5b3VyIC5zc2gvY29uZmlnIGZpbGUsIGFuZCBTVE9QIGNvbW1pdHRpbmcgdG8gdGhpc2ZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENocmlzdGlhbiwgbGVhcm4gdG8gY29uZmlndXJlIHlvdXIgLnNzaC9jb25maWcgZmlsZSwgYW5kIFNUT1AgY29tbWl0dGluZyB0byB0aGlzZmlsZQoKMjAwNS0xMS0yMyAxNjoxMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgIERvYyB1cGRhdGVzLgoKMjAwNS0xMS0yMyAxNTo0OTowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIGdzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICByZW1vdmUgbWVudGlvbnMgb2Ygc2luZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1lbnRpb25zIG9mIHNpbmVzcmMKCjIwMDUtMTEtMjMgMTQ6NTI6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2N1bWVudGF0aW9uIGZpeDogR1NUX1RSWUxPQ0sgLT4gR1NUX09CSkVDVF9UUllMT0NLCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50YXRpb24gdHlwbyBmaXguCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIERvY3VtZW50YXRpb24gZml4ZXMgZm9yIGFyZ3VtZW50cy4KCjIwMDUtMTEtMjMgMTM6MjI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQVBJIENoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBBUEkgQ2hhbmdlcy4KCSAgUmVuYW1lIGdzdF91dGlsX2Nsb2NrX3RpbWVfc2NhbGUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludAoJICBNYWtlIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24gdGFrZSBhIG51bWVyYXRvcgoJICBhbmQgZGVub21pbmF0b3IgYXJndW1lbnQgaW5zdGVhZCBvZiBhIEdWYWx1ZQoJICBhZGQgZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24gaGVscGVyIGZ1bmN0aW9uLgoKMjAwNS0xMS0yMyAxMzoxNDo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHBhcmVudCBmaWVsZHMgZm9yIHRpbWVvdXQgYW5kIHdpbmRvd19zaXplLgoKMjAwNS0xMS0yMyAxMjozOTozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgYWRkIG1pc3NpbmcgY3ZzaWdub3JlcyBzbyBDVlMgc2h1dHMgdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIGN2c2lnbm9yZXMgc28gQ1ZTIHNodXRzIHVwCgoyMDA1LTExLTIzIDEyOjM2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkanVzdCB0byByYXRlX251bS9yYXRlX2Rlbm9tIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGp1c3QgdG8KCSAgcmF0ZV9udW0vcmF0ZV9kZW5vbSBjaGFuZ2UuCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogVGFrZSB0aGUgU0xBVkVfTE9DSyBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBEb24ndCBjYWxsIGFkZF9vYnNlcnZhdGlvbiB3aXRoIHRoZSBsb2NrLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfaW5pdCk6IEluaXRpYWxpemUgdGhlIHJhdGUgYXMgYQoJICBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBBZGp1c3QgdXNpbmcgdWludDY0X3NjYWxlIGFuZCB0aGUKCSAgcmF0ZSBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24sIGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOiBDaGFuZ2UgdG8KCSAgZGVhbCB3aXRoIHJhdGUgYXMgYSBmcmFjdGlvbiB3aG9zZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGFyZQoJICBHc3RDbG9ja1RpbWUgdmFsdWVzLgoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOiBPbmx5IHVzZSB0aGUgT0JKRUNUX0xPQ0sgdG8gc2V0IHRoZQoJICBtYXN0ZXI7IHRoZSBvdGhlciBmaWVsZHMgYXJlIHByb3RlY3RlZCBieSB0aGUgU0xBVkVfTE9DSy4KCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogTm90ZSB0aGF0IHRoaXMgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUKCSAgU0xBVkVfTE9DSy4KCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOiBUYWtlIHRoZSBTTEFWRV9MT0NLLCBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBDYWxsIHNldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mIHRvdWNoaW5nIHRoZQoJICB2YXJpYWJsZXMgZGlyZWN0bHkuCgkgIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5LCBnc3RfY2xvY2tfZ2V0X3Byb3BlcnR5KTogUHJvdGVjdAoJICBtYXN0ZXIvc2xhdmUgcGFyYW1ldGVycyB3aXRoIHRoZSBTTEFWRV9MT0NLLgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSByYXRlLCBhZGQgcmF0ZV9udW1lcmF0b3IgYW5kCgkgIHJhdGVfZGVub21pbmF0b3IuIFBSM0MxUzMuIEFkZCBhIG5ldyBsb2NrLCB0aGUgU0xBVkVfTE9DSywgYW5kCgkgIG5vdGUgdGhhdCBhbGwgb2YgdGhlIGluc3RhbmNlIHZhcmlhYmxlcyB0aGF0IGFkZF9vYnNlcnZhdGlvbiBhbmQKCSAgdGhlIHNldF9tYXN0ZXIgZnVuY3Rpb25zIHVzZSBhcmUgcHJvdGVjdGVkIGJ5IHRoYXQgbG9jayBhbmQgbm90CgkgIHRoZSBPQkpFQ1RfTE9DSy4KCSAgKEdTVF9DTE9DS19TTEFWRV9MT0NLLCBHU1RfQ0xPQ0tfU0xBVkVfVU5MT0NLKTogTmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6IE5vIGxvbmdlciByZXF1aXJlcwoJICB0aGUgY2FsbGVyIHRvIHRha2UgdGhlIG9iamVjdCBsb2NrLgoKMjAwNS0xMS0yMyAxMToyMjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgZXJyb3IgZm9yIGNsb2NrIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCBlcnJvciBmb3IgY2xvY2sgc3R1ZmYuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICBQb3N0IGNsb2NrIGVycm9yIHdoZW4gY2xvY2sgY2Fubm90IGJlIHVzZWQgaW4gYSBwaXBlbGluZS4KCjIwMDUtMTEtMjMgMTE6MDU6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZml4IGRvYyB0eXBvcywgdXBkYXRlIGRvY3MKCjIwMDUtMTEtMjIgMTg6Mjg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBObyBuZWVkIHRvIHN0b3JlIHRoZSBjbG9jaywgdGhlIHBhcmVudCBlbGVtZW50IGNsYXNzIGFscmVhZHkgaGFzIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE5vIG5lZWQgdG8gc3RvcmUgdGhlIGNsb2NrLCB0aGUgcGFyZW50IGVsZW1lbnQgY2xhc3MgYWxyZWFkeQoJICBoYXMgaXQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKToKCSAgVXBkYXRlcyBmb3IgY2xvY2tfc2V0IHJldHVybmluZyBhIGdib29sZWFuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfY2xvY2tfZ2V0X2ludGVybmFsX3RpbWUpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKSwKCSAgKGdzdF9jbG9ja19zbGF2ZV9jYWxsYmFjayksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChnc3RfY2xvY2tfZ2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Nsb2NrX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEltcGxlbWVudCBtYXN0ZXIvc2xhdmUuIFdoZW4gc2V0dGluZyBhIGNsb2NrIGFzIGEgc2xhdmUsIGEKCSAgcGVyaW9kaWMgdGltZW91dCBpcyBzY2hlZHVsZWQgdG8gc2FtcGxlIG1hc3RlciBhbmQgc2xhdmUgdGltZXMuCgkgIFRoZW4gdGhlIHNsYXZlIGNsb2NrIGlzIHJlY2FsaWJyYXRlZCB0byBtYXRjaCBvZmZzZXQgYW5kIHJhdGUKCSAgb2YgdGhlIG1hc3RlciBjbG9jay4KCSAgVXBkYXRlIGxvZ2dpbmcgYSBiaXQuCgkgIEFkZCBmbGFnIHNvIHRoYXQgYSBjbG9jayBjYW4gc3RhdGUgdGhhdCBpcyBjYW5ub3QgYmUgc2xhdmVkIHRvCgkgIGFub3RoZXIgY2xvY2suCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGhlIHNldF9jbG9jayByZXR1cm5zIGEgZ2Jvb2xlYW4gZm9yIHdoZW4gYW4gZWxlbWVudCBjYW5ub3QKCSAgZGVhbCB3aXRoIHRoZSBzZWxlY3RlZCBjbG9jayBpbiB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHNlbGVjdGVkIGNsb2NrIGNhbm5vdCBiZSBzZXQgb24KCSAgdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHJlZ3Jlc3Npb24gY29kZSBpbiBHc3RDbG9jayBwYXJlbnQsIHJlbW92ZSBkdXBsaWNhdGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgoyMDA1LTExLTIyIDE2OjMxOjA4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHVuZGVyc2NvcmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgdW5kZXJzY29yZXMKCjIwMDUtMTEtMjIgMTU6NTI6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZSBkYXNoZWQgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZGF0YV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfc2l6ZXR5cGVfZ2V0X3R5cGUpLCAoZ3N0X2Zha2Vfc3JjX2ZpbGx0eXBlX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19wcmVwYXJlX2J1ZmZlciksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKSwgKGdzdF9mYWtlX3NyY19nZXRfc2l6ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZQoJICBkYXNoZWQgdGFnCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgYWxzbyBzaG93IHRoZSBuaWNrLCBzaW5jZSBpdCdzIHVzZWZ1bCB0byB1c2UgZnJvbSBwYXJzZV9sYXVuY2gKCSAgc3ludGF4CgkgIEZpeGVzICMzMjIxMzkKCjIwMDUtMTEtMjIgMTU6MTU6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9jbG9ja3RpbWVfc2NhbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwKCSAgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCjIwMDUtMTEtMjIgMTQ6Mjk6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IElmIG5lZWRlZCwgYWxsb2NhdGUgc3RvcmFnZSBpbiB0aGUgZGVzdGluYXRpb24gdmFsdWUgZHVyaW5nIGNvbGxlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb25fcmFuZ2UpOgoJICBJZiBuZWVkZWQsIGFsbG9jYXRlIHN0b3JhZ2UgaW4gdGhlIGRlc3RpbmF0aW9uIHZhbHVlIGR1cmluZwoJICBjb2xsZWN0aW9uLgoKMjAwNS0xMS0yMiAxMzo1ODowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFJlbW92ZWQgR3N0VVJJICwgY2xvc2VzIGJ1ZyAjMzIxMDYxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBSZW1vdmVkIEdzdFVSSSAsIGNsb3NlcyBidWcgIzMyMTA2MQoKMjAwNS0xMS0yMiAxMzoxNDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgQWRkIGEgdGVzdCB0byBjYXRjaCBpdCBpbiBmdXR1cmUuCgoyMDA1LTExLTIyIDEzOjAyOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jIChnc3RfdGFnX3NldHRlcl9nZXRfdGFnX21lcmdlX21vZGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYyAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19tZXJnZV9tb2RlKQoJICAoZ3N0X3RhZ19zZXR0ZXJfc2V0X3RhZ19tZXJnZV9tb2RlLCBnc3RfdGFnX3NldHRlcl9nZXRfdGFnX2xpc3QpOgoJICBBY3R1YWxseSByZW5hbWUgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucy4gR3JyLgoKMjAwNS0xMS0yMiAxMjo1MToxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBmaXggYm9ya2VkIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJvcmtlZCBjb21taXQKCjIwMDUtMTEtMjIgMTI6MzU6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2NhcHNsaXN0Lmg6IENvbW1lbnQgdGVzdCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgQ29tbWVudCB0ZXN0IGNhc2VzCgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFRlc3QgYXV0b21hdGljIHZhbHVlIHR5cGUgZGV0ZWN0aW9uIGluIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIEFkZCBmcmFjdGlvbiBhcyBhIHR5cGUgd2UgdHJ5IGFuZCBndWVzcyBhdXRvbWF0aWNhbGx5IGluCgkgIGNhcHMvc3RydWN0dXJlIHN0cmluZ3MuCgoyMDA1LTExLTIyIDEyOjM1OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIHVwZGF0ZSB1cGRhdGUtZnVuY3MgZm9yIHRhZ3NldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVwZGF0ZS1mdW5jcyBmb3IgdGFnc2V0dGVyCgoyMDA1LTExLTIyIDEyOjIwOjA0ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuKjogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpIChnc3RfdGFnX3NldHRlcl9hZGRfdGFncywgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZXMpIChnc3RfdGFnX3NldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggZ214IGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ3MsIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWVzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWxpc3QpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbGlzdF92YWx1ZXMpOiBSZW5hbWVkIGZyb20gX21lcmdlLCBfYWRkLAoJICBfYWRkX3ZhbHVlcywgX2FkZF92YWxpc3QsIGFuZCBfYWRkX3ZhbGlzdF92YWx1ZXMuIFNpbmNlIHRoaXMgaXMgYW4KCSAgaW50ZXJmYWNlIHRoZSBmdW5jdGlvbiBzdWZmaXhlcyBzaG91bGQgYmUgbW9yZSBleHBsaWNpdCBzbwoJICBsYW5ndWFnZSBiaW5kaW5nIGRvbid0IGVuZCB1cCB3aXRoIGVsZW1lbnQuYWRkX3ZhbGlzdCAtPgoJICBnc3RfdGFnX3NldHRlcl9hZGRfdmFsaXN0LCBmb3IgZXhhbXBsZS4gRml4ZXMgIzMyMjA2OS4KCjIwMDUtMTEtMjIgMTI6MTU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgoyMDA1LTExLTIyIDExOjU2OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IEV4dGVuZCBjYXBzIHN0cmluZyB0ZXN0cyB0byBjaGVjayB0aGF0IGEgY2FwcyB0byBzdHJpbmcgY29udmVyc2lvbiBpcyByZXZlcnNpYmxlIGFuZCBwcm9kdWNlcyB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFeHRlbmQgY2FwcyBzdHJpbmcgdGVzdHMgdG8gY2hlY2sgdGhhdCBhIGNhcHMgdG8gc3RyaW5nCgkgIGNvbnZlcnNpb24gaXMgcmV2ZXJzaWJsZSBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgY2Fwcy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpOgoJICBPdXRwdXQgImZyYWN0aW9uIiBhcyB0aGUgZ2VuZXJpYyB0eXBlIGZyYWN0aW9uIHJhbmdlLCBzbyBjYXBzCgkgIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbiB3b3Jrcy4KCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIFN1cHBvcnQgJ01JTicgYW5kICdNQVgnIGZvciBkZXNlcmlhbGlzaW5nIGZyYWN0aW9ucy4KCjIwMDUtMTEtMjIgMTE6NTA6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgTWlub3IgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIGRvYyBmaXguCgoyMDA1LTExLTIyIDExOjQ4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCkgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCwgZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQsIGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUsIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCk6CgkgIFJlbmFtZWQgZnJvbSAqX25ld3NlZ21lbnQsICpfYnVmZmVyc2l6ZSwgKl9ub3RhcmdldC4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6IE5ldyBzY3JpcHQsIHBlcmZvcm1zIHRoZSBjaGFuZ2VzCgkgIGxpc3RlZCBhYm92ZS4KCjIwMDUtMTEtMjIgMTE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIGFkZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbC4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFNtYWxsIHN0eWxlIGNsZWFudXAuCgoyMDA1LTExLTIyIDEwOjI0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jOiBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZCBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZAoJICBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIHJhbmRvbSB0ZXN0IGZhaWx1cmVzLgoKMjAwNS0xMS0yMiAwOTo0MjoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc3VidHJhY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX3N1YnRyYWN0KToKCSAgRml4IHN1YnRyYWN0aW9uLgoKMjAwNS0xMS0yMiAwOTozNToyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5oOiBpbmNsdWRlICJnc3RjaGlsZHByb3h5LmgiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuaDoKCSAgaW5jbHVkZSAiZ3N0Y2hpbGRwcm94eS5oIgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVECgoyMDA1LTExLTIxIDIzOjU0OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEltcGxlbWVudCBmcmFjdGlvbiByYW5nZXMgYW5kIGV4dGVuZCBHc3RGcmFjdGlvbiB0byBzdXBwb3J0IGFyaXRobWV0aWMgc3VidHJhY3Rpb24sIGFzIHdlbGwgYXMgZGVzZXJpYWxpemF0aW9uIGZyb20gaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3JhbmdlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbml0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9mcmVlX2ZyYWN0aW9uX3JhbmdlKSwgKGdzdF92YWx1ZV9jb3B5X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9sY29weV9mcmFjdGlvbl9yYW5nZSksIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21pbiksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21heCksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fZnJhY3Rpb25fcmFuZ2Vfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX211bHRpcGx5KSwKCSAgKGdzdF92YWx1ZV9mcmFjdGlvbl9zdWJ0cmFjdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZnJhY3Rpb24pLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgSW1wbGVtZW50IGZyYWN0aW9uIHJhbmdlcyBhbmQgZXh0ZW5kIEdzdEZyYWN0aW9uIHRvIHN1cHBvcnQKCSAgYXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiwgYXMgd2VsbCBhcyBkZXNlcmlhbGl6YXRpb24gZnJvbSBpbnRlZ2VyCgkgIHN0cmluZ3Mgc3VjaCBhcyAiMTAwIgoJICBBZGQgYSB0ZXN0c3VpdGUgYXMgZm9yIGludCBhbmQgZG91YmxlIHJhbmdlIHNldCBvcGVyYXRpb25zCgoyMDA1LTExLTIxIDE5OjU4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDogQWRkIGdsaWItY29tcGF0LmguCgoyMDA1LTExLTIxIDE5OjEzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggZm9yICMzMjE1OTUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCBmb3IgIzMyMTU5NQoKMjAwNS0xMS0yMSAxOTowMDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgoyMDA1LTExLTIxIDE4OjUzOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuKjogTWFrZSBiaW5kaW5nIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSksIChnc3Rfc2VnbWVudF9nZXRfdHlwZSksCgkgIChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSksIChnc3Rfc2VnbWVudF9pbml0KSwKCSAgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksCgkgIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNYWtlIGJpbmRpbmcgZnJpZW5kbHkuCgoyMDA1LTExLTIxIDE4OjQxOjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3R1dGlscy5oOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgoyMDA1LTExLTIxIDE4OjI3OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogTmV3IGVycm9yIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaCAoR1NUX0NPUkVfRVJST1JfTUlTU0lOR19QTFVHSU4pOiBOZXcgZXJyb3IKCSAgY2F0ZWdvcnkuCgoyMDA1LTExLTIxIDE4OjE2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW0gKGdzdF9oZWFkZXJzKTogQWRkIGdsaWItY29tcGF0LmguIG5vaW5zdCB0aGUgLXByaXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbSAoZ3N0X2hlYWRlcnMpOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgKG5vaW5zdF9IRUFERVJTKTogbm9pbnN0IHRoZSAtcHJpdmF0ZS4KCjIwMDUtMTEtMjEgMTg6MTA6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IFJlbW92ZSB1bmltcGxlbWVudGVkIGRlY2xhcmF0aW9ucyBmb3Igd2hpY2ggd2UgY2FuIHNlZSBubyBzZW5zaWJsZSB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZGVjbGFyYXRpb25zIGZvciB3aGljaCB3ZSBjYW4gc2VlIG5vIHNlbnNpYmxlCgkgIHVzZS4KCjIwMDUtMTEtMjEgMTg6MDM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuaDogSW5jbHVkZSBnbGliLWNvbXBhdC5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIEdfR05VQ19OVUxMX1RFUk1JTkFURUQuCgkgICogZ3N0L2dsaWItY29tcGF0LmM6IEluY2x1ZGUgdGhlIHB1YmxpYyBhbmQgdGhlIHByaXZhdGUgaGVhZGVyLgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6IENvcGllZCBoZXJlIGZyb20gZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IHMvZ2xpYi1jb21wYXQvZ2xpYi1jb21wYXQtcHJpdmF0ZS8uCgoyMDA1LTExLTIxIDE3OjIxOjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYyAoY3JlYXRlX2N1c3RvbV9ldmVudHMpOiBDaGVjayB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jIChjcmVhdGVfY3VzdG9tX2V2ZW50cyk6IENoZWNrIHRoYXQKCSAgRkxVU0hfU1RPUCBpcyBzZXJpYWxpemVkLgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmMgKGV2ZW50X2Z1bmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAoZXZlbnRfZnVuYyk6IE5vIHN0cmVhbSBsb2NrLCB0aGUgY29yZQoJICB0YWtlcyBpdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6IE5vIG1vcmUKCSAgc3RyZWFtIGxvY2sgdGFraW5nLCB5YXkuCgkgICogZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GTFVTSF9TVE9QKTogTWFya2VkIGFzIHNlcmlhbGl6ZWQgdG8KCSAgZW5zdXJlIHRoYXQgY29yZSB0YWtlcyB0aGUgc3RyZWFtIGxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6IFVwZGF0ZSBmb3Igc3RyZWFtCgkgIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6IE5vIG5lZWQgdG8gdGFrZQoJICB0aGUgc3RyZWFtIGxvY2sgZm9yIEVPUywgTkVXU0VHTUVOVCwgb3IgRkxVU0hfU1RPUCwgdGhlIGNvcmUgZG9lcwoJICBpdCBhbHJlYWR5LiBGb3IgdGhlIGZsdXNoIHN0YXJ0IHdlIGRvIHRha2UgaXQgdGhvdWdoIHNvIHdlIGdldCB0aGUKCSAgcmlnaHQgcHJlcm9sbCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBObyBuZWVkIHRvIHRha2UKCSAgdGhlIHN0cmVhbSBsb2NrIGhlcmUsIHRoZSBjb3JlIGRvZXMgaXQgZm9yIHVzLgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9HRVRfU1RSRUFNX0xPQ0spOiBSZW5hbWVkIGZyb20KCSAgR1NUX1NUUkVBTV9HRVRfTE9DSy4KCSAgKEdTVF9QQURfU1RSRUFNX0xPQ0ssIEdTVF9QQURfU1RSRUFNX1RSWUxPQ0spCgkgIChHU1RfUEFEX1NUUkVBTV9VTkxPQ0ssIEdTVF9QQURfU1RSRUFNX1VOTE9DS19GVUxMKQoJICAoR1NUX1BBRF9TVFJFQU1fTE9DS19GVUxMKTogUmVuYW1lZCBmcm9tIEdTVF9TVFJFQU1fKi4KCSAgKEdTVF9QQURfR0VUX1BSRVJPTExfTE9DSyk6IFJlbmFtZWQgZnJvbSBHU1RfUFJFUk9MTF9HRVRfTE9DSy4KCSAgKEdTVF9QQURfUFJFUk9MTF9MT0NLLCBHU1RfUEFEX1BSRVJPTExfVFJZTE9DSykKCSAgKEdTVF9QQURfUFJFUk9MTF9VTkxPQ0spOiBSZW5hbWVkIGZyb20gR1NUX1BSRVJPTExfKi4KCSAgKiBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBmb3Igc3RyZWFtIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXBkYXRlIGZvciBwcmVyb2xsIGxvY2sgbmFtZSBjaGFuZ2UuCgoyMDA1LTExLTIxIDE3OjEyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZ3N0X2Nsb2NrX2dldF9tYXN0ZXIpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIEFkZGVkIG1ldGhvZHMgdG8gbWFuYWdlIG1hc3Rlci9zbGF2ZSBjbG9ja3MuCgoyMDA1LTExLTIxIDE3OjA5OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMsIHJlcGxhY2UgY29kZSBpbiBwbHVnaW5zIHdpdGggc2VnbWVudCBoZWxwZXIgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcywgcmVwbGFjZSBjb2RlIGluIHBsdWdpbnMgd2l0aCBzZWdtZW50CgkgIGhlbHBlciBmdW5jdGlvbnMuCgoyMDA1LTExLTIxIDE2OjQ2OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfdXJpX3NldF91cmkpOgoJICBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCjIwMDUtMTEtMjEgMTY6NDE6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX0lTX1BBRF9GQVNUKTogUmVtb3ZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfSVNfUEFEX0ZBU1QpOiBSZW1vdmVkLgoKMjAwNS0xMS0yMSAxNjozNDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi4qOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9HRVRfTE9DSywgR1NUX09CSkVDVF9MT0NLKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiAqLmg6CgkgICogKi5jOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX0dFVF9MT0NLLCBHU1RfT0JKRUNUX0xPQ0spCgkgIChHU1RfT0JKRUNUX1RSWUxPQ0ssIEdTVF9PQkpFQ1RfVU5MT0NLKTogUmVuYW1lZCBmcm9tCgkgIEdTVF9HRVRfTE9DSywgZXRjLgoJICAqIHNjcmlwdHMvdXBkYXRlLW1hY3JvczogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIHlvdXIgZmlsZXMgdG8KCSAgY2hhbmdlIEdTVF9MT0NLIHRvIEdTVF9PQkpFQ1RfTE9DSywgYW5kIHRoZSBzYW1lIGZvciBVTkxPQ0sgYXMKCSAgd2VsbC4KCjIwMDUtMTEtMjEgMTU6NDc6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBmaXhlcywgYWRkIG5ldyBhcGkgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBtb3JlIGRvY3MgZml4ZXMsIGFkZCBuZXcgYXBpIHRvIHRoZSBkb2NzCgoyMDA1LTExLTIxIDE1OjAxOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzCgkgIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoKMjAwNS0xMS0yMSAxNDo1MzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYyAoZ3N0X3NlZ21lbnRfaW5pdCk6IEluaXRpYWxpemUgYWJzX3JhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RzZWdtZW50LmMgKGdzdF9zZWdtZW50X2luaXQpOiBJbml0aWFsaXplIGFic19yYXRlLgoKMjAwNS0xMS0yMSAxNDo1Mjo1NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IHdyb25nIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KTogRml4IHdyb25nCgkgIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgoyMDA1LTExLTIxIDE0OjUwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OiB3aWxkIGlkZWEsIGNhbiB0aGlzIGJlIGRvbmU/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIHdpbGQgaWRlYSwgY2FuIHRoaXMgYmUgZG9uZT8KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA1LTExLTIxIDE0OjQxOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR1NUX0xJVkVfQlJPQURDQVNULCBHU1RfTElWRV9TSUdOQUwpIChHU1RfTElWRV9USU1FRF9XQUlULCBHU1RfTElWRV9XQUlULCBHU1RfTElWRV9HRVRfQ09ORCkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdTVF9MSVZFX0JST0FEQ0FTVCwgR1NUX0xJVkVfU0lHTkFMKQoJICAoR1NUX0xJVkVfVElNRURfV0FJVCwgR1NUX0xJVkVfV0FJVCwgR1NUX0xJVkVfR0VUX0NPTkQpCgkgIChHU1RfTElWRV9VTkxPQ0ssIEdTVF9MSVZFX1RSWUxPQ0ssIEdTVF9MSVZFX0xPQ0spCgkgIChHU1RfTElWRV9HRVRfTE9DSyk6IE1vdmVkIGhlcmUgZnJvbSBnc3RiYXNlc3JjLmguIFRoZXkgYXJlCgkgIHByaXZhdGUgdG8gdGhlIGJhc2VzcmMgaW1wbGVtZW50YXRpb24uCgoyMDA1LTExLTIxIDE0OjM0OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2VuZF9ldmVudCk6IERvYyBtb3JlLiBUYWtlIHN0cmVhbSBsb2NrIG9uIGJlaGFsZiBvZiBldmVudCBmdW5jdGlvbiBpZiBuZWNlc3NhcnkuIEl0IHNob3VsZCBubyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NlbmRfZXZlbnQpOiBEb2MgbW9yZS4gVGFrZSBzdHJlYW0gbG9jayBvbgoJICBiZWhhbGYgb2YgZXZlbnQgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LiBJdCBzaG91bGQgbm8gbG9uZ2VyIGJlCgkgIG5lY2Vzc2FyeSB0byB0YWtlIHRoZSBzdHJlYW0gbG9jayBpbiBwYWQncyBldmVudCBmdW5jdGlvbnMuIEZpeGVzCgkgICMzMjAyOTkuCgoyMDA1LTExLTIxIDE0OjI4OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKiAoIzMyMjAyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ludCksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2RvdWJsZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgUmVuYW1lIGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfKiB0byBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qCgkgICgjMzIyMDI3KQoKMjAwNS0xMS0yMSAxNDoyNToyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuKjogUG9ydCBmZDovLyBVUkkgaGFuZGxlciBmcm9tIDAuOCB0byBmZHNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19kaXNwb3NlKSwgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdHlwZSksIChnc3RfZmRzcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9mZHNyY191cmlfc2V0X3VyaSksCgkgIChnc3RfZmRzcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgZmQ6Ly8gVVJJIGhhbmRsZXIgZnJvbSAwLjggdG8gZmRzcmMKCjIwMDUtMTEtMjEgMTM6MjY6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcyBhbmQgbW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RzZWdtZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMgYW5kIG1vcmUgY2hlY2tzLgoKMjAwNS0xMS0yMSAxMzoyNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBEcm9wIGxlYWRpbmcgJyUnIGZyb20gR1NUX0ZPVVJDQ19GT1JNQVQsIHRodXMgbWFraW5nIGl0IGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgZm9ybWF0IGRlZmluZXMgKCMzMi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fZm91cmNjX3N0cmluZyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZvdXJjYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIERyb3AgbGVhZGluZyAnJScgZnJvbSBHU1RfRk9VUkNDX0ZPUk1BVCwgdGh1cyBtYWtpbmcgaXQKCSAgY29uc2lzdGVudCB3aXRoIG91ciBvdGhlciBmb3JtYXQgZGVmaW5lcyAoIzMyMDMyNCkuCgoyMDA1LTExLTIxIDEzOjEyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQuIFZhbHVlIGxpc3RzIGFyZSBieSBkZWZpbml0aW9uIG5vdCBmaXhlZCwgYXMgdGhleSBhcmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0LiBWYWx1ZSBsaXN0cyBhcmUgYnkgZGVmaW5pdGlvbgoJICBub3QgZml4ZWQsIGFzIHRoZXkgYXJlIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuCgoyMDA1LTExLTIxIDEzOjAzOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrCgkgIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfbmV3X2ZpbGxlcik6IFJlbW92ZWQuCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBjb21tZW50IGFib3V0IGZpbGxlciBldmVudHMuCgoyMDA1LTExLTIxIDEyOjQyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoKMjAwNS0xMS0yMSAxMjoyNzowMSArMDAwMCAgQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pc19maXhlZCk6IFVzZSBnc3RfdmFsdWVfYXJyYXkgZnVuY3Rpb25zIHRvIGFjY2VzcyBhcnJheXMuIEZpeGVzICMzMjE5NjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvIG5udmEgb3JnPgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaXNfZml4ZWQpOiBVc2UgZ3N0X3ZhbHVlX2FycmF5CgkgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzLiBGaXhlcyAjMzIxOTYyLgoKMjAwNS0xMS0yMSAxMToyNjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZW1vdmUgdW51c2VkIFNJR05BTF9IQU5ET0ZGIGVudW0uCgoyMDA1LTExLTIxIDExOjA2OjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR3N0RXZlbnRUeXBlRmxhZ3MpOiBOZXcgZGF0YSB0eXBlLCB0aGUgZmxhZ3Mgb2YgdGhlIGV2ZW50IHR5cGUgKHVwc3RyZWFtLCBkb3duc3RyZWFtLCBzZXJpYWxpemVkKS4gUmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKEdzdEV2ZW50VHlwZUZsYWdzKTogTmV3IGRhdGEgdHlwZSwgdGhlIGZsYWdzIG9mCgkgIHRoZSBldmVudCB0eXBlICh1cHN0cmVhbSwgZG93bnN0cmVhbSwgc2VyaWFsaXplZCkuIFJlbmFtZWQKCSAgR1NUX0VWRElSXyogYW5kIEdTVF9FVlNFUiB0byBHU1RfRVZFTlRfVFlQRV8qLgoJICAoR3N0RXZlbnRUeXBlKTogVXNlIEdzdEV2ZW50VHlwZUZsYWdzLiBSZW5hbWUgQ1VTVE9NX1VQIHRvCgkgIENVU1RPTV9VUFNUUkVBTSwgQ1VTVE9NX0RTIHRvIENVU1RPTV9ET1dOU1RSRUFNLCBldGMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBmb3IgbmV3IENVU1RPTSBldmVudCBuYW1lcy4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGNoZWNrIGZvciBuZXcgQ1VTVE9NIGV2ZW50IG5hbWVzLgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfdHlwZV9nZXRfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uIEZpeGVzCgkgIGJ1ZyAjMzE5MzkyLgoKMjAwNS0xMS0yMSAxMTowMDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlbmFtZSBnc3RfY29sbGVjcGFkc19mb28oKSA9PiBnc3RfY29sbGVjdF9wYWRzX2ZvbygpLiBEb2N1bWVudCB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucyBhcyB1bmltcGxlbWVudGVkICgjMzIwNzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdF9wYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdF9wYWRzX25ldyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfaXNfYWN0aXZlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCksIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3RfcmFuZ2UpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgUmVuYW1lIGdzdF9jb2xsZWNwYWRzX2ZvbygpID0+IGdzdF9jb2xsZWN0X3BhZHNfZm9vKCkuIERvY3VtZW50CgkgIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zIGFzIHVuaW1wbGVtZW50ZWQgKCMzMjA3NjYpLgoKMjAwNS0xMS0yMSAxMDo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEltcHJvdmUgZG9jcyBmb3IgRFVSQVRJT04gbWVzc2FnZSAodXNhZ2Ugb2YgZHVyYXRpb24gcGFyYW1ldGVyKSAoIzMyMDExMykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgSW1wcm92ZSBkb2NzIGZvciBEVVJBVElPTiBtZXNzYWdlICh1c2FnZSBvZiBkdXJhdGlvbiBwYXJhbWV0ZXIpCgkgICgjMzIwMTEzKQoKMjAwNS0xMS0yMSAxMDowNDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDUtMTEtMjEgMDk6NDQ6NDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5wYyBmaWxlIHRvIHNwZWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgLnBjIGZpbGUgdG8gc3BlYwoKMjAwNS0xMS0yMCAxOToxMTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHNlZ21lbnQgaGVscGVyIHN0cnVjdHVyZSBhbmQgbWV0aG9kcy4gTm90IGZ1bGx5IGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGV2ZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQWRkZWQgc2VnbWVudCBoZWxwZXIgc3RydWN0dXJlIGFuZCBtZXRob2RzLiBOb3QgZnVsbHkgaW1wbGVtZW50ZWQKCSAgeWV0LgoJICBBZGRlZCBzZWdtZW50IGNoZWNrLgoKMjAwNS0xMS0yMCAxNzoxMjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIGEgZGVzZXJpYWxpc2F0aW9uIHRlc3QgZm9yIGZyYWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCBhIGRlc2VyaWFsaXNhdGlvbiB0ZXN0IGZvciBmcmFjdGlvbnMKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAobWFrZV9waXBlbGluZSksIChtYWluKToKCSAgRml4IHVwIG1ldGFkYXRhIHJlYWRpbmcgc2FtcGxlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEZWJ1ZyBmb3JtYXQgZml4CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdHJ5IGFuZCBmaXhhdGUgZW1wdHkgY2FwcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBXcmFwIGluIEdfQkVHSU5fREVDTFMvR19FTkRfREVDTFMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWluYXRvciksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIEFkZCBzb21lIGV4dHJhIGd1YXJkcyB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBlbmQgdXAKCSAgd2l0aCBhbiBpbnZhbGlkIGRlbm9taW5hdG9yIG9mIDAgaW4gYSBnc3RmcmFjdGlvbiBhbmQKCSAgdGhhdCBmcmFjdGlvbnMgYWx3YXlzIGdldCByZWR1Y2VkLgoKMjAwNS0xMS0yMCAxNDo1NjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjaGFuZ2Vsb2cgaW4gbGFzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY2hhbmdlbG9nIGluIGxhc3QgY29tbWl0CgoyMDA1LTExLTIwIDE0OjUwOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMjAgMTM6Mjg6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIGEgcHJvcGVyIGVudW0gb2YgdGhlIGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgTWFrZSBhIHByb3BlciBlbnVtIG9mIHRoZSBmbGFnLgoKMjAwNS0xMS0xOSAxODo1NzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCB0eXBlIHRvIHF1YXJrIGFuZCB0eXBlIHRvIHN0cmluZyBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKSwgKGdzdF9mb3JtYXRfZ2V0X25hbWUpLAoJICAoZ3N0X2Zvcm1hdF90b19xdWFyayksIChnc3RfZm9ybWF0X3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfZ2V0X25hbWUpLCAoZ3N0X3F1ZXJ5X3R5cGVfdG9fcXVhcmspLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgdHlwZSB0byBxdWFyayBhbmQgdHlwZSB0byBzdHJpbmcgY29udmVyc2lvbnMuCgoyMDA1LTExLTE5IDE4OjMyOjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRkxBR19PUklHSU5BTCk6IFJlbW92ZWQuIEZpeGVzICMzMjAwOTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GTEFHX09SSUdJTkFMKTogUmVtb3ZlZC4gRml4ZXMKCSAgIzMyMDA5Ny4KCjIwMDUtMTEtMTkgMTg6Mjg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIG1lc3NhZ2UgaGFuZGxpbmcgb3ZlcnJpZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1ha2UgbWVzc2FnZSBoYW5kbGluZyBvdmVycmlkYWJsZS4KCjIwMDUtMTEtMTkgMTg6MjY6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9JU19VU0FCTEUpOiBSZW1vdmVkLiBGaXhlcyAjMzIxMjM1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfSVNfVVNBQkxFKTogUmVtb3ZlZC4gRml4ZXMgIzMyMTIzNS4KCjIwMDUtMTEtMTkgMTg6MTc6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay4qOiBDaGFuZ2UgcmVzb2x1dGlvbiB0byBiZSBhIEdzdENsb2NrVGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGNsb2NrLmMgKEdzdENsb2NrLCBHc3RDbG9ja0NsYXNzKTogQ2hhbmdlIHJlc29sdXRpb24gdG8KCSAgYmUgYSBHc3RDbG9ja1RpbWUuCgkgIChnc3RfY2xvY2tfc2V0X3Jlc29sdXRpb24sIGdzdF9jbG9ja19nZXRfcmVzb2x1dGlvbik6IFJlc29sdXRpb24KCSAgaXMgYSBHc3RDbG9ja1RpbWUuIEZpeGVzICMzMjE3MTAuCgoyMDA1LTExLTE5IDE4OjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgb2Zmc2V0IHByb3BlcnR5LiBBZGQgaW50ZXJuYWxfY2FsaWJyYXRpb24gYW5kIGV4dGVybmFsX2NhbGlicmF0aW9uLiBGaXggcGFkZGluZy4gUGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIG9mZnNldCBwcm9wZXJ0eS4gQWRkCgkgIGludGVybmFsX2NhbGlicmF0aW9uIGFuZCBleHRlcm5hbF9jYWxpYnJhdGlvbi4gRml4IHBhZGRpbmcuIFBhZAoJICBhbHNvIGJ5IEdzdENsb2NrVGltZSBzbyB3ZSBkb24ndCBydW4gaW50byBwcm9ibGVtcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IFJlbW92ZS4KCSAgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOiBSZW1vdmUuCgkgIChnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0KTogUmVtb3ZlLiBGaXhlcyAjMzIxNzEyLgoKMjAwNS0xMS0xOSAxNzo1MDo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF93YWl0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCkKCSAgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpOiBSZW1vdmVkLCBubyBsb25nZXIgbmVlZGVkLgoJICAqIGdzdC9nc3RiaW4uYzogUmVtb3ZlIHRlcnJpYmxlIGNvbnRpbnVlX3N0YXRlIHByb3RvdHlwZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSk6IE1ha2UgcHVibGljLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogUmVtb3ZlZCwgcmVwbGFjZWQKCSAgYnkgY29udGludWVfc3RhdGUuIEZpeGVzICMzMTkzODkuCgoyMDA1LTExLTE5IDE3OjI4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXhGaWx0ZXIpOiBBY3R1YWxseSBwYXNzIG9uIHRoZSB1c2VyX2RhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleEZpbHRlcik6IEFjdHVhbGx5IHBhc3Mgb24gdGhlIHVzZXJfZGF0YS4KCSAgUmVhbGx5IGZpeGVzICMxNjg0MzguIEhvd2V2ZXIgSSBkb24ndCBzZWUgYW55d2hlcmUgd2hlcmUgdGhlCgkgIGZpbHRlciBmdW5jdGlvbiBpcyBjYWxsZWQuLi4gc3R1cGlkIEdTdHJlYW1lci4uLgoKMjAwNS0xMS0xOSAxNzoyNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4KTogQWRkIGZpZWxkIGZvciB1c2VyX2RhdGFfZGVzdHJveS4gV2UgZG9uJ3QgaGF2ZSBhIGRpc3Bvc2UgZnVuY3Rpb24sIHNvIGl0IHdvbid0IGdldCBjYWxsZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleCk6IEFkZCBmaWVsZCBmb3IgdXNlcl9kYXRhX2Rlc3Ryb3kuIFdlCgkgIGRvbid0IGhhdmUgYSBkaXNwb3NlIGZ1bmN0aW9uLCBzbyBpdCB3b24ndCBnZXQgY2FsbGVkIHdoZW4gdGhlCgkgIG9iamVjdCBpcyB1bnJlZmZlZCwgYnV0IG9oIHdlbGwhCgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwpOiBOZXcgQVBJIGZ1bmN0aW9uLAoJICBhbGxvd3MgYSBkZXN0cm95IGZ1bmN0aW9uIHRvIGJlIHNldCBzbyB1c2VyX2RhdGEgY2FuIGJlIGZyZWVkLgoJICBGaXhlcyAjMTY4NDM4LgoJICAoZ3N0X2luZGV4X3NldF9maWx0ZXIpOiBDYWxsIGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwuCgoyMDA1LTExLTE5IDE3OjA4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYyAodGVzdF9zdHJpbmcpOiBBZGQgdGVzdCBmb3IgYnVnICMxNjU2NTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jICh0ZXN0X3N0cmluZyk6IEFkZCB0ZXN0IGZvciBidWcgIzE2NTY1MC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3N0cmluZ193cmFwKTogVHJ5aW5nIHRvIHNlcmlhbGl6ZSBhIE5VTEwKCSAgc3RyaW5nIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yLCBnaXZlbiB0aGUgbGFjayBvZiBhIHdheSB0bwoJICByZXByZXNlbnQgTlVMTCBzdHJpbmdzLiBGaXhlcyAjMTY1NjUwLgoKMjAwNS0xMS0xOSAxNjo0NjozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmg6IGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX3ZhbHVlKSAoZ3N0X3ZhbHVlX2FycmF5X3ByZXBlbmRfdmFsdWUsIGdzdF92YWx1ZV9hcnJheV9nZXRfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfdmFsdWUpCgkgIChnc3RfdmFsdWVfYXJyYXlfcHJlcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKQoJICAoZ3N0X3ZhbHVlX2FycmF5X2dldF92YWx1ZSk6IE5ldyBBUEksIGNvcGllZCBmcm9tCgkgIGdzdF92YWx1ZV9saXN0XyosIG9ubHkgb3BlcmF0ZXMgb24gYXJyYXlzLgoJICAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfbGlzdF9wcmVwZW5kX3ZhbHVlKQoJICAoZ3N0X3ZhbHVlX2xpc3RfY29uY2F0LCBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSkKCSAgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSk6IE9ubHkgb3BlcmF0ZSBvbiBsaXN0cy4gRml4ZXMgIzE1NjYzMy4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2luaXRfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbQoJICBpbml0X2xpc3QsIGJlY2F1c2UgaXQgd29ya3Mgb24gYm90aC4KCSAgKGNvcHlfZ2FycmF5X29mX2dzdHZhbHVlKTogUmVuYW1lZCBmcm9tIGdzdF92YWx1ZV9saXN0X2NvcHlfYXJyYXkuCgkgIChnc3RfdmFsdWVfY29weV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvcHlfbGlzdC4KCSAgKGdzdF92YWx1ZV9mcmVlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gZnJlZV9saXN0LgoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb2xsZWN0X2xpc3QuCgkgIChnc3RfdmFsdWVfbGNvcHlfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBsY29weV9saXN0LgoJICAoZ3N0X3ZhbHVlX2xpc3Rfb3JfYXJyYXlfcGVla19wb2ludGVyKTogUmVuYW1lZCBmcm9tCgkgIGxpc3RfcGVla19wb2ludGVyLgoJICAoX2dzdF92YWx1ZV9hcnJheV92YWx1ZV90YWJsZSwgX2dzdF92YWx1ZV9saXN0X3ZhbHVlX3RhYmxlKToKCSAgVXBkYXRlIHZhbHVlIHRhYmxlIGZ1bmN0aW9ucy4KCSAgKGdzdF92YWx1ZV9jb21wYXJlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29tcGFyZV9saXN0LgoKMjAwNS0xMS0xOSAxNjowNToxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeCBzb21lIGNvbnN0bmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeAoJICBzb21lIGNvbnN0bmVzcy4KCjIwMDUtMTEtMTkgMTU6NTE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oIChnc3RfdGFnX2xpc3RfZm9yZWFjaCk6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgR3N0VGFnTGlzdCouIEZpeGVzICMxNDM0NzIuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOiBDbGFyaWZ5IHdoYXQgdGhlIGZvcmVhY2gvbWFwIGZ1bmN0aW9ucyBjYW4KCSAgb3IgY2FuJ3QgZG8gdG8gdGhlaXIgYXJndW1lbnRzLgoKMjAwNS0xMS0xOCAxOToyMTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKSwKCSAgKGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOgoJICBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgQ2FsbGlicmF0aW9uIGNhbiBiZSBzZXQgd2l0aCBpbnRlcm5hbCB0aW1lIGVxdWFsIHRvIGN1cnJlbnQKCSAgaW50ZXJuYWwgdGltZSB0b28uCgoyMDA1LTExLTE4IDE4OjU1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlcnJvci4qOiBkb2N1bWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZG9jdW1lbnQKCjIwMDUtMTEtMTggMTg6Mzg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IG9uIHJlcXVpcmVtZW50cyBmb3IgbW92aW5nIHBsdWdpbnMgdG8gZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgb24gcmVxdWlyZW1lbnRzIGZvciBtb3ZpbmcgcGx1Z2lucyB0byBnb29kCgoyMDA1LTExLTE4IDE2OjI0OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBBZGQgbmV0IHBrZ2NvbmZpZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbTogQWRkIG5ldCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTExLTE4IDE2OjA0OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBkb2NzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3MgZml4ZXMKCjIwMDUtMTEtMTggMTU6NTI6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogVHVybiBvZmYgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFR1cm4gb2ZmIGRlYnVnZ2luZy4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFzc2VydCB0aGF0IHRoZQoJICB0aW1lcyBjb25udmVyZ2Ugc29tZXdoYXQuIENhbid0IG1ha2UgYSByZWFsIHRlc3QuCgoyMDA1LTExLTE4IDE1OjMwOjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogVXNlIGFsbCBpbnRlZ2VyIGFyaXRobWV0aWMuIFJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZG9tYWluLCB3aGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChkb19saW5lYXJfcmVncmVzc2lvbik6IFVzZSBhbGwKCSAgaW50ZWdlciBhcml0aG1ldGljLiBSZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGRvbWFpbiwgd2hpY2ggY2FuIGJlCgkgIHNldCBhcyAiaW50ZXJuYWwiIGZvciBnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbi4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mCgkgIHJhdGVfb2Zmc2V0LgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogVXNlIHRoZSByaWdodAoJICBhZGp1c3RtZW50IGFwaS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbikKCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOiBOZXcgZnVuY3Rpb25zLCBvYnNvbGV0ZSB0aGUgb25lcyBJCgkgIGFkZGVkIHllc3RlcmRheS4gRG9oLiBQcmVjaXNpb24gaXNzdWVzIG1lYW4gd2UgaGF2ZSB0byBleHRyYXBvbGF0ZQoJICBmcm9tIGEgcG9pbnQgaW4gdGhlIG1vcmUgcmVjZW50IHBhc3QgdGhhbiAxOTcwLgoJICAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IE1hcmsgYXMKCSAgb2Jzb2xldGUuCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogVXNlIHRoZSByaWdodCBjYWxpYnJhdGlvbiBkYXRhLgoKMjAwNS0xMS0xOCAxNDo0OToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgoyMDA1LTExLTE4IDE0OjEzOjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IFdob29wcywgY2hlY2sgdGhlIHJpZ2h0IGZkLiBBbHNvIGFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBXaG9vcHMsIGNoZWNrIHRoZSByaWdodCBmZC4gQWxzbyBhZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogQWRqdXN0IGZvciBpbnQ2NCBvZmZzZXQuCgkgIChkb19saW5lYXJfcmVncmVzc2lvbik6IEFkZCBhIGNyYXBsb2FkIG9mIGRlYnVnZ2luZy4gU3VidHJhY3Qgb2ZmCgkgIHRoZSBtaW5pbXVtIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBzZXJpZXMgdG8gZGlzY2FyZCB1bm5lZWRlZCBiaXRzLgoJICBVc2Ugb25seSBpbnQgYXJpdGhtZXRpYy4gVGhlcmUgaXMgc3RpbGwgZG91YmxlIGFyaXRobWV0aWMgd2hlbgoJICBjYWxjdWxhdGluZyB0aGUgaW50ZXJjZXB0IHRoYXQgbmVlZHMgZml4aW5nLiBSZXR1cm4gYm9vbGVhbiB0bwoJICBpbmRpY2F0ZSBzdWNjZXNzOyBGQUxTRSB3b3VsZCBtZWFuIHRoZSBkb21haW4gb3IgcmFuZ2UgaXMgdG9vCgkgIGdyZWF0LiBTdGlsbCBuZWVkcyBmaXhlcy4KCjIwMDUtMTEtMTggMTM6MTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RyZWFtIHRpbWUsIHdlIG5lZWQgdG8gc3VidHJhY3QgYWNjdW11bGF0ZWQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHN0cmVhbSB0aW1lLCB3ZSBuZWVkIHRvIHN1YnRyYWN0CgkgIGFjY3VtdWxhdGVkIHRpbWUuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFJlbGVhc2UgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb2YgYXN5bmMKCSAgZW50cmllcy4KCjIwMDUtMTEtMTggMTE6NTc6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6IFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgIFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogTWFrZSB0aGUgcG9ydCByYW5nZSB0aGUgc2FtZSBhcwoJICBmb3IgdGhlIGtlcm5lbDogMCBhc3NpZ25zLCBvdGhlcndpc2UgcG9ydHMgYXJlIGxlc3MgdGhhbgoJICBNQVhVSU5UMTYuCgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBBZGFwdCBmb3IgMCA9PSBrZXJuZWwgYXNzaWducwoJICBwb3J0IGNoYW5nZS4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkZCB0aGUgc3RhcnQKCSAgb2YgYW5vdGhlciB0ZXN0LgoKMjAwNS0xMS0xOCAxMTowMzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZSBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZQoJICBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIEFkZGluZyBhIGNsb2NrIHRvIGEgYmluIHRyaWdnZXJzIGEgY2xvY2sgcHJvdmlkZXIgbWVzc2FnZS4KCSAgTWFrZSBzdXJlIHdlIHJlc2VsZWN0IGEgY2xvY2sgd2hlbiB3ZSByZWNlaXZlZCBhIGNsb2NrIGxvc3QgbWVzc2FnZS4KCSAgS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudCB0aGF0IHByb3ZpZGVkIHRoZSBjbG9jay4KCjIwMDUtMTEtMTggMTA6NTQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQWRqdXN0IHRoZSBjbG9jayBpbml0aWFsbHkgc28gaXQgcHJvZHVjZXMgdmFsdWVzIGFyb3VuZCB0aGUgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IEFkanVzdAoJICB0aGUgY2xvY2sgaW5pdGlhbGx5IHNvIGl0IHByb2R1Y2VzIHZhbHVlcyBhcm91bmQgdGhlIGJhc2UgdGltZS4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOiBUeXBvIGZpeC4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IEFkZCBub3RlIG9uIHdoZW4gdGhlIHNvY2tldCBnZXRzCgkgIGNsb3NlZC4KCjIwMDUtMTEtMTcgMTg6NTA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEZyZWUgcmVtb3RlIGFuZCBsb2NhbCB0aW1lIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpOgoJICBGcmVlIHJlbW90ZSBhbmQgbG9jYWwgdGltZSBhcnJheXMuCgoyMDA1LTExLTE3IDE4OjE4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgoyMDA1LTExLTE3IDE3OjU1OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay86IEFkZCBhIG1vc3QgbWluaW1hbCB0ZXN0IGZvciB0aGUgbmV0IGNsaWVudCBjbG9jay4gTW9yZSB0byBjb21lIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2hlY2tfUFJPR1JBTVMpOgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBBZGQgYSBtb3N0IG1pbmltYWwgdGVzdCBmb3IgdGhlCgkgIG5ldCBjbGllbnQgY2xvY2suIE1vcmUgdG8gY29tZSBsYXRlci4KCSAgKiBnc3QvbmV0L2dzdG5ldC5oOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IEFkZCBuZXRjbGllbnRjbG9jay4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBOZXcgZmlsZXMsIGltcGxlbWVudCBhbiB1bnRlc3RlZAoJICBHc3RDbG9jayB0aGF0IHRha2VzIGl0cyB0aW1lIGZyb20gYSBuZXR3b3JrIHRpbWUgcHJvdmlkZXIuCgkgIEltcGxlbWVudHMgdGhlIGFsZ29yaXRobSBpbiBuZXR3b3JrLWNsb2NrLnNjbS4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKndpbmRvdy1zaXplKik6IFJlbmFtZSBmcm9tCgkgICpxdWV1ZS1sZW5ndGgqLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChuZXR3b3JrLXRpbWUpOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChxLXB1c2gpOiBVcGRhdGUgY2FsbGVycy4KCjIwMDUtMTEtMTcgMTY6MDI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyk6CgkgIEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCjIwMDUtMTEtMTcgMTQ6NTE6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJlZmFjdG9yIHRoZSBzb3J0IGl0ZXJhdG9yIHNvIGl0IGNhbiBiZSB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICBSZWZhY3RvciB0aGUgc29ydCBpdGVyYXRvciBzbyBpdCBjYW4gYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRoZQoJICBMT0NLIHRvby4KCSAgTWFrZSBjbG9jayBzZWxlY3Rpb24gc2VsZWN0IGEgY2xvY2sgY2xvc2VzdCB0byB0aGUgc291cmNlLgoKMjAwNS0xMS0xNyAxMjozNjozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLio6IEFub255bW91cyBzdHJ1Y3RzIGFyZSBhIGdjYyAoYW5kIHNvbWUgb3RoZXIgY29tcGlsZXJzKSBleHRlbnNpb24sIHNvIGRvbid0IHVzZSB0aGVtLiBTaW5jZSB0aGlzIGlzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksCgkgIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KSwgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBBbm9ueW1vdXMgc3RydWN0cyBhcmUgYSBnY2MgKGFuZCBzb21lIG90aGVyIGNvbXBpbGVycykgZXh0ZW5zaW9uLCBzbwoJICBkb24ndCB1c2UgdGhlbS4gU2luY2UgdGhpcyBpcyBvbmx5IGZvciBBQkktY29tcGF0aWJpbGl0eSwgYW5kIG91cgoJICBBUEkvQUJJIGZyZWV6ZSBpcyBvdmVyIGluIGEgZmV3IGRheXMsIHRoaXMgd2hvbGUgdGhpbmcgd2lsbCBvbmx5CgkgIGxhc3QgYSBmZXcgZGF5cywgc28gZG9uJ3QgYm90aGVyIHRyeWluZyB0byB0aGluayB1cCBhIG1lYW5pbmdmdWwKCSAgbmFtZSBmb3IgdGhlIHN0cnVjdC4KCjIwMDUtMTEtMTcgMTE6NTE6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IEFkZCByYXRlIGFuZCBvZmZzZXQgcHJvcGVydGllcywgcHJlc2VydmluZyBBQkkgc3RhYmlsaXR5LiBBZGQgcmF0ZS9vZmZzZXQgYWNjZXNzb3JzLiBXaWxsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBBZGQgcmF0ZSBhbmQgb2Zmc2V0IHByb3BlcnRpZXMsCgkgIHByZXNlcnZpbmcgQUJJIHN0YWJpbGl0eS4gQWRkIHJhdGUvb2Zmc2V0IGFjY2Vzc29ycy4gV2lsbCBmaWxlIGJ1ZwoJICBmb3IgdGhlIGZyZWV6ZSBicmVhay4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IEltcGxlbWVudCB1c2luZyByYXRlCgkgIGFuZCBvZmZzZXQsIHRyeWluZyB0byBrZWVwIHByZWNpc2lvbiBhbmQgYXZvaWRpbmcKCSAgdW5kZXJmbG93L292ZXJmbG93LgoJICAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6IE5ldwoJICBmdW5jdGlvbnMuIE1ha2UgZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCBvYnNvbGV0ZS4KCSAgKGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3QpOiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4KCSAgV2lsbCBmaWxlIGJ1ZyBzb29uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDogTWFrZSB0aGUgQUJJLXN0YWJpbGl0eSBoYWNrCgkgIGdyZXBwYWJsZSBieSB1c2luZyBHU1RfUEFERElORy0xKzEuCgoyMDA1LTExLTE3IDExOjI1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL05PVEVTLTAuMS4xOgoJKiBkb2NzL3JhbmRvbS9OT1RFUy0wLjIuMDoKCSogZG9jcy9yYW5kb20vVE9ETy1wb3N0LTAuMS4wOgoJKiBkb2NzL3JhbmRvbS9hcmNoOgoJKiBkb2NzL3JhbmRvbS9jb3JvdXRpbmVzOgoJKiBkb2NzL3JhbmRvbS9kZXNpZ246CgkqIGRvY3MvcmFuZG9tL2ZhY3RvcnlpbmZvOgoJKiBkb2NzL3JhbmRvbS9nYm9vbGVhbjoKCSogZG9jcy9yYW5kb20vcGFkYXJjaDoKCSogZG9jcy9yYW5kb20vc2VxdWVuY2U6CgkqIGRvY3MvcmFuZG9tL3N0YXRlLXRyYW5zaXRpb25zOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXM6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5uZXc6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5vbGQ6CgkqIGRvY3MvcmFuZG9tL3dhbGt0aHJvdWdoOgoJICByZW1vdmUgY29tcGxldGVseSBvdXRkYXRlZCByYW5kb20gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbXBsZXRlbHkgb3V0ZGF0ZWQgcmFuZG9tIGRvY3MKCjIwMDUtMTEtMTcgMDk6Mzc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpOgoJICBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBEb24ndCB1c2UgYysrIHN0eWxlIGNvbW1lbnRzIGluIGhlYWRlcnMgKCMzMjE2MzgpLgoKMjAwNS0xMS0xNiAxODozNzo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmMgKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6IEZyZWUgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYyAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKTogRnJlZQoJICBidWZmZXIuCgoyMDA1LTExLTE2IDE4OjE2OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0aW1lIHByb3ZpZGVyIGFjdHVhbGx5IHByb3ZpZGVzIHRpbWVzLiBXb3JrcywgeW8hCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHRpbWUKCSAgcHJvdmlkZXIgYWN0dWFsbHkgcHJvdmlkZXMgdGltZXMuIFdvcmtzLCB5byEKCjIwMDUtMTEtMTYgMTg6MDk6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIG1vcmUgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgbW9yZSB0ZXN0cy4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFNldCBlbGVtZW50IHRvIE5VTEwgYmVmb3JlIGRpc3Bvc2luZyBpdC4KCjIwMDUtMTEtMTYgMTc6NTM6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXgKCjIwMDUtMTEtMTYgMTc6NTI6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlCgkgIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiBOZXcgZmlsZXMsIGFic3RyYWN0cyBvdXQgdGhlIHBhY2tldAoJICBzZW5kaW5nIGFuZCByZWNlaXZpbmcuCgoyMDA1LTExLTE2IDE3OjM1OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2FsbG9jX3BhcmVudCksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKToKCSAgRml4IG1lbWxlYWsuCgoyMDA1LTExLTE2IDE3OjIyOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKToKCSAgQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoKMjAwNS0xMS0xNiAxNzoxODozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgdmFsZ3JpbmQgY2hlY2sgdGhhdCBzaG91bGQgd29yayBmaW5lIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjayB0aGF0IHNob3VsZCB3b3JrIGZpbmUgbm93LgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IG1lbWxlYWtzIGluIHBhZCBhbGxvY2F0aW9uLgoKMjAwNS0xMS0xNiAxNjo0OTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC86IE5ldyBwYXJ0IG9mIGNvcmUgdG8gaG9sZCBuZXR3b3JrIGVsZW1lbnRzIGFuZCBvYmplY3RzLiBQdXQgaW4gY29yZSBiZWNhdXNlIGl0IGV4cG9zZXMgQVBJIHRoYXQgYXBwbGljYXRpb25zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9nc3RuZXQuaDogTmV3IHBhcnQgb2YgY29yZSB0byBob2xkIG5ldHdvcmsgZWxlbWVudHMgYW5kCgkgIG9iamVjdHMuIFB1dCBpbiBjb3JlIGJlY2F1c2UgaXQgZXhwb3NlcyBBUEkgdGhhdCBhcHBsaWNhdGlvbnMgd2FudAoJICB0byB1c2UuIFRoZSBsaWJyYXJ5IGlzIG5hbWVkIGxpYmdzdG5ldC10ZW1wbmFtZSByaWdodCBub3cgYmVjYXVzZQoJICBvZiB0aGUgZXhpc3RpbmcgbGliZ3N0bmV0IGluIGdzdC1wbHVnaW5zLWJhc2UuIFNvbHV0aW9uIGlzCgkgIHByb2JhYmx5IHRvIHJlbmFtZSB0aGUgb25lIGluIHBsdWdpbnMtYmFzZTsgd2lsbCBmaWxlIGEgYnVnIGZvcgoJICB0aGUgZnJlZXplIGJyZWFrLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogTmV3IG9iamVjdCB0byBleHBvcnQgYSBHc3RDbG9jaydzCgkgIGdldF90aW1lIGNhbGwgb3ZlciB0aGUgbmV0d29yay4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJfTFRMSUJSQVJJRVMpOiBBZGQgZ3N0bmV0IHRvIHRoZSBidWlsZC4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IEEgbW9zdCBtaW5pbWFsIHRlc3Qgc3VpdGUuIFdpbGwKCSAgZ2V0IGFkZGl0aW9ucyBzaG9ydGx5LgoKMjAwNS0xMS0xNiAxNjowOTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLio6IGFkZCBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgYWRkIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGZ1bmN0aW9ucwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpOgoJICBhbmQgdXNlIHRoZW0KCjIwMDUtMTEtMTYgMTY6MDY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZWQgd2FybmluZywgaXQncyBub3QgcmVhbHkgYW4gZXJyb3IgZWl0aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BhdXNlX3Rhc2spOgoJICBSZW1vdmVkIHdhcm5pbmcsIGl0J3Mgbm90IHJlYWx5IGFuIGVycm9yIGVpdGhlci4KCjIwMDUtMTEtMTYgMTQ6Mjc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIGlmIHRoZSBjYXBzIGFyZSBOVUxMLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIGVsZW1lbnQgaXMgc2h1dHRpbmcgZG93biBhbmQgdGhlIHBhZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBDaGVjayBpZiB0aGUgY2FwcyBhcmUgTlVMTCwgdGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBlbGVtZW50CgkgIGlzIHNodXR0aW5nIGRvd24gYW5kIHRoZSBwYWQgY2FwcyBhcmUgc2V0IHRvIE5VTEwuCgoyMDA1LTExLTE2IDEyOjU3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgoyMDA1LTExLTE2IDEyOjQwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHVzZSBnc3Rfb2JqZWN0X3JlZiB3aGVuIHNldHRpbmcgdGhlIHBhZCB0ZW1wbGF0ZTsgdGhpcyB3aWxsIHRyaWdnZXIgdGhlIHBhZCB0ZW1wbGF0ZSBsZWFrcyBvbiBHTGliIDIuNiBhbmQgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfdmFsdWVfZHVwX2dzdF9vYmplY3QpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3Byb3BlcnR5KToKCSAgdXNlIGdzdF9vYmplY3RfcmVmIHdoZW4gc2V0dGluZyB0aGUgcGFkIHRlbXBsYXRlOyB0aGlzIHdpbGwKCSAgdHJpZ2dlciB0aGUgcGFkIHRlbXBsYXRlIGxlYWtzIG9uIEdMaWIgMi42IGFuZCB0aGUgc2xhdmVzCgoyMDA1LTExLTE2IDEyOjI1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBmdW5jdGlvbnMgY29waWVkIGZyb20gR0xpYiAyLjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnc3RfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlKToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgcmVtb3ZlIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBHTGliIDIuNgoKMjAwNS0xMS0xNiAxMToyOTo1NyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBEb24ndCBsaW5rIGFnYWluc3QgVkFMR1JJTkRfTElCUy4gVGhhdCB3YXMgYWx3YXlzIHRoZSB3cm9uZyB0aGluZyB0byBkbywgYnV0IG9ubHkgYnJlYWtzIHdpdGggbmV3ZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgbGluayBhZ2FpbnN0IFZBTEdSSU5EX0xJQlMuIFRoYXQgd2FzIGFsd2F5cyB0aGUgd3JvbmcgdGhpbmcgdG8KCSAgZG8sIGJ1dCBvbmx5IGJyZWFrcyB3aXRoIG5ld2VyIHZhbGdyaW5kIHZlcnNpb25zLiBXZSdyZSBub3QgYQoJICB2YWxncmluZCB0b29sLCB3ZSBoYXZlIG5vIGxpbmstdGltZSBkZXBlbmRlbmNpZXMgb24gbGliY29yZWdyaW5kLgoKMjAwNS0xMS0xNiAxMTowNjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHNvbWUgZGVidWcgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBzb21lIGRlYnVnIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB0eXBvIGZpeGVzCgoyMDA1LTExLTE1IDIzOjUzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoKMjAwNS0xMS0xNSAxOTo0ODo0MCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBBbmQgZ3N0X29iamVjdF91bnJlZiBoZXJlIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQW5kIGdzdF9vYmplY3RfdW5yZWYgaGVyZSB0b28KCjIwMDUtMTEtMTUgMTk6MzE6MDUgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0LzogRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCjIwMDUtMTEtMTUgMTk6MjQ6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9wcm9wZXJ0eSk6CgkgIEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBHU1RfUEFEX1RFTVBMQVRFKHBhZCkgZG9lcyBhIGNhc3QuIFdlIHdhbnQgdGhlIGZvcm1lciBoZXJlLgoJICAoIzMyMTQ1MikKCjIwMDUtMTEtMTUgMTg6MzQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA1LTExLTE1IDE3OjU3OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKTogQWRkIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6IEFkZCBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKTogRG9jdW1lbnQKCSAgdXNpbmcgR1NUX0NMT0NLX1RJTUVfTk9ORSB0byBkaXNhYmxlIGJhc2UgdGltZSBtYW5hZ2VtZW50LgoJICAoZG9fcGlwZWxpbmVfc2VlaywgZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IERvbid0IHJlc2V0IHN0cmVhbQoJICB0aW1lIGlmIGl0IHdhcyBOT05FIGJlZm9yZS4KCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBPbmx5IG11bmdlIHRoZSBiYXNlIHRpbWUgaWYKCSAgc3RyZWFtX3RpbWUgIT0gR1NUX0NMT0NLX1RJTUVfTk9ORS4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4gQWRkIGEgY2hlY2sgdGhhdCBzZXR0aW5nIHN0cmVhbV90aW1lIHRvIE5PTkUKCSAgZGlzYWJsZXMgYmFzZSB0aW1lIG1hbmFnZW1lbnQuCgoyMDA1LTExLTE1IDE3OjE4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogc2VnbWVudF9zdG9wID09IC0xIGF0IHN0YXJ0dXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIHNlZ21lbnRfc3RvcCA9PSAtMSBhdCBzdGFydHVwLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSW5pdCBzZWdtZW50IHZhbHVlcyBhdCBzdGFydC4KCjIwMDUtMTEtMTUgMTY6NTI6NDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZSBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4uLgoKMjAwNS0xMS0xNSAxNjo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUGFyc2UgbmV3c2VnbWVudCBjb3JyZWN0bHkgaW4gYmFzZXRyYW5zZm9ybQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFN5bmMgdG8gY2xvY2sgdXNpbmcgdXBkYXRlZCBzZWdtZW50IHZhbHVlcy4KCjIwMDUtMTEtMTUgMTY6Mjc6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZSBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZQoJICBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgoyMDA1LTExLTE1IDE1OjQ0OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogU29tZSBtb3JlIFRPRE8gaXRlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBUT0RPIGl0ZW1zLgoKMjAwNS0xMS0xNSAxMjozNTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IEl0J3Mgbm90IGFuIGVycm9yIGlmIHRoZSB1c2VyIHNlbGVjdGVkICJubyBjbG9jayIgYXMgdGhlIGNsb2NraW5nIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJdCdzIG5vdCBhbgoJICBlcnJvciBpZiB0aGUgdXNlciBzZWxlY3RlZCAibm8gY2xvY2siIGFzIHRoZSBjbG9ja2luZyBtZXRob2QuCgoyMDA1LTExLTE1IDEyOjI5OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBOZXcgdGVzdCBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgd2l0aCBsaXZlIGNhcHR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IE5ldyB0ZXN0IGZvciBidWZmZXIKCSAgdGltZXN0YW1wcyB3aXRoIGxpdmUgY2FwdHVyZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSWYgdGhlIGRhdGFyYXRlCgkgIGlzIDAgYnV0IHdlIGFyZSBhIGxpdmUgc291cmNlLCB0aW1lc3RhbXAgdGhlIGJ1ZmZlcnMgdXNpbmcgdGhlCgkgIGVsZW1lbnQncyBjbG9jay4KCjIwMDUtMTEtMTQgMTU6MTU6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgc2VjdGlvbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgbW9yZSBzZWN0aW9uIGRvY3MKCjIwMDUtMTEtMTQgMTQ6NDU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoKMjAwNS0xMS0xNCAxNDozNjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBBbmR5J3MgQU1ENjQgVWJ1bnR1IG1hY2hpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgc3VwcHJlc3Npb25zIGZyb20gQW5keSdzIEFNRDY0IFVidW50dSBtYWNoaW5lCgoyMDA1LTExLTE0IDEyOjQzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBTVEFURV9MT0NLIG5vdCBuZWNlc3NhcnkuIEZpeGVzICMzMTE0ODkuCgoyMDA1LTExLTE0IDEyOjE3OjQ2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcyAjMzA1MjkxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcwoJICAjMzA1MjkxLgoKMjAwNS0xMS0xNCAxMTo1ODo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfb2JqZWN0KTogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9vYmplY3QpOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQKCSAgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA1LTExLTE0IDEwOjQ5OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmVmIHRoZSBzb3VyY2UgcGFkIGNhcHMgd2hpbGUgd2UgbmVlZCB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICBSZWYgdGhlIHNvdXJjZSBwYWQgY2FwcyB3aGlsZSB3ZSBuZWVkIHRoZW0uCgkgIEZpeGVzICgjMzIxMzg2KQoKMjAwNS0xMS0xMiAxMDoyMzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0xMiAxMDowNDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBmaWxlcyBmb3IgSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGZpbGVzIGZvciBIRUFECgoyMDA1LTExLTEyIDEwOjAzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRlYnVnIHRhc2sgam9pbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgdGFzayBqb2luCgoyMDA1LTExLTEyIDEwOjAwOjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCjIwMDUtMTEtMTEgMjA6MTI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU29tZSBzbWFsbCBjb2RlIGV4YW1wbGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9jdW1lbnQgc29tZSBtb3JlLgoKMjAwNS0xMS0xMSAxOToyNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS41ID09PQoKMjAwNS0xMS0xMSAxOToyNDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNQoKMjAwNS0xMS0xMSAxODoyNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBtb3JlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9jb3B5KToKCSAgQ29weSBtb3JlIGZsYWdzLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIEZpeCBzb21lIGRvY3MuCgkgIE1ha2UgX2lzX2VxdWFsIGZhc3QgaW4gdGhlIHRyaXZpYWwgY2FzZXMuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBNb3JlIGRvY3MuIFNwaWZpZnkgLmggZmlsZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDUtMTEtMTEgMTc6MTY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTExLTExIDE2OjM3OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBJZiB3ZSdyZSBwcm9jZXNzaW5nIGEgYnVmZmVyIGFuZCBuZWVkIHRvIGFsbG9jYXRlIGFuIG91dHB1dAoJICBidWZmZXIsIHdlIGNhbm5vdCBhY2NlcHQgYSBmb3JtYXQgY2hhbmdlLiBJZiB3ZSBkaWQgZ2V0IGEKCSAgZm9ybWF0IGNoYW5nZSwgd2UgaGF2ZSB0byBhbGxvYyBhIGJ1ZmZlciBvdXJzZWx2ZXMgb2YgdGhlCgkgIHJpZ2h0IHNpemUuCgoyMDA1LTExLTExIDE2OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGlsZSBjaGVja2luZyB0aGUgZmxhZyBmb3IgcmVlbnRyYW5jeSBpbiB0aGUgZ3N0Y2FwcyBmdW5jdGlvbiBpcyBuaWNlIHRvIGRldGVjdCByZWN1cnNpdmUgaW52b2NhdGlvbnMsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgV2hpbGUgY2hlY2tpbmcgdGhlIGZsYWcgZm9yIHJlZW50cmFuY3kgaW4gdGhlIGdzdGNhcHMgZnVuY3Rpb24KCSAgaXMgbmljZSB0byBkZXRlY3QgcmVjdXJzaXZlIGludm9jYXRpb25zLCBpdCBhbHNvIG1ha2VzIGl0CgkgIGltcG9zc2libGUgdG8gY2FsbCBnZXRjYXBzIGZyb20gbXVsdGlwbGUgdGhyZWFkcywgd2hpY2ggbXVzdCBiZQoJICBwb3NzaWJsZS4gU28sIGNoZWNraW5nIGZvciByZWN1cnNpdmUgY2FsbHMgaGFzIHRvIGdvLgoKMjAwNS0xMS0xMSAxNToxOTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc3luYyBvbiBidWZmZXJzIHRoYXQgZmFsbCBwYXJ0aWFsbHkgb3V0c2lkZSBvdXIgY3VycmVudCBzZWdtZW50LiBQcmV2ZW50cyBhbiBhc3NlcnRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEb24ndCBzeW5jIG9uIGJ1ZmZlcnMgdGhhdCBmYWxsIHBhcnRpYWxseSBvdXRzaWRlIG91ciBjdXJyZW50CgkgIHNlZ21lbnQuIFByZXZlbnRzIGFuIGFzc2VydGlvbiBmYWlsdXJlL2Fib3J0IHBsYXlpbmcgc29tZSBmaWxlcy4KCjIwMDUtMTEtMTAgMTg6MTU6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9tZXNzYWdlX3N0YXRlX2NoYW5nZWRfY2hpbGRyZW4pOiBTdHlsZSBmaXguLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfbWVzc2FnZV9zdGF0ZV9jaGFuZ2VkX2NoaWxkcmVuKTogU3R5bGUKCSAgZml4Li4KCSAgKiBnc3QvZ3N0YnVzLmMgKHBvbGxfZGVzdHJveSwgcG9sbF9mdW5jLCBnc3RfYnVzX3BvbGwpOiBJbXBsZW1lbnQKCSAgZ3N0X2J1c19wb2xsIHdpdGggdGhlIHNpZ25hbCB3YXRjaC4gRW5zdXJlcyB0aGF0IHBvbGwgYW5kIGEgc2lnbmFsCgkgIHdhdGNoIHNlZSB0aGUgc2FtZSBtZXNzYWdlcy4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHRlc3Rfd2F0Y2hfd2l0aF9wb2xsKTogTmV3IHRlc3QsIGNoZWNrcyB0aGF0CgkgIGEgcG9sbCBhbmQgYSB3YXRjaCBhdCB0aGUgc2FtZSB0aW1lIGdldCB0aGUgc2FtZSBtZXNzYWdlcy4KCjIwMDUtMTEtMTAgMTc6Mzc6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogRG9uJ3QgY2FsbCBnc3RfY2Fwc19kb19zaW1wbGlmeSAtIGl0IGRvZXNuJ3QgcmVzcGVjdCBvcmRlciBvZiBjYXBzIGFuZCBpdCdzIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIERvbid0IGNhbGwgZ3N0X2NhcHNfZG9fc2ltcGxpZnkgLSBpdCBkb2Vzbid0IHJlc3BlY3Qgb3JkZXIgb2YgY2FwcwoJICBhbmQgaXQncyBub3QgbmVlZGVkLgoKMjAwNS0xMS0xMCAxNTowNzo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgdG9kby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCB0b2RvLgoKMjAwNS0xMS0xMCAxNDo0NToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogSW1wbGVtZW50IGNsb2NrIHN5bmMgaW4gYmFzZSBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBjbG9jayBzeW5jIGluIGJhc2UgY2xhc3MuCgoyMDA1LTExLTEwIDEyOjMyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGb3J3YXJkLXBvcnQgYSAwLjggcGF0Y2ggdG8gaGFuZGxlIGVzY2FwZWQgc3BhY2VzIGluIHN0cnVjdHVyZSBzdHJpbmcsICAgICAgICAgIHNvIHRoYXQgZ3N0X3BhcnNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9maWVsZCksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRm9yd2FyZC1wb3J0IGEgMC44IHBhdGNoIHRvIGhhbmRsZSBlc2NhcGVkIHNwYWNlcyBpbiBzdHJ1Y3R1cmUgc3RyaW5nLCAgICAgICAgICBzbyB0aGF0IGdzdF9wYXJzZV9sYXVuY2goKSBjYW4gZGVhbCB3aXRoIHNwYWNlcyBpbiBmaWx0ZXJlZCBsaW5rCgkgIGNhcHMgKGZpeGVzICMxNjQ0NzkpCgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgdW5pdCB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2UKCjIwMDUtMTEtMTAgMTE6MTc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggZG9jcywgbW92ZSBzb21lIFNUQVRFIG1hY3JvcyB0byBwcml2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IGRvY3MsIG1vdmUgc29tZSBTVEFURSBtYWNyb3MgdG8gcHJpdmF0ZS4KCjIwMDUtMTEtMTAgMTA6MTc6MDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRnVydGhlciBpbXByb3ZlIHF1ZXJ5IGRvY3MuIFN0aWxsIG5vdCBoYXBweSB3aXRoIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGdXJ0aGVyIGltcHJvdmUgcXVlcnkgZG9jcy4gU3RpbGwgbm90IGhhcHB5IHdpdGggdGhpcy4KCjIwMDUtMTEtMTAgMDk6MTk6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgY2hlY2sgZm9yIGJ1ZyAjMzE3MzQxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBidWcgIzMxNzM0MQoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFNvbWUgbW9yZSBzcGlmZmlmeWluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fbGluayk6CgkgIENhbGwgcGVlciBsaW5rZnVuY3Rpb24gaWYgd2UgYXJlIGEgc291cmNlIHBhZC4gVG90YWxseSBmaXhlcwoJICAjMzE3MzQxCgkgICogZ3N0L2dzdHBhZC5jOgoJICBVcGRhdGUgZG9jcywgc291cmNlIHBhZHMgc2hvdWxkIGNhbGwgdGhlIHBlZXIgbGlua2Z1bmN0aW9uCgkgIHNvIHRoZXkgY2FuIGF0b21pY2FsbHkgcGVyZm9ybSB0aGUgcGFkIGxpbmsuCgoyMDA1LTExLTA5IDE5OjMyOjMyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgSW1wcm92ZS9maXggZG9jdW1lbnRhdGlvbiBmb3IgR3N0UXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXByb3ZlL2ZpeCBkb2N1bWVudGF0aW9uIGZvciBHc3RRdWVyeS4KCSAgVGhpcyBzdGlsbCBuZWVkcyBzb21lIG1vcmUgd29yayB0byBleHBsYWluIHdoYXQgdGhlIHF1ZXJpZXMgYWN0dWFsbHkgbWVhbi4KCjIwMDUtMTEtMDkgMTg6NDE6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNsaWdodGx5IHBvbGlzaCBkb2NzIGZvciBHc3RBZGFwdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU2xpZ2h0bHkgcG9saXNoIGRvY3MgZm9yIEdzdEFkYXB0ZXIuCgoyMDA1LTExLTA5IDE4OjEwOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBVYmVyLXNwaWZmeS1zcGlmZmlmeSBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFViZXItc3BpZmZ5LXNwaWZmaWZ5IHNvbWUgbW9yZS4KCjIwMDUtMTEtMDkgMTc6NTU6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgR1NUX0RFQlVHX0ZVTkNQVFIoKSBtb3JlIGV4dGVuc2l2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFVzZSBHU1RfREVCVUdfRlVOQ1BUUigpIG1vcmUgZXh0ZW5zaXZlbHkuCgoyMDA1LTExLTA5IDE3OjMyOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC4qOiBEb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDUtMTEtMDkgMTc6MDY6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjo0NDo0MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgoyMDA1LTExLTA5IDE2OjMyOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEZpeCByZXZpc2lvbiBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgRml4IHJldmlzaW9uIGRhdGEuCgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MTY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MDA6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNb3ZlZCB0aGUgbWVzc2FnZSBhc3luYyBkZWxpdmVyeSBwcml2YXRlIGxvY2sgYW5kIGNvbmQgdG8gdGhlIHByaXZhdGUgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTW92ZWQgdGhlIG1lc3NhZ2UgYXN5bmMgZGVsaXZlcnkgcHJpdmF0ZSBsb2NrIGFuZCBjb25kCgkgIHRvIHRoZSBwcml2YXRlIHNlY3Rpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXhlZCBkb2NzLgoKMjAwNS0xMS0wOSAxNTozNDo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIERvY3VtZW50IEdzdFVSSUhhbmRsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBEb2N1bWVudCBHc3RVUklIYW5kbGVyCgoyMDA1LTExLTA5IDE1OjMxOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEZpeCBpdGVyYXRvciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwgKGdzdF9pdGVyYXRvcl9mb3JlYWNoKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMS0wOSAxNToxMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnQgYW5vdGhlciBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBEb2N1bWVudCBhbm90aGVyIGZpZWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIERvY3VtZW50LgoKMjAwNS0xMS0wOSAxMzoxNDoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnRlZCBzdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIERvY3VtZW50ZWQgc3RydWN0cy4KCjIwMDUtMTEtMDkgMTI6MzY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcy4KCjIwMDUtMTEtMDkgMTI6MDE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBTb21lIG1vcmUgaXRlbXMgZm9yIHRoZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBpdGVtcyBmb3IgdGhlIFRPRE8KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIERvY3VtZW50IEdzdENhcHMuCgoyMDA1LTExLTA5IDEwOjA2OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdGhlIGJlZ2lubmluZyBvZiBkb2NzIGhlcmUgLS0gaGF2ZSB0byB3b3JrIG9uIHNvbWV0aGluZyBlbHNlIG5vdyB0aG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHRoZSBiZWdpbm5pbmcgb2YgZG9jcyBoZXJlIC0tIGhhdmUKCSAgdG8gd29yayBvbiBzb21ldGhpbmcgZWxzZSBub3cgdGhvLi4uCgoyMDA1LTExLTA5IDA5OjQ4OjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgKGdzdF9maWxlX3Npbmtfc3RvcCk6IE5ldyBmdW5jdGlvbnMsIHJlcGxhY2UgdGhlIHN0YXRlIGNoYW5nZQoJICBoYW5kbGVyLgoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KTogSG9vayB1cCB0aGUgc3RhcnQgYW5kIHN0b3AgZnVuY3Rpb25zLgoJICAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOiBEb24ndCBzZXQgdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyIGFueQoJICBtb3JlLiBJdCB3YXMgYSBiaXQgdWdseSB0b28sIGJlaW5nIHNldCBmcm9tIGhlcmUuLi4KCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5LCBnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSk6CgkgIENsZWFudXBzLi4uCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbik6IE1vcmUgcm9idXN0IGNoZWNrIHRoYXQgZG9lc24ndCBjYWxsCgkgIEdTVF9TVEFURS4gVWdnZ2dnZy4KCjIwMDUtMTEtMDkgMDk6NDc6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICAoZ3N0X2ZpbGVfc2lua19zdG9wKTogTmV3IGZ1bmN0aW9ucywgcmVwbGFjZSB0aGUgc3RhdGUgY2hhbmdlCgkgIGhhbmRsZXIuCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOiBIb29rIHVwIHRoZSBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMuCgkgIChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6IERvbid0IHNldCB0aGUgc3RhdGUgY2hhbmdlIGhhbmRsZXIgYW55CgkgIG1vcmUuIEl0IHdhcyBhIGJpdCB1Z2x5IHRvbywgYmVpbmcgc2V0IGZyb20gaGVyZS4uLgoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHksIGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KToKCSAgQ2xlYW51cHMuLi4KCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKTogTW9yZSByb2J1c3QgY2hlY2sgdGhhdCBkb2Vzbid0IGNhbGwKCSAgR1NUX1NUQVRFLiBVZ2dnZ2dnLgoKMjAwNS0xMS0wOCAxMjozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSG9sZCBTVFJFQU1fTE9DSyB3aGlsZSBwdXNoaW5nIG5ld3NlZ21lbnQgb3IgdGFnIGV2ZW50cyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBIb2xkIFNUUkVBTV9MT0NLIHdoaWxlIHB1c2hpbmcgbmV3c2VnbWVudCBvciB0YWcgZXZlbnRzIGFzIHdlbGwuCgoyMDA1LTExLTA4IDExOjUyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgcmV2ZXJ0IHBhcnQgb2YgdGhlIHBhdGNoIHNvIHRoYXQgcGF0aHMgYXJlIGNvcnJlY3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBwYXJ0IG9mIHRoZSBwYXRjaCBzbyB0aGF0IHBhdGhzIGFyZSBjb3JyZWN0CgoyMDA1LTExLTA4IDExOjEzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQXZvaWQgZXhjZXNzaXZlIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEF2b2lkIGV4Y2Vzc2l2ZSB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2luaXQpLCAoZ3N0X21pbmlfb2JqZWN0X25ldyksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfaW5pdCksCgkgIChnc3Rfb2JqZWN0X2ZpbmFsaXplKToKCSAgUmVtb3ZlIGNydWZ0IGNvZGUsIG9wdGltaXplIGFsbG9jX3RyYWNlLgoKMjAwNS0xMS0wNyAxODoxNjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGZpeCB1cCBQUzEgZm9yIHN5c3RlbXMgdGhhdCB0cnkgdG8gcmVzZXQgaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBmaXggdXAgUFMxIGZvciBzeXN0ZW1zIHRoYXQgdHJ5IHRvIHJlc2V0IGl0CgoyMDA1LTExLTA3IDEwOjMzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgoyMDA1LTExLTA3IDEwOjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBEZWJ1ZyBjYXRlZ29yeSBzaG91bGQgYmUgJ2FkYXB0ZXInLCBub3QgJ0dzdEFkYXB0ZXInLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIERlYnVnIGNhdGVnb3J5IHNob3VsZCBiZSAnYWRhcHRlcicsIG5vdCAnR3N0QWRhcHRlcicuCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgQWRkIGRlYnVnIGNhdGVnb3J5IGFuZCBzb21lIGRlYnVnZ2luZyBvdXRwdXQuIFVzZSBib2lsZXJwbGF0ZQoJICBtYWNyb3MuIFJlbW92ZSBzb21lIGV4dHJhbmVvdXMgd29yZHMgZnJvbSBkb2NzLgoKMjAwNS0xMS0wNSAxNToxNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBTaG9ydGVuIGJ5IDMwJSB2aWEgdXNlIG9mIGJvaWxlcnBsYXRlIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFNob3J0ZW4gYnkgMzAlIHZpYSB1c2Ugb2YgYm9pbGVycGxhdGUKCSAgbWFjcm8uCgoyMDA1LTExLTA0IDIwOjEyOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgYWRkZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIG1vcmUgZG9jcyBhZGRlZAoKMjAwNS0xMS0wNCAxNTozMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgdXBkYXRlIHRvIHN0b3AgYXQgdGhlIGNvbmZpZ3VyZWQgc2VnbWVudF9lbmQgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTbWFsbCB1cGRhdGUgdG8gc3RvcCBhdCB0aGUgY29uZmlndXJlZCBzZWdtZW50X2VuZAoJICBwb3NpdGlvbi4KCjIwMDUtMTEtMDQgMTU6MDI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBhZGRlZCBtaXNzaW5nIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGFkZGVkIG1pc3NpbmcgZG9jcwoKMjAwNS0xMS0wNCAxNDozNToxMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2hlY2sgaWYgd2UgYXJlIGRvaW5nIGEgc2VnbWVudCBzZWVrIGFuZCBoYXZlIGFycml2ZWQgYXQgdGhlIGVuZCBvZiB0aGF0IHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBDaGVjayBpZiB3ZSBhcmUgZG9pbmcgYSBzZWdtZW50IHNlZWsgYW5kIGhhdmUgYXJyaXZlZCBhdCB0aGUKCSAgZW5kIG9mIHRoYXQgc2VnbWVudC4KCjIwMDUtMTEtMDQgMTI6MDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMDQgMTE6NDM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEdldCB0aGUgY29udGV4dCB0byB3YWtlIHVwIG9ubHkgb25jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpOgoJICBHZXQgdGhlIGNvbnRleHQgdG8gd2FrZSB1cCBvbmx5IG9uY2UuCgoyMDA1LTExLTAzIDIwOjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIElmIHdlIGFyZSBnb2luZyB0byBQTEFZSU5HLCBwb3N0IHRoZSByaWdodCBwZW5kaW5nIHN0YXRlCgkgIHdoZW4gd2UgcG9zdCB0aGUgaW50ZXJtZWRpYXRlIHBhdXNlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBwb3N0IHN0YXRlIGNoYW5nZXMgdGhhdCB3ZXJlIGJldHdlZW4gdGhlIHNhbWUgc3RhdGUKCSAgYW5kIHdlcmUgbm90IEFTWU5DLgoKMjAwNS0xMS0wMyAyMDoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSWYgd2UgYXJlIGdvaW5nIHRvIFBMQVlJTkcsIHBvc3QgdGhlIHJpZ2h0IHBlbmRpbmcgc3RhdGUKCSAgd2hlbiB3ZSBwb3N0IHRoZSBpbnRlcm1lZGlhdGUgcGF1c2VkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHBvc3Qgc3RhdGUgY2hhbmdlcyB0aGF0IHdlcmUgYmV0d2VlbiB0aGUgc2FtZSBzdGF0ZQoJICBhbmQgd2VyZSBub3QgQVNZTkMuCgoyMDA1LTExLTAzIDE5OjM4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGRvYyBmaXhlcwoKMjAwNS0xMS0wMyAxNzo1MzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3RfbGl2ZXNyY19zaW5rKTogQWRkIGNoZWNrcyB0aGF0IHRoZSBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2VzIGFjdHVhbGx5IGhhdmUgdGhlIHJpZ2h0IG9yZGVyIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X2xpdmVzcmNfc2luayk6IEFkZCBjaGVja3MgdGhhdCB0aGUKCSAgc3RhdGUtY2hhbmdlZCBtZXNzYWdlcyBhY3R1YWxseSBoYXZlIHRoZSByaWdodCBvcmRlciBhbmQgdGhlIHJpZ2h0CgkgIHZhbHVlcy4KCjIwMDUtMTEtMDMgMTc6MTI6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwKCSAgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFBvc3QgUkVBRFktPlBBVVNFRCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMgdG9vLgoJICBGaXggYnVnIHdoZXJlIFZPSUQgd2FzIHBvc3RlZCBhcyBwZW5kaW5nIHN0YXRlLi4uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICB1c2UgX2VsZW1lbnRfY29udGludWVfc3RhdGUoKSB0byBjb250aW51ZSB0aGUgc3RhdGUgY2hhbmdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgTG90cyBvZiBzdGF0ZSBjaGFuZ2UgY2xlYW51cHMsIGFzc2lnbiB0aGUgU1RBVEVfUkVUVVJOIGluCgkgIGEgbmV3IGNvbnRpbnVlX3N0YXRlKCkgZnVuY3Rpb24gdGhhdCBhbHNvIHByb3BhZ2F0ZXMgdGhlCgkgIGxhc3QgcmV0dXJuIHZhbHVlIGZyb20gYSBzdGF0ZSBjaGFuZ2UgdG8gdGhlIGFwcC4KCSAgVXBkYXRlIHNvbWUgZGVidWcgc3RhdGVtZW50cyB3aXRoIHByb3BlciBjYXRlZ29yeS4KCjIwMDUtMTEtMDMgMTQ6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFBlb3BsZSB0aGluayAhISBpcyB1Z2x5LCB0aGlzIGxvb2tzIGJldHRlci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgUmVtb3ZlICEhIHNpbmNlIGl0J3MgZml4ZWQgZWxzZXdoZXJlIG5vdy4KCjIwMDUtMTEtMDMgMTM6NTI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgISEgdG8gX0ZMQUdfSVNfU0VUIG1hY3JvcyB0byBtYWtlIHRoZSByZXN1bHQgYm9vbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIEFkZCAhISB0byBfRkxBR19JU19TRVQgbWFjcm9zIHRvIG1ha2UgdGhlIHJlc3VsdCBib29sZWFuLgoKMjAwNS0xMS0wMyAxMjo0ODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogY29tcGFyaW5nIGEgZmxhZyBhbmQgYSBnYm9vbGVhbiByYXJlbHkgcmV0dXJucyBjb2hlcmVudCByZXN1bHRzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBjb21wYXJpbmcgYSBmbGFnIGFuZCBhIGdib29sZWFuIHJhcmVseSByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHMuLi4KCSAgQWRkZWQgdHdvIGNoYXJhY3RlcnMgKCEhKSB0byBtYWtlIHRoYXQgd29yayBjb3JyZWN0bHkuCgoyMDA1LTExLTAzIDEyOjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgRml4IHNvbWUgdHlwb3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIERvbid0IGFzc3VtZSBhIG1pbmlvYmplY3QgdGhhdCBpc24ndCBhIGJ1ZmZlciBpcyBhbgoJICBldmVudCAoaXQgY291bGQgYmUgdGhhdCB0aGVyZSBpcyBhIHJlZmNvdW50aW5nCgkgIHByb2JsZW0gc29tZXdoZXJlIGFuZCB0aGUgcG9pbnRlciBpcyBzdGFsZSBhbmQKCSAgcmVmZXJzIHRvIGFuIGFscmVhZHkgZGVzdHJveWVkIG1pbmlvYmplY3QpLgoKMjAwNS0xMS0wMyAxMDo1NjoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKTogRml4IHNvbWUgdHlwb3MuCgoyMDA1LTExLTAzIDA5OjE4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOiBVcGRhdGUgc2VlayBleGFtcGxlIGFuZCBleHBsYW5hdGlvbnMgdG8gY3VycmVudCAwLjkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFVwZGF0ZSBzZWVrIGV4YW1wbGUgYW5kIGV4cGxhbmF0aW9ucyB0byBjdXJyZW50IDAuOSBBUEkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUmVtb3ZlIEZJWE1FIGNvbW1lbnQgbm93IHRoYXQgdGhlIGZvdW5kIGNhcHMKCSAgYXJlIHVucmVmZmVkLgoKMjAwNS0xMS0wMyAwMDozOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBBZGQgYW5vdGhlciBHU1RfU1RSX05VTEwgaW5zdGFuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBhbm90aGVyIEdTVF9TVFJfTlVMTCBpbnN0YW5jZQoKMjAwNS0xMS0wMiAxOTowNDoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRm9sbG93LXVwIHRvIFdpbSdzIHBhdGNoLCBzb2x2ZXMgZGVhZGxvY2sgZm9yIGJsb2NrZWQgYW5kIGZsdXNoaW5nIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoaGFuZGxlX3BhZF9ibG9jayk6CgkgIEZvbGxvdy11cCB0byBXaW0ncyBwYXRjaCwgc29sdmVzIGRlYWRsb2NrIGZvciBibG9ja2VkIGFuZCBmbHVzaGluZyBwYWRzCgoyMDA1LTExLTAyIDE4OjQ0OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6CgkgIFJlbW92ZSB1bnVzZWQgdmFsdWUuCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIE1lbnRpb24gdGhhdCB0aGUgcmV0dXJuZWQgZWxlbWVudCBpcyByZWZmZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTExLTAyIDE4OjMzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVbmxvY2sgYmxvY2tlZCBwYWRzIHdoZW4gdGhleSBhcmUgZmx1c2hlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgVW5sb2NrIGJsb2NrZWQgcGFkcyB3aGVuIHRoZXkgYXJlIGZsdXNoZWQuCgoyMDA1LTExLTAyIDE1OjM0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBkb2MgdXBkYXRlcwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIGZpeCBmb3IgYSBuYXN0eSBsaXR0bGUgbWlzc2VkIHNpdHVhdGlvbiB3aGVyZSBhbiBpbnN0YWxsZWQgcGx1Zy1pbgoJICB3aGljaCB3YXMgaW4gdGhlIGNhY2hlIGRpZCBub3QgZ2V0IG92ZXJyaWRkZW4gYnkgYW4gdW5pbnN0YWxsZWQgb25lCgkgIHdoaWNoIHdhcyBlYXJsaWVyIGluIHRoZSBwbHVnaW4gcGF0aCBiZWNhdXNlIHRoZSBuZXdseSBjcmVhdGVkIHBsdWdpbgoJICBmb3IgdGhlIHVuaW5zdGFsbGVkIG9uZSAobm90IGluIHRoZSByZWdpc3RyeSkgZGlkbid0IGdldCBpdHMKCSAgLT5yZWdpc3RlcmVkIHNldCB0byBUUlVFCgoyMDA1LTExLTAyIDE1OjA4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogR3VhcmQgcHVibGljIEFQSSB3aXRoIGFzc2VydGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpOgoJICBHdWFyZCBwdWJsaWMgQVBJIHdpdGggYXNzZXJ0aW9ucy4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2NzIGZvciBnc3RfcGFkX3NldF9saW5rX2Z1bmN0aW9uKCkuCgoyMDA1LTExLTAyIDE0OjI4OjAyICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKTogVW5yZWYgZm91bmRfY2FwcyBhZnRlciB3ZSB1c2VkIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVucmVmIGZvdW5kX2NhcHMgYWZ0ZXIgd2UgdXNlZCBpdC4KCjIwMDUtMTEtMDIgMTI6MjA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCB0cnkgdG8gcmVmIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfcGVlayk6CgkgIERvbid0IHRyeSB0byByZWYgTlVMTC4KCjIwMDUtMTEtMDIgMDk6MzE6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6Mjc6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6MjQ6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZ2VuZXJhdGVkIGNvbmZpZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGdlbmVyYXRlZCBjb25maWcKCjIwMDUtMTEtMDIgMDk6MjQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCjIwMDUtMTEtMDIgMDg6NTY6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCjIwMDUtMTEtMDEgMTk6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBtb3JlIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyB1cGRhdGVzCgoyMDA1LTExLTAxIDE3OjQ1OjQ2ICswMDAwICBMdWNhIE9nbmliZW5lIDxsdW9nbmlAdGluLml0PgoKCSAgZ3N0L2dzdC5jOiBmaXggZG9jcy4gcG9wdCBpcyBkZWF0aCwgbG9uZyBsaXZlIEdPcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgZml4IGRvY3MuIHBvcHQgaXMgZGVhdGgsIGxvbmcgbGl2ZSBHT3B0aW9uLgoKMjAwNS0xMC0zMSAxMTo0NDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBTbWFsbCBkb2MgZml4LgoKMjAwNS0xMC0zMSAwOTo1MjoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQm9vIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBCb28hCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9jaGFpbik6IEZpeCBkb3duc3RyZWFtIGxlYWt5IG1vZGUuCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6IE5vCgkgIG5lZWQgdG8gc2VyaWFsaXplIHByb3BlcnR5IG5vdGlmaWNhdGlvbnMgb24gR0xpYiAyLjguIEdMaWIgMi42IGhhcwoJICB0aGUgcG9zc2liaWxpdHkgb2YgZGVhZGxvY2tzIGhlcmUgaWYgY29kZSBjYWxsaW5nIG5vdGlmeSgpIG9yCgkgIHNldCgpIGhhcyBhIGxvY2sgdGhhdCBjYW4gYmUgdGFrZW4gaW4gYW5vdGhlciBub3RpZnkgaGFuZGxlciAoQUJCQQoJICB3aXRoIGNsYXNzIGxvY2sgYW5kIGUuZy4gcHl0aG9uIEdJTCBzdGF0ZSBsb2NrKS4KCjIwMDUtMTAtMjggMTg6MTg6MjMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjggIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IERvYyB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxODoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCjIwMDUtMTAtMjggMTg6MTA6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2dzdC86IHRoZSBHc3RVUklUeXBlIGRvY3VtZW50YXRpb24gcGFnZSBpcyBwcml2YXRlLCBpdCBvbmx5IGRlZmluZXMgR3N0VVJJVHlwZSB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgR3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0aGUgR3N0VVJJVHlwZSBkb2N1bWVudGF0aW9uIHBhZ2UgaXMgcHJpdmF0ZSwgaXQgb25seSBkZWZpbmVzIEdzdFVSSVR5cGUKCSAgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIEdzdFVSSUhhbmRsZXIgcGFnZQoKMjAwNS0xMC0yOCAxNzozNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxNzozNTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50ZWQgdGhlIGNsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG9jdW1lbnRlZCB0aGUgY2xvY2tzLgoKMjAwNS0xMC0yOCAxNzozNDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlZCBjb25maWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgY29uZmlnCgoyMDA1LTEwLTI4IDE3OjIwOjQ1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFdvcmsgYXJvdW5kIGd0a2RvYyBkZWZpY2llbmNpZXMsIGRvY3VtZW50IGEgbWFjcm8gZGlmZmVyZW50bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBXb3JrIGFyb3VuZCBndGtkb2MgZGVmaWNpZW5jaWVzLCBkb2N1bWVudCBhIG1hY3JvIGRpZmZlcmVudGx5LgoKMjAwNS0xMC0yOCAxNzowMToxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIEdzdEJ1ZmZlciBkb2N1bWVudGF0aW9uLiBJdCdzIG5vdyAxMDAlIFNwaWZmaWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZSBHc3RCdWZmZXIgZG9jdW1lbnRhdGlvbi4gSXQncyBub3cgMTAwJSBTcGlmZmllci4KCjIwMDUtMTAtMjggMTY6NTQ6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMjggMTY6NDY6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vdmUgc29tZSBtYWNyb3MgdG8gcHJpdmF0ZSBzZWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIHNvbWUgbWFjcm9zIHRvIHByaXZhdGUgc2VjdGlvbnMKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGFkZCBkZXNjcmlwdGlvbnMgcHJvdmlkZWQgYnkgZHMgYW5kIHNvbWUgbW9yZQoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbWFyayBtYWNybyBhcyB0byBiZSByZW1vdmVkCgoyMDA1LTEwLTI4IDE2OjIxOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMC0yOCAxNjowODo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgYWRkIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3R5bGUgZ3VpZGUKCjIwMDUtMTAtMjggMTA6NDU6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IGxlYWsgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KToKCSAgRG9uJ3QgbGVhayBjbGFzcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfbG9vcCk6CgkgIEFuIEVPUyBldmVudCBtYXJrcyB0aGUgcXVldWUgYXMgY29tcGxldGVseSBmaWxsZWQuCgoyMDA1LTEwLTI3IDIwOjU5OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCBkZWJ1Z2dpbmcsCgkgIFByb3RlY3QgdHJhbnNmb3JtIGFuZCBjb25jdXJyZW50IGJ1ZmZlciBhbGxvYyB3aXRoIGEgbmV3IGxvY2suCgkgIFRyeSBub3QgdG8gYnJlYWsgQUJJL0FQSS4KCjIwMDUtMTAtMjcgMTk6Mzc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1vdmUgc29tZSBzdHVmZiBhcm91bmQgYW5kIGNsZWFudXAgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3VubG9jayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19kZWFjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNb3ZlIHNvbWUgc3R1ZmYgYXJvdW5kIGFuZCBjbGVhbnVwIHRoaW5ncy4KCjIwMDUtMTAtMjcgMTU6NDg6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgoyMDA1LTEwLTI3IDEzOjQ3OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBbiBleHRyYSByZWZjb3VudCBpcyB0YWtlbiBpbiBiYXNlc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFuIGV4dHJhIHJlZmNvdW50IGlzIHRha2VuIGluIGJhc2VzcmMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBTbWFsbCBjbGVhbnVwcywgY2hlY2sgZm9yIGZsdXNoaW5nIGFmdGVyIGJlaW5nIHVubG9ja2VkIGZyb20gdGhlCgkgIExJVkVfTE9DSy4gdGFrZSByZWZjb3VudHMgY29ycmVjdGx5IChub3QgeWV0IGV2ZXJ5d2hlcmUpLgoJICBEb24ndCBzZW5kIG91dCBFT1Mgd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDUtMTAtMjcgMDg6NTU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIG1vcmUgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgUmVtb3ZlIG9sZCBvcHRpb24uCgoyMDA1LTEwLTI2IDE4OjU3OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXhpbmcgZXhhbXBsZXMgZml4aW5nIGRvY3MgdHlwb3MgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBmaXhpbmcgZXhhbXBsZXMKCSAgZml4aW5nIGRvY3MgdHlwb3MKCSAgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCjIwMDUtMTAtMjYgMTA6MTE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBtYWtlIHN1cmUgZGlycyBnZXQgY2hlY2tlZCBvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBkaXJzIGdldCBjaGVja2VkIG91dAoKMjAwNS0xMC0yNiAwOTo1Njo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgZml4IGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0CgoyMDA1LTEwLTI1IDE3OjQxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIGRvYyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgU29tZSBkb2MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIENhY2hlIHByZXZpb3VzbHkgcmVxdWVzdGVkIHF1ZXJ5IERVUkFUSU9OIGZvciBzcGVlZC4gaW52YWxpZGF0ZQoJICBjYWNoZWQgZHVyYXRpb24gaWYgZWxlbWVudCBwb3N0cyBhIERVUkFUSU9OIG1lc3NhZ2UuCgoyMDA1LTEwLTI1IDE1OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEhhbmRsZSBTRUdNRU5UX1NUQVJUL0RPTkUgbWVzc2FnZXMgY29ycmVjdGx5LgoJICBNb3JlIGV2b2x2ZWQgcXVlcnkgYWxnb3JpdGhtIHRoYXQgaGFuZGxlcyBkdXJhdGlvbiBxdWVyaWVzCgkgIGNvcnJlY3RseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9xdWVyeSksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgZG9jLgoKMjAwNS0xMC0yNSAxMDoxNTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVzZSBpbnZhbGlkIHN0cmVhbV90aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCB1c2UgaW52YWxpZCBzdHJlYW1fdGltZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIHN0cmVhbV90aW1lIGluIG5ld3NlZ21lbnQgY2Fubm90IGJlIHVuZGVmaW5lZC4KCjIwMDUtMTAtMjUgMTA6MTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0aGUgY2hhbmdlbG9nIGxhc3QgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBjaGFuZ2Vsb2cgbGFzdCB0aW1lCgoyMDA1LTEwLTI0IDE1OjQxOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIERvYyBmaXguCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKToKCSAgRml4IHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIFFVRVVFX0xPQ0sgaXMgdGFrZW4gYmVmb3JlIFNUUkVBTV9MT0NLLgoKMjAwNS0xMC0yNCAxMTo1NjowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL3RtcGwvOiB0aGVzZSBhcmUgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBsaW5pbnQuc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSAgdGhlc2UgYXJlIG9ic29sZXRlCgoyMDA1LTEwLTI0IDA5OjEzOjI3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoKMjAwNS0xMC0yMyAyMzowNDozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS40ID09PQoKMjAwNS0xMC0yMyAyMjozMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHRpbWUgdG8gcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGltZSB0byByZWxlYXNlCgoyMDA1LTEwLTIzIDEwOjQ5OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBhZGQgbW9yZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgZmlsZXMKCjIwMDUtMTAtMjMgMTA6Mjk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogVXNlIGZzZWVrbygpIGFuZCBmdGVsbG8oKSBpZiBhdmFpbGFibGUuIFdoZW4gZmFsbGluZyBiYWNrIG9uIGxzZWVrKCkgdG8gZ2V0IHRoZSBjdXJyZW50IG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpOgoJICBVc2UgZnNlZWtvKCkgYW5kIGZ0ZWxsbygpIGlmIGF2YWlsYWJsZS4gV2hlbiBmYWxsaW5nIGJhY2sgb24KCSAgbHNlZWsoKSB0byBnZXQgdGhlIGN1cnJlbnQgb2Zmc2V0LCBmZmx1c2goKSBmaXJzdCB0byBtYWtlIHN1cmUKCSAgZXZlcnl0aGluZyBpcyB1cC10by1kYXRlIGFuZCB3ZSBnZXQgdGhlIHJpZ2h0IG9mZnNldC4KCjIwMDUtMTAtMjMgMDk6MDg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIHJlbW92ZSBwcmVtYXR1cmVseSBhZGRlZCBlcnJvciBjYXRlZ29yeSBhbmQgY2xlYW4gdXAgdGhlIGluc3RhbmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHByZW1hdHVyZWx5IGFkZGVkIGVycm9yIGNhdGVnb3J5IGFuZCBjbGVhbiB1cCB0aGUgaW5zdGFuY2VzCgoyMDA1LTEwLTIxIDE3OjUzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwKCSAgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIG9iamVjdAoJICBsb2NrICh0aGF0IGNvdWxkIHRha2UgdGhlIGxvY2sgYXMgd2VsbCBhbmQgZGVhZGxvY2spCgoyMDA1LTEwLTIxIDE2OjE4OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB3YXJuLCB0aGUgcGVlciBlbGVtZW50IGtub3dzIHdoYXQgdG8gZG8gYmVzdCB3aGVuIHRoZSBzZWVrIGZhaWxlZCwgaXQgbWlnaHQgdHJ5IHNvbWV0aGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3Qgd2FybiwgdGhlIHBlZXIgZWxlbWVudCBrbm93cyB3aGF0IHRvIGRvIGJlc3Qgd2hlbgoJICB0aGUgc2VlayBmYWlsZWQsIGl0IG1pZ2h0IHRyeSBzb21ldGhpbmcgZWxzZS4KCjIwMDUtMTAtMjEgMTY6MTQ6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBGaXggc2Vla2luZy4KCjIwMDUtMTAtMjEgMTU6MTM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgTW9yZSBkb2NzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIENvcnJlY3RseSBzZXQgY2FwcywgZXZlbiBvbiB0aGUgc3ViYnVmZXIuCgoyMDA1LTEwLTIxIDExOjM2OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZmluYWxpemUpLCAoZ3N0X3Rhc2tfZnVuYyk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoKMjAwNS0xMC0yMSAwOToyNDoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50IHBvc2l0aW9uIHJlcG9ydGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50CgkgIHBvc2l0aW9uIHJlcG9ydGluZy4KCjIwMDUtMTAtMjAgMjE6MDg6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoZ3N0X2Vycm9yX2dldF9tZXNzYWdlKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMjA6NDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBbm90aGVyIDElIG1vcmUgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgIEFub3RoZXIgMSUgbW9yZSBjb3ZlcmFnZS4KCjIwMDUtMTAtMjAgMjA6MjU6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBZYXkhIDElIG1vcmUgZG9jcyBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgWWF5ISAxJSBtb3JlIGRvY3MgY292ZXJhZ2UuCgoyMDA1LTEwLTIwIDE5OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgoyMDA1LTEwLTIwIDE5OjMwOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRhc2suKjogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMTc6MjI6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJld29ya2VkIHRoZSBtZXNzYWdlIGhhbmRsaW5nIGEgYml0LCBjYWNoZSB0aGUgbWVzc2FnZXMgaW5zdGVhZCBvZiBvbmx5IHRoZSBzZW5kZXJzLiBhbG93cyB1cyB0byBkbyBtb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBSZXdvcmtlZCB0aGUgbWVzc2FnZSBoYW5kbGluZyBhIGJpdCwgY2FjaGUgdGhlIG1lc3NhZ2VzIGluc3RlYWQgb2YKCSAgb25seSB0aGUgc2VuZGVycy4gYWxvd3MgdXMgdG8gZG8gbW9yZSBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMC0yMCAxNzoxODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBEb24ndCB1c2UgY2xvY2sgdGltZSB0byByZXBvcnQgcG9zaXRpb24gd2hlbiBpbiBFT1MuCgoyMDA1LTEwLTIwIDEzOjEwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGludGVyZmFjZSBvdXRwdXQgd2l0aCBnc3QtaW5zcGVjdCAtYTsgZG9uJ3QgcHJpbnQgbmV3bGluZXMgYWZ0ZXIgZG91YmxlL2Zsb2F0IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBpbnRlcmZhY2Ugb3V0cHV0IHdpdGggZ3N0LWluc3BlY3QgLWE7IGRvbid0IHByaW50CgkgIG5ld2xpbmVzIGFmdGVyIGRvdWJsZS9mbG9hdCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0yMCAxMTo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNwZWVkIHVwIGN1cnJlbnQgcG9zaXRpb24gY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgU3BlZWQgdXAgY3VycmVudCBwb3NpdGlvbiBjYWxjdWxhdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgIENvcnJlY3RseSBzZXQgc3RyZWFtIHBvc2l0aW9uIGluIG5ld3NlZ21lbnQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChhZGRfdG9fcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgIENsZWFuIHVwIGRlYnVnZ2luZyBpbmZvCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUGF1c2UgdGFzayBmYXN0ZXIuCgoyMDA1LTEwLTE5IDE3OjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IHF1ZXJ5IGhhbmRsaW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZG9fcGxheWluZyk6CgkgIEZpeCBxdWVyeSBoYW5kbGluZyBhZ2Fpbi4KCjIwMDUtMTAtMTkgMTU6NTA6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBUEkgY2hhbmdlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGRvX3BsYXlpbmcpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoZmluZF9lbGVtZW50X2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgQVBJIGNoYW5nZSBmaXguCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9uZXdfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQnVuZGxpbmcgcXVlcnkgcG9zaXRpb24vZHVyYXRpb24gaXMgbm90IGEgZ29vZCBpZGVhIHNpbmNlIGR1cmF0aW9uCgkgIGRvZXMgbm90IGNoYW5nZSBtdWNoIGFuZCB3ZSBkb24ndCB3YW50IHRvIHJlY2FsY3VsYXRlIGl0IGZvciBldmVyeQoJICBwb3NpdGlvbiBxdWVyeSwgc28gdGhleSBhcmUgc2VwYXJhdGVkIGFnYWluLi4KCSAgQmFzZSB2YWx1ZSBpbiBzZWdtZW50IHF1ZXJ5IGlzIG5vdCBuZWVkZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfZHVyYXRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBVcGRhdGVzIGZvciBxdWVyeSBBUEkgY2hhbmdlLgoJICBBZGRlZCBzb21lIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA1LTEwLTE5IDExOjQzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogd2FpdCBvbiB0aHJlYWQgdG8gZGllIHNvIHdlIGNhbiBjaGVjayByZWZjb3VudCBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHdhaXQgb24gdGhyZWFkIHRvIGRpZSBzbyB3ZSBjYW4gY2hlY2sgcmVmY291bnQgY29ycmVjdGx5CgoyMDA1LTEwLTE5IDExOjQzOjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHRvb2xzIHBhY2thZ2UgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdG9vbHMgcGFja2FnZSBuYW1pbmcKCjIwMDUtMTAtMTkgMTE6NDI6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2cgYW4gaWYgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgYW4gaWYgYnJhbmNoCgoyMDA1LTEwLTE4IDE3OjMwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIGNoZWNrIGEgbGl0dGxlIG1vcmUgdGltZSBjb25zdW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBjaGVjayBhIGxpdHRsZSBtb3JlIHRpbWUgY29uc3VtaW5nLgoKMjAwNS0xMC0xOCAxNzowNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSksIChtYWluKToKCSAgU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGRvX3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBOZXZlciB0YWtlIHN0YXRlIGxvY2sgZnJvbSBzdHJlYW1pbmcgdGhyZWFkLCBjbGVhbiB1cCB1Z2x5CgkgIGhhY2tzLiBVbmZvcnR1bmF0bHkgY29yZSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBuaWNlIHdheXMgdG8KCSAgYXN5bmMgY29tbWl0IHN0YXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgU3RhcnQgc3RhdGUgcmVjYWxjIGlmIGEgU1RBVEVfRElSVFkgbWVzc2FnZSBpcyBwb3N0ZWQsIGJ1dCBvbmx5CgkgIG9uIHRoZSB0b3BsZXZlbCBiaW4uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBTdGF0ZSB2YXJpYWJsZXMgYXJlIG5vdyBwcm90ZWN0ZWQgd2l0aCB0aGUgTE9DSywgdGhlIHN0YXRlCgkgIGxvY2sgaXMgb25seSB1c2VkIHRvIHNlcmlhbGl6ZSBfc2V0X3N0YXRlKCkuCgoyMDA1LTEwLTE4IDE2OjI1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZCB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfZGlydHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZAoJICB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gYSBzdHJlYW1pbmcKCSAgdGhyZWFkLCBtYXJraW5nIHRoZSBzdGF0ZSBvZiB0aGUgcGFyZW50cyBkaXJ0eSwgaGVuY2UgdGhlCgkgIFNUQVRFX0RJUlRZIG1lc3NhZ2UgaW5zdGVhZCBvZiBhYnVzaW5nIGEgYm9vbGVhbiBpbiBhIFNUQVRFX0NIQU5HRQoJICBtZXNzYWdlLgoKMjAwNS0xMC0xOCAxNToxNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgoyMDA1LTEwLTE4IDE0OjI5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgR1RocmVhZFBvb2wgaW4gR3N0QmluQ2xhc3MgdG8gbW9uaXRvciBhc3luYyBzdGF0ZSBjaGFuZ2VzLgoJICBzdGF0ZV9jb29raWUgaW4gR3N0RWxlbWVudCB0byBkZXRlY3QgY29uY3VycmVudCBnc3Qvc2V0IHN0YXRlLgoJICBzZXRfc3RhdGUgaXMgbm93IHZpcnR1YWwgdG9vIGluIGNhc2UgYSB2ZXJ5IGNvbXBsaWNhdGVkIGVsZW1lbnQKCSAgaGFzIHRvIGJlIGNvbnN0cnVjdGVkLgoKMjAwNS0xMC0xOCAxMzoxOToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgbWVzc2FnZXMgZnV0dXJlIHByb29mLiBzdGF0ZS1jaGFuZ2UgZ2V0cyBhIGZsYWcgaWYgaXQgd2FzIGEgbWVzc2FnZSBjb21taW5nIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwKCSAgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIG1lc3NhZ2VzIGZ1dHVyZSBwcm9vZi4KCSAgc3RhdGUtY2hhbmdlIGdldHMgYSBmbGFnIGlmIGl0IHdhcyBhIG1lc3NhZ2UgY29tbWluZyBmcm9tIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLgoJICBzZWdtZW50LXN0YXJ0L3N0b3AgY2FuIGFsc28gYmUgc3BlY2lmaWVkIGluIG90aGVyIGZvcm1hdHMuCgkgIEEgbWVzc2FnZSB0byBub3RpZnkgYW4gYXBwIHRoYXQgYSBwaXBlbGluZSBjaGFuZ2VkIHBsYXliYWNrCgkgIGR1cmF0aW9uLgoJICBBbHNvIGZpeCBhIEdzdE1lc3NhZ2UgbGVhayBpbiAtbGF1bmNoCgoyMDA1LTEwLTE4IDEwOjMyOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9kaXNwb3NlKTogTW9yZSBoZWxwZnVsIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOiBNb3JlIGhlbHBmdWwgbWVzc2FnZS4KCjIwMDUtMTAtMTggMDg6MjA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBpbmZvIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5mbyBtZXNzYWdlcwoKMjAwNS0xMC0xOCAwNzoxMzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogdW5yZWYgYSBwbHVnLWluIHdlIGdldCB0aGF0IHdhcyBhbHJlYWR5IGluaXRpYWxpemVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIHVucmVmIGEgcGx1Zy1pbiB3ZSBnZXQgdGhhdCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZAoKMjAwNS0xMC0xNyAyMDoxNjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkIG5ldyBhcGkgZW50cmllcyBoaWRlIGludGVybmFsIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBhZGQgbmV3IGFwaSBlbnRyaWVzCgkgIGhpZGUgaW50ZXJuYWwgbWFjcm8KCjIwMDUtMTAtMTcgMTg6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6IFNsaWdodCBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOiBTbGlnaHQKCSAgY2xlYW51cC4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGdzdGVudW10eXBlcy5jKTogVGhyZWFkc2FmZSBub3cuCgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF9uZXcsIGdzdF9ldmVudF9maW5hbGl6ZSk6IExPRy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IHMvSU5GTy9ERUJVRy8uCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IEJldHRlciBkZWJ1ZyBtZXNzYWdlLgoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogcy9JTkZPL0RFQlVHLy4KCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUsIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfaW5pdCk6IHMvSU5GTy9MT0cvLgoJICAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6IHMvSU5GTy9MT0cvLgoKMjAwNS0xMC0xNyAxNzo0NjozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCjIwMDUtMTAtMTcgMTc6MDU6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcyBmaXggYnJva2VuIHRlc3RzIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcwoJICBmaXggYnJva2VuIHRlc3RzCgkgIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgoyMDA1LTEwLTE3IDE0OjQyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5jOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoKMjAwNS0xMC0xNyAxNDozNzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBmaXggc2lnbmVkbmVzcyBpc3N1ZXMgaW4gYSAoaG9wZWZ1bGx5KSBjb3JyZWN0IHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgZml4IHNpZ25lZG5lc3MgaXNzdWVzIGluIGEgKGhvcGVmdWxseSkgY29ycmVjdCB3YXkKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgc29tZSBkZWJ1Z2dpbmcKCjIwMDUtMTAtMTcgMTA6Mzc6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRml4IGEgZG9jIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggYSBkb2MgdHlwby4KCjIwMDUtMTAtMTcgMDk6Mjg6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmg6IEZpeCBwcm90b3R5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5oOiBGaXggcHJvdG90eXBlcy4KCjIwMDUtMTAtMTYgMTQ6MzI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCjIwMDUtMTAtMTYgMTM6NTU6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGNvbW1lbnQ7IHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWVudDsgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA1LTEwLTE2IDEyOjM3OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgRGVhciBBbmR5OiBoZXJlJ3MgYSBzY3JpcHQgdG8gdXBkYXRlIHN0dWZmIGZyb20gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEZWFyIEFuZHk6CgkgIGhlcmUncyBhIHNjcmlwdCB0byB1cGRhdGUgc3R1ZmYgZnJvbSBDVlMKCSAgTG92ZSwKCSAgVGhvbWFzCgoyMDA1LTEwLTE2IDEyOjI4OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2xlYW4gdXAgZnVydGhlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNsZWFuIHVwIGZ1cnRoZXIKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgaXQncyBQTFVHSU5ESVIgbm93CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIHVzZSBnaW50NjQsIHRoZSByYW5nZSBjb3VsZCBiZSBiaWdnZXIgdGhhbiBhIGd1aW50CgoyMDA1LTEwLTE2IDExOjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgR1N0cmVhbWVyIGNvbnN1bHRhbnRzIHdpbGwgbWFrZSBhIGxvdCBvZiBtb25leSBpbiAyMDM4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHU3RyZWFtZXIgY29uc3VsdGFudHMgd2lsbCBtYWtlIGEgbG90IG9mIG1vbmV5IGluIDIwMzgKCjIwMDUtMTAtMTYgMTA6NTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGd1aW50IGogZGl2aW5nIHVuZGVyIDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIEZpeCBndWludCBqIGRpdmluZyB1bmRlciAwCgoyMDA1LTEwLTE2IDEwOjM4OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBpbmNsdWRlIHByb2Nlc3MuaCBpZiB3ZSBoYXZlIGl0CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6IChwb3B1bGF0ZSksIChnc3RfbWVtX2NodW5rX25ldyk6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgIGZpeCBzaWduZWRuZXNzIGlzc3VlcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBmaXggZ2V0X3R5cGUncwoKMjAwNS0xMC0xNiAxMDoyMjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBmaXggc2lnbmVkbmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNpZ25lZG5lc3MKCjIwMDUtMTAtMTYgMTA6MTg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGZpeCBHU1RfVkVSU0lPTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IEdTVF9WRVJTSU9OCgoyMDA1LTEwLTE2IDEwOjE1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBmaXggaW5saW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggaW5saW5lCgoyMDA1LTEwLTE2IDEwOjEyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBkZWZpbmUgUEFDS0FHRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVmaW5lIFBBQ0tBR0UKCjIwMDUtMTAtMTYgMTA6MTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZSBhdmFpbGFibGUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGF2YWlsYWJsZSBoZWFkZXJzCgoyMDA1LTEwLTE2IDA5OjU2OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBhIGJhZCBidWcgd2l0aCBhIHNpbXBsZSBmaXguIEJlY2F1c2Ugb2YgdW5zaWduZWQgaW50cywgY2FwcyBpbnRlcnNlY3Rpb24gd2FzIGdvaW5nIG51dHMgYW5kIHRyeWluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOiBGaXggYSBiYWQgYnVnIHdpdGggYQoJICBzaW1wbGUKCSAgZml4LiBCZWNhdXNlIG9mIHVuc2lnbmVkIGludHMsIGNhcHMgaW50ZXJzZWN0aW9uIHdhcyBnb2luZyBudXRzCgkgIGFuZAoJICB0cnlpbmcgdG8gYWNjZXNzIHN0cnVjdHVyZXMgd2l0aCBHX01BWFVJTlQgaW5kZXguIFRoYXQgZml4ZXMKCSAgdmlkZW90ZXN0c3JjICEgZmZtcGVnY29sb3JzcGFjZSAhIGZha2VzaW5rCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOiBsb2dzCgkgIGNvbnNpc3RlbmN5LgoKMjAwNS0xMC0xNiAwOTo1NToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA1LTEwLTE2IDA5OjU0OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHlwbwoKMjAwNS0xMC0xNiAwOTo1MToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlcyBmb3IgMmluMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIDJpbjMyCgoyMDA1LTEwLTE2IDA5OjQ0OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgZGVmaW5lIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRlZmluZSBmaXhlcwoKMjAwNS0xMC0xNiAwOToyMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSAgdXBkYXRlIGZvciBHU1RfUEFDS0FHRV9OQU1FLCBHU1RfUEFDS0FHRV9PUklHSU4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZWQgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZCB0aGUgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlZCBjb3BpZXMKCjIwMDUtMTAtMTYgMDk6MTE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgoyMDA1LTEwLTE2IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGFkZCB0aGUgbmFubwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfdmVyc2lvbik6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgYWRkIHRoZSBuYW5vCgoyMDA1LTEwLTE2IDA4OjU5OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHJlbW92ZSBHU1RfUEtHX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdTVF9QS0dfQ0ZMQUdTCgoyMDA1LTEwLTE1IDIyOjI0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCjIwMDUtMTAtMTUgMjE6NDE6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgY29tbW9uIG00J3MgZm9yIGFyZ3VtZW50IGNoZWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIGNvbW1vbiBtNCdzIGZvciBhcmd1bWVudCBjaGVja2luZwoKMjAwNS0xMC0xNSAyMDozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgoyMDA1LTEwLTE1IDIwOjAwOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMKCjIwMDUtMTAtMTUgMTk6NTc6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcHJpdmF0aXplIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgcHJpdmF0aXplIG1vcmUgc3ltYm9scwoKMjAwNS0xMC0xNSAxODoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGFkZCBzcmNkaXIsIGJ1aWxkZGlyIGluY2x1ZGVzIHRvIEdTVF9BTExfQ0ZMQUdTLCBzaW5jZSBldmVyeXRoaW5nIHRoYXQgdXNlcyBHU3RyZWFtZXIgQVBJIHNob3VsZCBoYXZlIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBhZGQgc3JjZGlyLCBidWlsZGRpciBpbmNsdWRlcyB0byBHU1RfQUxMX0NGTEFHUywgc2luY2UKCSAgZXZlcnl0aGluZyB0aGF0IHVzZXMgR1N0cmVhbWVyIEFQSSBzaG91bGQgaGF2ZSB0aGUgaW5jbHVkZXMKCjIwMDUtMTAtMTUgMTc6NTk6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ2l2ZSBlYWNoIHZhbHVlIGEgX2dldF90eXBlLCByZW1vdmVzIHRoZSBEQVRBIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGdpdmUgZWFjaCB2YWx1ZSBhIF9nZXRfdHlwZSwgcmVtb3ZlcyB0aGUgREFUQSBleHBvcnRzCgoyMDA1LTEwLTE1IDE3OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBmaXggbGluayBmbGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxpbmsgZmxhZ3MKCjIwMDUtMTAtMTUgMTY6Mzk6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCjIwMDUtMTAtMTUgMTY6Mzc6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcwoKMjAwNS0xMC0xNSAxNjozMzowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Lio6IHJlbW92ZSBfZ3N0X3JlZ2lzdHJ5X2F1dG9fbG9hZCwgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICByZW1vdmUgX2dzdF9yZWdpc3RyeV9hdXRvX2xvYWQsIG5vdCB1c2VkIGFueW1vcmUKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1ha2UgX2dldF90eXBlIGZ1bmN0aW9ucyBzaW1pbGFyLCBmaXhlcyBkYXRhIGV4cG9ydCBmcm9tIGxpYnJhcnkKCjIwMDUtMTAtMTUgMTY6MTY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBJJ20gdG9vIGxhenkgdG8gY29tbWVudCB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBndGstZG9jIGluc2lzdHMgb24gaW5zZXJ0aW5nIDxQQVJBPiBhdCBldmVyeSBlbXB0eSBsaW5lLCBzaWdoCgoyMDA1LTEwLTE1IDE2OjAxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpdHlwZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIGV4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIGV4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2RpcmVudC5jOgoJKiB3aW4zMi9nc3Rjb25maWcuaDoKCSogd2luMzIvZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9ndGNoYXIuaDoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi92czcvbW1hbi5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vZ3N0YnN0ZXN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0MS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9jaGFpbm5vcHVsbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvZ3N0LXByaW50LWZvcm1hdHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzctMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc3MTMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzgxOS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9xdWV1ZV9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9yZWxpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5yZWYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VzZWxlc3NfaXRlcmF0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9nc3Ric3Rlc3QuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdDEuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDEuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDMuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDQuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9wYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wYWQvY2hhaW5ub3B1bGwuYzoKCSogdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHN1aXRlL3BhZC9saW5rLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWdpc3RyeS9nc3QtcHJpbnQtZm9ybWF0cy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzcxMy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4MTkuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3F1ZXVlX2xpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvcmVsaW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91bnJlZi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91c2VsZXNzX2l0ZXJhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTI6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGZpeCB0eXBvIGNhdXNpbmcgZmRzcmMgbm90IHRvIGJ1aWxkCgoyMDA1LTEwLTE1IDE1OjMwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjAxOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2hlY2sgZm9yIHNvbWUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrIGZvciBzb21lIGhlYWRlcnMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGRvbid0IGNvbXBpbGUgZmRzcmMgd2l0aG91dCBzeXMvc29ja2V0LmgKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIGRvbid0IGNvbXBpbGUgZmlsZWluZGV4IHdpdGhvdXQgbW1hcAoKMjAwNS0xMC0xNSAxMzo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHJlb3JnYW5pemUgY2xlYW4gdXAgZG9jdW1lbnQgbW9yZSByZW1vdmUgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICByZW9yZ2FuaXplCgkgIGNsZWFuIHVwCgkgIGRvY3VtZW50IG1vcmUKCSAgcmVtb3ZlIGNydWZ0CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCk6CgkgIGNvbXBpbGUgZml4ZXMsIHRob3VnaCBpdCdzIG5vdCBiZWluZyBjb21waWxlZCBjdXJyZW50bHkKCjIwMDUtMTAtMTUgMTM6MjQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBjbGVhbiB1cCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgcGMgZmlsZXMKCjIwMDUtMTAtMTUgMTI6MDM6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGlyCgoyMDA1LTEwLTE1IDEwOjM0OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGRpcmVjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRpcmVjdG9yeQoKMjAwNS0xMC0xNSAwMDoyMjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoKMjAwNS0xMC0xNSAwMDoyMDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgc2lnbmVkbmVzcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoKMjAwNS0xMC0xNCAxNzowMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R0YWcuYzogQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciB0aGUgbmV3IHRhZ2xpc3QgZGF0ZSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKHRlc3RfZGF0ZV90YWdzKSwgKGdzdF90YWdfc3VpdGUpOgoJICBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIHRoZSBuZXcgdGFnbGlzdCBkYXRlIEFQSS4KCjIwMDUtMTAtMTQgMTQ6MTA6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvOiBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMKCSAgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm92ZSBhbGlnbm1lbnQgd2l0aCBuZXh0IG1lc3NhZ2VzLgoKMjAwNS0xMC0xNCAxMTowOToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2NoZWNrX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfZGVmYXVsdF9yZWdpc3RyeV9jaGVja19mZWF0dXJlX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHRlc3RfdmVyc2lvbl9jaGVja3MpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIFNvbWUgYmFzaWMgdGVzdHMgZm9yIHRoZSBhYm92ZS4KCjIwMDUtMTAtMTMgMjE6Mjc6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBndWFyZCBhZ2FpbnN0IE5VTEwgcHJpbnRmIC0gaGFwcGVucyB3aGVuIGZvciBleGFtcGxlIGEgbWVzc2FnZSBzdHJ1Y3R1cmUgd2l0aCBHc3RDbG9jayBnZXRzIHNlcmlhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKToKCSAgZ3VhcmQgYWdhaW5zdCBOVUxMIHByaW50ZiAtIGhhcHBlbnMgd2hlbiBmb3IgZXhhbXBsZQoJICBhIG1lc3NhZ2Ugc3RydWN0dXJlIHdpdGggR3N0Q2xvY2sgZ2V0cyBzZXJpYWxpemVkCgoyMDA1LTEwLTEzIDE4OjMzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KToKCSAgRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoKMjAwNS0xMC0xMyAxNzo1MTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoKMjAwNS0xMC0xMyAxNzo0MzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZWxlbWVudHMvOiBmaXggc29tZSBzaWduZWRuZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBmaXggc29tZSBzaWduZWRuZXNzCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEkgd29uZGVyIGlmIHRoaXMgY291bGQgYWN0dWFsbHkgd3JpdGUgKzJHQiBmaWxlcyBiZWZvcmUKCjIwMDUtMTAtMTMgMTc6MjQ6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBhbiBleHBvcnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBleHBvcnQKCjIwMDUtMTAtMTMgMTc6MjA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgaW5jbHVkZSBoZWFkZXIgY29ycmVjdGx5OyBzaG93IG1lIHRoZSBuYW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmNsdWRlIGhlYWRlciBjb3JyZWN0bHk7IHNob3cgbWUgdGhlIG5hbWUKCjIwMDUtMTAtMTMgMTY6MzQ6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMTAtMTMgMTY6MjY6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpOiBGaXggVGltbWVrZSBXYXltYW5zIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwcyk6CgkgIEZpeCBUaW1tZWtlIFdheW1hbnMgYnVnLgoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOiBNYWtlIHN1cmUgd2UgcGFzcyBhIE5VTC10ZXJtaW5hdGVkCgkgIHN0cmluZyBvZiB0aGUgcHJvcGVyIGxlbmd0aCB0byBnc3RfY2Fwc19mcm9tX3N0cmluZy4gVGhlcmUncyBhCgkgIHBvdGVudGlhbCBmb3IsIGJlZm9yZSB0aGlzIGZpeCwgdGhhdCB0aGlzIGNvdWxkIGNhdXNlIHNvbWVvbmUKCSAgY29ubmVjdGluZyBvdmVyIHRoZSBuZXR3b3JrIHRvIGNhdXNlIGEgc2VnZmF1bHQgaWYgdGhlIHBheWxvYWQgaXMKCSAgbm90IE5VTC10ZXJtaW5hdGVkLgoKMjAwNS0xMC0xMyAxNToyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4ZWQgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgICogZG9jcy9yYW5kb20vb2xkL0NoYW5nZUxvZy5nc3RyZWFtZXI6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBmaXhlZCB0eXBvcwoKMjAwNS0xMC0xMyAxNToyMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBHTGliIDIuNiBnX2ZsYWdzX2dldF9maXJzdF92YWx1ZSBoYXMgYSBidWcgdGhhdCB0cmlnZ2VycyBhbiBpbmZpbml0ZSBsb29wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ3N0X2ZsYWdzX2dldF9maXJzdF92YWx1ZSk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9kb3VibGUpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIEdMaWIgMi42IGdfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlIGhhcyBhIGJ1ZyB0aGF0IHRyaWdnZXJzIGFuCgkgIGluZmluaXRlIGxvb3AKCjIwMDUtMTAtMTMgMTU6MjI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBmaXggdXAgZGVidWdnaW5nCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIHByaW50IG91dCBjbG9jayBuaWNlbHkKCjIwMDUtMTAtMTMgMTU6MTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGRlZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUoKSBhbmQgZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSksIChnc3RfdGFnX2xpc3RfZ2V0X2RhdGUpLAoJICAoZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KToKCSAgQWRkZWQgZ3N0X3RhZ19saXN0X2dldF9kYXRlKCkgYW5kIGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCgpLgoJICBHU1RfVEFHX0RBVEUgbm93IGhhcyBhIHRhZyB0eXBlIG9mIEdTVF9UWVBFX0RBVEUgKCMxNzA3NzcpLgoKMjAwNS0xMC0xMyAxNDo1NToxNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUgaW5mb3JtYXRpb25zIGluIENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUKCSAgaW5mb3JtYXRpb25zCgkgIGluIENvbGxlY3REYXRhLgoKMjAwNS0xMC0xMyAwOTo1NzoxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcyBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcwoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMjI6MzQ6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGJ1cy5jOiB1c2UgSEFWRV9VTklTVERfSAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIHVzZSBIQVZFX1VOSVNURF9ICgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnCgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIHVwZGF0ZSB2czYgZmlsZXMKCjIwMDUtMTAtMTIgMjI6MDA6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBoYWQgYSBmZXcgdG9vIG1hbnkgMEQgYnl0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhZCBhIGZldyB0b28gbWFueSAwRCBieXRlcwoKMjAwNS0xMC0xMiAyMTo1Njo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgoyMDA1LTEwLTEyIDIwOjIzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBhZGQgd2luMzItdXBkYXRlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgYWRkIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBhZGQgZmlsZXMgdGhhdCB2aXN1YWwgc3R1ZGlvIGNhbid0IGdlbmVyYXRlCgoyMDA1LTEwLTEyIDE5OjM4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUHJvdGVjdCBmbGFncyB3aXRoIHByb3BlciBsb2NrLiB1bnJlZiBwcm92aWRlZCBjYWNoZWQgY2xvY2sgaW4gZGlzcG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKHJlc2V0X2RlZ3JlZSksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByb3RlY3QgZmxhZ3Mgd2l0aCBwcm9wZXIgbG9jay4KCSAgdW5yZWYgcHJvdmlkZWQgY2FjaGVkIGNsb2NrIGluIGRpc3Bvc2UuCgoyMDA1LTEwLTEyIDE5OjE0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgbGF5b3V0IGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxheW91dCBjbGVhbnVwCgoyMDA1LTEwLTEyIDE5OjEwOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW1vdmVkIHVudXNlZCBmbGFncyBmcm9tIG1pbmlvYmplY3QgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzogKGdzdF9taW5pX29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgIHJlbW92ZWQgdW51c2VkIGZsYWdzIGZyb20gbWluaW9iamVjdAoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMTg6MDM6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBjb252ZXJ0IHRvIHVuaXggbGluZSBlbmRzOyBzaW5jZSB0aGUgc291cmNlIGlzIGFsc28gdW5peC1zdHlsZSBsaW5lIGVuZHMsIGRldmVsb3BlcnMgZG9uJ3QgbmVlZCB0byBmaWRkbGUgYW5kIHNwZWNpYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbnZlcnQgdG8gdW5peCBsaW5lIGVuZHM7IHNpbmNlIHRoZSBzb3VyY2UgaXMgYWxzbyB1bml4LXN0eWxlIGxpbmUgZW5kcywgZGV2ZWxvcGVycyBkb24ndCBuZWVkIHRvIGZpZGRsZSBhbmQgc3BlY2lhbC1jYXNlLCBidXQgY2FuIGp1c3QgYWxsb3cgdHJhbnNsYXRpb24gb24gdGhlIGZseQoKMjAwNS0xMC0xMiAxNjowMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBGbHVzaCBiZWZvcmUgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19ldmVudCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEZsdXNoIGJlZm9yZSBzZWVraW5nLgoKMjAwNS0xMC0xMiAxNTo1ODoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcyBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcwoJICBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCjIwMDUtMTAtMTIgMTQ6Mjg6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX3N0b3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAocmVzZXRfZGVncmVlKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pc19sb2NrZWRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3Rfc2luayksCgkgIChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfaXNfYmxvY2tlZCksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayksIChnc3RfcGlwZWxpbmVfYXV0b19jbG9jayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6IChnc3RfZnBfc2lua19pbml0KToKCSAgKiB0ZXN0c3VpdGUvcGFkL2xpbmsuYzogKGdzdF90ZXN0X3NyY19pbml0KSwKCSAgKGdzdF90ZXN0X2ZpbHRlcl9pbml0KSwgKGdzdF90ZXN0X3NpbmtfaW5pdCk6CgkgICogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzogKG1haW4pOgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUwoJICBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoKMjAwNS0xMC0xMiAxNDoxMjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0xMC0xMiAxMjo1ODo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgU29tZSBkb2MgdXBkYXRlcy4KCSAgUmV2ZXJ0IG5vbi1pbnRlbnRpb25hbCBjaGFuZ2UuCgoyMDA1LTEwLTEyIDEyOjE4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIEdzdENsb2NrVGltZSBpbiBfZ2V0X3N0YXRlKCkgaW5zdGVhZCBvZiBHVGltZVZhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZXN0X2V2ZW50KToKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZSksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIFVzZSBHc3RDbG9ja1RpbWUgaW4gX2dldF9zdGF0ZSgpIGluc3RlYWQgb2YgR1RpbWVWYWwuCgkgIFJlbW92ZSBvbGQgY29kZSBpbiBnc3R1dGlscy5jCgoyMDA1LTEwLTEyIDExOjQ5OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcGF1c2VfdGFzayk6IEFjdHVhbGx5IHJldHVybiBGQUxTRSBpZiB0aGVyZSBpcyBubyB0YXNrLiBTaG91bGRuJ3QgYWZmZWN0IGFueSBjb2RlLCBhcyBub3RoaW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3BhdXNlX3Rhc2spOiBBY3R1YWxseSByZXR1cm4gRkFMU0UgaWYKCSAgdGhlcmUgaXMgbm8gdGFzay4gU2hvdWxkbid0IGFmZmVjdCBhbnkgY29kZSwgYXMgbm90aGluZyBpbiBvdXIKCSAgcGx1Z2lucyBjaGVja3MgdGhpcyByZXR1cm4gdmFsdWUuCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6IEFsc28gdGFrZSB0aGUgc3RyZWFtIGxvY2sgaWYgdGhlIHBhZCBoYXMgbm8KCSAgdGFzay4gRG9jcyB1cGRhdGVkLgoKMjAwNS0xMC0xMiAxMDowNTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ2xlYW51cCBhY3RpdmF0aW9uIGNvZGUuIFJlc2V0IG9sZCBzdGF0ZSBpZiBhY3RpdmF0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKSwgKHBvc3RfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6CgkgIENsZWFudXAgYWN0aXZhdGlvbiBjb2RlLiBSZXNldCBvbGQgc3RhdGUgaWYKCSAgYWN0aXZhdGlvbiBmYWlsZWQuCgoyMDA1LTEwLTEyIDA5OjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTm8gbmVlZCB0byBwcmVyb2wgYWZ0ZXIgcmVjZWl2aW5nIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE5vIG5lZWQgdG8gcHJlcm9sIGFmdGVyIHJlY2VpdmluZyBFT1MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KToKCSAgUHJpbnQgZXZlbnRzIG1vcmUgdmVyYm9zZWx5LgoKMjAwNS0xMC0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzoKCSAgTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gd2hlbiBfZ2V0X3N0YXRlKCkgaXRlcmF0ZWQgb3ZlciBhbgoJICBBU1lOQyBlbGVtZW50IHJpZ2h0IGJlZm9yZSBpdCBwb3N0ZWQgYSBzdGF0ZSBjb21wbGV0aW9uLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEbyBwcm9wZXIgY2FzdCBoZXJlLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgQSBwbGF5YmFjayByYXRlIG9mIDAuMCBpcyBub3QgYWxsb3dlZC4KCjIwMDUtMTAtMTIgMDI6MjY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjI1OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoyMzoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjE2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMSAxODowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi86IFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzogKF90b3BlbmRpciksIChfdHJlYWRkaXIpLCAoX3RjbG9zZWRpciksCgkgIChfdHJld2luZGRpciksIChfdHRlbGxkaXIpLCAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgUGhlYXIuCgoyMDA1LTEwLTExIDE3OjMzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBmb3Jnb3QgdGhpcyBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvcmdvdCB0aGlzIG9uZQoKMjAwNS0xMC0xMSAxNzozMjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgoyMDA1LTEwLTExIDE2OjU0OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogc3BsaXQgcGx1Z2luIHBhdGhzIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBzcGxpdCBwbHVnaW4gcGF0aHMgY29ycmVjdGx5CgoyMDA1LTEwLTExIDE2OjI4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgVXBkYXRlZCBjaGVjayBhbmQgYmFzZSBlbGVtZW50cy4KCjIwMDUtMTAtMTEgMTY6MjU6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgoyMDA1LTEwLTExIDE2OjIxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtb3JlIHN0ciBudWxsIHByb3RlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgc3RyIG51bGwgcHJvdGVjdGlvbgoKMjAwNS0xMC0xMSAxNjowNToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LWkxOG4tbGliLmg6IGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6CgkgIHByb3RlY3QgcG9zc2libHkgTlVMTCBzdHJpbmdzCgkgICogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGNvbmZpZy5oIGFscmVhZHkgaW5jbHVkZWQgYmVmb3JlCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICBzeXMvd2FpdC5oIGFsc28gZG9lc260dCBleGlzdCBvbiBtaW5ndywgc28gY2hhbmdlIHRoZSBpZmRlZiBjaGVjawoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICBUaGlzIGNvbW1pdCBicm91Z2h0IHRvIHlvdSBmcm9tIG1zeXMvbWluZ3cKCjIwMDUtMTAtMTEgMTU6MjY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBpZiB3ZSBkb24ndCBoYXZlIGdsaWIsIGZhaWwgYmVmb3JlIHRlc3RpbmcgMi44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgaWYgd2UgZG9uJ3QgaGF2ZSBnbGliLCBmYWlsIGJlZm9yZSB0ZXN0aW5nIDIuOAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBmaXggYSBsZWFrLCBzaG91bGQgZml4IHBsdWdpbnMtYmFzZSB0ZXN0c3VpdGUKCjIwMDUtMTAtMTEgMTU6MjM6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAocHJlX2FjdGl2YXRlKTogUmVuYW1lZCBmcm9tIHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHRha2UgdGhlIG1vZGUgd2UncmUgZ29pbmcgdG8gYXMgYW4gYXJnLiBHbyBoZWFkIGFuZCBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKHByZV9hY3RpdmF0ZSk6IFJlbmFtZWQgZnJvbSBwcmVfYWN0aXZhdGVfc3dpdGNoLAoJICB0YWtlIHRoZSBtb2RlIHdlJ3JlIGdvaW5nIHRvIGFzIGFuIGFyZy4gR28gaGVhZCBhbmQgc2V0IHRoZSBtb2RlCgkgIGFuZCBmbHVzaGluZyBmbGFncyBub3csIHNvIHRoYXQgaWYgdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHN0YXJ0cyBhCgkgIHRocmVhZCBhbGwgdGhlIGZsYWdzIHdpbGwgYmUgaW4gdGhlIHJpZ2h0IHN0YXRlLgoJICAocG9zdF9hY3RpdmF0ZSk6IFJlbmFtZWQgYWxzby4gSnVzdCBoYW5kbGUgbWFraW5nIHN1cmUgc3RyZWFtaW5nCgkgIGZpbmlzaGVzIGZvciB0aGUgZGVhY3RpdmF0aW9uIGNhc2UsIGFuZCBzZXR0aW5nIHRoZSBkZWFjdGl2YXRlZAoJICBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ29tcGxhaW4gbG91ZGx5IGlmIGRlYWN0aXZhdGlvbiBmYWlscy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IEFkYXB0IHRvIHByZS9wb3N0X2FjdGl2YXRlIGNoYW5nZXMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBBZGFwdCB0byBwcmUvcG9zdF9hY3RpdmF0ZSBjaGFuZ2VzLAoJICByZW1vdmUgdGhlIHRlcnJpYmxlIGhhY2suCgoyMDA1LTEwLTExIDE1OjA1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIEZpeCBzb21lIHR5cG9zLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgUmVuYW1lIGJhc2UgdG8gc3RyZWFtX3RpbWUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDUtMTAtMTEgMTI6NTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFdvcmsgb24gcHJvcGVyIGNsb2NrIHNlbGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBXb3JrIG9uIHByb3BlciBjbG9jayBzZWxlY3Rpb24uCgoyMDA1LTEwLTExIDEyOjQyOjIzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLio6IEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcCBpdCBpbiBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcAoJICBpdCBpbiBiaW5kaW5ncy4KCjIwMDUtMTAtMTEgMTE6MDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb2MgdXBkYXRlcy4gRG9uJ3QgZGlzdHJpYnV0ZSB0aGUgc2FtZSBjbG9jayBvdmVyIGFuZCBvdmVyIGFnYWluLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfZmxvd19nZXRfbmFtZSksIChnc3RfZmxvd190b19xdWFyayksCgkgIChnc3RfcGFkX2dldF90eXBlKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIE1ha2UgcHJvYmUgZW1pc3Npb24gdGhyZWFkc2FmZSBhZ2Fpbi4KCSAgUmVnaXN0ZXIgcXVhcmtzIGFuZCBtb3ZlIF9nZXRfbmFtZSgpIGZyb20gdXRpbHMuCgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgT25seSByZWRpc3RyaWJ1dGUgdGhlIGNsb2NrIG9mIGl0IGNoYW5nZWQuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNb3ZlZCB0aGUgX2Zsb3dfZ2V0X25hbWUoKSB0byBHc3RQYWQuCgoyMDA1LTEwLTExIDA5OjE0OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBpZiB3ZSBsb2cgb3VyIGluaXQsIHNob3VsZCBhbHNvIGxvZyBmaW5hbGl6ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWYgd2UgbG9nIG91ciBpbml0LCBzaG91bGQgYWxzbyBsb2cgZmluYWxpemUKCjIwMDUtMTAtMTAgMjM6NTU6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGZpeCBtb3JlIHZhbGdyaW5kIHdhcm5pbmdzIGJlZm9yZSB0dXJuaW5nIHVwIHRoZSBoZWF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbW9yZSB2YWxncmluZCB3YXJuaW5ncyBiZWZvcmUgdHVybmluZyB1cCB0aGUgaGVhdAoKMjAwNS0xMC0xMCAyMzoxMTozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgoyMDA1LTEwLTEwIDIyOjU5OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHVubWFuZ2xlIHRoZSBuZXN0aW5nIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bm1hbmdsZSB0aGUgbmVzdGluZyBhIGxpdHRsZQoKMjAwNS0xMC0xMCAyMjo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBzb21lIGNsZWFudXAgYmVmb3JlIHRoZSBoYWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHNvbWUgY2xlYW51cCBiZWZvcmUgdGhlIGhhY2tpbmcKCjIwMDUtMTAtMTAgMTg6MTY6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiB1c2UgY29udmVyc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgdXNlIGNvbnZlcnNpb25zCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZ3VpbnQ2NF90b19nZG91YmxlKSwKCSAgKGdzdF9nZG91YmxlX3RvX2d1aW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXh0ZXJuYWxpemUsIGJhc2VzcmMgdXNlcyBpdAoJICBvYnZpb3VzbHkgdGhlIGltcGxlbWVudGF0aW9uIG5lZWRzIHRlc3RpbmcKCjIwMDUtMTAtMTAgMTc6MDU6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgoyMDA1LTEwLTEwIDE2OjQ1OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoKMjAwNS0xMC0xMCAxNjo0MzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL3NjaGVkLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvc2NoZWQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvc2NoZWQvc29ydC5jOiAobWFrZV9waXBlbGluZTEpLCAobWFrZV9waXBlbGluZTIpLAoJICAobWFrZV9waXBlbGluZTMpLCAobWFrZV9waXBlbGluZTQpLCAocHJpbnRfZWxlbSksIChtYWluKToKCjIwMDUtMTAtMTAgMTY6Mzg6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBNU1ZDCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3VpbnQ2NF90b19nZG91YmxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6CgkgIGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBvbiBNU1ZDCgoyMDA1LTEwLTEwIDE2OjM4OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBDaGVjayBmaXhlcywgdXNlIEFQSSBhcyBzdGF0ZWQgaW4gZGVzaWduIGRvY3MsIHJlbW92ZSBoYWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLAoJICAobWFpbik6CgkgIENoZWNrIGZpeGVzLCB1c2UgQVBJIGFzIHN0YXRlZCBpbiBkZXNpZ24gZG9jcywgcmVtb3ZlIGhhY2tzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBDYXRjaCBzdG9wcGluZyBvdXIgdGFzayB3aGlsZSB3ZSdyZSBzaHV0dGluZyBkb3duLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE5ldyBzdGF0ZSBjaGFuZ2UgYWxnb3JpdGhtIChzZWUgIzMxODExNikKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIFJlbW92ZSBjcnVkZSBzdGF0ZSBjaGFuZ2UgaGFja3MuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBjcnVkZSBoYWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgRml4ZXMgZm9yIHN0YXRlIGNoYW5nZS4gTmVlZHMgc29tZSBtb3JlIHdvcmsgdG8gZnVsbHkgdXNlIHRoZQoJICBuZXcgc3R1ZmYuCgoyMDA1LTEwLTEwIDE2OjIwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9NYWtlZmlsZS5hbSAobm9pbnN0X1BST0dSQU1TKTogTm8gbW9yZSBpbml0LmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtIChub2luc3RfUFJPR1JBTVMpOiBObyBtb3JlIGluaXQuYy4KCjIwMDUtMTAtMTAgMTY6MDQ6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAoR19PUFRJT05fRkxBR19OT19BUkcpOiBBcHBhcmVudGx5IEdMaWIgMi44IHJlcXVpcmVzIHRoaXMgZmxhZywgYnV0IGl0J3Mgbm90IGV2ZW4gaW4gR0xpYiAyLjYuIE9kZC4gSGFjayBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKEdfT1BUSU9OX0ZMQUdfTk9fQVJHKTogQXBwYXJlbnRseSBHTGliIDIuOCByZXF1aXJlcwoJICB0aGlzIGZsYWcsIGJ1dCBpdCdzIG5vdCBldmVuIGluIEdMaWIgMi42LiBPZGQuIEhhY2sgYXJvdW5kIHRoZQoJICBpc3N1ZS4KCjIwMDUtMTAtMTAgMTU6NTg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogRml4IG15IHByZXZpb3VzIGNvbW1pdDogR1R5cGVzIHBhc3NlZCB0byBnc3RfaXRlcmF0b3JfbmV3KCkgY2FuIGJlIGZ1bmRhbWVudGFsIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9uZXcpOgoJICBGaXggbXkgcHJldmlvdXMgY29tbWl0OiBHVHlwZXMgcGFzc2VkIHRvIGdzdF9pdGVyYXRvcl9uZXcoKQoJICBjYW4gYmUgZnVuZGFtZW50YWwgdHlwZXMuCgoyMDA1LTEwLTEwIDE1OjU1OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIHNyYy9zaW5rIHBhZHMgbGlzdHMgZm9yIHRoZSByZXNwZWN0aXZlIGl0ZXJhdG9ycyBpbnN0ZWFkIG9mIGZpbHRlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkX2xpc3QpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKSwgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOgoJICBVc2Ugc3JjL3NpbmsgcGFkcyBsaXN0cyBmb3IgdGhlIHJlc3BlY3RpdmUgaXRlcmF0b3JzIGluc3RlYWQKCSAgb2YgZmlsdGVyaW5nLgoKMjAwNS0xMC0xMCAxNTo1Mzo1OSArMDAwMCAgUm9uYWxkIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnICMxNjk3NzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnCgkgICMxNjk3NzIuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIFNUQVRFXyhVTilMT0NLX0ZVTEwsIG1vdmUKCSAgR3N0RWxlbWVudCBtYWNyb3MgYXJvdW5kLCByZW1vdmUgcG9wdC1yZWxhdGVkIHN5bWJvbHMsIGFkZCBnb3B0aW9uCgkgIHN0dWZmLgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHBvcHQgY2hlY2tzLCByZXF1aXJlIEdMaWIgMi42IGZvciBHT3B0aW9uLgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogTm8gUE9QVF9DRkxBR1MuCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDogRG9jIHVwZGF0ZXMgd2l0aCBhbiBleGFtcGxlLgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoZ3N0X2luaXQpLCAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyk6CgkgICogZ3N0L2dzdC5oOiBSZW1vdmVkIGdzdF9pbml0X3dpdGhfcG9wdF90YWJsZSBhbmQgZnJpZW5kcy4gVG9vayBhCgkgIGJpdCBvZiBoYW5kIG1lcmdpbmcgYW5kIGRlYnVnZ2luZyB0byBnZXQgdGhlIEdPcHRpb24gc3R1ZmYgd29ya2luZwoJICB0aG8uCgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKTogVGhhbmtzIFJvbmFsZCEKCjIwMDUtMTAtMTAgMTU6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5IGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfbmV3KToKCSAgQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5CgkgIGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXRjaCBpdCBpZiB0aGUgc2l6ZSBhbmQKCSAgR1R5cGUgYXJndW1lbnRzIGdldCBtaXhlZCB1cCwgc2VlICMzMTg0NDcpLgoKMjAwNS0xMC0xMCAxNToyNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodCBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRhay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodAoJICBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRha2UgdGhlIEdUeXBlIGFzIGZpcnN0IGFyZ3VtZW50CgkgIGp1c3QgbGlrZSBfbmV3X2xpc3QoKT8pICgjMzE4NDQ3KS4KCjIwMDUtMTAtMTAgMTU6MTc6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZmluYWxpemUpOgoJICBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoKMjAwNS0xMC0xMCAxNDozMzozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSAgZG9uJ3QgZWNobyBwYXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBlY2hvIHBhdGgKCjIwMDUtMTAtMTAgMTQ6MzM6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2luaXQsIGdzdF9lbGVtZW50X2ZpbmFsaXplKTogQWxsb2NhdGUgYW5kIGZyZWUgdGhlIG11dGV4IHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pbml0LCBnc3RfZWxlbWVudF9maW5hbGl6ZSk6CgkgIEFsbG9jYXRlIGFuZCBmcmVlIHRoZSBtdXRleCBwcm9wZXJseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChHU1RfU1RBVEVfVU5MT0NLX0ZVTEwsIEdTVF9TVEFURV9MT0NLX0ZVTEwpOgoJICBOZXcgbWFjcm9zLgoJICAoR3N0RWxlbWVudCk6IFRoZSBzdGF0ZV9sb2NrIGlzIG5vdyByZWN1cnNpdmUuIFJlYnVpbGQgeW91cgoJICBwbHVnaW5zLCBzdWNrZXJzLiBPbGQgbWFjcm9zIGFkYXB0ZWQuCgoyMDA1LTEwLTEwIDE0OjIzOjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTEwLTEwIDE0OjIzOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpCgkgIChnX3N0YXRpY19yZWNfY29uZF93YWl0KTogUG9ydGVkIGZyb20gc3RhdGUgY2hhbmdlcyBwYXRjaCwgd2hpbGUKCSAgd2Ugd2FpdCBvbiBidWcgIzMxNzgwMiB0byBiZSBzb2x2ZWQgaW4gYSB3ZWxsLWRpc3RyaWJ1dGVkIEdMaWIuCgoyMDA1LTEwLTEwIDE0OjE1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL2xpbmtfb2xkcnVudGltZS5jOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM3L2xpbmtfb2xkcnVudGltZS5jOgoJICBhZGQgbW9yZSB3aW4zMiBidWlsZCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDUtMTAtMTAgMTQ6MDM6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSwgdmFyaWFibGUgbmFtZSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbQoJICBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUsIHZhcmlhYmxlIG5hbWUgY2hhbmdlcy4KCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6IFNwbGl0IG91dCBvZiBnc3RfZWxlbWVudF9zZXRfc3RhdGUgaW4KCSAgcHJlcGFyYXRpb24gZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgbWVyZ2UuIERvZXNuJ3QgcGF5IGF0dGVudGlvbiB0bwoJICB0aGUgJ3RyYW5zaXRpb24nIGFyZ3VtZW50LgoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKTogVXBkYXRlcywgaG9wZWZ1bGx5IHB1cmVseSBjb3NtZXRpYy4KCSAgKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOiBNVC1zYWZldHkuIFBvcnRlZCBmcm9tIHRoZQoJICBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnZXRfc3RhdGUsIGNvc21ldGljCgkgIGNoYW5nZXMuCgoyMDA1LTEwLTEwIDEzOjUyOjE4ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHVwZGF0ZXMgZm9yIHRoZSB3aW4zMiBidWlsZCAocGF0Y2ggZnJvbSBTZWJhc3RpZW4gTW91dHRlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL2NvbmZpZy5oOgoJICAqIHdpbjMyL2RpcmVudC5jOiAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkgICogd2luMzIvZ3N0LWxhdW5jaC52Y3Byb2o6CgkgICogd2luMzIvZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvZ3N0ZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOiAoZ3N0X29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi9tc3ZjNzEuc2xuOgoJICB1cGRhdGVzIGZvciB0aGUgd2luMzIgYnVpbGQgKHBhdGNoIGZyb20gU2ViYXN0aWVuIE1vdXR0ZSkKCjIwMDUtMTAtMTAgMTE6NTI6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfYmluX2dldF9zdGF0ZSwgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20KCSAgZ3N0X2Jpbl9nZXRfc3RhdGUsIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspOiBDb21tZW50IHVwZGF0ZXMuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IFJlbW92ZSBuZWVkbGVzcyBjYXN0LgoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogRG9jIHVwZGF0ZS4KCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUsCgkgIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCjIwMDUtMTAtMTAgMTE6MDQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NyY19zaW5rKTogQ2xlYW51cHMgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zcmNfc2luayk6IENsZWFudXBzIGZyb20gdGhlIHN0YXRlCgkgIGNoYW5nZSBwYXRjaC4KCSAgKHRlc3RfbGl2ZXNyY19zaW5rKTogU3luYyBvbiB0aGUgc3RhdGUuCgoyMDA1LTEwLTEwIDEwOjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IE1lcmdlIGZyb20KCSAgdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NTc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZQoJICBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjUwOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwKCSAgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo0MzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZiBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZgoJICBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcHVsbGluZyBhIG5ldyBidWZmZXI7IGFsc28gbWFrZSB0aGUgYnVmZmVyCgkgIGxpc3QgYSBHU0xpc3QuIFNwZWVkcyB1cCB0eXBlZmluZGluZyBieSBjYS4gNS0xMCUgYWx0b2dldGhlci4KCjIwMDUtMTAtMTAgMDk6NDg6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgZG9uJ3QgdXNlIGxvbmcgbG9uZywgaXQncyBub3QgcG9ydGFibGUuICBSZXBsYWNpbmcgd2l0aAoJICBnaW50NjQgc2VlbXMgdG8gd29yazsgbGV0J3MgaG9wZSBubyBza2VsZXRvbnMgZmFsbCBvdXQgb2YgdGhlIGNsb3NldC4KCjIwMDUtMTAtMTAgMDg6NTE6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGF1dG9nZW4uc2ggKENPTkZJR1VSRV9ERUZfT1BUKTogTm8gbW9yZSAtLXBsdWdpbi1idWlkZGlyLCB5YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogYXV0b2dlbi5zaCAoQ09ORklHVVJFX0RFRl9PUFQpOiBObyBtb3JlIC0tcGx1Z2luLWJ1aWRkaXIsIHlheQoKMjAwNS0xMC0wOSAyMDo0OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzLCBmaXggY29tcGlsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1vcmUgZG9jcywgZml4IGNvbXBpbGF0aW9uCgoyMDA1LTEwLTA5IDIwOjE5OjQ4ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDkgIFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCjIwMDUtMTAtMDkgMTc6NTk6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0IGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0CgkgIGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwgYnV0IGdzdF90eXBlX2ZpbmRfcGVlaygpIG11c3QKCSAgZWl0aGVyIHJldHVybiB0aGUgZnVsbCBkYXRhIGFzIHJlcXVlc3RlZCBvciBOVUxMLCBidXQKCSAgbmV2ZXIgYSBzaG9ydCBidWZmZXIuCgoyMDA1LTEwLTA5IDE3OjUzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IGRvbid0IHVzZSBuZXcsIGl0J3MgYSBDKysga2V5d29yZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9uJ3QgdXNlIG5ldywgaXQncyBhIEMrKyBrZXl3b3JkCgoyMDA1LTEwLTA5IDE3OjIyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG9uY2UgaXMgZW5vdWdoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmNlIGlzIGVub3VnaAoKMjAwNS0xMC0wOCAxODoyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE4OjA3OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtb3JlIGRvY3MKCjIwMDUtMTAtMDggMTg6MDE6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCB0eXBvcywgYWRkIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IHR5cG9zLCBhZGQgY29tbWVudHMuCgkgIENsZWFyIEVPUyBsaXN0IHdoZW4gZ29pbmcgdG8gUEFVU0VEIGZyb20gYW55IGRpcmVjdGlvbiBhbmQgZG8gaXQKCSAgaW4gYSB0aHJlYWRzYWZlIHdheS4KCSAgR2V0IGJhc2UgdGltZSBpbiBhIHRocmVhZHNhZmUgd2F5IHRvby4KCSAgRml4IGNvbmZ1c2luZyBkZWJ1ZyBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBWYXJpb3VzIG90aGVyIG1hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6CgkgIEZpeCB2ZXJ5IHZlcmJvc2UgYnVzIHBvc3RpbmcgY29kZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgQVJHXyAtPiBQUk9QXyBjbGVhbnVwCgoyMDA1LTEwLTA4IDE3OjMwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgoyMDA1LTEwLTA4IDE3OjE3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogSXQncyBhYm91dCB0aW1lIHdlIGJ1bXAgdGhlIHZlcnNpb24gbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkgIEl0J3MgYWJvdXQgdGltZSB3ZSBidW1wIHRoZSB2ZXJzaW9uIG51bWJlci4KCSAgU2luY2UgZXZlbnQgdHlwZXMgZG9uJ3QgZml0IGluIHRoZSBndWludDggYW55bW9yZSBkZXNjcmliaW5nCgkgIHRoZSBwYXlsb2FkIHR5cGUsIG1ha2UgcGF5bG9hZCB0eXBlIDE2IGJpdHMgd2lkZS4KCjIwMDUtMTAtMDggMTY6NDk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IE1hbnkgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIE1hbnkgZG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE2OjEzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IEZpeCBldmVudCBxdWFyayByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBGaXggZXZlbnQgcXVhcmsgcmVnaXN0cmF0aW9uLgoJICBBZGQgc29tZSBzcGFjZSBiZXR3ZWVuIGV2ZW50cyBzbyB3ZSBjYW4gaW5zZXJ0IHRoZW0gaW4gdGhlCgkgIHJpZ2h0IGdyb3Vwcy4KCjIwMDUtMTAtMDggMTQ6NTc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgbG9nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgQmV0dGVyIGxvZyBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNb3JlIGRvY3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBSZW1vdmUgb2xkIHVudXNlZCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0wOCAxNDo0ODoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbG90cyBvZiBuZXcgZG9jcyBhbmQgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBsb3RzIG9mIG5ldyBkb2NzIGFuZCBkb2MgZml4ZXMKCjIwMDUtMTAtMDggMTQ6NDE6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGZpeCBhIGxlYWsgSSBpbnRyb2R1Y2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBsZWFrIEkgaW50cm9kdWNlZAoKMjAwNS0xMC0wOCAxMzo1NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBPbmx5IGV2ZXIgbG9hZCBvbmUgcGx1Z2luIGZvciBhIGdpdmVuIHBsdWdpbiBiYXNlbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgIE9ubHkgZXZlciBsb2FkIG9uZSBwbHVnaW4gZm9yIGEgZ2l2ZW4gcGx1Z2luIGJhc2VuYW1lLgoJICBUaGlzIGVuc3VyZXMgY29ycmVjdCBvdmVycmlkaW5nIG9mIEdTVF9QTFVHSU5fUEFUSCBvdmVyCgkgIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEggYW5kIG9mIGhvbWUgZGlyIHBsdWdpbnMgb3ZlcgoJICBzeXN0ZW0gaW5zdGFsbGVkIHBsdWdpbnMuCgoyMDA1LTEwLTA4IDEzOjM5OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJlcGFyZSBmb3IgZG9pbmcgUU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICBQcmVwYXJlIGZvciBkb2luZyBRT1MuCgoyMDA1LTEwLTA4IDEzOjEwOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBBbGxvdyBuZXcgY2xvY2sgbWVzc2FnZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IG5ldyBjbG9jayBtZXNzYWdlIHRvby4KCjIwMDUtMTAtMDggMTI6NTY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBbHNvIGNhcnJ5IHRoZSBjbG9jayBpbiBxdWVzdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFsc28gY2FycnkgdGhlIGNsb2NrIGluIHF1ZXN0aW9uLgoKMjAwNS0xMC0wOCAxMjozNjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IENsZWFuIHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSksCgkgIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBDbGVhbiB1cC4KCSAgQWRkZWQgY2xvY2sgcmVsYXRlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBQb3N0IG1lc3NhZ2Ugd2hlbiB0aGUgY2xvY2sgY2hhbmdlZC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgbmV3IGNsb2NrLgoKMjAwNS0xMC0wOCAxMToxNjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IENhbid0IHBhc3MgTlVMTCBzdHJpbmdzIHRvIGdfcHJpbnQoKSBvbiB3aW5kb3dzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBDYW4ndCBwYXNzIE5VTEwgc3RyaW5ncyB0byBnX3ByaW50KCkgb24gd2luZG93cy4KCjIwMDUtMTAtMDggMTE6MTI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkgIGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIGRvY3VtZW50IEdTVF9ERUJVRyBhbmQgR1NUX1BMVUdJTiogZW52IHZhcnMKCjIwMDUtMTAtMDggMTE6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBpbmNsdWRlIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluY2x1ZGUgZGlyCgkgICogY29uZmlndXJlLmFjOgoJICByZW1vdmUgUExVR0lOU19CVUlMRERJUiBzdHVmZgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHJlb3JkZXIgcGFyc2luZyBvZiBHU1RfUExVR0lOX1BBVEggYW5kIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEgKCSAgKiBpZGlvdHRlc3QubWFrOgoJICByZW1vdmUsIGl0IHdhcyBjb25kZXNjZW5kaW5nIGFuZCBub3QgbmVlZGVkCgoyMDA1LTEwLTA4IDA5OjU4OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIHJlY2VpdmluZyBhIEZMVVNIX1NUQVJUIHdlIGRvbid0IGF0dGVtcHQKCSAgdG8gc3luYyBvbiB0aGUgY2xvY2sgYW55bW9yZS4KCjIwMDUtMTAtMDggMDk6Mzg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEJldHRlciBtZXNzYWdlIHByaW50b3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQmV0dGVyIG1lc3NhZ2UgcHJpbnRvdXQuCgoyMDA1LTEwLTA4IDA5OjI0OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBDaGlsZFByb3h5IHRocmVhZHNhZmUgYW5kIGZpeCBtZW0gbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9uYW1lKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfdmFsaXN0KToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIENoaWxkUHJveHkgdGhyZWFkc2FmZSBhbmQgZml4IG1lbSBsZWFrcy4KCjIwMDUtMTAtMDggMDk6MDk6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBkZWJ1ZyB0aGUgR1NUX1BMVUdJTl8gZW52IHZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgZGVidWcgdGhlIEdTVF9QTFVHSU5fIGVudiB2YXJzCgoyMDA1LTEwLTA4IDA4OjU4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZyBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZwoJICBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgoyMDA1LTEwLTA4IDA4OjAwOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY2xlYW51cHMgYW5kIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBkb2MgdXBkYXRlcy4KCjIwMDUtMTAtMDggMDY6NDk6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogbG9nIGRpc3RyaWJ1dGluZyBjbG9ja3MgYW5kIGJhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIGxvZyBkaXN0cmlidXRpbmcgY2xvY2tzIGFuZCBiYXNlIHRpbWUKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgIGNsZWFuIHVwIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGEgbGl0dGxlCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIHdhcm4gYWJvdXQgYSBtZW1sZWFrIChJJ3ZlIGFjdHVhbGx5IHNlZW4gdGhpcyBiZSB1c2VkLCB0aG91Z2gKCSAgaXQgd2FzIHByb2JhYmx5IGEgYnVnKQoKMjAwNS0xMC0wOCAwNjo0MjozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgdHdvIG5ldyBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB0d28gbmV3IGZ1bmN0aW9ucwoKMjAwNS0xMC0wNyAxODoxNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfbmV3c2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCjIwMDUtMTAtMDcgMTg6MDI6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogTmV3IGV2ZW50IGZvciBmdXR1cmUgaWRlYS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2J1ZmZlcnNpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcnNpemUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBOZXcgZXZlbnQgZm9yIGZ1dHVyZSBpZGVhLgoKMjAwNS0xMC0wNyAxNjoyODo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCjIwMDUtMTAtMDcgMTY6MTM6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IE1hZGUgaW50byBhCgkgIGZ1bmN0aW9uIGxpa2UgaG9uZXN0IEFQSSBjYWxscy4KCSAgKGdzdF9tZXNzYWdlX25ld19lbGVtZW50KTogTmV3IG1lc3NhZ2UgdHlwZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChlbnVtKTogQWRkIEdTVF9NRVNTQUdFX0VMRU1FTlQgdHlwZS4KCjIwMDUtMTAtMDcgMTU6MjU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZmRzcmMgZG9lcyBub3QgYnVpbGQgY3VycmVudGx5IG9uIHdpbjMyIGR1ZSB0byBzb2NrZXRwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmZHNyYyBkb2VzIG5vdCBidWlsZCBjdXJyZW50bHkgb24gd2luMzIgZHVlIHRvIHNvY2tldHBhaXIKCjIwMDUtMTAtMDcgMTU6MjI6MzggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAodGVzdF9ub19wcmVyb2xsKTogTmV3IGNoZWNrLCBjaGVja3MgdGhhdCBzZXR0aW5nIGEgbGl2ZSBmYWtlc3JjIHRvIFBBVVNFRCByZXR1cm5zIE5PX1BSRVJPTC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKHRlc3Rfbm9fcHJlcm9sbCk6IE5ldyBjaGVjaywgY2hlY2tzCgkgIHRoYXQgc2V0dGluZyBhIGxpdmUgZmFrZXNyYyB0byBQQVVTRUQgcmV0dXJucyBOT19QUkVST0xMIGJvdGgKCSAgdGltZXMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKTogQWxsb3cgYQoJICBOT19QUkVST0xMIGZyb20gZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlIHRvIGZhbGwgdGhyb3VnaC4KCjIwMDUtMTAtMDcgMTU6MTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgoyMDA1LTEwLTA3IDEyOjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdGl2YXRpbmcgYSBnaG9zdHBhZCB3aXRoIG5vIGludGVybmFsIHBhZCBpbiBwdXNoIG1vZGUgaXMgb2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9nZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgQWN0aXZhdGluZyBhIGdob3N0cGFkIHdpdGggbm8gaW50ZXJuYWwgcGFkIGluIHB1c2ggbW9kZQoJICBpcyBvay4KCjIwMDUtMTAtMDcgMTI6NDU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5oOiB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgRml4ZXMgY29tcGlsYXRpb24gb24gV2luZG93cy4KCjIwMDUtMTAtMDcgMTA6MzI6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBQcmludCBvdXQgZmVhdHVyZSBhbmQgcGx1Z2luIGNvdW50IGF0IHRoZSBlbmQgd2hlbiBwcmludGluZyBvdXQgYWxsIGZlYXR1cmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUHJpbnQgb3V0IGZlYXR1cmUgYW5kIHBsdWdpbiBjb3VudCBhdCB0aGUgZW5kIHdoZW4gcHJpbnRpbmcgb3V0CgkgIGFsbCBmZWF0dXJlcy4KCSAgQWxzbyBhZGQgYSBjaGFuZ2Vsb2cgZW50cnkgd2hpY2ggSSdkIHdyaXR0ZW4gYnV0IG5vdCBjb21taXR0ZWQ/CgoyMDA1LTEwLTA3IDAwOjE0OjQ1ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIEFkZCBhIEdUeXBlIHRvIEdzdEl0ZXJhdG9yLCB1cGRhdGUgY2FsbHNpdGVzIGFuZCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlKSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfaXRlcmF0ZV9kZWZpbml0aW9ucyk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksIChnc3RfaXRlcmF0b3JfZmlsdGVyKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV90eXBlX2l0ZXJhdGVfZGVmaW5pdGlvbnMpOgoJICBBZGQgYSBHVHlwZSB0byBHc3RJdGVyYXRvciwgdXBkYXRlIGNhbGxzaXRlcyBhbmQgdGVzdHMuCgoyMDA1LTEwLTA2IDIxOjA5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9oLiAgdXNlIGNvcnJlY3QgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvaC4gIHVzZSBjb3JyZWN0IHZhcmlhYmxlCgoyMDA1LTEwLTA2IDE3OjAwOjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoKMjAwNS0xMC0wNiAxNDoyMDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW5pdGlhbGl6ZSBxdWFya3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluaXRpYWxpemUgcXVhcmtzCgoyMDA1LTEwLTA2IDE0OjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkIGlzIG5vdCBsaW5rZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKToKCSAgZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkCgkgIGlzIG5vdCBsaW5rZWQKCjIwMDUtMTAtMDYgMTM6NTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGFkZCBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBldmVudCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF90eXBlX2dldF9uYW1lKSwKCSAgKGdzdF9ldmVudF90eXBlX3RvX3F1YXJrKSwgKGdzdF9ldmVudF9maW5hbGl6ZSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIGV2ZW50IHR5cGVzCgoyMDA1LTEwLTA2IDEzOjQyOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTA2IDEzOjI0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgIERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoKMjAwNS0xMC0wNiAwOTo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZSBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdCBwbGF5IHdpdGggdGhlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZQoJICBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdAoJICBwbGF5IHdpdGggdGhlIGNvbG9ycwoJICBmaXggdXAgc29tZSBjYXRlZ29yaWVzCgoyMDA1LTEwLTA2IDA3OjQyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGZpcnN0IHN0YWIgYXQgcmVvcmdhbml6aW5nIGRvY3MgZm9yIHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3Qgc3RhYiBhdCByZW9yZ2FuaXppbmcgZG9jcyBmb3IgcGFkCgoyMDA1LTEwLTA2IDA3OjEzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDYgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgQW5keWUsIHBsZWFzZSB2ZXJpZnkKCjIwMDUtMTAtMDUgMjI6MzU6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTAtMDUgMjE6MzQ6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGZpeCBhIGJ1ZyBpbiB0aGUgY2FzZSB3aGVyZSBuZWl0aGVyIGVsZW1lbnQgaGFzIGEgcGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgZml4IGEgYnVnIGluIHRoZSBjYXNlIHdoZXJlIG5laXRoZXIgZWxlbWVudCBoYXMgYSBwYWQKCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciB0aGF0IGNhc2UKCjIwMDUtMTAtMDUgMTc6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCjIwMDUtMTAtMDUgMTY6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MKCSAgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlbHBzIGF1dG9wbHVnZ2Vycy4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChfcHJvYmVfaGFuZGxlciksCgkgIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNpeCBjaGVja3MsIGxpbmtlZC91bmxpbmtlZCB3aXRoIG5vL3RydWUvZmFsc2UgcHJvYmUKCjIwMDUtMTAtMDUgMTE6NTA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmRlbnQgaWZkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmRlbnQgaWZkZWZzCgoyMDA1LTEwLTA0IDE4OjQ2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzLzogUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NpbmtfZXZlbnQpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mYWtlX3NyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoKMjAwNS0xMC0wNCAxNTowNDo1MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuaDogQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgoyMDA1LTEwLTA0IDEzOjE5OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoKMjAwNS0xMC0wNCAxMjowMjozNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciB0aGVyZSBmcm9tIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNvbWUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIHRoZXJlIGZyb20gc3BlYyBmaWxlCgoyMDA1LTEwLTA0IDExOjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgoyMDA1LTEwLTA0IDExOjEwOjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuYzogQWRkIGFub3RoZXIgZXJyb3Igc3RyaW5nIHVzZWQgaW4gYSBmZXcgZXhpc3RpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEFkZCBhbm90aGVyIGVycm9yIHN0cmluZyB1c2VkIGluIGEgZmV3IGV4aXN0aW5nIHBsdWdpbnMuCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFdoZW4gYSBmZWF0dXJlIGRpc2FwcGVhcnMgZnJvbSBhIHBsdWdpbiAoYW5kIHRoZSBmZWF0dXJlIGV4aXN0cyBpbgoJICB0aGUgY2FjaGVkIHJlZ2lzdHJ5IGZpbGUpLCB0aGluZ3Mgd2VudCBob3JyaWJseSB3cm9uZy4gVGhpcyBpc24ndCBhCgkgIGNvbXBsZXRlIGZpeCwgd2Ugc2hvdWxkIGFjdHVhbGx5IGJlIHJlbW92aW5nIHRoZSAnbWlzc2luZycgZmVhdHVyZXMKCSAgZnJvbSB0aGUgZmVhdHVyZXMgbGlzdCB3aGVuIHdlIGxvYWQgdGhlIGFjdHVhbCBwbHVnaW4uIFRoYXQncyBub3QKCSAgeWV0IGltcGxlbWVudGVkLgoKMjAwNS0xMC0wNCAxMTowOTo0MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IFdlIGRvbid0IG5lZWQgdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiBXZSBkb24ndCBuZWVkIHRoaXMgaGVhZGVyLgoKMjAwNS0xMC0wMyAxNzo1NzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4zID09PQoKMjAwNS0xMC0wMyAxNzo0NzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHJlbGVhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzZSB0aW1lCgoyMDA1LTEwLTAyIDIzOjI0OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24gd2hlcmVieSBjYWxsaW5nIGEgcGFkJ3MgYWN0aXZhdGVwdXNoKCkgZnVuY3Rpb24gY2FuIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uCgkgIHdoZXJlYnkgY2FsbGluZyBhIHBhZCdzIGFjdGl2YXRlcHVzaCgpIGZ1bmN0aW9uIGNhbiBzdGFydCBhIHRocmVhZAoJICB0aGF0IHN0YXJ0cyB0byBwdXNoIG9yIHB1bGwgYmVmb3JlIHRoZSBwYWQgZ2V0cyB0aGUgRkxVU0hJTkcgZmxhZwoJICB1bnNldC4gSGFjayBhcm91bmQgaXQgYnkgaG9sZGluZyB0aGUgc3RyZWFtIGxvY2sgdW50aWwgdGhlIGZsYWcgaXMKCSAgc2V0LiBOZWVkIHRvIHJlcGxhY2UgdGhpcyB3aXRoIGEgcHJvcGVyIHNvbHV0aW9uLiBUb2dldGhlciB3aXRoCgkgIHRoZSBnaG9zdCBwYWQgZml4ZXMsIHRoaXMgZml4ZXMgbXAzIHBsYXlpbmcvdGFncmVhZGluZy4KCjIwMDUtMTAtMDIgMjM6MjE6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMTAtMDIgMjM6MjA6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YKCSAgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZ2hvc3QgcGFkIGFjdGl2YXRpb24gZGVzaWduLgoKMjAwNS0xMC0wMiAxODo1NzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgSXQgaXMgdm9sYXRpbGUsIGFmdGVyIGFsbC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogRmxlc2ggb3V0IGFjdGl2YXRpb24gd2l0aAoJICBnaG9zdCBwYWRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2luaXQpOiBVc2UKCSAgR1NUX0RFQlVHX0ZVTkNQVFIuCgoyMDA1LTEwLTAyIDE4OjMwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggKHVudXNlZCkgQU1fQ09ORElUSU9OQUwgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4ICh1bnVzZWQpIEFNX0NPTkRJVElPTkFMIHRlc3RzLgoKMjAwNS0xMC0wMSAxNzoxMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgYXNzZXJ0aW9uIHRoYXQgbWFrZXMgc3VyZSBzcmNfdmFsIGlzID49MCwganVzdCBsaWtlIGdzdF9xdWVyeV9uZXdfY29udmVydCgpIGhhcy4gKCMzMTU4OTUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgQWRkIGFzc2VydGlvbiB0aGF0IG1ha2VzIHN1cmUgc3JjX3ZhbCBpcyA+PTAsIGp1c3QgbGlrZQoJICBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKSBoYXMuICgjMzE1ODk1KQoKMjAwNS0wOS0zMCAxNTo0MzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogTGV0J3Mgbm90IGl0ZXJhdGUgcGFkcyB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiwgaXQgYXZvaWRzIGdldHRpbmcgc2t5LWhpZ2ggcmVmY291bnRzIG9uIHNpbmtwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBMZXQncyBub3QgaXRlcmF0ZSBwYWRzIHdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluLCBpdCBhdm9pZHMgZ2V0dGluZwoJICBza3ktaGlnaCByZWZjb3VudHMgb24gc2lua3BhZC4KCjIwMDUtMDktMzAgMDg6Mjk6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCB0d2VhaywgZWxlbWVudCBpbiBBU1lOQyByZW1haW5zIEFTWU5DLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIHR3ZWFrLCBlbGVtZW50IGluIEFTWU5DIHJlbWFpbnMgQVNZTkMuCgoyMDA1LTA5LTMwIDA4OjAwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9jaGFpbik6CgkgIEFsc28gY2FsbCBwYWRfYmxvY2sgaW4gcGFkIGFsbG9jLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoKMjAwNS0wOS0yOSAyMDoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IGRvY3VtZW50YXRpb24gdHlwb3MuIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zLiBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA1LTA5LTI5IDIwOjE2OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoKMjAwNS0wOS0yOSAxOTo0NToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcyBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcwoJICBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKTogQ2hlY2sgaWYgY29tbWFuZC1saW5lIGFyZ3VtZW50IGlzCgkgIGEgZmlsZSBhbmQgYXR0ZW1wdCB0byBsb2FkIHRoYXQgZmlsZSBhcyBhIHBsdWdpbi4KCjIwMDUtMDktMjkgMTg6Mzc6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBmaXggdGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkgIGZpeCB0ZXN0cyBmb3IgdGhlIG5ldyB3YXJuaW5nCgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBhIHRlc3QgZm9yIHBpcGVsaW5lIGFuZCBidXMgaW50ZXJhY3Rpb24KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50cyBzaG91bGQgYmUgTlVMTCBpZiB0aGV5IGdldCBkaXNwb3NlZDsgYWRkIGEgd2FybmluZyBpZiBub3QKCjIwMDUtMDktMjkgMTg6MzU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBmb3IgMi42IHJlZmNvdW50aW5nLCBtYWtlIGRlYnVnIGxvZyBtb3JlIGNvcnJlY3QgYnkgcHJpbnRpbmcgdGhlIGFjdHVhbCByZWZjb3VudHMgYXQgdGhlIHRpbWUgb2Ygc3dhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgZm9yIDIuNiByZWZjb3VudGluZywgbWFrZSBkZWJ1ZyBsb2cgbW9yZSBjb3JyZWN0IGJ5IHByaW50aW5nCgkgIHRoZSBhY3R1YWwgcmVmY291bnRzIGF0IHRoZSB0aW1lIG9mIHN3YXAgKFdpbSkKCjIwMDUtMDktMjkgMTg6MjU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoKMjAwNS0wOS0yOSAxNjowNjoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wOS0yOSAxNjowNDozMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOiBOZXcgZnVuY3Rpb24sIHJlbW92ZXMgc2lnbmFsIHdhdGNoZXMgcHJldmlvdXNseSBhZGRlZCB2aWEgZ3N0X2J1c19hZGRfc2lnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKTogTmV3IGZ1bmN0aW9uLAoJICByZW1vdmVzIHNpZ25hbCB3YXRjaGVzIHByZXZpb3VzbHkgYWRkZWQgdmlhCgkgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaC4KCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6IERvbid0IHJldHVybiB0aGUgc291cmNlIGlkLCBqdXN0IHN0b3JlCgkgIGl0IG9uIHRoZSBidXMgaWYgdGhlcmUgd2Fzbid0IGFuIGlkIGFscmVhZHkuCgkgICogZ3N0L2dzdGJ1cy5oIChHc3RCdXMpOiBBZGQgYSBjb3VwbGUgbmV3IGZpZWxkcy4gQVBJIGNoYW5nZXMgZm9yCgkgIGFkZF9zaWduYWxfd2F0Y2ggYW5kIHJlbW92ZV9zaWduYWxfd2F0Y2guCgoyMDA1LTA5LTI5IDE1OjM5OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEJldHRlciBpZiB3ZSBhY3R1YWxseSBpdGVyYXRlIHRoZSBsaXN0IDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBCZXR0ZXIgaWYgd2UgYWN0dWFsbHkgaXRlcmF0ZSB0aGUgbGlzdCA6KQoKMjAwNS0wOS0yOSAxMzowNzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQ2hhbmdlIGZvciBuZXcgYnVzIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGFuZ2UgZm9yIG5ldyBidXMgQVBJLgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgIChzZW5kX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSk6CgkgIENoYW5nZSBmb3IgbmV3IGJ1cyBzaWduYWwgQVBJLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAoZ3N0X2J1c19wb2xsKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKSwgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBSZW1vdmUgc3VwcG9ydCBmb3IgbXVsdGlwbGUgR1NvdXJjZXMgb3BlcmF0aW5nIG9uIGRpZmZlcmVudAoJICBtZXNzYWdlIHR5cGVzIGFzIGl0IGlzIHRvbyBjb21wbGV4IGFuZCB1bm5lZWRlZCB3aGVuIHVzaW5nCgkgIHNpZ25hbHMuCgkgIEFkZGVkIHN1cHBvcnQgZm9yIHJlY2VpdmluZyBzaWduYWxzIGZyb20gdGhlIGJ1cy4KCjIwMDUtMDktMjkgMTI6Mzc6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCjIwMDUtMDktMjkgMTI6MDU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIE1lbnRpb24gZ3N0X3BhZF91c2VfZXhwbGljaXRfY2FwcygpID0+IGdzdF9wYWRfdXNlX2ZpeGVkX2NhcHMoKQoKMjAwNS0wOS0yOSAxMDo1Njo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQKCSAgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKGNoZWNrX2ZvdXJjY19saXN0KSwgKHRlc3Rfc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBjYXBzIHNpbXBsaWZpY2F0aW9uLgoKMjAwNS0wOS0yOSAwOTo0NDozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgoyMDA1LTA5LTI5IDA5OjQyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBPb3BzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE9vcHMuCgoyMDA1LTA5LTI5IDA5OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGQgYnVzIHRvIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYnVzIHRvIGJpbi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9kZWdyZWUpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQSBiaW4gZG9lcyBub3QgaGF2ZSBhIGJ1cywgaXQgZ2V0cyB0aGUgYnVzIGZyb20gdGhlIHBhcmVudC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2spLCAoZ3N0X2VsZW1lbnRfaXNfaW5kZXhhYmxlKSwKCSAgKGdzdF9lbGVtZW50X2lzX2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgVGhlIHBpcGVsaW5lIHByb3ZpZGVzIGEgYnVzLgoKMjAwNS0wOS0yOSAwMjozMjozNyArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKTogVXNlIGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0gaW5zdGVhZCBvZiBnc3Rfc3RydWN0dXJlX2dldF9pbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBnc3Rfc3RydWN0dXJlX2dldF9lbnVtIGluc3RlYWQgb2YgZ3N0X3N0cnVjdHVyZV9nZXRfaW50CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2dldF9lbnVtKTogSW1wbC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmggKGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0pOiBBZGQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEaXR0bwoKMjAwNS0wOS0yOSAwMTo1NzowMCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBHU1RfVFlQRV9TVEFURSBpbnN0ZWFkIG9mIEdfVFlQRV9JTlQsIG1haW5seSBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCSAgd2hpY2ggZG9lcyBpbnRyb3NwZWN0aW9uLgoJICBSZXZpZXdlZCBieSBDaHJpc3RpYW4gU2NoYWxsZXIKCjIwMDUtMDktMjggMTg6MTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgZml4ZWQgdW1sYXV0cyBpbiBDaGFuZ2VMb2cgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIHVtbGF1dHMgaW4gQ2hhbmdlTG9nIGFnYWluCgoyMDA1LTA5LTI4IDE3OjMwOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBkb24ndCBkbyBkdW1teSBnX3N0cmR1cCgpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgZG9uJ3QgZG8gZHVtbXkgZ19zdHJkdXAoKXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX3NldCksCgkgIChnc3RfY29udHJvbGxlcl9nZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfdGltZWRfdmFsdWVfbm9kZSk6CgkgIGNvbnZlcnQgLy8gdG8gLyoqLyBjb21tZW50cwoKMjAwNS0wOS0yOCAxNjo0MzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogQWRkZWQgYXN5bmMtbWVzc2FnZSBhbmQgc3luYy1tZXNzYWdlIHNpZ25hbHMgdG8gdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKSwgKGdzdF9idXNfY2xhc3NfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpLCAocG9sbF9mdW5jKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFkZGVkIGFzeW5jLW1lc3NhZ2UgYW5kIHN5bmMtbWVzc2FnZSBzaWduYWxzIHRvIHRoZSBidXMuCgkgIEFkZGVkIGhlbHBlciBCdXNGdW5jIHRvIGVtaXQgc2lnbmFscyBmb3IgYWxsIHBvc3RlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfdHlwZV9nZXRfbmFtZSksCgkgIChnc3RfbWVzc2FnZV90eXBlX3RvX3F1YXJrKSwgKGdzdF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZWdpc3RlciBxdWFya3MgZm9yIG1lc3NhZ2UgbmFtZXMuCgoyMDA1LTA5LTI4IDE2OjM5OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBhbm90aGVyIGNvbnN0cnVjdG9yIGZvciBsYW5ndWFnZSBiaW5kaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIGFkZGVkIGFub3RoZXIgY29uc3RydWN0b3IgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgoyMDA1LTA5LTI4IDE1OjQ1OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBhZGQgYW5vdGhlciBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIGNoZWNrCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBhZGQgc29tZSBkb2MKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgc2xpZ2h0bHkgbW9yZSByZWFkYWJsZSBjb2xvciBmb3IgcmVmY291bnQgZGVidWdnaW5nCgoyMDA1LTA5LTI4IDEzOjQxOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X2RlZ3JlZSksICh1cGRhdGVfZGVncmVlKSwKCSAgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrKSwgKGdzdF9lbGVtZW50X3Byb3ZpZGVfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNYWtlIGdldC9zZXRfY2xvY2soKSBzeW1ldHJpYy4gQWRkIHByb3ZpZGVfY2xvY2sgdm1ldGhvZCBzaW5jZQoJICB0aGF0IGlzIGFjdHVhbGx5IHdoYXQgdGhpcyBmdW5jdGlvbiBkb2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2spOgoJICBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCjIwMDUtMDktMjggMTM6MDU6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3VubG9jayk6IENvbW1lbnQgYSBiaXQgaW4gbGlldSBvZiByZWFsIGRvY3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfdW5sb2NrKTogQ29tbWVudCBhIGJpdCBpbgoJICBsaWV1IG9mIHJlYWwgZG9jcy4uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBDbGVhbmVkIHVwIGEgYml0LgoKMjAwNS0wOS0yOCAxMjo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy86IE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCjIwMDUtMDktMjggMTE6MDM6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBDbGVhbiB1cCBkaXNwb3NlIGhhbmRsZXJzLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfcmVmKSwgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIENsZWFuIHVwIGRpc3Bvc2UgaGFuZGxlci4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBSZW1vdmVkIHNwdXJpb3VzIFVOTE9DSy4KCjIwMDUtMDktMjcgMjA6NDA6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIHR3byBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzIGRvY3VtZW50cyBhbGwgdW5kb2N1bWVudGVkIEdzdFhYWEZsYWdzIGNvbXBsZXRlZCBzb21lIGluY29tcGxldGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICBhZGRlZCB0d28gbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoJICBkb2N1bWVudHMgYWxsIHVuZG9jdW1lbnRlZCBHc3RYWFhGbGFncwoJICBjb21wbGV0ZWQgc29tZSBpbmNvbXBsZXRlIGRvY3MKCjIwMDUtMDktMjcgMTg6MzM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIG5vdyB1c2VsZXNzIGFuZCBsZWFreSByZXN1cnJlY3Rpb24gY29kZSBpbiBkaXNwb3NlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICByZW1vdmUgbm93IHVzZWxlc3MgYW5kIGxlYWt5IHJlc3VycmVjdGlvbiBjb2RlIGluIGRpc3Bvc2UKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgYWRkIHNvbWUgZGVidWdnaW5nCgoyMDA1LTA5LTI3IDE3OjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFJlbW92ZSBlbGVtZW50IHZhcmlhYmxlLCB3ZSBrZWVwIGVsZW1lbnQgaW5mbyBpbiB0aGUgaXRlcmF0b3Igbm93LgoKMjAwNS0wOS0yNyAxNjozMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuCgkgIHZhbHVlcy4KCjIwMDUtMDktMjcgMTY6MTY6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEVuYWJsZSBjaGVjayB0aGF0IHdvcmtzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFbmFibGUgY2hlY2sgdGhhdCB3b3JrcyBub3cuCgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBSZWRpZCB0aGUgc3RhdGUgY2hhbmdlIGFsZ29yaXRobSB1c2luZyBhIHRvcG9sb2dpY2FsIHNvcnQgYWxnby4KCSAgSGFuZGxlcyBhbGwgY2FzZXMgY29ycmVjdGx5LgoJICBFeHBvc2VkIGl0ZXJhdG9yIGZvciBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGVtcCBzdG9yYWdlIGZvciBzdGF0ZSBjaGFuZ2VzLiBOZWVkIHRvIGdldCByaWQgb2YgdGhpcyBzb29uLgoKMjAwNS0wOS0yNyAxNTozNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZCBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpLCAoZ3N0X3RlZV9kb19wdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGludGVyc2VjdF9jYXBzX2Z1bmMpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwKCSAgKGxpbmtfZm9sZF9mdW5jKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2Fwcyk6CgkgIExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZAoJICBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoKMjAwNS0wOS0yNyAxMzoyNToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogUGx1ZyBsZWFrIGluIHRlc3QgY2FzZSBhbmQgZml4ICdtYWtlIGNoZWNrLXZhbGdyaW5kJwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6ICh0ZXN0X21ha2Vfd3JpdGFibGUpOgoJICBQbHVnIGxlYWsgaW4gdGVzdCBjYXNlIGFuZCBmaXggJ21ha2UgY2hlY2stdmFsZ3JpbmQnCgoyMDA1LTA5LTI3IDEzOjA3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBzdWJidWZmZXJzLCBzbyB0aGF0IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvcmtzIGNvcnJlY3RseSBpbiBhbGwgY2lyY3Vtc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfaW5pdCk6CgkgIFNldCBSRUFET05MWSBmbGFnIG9uIHN1YmJ1ZmZlcnMsIHNvIHRoYXQgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkKCSAgd29ya3MgY29ycmVjdGx5IGluIGFsbCBjaXJjdW1zdGFuY2VzICh3ZSBjb3VsZCBoYXZlIGp1c3QgY29waWVkCgkgIHRoZSBwYXJlbnQgYnVmZmVyJ3MgcmVhZG9ubHkgZmxhZywgYnV0IGNvbmNlcHR1YWxseSBpdCBzZWVtcwoJICBjbGVhbmVyIHRvIG1hcmsgYWxsIHN1YmJ1ZmZlcnMgYXMgcmVhZC1vbmx5KS4gKGJhc2VkIG9uIHBhdGNoCgkgIGJ5IEFsZXNzYW5kcm8gRGVjaW5hLCAjMzE0NzEwKS4KCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChjcmVhdGVfcmVhZF9vbmx5X2J1ZmZlciksCgkgICh0ZXN0X21ha2Vfd3JpdGFibGUpLCAodGVzdF9zdWJidWZmZXJfbWFrZV93cml0YWJsZSksCgkgIChnc3RfdGVzdF9zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3RzIGZvciBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKS4KCjIwMDUtMDktMjcgMDk6NTc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IHVzZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICB1c2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2hhc19hbmNlc3Rvcik6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIGNvcGllZCBmcm9tIGdzdGJpbi5jIGFzIGl0IGlzIGEKCSAgdXNlZnVsbCBmdW5jdGlvbi4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jcmVhdGUuYzogKGNyZWF0ZV9hbGxfZWxlbWVudHMpOgoJICAqIHRlc3RzL2xhdC5jOiAoaGFuZG9mZl9zcmMpLCAoaGFuZG9mZl9zaW5rKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NlZWtpbmcvc2Vla2luZzEuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOiAoYnVzX2hhbmRsZXIpLCAodGltZW91dF9mdW5jKSwKCSAgKG1haW4pOgoJICBGaXggY29tcGlsYXRpb24gb2Ygc29tZSB0ZXN0cy4KCjIwMDUtMDktMjcgMDk6Mjk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBHX1RZUEVfRVJST1IgaGFzIGJlZW4gV09OVEZJWCdlZCBieSB0aGUgR0xpYiBmb2xrcwoJICAoIzMxNjk2MSwgIzMwMDYxMCkuCgoyMDA1LTA5LTI2IDE4OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCBjaGVjayB0aGF0IHNob3dzIGVycm9yIGluIHN0YXRlIGNoYW5nZSBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRoYXQgc2hvd3MgZXJyb3IgaW4gc3RhdGUgY2hhbmdlIG9yZGVyLgoKMjAwNS0wOS0yNiAxNzo0NjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlCgkgIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayk6CgkgIFNvbWUgZGVidWcgaW5mbywKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBBZGRlZCBzb21lIGRlYnVnIGluZm8gZmlyc3QuCgoyMDA1LTA5LTI2IDE3OjQwOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vOiBSZXBsYWNlIGFsbCBfcHVsbF9yZWdpb24oKSB3aXRoIF9wdWxsX3JhbmdlKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgUmVwbGFjZSBhbGwgX3B1bGxfcmVnaW9uKCkgd2l0aCBfcHVsbF9yYW5nZSgpCgoyMDA1LTA5LTI2IDE2OjE5OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdHJ5IHRoZSBmb3VydGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyeSB0aGUgZm91cnRoCgoyMDA1LTA5LTI2IDE2OjEyOjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMDktMjYgMTY6MDc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBCZXR0ZXIgZmFrZW91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEJldHRlciBmYWtlb3V0LgoKMjAwNS0wOS0yNiAxNTo0OToyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCjIwMDUtMDktMjYgMTU6NDM6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIFJlbW92ZSBtZW1jaHVuayBiZW5jaG1hcmsgc3R1ZmYsIHRoaXMgaXMgdGFrZW4gb3ZlciBieSBHTGliIGJ1ZyAxMTg0MzkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9tZW1jaHVuazogUmVtb3ZlIG1lbWNodW5rIGJlbmNobWFyayBzdHVmZiwgdGhpcyBpcyB0YWtlbgoJICBvdmVyIGJ5IEdMaWIgYnVnIDExODQzOS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3dhaXQpOiBGYWN0b3Igb3V0IHRoZSB3YWl0CgkgIHJvdXRpbmVzIHRvIGEgZnVuY3Rpb24uCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogSSBhbSBhIGdvb2QgcGVyc29uIHRvZGF5LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmggKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKQoJICAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyk6IFJlbmFtZWQgZnJvbSBzaW5rX3ZhbHVlcy4gVWdoLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IFVwZGF0ZSBmb3IgX19nc3RfY29udHJvbGxlcl9rZXkuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmMgKF9fZ3N0X2NvbnRyb2xsZXJfa2V5KToKCSAgUmVuYW1lZCBmcm9tIGNvbnRyb2xsZXJfa2V5LCBhcyBpdCBpcyBleHBvcnRlZC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogRmFrZSBvdXQgdGhlIGNvbXBpbGVyLgoKMjAwNS0wOS0yNiAxNTowMzo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkgIHJlbW92ZSBxdWVyeXV0aWxzIGhlYWRlcnMgYWZ0ZXIgbW92aW5nIHRoZSB0d28gdXNlZCBmdW5jdGlvbnMgdG8gZ3N0cXVlcnkuICBhbHNvIGZpeGVzIGJ1aWxkIHByb2JsZW0gZm9yIGdzdHNpZGRlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHF1ZXJ5dXRpbHMgaGVhZGVycyBhZnRlciBtb3ZpbmcgdGhlIHR3byB1c2VkIGZ1bmN0aW9ucwoJICB0byBnc3RxdWVyeS4gIGFsc28gZml4ZXMgYnVpbGQgcHJvYmxlbSBmb3IgZ3N0c2lkZGVjCgoyMDA1LTA5LTI2IDEzOjQwOjIxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQ29ycmVjdCBzeW50YXggZm9yIGRlYnVnIG9wdGlvbiBpbiBnc3QtbGF1bmNoIG1hbnBhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvcnJlY3Qgc3ludGF4IGZvciBkZWJ1ZyBvcHRpb24gaW4gZ3N0LWxhdW5jaCBtYW5wYWdlCgoyMDA1LTA5LTI2IDExOjIxOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2lzX3NlZWthYmxlKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA5LTI1IDE4OjM0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIGFkZGVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yNSAxMjoxMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0aGUgbGFzdCB0d28gZG9jcyBmaWxlcyByZW1vdmVkIHRoZSB0bXBsIGRpcmVjdG9yeSBmcm9tIGN2cyAobm8gbW9yZSBjb25mbGljdHMgaGVyZSEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0Ly5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGlubGluZWQgdGhlIGxhc3QgdHdvIGRvY3MgZmlsZXMKCSAgcmVtb3ZlZCB0aGUgdG1wbCBkaXJlY3RvcnkgZnJvbSBjdnMgKG5vIG1vcmUgY29uZmxpY3RzIGhlcmUhKQoKMjAwNS0wOS0yNSAxMToxOToyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3NldF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KSwgKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX2Rpc3Bvc2UpLCAobmFtZV9pc192YWxpZCksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzCgkgIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCjIwMDUtMDktMjQgMTQ6MzU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfZmxhZ2dlZF9zaW5rKSwKCSAgKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX3NlbWlfc2luayk6CgkgIEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbgoJICBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXNlIHRoZSBzaW5rIG1pZ2h0IGNvbW1pdCBpdHMKCSAgbmV3IHN0YXRlIGZpcnN0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBjcmVhdGVkIGJ5IHRoZSBzb3VyY2UKCSAgcmVhY2hlcyB0aGUgc2luayBiZWZvcmUgdGhlIHNvdXJjZSBoYXMgZmluaXNoZWQgaXRzIGNoYW5nZSBzdGF0ZS4KCSAgKFRlc3QgY2FzZSBzdGlsbCBmYWlscyBhdCB0aW1lcywgc2VlICMzMTY4NTYsIGNvbW1lbnQgNSBvbndhcmRzKQoKMjAwNS0wOS0yNCAxNDoxNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0wOS0yNCAxMTo0MTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suaDogV2VsbCwgdGhhdCdzIGVtYmFyYXNzaW5nLiAgTHVja2lseSB3ZSB3ZXJlbid0IHVzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBXZWxsLCB0aGF0J3MgZW1iYXJhc3NpbmcuICBMdWNraWx5IHdlIHdlcmVuJ3QgdXNpbmcKCSAgR1NUX0NMT0NLX0RJRkYgYW55d2hlcmUuCgoyMDA1LTA5LTIzIDE4OjA4OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9ndGstZG9jLm1hazogZG9uJ3QgZmFpbCBvbiBidWlsZGluZyBYTUwsIEZDNCBzbGF2ZSBzaG93cyBhIGJ1bmNoIG9mIGRvYyBtaXNzaW5nIGJpdHMgdGhhdCBJIGRvbid0IGdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgIGRvbid0IGZhaWwgb24gYnVpbGRpbmcgWE1MLCBGQzQgc2xhdmUgc2hvd3MgYSBidW5jaCBvZiBkb2MKCSAgbWlzc2luZyBiaXRzIHRoYXQgSSBkb24ndCBnZXQKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzb21lIGRvYyB1cGRhdGVzCgoyMDA1LTA5LTIzIDE4OjAyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGJsdXJiIGFib3V0IGhvdyB0aGUgYnVzIGdvZXMgaW50byBmbHVzaGluZyBtb2RlIGFuZCBkcm9wcyBhbGwgbWVzc2FnZXMgd2hlbiBpdHMgYmluIGdvZXMgZnJvbSBSRUFEWSBpbnRvIE5VTEwgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgYmx1cmIgYWJvdXQgaG93IHRoZSBidXMgZ29lcyBpbnRvIGZsdXNoaW5nIG1vZGUgYW5kCgkgIGRyb3BzIGFsbCBtZXNzYWdlcyB3aGVuIGl0cyBiaW4gZ29lcyBmcm9tIFJFQURZIGludG8gTlVMTAoJICBzdGF0ZS4KCjIwMDUtMDktMjMgMTc6NDY6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgbWV0aG9kIHRvIGdldCBhIEdzdENsb2NrVGltZSBvdXQgb2YgYSBzdHJ1Y3R1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9jbG9ja190aW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIG1ldGhvZCB0byBnZXQgYSBHc3RDbG9ja1RpbWUgb3V0IG9mIGEgc3RydWN0dXJlCgoyMDA1LTA5LTIzIDE3OjE3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCB0ZXN0IHRvIGNoZWNrIHN0YXRlIGNoYW5nZSBvcmRlciBpbiBiaW5zIChjYW4gc3RpbGwgYmUgbWFkZSB0byBmYWlsIGhlcmUgdW5kZXIgaGVhdnkgZGlzayBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX2ZsYWdnZWRfc2luayksCgkgICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9zZW1pX3NpbmspLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgdG8gY2hlY2sgc3RhdGUgY2hhbmdlIG9yZGVyIGluIGJpbnMgKGNhbiBzdGlsbCBiZSBtYWRlCgkgIHRvIGZhaWwgaGVyZSB1bmRlciBoZWF2eSBkaXNrIGxvYWQ7IGJhaWxzIG91dCB3aXRoICdQdXNoIG9uIHBhZAoJICBmYWtlc2luazpzaW5rMCwgYnV0IGl0IHdhcyBub3QgYWN0aXZhdGVkIGluIHB1c2ggbW9kZScpLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEZpeCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiB0aGVyZSBpcyBvbmx5IGEgc2VtaSBzaW5rICgjMzE2ODU2KQoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIFVzZSBfY2xhc3NfcGVla19wYXJlbnQoKSwgbm90IF9jbGFzc19yZWYoKTsgZml4IGRvY3MgdG8gc2F5CgkgICdkZWZhdWx0IG1haW4gY29udGV4dCcgaW5zdGVhZCBvZiAnbWFpbmxvb3AnIHdoZXJlIHRoYXQgaXMKCSAgd2hhdCdzIG1lYW50LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRml4IHR5cG9zIGluIGRlYnVnIG1lc3NhZ2VzCgoyMDA1LTA5LTIzIDE2OjM1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTA5LTIzIDE1OjQ4OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCjIwMDUtMDktMjMgMTU6MzY6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9jaGFpbik6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBjaGFuZ2UgYW4gYXNzZXJ0IGludG8gYW4gZXJyb3IgdW50aWwgaXQgZ2V0cyBmaXhlZCBwcm9wZXJseQoKMjAwNS0wOS0yMyAxNDozMToyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCAzIG1vcmUgYmlpaWlnIGRvYyBmaWxlcyBhbmQgYWRkZWQgc29tZSBtaXNzaW5nIGRvY3Mgb24gdGhlIGZseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGlubGluZWQgMyBtb3JlIGJpaWlpZyBkb2MgZmlsZXMgYW5kIGFkZGVkIHNvbWUgbWlzc2luZyBkb2NzIG9uIHRoZSBmbHkKCjIwMDUtMDktMjMgMTE6NDE6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcHV0IGJhY2sgc291cmNlIGluIHJlZ2lzdHJ5LiAgYWRkIGNoZWNrcyBmb3IgZmluZF9wbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIHB1dCBiYWNrIHNvdXJjZSBpbiByZWdpc3RyeS4gIGFkZCBjaGVja3MgZm9yIGZpbmRfcGx1Z2luLgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6IChhc3NlcnRfc3RhdGUpLCAoZW1wdHlfYmluKSwKCSAgKHRlc3RfYWRkaW5nX29uZV9lbGVtZW50KSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6IChtYWluKToKCSAgc29tZSBjb21waWxlL3J1biBmaXhlcwoKMjAwNS0wOS0yMiAyMDowMjoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGxlYWsgaW4gdGhlIHRlc3QgaXRzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhayBpbiB0aGUgdGVzdCBpdHNlbGYKCjIwMDUtMDktMjIgMTg6MDc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcmVwYXJlIGZvciBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBhbmQgcXVlcnkgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVlcl9xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUHJlcGFyZSBmb3IgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgYW5kIHF1ZXJ5CgkgIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFkZCBzb21lIGNvbW1lbnQuCgoyMDA1LTA5LTIyIDE3OjQwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IE1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uLgoJICBBZGQgc2VnbWVudCBxdWVyeSBmb3IgZnV0dXJlIHVzZS4KCjIwMDUtMDktMjIgMTY6NTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgU29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICBTaW1wbGlmeSBzZW5kX2V2ZW50CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRG9uJ3Qga25vdyBob3cgZmxhZ3MgZ290IGJyb2tlbi4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkZWQgbmV3IHF1ZXJ5LgoKMjAwNS0wOS0yMiAxNTozODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgc2ltcGxpc3RpYyB0ZXN0IHN1aXRlIGZvciBHU1RfVFlQRV9EQVRFIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6ICh0ZXN0X2RhdGUpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHNpbXBsaXN0aWMgdGVzdCBzdWl0ZSBmb3IgR1NUX1RZUEVfREFURSBzZXJpYWxpc2F0aW9uIGFuZAoJICBkZXNlcmlhbGlzYXRpb24uCgoyMDA1LTA5LTIyIDE1OjA4OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfZGF0ZSksIChnc3RfdmFsdWVfZ2V0X2RhdGUpLAoJICAoZ3N0X2RhdGVfY29weSksIChnc3RfdmFsdWVfY29tcGFyZV9kYXRlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZGF0ZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZGF0ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2RhdGVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2RhdGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsCgkgIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlY2tzIHRoYXQKCSAgZGV2ZWxvcGVycyBkb24ndCBhY2NpZGVudGFsbHkgdXNlIEdfVFlQRV9EQVRFIHdoZXJlIEdTVF9UWVBFX0RBVEUKCSAgaXMgcmVxdWlyZWQuIFBhcnQgb2YgdGhlIGdyYW5kIHNjaGVtZSBpbiAjMTcwNzc3LgoKMjAwNS0wOS0yMiAxMjowNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0hBVkVfR0xJQl8yXzguCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNoZWNrX1BST0dSQU1TKTogQWRkIGdzdHBsdWdpbiB0byB0aGUgdGVzdHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfZWxlbWVudF9saXN0KTogUGx1ZyBzb21lCgkgIGluY29uc2VxdWVudGlhbCBsZWFrcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KTogRG9jLgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYyAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jIChnc3RfaW5kZXhfZmFjdG9yeV9jcmVhdGUpOiBVcGRhdGUgZm9yCgkgIHJlZmNvdW50IGNoYW5nZXMuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYyAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKTogRG9jLCBkb24ndCBlYXQgcmVmcy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZCk6IERvYywgZG9uJ3QgZWF0IHJlZnMuCgkgIChnc3RfcGx1Z2luX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogRG9jIHVwZGF0ZXMuCgoyMDA1LTA5LTIyIDA5OjMwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldCBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldAoJICBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYyAoR1NUX1NUQVJUX1RFU1QpOiBVc2UgcmVmY291bnQtaWRlbXBvdGVudAoJICBhY2Nlc3NvciBmb3IgY2Fwcy4gSURFTVBPVEVOQ0UuIE9oIHllcy4KCjIwMDUtMDktMjEgMjE6Mzk6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBBZGQgbXV0ZXggdG8gc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgaGFzaCB0YWJsZSB3aXRoIHRoZSBmdW5jdGlvbiBwb2ludGVyID0+IGZ1bmN0aW9uIG5hbWUgc3RyaW5nIG1hcHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgQWRkIG11dGV4IHRvIHNlcmlhbGlzZSBhY2Nlc3MgdG8gdGhlIGhhc2ggdGFibGUgd2l0aAoJICB0aGUgZnVuY3Rpb24gcG9pbnRlciA9PiBmdW5jdGlvbiBuYW1lIHN0cmluZyBtYXBwaW5nOwoJICBtYWtlIHRoYXQgaGFzaCB0YWJsZSBzdGF0aWMgc2NvcGUgKCMzMTY4MDkpLgoJICAqIGdzdC9yZWdpc3RyaWVzLy5jdnNpZ25vcmU6CgkgIFJlbW92ZSBsZWZ0LW92ZXIgZmlsZS4KCjIwMDUtMDktMjEgMTU6NTU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogQW5kIHNvbWV0aGluZyBhYm91dCBuZXdzZWdtZW50IGV2ZW50cyBhbmQgY2Fwcy1vbi1idWZmZXJzIHRvIHRoZSBwb3J0aW5nIGd1aWRlIChmZWVsIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEFuZCBzb21ldGhpbmcgYWJvdXQgbmV3c2VnbWVudCBldmVudHMgYW5kIGNhcHMtb24tYnVmZmVycyB0bwoJICB0aGUgcG9ydGluZyBndWlkZSAoZmVlbCBmcmVlIHRvIGltcHJvdmUpLgoKMjAwNS0wOS0yMSAxMzoyNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIFRlc3QgdGhhdCByZW1vdmluZyBwcm9iZXMgZnJvbSB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9ucyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9vbmNlKTogVGVzdCB0aGF0IHJlbW92aW5nIHByb2JlcyBmcm9tIHdpdGhpbgoJICB0aGUgcHJvYmUgZnVuY3Rpb25zIHdvcmtzLgoKMjAwNS0wOS0yMSAxMzoxMToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmMgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBZGQgdGVzdHMgZm9yIGRhdGEgYW5kIGV2ZW50IHByb2JlcyBvbiB0aGUgc2FtZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQWRkIHRlc3RzIGZvcgoJICBkYXRhIGFuZCBldmVudCBwcm9iZXMgb24gdGhlIHNhbWUgcGFkLgoKMjAwNS0wOS0yMSAxMjoyMToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE5ldyBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTmV3IGZpbGUuCgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQSBzaW1wbGUgYnVmZmVyIHByb2JlIHRlc3QuIE1vcmUgdG8KCSAgY29tZSwgZm9vbGlvcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKTogQ29ubmVjdCB0bwoJICBoYXZlLWRhdGE6OmJ1ZmZlciwgbm90IGhhdmUtZGF0YS4KCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKTogTGlrZXdpc2UgZm9yIGhhdmUtZGF0YTo6ZXZlbnQuCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKTogTW9yZSBkb2NzLiBUaGUgcGFydCBhYm91dCAncmVzb2x2aW5nIHRoZQoJICBwZWVyJyBpc24ndCBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoLgoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlLCBnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSkKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpOiBDaGFuZ2UgdG8gdGFrZSB0aGUgZ3VpbnQgaGFuZGxlcl9pZAoJICBhcyB0aGVpciBhcmcsIG5vdCB0aGUgZnVuY3Rpb24rZGF0YSwgd2hpY2ggaXMgbW9yZSBnbGliLWxpa2UuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6IEFkZCBhIGRldGFpbCB0bwoJICB0aGUgc2lnbmFsIGVtaXNzaW9uIHRvIGluZGljYXRlIGlmIHRoZSBkYXRhIGlzIGEgYnVmZmVyIG9yIGFuCgkgIGV2ZW50LgoJICAoZ3N0X3BhZF9nZXRfdHlwZSk6IEluaXRpYWxpemUgYnVmZmVyIGFuZCBldmVudCBxdWFya3MuCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpOiBoYXZlLWRhdGEgaXMgbm93IGEgZGV0YWlsZWQgc2lnbmFsLCB5ZXMgaXQKCSAgaXMuCgoyMDA1LTA5LTIxIDExOjUyOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgcHV0IGZ1bmN0aW9uYWwgY29kZSBpbiBnX3JldHVybl9pZl9mYWlsKCkgb3IgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvdGhlcndpc2UgdGhpbmdzIHdpbGwgYnJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpLAoJICAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICBEb24ndCBwdXQgZnVuY3Rpb25hbCBjb2RlIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBvcgoJICBnX3JldHVybl92YWxfaWZfZmFpbCgpIHN0YXRlbWVudHMsIG90aGVyd2lzZSB0aGluZ3Mgd2lsbAoJICBicmVhayB3aGVuIEdfRElTQUJMRV9DSEVDS1MgaXMgZGVmaW5lZCBkdXJpbmcgY29tcGlsYXRpb24uCgoyMDA1LTA5LTIxIDA5OjQ4OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoKMjAwNS0wOS0yMSAwOToxMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy4qOiBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LCBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX3N0YXJ0KSwgKGdzdF9mZHNyY19zdG9wKSwKCSAgKGdzdF9mZHNyY191bmxvY2spLCAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LAoJICBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgoyMDA1LTA5LTIxIDA4OjU4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkgICogZ3N0L2dzdGludGVyZmFjZS5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yMSAwODo0MDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvOiByZW1vdmUgb2Jzb2xldGUgZG9jIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSAgcmVtb3ZlIG9ic29sZXRlIGRvYyBmaWxlCgoyMDA1LTA5LTIxIDA3OjM3OjAyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBEcmluayBhIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOiBEcmluayBhCgkgIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCjIwMDUtMDktMjAgMjA6NTQ6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgcmVtb3ZlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZmlsZXMKCjIwMDUtMDktMjAgMjA6NDA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBpbmxpbmVkLCBzcGxpdHRlZCBnc3RpbmRleC57YyxofQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfaW5kZXhfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9mYWN0b3J5X25ldyksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9kZXN0cm95KSwgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmQpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY3JlYXRlKSwgKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KToKCSAgbW9yZSBkb2NzIGlubGluZWQsIHNwbGl0dGVkIGdzdGluZGV4LntjLGh9CgoyMDA1LTA5LTIwIDIwOjE5OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCBhIGxlYWsgaW4gY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgbGVhayBpbiBjb250cm9sbGVyCgoyMDA1LTA5LTIwIDE5OjE2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCjIwMDUtMDktMjAgMTc6Mzg6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgoyMDA1LTA5LTIwIDE3OjMwOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2Ugc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKHBvbGxfZnVuYyksIChwb2xsX3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2UKCSAgc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpbWVvdXQuCgkgIER1bXAgZXJyb3IgbWVzc2FnZXMgYWZ0ZXIgZmFpbGVkIHN0YXRlIGNoYW5nZS4KCjIwMDUtMDktMjAgMTc6MjE6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBGaXggdHdvIHR5cG9zLgoKMjAwNS0wOS0yMCAxNTo0NTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgdGhlIHN5bmMgcHJvcGVydHkgZnJvbSBmYWtlc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIHJlbW92ZSB0aGUgc3luYyBwcm9wZXJ0eSBmcm9tIGZha2VzaW5rLgoJICBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIHNldHRpbmcgc3luYyBUUlVFCgkgIGZvciBmYWtlc2luaywgd2hpY2ggaXMgYSBjaGFuZ2UuICBBbnlvbmUgd2hvIGtub3dzIGhvdwoJICB0byBmaXggdGhpcyBuaWNlbHkgaW4gYSBHT2JqZWN0LXkgd2F5LCBmZWVsIGZyZWUuCgoyMDA1LTA5LTIwIDE1OjE5OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoKMjAwNS0wOS0yMCAxMjo1MDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRpc2FibGUgdmFsZ3JpbmRpbmcgdGhlIGNvbnRyb2xsZXIgdGVzdCBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB2YWxncmluZGluZyB0aGUgY29udHJvbGxlciB0ZXN0IGFnYWluCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdXBkYXRlIGZvciBhcGktY2hhbmdlcwoKMjAwNS0wOS0yMCAxMjowNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZGVkIHN5bmMgcHJvcGVydHkgdG8gYmFzZXNpbmsgdG8gZGlzYWJsZSBjbG9jayBzeW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgc3luYyBwcm9wZXJ0eSB0byBiYXNlc2luayB0byBkaXNhYmxlIGNsb2NrIHN5bmMuCgoyMDA1LTA5LTIwIDExOjA5OjUwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZCBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZAoJICBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVCkKCSAgKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBDb25kaXRpb25hbGx5IGZvbmRsZSB0aGUgcmlnaHQKCSAgcmVmY291bnQuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfSEFWRV9HTElCXzJfOCk6CgkgICogY29uZmlndXJlLmFjIChHU1RfSEFWRV9HTElCXzJfOF9ERUZJTkUpOiBNYWtlIHRoZSBhdmFpbGFiaWxpdHkKCSAgb2YgR0xpYiAyLjggcHVibGljLCBzbyB3ZSBjYW4ga25vdyB3aGljaCByZWZjb3VudCB0byBjaGVjayBpbgoJICB0ZXN0cy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IFVzZSB0aGUgR1NUX0hBVkVfR0xJQl8yXzggZGVmaW5lLgoJICAoZ3N0X29iamVjdF9pbml0KTogT25seSBzZXQgdGhlIGdzdCByZWZjb3VudCBpZiB3ZSdyZSBnb2luZyBhaGVhZAoJICB3aXRoIHRoZSByZWZjb3VudCBoYWNrLgoKMjAwNS0wOS0yMCAxMDo0MTowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBsZWFrcyBwbHVtYmVkLCBhZGRlZCBtb3JlIGRlYnVnLWxvZ2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAocGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCk6CgkgIG1vcmUgbGVha3MgcGx1bWJlZCwgYWRkZWQgbW9yZSBkZWJ1Zy1sb2dnaW5nCgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICB3aGl0ZXNwYWNlIGZpeAoKMjAwNS0wOS0yMCAwOTo0NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIHJlbW92ZSBpbmNsdWRlIG9mIHJlbW92ZWQgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5jbHVkZSBvZiByZW1vdmVkIGhlYWRlcgoKMjAwNS0wOS0yMCAwOToyODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogQ29tbWl0IGZyb20gdGhlIFBvbGl0aWNhbCBQYXJ0eSBGb3IgTW9yZSBBdG9taWMgQ1ZTIENvbW1pdHMsIHNvIHRoYXQgcGVvcGxlIGRvbid0IHdhc3RlIHRvbyBtdWNoIG9mIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBDb21taXQgZnJvbSB0aGUgUG9saXRpY2FsIFBhcnR5IEZvciBNb3JlIEF0b21pYyBDVlMgQ29tbWl0cywKCSAgc28gdGhhdCBwZW9wbGUgZG9uJ3Qgd2FzdGUgdG9vIG11Y2ggb2YgdGhlaXIgZGF5IGZpc2hpbmcKCSAgb3V0IG9idmlvdXMgbGVha3Mgb3V0IG9mIG1hc3NpdmUgY29tbWl0cy4KCSAgT2gsIGFuZCBmaXggYSBwcmV0dHkgZGFtbiBvYnZpb3VzIGxlYWsgaW4gdGhlIG1lbWNodW5rCgkgIHJlbW92YWwgY29kZS4KCjIwMDUtMDktMjAgMDk6MjM6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrLzogcGx1ZyBtZW0tbGVhaywgcmUtYWRkIHRvIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChwbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIHBsdWcgbWVtLWxlYWssIHJlLWFkZCB0byB2YWxncmluZGFibGUgdGVzdHMKCjIwMDUtMDktMjAgMDk6MDg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHVuYnJlYWsgdGhlIGJ1aWxkIGZvciB0aG9zZSB3aG8gaGF2ZSBjaHJvbmljIGFydGhyaXRpcyBhbmQgdHlwaW5nICJtYWtlIGNoZWNrIiBpcyBqdXN0IHRvbyB0YXhpbmcgb24gdGhlIGhhbmRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bmJyZWFrIHRoZSBidWlsZCBmb3IgdGhvc2Ugd2hvIGhhdmUgY2hyb25pYyBhcnRocml0aXMKCSAgYW5kIHR5cGluZyAibWFrZSBjaGVjayIgaXMganVzdCB0b28gdGF4aW5nIG9uIHRoZSBoYW5kcwoKMjAwNS0wOS0yMCAwODoyNTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZSByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZQoJICByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCjIwMDUtMDktMjAgMDc6MzI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1pc3Npbmcgc3ltYm9scyB0byBhcGkgZG9jcyBkaXNhYmxlIHJlZi1jb3VudCBoYWNrIGlmIHdlIGhhdmUgZ2xpYiA+PSAyLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBhZGRlZCBtaXNzaW5nIHN5bWJvbHMgdG8gYXBpIGRvY3MKCSAgZGlzYWJsZSByZWYtY291bnQgaGFjayBpZiB3ZSBoYXZlIGdsaWIgPj0gMi44CgoyMDA1LTA5LTIwIDA2OjI4OjMzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIG9sZCBzZWN0aW9ucwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZSBvbGQgc2VjdGlvbnMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDogdXBkYXRlCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiB1cGRhdGUuCgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgbWVtY2h1bmsgYW5kIHRyYXNoc3RhY2ssIHNpbmNlIHRoZXkncmUKCSAgbm90IHVzZWQuCgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlaW5pdCk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0IHRvIF9jbGVhbnVwCgkgICogZ3N0L2dzdC5oOiBkb24ndCBpbmNsdWRlIHNvbWUgaGVhZGVycwoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IGFkZCBnc3RtYXJzaGFsLmgKCSAgKiBnc3QvZ3N0Y2xvY2suYzogRG9uJ3QgdXNlIG1lbWNodW5rcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IHJlbW92ZSBERVNUUk9ZRUQgZmxhZywgc2luY2UgaXQncyByZWR1bmRhbnQKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6IHNhbWUKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGluY2x1ZGUgZ3N0bWFjcm9zLmgKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IGRvbid0IGluY2x1ZGUgZ3N0bWFjcm9zLmgsIHNpbmNlIGl0J3MgcHJpdmF0ZQoJICAqIGdzdC9nc3RxdWVyeS5jOiBkb24ndCB1c2UgbWVtY2h1bmtzCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0KCkKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDogc2FtZQoKMjAwNS0wOS0yMCAwNToxMzozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdHB1dGJpdHMuc2dtbDoKCjIwMDUtMDktMjAgMDA6Mjc6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQWRkIGEgc2xlZXAgdG8gZW5zdXJlIGVsZW1lbnRzIGhhdmUgYSBjaGFuY2UgdG8gc3RhcnQgdGhlaXIgcGFkIHRhc2tzIGJlZm9yZSBzaHV0ZG93bi4gUmVkdWNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBBZGQgYSBzbGVlcCB0byBlbnN1cmUgZWxlbWVudHMgaGF2ZSBhIGNoYW5jZSB0byBzdGFydCB0aGVpcgoJICBwYWQgdGFza3MgYmVmb3JlIHNodXRkb3duLiBSZWR1Y2VzIHJhY3kgdGVzdCByZXN1bHRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIFRpbWUgb3V0IHRoZSBzZWxlY3QgZXZlcnkgbm93IGFuZCB0aGVuIHRvIGNoZWNrIGZvciBzaHV0ZG93bi4KCjIwMDUtMDktMTkgMjA6MDE6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlLgoKMjAwNS0wOS0xOSAxNjozMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBBdXRvbWF0aWNhbGx5IFBBVVNFIGFuZCBSRVNVTUUgYSBwaXBlbGluZSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBwZXJmb3JtZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZG9fcGlwZWxpbmVfc2VlayksIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEF1dG9tYXRpY2FsbHkgUEFVU0UgYW5kIFJFU1VNRSBhIHBpcGVsaW5lIHdoZW4gYSBmbHVzaGluZyBzZWVrCgkgIGlzIHBlcmZvcm1lZC4KCSAgUmVtb3ZlZCBvbGQgZmlsZXMuCgoyMDA1LTA5LTE5IDE2OjI4OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgd2hpdGVzcGFjZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4CgoyMDA1LTA5LTE5IDE1OjEyOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuaDogU3BhY2luZyBmaXhlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6IFNwYWNpbmcgZml4ZW4uCgoyMDA1LTA5LTE5IDE0OjU1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgoyMDA1LTA5LTE5IDE0OjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogZW5hYmxlIGNsZWFudXAgYWdhaW4gYWZ0ZXIgZml4aW5nIHRoZSBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBlbmFibGUgY2xlYW51cCBhZ2FpbiBhZnRlciBmaXhpbmcgdGhlIGxlYWsKCSAgKiBkb2NzL1JFQURNRToKCSAgc29tZSBtb3JlIGluZm8gb24gZG9jcwoKMjAwNS0wOS0xOSAxNDoyMDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGRvbid0IGNvbXBsYWluIGFib3V0IG15IEFSTSAuc28gZmlsZXMuICBBbm90aGVyIHJlYXNvbiB3aHkgaXQgZG9lcyBtYWtlIHNlbnNlIHRvIGhhdmUgcGx1Z2lucyBmb2xsb3cgYSBzdGFuZGFyZCBmaWxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgY29tcGxhaW4gYWJvdXQgbXkgQVJNIC5zbyBmaWxlcy4gIEFub3RoZXIgcmVhc29uIHdoeSBpdCBkb2VzIG1ha2Ugc2Vuc2UKCSAgdG8gaGF2ZSBwbHVnaW5zIGZvbGxvdyBhIHN0YW5kYXJkIGZpbGUgbmFtZSBwYXR0ZXJuIGxpa2UgbGliZ3N0KHdoYXRldmVyKS5zbwoKMjAwNS0wOS0xOSAxNDowOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmUtZW5hYmxlIHRlc3RzIG5vdyB0aGF0IGxlYWtzIGFyZSBwbHVnZ2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgdGVzdHMgbm93IHRoYXQgbGVha3MgYXJlIHBsdWdnZWQKCSAgKiBjaGVjay9nc3QvZ3N0LmM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgc29tZSBtb3JlIHRlc3RzIHdoaWxlIGZpeGluZyBsZWFrcwoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIG1ha2Ugc3VyZSBiaW5hcmllcyBhcmUgdXB0b2RhdGUgd2hlbiB2YWxncmluZGluZy9nZGJpbmcKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHJlbW92ZSBhIHJlZiB0b28gbWFueSwgYW5kIGFkZCBhIEZJWE1FIGZvciB3aGVuIHdlIGdldAoJICByb3VuZCB0byBkaXNwb3Npbmcgb2YgY2xhc3NlcwoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZml4IHRoZSByZWZjb3VudGluZyB3aGVuIGxvYWRpbmcgYSBwbHVnaW4gZnJvbSBhIGZpbGUgYW5kCgkgIHRoZSBjb2RlIHByZXRlbmRzIHRoYXQgdGhlIHBvaW50ZXIgaXMgdGhlIHNhbWUgZXZlbiB0aG91Z2gKCSAgb2YgY291cnNlIGl0IGNhbiBjaGFuZ2UKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB1bnJlZiBwbHVnaW5zIG1hcmtlZCBjYWNoZWQgKGEgYml0IGNvbmZ1c2luZyBhcyBhIG5hbWUpCgkgIGFzIHRoZSBkb2NzIHN0YXRlIHNob3VsZCBiZSBkb25lCgkgIHZhcmlvdXMgZG9jIGFkZGl0aW9ucyB0byBleHBsYWluIHJlZmNvdW50aW5nCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIGRlYnVnZ2luZwoKMjAwNS0wOS0xOSAxNDowOTozNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDktMTkgMTE6MTg6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBHc3RCdXNIYW5kbGVyIC0+IEdzdEJ1c0Z1bmMsIHJldHVybiB2YWx1ZSBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcyBhbnkgb3RoZXIgR1NvdXJjZSAoRkFMU0UgPT0gcmVtb3ZlIHNvdXJjZSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHNlbmRfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2hhdmVfcGVuZGluZyksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwKCSAgKGdzdF9idXNfc291cmNlX2NoZWNrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAocG9sbF9mdW5jKSwgKHBvbGxfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgR3N0QnVzSGFuZGxlciAtPiBHc3RCdXNGdW5jLCByZXR1cm4gdmFsdWUgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMKCSAgYW55IG90aGVyIEdTb3VyY2UgKEZBTFNFID09IHJlbW92ZSBzb3VyY2UpLgoJICBfYWRkX3dhdGNoKCkgYW5kIF9hZGRfd2F0Y2hfZnVsbCgpIG5vdyB0YWtlIGEgTWVzc2FnZVR5cGUgbWFzayB0bwoJICBvbmx5IGhhbmRsZSBzcGVjaWZpYyB0eXBlcyBvZiBtZXNzYWdlcy4KCSAgX3BvbGwoKSByZXR1cm5zIHRoZSBHc3RNZXNzYWdlIGluc3RlYWQgb2YgdGhlIG1lc3NhZ2UgdHlwZSB0byBhdm9pZAoJICByYWNlIGNvbmRpdGlvbnMuCgkgIF9oYXZlX3BlbmRpbmcoKSB0YWtlcyBhIE1lc3NhZ2VUeXBlIG1hc2sgbm93IHRvby4KCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBtdWx0aXBsZSBidXMgd2F0Y2hlcy4KCSAgRml4IHRlc3RzdWl0ZXMgYW5kIGFwcGxpY2F0aW9ucyBmb3IgbmV3IGJ1cyBBUEkuCgoyMDA1LTA5LTE4IDIyOjE1OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYXJrIGEgYnVuY2ggb2YgdGhlIHRlc3RzIGFzIHRvIGZpeCB1bnRpbCB3ZSBmaXggdGhlbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBhIGJ1bmNoIG9mIHRoZSB0ZXN0cyBhcyB0byBmaXggdW50aWwgd2UgZml4IHRoZW0KCjIwMDUtMDktMTggMjE6NDA6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2NoZWNrLm1hazogdXNlIEdTVF9QTFVHSU4gc2V0dGluZ3MgZm9yIHZhbGdyaW5kIHRlc3RzIGFzIHdlbGwsIHNvIHdlJ3JlIHZhbGdyaW5kaW5nIHRoZSBjb3JyZWN0IHRoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIHVzZSBHU1RfUExVR0lOIHNldHRpbmdzIGZvciB2YWxncmluZCB0ZXN0cyBhcyB3ZWxsLCBzbyB3ZSdyZQoJICB2YWxncmluZGluZyB0aGUgY29ycmVjdCB0aGluZwoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHBsdWcgYW5vdGhlciBsZWFrCgoyMDA1LTA5LTE4IDIxOjI0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoKMjAwNS0wOS0xOCAyMToyMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgoyMDA1LTA5LTE4IDA5OjE1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBsb2FkaW5nIGEgcGx1Z2luIGNhbiByZXR1cm4gTlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9hZGluZyBhIHBsdWdpbiBjYW4gcmV0dXJuIE5VTEwKCjIwMDUtMDktMTggMDc6NDE6MjggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHRoZSBHT3B0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCB0aGUgR09wdGlvbiBjb2RlLgoKMjAwNS0wOS0xOCAwNjo1OToyNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRml4IGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IEZpeCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICBDaGFuZ2UgcmVnaXN0cnkgdG8ga2VlcCB0cmFjayBvZiBib3RoIHBsdWdpbnMgYW5kIGZlYXR1cmVzLAoJICByZW1vdmluZyB0aGUgZmVhdHVyZSB0cmFja2luZyBmcm9tIHBsdWdpbnMgdGhlbXNlbHZlcy4KCjIwMDUtMDktMTcgMTg6MTQ6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoKMjAwNS0wOS0xNyAxODoxMToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgoyMDA1LTA5LTE2IDExOjI0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgYWRkIG1pc2luZyBpbmNsdWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzaW5nIGluY2x1ZGUKCjIwMDUtMDktMTYgMDg6MTc6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzZXQgdGhlIHJpZ2h0IHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2V0IHRoZSByaWdodCB2YXIKCjIwMDUtMDktMTYgMDg6MTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1yZWdpc3Rlci4xLmluOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgoyMDA1LTA5LTE2IDA0OjU0OjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZiBjby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YKCSAgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZgoJICBjb3Vyc2UgbGVha3MgbGlrZSBjcmF6eS4gIEF0IGxlYXN0IHBsYXliaW4gd29ya3MuCgoyMDA1LTA5LTE2IDAzOjQ2OjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogTW9yZSB0ZXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHJlZ2lzdGVyX2NoZWNrX2VsZW1lbnRzKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHBlZWspLCAoc3VnZ2VzdCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgTW9yZSB0ZXN0aW5nCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGaXggcmVmY291bnRpbmcuCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCjIwMDUtMDktMTYgMDA6Mzc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHVudmVyYm9zaWZ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bnZlcmJvc2lmeQoKMjAwNS0wOS0xNiAwMDowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgoyMDA1LTA5LTE2IDAwOjAyOjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmRleC5jOiBnZXQgcmVmY291bnRpbmcgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IGdldCByZWZjb3VudGluZyBjb3JyZWN0LgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBmZWF0dXJlL3BsdWdpbiBpcwoJICBub3QgZm91bmQuCgoyMDA1LTA5LTE1IDIzOjUxOjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrLzogQWRkIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBBZGQgdGVzdAoJICAqIGdzdC9nc3RwbHVnaW4uYzogRml4IHByb2JsZW1zIG5vdGljZWQgYnkgdGVzdHN1aXRlCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoKMjAwNS0wOS0xNSAyMDo1NjozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEltcGxlbWVudCBzZW1pLWRlY2VudCByZWNvdW50aW5nIGFuZCBsb2NraW5nIGluIHBsdWdpbnMgYW5kIHBsdWdpbiBmZWF0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBJbXBsZW1lbnQgc2VtaS1kZWNlbnQgcmVjb3VudGluZyBhbmQgbG9ja2luZwoJICBpbiBwbHVnaW5zIGFuZCBwbHVnaW4gZmVhdHVyZXMuCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCjIwMDUtMDktMTUgMTQ6MjE6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb24uIFRoaXMgaXMgZW5vdWdoIHRvIGdldCB0aGUgYmFzaWNzIG9mIHR5cGVmaW5kaW5nIHdvcmtpbmcgLSBvZ2dkZW11eCBzdWNjZWVkcyBub3cuIGRlY29kZWJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbi4gVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHRoZSBiYXNpY3Mgb2YKCSAgdHlwZWZpbmRpbmcgd29ya2luZyAtIG9nZ2RlbXV4IHN1Y2NlZWRzIG5vdy4gZGVjb2RlYmluIGlzIHN0aWxsIGJyb2tlbi4KCjIwMDUtMDktMTUgMDU6NTg6MzcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBHU1RfUExVR0lOX0xERkxBR1MgKGJ1ZyAjMzE2MDc2KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IEFkZCAtbm8tdW5kZWZpbmVkIHRvIEdTVF9QTFVHSU5fTERGTEFHUyAoYnVnCgkgICMzMTYwNzYpCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IEFkZCAtbm8tdW5kZWZpbmVkIHRvIExERkxBR1MgZm9yIGxpYnMKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgoyMDA1LTA5LTE1IDA1OjQ4OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdldGJpdHMgbGlicmFyeS4gIE5vdGhpbmcgdXNlcyBpdCwgYW5kIGl0IHNob3VsZCBiZSBpbiBzb21ldGhpbmcgbGlrZSBsaWJvaWwgaWYgc29tZW9uZSBkaWQgd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBnZXRiaXRzIGxpYnJhcnkuICBOb3RoaW5nIHVzZXMgaXQsIGFuZAoJICBpdCBzaG91bGQgYmUgaW4gc29tZXRoaW5nIGxpa2UgbGlib2lsIGlmIHNvbWVvbmUgZGlkIHdhbnQKCSAgdG8gdXNlIGl0LgoJICAqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nYnRlc3QuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuaDoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfZ2VuZXJpYy5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19pMzg2LnM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2lubC5oOgoKMjAwNS0wOS0xNSAwNTo0MjoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoKMjAwNS0wOS0xNSAwMzoyMDo0OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBnc3QvcmVnaXN0cmllcywgc2luY2UgaXQncyBubyBsb25nZXIgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgZ3N0L3JlZ2lzdHJpZXMsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9yZWdpc3RyeXRlc3QuYzoKCjIwMDUtMDktMTUgMDE6Mzg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0LzogQ29udmVyZ2VuY2UgaXMgbmVhci4gIFNlcmlvdXNseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIENvbnZlcmdlbmNlIGlzIG5lYXIuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTE1IDAxOjM0OjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC4qOiBBdHRlbXB0ICM0IHRvIGFwcGVhc2UgdGhlIGJ1aWxkYm90cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgIEF0dGVtcHQgIzQgdG8gYXBwZWFzZSB0aGUgYnVpbGRib3RzLgoKMjAwNS0wOS0xNSAwMToyNjo0MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuYzogQXR0ZW1wdCAjMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgIEF0dGVtcHQgIzMuCgoyMDA1LTA5LTE1IDAxOjIwOjIyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC5jOiBBdHRlbXB0ICMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgQXR0ZW1wdCAjMi4KCjIwMDUtMDktMTUgMDE6MTQ6MTcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbiB0aGUgbmV3IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbgoJICB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDUtMDktMTUgMDE6MTA6NTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0Lio6IEFkZCBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbiBuZXdlciB2ZXJzaW9ucyBvZiBnbGliIHRoYW4gd2UgY2FyZSB0byByZXF1aXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIGluIG5ld2VyIHZlcnNpb25zCgkgIG9mIGdsaWIgdGhhbiB3ZSBjYXJlIHRvIHJlcXVpcmUuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSB0aGVtLgoKMjAwNS0wOS0xNSAwMDo0ODo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcmVtb3ZlIGdzdC1yZWdpc3Rlci5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOiByZW1vdmUgZ3N0LXJlZ2lzdGVyLmMKCjIwMDUtMDktMTUgMDA6NDI6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgZm9yIHJlZ2lzdHJ5IGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZvciByZWdpc3RyeSBjaGFuZ2VzLgoKMjAwNS0wOS0xNSAwMDozNToxMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ29weSBnX21rZGlyX3dpdGhfcGFyZW50KCkgZnJvbSBnbGliLCBiZWNhdXNlIHdlIGRvbid0IHJlcXVpcmUgZ2xpYi0yLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDb3B5IGdfbWtkaXJfd2l0aF9wYXJlbnQoKSBmcm9tIGdsaWIsCgkgIGJlY2F1c2Ugd2UgZG9uJ3QgcmVxdWlyZSBnbGliLTIuOC4KCjIwMDUtMDktMTUgMDA6MjA6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZSByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZQoJICByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCjIwMDUtMDktMTUgMDA6MTM6MjYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcmVtb3ZlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGluZGV4LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1yZWdpc3Rlci5jOiByZW1vdmUKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZWdpc3RyeSByZXdyaXRlLiAgQ2hhbmdlcyByZWdpc3RyeSBmcm9tIGJlaW5nIGEgZmlsZSBjcmVhdGVkCgkgIGJ5IGEgdG9vbCBpbnRvIGEgc2ltcGxlIGNhY2hlIGZpbGUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5CgkgIGxpYmdzdHJlYW1lci4gIFJlbW92ZWQgZ3N0LXJlZ2lzdGVyIChiZWNhdXNlIGl0J3Mgbm8gbG9uZ2VyCgkgIG5lZWRlZCkuICBSZW1vdmUgcmVnaXN0cnkgcG9vbHMsIGJlY2F1c2Ugd2Ugb25seSBoYXZlIG9uZQoJICByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbiAoWE1MKS4gIEZpeCB1cCBvdGhlciBzdWJzeXN0ZW1zIGFzCgkgIG5lY2Vzc2FyeS4KCjIwMDUtMDktMTQgMjI6MDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIHdob29wcywgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aG9vcHMsIHdyb25nIGNvbW1pdAoKMjAwNS0wOS0xNCAyMjowMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIG5vdGVzIG9uIGRvY3VtZW50aW5nIGVsZW1lbnRzIGFuZCBwbHVnaW5zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBub3RlcyBvbiBkb2N1bWVudGluZyBlbGVtZW50cyBhbmQgcGx1Z2lucwoKMjAwNS0wOS0xNCAxNToxNjozMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCjIwMDUtMDktMTMgMTU6MDM6MDUgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTEzIDE0OjQ5OjIzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRG9uJ3QgdXNlIHdpbmRvd3MgbGlua2luZyBhdHRyaWJ1dGVzIGluIE1pbkdXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb24ndCB1c2Ugd2luZG93cyBsaW5raW5nIGF0dHJpYnV0ZXMgaW4gTWluR1cKCjIwMDUtMDktMTMgMTE6MDA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndCB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgIEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndAoJICB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3YXMgYXNrZWQgZm9yIG9uIHRoZSBmaXJzdAoJICBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZm9yIGFueSBvYmplY3QuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTEyIDE4OjE0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdCBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUgY2hhbmdlIGNvbXBsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdAoJICBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUKCSAgY2hhbmdlIGNvbXBsZXRlcyBhcyBiZXN0IGFzIGl0IGNhbgoKMjAwNS0wOS0xMiAxNzowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgY29kaWZ5IGRlc2lnbitiZWhhdmlvdXIgaW4gdGVzdHN1aXRlIGFmdGVyIGRpc2N1c3Npb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvZGlmeSBkZXNpZ24rYmVoYXZpb3VyIGluIHRlc3RzdWl0ZSBhZnRlciBkaXNjdXNzaW9uCgoyMDA1LTA5LTEyIDE2OjEwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgYSBxdW90ZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBhZGQgc29tZSBkZWJ1ZwoKMjAwNS0wOS0xMiAxMzo0NTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IGZvciBzdWItY2xhc3NlcyB0byBjYWxsIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24gb2YgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHdpdGggYSB3cmFwcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgZm9yIHN1Yi1jbGFzc2VzIHRvIGNhbGwgdGhlIHBhcmVudAoJICBpbXBsZW1lbnRhdGlvbiBvZiBwcmVwYXJlX291dHB1dF9idWZmZXIgd2l0aCBhIHdyYXBwZXIgZnVuY3Rpb24uCgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEZpeCAjZGVmaW5lIHdyYXBwZXIKCjIwMDUtMDktMTEgMTk6MjI6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vcmUgZG9jIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vcmUgZG9jIGNsZWFudXBzCgoyMDA1LTA5LTExIDEzOjA3OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgYnVpbGQgY2xlYW4sIGh1cnJheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGJ1aWxkIGNsZWFuLCBodXJyYXkKCjIwMDUtMDktMTEgMTI6NTc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICB2YXJpb3VzIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBkb2MgZml4ZXMKCjIwMDUtMDktMTEgMTI6MDI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgoyMDA1LTA5LTExIDEyOjAxOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0LzogcmVhcnJhbmdlIGdzdHZhbHVlIHNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgIHJlYXJyYW5nZSBnc3R2YWx1ZSBzZWN0aW9uCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIE5PTkUgLT4gVk9JRAoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMDktMTEgMTE6NTc6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkZWJ1ZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgZml4ZXMKCjIwMDUtMDktMDkgMjM6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBIZWFkZXIgaW5jbHVkZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSAgSGVhZGVyIGluY2x1ZGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9kZWZhdWx0X3ByZXBhcmVfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFNvbWUgbW9yZSBiYXNldHJhbnNmb3JtIGNoYW5nZXMgYW5kIGZpeGVzIHRvIGVuYWJsZSBzdWItY2xhc3NlcwoJICB0aGF0IG1vZGlmeSBidWZmZXIgbWV0YWRhdGEgb25seS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9pbml0KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIElmIHRoZSBvdXRwdXQgcGFkIGhhcyBmaXhlZCBhbGxvd2VkIGNhcHMgYW5kIGlucHV0IGJ1ZmZlcnMKCSAgZG9uJ3QgaGF2ZSBhbnksIHNldCB0aGUgZml4ZWQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLgoKMjAwNS0wOS0wOSAxODowNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG9iamVjdCBkZWJ1Z2dpbmcgaXMgZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb2JqZWN0IGRlYnVnZ2luZyBpcyBnb29kCgoyMDA1LTA5LTA5IDE3OjQyOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IE1ha2UgdGhlIGVycm9yIGEgbGl0dGxlIGNsZWFyZXIgd2hlbiB0aGUgdGVzdCBmYWlscyBiZWNhdXNlIGlkZW50aXR5IG1hZGUgYSBjb3B5IG9mIHRoZSBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSBlcnJvciBhIGxpdHRsZSBjbGVhcmVyIHdoZW4gdGhlIHRlc3QgZmFpbHMgYmVjYXVzZQoJICBpZGVudGl0eSBtYWRlIGEgY29weSBvZiB0aGUgYnVmZmVyLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBzeW1ib2xzIGluIGdzdGJhc2V0cmFuc2Zvcm0uaAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2RlZmF1bHRfcHJlcGFyZV9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENoYW5nZSBCYXNlVHJhbnNmb3JtIHRvIHNlcGFyYXRlIGluX3BsYWNlIG9wZXJhdGUgZnJvbSBzYW1lX2NhcHMKCSAgb3V0cHV0LiBpbl9wbGFjZSBpbXBsaWVzIHRoYXQgdGhlIGVsZW1lbnQgY2FuIHBlcmZvcm0gdGhlIHRyYW5zZm9ybQoJICBvbiBpbmNvbWluZyBidWZmZXJzIGluLXBsYWNlLCBldmVuIGlmIHRoZSBjYXBzIG9uIHRoZSBvdXRwdXQgYXJlCgkgIGRpZmZlcmVudC4KCSAgU3ViLWNsYXNzIGVsZW1lbnRzIGNhbiBub3cgaW1wbGVtZW50IHNwZWNpYWwgYnVmZmVyIGFsbG9jYXRpb24KCSAgbWV0aG9kcyBmb3Igb3V0Z29pbmcgYnVmZmVycyBpZiB0aGV5IHdpc2ggdG8uCgkgIEJpZyBkb2N1bWVudGF0aW9uIGFkZGl0aW9uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBDaGFuZ2VzIGZvciBiYXNldHJhbnNmb3JtIG1vZGlmaWNhdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIENvbXBpbGUgZml4LiBFeHRyYSBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA5LTA5IDE1OjE5OjI0ICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSAgZmlsZSBnc3Rjb250cm9sLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0Y29udHJvbC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTA5IDE0OjM0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogYWRkIHRlc3RzIGZvciB2YWxpZCBwYWQgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKG5hbWVfaXNfdmFsaWQpLAoJICAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3IgdmFsaWQgcGFkIG5hbWluZwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKToKCSAgYWRkIEFTU0VSVF9XQVJOSU5HCgkgIHJlbW92ZSBwcmludGluZyBvZiBjb2RlLCBpdCBpcyBmcmFnaWxlIHdoZW4gdGhlIGNvZGUgY29udGFpbnMKCSAgJSBhbmQgdGhlIGxpbmUgbnVtYmVyIGlzIGVub3VnaCBpbmZvCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpOgoJICBmaXggbWVtbGVha3MKCjIwMDUtMDktMDkgMTM6Mjg6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBhbmQgdGhlIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5kIHRoZSBjaGFuZ2Vsb2cKCjIwMDUtMDktMDkgMTM6MjY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIHdlIGRvbid0IHVzZSBkYXNoZXMgaW4gaGVhZGVyIG5hbWVzCgoyMDA1LTA5LTA5IDEyOjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9waXBlbGluZV9zdWl0ZSksIChtYWluKToKCSAgYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnZXRfc3RhdGVfZnVuYyk6CgkgIGFkZCBzb21lIGRlYnVnZ2luZwoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmaWxlCgoyMDA1LTA5LTA4IDE3OjIzOjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIFZhcmlvdXMgZml4ZXMgZm9yIHVuc2Vla2FibGUsIHVubW1hcGFibGUsIGFuZCBub24tbm9ybWFsIGZpbGVzLCBzbyB0aGF0IGZhbGxiYWNrIHRvIHJlYWQoKSByYXRoZXIgdGhhbiBtbWFwKCkgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBWYXJpb3VzIGZpeGVzIGZvciB1bnNlZWthYmxlLCB1bm1tYXBhYmxlLCBhbmQgbm9uLW5vcm1hbCBmaWxlcywgc28gdGhhdAoJICBmYWxsYmFjayB0byByZWFkKCkgcmF0aGVyIHRoYW4gbW1hcCgpIHdvcmtzLgoJICBBbGxvdyBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIHN0YXJ0ID09IGVuZCwgc28gdGhhdCBjYXNlcyB3aGVyZSB0aGF0J3MKCSAgY29ycmVjdCB3b3JrIChlLmcuIGZpbGVzcmMgb24gYSB6ZXJvLXNpemUgZmlsZSkuCgoyMDA1LTA5LTA4IDExOjQ1OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIFVwZGF0ZSB0aGUgbWFudWFsIHNlY3Rpb24gb24gc3RhdGUgY2hhbmdlcyBmb3Igd2luZ28ncyBuZXcgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgdGhlIG1hbnVhbCBzZWN0aW9uIG9uIHN0YXRlIGNoYW5nZXMgZm9yIHdpbmdvJ3MgbmV3IEFQSQoKMjAwNS0wOS0wNyAxNToyMjoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IENhbGwgZ19tb2R1bGVfY2xvc2Ugd2hlbiB3ZSBkb24ndCBsb2FkIHRoZSBtb2R1bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBDYWxsIGdfbW9kdWxlX2Nsb3NlIHdoZW4gd2UgZG9uJ3QgbG9hZCB0aGUgbW9kdWxlCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Byb3BlcnR5KToKCSAgUG9ydCBsZWFrIGZpeCBmcm9tIDAuOAoKMjAwNS0wOS0wNyAxNDowODo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcG8vUE9URklMRVMuaW46CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCjIwMDUtMDktMDcgMTM6MjI6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgZ3N0dGFnIC0+IGdzdHRhZ2xpc3QsIGdzdHRhZ2ludGVyZmFjZSAtPiBnc3R0YWdzZXR0ZXIgaW5saW5lZCBkb2NzIGZvciBnc3R0cmFjZSwgZ3N0dHJhc2hzdGFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmg6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suYzoKCSAgcmVuYW1lZCBnc3R0YWcgLT4gZ3N0dGFnbGlzdCwgZ3N0dGFnaW50ZXJmYWNlIC0+IGdzdHRhZ3NldHRlcgoJICBpbmxpbmVkIGRvY3MgZm9yIGdzdHRyYWNlLCBnc3R0cmFzaHN0YWNrCgoyMDA1LTA5LTA3IDEyOjM1OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBzcGxpdHRlZCBnc3R0eXBlZmluZCBpbnRvIGdzdHR5cGVmaW5kLCBnc3R0eXBlZmluZGZhY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfdW5sb2FkX3RoeXNlbGYpLAoJICAoZ3N0X3R5cGVfZmluZF9sb2FkX3BsdWdpbiksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9jYXBzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfZXh0ZW5zaW9ucyksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgc3BsaXR0ZWQgZ3N0dHlwZWZpbmQgaW50byBnc3R0eXBlZmluZCwgZ3N0dHlwZWZpbmRmYWN0b3J5CgoyMDA1LTA5LTA3IDEwOjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBGaXggYSByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBwYWQncyB0YXNrIGZ1bmN0aW9uIGlzIGVudGVyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogRml4IGEgcmFjZQoJICBjb25kaXRpb24gd2hlcmVieSB0aGUgcGFkJ3MgdGFzayBmdW5jdGlvbiBpcyBlbnRlcmVkIGJlZm9yZSB0aGUKCSAgcGFkX21vZGUgdmFyaWFibGUgd2FzIHNldC4KCjIwMDUtMDktMDYgMjI6NTc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDYXRjaCBtaXNiZWhhdmluZyBwYWRfYWxsb2MgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qgc2V0IHVwIGNhcHMgYW5kIGRvIGl0IGZvciB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIENhdGNoIG1pc2JlaGF2aW5nIHBhZF9hbGxvYyBmdW5jdGlvbnMgdGhhdCBkb24ndAoJICBzZXQgdXAgY2FwcyBhbmQgZG8gaXQgZm9yIHRoZW0uCgoyMDA1LTA5LTA2IDIyOjAzOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0wNiAxODoxODo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGFkZCBhIGNoZWNrIGZvciBhIGdob3N0cGFkIHRoYXQgZG9lc24ndCBoYXZlIGEgdGFyZ2V0IGJlaW5nIGxpbmtlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgY2hlY2sgZm9yIGEgZ2hvc3RwYWQgdGhhdCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQgYmVpbmcgbGlua2VkCgoyMDA1LTA5LTA2IDE0OjExOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4yID09PQoKMjAwNS0wOS0wNiAxNDowMjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC45LjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuMgoKMjAwNS0wOS0wNiAxMTo0NTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgdXBkYXRlIHJlYWRtZSB3aXRoIGV4cGxhbmF0aW9uIG9mIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSByZWFkbWUgd2l0aCBleHBsYW5hdGlvbiBvZiBtb2R1bGVzCgoyMDA1LTA5LTA2IDA5OjUyOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL3JhbmRvbS9DaGFuZ2VMb2ctMC44OgoJICBjaGFuZ2Vsb2cgc3BsaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZyBzcGxpdAoKMjAwNS0wOS0wNSAxNzo1NToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgoyMDA1LTA5LTA1IDE3OjUzOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkaW5nIC1iYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyAtYmFkCgoyMDA1LTA5LTA1IDE2OjU0OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgSW5jaWRlbnRhbGx5IHRoZXkgc2hvdWxkIGJlIGEgYml0IGZhc3RlciBub3cgdGhhdCB0aGV5IGRvbid0IGhhdmUKCSAgdG8gcGFyc2UgdGhlIGNhcHMuCgoyMDA1LTA5LTA1IDE2OjUyOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBVbS4uLiByZXN1cnJlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBVbS4uLiByZXN1cnJlY3QuLi4KCjIwMDUtMDktMDUgMTY6MzY6NDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IFJlbW92ZSBmcm9tIENWUywgdGhleSB3ZXJlIHJlcGxhY2VkIGJ5IHRoZSBsaWJ4bWwgcmVnaXN0cnkgYSB3aGlsZSBiYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogUmVtb3ZlIGZyb20gQ1ZTLCB0aGV5IHdlcmUKCSAgcmVwbGFjZWQgYnkgdGhlIGxpYnhtbCByZWdpc3RyeSBhIHdoaWxlIGJhY2sKCjIwMDUtMDktMDUgMTE6NTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9SRUFETUU6CgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCjIwMDUtMDktMDUgMDk6Mzg6MzggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJldmVyIHRvIDEuODAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgR3N0VXRpbHMgaXMgbm90IGFzIGRlYWQgYXMgaXQgc2VlbWVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZlciB0byAxLjgwIHZlcnNpb24gb2YgdGhpcyBmaWxlIGFzIEdzdFV0aWxzIGlzIG5vdCBhcyBkZWFkIGFzIGl0IHNlZW1lZAoKMjAwNS0wOS0wNSAwOToyMzo0NCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgR3N0VXRpbHMgbWVudGlvbiBhcyBpdCBpcyBub3cgZ29uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdzdFV0aWxzIG1lbnRpb24gYXMgaXQgaXMgbm93IGdvbmUKCjIwMDUtMDktMDQgMTE6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIG5lZWQgdG8gYWRkIC1sY2hlY2sgdG8gdGhlIHBrZ2NvbmZpZyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBuZWVkIHRvIGFkZCAtbGNoZWNrIHRvIHRoZSBwa2djb25maWcgZmlsZQoKMjAwNS0wOS0wMyAxNzozNjoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCBmb3IgYSBjcml0aWNhbCB3aGVuIGEgbW9kdWxlIHJldHVybnMgTlVMTCBvbiBvcGVuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZm9yIGEgY3JpdGljYWwgd2hlbiBhIG1vZHVsZSByZXR1cm5zIE5VTEwgb24gb3BlbmluZwoKMjAwNS0wOS0wMyAxNzowMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGFkZCBhIHNvdXJjZSBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGQsIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG1vZHVsZSB0aGlzIHBsdWdpbiBpcyBhIHBhcnQgb2YuICBCeSBkZWZhdWx0IEdTVF9QTFVHSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc291cmNlIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZCwgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UKCSAgbW9kdWxlIHRoaXMgcGx1Z2luIGlzIGEgcGFydCBvZi4gIEJ5IGRlZmF1bHQgR1NUX1BMVUdJTl9ERUZJTkUKCSAgd2lsbCBzZXQgaXQgdG8gUEFDS0FHRSwgd2hpY2ggaXMgYXV0b21ha2UncyBpZGVhIG9mIHRoZSBuYW1lIG9mCgkgIHRoZSBzb3VyY2UgcHJvamVjdC4KCjIwMDUtMDktMDMgMTY6MTY6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wOS0wMyAxNDoyMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCjIwMDUtMDktMDMgMTM6NTQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1ta2RiOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLW1rdG1wbDoKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1zY2Fub2JqOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy90bXBsL2FjM2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hYzNwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hdWRpb3NjYWxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2NvYmluLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2R2ZHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9leGFtcGxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGF2aWVuY29kZXIuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWdlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzFlbmNvZGVyLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcyZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcycGxheS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnX3BsYXkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZ2F1ZGlvLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZzEyMy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZWF1LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNlYXZpLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNld2F2LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHJlYW1lci1wbHVnaW5zLXVudXNlZC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RzcGVjdHJ1bS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R2NGxzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luY29kZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmVuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4YS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4aW5nLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21lZGlhbi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDF2aWRlb3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wMnZpZGVvcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAzcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzFwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMnBhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcyc3VidC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9ydGpwZWdkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvcnRqcGVnZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Ntb290aC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zbW9vdGh3YXZlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3NwaW5kZW50aXR5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N0ZXJlby5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zeW5hZXN0aGVzaWEuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3lzdGVtX2VuY29kZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92Y2RzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmlkZW9zY2FsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92aWRlb3Npbmsuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9sdW1lLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvcmJpc2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b3JiaXNlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdnVtZXRlci5zZ21sOgoJICByZW1vdmUgb2xkIHBsdWdpbnMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBwbHVnaW5zIGRvY3MKCjIwMDUtMDktMDMgMTM6NDk6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBjbGVhbiB1cCBkb2NzIGJ1aWxkIGEgbGl0dGxlOyBoYXZlIGRvY2RpciBiZSBhbiBvdmVycmlkYWJsZSBpbnN0YWxsIGxvY2F0aW9uOyBzZXBhcmF0ZSBndGstZG9jIGFuZCBkb2Nib29rIGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIGRvY3MgYnVpbGQgYSBsaXR0bGU7IGhhdmUgZG9jZGlyIGJlIGFuIG92ZXJyaWRhYmxlIGluc3RhbGwgbG9jYXRpb247IHNlcGFyYXRlIGd0ay1kb2MgYW5kIGRvY2Jvb2sgYml0cwoKMjAwNS0wOS0wMiAyMzozNjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCjIwMDUtMDktMDIgMjM6MTc6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2J1ZmZlcl9hbGxvYyk6CgkgIEFkZCBjb21tZW50LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdGhyZWFkLXNhZmUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBTZXQgb2Zmc2V0IG9uIGdlbmVyaWMgYnVmZmVyIGFsbG9jYXRlZCBieSBmYWxsYmFjay4KCjIwMDUtMDktMDIgMjM6MDM6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wOS0wMiAyMTozNzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcnVuIHRoZSB3aW5nby1tYWdpYyBzY3JpcHQgYWdhaW5zdCB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksCgkgIChnc3RfY29udHJvbGxlcl9maW5kX2NvbnRyb2xsZWRfcHJvcGVydHkpOgoJICBydW4gdGhlIHdpbmdvLW1hZ2ljIHNjcmlwdCBhZ2FpbnN0IHRoZSBkb2NzCgoyMDA1LTA5LTAyIDE4OjM2OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkgIHJlbW92ZWQgZmlsZSBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmaWxlIGFnYWluCgoyMDA1LTA5LTAyIDE3OjIzOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MgaW5saW5lZCBib3RoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MKCSAgaW5saW5lZCBib3RoCgoyMDA1LTA5LTAyIDE2OjQ0OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgbWFnaWNhbCBwaXhpZSBkdXN0IHRvIG1ha2UgZ2xpYi1ta2VudW1zIGNvbnNpZGVyIHRoaXMgZW51bSBhbiBlbnVtIGFuZCBub3QgYSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaDogQWRkIG1hZ2ljYWwgcGl4aWUgZHVzdCB0byBtYWtlIGdsaWItbWtlbnVtcwoJICBjb25zaWRlciB0aGlzIGVudW0gYW4gZW51bSBhbmQgbm90IGEgZmxhZ3MuCgoyMDA1LTA5LTAyIDE2OjE3OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgaW5saW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWFscGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBtb3JlIGRvY3MgaW5saW5lZAoKMjAwNS0wOS0wMiAxNTo0MjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLCBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLAoJICBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgKEdzdFN0YXRlQ2hhbmdlUmV0dXJuKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZVJldHVybiwgbmFtZXMKCSAgbXVuZ2VkIHRvIGJlIEdTVF9TVEFURV9DSEFOR0VfKi4KCSAgKEdTVF9TVEFURV9DSEFOR0UpOiBSZW5hbWVkIGZyb20gR1NUX1NUQVRFX1RSQU5TSVRJT04sIHVwZGF0ZWQgdG8KCSAgd29yayB3aXRoIHRoZSBuZXcgc3RhdGUgcmVwcmVzZW50YXRpb24uCgkgIChHc3RTdGF0ZUNoYW5nZSk6IE5ldyBlbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSBzdGF0ZSB0cmFuc2l0aW9ucy4KCSAgUmVwbGFjZXMgR1NUX1NUQVRFX0ZPT19UT19CQVIgd2l0aCBHU1RfU1RBVEVfQ0hBTkdFX0ZPT19UT19CQVIuCgkgIChHc3RFbGVtZW50Q2xhc3M6OmNoYW5nZV9zdGF0ZSk6IFBhc3MgdGhlIEdzdFN0YXRlQ2hhbmdlIGFsb25nIGFzCgkgIGFuIGFyZ3VtZW50LiBIZWxwcyBsYW5ndWFnZSBiaW5kaW5ncywgc28gdGhleSBkb24ndCBoYXZlIHRvIHVzZQoJICB0cmlja3kgbG9jay1uZWVkaW5nIG1hY3JvcyBsaWtlIEdTVF9TVEFURV9DSEFOR0UgKCkuCgkgICogc2NyaXB0cy91cGRhdGUtc3RhdGVzIChmaWxlKTogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIGEgZmlsZSB0bwoJICB1cGRhdGUgaXQgZm9yIHN0YXRlIG5hbWluZyBhbmQgQVBJIGNoYW5nZXMuIFVwZGF0ZXMgZmlsZXMgaW4KCSAgcGxhY2UuCgkgICogQWxsIGZpbGVzIHVwZGF0ZWQgZm9yIHRoZSBuZXcgQVBJLgoKMjAwNS0wOS0wMiAxMjoxMTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgc3BlYyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIHNwZWMgc29tZSBtb3JlCgoyMDA1LTA5LTAyIDEyOjA4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoZ3N0X3RyYWNlX2ZsdXNoKSwgKGdzdF90cmFjZV90ZXh0X2ZsdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyksCgkgIChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgIGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6IChtYWluKToKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgYSBsaXR0bGUKCjIwMDUtMDktMDEgMTk6MDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgIHVwZGF0ZWQgLmN2c2lnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCAuY3ZzaWdub3JlCgoyMDA1LTA5LTAxIDE4OjEyOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogSGFuZGxlIG5ld3NlZ21lbnRzIG1vcmUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBIYW5kbGUgbmV3c2VnbWVudHMgbW9yZSBjb3JyZWN0bHkuCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIEEgbmV3c2VnbWVudCBjYW5ub3QgaGF2ZSBhIHN0YXJ0X3RpbWUgb2YgLTEKCjIwMDUtMDktMDEgMTY6NTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUKCjIwMDUtMDgtMzEgMjE6MDE6MzUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCjIwMDUtMDgtMzEgMTg6NDU6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzogZml4ZWQgYm9vbGVhbiBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIGZpeGVkIGJvb2xlYW4gYWdhaW4KCjIwMDUtMDgtMzEgMTU6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgLWdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgLWdvb2QKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgcmVtb3ZlIHdyb25nIGRvY3MKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfZmlsdGVyZWQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBhZGQgZ3N0X2VsZW1lbnRfbGlua19maWx0ZXJlZAoKMjAwNS0wOC0zMSAxNDowODo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvY3MsIGZpeGVkIGRvdWJsZSBpZC1yZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcywgZml4ZWQgZG91YmxlIGlkLXJlZgoKMjAwNS0wOC0zMSAxMzo1MzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgoyMDA1LTA4LTMxIDEzOjUwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoKMjAwNS0wOC0zMSAxMzo0MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBub3QgbmVnb3RpYXRlZCBtb3JlIGdyYWNlZnVsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIG5vdCBuZWdvdGlhdGVkIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDUtMDgtMzEgMTI6NTU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBtbWFwJ2VkIGJ1ZmZlcnMsIG90aGVyd2lzZSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b24ndCB3b3JrIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgU2V0IFJFQURPTkxZIGZsYWcgb24gbW1hcCdlZCBidWZmZXJzLCBvdGhlcndpc2UKCSAgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29uJ3Qgd29yayBwcm9wZXJseSAoIzMxNDcwOCkuCgoyMDA1LTA4LTMxIDEwOjA3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBwYXNzdGhyb3VnaCBlbGVtZW50cyBjYW4gZXZlbiBkbyBpbnBsYWNlIG9uIG5vbiB3cml0YWJsZSBidWZmZXJzIChhcyB0aGV5IGRvbid0IHRvdWNoIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgcGFzc3Rocm91Z2ggZWxlbWVudHMgY2FuIGV2ZW4gZG8gaW5wbGFjZSBvbiBub24gd3JpdGFibGUKCSAgYnVmZmVycyAoYXMgdGhleSBkb24ndCB0b3VjaCB0aGVtKS4KCjIwMDUtMDgtMzEgMTA6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cyAoaGVoZSBJIGhhdmUgdGhlIG1vc3QpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMgKGhlaGUgSSBoYXZlIHRoZSBtb3N0KQoJICAqIGdzdC9nc3RidXMuYzoKCSAgZGVzY3JpYmUgcG9wcGluZyBtZXNzYWdlcyB3aGVudXNpbmcgbXVsbHRpcGxlIHNvdXJjZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgaW1wbGVtZW50IGJvb2xlYW4gcHJvcGVydGllcwoKMjAwNS0wOC0zMSAwODo1NzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZik6CgkgIENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlCgkgIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoKMjAwNS0wOC0zMSAwODozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcgYXBwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcKCSAgYXBwcy4KCjIwMDUtMDgtMzAgMTk6NDU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9lbGVtZW50cy86IEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA1LTA4LTMwIDE5OjI5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgbm8gbmV3c2VnbWVudCBnaXZlcyBhIHdhcm5pbmcgYW5kIHNldHMgdGhlIHN0YXJ0L3N0b3AgdG8KCSAgaW52YWxpZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpOgoJICBTb21lIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpOgoJICBDaGVjayByZWZjb3VudCBoZXJlIHRvby4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBQYWRzIGFyZSBpbml0aWFsbHkgZmx1c2hpbmcgYW5kIHJlZnVzaW5nIGRhdGEuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICBXaGVuIGFkZGluZyBhIGNhcHNmaWx0ZXIgZWxlbWVudCBtYWtlIHN1cmUgaXQgaGFzIHRoZQoJICBzYW1lIHN0YXRlIGFzIHRoZSBwYXJlbnQgYmluLgoKMjAwNS0wOC0zMCAxNzoyMzoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGFuZCB0d28gbW9yZSBpbmxpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIG1vcmUgZG9jcyBhbmQgdHdvIG1vcmUgaW5saW5lZAoKMjAwNS0wOC0zMCAxNzoxMjozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCBzeW5jIHRvIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIERvbid0IHN5bmMgdG8gY2xvY2suCgoyMDA1LTA4LTMwIDA4OjE3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdGNvbXBhdC5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDgtMjkgMjE6NDE6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCjIwMDUtMDgtMjkgMTk6NTk6NTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgaW5jbHVkZSBwYXRoIGZpeGVzCgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgY29udHJvbGxlciBleGFtcGxlIHdvcmtzIG5vdwoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBkb2MgZml4ZXMKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBzaG93IHBhcmFtIHNwZWMgZmxhZ3MKCjIwMDUtMDgtMjkgMTY6MTA6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgoyMDA1LTA4LTI5IDA5OjUyOjQ0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBNaW5vciB1cGRhdGVzIHRvIGRldmVsb3BlciBjdnMgaW5zdHJ1Y3Rpb25zLCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggd2hhdCB0aGUgZnJlZWRlc2t0b3AgcGVvcGxlIHdhbnQuIEFsc28sIHRlc3QgbXkgY3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIHVwZGF0ZXMgdG8gZGV2ZWxvcGVyIGN2cyBpbnN0cnVjdGlvbnMsIHRvIG1vcmUgY2xvc2VseSBtYXRjaCB3aGF0CgkgIHRoZSBmcmVlZGVza3RvcCBwZW9wbGUgd2FudC4gQWxzbywgdGVzdCBteSBjdnMgY29tbWl0IGFjY2Vzcy4uLgoKMjAwNS0wOC0yOCAxNzo0NTo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9GVUxMKTogUHJvdG90eXBlIGluc3RhbmNlX2luaXQgYXMgaGF2aW5nIHR3byBhcmd1bWVudHMgaW5zdGVhZCBvZiBqdXN0IG9uZS4gQWxsb3dzIHN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfRlVMTCk6IFByb3RvdHlwZSBpbnN0YW5jZV9pbml0CgkgIGFzIGhhdmluZyB0d28gYXJndW1lbnRzIGluc3RlYWQgb2YganVzdCBvbmUuIEFsbG93cyBzdXBlcmNsYXNzZXMKCSAgdG8gYWNjZXNzIGluZm9ybWF0aW9uIG9uIHN1YmNsYXNzZXMgLS0gc2VlIHRoZSB0ZXJyaWJsZSBmb3IoKSBsb29wCgkgIGluIGd0eXBlLmM6Z190eXBlX2NyZWF0ZV9pbnN0YW5jZSBmb3IgdGhlIHJlYXNvbiB3aHkuIEFsbCBjYWxsZXJzCgkgIGNoYW5nZWQuCgoyMDA1LTA4LTI3IDEwOjU3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDogdXBkYXRlIGluZm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIHVwZGF0ZSBpbmZvCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGFkZGVkIGRlc2NyaXB0aW9ucyBmb3IgYnVzIGFuZCBtZXNzYWdlCgkgIGlubGluZSBjYXBzIGFuZCBjbG9jayBkb2NzCgoyMDA1LTA4LTI2IDIyOjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjYgMjE6MjM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogZml4IGRpdi1ieS16ZXJvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIGZpeCBkaXYtYnktemVybwoKMjAwNS0wOC0yNiAxNDoyMTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogQ2hlY2sgZWxlbWVudF9zZXRfc3RhdGUncyByZXR1cm4gdmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBDaGVjawoJICBlbGVtZW50X3NldF9zdGF0ZSdzIHJldHVybiB2YWwuCgkgICh0ZXN0XzJfZWxlbWVudHMpOiBBZGQgdGVzdCB0aGF0J3MgYmVlbiBkaXNhYmxlZCBmb3IgbW9udGhzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiBDbGVhbnVwcy4gQWRkIGNhbi1hY3RpdmF0ZS1wdXNoIGFuZAoJICBjYW4tYWN0aXZhdGUtcHVsbCBwcm9wZXJ0aWVzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IENsZWFudXBzLiBBZGQgY2FuLWFjdGl2YXRlLXB1c2ggYW5kCgkgIGNhbi1hY3RpdmF0ZS1wdWxsIHByb3BlcnRpZXMuIEltcGxlbWVudCBpc19zZWVrYWJsZSBzbyBmYWtlc3JjIGNhbgoJICBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChHc3RCYXNlU2luayk6IFJlbW92ZSBoYXMtbG9vcCwgaGFzLWNoYWluCgkgIHByb3BlcnRpZXMuCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlLCBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBNYWtlIGFjdGl2YXRpb24gbW9kZSBjaG9vc2luZyB3b3JrLgoJICBDbGVhbnVwcy4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4sIGdzdF9iYXNlX3NpbmtfbG9vcCk6IEFzc2VydCBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgcmlnaHQuIE1ha2UgcHVsbCBtb2RlIHdvcmsuIFBvc3QgYW4gZW9zIGJlZm9yZSBwYXVzaW5nIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUGF5IGF0dGVudGlvbiB0byB0aGUgY29yZSdzCgkgIGNoYW5nZV9zdGF0ZSgpIHJldHVybiB2YWwuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhcy1sb29wLAoJICBoYXMtZ2V0cmFuZ2UgcHJvcGVydGllcy4gQ2xlYW51cHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhc19sb29wLAoJICBoYXNfZ2V0cmFuZ2UgYW5kIHJlcGxhY2Ugd2l0aCBjYW5fYWN0aXZhdGVfcHVsbCBhbmQKCSAgY2FuX2FjdGl2YXRlX3B1c2guCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaCAoR3N0QmFzZVNpbmspOiBSZWFycmFuZ2UgZmllbGRzLCBhZGQKCSAgbG9ja2luZyBjb21tZW50cy4gUmVtb3ZlIGhhc19sb29wLCBoYXNfY2hhaW4gYW5kIHJlcGxhY2Ugd2l0aAoJICBjYW5fYWN0aXZhdGVfcHVsbCBhbmQgY2FuX2FjdGl2YXRlX3B1c2guCgoyMDA1LTA4LTI2IDEzOjI4OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBtZXRhZGF0YSByZWFkaW5nIGV4YW1wbGUgdGhhdCBsb29wcyBvdmVyIGEgbGlzdCBvZiBmaWxlbmFtZXMsIGR1bXBpbmcgYW55IHRhZ3MgZm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAoaGF2ZV9wYWRfaGFuZGxlciksIChtYWtlX3BpcGVsaW5lKSwgKHByaW50X3RhZyksIChtYWluKToKCSAgQWRkIG1ldGFkYXRhIHJlYWRpbmcgZXhhbXBsZSB0aGF0IGxvb3BzIG92ZXIgYSBsaXN0IG9mIGZpbGVuYW1lcywKCSAgZHVtcGluZyBhbnkgdGFncyBmb3VuZC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgUmVsZWFzZSBhIGZldyBwb3RlbnRpYWxseS1oZWxkIHJlZmVyZW5jZXMgaW4gZGlzcG9zZS4KCjIwMDUtMDgtMjYgMTM6MjE6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOiBkbyAqbm90KiBhZGQgdG1wbC8qLnNnbWwgZmlsZXMgdG8gQ1ZTIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgZG8gKm5vdCogYWRkIHRtcGwvKi5zZ21sIGZpbGVzIHRvIENWUyEKCjIwMDUtMDgtMjYgMTM6MTc6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2J5dGVzdHJlYW0vOiByZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtLy5jdnNpZ25vcmU6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuaDoKCSAgcmVtb3Zpbmcgb2Jzb2xldGUgZmlsZXMKCjIwMDUtMDgtMjYgMTI6NDg6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0IHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0CgkgIHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBsaXR0bGUgLXNlY3Rpb24udHh0IGNsZWFudXAgZm9yIGxpYnMKCjIwMDUtMDgtMjYgMTE6NTY6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgc29tZSBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgZml4IHVwIHNvbWUgZGVidWdnaW5nCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBoYW5kbGUgYW5kIHN0b3JlIHRpbWVkIE5FV1NFR01FTlQgZXZlbnRzIHNvIHRoYXQgc3ViY2xhc3NlcyB0aGF0CgkgIGNhbGN1bGF0ZSB0aW1lIGJ5IGNvdW50aW5nIHNhbXBsZXMgaGF2ZSBhIHNlZ21lbnRfc3RhcnQgdGltZSB0aGV5CgkgIG5lZWQgdG8gYWRkIHRvIHRoZWlyIHRpbWVzdGFtcHMgLSBzZWUgYXVkaW9yZXNhbXBsZQoKMjAwNS0wOC0yNiAxMToxOToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB3aGl0ZXNwYWNlLCBkb2MgYW5kIGRlYnVnIGZpeGluZy9hZGRpdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UsIGRvYyBhbmQgZGVidWcgZml4aW5nL2FkZGl0aW9ucwoKMjAwNS0wOC0yNSAyMzoxNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiByZW1vdmVkICc7JyBmcm9tIHRoZSBlbmQgb2YgbWFjcm8gZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIHJlbW92ZWQgJzsnIGZyb20gdGhlIGVuZCBvZiBtYWNybyBkZWZzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGFjdGl2YXRlX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4ZWQgcGFyYW1ldGVyIG5hbWUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHNvdXJjZSwgaGVhZGVyIGFuZCBkb2NzCgkgIGFkZGVkIHNvbWUgbW9yZSBkb2NzLCByZXNvbHZlZCB0aGUgbGFzdCBiYXRjaCBvZiB1bnVzZWQgZWxlbWVudHMgaW4KCSAgZG9jcyAobm93IHNvbWVvbmUgbmVlZHMgdG8gZG9jIHRoZW0pCgoyMDA1LTA4LTI1IDIwOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgcmVzcGVjdCBvcmRlciBvZiBwbHVnaW4gZGlycyB3aGVuIGxvYWRpbmcgcGxsdWdpbnMgYW5kIHJlYnVpbGRpbmcgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlc3BlY3Qgb3JkZXIgb2YgcGx1Z2luIGRpcnMgd2hlbiBsb2FkaW5nIHBsbHVnaW5zIGFuZCByZWJ1aWxkaW5nIHJlZ2lzdHJ5CgoyMDA1LTA4LTI1IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBDYWNoZSBjYXBzIHVuaXRfc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2FjaGUgY2FwcyB1bml0X3NpemUuCgkgIE1ha2Ugc3VyZSB3ZSBjYW5ub3QgbmVnb3RpYXRlIHVwIGFuZCBkb3duc3RyZWFtIGF0IHRoZQoJICBzYW1lIHRpbWUuCgoyMDA1LTA4LTI1IDE4OjU1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICBtYWtlIHJlZ2lzdHJ5IHJlc3BlY3Qgb3JkZXIgb2YgR1NUX1BMVUdJTl9QQVRIOyBtYWtlIHRoZSBpbnN0YWxsZWQgbG9jYXRpb24gZ28gbGFzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSByZWdpc3RyeSByZXNwZWN0IG9yZGVyIG9mIEdTVF9QTFVHSU5fUEFUSDsgbWFrZSB0aGUgaW5zdGFsbGVkIGxvY2F0aW9uIGdvIGxhc3QKCjIwMDUtMDgtMjUgMTg6NTQ6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZG9jcwoKMjAwNS0wOC0yNSAxNjoyNzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCjIwMDUtMDgtMjUgMTM6NTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIGFib3V0IHRoZSBwb3N0ZWQgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgQmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgYWJvdXQgdGhlIHBvc3RlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIFNvbWUgY2xlYW51cHMsIHdhcm4gd3JvbmcgcmV0dXJuIHZhbHVlcy4KCjIwMDUtMDgtMjUgMTA6NTE6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmV2ZXJ0IHVucG9wdWxhciBjaGFuZ2UgZm9yIEdTVF9NRVNTQUdFX1NSQyB0byBHT2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBSZXZlcnQgdW5wb3B1bGFyIGNoYW5nZSBmb3IgR1NUX01FU1NBR0VfU1JDIHRvIEdPYmplY3QuCgoyMDA1LTA4LTI1IDEwOjM1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoKMjAwNS0wOC0yNSAxMDoxNjoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHdpbSBmaXhlZCB0aGUgdGFzaywgeWF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aW0gZml4ZWQgdGhlIHRhc2ssIHlheQoKMjAwNS0wOC0yNSAxMDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IENsZWFudXAgY2FuIGJlIGRvbmUgYXQgdGhlIGVuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2xlYW51cCBjYW4gYmUgZG9uZSBhdCB0aGUgZW5kLgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19maW5hbGl6ZSksCgkgIChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX2NsZWFudXBfYWxsKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSk6CgkgIE9oIGJveS4uIFRoYW5rcyBmb3IgZmluZGluZyB0aGlzLCBUaG9tYXMuCgoyMDA1LTA4LTI0IDIyOjAxOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCjIwMDUtMDgtMjQgMjE6NTc6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgYW5vdGhlciBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZml4CgoyMDA1LTA4LTI0IDIxOjQ1OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGFkZGVkIG1pc3NpbmcgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBhZGRlZCBtaXNzaW5nIHR5cGVzCgoyMDA1LTA4LTI0IDIxOjM1OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtaWlzc2luZyBjbGFzc2VzIGFuZCBzeW1ib2xzICgxMjMgbW9yZSB0byBnbykgcmVtb3ZlZCByZW1vdmVkIHN5bWJvbHMgZnJvbSBzZWN0aW9uIGZpbGUgZml4ZWQgbWFueSBkb2MtY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgYWRkZWQgbWlpc3NpbmcgY2xhc3NlcyBhbmQgc3ltYm9scyAoMTIzIG1vcmUgdG8gZ28pCgkgIHJlbW92ZWQgcmVtb3ZlZCBzeW1ib2xzIGZyb20gc2VjdGlvbiBmaWxlCgkgIGZpeGVkIG1hbnkgZG9jLWNvbW1lbnRzCgoyMDA1LTA4LTI0IDIwOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGFmdGVyIHVzYWdlIGZvciBwcm9wZXIgdmFsZ3JpbmRpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIFJlYWxseSB3YWl0IGZvciB0aGUgdGFzayB0byBzdG9wIGJlZm9yZSBkZXN0cm95aW5nIHRoZQoJICBtdXRleC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU21hbGwgY2xlYW51cHMuIERvbid0IHN0b3AgdGhlIHRhc2sgd2hlbiB3ZSBkaWQgbm90IHN0YXJ0CgkgIGl0LgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19pbml0KSwKCSAgKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfY2xlYW51cF9hbGwpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwKCSAgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFByb3RlY3QgdGhlIHN0cmVhbSBsb2NrIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBEaXNhbGxvdyBzZXR0aW5nIHRoZSBzdHJlYW0gbG9jayB3aGVuIHJ1bm5pbmcuCgkgIEFkZCBjbGVhbnVwX2FsbCB0byB3YWl0IGZvciB0aGUgdGhyZWFkcG9vbCB0byBmaW5pc2guCgkgIFJlbW92ZSBjb2RlIHRvIGF1dG9hbGxvY2F0ZSBhIG11dGV4IGlmIG5vbmUgd2FzIHByb3ZpZGVkLgoJICBBZGQgX2pvaW4oKSB0byB3YWl0IGZvciBhIHRhc2sgdG8gc3RvcC4KCSAgUHJvdGVjdCB0aGUgdGhyZWFkIHBvb2wgd2l0aCBhIGdsb2JhbCBsb2NrLgoKMjAwNS0wOC0yNCAxNzo1NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEhhbmRsZSBuZXdzZWdtZW50IGV2ZW50cyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgSGFuZGxlIG5ld3NlZ21lbnQgZXZlbnRzIGNvcnJlY3RseS4KCSAgRHJvcCBidWZmZXJzIG91dCBvZiB0aGUgc2VnbWVudCByYW5nZS4KCjIwMDUtMDgtMjQgMTc6MjQ6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHRlc3Qgd2hpbGUgd2ltIGlzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB0ZXN0IHdoaWxlIHdpbSBpcyBmaXhpbmcKCjIwMDUtMDgtMjQgMTY6NDY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYWRkIHBsdWdpbnNkaXIgdG8gcGtnY29uZmlnIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcGx1Z2luc2RpciB0byBwa2djb25maWcgZmlsZXMKCjIwMDUtMDgtMjQgMTY6NDE6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDgtMjQgMTY6MDk6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBhZGQgYSB0ZXN0IHRoYXQgZG9lcyBhIGJ1bmNoIG9mIHN0YXRlIGNoYW5nZXMgb24gZWxlbWVudHMgbmVlZHMgc29tZSBmaXhpbmcgZm9yIHZhbGdyaW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBhIHRlc3QgdGhhdCBkb2VzIGEgYnVuY2ggb2Ygc3RhdGUgY2hhbmdlcyBvbiBlbGVtZW50cwoJICBuZWVkcyBzb21lIGZpeGluZyBmb3IgdmFsZ3JpbmQKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKGdzdF9vYmplY3Rfc3VpdGUpOgoJICB3aGl0ZXNwYWNlCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgYWRkIHByb3RvdHlwZSBmb3IgZ3N0X2NhcHNfaXNfZXF1YWxfZml4ZWQKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjQgMTU6NDk6MDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOiBTcGV3IGlmIHdlIHRyeSB0byBjb252ZXJ0IGEgbmVnYXRpdmUgdmFsdWUuIERvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLiBNb3N0bHkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuYyAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KTogU3BldyBpZiB3ZSB0cnkgdG8KCSAgY29udmVydCBhIG5lZ2F0aXZlIHZhbHVlLiBEb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gTW9zdGx5IHRoaXMgaXMKCSAgaGVyZSB0byBmb3JjZSBjYWxsZXJzIHRvIGVuc3VyZSAtMSBtYXBzIHRvIC0xLgoKMjAwNS0wOC0yNCAxNToxMDo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IFdlbGwgZG9uZSB0byBNaWNoYWVsIGZvciBjYXRjaGluZyBteSBkZWxpYmVyYXRlIGludHJvZHVjdGlvbiBvZiB0aGlzIHNwZWxsaW5nIG1pc3Rha2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgV2VsbCBkb25lIHRvIE1pY2hhZWwgZm9yIGNhdGNoaW5nIG15IGRlbGliZXJhdGUgaW50cm9kdWN0aW9uCgkgIG9mIHRoaXMgc3BlbGxpbmcgbWlzdGFrZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIEdTVF9FTEVNRU5UX1VOUEFSRU5USU5HIHRvIHByZXZlbnQgcmFjZXMgc28gdGhhdCB3ZSBjYW4KCSAgdW5saW5rIHBhZHMgYmVmb3JlIHJlbW92aW5nIHRoZSBlbGVtZW50IGZyb20gdGhlIGJpbi4KCjIwMDUtMDgtMjQgMTM6NDk6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAocGFyc2VfZGVidWdfbGlzdCk6IEFjY2VwdCBlLmcuIEdTVF9ERUJVRz00IHRvIG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgR1NUX0RFQlVHPSo6NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChwYXJzZV9kZWJ1Z19saXN0KTogQWNjZXB0IGUuZy4gR1NUX0RFQlVHPTQgdG8gbWVhbgoJICB0aGUgc2FtZSB0aGluZyBhcyBHU1RfREVCVUc9Kjo0LgoJICAocGFyc2VfZGVidWdfbGV2ZWwsIHBhcnNlX2RlYnVnX2NhdGVnb3J5KTogTmV3IGhlbHBlciBwYXJzZXJzLgoKMjAwNS0wOC0yNCAxMzozMzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHVzZSBnYm9vbGVhbiByZXR1cm4gdmFsdWVzIGFuZCBwb2ludGVycyB0byBzaXplIHNvIHdlIGNhbiB1c2UgdGhlIGZ1bGwgR1NUX0JVRkZFUl9TSVpFIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgdXNlIGdib29sZWFuIHJldHVybiB2YWx1ZXMgYW5kIHBvaW50ZXJzIHRvIHNpemUgc28gd2UgY2FuIHVzZSB0aGUKCSAgZnVsbCBHU1RfQlVGRkVSX1NJWkUgcmFuZ2UgKGd1aW50KSBmb3IgYnVmZmVyIHNpemVzCgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICByZW5hbWUgZ2V0X3NpemUgdG8gZ2V0X3VuaXRfc2l6ZSBzaW5jZSB0aGF0J3Mgd2hhdCBpdCBpcwoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fY2Fwcyk6CgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgY2xlYW51cCBhbmQgZGVidWdnaW5nCgoyMDA1LTA4LTI0IDEzOjA0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChhY3RpdmF0ZV9wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXMpOgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgoyMDA1LTA4LTI0IDExOjU0OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIENoYW5nZSBHU1RfTUVTU0FHRV9TUkMgdG8gYmUgYSBHT2JqZWN0IHJhdGhlciB0aGFuIGEgR3N0T2JqZWN0LCBzbyB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gc2Vuc2libHkgcG9zdCBjdXN0b20gbWVzc2FnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBDaGFuZ2UgR1NUX01FU1NBR0VfU1JDIHRvIGJlIGEgR09iamVjdCByYXRoZXIgdGhhbiBhIEdzdE9iamVjdCwgc28KCSAgdGhhdCBhcHBsaWNhdGlvbnMgY2FuIHNlbnNpYmx5IHBvc3QgY3VzdG9tIG1lc3NhZ2VzIHdpdGggcmVmZXJlbmNlcwoJICB0byB0aGVpciBvd24gb2JqZWN0cy4KCjIwMDUtMDgtMjQgMTE6NDQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1hbnkgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieSBUaG9tYXMuIENhbiBub3cgYWxzbyBkbyB0cmFuc2Zvcm1zIHdpdGggdmFyaWFibGUgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFueSBmaXhlcyBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5IFRob21hcy4gQ2FuIG5vdyBhbHNvIGRvCgkgIHRyYW5zZm9ybXMgd2l0aCB2YXJpYWJsZSBzaXplcyBhbmQgYSBjdXN0b20gZml4YXRlX2NhcHMgZnVuY3Rpb24uCgoyMDA1LTA4LTI0IDExOjM2OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZAoJICBhbHJlYWR5LgoKMjAwNS0wOC0yNCAxMToyMjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogU29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIFNvbWUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBDYXN0IHRvIENsb2NrVGltZSBiZWZvcmUgZm9ybWF0dGluZyB0byB0aW1lLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBDbGVhbnVwcy4KCjIwMDUtMDgtMjMgMjE6MzI6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdyYWNlZnVsbHkgaGFuZGxlIGhlbHBlciBtZXRob2QgY2FsbHMgdG8gb2JqZWN0cyB0aGF0IGFyZSBub3QgYmVlaW5nIGNvbnRyb2xsZWQsIGFkZGVkIHRlc3QgY2FzZSBmb3IgdGhhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6IChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc2lua192YWx1ZXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5KToKCSAgZ3JhY2VmdWxseSBoYW5kbGUgaGVscGVyIG1ldGhvZCBjYWxscyB0byBvYmplY3RzIHRoYXQgYXJlIG5vdCBiZWVpbmcKCSAgY29udHJvbGxlZCwgYWRkZWQgdGVzdCBjYXNlIGZvciB0aGF0CgoyMDA1LTA4LTIzIDE4OjE3OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0IGFuZCBkb2MgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwKCSAgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfbmV3X3RhZyksIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQgYW5kIGRvYyBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBwb3NzaWJsZSBkZWFkbG9jay4KCjIwMDUtMDgtMjMgMTQ6MjU6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGFib3V0IDEwMCBzeW1ib2xzIGZyb20gZ3N0cmVhbWVyLXVudXNlZC50eHQgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zIGZpeGVkIG1vcmUgYnJva2VuIGNvbW1lbnRzIGFkZGVkIEdzdEJ1cyB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkZWQgYWJvdXQgMTAwIHN5bWJvbHMgZnJvbSBnc3RyZWFtZXItdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgZml4ZWQgbW9yZSBicm9rZW4gY29tbWVudHMKCSAgYWRkZWQgR3N0QnVzIHRvIGRvY3MKCjIwMDUtMDgtMjMgMTE6NTM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2MgY29tbWVudHMsIGFkZGVkIG1pc3NpbmcgY29tbWVudHMgYW5kIGZpeGVkIGNvbW1lbnRzIGZpeGVkIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBpbmxpbmVkIG1vcmUgZG9jIGNvbW1lbnRzLCBhZGRlZCBtaXNzaW5nIGNvbW1lbnRzIGFuZCBmaXhlZCBjb21tZW50cwoJICBmaXhlZCB0eXBvcwoKMjAwNS0wOC0yMyAxMTozODoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IHNvbWUgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIG1vcmUgZGVidWdnaW5nCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIGZpeGF0ZSBmdW5jdGlvbiBmb3IgYm9vbGVhbnM7IGFkZCBhIEZJWE1FIHRoYXQgdGhlc2UgZnVuYwoJICBuYW1lcyBzaG91bGQgcHJvYmFibHkgYmUgZ3N0X3N0cnVjdHVyZV9maXhhdGVfKgoKMjAwNS0wOC0yMiAyMTowMzozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG9ydGVkIGdzdGNoaWxkcHJveHkgb3ZlciBmcm9tIDAuOCBwb3J0ZWQgZ3N0LWluc3BlY3QgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvdmVyIGZyb20gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2luaXQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X25hbWUpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF92YWxpc3QpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldCksCgkgIChnc3RfY2hpbGRfcHJveHlfY2hpbGRfYWRkZWQpLCAoZ3N0X2NoaWxkX3Byb3h5X2NoaWxkX3JlbW92ZWQpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBwb3J0ZWQgZ3N0Y2hpbGRwcm94eSBvdmVyIGZyb20gMC44CgkgIHBvcnRlZCBnc3QtaW5zcGVjdCBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG92ZXIgZnJvbSAwLjgKCjIwMDUtMDgtMjIgMTk6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIEZpeCBkZWJ1ZyBpbmZvLgoKMjAwNS0wOC0yMiAxOToyMjozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlcikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpCgkgIERvbid0IHByZXRlbmQgdG8gaGFuZGxlIHNlZWsgZXZlbnRzIGlmIHRoZSBzb3VyY2UgaXMgbm90IHNlZWthYmxlCgoyMDA1LTA4LTIyIDE4OjQ4OjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbW92ZSBleHRyYSBwYXJhbWV0ZXIgdG8gZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBSZW1vdmUgZXh0cmEgcGFyYW1ldGVyIHRvIGRlYnVnIG91dHB1dAoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBGaXggc2VlayBldmVudCBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IHN0YXJ0IHRoZSBzcmMgcGFkIHRhc2sgb24gRkxVU0hfU1RPUCBpZiB0aGUgcGFkCgkgIGlzbid0IGxpbmtlZC4KCSAgRGVidWcgY2hhbmdlcy4KCjIwMDUtMDgtMjIgMTU6MTI6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UpOiBOZXcgZ2hldHRvIG1hY3JvLCBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSBhbmQgZ3N0aW1wbGVtZW50c2ludGVyZmFjZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFKTogTmV3IGdoZXR0bwoJICBtYWNybywgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgYW5kIGdzdGltcGxlbWVudHNpbnRlcmZhY2UgZm9yIGEKCSAgbmV3IHR5cGUuCgoyMDA1LTA4LTIyIDE1OjA4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCjIwMDUtMDgtMjIgMTQ6MzU6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBZGQgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSB0byBwcm90ZWN0IGFnYWluc3Qgc2VnZmF1bHRzLgoKMjAwNS0wOC0yMiAxMDozNzowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCByZW1haW5pbmcgZG9jcywgYWRkZWQgbWlzc2luZyBkb2MgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBpbmxpbmVkIHJlbWFpbmluZyBkb2NzLCBhZGRlZCBtaXNzaW5nIGRvYyBjb21tZW50cwoKMjAwNS0wOC0yMiAwOToyNTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbiBwcmVyb2xsIGlzIGRvbmUsIHVzZSByZWZjb3VudCByYW5nZSBjaGVjayBmb3IgdGhlIHNpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4gcHJlcm9sbCBpcyBkb25lLCB1c2UgcmVmY291bnQgcmFuZ2UKCSAgY2hlY2sgZm9yIHRoZSBzaW5rCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNybyBmb3IgY2hlY2tpbmcgcmVmY291bnQgcmFuZ2UKCjIwMDUtMDgtMjEgMTY6NTM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCjIwMDUtMDgtMjEgMTU6MjE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCjIwMDUtMDgtMjEgMTU6MDE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGNsZWFuIHVwIGVudmlyb25tZW50IGZvciB3aGVuIHJlZ2lzdHJ5IGdldHMgYnVpbHQgdmVyc3VzIHdoZW4gYWN0dWFsIHRlc3RzIGFyZSBydW47IHZhbGdyaW5kIHNlZW1zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBlbnZpcm9ubWVudCBmb3Igd2hlbiByZWdpc3RyeSBnZXRzIGJ1aWx0IHZlcnN1cwoJICB3aGVuIGFjdHVhbCB0ZXN0cyBhcmUgcnVuOyB2YWxncmluZCBzZWVtcyB0byBub3QgcmVwb3J0CgkgIGxlYWtzIGlmIEdTVF9QTFVHSU5fUEFUSCBpcyBzZXQgdG8gc29tZSBzcGVjaWZpYyB2YWx1ZXMKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIHJlZmNvdW50aW5nIGNoZWNrczsgbWF5YmUgdGhpcyBleHBvc2VzIGEKCSAgcHJlcm9sbCBsb2NrIGJ1ZyA/CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2NoYWluKToKCSAgYWRkL2ZpeCBkZWJ1Z2dpbmcvd2hpdGVzcGFjZQoKMjAwNS0wOC0yMSAxMTo0MDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCjIwMDUtMDgtMjEgMTE6MTU6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCjIwMDUtMDgtMjEgMTA6NTQ6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGV2ZW50cy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU3ByaW5rbGUgZ3N0X2Jhc2Vfc3JjX3N0b3AgbGliZXJhbGx5IGFyb3VuZCBlcnJvciBwYXRocyB0byBmaXgKCSAgcHJvYmxlbXMgcmV1c2luZyBhIHNvdXJjZSBhZnRlciBmYWlsZWQgc3RhdGUgY2hhbmdlcy4KCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgRXh0cmEgZGVidWcgb3V0cHV0LiBEb24ndCBzZWdmYXVsdCBvbiBHU1RfUEFEX0dFVFJBTkdFRlVOQyA9IE5VTEwKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIE1pZ3JhdGUgcGFydCBvZiB0aGUgZG9jcyBmcm9tIHRoZSBTR01MIGZpbGUuIFdhaXQgZm9yIGVuc29uaWMgdG8KCSAgdGVsbCBtZSBob3cgSSBkaWQgaXQgd3JvbmcgOykKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBFeHRyYSByb2J1c3RuZXNzIHRvIHN0YXRlIGNoYW5nZXMgYmV0d2VlbiBmaWxlcy4KCjIwMDUtMDgtMjEgMTA6Mzk6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19jaGFpbl9mdW5jKSwgKGdzdF9jaGVja19zZXR1cF9lbGVtZW50KSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9lbGVtZW50KSwgKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSBidW5jaCBvZiBtZXRob2RzIHRvIHNldCB1cCBlbGVtZW50cywgYW5kIHNyYyBhbmQgc2luayBwYWRzCgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyksIChjbGVhbnVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSksIChjbGVhbnVwX2lkZW50aXR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdXNlIHRoZW0KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDUtMDgtMjAgMjA6MzA6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBtYWtlIEdTVF9FTEVNRU5UX0VSUk9SIG5vdCBkbyBHU1RfRVJST1JfT0JKRUNUIC0gdGhlc2UgZXJyb3JzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFsd2F5cyBwcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgR1NUX0VMRU1FTlRfRVJST1Igbm90IGRvIEdTVF9FUlJPUl9PQkpFQ1QgLSB0aGVzZSBlcnJvcnMgc2hvdWxkCgkgIGJlIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFuZCBub3QgYWx3YXlzIHByaW50ZWQgYXMgd2VsbAoKMjAwNS0wOC0yMCAyMDoxNTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogc2V0IEdTVF9UT09MU19ESVIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCBHU1RfVE9PTFNfRElSCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvcik6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQKCSAgYWRkIGZhaWxfdW5sZXNzIGZvciBlcnJvciBtZXNzYWdlcwoKMjAwNS0wOC0yMCAxNDowMDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGZhY3RvciBvdXQgdGhlIGNvbW1vbiBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCB0aGUgY29tbW9uIHN0dWZmCgoyMDA1LTA4LTIwIDEzOjE3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoKMjAwNS0wOC0yMCAxMjo0NzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbmFtZWQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lZCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjQzOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjM5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoKMjAwNS0wOC0yMCAxMjoxNDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgY2hlY2sgc3R1ZmYgdG8gaXRzIG93biBsaWJyYXJ5IHRvIGJlIHVzZWQgYnkgb3RoZXIgbW9kdWxlcwoKMjAwNS0wOC0xOSAwOTo1ODo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZWxpbWluYXRlIGFub3RoZXIgdG1wbCBmaWxlLCBmaXggc3BlbGxpbmcgaW4gdGhlIGxvbmctZGVzY3JpcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgoyMDA1LTA4LTE4IDE2OjQyOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgoyMDA1LTA4LTE4IDE2OjIwOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwaXBlbGluZSBnb2VzIHRvIFBMQVlJTkcsIHRoYXQgZGF0YSBoYXMKCSAgYWN0dWFsbHkgaGl0IHRoZSBzaW5rLgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NpbmspOiBBIHNpbmsgdGhhdCBkb2Vzbid0IGdldCBhbnkKCSAgZGF0YSBzaG91bGRuJ3QgcmV0dXJuIFNVQ0NFU1MgZm9yIGdvaW5nIHRvIGVpdGhlciBQTEFZSU5HIG9yCgkgIFBBVVNFRC4gVGVzdCBhbHNvIHRoZSByZXR1cm4gdmFsdWVzIG9uIHRoZSB3YXkgYmFjayBkb3duLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6IFdoZW4gY2hhbmdpbmcgdGhlCgkgIHN0YXRlIG9mIGFuIGVsZW1lbnQgY3VycmVudGx5IGNoYW5naW5nIHN0YXRlIGFzeW5jaHJvbm91c2x5LCBnbyB0bwoJICBsb3N0LXN0YXRlIGFmdGVyIGNvbW1pdGluZyB0aGUgcGVuZGluZyBzdGF0ZS4gTWFrZXMgZnV0dXJlIGNhbGxzCgkgIHRvIGdldF9zdGF0ZSBjb250aW51ZSB0byByZXR1cm4gQVNZTkMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBSZXR1cm4KCSAgQVNZTkMgd2hlbiBnb2luZyB0byBQTEFZSU5HIGlmIHdlIHN0aWxsIGRvbid0IGhhdmUgcHJlcm9sbCwgYXMgY2FuCgkgIGhhcHBlbiB3aXRoIGxpdmUgc291cmNlcy4KCjIwMDUtMDgtMTggMTY6MTU6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBIYWNrIGxvbmcgcGFyYWdyYXBoIGludG8gMiBjaHVua3MgYXMgYSB3b3JrYXJvdW5kIGZvciBidWdneSBqYWRldGV4IHZlcnNpb24gaW4gc2lkIGFuZCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kKCSAgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYnJlZXp5IHRoYXQgbG9vcHMgaW5maW5pdGVseSBhbmQKCSAgZWF0cyBhbGwgUkFNLgoKMjAwNS0wOC0xOCAxNjowMDozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvciBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvcgoJICBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoKMjAwNS0wOC0xOCAxNTo0NzoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IEZpeCBlcnJvciBtZXNzYWdlIG91dHB1dCBzbyBJIG1pZ2h0IGJlIGFibGUgdG8gdGVsbCB3aHkgdGhlIHRlc3Qgd29ya3MgaGVyZSBidXQgZmFpbHMgb24gdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZQoJICB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBidWlsZCBmYXJtLgoKMjAwNS0wOC0xOCAxNTozMToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IEkgd3JvdGUgYSB0ZXN0IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSksIChtYWluKToKCSAgSSB3cm90ZSBhIHRlc3QhCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU3BlbGxpbmcgY29ycmVjdGlvbgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgRG9jcyB1cGRhdGVzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBUcmVhdCBhIGJ1ZmZlci13aXRob3V0LW5ld3NlZ21lbnQgdGhlIHNhbWUgYXMgYSByZWNlaXZpbmcKCSAgYSBuZXdzZWdtZW50IG5vdCBpbiB0aW1lIGZvcm1hdCwgYW5kIGRpc2FibGUgc3luY2luZyB0byB0aGUgY2xvY2sKCSAgd2l0aCBhIHdhcm5pbmcuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKToKCSAgQXNzZXJ0IGlmIGFueW9uZSB0cmllcyB0byByZXBsYWNlIHRoZSBleGlzdGluZyBzeW5jX2hhbmRsZXIgZm9yIGJ1cywKCSAgYXMgb25seSB0aGUgb3duZXIgc2hvdWxkIGJlIHNldHRpbmcgaXQuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEhhdmUgYSBmaXhlZCBzZXQgb2YgY3VzdG9tIGV2ZW50IGVudW1zIHdpdGggZXZlbnRzIGlkZW50aWZpZWQgYnkKCSAgdGhlaXIgc3RydWN0dXJlIG5hbWUgKGFzIGluIDAuOCksIHJhdGhlciB0aGFuIGEgZnJlZS1mb3ItYWxsCgkgIGFsbG93aW5nIGNvbGxpc2lvbnMgYmV0d2VlbiBlbnVtIHZhbHVlcyBmcm9tIGRpZmZlcmVudCBwbHVnaW5zLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgIERvY3MgY2hhbmdlLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgSGFuZGxlIG91dC1vZi1iYW5kIGRvd25zdHJlYW0gZXZlbnRzIGZyb20gdGhlIHNlbmRpbmcgdGhyZWFkLgoKMjAwNS0wOC0xNyAxNjo1NzowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBJbnRlcnByZXQgcGxheS10aW1lb3V0PT0wIHRvIG1lYW4gbm8gdGltZW91dCBhdCBhbGwuIEluIHRoYXQgY2FzZSwgZG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0CgkgIHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbid0CgkgIGJvdGhlciB3aXRoIGEgZ2V0X3N0YXRlIG9yIGEgd2FybmluZywganVzdCByZXR1cm4gZGlyZWN0bHksIGV2ZW4KCSAgaWYgaXQncyBBU1lOQy4KCjIwMDUtMDgtMTcgMTY6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEZWJ1ZyBjaGFuZ2VzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGQgZnVuY3Rpb24gdG8KCSAgZW5zdXJlIGJpbnMgcG9zdCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuIEEgYml0IG9mIGEgaGFjayBidXQgSSBjYW4ndAoJICB0aGluayBvZiBhIHdheSB0byBhdm9pZCBpdC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3Rfd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSk6IEFkZGVkIHRlc3QuCgoyMDA1LTA4LTE2IDE3OjIzOjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLio6IE5ldyBmdW5jdGlvbiwgbGlrZSBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jIChnc3RfYWRhcHRlcl90YWtlKTogTmV3IGZ1bmN0aW9uLCBsaWtlCgkgIHBlZWsoKSBidXQgeW91IG93biB0aGUgZGF0YS4gTm90IHRlcnJpYmx5IGVmZmljaWVudCBhdG0uCgoyMDA1LTA4LTE2IDE2OjI5OjA0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuKjogQWRkIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGFnIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCksIChwdXNoX2FuZF9yZWYpLAoJICAoZ3N0X2VsZW1lbnRfZm91bmRfdGFncyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCjIwMDUtMDgtMTYgMTI6MTU6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IGRvY3MgdG8gdXNlIF9iaW5fYWRkKCkgYmVmb3JlIF9saW5rKCksIHdoaWNoIGZpeGVzIHRoZSBleGFtcGxlcyB3aXRoIHJlY2VudCBjb3JlIHZlcnNpb25zIChyZXBvcnRlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMKCSAgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQgYnkgTWFkaGFuIFJhaiBNCgkgIDxyYWpfbWFkYW5AcmVkaWZmbWFpbC5jb20+LCAjMzEzMTk5KS4KCjIwMDUtMDgtMTYgMDk6NDI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkZWQgc3VidHJhY3QgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGFib3V0IG5ld3NlZ21lbnQKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggRklYTUUKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQWRkIGNvbW1lbnRzLCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgY2xlYW51cHMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ludF9yYW5nZSksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCksIChnc3RfdmFsdWVfdW5pb25faW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcm9tX2xpc3QpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2Nhbl9jb21wYXJlKSwgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgQ2xlYW51cHMsIGFkZCBjb21tZW50cywgcmVtb3ZlIHVubmVlZGVkIGFzc2VydHMuCgoyMDA1LTA4LTE1IDE4OjE1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCjIwMDUtMDgtMTUgMTY6NTc6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbWFkZSBzb21lIGRlZmluZXMgcHJpdmF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCk6CgkgIGRvY3VtZW50ZWQgYWxsIHVuZG9jdW1lbnRlZCBzaWduYWwgaW5saW5lCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICBhZGRlZCBwYWRkaW5nCgoyMDA1LTA4LTE1IDA5OjU2OjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogRG9jdW1lbnQgX3NldF9saW5rX2Z1bmN0aW9uIC0+IF9zZXRfc2V0Y2Fwc19mdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgoyMDA1LTA4LTE0IDIyOjI5OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgYSAuY2hlY2sgdGFyZ2V0IGZvciBydW5uaW5nIHRoZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGNvc21ldGljIGZpeHVwcwoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgY29tcGxldGUgY2hlY2tzIGZvciBnc3RidWZmZXI7IHdvdWxkIGJlIG5pY2UgaWYgSSBjb3VsZCBnZXQgdGhlCgkgIGdjb3Ygc3R1ZmYgdG8gd29yayBzbyBJIGNhbiBzZWUgaWYgSSBhY3R1YWxseSBjb21wbGV0ZWQgZ3N0YnVmZmVyLmMKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgQVNTRVJUX0JVRkZFUl9SRUZDT1VOVAoKMjAwNS0wOC0xMyAxMTo0NTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgcmVtb3ZlIHNwaWRlciBmcm9tIGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgoyMDA1LTA4LTEzIDExOjQzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2dzdHNwaWRlci52Y3Byb2o6CgkgIHJlbW92ZWQgZnJvbSBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGZyb20gSEVBRAoKMjAwNS0wOC0xMyAxMDozMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVEFHX0xBTkdVQUdFX0NPREUgYXMgd2UgaGF2ZSBpbiAwLjgsIGFuZCBkb24ndCBzcGV3IG91dCBhIHdhcm5pbmcgaWYgYSB0YWcgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaXMgcmUtci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWcuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpLCAoZ3N0X3RhZ19yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHRhZy5oOgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3QKCSAgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkCgkgIGlzIHJlLXJlZ2lzdGVyZWQsIHVubGVzcyBpdCBpcyByZS1yZWdpc3RlcmVkIHdpdGggYQoJICBkaWZmZXJlbnQgdHlwZSAoIzMwODQzOCkuCgoyMDA1LTA4LTEyIDE0OjMwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBBZGQgc29tZSBwYXJhZ3JhcGhzIGFib3V0IHN0YXRlIGNoYW5nZXMgaW4gMC45IHRvIHRoZSBQV0cgYW5kIHRoZSBwb3J0aW5nIGd1aWRlLCBpbiBwYXJ0aWN1bGFyIGFib3V0IHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHCgkgIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbmV3IG1lYW5pbmcKCSAgb2YgR1NUX1NUQVRFX1BBVVNFRCBhbmQgaG93IHRvIHdyaXRlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMKCSAgd2l0aCBjb25jdXJyZW50IGFjY2VzcyBieSBtdWx0aXBsZSB0aHJlYWRzIGluIG1pbmQuCgoyMDA1LTA4LTExIDE3OjM5OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcyBhZGRlZCBzaW5jZSB0YWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcwoJICBhZGRlZCBzaW5jZSB0YWdzCgoyMDA1LTA4LTExIDE0OjI0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdHVhbGx5IGltcGxlbWVudCAocmUpc2V0dGluZyB0aGUgdGFyZ2V0IG9uIGEgZ2hvc3RwYWQgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkCgkgIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCjIwMDUtMDgtMTAgMjE6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfY2hlY2tfd2l0aF9wb3B0X3RhYmxlKSwgKGluaXRfcHJlKToKCSAgQ2hlY2sgd2hldGhlciBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMKCSAgc2V0IGFuZCBkaXNhYmxlIGNvbG91cmVkIGRlYnVnIG91dHB1dCBpZiB0aGF0IGlzIHRoZSBjYXNlLgoKMjAwNS0wOC0xMCAxNTowODowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8gc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8KCSAgc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZWZpbmQgZnVuY3Rpb24sIGFuZAoJICB0eXBlZmluZCBmdW5jdGlvbnMgbWF5IGtlZXAgcmVzdWx0cyBmcm9tIGRpZmZlcmVudAoJICBvZmZzZXRzIGFyb3VuZCwgc28gd2UgY2FuJ3QganVzdCB1bnJlZiB0aGUgYnVmZmVyIGZyb20KCSAgdGhlIHByZXZpb3VzIF9wZWVrKCksIGJ1dCBoYXZlIHRvIHNhdmUgYWxsIGJ1ZmZlcnMKCSAgcmV0dXJuZWQgYnkgX3BlZWsoKSB1bnRpbCB0eXBlZmluZGluZyBpcyBkb25lIGFuZCBvbmx5CgkgIGZyZWUgdGhlbSB0aGVuLgoKMjAwNS0wOC0wOSAxNjoyNTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTmV3IG1hY3JvczogR1NUX1JPVU5EX1VQXzIoKSB0aHJvdWdoIEdTVF9ST1VORF9VUF82NCgpLgoKMjAwNS0wOC0wOCAxNjowMToxMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCjIwMDUtMDgtMDggMTU6MDg6MTQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgcHJldHR5IGdvb2QgbWVtbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgoyMDA1LTA4LTA4IDEzOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmg6IEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgRml4IHdyb25nIGluY2x1ZGUgYW5kICdtYWtlIGRpc3RjaGVjaycuCgoyMDA1LTA4LTA4IDEzOjM4OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoKSBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCjIwMDUtMDgtMDggMTM6MzE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgcGFkZGluZyB0byBvdXIgYmFzZSBlbGVtZW50cycgY2xhc3MgYW5kIGluc3RhbmNlIHN0cnVjdHMgYW5kIHRvIEdzdEl0ZXJhdG9yICh5b3Ugd2lsbCBuZWVkIHRvIHJlYnVpbGQgYWxsIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZAoJICB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwbHVnaW5zIGFuZCBhcHBzISkKCjIwMDUtMDgtMDggMTM6MTc6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBNYWtlIGRlZmF1bHQgbWVzc2FnZSBmb3J3YXJkaW5nIGZyb20gY2hpbGQtPmJ1cyB0byBiaW4tPmJ1cwoJICB0aHJlYWRzYWZlIGFuZCBtYWtlIGl0IG5vdCBlbWl0IHdhcm5pbmdzIGlmIHRoZSBwYXJlbnQgaGFzIG5vIGJ1cy4KCjIwMDUtMDgtMDggMTI6MTQ6MjAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyk6CgkgIE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQKCSAgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcyBwbGF5YmFjayBvZiBzZXJpZXMgb2YKCSAgbWVkaWEgZmlsZXMgd2hlbiB2aXN1YWxpemF0aW9uIGlzIGVuYWJsZWQgaW4gVG90ZW0uCgoyMDA1LTA4LTA3IDEzOjM3OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgoyMDA1LTA4LTA1IDE3OjI4OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG1vcmUgZW50cmllcyB0byB0aGUgZG9jcyBhbmQgZml4IHNtYWxsIGRvYy1idWdzCgoyMDA1LTA4LTA1IDEzOjQyOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgoyMDA1LTA4LTA1IDEyOjU5OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBsb25nL3Nob3J0IGRlc2MgZm9yIGNvbnRyb2xsZXIgZG9jcwoJICBhZGRlZCBjb2xsZWN0cGFkcyBiYXNlIGNsYXNzIGRvY3MKCSAgYWRkZWQgY29ycmVjdCBpbmNsdWRlcyB0byBiYXNlLWNsYXNzIGRvY3MKCjIwMDUtMDgtMDUgMTA6MDI6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlciBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlcgoJICBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoKMjAwNS0wOC0wNSAwNjo1NzoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgZml4ZXMKCjIwMDUtMDgtMDUgMDY6NTU6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2l6ZXR5cGUgdGVzdHMgZm9yIGZha2VzcmMKCjIwMDUtMDgtMDQgMTk6NDA6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sCgkgIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmV2ZXJ0IHBhdGNoIHRvIGdzdGJhc2V0cmFuc2Zvcm0gZnJvbSA3LTI4IHJlbW92aW5nCgkgIGRlbGF5X2NvbmZpZ3VyZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKEdzdEJhc2VUcmFuc2Zvcm1DbGFzcy5nZXRfc2l6ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpOgoJICBTZW1hbnRpY3MgY2hhbmdlZCwgc2hvdWxkIHJldHVybiBub3QgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBidWZmZXIKCSAgYnV0IHRoZSBieXRlIHNpemUgb2YgYSBidWZmZXIgd2l0aCBhIGdpdmVuIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6IEJldHRlcgoJICBkZWJ1ZyBvYmplY3QuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpOiBEb24ndCBzZXQgb3V0X3NpemUgaGVyZTogKGluLAoJICBvdXQpIGFyZSBub3QgdGhlIHBhZCBjYXBzIHVudGlsIHNldGNhcHMgZmluaXNoZXMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKTogUHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBmb3IgdGhlCgkgIG5vdC1pbi1wbGFjZSBjYXNlIGFzIHdlbGwuIERlYWwgd2l0aCBjaGFuZ2luZyBmcm9tIGluLXBsYWNlIHRvCgkgIG5vdC1pbi1wbGFjZSB3aXRoaW4gY2FsbGluZyBwYWRfYWxsb2NfYnVmZmVyLiBTdGlsbCBhIGJpdAoJICBjb25jZXJuZWQgYWJvdXQgdGhlIG92ZXJoZWFkIGhlcmUuLi4KCjIwMDUtMDgtMDQgMTE6NTY6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6IEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoKMjAwNS0wOC0wMyAxNjoxMDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIGRpc3RjaGVjayBicmVha2FnZQoKMjAwNS0wOC0wMyAxNTo1OToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyIGZpeGVkIGEgZG9jIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyCgkgIGZpeGVkIGEgZG9jIHR5cG8KCjIwMDUtMDgtMDMgMTM6MzA6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcyBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcyByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaG9ydC9sb25nIGRlc2NyaXB0aW9uIGRvY3MgdG8gYmFzZSBjbGFzc2VzCgkgIGFkZCBwdXNoc3JjIHRvIHRoZSBkb2NzCgkgIHJlbW92ZSBjb25zb2xpZGF0ZWQgZG9jIGZyYWdtZW50cwoKMjAwNS0wOC0wMiAyMTozOTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICB0aGF0IG9uZSB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoYXQgb25lIHRvbwoKMjAwNS0wOC0wMiAyMTozODoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgoyMDA1LTA4LTAyIDIxOjM1OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbC5wYy5pbjoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNvbnRyb2xsZXIgY29kZQoJICByZW1vdmVkIGRwYXJhbSBwYyBmaWxlcwoKMjAwNS0wOC0wMSAyMToxNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbCB0aHJlYWRzIHVwLiBTaHV0IGRvd24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCk6CgkgIEJyb2FkY2FzdCB0aGUgY29uZGl0aW9uIHdoZW4gc2h1dHRpbmcgZG93biwgdG8gbWFrZSBzdXJlIHdlIHdha2UgYWxsCgkgIHRocmVhZHMgdXAuIFNodXQgZG93biBwYWRzIG9uIGZpbmFsaXplLCBmb3Igc2FmZXR5LgoKMjAwNS0wOC0wMSAxNzoyNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEhhbmRsZSBQQVVTRUQtPlJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbiBhZnRlciBuZWdvdGlhdGlvbiBvY2N1cnJlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wMSAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24KCSAgb2NjdXJyZWQgYWxyZWFkeS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCk6CgkgIEV4dHJhIHBpZWNlIG9mIGRlYnVnIGZvciBuZXcgbWVzc2FnZXMuCgoyMDA1LTA4LTAxIDE2OjQzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRwYXJhbXMgZGVwcyBmcm9tIHRoZSBkb2NzCgoyMDA1LTA4LTAxIDE2OjE3OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sL2NvbnRyb2wuYzoKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtX3Ntb290aC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1jb21tb24uaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBsaW5lYXJpbnRlcnAuaDoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL3VuaXRjb252ZXJ0Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWFjdGl2YXRlIGFuZCByZW1vdmUgZHBhcmFtcyAobGliZ3N0Y29udHJvbCkKCjIwMDUtMDgtMDEgMTE6MTU6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoKMjAwNS0wOC0wMSAwOToxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrX3NldF9idWZmZXJfY2FwcyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIgd2hlbiB3ZSd2ZSBmb3VuZCB0aGUgdHlwZS4KCjIwMDUtMDgtMDEgMDg6NTI6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC86IFJlbW92ZSBzb21lIG9sZCBjcnVmdCBmcm9tIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoKMjAwNS0wNy0zMSAxMTo1OTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuaDogRml4IGlubGluZSBkb2NzIGZvciBHc3RQYWRMaW5rUmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTmV3IEFQSTogZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSgpLgoKMjAwNS0wNy0zMCAxNTowMDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1NZU19MQVJHRUZJTEUsIHdoaWNoIHdpbGwgc2V0IF9GSUxFX09GRlNFVF9CSVRTPTY0IGFuZCBfTEFSR0VGSUxFX1NPVVJDRSBpbiBjb25maWcuaCBhcyByZXF1aXJlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NAoJICBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuIERvIG5vdAoJICBleHBvcnQgdGhvc2UgZmxhZ3MgaW4gb3VyIC5wYyBmaWxlcyBhbnkgbG9uZ2VyICgjMTQyMjA5KS4KCSAgUmVtb3ZlIHVudXNlZCBHU1RfRElTQUJMRV9PTUVHQV9DT1RIUkVBRFMgc3R1ZmYuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBSZWRvIHNlZWsvdGVsbCBjYWxscyB3aXRoIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBtaW5kOyBhZGQgc29tZQoJICBkZWJ1Z2dpbmcgbWVzc2FnZXM7IGFkZCBsb2cgbWVzc2FnZSB0aGF0IHRlbGxzIHVzIHdoZW4gbGFyZ2UKCSAgZmlsZSBzdXBwb3J0IGlzIHVuYXZhaWxhYmxlIG9yIG5vdCBlbmFibGVkIGZvciBzb21lIHJlYXNvbi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICBBZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlIGZpbGUgc3VwcG9ydAoJICBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgoyMDA1LTA3LTI5IDE5OjIyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHRlc3QgZm9yIHJlbW92aW5nIGFuIGVsZW1lbnQgd2l0aCBnaG9zdHBhZCBmcm9tIGEgYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgRml4ZWQgdGVzdCBhcyBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgdGhlIHJpZ2h0IHRoaW5nLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLCAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCksIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVzaCksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9maW5hbGl6ZSksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9uZXcpLAoJICAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIENsZWFuIHVwIGdob3N0cGFkcywgcmVtb3ZlIHByb3BlcnRpZXMgZm9yIGludGVybmFsIHN0dWZmLgoJICBNYWtlIHRocmVhZHNhZmUuCgkgIEZpeCByZWZjb3VudGluZy4KCSAgUHJlcGFyZSBmb3Igc3dpdGNoaW5nIHRhcmdldHMsIG5vdCBhbGwgdXNlIGNhc2VzIHdvcmsgeWV0LgoKMjAwNS0wNy0yOSAxOToxOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5raW5nIHBhZHMgd2hpbGUgaG9sZGluZyB0aGUgYmluIExPQ0sgaXMgbm90IGEgZ29vZAoJICBpZGVhLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIE5vIHByb2Igc2V0dGluZyB0ZW1wbGF0ZSBhZnRlciBjcmVhdGluZyB0aGUgcGFkLgoKMjAwNS0wNy0yOSAxNTozNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLAoJICAoZ3N0X2J1c19wZWVrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAocG9sbF9oYW5kbGVyKSwgKHBvbGxfdGltZW91dCksCgkgIChwb2xsX2Rlc3Ryb3kpLCAocG9sbF9kZXN0cm95X3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgZ3N0X2J1c19wb2xsIG1heSBiZSBjYWxsZWQgZnJvbSBvdGhlciB0aHJlYWRzLiBIYW5kbGUKCSAgdGhpcyBuaWNlbHkgYnkgbm90IG1ha2luZyBwb2xsX2RhdGEgZGlzYXBwZWFyIG9mZiB0aGUKCSAgc3RhY2sgb25jZSBnc3RfYnVzX3BvbGwgcmV0dXJucy4KCSAgZ3N0X2J1c19wZWVrIG5vdyBpbmNyZW1lbnRzIHRoZSByZWZjb3VudCBvbiB0aGUgcmV0dXJuZWQKCSAgbWVzc2FnZS4KCjIwMDUtMDctMjkgMTE6Mjk6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlCgkgIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoKMjAwNS0wNy0yOCAxNTozODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkIGVsZW1lbnRzIHRvIGJpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCBjaGVja3MgZm9yIGhpZXJhcmNoeSBjb25zaXN0ZW5jeSB3aGFuIGFkZGluZyBsaW5rZWQKCSAgZWxlbWVudHMgdG8gYmlucy4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IGVsZW1lbnQgc2NoZWR1bGluZyB3aXRob3V0IGJpbi9waXBlbGluZS4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXJzdCBhZGQgZWxlbWVudHMgdG8gYmluLCB0aGVuIGxpbmsuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5rIHBhZHMgZnJvbSBlbGVtZW50cyBhZGRlZC9yZW1vdmVkIGZyb20gYmluIHRvIG1haW50YWluCgkgIGhpZXJhcmNoeSBjb25zaXN0ZW5jeS4KCjIwMDUtMDctMjggMTE6NDk6NTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZW1vdmUgYnJva2VuIGRlbGF5X2NvbmZpZ3VyZSAoZml4ZXMgcmVuZWdvdGlhdGlvbiBvZiBzb2Z0d2FyZQoJICBzY2FsaW5nIHBpcGVsaW5lcyk7IHJlbW92ZSBzb21lIGxlZnRvdmVyIHByaW50Zigpcy4KCjIwMDUtMDctMjggMTE6MjQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgU29tZSB1cGRhdGVzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQ2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpLCAoZ3N0X2VsZW1lbnRfc2VlayksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgU29tZSBtb3JlIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQ2hlY2sgZm9yIGNvcnJlY3QgaGllcmFyY2h5IHdoZW4gbGlua2luZyBwYWRzLiBNb3ZpbmcgdG8KCSAgc3RyaWN0IHJlcXVpcmVtZW50IGZvciBnaG9zdHBhZHMgd2hlbiBsaW5raW5nIGVsZW1lbnRzIGluCgkgIGRpZmZlcmVudCBiaW5zLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ2xlYW4gdXBzLiBBZGRlZCBXUk9OR19ISUVSQVJDSFkgcmV0dXJuIHZhbHVlLgoKMjAwNS0wNy0yOCAxMDozODowMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEJldHRlciBkZWJ1ZyBpZiBubyB0cmFuc2Zvcm0gaXMgcG9zc2libGUuCgoyMDA1LTA3LTI3IDIwOjIyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDogU29tZSBvbGQgZG9jIEkgaGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L25ldHdvcmstdHJhbnNwOgoJICBTb21lIG9sZCBkb2MgSSBoYWQuCgoyMDA1LTA3LTI3IDE5OjAwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEZpeCBzZXJpYWxpemF0aW9uIG9mIHNlZWsgZXZlbnRzLgoKMjAwNS0wNy0yNyAxODo0Nzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgoyMDA1LTA3LTI3IDE4OjMzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBkb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ0hBTkdFUy0wLjk6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgVXNlIGZhc3RlciBjYXN0cy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2Vlayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVXBkYXRlIGdzdF9lbGVtZW50X3NlZWsuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpLCAoX2dzdF9ldmVudF9jb3B5KSwKCSAgKGdzdF9ldmVudF9uZXcpLCAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X2dldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdGFydCksIChnc3RfZXZlbnRfbmV3X2ZsdXNoX3N0b3ApLAoJICAoZ3N0X2V2ZW50X25ld19lb3MpLCAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19maWxsZXIpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLCAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgTWFrZSBHc3RFdmVudCB1c2UgR3N0U3RydWN0dXJlLiBBZGQgcGFyc2luZyBjb2RlLCBtYWtlIHN1cmUgdGhlCgkgIEFQSSBpcyBzdWZmaWNpZW50bHkgZ2VuZXJpYy4KCSAgTWFyayBwb3NzaWJsZSBkaXJlY3Rpb25zIG9mIGV2ZW50cyBhbmQgc2VyaWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksCgkgIChfZ3N0X21lc3NhZ2VfY29weSksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVcGRhdGUgZm9yIG5ldyBldmVudHMuCgkgIENhdGNoIGV2ZW50cyBzZW50IGluIHdyb25nIGRpcmVjdGlvbnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIEV2ZW50IHVwZGF0ZXMuCgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgUmVtb3ZlIGV2ZW50IGNvZGUgZnJvbSB0aGlzIGZpbGUuCgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEV2ZW50IHVwZGF0ZXMuCgoyMDA1LTA3LTI3IDE1OjA1OjQ1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCjIwMDUtMDctMjUgMTI6MzE6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpLCAoZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZSksCgkgIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKToKCSAgSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpCgkgIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByb2JhYmx5IG5lZWRzIHRvIGJlIHNvbWUKCSAgc29ydCBvZiBhIGxhc3QgcmVzb3J0LCBhbmQgdXNlIHByb2ZpbGUtYmFzZWQgZml4YXRpb24gZmlyc3QsIGJ1dAoJICBzaW5jZSB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0LCB0aGlzIGlzIHRoZSBiZXN0IHdlIGhhdmUuIEZpeGVzCgkgIHZpc3VhbGl6YXRpb24gaW4gVG90ZW0uCgoyMDA1LTA3LTIyIDExOjQ3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggaGFuZG9mZiBtYXJzaGFsbC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBXZSdyZSBhIHJlYWwgaW5wbGFjZSBlbGVtZW50LgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvbGF0LmM6IChmYWtlc3JjKSwgKGZha2VzaW5rKSwgKHNpbXBsZSksIChxdWV1ZSksIChtYWluKToKCSAgKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2R5bmFtaWMtcGlwZWxpbmUuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDIuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDMuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3J1bnhtbC5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvc2NoZWQtc3RyZXNzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zZWVraW5nL3NlZWtpbmcxLmM6IChldmVudF9yZWNlaXZlZCksIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzogKGJ1c19oYW5kbGVyKSwgKHRpbWVvdXRfZnVuYyksCgkgIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTMuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNC5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGU1LmM6IChtYWluKToKCSAgRml4IHRoZSB0ZXN0cy4KCjIwMDUtMDctMjEgMTc6MjI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OiBTb21lIHNtYWxsIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgZGlzY29udCB2YWx1ZXMgYXJlIGdpbnQ2NCwgaGFuZGxlIHRoZSBtYXRoIGNvcnJlY3RseS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE1ha2UgdGhlIGJhc2VzcmMgcmVwb3J0IGVycm9yIGlmIHRoZSBzb3VyY2UgcGFkIGlzIG5vdCBsaW5rZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2UgcXVldWUgY29sbGVjdCBkYXRhIGV2ZW4gaWYgdGhlIHNyY3BhZCBpcyBub3QgbGlua2VkLgoJICBTdGFydCBwdXNoaW5nIG91dCBkYXRhIGFzIHNvb24gYXMgaXQgaXMgbGlua2VkLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGdzdF9mbG93X2dldF9uYW1lKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkZWQgZ3N0X2Zsb3dfZ2V0X25hbWUoKSB0byBlYXNlIGVycm9yIHJlcG9ydGluZy4KCjIwMDUtMDctMjAgMTg6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBZGRlZCBhIGJ1bmNoIG9mIG1lc3NhZ2VzIGZvciBhZHZhbmNlZCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOiAoZ3N0X2RwbWFuX3NldF9wYXJlbnQpLAoJICAoZ3N0X2RwbWFuX3N0YXRlX2NoYW5nZWQpOgoJICBGaXggc29tZSBuZXctcGFkIC0+IHBhZC1hZGRlZCBzaWduYWxzCgoyMDA1LTA3LTIwIDE3OjIyOjI3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzLzogRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QgdHlwZSByZW5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBuZXctcGFkL3N0YXRlLWNoYW5nZSBzaWduYWwgcmVuYW1lcyBhbmQgdGhlIEZpeGVkTGlzdAoJICB0eXBlIHJlbmFtZS4KCjIwMDUtMDctMjAgMTc6MTY6NDQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4gc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwgKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsdWVfZ2V0X2dlbmVyaWNfdHlwZSksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX2FycmF5KSwgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfcHJlcGVuZF92YWx1ZSksIChnc3RfdmFsdWVfbGlzdF9hcHBlbmRfdmFsdWUpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUpLCAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYXJyYXlfc3RyaW5nKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2FycmF5KSwgKGdzdF92YWx1ZV9pbnRlcnNlY3RfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4KCSAgc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIGZvcm1hdCBhbmQKCSAgZmxhZ3MgYXMgdGhlaXIgb3duIGFyZ3VtZW50cyBpbiBnc3RfZWxlbWVudF9zZWVrKCkgKHNob3VsZCBpbXByb3ZlCgkgICJiaW5kZWFiaWxpdHkiKSwgcmVtb3ZlIGZ1bmN0aW9uIGdlbmVyYXRvcnMgc2luY2UgdGhleSBkb24ndCB3b3JrCgkgIHVuZGVyIGEgd2hvbGUgYnVuY2ggb2YgY29tcGlsZXJzICh0aGV5IHdlcmUgZGVwcmVjYXRlZCBhbHJlYWR5CgkgIGFueXdheSkuCgoyMDA1LTA3LTIwIDE3OjE1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBwYXRjaCBmcm9tIEVkZ2FyZCB0byBwcm9wZXJseSBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCjIwMDUtMDctMjAgMTY6MjA6MzkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RpbmZvLio6IEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0ciksCgkgIChfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIpOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoKMjAwNS0wNy0yMCAxMTozNToxOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkIF9uZXdfY3VzdG9tLCBtYWtlIF9uZXdfYXBwbGljYXRpb24gYSBtYWNybyB0byBfbmV3X2N1c3RvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgoyMDA1LTA3LTIwIDEwOjU4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgIFNvbWUgY2xlYW51cHMuCgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUxLmM6IChtYWluKToKCSAgTWFrZSBhIHRocmVhZCB0ZXN0IGNvbXBpbGUgYW5kIHJ1bi4uLiB2ZXJ5IHNpbGx5Li4KCjIwMDUtMDctMjAgMTA6MTM6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYKCSAgZWxlbWVudHMuCgoyMDA1LTA3LTIwIDA4OjI5OjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IERvY3VtZW50IGJhc2UgY2xhc3NlcywgdXBkYXRlIHNlY3Rpb25zIG9mIG4tdG8tMSBhbmQgMS10by1uIChtdXhlciwgZml4IHNvbWUgY29kZSBleGFtcGxlcyBhbmQgbGlua3MgYW5kIHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b24ueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItb25ldG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsCgkgIGRlbXV4ZXIpLCByZW1vdmUgbi10by1uICh3YXMgbmV2ZXIgd3JpdHRlbiksIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMKCSAgYW5kIGxpbmtzIGFuZCB1cGRhdGUgdGhlIHBvcnRpbmcgc2VjdGlvbiB0byBpbmNsdWRlIGFsbCB0aGlzLgoKMjAwNS0wNy0xOSAxNzo0NjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS4qOiBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBtb3JlIGludGVsbGlnZW50bHkgdXBzdHJlYW0gYW5kIG91dHB1dCBhbiBFUlJPUi9FT1Mgd2hlbiBzdHJlYW1pbmcgc3RvcHBlZCBkdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQKCSAgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHVlIHRvIGZhdGFsIGVycm9yLgoKMjAwNS0wNy0xOSAxNDo1Mjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uJ3QgYmxvY2sgZm9yZXZlciBmb3IgdGhlIHN0YXRlIGNoYW5nZSB0byBjb21wbGV0ZSwgdGhlIHBpcGVsaW5lIGFscmVhZHkgZGlkIHdpdGggYSBzZW5zaWJsZSB0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZQoJICBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGltZW91dC4KCjIwMDUtMDctMTkgMTM6NDM6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UgZ290IGRlYWN0aXZhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTWFrZSBzdXJlIHdlIG5ldmVyIGNhbGwgdGhlIGNyZWF0ZSBmdW5jdGlvbiBpcyB3ZQoJICBnb3QgZGVhY3RpdmF0ZWQuCgoyMDA1LTA3LTE5IDExOjI3OjA3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoKMjAwNS0wNy0xOSAxMDo0MDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IEF0dGVtcHQgdG8gc29sdmUgYnVnICMxNzI4MTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoKMjAwNS0wNy0xOSAwOToxOTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT25seSB1cGRhdGUgdGhlIHNlZWtpbmcgdmFsdWVzIHdoZW4gd2UgYXJlIG5vdAoJICBidXN5IHN0cmVhbWluZy4KCjIwMDUtMDctMTggMTc6NDM6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9vcHMsIGlnbm9yZSB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfcHVzaF9ldmVudCBoZXJlLgoKMjAwNS0wNy0xOCAxNzoxMjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgZGlzY29udCBldmVudCBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uLCBhcyBwYWRzIGFyZW4ndCBhY3RpdmF0ZWQgeWV0IGluIHRoZSBhY3RpdmF0ZV9wdXNoIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcwoJICBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoYW5kbGVyLgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgZWxlbWVudCBuYW1lLgoKMjAwNS0wNy0xOCAxNDo0NzozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6IFVzZSBBU19MSUJUT09MX1RBR1MuCgoyMDA1LTA3LTE4IDEyOjU4OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCjIwMDUtMDctMTggMTI6NDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIFJlbW92ZWQgU2NoZWR1bGVyL01hbmFnZXIgZnJvbSBlbGVtZW50cy4KCSAgUmVtb3ZlZCBnc3R0eXBlcy5oLCByZWFycmFuZ2VkIGluY2x1ZGVzLgoJICBSZW1vdmVkIGRlcGVuZGVuY3kgcGFkPC0+ZWxlbWVudCwgZWxlbWVudDw+cGlwZWxpbmUsIGFuZAoJICB2YXJpb3VzIG90aGVycywgIGZpeCBpbmNsdWRlcy4KCSAgaW1wbGVtZW50IGdzdF9wYWRfZ2V0X3BhcmVudCgpIHdpdGggZ3N0X29iamVjdF9nZXRfcGFyZW50KCkKCSAgTWFrZSBHc3RUYXNrIHNlZmNvbnRhaW5lZC4KCSAgRml4IF9nZXRfc3RhdGUoKSBvbiBHc3RCaW4sIGl0IGRpZCBub3QgcmV0dXJuIEFTWU5DIHdpdGggYSAwCgkgIHRpbWVvdXQuCgkgIEZpeCBlbmRsZXNzIGxvb3AgaW4gaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYy4KCjIwMDUtMDctMTggMDk6MjI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgb2xkIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXJjaC5oOgoJICBSZW1vdmUgb2xkIGZpbGUuCgoyMDA1LTA3LTE4IDA4OjUxOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBObyBtb3JlIGNvdGhyZWFkcy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgTm8gbW9yZSBjb3RocmVhZHMuaAoKMjAwNS0wNy0xOCAwODo0MzoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9jb3RocmVhZHMuKjogTGV0J3MgcmVtb3ZlIHRoZXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvY290aHJlYWRzLmM6CgkgICogZ3N0L2NvdGhyZWFkcy5oOgoJICBMZXQncyByZW1vdmUgdGhlc2UuCgoyMDA1LTA3LTE4IDA4OjI4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGluIHRoZSB3b3Jrcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfcG9sbCk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgU2V0IFNSQyB0byBOVUxMLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwKCSAgKGdzdF9wYWRfZ2V0X3BhcmVudF9lbGVtZW50KSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgX2dldF9wYXJlbnRfZWxlbWVudCgpIHRvIGdldCBhIHBhZHMgcGFyZW50IGFzIGFuIGVsZW1lbnQuCgoyMDA1LTA3LTE3IDIyOjQ0OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBSZW1vdmUgYm9ndXMgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZW1vdmUgYm9ndXMgdGVzdC4KCjIwMDUtMDctMTcgMjI6MjY6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWZjb3VudGluZyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2FwcyksIChnc3RfYmFzZV9zaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2RlYWN0aXZhdGUpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICBGaXggbG9naWMgZm9yIHJldHVybmluZyBBU1lOQyB3aGVuIG5vdCBwcmVyb2xsZWQuCgoyMDA1LTA3LTE3IDIyOjIyOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRml4IG5hc3R5IHJlZmNvdW50IGJ1Zy4KCjIwMDUtMDctMTYgMTk6MjU6NDEgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTW92ZWQgZmRzcmMgdG8gZ3N0LXBsdWdpbnMuCgoyMDA1LTA3LTE2IDE1OjQzOjEwICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgoyMDA1LTA3LTE2IDE1OjQxOjA0ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYyBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaCBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTYgUGhpbGlwcGUgS2hhbGFmIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYwoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oCgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgUG9ydGVkIGZkc3JjIHRvIDAuOS4KCjIwMDUtMDctMTYgMTQ6NTI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggY29tcGlsZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBGaXggY29tcGlsZSBlcnJvci4KCjIwMDUtMDctMTYgMTQ6NDE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTdG9yZSBhbmQgdXNlIGRpc2NvbnQgdmFsdWVzIHdoZW4gc3luY2luZyBidWZmZXJzIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQKCSAgaW4gZGVzaWduIGRvY3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBQdXNoIGRpc2NvbnQgZXZlbnQgd2hlbiBzdGFydGluZy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGNsZWFudXBzIGluIGJhc2VfdGltZSAgZGlzdHJpYnV0aW9uLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKSwKCSAgKGdzdF9lbGVtZW50X2dldF9iYXNlX3RpbWUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGRlZCBtZXRob2RzIGZvciB0aGUgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoJICBTb21lIE1UIGZpeGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNVCBmaXhlcy4KCSAgSGFuZGxlIHNlZWtpbmcgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2MsIHJlbW92ZSBzdHJlYW1fdGltZQoJICBoYWNrLgoJICBDbGVhbnVwcyBjbG9jayBhbmQgc3RyZWFtX3RpbWUgc2VsZWN0aW9uIGNvZGUuIEFkZGVkIGFjY2Vzc29ycwoJICBmb3IgdGhlIHN0cmVhbV90aW1lLgoKMjAwNS0wNy0xNiAxNDowNjoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6IFVzZSB0aGUgbWFnaWMgd29yZC4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoKMjAwNS0wNy0xNiAxMzo1MDozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogTWFrZSBlbGVtZW50cyBzaWxlbnQgYXMgdGhlIGRlZXBfbm90aWZ5IHJlZnMgdGhlIHBhcmVudCwgd2hpY2ggbWlnaHQgbWFrZSB0aGUgdGVzdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZQoJICBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IGhvbGQgdGhlIGxvY2sgZm9yIHRvbyBsb25nLgoKMjAwNS0wNy0xNiAxMjozMzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlciBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBEb24ndCB1bnJlZiB0aGUgY2FwcyB3ZSBwYXNzZWQgdG8gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIGFmdGVyCgkgIHBhc3NpbmcgdGhlbS4gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIHdpbGwgZG8gdGhhdCBmb3IgdXMuCgoyMDA1LTA3LTE1IDE2OjEwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8gKCMxNTczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8KCSAgKCMxNTczMTEpLgoKMjAwNS0wNy0xNSAxNDo1OToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCk6IFdyaXRlIG91ciBvd24gbWFyc2hhbGxpbmcgZnVuY3Rpb24gZm9yIHRoZSBoYW5kb2ZmIHNpZ25hbC4gUHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIKCSAgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByb3Blcmx5IHR5cGUgdGhlCgkgIGJ1ZmZlciBhcyBhIGJ1ZmZlci4gRml4ZXMgc29tZSB3YXJuaW5ncy4gU2hvdWxkIGRvIGEgbW9yZSBnZW5lcmFsCgkgIHNvbHV0aW9uLgoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOiBQbHVnIGludG8gdGhlIHJpZ2h0IG1hcnNoYWxsZXIuCgoyMDA1LTA3LTE1IDEzOjQ0OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZWQgZG9jcywgbW9zdGx5IERJU0NPTlQgcmVsYXRlZC4KCjIwMDUtMDctMTUgMTI6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDogcy9HU1RfUEFEX0xJTktfUkVGVVNFRC9GQUxTRS8gaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgIHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgoyMDA1LTA3LTE1IDExOjA1OjUyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoKMjAwNS0wNy0xNSAxMTowNDoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIE5vcm1hbGl6ZSBhbmQgdHJ1bmNhdGUgY2FwcyBiZWZvcmUgZml4YXRpb24uCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jIChnc3RfY2Fwc190cnVuY2F0ZSk6IE5ldyBmdW5jdGlvbiwgZGVzdHJ1Y3RpdmVseQoJICBkaXNjYXJkcyBhbGwgYnV0IHRoZSBmaXJzdCBzdHJ1Y3R1cmUgZnJvbSBpdHMgYXJndW1lbnQuCgoyMDA1LTA3LTE1IDEwOjQxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBDaGFuZ2VkIEFQSSBhIGJpdCwgc3ViY2xhc3NlcyBoYXZlIHRvIHdyaXRlIGludG8gYSBidWZmZXIKCSAgcHJvdmlkZWQgYnkgdGhlIGJhc2UgY2xhc3MuCgkgIE1vcmUgZGVidWcgaW5mbyBpbiBuZWdvIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBQb3J0IHRvIG5ldyBiYXNlIGNsYXNzLgoKMjAwNS0wNy0xNSAxMDozMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFRvdGFsbHkgZHVtcCBtZXNzYWdlcyBpbiAtbGF1bmNoIHdpdGggdGhlIC1tIG9wdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIEZpeCBtZXNzYWdlIG5hbWUgZm9yIFN0YXRlIG1lc3NhZ2VzLAoKMjAwNS0wNy0xNCAxODo0NTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgoyMDA1LTA3LTE0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogUmVtb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBEZWZpbmUgZXJyb3IgZm9yIHN0cmVhbSBzdG9wcGVkLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpOgoJICBEbyBwcm9wZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2dldF9yYW5nZSk6CgkgIEJldHRlciByZXR1cm4gdmFsdWVzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgUmVvcmdhbmlzZSByZXR1cm4gdmFsdWVzLCBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIGZhdGFsIGVycm9ycy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFJldHVybiBwcm9wZXIgR3N0Rmxvd1JldHVybiB2YWx1ZXMsCgoyMDA1LTA3LTE0IDA5OjM1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbGluaW50LnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbWFuLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCjIwMDUtMDctMTMgMTg6Mjk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZml4IGRlYnVnIGlmZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGVidWcgaWZkZWYKCjIwMDUtMDctMTMgMTY6MjY6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfc3RhcnQpOiBQb3N0IGFuIGVycm9yIGlmIHRoZQoJICBzb3VyY2UgY291bGRuJ3QgbmVnb3RpYXRlLgoKMjAwNS0wNy0xMyAxMzoxNDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZyb20gRWRnYXJkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoKMjAwNS0wNy0xMyAxMzoxMDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHR3byB0ZXN0c3VpdGUgYXBwcyBvdmVyIHRvIHRoZSBjaGVjayBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NhcHMvdmFsdWVfY29tcGFyZS5jOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2ludGVyc2VjdC5jOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgoyMDA1LTA3LTEyIDE3OjE3OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEFkZGVkIG1vcmUgZGVidWcgaW5mbyBpbiB0aGUgbmVnb3RpYXRlIHByb2Nlc3MuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUHJlcGFyZSBmb3Igc2VnbWVudCBwbGF5YmFjay4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTb21lIG1vcmUgZG9jcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTlVMTCBwaXBlbGluZSBvbiBlcnJvcnMuCgoyMDA1LTA3LTEyIDE3OjA0OjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2NvcHkpOiBDb3B5IHRoZSBidWZmZXIgd2hldGhlciBvciBub3QgaXQgY29tZXMgZnJvbSBhIG1hbGxvYyByZWdpb24uIE1ha2Ugc3VyZSBvdXIgY29weSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3IKCSAgbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgZ2V0cyBmcmVlZC4KCjIwMDUtMDctMTIgMTY6Mjg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcmVmY291bnRpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMKCjIwMDUtMDctMTIgMTM6MjY6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgbGVhayBjaGVja2luZyA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCjIwMDUtMDctMTIgMTI6MjA6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBwZXItdGVzdCB2YWxncmluZCB0YXJnZXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2RhdGFfcHJvdG9jb2xfc3VpdGUpLCAobWFpbik6CgkgIGNsZWFuIHVwCgoyMDA1LTA3LTEyIDA5OjQxOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgICogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoY2hhaW5fZnVuYyksIChldmVudF9mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGZha2VzcmNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCB0ZXN0IGxlYWtzCgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSk6CgkgIGZpeCB0aGUgc3RhdGljIG11dGV4IGxlYWsKCjIwMDUtMDctMTEgMTg6NDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgdGVzdCByZWZjb3VudCBvZiBkZXNlcmlhbGl6ZWQgYnVmZmVyLCBmb3VuZCBhIGxlYWsKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICBhZGQgbWluaW9iamVjdCB0byBkb2NzCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgYWRkIHNvbWUgZG9jcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCk6CgkgIGZpeCBhIGhhcmQtdG8tZmluZCBpbnZhbGlkIHdyaXRlIGZvciBvbmUgb2YgdGhlIHRlc3RzCgkgIGZpeCBhIGxlYWsgZm9yIGRlc2VyaWFsaXplZCBidWZmZXJzCgoyMDA1LTA3LTExIDE1OjQxOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgYXMgcGFydCBvZiBtYWtlIGNoZWNrIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgoyMDA1LTA3LTExIDE1OjIyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc3BlY2lmeSB0b29sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzcGVjaWZ5IHRvb2wKCjIwMDUtMDctMTEgMTU6MTg6MzIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cyBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cwoJICBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYWN0aXZhdGlvbiwgbG9vcCgpIGFuZAoJICBnZXRyYW5nZSgpIGZ1bmN0aW9ucyBhbmQgYSBiaXQgbW9yZS4gUmVtb3ZlIG9sZCBjb21tZW50cyBwb2ludGluZwoJICB0byBsb29wLWZ1bmN0aW9ucy4KCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEFkZCBsb29wL2dldHJhbmdlIGV4YW1wbGVzLgoKMjAwNS0wNy0xMSAxNToxMDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdmFsZ3JpbmQgdW5pdCB0ZXN0cyBhcyBjaGVjay1sb2NhbDsgYWRkIGdzdF9kZWluaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgoyMDA1LTA3LTExIDE1OjA2OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIGJhc2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgoyMDA1LTA3LTEwIDEyOjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIG1vcmUgbWFjcm8gc3BsaXR0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoKMjAwNS0wNy0xMCAwMDowNzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBhZGQgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICBhZGQgZGVidWcKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApOgoJICBmaXggYnVzIGxlYWtzCgoyMDA1LTA3LTA5IDIzOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggY2FwcyBsZWFrIGluIGJvdGggY2FzZXMKCjIwMDUtMDctMDkgMjM6NDg6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTA3LTA5IDIzOjQ3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaXggYSBjYXBzIGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGNhcHMgbGVhawoKMjAwNS0wNy0wOSAyMzozMzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19maW5hbGl6ZSk6CgkgIGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6CgkgIGFkZCBkZWJ1ZwoKMjAwNS0wNy0wOSAyMzoxNToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGRvbid0IGdldCBzcmMgZm9yIGFsbCBtZXNzYWdlczsgb25seSBmb3IgZW9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoKMjAwNS0wNy0wOSAyMjo1NDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgbW9yZSBkZWJ1ZwoKMjAwNS0wNy0wOSAxNjozNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svZ3N0Y2hlY2suYzoKCSogY2hlY2svZ3N0Y2hlY2suaDoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeQoJICB1c2UgR1NUX1NUQVJUX1RFU1Qgbm93LCBzbyB3ZSBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA3LTA5IDE1OjE4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogYWRkIHRlc3QgZm9yIHN0YXRlIGNoYW5nZSBtZXNzYWdlIG9uIGEgYmluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChTVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgYWRkIGFub3RoZXIgdGVzdAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpOgoJICAqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSAgdmFyaW91cyBkZWJ1Z2dpbmcgYWRkaXRpb25zIGFuZCBjbGVhbnVwcwoKMjAwNS0wNy0wOCAxNjo0MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoKMjAwNS0wNy0wOCAxNjoxNjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiBwbHVnIG1vcmUgbGVha3MuICBBIHNpbXBsZSBnc3RfaW5pdCgpIG5vdyBpcyBsZWFrZnJlZSwgeWF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCjIwMDUtMDctMDggMTY6MDg6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICBwbHVnIGFub3RoZXIgbWVtbGVhayBpbiByZWdpc3RyeSBsb2FkaW5nIC0gSSBoYXZlIE5PIGlkZWEgd2h5IHRoaXMgd2FzIHJldHVybmluZyBhIEdzdFBsdWdpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCjIwMDUtMDctMDggMTQ6NTA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoKMjAwNS0wNy0wOCAxNDozOTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHJpZ2h0IHZhcmlhYmxlCgoyMDA1LTA3LTA4IDE0OjM1OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgY2hhbmdlIHRvIEVSUk9SX0NGTEFHUwoKMjAwNS0wNy0wOCAxNDowMTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUgYWJvdXQgZXJyb3IgQ0ZMQUdTCgkgICogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgY29tbWVudCBvdXQgc29tZSB1bnVzZWQgY29kZQoJICAqIGdzdC9nc3QuYzogKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9wYWRfdGVtcGxhdGUpLAoJICAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBzb21lIG1lbWxlYWtzCgoyMDA1LTA3LTA3IDE1OjA3OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIGxpYnMgdXNlIHNhbWUgZ3RrLWRvYy5tYWsKCjIwMDUtMDctMDcgMTQ6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCBndGstZG9jCgoyMDA1LTA3LTA3IDE0OjAxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IFVubG9jayB0aGUgU1RSRUFNX0xPQ0sgY29tcGxldGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Rpc3Bvc2UpOgoJICBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgoyMDA1LTA3LTA3IDEzOjE0OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNy0wNyAxMzoxMjo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTE6NTk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCjIwMDUtMDctMDcgMTE6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcgZGVidWcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2hhdmVfcGVuZGluZyk6IFJlbW92ZSBpbnRlbnNlbHkgaXJyaXRhdGluZwoJICBkZWJ1ZyBtZXNzYWdlLgoKMjAwNS0wNy0wNyAxMDowMzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgYW5vdGhlciBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGRvYyBmaXgKCjIwMDUtMDctMDcgMDk6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvQlVJTEQ6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtb3JlIG1hY29zeCBtYWRuZXNzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCjIwMDUtMDctMDcgMDg6NDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogUmVtb3ZlIG9sZCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlIG9sZCB0eXBlcwoKMjAwNS0wNy0wNyAwODoxNjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfbmVnb3RpYXRlKToKCSAgQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoKMjAwNS0wNy0wNiAxNzoxNzo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBub3RlcyB0byByZWZsZWN0IHRoZSBtb3ZlbWVudCBvZgoJICByZXNwb25zaWJpbGl0eSBmb3IgYnVzIGhhbmRsaW5nIGZyb20gR3N0UGlwZWxpbmUgdG8KCSAgR3N0QmluCgoyMDA1LTA3LTA2IDE2OjQ1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgoyMDA1LTA3LTA2IDE2OjIyOjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4YW1wbGVzLzogVXBkYXRlIGEgY291cGxlIG9mIHRoZSBleGFtcGxlcyB0byB3b3JrIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOiAobWFpbik6CgkgIFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb25zIGFuZCBleHRyYSBkZWJ1Zy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwgKGlzX2VvcyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIE1vdmUgdGhlIGJ1cyBoYW5kbGVyIGZvciBjaGlsZHJlbiB0byB0aGUgR3N0QmluLCBhbmQgY3JlYXRlIGEKCSAgc2VwYXJhdGUgYnVzIGZvciByZWNlaXZpbmcgbWVzc2FnZXMgZnJvbSBjaGlsZHJlbiB0byB0aGUgb25lIHRoZQoJICBidXMgc2VuZHMgJ3Vwd2FyZHMnIG9uLgoKMjAwNS0wNy0wNiAxMzoyNToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0Y2FwcyksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNYWtlIGJhc2VzcmMgbmVnb3RpYXRlLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCBmYWlscyBpbiBiYXNlc2luay4KCSAgVXBkYXRlIFJFQURNRS4KCjIwMDUtMDctMDYgMTM6MjA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZml4YXRlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpeGF0ZV9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgQ2xlYW4gdXAgYWNjZXB0Y2Fwcy4KCjIwMDUtMDctMDYgMTI6MjQ6NTAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1maWx0ZXJmYWN0b3J5LnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBSZW1vdmUgbmV2ZXItd3JpdHRlbiBmaWx0ZXItZmFjdG9yeSBjaGFwdGVyOyBJJ2xsIGFkZCB0aGUgdmFyaW91cwoJICBiYXNlIGNsYXNzZXMgdG8gcGFydCA0ICgib3RoZXIgZWxlbWVudCB0eXBlcyIpIGxhdGVyIG9uLgoKMjAwNS0wNy0wNiAxMjoxODowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZSBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgYSBjaGFwdGVyIG9uIGNhcHMgbmVnb3RpYXRpb24sIHNpbXBsaWZ5IHRoZSBvcmlnaW5hbCBjb2RlCgkgIHNhbXBsZXMgYSBiaXQgdy5yLnQuIGNhcHMgbmVnb3RpYXRpb24sIGFkZCBsaW5rIHRvIHRoZSBhZHZhbmNlZAoJICBzZWN0aW9uLiBBZGQgYSBidW5jaCBvZiBleGFtcGxlcyBzaG93aW5nIGRpZmZlcmVudCB1c2UgY2FzZXMgb2YKCSAgZGlmZmVyZW50IHR5cGVzIG9mIGNhcHMgbmVnb3RpYXRpb24uIFVwc3RyZWFtIHJlbmVnb3RpYXRpb24gaXNuJ3QKCSAgZnVsbHkgZG9jdW1lbnRlZCB5ZXQgc2luY2Ugbm9ib2R5IGtub3dzIGhvdyB0aGF0IHdvcmtzLgoKMjAwNS0wNy0wNiAxMTozNDowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIHBjIGZpbGUgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBjIGZpbGUgY2xlYW51cHMKCjIwMDUtMDctMDYgMTE6MzE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgaWYgcGFkIGhhcyBubyBwYXJlbnQsIHJldHVybiBOVUxMIGFzIGxpc3Qgb2YgaW50ZXJuYWwgbGlua3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgoyMDA1LTA3LTA1IDE2OjM4OjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCjIwMDUtMDctMDUgMTU6Mjg6MTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNy0wNSAxMjoxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiZXR0ZXIgcmVwb3J0IGdlbnJhdGlvbiB0YXJnZXQgKGxjb3YgbmVlZHMgYSBwYXRjaCkKCjIwMDUtMDctMDUgMTA6NTg6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cywgdGVzdHN1aXRlOiBOdWxsIGlmIHdlIGdvdCBpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCjIwMDUtMDctMDUgMTA6MjA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBQb3J0ZWQgZGF0YXByb3RvbCB0byAwLjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3ZhbGlkYXRlX3BhY2tldCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBBZGRlZCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA3LTA1IDA5OjM1OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogRGVmYXVsdCB0byByZXR1cm5pbmcgVFJVRSBmb3IgdGhlIGNhc2Ugd2hlbiB0cmFuZm9ybV9jYXBzIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByZXR1cm5zCgkgIGEgZml4ZWQgY2FwcywgbGlrZSBmb3IgaWRlbnRpdHkgb3Igdm9sdW1lLgoKMjAwNS0wNy0wNSAwODo0Nzo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svOiBBcHBsaWNhdGlvbiBtZXNzYWdlIEFQSSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYyAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmMgKFNUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKGdvdF9oYW5kb2ZmKTogQXBwbGljYXRpb24KCSAgbWVzc2FnZSBBUEkgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBNb3JlCgkgIGxvZ2ljIHdlYWtzIGhlcmU6IGFsd2F5cyBydW4gdHJhbnNmb3JtX2NhcHMsIHRyeWluZyBwYXNzdGhyb3VnaAoJICBvcGVyYXRpb24gb25seSBpZiB0aGUgb3JpZ2luYWwgY2FwcyBpbnRlcnNlY3RzIHdpdGggdGhlIHRyYW5zZm9ybS4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKTogRGVidWcKCSAgc291cmNlIGFuZCBzaW5rIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlciBjYXBzIHdpdGggdGhlIHBhZCB0ZW1wbGF0ZSBiZWZvcmUgZ29pbmcgaW50bwoJICB0cmFuc2Zvcm1fY2Fwcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6IE1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmggKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IFRha2UgYSBHc3RPYmplY3QKCSAgc3JjIGFyZ3VtZW50LgoKMjAwNS0wNy0wNCAxNTowODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R1dGlscy4qOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcgaW4gYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAoZ3N0X3BhZF9hZGRfKl9wcm9iZSk6IG5vdyByZXR1cm5zIHRoZSBzaWduYWwgaWQgZm9yIGJldHRlciB3cmFwcGluZwoJICBpbiBiaW5kaW5ncy4KCjIwMDUtMDctMDQgMDk6MjI6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogT25seSBzZXQgZXhwbGljaXQgY2FwcyBvbiBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCjIwMDUtMDctMDEgMTY6NDY6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IENvbW1lbnRhcnkgdXBkYXRlLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChQUk9QX0RVUExJQ0FURSk6IEdvbmUgZGFkZHkgZ29uZS4KCSAgRGlkbid0IHJlYWxseSBtYWtlIHNlbnNlLCBub3QgaW1wbGVtZW50YWJsZSB3aXRoIGJhc2V0cmFuc2Zvcm0sCgkgIGV0Yy4KCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOiBVbnJlZiBpbmJ1ZiB2aWEgbWFrZV93cml0YWJsZS4gRmVlYmxlCgkgIGF0dGVtcHQgYXQgaW1wbGVtZW50aW5nIHRoZSBzeW5jIHByb3BlcnR5LCBuZWVkcyBhbiB1bmxvY2sgbWV0aG9kLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgTmV3IGZ1bmMsIGJ5IGRlZmF1bHQgcmV0dXJucyB0aGUgc2FtZSBjYXBzICh0aGUgaWRlbnRpdHkKCSAgdHJhbnNmb3JtYXRpb24pLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBVc2VzIHRyYW5zZm9ybV9jYXBzIHRvIHJldHVybgoJICBzb21ldGhpbmcgc2Vuc2libGUuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IENvbXBsaWNhdGVkIGxvZ2ljIHRvIGdldCBjYXBzIG9uCgkgIGJvdGggcGFkcywgZXZlbiBpZiB0aGV5IGFyZSBkaWZmZXJlbnQsIGFuZCB0byBjYWxsIHNldF9jYXBzIG9uY2UKCSAgZm9yIGV2ZXJ5IHRpbWUgYm90aCBwYWRzIGdldCB0aGVpciBjYXBzIHNldC4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKTogR2l2ZSB0aGUgcmVmIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24uIEFsbG93cyBpbi1wbGFjZSBtb2RpZmljYXRpb24gb2YgdGhlIGJ1ZmZlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKHRyYW5zZm9ybV9jYXBzKTogTmV3IGNsYXNzIG1ldGhvZC4KCSAgR2l2ZW4gY2FwcyBvbiBvbmUgc2lkZSwgd2hhdCBjYW4gSSBkbyBvbiB0aGUgb3RoZXIuCgkgIChzZXRfY2Fwcyk6IFRha2UgdHdvIGNhcHMsIG9uZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBlbGVtZW50LgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGFuZ2UgcHJvdG90eXBlIHRvIG1vZGlmeQoJICBjYXBzIGluIHBsYWNlLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBjYW4gY2hlY2sgdGhlIG11dGFiaWxpdHkgb2YKCSAgdGhlIGNhcHMsIGFuZCBhIGdvb2QgaWRlYSBiZWNhdXNlIGZpeGF0ZSBmdW5jdGlvbnMgYXJlIGp1c3QgY2FsbGVkCgkgIGFzIGEgbWF0dGVyIG9mIGxhc3QgcmVzb3J0LiAoTm90IGFjdHVhbGx5IGltcGxlbWVudGVkLikKCSAgKGdzdF9wYWRfc2V0X2NhcHMpOiBJZiB0aGUgY2FwcyB3ZSdyZSBzZXR0aW5nIGlzIGFjdHVhbGx5IHRoZSBzYW1lCgkgIGFzIHRoZSBleGlzdGluZyBwYWQgY2FwcywganVzdCB1cGRhdGUgdGhlIHBvaW50ZXIgd2l0aG91dCBjYWxsaW5nCgkgIHNldGNhcHMuIEFzc2VydCB0aGF0IGNhcHMgaXMgZWl0aGVyIE5VTEwgb3IgZml4ZWQsIGFzIHBlciB0aGUKCSAgZG9jcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogVXBkYXRlIGZvciBmaXhhdGUgY2hhbmdlcy4KCjIwMDUtMDctMDEgMTQ6MzY6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBQdXQgdGhlIG1pbmlfb2JqZWN0IGludG8gR1ZhbHVlIGFzIGEgbWluaV9vYmplY3QsIG5vdCBhIGdwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wMiAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKToKCSAgUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LAoJICBub3QgYSBncG9pbnRlci4KCjIwMDUtMDctMDEgMTQ6MjA6MTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbTogRml4IGJ1aWxkYm90IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZGJvdCBhZ2Fpbi4KCjIwMDUtMDctMDEgMTM6MDE6NDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgZXh0cmEgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBBZGQgZXh0cmEgY2hlY2suCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QuCgoyMDA1LTA3LTAxIDEyOjQzOjAzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBFbmFibGUgYnVpbGRpbmcgdGhlIFBXRyBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIEFkZCBVUkkgaW50ZXJmYWNlIHN0dWIuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWF1dG9wbHVnZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBBZGQgcG9ydGluZyBndWlkZSAobW9zdGx5IHN0dWJzKSwgcmVtb3ZlIGF1dG9wbHVnZ2luZyAoc2VlIEFETSkuCgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBVcGRhdGUgdGhlIGJ1aWxkaW5nLSoueG1sIHBhcnRzIGZvciAwLjkgY2hhbmdlcy4gQWxsIGV4YW1wbGVzCgkgIGNvZGUgYmxvY2tzIGNvbXBpbGUgaW4gZXhhbXBsZXMvcHdnLyouCgoyMDA1LTA2LTMwIDEyOjMyOjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzCgkgIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWVudGlvbiBrbXBsYXllciBhbmQKCSAga2FmZmVpbmUgc2luY2UgdGhleSBoYXZlIGEgd29ya2luZyBHU3RyZWFtZXIgYmFja2VuZCBpbiB0aGUgS0RFCgkgIHNlY3Rpb24uCgoyMDA1LTA2LTMwIDEyOjI2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCjIwMDUtMDYtMzAgMTI6MTg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBDSEFOR0VTLTAuOSBkb2MsIHVwZGF0ZWQgc3RhdHVzIG9mIG90aGVyIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW1vdmUgImhtbSIgbWFjcm8KCjIwMDUtMDYtMzAgMTI6MTQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCjIwMDUtMDYtMzAgMTE6Mzk6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOiBQcm94eSBhY3RpdmF0ZV9wdXNoIGRvd24gdG8gdGhlIGludGVybmFsIHBhZCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkKCSAgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCjIwMDUtMDYtMzAgMTA6NTk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzogU29tZSBkb2N1bWVudGF0aW9uIGZpeGVzICgjMzA3Mzk0IGFuZCAjMzA3Mzk3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgoyMDA1LTA2LTMwIDEwOjIzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0zMCAxMDoyMjoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ28gYmFjayB0byB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3Igbm93CgoyMDA1LTA2LTMwIDEwOjEwOjAwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6ICBSb25hbGQgUy4gQnVsdGplICA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KToKCSAgRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoKMjAwNS0wNi0zMCAwOTo1OToyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IGZha2VzcmMgZXhhbXBsZSB0byBjb21waWxlOyBkb2Vzbid0IHdvcmssIGJ1ZyBzb21ld2hlcmUuLi4/CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBBZGQgcmVmZXJlbmNlIGZvciBmaWx0ZXJlZCBjYXBzIHRvIGFib3ZlIGNoYXB0ZXIuCgoyMDA1LTA2LTMwIDA5OjQxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBMYW1lIGF0dGVtcHQgYXQgbWFraW5nIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYSBiaXQgbW9yZSByZWFkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY2xlYXJfcXVldWUpLCAocmVtb3ZlX2FsbF9mcm9tX3F1ZXVlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0CgkgIG1vcmUgcmVhZGFibGUuCgoyMDA1LTA2LTMwIDA5OjMzOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgoyMDA1LTA2LTMwIDA5OjIzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKGRlZmF1bHRfaGF2ZV9kYXRhKSwgKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYXRvbWljX2ludF9zZXQpLCAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBSZW1vdmVkIGF0b21pYyBvcGVyYXRpb25zLCB1c2UgZXhpc3RpbmcgTE9DSy4KCSAgTW92ZSBleGNlcHRpb24gaGFuZGxpbmcgb3V0IG9mIG1haW4gY29kZSBwYXRoLgoKMjAwNS0wNi0zMCAwNzo0NTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRyb3AgY2lyY3VsYXIgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoKMjAwNS0wNi0yOSAxOToyMDowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChzaWxseV9yZXR1cm5fdHJ1ZV9mdW5jdGlvbiksIChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQKCSAgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoKMjAwNS0wNi0yOSAxNjo1Nzo1OSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpOgoJICBNYWtlIHdvcmsgKD8/KS4KCjIwMDUtMDYtMjkgMTY6NDU6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoKMjAwNS0wNi0yOSAxNjoxMToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19yZW5kZXIpOgoJICBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQKCSAgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KCjIwMDUtMDYtMjkgMTY6MDU6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBwcm9iZXMgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmVtb3ZlIHByb2JlcyBtb3JlLgoKMjAwNS0wNi0yOSAxNTo1MToyNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgUmVtb3ZlIG9sZCBwcm9iZXMsIGFkZCBuZXcgZy1zaWduYWwtYmFzZWQgcHJvYmVzIGFuZCBzb21lIHV0aWxpdHkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rwcm9iZS5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5CgkgIGZ1bmN0aW9ucy4KCjIwMDUtMDYtMjkgMTU6MTc6MjUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBNb3ZlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9bc2lua3xzcmNdX2NhcHMoKSB0byBnc3R1dGlscyBhbmQgYWRkZWQgdGhlIGRlZmluaXRpb24gdG8gdGhlIGhlYWRlciBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkCgkgIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCjIwMDUtMDYtMjkgMTQ6NTY6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW0gKHNjYW4tYnVpbGQuc3RhbXApOiBUb3RhbGx5IG9ubHkgY2hlY2sKCSAgcGx1Z2lucyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAwNS0wNi0yOSAxNDo1Mjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L3RtcGwvOiBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkgIFNvbWUgZml4aW5ncyBmb3IgYmxhbnRlbnRseSB3cm9uZyB0ZXh0LgoKMjAwNS0wNi0yOSAxMjo0MDozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGxvZ2ljIHdhcyByZXZlcnNlZCwgZHVoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoKMjAwNS0wNi0yOSAxMjoyNTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZCBzeXN0ZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3ByZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BhdGgpOgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwKCSAgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZAoJICBzeXN0ZW0gbG9jYXRpb25zCgoyMDA1LTA2LTI5IDEyOjIzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGZpeGVzCgoyMDA1LTA2LTI5IDEyOjAyOjEzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIEZpeCBhdXRvcGx1Z2dpbmcgZXhhbXBsZS4KCjIwMDUtMDYtMjkgMTE6NDY6MTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dCBpbiBoZWxsby13b3JsZCBpbWFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dAoJICBpbiBoZWxsby13b3JsZCBpbWFnZS4KCjIwMDUtMDYtMjkgMTE6MTA6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBkZWJ1ZyBsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgZGVidWcgbGluZS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgbWFwIFNJR05BTCBhbmQgQlJPQURDQVNUIHRvIHRoZSByaWdodCBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFJlbW92ZSByZWR1bmRhbnQgYnJhY2VzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBEb24ndCBjYWxsIHNldGNhcHMgZnVuY3Rpb24gd2hlbiByZXNldGluZyBjYXBzIHRvIE5VTEwuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSk6CgkgIFVzZSBCUk9BRENBU1QgYXMgdGhpcyBpcyB3aGF0IHdlIGRvLgoKMjAwNS0wNi0yOSAxMDoyNDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlCgkgIGNoYW5nZS4KCjIwMDUtMDYtMjkgMDk6MjU6NTEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQuZmlnOgoJICBVcGRhdGUgKHVudGlsIHRocmVhZHMvc2NoZWR1bGluZykgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOwoJICByZW1vdmUgR3N0VGhyZWFkLCBhZGQgR3N0QnVzLCBhZGQgc2ltcGxlIHBvcnRpbmcgY2hlY2tsaXN0LCBhZGQKCSAgZG9jdW1lbnRhdGlvbiBmb3IgdGFnIHdyaXRpbmcsIGNsb2NrcywgbWFrZSBhbGwgZXhhbXBsZXMgdW50aWwgdGhpcwoJICBwYXJ0IGNvbXBpbGUgYW5kIHJ1bi4KCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFVwZGF0ZSBmcm9tIGNoYW5nZXMgdG8gQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOyBhZGQgYnVzCgkgIGV4YW1wbGUsIHJlbW92ZSB0aHJlYWQgZXhhbXBsZS4KCjIwMDUtMDYtMjggMTk6NDU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEFkZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyksIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3BlZWspLAoJICAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpOgoJICBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBNYWtlIGludGVybmFsIG1ldGhvZHMgc3RhdGljLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGJ1cyBpcyBmbHVzaGVkIGluIHRoZSBoYW5kbGVyLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgRml4IHJlZmNvdW50IGluIF9nZXRfYnVzKCk7CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2tfZnVuYyk6CgkgIENsb2NrIHJlZmNvdW50aW5nIGZpeGVzLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCB0aW1lZCBvdXQgbW9yZSBncmFjZWZ1bGx5LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKToKCSAgQ2xlYW4gdXAgdGhlIGludGVybmFsIHRocmVhZCBpbiBkaXNwb3NlLiBUaGlzIGlzIG5lZWRlZAoJICBmb3Igc3ViY2xhc3NlcyB0aGF0IGFjdHVhbGx5IGdldCBkaXNwb3NlZC4KCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2NsYXNzX2luaXQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgRnJlZSB0aHJlYWQgcG9vbCBpbiBkaXNwb3NlLgoKMjAwNS0wNi0yOCAxNjo1NzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKmRlYnVnKiwgKndpdGgtZ3JhcGgqKTogTmV3IHBhcmFtZXRlcnMuCgkgICgqcGFja2V0LWxvc3MqKTogVW5pZmllZCBsb3NzIHByb2JhYmlsaXR5LgoJICAobmV0d29yay10aW1lKTogUmVwb3J0IG91dC1vZi1iYW5kIGV2ZW50cy4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IEFkZCBzdXBwb3J0IGZvciBvdXQtb2YtYmFuZCBldmVudHMuIEhhY2sgaXQKCSAgaW50byB0aGlzIHNjcmlwdCBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgZG93biB0aGUgcGlwZTsgc2hvdWxkIGZpeAoJICB0aGlzIGxhdGVyLgoKMjAwNS0wNi0yOCAxNTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0LzogRG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgIERvY3MgZml4ZXMuCgoyMDA1LTA2LTI4IDEzOjQwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKToKCSAgQ29ycmVjdGx5IHByb3h5IHRoZSBjaGVja19wdWxsX3JhbmdlIGZ1bmN0aW9uLgoKMjAwNS0wNi0yOCAxMjo0NToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZmFrZSBlbGVtZW50cyB0b28KCjIwMDUtMDYtMjggMTI6MDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlkIHMvYmFzZXMocmMvaW5rKV8vYmFzZV9zKHJjL2luaylfLzsgd2ltIHdhbnRzIHRvIHJlbW92ZSBiYXNlIGNvbXBsZXRlbHksIGJ1dCB0aGF0J3MgZm9yIGxhdGVyCgoyMDA1LTA2LTI4IDExOjQ4OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoKMjAwNS0wNi0yOCAxMTozNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFRoZSBkZXByZWNhdGVkIHBhZCBsb29wIGZ1bmN0aW9uIGlzIHJlbW92ZWQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3NldF9wYWRfZnVuY3Rpb25zKSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfdXBkYXRlX3BhZF9mdW5jdGlvbnMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCjIwMDUtMDYtMjggMTE6MzM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqdGltZW91dCosICpzZW5kLWxvc3MqLCAqcmVjdi1sb3NzKik6IE5ldyBwYXJhbWV0ZXJzLCBzaW11bGF0ZSBuZXR3b3JrIHBhY2tldCBsb3NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOgoJICBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogSW5pdGlhbGl6ZSB0aGUgUk5HLgoKMjAwNS0wNi0yOCAxMTowMjoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZsdXNoaW5nIHRoZSBwcmVyb2xsIHF1ZXVlIGFsd2F5cyBuZWVkcyB0byB1bmxvY2sgdGhlIHdhaXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2RlYWN0aXZhdGUpOgoJICBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoKMjAwNS0wNi0yOCAxMDo0NTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBXaGVlbiBhIHNlZWsgd2FzIHN1Y2Nlc3NmdWwgb24gYSBwaXBlbGluZSwgc2V0IHRoZSBzdHJlYW1fdGltZSB0byB0aGUgc2VlayBvZmZzZXQgaW4gb3JkZXIgdG8gaGF2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlCgkgIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUgYSBzeW5jaHJvbml6ZWQgc3RyZWFtX3RpbWUuCgoyMDA1LTA2LTI4IDEwOjM3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24KCSAgcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luZyBhbmQgd2hhdG1vcmUuCgoyMDA1LTA2LTI4IDEwOjI4OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBDT05ORUNURUQgLT4gTElOS0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENPTk5FQ1RFRCAtPiBMSU5LRUQuCgoyMDA1LTA2LTI4IDA5OjU5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLmM6IERvbid0IGNhc3QgdG8gR1NUX09CSkVDVCB3aGVuIHJlZmZpbmcgb3IgdW5yZWZmaW5nLiBMYXJnZSBzb3VyY2UtbXVuZ2luZyBjb21taXQhISEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2UKCSAgc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgoyMDA1LTA2LTI4IDA5OjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICAoZ3N0X29iamVjdF9zaW5rKTogVGFrZSBncG9pbnRlciBhcmd1bWVudHMsIG5vdCBHc3RPYmplY3QgLS0KCSAgYXZvaWRzIGNhc3RzLiBMaWtlIEdMaWIuCgoyMDA1LTA2LTI4IDA4OjQxOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5IGFjdGl2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5CgkgIGFjdGl2YXRlLgoKMjAwNS0wNi0yNyAxODozOTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzaHV0IHVwIGdjYzMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNodXQgdXAgZ2NjMwoKMjAwNS0wNi0yNyAxODozNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkgcmVtYWluaW5nIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkKCSAgcmVtYWluaW5nIGJ1ZmZlci4KCSAgKiBnc3QvZ3N0dHJhY2UuYyAoZ3N0X2FsbG9jX3RyYWNlX2xpc3Rfc29ydGVkKTogTmV3IGhlbHBlciwKCSAgcmV0dXJucyBhIHNvcnRlZCBjb3B5IG9mIHRoZSB0cmFjZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2xpdmUpOiBOZXcgQVBJLCBvbmx5IHByaW50cyB0cmFjZXMgd2l0aAoJICBsaXZlIG9iamVjdHMuIFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnRfYWxsKTogU29ydCB0aGUgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludCk6IEFsaWduIGNvbHVtbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBBZGFwdCBmb3IgcGFkIGFjdGl2YXRpb24gY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBVbnJlZiBhZnRlciBwYXJlbnRpbmcKCSAgc2NoZWQuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IERyb3AgcmVmIG9uIHNjaGVkLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pbml0KTogU2V0IHRoZSBkZWZhdWx0IGFjdGl2YXRlIGZ1bmMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX2RlZmF1bHQpOiBQdXNoIG1vZGUgYnkgZGVmYXVsdC4KCSAgKHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHBvc3RfYWN0aXZhdGVfc3dpdGNoKTogTmV3IHN0dWJzLCB0aGluZ3MgdG8KCSAgZG8gYmVmb3JlIGFuZCBhZnRlciBzd2l0Y2hpbmcgYWN0aXZhdGlvbiBtb2RlcyBvbiBwYWRzLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogVGFrZSBhIGJvb2xlYW4gYW5kIG5vdCBhIG1vZGUsIGRpc3BhdGNoIHRvCgkgIHRoZSBwYWQncyBhY3RpdmF0ZSBmdW5jdGlvbiB0byBjaG9vc2Ugd2hpY2ggbW9kZSB0byBhY3RpdmF0ZS4KCSAgU2hvcnRjdXQgb24gZGVhY3RpdmF0aW9uIGFuZCBjYWxsIHRoZSByaWdodCBmdW5jdGlvbiBkaXJlY3RseS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IE5ldyBBUEksIChkZSlhY3RpdmF0ZXMgYSBwYWQgaW4gcHVsbAoJICBtb2RlLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogTmV3IEFQSSwgc2FtZSBmb3IgcHVzaCBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1c2hfZnVuY3Rpb24pOiBTZXR0ZXJzIGZvciBuZXcgQVBJLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF9taW5pX29iamVjdF9uZXcsIGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgVHJhY2UgYWxsIG1pbmlvYmplY3RzLgoJICAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpOiBVbnJlZiB0aGUgYXJnIGlmIHdlIGNvcHksIGxpa2UKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSk6IE5vIHRyYWNlIGluaXQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCwgZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpOgoJICBBZGFwdCBmb3IgbmV3IHBhZCBBUEkuCgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6IERvbid0IGluaXRpYWxpemUgdHJhY2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKQoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOiBOZXcgQVBJIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChpdGVyYXRvcl9mb2xkX3dpdGhfcmVzeW5jKTogTmV3IHV0aWxpdHksCgkgIHNob3VsZCBmb2xkIGludG8gZ3N0aXRlcmF0b3IuYyBpbiBzb21lIGZvcm0uCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKTogU2ltcGxpZmllZCB2aWEgdXNlIG9mIGZvbGQgYW5kCgkgIGRlbGVnYXRpb24gb2YgZGVjaXNpb25zIHRvIGdzdHBhZC0+YWN0aXZhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSk6IFNldCB0aGUgYnVzIHRvIE5VTEwsCgkgIGhlbHAgaW4gZGVidWdnaW5nLgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6IFJlZiB0aGUgYnVmZmVyIHR5cGUKCSAgY2xhc3Mgb25jZSBpbiBpbml0LCBsaWtlIGdzdG1lc3NhZ2UuIERpZG4ndCBydW4gaW50byB0aGlzIGlzc3VlCgkgIGJ1dCBpdCBzZWVtcyBjb3JyZWN0LiBEb24ndCBpbml0aWFsaXplIGEgdHJhY2UsIGdzdG1pbmlvYmplY3QgZG9lcwoJICB0aGF0LgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3Rfc3RvcF9mcm9tX2FwcCk6IE5ldwoJICB0ZXN0LCBydW5zIGZha2VzcmMgISBmYWtlc2luaywgc3RvcHBpbmcgb24gOjpoYW5kb2ZmIHZpYSBhIG1lc3NhZ2UKCSAgdG8gdGhlIGJ1cy4KCSAgKGFzc2VydF9saXZlX2NvdW50KTogTmV3IHV0aWwgZnVuY3Rpb24sIHVzZXMgYWxsb2MgdHJhY2VzIHRvIGNoZWNrCgkgIGNsZWFudXAuCgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1vcmUgcmVmY291bnQgY2hlY2tzLgoJICBUbyBiZSBtb2RpZmllZCB3aGVuIHVubGluayBkcm9wcyB0aGUgaW50ZXJuYWwgcGFkLgoKMjAwNS0wNi0yNyAxODoxMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2xlYW51cCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gYSBsaXR0bGUsIG1ha2Ugc3VyZSBpdCBpdGVyYXRlcyB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3N0YXRlKSwgKGdzdF9iaW5faXRlcmF0ZV9zdGF0ZV9vcmRlciksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQKCSAgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBBZGRlZCBzdHViIGl0ZXJhdGVfc3RhdGVfb3JkZXIoKS4KCjIwMDUtMDYtMjcgMTQ6NDA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYWRkaW5nIGJhc2V0cmFuc2Zvcm0gYW5kIGl0ZXJhdG9yIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgoyMDA1LTA2LTI3IDEzOjI1OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQKCSAgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoKMjAwNS0wNi0yNyAwODo1NDoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoKMjAwNS0wNi0yNyAwODoxNjo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIG1vcmUgZG9jIGFuZCB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wNi0yNSAxOTo1MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUgZml4aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pOgoJICBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUKCSAgZml4aW5nLgoKMjAwNS0wNi0yNSAxOTozNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmlnaHQsIHR3byBwcm9ibGVtcyBoZXJlOiBnaG9zdHBhZHMgZG9uJ3QgdGFrZSBsb2NrcyBhbmQKCSAgZ2xpYiBfcmVjX211dGV4X2xvY2tfZnVsbCgpIHdpdGggZGVwdGg9PTAgc3RpbGwgbG9ja3MuCgkgIENhdGNoIGlsbGVnYWwgbG9ja2luZyBhbmQgZ193YXJuIHRoZW0uCgoyMDA1LTA2LTI1IDE5OjE0OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgSGF2ZSB0byBjaGVjayBmb3IgY29tcGxldGlvbiBub3cuLi4KCjIwMDUtMDYtMjUgMTk6MDk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFVubG9jayBTVFJFQU1fTE9DSyB3aGF0ZXZlciB0aGUgcmVjdXJzaW9uIHdhcy4KCjIwMDUtMDYtMjUgMTc6NTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXdvcmtlZCB0aGUgYmFzZSBzaW5rLCBoYW5kbGUgZXZlbnQgYW5kIGJ1ZmZlciBzZXJpYWxpc2F0aW9uIGNvcnJlY3RseSBhbmQgcmVtb3ZlZCBwb3NzaWJsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbgoJICBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgZGVhZGxvY2suCgkgIEhhbmRsZSBFT1MgY29ycmVjdGx5LgoKMjAwNS0wNi0yNSAxNzo1MToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoaXNfZW9zKSwgKHBpcGVsaW5lX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQWxsb3cgZWxlbWVudHMgdG8gcG9zdCBFT1MgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgRml4IHVwIC1sYXVuY2gsIG1ha2UgaXQgZXhpdCB0aGUgcG9sbCBsb29wIHdoZW4gdGhlCgkgIHBpcGVsaW5lIGFjdHVhbGx5IGNoYW5nZWQgc3RhdGUuCgkgIEZpeCB1cCB3YXJuaW5nIHBhcnNpbmcgaW4gLWxhdW5jaC4KCjIwMDUtMDYtMjUgMTc6NDQ6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jaGFpbiksIChnc3RfdGVlX2xvb3ApLAoJICAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgQ29yZSB0YWtlcyBTVFJFQU1fTE9DSyBmb3IgdXMgbm93LgoKMjAwNS0wNi0yNSAxNzo0MjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgS2VlcCB0cmFjayBvZiBjdXJyZW50IHRhcmdldCBzdGF0ZSB3aGlsZSBwZXJmb3JtaW5nIGEgc3RhdGUKCSAgY2hhbmdlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZG8gc29tZXRoaW5nIGludGVyZXN0aW5nLgoJICBGaXggcGFyc2luZyBvZiB3YXJuaW5nL2Vycm9yIG1lc3NhZ2VzIHdoZW4gR0Vycm9yIGlzIE5VTEwuCgoyMDA1LTA2LTI0IDE4OjE2OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdGFydCBwdWxsaW5nIGluIGJhc2UgY2xhc3NlcyBhbmQgZWxlbWVudHMgZm9yIGRvY3MKCjIwMDUtMDYtMjQgMDc6NDk6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoKMjAwNS0wNi0yMyAxNzoxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gdGhlIHN0YXRlIGRpZCBub3QgY2hhbmdlLCBhbHNvIHJlcG9ydCBOT19QUkVST0xMIHdoZW4gaXQgbWF0dGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTAoJICB3aGVuIGl0IG1hdHRlcnMuCgoyMDA1LTA2LTIzIDE3OjA5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTm8gdW5zYWZlIHRhc2sgcGF1c2luZyBwbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoKMjAwNS0wNi0yMyAxNzowNzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBSZWYgdGhlIHRhc2sgYmVmb3JlIHB1c2hpbmcgaXQgb24gdGhlIHRocmVhZHBvb2wuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGhhdmUgYSByZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19wYXVzZSksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKToKCSAgUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmVmIHdoZW4gdGhlIHRocmVhZGZ1bmN0aW9uIGlzCgkgIGFjdHVhbGx5IGNhbGxlZC4KCjIwMDUtMDYtMjMgMTU6MjY6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKTogQ2hlY2sgaWYgdGhlIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpbGUncyBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZQoJICBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCjIwMDUtMDYtMjMgMTU6MDQ6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKSAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfQ0xBU1NfTE9DSywgR1NUX0NMQVNTX1RSWUxPQ0spCgkgIChHU1RfQ0xBU1NfVU5MT0NLLCBHU1RfQ0xBU1NfR0VUX0xPQ0ssIEdzdE9iamVjdENsYXNzKQoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSB0aGUgY2xhc3MgbG9jawoJICByZWN1cnNpdmUuIFdpbSB3b24ndCBsZXQgbWUgZHJvcCBkZWVwX25vdGlmeS4gRGVjb2RlYmluIHdvcmtzCgkgIGFnYWluLCB3aG9vcGR5IGRvby4KCjIwMDUtMDYtMjMgMTQ6MTg6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChvbl9pbnRfbm90aWZ5KTogQ2F0Y2hlcyBub3RpZnk6OmNhcHMgb24gdGhlIGludGVybmFsIHBhZCwgYW5kIGhhY2tzIGFjY29yZGluZ2x5LiBEb2Vzbid0IGRvIGl0IG9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZQoJICBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiB0aGUgdGFyZ2V0CgkgIHBhZCBiZWNhdXNlIHdlIGNoYW5nZSBpdHMgY2Fwcy4gUHJvYmFibHkgY2F0Y2hlcyBhbGwgY2FzZXMgb2YKCSAgaW50ZXJlc3QgdGhvLgoJICAoZ3N0X2dob3N0X3BhZF9zZXRfcHJvcGVydHkpOiBDb25uZWN0IHRvIG5vdGlmeTo6Y2FwcyBhcwoJICBhcHByb3ByaXRhdGUuCgoyMDA1LTA2LTIzIDEzOjIwOjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZSBlbGl0ZSBweXRob24gc2tyaXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZQoJICBlbGl0ZSBweXRob24gc2tyaXB0LgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWZpbmUtcGFyYW1ldGVyKTogTmV3IG1hY3JvLAoJICBkZWZpbmVzIGEgcGFyYW1ldGVyIHRoYXQgY2FuIGJlIHNldCB2aWEgdGhlIGNvbW1hbmQgbGluZS4KCSAgKHNldC1wYXJhbWV0ZXIhLCBwYXJzZS1wYXJhbWV0ZXItYXJndW1lbnRzKTogQ29tbWFuZCBsaW5lIGFyZ3MKCSAgcGFyc2VyLgoJICAqIHRlc3RzL3Bsb3QtZGF0YTogU2ltcGxlIG1hdHBsb3RsaWItYmFzZWQgcGxvdHRlciwgdGFrZXMgaW5wdXQgb24KCSAgc3RkaW4uCgoyMDA1LTA2LTIzIDEzOjIwOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBtb3JlIGltcG9ydGFudCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoKMjAwNS0wNi0yMyAxMTo0MzozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IHJlc3RhcnQgdHlwZWZpbmRpbmcgb24gYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRGVidWcgc3BlbGxpbmcgZml4LgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBBbGxvdyBjaGFuZ2luZyBtb2RlIG9mIGFuIGFjdGl2ZSBwYWQuCgkgIERlYnVnIG91dHB1dCBmaXhlcy4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgRG9uJ3QgY2FzdCBhIHN0YXRpYyBwYWQgdGVtcGxhdGUgdG8gYSBub3JtYWwgcGFkIHRlbXBsYXRlLgoKMjAwNS0wNi0yMyAxMToyNToyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgZ3N0X3N0cnRvbGwgY29tcGxldGVseSwgc2luY2UgaXQgZGlkbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIG1vcmUgdGhhbiB3aGF0IGdfYXNjaWlfc3RydG91bGwgYWxyZWFkeSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbwoJICBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgY2hlY2sgZm9yIHJhbmdlIGVycm9ycyB3aGVuIGRlc2VyaWFsaXppbmcKCSAgZG8gYSBjYXN0IGZvciB0aGUgdW5zaWduZWQgY2FzZXM7IGJ1dCBmdXJ0aGVyIGZpeGluZyBuZWVkcwoJICBhIGRlY2lzaW9uIG9uIHdoYXQgdGhlIGludGVycHJldGF0aW9uIG9mICIoaW50KSIgYW5kCgkgIGRlc2VyaWFsaXphdGlvbiBzaG91bGQgYmUgZm9yIHZhbHVlcyB0aGF0IGZhbGwgb3V0c2lkZSB0aGUKCSAgdHlwZSdzIGJvdW5kYXJpZXMgKGllLCByZWZ1c2UsIG9yIGludGVycHJldCBhcyBjYXN0aW5nKQoKMjAwNS0wNi0yMyAxMDozNzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQgY2Fubm90IGRvIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQKCSAgY2Fubm90IGRvIHByZXJvbGwuCgkgIFVwZGF0ZWQgZGVzaWduIGRvY3MsIGFkZGVkIGxpdmUtc291cmNlIGRlc2lnbiBkb2MuCgkgIEltcGxlbWVudGVkIGxpdmUgc291cmNlIGZ1bmN0aW9uYWxpdHkgaW4gYmFzZXNyYwoJICBGaXggZXJyb3IgY29uZGl0aW9uIGluIF9iaW5fZ2V0X3N0YXRlKCkKCSAgSW1wbGVtZW50IGxpdmUgc291cmNlIGhhbmRsaW5nIGluIC1sYXVuY2guCgkgIEFkZGVkIGNoZWNrIGZvciBsaXZlIHNvdXJjZXMuCgkgIEZpeGVkIGNhc2UgaW4gR3N0QmluIHdoZXJlIGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBzdGF0ZQoJICBtdWx0aXBsZSB0aW1lcy4KCjIwMDUtMDYtMjMgMDk6NTk6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4IGJvcmtlbiByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMsIHRlc3RfcmVmY291bnQpOiBGaXgKCSAgYm9ya2VuIHJlZmNvdW50aW5nLgoKMjAwNS0wNi0yMyAwOTo0MTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjb21taXQgdGhlIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCB0aGUgZmlsZQoKMjAwNS0wNi0yMyAwOTo0MTowOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsCgkgIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCjIwMDUtMDYtMjMgMDk6Mjg6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpOiBDYWxsIHRoZSBmdWxsIGdzdF9wYWRfc2V0X2NhcHMgb24gdGhlIHRhcmdldCwgbm90IGp1c3QgaXRzIHNldGNhcHMoKSBmdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbAoJICBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnVuY3Rpb24uCgoyMDA1LTA2LTIzIDAwOjM5OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IEEgbmV0d29yayBjbG9jayBzaW11bGF0b3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBTb21ldGhpbmcgb2YgYW4gYWxnb3JpdGhtaWMgdGVzdGJlZCBiZWZvcmUgZG9pbmcgc29tZXRoaW5nIGluIEMuCgoyMDA1LTA2LTIyIDE5OjU3OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbWFrZSBzdXJlIGNhcHNsaXN0LmggZ2V0cyBkaXN0ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgoyMDA1LTA2LTIyIDE5OjQ4OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBmcm9tc3RyaW5nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA2LTIyIDE5OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogY29weSBvdmVyIGZyb20gMC44LCBhbmQgYWRkIHR3byB3aXRoIGJpdG1hc2tzIHNwZWNpZmllZCB3aXRoIChpbnQpIDB4RkYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aAoJICAoaW50KSAweEZGLi4uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBhZGQgdGVzdCB0byBwYXJzZSBldmVyeXRoaW5nIGZyb20gY2Fwc2xpc3QuaAoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKSwKCSAgKG1haW4pOgoJICBhZGQgdGVzdCBmb3Igc3RydWN0dXJlIGRlc2VyaWFsaXphdGlvbgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIGRlc2VyaWFsaXphdGlvbiBvZiBzdHJpbmdzIHRvIGludCB0eXBlcwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgd2F5IHRvIGdldCB0aGUgbmFtZSBvZiBhIGZpZWxkIHJlZmVyZW5jZWQgYnkgaW5kZXgKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgaW5zdGVhZCBvZiBjaGVja2luZyBpZiB0aGUgcmVzdWx0aW5nIGxvbmcgbG9uZyBsaWVzIGJldHdlZW4KCSAgbWluIGFuZCBtYXgsIHdlIGNoZWNrIGlmIHRoZSBsb25nIGxvbmcgd291bGQgZml0IGludG8KCSAgYSBudW1iZXIgb2YgYnl0ZXMgZm9yIHRoZSBmaW5hbCB0eXBlLgoJICBUaGlzIGZpeGVzIGNhc2VzIHdoZXJlIGEgc3RyaW5nIHJlcHJlc2VudHMgMl4zMiAtIDEsIHdoaWNoCgkgIHdoZW4gY2FzdCB0byBpbnQgd291bGQgYmUgdGhlICh2YWxpZCkgLTEsIGJ1dCBpcyBiaWdnZXIgdGhhbgoJICBHX01BWElOVAoKMjAwNS0wNi0yMiAxMTowMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbG9nIGxpbmUgZm9yIHR5cGUgZGVzZXJpYWxpemF0aW9uCgoyMDA1LTA2LTIyIDEwOjUyOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplKToKCSAgcmV0dXJuIGxvbmcgbG9uZywgbm90IGludCwgc28gZ2ludDY0IGRlc2VyaWFsaXphdGlvbiBhY3R1YWxseQoJICB3b3Jrcy4gIElzIHRoZXJlIGFueSBmbGFnIHRoYXQgbWFrZXMgdGhlIGNvbXBpbGVyIGNoZWNrIHRoaXMgPwoJICBGaXhlcyAjMzA4NTU5CgoyMDA1LTA2LTIyIDA5OjU1OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGRlZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9yIHNldHRpbmcgYnVmZmVycyBpbiBHVmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoKMjAwNS0wNi0yMSAxNzo0MTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvOiBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UgaXQgZmFpbHMsIHlheSAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UKCSAgaXQgZmFpbHMsIHlheSAhCgoyMDA1LTA2LTIxIDE2OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgoyMDA1LTA2LTIxIDE2OjQ4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3Rlc3RfZ3N0X2luaXQuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvdmFsdWVfc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkgIG1vdmUgb3ZlciBhIHZhbHVlX3NlcmlhbGl6ZSB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoKMjAwNS0wNi0yMCAxNToxODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9idWZmZXIpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBGaXggc2VyaWFsaXNhdGlvbiBvZiBidWZmZXJzLCB0aGV5IGFyZSBub3QgYm94ZWQgdHlwZXMgYW55bW9yZQoKMjAwNS0wNi0yMCAxNToxNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IFRlc3RjYXNlIHRvIHNob3cgZXJyb3IgaW4gYnVmZmVyLW9uLWNhcHMgc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgoyMDA1LTA2LTIwIDE1OjEzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL3JhbmRvbS93aW5nby9wb3J0aW5nLXBsdWdpbnMtdG8tMC45OiBBIHBpdGlmdWwgZG9jdW1lbnQgSSB3aWxsIGJlIGFkZGluZyB0byBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkKCSAgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgoyMDA1LTA2LTIwIDExOjQxOjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jayBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jawoJICBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICAoZ3N0X3N5c3RlbV9jbG9ja19vYnRhaW4pOiBTZXQgdGhlIG5hbWUgb24gb2JqZWN0IGNvbnN0cnVjdGlvbi4KCSAgQXZvaWQgZG91YmxlLWNoZWNrZWQgbG9ja2luZy4KCjIwMDUtMDYtMjAgMTE6MzI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgRml4IHBvdGVudGlhbCBlbmRsZXNzIGxvb3AuCgoyMDA1LTA2LTIwIDExOjI3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL2dob3N0cGFkcy5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSAgcmVtb3ZlIGFub3RoZXIgdGVzdCB0aGF0J3Mgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgoyMDA1LTA2LTIwIDExOjIzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSAgcmVtb3ZlIGNsb2NrIHRlc3RzdWl0ZSwgaW1wb3J0YW50IHN0dWZmIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgoyMDA1LTA2LTIwIDExOjE4OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9iaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0xOSAxMTozMjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGdzdHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGdzdHRhZwoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKGNoZWNrX3RhZ3MpLCAoU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKSwKCSAgKG1haW4pOgoJICBtb3ZlIG92ZXIgZnJvbSB0ZXN0c3VpdGUgZGlyIGFuZCBjbGVhbiB1cAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL3RhZ3MvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RhZ3MvbWVyZ2UuYzoKCSAgcmVtb3ZlIHRlc3RzdWl0ZS90YWdzCgoyMDA1LTA2LTE5IDEwOjU0OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoKMjAwNS0wNi0xOSAxMDozMTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9idWZzcGVlZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9idWZzcGVlZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvUkVBRE1FOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL2dzdG1lbXBvb2wuaDoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDEuYzoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDIuYzoKCSogdGVzdHMvc3BpZGV5X2JlbmNoLmM6CgkgIHJlbW92ZSBidWZzcGVlZCBhbmQgc3BpZGV5X2JlbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoKMjAwNS0wNi0xOSAxMDoyMjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgoyMDA1LTA2LTE5IDAwOjUyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdGNoZWNrLmg6IGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNvbWUgbW9yZSB1bml0IHRlc3RzCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIGZpeCBsZWFrZWQgcmVmY291bnRzIChJIGhvcGUgOikpIHNvIHVuaXR0ZXN0IHdvcmtzCgkgICogZ3N0L2dzdHBhZC5oOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwKCjIwMDUtMDYtMTggMjI6MzM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA1LTA2LTE3IDEyOjAwOjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA2LTE3IDExOjU4OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfY2hhaW4pOiBSZW1vdmUgYm9ndXMgYXNzZXJ0OyBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IHRoZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzCgkgIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgaW4KCSAgYmV0d2VlbiB0aGUgY2hlY2tzIGluIGdzdHBhZC5jIGFuZCB0aGUgaW1wbGVtZW50YXRpb24uIFJlbHkgb24KCSAgZmluaXNoX3ByZXJvbGwoKSB0byByZXR1cm4gYSBGTFVTSElORyBvciBzaW1pbGFyIGluc3RlYWQgb2Ygb24gdGhlCgkgIGFzc2VydC4KCjIwMDUtMDYtMTcgMTE6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19ldmVudCk6IE9ubHkgd2FpdCBmb3IgdGhlIGNsb2NrIGFuZCBwb3N0IGFuIEVPUyBtZXNzYWdlIGlmIHdlIGNvbWUgb3V0IG9mIGZpbmlzaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZQoJICBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2hfcHJlcm9sbCBpbgoJICB0aGUgcGxheWluZyBzdGF0ZS4KCjIwMDUtMDYtMTcgMDk6NTg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBpbmNvcnBvcmF0ZSBwbHVnaW5zIHN0dWZmIGFuZCB1bmluc3RhbGxlZCBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCjIwMDUtMDYtMTcgMDk6MzI6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTE3IDA5OjEyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwODo1OTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiAuZ2l0aWdub3JlOgoJKiBDaGFuZ2VMb2c6CgkqIFJFQURNRToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlOyBmaXggUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoKMjAwNS0wNi0xNiAxNzo1MDoxNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6IEFsbG93IE5VTEwgYXMgcG9zc2libGUgdmFsdWUKCSAgZm9yIGZpbHRlcl9jYXBzIHByb3BlcnR5LCBpbmRpY2F0aW5nIEdTVF9DQVBTX0FOWS4KCjIwMDUtMDYtMDkgMTM6MzM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogZml4IGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgZml4IGRlYnVnIG91dHB1dAoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICB1c2UgbGliZ3N0IHByZWZpeAoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggc3BlYyBmb3IgaXQKCjIwMDUtMDYtMDkgMTI6MjM6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowOTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3RyZWFtZXIuc3BlYy5pbjogY2xlYW4gdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwCgoyMDA1LTA2LTA5IDEyOjAzOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFRPRE86CgkqIGRvY3MvcmFuZG9tL1RPRE8tcHJlLTAuOToKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoKMjAwNS0wNi0wOSAxMjowMDoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHBvIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvIHVwZGF0ZXMKCjIwMDUtMDYtMDkgMTE6MTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTA2LTA4IDIyOjE2OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogUmVmY291bnRpbmcgZml4ZXMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICAqIHBhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IFJQQUQgZml4ZXMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IE5ldyBnaG9zdCBwYWQgaW1wbGVtZW50YXRpb24gYXMgZnVsbCBwcm94eQoJICBwYWRzLiBUaGUgdHJpY2t5IHRoaW5nIGlzIHRoZXkgcHJvdmlkZSBib3RoIHNvdXJjZSBhbmQgc2luawoJICBpbnRlcmZhY2VzLCBzaW5jZSB0aGV5IHByb3h5IHRoZSBpbnRlcm5hbCBwYWQgZm9yIHRoZSBleHRlcm5hbAoJICBwYWQsIGFuZCB2aWNlIHZlcnNhLiBJbXBsZW1lbnQgd2l0aCBsb3dlci1sZXZlbCBQcm94eVBhZCBvYmplY3RzLAoJICB3aXRoIHRoZSBpbnRlcmlvciBwcm94eSBwYWQgYXMgYSBjaGlsZCBvZiB0aGUgZXh0ZXJpb3IgZ2hvc3QgcGFkLgoJICBTaG91bGQgd3JpdGUgYSBkb2Mgb24gdGhpcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IHMvUlBBRC9QQUQvLCBzL1JlYWxQYWQvUGFkLy4KCSAgKGdzdF9wYWRfc2V0X25hbWUsIGdzdF9wYWRfc2V0X3BhcmVudCk6IE1hY3JvcyByZW1vdmVkLCB1c2UKCSAgZ3N0X29iamVjdCBBUEkuCgkgICogZ3N0L2dzdHBhZC5jOiBCaWcgY2hhbmdlcy4gTm8gbW9yZSBzdHViIGJhc2UgR3N0UGFkLCBub3cgYWxsCgkgIHBhZHMgYXJlIHJlYWwgcGFkcy4gTm8gZ2hvc3QgcGFkcyBpbiB0aGlzIGZpbGUuIE5vdCBkb2N1bWVudGluZwoJICB0aGUgbXlyaWFkIHMvUlBBRC9QQUQvIGFuZCBSRUFMSVpFIGZpeGVzLgoJICAoZ3N0X3BhZF9jbGFzc19pbml0KTogQWRkIHByb3BlcnRpZXMgZm9yICJkaXJlY3Rpb24iIGFuZAoJICAidGVtcGxhdGUiLiBCb3RoIGFyZSBjb25zdHJ1Y3Qtb25seSwgc28gdGhleSBjYW4ndCBjaGFuZ2UgZHVyaW5nCgkgIHRoZSBsaWZlIG9mIHRoZSBwYWQuIEZpeGVzIHByb3Blcmx5IGRlcml2aW5nIGZyb20gR3N0UGFkLgoJICAoZ3N0X3BhZF9jdXN0b21fbmV3LCBnc3RfcGFkX2N1c3RvbV9uZXdfZnJvbV90ZW1wbGF0ZSk6IEdvbmUuIEZvcgoJICBkZXJpdmVkIG9iamVjdHMsIGp1c3Qgc2V0IHByb3BlcnRpZXMgd2hlbiBjcmVhdGluZyB0aGUgb2JqZWN0cyB2aWEKCSAgZ19vYmplY3RfbmV3LgoJICAoZ3N0X3BhZF9nZXRfcGFyZW50KTogSW1wbGVtZW50IGFzIGEgZnVuY3Rpb24sIHJldHVybiBOVUxMIGlmIHRoZQoJICBwYXJlbnQgaXMgbm90IGFuIGVsZW1lbnQuCgkgIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCwgZ3N0X3BhZF9hZGRfZ2hvc3RfcGFkKQoJICAoZ3N0X3BhZF9yZW1vdmVfZ2hvc3RfcGFkLCBnc3RfcGFkX3JlYWxpemUpOiBSZW1vdmVkLgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSBuYW1lIGEgY29uc3RydWN0CgkgIHByb3BlcnR5LiBEb24ndCBzZXQgaXQgaW4gdGhlIG9iamVjdCBpbml0LgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2FkZF9wYWQpOiBEb24ndCBhbGxvdyBhZGRpbmcgcGFkcwoJICB3aXRoIFVOS05PV04gZGlyZWN0aW9uLgoJICAoZ3N0X2VsZW1lbnRfYWRkX2dob3N0X3BhZCk6IFJlbW92ZSBub24tb3J0aG9nb25hbCBBUEkuIFJlcGxhY2UKCSAgd2l0aCBnc3RfZWxlbWVudF9hZGRfcGFkIChlLCBnc3RfZ2hvc3RfcGFkX25ldyAobmFtZSwgcGFkKSkuCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKTogUmVtb3ZlIGdob3N0LXBhZCBzcGVjaWFsIGNhc2VzLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFJlbW92ZSBycGFkIGNydWZ0LgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVc2UgZ3N0X3BhZF9nZXRfcGFyZW50IHRvCgkgIGNhdGNoIHRoZSBwYWQncy1wYXJlbnQtbm90LWFuLWVsZW1lbnQgY2FzZS4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ3N0Z2hvc3RwYWQuaC4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IE5vIG1vcmUgcmVhbCwgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IEFkZCBnc3RnaG9zdHBhZC5bY2hdLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogQ2hlY2sgdGhhdCBsaW5raW5nCgkgIGludG8gYSBiaW4gY3JlYXRlcyBnaG9zdCBwYWRzLCBhbmQgdGhhdCB0aGUgcmVmY291bnRzIGFyZSByaWdodC4KCSAgUGFydGx5IG1vdmVkIGZyb20gZ3N0YmluLmMuCgoyMDA1LTA2LTA4IDE0OjAwOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoc2V0dXBfcGlwZWxpbmUpLCAocnVuX3BpcGVsaW5lKSwKCSAgKFNUQVJUX1RFU1QpLCAoY2xlYW51cF9zdWl0ZSksIChtYWluKToKCSAgYWRkIHNvbWUgdGVzdHMgcmVsYXRlZCB0byBjbGVhbnVwIGFmdGVyIHJ1bm5pbmcgcGlwZWxpbmVzCgoyMDA1LTA2LTA4IDEzOjU3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCjIwMDUtMDYtMDggMTM6NDU6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBwcmV2aW91cyBjb21taXQgYWNjaWRlbnRhbGx5IGFsc28gYWRkZWQgcmVmY291bnQgZGVmaW5lcyBmb3IgZ3N0bWluaW9iamVjdCwgbG9nZ2luZyB0aGF0IG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCjIwMDUtMDYtMDggMTM6NDI6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgJ3BsdWdpbnMnIGRpciB0byB0aGUgUExVR0lOX1BBVEggaW4gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCB0byBkcm9wIHJhbmRvbSBvdGhlciBwbHVnaW4taGF2aW5nIHByb2plY3RzIGluCgoyMDA1LTA2LTA4IDEzOjQxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoKMjAwNS0wNi0wOCAxMzo0MTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgT0JKRUNUIGFjdHMgb24gb2JqIG5vdCBjYXBzCgoyMDA1LTA2LTA4IDEzOjQxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA2LTA4IDEzOjQwOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3aGl0ZSBzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCjIwMDUtMDYtMDMgMTg6MjY6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoKMjAwNS0wNi0wMiAxNTo0NToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIEZyZWUgZXhpc3RpbmcgY2FwcyBpZiB0aGUgY2Fwc2ZpbHRlciBjaGFuZ2VzLiBBZGQgYSBGSVhNRSBhYm91dAoJICBzZXR0aW5nIHRob3NlIGNhcHMgb24gdGhlIHBhZHMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpLCAoZ2hvc3RfdXApOgoJICBCZWZvcmUgYWRkaW5nIGEgZ2hvc3QgcGFkIHRvIGEgcGFyZW50IGJpbiwgY2hlY2sgdGhhdCB0aGVyZSBpc24ndAoJICBhbHJlYWR5IG9uZSBmb3IgdGhlIGVsZW1lbnQgb24gdGhlIGJpbi4gUHJldmVudHMgaW5maW5pdGUgcmVjdXJzaW9uCgkgIHdoZW4gdXNpbmcgZGVjb2RlYmluIGluIHBhcnNlIHBpcGVsaW5lcy4gQW5keSBzYXlzIGhlJ2xsIHJld3JpdGUgdGhlCgkgIHdheSB0aGlzIHdvcmtzIGFueXdheSwgc28gaWdub3JlIHRoZSBoYWNrLgoKMjAwNS0wNi0wMiAxMToxMjozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlCgkgIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2RvX3NlZWspOiBTZXQgdGhlCgkgIHNlZ21lbnRfc3RhcnQgYW5kIHNlZ21lbnRfZW5kIHByb3Blcmx5IGFjY29yZGluZyB0byB0aGUgc2VlawoJICBtZXRob2QuIFNlZ21lbnRfZW5kIGlzIHN0aWxsIGEgYml0IGZsYWt5IGJlY2F1c2Ugb2Zmc2V0IGNhbiBiZQoJICBuZWdhdGl2ZSBmb3IgQ1VSIGFuZCBFTkQgY2FzZXMsIGJ1dCBpdCB0YWtlcyAtMSBhcyBhbiAidW5zZXQiCgkgIHZhbHVlLgoKMjAwNS0wNi0wMiAwOTo0MjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgIEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQKCSAgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoKMjAwNS0wNi0wMiAwOTozOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgoyMDA1LTA2LTAyIDA4OjI2OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgIFNtYWxsIGRvYyB1cGRhdGVzCgoyMDA1LTA1LTMwIDE2OjI4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2UgcHJvcGVydHkgYXMgaXQgaXMgYWNjZXNzZWQgZnJvbQoJICBtdWx0aXBsZSB0aHJlYWRzLgoKMjAwNS0wNS0zMCAxNTo1MzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNsaWNrZXIgcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA1LTA1LTMwIDE1OjUxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3R0eXBlcy5oOgoJICBNb3ZlIGVsZW1lbnRmYWN0b3J5IG1ldGhvZHMgdG8gc2VwYXJhdGUgLmggZmlsZS4KCjIwMDUtMDUtMzAgMTU6NDg6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIFNtYWxsIHR5cG8gZml4ZXMsIGRvYyB1cGRhdGVzLgoKMjAwNS0wNS0zMCAxNTo0NjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3QuYzogUmVtb3ZlIGNwdS1vcHQgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUpLCAoaW5pdF9wb3N0KSwKCSAgKGluaXRfcG9wdF9jYWxsYmFjayk6CgkgIFJlbW92ZSBjcHUtb3B0IGZsYWcuCgoyMDA1LTA1LTMwIDE1OjQ0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEF2b2lkIHR5cGVjaGVja2luZyBpbiBwbGFjZXMgd2hlcmUgbm90IG5lZWRlZC4KCSAgQWRkZWQgYWNjZXNzb3IgZm9yIG1hbGxvY19kYXRhLgoKMjAwNS0wNS0zMCAxNTo0MTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHJvcGFnYXRlIGVycm9ycyBmcm9tIF9zZXRfY2FwcygpIGluIGNvbmZpZ3VyZV9zcmMvc2luayBmdW5jdGlvbnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgVFJVRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3JlYWxfcGFkX2luaXQpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLCAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsKCSAgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIEZMVVNIIGV2ZW50cyBjYW4gdHJhdmVsIHVwIGFuZCBkb3duc3RyZWFtCgoyMDA1LTA1LTMwIDE1OjM2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICBIYW5kbGUgRU9TIGluIHByZXJvbGwuCgoyMDA1LTA1LTMwIDE1OjM0OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KToKCSAgUmVtb3ZlIG9sZCBwaWVjZXMgb2YgY29kZQoJICBGbHVzaGluZyB0aGUgcXVldWUgaW4gYW4gdXBzdHJlYW0gZXZlbnQgaXMgYSB2ZXJ5IGJhZCBpZGVhLgoKMjAwNS0wNS0yOSAxMzo1Njo1NSArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJICBmaWxlIGdzdHNpbXBsZXNjaGVkdWxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1DT01QQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCjIwMDUtMDUtMjcgMDk6Mjg6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgcmVtb3ZlIGNvbmZsaWN0IGRvb2JlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgoyMDA1LTA1LTI3IDA5OjI3OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29sbGVjdCk6IFVzZSBnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0IHNvIGFzIHRvIGFkZCBhIHJlZiBvbiB0aGUgb2JqZWN0ICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UKCSAgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAod2hpY2gKCSAgd2lsbCBiZSByZW1vdmVkIHdoZW4gdGhlIHZhbHVlIGlzIHVuc2V0KS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpOiBGaXggc2lnbmFsCgkgIGFyZyB0eXBlIGluIDo6aGFuZG9mZi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOiBBbHNvIGRlYWN0aXZhdGUKCSAgcGFkcyBpbiBSRUFEWS0+TlVMTCwganVzdCBpbiBjYXNlIHRoZSBlbGVtZW50IGRpZG4ndCBtYWtlIGl0IHRvCgkgIFBBVVNFRC4gV2luZ28gdGVzdGVkLCBXaW0gYXBwcm92ZWQuCgoyMDA1LTA1LTI2IDEwOjUwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIEEgZmx1c2hpbmcgcGFkIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG9jX2J1ZmZlciBmcm9tLgoKMjAwNS0wNS0yNiAxMDo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8gc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfcG9zdCksCgkgIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8KCSAgc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoKMjAwNS0wNS0yNSAxOTozMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBzdGF0ZSBjaGFuZ2VzIGZvciBub24gc2lua3MuIFdlIG5vdyBjaGFuZ2Ugc2lua3MsIHRoZW4gZWxlbWVudHMgd2l0aCB1bmNvbm5lY3RlZCBzcmNwYWRzLCB0aGVuIHRoZSByZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGhhc19hbmNlc3RvciksCgkgIChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoYXBwZW5kX2NoaWxkKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZSksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzCgkgIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgTW9yZSBlZmZpY2llbnQgcXVldWUgdW5sb2NraW5nIGluIGZsdXNoIGFuZCBzdGF0ZSBjaGFuZ2VzLgoJICBTZXQgdGhlIHBhZCBhY3RpdmF0ZSBtb2RlIGV2ZW4gaWYgaXQgZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmF0ZQoJICBmdW5jdGlvbi4KCjIwMDUtMDUtMjUgMTY6MDk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgoyMDA1LTA1LTI1IDE1OjU3OjU3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgRG9uJ3QgZ28gaW4gcHVsbCBtb2RlIGZvciBub24tc2Vla2FibGUgc291cmNlcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZGlzcG9zZSksIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZnJlZV9lbnRyeSksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLCAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChkb19wdWxsX3R5cGVmaW5kKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBBbGxvdyB0eXBlZmluZGluZyAody9vIHNlZWtpbmcpIGluIHB1c2gtbW9kZSwgc2ltcGxpZmllZCB2ZXJzaW9uCgkgIG9mIHdoYXQgd2FzIGluIDAuOC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9idWZmZXJfam9pbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdF9idWZmZXJfam9pbigpIGZyb20gMC44LgoKMjAwNS0wNS0yNSAxMzo1OToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoKMjAwNS0wNS0yNSAxMTo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrIGluIHRhc2sgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksIChnc3RfYmFzZXNpbmtfY2hhaW4pLAoJICAoZ3N0X2Jhc2VzaW5rX2xvb3ApLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9yZWFsX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9yZWFsX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3JlYWxfcGFkX2dldF9wcm9wZXJ0eSksIChnc3RfcGFkX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9pc19hY3RpdmUpLCAoZ3N0X3BhZF9nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X3BhZF91bmxpbmspLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X3JlYWxfcGFyZW50KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2dldF9wZWVyKSwgKGdzdF9wYWRfcmVhbGl6ZSksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZGlzcGF0Y2hlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9yZWFsX3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19pbml0KSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrCgkgIGluIHRhc2sgZnVuY3Rpb24uCgkgIFJlbW92ZSBBQ1RJVkUgcGFkIGZsYWcsIHVzZSBGTFVTSElORyBldmVyeXdoZXJlCgkgIEFkZGVkIF9wYWRfY2hhaW4oKSwgX3BhZF9nZXRfcmFuZ2UoKSB0byBjYWxsIGNoYWluL2dldHJhbmdlCgkgIGZ1bmN0aW9ucy4KCSAgQWRkIGxvY2tzIGFyb3VuZCBJU19GTFVTSElORyB3aGVuIHJlYWRpbmcuCgkgIFRha2UgU1RSRUFNIGxvY2sgaW4gY2hhaW4oKSwgZ2V0X3JhbmdlKCkgZnVuY3Rpb25zIHNvIHBsdWdpbnMKCSAgZG9uJ3QgbmVlZCB0byB0YWtlIGl0IGFueW1vcmUuCgoyMDA1LTA1LTI1IDExOjI2OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mIGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFVucmVmIG1lc3NhZ2UgYWZ0ZXIgdXNpbmcgaXRzIGNvbnRlbnRzIGluc3RlYWQgb2YKCSAgYmVmb3JlLgoKMjAwNS0wNS0yNCAxNjo0NzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBEb2NzIHVwZGF0ZXMuCgkgIEFkZGVkIGdlbmVyYWwgb3ZlcnZpZXcgZG9jLgoJICBBZGRlZCBkcmFmdCBnaG9zdHBhZCByZXBsYWNlbWVudCBpZGVhLgoKMjAwNS0wNS0yMiAwNDoyNjo0MSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC90bXBsL29sZC86IEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFdmVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEluZGV4LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0U3RydWN0dXJlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0VGFnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzX2NvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dldHRleHQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nb2JqZWN0Mmd0ay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dyYW1tYXIudGFiLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tYXBwLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tbGliLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0X3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhZ2dyZWdhdG9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YXJjaC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGF0b21pY19pbXBsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YnVmZmVyc3RvcmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkYXRhX3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRpc2tzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGV4dHJhdHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZha2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGh0dHBzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpZGVudGl0eS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG1hcnNoYWwuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtZDVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlmaWxlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RwaXBlZmlsdGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNlYXJjaGZ1bmNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2hhcGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyaWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzdGF0aXN0aWNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGVlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGltZWNhY2hlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0eG1scmVnaXN0cnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ndGhyZWFkLWNvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL3R5cGVzLnNnbWw6CgkgIEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCjIwMDUtMDUtMjAgMTI6NDc6MDUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA1LTE5IDE5OjU0OjAxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIC1uby1jb21tb24gZXZlcnl3aGVyZS4gIEluIGEgc2FuZSB3b3JsZCwgaXQgd291bGQgYmUgdGhlIGRlZmF1bHQgaW4gbGlidG9vbCwgYmVjYXVzZSB3aXRob3V0IGl0LCB5by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0CgkgIHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW91IGNhbid0CgkgIGJ1aWxkIERMTHMgb24gV2luZG93cy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgR3N0Q3B1LCBHc3REYXRhLCBHc3RUaHJlYWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y3B1LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RkYXRhLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0aHJlYWQuc2dtbDoKCjIwMDUtMDUtMTkgMTk6NDE6MTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuKjogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpLCAoZ3N0X3ZhbHVlX2dldF9taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCjIwMDUtMDUtMTkgMTY6MjY6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIHN1YmJ1ZmVyIHVucmVmIHRoZSBwYXJlbnQgaW4gZmluYWxpemUuIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JhbmRvbV9wYWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKToKCSAgTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLgoJICBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA1LTE5IDE2OjIzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgZnJlZSBwcmVyb2xsIHF1ZXVlIHRvbyBlYXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19pbml0KSwgKGdzdF9iYXNlc2lua19maW5hbGl6ZSksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLCAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgoyMDA1LTA1LTE5IDE0OjUyOjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIaSwgSSdtIG91dGRhdGVkLiBQbGVhc2Ugc2hvb3QgbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvUk9BRE1BUDoKCSAgSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoKMjAwNS0wNS0xOSAxMjowNzozNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvIG5vdCBhY2Nlc3MgdmFyaWFibGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGRlbGV0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoKMjAwNS0wNS0xOSAwODo0MTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEEgcGx1Z2luIGZlYXR1cmUgZG9lcyB1bmZvcnR1bmF0bHkgbm90IHVzZSB0aGUgb2JqZWN0IG5hbWUgeWV0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5fZmVhdHVyZXMpOgoJICBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlCgkgIG9iamVjdCBuYW1lIHlldC4uLgoKMjAwNS0wNS0xOCAxNzozNToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCjIwMDUtMDUtMTggMTM6NDk6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGNsb2NrIHNldHRlcnkgaW4gYmlucyB3aGVuIGFkZGluZyBraWRzIGFmdGVyIHRoZSBjbG9jayBoYXMgYmVlbiBzZWxlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzCgkgIGJlZW4gc2VsZWN0ZWQuCgoyMDA1LTA1LTE4IDEzOjIzOjI0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogV29ya2Fyb3VuZCB1bnRpbCBzaWduYWxzIHN1cHBvcnQgR3N0TWluaU9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgIFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgoyMDA1LTA1LTE4IDExOjM0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogT29wcywgZml4IGEgdHlwbyBHU1RfVFlQRV9CVUZGRVIgLT4gR1NUX1RZUEVfU1VCQlVGRkVSLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCjIwMDUtMDUtMTggMDk6NTU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2FkYXB0ZXJfY2xhc3NfaW5pdCksIChnc3RfYWRhcHRlcl9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2Rpc3Bvc2UpLCAoZ3N0X2FkYXB0ZXJfZmluYWxpemUpLCAoZ3N0X2FkYXB0ZXJfbmV3KSwKCSAgKGdzdF9hZGFwdGVyX2NsZWFyKSwgKGdzdF9hZGFwdGVyX3B1c2gpLCAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl9mbHVzaCksIChnc3RfYWRhcHRlcl9hdmFpbGFibGUpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgUG9ydGVkIGFuZCBhZGRlZCBhZGFwdGVyIHRvIHRoZSBiYXNlIGNsYXNzZXMuCgoyMDA1LTA1LTE3IDE3OjUwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWZmZWQvdW5yZWZmZWQgb25jZSBiZWZvcmUgdGhyZWFkcyBjYW4gYmUKCSAgdXNlZC4gIEZpeGVzICMzMDQ1NTEuCgoyMDA1LTA1LTE3IDE3OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgVW5yZWYgYnVmZmVyIHdoZW4gZmx1c2hpbmcgaW4gYmFzZXNpbmsuCgkgIEZsdXNoIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkKCSAgVW5yZWYgYnVmZmVyIHdoZW4gX3B1c2goKSByZXR1cm5zIGFuIGVycm9yLgoJICBEb24ndCBmcmVlIE1pbmlPYmplY3QgaW5zdGFuY2Ugd2hlbiByZWZjb3VudCBpcyBpbmNyZW1lbnRlZAoJICBpbiBfZmluYWxpemUoKSBzbyB0aGF0IHdlIGNhbiByZWNvdmVyIG9iamVjdHMuCgoyMDA1LTA1LTE3IDE3OjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1zY2hlZHVsZXJzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIHNtYWxsIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZG9jIGZpeGVzCgoyMDA1LTA1LTE3IDE0OjExOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhciBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBSZW1vdmUgSU5fU0VUQ0FQUyBmbGFnIHRvby4KCjIwMDUtMDUtMTcgMTQ6MDE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOyBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVtb3ZlIGltcGxpY2l0IGNhc3QgZnJvbSBnYm9vbGVhbiB0byBHc3RFbGVtZW50U3RhdGVSZXR1cm47CgkgIG1ha2Ugc3VyZSB3ZSBzdGlsbCByZXR1cm4gZmFpbHVyZSBpbiBwYXVzZWQgPT4gcmVhZHkgY2FzZSBpZgoJICB0aGUgcGFyZW50IGNsYXNzIGZhaWxzIHRvIGNoYW5nZSBzdGF0ZSBhbmQgb3VyIG93biBzdG9wCgkgIHZmdW5jIHN1Y2NlZWRzLgoKMjAwNS0wNS0xNyAxMDo0MTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNZXNzYWdlIHdhcyB1bnJlZmZlZCB0b28gc29vbi4KCjIwMDUtMDUtMTYgMjE6MTc6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IEVyci4uLiB1bS4uLgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9naG9zdF9wYWRzKTogTmV3IHRlc3QgZm9yIHRoZQoJICBnaG9zdGluZy1pZi1lbGVtZW50cy1ub3QtaW4tc2FtZS1iaW4gYmVoYXZpb3IuCgoyMDA1LTA1LTE2IDIxOjA1OjIxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZgoJICBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgoyMDA1LTA1LTE2IDIwOjIxOjU1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IHJlbW92ZSBHc3REYXRhIGNoZWNrcwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvTWFrZWZpbGUuYW06IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3QuaDogYWRkIG1pbmlvYmplY3QsIHJlbW92ZSBkYXRhCgkgICogZ3N0L2dzdGRhdGEuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGEuaDogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0dHlwZXMuaDogcmVtb3ZlIEdzdEV2ZW50IGFuZCBHc3RNZXNzYWdlCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWFyc2hhbC5saXN0OiBjaGFuZ2UgQk9YRUQgLT4gT0JKRUNUCgkgIEltcGxlbWVudCBHc3RNaW5pT2JqZWN0LgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgTW9kaWZ5IHRvIGJlIHN1YmNsYXNzZXMgb2YgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKSwgKGdzdF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpLCAoX2dzdF9idWZmZXJfY29weSksCgkgIChnc3RfYnVmZmVyX2luaXQpLCAoZ3N0X2J1ZmZlcl9uZXcpLCAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKSwKCSAgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksCgkgIChnc3RfYnVmZmVyX3NwYW4pOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSksIChnc3RfZXZlbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwKCSAgKF9nc3RfZXZlbnRfY29weSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3R5cGUpLCAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHByb2JlLmM6IChnc3RfcHJvYmVfcGVyZm9ybSksCgkgIChnc3RfcHJvYmVfZGlzcGF0Y2hlcl9kaXNwYXRjaCk6CgkgICogZ3N0L2dzdHByb2JlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLCAoZ3N0X3F1ZXJ5X2dldF90eXBlKSwKCSAgKGdzdF9xdWVyeV9jbGFzc19pbml0KSwgKGdzdF9xdWVyeV9maW5hbGl6ZSksIChnc3RfcXVlcnlfaW5pdCksCgkgIChfZ3N0X3F1ZXJ5X2NvcHkpLCAoZ3N0X3F1ZXJ5X25ldyk6CgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgR3N0RGF0YSAtPiBHc3RNaW5pT2JqZWN0IGNoYW5nZXMKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkgIChnc3RfYnVmZmVyX3N0b3JlX2FkZF9idWZmZXJfZnVuYyksCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyksIChnc3RfYnVmZmVyX3N0b3JlX2dldF9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X21tYXBfYnVmZmVyX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoZnJlZV9lbnRyeV9idWZmZXJzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoKMjAwNS0wNS0xNSAyMzoxODo0MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZSBqdXN0IHJlbW92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBEb24ndCBpbmNsdWRlIGhlYWRlcnMgdGhhdCB3ZXJlCgkgIGp1c3QgcmVtb3ZlZC4KCjIwMDUtMDUtMTUgMjM6MTY6MjkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0CgkgIG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0cGlwZWZpbHRlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5oOgoJICAqIHBvL1BPVEZJTEVTLmluOiBSZW1vdmUgYWJvdmUgZmlsZXMuCgoyMDA1LTA1LTE0IDE4OjAxOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlciBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogVXNlIHNpbmtfaXRlcmF0b3JfZmlsdGVyCgkgIHNvIGFzIHRvIGdldCB0aGUgcmVmcyByaWdodC4KCSAgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogTmV3IGZ1bmN0aW9uLCB3cmFwcyBiaW5fZWxlbWVudF9pc19zaW5rLAoJICB1bnJlZmZpbmcgb2JqZWN0cyB0aGF0IGRvbid0IHBhc3MgdGhlIGZpbHRlci4KCjIwMDUtMDUtMTQgMTc6MTI6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IERyb3AgcmVmIG9uIGJ1cyBhZnRlciBnc3RfZWxlbWVudF9zZXRfYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIKCSAgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKTogU2V0IHRoZSBidXMgb24gdGhlIHBpcGVsaW5lIHRvIE5VTEwuIEluCgkgIG5vcm1hbCBjYXNlcywgdGhpcyB3aWxsIGRlc3Ryb3kgdGhlIGJ1cy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAocHJlcGFyZV9saW5rX21heWJlX2dob3N0aW5nKTogRHJvcCByZWYgb24gcm9vdAoJICBvYmplY3QuCgoyMDA1LTA1LTE0IDE1OjU0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4gaGFzIG5vIHNpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4KCSAgaGFzIG5vIHNpbmtzLgoKMjAwNS0wNS0xNCAxNTozMjozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IEluc3RlYWQgb2YgY2FsbGluZyBnc3RfcGFkX2xpbmssIGNhbGwgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcKCSAgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICAocGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOiBMaW5rcyBwYWRzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZQoJICBlbGVtZW50cyBiZWluZyBsaW5rZWQgYXJlIGluIHRoZSBzYW1lIGJpbi4KCSAgKGZpbmRfY29tbW9uX3Jvb3QsIG9iamVjdF9oYXNfYW5jZXN0b3IsIGdob3N0X3VwLCByZW1vdmVfcGFkKToKCSAgSGVscGVycyBmb3IgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcuCgoyMDA1LTA1LTEzIDEyOjUzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVxdWlyZSBHTGliID49IDIuNC4wIChmb3IgdGhlIGdfYXRvbWljXyogZnVuY3MpCgoyMDA1LTA1LTEzIDEwOjE4OjQxICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIG1pc3NpbmcgLmggZmlsZSB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgoyMDA1LTA1LTEzIDA5OjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIEdzdFB1c2hTcmMKCjIwMDUtMDUtMTIgMTk6NDU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJZGVudGlmeSBzaW5rcyBieSB0aGVpciBmbGFnIHRvIGF2b2lkIG92ZXJseSBjb21wbGljYXRlZCBjaGVja3MgKGZvdyBub3cpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQKCSAgY2hlY2tzIChmb3cgbm93KS4KCSAgRG8gc3RhdGUgY2hhbmdlcyBldmVuIGZvciBlbGVtZW50cyBub3QgcmVhY2hhYmxlIGZyb20gdGhlCgkgIHNpbmtzLgoJICBCYXNlU2luayBpcyBhIHNpbmsgbm93IDopCgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mbyBpbiB0aGUgYmFzZXNyYy4KCjIwMDUtMDUtMTIgMTU6MDk6MTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXBsZW1lbnQgX3F1ZXJ5IG9uIGEgYmluLCBzaW1pbGFyIHRvIF9zZW5kX2V2ZW50LgoKMjAwNS0wNS0xMiAxMzo1OTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLCBub3QgR1NUX0ZPUk1BVF9USU1FLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKToKCSAgRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLAoJICBub3QgR1NUX0ZPUk1BVF9USU1FLgoKMjAwNS0wNS0xMiAxMzoxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU2FtZSBmaXggYXMgUm9uYWxkJ3MgYnV0IHdpdGhvdXQgdGhlIHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgoyMDA1LTA1LTEyIDEyOjI3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKToKCSAgTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoKMjAwNS0wNS0xMiAxMjoxNzoyMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBJZiBhIGNoaWxkIGlzIHJlbW92ZWQgZnJvbSBhIGJpbiB3aGlsZSB3ZSByZW1vdmUgdGhlIGNoaWxkIGZyb20gdGhlIGJpbiBhbmQgd2hpbGUgd2UncmUgcmV0cmlldmluZyBpdHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoY2JfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9iaW5fZ2V0X3N0YXRlKToKCSAgSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tCgkgIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIHN0YXRlLCBzaWduYWwgdGhpcyB0byB0aGUKCSAgZ2V0X3N0YXRlIGZ1bmN0aW9uIHNvIHdlIGFib3J0IHRoZSB3YWl0IChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yCgkgIGEgdGltZW91dCkgYW5kIGNhbiBpbW1lZGlhdGVseSByZS1pdGVyYXRlIG92ZXIgYWxsIG90aGVyIGVsZW1lbnRzLgoKMjAwNS0wNS0xMiAxMDo0MzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogQWRkZWQgaXNfc2Vla2FibGUgdG8gQmFzZVNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoc3JjX2dldF90eXBlKSwKCSAgKGdzdF9wdXNoc3JjX2Jhc2VfaW5pdCksIChnc3RfcHVzaHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdXNoc3JjX2luaXQpLCAoZ3N0X3B1c2hzcmNfY3JlYXRlKToKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgQWRkZWQgc2ltcGxlIFB1c2hTcmMuCgoyMDA1LTA1LTExIDA5OjIxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHJlZmNvdW50aW5nIGluIHV0aWxzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwgKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQpLCAoaW50ZXJzZWN0X2NhcHNfZnVuYyksCgkgIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwgKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgIEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgTm8gcG9pbnQgaW4gdHJ5aW5nIHRvIGFjdGl2YXRlIGEgcGFkIHdoZW4gaXQncyBhZGRlZCwgaXQgY291bGQKCSAgYmUgYWRkZWQgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCB0aGVuIHdlIGRlYWRsb2NrLCB0aGUKCSAgZWxlbWVudCBoYXMgdG8gZGVjaWRlIHdoYXQgdG8gZG8uCgoyMDA1LTA1LTExIDAzOjM3OjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6IEVyLCBlbWl0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgICphbGwqIHRoZSBhcmd1bWVudHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOiBHcmFiIHRoZQoJICBzdHJlYW0gbG9jayBpZiBpdCdzIGEgRkxVU0hfRE9ORTsgbm9ybWFsIGZsdXNoZXMgZG9uJ3QgZ2V0IHRoZQoJICBsb2NrIChhY2NvcmRpbmcgdG8gdGhlIGRvY3MgLS0gaWYgdGhpcyBpcyB3cm9uZyBjaGFuZ2UgdGhlIGRvY3MpLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogU2V0IHRoZSBidXMgdG8KCSAgZmx1c2ggbWVzc2FnZXMgaW4gdGhlIE5VTEwgc3RhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3Bvc3QpOiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgdW5yZWYgdGhlCgkgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYW5kIHJldHVybi4KCSAgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKTogTmV3IGZ1bmN0aW9uLiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgaXQKCSAgZmx1c2hlcyBvdXQgYW55IHF1ZXVlZCBtZXNzYWdlcyBhbmQgaW1tZWRpYXRlbHkgdW5yZWZzIG5ldwoJICBtZXNzYWdlcy4gVGhpcyBpcyBzbyB3aGVuIGFuIGVsZW1lbnQgZ29lcyB0byBOVUxMLCBhbGwgb2YgdGhlCgkgIHVuaGFuZGxlZCBtZXNzYWdlcyBjb21pbmcgZnJvbSBpdCBjYW4gYmUgZnJlZWQsIGFuZCB0aGVpcgoJICByZWZlcmVuY2VzIHRvIHRoZSBlbGVtZW50IGRyb3BwZWQuIEluIG90aGVyIHdvcmRzOiBtZXNzYWdlIHNvdXJjZQoJICByZWYgY29uc2lkZXJlZCBoYXJtZnVsIDpQCgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IFVucmVmIHBlZXIgZWxlbWVudCB3aGVuCgkgIHdlJ3JlIGZpbmlzaGVkIHdpdGggaXQuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoKMjAwNS0wNS0xMCAxNDo1MTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICByZW1vdmUgc3R1cGlkIHByaW50ZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCjIwMDUtMDUtMTAgMTQ6NTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBBZGRlZCBmbGFncyBzZXJpYWxpemUvZGVzZXJpYWxpemUvY29tcGFyZSBjb2RlLgoKMjAwNS0wNS0wOSAyMTozNzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6IEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCjIwMDUtMDUtMDkgMTU6NTQ6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC86IEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgSGFuZGxlIG5lZ2F0aXZlIG9mZnNldHMgYmV0dGVyLiBGaXhlcyBkZWNvZGViaW4uCgoyMDA1LTA1LTA5IDE0OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSW1wbGVtZW50IGFjY2VwdF9jYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSk6CgkgIEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgRml4IHNpbGx5IGxvY2svdW5sb2NrIG1pc21hdGNoIGluIGJhc2UgY2xhc3MuCgoyMDA1LTA1LTA5IDEwOjUzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlIG9sZCBxdWVyeSBmdW5jdGlvbnMuIFBvcnRlZCBvbGQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIEFkZGVkIHBvc2l0aW9uL2NvbnZlcnQgaGVscGVyIGZ1bmN0aW9ucyB0byBnc3R1dGlscy4KCSAgUmVvcmRlcmVkIGdzdHBhZC5jIGNvZGUsIGdyb3VwaW5nIHJlbGV2YW50IHRoaW5ncy4KCSAgUmVtb3ZlIGdzdF9tZXNzYWdlX25ldygpLCBhbHdheXMgbmVlZCB0byBzcGVmaWN5IGEgc3BlY2lmaWMKCSAgbWVzc2FnZS4KCjIwMDUtMDUtMDkgMDY6MjE6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6IEFkZCBzb21lIGluY2x1ZGVzLgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IEluY2x1ZGUgbW9yZSBoZWFkZXJzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pOiBOZXcgcm91dGluZSwgcmVwbGFjZXMKCSAgc29tZSB1c2VzIG9mIGdzdF9wYWRfcXVlcnkuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzogQnVpbGQgZml4ZXMuIE1ha2UgcGFyc2UgZnVuY3Rpb25zIGlnbm9yZQoJICBOVUxMIG91dCBwYXJhbWV0ZXJzLgoJICAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbik6IE5ldyBwcm9jLCBhbGxvY2F0ZXMgYSBuZXcgcG9zaXRpb24KCSAgcXVlcnkuCgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJnc3RyZWFtZXJfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKTogQWRkCgkgIGdzdHF1ZXJ5dXRpbHMuYyB0byB0aGUgYnVpbGQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpOiBJbXBsZW1lbnQgd2l0aAoJICB0aGUgZ2VuZXJpYyBHX1ZBTFVFX0NPTExFQ1QuCgoyMDA1LTA1LTA4IDE3OjA3OjA1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcyBhICduYWNodHknIG1vdmUgd2luZ28gOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiAoZ3N0X2hlYWRlcnMpOgoJICBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcwoJICBhICduYWNodHknIG1vdmUgd2luZ28gOikKCjIwMDUtMDUtMDYgMjE6NDE6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RxdWVyeS5oCgkgICogZ3N0L2dzdHF1ZXJ5LmMgKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSk6IEV4dGVuZCBHc3RRdWVyeSBmcm9tCgkgIEdzdERhdGEsIGluaXQgYSBtZW1jaHVuay4KCSAgKHN0YW5kYXJkX2RlZmluaXRpb25zKTogQWRkIGEgZmV3IHF1ZXJ5IHR5cGVzLCBkZXByZWNhdGUgYSBmZXcuCgkgIChnc3RfcXVlcnlfZ2V0X3R5cGUpOiBOZXcgcHJvYy4KCSAgKF9nc3RfcXVlcnlfY29weSwgX2dzdF9xdWVyeV9mcmVlLCBnc3RfcXVlcnlfbmV3KTogR3N0RGF0YQoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKGdzdF9xdWVyeV9uZXdfYXBwbGljYXRpb24sIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKTogTmV3IHB1YmxpYwoJICBwcm9jcy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6IFJlbW92ZWQgTElOS1MgZnJvbSB0aGUgcXVlcnkgdHlwZXMsCgkgIGJlY2F1c2UgYWxsIHRoZSByZXN0IGNhbiBiZSBkaXNwYXRjaGVkIHRvIG90aGVyIHBhZHMgLS0gc2VlbWVkCgkgIHVnbHkgdG8gaGF2ZSBhIHF1ZXJ5IHRoYXQgY291bGRuJ3QgYmUgZGlzcGF0Y2hlZC4gaW50ZXJuYWxfbGlua3MKCSAgaXMgZmluZSBhcyBhIHBhZCBtZXRob2QuCgkgICogZ3N0L2dzdHBhZC5oOiBBZGQgcXVlcnkyIGFzIGEgcGFkIG1ldGhvZCwgYWRkIHRoZSBuZXcgZnVuY3Rpb25zCgkgIGluIGdzdHBhZC5jLCBidXQgbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgZm9yIHRoZSBtb21lbnQuCgkgIFdpbGwgZml4IGJlZm9yZSAwLjkgaXMgb3V0LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDogTmV3IGZpbGVzLCBpbXBsZW1lbnQgMyBtZXRob2RzIGZvciBlYWNoCgkgIHF1ZXJ5IHR5cGU6IHBhcnNlX3F1ZXJ5LCBwYXJzZV9yZXNwb25zZSwgYW5kIHNldC4gUHJvYmFibHkgbmVlZCBhbgoJICBhbGxvY2F0b3IgYXMgd2VsbC4KCSAgKiBnc3QvZ3N0Lmg6IEFkZCBnc3RxdWVyeS5oIGFuZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3QuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlc2lua19xdWVyeTIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfcXVlcnkyKTogUmVwbGFjZSBvbGQgcXVlcnksCgkgIHF1ZXJ5X3R5cGVzLCBhbmQgZm9ybWF0cyBtZXRob2RzLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9xdWVyeTIsIGdzdF9wYWRfcXVlcnkyX2RlZmF1bHQpCgkgIChnc3RfcGFkX3NldF9xdWVyeTJfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJICAoZ3N0X3JlYWxfcGFkX2luaXQpOiBTZXQgcXVlcnkyX2RlZmF1bHQgYXMgdGhlIGRlZmF1bHQgcXVlcnkyCgkgIGZ1bmN0aW9uLiBCYXNpY2FsbHkganVzdCBkaXNwYXRjaGVzIHRvIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgkgIE5lZWRzIHJldmlldyEKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmggKF9HU1RfREFUQV9JTklUKTogU2V0IGRhdGEtPnJlZmNvdW50IHRvIDEKCSAgd2l0aG91dCB1c2luZyB0aGUgYXRvbWljIG9wZXJhdGlvbnMuIE9ubHkgb25lIHRocmVhZCBjYW4gcG9zc2libHkKCSAgYmUgYWNjZXNzaW5nIHRoZSBkYXRhIGF0IHRoaXMgcG9pbnQuIENoYW5nZWQgc28gYXMgdG8gYXZvaWQKCSAgZ3N0X2F0b21pYyBvcGVyYXRpb25zLgoKMjAwNS0wNS0wNiAxOTo1MDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCjIwMDUtMDUtMDYgMTc6MzM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQdXJnZSBHc3RBdG9taWMgc3R1ZmYgZnJvbSBkb2NzIGFuZCB3aW4zMiBtYWtlZmlsZXMgYXMgd2VsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkgICogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkgICogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi9NYWtlZmlsZToKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCjIwMDUtMDUtMDYgMTc6MTA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9nZXRjYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2dldGNhcHMpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGludGVyc2VjdF9jYXBzX2Z1bmMpOgoJICBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgQWx3YXlzIHRha2UgUVVFVUVfTE9DSyBhZnRlciBTVFJFQU1fTE9DSyBvciB3ZSBtaWdodCBkZWFkbG9jay4KCSAgU29tZSBmaXhlcyBmb3IgdGhlIHBlZXJfZ2V0X2NhcHMoKSBjaGFuZ2UuCgoyMDA1LTA1LTA2IDE2OjE5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaAoJICBmdW5jdGlvbnMuCgoyMDA1LTA1LTA2IDA4OjI1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX3VubG9jayksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIEZpeGVkIHNjaGVkdWxpbmcgZGVjaXNpb24gaW4gX3BhZHNfYWN0aXZhdGUoKS4KCjIwMDUtMDUtMDUgMjE6NTk6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaW5hbCBjcnVmdCBmaXhhZ2UKCjIwMDUtMDUtMDUgMjE6NDU6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBjcnVmdCByZW1vdmFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjcnVmdCByZW1vdmFsCgoyMDA1LTA1LTA1IDIxOjQyOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHJldmVydCBjcnVmdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGNydWZ0CgoyMDA1LTA1LTA1IDIxOjM3OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoKMjAwNS0wNS0wNSAxNTowMjo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF8yX2VsZW1lbnRzKTogIkZpeCIgdGhlIHRlc3Qgc3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiCgkgIHRoZSB0ZXN0IHN1aXRlLgoKMjAwNS0wNS0wNSAxMTo0MzowNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCBicm9rZW4gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoKMjAwNS0wNS0wNSAwOTozMTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyksIChnc3RfYmFzZXNyY19xdWVyeSk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSksCgkgIChnc3RfY29sbGVjdHBhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RwYWRzX25ldyksCgkgIChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwKCSAgKGZpbmRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19nZXRfdGltZXMpLCAoZ3N0X2Zha2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9mYWtlc2lua19wcmVyb2xsKSwgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVzaW5rX2luaXQpLCAoZ3N0X2ZpbGVzaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNpbmtfb3Blbl9maWxlKSwgKGdzdF9maWxlc2lua19jbG9zZV9maWxlKSwKCSAgKGdzdF9maWxlc2lua19wYWRfcXVlcnkpLCAoZ3N0X2ZpbGVzaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlc2lua19yZW5kZXIpLCAoZ3N0X2ZpbGVzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgUG9ydGVkIGZpbGVzaW5rLgoJICBNYWtlIGV2ZW50IGZ1bmN0aW9uIGluIHNpbmsgYmFzZWNsYXNzIHJldHVybiBnYm9vbGVhbi4KCjIwMDUtMDUtMDUgMDk6Mjg6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NlbmRfZXZlbnQpLCAoY29tcGFyZV9uYW1lKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0ZGF0YS5jOiAoZ3N0X2RhdGFfcmVwbGFjZSk6CgkgICogZ3N0L2dzdGRhdGEuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBBZGRlZCBfZGF0YV9yZXBsYWNlKCkgZnVuY3Rpb24gYW5kIF9idWZmZXJfcmVwbGFjZSgpCgkgIFVzZSBmaW5hbGl6ZSBtZXRob2QgdG8gY2xlYW4gdXAgY2xvY2suCgkgIEZpeCByZWZjb3VudGluZyBvbiByZXF1ZXN0IHBhZHMuCgkgIEZpeCBwYWQgc2NoZWR1bGUgbW9kZSBlcnJvci4KCSAgU29tZSBtb3JlIG9iamVjdCByZWZjb3VudGluZyBkZWJ1ZyBpbmZvLAoKMjAwNS0wNS0wNCAyMToyOTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR0NDIDQgZml4ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA0ICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLAoJICAoZ3N0X2Jhc2VzcmNfcXVlcnkpLCAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfZWxlbWVudF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zYXZlX3RoeXNlbGYpLCAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSksIChnc3RfY2Fwc19zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2NhcHNfbG9hZF90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLCAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xvYWRfYW5kX2xpbmspLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2dob3N0X3BhZF9zYXZlX3RoeXNlbGYpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF93cml0ZSksIChnc3RfeG1sX3BhcnNlX2RvYyksCgkgIChnc3RfeG1sX3BhcnNlX2ZpbGUpLCAoZ3N0X3htbF9wYXJzZV9tZW1vcnkpLAoJICAoZ3N0X3htbF9nZXRfZWxlbWVudCksIChnc3RfeG1sX21ha2VfZWxlbWVudCk6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLAoJICAocmVhZF9lbnVtKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksCgkgIChsb2FkX3BhdGhzKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLCAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHhtbGxhdW5jaF9wYXJzZV9jbWRsaW5lKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzKToKCSAgR0NDIDQgZml4ZW4uCgoyMDA1LTA1LTA0IDE5OjQxOjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmaWxlIHRvIHdvcmsgZm9yIDAuOSBicmFuY2gKCjIwMDUtMDUtMDMgMTI6NDY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2NoZWNrX21vZHVsZSksCgkgIChnc3RfcGx1Z2luX2NoZWNrX2ZpbGUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoKMjAwNS0wNS0wMiAxNjo1MDozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA1LTAyIDE1OjMxOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkgIG1vcmUgcHJpbnQgZm9ybWF0IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoKMjAwNS0wNS0wMiAxNToyMDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWVyZ2VzIGZyb20gMC44IGZvciA2NCBiaXQgaXNzdWVzCgoyMDA1LTA1LTAyIDEzOjU1OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZHJhZnQgZm9yIG5ldyBxdWVyeSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBBZGRlZCBkcmFmdCBmb3IgYmV0dGVyIHNlbGVjdGluZyBzY2hlZHVsaW5nIG1ldGhvZHMuCgkgIE1ha2UgYmFzZXNyYyBpZ25vcmUgbGVuZ3RoIGlmIHRoZSBzdWJjbGFzcyBkb2VzIG5vdCBzdXBwb3J0CgkgIGl0LgoKMjAwNS0wNS0wMiAxMTo1NDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYXV0b21ha2UgMS41IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvbWFrZSAxLjUgZml4ZXMKCjIwMDUtMDUtMDIgMTE6NDc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCjIwMDUtMDQtMjggMTY6Mjg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEJldHRlciBkZWJ1Z2dpbmcgb2YgY2xvY2tpbmcgaW5mby4KCSAgQWxsb3cgTlVMTCB2YWx1ZXMgd2hlbiBnZXR0aW5nIGRpc2NvbnQgdmFsdWVzLgoKMjAwNS0wNC0yNyAxNDoxOTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC86IEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3N1aXRlKToKCSAgSW5jcmVhc2UgdGltZW91dCBmb3IgY2hlY2tzLgoKMjAwNS0wNC0yNyAxMzo1Mjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZml4IHRoZSBicm9rZW4gcnVsZSBmb3IgY2xlYW51cC4gIEFwcGFyZW50bHkgdGhpcyBydWxlIGlzIG9ubHkgbmVlZGVkIG9uIEZDMiwgc28gbWF5YmUgdGhpcyB3YXJyYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcwoJICBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFudHMgZnVydGhlciBhdXRvdG9vbAoJICBpbnNwZWN0aW9uLgoKMjAwNS0wNC0yNiAxODowNzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0cmFzaHN0YWNrLmg6IE9vb2hoLiBhIG5hc3R5IG9uZSEgQWZ0ZXIgaGF2aW5nIGEgZmFpbGVkIHBvcCgpIGZyb20gdGhlIHN0YWNrLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN0YWNrIGlzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywKCSAgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyBlbXB0eS4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBmb2xsb3cgdGhlIE5VTEwgcG9pbnRlci4KCjIwMDUtMDQtMjUgMTM6MDA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aCB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfc3RhcnRfdGFzayksCgkgIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZCk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aAoJICB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBSZXZlcnQgYm9ndXMgY2FwcyB0ZW1wbGF0ZSBjaGVjayBpbiBwYWQgbGlua2luZywgcGFkIGNhcHMKCSAgYXJlIGltcG9ydGFudCB3aGVuIGxpbmtpbmcgbm90IHRoZSB0ZW1wbGF0ZSwgd2hpY2ggaXMgbW9yZQoJICBnZW5lcmFsIHRoYW4gdGhlIGN1cnJlbnQgY2Fwcy4KCjIwMDUtMDQtMjUgMTE6NTE6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlcmUgaXMgbm8gc3BlZWQuICByZWFsbHkuCgoyMDA1LTA0LTI1IDA5OjUxOjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYXV0b3BsdWcvOiBEaWUsIHNwaWRlciwgZGllLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b3BsdWcvLmN2c2lnbm9yZToKCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuaDoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuaDoKCSAgKiBnc3QvYXV0b3BsdWcvc3BpZGVydGVzdC5jOgoJICBEaWUsIHNwaWRlciwgZGllLgoKMjAwNS0wNC0yNSAwOTo0NTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoKMjAwNS0wNC0yNSAwMzo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTI0IDIzOjUzOjA2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuaDogRGlzYWJsZSBzb21lIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLiAgV2ltLCBwbGVhc2UgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwKCSAgcGxlYXNlIGZpeC4KCjIwMDUtMDQtMjQgMjI6NDk6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQ29udmVydCBldmVyeXRoaW5nIGZyb20gR3N0QXRvbWljSW50IHRvIGdfYXRvbWljX2ludF8qLCBhbmQgcmVtb3ZlIGdzdGF0b21pYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kCgkgIHJlbW92ZSBnc3RhdG9taWMuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RhdG9taWMuYzoKCSAgKiBnc3QvZ3N0YXRvbWljLmg6CgkgICogZ3N0L2dzdGF0b21pY19pbXBsLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGF0YS5jOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogQWRkIGdzdF9hdG9taWNfaW50X3NldCgpIGNvbXBhaXRpYmlsaXR5IGZ1bmN0aW9uLgoJICAqIGdzdC9nc3R1dGlscy5oOgoKMjAwNS0wNC0yNCAyMjo0NDoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8gbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubyBsb25nZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCk6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8KCSAgbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubwoJICBsb25nZXIgdHJ1ZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfdGVtcGxhdGVzX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBEaXNhYmxlIHdhcm5pbmcgZm9yIHBhZHMgd2l0aG91dCB0ZW1wbGF0ZXMuCgoyMDA1LTA0LTI0IDIxOjE2OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlIGhhbmRsaW5nIG9mIGZpbHRlcmVkIGNhcHMuICBGaXgvbWVyZ2UgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIGZpbHRlcmVkIGxpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlCgkgIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IFJlbW92ZSAnYXBwZmlsdGVyJyBmaWVsZCBhbmQgcHJvdG90eXBlcyBvZgoJICByZW1vdmVkIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogRml4L3JlbW92ZSB1dGlsaXR5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZQoJICBmaWx0ZXJlZCBjYXBzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiBBZGQgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gb2YgY2FwcwoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IElnbm9yZSBmaWx0ZXJlZCBjYXBzIHdoZW4gbGlua2luZy4gIFRoaXMKCSAgcmVxdWlyZXMgZml4aW5nIHNvIHRoYXQgdGhlIGZpbHRlciBjYXBzIG5vdGF0aW9uIGNyZWF0ZXMKCSAgYSBjYXBzZmlsdGVyIGVsZW1lbnQgYW5kIHNldHMgdGhlIGZpbHRlcl9jYXBzIHByb3BlcnR5LiAgSQoJICB0aGluayBldmVyeW9uZSBwcm9iYWJseSB3YW50cyB0byBrZWVwIHRoZSBzaG9ydGhhbmQgbm90YXRpb24uCgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6IHVwZGF0ZXMgZm9yIEFQSSBjaGFuZ2VzLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IFJlZ2lzdGVyIGNhcHNmaWx0ZXIgZWxlbWVudC4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IGZpeCBzcGFjaW5nCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiByYW5kb20KCjIwMDUtMDQtMjMgMjM6Mjk6NDcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzLzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4gaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZCBjYXBzIGluIHBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBOZXcgZWxlbWVudCB0aGF0IGFjdHMgbGlrZSBhbgoJICBpZGVudGl0eSwgYnV0IGZpbHRlcnMgY2Fwcy4gIFdpbGwgZXZlbnR1YWxseSByZXBsYWNlIGZpbHRlcmVkCgkgIGNhcHMgaW4gcGFkIGxpbmtpbmcuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9jcmVhdGVfYWxsX3BhZHMpOiBOZXcgZnVuY3Rpb24KCSAgdG8gY3JlYXRlIGFsbCB0aGUgQUxXQVlTIHBhZHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB3aXRoIGFuCgkgIGVsZW1lbnQgY2xhc3MuICBUaGlzIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGV2ZW50dWFsbHkgYmUKCSAgbWVyZ2VkIGluIHdpdGggR3N0RWxlbWVudCBpbml0aWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6IHBhcnQgb2YgdHJpZ2dlciB0ZXN0IGNvZGUgdGhhdCBzaG91bGQKCSAgaGF2ZSBiZWVuIGNoZWNrZWQgaW4gYSBsb25nIHRpbWUgYWdvLgoKMjAwNS0wNC0yMyAyMzoyNTowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJlbW92ZSBhcy1saWJ0b29sIHN0dWZmLiAgSXQncyBsaWtlbHkgbm90IGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdAoJICBuZWVkZWQgd2l0aCBuZXcgdmVyc2lvbnMgb2YgbGlidG9vbCAobm9ib2R5IHdpbGwgY29uZmlybSB0aGlzKSwKCSAgYW5kIGhhcmQgdG8gY2FycnkgYXJvdW5kLgoJICAqIGdzdC9hdXRvcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9NYWtlZmlsZS5hbToKCjIwMDUtMDQtMjEgMTc6MTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgTWFrZWZpbGUuYW0gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yMSAwOTozNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICBTb21lIG1vcmUgZG9jcy4KCjIwMDUtMDQtMjEgMDk6MzM6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgcGFyZW50IHJlZmNvdW50IGluIEdzdE1lc3NhZ2UgdG8gZW5zdXJlIEdzdFN0cnVjdHVyZSBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9jb3B5KSwgKF9nc3RfbWVzc2FnZV9mcmVlKSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF9wYXJlbnRfcmVmY291bnQpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUKCSAgY29uc2lzdGVuY3kuCgkgIENsZWFuZWQgdXAgaGVhZGVycyBhIGJpdC4KCjIwMDUtMDQtMjAgMDk6MTA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIGdzdF9jYXBzX3JlcGxhY2UoKSB3b3JrIGxpa2Ugb3RoZXIgX3JlcGxhY2UoKSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChmaW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSksIChkb190eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX3N1Yl9mcmVlKSwKCSAgKGdzdF9idWZmZXJfZGVmYXVsdF9mcmVlKSwgKGdzdF9idWZmZXJfZGVmYXVsdF9jb3B5KSwKCSAgKGdzdF9idWZmZXJfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZWYpLCAoZ3N0X2NhcHNfdW5yZWYpLAoJICAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ldyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmVfZmlsdGVyZWQpLCAoZ3N0X3BhZF9yZWxpbmtfZmlsdGVyZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBVc2UgX2NhcHNfcmVwbGFjZSgpIHdoZXJlIHBvc3NpYmxlLgoJICBNYWtlIHN1cmUgX21lc3NhZ2VfbmV3KCkgaW5pdGlhbGlzZXMgaXRzIGZpZWxkLgoJICBBZGQgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoKQoKMjAwNS0wNC0xOCAwODo1MzowMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCjIwMDUtMDQtMTggMDg6MjQ6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KTogQkxPQ0tTSVpFIGlzIGEgVUxPTkcuIFJlbmFtZSBBUkdfLi4uCgkgIHRvIFBST1BfLi4uLgoKMjAwNS0wNC0xNiAyMDoyNzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBORVdTOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgTkVXUyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTkVXUyBidWlsZAoKMjAwNS0wNC0xNiAyMDoxNjozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmVkIHNvbWUgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCjIwMDUtMDQtMTYgMTY6Mjg6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZSB0byBwa2djb25maWcgcGF0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCjIwMDUtMDQtMTQgMTc6MTc6MzAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZmFxL3VzaW5nLnhtbDogQWRkIG5vdGUgb24gZ3N0cmVhbWVyLXByb3BlcnRpZXMgKCMxNTQ5OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCjIwMDUtMDQtMTMgMTc6NDE6MjkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOiBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOgoJICBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgoyMDA1LTA0LTEyIDE1OjAwOjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBVc2UgbGlieG1sMiBmb3IgcmVnaXN0cnkgcGFyc2luZywgdXNlIHN0YXRpY3BhZHRlbXBsYXRlcyBpbiBlbGVtZW50ZmFjdG9yaWVzLiBNYWtlcyBnc3RfaW5pdCgpICsvLSAxMHggZmFzdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NsZWFudXApLCAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpLAoJICAoX19nc3RfZWxlbWVudF9mYWN0b3J5X2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3N0YXRpY19wYWRfdGVtcGxhdGVzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NyY19jYXBzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NpbmtfY2Fwcyk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9jbGFzc19pbml0KSwgKGdzdF94bWxfcmVnaXN0cnlfaW5pdCksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X25ldyksIChnc3RfeG1sX3JlZ2lzdHJ5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wcm9wZXJ0eSksIChnZXRfdGltZSksIChtYWtlX2RpciksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wZXJtc19mdW5jKSwKCSAgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuX3JlY3Vyc2UpLCAocGx1Z2luX3RpbWVzX29sZGVyX3RoYW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9vcGVuX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkX2Z1bmMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9jbG9zZV9mdW5jKSwKCSAgKGFkZF90b19jaGFyX2FycmF5KSwgKHJlYWRfc3RyaW5nKSwgKHJlYWRfdWludCksIChyZWFkX2VudW0pLAoJICAobG9hZF9wYWRfdGVtcGxhdGUpLCAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKSwgKGxvYWRfcGF0aHMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2NhcHMpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfZmVhdHVyZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGRfcmVjdXJzZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGFkX3RlbXBsYXRlc19pbmZvKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4KCSAgZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCjIwMDUtMDQtMTIgMTA6NTI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBTbWFsbCBwcmVyb2xsIGZpeCBpbiB0aGUgYmFzZSBzaW5rLgoJICBEaXNhYmxlIHR5cGVmaW5kIGNvZGUgaW4gYmFzZXNyYy4KCSAgQ3J1ZGUgcG9ydCBvZiB0eXBlZmluZGVsZW1lbnQuCgkgIEZha2VzcmMgY2xlYW51cHMuCgoyMDA1LTA0LTEyIDA5OjE2OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSAgSW5jcmVhc2UgdGltZW91dCBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgoyMDA1LTA0LTExIDEyOjAyOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgb25seSBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmx5IGRpcnMKCjIwMDUtMDQtMTEgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA0LTExIDExOjI0OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChnc3RidXNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RkYXRhLmM6ICh0aHJlYWRfcmVmKSwgKGdzdF9kYXRhX3N1aXRlKToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoKMjAwNS0wNC0xMSAwOTo1Mzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkgIGRpc3QgdHJpZ2dlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzdCB0cmlnZ2VyCgoyMDA1LTA0LTEwIDIxOjQyOjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDIwOjI5OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDQtMTAgMTg6MTk6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA4IDExOjM0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIGdzdHBhcmVudC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMDYgMTc6MzA6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2VzcmNfbG9vcCksCgkgIChnc3RfYmFzZXNyY191bmxvY2spLCAoZ3N0X2Jhc2VzcmNfZ2V0X3NpemUpLCAoZ3N0X2Jhc2VzcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RvcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpLCAoYmFzZXNyY19maW5kX3BlZWspLAoJICAoYmFzZXNyY19maW5kX3N1Z2dlc3QpLCAoZ3N0X2Jhc2VzcmNfdHlwZV9maW5kKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZXNyY19jbGFzc19pbml0KSwgKGdzdF9maWxlc3JjX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfZmluYWxpemUpLCAoZ3N0X2ZpbGVzcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmlsZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVzcmNfZnJlZV9wYXJlbnRfbW1hcCksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlX21tYXApLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlKSwKCSAgKGdzdF9maWxlc3JjX2dldF9zaXplKSwgKGdzdF9maWxlc3JjX3N0YXJ0KSwgKGdzdF9maWxlc3JjX3N0b3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLAoJICBxdWVyeS4KCSAgTWFrZSBmaWxlc3JjIGV4dGVuZCB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgkgIEFkZGVkIGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24gdG8gR3N0UGFkLgoKMjAwNS0wNC0wNiAxMTowODowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcGtnY29uZmlnLzogTmV3IGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOiBOZXcgZmlsZXMuCgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIGdzdHJlYW1lci1iYXNlIHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMDQtMDUgMTc6NDE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgYWRkIGEgbm90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbm90ZQoKMjAwNS0wNC0wNSAwODo0NDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1hZGUgYmFzZSBzb3VyY2UgY2xhc3MsIG1ha2UgZmFrZXNyYyBleHRlbmQgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19nZXRfZm9ybWF0cyksCgkgIChnc3RfYmFzZXNyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfbG9vcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2Zha2VzcmNfaW5pdCksCgkgIChnc3RfZmFrZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9mYWtlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19nZXRyYW5nZSksCgkgIChnc3RfZmlsZXNyY19vcGVuX2ZpbGUpLCAoZ3N0X2ZpbGVzcmNfbG9vcCksCgkgIChnc3RfZmlsZXNyY19hY3RpdmF0ZSksIChmaWxlc3JjX2ZpbmRfcGVlayksCgkgIChnc3RfZmlsZXNyY190eXBlX2ZpbmQpOgoJICBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBBZGQgY29tbWVudHMgdG8gYmFzZXNpbmsgY2xhc3MuCgkgIFNvbWUgZmlsZXNyYyBjbGVhbnVwLgoKMjAwNS0wNC0wMSAxMDoxNDo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzdXBwb3J0IGZvciBnb29nbGUgbWFsbG9jIGlmIGF2YWlsYWJsZQoKMjAwNS0wNC0wMSAwMjo0MTozNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgU3dpdGNoIHRvIHVzaW5nIEdfTU9EVUxFX0JJTkRfTE9DQUwsIHdoaWNoIG1lYW5zIHBsdWdpbnMgYXJlIG5vdwoJICBleHBlY3RlZCB0byBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBzYW1lCgoyMDA1LTAzLTMxIDE1OjAwOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9pbnN0YW50aWF0ZS86IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5IGFuZCBmcmVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5CgkgIGFuZCBmcmVlLgoJICAqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYyAobWFpbik6IFVzZSBhbGxvYyBvbmx5IG9uIHRoZQoJICBHTWVtQ2h1bmsgdG8gYmUgZmFpci4KCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOiBSZW1vdmUgd2FybmluZyBhYm91dCB1c2luZyB0aGUgZmFsbGJhY2sKCSAgdHJhc2ggc3RhY2sgaW1wbGVtZW50YXRpb24sIGl0J3Mgc3RpbGwgZmFzdGVyIHRoYW4gbWFsbG9jLgoKMjAwNS0wMy0zMSAxMDoxMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3N0YXJ0KSwKCSAgKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgQWRkZWQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIHRyYW5zZm9ybSBiYXNlIGNsYXNzIHNvIHN1YmNsYXNzZXMKCSAgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggc3RhdGUgY2hhbmdlcyBldmVuLgoKMjAwNS0wMy0zMSAxMDoxMDoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgcGVyLXRocmVhZCBzdGF0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCjIwMDUtMDMtMzEgMDk6NDY6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkIGFuZCByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91c192YWxpc3QpLAoJICAoZ3N0X2V2ZW50X25ld19kaXNjb250aW51b3VzKSwgKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIEFkZGVkIHJhdGUgdG8gdGhlIGRpc2NvbnQgZXZlbnQgdG8gcHJlcGFyZSBmb3IgdmFyaWFibGUgc3BlZWQKCSAgYW5kIHJldmVyc2UgcGxheWJhY2suCgoyMDA1LTAzLTMwIDE0OjA5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29tbWl0IG1lbSBjaHVuayB0ZXN0OyBwcm9iYWJseSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCgoyMDA1LTAzLTMwIDAzOjU3OjM5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEEgbGl0dGxlIGV4YW1wbGUgcHJvZ3JhbSB0byBzaG93IGhvdyB0cmlnZ2VyLWJhc2VkIGVsZW1lbnRzIGNhbiB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOiBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdwoJICBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCjIwMDUtMDMtMjkgMTY6MTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTaW1wbGlmeSBwYWQgYWN0aXZhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9maW5hbGl6ZSksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksIChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfZXZlbnQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHB1bGxfcmFuZ2UgY2FuIGJlIHBlcmZvcm1lZC4KCSAgRXJyb3Igb3V0IHdoZW4gcHVsbGluZyBpbmFjdGl2ZSBvciBmbHVzaGluZyBwYWRzLgoJICBSZW1vdmVkIGNvbnN0IGZyb20gcmVmY291bnRlZCB0eXBlcyBhcyBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlLgoJICBTaW1wbGlmeSBwYWQgdGVtcGxhdGVzIGluIGJhc2VzaW5rCgkgIEFkZGVkIGJhc2UgY2xhc3MgZm9yIHNpbXBsZSAxLXRvLTEgdHJhbnNmb3Jtcy4KCSAgTWFrZSBpZGVudGl0eSBzdWJjbGFzcyB0aGUgYmFzZSB0cmFuc2Zvcm0uCgoyMDA1LTAzLTI5IDE0OjM0OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzLzogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50IGdyZWVuIGJ1aWxkYm90IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItb3ZlcnJpZGVzLnR4dDogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkKCSAgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50CgkgIGdyZWVuIGJ1aWxkYm90IQoKMjAwNS0wMy0yOSAxNDoxMjo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IERpc3QgdGhlIG92ZXJyaWRlcyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNsZWFuLWxvY2FsKTogUmVtb3ZlIC5saWJzIGRpcmVjdG9yaWVzLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IEFkZCBhbGwgdGhlIGF0dGljCgkgIGVsZW1lbnRzIHRvIEVYVFJBX0RJU1QsIHNvIHBvLyBmaWxlcyBhcmUgaGFwcHkuCgoyMDA1LTAzLTI5IDEzOjEwOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIG1pc3NpbmcgdGVzdHN1aXRlIG1ha2VmaWxlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSB0aGUgc2VjdGlvbiBvbgoJICBieXRlc3RyZWFtLgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYyAobWFpbik6IFNldCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmVyb2xsIHF1ZXVlCgkgIG9uIHRoZSBzaW5rcyB0byBwcmV2ZW50IGEgbG9ja3VwLgoKMjAwNS0wMy0yOSAxMTozOToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogUmVtb3ZlIHRlc3QsIGl0J3MgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wtdGVzdC5jOiBSZW1vdmUgdGVzdCwgaXQncwoJICB0aGUgc2FtZSBhcyB0aGUgb25lIGluIGNoZWNrL2dzdC1saWJzL2dkcC5jLgoKMjAwNS0wMy0yOSAxMDo1NTozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKGxpYmdzdGVsZW1lbnRzX2xhX0xERkxBR1MpOiBMaW5rIHRvCgkgIHRoZSB2ZXJzaW9uZWQgbGliZ3N0YmFzZS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogRGVwZW5kIG9uIGFuIHVudmVyc2lvbmVkIGdzdC1yZWdpc3Rlciwgc2VlbXMKCSAgdG8gbWFrZSBhdXRvY29uZiBoYXBwaWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBNYWtlIGxpYmdzdGJhc2UgYSB2ZXJzaW9uZWQgbGliLgoKMjAwNS0wMy0yOCAxNDo1NDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3RhdGUgY2hhbmdlIGNvZGUuCgkgIEFkZGVkL3VwZGF0ZWQgZG9jcy4KCSAgQWRkZWQgc2luayBiYXNlIGNsYXNzLCBtYWtlIGZha2VzaW5rIGV4dGVuZCB0aGUgYmFzZSBjbGFzcy4KCSAgU21hbGwgY2xlYW51cHMgaW4gR3N0UGlwZWxpbmUuCgoyMDA1LTAzLTI2IDIyOjA3OjUzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIGdzdGNwdS5bY2hdLiAgVGhlIGdzdF9jcHUgZnVuY3Rpb25hbGl0eSBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCBsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkKCSAgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGlicmFyeS4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOiBkb24ndCBjYWxsIF9nc3RfY3B1X2luaXRpYWxpemUoKQoJICAqIGdzdC9nc3QuaDogcmVtb3ZlIGdzdGNwdS5oCgkgICogZ3N0L2dzdGNwdS5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0Y3B1Lmg6IHJlbW92ZQoJICAqIGdzdC9NYWtlZmlsZS5hbS5mdXR1cmU6IFJlbW92ZSB0aGlzIGZpbGUuICBJdCdzIGFuY2llbnQuCgoyMDA1LTAzLTI1IDA5OjU3OjQyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlciB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X21hbmFnZXIpLAoJICAoZ3N0X2Jpbl9zZW5kX2V2ZW50KToKCSAgQWRkIGRlZmF1bHQgZXZlbnQvc2V0X21hbmFnZXIgaGFuZGxlcnMuIFRoZSBzZXRfbWFuYWdlciBoYW5kbGVyCgkgIHRha2VzIGNhcmUgdGhhdCB0aGUgbWFuYWdlciBpcyBkaXN0cmlidXRlZCBvdmVyIGtpZHMgdGhhdCB3ZXJlCgkgIGFscmVhZHkgaW4gdGhlIGJpbiBiZWZvcmUgdGhlIG1hbmFnZXIgd2FzIHNldC4gVGhlIGV2ZW50IGhhbmRsZXIKCSAgaXMgYSB1dGlsaXR5IHZpcnR1YWwgZnVuY3Rpb24gdGhhdCBzZW5kcyB0aGUgZXZlbnQgb3ZlciBhbGwgc2lua3MsCgkgIHNvIHRoYXQgZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCAoYmluLCBldmVudCk7IGhhcyB0aGUgZXhwZWN0ZWQKCSAgYmVoYXZpb3VyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgIFJlLWluc3RhbGwgZGVmYXVsdCBldmVudCBoYW5kbGluZyBmb3IgZGlzY29udGludWl0aWVzLCBzbyB0aGF0CgkgIHNlZWtpbmcgd29ya3Mgd2l0aG91dCByZXF1aXJpbmcgaGFja3MgaW4gYXBwbGljYXRpb25zIG9yIGV4dHJhCgkgIGNvZGUgaW4gc2lua3MuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEhhbGYgaGFjaywgaGFsZiB1dGlsaXR5OiBzZXQgYSBwaXBlbGluZSB0byBQQVVTRUQgZm9yIHNlZWsgZXZlbnRzLAoJICBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IHdheSB3ZSBjYW4gZ3VhcmFudGVlIGEvdiBzeW5jLiBNZWFucyB0aGF0CgkgIHlvdSBjYW4gZG8gZ3N0X2VsZW1lbnRfc2VlayAocGlwZWxpbmUsIG1ldGhvZCwgcG9zKTsgb24gYSBwaXBlbGluZQoJICBhbmQgaXQgImp1c3Qgd29ya3MiLgoKMjAwNS0wMy0yNSAwOTozNTowMSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IExvY2svdW5sb2NrIG1pc21hdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV91c2VfY2xvY2spOgoJICBMb2NrL3VubG9jayBtaXNtYXRjaC4KCjIwMDUtMDMtMjUgMDA6MzU6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvbid0IGVycm9yIG91dCB1bnRpbCBkb2NzIGFyZSBmaXhlZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgcmVtb3ZlIHRocmVhZAoKMjAwNS0wMy0yMiAxNDoyMzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgQWN0aXZhdGVkIG1vcmUgdGVzdHMuCgkgIEFkZGVkIG1lc3NhZ2UgdGVzdC4KCSAgQWRkZWQgR19UWVBFX1BPSU5URVIgdG8gR3N0U3RydWN0dXJlLgoKMjAwNS0wMy0yMiAxMTozMjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb2NzIHVwZGF0ZXMKCjIwMDUtMDMtMjEgMTg6MTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgRml4IGNvcHktYW5kLXBhc3RlIGVycm9yLgoKMjAwNS0wMy0yMSAxNzozNDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cHJvYmUuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9nc3R0aHJlYWQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2NoZWR1bGVycy9jb3RocmVhZHNfY29tcGF0Lmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3RocmVhZC1jb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5leHQgYmlnIG1lcmdlLgoJICBBZGRlZCBHc3RCdXMgZm9yIG1haW5sb29wIGludGVncmF0aW9uLgoJICBBZGRlZCBHc3RNZXNzYWdlIGZvciBzZW5kaW5nIG5vdGlmaWNhdGlvbnMgb24gdGhlIGJ1cy4KCSAgQWRkZWQgR3N0VGFzayBhcyBhbiBhYnN0cmFjdGlvbiBmb3IgcGlwZWxpbmUgZW50cnkgcG9pbnRzLgoJICBSZW1vdmVkIEdzdFRocmVhZC4KCSAgUmVtb3ZlZCBTY2hlZHVsZXJzLgoJICBTaW1wbGlmaWVkIEdzdFF1ZXVlIGZvciBtdWx0aXRocmVhZGVkIGNvcmUuCgkgIE1hZGUgX2xpbmsgdGhyZWFkc2FmZSwgcmVtb3ZlZCBvbGQgY2Fwc25lZ28uCgkgIEFkZGVkIFNUUkVBTV9MT0NLIGFuZCBQUkVST0xMX0xPQ0sgaW4gR3N0UGFkLgoJICBBZGRlZCBwYWQgYmxvY2tpbmcgZnVuY3Rpb25zLgoJICBSZXdvcmtlZCBzY2hlZHVsaW5nIGZ1bmN0aW9ucyBpbiBHc3RQYWQgdG8gcHJlcGFyZSBmb3IKCSAgc2NoZWR1bGluZyB1cGRhdGVzIHNvb24uCgkgIE1vdmVkIGV2ZW50cyBvdXQgb2YgZGF0YSBzdHJlYW0uCgkgIFNpbXBsaWZpZWQgR3N0RXZlbnQgdHlwZXMuCgkgIEFkZGVkIHJldHVybiB2YWx1ZXMgdG8gcHVzaC9wdWxsLgoJICBSZW1vdmVkIGNsb2NraW5nIGZyb20gR3N0RWxlbWVudC4KCSAgQWRkZWQgcHJvdG90eXBlcyBmb3Igc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZvciBuZXh0IG1lcmdlLgoJICBSZW1vdmVkIGl0ZXJhdGUgZnJvbSBiaW5zIGFuZCBzdGF0ZSBjaGFuZ2UgbWFuYWdlbWVudC4KCSAgRml4ZWQgc29tZSBlbGVtZW50cywgZGlzYWJsZWQgb3RoZXJzIGZvciBub3cuCgkgIEZpeGVkIC1pbnNwZWN0IGFuZCAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgR3N0QnVzLgoKMjAwNS0wMy0xMCAxMjo1MTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzogKGdzdF9jbG9ja19kZWJ1ZyksIChlbGVtZW50X3dhaXQpLAoJICAobWFpbik6CgkgICogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6IChkb190ZXN0KToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6IChhZGRfcmVtb3ZlX3Rlc3QxKSwKCSAgKGFkZF9yZW1vdmVfdGVzdDIpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoc2lnaW50X2hhbmRsZXJfc2lnaGFuZGxlcik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIGRvYyBhYm91dCBjbG9jay4KCSAgcmVtb3ZlZCBnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZV91cCgpLCBtYXJrZWQgbWV0aG9kcwoJICBmb3IgcmVtb3ZhbC4KCSAgRml4IG1vcmUgdGVzdHN1aXRlcy4KCjIwMDUtMDMtMDkgMTc6Mjg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2RpcmVjdGlvbiksCgkgIChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwgKGdzdF9wYWRfY29sbGVjdHYpLAoJICAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCk6CgkgICogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6ICh0ZXN0X2NhcHMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzogKHRlc3QxKSwgKHRlc3QyKSwgKHRlc3QzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzogKG15X2ZpeGF0ZSksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6IChjaGVja19jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOiAoY2hlY2tfY2FwcyksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOiAoY2hlY2tfY2Fwcyk6CgkgIEZpeCBfcGFkX2dldF9kaXJlY3Rpb24gd3J0IGdob3N0cGFkcy4KCSAgRml4IGNhcHMgdGVzdHN1aXRlLgoKMjAwNS0wMy0wOSAxNjoxMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIEdzdEJpbiB0ZXN0LgoJICBBZGRlZCBHc3RTeXN0ZW1DbG9jayB0ZXN0LgoJICBJbXBsZW1lbnRlZCBjbG9jayBkaXN0cmlidXRpb24gY29kZSBpbiBHc3RCaW4uCgkgIEltcGxlbWVudGVkIGl0ZXJhdGUgc2lua3MgbWV0aG9kIGZvciBmdXR1cmUgdXNlLgoJICBSZWFycmFuZ2VkIGdzdGVsZW1lbnQuaAoJICBGaXggR3N0SXRlcmF0b3IgY29tcGFyaXNvbiBidWcuCgkgIE1vdmVkIHNvbWUgY29kZSB0byBHc3RQaXBlbGluZSwgbW9zdGx5IGNsb2NraW5nIHJlbGF0ZWQuCgoyMDA1LTAzLTA5IDExOjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZV9yZWN1cnNlX3VwKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF9yZWYpLCAoZ3N0X2Nsb2NrX2lkX3VucmVmKSwKCSAgKGdzdF9jbG9ja19pZF9jb21wYXJlX2Z1bmMpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksIChnc3RfY2xvY2tfZ2V0X3RpbWUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfcGFkX2RlZmF1bHRfZml4YXRlX2ZvcmVhY2gpLAoJICAoZ3N0X3BhZF9jb2xsZWN0diksIChnc3RfcGFkX2NvbGxlY3RfdmFsaXN0KSwgKGdzdF9wYWRfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIEFkZCBmdXR1cmUgZGVidWdnaW5nIGNhdGVnb3J5LgoJICBGaXggTlVMTCBfdW5yZWYoKSBpbiBfZ2V0X2J5X25hbWVfcmVjdXJzZV91cAoJICBSZWFycmFuZ2UgZ3N0cGFkLmguCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA1LTAzLTA4IDE3OjQyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYSBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIHRocmVhZHNhZmUgcHJvcGVydGllcy4gRml4IGVsZW1lbnRzIGJlY2F1c2UgR09iamVjdAoJICBjb21wbGFpbnMgd2hlbiBpbnN0YWxsaW5nIGEgcHJvcGVydHkgYmVmb3JlIGRlY2xhcmluZyBhCgkgIHNldC9nZXRfcHJvcGVydHkgaGFuZGxlci4KCSAgUmVhcnJhbmdlIGdzdGVsZW1lbnQuaCBmaWxlLCB1c2UgU1RBVEUgbWFjcm9zIGZvciBzdGF0ZSBsb2Nrcy4KCSAgRnJlZSBtdXRleGVzIGluIHRoZSBmaW5hbGl6ZSBtZXRob2QgaW5zdGVhZCBvZiBkaXNwb3NlLgoKMjAwNS0wMy0wOCAxNTo1NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHBhcmVudGFnZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBnc3QvZ3N0dGhyZWFkLmM6IChnc3RfdGhyZWFkX3JlbGVhc2VfY2hpbGRyZW5fbG9ja3MpOgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIEZpeCBidWlsZCBvZyBHc3RUaHJlYWQgYWdhaW4uCgoyMDA1LTAzLTA4IDE0OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyB1cGRhdGVzLCBjbGVhbiB1cCBzb21lIGhlYWRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSksIChnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKSwgKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfbG9vcF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3NpbmspLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKSwgKGdzdF9vYmplY3Rfc2V0X25hbWUpLAoJICAoZ3N0X29iamVjdF9zZXRfcGFyZW50KSwgKGdzdF9vYmplY3RfdW5wYXJlbnQpLAoJICAoZ3N0X29iamVjdF9jaGVja191bmlxdWVuZXNzKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBGcmVlIGl0ZXJhdG9ycyBpbiBHc3RCaW4uCgkgIEdzdE9iamVjdCBpcyBub3cgbG9va2luZyBnb29kLgoKMjAwNS0wMy0wNyAxODozMzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQWRkZWQgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpLCAocHVsbF9tZXNzYWdlcyksCgkgIChTVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfcmVmKSwgKHRocmVhZF91bnJlZiksCgkgIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKG1ha2VfbGlzdF9vZl9pbnRzKSwgKFNUQVJUX1RFU1QpLAoJICAoYWRkX2ZvbGRfZnVuYyksIChnc3RpdGVyYXRvcl9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChnc3RfZmFrZV9vYmplY3RfZ2V0X3R5cGUpLCAoU1RBUlRfVEVTVCksCgkgICh0aHJlYWRfbmFtZV9vYmplY3QpLCAodGhyZWFkX25hbWVfb2JqZWN0X2RlZmF1bHQpLAoJICAoZ3N0X29iamVjdF9uYW1lX2NvbXBhcmUpLCAoZ3N0X29iamVjdF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKSwgKHRocmVhZF9saW5rX3VubGluayksCgkgIChnc3RfcGFkX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKHJ1bl9waXBlbGluZSksIChTVEFSVF9URVNUKSwgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGNoZWNrcy4KCjIwMDUtMDMtMDcgMTg6Mjk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogQWRkZWQgbWlzc2luZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2xpc3RfaXRlcmF0b3JfcmVzeW5jKSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX25ld19saXN0KSwKCSAgKGdzdF9pdGVyYXRvcl9wb3ApLCAoZ3N0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfaXRlcmF0b3JfZnJlZSksIChnc3RfaXRlcmF0b3JfcHVzaCksIChmaWx0ZXJfbmV4dCksCgkgIChmaWx0ZXJfcmVzeW5jKSwgKGZpbHRlcl91bmluaXQpLCAoZmlsdGVyX2ZyZWUpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbHRlciksIChnc3RfaXRlcmF0b3JfZm9sZCksIChmb3JlYWNoX2ZvbGRfZnVuYyksCgkgIChnc3RfaXRlcmF0b3JfZm9yZWFjaCksIChmaW5kX2N1c3RvbV9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkZWQgbWlzc2luZyBmaWxlcy4KCjIwMDUtMDMtMDcgMTg6Mjc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNwdS5jOgoJKiBnc3QvZ3N0ZGF0YS5jOgoJKiBnc3QvZ3N0ZGF0YS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHByb2JlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwby9uYi5wbzoKCSogcG8vcnUucG86CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzoKCSogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpcnN0IFRIUkVBREVEIGJhY2twb3J0IGF0dGVtcHQsIGZvY3VzaW5nIG9uIGFkZGluZyBsb2NrcyBhbmQKCSAgbWFraW5nIHN1cmUgdGhlIEFQSSBpcyB0aHJlYWRzYWZlLiBOZWVkcyBtb3JlIHdvcmsuIE1vcmUgZG9jcwoJICBmb2xsb3cgdGhpcyB3ZWVrLgoKMjAwNS0wMi0yNSAwMDoxMDowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBhbm90aGVyIG5vLWRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMjM6NDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5jOgoJICBkaXNhYmxlIGRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMTc6MTI6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkgYmVuY2htYXJrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvYmVuY2gtY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvY29tcGxleGl0eS5nbnVwbG90OiBOZXcgZmlsZXMsIGdvb2QgZm9yIHJ1bm5pbmcgY29tcGxleGl0eQoJICBiZW5jaG1hcmtzLgoKMjAwNS0wMi0yNCAxNTozNjoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBOZXcgdGVzdCwgc2V0cyB1cCBOIGVsZW1lbnRzLCBhdCBlYWNoIGxldmVsIHRlZWluZyBpbnRvIE0gc3RyZWFtcyBwZXIgZWxlbWVudC4gRWVlZW50ZXJlc3RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbAoJICB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoKMjAwNS0wMi0yNCAxMjozMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbWFzc19lbGVtZW50cy5nbnVwbG90OiBnbnVwbG90IGZpbGUgZm9yIHRoZSBtYXNzX2VsZW1lbnRzIGJlbmNobWFyay4gUnVuIGFzIGdudXBsb3QgbWFzc19lbGVtZW50cy5nbnVwbG90ID4gZm9vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cwoJICBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby5wcywgYWZ0ZXIKCSAgcnVubmluZyBiZW5jaC1tYXNzX2VsZW1lbnRzLnNjbS4KCSAgKiB0ZXN0cy9iZW5jaC1tYXNzX2VsZW1lbnRzLnNjbTogTmV3IHNjcmlwdCwgcnVucyBtYXNzX2VsZW1lbnRzCgkgIGZvciB2YXJpb3VzIG51bWJlcnMgb2YgaWRlbnRpdGllcywgb3V0cHV0dGluZyB0aGUgcmVzdWx0cyB0byBhCgkgIGZpbGUuIFJlcXVpcmVzIGd1aWxlIDEuNi4gSnVzdCBmb3IgdGVzdGluZy4KCjIwMDUtMDItMjMgMTU6MTQ6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJICBvbmUgbW9yZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9uZSBtb3JlIGZpeAoKMjAwNS0wMi0yMyAxNTowNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDItMjIgMTY6MzQ6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaHVudGluZyBzZWFzb24gb24gMC45IGlzIG5vdyBPUEVOCgo=