MjAwOC0wNi0wNiAgUmVsZWFzZSBNYW5hZ2VyCgoJKiBHQ0MgNC4zLjEgcmVsZWFzZWQuCgoyMDA4LTAzLTA2ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBpbmNsaGFjay5kZWYgKHNvbGFyaXNfbWF0aF8xMCk6IE5ldy4KCSogdGVzdHMvYmFzZS9pc28vbWF0aF9jOTkuaDogVXBkYXRlLgoKCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwOC0wMy0wNSAgUmVsZWFzZSBNYW5hZ2VyCgoJKiBHQ0MgNC4zLjAgcmVsZWFzZWQuCgoyMDA4LTAyLTA0ICBJc21haWwgRPZubWV6ICA8aXNtYWlsQHBhcmR1cy5vcmcudHI+CgoJKiBpbmNsaGFjay5kZWY6IChic2Rfc3RkaW9fYXR0cnNfY29uZmxpY3QsIGZyZWVic2RfZ2NjM19icmVha2FnZSwKCWZyZWVic2RfZ2NjNF9icmVha2FnZSwgaHBwYV9ocHV4X2ZwX21hY3JvcywgaHB1eDExX2FicywKCW5ldGJzZF9jOTlfaW5saW5lXzEsIG5ldGJzZF9jOTlfaW5saW5lXzIsIG5ldGJzZF9leHRyYV9zZW1pY29sb24pOiAgQWRkCglxdW90ZXMgYXJvdW5kIG1hY2ggZW50cmllcy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlIHdpdGggbGF0ZXN0IGF1dG9nZW4gKDUuOS40KSwgdXBkYXRpbmcgbGljZW5zZQoJdG8gR1BMdjMuCgoyMDA4LTAyLTA0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglQUiBvdGhlci8zMTQwNQoJKiBpbmNsaGFjay5kZWY6IChnbGliY19jOTlfaW5saW5lXzFhKTogUmUtYWRkIGxhc3QgY2hhbmdlLgoJKGdsaWJjX2M5OV9pbmxpbmVfMykgPGJ5cGFzcz46IENoYW5nZSBmcm9tIF9fU1REQ19WRVJTSU9OX18gdG8KCV9fZXh0ZXJuX2lubGluZXxfX0dOVV9TVERDX0lOTElORV9fLgoJKGdsaWJjX2M5OV9pbmxpbmVfNCkgPGZpbGVzPjogQWRkIHdjaGFyLmggYW5kICovd2NoYXIuaC4KCTxieXBhc3M+OiBDaGFuZ2UgZnJvbSBfX1NURENfVkVSU0lPTl9fIHRvCglfX2V4dGVybl9pbmxpbmV8X19HTlVfU1REQ19JTkxJTkVfXy4KCTxmaXJzdCBjX2ZpeF9hcmc+OiBDaGFuZ2UgZnJvbSAjaWZkZWYtd3JhcHBpbmcgdGhlIGV4dGVybiBwYXJ0IHRvCglhcHBlbmRpbmcgYXR0cmlidXRlLWdudV9pbmxpbmUuCgk8c2Vjb25kIGNfZml4X2FyZz46IFJlbW92ZS4KCTx0ZXN0X3RleHQ+OiBSZW1vdmUgX19leHRlcm5faW5saW5lIGxpbmUuCgkqIHRlc3RzL2Jhc2UvZmVhdHVyZXMuaDogUmUtYWRkLgoJKiB0ZXN0cy9iYXNlL3N5cy9zeXNtYWNyb3MuaDogQWRqdXN0LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA4LTAxLTA2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglSZXZlcnQgbGFzdCBjaGFuZ2UuCgoyMDA3LTEyLTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGluY2xoYWNrLmRlZjogKGdsaWJjX2M5OV9pbmxpbmVfMWEsIGdsaWJjX2M5OV9pbmxpbmVfNSk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL3djaGFyLmg6IFVwZGF0ZS4KCSogdGVzdHMvYmFzZS9mZWF0dXJlcy5oOiBOZXcuCgoyMDA3LTEwLTE0ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIHRhcmdldC8zMzcwMAoJKiBpbmNsaGFjay5kZWYgKGhwdXgxMV9wdGhyZWFkX2NvbnN0KTogTmV3LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2Uvc3lzL3B0aHJlYWQuaDogVXBkYXRlLgoKMjAwNy0xMC0xMiAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBjb25maWd1cmUuYWM6IHg4Nl82NCBtaW5ndyB0YXJnZXQgdXNlcyB0d29wcm9jZXNzLgoJKiBta2ZpeGluYy5zaDogQWRkIHg4Nl82NCBtaW5ndyB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDctMTAtMDkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogaW5jbGhhY2suZGVmIChkYXJ3aW5fZXh0ZXJuYyk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL21hY2gtby9zd2FwLmg6IE5ldy4KCjIwMDctMDgtMDMgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGluY2xoYWNrLmRlZiAoc29sYXJpc19tYXRoXzUsIHNvbGFyaXNfbWF0aF82LCBzb2xhcmlzX21hdGhfNyk6CglEZWxldGUgZml4ZXMuCgkqIHRlc3RzL2Jhc2UvaXNvL21hdGhfYzk5Lmg6IERlbGV0ZSBhc3NvY2lhdGVkIHRlc3QgYmFzZWxpbmVzLgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA3LTA3LTI0ICBLcmlzdGVyIFdhbGZyaWRzc29uICA8Y2F0b0BkZi5sdGguc2U+CgoJUFIgdGFyZ2V0LzMwMDU4CgkqIGluY2xoYWNrLmRlZiAobmV0YnNkX2M5OV9pbmxpbmVfMik6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL3NpZ25hbC5oOiBVcGRhdGUuCgoyMDA3LTA3LTE4ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJUFIgdGFyZ2V0LzMyNjQxCgoJKiBpbmNsaGFjay5kZWYgKHNvbGFyaXNfbWF0aF80LCBzb2xhcmlzX21hdGhfNSwgc29sYXJpc19tYXRoXzYsCglzb2xhcmlzX21hdGhfNyk6IENvbnN0aWZ5IGFuZCBtYWtlIEZQIGV4Y2VwdGlvbi1zYWZlLgoJKiB0ZXN0cy9iYXNlL2lzby9tYXRoX2M5OS5oOiBVcGRhdGUuCgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA3LTA3LTA1ICBSYWluZXIgT3J0aCAgPHJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERT4KCglQUiBsaWJnY2ovMjgxOTAKCSogaW5jbGhhY2suZGVmIChpcml4X3N0ZGludF9jOTkpOiBOZXcgZml4LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2Uvc3RkaW50Lmg6IE5ldyB0ZXN0LgoKMjAwNy0wNi0wNiAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJUFIgdGVzdHN1aXRlLzMxODI4CgkqIGluY2xoYWNrLmRlZiAoaHBwYV9ocHV4X2ZwX21hY3Jvcyk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL21hdGguaDogVXBkYXRlLgoKMjAwNy0wMy0yNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX2M5OV9pbmxpbmVfMSk6IERlZmluZSBfX1VTRV9FWFRFUk5fSU5MSU5FUwoJaWYgX19leHRlcm5faW5saW5lIG9yIF9fR05VQ19HTlVfSU5MSU5FX18gaXMgZGVmaW5lZCByYXRoZXIgdGhhbgoJX19TVERDX1ZFUlNJT05fXyA8IDE5OTkwMUwuCgkoZ2xpYmNfYzk5X2lubGluZV8yKTogUmVwbGFjZSAjaWYgX19TVERDX1ZFUlNJT05fXyA8IDE5OTkwMUwKCXdpdGggI2lmZGVmIF9fR05VQ19HTlVfSU5MSU5FX18uCgkoZ2xpYmNfYzk5X2lubGluZV8zKTogQWRkIHNlbGVjdC4gIFJlcGxhY2UgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMCgl3aXRoIGRlZmluZWQoX19HTlVDX1NURENfSU5MSU5FX18pLgoJKGdsaWJjX2M5OV9pbmxpbmVfNCk6IENoYW5nZSBzZWxlY3QsIGFkZCBzZWNvbmQgY19maXhfYXJnLgoJUmVwbGFjZSAjaWYgX19TVERDX1ZFUlNJT05fXyA8IDE5OTkwMUwgd2l0aAoJI2lmZGVmIF9fR05VQ19HTlVfSU5MSU5FX18uCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZWQuCgkqIHRlc3RzL2Jhc2UvYml0cy9zdHJpbmcyLmg6IFVwZGF0ZS4KCSogdGVzdHMvYmFzZS9zeXMvc3lzbWFjcm9zLmg6IFVwZGF0ZS4KCSogdGVzdHMvYmFzZS9zeXMvc3RhdC5oOiBVcGRhdGUuCgoyMDA3LTAzLTE4ICBLcmlzdGVyIFdhbGZyaWRzc29uICA8Y2F0b0BkZi5sdGguc2U+CgoJUFIgdGFyZ2V0LzMwMDU4CgkqIGluY2xoYWNrLmRlZiAobmV0YnNkX2M5OV9pbmxpbmVfMSk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL3NpZ25hbC5oOiBOZXcuCgoyMDA3LTAzLTEyICBCcm9va3MgTW9zZXMgIDxicm9va3MubW9zZXNAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluOiBBZGQgZHVtbXkgImluc3RhbGwtaW5mbyIgdGFyZ2V0LgoKMjAwNy0wMy0wNiAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBta2hlYWRlcnMuaW46IEZpeCBoZWFkZXJzIGZvciBlYWNoIG11bHRpbGliIHJlcXVpcmVkLgoKMjAwNy0wMy0wMSAgQnJvb2tzIE1vc2VzICA8YnJvb2tzLm1vc2VzQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbjogQWRkIGR1bW15IGluc3RhbGwtcGRmIHRhcmdldC4KCjIwMDctMDItMjcgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWtoZWFkZXJzLmluIChpbmNkaXIpOiBVc2UgaW5jbHVkZS1maXhlZCBub3QgaW5jbHVkZS4KCjIwMDctMDItMTUgIEJyb29rcyBNb3NlcyAgPGJyb29rcy5tb3Nlc0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW46IEFkZGVkICJwZGYiIHRhcmdldCB0byAuUEhPTlkuCgoyMDA3LTAyLTA1ICBSaWNoYXJkIEd1ZW50aGVyICA8cmd1ZW50aGVyQHN1c2UuZGU+CgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX2M5OV9pbmxpbmVfNCk6IEFkanVzdCBzZWxlY3RvciB0byBjb3BlCgl3aXRoIG9sZGVyIGdsaWJjLiAgQWRqdXN0IHZlcnNpb24gbnVtYmVyIGZvciBDOTkuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZWQuCgoyMDA3LTAyLTA0ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIG1raGVhZGVycy5pbjogQWxsb3cgb3B0aW9uYWwgaXN5c3Jvb3QgcGFyYW1ldGVyLgoKMjAwNy0wMi0wMyAgQnJ1Y2UgS29yYiA8YmtvcmJAZ251Lm9yZz4KCgkqIGluY2xoYWNrLmRlZiAoZ2xpYmNfYzk5X2lubGluZV80KTogcmVwbGFjZSAiZXh0ZXJuIiBvbmx5IGlmCglzdXJyb3VuZGVkIGJ5IHNwYWNlIGNoYXJhY3RlcnMuCgoyMDA3LTAxLTI1ICBEYW5pZWwgRnJhbmtlIDxmcmFua2UuZGFuaWVsQGdtYWlsLmNvbT4KCglQUiB0YXJnZXQvMzAyNzIKCSogaW5jbGhhY2suZGVmKGJyb2tlbl9jYWJzKTogQWxzbyByZW1vdmUgZGVmaW5pdGlvbiBvZiBjYWJzbC4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL21hdGguaDogVXBkYXRlLgoKMjAwNy0wMS0wNSAgQnJ1Y2UgS29yYiA8YmtvcmJAZ251Lm9yZz4sIAogICAgICAgICAgICBEYW5pZWwgRnJhbmtlIDxmcmFua2UuZGFuaWVsQGdtYWlsLmNvbT4KCglQUiB0YXJnZXQvMzAwMDgKCSogZml4aW5jbC50cGwgKExpc3QpOiBzZXBhcmF0ZSBmaWxlIG5hbWUgcGF0dGVybnMgd2l0aCBhIE5VTCBieXRlIGluc3RlYWQKCW9mIGEgdmVydGljYWwgYmFyICgifCIpLgoJKiBmaXhpbmNsLmMgKGZpeF9hcHBsaWVzLCBtYWNoaW5lX21hdGNoZXMpOiBVc2UgZm5tYXRjaCBmb3IgbmFtZQoJbWF0Y2hpbmcuICBTZXQgU0tJUF9URVNUIGZsYWcgaWYgd2UgYXJlIG5vdCB0byBydW4gYSB0ZXN0LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIGluY2xoYWNrLmRlZiAoZ2xpYmNfYzk5X2lubGluZV9bMTIzNF0sIGJyb2tlbl9jYWJzLCBicm9rZW5fbmFuLAoJa2FuZHJfY29uY2F0LCBzY29fbWF0aCk6IFJlcGxhY2UgbGlzdHMgb2Ygc3BlY2ZpYyBmaWxlIG5hbWVzIGJ5IHNlYXJjaAoJcGF0dGVybnMuCgoyMDA2LTEyLTEyICBPbGl2aWVyIEhhaW5xdWUgIDxoYWlucXVlQGFkYWNvcmUuY29tPgoKCSogZml4aW5jbHVkZXMvbWtmaXhpbmMuc2g6IEFkZCAiKi0qLXZ4d29ya3MqIiB0byB0aGUgbGlzdCBvZgoJdGFyZ2V0cyBmb3Igd2hpY2ggYSBuby1vcCBmaXhlciBpcyBhcHByb3ByaWF0ZS4KCQoyMDA2LTExLTA3ICBSaWNoYXJkIEd1ZW50aGVyICA8cmd1ZW50aGVyQHN1c2UuZGU+CgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX2M5OV9pbmxpbmVfMik6IEFkanVzdCBmb3IgZ2xpYmMgMi4zCglzeXN0ZW1zLgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA2LTExLTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGluY2xoYWNrLmRlZiAoZ2xpYmNfYzk5X2lubGluZV8xKTogTmV3LgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX2M5OV9pbmxpbmVfMik6IE5ldy4KCSogaW5jbGhhY2suZGVmIChnbGliY19jOTlfaW5saW5lXzMpOiBOZXcuCgkqIGluY2xoYWNrLmRlZiAoZ2xpYmNfYzk5X2lubGluZV80KTogTmV3LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2UvYml0cy9zdHJpbmcyLmg6IE5ldy4KCSogdGVzdHMvYmFzZS9zeXMvc3lzbWFjcm9zLmg6IE5ldy4KCSogdGVzdHMvYmFzZS9zeXMvc3RhdC5oOiBVcGRhdGUuCgoyMDA2LTExLTAxICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIHRlc3RzL2Jhc2Uvc3lzL3NvY2tldC5oOiBVcGRhdGUuCgoyMDA2LTEwLTMxICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGluY2xoYWNrLmRlZiAoaHB1eDExX2V4dGVybl9zZW5kZmlsZSk6IE5ldy4KCShocHV4MTFfZXh0ZXJuX3NlbmRwYXRoKTogTmV3LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA2LTEwLTI5ICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluY2xoYWNrLmRlZiAoQUFCX2ZkX3plcm9fYXNtX3Bvc2l4X3R5cGVzX2gpOiBCeXBhc3Mgb24geDg2XzY0LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA2LTEwLTEwICBCcm9va3MgTW9zZXMgIDxibW9zZXNAc3RhbmZvcmQuZWR1PgoKCSogTWFrZWZpbGUuaW46IEFkZGVkIGVtcHR5ICJwZGYiIHRhcmdldC4KCjIwMDYtMTAtMDcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgdGFyZ2V0LzI5MzAwCgkqIGluY2xoYWNrLmRlZiAoaHB1eF9wdGhyZWFkX2luaXRpYWxpemVycyk6IE5ldyBoYWNrLgoJKiB0ZXN0cy9iYXNlL3N5cy9wdGhyZWFkLmg6IE5ldyBmaWxlLgoKCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNi0xMC0wMyAgVXJvcyBCaXpqYWsgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX211dGV4X2luaXQpOiBBbHNvIGZpeAoJUFRIUkVBRF9NVVRFWF8oUkVDVVJTSVZFfEVSUk9SQ0hFQ0t8QURBUFRJVkUpX05QIGFuZAoJUFRIUkVBRF9SV0xPQ0tfUFJFRkVSX1dSSVRFUl9OT05SRUNVUlNJVkVfTlAgaW5pdGlhbGl6ZXJzLgoJKiB0ZXN0cy9iYXNlL3B0aHJlYWQuaDogVXBkYXRlLgoKCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNi0xMC0wMSAgVXJvcyBCaXpqYWsgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBpbmNsaGFjay5kZWYgKGdsaWJjX211dGV4X2luaXQpOiBOZXcgZml4LgoJKiB0ZXN0cy9iYXNlL3B0aHJlYWQuaDogVXBkYXRlLgoKCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNi0wOS0yOSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogaW5jbGhhY2suZGVmIChzb2xhcmlzX211dGV4X2luaXRfMik6IFVwZGF0ZSBmb3IgU29sYXJpczkuCglQcmV2ZW50IGl0IGZyb20gcnVubmluZyBvbiBzb2xhcmlzMTAgb3IgbGF0ZXIuCgkoc29sYXJpc19vbmNlX2luaXRfMik6IEZpeCBjb21tZW50LgoJKiB0ZXN0cy9iYXNlL3B0aHJlYWQuaDogVXBkYXRlLgoKCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNi0wOS0yNyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogaW5jbGhhY2suZGVmIChzb2xhcmlzX29uY2VfaW5pdF8yKTogTmV3IGZpeC4KCSogdGVzdHMvYmFzZS9wdGhyZWFkLmg6IFVwZGF0ZS4KCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCjIwMDYtMDktMjcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGluY2xoYWNrLmRlZiAoc29sYXJpc19tdXRleF9pbml0XzIpOiBSZW1vdmUgdGVzdCBmb3IKCVBUSFJFQURfUldMT0NLX0lOSVRJQUxJWkVSLgoJKHNvbGFyaXNfcndsb2NrX2luaXRfMSk6IE5ldy4KCSogdGVzdHMvYmFzZS9wdGhyZWFkLmg6IFVwZGF0ZS4KCgkqIGluY2xoYWNrLmRlZiAoc29sYXJpc19vbmNlX2luaXRfMSk6IE5ldy4KCSogdGVzdHMvYmFzZS9wdGhyZWFkLmg6IEFkanVzdCBmb3IgbmV3IGZpeC4KCQoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA2LTA3LTE3ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHRlc3RzL2Jhc2UvZXJybm8uaDogTmV3IGZpbGUuCgkqIHRlc3RzL2Jhc2UvYXJjaGl0ZWN0dXJlL3BwYy9tYXRoLmg6IExpa2V3aXNlLgoJKiB0ZXN0cy9iYXNlL2lhNjQvc3lzL2dldHBwZHAuaDogTGlrZXdpc2UuCgoyMDA2LTA3LTEwICBMYXVyeW5hcyBCaXZlaW5pcyAgPGxhdXJ5bmFzLmJpdmVpbmlzQGdtYWlsLmNvbT4KCglQUiBib290c3RyYXAvMjA0MzcKCSogTWFrZWZpbGUuaW4gKGNvbmZpZ3VyZSwgY29uZmlnLmguaW4pOiBDaGFuZ2UgaW50byAkKHNyY2RpcikKCWJlZm9yZSBhdXRvY29uZiBvciBhdXRvaGVhZGVyIGNhbGwuCgoyMDA2LTA2LTIzICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCglQUiB0YXJnZXQvMjgwODQKCSogaW5jbGhhY2suZGVmIChocHV4X2V4dGVybl9lcnJubyk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNi0wNS0yMyAgQ2FybG9zIE8nRG9uZWxsICA8Y2FybG9zQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbjogQWRkIGR2aSBpbmZvIGh0bWwgYW5kIGluc3RhbGwtaHRtbCB0byAuUEhPTlkKCUFkZCBpbnN0YWxsLWh0bWwgdGFyZ2V0LgoKMjAwNi0wNS0xNiAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEFkZCAtV25vLW92ZXJsZW5ndGgtc3RyaW5ncy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNi0wNS0xNCAgQmVybmhhcmQgRmlzY2hlciAgPGFsZG90QGdjYy5nbnUub3JnPgoKCSogUkVBRE1FOiBGaXggdHlwby4KCjIwMDYtMDItMTggIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCVBSIHRhcmdldC8yNjE4OQoJKiBpbmNsaGFjay5kZWYgKGhwdXhfc3B1X2luZm8pOiBOZXcuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZQoKMjAwNi0wMS0zMSAgTWFyY2luIERhbGVja2kgIDxtYXJ0aW5AZGFsZWNraS5kZT4KCgkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGFzcHJpbnRmLCBiYXNlbmFtZSwgdmFzcHJpbnRmLgoJKiBjb25maWcuaC5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNi0wMS0xOSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdGFyZ2V0LzE1NjQyCgkqIGluY2xoYWNrLmRlZiAoQUFCX2RhcndpbjdfOV9sb25nX2RvdWJsZV9mdW5jcyBbcmVwbGFjZV0pOiBEZWZpbmUKCV9fQVBQTEVfQ0NfIGFzIDEzNDUuCgkoYnJva2VuX25hbik6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNS0xMS0yNCAgQnJ1Y2UgS29yYiAgPGJrb3JiQGdudS5vcmc+CgoJKiBmaXhpbmNsLmMgKHdyaXRlX3JlcGxhY2VtZW50KTogImhlcmUgc3RyaW5ncyIgaW4gQXV0b0dlbgoJb2Z0ZW4vZ2VuZXJhbGx5IGRvbid0IGhhdmUgYSB0ZXJtaW5hdGluZyBuZXdsaW5lLiAgQ2hlY2sgdGhlCglsYXN0IGJ5dGUgZm9yICdcbicuCgoyMDA1LTExLTEzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBjaGVjay50cGw6IEhhbmRsZSBDVlMgYWRkaXRpb25hbGx5LgoKMjAwNS0xMS0wNSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogY2hlY2sudHBsOiBBZG9wdCBmb3IgbW92ZSB0byBzdWJ2ZXJzaW9uLgoKMjAwNS0wOS0xNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzIzMTM5CgkqIGluY2xoYWNrLmRlZiAoaHVnZV92YWxfaGV4LCBodWdlX3ZhbGZfaGV4LCBodWdlX3ZhbGxfaGV4KTogTmV3CglmaXhlcy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL2JpdHMvaHVnZV92YWwuaDogTmV3IGZpbGUuCgoyMDA1LTA4LTE0ICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogQWxsIGZpbGVzOiBVcGRhdGUgd2l0aCBuZXcgRlNGIGFkZHJlc3MuCgoyMDA1LTA3LTE2ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAoV0FSTl9DRkxBR1MpOiBOZXcuCgkoLmMubyk6IEFkZCAkKFdBUk5fQ0ZMQUdTKS4KCSogYWNsb2NhbC5tNDogSW5jbHVkZSAuLi9jb25maWcvd2FybmluZ3MubTQuCgkqIGNvbmZpZ3VyZS5hYzogSW52b2tlIEFDWF9QUk9HX0NDX1dBUk5JTkdfT1BUUywKCUFDWF9QUk9HX0NDX1dBUk5JTkdfQUxNT1NUX1BFREFOVElDIGFuZAoJQUNYX1BST0dfQ0NfV0FSTklOR1NfQVJFX0VSUk9SUy4KCSogZml4b3B0cy5jIChpbml0aWFsaXplX29wdHMpOiBGaXggb2xkLXN0eWxlIGRlZmluaW50aW9uLgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNS0wNi0yNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BnZW9mZmsub3JnPgoKCSogaW5jbGhhY2suZGVmIChBQUJfZGFyd2luN185X2xvbmdfZG91YmxlX2Z1bmNzKTogTmV3LgoJKEFBQl9kYXJ3aW43XzlfbG9uZ19kb3VibGVfZnVuY3NfMik6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNS0wNi0xNSAgUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJUFIgbGliZm9ydHJhbi8xNTI2NgoJKiBpbmNsaGFjay5kZWYgKGJyb2tlbl9jYWJzKTogTWVudGlvbiBJUklYIDUvNiBwcm9ibGVtLgoJVXNlIGRvdWJsZSBxdW90ZXMgaW4gc2VsZWN0IHNvIFx0IG1hdGNoZXMgdGFicy4KCUFkZCBJUklYIHRlc3RjYXNlLgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2UvbWF0aC5oIFtCUk9LRU5fQ0FCU19DSEVDS106IEFkYXB0IGZvciBuZXcgdGVzdGNhc2UuCgoyMDA1LTA1LTIyICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291Y2Vmb3JnZS5uZXQ+CgoJUFIgdGFyZ2V0LzIxNjgzCgkqIGZpeGluY2wuYzogRG9uJ3QgaW5jbHVkZSA8c3lzL3dhaXQuaD4gaWYgU0VQQVJBVEVfRklYX1BST0MuCgoyMDA1LTA1LTE5ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgogICAgICAgICAgICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiB0YXJnZXQvMTk5MzMKCVBSIHRhcmdldC8yMTMxNQoJKiBpbmNsaGFjay5kZWY6IE5ldyBmaXhlcyBzb2xhcmlzX21hdGhfWzEtOV0uCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCSogdGVzdHMvYmFzZS9pc28vbWF0aF9jOTkuaDogTmV3LgoKMjAwNS0wNS0xOSAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGFjbG9jYWwubTQ6IFJlbW92ZSBzdXBlcmZsdW91cyByZWZlcmVuY2UgdG8gYWNjcm9zcy5tNC4KCjIwMDUtMDUtMTUgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZml4bGliLmMgKGxvYWRfZmlsZV9kYXRhKTogVXNlIFhSRVNJWlZFQyBpbiBsaWV1IG9mIHhyZWFsbG9jLgoJKiBzZXJ2ZXIuYyAobG9hZF9kYXRhKTogTGlrZXdpc2UuCgkocnVuX3NoZWxsKTogVXNlIFhDTkVXIChjaGFyKSBpbiBsaWV1IG9mIHhjYWxsb2MgKDEsIDEpLgoJKiBmaXhpbmNsLmM6ICNpbmNsdWRlIDxzeXMvd2FpdC5oPgoJKHJ1bl9jb21waWxlcyk6IFVzZSBYQ05FV1ZFQyBpbnN0ZWFkIG9mIHhjYWxsb2MuCgkoZml4X3dpdGhfc3lzdGVtLCBzdGFydF9maXhlcik6IFVzZSBYTkVXVkVDIGluc3RlYWQgb2YgeG1hbGxvYy4KCSogZml4Zml4ZXMuYyAoRklYX1BST0NfSEVBRCwgbWFpbik6IExpa2V3aXNlLgoKMjAwNS0wNS0xMCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmNsaGFjay5kZWYgKHN0ZGlvX3N0ZGFyZ19oLCBzdGRpb192YV9saXN0KTogQnlwYXNzIG9uCgkqLSotc29sYXJpczIuMVswLTldKiwgbm90IGp1c3QgKi0qLXNvbGFyaXMyLjFbMC05XS4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNS0wNS0wNiAgQnJ1Y2UgS29yYiAgPGJrb3JiQGdudS5vcmc+CglKb3NlcGggUy4gTXllcnMgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZml4aW5jL2luY2xoYWNrLmRlZjogQ29ycmVjdCBiYWNrc2xhc2hlcwoJKiBmaXhpbmMvZml4aW5jbC54OiByZWdlbgoKMjAwNS0wNC0xOSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogc3lzdGVtLmggKGZvcGVuLCBmZG9wZW4sIGZyZW9wZW4pOiBEZWZpbmUgdGhlc2UgdG8gdGhlIHVubG9ja2VkCglsaWJpYmVydHkgZnVuY3Rpb25zLgoKMjAwNS0wNC0xMSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY29uZmlndXJlLmFjIChmaXhpbmNsdWRlc19VTkxPQ0tFRF9GVU5DUyk6IE5ldy4KCShBQ19DSEVDS19GVU5DUywgQUNfQ0hFQ0tfREVDTFMpOiBDaGVjayBmb3IgZml4aW5jbHVkZXNfVU5MT0NLRURfRlVOQ1MuCgkqIHN5c3RlbS5oIChwdXRjaGFyLCBnZXRjLCBnZXRjaGFyLCBjbGVhcmVyciwgZmVvZiwgZmlsZW5vLAoJZmZsdXNoLCBmZ2V0YywgZmdldHMsIGZlcnJvciwgZnJlYWQpOiBSZWRlZmluZSB0byB0aGUgYXNzb2NpYXRlZAoJX3VubG9ja2VkIGZ1bmN0aW9uLgoJKGZ3cml0ZV91bmxvY2tlZCk6IEZpeCBwcm90b3R5cGUuCgoJKiBjb25maWd1cmUsIGNvbmZpZy5oLmluOiBSZWdlbmVyYXRlLgoKMjAwNS0wMy0yMSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluOiBTZXQgZ2NjX3ZlcnNpb24gZGlyZWN0bHksIG5vdCB2aWEgc3Vic3RpdHV0aW9uLgoJKGxpYnN1YmRpcik6IFVzZSAkKGdjY192ZXJzaW9uKSwgbm90ICQodmVyc2lvbikuCgkobWtoZWFkZXJzLmFsbW9zdCk6IE5ldyBydWxlLgoJKG1raGVhZGVycyk6IEdlbmVyYXRlIGZyb20gbWtoZWFkZXJzLmFsbW9zdC4KCShjbGVhbik6IEFsc28gZGVsZXRlIG1raGVhZGVycy5hbG1vc3QuCgkqIGFjbG9jYWwubTQ6IERvIG5vdCBpbmNsdWRlIC4uL2NvbmZpZy9nY2MtdmVyc2lvbi5tNC4KCSogY29uZmlndXJlLmFjOiBEbyBub3QgaW52b2tlIFRMX0FDX0dDQ19WRVJTSU9OLiAgR2VuZXJhdGUKCW1raGVhZGVycy5hbG1vc3QgZnJvbSBta2hlYWRlcnMuaW4uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDUtMDMtMjEgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoQGdjYy5nbnUub3JnPgoKCVBSIHRhcmdldC8yMDE2NgoJKiBpbmNsaGFjay5kZWY6IEFkZCBmaXggZm9yIGFycmF5IG9mIGluY29tcGxldGUgc3RydWN0dXJlcwoJaW4gZnVuY3Rpb24gcHJvdG90eXBlIGluIHB0aHJlYWQuaC4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL3B0aHJlYWQuaDogQWRqdXN0LgoKMjAwNS0wMy0xNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmNsaGFjay5kZWYgKGhwdXhfaHRvbmwpOiBOZXcgZml4LgoJKiB0ZXN0cy9iYXNlL25ldGluZXQvaW4uaDogTmV3IHRlc3QuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCjIwMDUtMDItMjMgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIE1ha2VmaWxlLmluIChmdWxsLXN0YW1wLCB0ZXN0LXN0YW1wLCAkKEFGKSk6IEFkZCAkKENGTEFHUykgdG8gbGluay4KCjIwMDQtMTItMTMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIDE4NDU4CgkqIE1ha2VmaWxlLmluIChpbnN0YWxsKTogQWRkIEBFWEVFWFRAIHRvIHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gbmFtZSwKCWZpeGluY2wuCgoyMDA0LTEyLTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6IFVzZSBUTF9BQ19HQ0NfVkVSU0lPTiB0byBzZXQgZ2NjX3ZlcnNpb24uCgkqIGFjbG9jYWwubTQ6IEluY2x1ZGUgLi4vY29uZmlnL2djYy12ZXJzaW9uLm00LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTExLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jbGhhY2suZGVmIChnbnVfdHlwZXMpOiBEbyBub3QgdXNlIG9uIFNvbGFyaXMgMi4xeC4KCShzdGRpb192YV9saXN0KTogTGlrZXdpc2UuCgkoc3RkaW9fc3RkYXJnLmgpOiBMaWtld2lzZS4KCShzb2xhcmlzX3N0ZGlvX3RhZyk6IEFkZCBieXBhc3MuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZWQuCgoyMDA0LTExLTIzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIG1rZml4aW5jLnNoOiBDaGVjayBlcnJvciBjb2RlIGZyb20gJ2NhdCcuICBEb24ndCB0cnkgcnVubmluZwoJYnVpbHQgZml4aW5jbCBwcm9ncmFtLgoJKiBta2hlYWRlcnMuaW46IFVzZSBAU0hFTExAIHJhdGhlciB0aGFuICR7U0hFTEx9IHRvIGF2b2lkIHBpY2tpbmcKCXVwIGNzaCBmcm9tIHVzZXIuCgoyMDA0LTExLTIwICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGluY2xoYWNrLmRlZiAoYWxwaGFfcHRocmVhZF9pbml0KTogRml4IHRlY2huaWNhbCBwcm9ibGVtcyB3aXRoCgl0aGUgbGFzdCBjaGVjay1pbiBjYXVzZWQgYnkgQ1ZTIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KCSogZml4aW5jbC54OiBMaWtld2lzZS4KCSogdGVzdHMvYmFzZS9wdGhyZWFkLmg6IExpa2V3aXNlLgoKMjAwNC0xMS0yMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgkgICAgQnJ1Y2UgS29yYiAgPGJrb3JiQGdudS5vcmc+CgoJKiBpbmNsaGFjay5kZWYgKGFscGhhX3B0aHJlYWRfaW5pdCk6IE5ldyBmaXguCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCSogdGVzdHMvYmFzZS9wdGhyZWFkLmg6IFVwZGF0ZSBmb3IgbmV3IHRlc3QuCgoyMDA0LTExLTE1ICBCcnVjZSBLb3JiICA8YmtvcmJAZ251Lm9yZz4KCgkqIGZpeGluY2wuYyhmaXhfd2l0aF9zeXN0ZW0pOiBjb3JyZWN0IG1pc3VzZSBvZiB2YXJpYWJsZXMgYW5kCglpbmNvcnJlY3QgYXBwbGljYXRpb24gb2YgInNpemVvZigpIi4KCjIwMDQtMTEtMTMgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jbGhhY2suZGVmIChocHV4X21heGludCwgbGltaXRzX2lmbmRlZnMsIG1hdGhfaHVnZV92YWxfaWZuZGVmLAoJc3ZyNF9fcCwgdW5kZWZpbmVfbnVsbCk6IFJlbW92ZS4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL0F2YWlsYWJpbGl0eU1hY3Jvcy5oLCB0ZXN0cy9iYXNlL2NvbV9lcnIuaDogTmV3LgoJKiB0ZXN0cy9iYXNlL3N5cy9wYXJhbS5oOiBSZW1vdmUuCgkqIHRlc3RzL2Jhc2UvY3Vyc2VzLmgsIHRlc3RzL2Jhc2UvbWF0aC5oLCB0ZXN0cy9iYXNlL3Rlc3RpbmcuaCwKCXRlc3RzL2Jhc2Uvc3lzL2xpbWl0cy5oOiBVcGRhdGUuCgoyMDA0LTExLTEyICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIE1ha2VmaWxlLmluIChodG1sKTogQWRkIGh0bWwgZ2VuZXJhdGlvbiBzdXBwb3J0LgoKMjAwNC0xMS0xMiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmNsaGFjay5kZWYgKHNjb19tYXRoKTogQnlwYXNzIG9uIF9fR05VR19fLgoJKHN5c3pfc3RkbGliX2Zvcl9zdW4pOiBCeXBhc3Mgb24gX0NMQVNTSUNfQU5TSV9UWVBFUy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNC0xMS0wOSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmNsaGFjay5kZWYgKGhwdXg4X2JvZ3VzX2lubGluZXMpOiBCeXBhc3Mgb24gX19HTlVHX18uCgkoaW50X2Fib3J0X2ZyZWVfYW5kX2V4aXQsIHN1bl9tYWxsb2MsIHN5c3Y2OF9zdHJpbmcpOiBCeXBhc3Mgb24KCV9DTEFTU0lDX0FOU0lfVFlQRVMuCgkoc3VuX2F1dGhfcHJvdG8pOiBCeXBhc3Mgb24gX19jcGx1c3BsdXMuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCjIwMDQtMTEtMDUgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuaW4gKG1vc3RseWNsZWFuKTogQWRkIGZpeGluYy5zaC4KCShjbGVhbik6IEFkZCBta2hlYWRlcnMuCgkoZGlzdGNsZWFuKTogTmV3LgoJKGR2aSk6IE5ldy4KCShpbmZvKTogTmV3LgoJKGluc3RhbGxjaGVjayk6IE5ldy4KCjIwMDQtMTEtMDUgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5pbiAobW9zdGx5Y2xlYW4sIGRpc3RjbGVhbik6IE5ldyB0YXJnZXRzLgoKMjAwNC0xMS0wNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEFkZCBjb2RlIHRvIGRldGVybWluZSBub25jYW5vbmljYWxfdGFyZ2V0LAoJbG9jYWxfcHJlZml4LCBnY2NfdmVyc2lvbjsgcHJvY2VzcyBta2hlYWRlcnMuaW4gdG8gbWFrZSBta2hlYWRlcnMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZml4aW5jLmluOiBNb3ZlIGhlcmUgZnJvbSBnY2MvOyBmaXggbWFueSBjcm9zcy1ob3N0aW5nIGJ1Z3MuCgkqIG1rZml4aW5jLnNoOiBNb3ZlIGhlcmUgZnJvbSBnY2MvOyB1cGRhdGUgZm9yIGNoYW5nZXMgdG8gZml4aW5jLmluLgoJKiBta2hlYWRlcnMuaW46IE1vdmUgaGVyZSBmcm9tIGdjYy87IHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IG1hY3JvczsKCXVwZGF0ZSBmb3IgY2hhbmdlcyB0byBmaXhpbmMuaW4uCgkqIE1ha2VmaWxlLmluOiBBZGQgbWFueSBuZXcgbWFjcm9zLgoJKGluc3RhbGwpOiBOZXcgdGFyZ2V0LgoJKG1raGVhZGVycyk6IE5ldyB0YXJnZXQuCgkoZml4aW5jLnNoKTogTmV3IHRhcmdldC4KCShhbGwpOiBBZGQgbWtoZWFkZXJzIGFuZCBmaXhpbmMuc2guCgkqIFJFQURNRS1maXhpbmM6IE1vdmUgaGVyZSBmcm9tIGdjYy8uCgoyMDA0LTExLTAxICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGluY2xoYWNrLmRlZiAoc3RkaW9fdmFfbGlzdCk6IEJyZWFrIG91dCBjbGllbnRzIGZyb20gaGVyZS4uLgoJKHN0ZGlvX3ZhX2xpc3RfY2xpZW50cyk6IC4uLnRvIGhlcmUuICBBbHNvLCBkb24ndCBmaXggaWYgc3RkYXJnLmggaXMKCWluY2x1ZGVkIG9yIGlmZGVmIHZhX3N0YXJ0LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgoyMDA0LTEwLTI4ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGluY2xoYWNrLmRlZiAodm9pZF9udWxsKTogQXZvaWQgY2hhbmdpbmcgTlVMTCBvbiBDKysgZnJpZW5kbHkKCXN5c3RlbXMuCgkqIGZpeGluY2wueDogUmVnZW5lcmF0ZS4KCjIwMDQtMTAtMjcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogaW5jbGhhY2suZGVmIChkYXJ3aW5fZ2NjNF9icmVha2FnZSk6IE5ldy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNC0xMC0yNyAgQWFyb24gVy4gTGFGcmFtYm9pc2UgIDxhYXJvbmF2YXk2MkBhYXJvbndsLmNvbT4KCglQUiBib290c3RyYXAvMTc4MzIKCgkqIGZpeGZpeGVzLmMgKG1haW4pOiBDaGVjayBmb3IgX1BDX05BTUVfTUFYLgoKMjAwNC0xMC0yNyAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCglQUiBvdGhlci8xNzk5MQoKCSogY29uZmlndXJlLmFjOiBGaXggdHlwby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBmaXhpbmNsLmMgKGZpeF93aXRoX3N5c3RlbSk6IHRTQ0MgaXMgbm90IGEgcG9pbnRlci4gIEZpeC4KCjIwMDQtMTAtMjAgIEFhcm9uIFcuIExhRnJhbWJvaXNlICA8YWFyb25hdmF5NjJAYWFyb253bC5jb20+CgoJUFIgYm9vdHN0cmFwLzE3ODMyCgoJKiBmaXhpbmNsLmMgKFNJR0NITEQpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCShpbml0aWFsaXplKTogUmVtb3ZlIFNJR0lPVCBhbmQgU0lHUElQRSBjaGVja3MuCgkoY3JlYXRlX2ZpbGUpOiBGaXggbWtkaXIoKSBmb3IgV2luMzIuCgkoaW50ZXJuYWxfZml4KTogVXNlIGR1cDIoKSBpbnN0ZWFkIG9mIGZjbnRsKCkuCgoJKiBmaXhsaWIuaCAoU0lHUVVJVCk6IERlZmluZSBpZiB1bmRlZmluZWQuCgkoU0lHSU9UKTogU2FtZS4KCShTSUdQSVBFKTogU2FtZS4KCShTSUdBTFJNKTogU2FtZS4KCShTSUdLSUxMKTogU2FtZS4KCgkqIHByb2NvcGVuLmMgKGNoYWluX29wZW4pOiBVc2UgZHVwMigpIGluc3RlYWQgb2YgZmNudGwoKS4KCjIwMDQtMDgtMTQgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJUFIgb3RoZXIvMTc5OTEKCgkqIE1ha2VmaWxlLmluIChBTExPQkosIFRFU1RPQkosIEZJWE9CSik6IEFkZCBmaXhvcHRzLm8uCglVcGRhdGUgY29weXJpZ2h0IHllYXIuCgkqIGZpeGZpeGVzLmMgKG1haW4pOiBDYWxsIGluaXRpYWxpemVfb3B0cyBmcm9tIGZpeG9wdHMuYy4KCSogZml4aW5jbC5jIChpbml0aWFsaXplKTogQ2FsbCBpbml0aWFsaXplX29wdHMgZnJvbSBmaXhvcHRzLmMsCglkbyBub3QgaW5jbHVkZSBjb2RlIGZvciBwYXJzaW5nIG9wdGlvbnMgKGVudmlyb25tZW50IHZhcnMpLgoJKGZpeF93aXRoX3N5c3RlbSk6IFVzZSBhIHNlYXJjaCBwYXRoIGZvciBhcHBseWZpeCwgc28gdGhhdCB5b3UKCWNhbiBydW4gdGhlIHRlc3Qgc3VpdGUgd2l0aCB0d28tcHJvY2VzcyBmaXhpbmNsdWRlcy4KCSogZml4b3B0cy5jOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLmFjOiBBZGQgLS1lbmFibGUtdHdvcHJvY2Vzcy4gIEV4cG9ydCBhY19leGVleHQKCXRvIGNvbmZpZy5oLiAgRGVmYXVsdCB0byAtLWVuYWJsZS10d29wcm9jZXNzIGZvciBNaW5HVzMyLgoJKiBjb25maWcuaC5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0xMC0wNCAgTG9yZW4gSi4gUml0dGxlICA8bGpyaXR0bGVAYWNtLm9yZz4KCgkqIHRlc3RzL2Jhc2Uvc3lzL2NkZWZzLmg6IFVwZGF0ZSBmcm9tIHRlc3QgYXJlYS4KCjIwMDQtMDktMTcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaW5jbGhhY2suZGVmIChsaW51eF9pYTY0X3Vjb250ZXh0KTogTmV3IGZpeC4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiB0ZXN0cy9iYXNlL3N5cy91Y29udGV4dC5oOiBOZXcgZmlsZS4KCjIwMDQtMDktMTUgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogdGVzdHMvYmFzZS9zeXMvdGltZS5oOiBDb3JyZWN0IG1pc21hdGNoIGluIDIwMDQtMDktMTAgY2hlY2staW4uCgkqIHRlc3RzL2Jhc2Uvc3RkbGliLmg6IExpa2V3aXNlLgoKMjAwNC0wOS0xMyAgTG9yZW4gSi4gUml0dGxlICA8bGpyaXR0bGVAYWNtLm9yZz4KCgkqIGluY2xoYWNrLmRlZiAoZnJlZWJzZF9nY2M0X2JyZWFrYWdlKTogQWRkLgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2Uvc3lzL2NkZWZzLmg6IFVwZGF0ZSBmb3IgbmV3IHRlc3QuCgoyMDA0LTA5LTEwICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogaW5jbGhhY2suZGVmIChseW54X3ZvaWRfaW50KTogUmVtb3ZlLgoJKGx5bnhvc19mY250bF9wcm90byk6IFJlbW92ZS4KCShseW54b3Nfbm9fd2FybmluZ19pbl9zeXNfdGltZV9oKTogTmV3IGZpeC4KCShseW54b3NfbWlzc2luZ19wdXRlbnYpOiBOZXcgZml4LgoJKiBmaXhpbmNsLng6IFJlZ2VuZXJhdGUuCgkqIHRlc3RzL2Jhc2UvZmNudGwuaDogUmVtb3ZlLgoJKiB0ZXN0cy9iYXNlL3N5cy90aW1lLmg6IFVwZGF0ZSBmcm9tIHRlc3QgYXJlYS4KCSogdGVzdHMvYmFzZS9jdXJzZXMuaDogTGlrZXdpc2UuCgkqIHRlc3RzL2Jhc2Uvc3RkbGliLmg6IExpa2V3aXNlLgoKMjAwNC0wOS0wMyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogaW5jbGhhY2suZGVmOiBTdXBwcmVzcyBleGNlcHRpb25fc3RydWN0dXJlIGFuZCBtYXRoX2V4Y2VwdGlvbgoJZm9yIE5ldFdhcmUgaGVhZGVycy4KCSogZml4aW5jbC54OiBSZWdlbmVyYXRlLgoKMjAwNC0wOC0zMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIC5jdnNpZ25vcmU6IE5ldy4KCSogTWFrZWZpbGUuaW46IEZyb20gZ2NjL2ZpeGluYy9NYWtlZmlsZS5pbiwgbWFraW5nIGl0IGZ1bGx5CglhdXRvY29uZmlzY2F0ZWQuCgkqIGNvbmZpZ3VyZS5hYzogTmV3LgoJKiBjb25maWcuaC5pbjogR2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogR2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IE5ldy4KCSogZml4bGliLmg6IFJlbW92ZSBpbmNsdXNpb25zIG9mIGdjYyBmaWxlcy4KCSogc3lzdGVtLmg6IE5ldy4KCglPdGhlciBmaWxlcyBjb3BpZWQgZnJvbSBnY2MvZml4aW5jLgo=