Y29tbWl0IDc3NTRmMzNjNmZiN2EyYzA1MDM4OGQyMGJmMzg0NzAzODU1OGJkY2YKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEZlYiAyMSAxMzo1ODoxMSAyMDA4IC0wNTAwCgogICAgTE03MyBidWcgZml4IGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMgYW5kIGNsZWFudXAKCiAgICBXaGVuIHRoZSBMTTczIHRlbXBlcmF0dXJlIHNlbnNvciBtZWFzdXJlcyBhIHRlbXBlcmF0dXJlIGJlbG93IDAgQywgdGhlCiAgICBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBwZXJmb3JtIHNpZ24gZXh0ZW5zaW9uLCBzbyB0aGUgcmVzdWx0IHJldHVybmVkIGlzCiAgICA1MTIgQyB0b28gaGlnaC4gIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0sIGFuZCBkb2VzIGdlbmVyYWwgY2xlYW51cAogICAgb2YgdGhlIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOTZlZjgzMWY3MTMyODlhZmJhMTlkYTBjOGY5MDVlOTlkYTJiMjNlMApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDEzOjM2OjAyIDIwMDggKzAyMDAKCiAgICBjZmlfZmxhc2g6IFN1cHBvcnQgYnVmZmVyZWQgd3JpdGVzIG9uIG5vbi1zdGFuZGFyZCBTcGFuc2lvbiBOT1IgZmxhc2gKCiAgICBTb21lIE5PUiBmbGFzaCBjaGlwIGZyb20gU3BhbnNpb24sIGZvciBleGFtcGxlLCB0aGUgczI5d3MtbiBNaXJyb3JCaXQKICAgIHNlcmllcyByZXF1aXJlIGRpZmZlcmVudCBhZGRyZXNzZXMgZm9yIGJ1ZmZlcmVkIHdyaXRlIGNvbW1hbmRzLiBEZWZpbmUgYQogICAgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc3VwcG9ydCBidWZmZXJlZCB3cml0ZXMgb24gdGhvc2UgY2hpcHMuIEEgbW9yZQogICAgZWxlZ2FudCBzb2x1dGlvbiB3b3VsZCBiZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aG9zZSBjaGlwcyBieSBwYXJzaW5nCiAgICB0aGVpciBDRkkgcmVjb3JkcywgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBpbnRyb2R1Y3Rpb24gb2YgYSBmaXh1cCB0YWJsZQogICAgaW50byB0aGUgY2ZpX2ZsYXNoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgM2Y5YzU0MmQzZDY5YjFhMTBhNWUxOTNlNzc5MTMzYTA0NTRkMWY0NApBdXRob3I6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAxMCAwOTozNTowNiAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogVXBkYXRlIERJTU0gZGF0YSBidXMgd2lkdGggdGVzdCB0byBzdXBwb3J0IDQwLWJpdCB3aWR0aAoKICAgIDMyLWJpdCB3aWRlIEVDQyBtZW1vcnkgbW9kdWxlcyByZXBvcnQgNDAtYml0IHdpZHRoLgogICAgQ2hhbmdlZCB0aGUgRElNTSBkYXRhIGJ1cyB3aWR0aCB0ZXN0IHRvICdsZXNzIHRoYW4gNjQnIGluc3RlYWQgb2YgJ2VxdWFsIDMyJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmYjVhNjg5ZDgyMmNhNjFlODE0YmQ1MjNmYzkzMGFmMzM1MjQyZmEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTc6MDU6MTIgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYnVnIG9mIHNlcmRlcyBpbml0aWFsaXphdGlvbgoKICAgIEN1cnJlbnRseSB0aGUgc2VyZGVzIHdpbGwgbm90IGJlIGluaXRpYWxpemF0ZWQgZHVlIHRvIHRoZQogICAgcGFydGlkJ3MgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjAwMDc4NDgxOGYwNDNkYjdjYTYwZTI4NDZhNzJkMDk3NzY2Yjg5NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAzIDE2OjI4OjI5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIFNBVEEgY2xvY2sgc2V0dGluZyBvZiA4Mzd4IHRhcmdldHMKCiAgICBDdXJyZW50bHkgdGhlIFNBVEEgY29udHJvbGxlciBjbG9jayBpcyBjb25maWd1cmVkIGFzIENTQiBjbG9jaywKICAgIHVzdWFsbHkgdGhlIENTQiBjbG9jayBpcyA0MDAvMzMzLzI2Nk1Iei4KCiAgICBIb3dldmVyLCBUaGUgU0FUQSBJUCBibG9jayBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gb3BlcmF0ZSB1cCB0bwogICAgMjAwIE1IeiBhcyBzdGF0ZWQgaW4gdGhlIEhXIHNwZWMuCgogICAgVGhlIGJ1ZyBpcyByZXBvcnRlZCBieSBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIFNBVEEgY2xvY2sgYXMgaGFsZiBvZiBDU0IgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFjNGYzMjBiZjBiNTkzYWEwYTc0MWYyZDY0OWE4ZWNlODgzODY3MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAxMzo0MToyMSAyMDA4ICswMjAwCgogICAgbXBjODM3eGVyZGI6IEZpeCB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZmR0X2ZpeHVwX2RyX3VzYicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2IzZWNiNTc1YTkyZmEzNGMxNzY1MjI5ZGJjMDZmMmI2NjJmMTM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEFwciA5IDA0OjIwOjU3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggZGV0ZWN0aW9uIG9mIE1QIGNwdSBzcGluIHVwCgogICAgV2Ugd2VyZSBsb29raW5nIGF0IHRoZSB3cm9uZyBtZW1vcnkgb2Zmc2V0IHRvIGRldGVybWluZSBvZiBhIHNlY29uZGFyeQogICAgY3B1IGhhZCBiZWVuIHNwdW4gdXAgb3Igbm90LiAgQWxzbyBhZGRlZCBhIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUKICAgIGFsbCB0aGUgc2Vjb25kYXJ5IGNwdXMgd2UgZXhwZWN0IGRvbid0IHNwaW4gdXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmM2UwNGJkYzNmMzYwYzY2ODAxYTkwNDg5NTZlNjFlNDFhMTZlZGJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciA4IDEwOjQ1OjUwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBVc2UgU1ZSX1NPQ19WRVIgaW5zdGVhZCBvZiBTVlJfVkVSCgogICAgVGhlIHJlY2VudCBjaGFuZ2UgaW50cm9kdWNlZCBieSAnVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0JwogICAgbm93IHJlcXVpcmVzIHRoYXQgd2UgdXNlIFNWUl9TT0NfVkVSIGluc3RlYWQgb2YgU1ZSX1ZFUiBpZiB3ZSB3YW50CiAgICB0byBjb21wYXJlIGFnYWluc3QgYSBwYXJ0aWN1bGFyIHByb2Nlc3NvciBpZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDViMjA1MmU1ZjVmY2NlNWRiZDRkMjc1MGEyOWMwZTQ1YmNlODA2ZTcKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglGcmkgQXByIDExIDEwOjAwOjM1IDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IEZpeCBwb3dlciBtZ3QgZGVmaW5pdGlvbnMgZm9yIFBQQzQ0MAoKICAgIENvcnJlY3RlZCBEQ1IgYWRkcmVzc2VzIG9mIFBQQzQ0MEVQIHBvd2VyIG1hbmFnZW1lbnQgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+Cgpjb21taXQgOTUwYTM5MjQ2NGU2MTZiNDU5MGJjNDUwMWJlNDZlMmQ3ZDE2MmRlYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTEgMTU6MTE6MjYgMjAwOCArMDIwMAoKICAgIFJldmVydCBtZXJnZSBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LWFybSwgY29tbWl0IDYyNDc5YjE4OgoKICAgIFJldmVydGluZyBiZWNhbWUgbmVjZXNzYXJ5IGFmdGVyIGl0IHR1cm5lZCBvdXQgdGhhdCB0aGUgcGF0Y2hlcyBpbgogICAgdGhlIHUtYm9vdC1hcm0gcmVwbyB3ZXJlIG1vZGlmaWVkLCBhbmQgaW4gc29tZSBjYXNlcyBjb3JydXB0ZWQuCgogICAgVGhpcyByZXZlcnRzIHRoZSBmb2xsb3dpbmcgY29tbWl0czoKCgkwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCgk3YTgzN2I3MzEwMTY2YWU4ZmM4YjhkNjZkN2VmMDFiNjBhODBmOWQ2CgljODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CglhMTQ3ZTU2ZjAzODcxYmJhNGYwNTA1OGQ1ZTA0Y2U3ZGViMDEwYjA0CglkNjY3NGUwZTJhNmExZjAzMzk0NWY3ODgzODU2NjIxMGQzZjI4Yzk1Cgk4Yzg0NjNjY2U0NGQ4NDllMzc3NDQ3NDliMzJkMzhlMWRmYjEyZTUwCgljOThiNDdhZDI0YjJkOTFmNDFjMDlhM2Q2MmQ3ZjcwYWQ4NGY0YjdkCgk4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCgk4YzE2Y2IwZDNiOTcxZjQ2ZmJlNzdjMDcyNjY0YzBmMmRjZDQ0NzFkCglhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCgkxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCgkxNzA0ZGMyMDkxN2I0ZjcxZTM3M2UyYzg4ODQ5N2VlNjY2ZDQwMzgwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NGU1NDFmNGMxYjQxM2RkODRjN2U0MDlmNWMyYmYzMjhkYjJhYzEzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDExIDA3OjAyOjI5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLaWxhdWVhIGRlZmNvbmZpZyB0byB1c2UgZGV2aWNlLXRyZWUgYm9vdGluZyBhcyBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IG9uIEtpbGF1ZWEvSGFsZWFrYWxhLiBOb3cKICAgICJuZXRfbmZzIiBmb3IgZXhtYXBsZSB1c2VzIHRoZSBkZXZpY2UtdHJlZSBzdHlsZSBib290aW5nIGZvcm1lcmx5IGtub3cKICAgIGFzICJuZXRfbmZzX2ZkdCIuIEFsc28gdGhlIGFkZHJlc3NlcyBpbiBSQU0gd2VyZSBjaGFuZ2VkIGJlY2F1c2Ugb2YgdGhlCiAgICBuZXcgaW1hZ2UgYm9vdGluZyBzdXBwb3J0LCB3aGljaCBjaGVjayBmb3IgaW1hZ2Ugb3ZlcndyaXRpbmcuIFNvIHRoZQogICAgYWRkcmVzc2VzIG5lZWRlZCB0b2dlZXQgYWRqdXN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1NmY1ZGFjZGEzODEwYjA5NGI5NGJjY2VmZmQzY2U2YzdmZjlhMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1ODowMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgZGVmYXVsdCBlbnZpcm9ubWVudCB0byB3b3JrIHdpdGggbmV3IGltYWdlIHN1cHBvcnQKCiAgICBTaW5jZSB0aGUgbmV3IGltYWdlIHN1cHBvcnQgY2hlY2tzIGZvciBpbWFnZSBvdmVyd3JpdGluZywgdGhlIGRlZmF1bHQKICAgIGVudmlyb25tZW50IG5lZWRzIHRvIGdldCBhZGp1c3RlZCB0byB1c2UgY29ycmVjdCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmYzZjN2I2NDdkYmE3YWI4Njc0OTYxNmYwZTllNTc0MGRlZWQ0MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1NDoxMSAyMDA4ICswMjAwCgogICAgcHBjOiBSZXZlcnQgcGF0Y2ggNzA0MzFlOGEgdGhhdCB1c2VkIF9zdGFydCBpbnN0ZWFkIG9mIENGR19NT05JVE9SX0JBU0UKCiAgICBUaGUgcGF0Y2ggNzA0MzFlOGE3MzkzYjZiNzkzZjc3OTU3Zjk1Yjk5OWZjOWEyNjliOCAoTWFrZSBNUEM4M3h4IG9uZSBzdGVwCiAgICBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLikgZG9lc24ndCB1c2UgQ0ZHX01PTklUT1JfQkFTRSBhbnltb3JlLiBCdXQKICAgIG9uIDR4eCBzeXN0ZW1zIF9zdGFydCBjdXJyZW50bHkgY2Fubm90IGJlIHVzZWQgZm9yIHRoaXMgY2FsY3VsYXRpb24uCiAgICBTbyByZXZlcnQgYmFjayB0byB0aGUgb3JpZ2luYWwgdmVyc2lvbiBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmOTEzNzRmNjVlYWU4YjQyY2FjMzI5ZTA2YmExYzU0NzI4Mjc4ZWZiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQ5OjUyIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBTb3J0IG1pY3JvYmxhemUgYm9hcmRzIGluIE1BS0VBTEwgc2NyaXB0Cgpjb21taXQgNjIwMzJkZWI3MjE0YzZkOWI0Mzk2Mjk3ZTJhYWE1NTliYzJmODQ5NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1ODo0NSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogY2xlYW4gbWljcm9ibGF6ZV9jb25maWcubWsKCiAgICBGTEFHUyBhcmUgZ2VuZXJhdGVkIGJ5IFUtQk9PVCBnZW5lcmF0b3IuCiAgICBCb2FyZCBzcGVjaWZpYyBGTEFHUyBhcmUgaW4gYm9hcmQgZGlyZWN0b3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGNmNWM2NzljYTA0YTZiNTRiZjUzYTU1YjhiOWMyOTMzNWIzODcyODcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDc6MTkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IHh1cHYycCBmaXggY29uZmlnIGZpbGUgZm9yIHN1cHBvcnRpbmcgRkRUCgpjb21taXQgMTg4ZGMxNmIxODkxNDM1NzNiMWVkOTBlNTg0YmY4NjZkNzVjZGQxMgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1MzowMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogbWw0MDEgZml4IGNvbmZpZyBmaWxlIGZvciBzdXBwb3J0aW5nIEZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA0YzZhNmYwMmUyMzkyMzYyNjEzMzM3NTk5OTdlZWFmODZiMzBiNTRjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjIyOjQ4IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBtbDQwMSAtIGFkZCBpZmRlZiBmb3IgR1BJTwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhZjdhZTFhNDExYzY3ZWU5ZDE3YTY2ZDE3Y2U1MGIzNzRmM2RkNGU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjEzOjAzIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBjbGVhbiB1YXJ0MTY1NTAgYW5kIHVhcnRsaXRlIGhhbmRsaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDBiMjBmMjUwODc3NDQxNDYwZmI3OWQ3MjE5Mjk1NGFiZTg0OTg4MzQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDg6MzEgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IEFkZCBFbWFjbGl0ZSBkcml2ZXIgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODY4Y2RlNTMxMGY4ODIzNGI3NzQ4NzhlNGYwNmU3OWRmMTBhODhiMwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTowODowMSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogQWRkIEVtYWMgZHJpdmVyIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDZmOTYxYjRmNDYxZjZjYmI4M2E0NjdkNDY4YTAyZTYwNzhjMmIzMjcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDI6MjkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjIGV0aGVybmV0IGRyaXZlcgoKY29tbWl0IDg5YzUzODkxYjE4Y2JhZmQyOWFiODkzMWI0MGUyN2FkMjMxYjYwODUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDE6NTYgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjbGl0ZSBldGhlcm5ldCBkcml2ZXIKCmNvbW1pdCBlNTg0NWUyMTIyNGRiZTJmZTQ3YjExZjFjZGY5NWRlN2Y4NGJlN2NiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjA0OjAxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBNTDQwMSBhbmQgWFVQVjJQIHJlbW92ZSBlbWFjIGFuZCBlbWFjbGl0ZSByZWZlcmVuY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNmJmM2U5ODJhZWZkYjFkYWY5ZjU0NjJkNDgyYzhmOWQxY2M5MGE1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMDo1OTozMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogcmVtb3ZlIG9sZCBzZXR0aW5nIGZvciBlbWFjIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBjZDJiNzVlZmI5Y2MwMzdjNzRlY2VlOWIzNTg2ZjliZjllMWQ0ZTU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEwOjU4OjE1IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBDbGVhbiBNYWtlZmlsZSBmcm9tIGFuY2llbnQgZW1hYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYWI2OGY5MjFkOWM3NDE4MzBmNzIxYzNkODc5YzEzYTBjNTU5NzE4MwpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoyMDo0MyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjI6IGFkZGVkIHN1cHBvcnQgZm9yIEdhaXNsZXIgc2ltdWxhdG9yIEdSU0lNL1RTSU0gZm9yIFNQQVJDL0xFT04yIHRhcmdldHMuIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA2ZWQ4YTQzYTE5YmIwMjc1NTAxYmMyODYwMDdkYWFmYTkyMzU1MmNmCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjM4OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItQ1BDSS1BWDIwMDAgRlBHQSBBWCBib2FyZC4gVGhlIEZQR0EgaXMgZXhjaGFuZ2VhYmxlIGJ1dCBhIHN0YW5kYXJkIExFT04zIGRlc2lnbiBpcyBhc3N1bWVkLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgNjk0MDM4M2Q5ZWMxYmZlMmYxM2UzMzllNmY3MjNlOGQzNGFmMmIxMgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMzozNDo0NyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjM6IGFkZGVkIHN1cHBvcnQgZm9yIEFsdGVyYSBOSU9TIERldmVsb3BtZW50IGtpdCAoU1RSQVRJWCBJSSBFZGl0aW9uKSB3aXRoIEdSTElCIHRlbXBsYXRlIGRlc2lnbi4gU2VlIHd3dy5nYWlzbGVyLmNvbSBmb3IgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDgyM2VkZDhhNjZlZDUwYWY1YWFiYTBjNzk1NjdmNjcwNjFlNGQ3OWEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MDY6NTIgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBhZGRlZCBzdXBwb3J0IGZvciBHYWlzbGVyIEdSU0lNL1RTSU0yIFNQQVJDL0xFT04zIHNpbXVsYXRvcm4uIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA3MWQ3ZTRjMDQ4OWU1ZWQ4ZmM2OTM4MjIzNmFhYTJhMWU1MTBjMTM1CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjI2OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItWEMzUy0xNTAwIGJvYXJkIHdpdGggR1JMSUIgdGVtcGxhdGUgZGVzaWduLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBib2FyZCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgYjMzMDk5MGMyZjM2ZWU0YThiYjMxODM2MGUxYzhiYTk2NTI2OWFiNgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDowMDozMyAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04yIFNPQyBQcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDJhMmZhNzk3ZTYzYjFlM2NkNGQ1NzAzMThjYTVmYmY4NzIzZWY1M2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjM6MDA6MzggMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBBTUJBIEJ1cyBQbHVnJlBsYXkgaW5mb3JtYXRpb24gcHJpbnQgY29tbWFuZCAoYW1iYXBwKS4gSXQgY2FuIHByaW50IGF2YWlsYWJsZSBjb3JlcyAodHlwZTogQUhCIE1hc3RlciwgQUhCIFNsYXZlLCBBUEIgU2xhdmUpLCB0aGVpciBhZGRyZXNzIHJhbmdlcywgSVJRIG51bWJlciBhbmQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgMWU5YTE2NGUyMjk3NjkzMzAwMmM1ZTRiMGI3OWIwOWZjZWRlOWNkNApBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MToyOSAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04zIFNPQyBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGJmM2Q4YjMxMTY5NTQ2ZmNkZGI0NzM3MzkxZTE4OTNmYjEyZDAzM2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMDg6Mjk6MjYgMjAwOCArMDEwMAoKICAgIFNQQVJDOiBhZGRlZCBTUEFSQyBzdXBwb3J0IGZvciBuZXcgdWltYWdlIGluIGNvbW1vbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCAwMGFiMzJjODU0MDVhNGZlNjVmZDQxMjgyNDMwODYyMTBmYzkwYTIxCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjM2OjAzIDIwMDggKzAxMDAKCiAgICBTUEFSQzogYWRkZWQgU1BBUkMgYm9hcmQgaW5mb3JtYXRpb24gdG8gdGhlIGNvbW1hbmQgYmRpbmZvLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCBjMmYwMmRhMjFhM2YzN2YwODc4NTU0ZWViYzc4NWUwNGZkYzRlMTI4CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA5OjQ3OjAwIDIwMDggKzAxMDAKCiAgICBTUEFSQzogQWRkZWQgZ2VuZXJpYyBzdXBwb3J0IGZvciBTUEFSQyBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGU1NGVjMGYwMTY4MDNlNGQ5NTI0ZmY3MWY3OTcxYmRhMGM1MWIyODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxNDo1MDozNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggNHh4IGVuZXQgZHJpdmVyIHRvIHN1cHBvcnQgNDYwR1QgRU1BQzIrMwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIFJHTUlJIHNldHVwIG9mIHRoZSA0NjBHVC4gVGhlIDQ2MEdUCiAgICBoYXMgMiBSR01JSSBpbnN0YW5jZXMgYW5kIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSAybmQgUkdNSUkgaW5zdGFuY2UKICAgIGZvciB0aGUgRU1BQzIrMyBjaGFubmVscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzJhNTQ1Y2UzM2IyNmQ4MDMzN2Y4MGI1MzM4Mjg4MzkyNDlmYjFjOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAwODowMzo1NiAyMDA4ICswMjAwCgogICAgTVBDOHh4OiBGaXggbGliZmR0IHN1cHBvcnQgaW50cm9kdWNlZCBpbiBjb21taXQgNzdmZjdiNzQKCiAgICBmZHQuYzogSW4gZnVuY3Rpb24gJ2Z0X2NwdV9zZXR1cCc6CiAgICBmZHQuYzozMzogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2RvX2ZpeHVwX2J5X3Byb3BfdTMyJwogICAgZmR0LmM6Mzk6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdkb19maXh1cF9ieV9jb21wYXRfdTMyJwogICAgZmR0LmM6NDM6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmZHRfZml4dXBfZXRoZXJuZXQnCiAgICBmZHQuYzo0NTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZkdF9maXh1cF9tZW1vcnknCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0YWJkODQ0ZDhlYjEwODczNmUxY2Y4ZmJmM2RiZjYxZjJkNWZjMTFiCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMxIDIwOjQ1OjU2IDIwMDggLTA1MDAKCiAgICBGaXggZmR0IHNldCBjb21tYW5kIHRvIGNvbmZvcm0gdG8gZHRzIHNwZWMKCiAgICBUaGUgZmR0IHNldCBjb21tYW5kIHdhcyB0cmVhdGluZyBwcm9wZXJ0aWVzIHNwZWNpZmllZCBhcyA8MDA+IGFuZCA8MDAxMT4KICAgIGFzIGJ5dGUgc3RyZWFtcywgcmF0aGVyIHRoYW4gYXMgYW4gYXJyYXkgb2YgY2VsbHMuCUFzIHdlIGFscmVhZHkgaGF2ZQogICAgc3ludGF4IGZvciBleHByZXNzaW5nIHRoZSBkZXNpcmUgZm9yIGEgc3RyZWFtIG9mIGJ5dGVzIChbIHh4IHh4IC4uLl0pLAogICAgd2Ugc2hvdWxkIHVzZSB0aGUgPD4gc3ludGF4IHRvIGRlc2NyaWJlIGFycmF5cyBvZiBjZWxscywgd2hpY2ggYXJlIGFsd2F5cwogICAgMzItYml0cyBwZXIgZWxlbWVudC4gIElmIHdlIGltYWdpbmUgdGhpcyBsaWtlbHkgKElNSE8pIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXQtcGh5QDEgcmVnIDwxPgoKICAgIFdpdGggdGhlIG9sZCBjb2RlLCB0aGlzIHdvdWxkIGNyZWF0ZSBhIGJhZCBmZHQsIHNpbmNlIHRoZSByZWcgY2VsbCB3b3VsZCBiZQogICAgbWFkZSB0byBiZSBvbmUgYnl0ZSBpbiBsZW5ndGguICBCdXQgdGhlIGNlbGwgbXVzdCBiZSA0IGJ5dGVzLCBzbyB0aGlzIHdvdWxkCiAgICBicmVhayBteXN0ZXJpb3VzbHkuCgogICAgQWxzbywgdGhlIGR0cyBzcGVjIGNhbGxzIGZvciBjb25zdGFudHMgaW5zaWRlIHRoZSBhbmdsZSBicmFja2V0cyAoPD4pCiAgICB0byBjb25mb3JtIHRvIEMgY29uc3RhbnQgc3RhbmRhcmRzIGFzIHRoZXkgcGVydGFpbiB0byBiYXNlLgogICAgVGFrZSB0aGlzIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXRAZjAwIHJlZyA8MHhlMjUwMDAwXCAweDEwMDA+CgogICAgVGhlIG9sZCBmZHQgY29tbWFuZCB3b3VsZCBjb21wbGFpbiB0aGF0IGl0IGNvdWxkbid0IHBhcnNlIHRoYXQuICBPciwgaWYgeW91CiAgICB3YW50ZWQgdG8gc3BlY2lmeSB0aGF0IGEgY2VydGFpbiBjbG9jayByYW4gYXQgMzMgTUh6LCB5b3UnZCBiZSByZXF1aXJlZCB0bwogICAgZG8gdGhpczoKCiAgICA+IGZkdCBzZXQgL215ZGV2IGNsb2NrIDwxZjc4YTQwPgoKICAgIFdoZXJlYXMgdGhlIG5ldyBjb2RlIHdpbGwgYWNjZXB0IGRlY2ltYWwgbnVtYmVycy4KCiAgICBXaGlsZSBJIHdhcyBpbiB0aGVyZSwgSSBleHRlbmRlZCB0aGUgZmR0IGNvbW1hbmQgcGFyc2VyIHRvIGhhbmRsZSBwcm9wZXJ0eQogICAgc3RyaW5ncyB3aGljaCBhcmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIGFyZ3VtZW50czoKCiAgICA+IGZkdCBzZXQgL2V0aGVybmV0QGYwMCBpbnRlcnJ1cHRzIDwgMzMgMiAzNCAyIDM2IDIgPgogICAgPiBmZHQgcCAvZXRoZXJuZXRAZjAwCiAgICBldGhlcm5ldEBmMDAgewoJaW50ZXJydXB0cyA9IDwweDIxIDB4MiAweDIyIDB4MiAweDI0IDB4Mj47CiAgICB9OwoKICAgIExhc3RseSwgdGhlIGZkdCBwcmludCBjb2RlIHdhcyByZWFycmFuZ2VkIHNsaWdodGx5IHRvIHByaW50IGFycmF5cyBvZiBjZWxscwogICAgaWYgdGhlIGxlbmd0aCBvZiB0aGUgcHJvcGVydHkgaXMgYSBtdWx0aXBsZSBvZiA0IGJ5dGVzLCBhbmQgdG8gbm90IHByaW50CiAgICBsZWFkaW5nIHplcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYzI5MjZhYmRkN2RiODkyOTZhOGNjN2YyMjRkZDlkNWQ0ZTM3YTU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDIgMDg6Mzk6MzMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IEluaXQgU0FUQS9QQ0llIHBvcnQgY29ycmVjdGx5CgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBjb3JyZWN0bHkgY29uZmlndXJlcyB0aGUgU0FUQS9QQ0llIFBIWSBmb3IgU0FUQSB1c2FnZSB3aGVuIHRoaXMganVtcGVyCiAgICBpcyBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmZTI5NDZmMTk4NDgxMjU0YTZlZTk2MDBkNzQ1NmI4MzE2YTQwODMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDE3OjM3OjQ5IDIwMDggLTA1MDAKCiAgICByZW1vdmUgcmVtYWluaW5nIENPTkZJR19PRl9IQVNfe1VCT09UX0VOVixCRF9UfSBjb2RlCgogICAgZmluaXNoIG9mZiB3aGF0IGNvbW1pdCA0M2RkZDljODIwZmVjNDQ4MTYxODhmNTMzNDZiNDY0ZTIwYjMxNDJkLAogICAgIlJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QiCiAgICBzdGFydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU4NzNmMTczMmI5MmEyNTY5MGUxNTEzYjkwZGZiMGQ2NDRmNjY5NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBBcHIgMSAwNzozMDo1MSAyMDA4ICswMjAwCgogICAgZGF0YWZsYXNoOiBNb3ZlIENPTkZJR19IQVNfREFUQUZMQVNIIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyZDkzNGVhNTFmMjc2NTIyYjUzMmY4NzBhODIwZTg0NGZmNDgwYjViCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxNToyOTo0NSAyMDA4ICswMTAwCgogICAgQWRkIFZpdGVzc2UgODYwMSBzdXBwb3J0IHRvIFRTRUMgZHJpdmVyCgogICAgQWRkIHBoeV9pbmZvIGZvciBWaXRlc3NlIFZTQzg2MDEuCiAgICBBZGQgY29uZmlnIG9wdGlvbiwgQ0ZHX1ZTQzg2MDFfU0tFV0ZJWCwgdG8gZW5hYmxlIFJHTUlJIHNrZXcgdGltaW5nIGNvbXBlbnNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgogICAgUmV2aWV3ZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNlYWM2NDAyYTUwOGIwZjY4YTIxY2M5Y2JjMmNjNDkzNDdkZTBjMzEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTQ6MjU6MDAgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBhZGRlZCBTTUM5MTExMSBkcml2ZXIgaW4gYW5kIG91dCBtYWNyb3MgZm9yIExFT04gcHJvY2Vzc29ycy4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIFNQQVJDL0xFT04gcHJvY2Vzc29ycyBhYmxlIHRvIHJlYWQgYW5kIHdyaXRlCiAgICB0byB0aGUgU01DOTExMTEgY2hpcCB1c2luZyB0aGUgY2hpcCBleHRlcm5hbCBJL08gYnVzIG9mIHRoZSBtZW1vcnkKICAgIGNvbnRyb2xsZXIuIFRoaXMgcGF0Y2hzIGRlZmluZXMgdGhlIHN0YW5kYXJkIGluIGFuZCBvdXQgbWFjcm9zCiAgICBleHBlY3RlZCBieSB0aGUgU01DOTExMSBkcml2ZXIuCgogICAgVG8gYWNjZXNzIHRoYXQgSS9PIGJ1cyBvbmUgbXVzdCBzZXQgdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyCiAgICAoTUNUUkwgb3IgRlRNQ1RSTCkgY29ycmVjdGx5LiBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlIHVzZXIgc2V0cwogICAgdXAgdGhpcyBjb3JyZWN0bHkgd2hlbiB0aGUgb3RoZXIgTUNUUkwgcGFyYW1ldGVycyBhcmUgc2V0IHVwLiBJdAogICAgY2FuIGJlIHNldCB1cCBmcm9tIHRoZSBib2FyZCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgM2NhN2M1NThlYmEzNjMzMjU1NmJjNDcwZDQ1ZTJmNWQ0MmJkMGNhNgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTg6NTI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBtYWludGFpbmVyc2hpcCBpbmZvcm1hdGlvbiBmb3IgQVQ5MUNBUDlBREsgYW5kIEFUOTFTQU05MjYwRUsgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA0ZTAzZGRlODRkZDJjOTFlMzI3Y2RjMjNhZTExOWQ0MzI1NTlhN2EzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAyMTozMTowNCAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogTW92ZSBDT05GSUdfQ01EX05BTkQgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDAxNzZkNDNlNzU5YTZlMDBjYWNjODVlZmYyNmZkNjBmNzRiNGY2YjcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE4OjUyOjMzIDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQVQ5MVNBTTkyNjBFSwoKICAgIFN1cHBvcnQgZm9yIGJvb3RpbmcgZnJvbSBpbnRlcm5hbCBEYXRhRmxhc2gsIGV4dGVybmFsIERhdGFGbGFzaCBjYXJkCiAgICBvciBOQU5EIGZsYXNoIGlzIGF2YWlsYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDE3NjJmMTNiNGFhYjg4YjY4NWIxNzIyZjE3ZGFkYTI0Nzk0NTYyNGIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTWFyIDMxIDIxOjIwOjQ5IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTogTW92ZSBDT05GSUdfSEFTX0RBVEFGTEFTSCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzYxNzEyMTg4YjM1MzQ5NGRlZmIyYjY0NDQ5MWZmNzNkMGRhYWE2ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMjE6MTI6MTcgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBNb3ZlIENPTkZJR19DTURfTkFORCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTgzYzFkYjA0YzFkZDBmOTJlMDJmMDZkMjlmMGM2NWEzZDlhMjY4NwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NTI6MzIgMjAwOCArMDEwMAoKICAgIFBvcnQgQVQ5MUNBUDkgdG8gdGhlIG5ldyBoZWFkZXJzCgogICAgQWRhcHQgdGhlIGV4aXN0aW5nIEFUOTFDQVA5IGNvZGUgdG8gdGhlIG5ldyBoZWFkZXJzIGFuZCBBUElzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMTc3ZThhNWFjODFiYmM1MzFhMWQ1NGFiZGI0N2YyODYwMjY2YzNhYQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzEgMjAwOCArMDEwMAoKICAgIEZpbmlzaCBoZWFkZXIgZmlsZXMgcmV3b3JraW5nCgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMiBvZiB0aGUgcmVwbGFjZW1lbnQ6IG1vcmUgaGVhZGVyIGltcG9ydHMgYW5kIGVkaXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNmQxZGJiYmY5ZmRmNzI3Mzg0MDAyZTU1M2U2MTVjMTVkOGI5NjdmNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzAgMjAwOCArMDEwMAoKICAgIEltcG9ydCBzZXZlcmFsIGhlYWRlciBmaWxlcyBmcm9tIExpbnV4CgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMSBvZiB0aGUgcmVwbGFjZW1lbnQ6IHByaXN0aW5lIGhlYWRlciBmaWxlcyBpbXBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBhOGE3OGYyZDk5ZGMxYmQzMGRjMzU5NWRhMTE4NTM5YjUwNmM2MTE4CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMDo1MjoyOCAyMDA4ICswMTAwCgogICAgTW92ZSBhdDkxY2FwOSBzcGVjaWZpYyBmaWxlcyB0byBhdDkxc2FtOSBkaXJlY3RvcnkKCiAgICBBVDkxQ0FQOSBhbmQgQVQ5MVNBTTkgU29DcyBhcmUgdmVyeSBjbG9zZSBoYXJkd2FyZSB3aXNlLCBzbyBhCiAgICBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY2FuIGJlIHVzZWQuIExldCB0aGlzIGluZnJhc3RydWN0dXJlIGJlCiAgICBuYW1lZCBhZnRlciB0aGUgQVQ5MVNBTTkgZmFtaWx5LCBhbmQgbW92ZSB0aGUgZXhpc3RpbmcgQVQ5MUNBUDkKICAgIGZpbGVzIHRvIHRoZSBuZXcgcGxhY2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA2MTEwNmE1NjU4NzBmZjUwM2Y5MmIyNTFiOTRiZDdhZmVmODg5YTA0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMTo1MjoyNyAyMDA4ICswMTAwCgogICAgVXNlIHRpbWVyX2luaXQoKSBpbnN0ZWFkIG9mIGJvYXJkIHN1cHBsaWVkIGludGVycnVwdF9pbml0KCkKCiAgICBUaGUgdGltZXIgb24gQVQ5MUNBUDkvQVQ5MVNBTTkgaXMgc3VwcGxpZWQgYnkgdGhlIFNvQywgYW5kIG5vdCBieQogICAgdGhlIGJvYXJkLCBzbyB1c2UgdGltZXJfaW5pdCgpIGluc3RlYWQgb2YgaW50ZXJydXB0X2luaXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDU2MDRlMjE3OGM1MjE4ZmJmZGJhMmU0MjkzY2E3NjUyZTgyOWFjMjUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIxOjUyOjM2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIERhdGFGbGFzaCBwYXJ0aXRpb24gaGFuZGxpbmcKCiAgICBEYXRhRmxhc2ggcGFydGl0aW9uIGluZm9ybWF0aW9uIGhhcyBiZWNvbWUgYSBtZXNzLiBUaGlzIHBhdGNoCiAgICBkZWZpbmVzIGEgc2luZ2xlIHBhcnRpdGlvbiBzY2hlbWUgZm9yIEF0bWVsIERhdGFGbGFzaGVzLiBUaGlzIHBhcnRpdGlvbgogICAgc2NoZW1lIHdpbGwgYmUgdXNlZCBieSBhbGwgQVQ5MUNBUDkgYW5kIEFUOTFTQU05IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDliNDY0MzJmYzY1Y2UwZjA4MjZiMzJlNGYxNWMxNWIzM2NjYjhkNDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA4OjQ3OjQ1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGFsaWdubWVudCBpc3N1ZSBhZnRlciBDT05GSUdfSURFTlRfU1RSSU5HIGluIHN0YXJ0LlMKCiAgICBXaGVuIHRoZSB2ZXJzaW9uX3N0cmluZyBmdW5jdGlvbiBpbiBzdGFydC5TIGlzIG5vdCA0LWJ5dGUgYWxpZ24sCiAgICBpdCB3aWxsIGNhdXNlIHRoZSBjb21waWxlciBnZW5lcmF0ZXMgInVuYWxpZ25lZCBvcGNvZGVzIGRldGVjdGVkCiAgICBpbiBleGVjdXRhYmxlIHNlZ21lbnQiLiBUaGlzIGlzc3VlIGFmZmVjdHMgYWxsIENvbGRGaXJlIENQVXMuCiAgICBCeSBhZGRpbmcgLmFsaWduIDQgYWZ0ZXIgQ09ORklHX0lERU5UX1NUUklORywgaXQgd2lsbCBwYWQgMCdzIGlmCiAgICBpdCBpcyBub3QgYWxpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhZTYxZWVmZTE1YjRkNDU0MDYwYTcxNDBlNDlhZTU4MzIyYmU4MDMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDI1IDE1OjQxOjE1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIGRzcGkgYW5kIHNlcmlhbCBmbGFzaCBzdXBwb3J0IGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhlYWQ3YTdhOTIyZmNlYWY0OTRlMzUyYWJmYWI4MjE2YTQxYjQxNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTc6Mzc6MDEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBSZW1vdmUgUjUyMDAgYm9hcmQKCiAgICBUaGlzIGJvYXJkIG5ldmVyIHdlbnQgaW50byBwcm9kdWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogWmFjaGFyeSBQLiBMYW5kYXUgPHphY2hhcnkubGFuZGF1QGxhYnh0ZWNobm9sb2dpZXMuY29tPgogICAgQWNrZWQtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTQ1YzhlMGE3Y2QzY2E5ZDM4NDY2NjhmNjliMGQyMDEyNTBhYmVhOApBdXRob3I6IE1hdHRoZXcgRmV0dGtlIDxbbWF0dGhldy5mZXR0a2VAZ21haWwuY29tXT4KRGF0ZToJVGh1IEphbiAyNCAxNDowMjozMiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZGVkIE01Mjc1RVZCIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBGZXR0a2UgPG1mZXR0a2VAdmlkZW9uLWNlbnRyYWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNzFkOWQ5MWEyY2Q5YzMwYjJiNjM2OWYxNWMxYTQ2YzExNTM3YzJiCkF1dGhvcjogTWF0dGhldyBGZXR0a2UgPFttYXR0aGV3LmZldHRrZUBnbWFpbC5jb21dPgpEYXRlOglNb24gRmViIDQgMTU6Mzg6MjAgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGRlZCBNQ0Y1Mjc1IGNwdSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgRmV0dGtlIDxtZmV0dGtlQHZpZGVvbi1jZW50cmFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDRlNWI5ZWRhYjA3N2FiYTZlOWI4NDlhZmE0YjdmYmQ4ZmQ3YjAyYgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTI6MTQ6MTEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBEZWZpbmUgYm9vdGRlbGF5IGluIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgTTUyMjc3RVZCCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dCBXYWRlbCA8TWF0dC5XYWRkZWxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3ODc4ZjE2Y2VkZWUxNzE2MWZmMjMzNjk5MDk3MGZmZmM2Y2VhMzUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDEyOjA5OjA3IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IHNlY29uZCBtZW1vcnkgQ2hpcHNlbGVjdCBmb3IgTTU0NzVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQzZDYwNjQyMzk1YTU1MDk1NmNiMjFkMjg3YzhjZmE1NjM5MTNkMjgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDEzIDE0OjI2OjMyIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNvcnJlY3QgRkxBU0hCQVIgYW5kIFJBTUJBUjEgZm9yIE1DRjUyODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGViMTRlYmU4MTNhMGNiNWQ0NzkwNTIyOGRhNDQ2YTVhZDY5MjQ3M2IKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJU3VuIE1hciAzMCAyMDozMzowNCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgQ0ZHX01FTV9UT1BfSElERSB0byBEZW5hbGkgU1BELWJhc2VkIFNEUkFNIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMDJlMzg5MjAyMTExMmYyMTA2N2Q5ZWQxZDA0YWU0MTgyNzI1YmE1MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzMSAxMjoyMDo0OCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBTbWFsbCB3aGl0ZXNwYWNlIGZpeCBvZiBlc2QgcGF0Y2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMzQzOTRhYmI1MjQ3ODUwNDdjODE1ZjAwZGRlOGNkYmRjMTU5M2M1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTg6NTI6NDQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBQTUM0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGE2Y2M2YzM3MTg4ZDg1YzI1ZDE2N2E0NTE1ZGE4NmY0OGQ5YTU4M2UKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODo1MjowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcHRtIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBQTUM0NDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHB0bTFsYSwgcHRtMW1zLCBwdG0ybGEgYW5kIHB0bTJtcwogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKICAgIENsZWFudXAgcGNpX3RhcmdldF9pbml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDdjOTFmNTFhMmZlMjk2OTA5MTQ3ZjE2NDZhMTQxMjcyOWRkMTBiMWQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODowMToxNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNaW5vciB1cGRhdGVzIGZvciBEVTQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkNWJmZmViODY4ZDZiNGQ0NjJmNTU4ZGFjNDMwMTEwMjdiNjY0NGI3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjU0OjIwIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogY2xlYW51cCBhbmQgb3ZlcmhhdWwgY29tbW9uIGJvYXJkIGluaXQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI4NmIzNDE2Zjg3NDM1OGFjYWYwNzUxOWU3NjIwY2RiMjE0NWY3NWIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTA6NTggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBjbGVhbnVwIGxpYl9ibGFja2Zpbi9jYWNoZS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDkxNzFmYzgxNzIyYzIwZmRiNWE4MjlhNThiMTdjOWVhYWRkNWZiNDQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBNYXIgMzAgMTU6NDY6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBjcHUgYW5kIGJvb3QgbW9kZXMKCiAgICBBbGwgb2YgdGhlIGR1cGxpY2F0ZWQgY29kZSBmb3IgQmxhY2tmaW4gcHJvY2Vzc29ycyBhbmQgYm9vdCBtb2RlcyBoYXZlIGJlZW4KICAgIHVuaWZpZWQuICBBZnRlciBhbGwsIHRoZSBjb3JlIGlzIHRoZSBzYW1lIGZvciBhbGwgcHJvY2Vzc29ycywganVzdCB0aGUKICAgIHBlcmlwaGVyYWwgc2V0IGRpZmZlcnMgKHdoaWNoIGdldHMgaGFuZGxlZCBpbiB0aGUgZHJpdmVycykuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg4MGNjNDM4MWVhODM2MDI0OGNkZGNkZjg3YTY0NTY2NzQ1YTU3MjQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIyOjUyOjM1IDIwMDggKzAxMDAKCiAgICBGaXggQ0ZHX05PX0ZMQVNIIGNvbXBpbGF0aW9uLgoKICAgIE1hbnkgQXRtZWwgYm9hcmRzIGhhdmUgbm8gInJlYWwiIChOT1IpIGZsYXNoIG9uIGJvYXJkLCBhbmQgcmVseSBvbmx5CiAgICBvbiBEYXRhRmxhc2ggYW5kIE5BTkQgbWVtb3JpZXMuIFRoaXMgcGF0Y2ggZW5hYmxlcyBDRkdfTk9fRkxBU0ggdG8KICAgIGJlIHByZXNlbnQgaW4gYSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUsIHdoaWxlIHN0aWxsIGVuYWJsaW5nIGZsYXNoCiAgICBjb21tYW5kcyBsaWtlICdmbGluZm8nLCAncHJvdGVjdCcsIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDljZTdlNTNhYmQwMzlkZWNlYTFhZjY3YWVjODFiYmQ1ZGY3YTI1OTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTg6MTMgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBCRjUzNy1zdGFtcDogY2xlYW51cCBzcGkgZmxhc2ggZHJpdmVyCgogICAgVGhpcyBwdW50cyB0aGUgb2xkIHNwaSBmbGFzaCBkcml2ZXIgZm9yIGEgbmV3L2dlbmVyYWxpemVkIG9uZSB1bnRpbCB0aGUKICAgIGNvbW1vbiBvbmUgY2FuIGJlIGludGVncmF0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJiOGUzY2YyNWJjMGIwNDkzNmMwYzFhMDc1OTg1ZGQ4NzAwYTI0NGIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjM0OjM0IDIwMDggLTA0MDAKCiAgICBGaXggbWFjcm8gdHlwbyBpbiBjb21tb24vY21kX21paS5jCgogICAgVGhpcyB0eXBvIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2LiAgSQogICAgYWN0dWFsbHkgYXBwbGllZCB0aGUgd3JvbmcgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmMWI5ODVmMmQ3MjRjY2FhNGQzZGVmMDc5MTdmMGNhYWYxOGZhNzdkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxNjozOTo1MyAyMDA4ICswMjAwCgogICAgdXNlIGNvcnJlY3QgYXQ5MXJtOTIwMCByZWdpc3RlciBuYW1lIGluIG01MDFzayBib2FyZAoKICAgIFRoaXMgZml4ZXMgYSBuYW1pbmcgYnVnIGZvciBhdDkxcm05MjAwIGxvd2xldmVsIGluaXQgY29kZToKICAgIE5PUiBib290IGZsYXNoIGlzIG9uIGNoaXBzZWxlY3QgMCwgbm90IGNoaXBzZWxlY3QgMi4gIFRoaXMKICAgIG1ha2VzIGNvZGUgdXNlIHRoZSByZWdpc3RlciBuYW1lIGZyb20gY2hpcCBkYXRhc2hlZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDgwZWQxZGVhMTAzYTFjOGY0NTkxYWZjNzdkMmRlM2M3ODY4ZDk4MwpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgpEYXRlOglGcmkgSmFuIDE4IDEyOjU1OjAwIDIwMDggLTA4MDAKCiAgICB1c2UgY29ycmVjdCBhdDkxcm05MjAwIHJlZ2lzdGVyIG5hbWUKCiAgICBUaGlzIGZpeGVzIGEgbmFtaW5nIGJ1ZyBmb3IgYXQ5MXJtOTIwMCBsb3dsZXZlbCBpbml0IGNvZGU6CiAgICBOT1IgYm9vdCBmbGFzaCBpcyBvbiBjaGlwc2VsZWN0IDAsIG5vdCBjaGlwc2VsZWN0IDIuICBUaGlzCiAgICBtYWtlcyBjb2RlIHVzZSB0aGUgcmVnaXN0ZXIgbmFtZSBmcm9tIGNoaXAgZGF0YXNoZWV0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBhMzU0M2Q2ZGM1MmIwYmE5YzY0MDE2Njg3Y2YzMmQ2MDBiMzFhNDc2CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRhdmlkLWJAcGFjYmVsbC5uZXQ+CkRhdGU6CUZyaSBKYW4gMTggMTI6NDU6NDUgMjAwOCAtMDgwMAoKICAgIGFkZCBtaXNzaW5nIEFSTSBib2FyZHMgdG8gTUFLRUFMTAoKICAgIEFkZCBzb21lIG1pc3NpbmcgQVJNIGJvYXJkcyB0byBNQUtFQUxMLiAgVGhlc2UgYnVpbGQgY29ycmVjdGx5LAogICAgdW5saWtlIHNldmVyYWwgb2YgdGhlIGJvYXJkcyBhbHJlYWR5IGxpc3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMTozNDowOSAyMDA4ICswMTAwCgogICAgQnJhY2tldCBSRUFEX1RJTUVSIG1hY3JvIGluIGNwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYwogICAgdG8gcHJldmVudCBjb21waWxhdGlvbiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IDdhODM3YjczMTAxNjZhZThmYzhiOGQ2NmQ3ZWYwMWI2MGE4MGY5ZDYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPFtsZ0BkZW54LmRlXT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjozMCAyMDA4ICswMTAwCgogICAgU3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgTVgzMUFEUyBldmFsdWF0aW9uIGJvYXJkIGZyb20gRnJlZXNjYWxlLAogICAgaW5pdGlhbGl6YXRpb24gY29kZSBpcyBjb3BpZWQgZnJvbSBSZWRCb290IHNvdXJjZXMsIGFsc28gcHJvdmlkZWQgYnkgRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjMyOjI3IDIwMDggKzAxMDAKCiAgICBQaHl0ZWMgUGh5Y29yZS1pLk1YMzEgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGExNDdlNTZmMDM4NzFiYmE0ZjA1MDU4ZDVlMDRjZTdkZWIwMTBiMDQKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MjQgMjAwOCArMDEwMAoKICAgIG14MzEgbGl0ZWtpdCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBteDMxIGxpdGVraXQgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZDY2NzRlMGUyYTZhMWYwMzM5NDVmNzg4Mzg1NjYyMTBkM2YyOGM5NQpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjoyMSAyMDA4ICswMTAwCgogICAgYWRkIFNNU0MgTEFOOXgxeCBOZXR3b3JrIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBzbXNjIG5ldHdvcmsgY29udHJvbGxlcnM6CiAgICBMQU45MTE1CiAgICBMQU45MTE2CiAgICBMQU45MTE3CiAgICBMQU45MjE1CiAgICBMQU45MjE2CiAgICBMQU45MjE3CgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjODQ2M2NjZTQ0ZDg0OWUzNzc0NDc0OWIzMmQzOGUxZGZiMTJlNTAKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MTYgMjAwOCArMDEwMAoKICAgIGFkZCBhbiBpMmMgZHJpdmVyIGZvciBteDMxCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGkyYyBkcml2ZXIgZm9yIEZyZWVzY2FsZSBpLk1YIHByb2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzk4YjQ3YWQyNGIyZDkxZjQxYzA5YTNkNjJkN2Y3MGFkODRmNGI3ZApBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMDo0MyAyMDA4ICswMTAwCgogICAgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjI4OjQ2IDIwMDggKzAxMDAKCiAgICBTZXBhcmF0ZSBvbWFwMjR4eCBzcGVjaWZpYyBjb2RlIGZyb20gYXJtMTEzNgoKICAgIE1vdmUgb21hcDI0eHggY29kZSB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eCwgcmVuYW1lIGluY2x1ZGUvYXNtLWFybS9hcmNoLWFybTExMzYgdG8gY3B1L2FybTExMzYvb21hcDI0eHguCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjMTZjYjBkM2I5NzFmNDZmYmU3N2MwNzI2NjRjMGYyZGNkNDQ3MWQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjIzOjA1IDIwMDggKzAxMDAKCiAgICBBZGQgcG1kcmEgaW50byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjIxOjU4IDIwMDggKzAxMDAKCiAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQTURSQSBib2FyZCwgYmFzZWQgb24gYSBETTY0NDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwdkBwcm9kcml2ZS5ubD4KCmNvbW1pdCAxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjExOjM0IDIwMDggKzAxMDAKCiAgICBSZW1vdmVzIGFsbCBib2FyZCBzcGVjaWZpYyBjb2RlIGZyb20gdGhlIGFyY2guIHBhcnQgZm9yIERNNjQ0eCAoRGFWaW5jaSkgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTcwNGRjMjA5MTdiNGY3MWUzNzNlMmM4ODg0OTdlZTY2NmQ0MDM4MApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjA5OjAxIDIwMDggKzAxMDAKCiAgICAtIFJlbW92ZSAqX21hc2tlZCgpIGZ1bmN0aW9ucyBhcyBub3RlZCBieSBXb2xmZ2FuZwogICAgLSBBZGFwdCByZWdpc3RlciBuYW1pbmcgdG8gcmVjZW50IFRJIHNwZWMgKHNwcnVlMjYsIE1hcmNoIDIwMDcpCiAgICAtIEZpeCByZXNldF90aW1lcigpIGhhbmRsaW5nCiAgICAtIEFzIHJlcG9ydGVkIGJ5IFBpZXRlciBbMV0gdGhlIG92ZXJmbG93IGZpeCBpbnRyb2R1Y2VkIGEKICAgIGRlbGF5IG9mIGZhY3RvciAxNiAoZS5nIDIgc2Vjb25kcyBiZWNhbWUgMzIpLiBXaGlsZSB0aGUKICAgIG92ZXJmbG93IGZpeCBpcyBiYXNpY2FsbHkgb2theSwgaXQgbWlzc2VkIHRvIGRpdmlkZSB1ZGVsYXkgYnkKICAgIDE2LCB0b28uIEZpeCB0aGlzLgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzgxNzkKICAgIC0gUmVtb3ZlIHNvZnR3YXJlIGRpdmlzaW9uIG9mIHRpbWVyIGNvdW50IHZhbHVlIChESVYoeCkKICAgIG1hY3JvKSBhbmQgZG8gaXQgaW4gaGFyZHdhcmUgKFRJTV9DTEtfRElWKS4KICAgIE1hbnkgdGhhbmtzIHRvIFRyb3kgS2lza3kgPHRyb3kua2lza3lAYm91bmRhcnlkZXZpY2VzLmNvbT4KICAgIGFuZCBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPiBmb3IKICAgIHRoZSBoaW50cyAmIHRlc3RpbmchCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CgogICAgQWNrZWQtYnk6IFBpZXRlciBWb29ydGh1aWpzZW4gPHBpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmw+Cgpjb21taXQgYWMzMzE1YzI2ZTE0M2MzMTY4MDc1MGM5YzEzZjAyN2VmYmNjODg3ZQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciA2IDE2OjQ1OjQ0IDIwMDggKzAxMDAKCiAgICBuZXcgUEhZIEAgZTEwMDAgLSAybmQgdHJ5CgogICAgQWRkIDgyNTQxRVIgZGV2aWNlIHdpdGggbGF0ZXN0IGludGVncmF0ZWQgSUdQMiBQSFkuCiAgICBJbnRyb2R1Y2VkIENPTkZJR19FMTAwMF9GQUxMQkFDS19NQUMgZm9yIE5JQyBicmluZy11cCB3aXRoIGVtcHR5IGVlcHJvbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGMyYjdkYTU1MjI5M2I1MGM5YzllNDZlZDcxMjY3YjAyYzJkZTllYTgKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6MjI6NTMgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBHUkVUSCBFdGhlcm5ldCAxMC8xMDAvMTAwMCBkcml2ZXIuCgogICAgR1JFVEggaXMgYW4gRXRoZXJuZXQgMTAvMTAwIG9yIDEwLzEwMC8xMDAwIE1BQyB3aXRoIG91dCB3aXRob3V0CiAgICBhIGRlYnVnIGxpbmsgKEVEQ0wpLiBUaGUgR1JFVEggY29yZSBpcyBkb2N1bWVudGVkIGluIEdSSVAucGRmCiAgICBhdmFpbGFibGUgYXQgd3d3LmdhaXNsZXIuY29tLgoKICAgIElmIHRoZSBHUkVUSCBoYXMgR2lnYUJpdCBzdXBwb3J0IChHQklULCBTY2F0dGVyIGdhdGhlciwgY2hlY2tzdW0KICAgIG9mZmxvYWRpbmcgZXRjLikgY2FuIGJlIGRldGVybWluZWQgYnkgYSBiaXQgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIuCiAgICBUaGUgR0JJVCBNQUMgaXMgc3VwcG9ydGVkIGJ5IG9wZXJhdGluZyBpbiBHUlRFSCAxMC8xMDAgbGVnYWN5IG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MjIgMjAwOCAtMDUwMAoKICAgIEFkZCBDT05GSUdfTUlJX0lOSVQgaW4gY21kX21paS5jCgogICAgUHJvdmlkZSBjb21tb24gY29uZmlndXJhdGlvbiBpbiBkb19taWkoKSB0byBleGVjdXRlIG1paV9pbml0KCkKICAgIGZvciBhbGwgY3B1IGFyY2hpdGVjdHVyZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmNjA1NDc5ZGUyZGViMTFlODM0ZjMxZGZkYjBhZjEwN2M4NmFjZWQ2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MTYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggRkVDIHRyYW5zbWl0IGlzc3VlIGZvciBNQ0Y1Mjc1CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDlhMmY0MTZkNmFjNjA1OGNkNzg0NTAzM2FlNGRjMzJlZjFjMDc0NgpBdXRob3I6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CkRhdGU6CVdlZCBNYXIgMjYgMDk6NDM6NTcgMjAwOCArMTEwMAoKICAgIERIQ1AgcmVxdWVzdCBmaXggZm9yIFdpbmRvd3MgU2VydmVyIDIwMDMKCiAgICBBZGRlZCBvcHRpb24gQ09ORklHX0JPT1RQX0RIQ1BfUkVRVUVTVF9ERUxBWS4gVGhpcyBwcm92aWRlcyBhbiBvcHRpb25hbAogICAgZGVsYXkgYmVmb3JlIHNlbmRpbmcgIkRIQ1AgUmVxdWVzdCIgaW4gbmV0L2Jvb3RwLmMuIFJlcXVpcmVkIHRvIG92ZXJjb21lCiAgICBpbnRlcm9wZXJhYmlsaXR5IHByb2JsZW1zIHdpdGggV2luZG93cyBTZXJ2ZXIgMjAweCBESENQIHNlcnZlciB3aGVuIFUtQm9vdAogICAgY2xpZW50IHJlc3BvbmRzIHRvbyBmYXN0IGZvciBzZXJ2ZXIgdG8gaGFuZGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk3YmY4NWQ3ODRmYmVkNDg1ZTY1MmViOTA3NTg5YWQwZDVjYjcyNjIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6NDA6MTkgMjAwOCArMDEwMAoKICAgIE1URC9DRkk6IGZsYXNoX3JlYWQ2NCBpcyBkZWZpbmVkIGEgd2VhayBmdW5jdGlvbiAoZm9yIFNQQVJDKQoKICAgIFNQQVJDIGhhcyBpbXBsZW1lbnRlZCBfX3Jhd19yZWFkcSwgaXQgcmVhZHMgNjQtYml0IGZyb20gYW55IDMyLWJpdCBhZGRyZXNzLgogICAgU1BBUkMgQ1BVcyBpbXBsZW1lbnQgZmxhc2hfcmVhZDY0IHdoaWNoIGNhbGxzIF9fcmF3X3JlYWRxLgoKICAgIEZvciBjdXJyZW50IFNQQVJDIGFyY2hpdGVjdHVyZXMgKExFT04yIGFuZCBMRU9OMykgZWFjaCByZWFkIGZyb20gdGhlCiAgICBGTEFTSCBtdXN0IGxlYWQgdG8gYSBjYWNoZSBtaXNzLiBUaGlzIGlzIGJlY2F1c2UgRkxBU0ggY2FuIG5vdCBiZSBzZXQKICAgIG5vbi1jYWNoZWFibGUgc2luY2UgcHJvZ3JhbSBjb2RlIHJlc2lkZXMgdGhlcmUsIGFuZCBhbHRlcm5hdGl2ZWx5IGRpc2FibGluZwogICAgY2FjaGUgaXMgcG9vciBmcm9tIHBlcmZvcm1hbmNlIHZpZXcsIG9yIGRvaW5nIGEgY2FjaGUgZmx1c2ggYmV0d2VlbiBlYWNoCiAgICByZWFkIGlzIGV2ZW4gcG9vcmVyLgoKICAgIEZvcmNpbmcgYSBjYWNoZSBtaXNzIG9uIGEgU1BBUkMgaXMgZG9uZSBieSBhIHNwZWNpYWwgaW5zdHJ1Y3Rpb24gImxkYSIgLQogICAgbG9hZCBhbHRlcm5hdGl2ZSBzcGFjZSwgdGhlIGFsdGVybmF0aXZlIHNwYWNlIG51bWJlciAoQVNJKSBpcyBwcm9jZXNzb3IKICAgIGltcGxlbWVudGF0aW9uIHNwY2lmaWMgYW5kIGNhbiBiZSBmb3VuZCBieSBpbmNsdWRpbmcgPGFzbS9wcm9jZXNzb3IuaD4uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5YjgKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJRnJpIE1hciAyOCAxNTo0MToyNSAyMDA4ICswMTAwCgogICAgTWFrZSBNUEM4M3h4IG9uZSBzdGVwIGNsb3NlciB0byBmdWxsIHJlbG9jYXRpb24uCgogICAgUmVtb3ZlIGEgZmV3IGFic29sdXRlIHJlZmVyZW5jZXMgdG8gQ0ZHX01PTklUT1JfQkFTRSBmb3IgcHBjL21wYzgzeHgKICAgIGFuZCB1c2UgR09UIHJlbGF0aXZlIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWIyNzkzYTNmM2RlMzRkNDM5MjMyYjA1YWNjOGFmNjdhMDI4ZmQzNQpBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE0OjM0OjQzIDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogZml4IEVFUFJPTSBwYWdlIHNpemUgYW5kIGdldCBNQUMgZnJvbSBFRVBST00KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGVlcHJvbSBwYWdlIHNpemUgc28gdGhhdCB5b3UgY2FuIG5vdyB3cml0ZSBtb3JlIHRoYW4KICAgIDY0IGJ5dGVzIGF0IGEgdGltZS4KCiAgICBJdCBhbHNvIG1ha2VzIHRoZSBib2FyZCB0YWtlIE1BQyBhZGRyZXNzZXMsIGlmIGZvdW5kLCBmcm9tIEVFUFJPTS4KCiAgICBVc2VyIHNob3VsZCBwbGFjZSB1cCB0byA0IGFkZHJlc3NlcyBhdCBvZmZzZXQgMHg3ZjAwLCBmb3IKICAgIGV0aHssMSwyLDN9YWRkci4gIEFueSB1bnVzZWQgYWRkcmVzc2VzIHNob3VsZCBiZSB6ZXJvLiAgVGhpcyBncm91cCBvZgogICAgZm91ciBzaXgtYnl0ZSB2YWx1ZXMgc2hvdWxkIGhhdmUgaXQncyBDUkMgYXQgdGhlIGVuZC4gIGNyYzMyIGFuZAogICAgZWVwcm9tIGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIGFjY29tcGxpc2ggdGhpcy4KCiAgICBJZiBDUkMgZmFpbHMsIE1BQyBhZGRyZXNzZXMgY29tZSBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIElmIENSQwogICAgc3VjY2VlZHMsIHRoZSBlbnZpcm9ubWVudCBpcyBvdmVyd3JpdHRlbiBhdCBzdGFydHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjMyNWNmZjMxZjZlNzQ1ZTY1NDAwMTRiMTMxYjlhOTdmNjE5NDRjCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTU6MTU6MzggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiBkZWZpbmUgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFCgogICAgQ29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIgYnJva2UgdGhlIG9uYm9hcmQgVVNCCiAgICBjb250cm9sbGVyIG9uIHRoZSBQQ0kgYnVzIGluIExpbnV4IG9uIHRoZSBNUEM4MzIzRVJEQi4KCiAgICBUaGlzIGZpeGVzIGl0IGJ5IGRlZmluaW5nIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpbiB0aGUgYm9hcmQncwogICAgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1YzRhZGU0ZGIxZTE2ZDNlNWQ0YTc4ODdmMzRlMTBlNTE2ZWQzYTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE5OjA3IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBjbGVhbnVwIFN5c3RlbSBQYXJ0IGFuZCBSZXZpc2lvbiBJRCBSZWdpc3RlciAoU1BSSURSKSBjb2RlCgogICAgaW4gdGhlIHNwaXJpdCBvZiBjb21taXQgMWNlZDEyMTYwMGIyMDYwYWIyZmY5ZjBmZGRkOTQyMWZkNzBhMGRjNiwKICAgIDg1eHgncyAiVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0Iiwgc2ltcGxpZnkgU1BSSURSIHByb2Nlc3NpbmcKICAgIGFuZCBwcm9jZXNzb3IgSUQgZGlzcGxheS4gIEFkZCBSRVZJRF97TUFKLE1JTn1PUiBtYWNyb3MgdG8gbWFrZQogICAgUkVWSUQgZGVwZW5kZW50IGNvZGUgc2ltcGxlci4gIEFsc28gYWRkZWQgUEFSVElEX05PX0UgYW5kIElTX0VfUFJPQ0VTU09SCiAgICBjb252ZW5pZW5jZSBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MWZkNTJjNmM4ZmQxOWYwYjc4NTZiOTgyMTdjZTM3YzQ2YzUyMWFmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoxODo1MyAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogZGlzcGxheSBkZHIgZnJlcXVlbmN5IGluIGJvYXJkX2FkZF9yYW1faW5mbyBiYW5uZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1Y2YxNTVjNWVjMWNlYWIyODQ5ZmE1YjZhYTNkOWEzZTllNmY0ODIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE4OjQwIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiB1bnJlaW52ZW50IG1lbV9jbGsKCiAgICBkZWxldGUgZGRyX2NsayBhbmQgdXNlIG1lbV9jbGsgaW5zdGVhZC4gIFJlbmFtZSBvdGhlciBkZHJfKl9jbGsgdG8KICAgIG1lbV8qX2NsayBmb3IgY29uc2lzdGVuY3kncyBzYWtlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMwZTc5MjkyNmNhM2ZlNGRkMWI3MzRhM2JmNDRlNTVhZmE2ZjUzNgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTQ6MzE6MjMgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSB0aGUgU0FUQSBpbnRlcmZhY2Ugb24gbXBjODMxNSByZGIgYW5kIG1wYzgzN3ggcmRiIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmVlYjNlNGZjNTRlZjJmNWQ1NzRkYWZkNDJjNmNlOTNhZmEzMDM5MwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NzoxOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogZW5hYmxlIHRoZSBTQVRBIGludGVyZmFjZSBvbiBtcGM4Mzd4ZW1kcyBib2FyZAoKICAgIEVuYWJsZSB0aGUgZmlyc3QgdHdvIFNBVEEgaW50ZXJmYWNlcyBvbiBNUEM4Mzd4RU1EUyBib2FyZCwKICAgIFRoZSB0d28gU0FUQSBwb3J0cyBhcmUgb24gTFlOWDEuIChTQVRBMC8xIG9uIEo0LzUpCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmY4Yzg1ZThkMTg2NTczMGMxNThkOWVmNWEwNmM3MGMzYTEwNjAwYQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NjozNiAyMDA4ICswODAwCgogICAgbXBjODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN3hFTURTIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggaXMgc3RvbGVuIGZyb20gQW50b24gVm9yb250c292J3MgcGF0Y2gKICAgIGZvciBtcGM4Mzd4ZXJkYiBib2FyZHMuCgogICAgVGhlIHJlZmVyZW5jZSBjbGsgYW5kIHhjb3JldmRkIHZvbHRhZ2Ugb2Ygc2VyZGVzMS8yCiAgICBpcyBzYW1lIGJldHdlZW4gbXBjODM3eGVtZHMgYW5kIG1wYzgzN3hlcmRiLgoKICAgIDgzNzdFOiBMWU5YMS0gMiBTQVRBCUxZTlgyLSAyIFBDSUUKICAgIDgzNzhFOiBMWU5YMS0gMiBTR01JSQlMWU5YMi0gMiBQQ0lFCiAgICA4Mzc5RTogTFlOWDEtIDIgU0FUQQlMWU5YMi0gMiBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2M4ZTgzOWFiYzgwODg3YWU4MzI3NjdiNTkzMGQ0MGVkZDZkN2ViNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAyOCAxNDowOTowNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogUHJpbnQgU0FUQS9QQ0llIGNvbmZpZ3VyYXRpb24gYW5kIGJvYXJkIHJldmlzaW9uCgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBkaXNwbGF5cyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHVwb24gYm9vdHVwIGFuZCBjaGFuZ2VzIHRoZSBQQ0llCiAgICBpbml0IGxvb3AsIHRvIG9ubHkgaW5pdGlhbGl6ZSB0aGUgYXZhaWxhYmVsIFBDSWUgc2xvdHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwNDQ3ZWNiYmFjODU3MjQ1N2I2ZDg5MDMwNzNhYzNmMTIwOTk1YmEKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglGcmkgTWFyIDI4IDExOjI5OjEwIDIwMDggKzAxMDAKCiAgICBNVEQvQ0ZJOiBBZGQgc3VwcG9ydCBmb3IgMTZiaXQgbGVnYWN5IEFNRCBmbGFzaAoKICAgIEFkZCBlbnRyeSBmb3IgNTEyS3gxNiBBTUQgZmxhc2ggdG8gamVkZWNfdGFibGUuCiAgICBSZWFkIG91dCAxNmJpdCBkZXZpY2UgaWQgaWYgY2hpcHdpZHRoIGlzIDE2Yml0LgogICAgRml4ZWQgY29kaW5nIHN0eWxlIGFmdGVyIFN0ZWZhbnMgZmVlZGJhY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IDVlMTJlNzVkMTdjNGIxNWEzMTBhNDVjZDc4ZmU3MWI3Njk4YThhOGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDI6NTMgMjAwOCArMDEwMAoKICAgIHBwYzogU21hbGwgY2hhbmdlIHRvIENGR19NRU1fVE9QX0hJREUgZGVzY3JpcHRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjgwZGY1OWE4ZDYyYzZlNzRjMjgxYjFjYjdlMjA1MmRmNGQ2Y2IwMApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE1hciAyNyAxNTo0NDoxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IHN0YXQgc3RydWN0dXJlIGFuZCBzdGF0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNGJlOWViNzg5ZTcyYjg0NWQ2NjkzY2MzNmI3MGEwYjM1MjliM2YwOQpBdXRob3I6IE1hcmsgSm9uYXMgPHRvZXJ0ZWxAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDIyIDE5OjI3OjUyIDIwMDggKzAxMDAKCiAgICBzaDogUmVtb3ZlZCB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIGRyaXZlcnMvc2VyaWFsL3NlcmlhbF9zaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGYzMDlmYTM4OTI5ZmZiYTcxMjMwYzAyMzMwZmZhNDJmNGJiYTYzMzMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBNYXIgMTIgMTg6MDI6NTcgMjAwOCArMDkwMAoKICAgIHNoOiBSZW1vdmUgZGlzYWJsZV9jdHJsYyBmdW5jdGlvbiBmcm9tIFI3NzgwTVAKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmY0YjI2NmZmMmE0ZmNjMmJmZjk4NWQ2YTIxNzg1MjQ2OWFmZGRiMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxNzo1NToxNSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBtYWludGFpbmVyIG9mIFI3NzgwTVAgdG8gTUFJTlRBSU5FUiBmaWxlCgogICAgVXBkYXRlIE1BSU5UQUlORVIgZW50cnkgZm9yIFI3NzgwTVAuIEFuZCBmaXggbWFpbnRhaW5lcidzIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGY1ZTI0NjZmN2JhYTg4N2E3ZGYwYzUzNjMzM2VlYTgyMzEzMzM0OTcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBNYXIgMjUgMTc6MTE6MjQgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNvbHV0aW9ucyBSMkQgcGx1cyBib2FyZAoKICAgIFIyRCBwbHVzIGlzIFNIIHJlZmVyZW5jZSBib2FyZCB1c2VkIHdpdGggU0g3NzUxUi4KICAgIFRoaXMgYm9hcmQgaGFzIDI2Nk1oeiBDUFUsIDY0TUIgU0RSQU0sIENhcmRidXMsIENGIGludGVyZmFjZSwKICAgIG9uZSBQQ0kgYnVzLCBWR0EsIGFuZCB0d28gRXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZTkyYzk1MTgwYmI1YmM1ZmQ0MDUxNTk4YTlkNjBiZWFiYTQ4OTg4ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxMjoxNToyOSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNINCBjYWNoZSBjb250cm9sCgogICAgQWRkIHN1cHBvcnQgU0g0IGNhY2hlIGNvbnRyb2wgYW5kIGZsYXNoX2NhY2hlIGZ1bmN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDI4ZTVlZmRlNGQ5MjVmY2IzNDkwMWQwMDMwZDA2NDhkZTJkYTdlODkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDE6NTM6MDEgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgaG9zdCBkcml2ZXIgZm9yIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFiOGY0ZDQwZDA2OWNkM2NiZTc1NjNkZGZlM2U1ZjAzYjBjN2M3MjEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDI6MTE6MjYgMjAwOCArMDkwMAoKICAgIHNoOiBNb3ZlIFN1cGVySCBQQ0kgZHJpdmVyIGZyb20gY3B1L3NoNCB0byBkcml2ZXJzL3BjaQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA1NjY5MzMyNzgxMDFjMTQ0ZDc1MzYxZWE2ODI2NzhhMzI2YzEyOTBkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgTWFyIDEyIDEyOjEwOjI4IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU3VwZXJIIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzMTNlMGUyNjIyNGZjOWEwYzQ0NTEyNGYzNDU1MDU4YzY5NmRmODQKQXV0aG9yOiBNYXJrIEpvbmFzIDx0b2VydGVsQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMCAxMTozNzoxMCAyMDA4ICswMTAwCgogICAgc2g6IEFkZGVkIHN1cHBvcnQgZm9yIFNINzcyMCBiYXNlZCBib2FyZCBNUFIyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDNlY2ZmMWQ3MGFlOTNlNjI4ZmU2NWIzZmUxZmM3YzljNzZjZGY5OWYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBNYXIgNiAxNDowNTo1MyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCByZWNlaXZlIEZJRk8gbGV2ZWwgcmVnaXN0ZXIgb2YgU0g0QQoKICAgIFJlY2VpdmUgRklGTyBsZXZlbCByZWdpc3RlciBpcyBkaWZmZXJlbnQgaW4gU0g0QS4KICAgIEJlY2F1c2UgcmVnaXN0ZXIgaXMgZGlmZmVyZW50LCBjYW5ub3Qgb2NjYXNpb25hbGx5IHJlY2VpdmUgZGF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzEzM2MxZmIwYjU5MDY2MjIwNmIwZWJhNzBmNDQ3OGVlMDMwMGE5YQpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjo1NToxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgU29sdXRpb25zIFI3NzgwTVAKCiAgICBSZW5lc2FzIFNvbHV0aW9ucyBSNzc4ME1QIGlzIGEgcmVmZXJlbmNlIGJvYXJkIG9uIFNINzc4MC4KICAgIFRoaXMgYm9hcmQgaGFzIHNlcmlhbCwgMTAvMTAwIGJhc2UgRXRoZXJuZXQgZGVpdmljZSwgQ0Ygc2xvdAogICAgYW5kIFZHQSBkZXZpY2VzLiBUaGlzIGJvYXJkIGNhbiBzZXQgZXh0ZW5zaW9uIGJvYXJkLgogICAgRXh0ZW5zaW9uIGJvYXJkIGhhcyAxMC8xMDAvMTAwMCBiYXNlIEV0aGVybmV0IGRldmljZSwgUENJIHNsb3QsCiAgICBTLUFUQSwgaURWUiBzbG90LgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxYTIzMzRhNGViNjM4NmQ3Y2QzNWQ5ZGU1ZmEzOWFmMmM3NjRhZDI4CkF1dGhvcjogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTQ6MzA6MDIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgb2YgU3VwZXJIIGFuZCBTSDc3ODAKCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IFBDSSBvZiBTdXBlckggYmFzZSBjb2RlIGFuZCBTSDc3ODAgc3BlY2lmaWMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjU1NTIzZWZmZjJhZTExZjBiOWFlM2NjNDA1ODkzYzMyZWI3ODE1NgpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE0OjIzOjI2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU0g3NzgwCgogICAgU0g3NzgwIGlzIENQVSBvZiBSZW5lc2FzIFRlY2hub2xvZ3kuCiAgICBUaGlzIENQVSBoYXMKICAgICAtIENQVSBjbG9jayA0MDBNSHoKICAgICAtIFBDSSBzdXBwb3J0CiAgICAgLSBERFItU0RSQU0gY29udHJvbGxlcgogICAgIC0gZXRjIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMjA0MmY1OTUyYTY4NmM0MTQwMzEzMDliOGYyNDQ1MTNiZjU3OGYwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSmFuIDI1IDIwOjQ2OjM2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTb2x1dGlvbnMgTWlnby1SIGJvYXJkCgogICAgTWlnby1SIGlzIGEgYm9hcmQgYmFzZWQgb24gU0g3NzIyIGFuZCBoYXMgbWF5IGRldmljZXMuCiAgICBJbiB0aGlzIHBhdGNoLCBzdXBwb3J0ZWQgU0NJRiwgTk9SIGZsYXNoIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNzRkMWU2NmQyMmRhYzkxMzg4YmM1MzhiMmZlMTlmNzM1ZWRjNWI4MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjcgMTU6MDY6NDAgMjAwOCArMDEwMAoKICAgIEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UsIHRha2UgdHdvCgogICAgUmV2ZXJ0IGNvbW1pdCA4N2M4NDMxZiBhbmQgZml4IGJ1aWxkIGJyZWFrYWdlIHNvIHRoYXQgdGhlIGJ1aWxkIGNvbnRpbnVlcwogICAgdG8gd29yayBvbiBGQyBzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2U0YTBkMjVlZDE4ZjY0MzdiZGY1OWViZmE0OWJiMGVkYzJmMjRlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAwOTozNjo0NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgRUNDIG9uIExXTU9ONQoKICAgIFNpbmNlIGFsbCBFQ0MgcmVsYXRlZCBwcm9ibGVtcyBzZWVtIHRvIGJlIHJlc29sdmVkIG9uIExXTU9ONSwgdGhpcyBwYXRjaAogICAgbm93IGVuYWJsZXMgRUNDIHN1cHBvcnQuCgogICAgV2UgaGF2ZSB0byB3cml0ZSB0aGUgRUNDIGJ5dGVzIGJ5IHplcm9pbmcgYW5kIGZsdXNoaW5nIGluIHNtYWxsZXIKICAgIHN0ZXBzLCBzaW5jZSB0aGUgd2hvbGUgMjU2TUJ5dGUgdGFrZXMgdG9vIGxvbmcgZm9yIHRoZSBleHRlcm5hbAogICAgd2F0Y2hkb2cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0MzNmYTIwMmE5MWE2NTk0ZGQ0OGYwNjgwN2FjMzhiYTI3ZmEwYmIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJTW9uIE1hciAxNyAxMToxMDozNSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBVcGRhdGVzIHRvIEtvcmF0LXNwZWNpZmljIGNvZGUKCiAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIHVwZGF0ZXMgZm9yIGNoYW5nZXMgZm9yIHRoZSBLb3JhdCBQUEM0NDBFUHggYm9hcmQuCiAgICBUaGVzZSBjaGFuZ2VzIGluY2x1ZGU6CgogICAgKDEpIFN1cHBvcnQgZm9yICJwZXJtYW5lbnQiIGFuZCAidXBncmFkYWJsZSIgY29waWVzIG9mIFUtQm9vdCwgYXMKICAgIGRlc2NyaWJlZCBpbiB0aGUgbmV3ICJkb2MvUkVBRE1FLmtvcmF0IiBmaWxlOwoKICAgICgyKSBhIG5ldyBtZW1vcnkgbWFwIGZvciB0aGUgcmVnaXN0ZXJzIGluIHRoZSBib2FyZCdzIENQTEQ7CgogICAgKDMpIGEgcmV2aXNlZCBmb3JtYXQgZm9yIG1hbnVmYWN0dXJlcidzIGRhdGEgaW4gc2VyaWFsIEVFUFJPTTsgYW5kCgogICAgKDQpIGNoYW5nZXMgdG8gdHJhY2sgdXBkYXRlcyB0byBVLUJvb3QgZm9yIHRoZSBTZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGY3NjZjZGY4OWIzYTJhNzYzNGI4YzU4NjlmNjA2MTUwZTMzMjAzNmMKQXV0aG9yOiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDEwOjQ2OjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFBQQzQwNUVQIFNldCBFTUFDIG5vaXNlIGZpbHRlciBiaXRzCgogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgd2l0aCBjb21taXQgYWVlNzQ3ZjE5YjQ2MGEwZTlkYTIwZmYyMWU5MGZkYWFjMWNlYzM1OQogICAgd2hpY2ggZW5hYmxlZCBDRkdfNHh4X0dQSU9fVEFCTEUgZm9yIFBQQzQwNSBhbmQgdW5pbnRlbnRpb25hbGx5CiAgICBkaXNhYmxlZCB0aGUgc2V0dGluZyBvZiB0aGUgZW1hYyBub2lzZSBmaWx0ZXIgYml0cyBmb3IgUFBDNDA1RVAgd2hlbiBDRkdfNHh4X0dQSU9fVEFCTEUgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjY2ZTJjOGIyNWMwNGI3OWU1ZmIzODViYzg5ODljMmRlN2Y2Mzk5MQpBdXRob3I6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgpEYXRlOglXZWQgRmViIDIwIDExOjU0OjIwIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFJlY29uZmlndXJlIFBMTCBmb3IgNjY3TUh6IHByb2Nlc3NvciBmb3IgUFBDNDQwRVB4CgogICAgT24gUFBDNDQwRVB4IHdpdGhvdXQgYSBib290c3RyYXAgSTJDIEVFUFJPTSwgdGhlIFBMTCBjYW4gYmUgcmVjb25maWd1cmVkCiAgICBhZnRlciBzdGFydHVwIHRvIGNoYW5nZSB0aGUgc3BlZWQgb2YgdGhlIGNsb2Nrcy4gVGhpcyBwYXRjaCBhZGRzIHRoZQogICAgb3B0aW9uIENGR19QTExfUkVDT05GSUcuIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byA2NjcsIHRoZSBDUFUKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgd2lsbCByZWNvbmZpZ3VyZSB0aGUgUExMIHRvIHJ1biB0aGUgc3lzdGVtIHdpdGggYSBDUFUKICAgIGZyZXF1ZW5jeSBvZiA2NjdNSHogYW5kIFBMQiBmcmVxdWVuY3kgb2YgMTY2TUh6LCB3aXRob3V0IHRoZSBuZWVkIGZvciBhbgogICAgZXh0ZXJuYWwgRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2M4NDMxZmUyNGQ0ODEyMWYwNTNmZTY3Y2ZmNGNjZmUwOTdkNGQxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDA5OjEyOjQwIDIwMDggKzAxMDAKCiAgICBuZXctaW1hZ2U6IEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNmZiNGI2NDA1NjJhMTBkYWZmMGRiZTUzNzYzOGQ1MTFiNWI0ODY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDoyNDowMyAyMDA4ICswMTAwCgogICAgcHBjOiBTZXQgQ0ZHX01FTV9UT1BfSElERSB0byAwIGlmIG5vdCBhbHJlYWR5IGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQ2MjczMmEzZWM1NTFjMTE4NjI0NTA5MDJjZDhlZTFiZWRlYTZkOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAxMDoyMzo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgdG8gUHJvZHJpdmUgYWxwcgoKICAgIFNpbmNlIHRoaXMgYm9hcmQgd2lsbCBwcm9iYWJseSBiZSBwb3J0ZWQgdG8gYXJjaC9wb3dlcnBjIGluIHRoZQogICAgbmVhciBmdXR1cmUsIHdlIGFkZCBkZXZpY2UgdHJlZSBzdXBwb3J0IG5vdy4gVGhpcyB3YXkgd2UgYXJlCiAgICAicmVhZHkiIGZvciBhcmNoL3Bvd2VycGMgZnJvbSBub3cgb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUxMWU0ZjllN2Y3YjY3MTllNGQ5MWQ3ZjBmYzg5NDEyYjEzYjUxNTAKQXV0aG9yOiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQHByb2RyaXZlLm5sPgpEYXRlOglNb24gTWFyIDE3IDA5OjI3OjU2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBjYWNoZSBzdXBwb3J0IG9uIHRoZSBBTFBSIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTRmNzNjYTY3OWY2ZmRiNDRjZmYwYjczMDRkNDE5ZGI0MWEwYWI2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxMDoxNDoxMSAyMDA4ICswMTAwCgogICAgcHBjOiBBZGQgQ0ZHX01FTV9UT1BfSElERSBvcHRpb24gdG8gaGlkZSBtZW1vcnkgYXJlYSB0aGF0IGRvZXNuJ3QgZ2V0ICJ0b3VjaGVkIgoKICAgIElmIENGR19NRU1fVE9QX0hJREUgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciwgdGhpcyBzcGVjaWZpZWQKICAgIG1lbW9yeSBhcmVhIHdpbGwgZ2V0IHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG9wIChlbmQpIG9mIHJhbSBhbmQgd29uJ3QgZ2V0CiAgICAidG91Y2hlZCIgYXQgYWxsIGJ5IFUtQm9vdC4gQnkgZml4aW5nIHVwIGdkLT5yYW1fc2l6ZSB0aGUgTGludXgga2VybmVsCiAgICBzaG91bGQgZ2V0cyBwYXNzZWQgdGhlIG5vdyAiY29ycmVjdGVkIiBtZW1vcnkgc2l6ZSBhbmQgd29uJ3QgdG91Y2ggaXQKICAgIGVpdGhlci4gVGhpcyBzaG91bGQgd29yayBmb3IgYXJjaC9wcGMgYW5kIGFyY2gvcG93ZXJwYy4gT25seSBMaW51eCBib2FyZAogICAgcG9ydHMgaW4gYXJjaC9wb3dlcnBjIHdpdGggYm9vdHdyYXBwZXIgc3VwcG9ydCwgd2hpY2ggcmVjYWxjdWxhdGUgdGhlCiAgICBtZW1vcnkgc2l6ZSBmcm9tIHRoZSBTRFJBTSBjb250cm9sbGVyIHNldHVwLCB3aWxsIGhhdmUgdG8gZ2V0IGZpeGVkCiAgICBpbiBMaW51eCBhZGRpdGlvbmFsbHkuCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoaXMgY29uZmlnIG9wdGlvbiBvbiBzb21lIFBQQzQ0MEVQeCBib2FyZHMgYXMgYSB3b3JrYXJvdW5kCiAgICBmb3IgdGhlIENISVAgMTEgZXJyYXRhLiBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIHRoZSBBTUNDIGRvY3VtZW50YXRpb246CgogICAgQ0hJUF8xMTogRW5kIG9mIG1lbW9yeSByYW5nZSBhcmVhIHJlc3RyaWN0ZWQgYWNjZXNzLgogICAgQ2F0ZWdvcnk6IDMKCiAgICBPdmVydmlldzoKICAgIFRoZSA0NDBFUHggRERSIGNvbnRyb2xsZXIgZG9lcyBub3QgYWNrbm93bGVkZ2UgYW55CiAgICB0cmFuc2FjdGlvbiB3aGljaCBpcyBkZXRlcm1pbmVkIHRvIGJlIGNyb3NzaW5nIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LCBldmVuIGlmIHRoZSBzdGFydGluZyBhZGRyZXNzIGlzCiAgICB3aXRoaW4gdmFsaWQgbWVtb3J5IHNwYWNlLiBBbnkgc3VjaCB0cmFuc2FjdGlvbiBmcm9tIGFueSBQTEI0CiAgICBtYXN0ZXIgd2lsbCByZXN1bHQgaW4gYSBQTEIgdGltZS1vdXQgb24gUExCNCBidXMuCgogICAgSW1wYWN0OgogICAgSW4gY2FzZSBvZiBzdWNoIG1pc2FsaWduZWQgYnVyc3RzLCBQTEI0IG1hc3RlcnMgd2lsbCBub3QKICAgIHJldHJpZXZlIGFueSBkYXRhIGF0IGFsbCwganVzdCB0aGUgYXZhaWxhYmxlIGRhdGEgdXAgdG8gdGhlCiAgICBlbmQgb2YgbWVtb3J5LCBlc3BlY2lhbGx5IHRoZSA0NDAgQ1BVLiBGb3IgZXhhbXBsZSwgaWYgYSBDUFUKICAgIGluc3RydWN0aW9uIHJlcXVpcmVkIGFuIG9wZXJhbmQgbG9jYXRlZCBpbiBtZW1vcnkgd2l0aGluIHRoZQogICAgbGFzdCA3IHdvcmRzIG9mIG1lbW9yeSwgdGhlIERDVSBtYXN0ZXIgd291bGQgYnVyc3QgcmVhZCA4CiAgICB3b3JkcyB0byB1cGRhdGUgdGhlIGRhdGEgY2FjaGUgYW5kIGNyb3NzIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LiBTdWNoIGEgRENVIHJlYWQgd291bGQgbm90IGJlCiAgICBhbnN3ZXJlZCBieSB0aGUgRERSIGNvbnRyb2xsZXIsIHJlc3VsdGluZyBpbiBhIFBMQjQgdGltZS1vdXQKICAgIGFuZCB1bHRpbWF0ZWx5IGluIGEgTWFjaGluZSBDaGVjayBpbnRlcnJ1cHQuIFRoZSBkYXRhIHdvdWxkCiAgICBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIENQVS4KCiAgICBXb3JrYXJvdW5kOgogICAgRm9yYmlkIGFueSBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgdGhlIGxhc3QgMjU2IGJ5dGVzIG9mIEREUgogICAgbWVtb3J5LiBGb3IgZXhhbXBsZSwgbWFrZSB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gYmVsaWV2ZSB0aGF0CiAgICB0aGUgbGFzdCAyNTYgYnl0ZXMgb2YgRERSIG1lbW9yeSBhcmUgYWJzZW50LiBBTUNDIGhhcyBhIHBhdGNoCiAgICB0aGF0IGRvZXMgdGhpcywgYXZhaWxhYmxlIGZvciBMaW51eC4KCiAgICBUaGlzIHBhdGNoIHNldHMgQ0ZHX01FTV9UT1BfSElERSBmb3IgdGhlIGZvbGxvd2luZyA0NDBFUHggYm9hcmRzOgogICAgbHdtb241LCBrb3JhdCwgc2VxdW9pYQoKICAgIFRoZSBvdGhlciByZW1haW5pbmcgNDQwRVB4IGJvYXJkIHdlcmUgaW50ZW50aW9uYWxseSBub3QgaW5jbHVkZWQKICAgIHNpbmNlIGl0IGlzIG5vdCBjbGVhciB0byBtZSwgaWYgdGhleSB1c2UgdGhlIGVuZCBvZiByYW0gZm9yIHNvbWUKICAgIG90aGVyIHB1cnBvc2UuIFRoaXMgaXMgdW5jbGVhciwgc2luY2UgdGhlc2UgYm9hcmRzIGhhdmUgQ09ORklHX1BSQU0KICAgIGRlZmluZWQgYW5kIGV2ZW4gY29tbWVudHMgbGlrZSB0aGlzOgoKICAgIFBNQzQ0MC5oOgogICAgLyogZXNkIGV4cGVjdHMgcHJhbSBhdCBlbmQgb2YgcGh5c2ljYWwgbWVtb3J5LgogICAgICogU28gbm8gbG9nYnVmZmVyIGF0IHRoZSBtb21lbnQuCiAgICAgKi8KCiAgICBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBub3QgdXNlIHRoZSBsYXN0IDI1NiBieXRlcyBvbiB0aG9zZQogICAgYm9hcmRzIHRvby4gUGF0Y2hlcyBmcm9tIHRoZSBib2FyZCBtYWludGFpbmVycyBhcmUgd2VsY29tZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY2NGJmOGMzYzliYjllMjM2ODkxZjBkOGRmZGE4ODNlODZkMTU5YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDowOTowNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgbGlua2VyIHNjcmlwdCAocmVtb3ZlIGJvZ3VzIEFTU0VSVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDU2YTNjZTE3OTY4OGNkZTYxMDczYTM2OTBlMjE3MDNkNjhmYWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAyNSAxNzo1MToxMyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDb3JyZWN0bHkgcGFzcyBwaHlpc2NhbCBGTEFTSCBiYXNlIGFkZHJlc3MgaW50byBkdGIKCiAgICBUaGUgcm91dGluZSBmdF9ib2FyZF9zZXR1cCgpIGNvbmZpZ3VyZXMgdGhlIEVCQyBOT1IgbWFwcGluZ3MgZm9yIHRoZQogICAgTGludXggcGh5c21hcF9vZiBkcml2ZXIuIFNpbmNlIG9uIDQ2MEVYL0dUIHdlIHJlbWFwIHRoZSBGTEFTSCBmcm9tCiAgICAweDQuZmMwMC4wMDAwIHRvIDB4NC5jYzAwLjAwMDAgYmVjYXVzZSBvZiB0aGUgbWF4LiAxNk1CeXRlIGJvb3QtQ1MKICAgIHByb2JsZW0sIHdlIG5lZWQgdG8gcGFzcyB0aGUgY29ycmVjdGVkIGFkZHJlc3MgaGVyZSB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlhZDMxOTg5ZGUxMmNlNWM2N2IwN2M0ODY3ZWFkNDc0NjU2NTVjNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTY6MzU6MTIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gNHh4X2VuZXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YzllODU1NzM0YzUyMzkwMDMyMmE3YzNjZGQ5MDk5YjRmNTFiNTFkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDE5IDE2OjIwOjQ5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIEdsYWNpZXIgNDA2R1QgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEdsYWNpZXIgNDYwR1QgZXZhbCBib2FyZC4KICAgIFRoZSBtYWluIGRpZmZlcmVuY2UgdG8gdGhlIENhbnlvbmxhbmRzIGJvYXJkIGFyZSBsaXN0ZWQgaGVyZToKCiAgICAtIDQgZXRoZXJuZXQgcG9ydHMgaW5zdGVhZCBvZiAyCiAgICAtIG5vIFNBVEEgcG9ydAogICAgLSBubyBVU0IgcG9ydAoKICAgIEN1cnJlbnRseSBFTUFDMiszIGFyZSBub3Qgd29ya2luZy4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIGEgbGF0ZXIKICAgIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ4YmQ2NDMxNDFhZjQ3MTBkN2YxYjY5YmJhYjZiNzYwZGUwYWYwYTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjcgMDg6NDc6MjYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWFzayAndmVjJyB3aXRoIDB4MWYgaW4gdWljX2ludGVycnVwdCgpIGZvciBiaXQgc2V0L2NsZWFyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI5NjcwZGQ4NWJlNmUwNDk2ZWYyZTIzMTA0M2MyM2NhZDliMWQ5MDMKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjE6MDU6NDMgMjAwOCArMDEwMAoKICAgIEZpeCBvdXQgb2YgdHJlZSBidWlsZGluZyBpc3N1ZQoKICAgIEN1cnJlbnRseSBVLUJvb3QgYnVpbGRpbmcgaW4gc29tZSBleHRlcm5hbCBkaXJlY3RvcnkKICAgIGRvZXNuJ3Qgd29yay4gVGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ0ZWU3MTFkOGE1YzM2NmVlM2Y4NTdjMjZiOTI3ZDEyZTY2NjE0ZmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTg6MTM6MzMgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgRml4IHR5cG8gaW4gUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGU4MTNlYWUzYmZlYmE5YzBiZGE5ZDFiZjlmYzNkMDgxZjc5MDk3MmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTc6NDc6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbiBjbWRfdXNiLmMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGF0aW9uIGVycm9yCiAgICBjbWRfdXNiLmM6IEluIGZ1bmN0aW9uICdkb191c2InOgogICAgY21kX3VzYi5jOjU1MjogZXJyb3I6IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZDhjODJkYjQ4MmQ2YjUzNWQxMmI0MTlkNjQ0MGI4OGJmNzA5MWM5YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTc6NDU6MjkgMjAwOCAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBJMkMgYnVzIHNwZWVkIGluIGZzbF9pMmMuYwoKICAgIEFkZCBzdXBwb3J0IHRvIHRoZSBGcmVlc2NhbGUgSTJDIGRyaXZlciAoZnNsX2kyYy5jKSBmb3Igc2V0dGluZyBhbmQgcXVlcnlpbmcKICAgIHRoZSBJMkMgYnVzIHNwZWVkLglDdXJyZW50IDhbMzU2XXh4IGJvYXJkcyBkZWZpbmUgdGhlIENGR19JMkNfU1BFRUQgbWFjcm8sCiAgICBidXQgZnNsX2kyYy5jIGlnbm9yZXMgaXQgYW5kIHVzZXMgY29uc2VydmF0aXZlIHZhbHVlIHdoZW4gcHJvZ3JhbW1pbmcgdGhlCiAgICBJMkMgYnVzIHNwZWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQwNDljYzdmNzFjMGQ4NzVlOGY1MDk5ZDFlZDIzNjY2YTgyYjhmOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDI3IDAwOjAzOjU3IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwYjFmZTNjMzg4YTc3ZThmZTAwY2RkOTMwY2EzMTdhOTExOThkNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NTozMiAyMDA4ICswODAwCgogICAgZHJpdmVyczogYWRkIHRoZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgU0FUQSBjb250cm9sbGVyCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgb24tY2hpcCBTQVRBIGNvbnRyb2xsZXIgZHJpdmVyIHRvIHUtYm9vdCwKICAgIFRoZSBTQVRBIGNvbnRyb2xsZXIgaXMgdXNlZCBvbiB0aGUgODM3eCBhbmQgODMxNSB0YXJnZXRzLAogICAgVGhlIGRyaXZlciBjYW4gYmUgdXNlZCB0byBsb2FkIGtlcm5lbCwgZnMgYW5kIGR0Yi4KCiAgICBUaGUgZmVhdHVyZXMgbGlzdDoKICAgIC0gMS41LzMgR2JwcyBsaW5rIHNwZWVkCiAgICAtIExCQTQ4LCBMQkEyOCBzdXBwb3J0CiAgICAtIERNQSBhbmQgRlBETUEgc3VwcG9ydAogICAgLSBUd28gcG9ydHMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVkZTg3ZjRjODdjM2NjZDg2OGNjNjBlYmY3OTJlMDU2MGM2ZDAyNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NDo0NCAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIHJlYWRtZSBmb3IgU0FUQSBjb21tYW5kIGxpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkNTQwODFjZDQ3OWU1NDJmYzM5OWI4YTQwNjUxZmYxMWExYWQ4NDkKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTM6MjQgMjAwOCArMDgwMAoKICAgIGF0YTogZW5hYmxlIHRoZSBzYXRhIGluaXRpYWxpemUgb24gYm9vdCB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjkzODYzODNjNWMyYjMyM2M2NjQ5NWIwYjBjZWY2YTk3MTRkODNiZgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MjozNiAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIGZpcyBzdHJ1Y3QgZm9yIFNBVEEKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZmYzY2NGU4MGRmYjJlMTdkZTBkZjVhZDM5ZTkxYTAyZTljMzYxYmMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTE6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBsaWJhdGEgc3VwcG9ydAoKICAgIGFkZCBzaW1wbGUgbGliYXRhIHN1cHBvcnQgaW4gdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZTliYjQzNDI5ZTUwZGY1NWZhNDE5MzJjYmU2NTg0MWZmNTc5MjIwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjUwOjQ1IDIwMDggKzA4MDAKCiAgICBhdGE6IG1ha2UgdGhlIGF0YV9waWl4IGRyaXZlciB1c2luZyBuZXcgU0FUQSBmcmFtZXdvcmsKCiAgICBvcmlnaW5hbCBhdGFfcGlpeCBkcml2ZXIgaXMgdXNpbmcgSURFIGZyYW1ld29yaywgbm90IHJlYWwKICAgIFNBVEEgZnJhbWV3b3JrLiBGb3Igbm93LCB0aGUgYXRhX3BpaXggZHJpdmVyIGlzIG9ubHkgdXNlZAogICAgYnkgeDg2IHNjNTIwX2NkcCBib2FyZC4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgYXRhX3BpaXggZHJpdmVyCiAgICB1c2UgdGhlIG5ldyBTQVRBIGZyYW1ld29yaywgc28KCiAgICAtIHJlbW92ZSB0aGUgZHVwbGljYXRlZCBjb21tYW5kIHN0dWZmCiAgICAtIHJlbW92ZSB0aGUgQ09ORklHX0NNRF9JREUgZGVmaW5lIGluIHRoZSBzYzUyMF9jZHAuaAogICAgLSBhZGQgdGhlIENPTkZJR19DTURfU0FUQSBkZWZpbmUgdG8gc2M1MjBfY2RwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3MDU3YjUyOWMzYzNjYjljMGFjOTA2MDY4NmE0MDY4ZjE0OTFiYmUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NDk6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBzdXBwb3J0IGZvciBTQVRBIGZyYW1ld29yawoKICAgIC0gYWRkIHRoZSBTQVRBIGZyYW1ld29yawogICAgLSBhZGQgdGhlIFNBVEEgY29tbWFuZCBsaW5lCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4M2M3ZjQ3MGE0Y2U5NGYzMzYwMGYxMWFlODVjZTRkY2YwMGFhOTBjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ4OjE4IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBoZWFkZXIgb2YgYXRhX3BpaXggZHJpdmVyCgogICAgbW92ZSB0aGUgc2F0YS5oIGZyb20gaW5jbHVkZS8gdG8gZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZWVmNjI4MDRkOTY5NTQyNWIyNGM4N2I0NmE2MWE3ZmE3NGFmZWUwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ3OjA2IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBhdGFfcGlpeCBkcml2ZXIKCiAgICBtb3ZlIHRoZSBjbWRfc2F0YS5jIGZyb20gY29tbW9uLyB0byBkcml2ZXJzL2F0YV9waWl4LmMsCiAgICB0aGUgY21kX3NhdGEuYyBoYXZlIHNvbWUgcGFydCBvZiBhdGFfcGlpeCBjb250cm9sbGVyIGRyaXZlcnMuCiAgICBjb25zb2xpZGF0ZSB0aGUgZHJpdmVyIHRvIGhhdmUgYmV0dGVyIGZyYW1ld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5ZTc0OWU5NTM1NGYzM2ViNWRjNjY1M2M2ZGI3ZDUwMmFkYjk1ZmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE4OjI2OjQzIDIwMDggKzAxMDAKCiAgICBVU0IsIFN0b3JhZ2U6IGZpeCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgZjZiNDRlMGU0ZDE4ZmU1MDc4MzNhMGY3NmQyNGE5YWE3MmMxMjNmMSB0aGF0IHdpbGwgY2F1c2UgdXNiX3N0b3JfaW5mbwogICAgdG8gb25seSBwcmludCBvbmx5IGluZm9ybWF0aW9uIG9uIG9uZSBzdG9yYWdlIGRldmljZSwgYnV0IG5vdCBmb3IKICAgIG11bHRpcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODQxZTVlZGQxNjIzZjNmZWNiNmJmZmM1YzJmOTM4ZWQ3YTk0NzM2MApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxNzo0Nzo0NCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGluIGNtZF91c2IuYwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY29tcGlsYXRpb24gZXJyb3IKICAgIGNtZF91c2IuYzogSW4gZnVuY3Rpb24gJ2RvX3VzYic6CiAgICBjbWRfdXNiLmM6NTUyOiBlcnJvcjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZGQ2YzkxMGFhZGYyN2M4MjJmMTdiODdlYWUxYTliZDBiMmUzYWExNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6NTM6NTMgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCBjcHVfbXBfbG1iX3Jlc2VydmUgaGVscGVyIHRvIHJlc2VydmUgYm9vdCBwYWdlCgogICAgUHJvdmlkZSBhIGJvYXJkX2xtYl9yZXNlcnZlIGhlbHBlciBmdW5jdGlvbiB0byBlbnN1cmUgd2UgcmVzZXJ2ZQogICAgdGhlIHBhZ2Ugb2YgbWVtb3J5IHdlIGFyZSB1c2luZyBmb3IgdGhlIGJvb3QgcGFnZSB0cmFuc2xhdGlvbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzk2NzlkODAwMjFhYjA5NWU2MzllMjUwY2E0NzJmZTUyNmRhMDJlMgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6MzQ6MjUgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFVwZGF0ZSBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20gdG8gZVBBUFIgdjAuODEgc3BlYwoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgbmVlZGVkIHRvIGJlIGlubGluZSB3aXRoIGVQQVBSIHYwLjgxOgoKICAgICogcjQsIHI1IGFuZCBub3cgYWx3YXlzIHNldCB0byAwIG9uIGJvb3QgcmVsZWFzZQogICAgKiByNyBpcyB1c2VkIHRvIHBhc3MgdGhlIHNpemUgb2YgdGhlIGluaXRpYWwgbWFwIGFyZWEgKElNQSkKICAgICogRVBBUFJfTUFHSUMgdmFsdWUgY2hhbmdlZCBmb3IgYm9vay1lIHByb2Nlc3NvcnMKICAgICogY2hhbmdlcyBpbiB0aGUgc3BpbiB0YWJsZSBsYXlvdXQKICAgICogc3BpbiB0YWJsZSBzdXBwb3J0cyBhIDY0LWJpdCBwaHlzaWNhbCByZWxlYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI1ZWVkYjJjMTk1OGExMzExMGM3ZGUxZmM4MDliNjI0MDUzY2M2OWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDE5IDE1OjAyOjA3IDIwMDggLTA1MDAKCiAgICBGU0w6IENsZWFuIHVwIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUKCiAgICBFYWNoIGZpbGUgdGhhdCBjYW4gYmUgYnVpbHQgaGVyZSBub3cgZm9sbG93cyBzb21lCiAgICBDT05GSUdfIG9wdGlvbiBzbyB0aGF0IHRoZXkgYXJlIGFwcHJvcHJpYXRlbHkgYnVpbHQKICAgIG9yIG5vdCwgYXMgbmVlZGVkLglBbmQgQ09ORklHXyBkZWZpbmVzIHdlcmUgYWRkZWQKICAgIHRvIHZhcmlvdXMgYm9hcmQgY29uZmlnIGZpbGVzIHRvIG1ha2Ugc3VyZSB0aGF0IGhhcHBlbnMuCgogICAgVGhlIG90aGVyIGJvYXJkL2ZyZWVzY2FsZS8qL01ha2VmaWxlcyBubyBsb25nZXIgbmVlZAogICAgdG8gcmVhY2ggdXAgYW5kIG92ZXIgaW50byAuLi9jb21tb24gdG8gYnVpbGQgdGhlaXIKICAgIGluZGl2aWR1YWxseSBuZWVkZWQgZmlsZXMgYW55IG1vcmUuCgogICAgQm9hcmRzIHRoYXQgYXJlIENEUyBzcGVjaWZpYyB3ZXJlIHJlbmFtZWQgd2l0aCBjZHNfIHByZWZpeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1YWY0YjM1OGE3Y2FhOWMwYWEzNzRkNGQ4OTRiZjc2MmVjMzc2NjkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIyOjAwOjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBGaXggbWVyZ2UgZHVwbGljYXRpb24KCiAgICBmdF9maXh1cF9jcHUoKSBnb3QgZHVwbGljYXRlZCBpbiBzb21lIG1lcmdlIHNuYWZ1LglSZW1vdmUgdGhlIGR1cGxpY2F0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU4OTNiM2QwYTQwODRmODdhMDZhNWQzZGMwM2RiOTEyMDY4MTg5NDEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTIgMTY6MzU6MDcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEV4cGFuZCBDQ1NSIHNwYWNlIHdpdGggbW9yZSBERFIgY29udHJvbGxlciByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNlNzdmYTUzNTliM2Y5ZjU5ZTRlOTQ2YjQ2ZDU3YTUzMDU3Y2M4NQpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE4OjA1OjA4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTcGVlZCB1cCBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkKCiAgICBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgdXNlZCBnZXRfc3lzX2luZm8oKSBlYWNoIHRpbWUgdGhleSB3ZXJlCiAgICBjYWxsZWQuICBIb3dldmVyLCBnZXRfc3lzX2luZm8oKSByZWNhbGN1bGF0ZXMgZXh0cmFuZW91cyBpbmZvcm1hdGlvbiB3aGVuCiAgICBjYWxsZWQgZWFjaCB0aW1lLiAgSGF2ZSBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgcmV0dXJuIG1lbW9pemVkCiAgICB2YWx1ZXMgZnJvbSBnbG9iYWxfZGF0YSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTllYTY3OTkxOGZiYzlhNTNmYTJmMmE5MDRhYWM4NzRlYTczNjAzNgpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ2OjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTaG93IEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sgZnJlcXVlbmN5LgoKICAgIFNob3cgdGhlIEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sKICAgIGZyZXF1ZW5jeS4JRm9yIEREUi9ERFIyIG1lbW9yaWVzIHRoZSBtZW1vcnkgZGF0YSByYXRlIGlzIDJ4IHRoZQogICAgbWVtb3J5IGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTkxOTMzY2E2ZWFiYzQ0MGU2ZWQ2OTY3MjMzYWFmNTZmY2U0NjRhMwpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ0OjUzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBnZXRfdGJjbGsoKSBzcGVlZCB1cCBhbmQgcm91bmRpbmcgZml4CgogICAgU3BlZWQgdXAgZ2V0X3RiY2xrKCkgYnkgcmVmZXJlbmNpbmcgcHJlLWNvbXB1dGVkIGJ1cyBjbG9jawogICAgZnJlcXVlbmN5IHZhbHVlIGZyb20gZ2xvYmFsIGRhdGEgaW5zdGVhZCBvZiBzeXNfaW5mb190LiAgRml4CiAgICByb3VuZGluZyBvZiByZXN1bHQgdG8gbmVhcmVzdDsgcHJldmlvdXNseSBpdCB3YXMgcm91bmRpbmcKICAgIHVwd2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxY2VkMTIxNjAwYjIwNjBhYjJmZjlmMGZkZGQ5NDIxZmQ3MGEwZGM2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDYgMDE6MTk6NDAgMjAwOCAtMDYwMAoKICAgIFVwZGF0ZSBTVlIgbnVtYmVycyB0byBleHBhbmQgc3VwcG9ydAoKICAgIEZTTCBoYXMgdGFrZW4gdG8gdXNpbmcgU1ZSWzE2OjIzXSBhcyBhbiBTT0Mgc3ViLXZlcnNpb24gZmllbGQuICBUaGlzCiAgICBpcyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGNlcnRhaW4gdmFyaWFudHMgd2l0aGluIGFuIFNPQyBmYW1pbHkuICBUbwogICAgYWNjb3VudCBmb3IgdGhpcywgd2UgYWRkIHRoZSBTVlJfU09DX1ZFUigpIG1hY3JvLCBhbmQgdXBkYXRlIHRoZSBTVlJfKgogICAgY29uc3RhbnRzIHRvIHJlZmxlY3QgdGhlIGxhcmdlciB2YWx1ZS4gIFdlIGFsc28gYWRkIFNWUiBudW1iZXJzIGZvciBhbGwKICAgIG9mIHRoZSBjdXJyZW50IHZhcmlhbnRzLiAgRmluYWxseSwgdG8gbWFrZSB0aGluZ3MgbmVhdGVyLCByYXRoZXIgdGhhbgogICAgdXNlIGFuIGVub3Jtb3VzIHN3aXRjaCBzdGF0ZW1lbnQgdG8gcHJpbnQgb3V0IHRoZSBDUFUgdHlwZSwgd2UgY3JlYXRlCiAgICBhbmQgYXJyYXkgb2YgU1ZSL25hbWUgcGFpcnMgKHVzaW5nIGEgbWFjcm8pLCBhbmQgcHJpbnQgb3V0IHRoZSBDUFUgbmFtZQogICAgdGhhdCBtYXRjaGVzIHRoZSBTVlIgU09DIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4M2VlZjQ0MGNmM2NlZjgxNjE3MmNjYmI1ODk3Y2NkOGU0MDNjZjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNiAwMToxMjo1NyAyMDA4IC0wNjAwCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgUENJIGRldmljZSBJRHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2FmZjBjMDUxYWQwNjEzMTcxY2YyYjk5NDFlZTQ4Njc1YzYyZTdjZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBGZWIgMTQgMTE6MDQ6MjMgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEFkZGVkIHN1cHBvcnQgZm9yIG11bHRpY29yZSBib290IG1lY2hhbmlzbQoKICAgIEFkZGVkIHRoZSBjcHUgY29tbWFuZCB0aGF0IHByb3ZpZGVzIGEgZ2VuZXJpYyBtZWNoYW5pc20gdG8gZ2V0IHN0YXR1cywKICAgIHJlc2V0LCBhbmQgcmVsZWFzZSBzZWNvbmRhcnkgY29yZXMgaW4gbXVsdGljb3JlIHByb2Nlc3NvcnMuCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIGVQQVBSIGRlZmluZWQgc3Bpbi10YWJsZSBtZWNoYW5pc20gb24gODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjMmI3NGZmZDM2ZjAyYzYxMjM3MjVlN2MyNTMzZGQyZGVhZjRiNjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE2OjQ4OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBBZGRlZCBzdXBwb3J0IGZvciBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20KCiAgICBBZGRlZCB0aGUgY3B1IGNvbW1hbmQgdGhhdCBwcm92aWRlcyBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGdldCBzdGF0dXMsCiAgICByZXNldCwgYW5kIHJlbGVhc2Ugc2Vjb25kYXJ5IGNvcmVzIGluIG11bHRpY29yZSBwcm9jZXNzb3JzLgoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBlUEFQUiBkZWZpbmVkIHNwaW4tdGFibGUgbWVjaGFuaXNtIG9uIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNjk3NjZlNGI1ZDQ3ZWNkM2FhNTg2NzdhOGRhODc1Njk0ZjM2NGYyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAzMCAxNDo1NToxNCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIHRoZSBjb25jZXB0IG9mIENGR19DQ1NSQkFSX1BIWVMKCiAgICBXaGVuIHdlIGdvIHRvIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzZXMgd2UgbmVlZCB0byBrZWVwIHRoZSBjb25jZXB0IG9mCiAgICB0aGUgcGh5c2ljYWwgQ0NTUkJBUiBhZGRyZXNzIHNlcGVyYXRlIGZyb20gdGhlIHZpcnR1YWwgb25lLgoKICAgIEZvciB0aGUgbWFqb3JpdHkgb2YgYm9hcmRzIENGR19DQ1NCQVJfUEhZUyA9PSBDRkdfQ0NTUkJBUgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWI1ZWI5Y2E1Yjc3OGY3NjNiY2YzMzI2OTdiMzVjYzFlNzQ3NjI2ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTU6Mzg6NDcgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGE4ODA4ZGY3YTljZWY1YTNkMmVlMjg2ZWY5ZWJmOWRlMTc4MDY2MApBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglXZWQgTWFyIDI2IDEzOjAyOjEzIDIwMDggKzAxMDAKCiAgICBBZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8gdHVybiBvZmYgT1NDIG91dHB1dAoKICAgIFRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBSVEMgRFMxMzM3IGtlZXBzIHRoZSBPU0MKICAgIG91dHB1dCwgMzIsNzY4IEh6LCBvbi4gVGhpcyBhZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8KICAgIHR1cm4gaXQgb2ZmLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IDQzOGE0YzExMjYwYjRlYTk4MDUwMzliMGI0ZjkyZjlkZjUzMDZiMDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDExOjQ4OjQ2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZSwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjE4Y2E3MjRjMDhjYThhNjQ5ZjA5MTdjZjIwMWNmMjNkNGIzM2YzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTA6NDA6MTIgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNmI0NGUwZTRkMThmZTUwNzgzM2EwZjc2ZDI0YTlhYTcyYzEyM2YxCkF1dGhvcjogQXJhcyBWYWljaGFzIDxhcmFzdkBtYWd0ZWNoLmNvbS5hdT4KRGF0ZToJVHVlIE1hciAyNSAxMjowOTowNyAyMDA4ICsxMTAwCgogICAgVVNCIFN0b3JhZ2UsIGFkZCBtZWFuaW5nZnVsIHJldHVybiB2YWx1ZQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgInVzYiBzdG9yYWdlIiBjb21tYW5kIHRvIHJldHVybiBzdWNjZXNzIGlmIGl0CiAgICBmaW5kcyBhIFVTQiBzdG9yYWdlIGRldmljZSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxOGU2OWEzNWVmYmIwNzg0MDNkYjBjMDA2Mzk4NjQ3MGRhZDdkMDgyCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MTggMjAwOCArMDMwMAoKICAgIDgzeHgvZmR0X3N1cHBvcnQ6IGxldCB1c2VyIHNwZWNpZml5IEZTTCBVU0IgRHVhbC1Sb2xlIGNvbnRyb2xsZXIgcm9sZQoKICAgIExpbnV4IHVuZGVyc3RhbmRzICJob3N0IiAoZGVmYXVsdCksICJwZXJpcGhlcmFsIiBhbmQgIm90ZyIgKGJyb2tlbikuCiAgICBUaG91Z2gsIFUtQm9vdCBkb2Vzbid0IHJlc3RyaWN0IGRyX21vZGUgdmFyaWFibGUgdG8gdGhlc2UgdmFsdWVzICh0aGluawogICAgb2YgcmVuYW1lcyBpbiBmdXR1cmUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzYwNDc4M2IyMzZlMzY4ZjIyNWVmYjdiM2VmYjQxOGZlMjBiNDA0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MzAgMjAwOCArMDMwMAoKICAgIHRzZWM6IGZpeCBsaW5rIGRldGVjdGlvbiBmb3IgdGhlIFJUTDgyMTFCIFBIWQoKICAgIFJUTDgyMTFCIHNldHMgbGluayBzdGF0ZSByZWdpc3RlciBhZnRlciBhdXRvbmVnb3RpYXRpb24gY29tcGxldGUsCiAgICBzbyB3aXRoIGJvb3RkZWxheT0wIFJUTDgyMTFCIHdpbGwgcmVwb3J0IGxhY2sgb2YgdGhlIGxpbmsuCgogICAgVG8gZml4IHRoaXMsIHdlIHNob3VsZCB3YWl0IGZvciBhbmVnIHRvIGNvbXBsZXRlLCBldmVuIGlmIHRoZQogICAgbGluayBpcyBjdXJyZW50bHkgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ZhOWNiYjAwZGM4M2ZjZjE3NTA0MmI2ZjIwYzJjOWJjZTlhMTVmNApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA5IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBhZGQgImZzbCxzb2MiIGFuZCAiZnNsLGltbXIiIGNvbXBhdGlibGUgZml4dXBzCgogICAgZGV2aWNlX3R5cGUgPSAic29jIiBpcyBiZWluZyBkZXByZWNhdGVkLCBuZXdlciBkZXZpY2UgdHJlZXMgd2lsbCB1c2UKICAgICJmc2wsc29jIiBhbmQvb3IgImZzbCxpbW1yIiBmb3IgdGhlIHNvYyBub2Rlcy4KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBjbG9jay1mcmVxdWVuY3kgcHJvcGVydHkgZm9yIHNvYyBub2RlcyAodGhlIHNhbWUKICAgIHZhbHVlIGFzIGJ1cy1mcmVxdWVuY3kpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDUwN2UyZDc5YzkxNDQxYTBiYjJjZDNkMGMzMWM4YmZlM2Y4Y2VjMDcKQXV0aG9yOiBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEzOjAwOjU5IDIwMDggLTA0MDAKCiAgICBNb2RpZmllZCB0aGUgRERSIFNEUkFNIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXIgdG8gZGVsYXkgTUNLL01DS19CIDMvNCBjbG9jawoKICAgIFdpdGggdGhlIG9yaWdpbmFsIHZhbHVlIG9mIDEvMiBjbG9jayBjeWNsZSBkZWxheSwgdGhlIHN5c3RlbSByYW4gcmVsYXRpdmVseQogICAgc3RhYmxlIGV4Y2VwdCB3aGVuIHdlIHJ1biBiZW5jaG1hcmtzIHRoYXQgYXJlIGludGVuc2l2ZSB1c2VycyBvZiBtZW1vcnkuCiAgICBXaGVuIEkgcnVuIHNhbWJhIGNvbm5lY3RlZCBkaXNrIHdpdGggYSBIREJFTkNIIHRlc3QsIHRoZSBzeXN0ZW0gbG9ja3MtdXAKICAgIG9yIHJlYm9vdHMgc3BvcmFkaWNhbGx5LgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBEJ0FiYnJhY2NpbyA8Sm9lLkQnYWJicmFjY2lvQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTdiYTMyZDQ4MGE4NmRiNWRiOGRjZDhjYTY2YjIxYjRjYWRkYTkyMwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEyOjQ0OjEzIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBTZXQgUENJIEkvTyBidXMtYWRkcmVzcyBiYXNlIHRvIHplcm8uCgogICAgVGhlIGRldmljZSB0cmVlcyBmb3IgdGhlc2UgYm9hcmRzIGRlc2NyaWJlIFBDSSBJL08gYXMgc3RhcnRpbmcgZnJvbQogICAgYWRkcmVzcyB6ZXJvIGZyb20gdGhlIGRldmljZSdzIHBlcnNwZWN0aXZlLgoKICAgIFBsYWNpbmcgSS9PIGVsc2V3aGVyZSBtYXkgY2F1c2UgcHJvYmxlbXMgd2l0aCBjZXJ0YWluIFBDSSBib2FyZHMsIGFuZCBtYXkKICAgIGNhdXNlIHByb2JsZW1zIHdpdGggTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjcwMGU3ZGY3ZmVjZjJkMzc2NWFlNTY4Y2U3N2NlNzg4Y2RlNGYzZQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA1IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IHVzZSAzMy4zKDMpTUh6IENMS0lOL1NZU19DTEsKCiAgICBBdCBsZWFzdCBvbiB0aGUgIjMzTUh6IFBpbG90IiBib2FyZCBjcnlzdGFsIGlzIGFjdHVhbGx5IDMzLjNNSHouCiAgICBUaGlzIHBhdGNoIGZpeGVzICJzeXN0ZW0gdGltZSBkcmlmdGluZyIgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAzYTBjZmRkNTc2ZGM5YjE2ZDE0NjhkMzczMzkxODI2MDdjNjk3ZmI3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDc6MDIgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCgogICAgVGhpcyBpcyBuZWVkZWQgdG8gdXBkYXRlIC9jaG9vc2VuL2xpbnV4LHN0ZG91dC1wYXRoIHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDM0MTllYjYyZjA4OGQ3YTIyZjFkMmEzY2ViZjc2Yjc3ZTQwOGI1YjkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NzowMCAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBhZGQgZGhjcCBjb21tYW5kCgogICAgUGx1cyBtb2RpZnkgZW52aXJvbm1lbnQgdG8gdXNlIGl0IGFuZCByZW1vdmUgYm9vdGZpbGUgZW52IHZhcmlhYmxlLAogICAgaXQgaXMgaW50ZXJuYWwgYW5kIENPTkZJR19CT09URklMRSBpcyB1c2VkIGZvciB0aGVzZSBwdXJwb3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBkODkyYjJkYmI0MDg3YTI2Nzc4YmZkNDI0NzBjM2VhN2QwZTJiNmFhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTcgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogcmV3b3JrIGRkciBzZXR1cCwgZW5hYmxlIGVjYwoKICAgIEN1cnJlbnQgRERSIHNldHVwIGVhc2lseSBjYXVzZXMgbWVtb3J5IGNvcnJ1cHRpb24sIHRoaXMgcGF0Y2ggZml4ZXMgaXQuCgogICAgQWxzbyBmaXggVElNSU5HX0NGRzBfTVJTX0NZQyBkZWZpbml0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGQ0N2Q0OWNjMzdhMzhmMjcxOWEzZTFiOWJiZTA4YWM4MTBjZjJkOWEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0Njo1MyAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBjb25maWd1cmUgcGFyaW8gcGlucyBmb3IgQUQ3ODQzIGFuZCBGSENJCgogICAgVGhpcyBwYXRjaCBhZGRzIHFlIHBhcmlvIHBpbnMgY29uZmlndXJhdGlvbiBmb3IgQUQ3ODQzIEFEQy9Ub3VjaHNjcmVlbgogICAgY29udHJvbGxlciBhbmQgRkhDSSAoUUUgVVNCKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA3YWQ5NTk0OTA5NjJlNjg0MjY0OGQ4N2Q0YmQ3OTVlYTZjZGNjZTY3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTEgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogYWRkIHN1cHBvcnQgZm9yIE5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA5YTNlODMyYWViNDkxODYxZDAyOTk5MTI0MTU3MmViZGY0YjViNjFiCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NDYgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogdXNlIFJHTUlJX1JYSUQgaW50ZXJmYWNlIG1vZGUKCiAgICBUaGlzIGlzIG5lZWRlZCBmb3IgQkNNIFBIWXMgdG8gd29yayBvbiB0aGlzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDMwMDYxNWRjNWQ5YjBhMjAyMmZiYzZhZjBjMTMxNTllMzNmZDc1MmUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjozNCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgQnJvYWRjb20gQkNNNTQ4MSBHaWdhYml0IFBIWQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciBCcm9hZGNvbSBCQ001NDgxIFBIWS4KCiAgICBSWEQtUlhDIGRlbGF5IHF1aXJrIGNvbWVzIGZyb20gTVBDODM2MEUtUkRLIEJTUCBzb3VyY2UsIGF1dGhvciBpcwogICAgUGV0ZXIgQmFyYWRhIDxwZXRlcmJAbG9naWNwZC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDZhNjAwYzNhMTg3NmJjMjAzNDQ1ZGY0ZjBmZDZiMTI2NDgyNTk2NjYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjoyOCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgUkdNSUlfUlhJRCBpbnRlcmZhY2UgbW9kZQoKICAgIFBIWSBkcml2ZXJzIHdpbGwgdXNlIGl0IHRvIHNldHVwIHNvZnR3YXJlIGRlbGF5IGJldHdlZW4gUlhEIGFuZCBSWEMKICAgIHNpZ25hbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgOTFjZGFhM2E5ZDc1NjJiODY5ZDk2Nzc0ZTljOWRkZjE0MmMwODQ4ZApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjI0IDIwMDggKzAzMDAKCiAgICB1ZWM6IGFkZCBzdXBwb3J0IGZvciBnYml0IG1paSBzdGF0dXMgcmVhZGluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBhYWJjZTdmYjUwNWZmZTU1ZWJmM2JmNGRjYWZkYWU5N2E1ODE1NThkCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTc6NDA6NDcgMjAwOCArMDMwMAoKICAgIDgzeHg6IGRlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUyBmb3IgdGhlIE1QQzgzN1hFUkRCIGJvYXJkcwoKICAgIFRoaXMgaXMgcHJpbWFyaWx5IGZvciB0aGUgZWFybHkgY29uc29sZSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDJiZDc0NjBlOTI4M2VjOTg1NjUxODliM2NkYmNmYjJiY2RjZGQ2MzUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDo0MyAyMDA4ICswMzAwCgogICAgODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgT24gdGhlIE1QQzgzNzdFUkRCOiAyIFNBVEEgYW5kIDIgUENJLUUuCiAgICBPbiB0aGUgTVBDODM3OEVSREI6IDIgUENJLUUKICAgIE9uIHRoZSBNUEM4Mzc5RVJEQjogNCBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDUzMzE2YTJhMTk2NDJkOGFmY2JjYTc0NTJlNDBhNmI0NGExOTdiMQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjMyIDIwMDggKzAzMDAKCiAgICA4M3h4OiBzZXJkZXMgc2V0dXAgcm91dGluZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgZmV3IHJvdXRpbmVzIHRvIGNvbmZpZ3VyZSBzZXJkZXMgb24gODM3eCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGE3OTZjZGY5YzM3N2NiNGU1ZDYxZDEwNzlhMjk2NjA4ZjhmYmQ5MDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDoyNyAyMDA4ICswMzAwCgogICAgODN4eDogc3BsaXQgQ09CSlMgb250byBzZXBhcmF0ZSBsaW5lcwoKICAgIC4ucGx1cyBnZXQgcmlkIG9mIHNvbWUgI2lmZGVmcyBpbiB0aGUgLmMgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDZhM2FlZWE3M2MxM2FiMDRlYmY3YTg3MzlhZmI4N2FjNWRhOTRhMwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjIzIDIwMDggKzAzMDAKCiAgICA4M3h4OiBuYW5kIHN1cHBvcnQgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgODJlNDVhMjA0MTkwNTkzZTg2MTMxNDVhOTI4Zjk5OGZiOGM5MDljNApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAyMTo0NDo0MSAyMDA4IC0wNDAwCgogICAgRW5hYmxlIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIG9uIHRoZSBNUEM4MzYwRU1EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZmE3YTFiNDcxOWUzMjVmY2UzMzI2ODlmYjg3NTRlYzE2NjE5MWZmCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MzkgMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiByZW1vdmUgUlRDIGFuZCBhZGQgRUVQUk9NCgogICAgVGhlcmUncyBubyBvbi1ib2FyZCBSVEMgb24gdGhlIE1QQzgzMjNFUkRCLCBidXQgdGhlcmUgaXMgYW4gRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWJiZWVhODZlYjZhZmI4NzIzNzRjZDIzMjE3Y2IzYzEwMTg0NDNlZApBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDIwIDEzOjE1OjM0IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogSW1wcm92ZSB0aGUgc3lzdGVtIHBlcmZvcm1hbmNlCgogICAgVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFyZSBiYXNlZCBvbiBrZXJuZWwgVUNDIGV0aGVybmV0IHBlcmZvcm1hbmNlOgoKICAgIDEuCU1ha2UgdGhlIENTQiBidXMgcGlwZWxpbmUgZGVwdGggYXMgNCwgYW5kIGVuYWJsZSB0aGUgcmVwZWF0IG1vZGUKICAgIDIuCU9wdGltaXplIHRyYW5zYWN0aW9ucyBiZXR3ZWVuIFFFIGFuZCBDU0IuICBBZGRlZCBDRkdfU1BDUl9PUFQKCXN3aXRjaCB0byBlbmFibGUgdGhpcyBzZXR0aW5nLgoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgYmFzZWQgb24gdGhlIEFwcCBOb3RlIEFOMzM2OSBhbmQKICAgIHZlcmlmaWVkIHRvIGltcHJvdmUgbWVtb3J5IGxhdGVuY3kgdXNpbmcgTE1iZW5jaDoKCiAgICAzLglDUzBfQ09ORklHW0FQX25fRU5dIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDAKICAgIDQuCUNTMF9DT05GSUdbT0RUX1dSX0NPTkZJR10gc2V0IHRvIDEuICBXYXMgYSByZXNlcnZlZCBzZXR0aW5nCglwcmV2aW91c2x5LgogICAgNS4JVElNSU5HX0NGR18xW1dSUkVDXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MgIChiYXNlZCBvbgoJVHdyPTE1bnMsIGFuZCB0aGlzIHdhcyBhbHJlYWR5IHRoZSBzZXR0aW5nIGluIEREUl9NT0RFKQogICAgNi4JVElNSU5HX0NGR18xW1BSRVRPQUNUXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MuIChiYXNlZCBvbgoJVHJwPTE1bnMpCiAgICA3LglUSU1JTkdfQ0ZHXzFbQUNUVE9QUkVdIGlzIGNoYW5nZWQgZnJvbSA5Y2xrcyB0byA2Y2xrcy4gKGJhc2VkIG9uCglUcmFzPTQwbnMpCiAgICA4LglUSU1JTkdfQ0ZHXzFbQUNUVE9SV10gaXMgY2hhbmdlZCBmcm9tIDNjbGtzIHRvIDJjbGtzLiAoYmFzZWQgb24KCVRyY2Q9MTVucykKICAgIDkuCVRJTUlOR19DRkdfMVtSRUZSRUNdIGNoYW5nZWQgZnJvbSAyMSBjbGtzIHRvIDExY2xrcy4gIChiYXNlZCBvbgoJVHJmYz03NW5zKQogICAgMTAuIFRJTUlOR19DRkdfMltGT1VSX0FDVF0gaXMgY2hhbmdlZCBmcm9tIDEwIGNsa3MgdG8gN2Nsa3MuICAoYmFzZWQKCW9uIFRmYXc9NTBucykKICAgIDExLiBUSU1JTkdfQ0ZHXzJbQUREX0xBVF0gYW5kIEREUl9NT0RFW0FMXSBjaGFuZ2VkIGZyb20gMCB0byAxIChiYXNlZAoJb24gQ0w9MyBhbmQgV0w9MikuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYzU0OWM4NzFmNDM5MzMzOTZhNWIzZTIxZDg5NzAyM2Q0YjMxYjhkCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MjggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiB1c2UgcmVhZGFibGUgRERSIGNvbmZpZyBtYWNyb3MKCiAgICBVc2UgYXZhaWxhYmxlIHNoaWZ0L21hc2sgbWFjcm9zIHRvIGRlZmluZSBERFIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5Yzc3ODRlZDkwYmE1MDMwMWVlYzUyMTE0NGY5NTExMWU0NzI5MDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDggMTM6MTU6NTUgMjAwOCAtMDYwMAoKICAgIDgzeHg6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVXBkYXRlIHRoZSBNUEM4MzQ5RS1tSVRYLCBNUEM4MzEzRS1SREIsIGFuZCBNUEM4MzdYRS1SREIgYm9hcmQgZmlsZXMgdG8gdXBsb2FkCiAgICB0aGUgVml0ZXNzZSBWU0M3Mzg1IGZpcm13YXJlLiAgQ2hhbmdlZCBDT05GSUdfVlNDNzM4NSB0byBDT05GSUdfVlNDNzM4NV9FTkVULgogICAgQ2xlYW5lZCB1cCB0aGUgYm9hcmQgaGVhZGVyIGZpbGVzIHRvIG1ha2Ugc2VsZWN0aW5nIHRoZSBWU0M3Mzg1IGVhc2llciB0bwogICAgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTVkOThjNmQ1Yjg2OTRlNTYwYTBlNzI3YjE0Y2I2OTIxZDdjZmNjCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDEzOjE1OjU0IDIwMDggLTA2MDAKCiAgICBORVQ6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVGhlIFZpdGVzc2UgVlNDNzM4NSBpcyBhIDUtcG9ydCBzd2l0Y2ggZm91bmQgb24gdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYCiAgICBhbmQgb3RoZXIgYm9hcmRzLiAgQSBzbWFsbCBmaXJ3bWFyZSBtdXN0IGJlIHVwbG9hZGVkIHRvIGl0cyBvbi1ib2FyZCBtZW1vcnkKICAgIGJlZm9yZSBpdCBjYW4gYmUgZW5hYmxlZC4gIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSB3aGljaCB1cGxvYWRzIGZpcm13YXJlCiAgICAoYnV0IG5vdCB0aGUgZmlybXdhcmUgaXRzZWxmKS4KCiAgICBQcmV2aW91c2x5LCB0aGlzIGZlYXR1cmUgd2FzIHByb3ZpZGVkIGJ5IGEgVS1Cb290IGFwcGxpY2F0aW9uIHRoYXQgd2FzCiAgICBtYWRlIGF2YWlsYWJsZSBvbmx5IG9uIEZyZWVzY2FsZSBCU1BzLiAgVGhlIFZTQzczODUgZmlybXdhcmUgbXVzdCBzdGlsbAogICAgYmUgb2J0YWluZWQgc2VwYXJhdGVseSwgYnV0IGF0IGxlYXN0IHRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIGEgc2VwYXJhdGUKICAgIGFwcGxpY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhYTZmNmQxNzFhMWY5ZjQ2ZWU0ZjAzYWQ2YWNiOTdhNmJmYjcxODU1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAwMDo1MjoxMCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFueXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQzZGRkOWM4MjBmZWM0NDgxNjE4OGY1MzM0NmI0NjRlMjBiMzE0MmQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVNhdCBNYXIgMjIgMTQ6MjM6NDkgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QKCiAgICBUaGVzZSBkZWZpbmVzIGVtYmVkZGVkIHRoZSB1LWJvb3QgZW52IHZhcmlhYmxlcyBhbmQvb3IgdGhlIGJkX3Qgc3RydWN0dXJlCiAgICBpbiB0aGUgZmR0IGJsb2IuICBUaGUgY29uY2x1c2lvbiBvZiBkaXNjdXNzaW9uIG9uIHRoZSB1LWJvb3QgZW1haWwgbGlzdAogICAgd2FzIHRoYXQgZW1iZWRkaW5nIHRoZXNlIGluIHRoZSBmZHQgYmxvYiBpcyBub3QgdXNlZnVsOiB0aGVyZSBhcmUgYmV0dGVyCiAgICB3YXlzIG9mIHBhc3NpbmcgdGhlIGRhdGEgKGluIGZhY3QsIHRoZSBmZHQgYmxvYiBpdHNlbGYgcmVwbGFjZXMgdGhlCiAgICBiZF90IHN0cnVjdCkuCgogICAgVGhlIG9ubHkgYm9hcmQgdGhhdCBlbmFibGVzIHRoZXNlIGlzIHRoZSBzdHh4dGMgYW5kIHRoZXkgZG9uJ3QgYXBwZWFyCiAgICB0byBiZSB1c2VkIGJ5IGxpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmVkMjI4NTc0MzM1OWZkMWZlNzNlNDExZGZmOTE0YjIyNTZlNjhmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE3IDEwOjQ5OjI1IDIwMDggKzAxMDAKCiAgICBydGM6IFJlbW92ZSAybmQgcmVmZXJlbmNlIHRvIG1heDY5MDAubyBpbiBkcml2ZXJzL3J0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmI3MDdjMzlhMDgzM2U5MWQ5Zjc5N2RkODYyYWFhYWY0YWYyNjRkCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBNYXIgMTcgMDg6NTQ6MDYgMjAwOCArMDkwMAoKICAgIEFkZCBGbGV4LU9uZU5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgRmxleC1PbmVOQU5EIGlzIGEgbW9ub2xpdGhpYyBpbnRlZ3JhdGVkIGNpcmN1aXQgd2l0aCBhIE5BTkQgRmxhc2ggYXJyYXkKICAgIHVzaW5nIGEgTk9SIEZsYXNoIGludGVyZmFjZS4gVGhpcyBvbi1jaGlwIGludGVncmF0aW9uIGVuYWJsZXMgc3lzdGVtIGRlc2lnbmVycwogICAgdG8gcmVkdWNlIGV4dGVybmFsIHN5c3RlbSBsb2dpYyBhbmQgdXNlIGhpZ2gtZGVuc2l0eSBOQU5EIEZsYXNoCiAgICBpbiBhcHBsaWNhdGlvbnMgdGhhdCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byB1c2UgbW9yZSBOT1IgY29tcG9uZW50cy4KCiAgICBGbGV4LU9uZU5BTkQgZW5hYmxlcyB1c2VycyB0byBjb25maWd1cmUgdG8gcGFydGl0aW9uIGl0IGludG8gU0xDIGFuZCBNTEMgYXJlYXMKICAgIGluIG1vcmUgZmxleGlibGUgd2F5LiBXaGlsZSBNTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgZGF0YQogICAgdGhhdCByZXF1aXJlIGxvdyByZWxpYWJpbGl0eSBhbmQgaGlnaCBkZW5zaXR5LCBTTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQKICAgIHRvIHN0b3JlIGRhdGEgdGhhdCBuZWVkIGhpZ2ggcmVsaWFiaWxpdHkgYW5kIGhpZ2ggcGVyZm9ybWFuY2UuIEZsZXgtT25lTkFORAogICAgY2FuIGxldCB1c2VycyB0YWtlIGFkdmFudGFnZSBvZiBzdG9yaW5nIHRoZXNlIHR3byBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YQogICAgaW50byBvbmUgY2hpcCwgd2hpY2ggaXMgbWFraW5nIEZsZXgtT25lTkFORCBtb3JlIGNvc3QtIGFuZCBzcGFjZS1lZmZlY3RpdmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBjNTEyMzg5Y2M0YTEwMjUzMjQ5MjcxZmY2Yzg4N2M2ZGFiMWYwZGIyCkF1dGhvcjogQW5kcsOpIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciAxMyAxMzo1MDo1MiAyMDA4ICswMTAwCgogICAgTVBDNTIwMDogc3VwcG9ydCBzZXR1cCB3aXRob3V0IEZFQwoKICAgIEluY2x1ZGUgRkVDIHNwZWNpZmljIG5vZGVzIGluIGZ0X2NwdV9zZXR1cCBvbmx5IGlmIENPTkZJR19NUEM1eHh4X0ZFQyBpcwogICAgZGVmaW5lZC4gU3lzdGVtcyB3aXRob3V0IEZFQywgaS5lLiBubyBGRUMgbm9kZSBpbiBEVEIsIHNob3VsZCBiZSBwb3NzaWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGFhMzUxMWU0MjI5NDYwNDFlZjYyNmY4MGEwNWFlNWU4YmZjNzAwZTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTg6MDU6NDYgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM4MjY2YWRzIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2YxZDg0NmU1YzU3NTQ0NDljMjg2NTg3ZDA5OWQ4NTI0NjA2Mjc3MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjdlMjRkMjgzZTM0NzI3YzJhNmNkZmRhYzJlMDlhNDI2YzU3OWI3MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NSAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjBhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YThhNWRjNDc1OTg2N2M0NWFhOTU1ODBkZWI4YmYyNjY2OWE1ZDk3CkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MzMgMjAwOCArMDkwMAoKICAgIG5ldDogQWRkIHN1cHBvcnQgQVg4ODc5NkwgZXRoZXJuZXQgZGV2aWNlCgogICAgQVg4ODc5NkwgaXMgZGV2aWNlIG9mIE5FMjAwMCBjb21wYXRpYmxlLgogICAgVGhpcyBwYXRjaCBzdXBwb3J0IEFYODg3OTZMIGV0aGVybmV0IGRldmljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGUwYTYxNDBkZDM4MWUxZWVkMWFkYTIyOTExNjZlZjI2MTZkODgyMmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDI1IDIyOjUwOjQxIDIwMDggKzAxMDAKCiAgICBuZTIwMDAgZHJpdmVyOiBjaGFuZ2UgI2lmZGVmIHRvIE1ha2VmaWxlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNzEwMTg1YWFlOTBjNjRkMzljMmQ0NTNlNDBlNThjZWVmZTRmMjUwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MjAgMjAwOCArMDkwMAoKICAgIG5ldDogRGl2aWRlZCBjb2RlIG9mIE5FMjAwMCBldGhlcm5ldCBkcml2ZXIKCiAgICBUaGVyZSBhcmUgbW9yZSBkZXZpY2VzIG9mIHRoZSBORTIwMDAgYmFzZS4KICAgIEEgcHJlc2VudCBjb2RlIGlzIGRpZmZpY3VsdCBmb3IgdXMgdG8gc3VwcG9ydCBtb3JlIGRldmljZXMuCiAgICBUbyBzdXBwb3J0IG1vcmUgTkUyMDAwIGNsb25lIGRldmljZXMsIHNlcGFyYXRlZCB0aGUgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzOTViY2U0ZjU5YTUwN2E2MGE0NzVmN2VlNDZiZWQ0N2RlOTQ4MmRmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjU4OjEzIDIwMDggLTA1MDAKCiAgICBuZXQvQmxhY2tmaW46IG1vdmUgb24tY2hpcCBNQUMgZHJpdmVyIGludG8gZHJpdmVycy9uZXQvCgogICAgVGhlIEJsYWNrZmluIG9uLWNoaXAgTUFDIGRyaXZlciB3YXMgYmVpbmcgbWFuYWdlZCBpbiB0aGUgQkY1MzctU1RBTVAgYm9hcmQKICAgIGRpcmVjdG9yeSwgYnV0IGl0IGlzIG5vdCBib2FyZCBzcGVjaWZpYywgc28gcmVsb2NhdGUgaXQgdG8gdGhlIGRyaXZlcnMgZGlyCiAgICBzbyB0aGF0IG90aGVyIEJsYWNrZmluIHBvcnRzIGNhbiB1dGlsaXplIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4YTMwYjQ3MDA5NDJmMzc0OTVkMmU2N2Y1OTk4Y2RmZmI2ZTNiYThhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjUyOjM1IDIwMDggLTA1MDAKCiAgICBzbWM5MTExMTogdXNlIFNTWU5DKCkgcmF0aGVyIHRoYW4gYXNtKHNzeW5jKSBmb3IgQmxhY2tmaW4KCiAgICBTaW5jZSB0aGUgInNzeW5jIiBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBoYXJkd2FyZSBhbm9tYWxpZXMgYXNzb2NpYXRlZCB3aXRoCiAgICBpdCwgaGF2ZSB0aGUgc21jOTExMTEgZHJpdmVyIHVzZSB0aGUgU1NZTkMgbWFjcm8gcmF0aGVyIHRoYW4gaW52b2tpbmcgaXQKICAgIGRpcmVjdGx5LiAgV2Ugd29ya2Fyb3VuZCBhbGwgdGhlIGFub21hbGllcyB2aWEgdGhpcyBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzdmZjdiNzQ0NGNlYjgwMjJiNDYxMTRmM2QwYjZkMThlMmZkMTEzOApBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1Nzo0NyAyMDA4ICswMDAwCgogICAgOHh4OiBVcGRhdGUgT0Ygc3VwcG9ydCBvbiA4eHgKCiAgICBUaGlzIHBhdGNoIGRvZXMgc29tZSBzaGlmdGluZyBhcm91bmQgb2YgT0Ygc3VwcG9ydCBvbiA4eHguCgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IDljNjY2YTdkYjBiMjI4NWEyNzBjNjg4MTA4ODljZTdkNWRiYTMwNGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDE1IDE1OjE2OjE4IDIwMDggLTA2MDAKCiAgICBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGhvdyBtdWNoIG1lbW9yeSB0aGV5IGNhbiBtYXAKCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIHdlIGxpbWl0ZWQgdGhlIHN0YWNrIHRvIDI1Nk0gYmVjYXVzZSBzb21lIGJvYXJkcwogICAgY291bGQgb25seSBtYXAgdGhhdCBtdWNoIHZpYSBCQVRTLglIb3dldmVyIG5ld2VyIGJvYXJkcyBhcmUgY2FwYWJsZSBvZgogICAgbWFwcGluZyBtb3JlIG1lbW9yeSAoZm9yIGV4YW1wbGUgODV4eCBpcyBjYXBibGUgb2YgZG9pbmcgdXAgdG8gMkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTZmNWYzMTdjZDA3NGJiYmZhMmFhYjRmY2EwNTkwNGM4MTFjMTlmYgpBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJRnJpIEZlYiAxNSAwMTowNTo1OCAyMDA4ICswMDAwCgogICAgOHh4IDogQWRkIE9GIHN1cHBvcnQgdG8gQWRkZXI4NzUgYm9hcmQgcG9ydCAtIHJlc3VibWl0CgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IGQwNTg2OThmZDJkOWY3NjlmZjM4YWM1M2M4NzA4YjNmZGQzMTRmMmQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgRmViIDE0IDIwOjQ0OjQyIDIwMDggLTA2MDAKCiAgICBBZGQgc2V0ZXhwciBjb21tYW5kCgogICAgQWRkIGEgc2ltcGxlIGV4cHIgc3R5bGUgY29tbWFuZCB0aGF0IHdpbGwgc2V0IGFuIGVudiB2YXJpYWJsZSBhcyB0aGUgcmVzdWx0CiAgICBvZiB0aGUgY29tbWFuZC4gIFRoaXMgYWxsb3dzIHVzIHRvIGRvIHNpbXBsZSBtYXRoIGluIHNoZWxsLiAgVGhlIGZvbGxvd2luZwogICAgb3BlcmF0aW9ucyBhcmUgc3VwcG9ydGVkOiAmLCB8LCBeLCArLCAtLCAqLCAvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2YxMDVmYWE2NGI5ODI2ZTA4ODcxMWZkZmNhYTcwY2IxMjMwMzk3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyNzo0OCAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ5YzcwMzM3NGE4ODY4NDUzNDI1ZTE1ZGE3ZTJmNzYyMjFiNzJlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyMTo0MyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjZhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ODYzNTc3OTg5YWQ2ODk0MjdiYjc1MDEwN2U5YTc1ZjFjMTY0NWQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE2OjQxOjQxIDIwMDggLTA2MDAKCiAgICBGU0w6IE1vdmUgYm9hcmQvbXBjODI2MGFkcyB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhNzczOTgzOTU3ZWU2YzRhYTM0NDQ2OWI3NDJmMjljN2QyNmFmYmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA4IDIwMDggKzA5MDAKCiAgICBbTUlQU10gTW92ZSBndGgyX2NvbmZpZyBmcm9tIEFSTSBzZWN0aW9uIHRvIE1JUFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDM3M2IxNmZjMGM1YWUzNGQyOGI5MDI3ZjgwOWFlM2NiZjQ1Y2RkMTUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRXh0ZW5kIE1JUFNfTUFYX0NBQ0hFX1NJWkUgdXB0byA2NGtCCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkOThlMzQ4ZTJlZDVhYWI4ZjdhNjQ3MWZmNjI4YWIwNjg4YjhhNDU5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEZpeCBkY2FjaGVfc3RhdHVzKCkKCiAgICBZb3UgY2FuJ3QganVkZ2UgVU5DQUNIRUQgYnkgQ29uZmlnLkswIExTQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGIwYzY2YWY1M2VjOTM4NWFjMmQxY2MyZTVkN2QxZWNkYzgxY2FmMzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSW50cm9kdWNlIF9tYWNoaW5lX3Jlc3RhcnQKCiAgICBIYW5kbGVzIG1hY2hpbmUgc3BlY2lmaWMgZnVuY3Rpb25zIGJ5IHVzaW5nIHdlYWsgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGVjYWJhNmY1Y2YzODZkNTY5YWMzOTk3YmViYjg3MWI5NjZjNmIxOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBDbGVhbnVwIENQMCBTdGF0dXMgaW5pdGlhbGl6YXRpb24KCiAgICBBZGQgc2V0dXBfYzBfc3RhdHVzIGZyb20gTGludXguIEZvciB0aGUgbW9tZW50IHdlIGRpc2FibGUgaW50ZXJydXB0cywgc2V0CiAgICBDVTAsIG1hcmsgdGhlIGtlcm5lbCBtb2RlLCBhbmQgY2xlYXIgRVJMIGFuZCBFWEwuIFRoaXMgaXMgZ29vZCBlbm91Z2ggZm9yCiAgICByZXNldC10aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHdpbGwgd29yayB3ZWxsIGFjcm9zcyBtb3N0IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkNDNkNDNlZjI4NDVhZjMwOWMyNWE2NGJiOWMyYzVmYjMyNjFiYzIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEluaXRpYWxpemUgQ1AwIENhdXNlIGJlZm9yZSBzZXR0aW5nIHVwIENQMCBTdGF0dXMgcmVnaXN0ZXIKCiAgICBXaXRob3V0IHRoaXMgY2hhbmdlLCB3ZSdsbCBiZSBzdWZmZXJpbmcgZnJvbSBkZWZmZXJlZCBXQVRDSCBleGNlcHRpb24KICAgIG9uY2UgU3RhdHVzLkVYTCBpcyBjbGVhcmVkLiBNYWtlIHN1cmUgQ2F1c2UuV1AgaXMgY2xlYXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDI2MTM4NjIzMjMwY2EyYmFkM2M3OGUwNWE2NTUyN2VhNzBjOGI2ODgKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSU5DQS1JUDogTW92ZSB3YXRjaGRvZyBpbml0IGNvZGUgZnJvbSBzdGFydC5TIHRvIGxvd2xldmVsX2luaXQoKQoKICAgIE1vdmUgdGhpbmdzIHRvIGFwcHJvcHJpYXRlIHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgY2NmOGY4MjRlZjY3ZGYwMjhkZWRiMjlmOGVhNWQ3MWE1YTg4ZDg5NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBJbXBsZW1lbnQgZmx1c2hfY2FjaGUoKQoKICAgIFdlIGRvIEhpdF9Xcml0ZWJhY2tfSW52X0QgYW5kIEhpdF9JbnZhbGlkYXRlX0kuIFlvdSBtaWdodCB0aGluayB0aGF0IHlvdQogICAgZG9uJ3QgbmVlZCB0byBkbyBIaXRfSW52YWxpZGF0ZV9JLCBidXQgZmx1c2hfY2FjaGUoKSBuZWVkcyBpdCBzaW5jZSB0aGlzCiAgICBmdW5jdGlvbiBpcyB1c2VkIG5vdCBvbmx5IGluIFUtQm9vdCBzcGVjZmljIHByb2dyYW1zIGJ1dCBhbHNvIGF0IGxvYWRpbmcKICAgIHRhcmdldCBiaW5hcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlMGU1MjcxYWFjOTE3ODEyYTc2YzcyMDMwYTJiMmM2ZjFkMzM4N2QKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA2IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRml4IEktL0QtY2FjaGUgaW5pdGlhbGl6YXRpb24gbG9vcHMKCiAgICBDdXJyZW50bHkgd2UgZG8gMSkgSW5kZXhfU3RvcmVfVGFnX0ksIDIpIEZpbGwgYW5kIDMpIEluZGV4X1N0b3JlX1RhZ19JCiAgICBhZ2FpbiBwZXIgYSBsb29wIGZvciBJLWNhY2hlIGluaXRpYWxpemF0aW9uLiBCdXQgYWNjb3JkaW5nIHRvICdTZWUgTUlQUwogICAgUnVuJywgd2UncmUgZW5jb3VyYWdlZCB0byB1c2UgdGhyZWUgc2VwYXJhdGUgbG9vcHMgcmF0aGVyIHRoYW4gY29tYmluaW5nCiAgICB0aGVtICpmb3IgYm90aCBJLSBhbmQgRC1jYWNoZSouIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoaXMuCgogICAgSW4gYWNjb3JkYW5jZSB3aXRoIGZpeGluZyBhYm92ZSwgbWlwc19pbml0X1tpZF1jYWNoZSBhcmUgc2VwYXJhdGVkIGZyb20KICAgIG1pcHNfY2FjaGVfcmVzZXQoKSwgYW5kIHJld3JpdGUgY2FjaGUgbG9vcHMgYXJlIGNvbXBsZXRlbHkgcmV3cml0dGVuIHdpdGgKICAgIHVzZWZ1bCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxODk4ODQwNzk3YzdmNTA3OTkzNzdiZDViMjg1YThhOTNhODJjNDE5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNiAyMDA4ICswOTAwCgogICAgW01JUFNdIFJlcGxhY2UgbWVtb3J5IGNsZWFyYW5jZSBjb2RlIHdpdGggZl9maWxsNjQKCiAgICBUaGlzIHJvdXRpbmUgZmlsbHMgbWVtb3J5IHdpdGggemVybyBieSA2NCBieXRlcywgYW5kIGlzIDY0LWJpdCBjYXBhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMmY1ZDQxNGNjYjQwMjRkZDA5OTJmZjZiMjI1NjE3MzJkYmM3MzU5MApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9jYWNoZS5TOiBJbnRyb2R1Y2UgTkVTVEVEL0xFQUYvRU5EIG1hY3JvcwoKICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIGN1cnJlbnQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgd2l0aCBORVNURUQsIExFQUYKICAgIGFuZCBFTkQgbWFjcm8uIFRoZXkgc3BlY2lmeSBzb21lIG1vcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICAgIGZ1bmN0aW9uOyBhbiBhbGlnbm1lbnQgb2Ygc3ltYm9sLCB0eXBlIG9mIHN5bWJvbCwgc3RhY2sgZnJhbWUgdXNhZ2UsIGV0Yy4KICAgIFRoZXNlIGluZm9ybWF0aW9uIGV4cGxpY2l0bHkgdGVsbHMgdGhlIGFzc2VtYmxlciBhbmQgdGhlIGRlYnVnZ2VyIGFib3V0CiAgICB0aGUgdHlwZXMgb2YgY29kZSB3ZSB3YW50IHRvIGdlbmVyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjgyMjIzYTYwN2M2MTE0MjVmYTMzZjU0MjhmOGVhZTY2MzY5NzJiYgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMTE6NDM6MTcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBhc20gaGVhZGVycycgdXBkYXRlcwoKICAgIE1ha2Ugc29tZSBhc20gaGVhZGVycyBhZGp1c3RlZCB0byB0aGUgbGF0ZXN0IExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGUxMzkwODAxYTNjMWEyYjZkMTJmYTkwYmUzNjhlZmMxOWY1YjliZmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDExOjM5OjI5IDIwMDggKzA5MDAKCiAgICBbTUlQU10gUmVxdWVzdCBmb3IgdGhlICdtaXBzX2NhY2hlX2xvY2soKScgcmVtb3ZhbAoKICAgIFRoZSBpbml0aWFsIGludGVuc2lvbiBvZiBoYXZpbmcgbWlwc19jYWNoZV9sb2NrKCkgd2FzIHRvIHVzZSB0aGUgY2FjaGUKICAgIGFzIG1lbW9yeSBmb3IgdGVtcG9yYXJ5IHN0YWNrIHVzZSBzbyB0aGF0IGEgQyBlbnZpcm9ubWVudCBjYW4gYmUgc2V0IHVwCiAgICBhcyBlYXJseSBhcyBwb3NzaWJsZS4KCiAgICBCdXQgbm93IG1pcHNfY2FjaGVfbG9jaygpIGZvbGxvdyBsb3dsZXZlbF9pbml0KCkuIFdlJ3ZlIGFscmVhZHkgaGF2ZSB0aGUKICAgIHJlYWwgbWVtb3J5IGluaXRpbGFpemVkIGF0IHRoaXMgcG9pbnQsIHRoZXJlZm9yZSB3ZSBjb3VsZC9zaG91bGQgdXNlIGl0LgogICAgTm8gcmVhc29uIHRvIGxvY2sgYXQgYWxsLgoKICAgIE90aGVyIHByb2JsZW1zOgoKICAgIENhY2hlIGxvY2tpbmcgaXMgbm90IGNvbnNpc3RlbnQgYWNyb3NzIE1JUFMgaW1wbGVtZW50YWlvbnMuIFNvbWUgaW1wbGUtCiAgICBtZW50YXRpb25zIGRvbid0IHN1cHBvcnQgbG9ja2luZyBhdCBhbGwuIFRoZSBzdHlsZSBvZiBsb2NraW5nIHZhcmllcyAtCiAgICBzb21lIHN1cHBvcnQgcGVyIGxpbmUgbG9ja2luZywgb3RoZXJzIHBlciB3YXksIGV0Yy4gU29tZSBwYXJ0cyB1c2UgYml0cwogICAgaW4gc3RhdHVzIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIGNhY2hlIG9wcy4gQ3VycmVudCBtaXBzX2NhY2hlX2xvY2soKSBpcwogICAgbm90IG5lY2Vzc2FyaWx5IGdlbmVyYWwtcHVycG9zZS4KCiAgICBBbmQgdGhpcyBpcyB3b3J0aHkgb2Ygc3BlY2lhbCBtZW50aW9uOyBvbmNlIFUtQm9vdC9NSVBTIGxvY2tzIHRoZSBsaW5lcywKICAgIHRoZXkgYXJlIG5ldmVyIGdldCB1bmxvY2tlZCwgc28gdGhlIGNvZGUgcmVsaWVzIG9uIHdoYXRldmVyIGdldHMgbG9hZGVkCiAgICBhZnRlciBVLUJvb3QgdG8gcmUtaW5pdGlhbGl6ZSB0aGUgY2FjaGUgYW5kIGNsZWFyIHRoZSBsb2Nrcy4gV2UncmUgc3VwLQogICAgcG9zZWQgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DSyBhbmQgdW5sb2NrX3JhbV9pbl9jYWNoZSgpIGltcGxlbWVudGVkLAogICAgYnV0IGxlYXZlIHRoZSBzaXR1YXRpb24gYXMgaXQgaXMgZm9yIGEgbG9uZyB0aW1lLgoKICAgIEZvciB0aGVzZSByZWFzb25zLCBJIHByb3Bvc2VkIHRoZSByZW1vdmFsIG9mIG1pcHNfY2FjaGVfbG9jaygpIGZyb20gdGhlCiAgICBnbG9iYWwgc3RhcnQtdXAgY29kZS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUyB0byBtYWtlIGV4aXN0aW5nIHVzZXJzIGF3YXJlIHRoYXQKICAgICp0aGluZ3MgaGF2ZSBjaGFuZ2VkKi4gSWYgaGUgd2FudHMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgYmVmb3JlLCBoZSBuZWVkcwogICAgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DS19NSVBTIGluIGhpcyBjb25maWcgZmlsZS4KCiAgICBJZiB3ZSBkb24ndCBoYXZlIGFueSByZWdyZXNzaW9uIHJlcG9ydCB0aHJvdWdoIHNldmVyYWwgcmVsZWFzZXMsIHRoZW4KICAgIHdlJ2xsIHJlbW92ZSBjb2RlcyBlbnRpcmVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgQWNrZWQtYnk6IEFuZHJldyBEeWVyIDxhbWR5ZXJAZ21haWwuY29tPgoKY29tbWl0IDBkNDg5MjZjODdlYzk2Zjk3NGE2YWM0MDM0ZjRhMmYyZWFiMzI1NWYKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTE6MzA6NTQgMjAwOCArMDEwMAoKICAgIGx3bW9uNSBTWVNNT04gUE9TVDogZml4IGJhY2tsaWdodCBjb250cm9sCgogICAgSWYgdGhlIExXTU9ONSBjb25maWcgaGFzIFNZU01PTiBQT1NUIGFtb25nIENPTkZJR19QT1NUcyB3aGljaCBtYXkgYmUKICAgIHJ1biBvbiB0aGUgYm9hcmQsIHRoZW4gdGhlIFNZU01PTiBQT1NUIGNvbnRyb2xzIHRoZSBkaXNwbGF5IGJhY2tsaWdodAogICAgKGRvZXNuJ3Qgc3dpdGNoIGJhY2tsaWdodCBPTiBpZiBQT1NUIEZBSUxFRCwgYW5kIGRvZXMgc3dpdGNoIHRoZQogICAgYmFja2xpZ2h0IE9OIGlmIFBBU1NFRCkuCgogICAgSWYgbm90LCB0aGVuIHRoZSB2aWRlbyBkcml2ZXIgY29udHJvbHMgdGhlIGRpc3BsYXkgYmFja2xpZ2h0IChqdXN0CiAgICBzd2l0Y2ggT04gdGhlIGJhY2tsaWdodCB1cG9uIGluaXRpYWxpemF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZmYyYmRmYjJjMWUwNzNmNjVjMDY1MDExZjFlMThkMGExMzBiZDNkOApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxMToyOToxNCAyMDA4ICswMTAwCgogICAgbHdtb241IFNZU01PTiBQT1NUOiBmaXggaGFuZGxpbmcgb2YgbmVnYXRpdmUgdGVtcGVyYXR1cmVzCgogICAgRml4IGVycm9ycyBpbiB0aGUgTFdNT041IFN5c21vbiBQT1NUIGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBNYXIgNyAxNjowNDoyNSAyMDA4ICswOTAwCgogICAgcGNpOiBBZGQgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIGNvbmZpZyBvcHRpb24KCiAgICBJbiBjdXJyZW50IHNvdXJjZSBjb2RlLCB3aGVuIHRoZSBkZXZpY2UgbnVtYmVyIG9mIFBDSSBpcyAwLCBwcm9jZXNzIFBDSQogICAgYnJpZGdlIHdpdGhvdXQgZmFpbC4gSG93ZXZlciwgd2hlbiB0aGUgZGV2aWNlIG51bWJlciBpcyAwLCBpdCBpcyBub3QgUENJCiAgICBhbHdheXMgYnJpZGdlLiBUaGVyZSBhcmUgdGltZXMgd2hlbiBkZXZpY2Ugb2YgUENJIGFsbG9jYXRlcy4KCiAgICBXaGVuIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpcyBlbmFibGUsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQgd2hlbgogICAgdXNlIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NmFlYTNlYWVmYTI0OGZmYjkzMjhlMmI1MGM2NDcyMDQ4OWNkYmViCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgTWFyIDIxIDA5OjE4OjQwIDIwMDggKzAxMDAKCiAgICBMV01PTjU6IGZpeCBkc1BJQyBQT1NUCgogICAgQWRkIHRlc3QgZm9yIERQSUNfU1lTX0VSUk9SX1JFRyB0byBiZSB6ZXJvIGluIHRoZSBMV01PTjUgZHNQSUMgUE9TVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+IC0tLQoKY29tbWl0IDM4OGI4MmZkZGM3YzA1NTk2ZjNmNjE1ZjE5MGRhMDQ0ODIyN2RjODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDIzOjIzOjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRW5hYmxlIG5ldyB1SW1hZ2Ugc3VwcG9ydCBmb3IgdGhlIHBjczQ0MGVwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTVmNGVjMmI5YzkxMGM3MjYxZTZmMDYwZWE1MzBkNThiMDM5NjkyZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjM6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEbyBub3QgY29tcGlsZSBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGJ5IGRlZmF1bHQKCiAgICBEaXNhYmxlIGRlZmF1bHQgYnVpbGRpbmcgb2YgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBpbiBwcmVwYXJhdGlvbgogICAgZm9yIG1lcmdlIHdpdGggdGhlIG1hc3Rlci4gU3VwcG9ydCBmb3IgbmV3IGZvcm1hdCBjYW4gYmUgZW5hYmxlZCBvbgogICAgYSBwZXItYm9hcmQgYmFzaXMsIGJ5IGRlZmluaW5nIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGJvYXJkJ3MgY29uZmlnIGZpbGU6CgogICAgI2RlZmluZSBDT05GSUdfRklUCQkgICAxCiAgICAjZGVmaW5lIENPTkZJR19PRl9MSUJGRFQJICAgMQoKICAgIFRoaXMgY2FuIGJlIG9wdGlvbmFsbHkgZGVmaW5lZCB0byBnaXZlIG1vcmUgdmVyYm9zZSBvdXRwdXQ6CgogICAgI2RlZmluZSBDT05GSUdfRklUX1ZFUkJPU0UJICAgMSAvKiBlbmFibGUgZml0X2Zvcm1hdF97ZXJyb3Isd2FybmluZ30oKSAqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZGFmYWVkZThhNDZjNzE1OTMxMDIzOWUwMzZjOTNlMzFjNjM3NDQ4NwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjA6MzEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEaXNhYmxlIGRlYnVnaW5nIG91dHB1dCBpbiBwcmVwYXJhdGlvbiBmb3IgbWVyZ2Ugd2l0aCBtYXN0ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZiZTdhMTU1MDI3YmVhY2ViYWVlOWIzMmUxYWRhNzgxZmU5MjRiY2EKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE5OjM4OjQ1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ29tcGlsYXRpb24gYW5kIG5ldyB1SW1hZ2UgaGFuZGxpbmcgZml4ZXMgZm9yIGlteHRyYWN0CgogICAgRml4IGlteHRyYWN0IGNvbW1hbmQgbm90IGJlaW5nIGNvbXBpbGVkLWluIGRlc3BpdGUgQ09ORklHX0NNRF9YSU1HIGJlaW5nIGluCiAgICBpbmNsdWRlL2NvbmZpZ19jbWRfZGVmYXVsdC5oLiBGaXggZmV3IHdhcm5pbmdzIGFuZCBoYW5kbGluZyBvZiBuZXcgZm9ybWF0CiAgICBpbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzNmNjOGNiYjMzNzlkNTE2NmY4ODI2NDExMjM1MjE3MzVjNDY5ZjkyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBhdXRvc2NyIGNvbW1hbmQgdXNlZCB3aXRoIG5ldyB1SW1hZ2UgZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0MzE0MmU4MTdmMDU5N2JlNDEyZTdjYmUxOTQxM2Y1NTMyZWFmYTVkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCAqLml0cyBmaWxlcyBsb2NhdGlvbiBpbiBkb2N1bWVudGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4MWEwYWM2MmVhMjlmODI1MmQwYTcxNDcwOWQwZWNmZGJiYTJhMTVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMCAyMjowMTozOCAyMDA4ICswMTAwCgogICAgbHdtb241IFBPU1Q6IHJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlCgogICAgcGx1cyBzb21lIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNzNhMTllMTYwOWQwZjcwNWNiYWI4MDE0Y2ExN2FlZmU4OWU0Yzc2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE3OjU2OjA0IDIwMDggKzAzMDAKCiAgICBMV01PTjU6IFBPU1QgUlRDIGZpeAoKICAgIE1vZGlmeSB0aGUgUlRDIEFQSSB0byBwcm92aWRlIG9uZSBhIHN0YXR1cyBmb3IgdGhlIHRpbWUgcmVwb3J0ZWQgYnkKICAgIHRoZSBydGNfZ2V0KCkgZnVuY3Rpb246CiAgICAgIDAgLSBhIHJlbGlhYmxlIHRpbWUgaXMgZ3VhcmFudGVlZCwKICAgIDwgMCAtIGEgcmVsaWFibGUgdGltZSBpc24ndCBndWFyYW50ZWVkIChwb3dlciBmYXVsdCwgY2xvY2sgaXNzdWVzLAoJICBhbmQgc28gb24pLgoKICAgIFRoZSBSVEMgY2hpcCBkcml2ZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoaXMgaW5mbyBpZiB0aGUKICAgIGNvcnJlc3BvbmRpbmcgY2hpcCBzdXBwb3J0cyBzdWNoIGZ1bmN0aW9uYWxpdHkuIElmIG5vdCAtIGFsd2F5cwogICAgcmVwb3J0IHRoYXQgdGhlIHRpbWUgaXMgcmVsaWFibGUuCgogICAgVGhlIFBPU1QgUlRDIHRlc3Qgd2FzIG1vZGlmaWVkIHRvIGRldGVjdCB0aGUgUlRDIGZhdWx0cyB1dGlsaXppbmcKICAgIHRoaXMgbmV3IHJ0Y19nZXQoKSBmZWF0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBhNWNjNTU1NWNjZWU1OTY5MDhhN2Q4Y2YyMmExMDRmNmI5OTNiZmQ1CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTQ6MjU6MTQgMjAwOCArMDEwMAoKICAgIFRRTTUyMDBCOiB1cGRhdGUgTVREIHBhcnRpdGlvbiBsYXlvdXQKCiAgICAtIGluc2VydCBwYXJ0aXRpb24gZm9yIGR0YiBibG9iIHRvIFRRTTUyMDBCIE1URCBsYXlvdXQKICAgIC0gc2V0IGVudiB2YXJpYWJsZXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmVkIGJvYXJkCiAgICAgIChUUU01MjAwIG9yIFRRTTUyMDBCKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGYwMTA1NzI3ZDEzMmY1NmEyMWZhM2VkOGIxNjIzMDljY2E2Y2FjNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMDc6MDk6MjYgMjAwOCArMDEwMAoKICAgIENGSTogU21hbGwgY2xlYW51cCBmb3IgRkxBU0hfU0hPV19QUk9HUkVTUwoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBkb24ndCBuZWVkIHRoYXQgbWFueSAjaWZkZWYncyBpbiB0aGUgY29kZS4gSXQgbW92ZXMKICAgIHRoZSBzdWJ0cmFjdGlvbiBpbnRvIHRoZSBtYWNybyBhbmQgZGVmaW5lcyBhIE5PUC1tYWNybyB3aGVuCiAgICBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5YTA0MmU5Y2E1MTJiZWFhYTJjYjQ1MDI3NDMxM2ZjNDc3MTQxMjQxCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDggMTM6NDg6MDEgMjAwOCAtMDUwMAoKICAgIEZsYXNoIHByb2dyYW1taW5nIHByb2dyZXNzIGNvdW50ZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDVlMzM5ZmQ5ZWQ1MzlhN2Q3ZmVjNTljZmM4OGYwODU3YWIyNmE1M2YKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDE5IDEwOjAwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IHN0eWxlIGlzc3VlIHNwb3R0ZWQgYnkgV29sZmdhbmcgRGVuayA8d2RAZGVueC5vcmc+CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxMWFiZTQ1YzQ4ZWMzNDg1YTZjMWE1MTY4Y2U4ZDc5YzMyODhhZGMxCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBGZWIgMTggMTg6MDk6MDQgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogUmVtb3ZlIG5vIGxvbmdlciB1c2VkIGNvZGUgZnJvbSBmZHRfbm9kZV9vZmZzZXRfYnlfY29tcGF0aWJsZSgpCgogICAgU2luY2UgZmR0X25vZGVfb2Zmc2V0X2J5X2NvbXBhdGlibGUoKSB3YXMgY29udmVydGVkIHRvIHRoZSBuZXcKICAgIGZkdF9uZXh0X25vZGUoKSBpdGVyYXRvciwgYSBjaHVuayBvZiBpbml0aWFsaXphdGlvbiBjb2RlIGJlY2FtZQogICAgcmVkdW5kYW50LCBidXQgd2FzIG5vdCByZW1vdmVkIGJ5IG92ZXJzaWdodC4gIFRoaXMgcGF0Y2ggY2xlYW5zIGl0IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGQwY2NiOWIxNDBiNDcyMDM5NzMyZGUxMDJmYzE0NTk3ZWVkYjE0ZGYKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIEZlYiAxOCAxODowNjozMSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBUcml2aWFsIGNsZWFudXAgZm9yIENIRUNLX0hFQURFUikKCiAgICBDdXJyZW50bHkgdGhlIENIRUNLX0hFQURFUigpIG1hY3JvIGlzIGRlZmluZWQgbG9jYWwgdG8gZmR0X3JvLmMuCiAgICBIb3dldmVyLCB0aGVyZSBhcmUgYSBoYW5kZnVsIG9mIGZ1bmN0aW9ucyAoZmR0X21vdmUsIHJ3X2NoZWNrX2hlYWRlciwKICAgIGZkdF9vcGVuX2ludG8pIGZyb20gb3RoZXIgZmlsZXMgd2hpY2ggY291bGQgYWxzbyB1c2UgaXQgKGN1cnJlbnRseQogICAgdGhleSBvcGVuLWNvZGUgc29tZXRoaW5nIG1vcmUtb3ItbGVzcyBpZGVudGljYWwpLiAgVGhlcmVmb3JlLCB0aGlzCiAgICBwYXRjaCBtb3ZlcyBDSEVDS19IRUFERVIoKSB0byBsaWJmZHRfaW50ZXJuYWwuaCBhbmQgdXNlcyBpdCBpbiB0aG9zZQogICAgcGxhY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGZlMzBhMzU0Y2RiYjgwOGI1ZjE1MzY2YTkzNWIxNTFhNGNjZWU3NGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDIwIDE0OjMyOjM2IDIwMDggLTA2MDAKCiAgICBGaXggZmR0IGJvYXJkc2V0dXAgY29tbWFuZCBwYXJzaW5nCgogICAgVGhlIGludHJvZHVjaXRvbiBvZiB0aGUgJ2ZkdCBib290Y3B1JyBicm9rZSBwYXJzaW5nIGZvciAnZmR0IGJvYXJkc2V0dXAnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODA0ODg3ZTYwMDFlMmYwMGJlYTExNDMxYmYzNGQ2ZDQ3MjUxMmNkYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBGZWIgMTUgMDM6MzQ6MzYgMjAwOCAtMDYwMAoKICAgIEFkZCBzdWItY29tbWFuZHMgdG8gZmR0CgogICAgZmR0IGhlYWRlcgkJCQktIERpc3BsYXkgaGVhZGVyIGluZm8KICAgIGZkdCBib290Y3B1IDxpZD4JCQktIFNldCBib290IGNwdWlkCiAgICBmZHQgbWVtb3J5IDxhZGRyPiA8c2l6ZT4JCS0gQWRkL1VwZGF0ZSBtZW1vcnkgbm9kZQogICAgZmR0IHJzdm1lbSBwcmludAkJCS0gU2hvdyBjdXJyZW50IG1lbSByZXNlcnZlcwogICAgZmR0IHJzdm1lbSBhZGQgPGFkZHI+IDxzaXplPgktIEFkZCBhIG1lbSByZXNlcnZlCiAgICBmZHQgcnN2bWVtIGRlbGV0ZSA8aW5kZXg+CQktIERlbGV0ZSBhIG1lbSByZXNlcnZlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjg0ZDY1ZjliMDg1ZmZiZWQ0NjRkMWQ1OGU4YWFhOGY1YTJlZmMwNwpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUaHUgRmViIDE0IDE2OjUwOjM0IDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEZpeCBOT1AgaGFuZGxpbmcgYnVnIGluIGZkdF9hZGRfc3Vibm9kZV9uYW1lbGVuKCkKCiAgICBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIGhhcyBhIGJ1ZyBpZiBhc2tlZCB0byBhZGQgYSBzdWJub2RlIHRvIGEKICAgIG5vZGUgd2hpY2ggaGFzIE5PUCB0YWdzIGludGVyc3BlcnNlZCB3aXRoIGl0cyBwcm9wZXJ0aWVzLiAgSW4gdGhpcwogICAgY2FzZSBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIHdpbGwgcHV0IHRoZSBuZXcgc3Vibm9kZSBiZWZvcmUgdGhlCiAgICBmaXJzdCBOT1AgdGFnLCBldmVuIGlmIHRoZXJlIGFyZSBwcm9wZXJ0aWVzIGFmdGVyIGl0LCB3aGljaCB3aWxsCiAgICByZXN1bHQgaW4gYW4gaW52YWxpZCBibG9iLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZywgYW5kIGFkZHMgYSB0ZXN0Y2FzZSBmb3IgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgYWUwYjU5MDhkZTNiOTg1NWY4OTMxYmM5YjMyYzlmYzQ5NjJkZjVhOQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUdWUgRmViIDEyIDExOjU4OjMxIDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBhbmQgdXNlIGEgbm9kZSBpdGVyYXRpb24gaGVscGVyIGZ1bmN0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBmZHRfbmV4dF9ub2RlKCkgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8KICAgIGl0ZXJhdGUgdGhyb3VnaCBub2RlcyBvZiB0aGUgdHJlZSB3aGlsZSBrZWVwaW5nIHRyYWNrIG9mIGRlcHRoLiAgVGhpcwogICAgZnVuY3Rpb24gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgaXRlcmF0aW9uIGNvZGUgaW4gYSBsb3Qgb2Ygb3RoZXIKICAgIGZ1bmN0aW9ucywgYW5kIGlzIGFsc28gZXhwb3J0ZWQgZm9yIHVzZSBieSBsaWJyYXJ5IHVzZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDllYWViMDdhNzE4NWQ4NTJjN2FhMTA3MzVlY2Q0ZTllZGYyNGZiNWQKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJRnJpIEphbiAxMSAxNDo1NTowNSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBBZGQgZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGFkZHMgYW4gZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24gdG8gbGliZmR0LCBtaXJyb3JpbmcKICAgIGZkdF9nZXRfbmFtZSgpLiAgVGhpcyBpcyBhIHIvdyBmdW5jdGlvbiB3aGljaCBhbHRlcnMgdGhlIG5hbWUgb2YgYQogICAgZ2l2ZW4gZGV2aWNlIHRyZWUgbm9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCAyM2UyMGFhNjQ4OGU2YzA2MjI0OTY1NDk4NjFiZmRjNzQxMDhkZWJlCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjMzOjMwIDIwMDggKzAxMDAKCiAgICBsd21vbjU6IEZpeCByZWdpc3RlciB0ZXN0IGxvZ2ljIHRvIG1hdGNoIHRoZSBzcGVjaWZpYyBHREMgaC93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDQ2YmMwYTkzODc3OWFhMWQ2NjRiODQ3ZDM2YjA4YWEwMGYyMmU1MzkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTggMTM6Mjc6NTcgMjAwOCArMDEwMAoKICAgIEZpeCBiYWNrbGlnaHQgaW4gdGhlIGx3bW9uNSBQT1NULgoKICAgIEJhY2tsaWdodCB3YXMgc3dpdGNoZWQgb24gZXZlbiB3aGVuIHRlbXBlcmF0dXJlIHdhcyB0b28gbG93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDNkNjEwMTg2NDNhMmNkMzhjMTQ1YWE2ZGRlNTNmM2Y1ZjFhMGU5Y2YKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNiAxODo0ODozNiAyMDA4ICswMTAwCgogICAgVGhlIHBhdGNoIGludHJvZHVjZXMgdGhlIGFsdGVybmF0aXZlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGxvZyBidWZmZXIgZm9yIHRoZSBsd21vbjUgYm9hcmQ6IHRoZSBzdG9yYWdlIGZvciB0aGUgbG9nLWJ1ZmZlciBpdHNlbGYgaXMgT0NNKG9uLWNoaXAgbWVtb3J5KSwgdGhlIGxvZy1idWZmZXIgaGVhZGVyIGlzIG1vdmVkIHRvIHNpeCBHUFQgcmVnaXN0ZXJzIChQUEM0NDBFUFhfR1BUMF9DT01QMSwgLi4uLCBQUEM0NDBFUFhfR1BUMF9DT01QNSkuCgogICAgIFRvIGVuYWJsZSB0aGlzLCBhbHRlcm5hdGl2ZSwgY29uZmlndXJhdGlvbiB0aGUgVS1Cb290IGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGZpbGUgZm9yIGx3bW9uNSBpbmNsdWRlcyB0aGUgZGVmaW5pdGlvbnMgb2YgYWx0ZXJuYXRpdmUgYWRkcmVzc2VzIGZvciBoZWFkZXIKICAgIChDT05GSUdfQUxUX0xIX0FERFIpIGFuZCBidWZmZXIgKENPTkZJR19BTFRfTEJfQUREUikuCgogICAgIFRoZSBMaW51eCBzaGFsbCBiZSBjb25maWd1cmVkIHdpdGggdGhlIENPTkZJR19BTFRfTEJfTE9DQVRJT04gb3B0aW9uIHNldCwKICAgIGFuZCBoYXMgdGhlIEJPQVJEX0FMVF9MSF9BRERSIGFuZCBCT0FSRF9BTFRfTEJfQUREUiBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUKICAgIGx3bW9uNSBib2FyZC1zcGVjaWZpYyBoZWFkZXIgKGFyY2gvcHBjL3BsYXRmb3Jtcy80eHgvbHdtb241LmgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAwZjAwOWY3ODFiNWI4OGYyNTc2OWUxNTRlYTRkNDJkYjEzYmFmMGM2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MTE6NTMgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbHdtb241IGJvYXJkIHJlc2V0IHZpYSBHUElPNTguCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZjY5NGUzMmY5MzU2NWVjMWZhOGQwMjI2YzU4NGQ2Yjg5ZTkzMWVkOQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE3OjA5OjU1IDIwMDggKzAxMDAKCiAgICBTb21lIGZpeGVzIHRvIGRzcGljLCBmcGdhLCBhbmQgZ2RjIHBvc3QgdGVzdHMgZm9yIGx3bW9uNS4gRGlzYWJsZSBleHRlcm5hbCB3YXRjaC1kb2cgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiNDI4ZjZhOGM2NWM1MzAzZTVmOTZkYjhkMjRmMmY2OTlkOTRhOThjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTE6MDMgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBDUklUSUNBTCBmZWF0dXJlIG9mIFBPU1QgdGVzdHMuIElmIHRoZSB0ZXN0IG1hcmtlZCBhcyBQT1NUX0NSSVRJQ0FMIGZhaWxzIHRoZW4gdGhlIGFsdGVybmF0aXZlLCBwb3N0X2NyaXRpY2FsLCBib290LWNvbW1hbmQgaXMgdXNlZC4gSWYgdGhpcyBjb21tYW5kIGlzIG5vdCBkZWZpbmVkIHRoZW4gVS1Cb290IGVudGVycyBpbnRvIGludGVyYWN0aXZlIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgOGYxNWQ0YWRkZDQ5Yzk1NjQxMmUxZTNiZmM3NjRhMGM4YjFmMzE4NApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjQyIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggYWRkcyBuZXcgUE9TVCB0ZXN0cyBmb3IgdGhlIEx3bW9uNSBib2FyZC4gVGhlc2UgYXJlOgoKICAgICogRXh0ZXJuYWwgV2F0Y2hkb2cgdGVzdDsKICAgICogZHNQSUMgdGVzdHM7CiAgICAqIEZQR0EgdGVzdDsKICAgICogR0RDIHRlc3Q7CiAgICAqIFN5c21vbiB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBjMmVkMzNlZmJmZmY1NzY3YmNhMjM2ODI4ZTAyMWM1NWZkNTQ3YjZjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTA6MDEgMjAwOCArMDEwMAoKICAgIEVuYWJsZSBDT0RFQyBQT1NUIHdpdGggQ0ZHX1BPU1RfQ09ERUMgcmF0aGVyIHRoYW4gd2l0aCBDRkdfUE9TVF9EU1AuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+Cgpjb21taXQgMzUxNWZkMThkNGU4ZTQ0Zjg2M2FjNzE0MmI1NWUyMmIxMDllOWFmMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTggMTc6MzU6NTEgMjAwOCArMDEwMAoKICAgIEhNSTEwMDE6IGZpeCBjb21waWxlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxZjJhOTk3MDEwOWNlYmY3NDQ2ZTA1MDNiMTBiNzFmODY3MzA0NWVlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjMyOjMwIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogQkY1Mzctc3RhbXA6IGRyb3AgYm9hcmQtc3BlY2lmaWMgZmxhc2ggZHJpdmVyIGZvciBDRkkKCiAgICBUaGUgcGFyYWxsZWwgZmxhc2ggb24gdGhlIEJGNTM3LVNUQU1QIGlzIENGSSBjb21wbGlhbnQsIHNvIHRoZXJlIGlzIG5vIG5lZWQKICAgIGZvciB0aGUgYm9hcmQgc3BlY2lmaWMgZHJpdmVyIGF0IGFsbC4gIEp1c3QgdXNlIHRoZSBjb21tb24gQ0ZJIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNWIyMjE2M2ZlZjg2NWFmMmI2YmZiNmI3NWYxYjdiZjQ0M2NlMTcwYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEZlYiAxOSAwMDozNjoxNCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGFkZCBwcm9wZXIgRUxGIG1hcmtpbmdzIHRvIHNvbWUgYXNzZW1ibHkgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGNmNjc1ZDNiMmI5YzM1MTFjMWQ5OWJjOGY4ZjM4ZmQyZjA4YmZjYWYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6MzU6MTcgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBuZXcgY3BsYmluZm8gY29tbWFuZCBmb3Igdmlld2luZyBjcGxiIHRhYmxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhYWRiNzI1MDNjZDE2MDIzNDlhNWZlNTMzNTZkNWY1NWVjYzFiOTAwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjM3OjUxIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogdXBkYXRlIE1BSU5UQUlORVJTIGxpc3QKCiAgICBBZGQgbWFpbnRhaW5lciBpbmZvcm1hdGlvbiBmb3IgdGhlIEJsYWNrZmluIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZjdjZTEyY2I2NWEzMGM2ZTE1MmVlY2YyNmYwMzA0YjdkNzhjZjM5ZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNToyNjo0OCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGNvbnZlcnQgQkZJTl9DUFUgdG8gQ09ORklHX0JGSU5fQ1BVCgogICAgU3RvcCB0eWluZyB0aGluZ3MgdG8gdGhlIHByb2Nlc3NvciB0aGF0IHNob3VsZCBiZSB0aWVkIHRvIG90aGVyIGRlZmluZXMgYW5kCiAgICBjaGFuZ2UgQkZJTl9DUFUgdG8gQ09ORklHX0JGSU5fQ1BVIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gdGhlIGJ1aWxkCiAgICBzeXN0ZW0gdG8gc2VsZWN0IHRoZSAtbWNwdSBvcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg2YTIwZmI5MjBiZDE5ODEwNWFjZjdiMTE5MTExN2Y1NjZkNjM3ZWQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgMTYgMDc6NDA6MzYgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBtb3ZlIGJvb3RsZHIgY29tbWFuZCB0byBjb21tb24gY29kZQoKICAgIFRoaXMgbW92ZXMgdGhlIEJsYWNrZmluLWNvbW1vbiBib290bGRyIGNvbW1hbmQgb3V0IG9mIHRoZSBCRjUzNy1TVEFNUAogICAgc3BlY2lmaWMgYm9hcmQgZGlyZWN0b3J5IGFuZCBpbnRvIHRoZSBjb21tb24gZGlyZWN0b3J5IHNvIHRoYXQgYWxsIEJsYWNrZmluCiAgICBib2FyZHMgbWF5IHV0aWxpemUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGRlY2JlMDI5YjJhOWQzMzMzZDAyYzQzMzM4OWIxYzgyMWVlYTk2ZDcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAxNCAxMTowNToyMCAyMDA4ICswMTAwCgogICAgbWdjb2dlOiB1cGRhdGUgY29uZmlndXJhdGlvbgoKICAgIEZpeCBjb25maWd1cmF0aW9uIGZvciBtZ2NvZ2UgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjMTM2NzI0Y2RhMDIxOWM0OWYxZDRiMzQ2ZjAwZGEyOWIxNGZkZjE0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAxNiAwMToyMjo1OSAyMDA4ICswMTAwCgogICAgZHJpdmVycy9ydGMvTWFrZWZpbGU6IGtlZXAgbGlzdCBzb3J0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk1MzZkZmNjZTAzZTdiZTRjY2JjZWI0N2EwOGQ5YmEwN2FkYTM2MmYKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglTYXQgTWFyIDE1IDE1OjQwOjI2IDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgSW50ZXJzaWwgaXNsMTIwOCBSVEMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IDAyMTBjZmYzZDA3OWQ5N2IyMTU2YjEzNjg1ZWU4ZGUzNjhlNjhhMWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTWFyIDE1IDE3OjM2OjQxIDIwMDggKzAxMDAKCiAgICBjcmFtZnM6IEZpeCBpZmRlZgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGI4ZjJhMjc4NjFhOWZkMDZlYjU1YTM0Zjg1NWVjOWM1MTAyYWFiNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMTYgMDE6MTI6NTggMjAwOCArMDEwMAoKICAgIENvbmRpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDE3MTJiNGU4Yzk1ZGZmMjMzNTRiY2Q2MjBlMWY5NDc3MTYwYzE5MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA1IDEyOjMxOjUzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBVU0IgT0hDSSBzdXBwb3J0IHRvIEFNQ0MgQ2FueW9ubGFuZHMgNDYwRVggZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0IgT0hDSSBzdXBwb3J0IHRvIHRoZSBDYW55b25sYW5kcyBib2FyZCBwb3J0LiBJdCBhbHNvCiAgICBlbmFibGVzIEVYVDIgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjU5NmY1YjlkMzUzZmYzZTQzODdhMzMyNWQwNTc0MGYxNjk1ODAzOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA1IDEyOjI5OjMyIDIwMDggKzAxMDAKCiAgICB1c2I6IEFkZCBDRkdfT0hDSV9VU0VfTlBTIHRvIGNvbW1vbiBVU0ItT0hDSSBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgQ0ZHX09IQ0lfVVNFX05QUyB0byB0aGUgY29tbW9uIFVTQi1PSENJIGRyaXZlci4gVGhpcwogICAgd2F5IGEgYm9hcmQganVzdCBuZWVkcyB0byBkZWZpbmUgdGhpcyBuZXcgb3B0aW9uIHRvIGVuYWJsZSB0aGUgImZvcmNlCiAgICBOb1Bvd2VyU3dpdGNoaW5nIG1vZGUiIGluc3RlYWQgb2YgYWRkaW5nIG5ldyBDUFUvYXJjaGl0ZWN0dXJlIGRlZmluZXMKICAgIHRvIHRoZSBVU0Igc291cmNlIGl0c2VsZi4KCiAgICBUaGlzIG5ldyBvcHRpb24gd2lsbCBiZSB1c2VkIGZpcnN0IHdpdGggdGhlIG5ldyBBTUNDIDQ2MEVYIENhbnlvbmxhbmRzCiAgICBib2FyZCBwb3J0LCB3aGljaCB3aWxsIGJlIHBvc3RlZCBpbiBhIGZldyBkYXlzLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBhIHNtYWxsIGNvbXBpbGF0aW9uIHByb2JsZW0gd2hlbiBERUJVRyBpcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MTY2NWViZjg4NDA4ZmYyYWNiNzYyYWY0Nzk4OWZkNDM2NWIzMjFhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWFyIDMgMTc6Mjc6MDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIENhbnlvbmxhbmRzIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgNDYwRVggZG9lc24ndCBzdXBwb3J0IGEgZml4ZWQgYm9vdHN0cmFwIG9wdGlvbiB0byBib290IGZyb20gNTEyIGJ5dGUgcGFnZQogICAgTkFORCBkZXZpY2VzLiBUaGUgb25seSBib290c3RyYXAgb3B0aW9uIGZvciBOQU5EIGJvb3RpbmcgaXMgb3B0aW9uIEYgZm9yCiAgICAyayBwYWdlIGRldmljZXMuIFNvIHRvIGJvb3QgZnJvbSBhIDUxMiBieXBlIHBhZ2UgZGV2aWNlLCB0aGUgSTJDIGJvb3RzdHJhcAogICAgRUVQUk9NIG5lZWRzIHRvIGJlIHByb2dyYW1tZWQgYWNjb3JkaW5nbHkuCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyBDYW55b25sYW5kcyBhdmFsCiAgICBib2FyZCBhbmQgYWxzbyBhZGRzIHN1cHBvcnQgdG8gdGhlICJib290c3RyYXAiIGNvbW1hbmQsIHRvIGVuYWJsZSBOQU5ECiAgICBib290aW5nIEkyQyBzZXR0aW5nLgoKICAgIFRlc3RlZCB3aXRoIDUxMiBieXRlIHBhZ2UgTkFORCBkZXZpY2UgKDMyTUJ5dGUpIG9uIENhbnlvbmxhbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjODEzZjFmODM1YTdlZGZkYjkyOWYyODQzYjA5ZGI3MmNkNWNkMmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE2OjUzOjAwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIENhbnlvbmxhbmRzIHN1cHBvcnQgKDQ2MEVYKSAoMy8zKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQU1DQyBDYW55b25sYW5kcyA0NjBFWCBldmFsdWF0aW9uCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjk4M2ZlMjFmNzc0YTkyNGQzYWRiMjYzYTI3MGJjMmYzMDFmMmFhMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNjo1MjoyNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBDYW55b25sYW5kcyBzdXBwb3J0ICg0NjBFWCkgKDIvMykKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgNDYwRVggZXZhbHVhdGlvbgogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhlMWEzZmU1NDViYmNmY2VhZmUxODMzNDRlYmM5ZjFhZDAzODE5YzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTY6NTE6MTcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgQ2FueW9ubGFuZHMgc3VwcG9ydCAoNDYwRVgpICgxLzMpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWx1YXRpb24KICAgIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0M2M2MDk5MmNkZjcyNDk2ZTdlYWFhM2ZiZDM3ZWJiZTc1ODM1ZjY5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE1OjExOjQzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBiYXNpYyBzdXBwb3J0IGZvciBBTUNDIDQ2MEVYLzQ2MEdUICg1LzUpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQ2MEVYLzQ2MEdUIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZjJlYjNmM2Q4ZWEyZGJiMjI0ZDBkYTVhMTIwMzg2OTNiYWI5OTQ1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE1OjExOjE4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBiYXNpYyBzdXBwb3J0IGZvciBBTUNDIDQ2MEVYLzQ2MEdUICg0LzUpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQ2MEVYLzQ2MEdUIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTllY2Q1YWNhMzgxOTg0ZDhlYmJlYjIwN2VjZTgyYTFjMjc1NTc3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE1OjA3OjEwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBiYXNpYyBzdXBwb3J0IGZvciBBTUNDIDQ2MEVYLzQ2MEdUICgzLzUpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQ2MEVYLzQ2MEdUIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyODAxYjJkMmE5OTA2ZjIwNmFiOWVlOGQwYjZlNzQ2ZDJiN2ZlMDVhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE1OjA1OjUwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBiYXNpYyBzdXBwb3J0IGZvciBBTUNDIDQ2MEVYLzQ2MEdUICgyLzUpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQ2MEVYLzQ2MEdUIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YWM0MWUzZTM3YzMwODBjNmIxZDk0NjFkNjU0MTYxY2ZlMmFhNDkyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE1OjA1OjI2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBiYXNpYyBzdXBwb3J0IGZvciBBTUNDIDQ2MEVYLzQ2MEdUICgxLzUpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQ2MEVYLzQ2MEdUIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NmU0MTAxNzgzNzVkOWYyMGJlMjVmYjI0ZTE4MDk3NGYwYWUxMjBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDE5IDIyOjA3OjU3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IGludGVycnVwdC5jIHJld29ya2VkCgogICAgVGhpcyBwYXRjaCBpcyBhIHJld29yayBvZiB0aGUgNHh4IGludGVycnVwdCBoYW5kbGluZyBkb25lIHdoaWxlCiAgICBhZGRpbmcgdGhlIDQ2MEVYL0dUIHN1cHBvcnQuIEludGVycnVwdHMgYXJlIG5lZWRlZCBvbiA0eHggZm9yIHRoZQogICAgRU1BQyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg0YTk5OWI2Y2RkMGIwMmRjN2RlMmNhY2MzMDZlYWE4NGFmZTJiNDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTkgMjI6MDE6NTcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogcHJvZ3JhbV90bGIgbm93IHVzZXMgNjRiaXQgcGh5c2ljYWwgYWRkZXNzCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBwaHlzaWNhbCBhZGRlc3MgcGFyYW1ldGVyIGZyb20gMzJiaXQgdG8gNjRiaXQuCiAgICBUaGlzIGlzIG5lZWRlZCBmb3IgMzZiaXQgNHh4IHBsYXRmb3JtcyB0byBhY2Nlc3MgYXJlYXMgbG9jYXRlZAogICAgYmV5b25kIHRoZSA0R0IgYm9yZGVyLCBsaWtlIFNvQyBwZXJpcGhlcmFscyAoRUJDIGV0Yy4pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMzMwN2ZhMTg2YWY4NTc3MTkyNGM0MzQ5OTcwODliODEwNGMwYTQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDE5IDIxOjU4OjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IG1paXBoeS5jIHJld29ya2VkCgogICAgV2hpbGUgYWRkaW5nIHRoZSA0NjBFWC9HVCBzdXBwb3J0IEkgcmV3b3JrZWQgdGhlIDR4eCBtaWlwaHkgY29kZS4gSXQKICAgIGJhZGx5IG5lZWRlIHNvbWUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODhhZmY2MmRmMzljMDc1NjI0MWVhOWY5YjVhN2IzYWRlMjZjYjgyYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAxNjoyMTo0OSAyMDA4ICswMTAwCgogICAgcnRjOiBBZGQgTTQxVDYyIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IGZvciB0aGUgU1RNIE00MVQ2MiBSVEMuIEl0IGlzIHVzZWQgYW5kIHRlc3RlZAogICAgb24gdGhlIEFNQ0MgQ2FueW9ubGFuZHMgNDA2RVggcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIxN2QzODNlMjAxYWRjN2YyMjcxMTQ1YWUzNDVlYTVlYWUyYjcxNzAKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjQ2OjQzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCA0MDVHUHIgYmFzZWQgTUNVMjUgYm9hcmQgc3BlY2lmaWMgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDc1YTY2ZGNkYjM4Mzg2M2FkMzNmMDUzNGNmYzI3YjdhODY5NDdkYWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjQ2OjQyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCA0MDVHUHIgYmFzZWQgTUNVMjUgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGIwNWYzNTQzNmI3MzNhMjQwNTU5ZTc3ZTQ2YmVkODQzOTY2NWVjYzUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjQ2OjQxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCA0MDVHUHIgYmFzZWQgTUNVMjUgYm9hcmQuIEdsb2JhbCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMTRjMjdiMzVhYzgxMmE3MWFiY2U2ZTNlMmY0MTI5ZDVlOTMxMzY2MApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTg6Mzc6MDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiByZW1vdmUgb2Jzb2xldGUgaGN1X2ZsYXNoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGEwNzk0OTQ4NTNjYzJiZmVkZGIyNjY3MzIxOWRiMGI0YjJiMzE1NjYKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjM3OjAxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gVXNlIEZMQVNIX0NGSV9MRUdBQ1kKCiAgICBDbGVhbnVwOiBSZW1vdmUgY3VzdG9tIGZsYXNoIGRyaXZlciBmb3IgOCBiaXQgYm9vdC1lcHJvbSBhbmQgcmVwbGFjZSBpdCB3aXRoCiAgICB0aGUgRkxBU0hfQ0ZJX0xFR0FDWSBldCBhbC4gY29uZmlnIG9wdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBlNDE3MGU1YTUwYzgxMTBmNzkyYmMzNzQ3MjgzM2FlNjY5ZDY5OTUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDEzOjUyOjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21tZW50IGluIDQwNUVYIEREUjIgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc2NjUyOWZjY2M4NjBlY2I5ZTk1NWI0MjM5ZGZmNjljZDllNGVhMDkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgTWFyIDE0IDE2OjIyOjM0IDIwMDggKzAxMDAKCiAgICBBZGQgTUQ1IHN1cHBvcnQgdG8gdGhlIG5ldyB1SW1hZ2UgZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwZWRlMGMzODM1MzBhNDE4Y2Y5OGJlOTEyMjM3MWE4NjU3M2NkMGRiCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE1hciAxNCAxNjoyMjozNCAyMDA4ICswMTAwCgogICAgQWRkIHRoZSBNRDUgYWxnb3JpdGhtCgogICAgTUQ1IHN1cG9wcnQgaXMgdHVybmVkIG9uIGJ5IGRlZmluaW5nIENPTkZJR19NRDUsIHRoZSBkaWdlc3QgY2FuIGJlIHRoZW4KICAgIGNhbGN1bGF0ZWQgdXNpbmcgdGhlIG1kNSgpIGZ1bmN0aW9uIC0tIHNlZSBpbmNsdWRlL21kNS5oIGZvciBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYjhhYTU3YjVkNGQ2OWU4ZjA4MTBhNWU2MzJjMGNlNDFjMGY0NmVlMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTQgMTY6MDQ6NTQgMjAwOCArMDEwMAoKICAgIHRvb2xzL3NldGxvY2FsdmVyc2lvbjogdXNlIGEgZ2l0LWRlc2NyaWJlLWlzaCBmb3JtYXQKCiAgICBDaGFuZ2UgdGhlIGF1dG9tYXRpYyBsb2NhbCB2ZXJzaW9uIHRvIGhhdmUgdGhlIGZvcm0gLW5ubm5uLWdTSEExU1VNSUQsCiAgICB3aGVyZSAnbm5ubm4nIGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyBzaW5jZSB0aGUgbGFzdCB0YWcgKGkuZS4sCiAgICAxLjMuMi1yYzMpLiAgVGhpcyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byByZWNvZ25pemUgIm5ld2VyIiB2ZXJzaW9ucwogICAgYW5kIHRvIHNlZSBob3cgbXVjaCBoYXMgYmVlbiBjaGFuZ2VkIHNpbmNlIHRoZSByZWZlcmVuY2VkIHRhZy4KCiAgICBTdG9sZW4gZnJvbSBMaW51eCBrZXJuZWwncyBzY3JpcHRzL3NldGxvY2FsdmVyc2lvLCBzZWUgY29tbWl0IGQ4ODI0MjFmLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzZkYzIxYzg0ZGUwZjE1OWExNzUyYzVlYmQzM2NmZjg0M2Y2MzYwOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMTMgMTQ6MzI6MDMgMjAwOCArMDEwMAoKICAgIEhNSTEwMDE6IGFkZCBzdXBwb3J0IGZvciBNUEM1MjAwIFJldi4gQiBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTBmMTNkY2U3YTdhOWE4NGQ1NzMwNTc2YzlhMjRkMGRiYjA3Y2IzYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMTMgMTQ6Mjk6NDkgMjAwOCArMDEwMAoKICAgIFRRTTUyMDA6IHJlbW92ZSBkZWFkIGNvZGUKCiAgICBUaGlzIGJvYXJkIG5ldmVyIHVzZWQgYSBNR1Q1MTAwIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFmZTQ1Yzg3ZTNjNWQ3N2JhZDc2YjFhNTdkY2NkMjA3NjRkNDViNWQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEyOjE0OjE1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGJ1aWxkIGlzc3VlIG9uIEFSTQoKICAgIEFSTSBwbGF0Zm9ybXMgZG9uJ3QgaGF2ZSBhIGJkLT5iaV9tZW1zaXplIHNvIHVzZSBiZC0+YmlfZHJhbVswXS5zaXplIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzMzEwYzU0OWE3M2E5NDk0MzBiZmRhOTA4NzZkZjc1NTJhMWRhYjBjCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMjoxMzoxMyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcwoKICAgIENyZWF0ZSBkb2MvdUltYWdlLkZJVCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB3aXRoIHRoZSBmb2xsb3dpbmcgZmlsZXM6CiAgICAtIGNvbW1hbmRfc3ludGF4X2V4dGVuc2lvbnMudHh0IDogZXh0ZW5kZWQgY29tbWFuZCBzeW50YXggZGVzY3JpcHRpb24KICAgIC0gaG93dG8udHh0CQkJICAgIDogc2hvcnQgdXNhZ2UgaG93dG8KICAgIC0gc291cmNlX2ZpbGVfZm9ybWF0LnR4dAkgICAgOiBpbnRlcm5hbCBuZXcgdUltYWdlIGZvcm1hdCBkZXNjcmlwdGlvbgoKICAgIEFkZCBleGFtcGxlIGltYWdlIHNvdXJjZSBmaWxlczoKICAgIC0ga2VybmVsLml0cwogICAgLSBrZXJuZWxfZmR0Lml0cwogICAgLSBtdWx0aS5pdHMKCiAgICBVcGRhdGUgUkVBRE1FIGFwcHJvcHJpYXRlbHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMWVjNzM3NjFkMmUyNDcwNzhmNDUyMGEyNjVkNDYzZThiNzMzOTFhMgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzU6NTIgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggZGVmaW5pdGlvbiBvZiBjb21tb24gYm9vdG1faGVhZGVyc190IGZpZWxkcwoKICAgIHZlcmlmeSwgYXV0b3N0YXJ0IGFuZCBsbWIgZmllbGRzIGFyZSB1c2VkIHJlZ2FyZGxlc3Mgb2YgQ09ORklHX0ZJVAogICAgc2V0dGluZywgbW92ZSB0aGVpciBkZWZpbml0aW9ucyB0byBjb21tb24gc2VjdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFkMWNiNDI3MGVkYzZhOTkyNzY4MzQwNjQwNjk3MTdmOTc4MmM0OTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjM1OjUxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGJ1aWxkIHByb2JsZW1zIG9uIHRyYWIgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGY3NzNiZWE4ZTExZjRhMTFjMzg4ZGNlZTk1NmIyNDQ0MjAzZTZiNjUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjM1OjQ2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIHByb3BlciByYW1kaXNrL0ZEVCBoYW5kbGluZyB3aGVuIEZJVCBjb25maWd1cmF0aW9uIGlzIHVzZWQKCiAgICBTYXZlIEZJVCBjb25maWd1cmF0aW9uIHByb3ZpZWQgaW4gdGhlIGZpcnN0IGJvb3RtIGFyZ3VtZW50IGFuZCB1c2UgaXQKICAgIHdoZW4gdG8gZ2V0IHJhbWRpc2svRkRUIHN1YmltYWdlcyB3aGVuIHNlY29uZCBhbmQgdGhpcmQgKHJhbWRpc2svRkRUKQogICAgYXJndW1lbnRzIGFyZSBub3Qgc3BlY2lmaWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjY4MmNlOGE0MjI1ZjIzZDcyYmI3ZmVkMDY5ZTkyOGRkMzlkMzRhZQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3JlIHZlcmJvc2Uga2VybmVsIGltYWdlIHVuY29tcHJlc3MgZXJyb3IgbWVzc2FnZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMTM3MmNjZTJiOTA0MGZiNjQwZTUwMzJiODRlM2EwMzNhMjJkNmZmMApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBVc2Ugc2hvd19ib290X3Byb2dyZXNzKCkgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0CgogICAgVGhpcyBwYXRjaCBhbGxvY2F0ZXMgYSBzZXQgb2Ygc2hvd19ib290X3Byb2dyZXNzKCkgSURzIGZvciBuZXcgdUltYWdlIGZvcm1hdAogICAgYW5kIGFkZHMgc2hvd19ib290X3Byb2dyZXNzKCkgY2FsbHMgaW4gbmV3IHVJbWFnZSBmb3JtYXQgaGFuZGxpbmcgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGMyOGM0ZDE5M2RiZmIyMGIyZGQzYTU0NDc2NDBmZDZkZTdmZDA3MjAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZnJvbWF0IHN1cHBvcnQgdG8gZnBnYSBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwOTQ3NWY3NTI3NDYwZTQyNmMwZTA2MjhmYzViOGYzNzU0ZmJhYTIzCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBoYW5kbGluZyB0byBvdGhlciBib290bSByZWxhdGVkIGNvbW1hbmRzCgogICAgVXBkYXRlZCBjb21tYW5kczoKCiAgICBkb2Nib290ICAtIGNtZF9kb2MuYwogICAgZmRjYm9vdCAgLSBjbWRfZmRjLmMKICAgIGRpc2tib290IC0gY21kX2lkZS5jCiAgICBuYm9vdCAgICAtIGNtZF9uYW5kLmMKICAgIHNjc2lib290IC0gY21kX3Njc2kuYwogICAgdXNiYm9vdCAgLSBjbWRfdXNiLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFiNzg5N2YyOGQ0OWE4MGQ3OGQ3NjBlYzZmNmYxMWRjMGY5MTQzMzgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgdG8gaW1nZXh0cmFjdCBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0MjRjNGFiZGQxNzVkMmM0NzA1MTBkZjhjZTBlMzJkM2Y0NjNlYzE2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIGF1dG9zY3JpcHQgcm91dGluZQoKICAgIGF1dG9zY3JpcHQoKSByb3V0aW5lIGlzIHVwZGF0ZWQgdG8gYWNjZXB0IHNlY29uZCBhcmd1bWVudCwgd2hpY2gKICAgIGlzIG9ubHkgdXNlZCBmb3IgRklUIGltYWdlcyBhbmQgcHJvdmlkZXMgYSBGSVQgc3ViaW1hZ2UgdW5pdCBuYW1lLgoKICAgIGF1dG9zY3JpcHQoKSByb3V0aW5lIGNhbGxlcnMgbXVzdCBub3cgcGFzcyB0d28gYXJndW1lbnRzLiBGb3IKICAgIG5vbi1pbnRlcmFjdGl2ZSB1c2UgKGxpa2UgaW4gY21kX2xvYWQuYywgY21kX25ldC5jKSwgbmV3IGVudmlyb25tZW50CiAgICB2YXJpYWJsZSAnYXV0b3NjcmlwdF91bmFtZScgaXMgaW50cm9kdWNlZCBhbmQgdXNlZCBhcyBhIEZJVAogICAgc3ViaW1hZ2UgdW5pdCBuYW1lIHNvdXJjZS4KCiAgICBhdXRvc2NyaXB0IGNvbW1hbmQgYWNjZXB0cyBleHRlbmRlZCBzeW50YXggb2YgdGhlIGFkZHIgYXJndW1lbnQ6CiAgICBhZGRyOjxzdWJpbWdfdW5hbWU+CgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjZDdjNTk2ZTlmNTYxZGJiYzE3YjcxNzI3NzQzOGFlZTc4Y2RlMTRmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIGFyY2ggc3BlY2lmaWMgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lcwoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mCiAgICBkb19ib290bV9saW51eCgpIGFkZGluZyBuZXcgdUltYWdlIGZvcm1hdCBoYW5kbGluZyBmb3IKICAgIG9wZXJhdGlvbnMgbGlrZSBnZXQga2VybmVsIGVudHJ5IHBvaW50IGFkZHJlc3MsIGdldCBrZXJuZWwKICAgIGltYWdlIGRhdGEgc3RhcnQgYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDNkZmUxMTAxNDkzMTE0MjU5MTllNmQ2YTE0YjU2MWI0MjA3NDk4ZjEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMyOjU5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5vZGUgb2Zmc2V0cyBmb3IgRklUIGltYWdlcyBsaXN0ZWQgaW4gc3RydWN0IGJvb3RtX2hlYWRlcnMKCiAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG5vZGUgb2Zmc2V0IGZpZWxkcyB0byBzdHJ1Y3QgYm9vdG1faGVhZGVycwogICAgYW5kIHVwZGF0ZXMgYm9vdG1faGVhZGVycyBwcm9jZXNzaW5nIGNvZGUgdG8gbWFrZSB1c2Ugb2YgdGhlbS4KICAgIFNhdmVkIG5vZGUgb2Zmc2V0cyBhbGxvdyB0byBhdm9pZCByZXBlYXRpbmcgZml0X2ltYWdlX2dldF9ub2RlKCkgY2FsbHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiYzhlZDQ4NmIxMjU0NTJiYTNiZDgzNDRmMDUyZjQzNzMyOTE1MGM1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMjo1MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIHBwYzogQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgdG8gRkRUIGhhbmRsaW5nIHJvdXRpbmVzCgogICAgU3VwcG9ydCBmb3IgbmV3IChGSVQpIGZvcm1hdCB1SW1hZ2VzIGlzIGFkZGVkIHRvIHBvd2VycGMgc3BlY2lmaWMKICAgIGJvb3RfZ2V0X2ZkdCgpIHJvdXRpbmUgd2hpY2ggbm93IHJlY29nbml6ZXMsIHNhbml0eSBjaGVja3MgRklUIGltYWdlCiAgICBhbmQgaXMgYWJsZSB0byBhY2Nlc3MgZGF0YSBzZWN0aW9ucyBvZiB0aGUgcmVxdWVzdGVkIGNvbXBvbmVudCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE0NGEyNjlhOTA1ZjkyNGI0MjAwMjA1MDZhNGQ3ZDdlZWRjYzBlYWYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjE0OjU3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmUtZW5hYmxlIGludGVycnVwdHMgZm9yIG5vbiBhdXRvbWF0aWMgYm9vdGluZwoKICAgIFJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIHdlIHJldHVybiBmcm9tIGRvX2Jvb3RtXzxvcz4gYW5kICdhdXRvc3RhcnQnCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0IHRvICd5ZXMnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDk4NWM4NDk4YzRlNDcwOTU4MjBkYTk3YWE3MjIzODFkMzkxNzJjNQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MTQ6MzggMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmUgdW5uZWNlc3NhcnkgYXJndW1lbnRzIHBhc3NlZCB0byByYW1kaXNrIHJvdXRpbmVzCgogICAgYm9vdF9nZXRfcmFtZGlzaygpIGFuZCBpbWFnZV9nZXRfcmFtZGlzaygpIGRvIG5vdCBuZWVkIGFsbAogICAgY21kdHAsIGZsYWcsIGFyZ2MgYW5kIGFyZ3YgYXJndW1lbnRzLiBTaW1wbGlmeSByb3V0aW5lcyBkZWZpbml0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYzg3Nzk2NDgzYmM3YzI5MDA0NzBkYzc0N2MzNjdmNjAyNTc3NjA4ZApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MTI6MzcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBmb3IgcmFtZGlzayBoYW5kbGluZwoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBib290X2dldF9yYW1kaXNrKCkgcm91dGluZSBhZGRpbmcgZm9ybWF0CiAgICB2ZXJpZmljYXRpb24gYW5kIGhhbmRsaW5nIGZvciBuZXcgKEZJVCkgdUltYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDY5ODZhMzg1NjcxNzQ5ZWNiM2Y2MGNmOTllOWNiYWU4ZTQ3YmI1MGUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjAxOjA1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgZm9yIGtlcm5lbCBib290aW5nCgogICAgTmV3IGZvcm1hdCB1SW1hZ2VzIGFyZSByZWNvZ25pemVkIGJ5IHRoZSBib290bSBjb21tYW5kLAogICAgdmFsaWRpdHkgb2Ygc3BlY2lmaWVkIGtlcm5lbCBjb21wb25lbnQgaW1hZ2UgaXMgY2hlY2tlZCBhbmQKICAgIGl0cyBkYXRhIHNlY3Rpb24gbG9jYXRlZCBhbmQgdXNlZCBmb3IgZnVydGhlciBwcm9jZXNzaW5nCiAgICAodW5jb21wcmVzcywgbG9hZCwgZXRjLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGUzMmZlYTZhZGI2MjBlY2YyYmQ3MGFjZjJkZDM3ZTUzZGY5ZDE1NDcKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWFyIDExIDEyOjM1OjIwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgZm9yIGltbHMgYW5kIGltaW5mbyBjb21tYW5kcwoKICAgIGltbHMgYW5kIGltaW5mbyBjYW4gbm93IHJlY29nbml6ZSBuYWQgcHJpbnQgb3V0IGNvbnRlbnRzIG9mIHRoZSBuZXcgKEZJVCkKICAgIGZvcm1hdCB1SW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOWQyNTQzOGZlN2Q3MGNmMzVhOGEyOTNlYTVlMzkyZmVmYzY3MjYxMwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXIgMTEgMTI6MzQ6NDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgc3VwcG9ydCBmb3IgbmV3IHVJbWFnZSBmb3JtYXQgdG8gbWtpbWFnZSB0b29sCgogICAgU3VwcG9ydCBmb3IgdGhlIG5ldyB1SW1hZ2UgZm9ybWF0IChGSVQpIGlzIGFkZGVkIHRvIG1raW1hZ2UgdG9vbC4KICAgIENvbW1hbmRsaW5lIHN5bnRheCBpcyBhcHByb3ByaWF0ZWx5IGV4dGVuZGVkOgoKICAgIG1raW1hZ2UgWy1EIGR0Y19vcHRpb25zXSAtZiBmaXQtaW1hZ2UuaXRzIGZpdC1pbWFnZQoKICAgIG1raW1hZ2UgKHRvZ2V0aGVyIHdpdGggZHRjKSB0YWtlcyBmaXQtaW1hZ2UuaXRzIGFuZCByZWZlcmVuY2VkIHRoZXJlaW4KICAgIGJpbmFyaWVzIChsaWtlIHZtbGludXguYmluLmd6KSBhcyBpbnB1dHMsIGFuZCBwcm9kdWNlcyBmaXQtaW1hZ2UgZmlsZSAtLSB0aGUKICAgIGZpbmFsIGltYWdlIHRoYXQgY2FuIGJlIHRyYW5zZmVycmVkIHRvIHRoZSB0YXJnZXQgKGUuZy4sIHZpYSB0ZnRwKSBhbmQgdGhlbgogICAgYm9vdGVkIHVzaW5nIHRoZSBib290bSBjb21tYW5kIGluIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGViNjE3NWVkZDZjMTIwZDhiODk2NzgyNDNlNWEyYmUzNjJlZThlNDAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gTWFyIDEwIDE3OjUzOjQ5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTWFrZSBub2RlIHVuaXQgbmFtZXMgY29uc3QgaW4gc3RydWN0IGJvb3RtX2hlYWRlcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVkZmI1MjEzODY4OGNjYmYwMTQ2ZjYyNjgzZmU2MjE3YjNjZTFiMDUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDIxOjI0OjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTmV3IHVJbWFnZSBsb3ctbGV2ZWwgQVBJCgogICAgQWRkIEZEVC1iYXNlZCBmdW5jdGlvbnMgZm9yIGhhbmRsaW5nIG5ldyBmb3JtYXQgY29tcG9uZW50IGltYWdlcywKICAgIGNvbmZpZ3VyYXRpb25zLCBub2RlIG9wZXJhdGlvbnMsIHByb3BlcnR5IGdldC9zZXQsIGV0Yy4KCiAgICBmaXRfCS0gcm91dGluZXMgaGFuZGxpbmcgZ2xvYmFsIG5ldyBmb3JtYXQgdUltYWdlIG9wZXJhdGlvbnMKCQkgIGxpa2UgZ2V0L3NldCB0b3AgbGV2ZWwgcHJvcGVydHksIHByb2Nlc3MgYWxsIG5vZGVzLCBldGMuCiAgICBmaXRfaW1hZ2VfCS0gcm91dGluZXMgaGFuZGxpbmcgY29tcG9uZW50IGltYWdlcyBzdWJub2RlcwogICAgZml0X2NvbmZfCS0gcm91dGluZXMgaGFuZGxpbmcgY29uZmlndXJhdGlvbnMgbm9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDMwZjE4MDZmNjA5NzhkNzA3YjBjZmYyZDdiZjg5ZDE0MWZjMjQyOTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMTY6MjA6MDIgMjAwOCArMDEwMAoKICAgIFJlbGVhc2UgdjEuMy4yCgogICAgVXBkYXRlIENIQU5HRUxPRyBmb3IgcmVsZWFzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViNDY0YzI4OWJhNzE1ZDA5NzliNmUxZjk0OTQ3YmI4ZjEwNjhkMTYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDkgMTQ6NTI6MTEgMjAwOCArMDEwMAoKICAgIFNDTTogZml4ICdwYWNrZWQnIGF0dHJpYnV0ZSBpZ25vcmVkIGZvciBmaWVsZCBvZiB0eXBlICdjYW5fbXNnX3QnIHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGI2OTViNzg1MTVkZGI4OGEyZDRmMzM1N2MxMjAzNDVlZmJmNTllYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgOSAxMDo0NDowMSAyMDA4ICswMTAwCgogICAgc2NiOTMyODogRml4IGZsYXNoIHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyYjNlN2U2MWQ2YTcyZjE2YWVlOTNmODcwYmM2YWY2N2YzMDc1OGM0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDEwOjUwOjQxIDIwMDggKzAxMDAKCiAgICBlc2QvY29tbW9uL2ZwZ2EuYzogZml4IGluZGVudGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2MzODQzZTM2NDUzZTJiOGRiNjVkN2U1NmRlOTM4YmEwNDUwMTZhMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAxMDozMzozMSAyMDA4ICswMTAwCgogICAgY29tbW9uL2tnZGIuYzogZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXInIHdhcm5pbmcKCiAgICBhbmQgZ2V0IHJpZCBvZiBhIGNvdXBsZSBvZiB1bm5lZWRlZCBjYXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhkNGY0YTgzOGQ3ZGM3Y2Y0ZGUxN2UzZTlhNjdlMmYyMjJiNmExYzgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMTA6MDk6NTMgMjAwOCArMDEwMAoKICAgIGVzZC9jb21tb24vZnBnYS5jOiBmaXggJ2Fzc2lnbm1lbnQgb2YgcmVhZC1vbmx5IGxvY2F0aW9uJyBlcnJvcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzZmZTRkYWJhYzA2NmU4NzU4MzQ1ZDI0OTAzMjc2ODQ5Njk4M2EzZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAwMjoxMzoxOSAyMDA4ICswMTAwCgogICAgTWFrZWZpbGU6IG1ha2UgYnVpbGQgc2lsZW50bHkgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3NmJhYmM4NjU3NmYwOTI1NzM1OTkzMzRjODVlYzU0M2ZkYmM2MDE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDAyOjA3OjQ5IDIwMDggKzAxMDAKCiAgICBtNTAxc2s6IEZpeCBvdXQgb2YgdHJlZSBidWlsZGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjEwZWQyMDA0ZTA2MmZkZDAzZjI1YWI0OTI1OTk4YWExYmQwOGEwNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAwMDowNjowOSAyMDA4ICswMTAwCgogICAgQURTNTEyMTogZml4IG91dCBvZiB0cmVlIGJ1aWxkCgogICAgYW5kIHNpbXBsaWZ5IE1ha2VmaWxlIGEgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDZjYjUwNzRhM2Y3NGRlNjRlYmQ5N2RkMGM0ZWM3ZWIzZDc2OGI5MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgOCAyMjozNTozMSAyMDA4ICswMTAwCgogICAgUmVsZWFzZSB2MS4zLjIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc4YTkwZjgyN2RmNzQ1MjBlOTM5Yzc5NGZjNzQxM2RhY2UyMWM0ZGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDggMjI6MzU6MDQgMjAwOCArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU4ZjNjNTdjNjAwOGI0MmUwMWY1NTFkM2JlNmVmZDg4YzE0YWM4N2YKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTWFyIDggMjE6MzA6MDQgMjAwOCArMDEwMAoKICAgIGVzZDogRml4IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZnBnYV9ib290JyBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDc1NDY5ZDQ4YzA1Nzk1MTQ0ZjRiOGJhNzZhZGRiYjQ5MjBhN2JiYQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU2F0IE1hciA4IDA5OjI1OjQ5IDIwMDggKzA5MDAKCiAgICBuZXQ6IHJ0bDgxNjk6IEFkZCBwcm9jZXNzaW5nIHdoZW4gT1dOYml0IGRpZCd0IGVuYWJsZSBpbiBydGxfcmVjdigpCgogICAgV2hlbiBydGxfcmVjdigpIG9mIHJ0bDgxNjkgaXMgY2FsbGVkLCBPV05iaXQgb2Ygc3RhdHVzIHJlZ2lzdGVyCiAgICBpcyBub3QgZW5hYmxlIG9jY2FzaW9uYWxseS4KICAgIHJ0bF9yZWN2KCkgZG9lc24ndCB3b3JrIG5vcm1hbGx5IHdoZW4gdGhlIGRyaXZlciBkb2Vzbid0IGRvCiAgICBhcHByb3ByaWF0ZSBwcm9jZXNzaW5nLgogICAgVGhpcyBwYXRjaCBmaXggdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA4MmFmYWJmZWI4YWU2YTI3YzdiMzk2MDExZWE5OWY0NzEyYWE3M2ZhCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgNyAwODoxNToyOCAyMDA4ICswMTAwCgogICAgbWdzdXZkOiB1cGRhdGUgYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIGluaXRpYWxpemUgdGhlIFVQSU94IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZTQ5MmM5MGMyNjIxNWU0NTlhZWMwZmRmMGY4ZWYxZmQyMDQ5ODhmNQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTWFyIDcgMDg6MTM6NDEgMjAwOCArMDEwMAoKICAgIG1nY29nZTogdXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBhZGQgc3VwcG9ydCBmb3IgdGhlIGNvbmZpZyBGbGFzaC4KICAgIGluaXRpYWxpemUgdGhlIFVQSU94IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMjcwZmUyNjFiN2Y5MjkyODAwYjJiM2QxYmYxOWFlN2NiYzg4MDI1OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgNyAxMjoyNzozMSAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogbWFrZSBkdGIgYmFzZW5hbWUgZmlsZSByZWZlcmVuY2VzIGVxdWFsIHRob3NlIG9mIGxpbnV4CgogICAgdGhlIGR0cyBmaWxlIGJhc2VuYW1lcyB3ZXJlIHVwZGF0ZWQgaW4gbGludXggLSB0aGlzIGhlbHBzIGF2b2lkCiAgICBpbmFkdmVydGVudGx5IGxvYWRpbmcgYW55IG9sZCBkdGJzIGxheWluZyBhcm91bmQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMzBiNjE1NGYxNmY1ZmZhNGE5ZjViZmNhNWUxMTRkNzJiNmVmNjc1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNjowODoyMiAyMDA4IC0wNjAwCgogICAgbmV0OiB1ZWNfcGh5OiBhY3R1YWxseSBpbmNyZW1lbnQgdGhlIHRpbWVvdXQgY291bnRlcgoKICAgIGFsbG93IHUtYm9vdCB0byByZWNvdmVyIChhbmQsIGUuZy4sIHN3aXRjaCB0byBhbm90aGVyIGludGVyZmFjZSkgaW4gdGhlCiAgICBjYXNlIHdoZXJlIGEgUEhZIGRvZXMgbm90IHJlcG9ydCBhdXRvbmVnb3RpYXRpb24gaXMgY29tcGxldGUgd2l0aGluIGl0cwogICAgdHdvIHNlY29uZCB0aW1lb3V0IHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzcyMDAzZTQzOTU3ZWUwYzg5NWFiZWQ3Y2Q4MmNiZTcyODIwY2JiOApBdXRob3I6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIE1hciA1IDIxOjM4OjEyIDIwMDggKzAxMDAKCiAgICBmaXggdGFpaHUgc29mdCBzcGlfcmVhZAoKICAgIFRoZSB0YWlodSBib2FyZCB1c2VkIGdwaW9fcmVhZF9vdXRfYml0IHdoaWNoIHJlYWRzIHRoZSBvdXRwdXQgcmVnaXN0ZXIgYW5kIG5vdAogICAgdGhlIHBpbiBzdGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgoKY29tbWl0IGZjODRhODQ5NWFjNzUwZjZiNGFkYWU4MWY4YzRmMTAwZjY1YjYzNDAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgNyAwODowMTo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBTZXF1b2lhOiBBZGQgZGV2aWNlIHRyZWUgKGZkdCkgTGludXggYm9vdGluZyBkZWZhdWx0IGVudiB2YXJpYWJsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYmQ0NDU4Y2I0N2FiZWNhYmQ0MDZiMTIxMDQ1N2JlOTZjNjlmYzQ5ZApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciA0IDE2OjU5OjIyIDIwMDggKzA4MDAKCiAgICA4Mzd4RU1EUzogSW1wcm92ZSB0aGUgc3lzdGVtIHBlcmZvcm1hbmNlCgogICAgMS4gTWFrZSB0aGUgQ1NCIGJ1cyBwaXBlbGluZSBkZXB0aCBhcyA0LCBhbmQgZW5hYmxlCiAgICAgICB0aGUgcmVwZWF0IG1vZGU7CiAgICAyLiBSYWlzZSB0aGUgZVRTRUMgZW1lcmdlbmN5IHByaW9yaXR5OwogICAgMy4gVXNlIHRoZSBoaWdoZXN0IElQIGJsb2NrcyBjbG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4YWI1OGIyMTI0ODFiMWM1Nzk0N2VhMjFhYTk2YzRjZTgwMGQwYjQKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA2IDE2OjQ1OjUzIDIwMDggKzAxMDAKCiAgICBSZXBsYWNlICJydW4gbG9hZDsgcnVuIHVwZGF0ZSIgd2l0aCBjb25kaXRpb25hbGl6ZWQgInJ1biBsb2FkIHVwZGF0ZSIuCgogICAgVGhlIGxhdHRlciB2ZXJzaW9uIHN0b3BzIHdoZW4gInJ1biBsb2FkIiBmYWlscyBmb3Igd2hhdGV2ZXIgcmVhc29ucwogICAgcmVuZGVyaW5nIHRoZSBjb21iaW5hdGlvbiAqYSBsb3QqIG1vcmUgc2VjdXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDZiYzExMzg4NmQ3ZDMxNmRmMWE0ZTQ1OWJlYzhiYWYwMjc1MTg1NTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzo0MDo0MSAyMDA4ICswMTAwCgogICAgbmV0OiBQcmludCBlcnJvciBtZXNzYWdlIHVwb24gbmV0IHVzYWdlIHdoZW4gbm8gZXRoZXJuZXQtaW50ZXJmYWNlIGlzIGZvdW5kCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gc2VlbiBvbiBQUEM0eHggYm9hcmRzLCB3aGVuIG5vIE1BQyBhZGRyZXNzIGlzCiAgICBkZWZpbmVkLiBUaGVuIG5vIGV0aGVybmV0IGludGVyZmFjZSBpcyBhdmFpbGFibGUgYnV0IGEgc2ltcGxlICJ0ZnRwIgogICAgY29tbWFuZCB3aWxsIHJldHVybiB3aXRob3V0IGFueSBlcnJvciBtZXNzYWdlIHdoaWNoIGlzIHF1aXRlIGNvbmZ1c2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTMwYTU0OWEzNTUzMDMyZDgwOWUwMzU2MzA2YjYyZGUwYjEyNTkwMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgNCAxMDowMzowMyAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGVycm9uZW91cyBvciBleHRyYSBzcGQuaCAjaW5jbHVkZXJzLgoKICAgIE1hbnkgb2YgdGhlIHNwZC5oICNpbmNsdWRlcnMgZG9uJ3QgbmVlZCBpdCwKICAgIGFuZCB3YW50ZWQgdG8gaGF2ZSBzcGRfc2RyYW0oKSBkZWNsYXJlZCBpbnN0ZWFkLgogICAgU2luY2UgdGhleSBkaWRuJ3QgZ2V0IHRoYXQsIHNvbWUgYWxzbyBoYWQgb3BlbgogICAgY29kZWQgZXh0ZXJuIGRlY2xhcmF0aW9ucyBvZiBpdCBpbnN0ZWFkIG9yIGFzIHdlbGwuCiAgICBGaXggaXQgYWxsIHVwIGJ5IHVzaW5nIHNwZF9zZHJhbS5oIHdoZXJlIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0NDc1Mzg2Y2VmMTRhZjNmZDg4ZjA1MThiNjg4ZTc1NTY2OTQ4NmQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTc6NDE6MjggMjAwOCArMDEwMAoKICAgIFBDUzQ0MEVQOiBmaXggYnVpbGQgcHJvYmxlbXMgKHJlZHVuZGFudCAjZGVmaW5lKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTg1ZTJmYTg1ZWMwOWE2ZmFjMjg0NmQxZDg4MWQ4NzM3ZTJiYmRhOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE3OjM5OjI1IDIwMDggKzAxMDAKCiAgICBuZXQ6IFByaW50IGVycm9yIG1lc3NhZ2UgdXBvbiBuZXQgdXNhZ2Ugd2hlbiBubyBldGhlcm5ldC1pbnRlcmZhY2UgaXMgZm91bmQKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSBzZWVuIG9uIFBQQzR4eCBib2FyZHMsIHdoZW4gbm8gTUFDIGFkZHJlc3MgaXMKICAgIGRlZmluZWQuIFRoZW4gbm8gZXRoZXJuZXQgaW50ZXJmYWNlIGlzIGF2YWlsYWJsZSBidXQgYSBzaW1wbGUgInRmdHAiCiAgICBjb21tYW5kIHdpbGwgcmV0dXJuIHdpdGhvdXQgYW55IGVycm9yIG1lc3NhZ2Ugd2hpY2ggaXMgcXVpdGUgY29uZnVzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzODRmYWFhZmI5OTljYWUzY2U0NDdjOTNlMjhhMGI3ZTJlNWZlZjUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE3OjM4OjUwIDIwMDggKzAxMDAKCiAgICBXN09MTUMvVzdPTE1HOiBmaXggYnVpbGQgcHJvYmxlbXMgKHJlZHVuZGFudCAjZGVmaW5lKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjkzMDFlMWNkYTI5NjI0NWJhMDUyZDdiMDgzMjExOTljM2QwYWY5ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNDo1ODozMSAyMDA4ICswMTAwCgogICAgTWFrZWZpbGU6IGZpeCBwcm9ibGVtIHdpdGggb3V0LW9mLXRyZWUgYnVpbGRzIGludHJvZHVjZWQgYnkgNTAxM2MwOWYKCiAgICBDb21taXQgNTAxM2MwOWYgKE1ha2VmaWxlOiBjbGVhbnVwICJjbGVhbiIgdGFyZ2V0KSBpbnRyb2R1Y2VkIGEKICAgIHByb2JsZW0gZm9yIG91dC1vZi10cmVlIGJ1aWxkcyB3aGljaCBjYXVzZWQgIm1ha2UgY2xlYW4iIHRvIGZhaWwuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkZmVjZTk1MDA1NTZiZWQ1ZDgyNDRiMWMxNWQ5NzNjZWM3YzI1YmZlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDExOjU4OjI2IDIwMDggKzAxMDAKCiAgICBleGFtcGxlcy9NYWtlZmlsZTogYnVpbGQgImhlbGxvX3dvcmxkIiBvbiA4eHgsIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc0ZWIwMjIyNTk0ZmQyM2FhZmRmMTY4ZTYwZTg3MjgxNGVlYThiNjIKQXV0aG9yOiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KRGF0ZToJTW9uIE1hciAzIDE1OjI3OjA1IDIwMDggLTA1MDAKCiAgICBQUEM0eHggKFNlcXVvaWEpOiBGaXggRXRoZXJuZXQgInJlbW90ZSBmYXVsdCIgcHJvYmxlbXMKCiAgICBFdmVyeSBub3cgYW5kIHRoZW4gYSBTZXF1b2lhIGJvYXJkIChvciBlcXVpdmFsZW50IGhhcmR3YXJlKSBoYWQKICAgIHByb2JsZW1zIGNvbm5lY3RpbmcgdG8gYSBHaWdhYml0IGNhcGFibGUgbmV0d29yayBpbnRlcmZhY2UuCgogICAgVGhlcmUgd2VyZSBkaWZmZXJlbmNlcyBpbiB0aGUgUEhZIHNldHVwIGJldHdlZW4gTGludXggYW5kIFUtQm9vdC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLiBBcHBhcmVudGx5ICJyZW1vdGUgZmF1bHQiIGlzIGJlaW5nIHNldCwKICAgIHdoaWNoIHNpZ25hbHMgdG8gc29tZSBkZXZpY2VzIChvbiB0aGUgb3RoZXIgZW5kIG9mIHRoZSBjYWJsZSkgdGhhdCBhCiAgICBmYXVsdCBoYXMgb2NjdXJyZWQsIHdoaWxlIG90aGVyIGRldmljZXMgaWdub3JlIGl0LiBJIGJlbGlldmUgdGhlIFJGIGJpdAogICAgd2FzIGNhdXNpbmcgdGhlIGlzc3VlLCBidXQgSSByZW1vdmVkIFQ0IGFsc28sIHRvIG1hdGNoIHVwIHdpdGggTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBOdXNzIDxtaWtlQHRlcmFzY2FsYS5jb20+Cgpjb21taXQgNDkxZmI2ZGVhOWY1MmZkYjljYjU5OTZlOGU5NzhiOWU5Njg1MTc5ZgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMyAwOTo1ODo1MiAyMDA4IC0wNjAwCgogICAgZml4IFFFIGZpcm13YXJlIHVwbG9hZGluZyBsaW1pdAoKICAgIEZpeCBhIHR5cG8gaW4gcWVfdXBsb2FkX2Zpcm13YXJlKCkgdGhhdCBwcmV2ZW50ZWQgdXBsb2FkaW5nIGZpcm13YXJlIG9uCiAgICBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIG9uZSBSSVNDIGNvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MmJhNThlMGMzMDJiMzM5YTNjMmZhYTYwMDZhMDEzYzZmMTg2YjdhCkF1dGhvcjogQmVybmhhcmQgTmVtZWMgPGJuZW1lY0BnYW5zc2xvc2VyLmNvbT4KRGF0ZToJTW9uIE1hciAzIDExOjU3OjIzIDIwMDggKzAwMDAKCiAgICBGaXggZW5kaWFuZXNzIHByb2JsZW0gaW4gY3JhbWZzIGNvZGUgKGNyYW1mcyBpcyBhbHdheXMgaG9zdC1lbmRpYW4gaW4gTGludXgpCgogICAgT3JpZ2luYWxseSBwb2ludGVkIG91dCBieSBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QHRib3guYml6PiwKICAgIHNlZSBodHRwOi8vdGhyZWFkLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMjI4NDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZXJuaGFyZCBOZW1lYyA8Ym5lbWVjIDxhdD4gZ2Fuc3Nsb3Nlci5jb20+Cgpjb21taXQgODRkMGMyZjFlMzljYWZmNThiZjc2NWE3YWI3YzcyZGEyM2MyNWVjOApBdXRob3I6IEtpbSBCLiBIZWlubyA8S2ltLkhlaW5vQGJsdWVnaWdhLmNvbT4KRGF0ZToJTW9uIE1hciAzIDEwOjM5OjEzIDIwMDggKzAyMDAKCiAgICBmaXggY29weSBmcm9tIHJhbSB0byBkYXRhZmxhc2gKCiAgICBJZiBJIHRyeSB0byAiY3AuYiA8cmFtPiA8ZGF0YWZsYXNoPiIsIHUtYm9vdCBzZWxlY3RzIG5vcm1hbCBmbGFzaAogICAgcm91dGluZXMgaW5zdGVhZCBvZiBkYXRhZmxhc2guIFRoaXMgaXMgYmVjYXVzZSBpdCBjaGVja3MgImlmIHNvdXJjZQogICAgYWRkcmVzcyBpcyBub3QgZGF0YWZsYXNoIiBpbnN0ZWFkIG9mIHRhcmdldCBhZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBCLiBIZWlubyA8S2ltLkhlaW5vQGJsdWVnaWdhLmNvbT4KCmNvbW1pdCAzMmJmM2QxNDNhODg4ZjhkZWFjZmRjYzk3ZTg5OGY2YzA2ZDBhZWE0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzIDEyOjE2OjQ0IDIwMDggKzAxMDAKCiAgICBGaXggcXVvdGluZyBwcm9ibGVtIChwcmVib290IHNldHRpbmcpIGluIG1hbnkgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWIwYjJiNmZjOWZlMjJlMzg2NGMyYTU3MzE2ZDkxYTI1MDdlYzIxNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMyAxMjozNjo0OSAyMDA4ICswMTAwCgogICAgQURTNTEyMTogRml4IGRlZmF1bHQgZW52aXJvbm1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MWM4MjA3NmFlNDkyYmIxZjlkOWM0N2E0ODEzMTQ2MzFkMzJkYzhlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAyIDE2OjEyOjMxIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogRml4IG1pc3NpbmcgdW5jb25maWcgYW5kIG1rY29uZmlnIHVzZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGNlNGU1YzJjMDJjYjdlOGFkZGRmN2I2NTFkMzA1MGQ4MWNlNGMxZApBdXRob3I6IG1pY2hhZWwgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgpEYXRlOglTdW4gTWFyIDIgMjM6MzM6NDYgMjAwOCArMDEwMAoKICAgIEZpeCBjaGVja2luZyBmYXQzMiBjbHVzdGVyIHNpemUuCgogICAgVGhpcyBmaXhlcyB0aGUgY2x1c3RlciBzaXplIHRlc3RzIGluIHRoZSBGQVQzMiBmaWxlIHN5c3RlbS4KICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIFZGQVQgc3VwcG9ydCBkb2Vzbid0IHdvcmsgaWYgdGhlCiAgICByZWZlcnJlZCBjbHVzdGVyIGhhcyBhbiBvZmZzZXQgPiAxNmJpdCByZXByZXNlbnRhdGlvbiwgY2F1c2luZwogICAgImZhdGxvYWQiIGFuZCAiZmF0bHMiIGNvbW1hbmRzIGV0Yy4gdG8gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBtaWNoYWVsIHRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+Cgpjb21taXQgNjYxYmFkNjNhMDc2YTk2YzM5YzY0ZjEzNjkxNWYxNDY3MjVhZjkyYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMiAyMjo1NzoyMyAyMDA4ICswMTAwCgogICAgUHJlcGFyZSB2MS4zLjItcmMyIHJlbGVhc2UgY2FuZGlkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3Njk1N2NiM2Q2MjFiZjY2NDMxMTkwOGU1OTYyZTE1MWM2MzNjMjg1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDEgMTI6MTE6NDAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRU1BQzogRml4IDQwNUVaIGZpZm8gc2l6ZSBzZXR1cCBpbiBFTUFDX01SMQoKICAgIFRoZSA0MDVFWiBvbmx5IHN1cHBvcnRzIDUxMiBieXRlcyBvZiByeC0vdHgtZmlmbyBFTUFDIHNpemVzLiBCdXQKICAgIGN1cnJlbnRseSA0ay8yayBpcyBjb25maWd1cmVkLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCgogICAgVGhhbmtzIHRvIFRob21hcyBLaW5kbGVyIDx0a2luZGxlckBsZW5vcmQuZGU+IGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTE4OTc4YzhlYjQzODAzZTI3OTQyMzM5MjJkZjQyNDlmYTI3OGI4MwpBdXRob3I6IFdvb2RydWZmLCBSaWNoYXJkIDxyLXdvb2RydWZmMkB0aS5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTc6MzQ6MzUgMjAwOCAtMDYwMAoKICAgIEZpeCBhbGlnbm1lbnQgZXJyb3Igb24gQVJNIGZvciBtb2R1bGVzCgogICAgRml4IGFsaWdubWVudCBmYXVsdCBvbiBBUk0gd2hlbiBydW5uaW5nIG1vZHVsZXMuICBXaXRoIG91dCBhbiBleHBsaWNpdAogICAgbGlua2VyIGZpbGUgZ2NjNC4yLjEgd2lsbCBoYWxmIHdvcmQgYWxpZ24gX19ic3Nfc3RhcnQncyB2YWx1ZS4gIFRoZSB3b3JkCiAgICBkZXJlZmVyZW5jZSB3aWxsIGNyYXNoIGhlbGxvX3dvcmxkLgoKICAgIHNpZ25lZC1vZmYtYnkgUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgoKY29tbWl0IGNlMTEyMGRkNzAzZTZmMTJjNTllNGViYTk5NjIzNTZhMDMwMGI4MzIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTc6NDU6MzEgMjAwOCArMDgwMAoKICAgIGZzOiBGaXggZXh0MiByZWFkIGlzc3VlCgogICAgVGhlIGV4dDIgYWxpZ25lZCBwcm9jZXNzIHdpbGwgY29ycnVwdCB0aGUga2V5CiAgICBkYXRhIHN0cnVjdCwgdGhlIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTAxM2MwOWY3YTU2NzU5NTJhM2NhODhiNmJjNmM5MjRlNjNhZjMzZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMiAyMjo0NTozMyAyMDA4ICswMTAwCgogICAgTWFrZWZpbGU6IGNsZWFudXAgImNsZWFuIiB0YXJnZXQKCiAgICBNYWtlIHN1cmUgQ0RQQVRIIHNldHRpbmdzIGNhbm5vdCBpbnRlcmZlcmUuCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmZkYTU4NmZjMTM3MzI0M2M5Nzk0YmFiZGU2OTUwMGY2MjkzYThkOApBdXRob3I6IExpIFlhbmcgPGxlb2xpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTE6NDY6MDUgMjAwOCArMDgwMAoKICAgIGFkZCBjc2NvcGUgYnVpbGQgdGFyZ2V0CgogICAgQWRkIGNzY29wZSBidWlsZCB0YXJnZXQgdG8gZ2VuZXJhdGUgY3Njb3BlIGRhdGFiYXNlIGZvciBjb2RlIGJyb3dzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IExpIFlhbmcgPGxlb2xpQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjY1NWFkZWY2NWU0Y2Y2YjkyOTA1NGIwNDllZTE5YWU5YjVjY2JlMgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTU6MDY6MzkgMjAwOCAtMDYwMAoKICAgIG5ldDogdWVjX3BoeTogaGFuZGxlIDg4ZTExMTEgcmV2LkIyIGVycmF0dW0gNS42CgogICAgZXJyYXR1bSA1LjYgc3RhdGVzIHRoZSBhdXRvbmVnIGNvbXBsZXRpb24gYml0IGlzIGZ1bmN0aW9uYWwgb25seSBpZiB0aGUKICAgIGF1dG9uZWcgYml0IGlzIGFzc2VydGVkLgoKICAgIFRoaXMgZml4ZXMgYW55IHNlY29uZGFyaWx5LWlzc3VlZCBuZXR3b3JraW5nIGNvbW1hbmRzIG9uIG5vbi1naWdhYml0CiAgICBsaW5rcyBvbiB0aGUgbXBjODM2MCBtZHMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZjkxZGI3ZjU4MmNhMTdiMWYxOWYxMDE4OWMwMjU2OTZmMzMzZDJlCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMjYgMDk6Mzg6MTQgMjAwOCAtMDcwMAoKICAgIE1QQzUxMjFlIEFEUyBQQ0kgc3VwcG9ydCB0YWtlIDMKCiAgICBBZGRzIFBDSSBzdXBwb3J0IGZvciBNUEM1MTIxCgogICAgVGVzdGVkIHdpdGggZHJpdmVycy9uZXQvcnRsODEzOS5jCgogICAgU3VwcG9ydCBpcyBjb25kaXRpb25hbCBzaW5jZSBQQ0kgb24gb2xkIHNpbGljb24gZG9lcyBub3Qgd29yay4KCiAgICBhZHM1MTIxX1BDSV9jb25maWcgdHVybnMgb24gUENJCgogICAgSW4gdGhpcyB2ZXJzaW9uLCBjb25kaXRpb24gY29tcGlsYXRpb24gb2YgUENJIGNvZGUgaGFzIGJlZW4gbW92ZWQKICAgIGZyb20gaWZkZWYgaW4gYm9hcmQvYWRzNTEyMS9wY2kuYyB0byBib2FyZC9hZHM1MTIxL01ha2VmaWxlIGFzCiAgICBzdWdnZXN0ZWQgYnkgSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NGI0ZGJlZDQxMzNmNjU3NzA1YjdjNTE5MzIwOWRhOTk3ODI0M2E3CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglNb24gRmViIDI1IDIzOjUzOjA3IDIwMDggKzAxMDAKCiAgICBGaXggd2FybmluZ3Mgd2hpbGUgY29tcGlsYXRpb24gb2YgcG9zdC9kcml2ZXJzL21lbW9yeS5jCgogICAgRml4IHdhcm5pbmdzIHdoaWxlIGNvbXBpbGF0aW9uIHdpdGggbmV3IGdjYyBpbiBlbGRrLTQuMgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA0ZmFlMzVhNTNiM2U5NTgyNTRkNjU3NGExY2M3ZTEwODExZmM2NzI2CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglNb24gRmViIDI1IDIwOjU0OjA0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIDR4eF9lbmV0LmMgZHJpdmVyCgogICAgVS1Cb290IGNyYXNoZXMgaW4gdGhlIG5ldCBsb29wIGlmIENPTkZJR180eHhfRENBQ0hFIGlzCiAgICBlbmFibGVkLiBUbyByZXByb2R1Y2UgdGhlIHByb2JsZW0gZW5zdXJlIHRoYXQgJ2V0aHJvdGF0ZScKICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzbid0IHNldCB0byAibm8iIGFuZCB0aGVuIHJ1bgogICAgInRmdHAgMjAwMDAwIG5vdF9leGlzdGVudF9maWxlIi4KICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNjBlYzY1NGM1ZWI4MGQwZmUwYzM4YTNiZDQyMTQwMjE1YmMwNjQ4NApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAyNSAyMDowNDoyMCAyMDA4ICswMTAwCgogICAgUE9TVDogRGlzYWJsZSBjYWNoZSB3aGlsZSBTUFIgUE9TVAoKICAgIEN1cnJlbnRseSAoc2luY2UgY29tbWl0IGIyZTIxNDJjKSB1LWJvb3QgY3Jhc2hlcyBvbgogICAgc2VxdW9pYSBib2FyZCB3aGlsZSBTUFIgdGVzdCBpZiBDT05GSUdfNHh4X0RDQUNIRSBpcwogICAgZW5hYmxlZC4gVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGUgY2FjaGUgd2hpbGUgU1BSIHRlc3QuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGMzMTNiMmM2YzU1NWU3ZDg5ZWM1OWJkNTFjNTlhYjE2NGFkMDEwNWQKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxNzo1Mjo0MCAyMDA4ICswMTAwCgogICAgVFFNNTIwMDogdXNlIGF1dG9tYXRpYyBmZHQgbWVtb3J5IGZpeHVwIChwYXJ0IDIpCgogICAgQ2FsbCBmZHRfZml4dXBfbWVtb3J5KCkgb24gdGhlIGJvYXJkcyBUUU01MjAwLCBUUU01MjAwX0IsIFRRTTUyMDBTLAogICAgVEI1MjAwIGFuZCBUQjUyMDBfQiB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIHdpdGggdGhlIG1lbW9yeSB2YWx1ZXMKICAgIGRldGVjdGVkIGJ5IFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA0NGNlZWMyNTNlYTk0MWIzMDFhYmY0YjA3OWQ1MjMyNGRlZjY5ZDkyCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBGZWIgMjUgMTU6MTc6MDUgMjAwOCArMDEwMAoKICAgIFRRTTUyMDA6IHVzZSBhdXRvbWF0aWMgZmR0IG1lbW9yeSBmaXh1cAoKICAgIENhbGwgZmR0X2ZpeHVwX21lbW9yeSgpIG9uIHRoZSBib2FyZHMgVFFNNTIwMCwgVFFNNTIwMF9CLCBUUU01MjAwUywKICAgIFRCNTIwMCBhbmQgVEI1MjAwX0IgdG8gZml4dXAgdGhlIC9tZW1vcnkgbm9kZSB3aXRoIHRoZSBtZW1vcnkgdmFsdWVzCiAgICBkZXRlY3RlZCBieSBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZjNhMzI5YWNiMjYwMTdkOGUxMGU5YzkzZTFlNzI2YzJhNWFjNjM0YQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gRmViIDI1IDEzOjI3OjUyIDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiBmaXggYnVnIGluIFNEUkFNIGluaXRpYWxpemF0aW9uIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBTRFJBTSBpbml0aWFsaXphdGlvbiBjb2RlIGZvciB0aGUKICAgIFRRTTUyMDAuIFRoZSBoaV9hZGRyIGJpdCBpcyBub3cgc2V0IGNvcnJlY3RseS4gV2l0aG91dCB0aGlzIHBhdGNoCiAgICB0aGUgaGlfYWRkciBiaXQgaXMgYWx3YXlzIHNldCB0byAxLCBpZiB0aGUgc2Vjb25kIFNEUkFNIGJhbmsgaXMKICAgIG5vdCBwb3B1bGF0ZWQuCgogICAgRm9yIG90aGVyIE1QQzUyMDAgYm9hcmRzIGEgY29ycmVzcG9uZGlnIHBhdGNoIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGllZAogICAgc29tZSB0aW1lIGFnbywgc2VlIGNvbW1pdCBhNjMxMDkyODFhZDQxYjBmYjQ4OWZkY2I5MDExNzFmNzZiY2RiYzJjLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgLS0KICAgIEZvcmdldCB0aGUgZmlyc3QgcGF0Y2ggcGxlYXNlLiBJIGNvbmZ1c2VkIGZsYXNoIHdpdGggU0RSQU0gaW4KICAgIHRoZSBjb21tZW50IC4uLgoKY29tbWl0IDIxN2JmNmI2YTMxM2Q5Y2NiNjE5YTRkYmMwOWY3M2Y3N2NkNDhkZjEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gRmViIDI1IDAwOjAzOjEyIDIwMDggKzAxMDAKCiAgICBteDFmczIvZmxhc2g6IEZpeCBtdWx0aXBsZSBjb21waWxlciB3YXJuaW5ncwoKICAgICJwb2ludGVyIHRhcmdldHMgaW4gYXNzaWdubWVudCBkaWZmZXIgaW4gc2lnbmVkbmVzcyIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU1OTljMjhjZWY1NWJlNDJhOGNhNmZhODA4NmIxYTQ0ZTU2YTg1ZDIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gRmViIDI1IDAwOjAzOjExIDIwMDggKzAxMDAKCiAgICBhcm0taW14OiBGaXggcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTeW5jIHJlZ2lzdGVyIGRlZmluaXRpb25zIHdpdGggbGludXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGM5YmNmNzVmZWNjNTg4ODZhZjc3ZDJhNTcxY2ZmMmVhYjM5ZWFiNmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gRmViIDI1IDAwOjAzOjEwIDIwMDggKzAxMDAKCiAgICBhY3R1YTEvYWN0dWEyL2FjdHVhMzogRml4IG11bHRpcGxlIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncwoKICAgIC0gYWN0dWExOgoJYWN0dXgxLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4MS5jOjkyOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoKICAgIC0gYWN0dWEyOgoJYWN0dXgyLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4Mi5jOjEwMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdzJwoJYWN0dXgyLmM6OTk6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ3Jlc2V0X3BoeSc6CglhY3R1eDIuYzoxMzA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnaScKCiAgICAtIGFjdHVhMzoKCWFjdHV4My5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDMuYzoxMTQ6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmOGZhNjM2OGE2YTBjMDIxNjRkYThlMmY1MmYxOGQ0NTdjNjk3N2JkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU3VuIEZlYiAyNCAxMTo0NDoyOSAyMDA4ICswOTAwCgogICAgUmVtb3ZlIHRoZSBfX1NUUklDVF9BTlNJX18gY2hlY2sgZnJvbSB0aGUgX191NjQvX19zNjQgZGVjbGFyYXRpb24gb24gMzJiaXQgdGFyZ2V0cy4KCiAgICBUaGUgcHJldmlvdXMgcGF0Y2ggd2FzIGxhY2tpbmcgb2YgaTM4NiwgbWljcm9ibGF6ZSwgbmlvcyBhbmQgbmlvczIuIFRoaXMKICAgIHBhdGNoIHRyaWVzIHRvIGZpeCB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMDVlMDdiMWVhMjI4NDRlOTQ2Y2ZjZjdkNWU4YTAxOTlkMThkMmE5NQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMjI6MjI6NDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggRkRUIGJsb2IgdG90YWxzaXplIGNhbGN1bGF0aW9uIGluIGJvb3RfcmVsb2NhdGVfZmR0KCkKCiAgICBEbyBub3QgdXNlIGdsb2JhbCBmZHQgYmxvYiBwb2ludGVyLCBjYWxjdWxhdGUgYmxvYiBzaXplIGZyb20gcm91dGluZQogICAgYXJndW1lbnQgYmxvYiBwb2ludGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDFjYzUyODc5Yzg5NjY1MDdkYWQ5ZmI1NzU0ODFlNmQzOTg1ZTY0ZQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUdWUgRmViIDEyIDAwOjU4OjMxIDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBhbmQgdXNlIGEgbm9kZSBpdGVyYXRpb24gaGVscGVyIGZ1bmN0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBmZHRfbmV4dF9ub2RlKCkgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8KICAgIGl0ZXJhdGUgdGhyb3VnaCBub2RlcyBvZiB0aGUgdHJlZSB3aGlsZSBrZWVwaW5nIHRyYWNrIG9mIGRlcHRoLiAgVGhpcwogICAgZnVuY3Rpb24gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgaXRlcmF0aW9uIGNvZGUgaW4gYSBsb3Qgb2Ygb3RoZXIKICAgIGZ1bmN0aW9ucywgYW5kIGlzIGFsc28gZXhwb3J0ZWQgZm9yIHVzZSBieSBsaWJyYXJ5IHVzZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDhjZjMwODA5YTgyOTAyYTQ3MTg2NmQyZjA3NzI1Y2UzYjhhMjIyOTEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDE2OjAwOjI0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGxpYmZkdCBzdXBwb3J0IHRvIG1raW1hZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE2ZTUzMGYwMGQzMWE4NDk0YTA0MjI3OTliMmI5YTY5MmE5YzBlYjkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDE2OjAwOjIzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIHNoYTEubyBvYmplY3QgdG8gbWtpbWFnZSBiaW5hcnkgYnVpbGQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGRmNmYxYjg5NWM5OTc5NzhmMDNhZmUwNDUwMmVlNzZiN2JhMzRhYjkKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDE2OjAwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGNvbXBvbmVudCBoYW5kbGluZyBmb3IgbGVnYWN5IG11bHRpIGNvbXBvbmVudCBpbWFnZXMKCiAgICBVc2UgdWludDMyX3Qgd2hlbiBhY2Nlc3Npbmcgc2l6ZSB0YWJsZSBpbiBpbWFnZV9tdWx0aV9jb3VudCgpIGFuZAogICAgaW1hZ2VfbXVsdGlfZ2V0aW1nKCkgZm9yIG11bHRpIGNvbXBvbmVudCBpbWFnZXMuCgogICAgQWRkIG1pc3NpbmcgdWltYWdlX3RvX2NwdSgpIGVuZGlhbm5lc3MgY29udmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDU3MGFiYjBhZDEyMGY2MDAyYmNhYTNjZjZmMzJiZDRjYTJlMWIyNDgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDE1OjU5OjU5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gU2hhcmUgY29tbW9uIHVJbWFnZSBjb2RlIGJldHdlZW4gbWtpbWFnZSBhbmQgVS1ib290CgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBmb2xsb3dpbmcgY29tbW9uIHJvdXRpbmVzOgoKICAgIDEpIERlZGljYXRlZCBta2ltYWdlIHByaW50X2hlYWRlcigpIGlzIHJlcGxhY2VkIHdpdGggY29tbW9uCiAgICBpbWFnZV9wcmludF9jb250ZW50cygpCiAgICBpbWFnZV9wcmludF9jb250ZW50c19ub2luZGVudCgpCgogICAgMikgQ29tbW9uIG9zL2FyY2gvdHlwZS9jb21wIGZpZWxkcyBuYW1lIDwtLT4gaWQgdHJhbnNsYXRpb24gcm91dGluZXMKICAgIGdlbmltZ19nZXRfb3NfbmFtZSgpCiAgICBnZW5pbWdfZ2V0X2FyY2hfbmFtZSgpCiAgICBnZW5pbWdfZ2V0X3R5cGVfbmFtZSgpCiAgICBnZW5pbWdfZ2V0X2NvbXBfbmFtZSgpCiAgICBnZW5pbWdfZ2V0X29zX2lkKCkKICAgIGdlbmltZ19nZXRfYXJjaF9pZCgpCiAgICBnZW5pbWdfZ2V0X3R5cGVfaWQoKQogICAgZ2VuaW1nX2dldF9jb21wX2lkKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDlhNGRhYWQwYTM1ZWI1MTQzMDM3ZWVhOWY3ODZhM2U5ZDY3MmJkZDYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDE0OjU4OjM0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gVXBkYXRlIG5hbWluZyBjb252ZW50aW9uIGZvciBib290bS91SW1hZ2UgcmVsYXRlZCBjb2RlCgogICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBmb2xsb3dpbmcgcHJlZml4IGNvbnZlbnRpb24gZm9yIHRoZQogICAgaW1hZ2UgZm9ybWF0IGhhbmRsaW5nIGFuZCBib290bSByZWxhdGVkIGNvZGU6CgogICAgZ2VuaW1nXwkJLSBkdWFsIGZvcm1hdCBzaGFyZWQgY29kZQogICAgaW1hZ2VfCQktIGxlZ2FjeSB1SW1hZ2UgZm9ybWF0IHNwZWNpZmljIGNvZGUKICAgIGZpdF8JCS0gbmV3IHVJbWFnZSBmb3JtYXQgc3BlY2lmaWMgY29kZQogICAgYm9vdF8JCS0gYm9vdGluZyBwcm9jZXNzIHJlbGF0ZWQgY29kZQoKICAgIFJlbGF0ZWQgcm91dGluZXMgYXJlIHJlbmFtZWQgYW5kIGEgZmV3IHBpZWNlcyBvZiBjb2RlIGFyZSBtb3ZlZCBhcm91bmQgYW5kCiAgICByZS1ncm91cGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNzVmYTAwMmM0NzE3MWI3M2ZiNGMxZjJjMmZlNGQ2MzkxYzEzNjI3NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NTEgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBSZXNwZWN0IGF1dG9zdGFydCBzZXR0aW5nIGluIGxpbnV4IGJvb3RtCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQzZjJmYTBkMjc4NDY3YjIyMzJlNGViMjM3MmY5MDVjM2ZlYmZiZWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjUwIDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gUHJvdmlkZSBhYmlsaXR5IHRvIHJlc3RyaWN0IHJlZ2lvbiB1c2VkIGZvciBib290IGltYWdlcwoKICAgIEFsbG93IHRoZSB1c2VyIHRvIHNldCAnYm9vdG1fbG93JyBhbmQgJ2Jvb3RtX3NpemUnIGVudiB2YXJzIGFzIGEgd2F5CiAgICB0byByZXN0cmljdCB3aGF0IG1lbW9yeSByYW5nZSBpcyB1c2VkIGZvciBib290bS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTgyMmQ3ZmM0ZGQ0NzU1ZDRkMGEyMmYwNWUzM2YzM2QxYTA0ODFkYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDkgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBVc2UgbG1iIGZvciBib290bSBhbGxvY2F0aW9ucwoKICAgIENvbnZlcnQgZ2VuZXJpYyByYW1kaXNrX2hpZ2goKSwgZ2V0X2Jvb3RfY21kbGluZSgpLCBnZXRfYm9vdF9rYmQoKQogICAgZnVuY3Rpb25zIG92ZXIgdG8gdXNpbmcgbG1iIGZvciBhbGxvY2F0aW9uIG9mIHRoZSByYW1kaXNrLCBjb21tYW5kIGxpbmUKICAgIGFuZCBrZXJuZWwgYmQgaW5mby4KCiAgICBDb252ZXJ0IFBQQyBzcGVjaWZpYyBmZHRfcmVsb2NhdGUoKSB0byB1c2UgbG1iIGZvciBhbGxvY2F0aW9uIG9mIHRoZSBkZXZpY2UKICAgIHRyZWUuCgogICAgUHJvdmlkZWQgYSB3ZWFrIGZ1bmN0aW9uIHRoYXQgYm9hcmQgY29kZSBjYW4gY2FsbCB0byBkbyBhZGRpdGlvbmFsCiAgICBsbWIgcmVzZXJ2ZXMgaWYgbmVlZGVkLgoKICAgIEFsc28gaW50cm9kdWNlIHRoZSBjb25jZXB0IG9mIGJvb3RtYXBfYmFzZSB0byBzcGVjaWZ5IHRoZSBvZmZzZXQgaW4KICAgIHBoeXNpY2FsIG1lbW9yeSB0aGF0IHRoZSBib290bWFwIGlzIGxvY2F0ZWQgYXQuICBUaGlzIGlzIHVzZWQgZm9yCiAgICBhbGxvY2F0aW9ucyBvZiB0aGUgY21kbGluZSwga2VybmVsIGJkLCBhbmQgZGV2aWNlIHRyZWUgYXMgdGhleSBzaG91bGQKICAgIGJlIGNvbnRhaW5lZCB3aXRoaW4gYm9vdG1hcF9iYXNlIGFuZCBib290bWFwX2Jhc2UgKyBDRkdfQk9PVE1BUFNaLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjU2MTRlNzkyNjg2M2JmMDIyNWVjODYwZDliMzE5NzQxYTljNDAwNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDggMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgYXV0b3N0YXJ0IGZsYWcgdG8gYm9vdG1faGVhZGVycyBzdHJ1Y3R1cmUKCiAgICBUaGUgYXV0b3N0YXJ0IGVudiB2YXJpYWJsZSB3YXMgZHJvcHBlZCBhcyBwYXJ0IG9mIHRoZSBpbml0aWFsIG5ldyB1SW1hZ2UKICAgIGNsZWFudXAuICBBZGQgaXQgYmFjayBoZXJlIHNvIHRoZSBhcmNoIHNwZWNpZmljIGNvZGUgY2FuIGRlY2lkZSBpZiBpdAogICAgd2FudHMgdG8gcmVhbGx5IGJvb3Qgb3Igbm90LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0ZWQ2NTUyZjcxNTk4M2JmYzdkMjEyYzExOTlhMWY3OTZmMTE0NGFkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0NyAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIEludHJvZHVjZSBsbWIgZnJvbSBsaW51eCBrZXJuZWwgZm9yIG1lbW9yeSBtZ210IG9mIGJvb3QgaW1hZ2VzCgogICAgSW50cm9kdWNlIHRoZSBMTUIgbGliIHVzZWQgb24gUFBDIGluIHRoZSBrZXJuZWwgYXMgYSBjbGVhbiB3YXkgdG8gbWFuYWdlCiAgICB0aGUgbWVtb3J5IHNwYWNlcyB1c2VkIGJ5IHZhcmlvdXMgYm9vdCBpbWFnZXMgYW5kIHN0cnVjdHVyZXMuICBUaGlzIGNvZGUKICAgIHdpbGwgYWxsb3cgdXMgdG8gc2ltcGxpZnkgdGhlIGNvZGUgaW4gYm9vdG0gYW5kIGl0cyBzdXBwb3J0IGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ2NDhjMmU3YTE3M2IwZDdmMTdiZWY0YWRhYTA2MjMwOTBjOWU5MDQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDE5IDIyOjAzOjQ3IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcHBjOiBBbGxvdyBib2FyZHMgdG8gc3BlY2lmeSBlZmZlY3RpdmUgYW1vdW50IG9mIG1lbW9yeQoKICAgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMgd2UgbGltaXRlZCB0aGUgc3RhY2sgdG8gMjU2TSBiZWNhdXNlIHNvbWUgYm9hcmRzCiAgICBjb3VsZCBvbmx5IG1hcCB0aGF0IG11Y2ggdmlhIEJBVFMuCUhvd2V2ZXIgbmV3ZXIgYm9hcmRzIGFyZSBjYXBhYmxlIG9mCiAgICBtYXBwaW5nIG1vcmUgbWVtb3J5IChmb3IgZXhhbXBsZSA4NXh4IGlzIGNhcGFibGUgb2YgZG9pbmcgdXAgdG8gMkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyNzRjZWEyYmRkYmNhMTBjZGFkN2RhYTUxODk1MWI3NWM0NGVmNmJjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0NiAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIHJld29yayBlcnJvciBoYW5kbGluZyBzbyBjb21tb24gZnVuY3Rpb25zIGRvbid0IHJlc2V0CgogICAgQ2hhbmdlZCBpbWFnZV9nZXRfcmFtZGlzaygpIHRvIGp1c3QgcmV0dXJuIE5VTEwgb24gZXJyb3IgYW5kIGhhdmUKICAgIGdldF9yYW1kaXNrKCkgcHJvcG9nYXRlIHRoYXQgZXJyb3IgdG8gdGhlIGNhbGxlci4gIEl0J3MgbGVmdCB0byB0aGUKICAgIGNhbGxlciB0byBjYWxsIGRvX3Jlc2V0KCkgaWYgaXQgd2FudHMgdG8uCgogICAgQWxzbyBtb3ZlZCBjYWxsaW5nIGRvX3Jlc2V0KCkgaW4gZ2V0X2ZkdCgpIGFuZCBmZHRfcmVsb2NhdGUoKSBvbiBwcGMKICAgIHRvIGEgY29tbW9uIGxvY2F0aW9uLiAgSW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIGNoYW5nZSBnZXRfZmR0KCkgYW5kCiAgICBmZHRfcmVsb2NhdGUoKSB0byByZXR1cm4gc3VjY2Vzcy9mYWlsdXJlIGFuZCBub3QgY2FsbCBkb19yZXNldCgpIGF0IGFsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDJiYzA5NWE2Mzk2NzJkZWYxMWQ1ZDA0M2I1Njg4ZDBkYmQ2OTJlYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDUgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IFJlLW9yZGVyIHJhbWRpc2svZmR0IGhhbmRsaW5nIHNlcXVlbmNlCgogICAgRG9pbmcgdGhlIGZkdCBiZWZvcmUgdGhlIHJhbWRpc2sgYWxsb3dzIHVzIHRvIGdyb3cgdGhlIGZkdCB3L28gY29uY2VybgogICAgaG93ZXZlciBpdCBkb2VzIG1lYW4gd2UgaGF2ZSB0byBnbyBpbiBhbmQgZml4dXAgdGhlIGluaXRyZCBpbmZvIHNpbmNlCiAgICB3ZSBkb24ndCBrbm93IHdoZXJlIGl0IHdpbGwgYmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyNzk1MzQ5M2VmMDI1ZmI2OThkNjhjNWRlZTM5YjM2ZjAxZjRkNTMwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0NCAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIHBwYzogRGV0ZXJtaW5lIGlmIHdlIGFyZSBib290aW5nIGFuIE9GIHN0eWxlCgogICAgSWYgd2UgYXJlIGJvb3RpbiBPRiBzdHlsZSB0aGFuIHdlIGNhbiBza2lwIHNldHRpbmcgdXAgc29tZSB0aGluZ3MKICAgIHRoYXQgYXJlIHVzZWQgZm9yIHRoZSBvbGQgYm9vdCBtZXRob2QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE2NjEyYmRmZTdlZjM3Yjk3ODdiNjY4MDBjZjAyYWFkZWQwNWZiZWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQzIDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gRG9uJ3QgcGFzcyBrZGIgdG8gcmFtZGlza19oaWdoIHNpbmNlIHdlIG1heSBub3QgaGF2ZSBvbmUKCiAgICBXZSBkb24ndCBhY3R1YWxseSBuZWVkIHRoZSBrZGIgcGFyYW0gYXMgd2UgYXJlIGp1c3QgdXNpbmcgaXQgdG8gZ2V0CiAgICBiZC0+YmlfbWVtc2l6ZSB3aGljaCB3ZSBjYW4gZ2V0IGZyb20gZ2QtPmJkLT5iaV9tZW1zaXplLiAgQWxzbywgaWYgd2UKICAgIGJvb3QgdmlhIE9GIHdlIG1pZ2h0IG5vdCBhY3R1YWxseSBmaWxsIG91dCBhIGtkYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMmIyMmZhNGJhZWU1MWU2YjQ2N2M0NGVhMWJlMGQxZWNkODZlODc3NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMTY6MzA6NDcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IERvbid0IGljYmkgd2hlbiB1bmxvY2tpbmcgdGhlIGNhY2hlCgogICAgVGhlcmUgaXMgbm8gcmVhc29uIHRvIGljYmkgd2hlbiBpbnZhbGlkYXRpbmcgdGhlIHRlbXBvcmFyeSBzdGFjayBpbgogICAgdGhlIGQtY2FjaGUuICBJdHMgaW1wb3NzaWJsZSBvbiBlNTAwIHRvIGhhdmUgdGhlIGktY2FjaGUgY29udGFpbgogICAgYW55IGFkZHJlc3NlcyBpbiB0aGUgdGVtcCBzdGFjayBhbmQgaXQgY2FuIGJlIHByb2JsZW1hdGljIGluIGdlbmVyYXRpbmcKICAgIHRyYW5zYWN0aW9ucyBvbiB0aGUgYnVzIHRvIG5vbi12YWxpZCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MzRlYTZiNmY4NmY4Yjc1ZWYyYWMwNjFlZjExMGE5OGYxMDNkN2Q2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI3IDE1OjUwOjUwIDIwMDggLTA2MDAKCiAgICBGaXggc291cmNlIGZvciBFQ00gZXJyb3IgSVZQUgoKICAgIFRoZSBzb3VyY2UgdmVjdG9yIGZvciB0aGUgRUNNIHdhcyBiZWluZyBzZXQgdG8gMiwKICAgIGJ1dCB0aGF0J3Mgd2hhdCB0aGUgc291cmNlIHZlY3RvciBmb3IgRERSIHdhcyBiZWluZwogICAgc2V0IHRvLiAgQ2hhbmdlIGl0IHRvIDEuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIxZmFlOGIyYjRlNGU2ZTY0ODc5NmUwN2UyMGFiMTNlOWNiMTg5MjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTQ6Mjk6NTggMjAwOCAtMDYwMAoKICAgIEludmFsaWRhdGUgSU5JVF9SQU0gVExCIG1hcHBpbmdzCgogICAgQ29tbWl0IDBkYjM3ZGMuLi4gIChhbmQgc29tZSBvdGhlcnMpIGNoYW5nZWQgdGhlIElOSVRfUkFNIFRMQgogICAgbWFwcGluZ3MgdG8gYmUgdW5ndWFyZGVkLiAgVGhpcyBjb2xsaWRlZCB3aXRoIGFuIGV4aXN0aW5nICJidWciCiAgICB3aGVyZSB0aGUgbWFwcGluZ3MgZm9yIHRoZSBJTklUX1JBTSB3ZXJlIGJlaW5nIGtlcHQgYXJvdW5kLgogICAgVGhpcyBtZWFudCB0aGF0IHNwZWN1bGF0aXZlIGxvYWRzIHRvIHRob3NlIGFkZHJlc3NlcyB3ZXJlCiAgICBzdWNjZWVkaW5nIGluIHRoZSBUTEIsIGFuZCBnb2luZyBvdXQgdG8gdGhlIGJ1cywgd2hlcmUgdGhleQogICAgd2VyZSBjYXVzaW5nIGFuIGV4Y2VwdGlvbiAodGhlcmUncyBub3RoaW5nIGF0IHRoYXQgYWRkcmVzcykuIFRoZQogICAgRmxhc2ggY29kZSB3YXMgY29pbmNpZGVudGFsbHkgY2F1c2luZyBzdWNoIGEgc3BlY3VsYXRpdmUgbG9hZC4KICAgIFJhdGhlciB0aGFuIGdvIGJhY2sgdG8gbWFwcGluZyB0aGUgSU5JVCBSQU0gYXMgZ3VhcmRlZCwgd2UgZml4CiAgICBpdCBzbyB0aGF0IHRoZSBlbnRyaWVzIGZvciB0aGUgSU5JVF9SQU0gYXJlIGludmFsaWRhdGVkLiAgVGh1cwogICAgdGhlIHNwZWN1bGF0aXZlIGxvYWRzIHdpbGwgZmFpbCBpbiB0aGUgVExCLCBhbmQgaGF2ZSBubyBlZmZlY3QuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0N2I3OTM4ZDNlNTYxZWIyMTVhYTM4NmMzN2ZiNWFjYjVhMzgzYzYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIyOjU2OjE3IDIwMDggKzAxMDAKCiAgICBzYmM4NTQ4OiBGaXggUmV2aXNpb24gcmVhZGluZyBhbmQgdW51c2VkIHZhcmlhYmxlICdwYXRoJwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDk1ZDE2MjM3NGM0NzJmNDY0NTQ0NTM1NTMzODJhZDA3MzVkYzcyNQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjI6NTY6MTYgMjAwOCArMDEwMAoKICAgIHNiYzg1NDg6IEZpeCBjZmkgZmxhc2ggYmFuayBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGVmYmU5ZGJiMTI5Zjg1N2YyNzg1NjkzNjExMmM4YzAyZjAxNmJlNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDI6MjYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDb3JyZWN0IHJhdyBGRFQgYmxvYiBoYW5kbGlnIHdoZW4gQ09ORklHX0ZJVCBpcyBkaXNhYmxlZAoKICAgIER1YWwgZm9ybWF0IGltYWdlIGNvZGUgbXVzdCBwcm9wZXJseSBoYW5kbGUgYWxsIHRocmVlIEZEVCBwYXNzaW5nIG1ldGhvZHM6CiAgICAtIHJhdyBGRFQgYmxvYiBwYXNzZWQKICAgIC0gRkRUIGJsb2IgZW1iZWRkZWQgaW4gdGhlIGxlZ2FjeSB1SW1hZ2UKICAgIC0gRkRUIGJsb2IgZW1iZWRkZWQgaW4gdGhlIG5ldyB1SW1hZ2UKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgcHJvcGVyIHJhdyBGRFQgaGFuZGxpbmcgd2hlbiBubyBGSVQgaW1hZWcgc3VwcG9ydAogICAgaXMgY29tcGlsZWQgaW4uIFRoaXMgaXMgYSBiaXQgdHJpY2t5IGFzIHdlIG11c3QgZGVjdGVkIEZJVCBmb3JtYXQgZXZlbgogICAgd2hlbiBGSVQgdUltYWdlIGhhbmRsaW5nIGlzIG5vdCBlbmFibGVkIGFzIGJvdGggRklUIHVJbWFnZXMgYW5kIHJhdyBGRFQKICAgIGJsb2JzIHVzZSB0aGEgc2FtZSBsb3cgbGV2ZWwgZm9ybWF0IChsaWJmZHQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZmYwNzM0Y2ZmMGZiNTM5N2NlMmY0NjAyZjRmM2U1ZWM5YzhhMzZlOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDI6MjYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBQT1dFUlBDOiBBZGQgaW1hZ2VfZ2V0X2ZkdCgpIHJvdXRpbmUKCiAgICBGRFQgYmxvYiBtYXkgYmUgcGFzc2VkIGVpdGhlcjogKDEpIHJhdyAoMikgb3IgZW1iZWRkZWQgaW4gdGhlIGxlZ2FjeSB1SW1hZ2UKICAgICgzKSBvciBlbWJlZGRlZCBpbiB0aGUgbmV3IHVJbWFnZS4gRm9yIHRoZSAoMikgY2FzZSBlbWJlZGRpbmcgaW1hZ2UgbXVzdCBiZQogICAgdmVyaWZpZWQgYmVmb3JlIHdlIGdldCBGRFQgZnJvbSBpdC4gVGhpcyBwYXRjaCBmYWN0b3JzIG91dCBsZWdhY3kgaW1hZ2UKICAgIHNwZWNpZmljIHZlcmlmaWNhdGlvbiByb3V0aW5lIHRvIHRoZSBzZXBhcmF0ZSBoZWxwZXIgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMWVmZDQzNjAxZjkwZGUyMWVjNmMwZWJiOTg4MDgyM2U4MjI5MjdiMQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDI6MDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgaW1hZ2VfZ2V0X2tlcm5lbCgpIHJvdXRpbmUKCiAgICBMZWdhY3kgaW1hZ2Ugc3BlY2lmaWMgdmVyaWZpY2F0aW9uIGlzIGZhY3RvcmVkIG91dCB0byBhIHNlcGFyYXRlIGhlbHBlcgogICAgcm91dGluZSB0byBrZWVwIGdldF9rZXJuZWwoKSBnZW5lcmljIGFuZCBzaW1wbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhhNWVhM2U2MTY4ZmU2YTI3ODBlZWFmMjU3YTNiMTlmMzBkZWM2NTgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAxOjA0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBpbWFnZSB2ZXJpZnkgZmxhZyB0byBib290bV9oZWFkZXJzIHN0cnVjdHVyZQoKICAgIERvIG5vdCBwYXNzIGltYWdlIHZlcmlmaWNhdGlvbiBmbGFnIGRpcmVjdGx5IHRvIHJlbGF0ZWQgcm91dGluZXMuCiAgICBTaW1wbGlmeSBhcmd1bWVudCBwYXNzaW5nIGFuZCBtb3ZlIGl0IHRvIHRoZSBib290bV9oZWFkZXIgc3RydWN0dXJlIHdoaWNoCiAgICBjb250YWlucyBjdXJlbnRseSBwcm9jZXNzZWQgaW1hZ2Ugc3BlY2lmaWMgZGF0YSBhbmQgaXMgYWxyZWFkeSBiZWluZyBwYXNzZWQKICAgIG9uIHRoZSBhcmd1bWVudCBsaXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4MjNhZmU3Y2VmZTAwZGFmZWZjNjY5NmMxY2M3YWE4MjhjMzk0MjM0CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMDo0NyAyMDA4ICswMTAwCgogICAgW01ha2VmaWxlXSBTb3J0IENPQkpTIGluIGxpYl88YXJjaD4gTWFrZWZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2ZjBmOWRmYzRlZTg4MGZiZjQwMGEyZWJlMTQyMzgxODFhNmMzZjkxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMDo0NyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE9wdGltaXplIGdlbl9nZXRfaW1hZ2UoKSBmbG93IGNvbnRyb2wKCiAgICBXaGVuIENPTkZJR19IQVNfREFUQUZMQVNIIGlzIG5vdCBkZWZpbmVkIGdlbl9nZXRfaW1hZ2UoKSByb3V0aW5lIGhhcyBub3RoaW5nCiAgICB0byBkbywgdXBkYXRlIGl0cyBjb250cm9sIGZsb3cgdG8gYmV0dGVyIHJlZmxlY3QgdGhhdCBzaW1wbGUgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDJjZWQ5ZWIxOWVjNzRmNGEzNTk5NDlkYmUzNTM0MjdmYTZkNTVjYQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBGZWIgNCAwODoyODoxNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFBPV0VSUEM6IFNwbGl0IGdldF9mZHQoKSBpbnRvIGdldCBhbmQgcmVsb2NhdGUgcm91dGluZXMKCiAgICBQUEMgc3BlY2lmaWMgRkRUIGJsb2IgaGFuZGxpbmcgY29kZSBpcyBkaXZpZGVkIGludG8gdHdvIHNlcGFyYXRlIHJvdXRpbmVzOgoKICAgIGdldF9mZHQoKQktIGZpbmQgYW5kIHZlcmlmeSBhIEZEVCBibG9iIChlaXRoZXIgcmF3IG9yIGltYWdlIGVtYmVkZGVkKQogICAgZmR0X3JlbG9jYXRlKCkJLSBtb3ZlIEZEVCBibG9iIHRvIHdpdGhpbiBCT09UTUFQIGlmIG5lZWRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzM2ZhNWMwYmZhZjQ2NWRlOGNlYjIzZmNkNmIzOTdmNjhiMzVhODE3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxMzoxMzozNyAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IHJlbmFtZWQgR1VSIHN5bWJvbHMgaW4gc2JjODY0MWQgYm9hcmQuCgogICAgQmFjayBpbiBjb21taXQgYTU1MWNlZTk5YWQxZDFkYTIwZmQyM2FkMjY1ZGU0NzQ0ODg1MmY1NgogICAgKDg2eHg6IEZpeCBHVVIgUENJIGNvbmZpZyByZWdpc3RlcnMgcHJvcGVybHkpLCB3ZSBzaG91bGQgaGF2ZQogICAgY2hhbmdlZCB0aGUgTVBDODZ4eF9QT1JCTVNSX0hBIGFuZCBNUEM4Nnh4X1BPUkRFVlNSX0lPX1NFTAogICAgc3ltYm9scyBpbiB0aGUgc2JjODY0MWQgYm9hcmQgYXMgd2VsbC4gIEZpeCB0aGlzIG92ZXJzaWdodC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0Y2Q1OTRlNjIzYzM5ZjczOTY0ZDE4Nzg3NzYzZTQ1MzNmNzkxZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMTY6NTA6NDggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGFjYWRpYV9uYW5kIGJ1aWxkIHByb2JsZW0KCiAgICBEb24ndCBpbmNsdWRlIHRlc3RkcmFtKCkgb24gTkFORC1ib290aW5nIHRhcmdldCBhY2FkaWFfbmFuZC4gVGhpcyBzYXZlcwogICAgYSBmZXcgYnl0ZXMgYW5kIG1ha2VzIHRoZSB0YXJnZXQgYnVpbGQgY2xlYW4gYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE0ZTA5OWU2OThkNDFlODE3OWQwNWMyYjJkYmNmNzA0YTIzNmY3NDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDI0IDIzOjAzOjEyIDIwMDggKzAwMDAKCiAgICBteDFmczIvZmxhc2g6IEZpeCBtdWx0aXBsZSBwb2ludGVydGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3MjQ5MDJjODQ2NGU2MTA2NDJiM2ExNzAyNzhiOTk3MTAzMjU4ODhlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAyNCAyMzowMzoxMSAyMDA4ICswMDAwCgogICAgYXJtLWlteDogRml4IHJlZ2lzdGVycyBkZWZpbml0aW9uCgogICAgU3luYyByZWdpc3RlcnMgZGVmaW5pdGlvbiB3aXRoIGxpbnV4CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0Y2QyODhiNTg5ZWExMTc4OTQ3YzZlMzY0NDUzYzMyYjNkZWRlNmI3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAyNCAyMzowMzoxMCAyMDA4ICswMDAwCgogICAgYWN0dWExL2FjdHVhMi9hY3R1YTM6IEZpeCBtdWx0aXBsZXVudXNlZCB2YXJpYWJsZQoKICAgIC0gYWN0dWExOgoJYWN0dXgxLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4MS5jOjkyOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoKICAgIC0gYWN0dWEyOgoJYWN0dXgyLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4Mi5jOjEwMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdzJwoJYWN0dXgyLmM6OTk6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ3Jlc2V0X3BoeSc6CglhY3R1eDIuYzoxMzA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnaScKCiAgICAtIGFjdHVhMzoKCWFjdHV4My5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDMuYzoxMTQ6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNTkzNGFkNzc1NmYwMzhhMzkzYTljZmFiNzZhNGZlMzA2ZDlkOTMwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEZlYiA0IDA4OjI4OjA5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGR1YWwgZm9ybWF0IHVJbWFnZSBzdXBwb3J0IGZyYW1ld29yawoKICAgIFRoaXMgcGF0Y2ggYWRkcyBmcmFtZXdvcmsgZm9yIGR1YWwgZm9ybWF0IGltYWdlcy4gRm9ybWF0IGRldGVjdGlvbiBpcyBhZGRlZAogICAgYW5kIHRoZSBib290bSBjb250cm9sbCBmbG93IGlzIHVwZGF0ZWQgdG8gaW5jbHVkZSBjYXNlcyBmb3IgbmV3IEZJVCBmb3JtYXQKICAgIHVJbWFnZXMuCgogICAgV2hlbiB0aGUgbGVnYWN5IChpbWFnZV9oZWFkZXIgYmFzZWQpIGZvcm1hdCBpcyBkZXRlY3RlZCBhcHByb3ByaWF0ZQogICAgbGVnYWN5IHNwZWNpZmljIGhhbmRsaW5nIGlzIGludm9rZWQuIEZvciB0aGUgbmV3IChGSVQgYmFzZWQpIGZvcm1hdCB1SW1hZ2VzCiAgICBkdWFsIGJvb3QgZnJhbWV3b3JrIGhhcyBhIG1pbmlhbCBzdXBwb3J0LCB0aGF0IHdpbGwgb25seSBwcmludCBvdXQgYQogICAgY29ycmVzcG9uZGluZyBkZWJ1ZyBtZXNzYWdlcy4gSW1wbGVtZW50YXRpb24gb2YgdGhlIEZJVCBzcGVjaWZpYyBoYW5kbGluZyB3aWxsCiAgICBiZSBhZGRlZCBpbiBmb2xsb3dpbmcgcGF0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGIyOTY2MWZjMTE1MTA3Nzc3NjQ1NDI4ODA1MWJjOWE0ODgzNTFjZTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gRmViIDI0IDE1OjIxOjM2IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gUHJlcGFyZSB2MS4zLjItcmMyIHJlbGVhc2UgY2FuZGlkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwMGI0OGE0ODQyNDg5NGRhYTU4OWQxNjZkNzMyNzc4MzBiMWM2YWM0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEZlYiAyMyAxMjoxNTo1NiAyMDA4ICswMTAwCgogICAgRU5WOiByZW1vdmUgc2F2ZWVudiB3aGVuIENGR19FTlZfSVNfTk9XSEVSRSBpcyBzZWxlY3RlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjA3NWQ3NGVmYjcwZmY2OGM0OWEyNTMyZjI2YjU2ZDY3MDNiNjljMQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBGZWIgMjMgMTc6MjQ6MTYgMjAwOCArMDkwMAoKICAgIFJlbW92ZSB0aGUgX19TVFJJQ1RfQU5TSV9fIGNoZWNrIGZyb20gdGhlIF9fdTY0L19fczY0IGRlY2xhcmF0aW9uIG9uIDMyYml0IHRhcmdldHMuCgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgT2xhZiBIZXJpbmcgW1dlZCwgMTcgT2N0IDIwMDcgMDY6Mjc6MTMgKzAwMDAgKDIzOjI3IC0wNzAwKV0KCiAgICBSZW1vdmUgdGhlIF9fU1RSSUNUX0FOU0lfXyBjaGVjayBmcm9tIHRoZSBfX3U2NC9fX3M2NCBkZWNsYXJhdGlvbiBvbgogICAgMzJiaXQgdGFyZ2V0cy4KCiAgICBHQ0MgY2FuIGJlIG1hZGUgdG8gd2FybiBhYm91dCB1c2FnZSBvZiBsb25nIGxvbmcgdHlwZXMgd2l0aCBJU08gQzkwCiAgICAoLWFuc2kpLCBidXQgb25seSB3aXRoIC1wZWRhbnRpYy4gIFlvdSBjYW4gd3JpdGUgdGhpcyBpbiBhIHdheSB0aGF0IGV2ZW4KICAgIHRoZW4gaXQgZG9lc24ndCBjYXVzZSB3YXJuaW5ncywgbmFtZWx5IGJ5OgoKICAgICNpZmRlZiBfX0dOVUNfXwogICAgX19leHRlbnNpb25fXyB0eXBlZGVmIF9fc2lnbmVkX18gbG9uZyBsb25nIF9fczY0OwogICAgX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3U2NDsKICAgICNlbmRpZgoKICAgIFRoZSBfX2V4dGVuc2lvbl9fIGtleXdvcmQgaW4gZnJvbnQgb2YgdGhpcyBzd2l0Y2hlcyBvZmYgYW55IHBlZGFudGljCiAgICB3YXJuaW5ncyBmb3IgdGhpcyBleHByZXNzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4KICAgIENjOiA8bGludXgtYXJjaEB2Z2VyLmtlcm5lbC5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjA4YWNkMTEyZTY1MTdiMjFmYzMwYzQyMDM5NjkwMmIxMDM1NjNhYwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBGZWIgMjMgMTc6MDc6NTcgMjAwOCArMDkwMAoKICAgIGNwdS9tY2Y1MngyL2NvbmZpZy5tazogTWFrZSBuZWVkbGVzc2x5IGRlZmZlcmVkIGV4cGFuc2lvbnMgaW1tZWRpYXRlLgoKICAgIFRoaXMgd2lsbCByZWR1Y2UgdGhlIGJ1aWxkIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA0OTVhMGRkZTdmYTFiMTRjZGMxNTYwN2Q4NjUwM2VjMmJkY2QwMmM0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNzowNTowMCAyMDA4ICswOTAwCgogICAgY3B1L3BwYzR4eC9jb25maWcubWs6IE1ha2UgYSBuZWVkbGVzc2x5IGRlZmZlcmVkIGV4cGFuc2lvbiBpbW1lZGlhdGUuCgogICAgVGhpcyB3aWxsIHJlZHVjZSB0aGUgYnVpbGQgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGU2ODJiYTM5OWExZDc2ZjA5ZDhjYzdhZjFlNTcwNjZmMWQzNjBkOTEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgRmViIDIzIDE2OjU4OjQxIDIwMDggKzA5MDAKCiAgICBjcHUvbWlwcy9jb2ZpZ2wubWs6IE1ha2UgYSBuZWVkbGVzc2x5IGRlZmZlcmVkIGV4cGFuc2lvbiBpbW1lZGlhdGUuCgogICAgVGhpcyByZWR1Y2VzIHRoZSBidWlsZCB0aW1lIGJ5IH4xMCUuIEhlcmUncyB0aGUgZ3RoMl9jb25maWcgZXhhbXBsZS4KCgkgICAgQkVGT1JFCSBBRlRFUgogICAgcmVhbCAgICAwbTMxLjQ0MXMJIDBtMjcuODMzcwogICAgdXNlciAgICAwbTI0Ljc2NnMJIDBtMjMuMDQ1cwogICAgc3lzICAgICAwbTEwLjQyNXMJIDBtNy40NjhzCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwMjQwOWY4Y2Y1NGM3Y2Q5MTk4MWYwZGZlYzEzNWRiZjM4NTgwOTBjCkF1dGhvcjogTWFyY2VsIE1vb2xlbmFhciA8bWFyY2VsbUBqdW5pcGVyLm5ldD4KRGF0ZToJRnJpIEZlYiAyMiAxMDo0ODowNyAyMDA4IC0wODAwCgogICAgbWFrZSBkZWZpbmUybWsuc2VkIHdvcmsgb24gRnJlZUJTRAoKICAgIEluIHRoZSB0aHJlYWQgIlsxLjMuMi1yYzFdIE1QQzg1NDhDRFMvTVBDODU1NUNEUyBjb25maWdzIGZhaWxzIHRvIGxpbmsiLAogICAgdGhlIGRlZmluZTJtay5zZWQgc2NyaXB0IHdhcyBpZGVudGlmaWVkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIGxpbmsKICAgIGZhaWx1cmUgb24gRnJlZUJTRC4gVGhlIHByb2JsZW0gaXMgdGhhdCBzZWQoMSkgZG9lcyBub3QgYWx3YXlzIHN1cHBvcnQKICAgIHRoZSAnKycgb3BlcmF0b3IuIEl0IGlzbid0IG9uIEZyZWVCU0QuIFRoZSBhdHRhY2ggcGF0Y2ggaW1wbGVtZW50cyB0aGUKICAgIGVxdWl2YWxlbnQsIHVzaW5nIHRoZSAnKicgb3BlcmF0b3IgaW5zdGVhZCBhbmQgc2hvdWxkIHdvcmsgZXZlcnl3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgTW9vbGVuYWFyIDxtYXJjZWxtQGp1bmlwZXIubmV0PgoKY29tbWl0IGU1MDg0YWY4ZGVkNTg0NTNjZDA3ZWMxYWY4YjBmMjlmMzQxMjJiYmMKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyMiAxNzoyMTozMiAyMDA4ICswMTAwCgogICAgUmVwbGFjZSBkZXByZWNhdGVkICJyYW1kaXNrIiB3aXRoICJyYW1kaXNrX3NpemUiIGtlcm5lbCBwYXJhbWV0ZXIuCgogICAgVGhlIExpbnV4IGNvbW1pdCBmYWM4YjIwOWIxMDg0YmM4NTc0OGJkNTRlMTNkMDBjMTI2MmIyMjBmICgiUmVtb3ZlCiAgICBmaW5hbCB0cmFjZXMgb2YgbG9uZy1kZXByZWNhdGVkICJyYW1kaXNrIiBrZXJuZWwgcGFybSIpIG1ha2VzIHRoZXNlCiAgICBjaGFuZ2VzIG5lY2Nlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZDAxYjg0N2M1Y2QwNzA4OTVjNGJhMTc4Yzg1Y2QwNjhhOTVjZjdjZApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUaHUgRmViIDIxIDEzOjU4OjE2IDIwMDggLTA1MDAKCiAgICBMTTc1IGJ1ZyBmaXggZm9yIG5lZ2F0aXZlIHRlbXBlcmF0dXJlcwoKICAgIFdoZW4gdGhlIExNNzUgdGVtcGVyYXR1cmUgc2Vuc29yIG1lYXN1cmVzIGEgdGVtcGVyYXR1cmUgYmVsb3cgMCBDLCB0aGUKICAgIGN1cnJlbnQgZHJpdmVyIGRvZXMgbm90IHBlcmZvcm0gc2lnbiBleHRlbnNpb24sIHNvIHRoZSByZXN1bHQgcmV0dXJuZWQgaXMKICAgIDI1NiBDIHRvbyBoaWdoLiAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA1YTkxMGMyMjRiMTNlNDEzYmRhNDE5MjIzNzlhZGQ2ZDc1YzMyZGEzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjEgMTg6MzM6NDUgMjAwOCArMDEwMAoKICAgIElEUzgyNDc6IHVwZGF0ZSBNQUlOVEFJTkVSIGVudHJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDc5ZWFjMmJmYjU5MWYyYjAyOGVjMTczNTA0OWRjOTFlNDMyMGRlNGEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMSAxODozMToxNSAyMDA4ICswMTAwCgogICAgRml4IGRldmljZSB0cmVlIGZvciBtZ3N1dmQgYm9hcmQuCgogICAgUmVuYW1lIHRoZSAic2NjIiBub2RlIGluICJldGhlcm5ldCIgZm9yIHRoZSBtZ3N1dmQgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMmU3MjEwOTRhNzBhNTIyMDZhZjJlMWJmMTIwOGQ5YTcxMzFmNmRhZApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNDoyMzo0MiAyMDA4ICswMTAwCgogICAgbHdtb241OiBlbmFibGUgaGFyZHdhcmUgd2F0Y2hkb2cKCiAgICBTb21lIGJvYXJkcyAoZS5nLiBsd21vbjUpIG1heSB1c2UgcmF0aGVyIHNtYWxsIHdhdGNoZG9nIGludGVydmFscywgc28KICAgIGNhdXNpbmcgaXQgdG8gcmVib290IHRoZSBib2FyZCBpZiBVLUJvb3QgZG9lcyBhIGxvbmcgYnVzeS13YWl0IHdpdGgKICAgIHVkZWxheSgpLiBUaHVzLCBmb3IgdGhlc2UgYm9hcmRzIHdlIGhhdmUgdG8gcmVzdGFydCBXRCBtb3JlCiAgICBmcmVxdWVudGx5LgoKICAgIFRoaXMgcGF0Y2ggc3BsaXRzIHRoZSBidXN5LXdhaXQgdWRlbGF5KCkgaW50byBzbWFsbGVyLCBwcmVkZWZpbmVkLAogICAgaW50ZXJ2YWxzLCBzbyB0aGF0IHRoZSB3YXRjaGRvZyB0aW1lciBtYXkgYmUgcmVzZXR0ZWQgd2l0aCB0aGUKICAgIGNvbmZpZ3VyYWJsZSAoQ09ORklHX1dEX1BFUklPRCkgaW50ZXJ2YWwuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGJjNzc4ODEyNDdlZTZmOTVkN2E5ZWJjNDk5ZDI2Yjk2YmFlMzhjOWQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjEgMTI6NTI6MjkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogU3VwcG9ydCBmb3IgQVRJIFJhZGVvbiA5MjAwIGNhcmQgb24gc2VxdW9pYQoKICAgIEFkZHMgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIEFUSSBSYWRlb24gOTIwMCBjYXJkCiAgICBzdXBwb3J0IHRvIHNlcXVvaWEgY29uZmlnIGZpbGUuIElmIENPTkZJR19WSURFTwogICAgaXMgZW5hYmxlZCwgVEVYVF9CQVNFIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDB4RkZGODAwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDVhOWFiY2MzMTdjZjNjOGE2OTU1OWZmODMwODFmNGU1ZDcxOWVkYjcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gRmViIDE4IDA4OjE4OjA3IDIwMDggLTA2MDAKCiAgICBSZW1vdmUgZHVwbGljYXRlIGRlZmluZXMgZm9yIEFSUkFZX1NJWkUKCiAgICBBIGZldyBkdXBsaWNhdGUgb2YgdGhlIEFSUkFZX1NJWkUgbWFjcm8gc25lYWtlZCBpbiBzaW5jZSB3ZSBwdXQKICAgIHRoZSBkZWZpbmUgaW4gY29tbW9uLmguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4MWQ5M2U1YzRiODNkOGI2ZGNlZTY5ZGU2ZjRhMTRjY2Y2ZjcxMTRhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwODowOTozNyAyMDA4IC0wNjAwCgogICAgcHBjOiBBbGxvdyBib2FyZHMgdG8gc3BlY2lmeSBlZmZlY3RpdmUgYW1vdW50IG9mIG1lbW9yeQoKICAgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMgd2UgbGltaXRlZCB0aGUgc3RhY2sgdG8gMjU2TSBiZWNhdXNlIHNvbWUgYm9hcmRzCiAgICBjb3VsZCBvbmx5IG1hcCB0aGF0IG11Y2ggdmlhIEJBVFMuCUhvd2V2ZXIgbmV3ZXIgYm9hcmRzIGFyZSBjYXBhYmxlIG9mCiAgICBtYXBwaW5nIG1vcmUgbWVtb3J5IChmb3IgZXhhbXBsZSA4NXh4IGlzIGNhcGFibGUgb2YgZG9pbmcgdXAgdG8gMkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzU1YzM1ZjU0YmE3ZWI3Njg3YWE3OTM1ZTA0YTAyYTAxZWYxYjI3YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNToyNDoxMyAyMDA4IC0wNTAwCgogICAgaW5jbHVkZSBhdXRvY29uZi5tayBiZWZvcmUgYW55IG90aGVyIC5tayBmaWxlcwoKICAgIFRoaXMgYnVtcHMgdGhlIGF1dG9jb25mLm1rIGluY2x1ZGUgc3RlcCBhYm92ZSBib2FyZC9jcHUvYXJjaC9ldGMuLi4gc28gdGhhdAogICAgdGhvc2UgLm1rIGZpbGVzIGNhbiBoYXZlIG1ha2UgaWYgc3RhdGVtZW50cyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDE2ZmU3Nzc1MmVlZTA5OWI5ZmI2MWVkNzM0NjBlNTFjYzk0YjM3YmEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6MTA6MDcgMjAwOCAtMDUwMAoKICAgIGVycm9yIGNoZWNrIGF1dG9jb25mLm1rIGdlbmVyYXRpb24KCiAgICBJZiBhbnkgb2YgdGhlIHN0ZXBzIGZvciBnZW5lcmF0aW5nIGF1dG9jb25mLm1rIGZhaWwgY3VycmVudGx5LCB0aGV5IGdvCiAgICB1bm5vdGljZWQuCVRvIGZpeCwgd2UgY2FuIHNpbXBseSBhZGQgJ3NldCAtZScgdG8gdGhlIGxvbmcgbGlzdCBvZiBjb21tYW5kcy4KICAgIFRoaXMgaXMgc2ltcGxlciBhbmQgbW9yZSByb2J1c3QgdGhhbiBwbGFjaW5nICd8fCBleGl0ICQkPycgYWZ0ZXIgZXZlcnkgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDE5ODk1YThkZWU3MWE5ZjAwZGEwNWMwM2UzNzlmNDVkNTgxYjBmZQpBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglNb24gRmViIDE4IDA4OjAzOjUxIDIwMDggKzAxMDAKCiAgICBGaXggYnVnIGluIGRlcGVuZGVuY3kgY2hlY2tpbmcKCiAgICBCeSBhZGRpbmcgVkVSU0lPTl9GSUxFIHRvIHRoZSBQSE9OWSB0YXJnZXRzIHRoZSBzY3JpcHQKICAgIC90b29scy9zZXRsb2NhbHZlcnNpb24gaXMgYWx3YXlzIGNhbGxlZCBhbmQgdmVyc2lvbl9hdXRvZ2VuZXJhdGVkLmgKICAgIGlzIHJlcGxhY2VkIG9ubHkgaWYgdGhlIHNjcmlwdCBmaW5kIGEgbW9kaWZpZWQgc291cmNlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgOThiYTE0NGNjYzkxMmVlZTkwZGQ0MjY5OWYwMjNjNDk3Y2U3NzRjNgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gRmViIDE4IDE0OjM1OjQzIDIwMDggKzA5MDAKCiAgICBGaXggR1BNQyBDUzIgbWVtb3J5IHNldHVwIGF0IGFwb2xsb24KCiAgICBJdCBkaXNhYmxlcyB0aGUgY3VycmVudCBtYXAgZmlyc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGU4NDVlMDdlMWU2ZTY0ZjQwZTM1Njg4NDM5ZDNjZGNmMDFjZmZmNGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIzOjUyOjQ2IDIwMDggKzAxMDAKCiAgICB1bGk1MjZ4OiBGaXggbXVsdGlwbGUgZGlmZmVyIGluIHNpZ25lZG5lc3MgYW5kIHBhcmVudGhlc2VzIGFyb3VuZCBjb21wYXJpc29uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiZWVjY2Y3YTVkYzU0MTVjMjAyZTAxMzJhMzNjNThmYzMxNmMyYTYyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAxNjo1ODowNCAyMDA4ICswMTAwCgogICAgTUlQUzogRml4IENGR19OT19GTEFTSCBzdXBwb3J0CgogICAgLSBGaXggZmxhc2hfaW5pdCBjYWxsIHdoZW4gQ0ZHX05PX0ZMQVNIIGlzIHVzZWQKICAgIC0gUmVtb3ZlIG5vIG1vcmUgbmVlZGVkIGZsYXNoLmMgZm9yIHFlbXUtbWlwcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWRmZWQxZDkxZGYyYjI2NzBhODEyY2E5ZDFhMWY5ZmFhZTdkYmE0NwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEZlYiAxNiAwMjo0MDoxOCAyMDA4IC0wNTAwCgogICAgZWFzeWxvZ286IGNsZWFuIHVwIHNvbWUgbW9yZSBhbmQgYWRkIC1yIChyZ2IpIHN1cHBvcnQKCiAgICBNaWNoYWVsIEhlbm5lcmljaCBhZGRlZCBzdXBwb3J0IGZvciBvdXRwdXR0aW5nIGFuIGltYWdlIGluIFJHQiBmb3JtYXQgcmF0aGVyCiAgICB0aGFuIGZvcmNpbmcgWVVZViBhbGwgdGhlIHRpbWUuICBUaGlzIG1ha2VzIG9idmlvdXMgc2Vuc2UgaWYgdGhlIGRpc3BsYXkgeW91CiAgICBoYXZlIHRha2VzIFJHQiBpbnB1dCByYXRoZXIgdGhhbiBZVVlWLgoKICAgIFJhdGhlciB0aGFuIGhhY2sgaW4gc3VwcG9ydCBmb3Igb3B0aW9ucywgSSd2ZSBjb252ZXJ0ZWQgaXQgdG8gdXNlIGdldG9wdCBhbmQKICAgIGNsZWFuZWQgdXAgdGhlIGFyZ3VtZW50IHBhcnNpbmcgaW4gdGhlIHByb2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBIZW5uZXJpY2ggPG1pY2hhZWwuaGVubmVyaWNoQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZjY1Yzk4MTI5Y2NhZGEzZjdjYWY5N2Q4MDM5NWE5NWI4NGU5MTFkZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEZlYiAxNiAwMjoxMjozNyAyMDA4IC0wNTAwCgogICAgTWFrZWZpbGU6IGFkZCB0YXJnZXQgZm9yICQoTERTQ1JJUFQpCgogICAgSWYgdGhlICQoTERTQ1JJUFQpIGRvZXMgbm90IGV4aXN0IChub3JtYWxseSBpdCdzIGJvYXJkLyQoQk9BUkQpL3UtYm9vdC5sZHMpLAogICAgdGhlbiBjaGFuZ2UgaW50byB0aGUgYm9hcmQgZGlyZWN0b3J5IGFuZCB0cnkgYW5kIGNyZWF0ZSBpdC4gIFRoaXMgYWxsb3dzIHlvdQogICAgdG8gZ2VuZXJhdGUgdGhlIGxpbmtlciBzY3JpcHQgb24gdGhlIGZseSBiYXNlZCB1cG9uIGJvYXJkIGRlZmluZXMgKGxpa2UgdGhlCiAgICBCbGFja2ZpbiBib2FyZHMgZG8pLgoKICAgIFRoZXJlIHNob3VsZCBiZSBubyByZWdyZXNzaW9ucyBkdWUgdG8gdGhpcyBjaGFuZ2UgYXMgdGhlIG5vcm1hbCBjYXNlIGlzIHRvCiAgICBhbHJlYWR5IGhhdmUgYSB1LWJvb3QubGRzIGZpbGUuICBJZiB0aGF0J3MgdGhlIGNhc2UsIHRoZW4gdGhlcmUncyBub3RoaW5nIHRvCiAgICBnZW5lcmF0ZSwgYW5kIHNvIG1ha2Ugd2lsbCBhbHdheXMgZXhpdC4gIFRoZSBmaXggaGVyZSBpcyB0aGF0IGlmIHRoZSBsaW5rZXIKICAgIHNjcmlwdCBkb2VzIG5vdCBleGlzdCwgdGhlIGltcGxpY2l0IHJ1bGVzIHRha2Ugb3ZlciBhbmQgYXR0ZW1wdCB0byBndWVzcyBob3cKICAgIHRvIGdlbmVyYXRlIHRoZSBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1NTgzY2JmNzM2NDc0ZWY3NTRlMTI4YTU0ZmI3ODYzMmY1N2I0OGZkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyNzo0OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBlcnJvbmVvdXMgdXNlIG9mIGltYWdlX2dldF9tYWdpYygpIGluIGZkYy91c2IgY21kcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjI0MmY1MzY5ODIyYmM3NzgwZGI5NWM0Nzk4NWJiNDA4ZWE5MTU3YgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTc6Mjc6NDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW5hbWUgYW5kIG1vdmUgcHJpbnRfaW1hZ2VfaGRyKCkgcm91dGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZjUwNDMzZDY3MGVjMmVlOWU5NmFiYWM2N2NkYzZlNWUwNjFhODEwZApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTc6MjA6MjAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgZml0X3BhcnNlX2NvbmYoKSBhbmQgZml0X3BhcnNlX3N1YmltYWdlKCkgcm91dGluZXMKCiAgICBJbnRyb2R1Y2luZyByb3V0aW5lcyBmb3IgcGFyc2luZyBuZXcgdUltYWdlIGZvcm1hdCBib290bSBhcmd1bWVudHM6CiAgICBbPGFkZHI+XSM8Y29uZj4JCS0gY29uZmlndXJhdGlvbiBzcGVjaWZpY2F0aW9uCiAgICBbPGFkZHI+XTo8c3ViaW1nPgktIHN1YmltYWdlIHNwZWNpZmljYXRpb24KCiAgICBOZXcgZm9ybWF0IGltYWdlcyBjYW4gY29udGFpbiBtdWx0aXBsZSBzdWJpbWFnZXMgb2YgdGhlIHNhbWUgdHlwZS4gRm9yIGV4YW1wbGUKICAgIGEgc2luZ2xlIG5ldyBmb3JtYXQgaW1hZ2UgZmlsZSBjYW4gY29udGFpbiB0aHJlZSBrZXJuZWxzLCB0d28gcmFtZGlza3MgYW5kIGEKICAgIGNvdXBsZSBvZiBGRFQgYmxvYnMuIFN1YmltYWdlIGFuZCBjb25maWd1cmF0aW9uIHNwZWNpZmljYXRpb25zIGFyZSBleHRlbnNpb25zCiAgICB0byBib290bSAoYW5kIG90aGVyIGltYWdlLXJlbGF0ZWQgY29tbWFuZHMpIGFyZ3VtZW50cycgc3ludGF4IHRoYXQgYWxsb3cgdG8KICAgIHNwZWNpZnkgd2hpY2ggcGFydGljdWxhciBzdWJpbWFnZSBzaG91bGQgYmUgb3BlcmF0ZWQgb24uCgogICAgU3ViaW1hZ2Ugc3BlY2lmaWNhdGlvbiBpcyB1c2VkIHRvIGRlbm90ZSBhIHBhcnRpY3VsYXIgc3ViaW1hZ2UuIENvbmZpZ3VyYXRpb25zCiAgICBhcmUgYSBiaXQgbW9yZSBjb21wbGV4IC0tIHRoZXkgYXJlIHVzZWQgdG8gZGVmaW5lIGEgcGFydGljdWFsciBib290aW5nIHNldHVwLAogICAgZm9yIGV4YW1wbGUgYSAoa2VybmVsLCBmZHQgYmxvYikgcGFpciwgb3IgYSAoa2VybmVsLCByYW1kaXNrLCBmZHQgYmxvYikgdHVwbGUsCiAgICBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZmY4ODhhMTk5N2ZmN2RlOWIyOWUyNDA1MGZjNGEwZmQ0MDNiYTE2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBnZW5fZ2V0X2ltYWdlKCkgcm91dGluZQoKICAgIFRoaXMgcm91dGluZSBhc3N1cmVzIHRoYXQgaW1hZ2UgKHdoZXRoZXIgbGVnYWN5IG9yIEZJVCkgaXMgbm90CiAgICBpbiBhIHNwZWNpYWwgZGF0YWZsYXNoIHN0b3JhZ2UuCgogICAgSWYgaW1hZ2UgYWRkcmVzcyBpcyBhIGRhdGFmbGFzaCBhZGRyZXNzIGltYWdlIGlzIG1vdmVkIHRvIHN5c3RlbSBSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NWQzZThmYmQ5M2MxNGQ5OTI5ZDAyNGM3NWFmMmQ3NDJjNzZkYjcwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyMDoxOCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFB1bGwgaW4gbGliZmR0IGlmIENPTkZJR19GSVQgaXMgZW5hYmxlZAoKICAgIE5ldyB1SW1hZ2UgZm9ybWF0IChGbGF0dGVuZWQgSW1hZ2UgVHJlZSkgcmVxdWlyZXMgbGliZmR0CiAgICBmdW5jdGlvbmFsaXR5LCBwcmludCBvdXQgZXJyb3IgbWVzc2FnZSBpZiBDT05GSUdfT0ZfTElCRkRUCiAgICBpcyBub3QgZGVmaW5lZC4KCiAgICBOZXcgdUltYWdlIHN1cHBvcnQgaXMgZW5hYmxlZCBieSBkZWZpbmluZyBDT05GSUdfRklUIChhbmQgQ09ORklHX09GX0xJQkZEVCkuCiAgICBUaGlzIGNvbW1pdCB0dXJucyBpdCBvbiBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMWJhNjM5ZGE1NjA0YTY0YjNlZDg4NGEyY2JiMWM1NDE0YTlmYTcyOApBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMjM6MTY6MzUgMjAwOCArMDEwMAoKICAgIENGSTogRG8gbm90IHVzZSB1bmluaXRpYWxpemVkIGNtZF9yZXNldAoKICAgIERvIG5vdCB1c2UgdW5pbml0aWFsaXplZCBjbWRfcmVzZXQ7IGlzc3VlIGJvdGggQU1EIGFuZCBJbnRlbCByZXNldAogICAgY29tbWFuZHMgaW5zdGVhZAoKICAgIEZyb20gYSBzaG9ydCB0ZXN0LCBpdCBsb29rcyBsaWtlIEFNRC1zdHlsZSBmbGFzaCByb21zIHRyZWF0ICphbnkqIHVua25vd24KICAgIGNvbW1hbmQgd3JpdGUgYXMgYSByZXNldCwgYXQgbGVhc3Qgd2hlbiBpbiBDRkkgUXVlcnkgbW9kZSwgc28gaXNzdWluZyB0aGUKICAgIEludGVsIHJlc2V0IGNvbW1hbmQgdG8gQU1ELXN0eWxlIGZsYXNocyBzZWVtcyBzYWZlIChmcm9tIHRoZSBzbWFsbCBzYW1wbGUgSQogICAgaGF2ZSksIHBsdXMgdGhlIDMtY3ljbGUgbWFnaWMgc2VxdWVuY2Ugc2hvdWxkIGtpY2sgdGhlIHN0YXRlIG1hY2hpbmUgaW50bwogICAgdGhlIHJpZ2h0IHN0YXRlIGV2ZW4gd2l0aG91dCBhIHJlc2V0IGNvbW1hbmQuIFNpbmNlIHRoZSBBTUQtc3R5bGUgZmxhc2hzCiAgICByZXF1aXJlIHRoZSB1bmxvY2sgc2VxdWVuY2UgZm9yIHJlYWwgb3BlcmF0aW9uLCBJIGNob3NlIHRvIHRyeSB0aGUgQU1EIHJlc2V0CiAgICBjb21tYW5kIGZpcnN0LCBzbyB0aGF0IEludGVsIGZsYXNocyBkbyBubyBzZWUgYW4gaW52YWxpZCBjb21tYW5kIHByaW9yIHRvCiAgICB0aGUgQ0ZJIHF1ZXJ5LgoKICAgIEkgaGF2ZSB0ZXN0ZWQgdGhlIHBhdGNoIG9uIEFNMjlMVjMyMC1zdHlsZSBmbGFzaHMgZnJvbSBGdWppdHN1IGFuZCBNYWNyb25peCwKICAgIHBsdXMgSW50ZWwgU3RyYXRhRmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlN2E4NWYyNjgzMGM5ZjJlNzg1MDY0MjFjMmQ1MTlhMjk2NWJjN2ExCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxMTo1Njo0NCAyMDA4ICswMTAwCgogICAgQVBJOiBBZGQgKGMpIGFuZCBsaWNlbnNpbmcgbm90aWNlIHRvIHRoZSBwdWJsaWMgQVBJIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkyOGQxZDc3Zjg2MjNjMTIwZDg3NjNlMjBlMWNhNThkZjljNWM0YzYKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTE6MDY6MDcgMjAwOCArMDEwMAoKICAgIEZpeCBDUFUgUE9TVCB0ZXN0IGZhaWx1cmUKCiAgICBUaGUgQ1BVIFBPU1QgdGVzdCBjb2RlIChydW4gZnJvbSBjcHVfcG9zdF9leGVjXzMxKCkpIGRvZXNuJ3QgZm9sbG93IHRoZQogICAgQUJJIGNhcmVmdWxseSwgYXQgbGVhc3QgdGhlIENSMywgQ1I0LCBhbmQgQ1I1IGZpZWxkcyBvZiBDUiBhcmUgY2xvYmJlcmVkCiAgICBieSBpdC4gVGhlIGdjYy00LjIgd2l0aCBpdHMgbW9yZSBhZ2dyZXNzaXZlIG9wdGltaXphdGlvbiBleHBvc2VzIHRoaXMgZmFjdC4KICAgIFRoaXMgcGF0Y2gganVzdCBzYXZlcyB0aGUgQ1IgdmFsdWUgYmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3QgY29kZSwgc28gYWxsb3dpbmcKICAgIGl0IHRvIGRvIGFueXRoaW5nIGl0IHdhbnRzIHdpdGggQ1IuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgLS0KCmNvbW1pdCBkNTkwOGIwOTM5NTU0MTVmM2QzNDA3MDYzNzhiOTkxZjkxMWFmNjcxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyMCAxNToyNjo1MSAyMDA4IC0wNjAwCgogICAgODYxMEhQQ0Q6IERvY3VtZW50IHRoZSBmbGFzaGJhbmsgc2VsZWN0aW9uIHN3aXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU1MWNlZTk5YWQxZDFkYTIwZmQyM2FkMjY1ZGU0NzQ0ODg1MmY1NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjAgMTQ6MjI6MjYgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEZpeCBHVVIgUENJIGNvbmZpZyByZWdpc3RlcnMgcHJvcGVybHkuCgogICAgQmFjayBpbiBjb21taXQgOTc1YTA4M2E1ZWY3ODVjNDE0YjM1ZjljNWI4YWUyNWIyNmI0MTUyNCB3aGVyZQogICAgSSB0cmllZCB0byAiODYxMEhQQ0Q6IEZpeCB0eXBvcyBpbiB0d28gUENJIHNldHVwIHJlZ2lzdGVycyIsIEkKICAgIGJvdGNoZWQgaXQgZHVlIHRvIG5vdCByZWFsaXppbmcgdGhhdCA4NjEwIGFuZCA4NjQxIGhhZCBkaWZmZXJlbnQKICAgIEdsb2JhbCBVdGlsaXR5IFJlZ2lzdGVyIGRlZmludGlvbnMsIG9uZSBvZiB3aGljaCB3YXMgbGlrZSA4NXh4LAogICAgYW5kIHRoZSBvdGhlciB3YXNuJ3QuICBDb3JyZWN0IHRoaXMgcHJvYmxlbSBieSBpbnRyb2R1Y2luZyB0d28KICAgIHN5bWJvbHMsIG9uZSBmb3IgZWFjaCA4Nnh4IFNvQywgYnV0IG5laXRoZXIgb2Ygd2hpY2ggaXMgbmFtZWQKICAgIGFueXRoaW5nIGxpa2UgODV4eC4KCiAgICBNeSBiYWQuICBMb3ZlbHkgV2VkbmVzZGF5IHdpdGggZ2l0IGJpc2VjdC4JWW91IGtub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjA2ZWI5NjFiZGZmYzg3MjhiMzhjMjQyNDczZDgwMmU4M2FiMmI0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyMCAxMjoyNDoxMSAyMDA4IC0wNjAwCgogICAgODYxMEhQQ0Q6IERvbid0IHVzZSBWSURFTy9DRkJfQ09OU09MRSBieSBkZWZhdWx0LgoKICAgIFdpdGhvdXQgYW4gYWN0dWFsIHN1cHBvcnRlZCB2aWRlbyBjYXJkIGhvb2tlZCB1cCwgZW5hYmxpbmcKICAgIHRoZSBDT05GSUdfVklERU8gYnkgZGVmYXVsdCBqdXN0IG1ha2VzIGl0IGxvb2sgYnJva2VuIGJ5CiAgICByb3V0aW5nIGFsbCBjb25zb2xlIG91dHB1dCB0byB0aGUgdmlkZW8gY2FyZC4gICBEb24ndC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkMjY0ZWZmNDMxMmYyMzA3NzZiOTEzZWRhZGU3Y2ViNzVmMWIxZTAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTU6MDg6MTUgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBGaXggbWlzc2luZyBjb2RlIGZsYXNoIHNpemUgZm9yIE01NDg1RVZCCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgTWFoYW4gPGttYWhhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTRmOTI2M2U0ZTExZTM0YjFlNzBjMTYwYmM0NjdlZjFkOGVjNTlkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMwIDE1OjA0OjQyIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogRml4IDUyODIgYW5kIDUyNzEgaW50ZXJydXB0IG1hc2sgYml0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NzVhMDgzYTVlZjc4NWM0MTRiMzVmOWM1YjhhZTI1YjI2YjQxNTI0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxOSAxMjozMTowOCAyMDA4IC0wNjAwCgogICAgODYxMEhQQ0Q6IEZpeCB0eXBvcyBpbiB0d28gUENJIHNldHVwIHJlZ2lzdGVycy4KCiAgICBUaGUgdHdvIHN5bWJvbHMgTVBDODZ4eF9QT1JERVZTUl9JT19TRUwgYW5kIE1QQzg2eHhfUE9SQk1TUl9IQQogICAgd2VyZSBlcnJvbmVvdXNseSBwcmVzZW50IGFzIDg1eHggbmFtZXMgYW5kIHZhbHVlcywgbGVmdG92ZXIgZnJvbQogICAgdGhlIGNsb25lIHdhcnMuICBGaXggdGhpcyBieSByZW1vdmluZyB0aGUgODV4eCBjcnVmdCBmcm9tIHRoZQogICAgODZ4eCBjb2RlYmFzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzZjU0MzNmNzAwZDRkYTlmNmZkZjJhNGJiODAzMTAxMzNhN2MxNzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDE4IDE0OjAxOjU2IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBDb252ZXJ0IHNiYzg2NDFkIHRvIHVzZSBsaWJmZHQuCgogICAgVGhpcyBpcyB0aGUgcHJvcGVyIGZpeCBmb3IgYSBtaXNzaW5nIGNsb3NpbmcgYnJhY2UgaW4gdGhlIGZ1bmN0aW9uCiAgICBmdF9jcHVfc2V0dXAoKSBub3RpY2VkIGJ5IGpvZS5oYW1tYW4gPGF0PiBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbS4KICAgIFRoZSBmdF9jcHVfc2V0dXAoKSBmdW5jdGlvbiBpbiBtcGM4NjQxaHBjbi5jIHNob3VsZCBoYXZlIGJlZW4KICAgIHJlbW92ZWQgZWFybGllciBhcyBpdCB3YXMgdW5kZXIgdGhlIG9ic29sZXRlIENPTkZJR19PRl9GTEFUX1RSRUUsCiAgICBidXQgd2FzIG1pc3NlZC4gIE9ubHksIHRoZSBzYmM4NjQxZCB3YXMgbm9taW5hbGx5IHN0aWxsIHVzaW5nIGl0LgogICAgSXQgYWxsIGdvdCByaXBwZWQgb3V0LCBhbmQgdGhlIGZ1bmNhbGl0eSB0aGF0IHdhcyBpbiBmdF9ib2FyZF9zZXR1cCgpCiAgICB3YXMgcmVmYWN0b3JlZCB0byByZW1vdmUgdGhlIENQVSBwb3J0aW9ucyBpbnRvIHRoZSBuZXcgZmlsZQogICAgY3B1L21wYzg2eHgvZmR0LmMgaW5zdGVhZC4JTWFrZSBzYmM4NjQxZCB1c2UgdGhpcyBub3cuCgogICAgQmFzZWQgbG9vc2VseSBvbiBhbiBvcmlnaW5hbCBwYXRjaCBmcm9tIGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0ZWZkZGM4N2M1MGM4NGY4NWRhZDVjMzMxYzYzNGE2Y2U4MzBhODMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIzOjM1OjMxIDIwMDggKzAxMDAKCiAgICBtcGM4Nnh4OiBGaXggdW51c2VkIHZhcmlhYmxlICdjb25maWcnIGFuZCAnaW1tYXAnCgogICAgYW5kIHJlbW92ZSB1c2VsZXNzIENPTkZJR19ERFJfSU5URVJMRUFWRQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODNkMWIzODc2Njk1YzRmMjFmYWZmMmI3MzFkOWVmODNmMzhlZDIwOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjM6MDM6MzYgMjAwOCArMDEwMAoKICAgIG1wYzg2eHg6IEZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbnMgJ2luaXRfbGF3cycgYW5kICdkaXNhYmxlX2xhdycKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGI2ZjI5Yzg0YzIwOGEwOTFmOTVhMTBjYmM5ODUyZDcyOTY1OWJhMjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE0OjE1OjMxIDIwMDggKzAxMDAKCiAgICBzM2MyNHgwOiBGaXggdW51c2VkIHZhcmlhYmxlICdpJyBpbiBmdW5jdGlvbiAnc2VyaWFsX2luaXRfZGV2JwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDkzN2I4ZDg2OWZkYjQyZDZhZDRmZTMxMjk1ODYzOWJkNjJjOTczZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMTQ6MTU6MzIgMjAwOCArMDEwMAoKICAgIHB4YTogZml4IGFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgogICAgZml4IG1tY19icmVhZCBmdW5jdGlvbiBwcm90b3R5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY0ZDc5MjA2M2ZmZjkwYjgxMTgxNzliMDkyZmVlZTA5ZmU1Y2FlMTMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE0OjE1OjMwIDIwMDggKzAxMDAKCiAgICBhdDkxY2FwOWFkazogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdldGhfaW5pdCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM3NWM0MzUzZGI4ZjkwMGY3ZWM3NzJlMjZmYWIxMTZlYzAwZjdkM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gRmViIDE3IDE1OjQzOjQ0IDIwMDggKzAxMDAKCiAgICBSZW1vdmUgZmlsZXMgYWRkZWQgYnkgbWlzdGFrZSwgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGI3Mzg2NTRkM2M4NGEzMGYyYmZkOWE4ZDc2NTJmZjIwODA3Yzg5MGMKQXV0aG9yOiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KRGF0ZToJV2VkIEZlYiA2IDExOjEwOjExIDIwMDggLTA1MDAKCiAgICBQUEM0NDBFUHg6IE9wdGlvbmFsbHkgZW5hYmxlIHNlY29uZCBJMkMgYnVzCgogICAgVGhlIG9wdGlvbiBDT05GSUdfSTJDX01VTFRJX0JVUyBkb2VzIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gU2VxdW9pYSwgdGhlCiAgICBQUEM0NDBFUHggcmVmZXJlbmNlIHBsYXRmb3JtLCBiZWNhdXNlIElJQzEgaXMgbmV2ZXIgZW5hYmxlZC4gQWRkIFNlcXVvaWEgYm9hcmQKICAgIGNvZGUgdG8gdHVybiBvbiBJSUMxIGlmIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgogICAgQ2M6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZjViNGYyMjFjMjJkMDU3NzA4Nzg1MTM5NTE3NDVmMjM2YjViNDNmCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVHVlIEZlYiA1IDEwOjI2OjQ0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gQ2xlYW51cCBjb25maWdzCgogICAgLSBoY3U0Lmg6IFJlbW92ZWQgZGVmaW5lIG9mIENPTkZJR19QUEM0MDVHUHIKICAgIC0gQ29ycmVjdGVkIHBoeSBhZGRyZXNzZXMKICAgIC0gRml4IGJvb3QgdmFyaWFibGVzCiAgICAtIFJlc3BlY3QgbGluZSBsZW5ndGggb2YgODAgY2hhcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDc0OTczMTI2ZDFiZTYzYWM3NWJkYzE5MmY0NjIzNGRjYTNhN2M0MjEKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTE6MzE6MjggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBDbGVhbnVwcwoKICAgIC0gRml4IHNvbWUgY29kaW5nIHN0eWxlIHZpb2xhdGlvbnMuCiAgICAtIFVzZSBpbi9vdXRfdTE2LzMyIHdoZXJlIGFwcHJvcHJpYXRlLgogICAgLSBVc2UgcmVnaXN0ZXIgbmFtZXMgZnJvbSBwcGM0MDUuaC4KICAgIC0gRml4IHRyYWNlIHVzZWFnZSBmb3IgTGF1dGVyYmFjaC4KICAgIC0gUmVtb3ZlIG9ic29sZXRlIGdlbmVyYXRpb24gSENVMi4KICAgIC0gUmVuYW1lZCBmaXhlZF9oY3U0X3NkcmFtIHRvIGluaXRfcHBjNDA1X3NkcmFtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgOGNjMTBkMDZiODMzZWQ5MTdhMTlhZDM1OGM4ZWJiZWQ4YmMxOTU1NQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVR1ZSBGZWIgNSAxMDoyNjo0MSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBQUEM0MDVHUHIgZml4IG1pc3NpbmcgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDIxNDM5OGQ5Y2IyMjI2OGQ5ZDRmNzU2MzM1OWVkY2EwZjc4Mjk3YTIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiAxOCAyMTo0OTowNSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBCZWF1dGlmeSBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBTZXF1b2lhIGFuZCBLb3JhdCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAzMGM2YTI0MWU4ODQ5OWY1MzZlODZkMzI1NzU5ZTI5YmEwMGZmNjdmCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDIwOjA5OjAxIDIwMDggKzAxMDAKCiAgICBXaXBlIG91dCBhc3NlbWJsZXIgd2FybmluZ3Mgd2hpbGUgY29tcGlsaW5nIHg4NiBiaW9zZW11CgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBnZXQgcmlkIG9mIHNvbWUgYXNzZW1ibGVyIHdhcm5pbmdzIGFib3V0CiAgICBjaGFuZ2VkIC5nb3QyIHNlY3Rpb24gdHlwZSB3aGlsZSBjb21waWxpbmcgeDg2IGJpb3MgZW11bGF0b3IKICAgIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDY3YTQzODllMzlhZDg1M2Q2NWI3MmUyYjdjYWQxNWM3ZTgyOTExNDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDAwOjU3OjA5IDIwMDggKzAxMDAKCiAgICBQcmVwYXJlIHYxLjMuMi1yYzEgcmVsZWFzZSBjYW5kaWRhdGUKCmNvbW1pdCBmMzNlOTY1M2M5YzA5ODY4OTk1ZDc4ODUxMWQ1NzM3NzFjMjA5ZmU1CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDAwOjEzOjIwIDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSB3YXJuaW5nIG9uIGxpYl9wcGMvYm9hcmQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBlNWM2ZjlmOGJlYzRkZmY5NjAzNDE5MTYxZTNhMTVjYzhhZDVkNWY0CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDE4OjIyOjA0IDIwMDggKzAxMDAKCiAgICBBZGQgUmFkZW9uIE1vYmlsaXR5IDkyMDAgcGNpIGRldmljZSBpZCB0byB0aGUgcmFkZW9uIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggZXh0ZW5kcyBQQ0kgZGV2aWNlIGlkIHRhYmxlIG9mIHRoZQogICAgcmFkZW9uIGRyaXZlciBzbyB0aGF0IHRoZSBkcml2ZXIgd2lsbCBhbHNvIHN1cHBvcnQKICAgIFJhZGVvbiBNb2JpbGl0eSA5MjAwIChNOSspIGJhc2VkIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgMWI4NjA3ZTFmNzE0MzU0OGM2MDYyYzI4MzcxNDQ5ZWM2OTU4OGMwMApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAxODoxOTo1MCAyMDA4ICswMTAwCgogICAgRXh0ZW5kIEFUSSBSYWRlb24gZHJpdmVyIHRvIHN1cHBvcnQgbW9yZSB2aWRlbyBtb2RlcwoKICAgIEFkZHMgQVRJIFJhZGVvbiA5MjAwIHN1cHBvcnQgZm9yIDEyODB4MTAyNCwgMTAyNHg3NjgsCiAgICA4MDB4NjAwLCA2NDB4NDgwIGF0IDI0LCAxNiBhbmQgOCBicHAuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDQxMjQzODJkZTAyOWQzNjExNjJhNGI4Y2VjYzc3M2ViOGYyNmUyYTgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDEwIDE3OjA1OjIwIDIwMDggKzAxMDAKCiAgICB4c2VuZ2luZTogZml4IHR5cG8gYW5kIGZldyBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZmNGFiZWU3ODliNmQ5YmUzZWM0Yjk3YWQ0OGY1MDkzNTU1NTllOWUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJRnJpIEZlYiA4IDIxOjI1OjU4IDIwMDggKzAxMDAKCiAgICBGaXggd3JvbmcgbWVtb3J5IGxpbWl0IGNhbGN1bGF0aW9uIGluIG1lbW9yeS10ZXN0CgogICAgSWYgdGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGFkZHJlc3MgcmFuZ2UgcGFzc2VkIHRvIHRoZSAibXRlc3QiIGNvbW1hbmQgaXMKICAgIG5vdCBvZiB0aGUgZm9ybSAyXnggLSAxLCBub3QgYWxsIGFkZHJlc3MgbGluZXMgYXJlIHRlc3RlZC4gVGhpcyBidWcgaXMKICAgIGluaGVyaXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZSBhdAogICAgaHR0cDovL3d3dy5uZXRyaW5vLmNvbS9FbWJlZGRlZC1TeXN0ZW1zL0hvdy1Uby9NZW1vcnktVGVzdC1TdWl0ZS1DLiBGaXgKICAgIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgN2UzMGY1ZWFjN2YwNzA4MmE3Y2E3N2I3ZDkxYjk0NGE4ZDBhZjZkYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTUgMDA6MTE6MzkgMjAwOCArMDEwMAoKICAgIENvZGluZyBTVHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjY5MjFlM2RjMzMxMjkzYzg3M2VjNGQxMDlmZDU1MTdhNDJhOTBiMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEZlYiA1IDEzOjMwOjQzIDIwMDggKzA5MDAKCiAgICBzaDogRml4IHJlZ2lzdGVyIGFkZHJlc3Mgb2YgU0g3NzIyCgogICAgVGhlIGFkZHJlc3Mgb2YgU0g3NzIyIGlzIHdyb25nIGJ5IG9sZCBkb2N1bWVudC4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwZWM3YTA2MWZiMWMyNzdmNmFmZDczZDYxZGQ3MWJkMjFlN2VmN2IyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTc6NDQ6MjMgMjAwOCAtMDUwMAoKICAgIG9ubHkgdXBkYXRlIHZlcnNpb24gaGVhZGVyIGFzIG5lZWRlZAoKICAgIENvbnN0YW50bHkgcmVidWlsZGluZyB0aGUgdmVyc2lvbiBoZWFkZXIgd2lsbCBmb3JjZSB1c2VsZXNzIHJlbGlua2luZywgc28gd2UKICAgIHNpbXBseSBuZWVkIHRvIGNvbXBhcmUgdGhlIG5ldyBoZWFkZXIgd2l0aCB0aGUgZXhpc3Rpbmcgb25lIGJlZm9yZSB1cGRhdGluZwogICAgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDIwODQ0N2Y4ZTk1M2YzNDc0MjVlYjkyYzhlMjhkNTllNmQ5MTEzNjMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6NTY6MTkgMjAwOCAtMDUwMAoKICAgIERvIG5vdCBzcGVjaWZ5IGEgQ1JPU1NfQ09NUElMRSBkZWZhdWx0IHdoZW4gZXhlY3V0aW5nIHNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWY3ODBhYTZmMTdhNWQ3OTc5MWQ2OWVjMWQyZjY2ZDc2YWM0NWQ4ZQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglXZWQgRmViIDEzIDExOjE5OjE5IDIwMDggKzAxMDAKCiAgICBGaXggcmV0dXJuIHZhbHVlIG9mIG10ZXN0IHdoZW4gQ0ZHX0FMVF9NRU1URVNUIHNldAoKICAgIEZpeCBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBmcm9tIGEgbm9uLXZvaWQgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgOTQzYWZhMjI5Y2Y1YmY3MGVmOTE3YzdlYjZiZDBkYjU5YTFiYTYwMgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozNToyNiAyMDA4IC0wNjAwCgogICAgODV4eCwgODZ4eDogRGV0ZXJtaW5lIEkyQyBjbG9jayBmcmVxdWVuY2llcyBhbmQgc3RvcmUgaW4gZ2xvYmFsX2RhdGEKCiAgICBVcGRhdGUgZ2xvYmFsX2RhdGEgdG8gZGVmaW5lIGkyYzFfY2xrIGFuZCBpMmMyX2NsayB0byA4NXh4IGFuZCA4Nnh4LgoKICAgIFVwZGF0ZSB0aGUgZ2V0X2Nsb2NrcygpIGZ1bmN0aW9uIGluIDg1eHggYW5kIDg2eHggdG8gZGV0ZXJtaW5lIHRoZSBJMkMKICAgIGNsb2NrIGZyZXF1ZW5jeSBhbmQgc3RvcmUgaXQgaW4gZ2QtPmkyYzFfY2xrIGFuZCBnZC0+aTJjMl9jbGsuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTMxYjNhOWMzYmRmYWFlYWE3MWU1N2E2MDI2ZWVjNzI2MDA1YjA4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAyMzoxODowMSAyMDA4ICswMTAwCgogICAgVFFNODM0eDogY2xlYW4gdXAgY29uZmlndXJhdGlvbgoKICAgIEdldCBib2FyZCBuYW1lIGNvbnNpc3RlbnQgd2l0aCBMaW51eCBhbmQgZWxzZXdoZXJlOwogICAgZ2V0IHJpZCBvZiBsb2NhbCBuZXR3b3JrIGRlZmluaXRpb25zIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDM4Y2MwOWM1NWIxZDdmMjMzNzg5MDUyYzZmYzQ2MmU1Mzc3NjY5YTkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgRmViIDE0IDA4OjAyOjEyIDIwMDggKzAxMDAKCiAgICBURlRQOiBmaXggc2VhcmNoIG9mICc6JyBpbiBCb290RmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGJjOWVmYWRhMTcwMDk2YzZiMjczZjE5MTY1ZTMyOTM2ZDMzMGQ4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMjI6NDY6NTUgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTc2NzBmNmMxZTUyYWU2ZDJhNDNmZjc1YThiY2ZhN2E1Yzg2ZTQ3YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMjI6NDM6MjIgMjAwOCArMDEwMAoKICAgIFBQQzogVXNlIHIyIGluc3RlYWQgb2YgcjI5IGFzIGdsb2JhbCBkYXRhIHBvaW50ZXIKCiAgICBSMjkgd2FzIGFuIHVubHVja3kgY2hvaWNlIGFzIHdpdGggcmVjZW50IHRvb2xjaGFpbnMgKGdjYy00LjIueCkgZ2NjCiAgICB3aWxsIHJlZnVzZSB0byB1c2UgbG9hZC9zdG9yZSBtdWx0aXBsZSBpbnNuczsgaW5zdGVhZCwgaXQgaXNzdWVzIGEKICAgIGxpc3Qgb2Ygc2ltcGxlIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIHVwb24gZnVuY3Rpb24gZW50cnkgYW5kIGV4aXQsCiAgICByZXN1bHRpbmcgaW4gYmlnZ2VyIGNvZGUgc2l6ZSwgd2hpY2ggaW4gdHVybiBtYWtlcyB0aGUgYnVpbGQgZm9yIGEKICAgIGZldyBib2FyZHMgZmFpbC4KCiAgICBVc2UgcjIgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNjMjM0ZWZhNjkzYmM1OTkwNmMyYmU1NWM3OTE4ZWNiYjU1MzkyZWEKQXV0aG9yOiBVd2UgS2xlaW5lLUvDtm5pZyA8VXdlLktsZWluZS1Lb2VuaWdAZGlnaS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMDk6MDg6NDkgMjAwOCArMDEwMAoKICAgIEFSTTogbWFrZSB0aGUgbWFjaGlkIGNvbmZpZ3VyYWJsZSB2aWEgdGhlIGVudmlyb25tZW50CgogICAgSWYgdGhlIHZhcmlhYmxlICJtYWNoaWQiIGV4aXN0cywgbGV0IGRvX2Jvb3RtX2xpbnV4IHVzZSB0aGF0IGluc3RlYWQKICAgIG9mIGJkLT5iaV9hcmNoX251bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUv2bmlnIDxVd2UuS2xlaW5lLUtvZW5pZ0BkaWdpLmNvbT4KCmNvbW1pdCBkZDI0MDU4NDA3YzVhZGQ0NWNjNjBhZWM2Yzc1N2RkYzFhMTdlMWIwCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzQ6NDYgMjAwOCArMDIwMAoKICAgIFVzZSAjaWZkZWYgQ09ORklHX0ZTTERNQUZFQwoKICAgIE1DRF90YXNrcy5jIGxhY2tzIFtzdWJqZWN0XSBzbyBjb21waWxhdGlvbiBvZiBtaXBzIHRhcmdldHMgKGFuZCBtb3JlLCBwcm9iYWJseSkKICAgIGZhaWxzCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgMjZjN2JhYjgxZTA4ZGM3YmQ2OTZjNDhmNzUzNDI4YTgyOTYyOWJkOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBKYW4gMTkgMTA6MjU6NTkgMjAwOCArMDkwMAoKICAgIGNvbW1vbi9taWlwaHl1dGlsLmM6IENsZWFudXAgTUlJX0RFQlVHIGFuZCBkZWJ1ZygpCgogICAgQ3VycmVudCBNSUlfREVCVUcgaXMgY29uZnVzaW5nIGluIHR3byB3YXlzLiBPbmUgaXMgdXNlbGVzcyBkZWZpbmUtdGhlbi0KICAgIHVuZGVmIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIFRoZSBvdGhlciBpcyB0aGVyZSBpcyBvbmx5IG9uZSBkZWJ1ZygpIGluCiAgICB0aGlzIGZpbGUsIGFuZCB0aGF0IGRvZXNuJ3Qgc2VlbSB3b3J0aHdoaWxlIHRvIGJvdGhlciBoYXZpbmcgTUlJX0RFQlVHLgogICAgV2hpbGUgdGhlcmUgYXJlIG1hbnkgdXNlZnVsIHByaW50ZigpL3B1dHMoKSBkZWJ1ZyBjb2RlcywgYnV0IHRoZXkgYXJlIGZvcgogICAgREVCVUcsIG5vdCBmb3IgTUlJX0RFQlVHLgoKICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gcHV0IHRoZW0gYWxsIHRvZ2V0aGVyIGludG8gTUlJX0RFQlVHIGFuZCBkZWJ1ZygpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNzUxYjliNTE4OWYzMjc0YjAzYzgwOTE3MjYzMTMxNmQ2YjAwMmM4MgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE2OjQzOjI1IDIwMDggKzA5MDAKCiAgICBPbmVOQU5EIEluaXRpYWwgUHJvZ3JhbSBMb2FkZXIgKElQTCkgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgT25lTkFORCBib290IHdpdGhpbiBVLUJvb3QuCiAgICBCZWZvcmUgdGhpcyB3b3JrLCB3ZSB1c2VkIGFub3RoZXIgT25lTkFORCBJUEwgY2FsbGVkIFgtTG9hZGVyIGJhc2VkCiAgICBvbiBvcGVuIHNvdXJjZS4gV2l0aCB0aGlzIHdvcmssIHdlIGNhbiBidWlsZCB0aGUgb25lYm9vdC5iaW4gaW1hZ2UKICAgIHdpdGhvdXQgb3RoZXIgcHJvZ3JhbS4KCiAgICBUaGUgYnVpbGQgc2VxdWVuY2UgaXMgc2ltcGxlLgogICAgRmlyc3QsIGl0IGNvbXBpbGVzIHRoZSB1LWJvb3QuYmluCiAgICBTZWNvbmQsIGl0IGNvbXBpbGVzIE9uZU5BTkQgSVBMCiAgICBGaW5hbGx5LCBpdCBiZWNvbWVzIHRoZSBvbmVib290LmJpbiBmcm9tIE9uZU5BTkQgSVBMIGFuZCB1LWJvb3QuYmluCiAgICBUaGUgbWVjaGFuaXNtIGlzIHNpbWlsYXIgd2l0aCBOQU5EIGJvb3QgZXhjZXB0IGl0IGJvb3RzIGZyb20gaXRzZWxmLgoKICAgIEFub3RoZXIgdGhpbmcgaXMgdGhhdCB5b3UgY2FuIG9ubHkgdXNlIHRoZSBPbmVOQU5EIElQTCBvbmx5IHRvIHdvcmsKICAgIG90aGVyIGJvb3Rsb2FkZXIgc3VjaCBhcyBSZWRCb290IGFuZCBzbyBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDIxZjZmOTYzNmYwZTk3ODM5NzU0ODc1MTM0NzQyNWZiZjhkNDJiYjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTM6MDY6NTkgMjAwOCAtMDYwMAoKICAgIEZpeCBDT05GSUdfTU1DIHVzYWdlIGluIGZhdCBjb2RlCgogICAgQSAjaWYgc3RhdGVtZW50IGluIGZhdC5jIGRlcGVuZGVkIG9uIENPTkZJR19NTUMsIGluc3RlYWQgb2YKICAgIGRlZmluZWQoQ09ORklHX01NQykuICBUaGlzIG1lYW50IENPTkZJR19NTUMgbmVlZGVkIHRvIGJlIGRlZmluZWQKICAgIGFzICIxIiByYXRoZXIgdGhhbiBqdXN0IGRlZmluZWQuICBOb3cgaXQncyBiZXR0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1N2Q3ZDM2NGNlMTg5ZTM5YjBhNjQzMzhkMmY4MDEyYzA3NGEyYmQKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEyOjUyOjMxIDIwMDggKzAxMDAKCiAgICBwcGM6IFJlZmFjdG9yIGNhY2hlIHJvdXRpbmVzLCBzbyB0aGVyZSBpcyBvbmx5IG9uZSBjb21tb24gc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgM2YyYWM4ZjkyOGM3NmNiZDIzNzQ0MzdiMmQwNzlmOGI0MzI0YWFiYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTU6NTU6MDIgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIHN5c19lcHJvbS5jCgogICAgc3lzX2VlcHJvbS5jOjgyOjk6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVlbmNlICdcLycKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1MjMwMTA3MDI1NzMzZTg5ZTI4ZmQ1ZTVjZmQ5MTZkNDk1M2MyOGEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuIGF0PgpEYXRlOglGcmkgRmViIDIyIDExOjQwOjUwIDIwMDggKzAwMDAKCiAgICBNb3ZlIEFUOTFSTTkyMDBESyBib2FyZCBzdXBwb3J0IHVuZGVyIGJvYXJkL2F0bWVsCgogICAgV2UgYWxyZWFkeSBoYXZlIGEgdmVuZG9yIHN1YmRpciBmb3IgQXRtZWwsIHNvIHdlIHNob3VsZCB1c2UgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbiA8YXQ+IGF0bWVsLmNvbT4KCmNvbW1pdCA2ZDA5NDNhNmJlOTk5NzdkNmQ4NTNkNTE3NDllOTk2M2Q2OGViMTkyCkF1dGhvcjogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMDk6MDY6NTIgMjAwOCArMDAwMAoKICAgIEFSTTogY2xlYW51cCBkdXBsaWNhdGVkIGV4Y2VwdGlvbiBoYW5kbGluZ2NvZGUKCiAgICBNb3ZlIGR1cGxpY2F0ZWQgZXhjZXB0aW9uIGhhbmRsaW5nIGNvZGUgaW50byBsaWJfYXJtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgoKY29tbWl0IGVhOGQ5ODlmNGVmODIwM2UxYzAyOTFlNjI0MzVhOGM2MmUzY2ZiMjkKQXV0aG9yOiBUaW1vIFR1dW5haW5lbiA8dGltby50dXVuYWluZW5Ac3lzYXJ0LmZpPgpEYXRlOglGcmkgRmViIDEgMTA6MDk6MDMgMjAwOCArMDAwMAoKICAgIFN1cHBvcnQgZm9yIEFydGlsYSBNLTUwMSBzdGFydGVyIGtpdAoKICAgIEtpbW1vIExlcHBhbGEgLyBTeXNhcnQgYW5kCiAgICBUaW1vIFR1dW5haW5lbiAvIFN5c2FydAoKY29tbWl0IDk2MDRiNmU1M2RkYWU0ZmUwMGE0ODhjYmNkNmIwZTZjYjM0NGJjY2MKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglNb24gRmViIDExIDEwOjUwOjE5IDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0CgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgcmVhZF9kYXRhZmxhc2goKSB0YWtlcyBhIHNpZ25lZCBjaGFyIHBvaW50ZXIgYXMgYSBwYXJhbWV0ZXIuIFNpbGVuY2UgYQogICAgZmV3IHdhcm5pbmdzIGR1ZXMgdG8gaW5jb3JyZWN0IHBhcmFtZXRlciB0eXBlcyBpbiBlbnZfZGF0YWZsYXNoLmMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA2NGU4YTA2YWY2OGNkYTE3NGE4YTA2ZDBhNjFmY2U1ZTViYjE4OWQ3CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IEZlYiA3IDA5OjQyOjU3IDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogbW92ZSBib2FyZCBmaWxlcyB0byBBdG1lbCB2ZW5kb3IgZGlyZWN0b3J5LgoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBtb3ZlIGF0OTFjYXA5YWRrIGJvYXJkIGZpbGVzIHRvIEF0bWVsIHZlbmRvciBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA3MjYzZWYxOTFiODdkYTk0NzY4Zjc2MmM3MDkzYmVkZWI3MGRiOThmCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW4gYXQ+CkRhdGU6CVRodSBKYW4gMyAyMToxNTo1NiAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IE1BQ0IgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuIDxhdD4gcG9waWVzLm5ldD4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuIDxhdD4gYXRtZWwuY29tPgoKY29tbWl0IDZhZmNhYmYxMWQ3MzIxODUwZjRmZWFhZGZlZTg0MTQ4OGFjZTU0YzUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgRmViIDcgMTY6Mzc6NTQgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBib2FyZC8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGZlZmI2YzEwOTI4Y2FhOWU3MTMzNWNhZDY0ZGNiNjVjODNmY2U4YWIKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbiBhdD4KRGF0ZToJV2VkIEphbiAzMCAyMToxNTo1NCAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IGNwdS8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbiA8YXQ+IHBvcGllcy5uZXQ+Cgpjb21taXQgZmE1MDZhOTI2Y2VjMzQ4ODA1MTQzNTc2Yzk0MWY4ZTYxYjMzM2NjMApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBKYW4gMzEgMjE6MTU6NTMgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBpbmNsdWRlLyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMjBiMTk3YzZmMjc5OWFmMzk5YTY4Zjk2YTFhZmY1NDNhNzU2MjFiOApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVN1biBKYW4gMjAgMTk6NDk6MjEgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBidWlsZCBpbnRlZ3JhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgZDQ5ZmU0YmVkNWI2OWVjOTEwOTA5ZDFiZDYyZGEyM2VjZDg4MDFmZApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVN1biBKYW4gMjAgMjE6MDc6MDAgMjAwOCArMDAwMAoKICAgIEltcHJvdmUgRGF0YUZsYXNoIENTIGRlZmluaXRpb24uCgogICAgVXNlIGEgc3RydWN0dXJlIGluc3RlYWQgb2YgdGhlIGVycm9yIHByb25lIHVubmFtZWQgYXJyYXkgdG8KICAgIGRlZmluZSB0aGUgcG9zc2libGUgZGF0YWZsYXNoIGJhbmtzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgYTZjZGQyMWI1NjAxNDIwODcwNjIzODcxMmE4NTNhOWU5YTBhMjI5MApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVNhdCBKYW4gMTkgMjE6MDk6MzUgMjAwOCArMDAwMAoKICAgIEZpeCBhcm05MjZlanMgY29tcGlsZSB3aGVuIFNLSVBfTE9XTEVWRUxfSU5JVCBpcyBvbgoKICAgIEZpeCBhcm05MjZlanMgY29tcGlsZSB3aGVuIFNLSVBfTE9XTEVWRUxfSU5JVCBpcyBvbi4KCiAgICBjcHUvYXJtOTI2ZWpzL3N0YXJ0Lm86IEluIGZ1bmN0aW9uIGBjcHVfaW5pdF9jcml0JzoKICAgIC4uLi9jcHUvYXJtOTI2ZWpzL3N0YXJ0LlM6MjI3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBsb3dsZXZlbF9pbml0JwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgZWE2ODZmNTJlNDViM2RmMjkzODg2NmQzZjVhOThiYjI1NTZkZmUyYgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBGZWIgMSAxNjo1MDoyNCAyMDA4ICswMDAwCgogICAgRml4IHRpbWVyIG92ZXJmbG93IGluIERhVmluY2kKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IGY0ZTdjYmZjYjBmY2JjMzI1YTJiY2ZlYTdlMDBlM2RkMzdmOTM4NDYKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgRmViIDEgMTY6NDk6MDggMjAwOCArMDAwMAoKICAgIFVwZGF0ZSBib2FyZCBOZXRTdGFyCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgYjdmNjE5M2U3NjY1MWUxZmQ2MDZlNDZlYjExOTE1YjUzY2I2NjE4YgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVR1ZSBGZWIgNSAxMDoyNjo0MiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIEZpeCBtYWtlIE89Li4veHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDI5ZTM1MDBjYmM0M2M4OWVmZjZlNzIwY2E4M2UzNzVkZWVlY2Q5YjMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVHVlIEphbiAyMiAwODo1MTo1OSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgQ09ORklHXzR4eF9EQ0FDSEUgY29tcGlsZSBzd2l0Y2ggdG8gRGVuYWxpLWNvcmUgU1BEIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBmZTg5MWVjZjRkMTg3ZTlkMTFkZGU4NjllZDQ2MjNhZjUyYjU0NDUxCkF1dGhvcjogSGlyb3NoaSBJdG8gPGl0b0BtbGIuY28uanA+CkRhdGU6CVRodSBKYW4gMzEgMTg6MzU6MDQgMjAwOCArMDkwMAoKICAgIE5GUyBUaW1lb3V0IHdpdGggbGFyZ2UgZmlsZXMuCgogICAgUmV0cnkgdG8gc2VuZCBORlMgcGFja2V0IGJlZm9yZSByZWFjaGluZyB0aW1lb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhpcm9zaGkgSXRvIDxpdG9AbWxiLmNvLmpwPgoKY29tbWl0IDg4ZjcyNTI3ZjViODljMDkwNWFkNWMzNmNjMmVmOGQyOWRkNmJiZjAKQXV0aG9yOiBKb2hhbm5lcyBTdGV6ZW5iYWNoIDxqc0BzaWcyMS5uZXQ+CkRhdGU6CVR1ZSBKYW4gMjkgMDA6MTE6MjUgMjAwOCArMDEwMAoKICAgIEFkZCBkZXBlbmRlbmNpZXMgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIHdpdGggcGFyYWxsZWwgbWFrZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2hhbm5lcyBTdGV6ZW5iYWNoIDxqc0BzaWcyMS5uZXQ+Cgpjb21taXQgNmQxYjZmOWY4OWM4MTVlYWNhNDRhY2ZmOGU3M2VjZTcxODFmNjFiNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEphbiAyOCAwNTo0NjowMSAyMDA4IC0wNTAwCgogICAgTWFyayBib2FyZF9pbml0X1tmcl0gYXMgbm9yZXR1cm4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTYxYjJhZjRkN2I0OGZkNjAyY2UzMzNjMzU1YTRkZjAzMzc4OTJiYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEphbiAyOCAwNToyODo1MCAyMDA4IC0wNTAwCgogICAgT25seSB1c2UgVEVYVF9CQVNFIGlmIGRlZmluZWQgYnkgdGhlIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDFiNzY5ODgxNzUwMDMwZjEwNzQzODA4YjlkNjAxM2UxMWY1NTkzNTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDI1IDA3OjU0OjQ3IDIwMDggKzAxMDAKCiAgICBGaXggcmVtYWluaW5nIENPTkZJR19DT01NQU5EUwoKICAgIHVwZGF0ZSBjb21tZW50cwogICAgRml4IGNvZGluZyBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGM5ZDQyZTZiMGI4M2Q1MDczMzVhMjkxZTNlYTk5MjQwMDM4ZjRiOQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBKYW4gMjEgMTY6NDY6MDAgMjAwOCArMDEwMAoKICAgIEFkZCAqfiB0byAuZ2l0aWdub3JlCgogICAgT25lIHNob3VsZCBuZXZlciBhZGQgYSBiYWNrdXAgZmlsZSBlbmRpbmcgaW4gd2l0aCB+IHRvIHRoZSBnaXQgcmVwb3NpdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDNjZmIwYzUxYjJiYjVlZGU1NGVjYTg1YWNlNWIxYmExMmJlMzE0YjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAwOjAyOjEwIDIwMDggLTA2MDAKCiAgICBSZW1vdmUgZHVwbGljYXRlIGRlZmluZXMgZm9yIEFSUkFZX1NJWkUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM3N2NlNDc0YjFjNTdiMTNlOWQzNmQ5ODMwZjE0Nzk2NmMxNDM2OTQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglNb24gSmFuIDE0IDIyOjA4OjE0IDIwMDggKzAxMDAKCiAgICBGaXggaW5jb3JyZWN0IGFkZHJlc3MgdGVzdCBpbiBBVDkxRl9EYXRhZmxhc2hTZWxlY3QoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGQ5YWQxMTViYmY3YmIwODQyZGU3ZGJkMjUwMmI3ZTQzMGY4M2NjM2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDEzIDE1OjA5OjU4IDIwMDggLTA2MDAKCiAgICBGaXggYnVpbGRpbmcgb2YgZmR0X3N1cHBvcnQuYyBpZiBERUJVRyBzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGNjZDZlMTQ2NGU1Mzk2YmMxYTlhZWJmNzA3N2RkZjQzNDJlYWZlMDMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDEyIDE0OjUzOjI4IDIwMDggLTA2MDAKCiAgICBBZGQgQ0ZHX01QQzg2eHhfRERSX0FERFIgYW5kIENGR19NUEM4Nnh4X0REUjJfQUREUiBzeW1ib2xzCgogICAgVGhlc2UgcmVwbGFjZSBkaXJlY3Qgc3RydWN0dXJlIHJlZmVyZW5jZXMgZm9yIElNTVIgc2VjdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjI3NzZiZThkY2E0MDk3Y2EwM2Q0Zjk0MTVmMDhkNDg4N2I0NWQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxMiAwMDo0NTowNiAyMDA4ICswMTAwCgogICAgR2V0IHJpZCBvZiAiI3VuZGVmIERFQlVHIiBmcm9tIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDczYmYxZTJkZTc4NjJiY2RiZDVhOWY5OTNiM2U4NGI2N2M4ZWE5YzgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE3OjA5OjQxIDIwMDggLTA2MDAKCiAgICBSZW1vdmUgI3VuZGVmIERFQlVHIGZyb20gTVBDODN4eCBib2FyZCBoZWFkZXIgZmlsZXMKCiAgICBSZW1vdmUgdGhlICIjdW5kZWYgREVCVUciIGxpbmUgZnJvbSBhbGwgRnJlZXNjYWxlIDgzeHggYm9hcmQgaGVhZGVyIGZpbGVzLgogICAgVGhlIGluY2x1c2lvbiBvZiB0aGlzIGxpbmUgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBlbmFibGUgZGVidWcgY29kZSBpbgogICAgb3RoZXIgc291cmNlIGZpbGVzLCBiZWNhdXNlICIjZGVmaW5lIERFQlVHIiB0eXBpY2FsbHkgbmVlZHMgdG8gYmUgZGVmaW5lZAogICAgYmVmb3JlIGFueSBoZWFkZXIgZmlsZXMgYXJlIGluY2x1ZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjkwMThjZTJlMDg2ZTljYWYzNWI5MTRkNjc1YjgyYmM0ODg4ZjA3NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDg6MjU6NDUgMjAwOCAtMDYwMAoKICAgIFFFOiBNb3ZlIEZEVCBzdXBwb3J0IGludG8gYSBjb21tb24gZmlsZQoKICAgIE1vdmUgdGhlIGZsYXQgZGV2aWNlIHRyZWUgc2V0dXAgZm9yIFFFIHJlbGF0ZWQgZGV2aWNlcyBpbnRvCiAgICBhIGNvbW1vbiBmaWxlIHNoYXJlZCBiZXR3ZWVuIDgzeHggJiA4NXh4IHBsYXRmb3JtcyB0aGF0IGhhdmUgUUUncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDVjZjc0NmMzMDM3MTAzMjlmODA0MGQ5YzYyZWUzNTQzMTNlM2U5MWYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU5OjA5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBrZXJuZWwgZGF0YSBmaW5kIGNvZGUgdG8gZ2V0X2tlcm5lbCgpIHJvdXRpbmUKCiAgICBWZXJpZmljYXRpb24gb2YgdGhlIGtlcm5lbCBpbWFnZSAoaW4gb2xkIGZvcm1hdCkgYW5kIGZpbmRpbmcga2VybmVsCiAgICBkYXRhIGlzIG1vdmVkIHRvIGEgZGVkaWNhdGVkIHJvdXRpbmUuIFRoZSByb3V0aW5lIHdpbGwgYWxzbyBob2xkCiAgICBzdXBwb3J0IGZvciwgdG8gYmUgYWRkZWQsIG5ldyBpbWFnZSBmb3JtYXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YjMyNTQ1NGZkMjMxZDQyNzNkZTNmZTM3Mzg1MGY3NzdmYjA4NmJmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1ODoyMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgRkRUIGhhbmRsaW5nIGluIFBQQyBkb19ib290X2xpbnV4KCkKCiAgICBNb3ZlIEZEVCBibG9iIGZpbmRpbmcgYW5kIHJlbG9jYXRpb24gdG8gYSBkZWRpY2F0ZWQKICAgIGdldF9mZHQoKSByb3V0aW5lLiBJdCBpbmNyZWFzZXMgY29kZSByZWFkYWJpbGl0eSBhbmQKICAgIHdpbGwgbWFrZSBhZGRpbmcgc3VwcG9ydCBmb3IgbmV3IHVJbWFnZSBmb3JtYXQgZWFzaWVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYjZiMGZlNjQ2MGI3MDYzYWM2MGI5YTM1MzFlZjIxMGFlZGIzMTQ1MQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTg6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIGRvX2JvdG1fbGludXgoKSBib290IGFsbG9jYXRpb25zCgogICAgVGhpcyBwYXRjaCBtb3ZlcyBjb21tb24gcHJlLWJvb3QgYWxsb2NhdGlvbiBzdGVwcyBzaGFyZWQgYmV0d2VlbiBQUEMKICAgIGFuZCBNNjhLIHRvIGEgaGVscGVyIHJvdXRpbmVzOgoKICAgIGNvbW1vbjoKICAgIC0gZ2V0X2Jvb3Rfc3BfbGltaXQoKQogICAgLSBnZXRfYm9vdF9jbWxpbmUoKQogICAgLSBnZXRfYm9vdF9rYmQoKQoKICAgIHBsYXRmb3JtOgogICAgLSBzZXRfY2xvY2tzX2luX21oeigpCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjZWFlZDJiMWU1NGViZjE0ZDYwMGUwMmZlZjAxNmM4ZGY1Y2M0ZDQwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1NzoxNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgcmFtZGlzayBsb2FkaW5nIHRvIGEgY29tbW9uIHJvdXRpbmUKCiAgICBSYW1kaXNrIGxvYWRpbmcgY29kZSwgaW5jbHVkaW5nIGluaXRyZF9oaWdoIHZhcmlhYmxlIGhhbmRsaW5nLAogICAgd2FzIGR1cGxpY2F0ZWQgZm9yIFBQQyBhbmQgTTY4SyBwbGF0Zm9ybXMuIFRoaXMgcGF0Y2ggY3JlYXRlcwogICAgY29tbW9uIGhlbHBlciByb3V0aW5lIHRoYXQgaXMgYmVpbmcgY2FsbGVkIGZyb20gYm90aCBwbGF0Zm9ybQogICAgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDY4ZDRmMDVlNmIyMzgzYTQ0MmZiNzFmODBmMmE5ZmJiM2Q4ZGVmNjgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU1OjUzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlZCBkZWFkIHJhbWRpc2sgY29kZSBvbiBtaWNyb2JsYXplIGFyY2hpdGVjdHVyZXMKCiAgICBNaWNyb2JsYXplIGRvX2Jvb3RtX2xpbnV4KCkgaW5jbHVkZXMgcmFtZGlzayBwcm9jZXNzaW5nIGNvZGUgYnV0CiAgICB0aGUgcmFtZGlzayBkb2VzIG5vdCBnZXQgdXNlZCBhbnl3aGVyZSBsYXRlciBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVhZDAzZWIzODU0YzE2MjY4NDIyMmE3MThiNDRjMDcxNmVhMGRiMDMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU1OjM5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRmFjdG9yIG91dCBjb21tb24gaW1hZ2VfZ2V0X3JhbWRpc2soKSByb3V0aW5lCgogICAgQXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZXMgc2hhcmUgY29tbW9uCiAgICByYW1kaXNrIGltYWdlIHByb2Nlc3NpbmcgY29kZS4gTW92ZSB0aGlzIGNvZGUgdG8gYSBjb21tb24KICAgIGhlbHBlciByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDNjNWViNmRkMWY0ZWQzYzMzODgzODZjZjFkMWJmODJhYTUxZDU2YgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDggMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIEZEVCBlcnJvciBwcmludGluZyB0byBjb21tb24gZmR0X2Vycm9yKCkgcm91dGluZQoKICAgIEZEVCBlcnJvciBoYW5kbGluZyBpbiBQUEMgZG9fYm9vdG1fbGludXgoKSBzaGFyZXMgdGhlIHNhbWUgbWVzc2FnZSBmb3JtYXQuCiAgICBUaGlzIHBhdGNoIG1vdmVzIGVycm9yIG1lc3NhZ2UgcHJpbnRpbmcgdG8gYSBoZWxwZXIgZmR0X2Vycm9yKCkgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNDJiNzNlOGVlMDBkNDgwMDQ3OTFkZWE2NGI4MDkzZmI5NzRjNTdlMQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGYWN0b3Igb3V0IGNvbW1vbiByb3V0aW5lcyBmb3IgZ2V0dGluZyBvcy9hcmNoL3R5cGUvY29tcCBuYW1lcwoKICAgIE1vdmUgbnVtZXJpYy1pZCB0byBuYW1lIHRyYW5zbGF0aW9uIGZvciBpbWFnZSBvcy9hcmNoL3R5cGUvY29tcCBoZWFkZXIKICAgIGZpZWxkcyB0byBhIGhlbHBlciByb3V0aW5lczogaW1hZ2VfZ2V0X29zX25hbWUoKSwgaW1hZ2VfZ2V0X2FyY2hfbmFtZSgpLAogICAgaW1hZ2VfZ2V0X3R5cGVfbmFtZSgpLCBpbWFnZV9nZXRfY29tcF9uYW1lKCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlOTljMjY2OTRhMzg0MjIxZDMzNmY2NDQ4YzA2YTU3NDc5YzBiYWE0CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZSBzdGFuZGFsb25lIGFwcGxpY2F0aW9ucyBoYW5kbGluZyBmcm9tIGJvb290bQoKICAgIFN0YW5kYWxvbmUgYXBwbGljYXRpb25zIGFyZSBzdXBwb3NlZCB0byBiZSBydW4gdXNpbmcgdGhlICJnbyIgY29tbWFuZC4KICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzdGFuZGFsb25lIGltYWdlcyBoYW5kbGluZyBmcm9tIHRoZSBkb19ib290bSgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNGEyYWQ1ZmY2NDAwNjk4NDMzZGQ3MjAzZDM0OTM5YzNjOWNjOWJmZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmUgT0ZfRkxBVF9UUkVFIHN1cHBvcnQgZnJvbSBQUEMgYm9vdG0gY29kZQoKICAgIFN1cHBvcnQgZm9yIE9GX0ZMQVRfVFJFRSBpcyB0byBiZSBvYnNvbGV0ZWQgaW4gdGhlIG5lYXIgZnV0dXJlLAogICAgcmVtb3ZlIHJlbGF0ZWQgY29kZSBmcm9tIHRoZSBib290bSByb3V0aW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDgyODUwZjNkMzJhMjY2MTg2OGVjNjg3NmJlZDdhMjJjNTVjZWY3MTgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gVXNlIGltYWdlIEFQSSBpbiBTSCBkb19ib290bV9saW51eCgpIHJvdXRpbmUKCiAgICBJbnRyb2R1Y2UgaW1hZ2UgaGFuZGxpbmcgQVBJIGZvciBsYXRlbHkgYWRkZWQgSGl0YWNoaSBTSCBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0YTk5NWVkZWMxYWMxNjNkOTMyNmQxNDNmZmUyYjQ3ZTc1NDM0MDdmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbmFtZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgYm9vdG0gY29kZSBmaWxlcwoKICAgIEltcGxlbWVudGF0aW9uIG9mIHRoZSBkb19ib290bV9saW51eCgpIGFuZCBvdGhlciBib290bSBoZWxwZXIgcm91dGluZXMgaXMKICAgIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBjb2RlLiBBcyBzdWNoIGl0IHJlc2lkZXMgaW4gbGliXzxhcmNoPiBkaXJlY3RvcmllcwogICAgaW4gZmlsZXMgbmFtZWQgPGFyY2g+X2xpbnV4LmMKCiAgICBUaGlzIHBhdGNoIHJlbmFtZXMgdGhvc2UgZmlsZXMgdG8gYSBtb3JlIGNsZWFyIGFuZCBhY2N1cmF0ZQogICAgbGliXzxhcmNoPi9ib290bS5jIGZvcm0uCgogICAgTGlzdCBvZiB0aGUgcmVuYW1lZCBmaWxlczoKICAgICAgIGxpYl9hcm0vYXJtbGludXguYyAtPiBsaWJfYXJtL2Jvb3RtLmMKICAgICAgIGxpYl9hdnIzMi9hdnIzMl9saW51eC5jIC0+IGxpYl9hdnIzMi9ib290bS5jCiAgICAgICBsaWJfYmxhY2tmaW4vYmY1MzNfbGludXguYyAtPiBsaWJfYmxhY2tmaW4vYm9vdG0uYwogICAgICAgbGliX2kzODYvaTM4Nl9saW51eC5jIC0+IGxpYl9pMzg2L2Jvb3RtLmMKICAgICAgIGxpYl9tNjhrL202OGtfbGludXguYyAtPiBsaWJfbTY4ay9ib290bS5jCiAgICAgICBsaWJfbWljcm9ibGF6ZS9taWNyb2JsYXplX2xpbnV4LmMgLT4gbGliX21pY3JvYmxhemUvYm9vdG0uYwogICAgICAgbGliX21pcHMvbWlwc19saW51eC5jIC0+IGxpYl9taXBzL2Jvb3RtLmMKICAgICAgIGxpYl9uaW9zL25pb3NfbGludXguYyAtPiBsaWJfbmlvcy9ib290bS5jCiAgICAgICBsaWJfbmlvczIvbmlvc19saW51eC5jIC0+IGxpYl9uaW9zMi9ib290bS5jCiAgICAgICBsaWJfcHBjL3BwY19saW51eC5jIC0+IGxpYl9wcGMvYm9vdG0uYwogICAgICAgbGliX3NoL3NoX2xpbnV4LmMgLT4gbGliX3NoL2Jvb3RtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc1ODI0MzhjMjg1YmYwY2VmODI5MDlkMGYyMzJkZTY0ZWM1NjdhOGEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmV0dXJuIGVycm9yIG9uIGltYWdlIG1vdmUvdW5jb21wcmVzcyBvdmVyd3JpdGVzCgogICAgQ2hlY2sgZm9yIG92ZXJ3cml0ZXMgZHVyaW5nIGltYWdlIG1vdmUvdW5jb21wcmVzcywgcmV0dXJuIHdpdGggZXJyb3IKICAgIHdoZW4gdGhlIG9yaWdpbmFsIGltYWdlIGdldHMgY29ycnVwdGVkLiBSZXBvcnQgY2xlYXIgbWVzc2FnZSB0byB0aGUgdXNlcgogICAgYW5kIHByZXZlbnQgZnVydGhlciB0cm91YmxlcyB3aGVuIHBvaW50ZXIgdG8gdGhlIGNvcnJ1cHRlZCBpbWFnZXMgaXMgcGFzc2VkCiAgICB0byBkb19ib290bV9saW51eCByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZjEzZTdiMmU5OTNjNjFmZWQxZjYwNzk2MjUwMWUwNTE5NDBkNmU4MApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMjoxNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgaW1hZ2UgaGVhZGVyIHBvaW50ZXIgdXNlIGluIGJvb3RtIGNvZGUKCiAgICAtIHVzZSBzaW5nbGUgaW1hZ2UgaGVhZGVyIHBvaW50ZXIgaW5zdGVhZCBvZiBhIHNldCBvZiBhdXhpbGxpYXJ5IHZhcmlhYmxlcy4KICAgIC0gYWRkIG11bHRpIGNvbXBvbmVudCBpbWFnZSBoZWxwZXIgcm91dGluZXM6IGdldCBjb21wb25lbnQgc2l6ZS9kYXRhIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFlZTExODBiNmU5M2U1NmQwMjgyYWM4ZDk0M2U0NDhlOWQwZWFiMjAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTc6MTAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIGNtZF9ib290bS5jCgogICAgLSBzb3J0IGFuZCBjbGVhbnVwIGhlYWRlcnMsIGRlY2xhcmF0aW9ucywgZXRjLgogICAgLSBncm91cCByZWxhdGVkIHJvdXRpbmVzCiAgICAtIGNsZWFudXAgaW5kZW50YXRpb24sIHdoaXRlIHNwYWNlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYWYxM2NkYmMwMWVhZjg4ODgwOTc4YmZiNGY2MDNlMDEyODE4YmEyNApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBtZW1tb3ZlX3dkKCkgY29tbW9uIHJvdXRpbmUKCiAgICBNb3ZlIGNvbW1vbiwgd2F0Y2hkb2cgc2Vuc2libGUgbWVtbW92ZSBjb2RlIHRvIGEgaGVscGVyIG1lbW1tb3ZlX3dkKCkgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDk1OGZjNDhhYmRkZWFiNTEzZWE0ODQ3ZTM0ZjIyYTJlOWZlNjdmZTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggRkRUIGhlYWRlciB2ZXJpZmljYXRpb24gaW4gUFBDIGRvX2Jvb3RfbGludXgoKSByb3V0aW5lCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxNTE1ODk3MWY0OTI1NWNjZWY1NGYwOTc5YTk0MmNmZDNkZTJhZTUyCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IHVJbWFnZSBoZWFkZXIgcG9pbnRlciB1c2UgaW4gaTM4NiBkb19ib290bV9saW51eCgpCgogICAgVXNlIGltYWdlIGhlYWRlciBjb3B5IGluc3RlYWQgb2YgYSAocG9zc2libHkgY29ycnVwdGVkKSBwb2ludGVyIHRvCiAgICBhIGluaXRpYWwgaW1hZ2UgbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyNjFkY2Y0NjI0YjI1ZjNjNTUxZWZjZjg2MzRlOTE5NGZhYmJhOWMzCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIEkzODYgdUltYWdlIGZha2VfaGVhZGVyKCkgcm91dGluZQoKICAgIEkzODYgdGFyZ2V0cyBhcmUgbm90IHVzaW5nIGEgdUltYWdlIGZvcm1hdCwgaW5zdGVhZCBmYWtlIGhlYWRlcgogICAgaXMgYWRkZWQgdG8gcmFtIGltYWdlIGJlZm9yZSBpdCBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBieSBib290bS4KCiAgICBSZW1vdmUgdGhpcyBmaXh1cCBhbmQgZm9yY2UgcHJvcGVyIHVJbWFnZSB1c2UgZm9yIEkzODYuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1NTkzMTZmYWY3ZWFlMDYxNGM5MWQ3N2Y1MDliNTdkNmM0YzA5MWJhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBDSFVOS1NaIGRlZmluaXRpb24gdG8gaW1hZ2UuaAoKICAgIENIVU5LU1ogZGVmaW5lZCBmb3IgUFBDIGFuZCBNNjhLIGlzIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBvZiA2NEssCiAgICBtb3ZlIHRoaXMgZGVmaW5pdGlvbiB0byBhIGNvbW1vbiBoZWFkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzMjEzNTlmMjA4MjNlMGI4YzVhZDM4YjY0ZDAwN2E2YzQ4Y2RhMTZlCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBndW56aXAoKSBjb21tb24gY29kZSB0byBjb21tb24vZ3VuemlwLmMKCiAgICBNb3ZlIGd1bnppcCgpLCB6YWxsb2MoKSBhbmQgemZyZWUoKSB0byBhIHNlcGFyYXRlIGZpbGUuCiAgICBTaGFyZSB6YWxsb2MoKSBhbmQgemZyZWUoKSB3aXRoIGNyYW1mcyB1bmNvbXByZXNzIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkNDVkNWExOGI2YjM2Njg4ZjIzNjU2MjNmOWQ1NTA1NjZjNjY0YjViCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBPRi9GRFQgI2lmLyNlbGlmLyNlbmRpZiB1c2UgaW4gZG9fYm9vdG1fbGludXgoKQoKICAgIE1ha2UgQ09ORklHX09GX0xJQkZEVCBhbmQgQ09ORklHX09GX0ZMQVRfVFJFRSB1c2UgbW9yZQogICAgcmVhZGFibGUgaW4gUFBDIHZhcmlhbnQgb2YgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNWQzY2M1NWVjYmFlMjc3ZTA4ZjVmZjc3MWRhMjBiMWQ2YTM2ZWMzNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgUFBDIGRvX2Jvb3RtX2xpbnV4KCkgdG8gbGliX3BwYy9wcGNfbGludXguYwoKICAgIFBQQyBpbXBsZW1lbnRhdGlvbiBvZiBkb19ib290bV9saW51eCgpIHJvdXRpbmUgaXMgbW92ZWQgdG8KICAgIGEgZGVkaWNhdGVkIGZpbGUgbGliX3BwYy9wcGNfbGludXguYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYjk3YTJhMGEyMWYyNzlkNjZkZThhOWJkYmZlMjE5MjA5NjhiY2IxYwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxNDowOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIERlZmluZSBhIEFQSSBmb3IgaW1hZ2UgaGFuZGxpbmcgb3BlcmF0aW9ucwoKICAgIC0gQWRkIGlubGluZSBoZWxwZXIgbWFjcm9zIGZvciBiYXNpYyBoZWFkZXIgcHJvY2Vzc2luZwogICAgLSBNb3ZlIGNvbW1vbiBub24gaW5saW5lIGNvZGUgY29tbW9uL2ltYWdlLmMKICAgIC0gUmVwbGFjZSBkaXJlY3QgaGVhZGVyIGFjY2VzcyB3aXRoIHRoZSBBUEkgcm91dGluZXMKICAgIC0gUmVuYW1lIElIX0NQVV8qIHRvIElIX0FSQ0hfKgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZWQyOWJjNGU4MTQyYjQ2YjYyNmY2NzUyNDIwN2IzNmU0M2Q5YWFkNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MTk6NTggMjAwOCArMDEwMAoKICAgIEFkZCBtaXNzaW5nIGNtZF94aW1nLm8gdG8gY29tbW9uL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzN2UzYzYyZmEwN2E4MjNlNzU2OWM4NzJlM2E5Mzk1ZDIyN2VkOGUzCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBKYW4gMjggMTA6MTU6MDIgMjAwOCArMDEwMAoKICAgIEFEUzUxMjFlOiBERFIyIGluaXQvdGltaW5nIHVwZGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGFjOTE1MjgzMGQ3ZmRlYmFjZThhMjYwYjc3MzdlZjI4NzBjMjFjYTAKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxMzozNjo1NyAyMDA4IC0wNzAwCgogICAgRGV2aWNlIHRyZWUgdXBkYXRlcwoKICAgIENoYW5nZXMgdG8gbWF0Y2ggNTEyMSBkZXZpY2UgdHJlZSBnb2luZyBtYWlubGluZSBpbiAyLjYuMjUuCgogICAgQ2hhbmdlIE9GX1NPQyBmcm9tICJzb2M1MTIxIiB0byBwbGFpbiAic29jIi4KICAgIFJlbW92ZSB1bm5lZWRlZCAicmVmLWZyZXF1ZW5jeSIgZml4dXBzLgogICAgUmVtb3ZlICJhZGRyZXNzIiBlbmV0YWRkciBmaXh1cC4KCiAgICBBZGQgYnVzLWZyZXF1ZW5jeSBmaXh1cCBmb3Igb2xkIE9GX1NPQyBzbyBvbGQKICAgIGtlcm5lbHMgd2l0aCBvbGQgZGV2aWNlIHRyZWVzIHdpbGwgd29yayB3aXRoIG5ldwogICAgdS1ib290IHdpdGggNjZNSHogSVBTIGNsb2NrCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGU1NWQxOGRmM2ZmMmVhNjE0NjI0ZTc0NzkzZGU3YzQzNTIwZTBlNwpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMwIDEzOjM2OjU2IDIwMDggLTA3MDAKCiAgICBDaGFuZ2UgSVBTIGZyZXEgdG8gNjZNSHoKCiAgICBSZWNvbW1lbmRlZCBmcmVxdWVuY3kgaXMgNjZNSHoKICAgIENoYW5nZSBkaXZpZGVyIGZyb20gNCB0byAzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkOWNiNjJmOWQ4Yjc4ZDZjM2FmNWQxZTliNWEzZDY4YTNkNzM5NzQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSmFuIDE0IDIyOjM4OjU1IDIwMDggKzAxMDAKCiAgICB4c2VuZ2luZTogcmVuYW1lIGJvYXJkX3Bvc3RfaW5pdCB0byBib2FyZF9sYXRlX2luaXQKCiAgICBtaXNzaW5nIG1pZ3JhdGlvbiBmcm9tICJDbGVhbnVwIG9mIHNvbWUgaW5pdCBmdW5jdGlvbnMiCiAgICBpbiBjODM3ZGNiMWEzMTY3NDUwOTI1NjdiZmU0ZmIyNjZkMDk0MTg4NGZmCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4ZGFmYTg3NDc2YjBkNzE3MGUyMTljMmY1ZTM4NDJjODMzYTkxODA3CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVNhdCBKYW4gMTIgMjM6MzU6MzMgMjAwOCAtMDUwMAoKICAgIEFkZCBhdHRyaWJ1dGUgUE9TVF9QUkVSRUwgdG8gRUNDIG1lbW9yeSBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZWQyY2Y1NDhjYWM4MGNkM2NmODE1NGRjZmU3YjI2ODViZWY0NTkzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDg6MjU6NDUgMjAwOCAtMDYwMAoKICAgIFFFOiBNb3ZlIEZEVCBzdXBwb3J0IGludG8gYSBjb21tb24gZmlsZQoKICAgIE1vdmUgdGhlIGZsYXQgZGV2aWNlIHRyZWUgc2V0dXAgZm9yIFFFIHJlbGF0ZWQgZGV2aWNlcyBpbnRvCiAgICBhIGNvbW1vbiBmaWxlIHNoYXJlZCBiZXR3ZWVuIDgzeHggJiA4NXh4IHBsYXRmb3JtcyB0aGF0IGhhdmUgUUUncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQzOGRhNTM3OTQzY2QzNjM1NmI5ZDNkOWQ5YjYwNTMzNTU0YjgxZDgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNzoyMDoxNCAyMDA4ICswMTAwCgogICAgQVZSMzI6IE1ha2UgU0RSQU0gcmVmcmVzaCByYXRlIGNvbmZpZ3VyYWJsZQoKICAgIFRoZSBleGlzdGluZyBjb2RlIGFzc3VtZXMgdGhlIFNEUkFNIHJvdyByZWZyZXNoIHBlcmlvZCBzaG91bGQgYWx3YXlzCiAgICBiZSAxNS42IHVzLiBUaGlzIGlzIG5vdCBhbHdheXMgdHJ1ZSwgYW5kIGluZGVlZCBvbiB0aGUgQVROR1cxMDAsIHRoZQogICAgcmVmcmVzaCByYXRlIHNob3VsZCByZWFsbHkgYmUgNy44MSB1cy4KCiAgICBBZGQgYSByZWZyZXNoX3BlcmlvZCBtZW1iZXIgdG8gc3RydWN0IHNkcmFtX2luZm8gYW5kIGluaXRpYWxpemUgaXQKICAgIHByb3Blcmx5IGZvciBib3RoIEFUU1RLMTAwMCBhbmQgQVROR1cxMDAuIE91dC1vZi10cmVlIGJvYXJkcyB3aWxsCiAgICBwYW5pYygpIHVudGlsIHRoZSByZWZyZXNoX3BlcmlvZCBtZW1iZXIgaXMgdXBkYXRlZCBwcm9wZXJseS4KCiAgICBCaWcgdGhhbmtzIHRvIEdlcmhhcmQgQmVyZ2hvZmVyIGZvciBwb2ludGluZyBvdXQgdGhpcyBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2MTE1MWNjY2I2NjBjZGIwNmEwN2ZiMjgzZGU2MDg5OTEzZDdiZGUwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBBcHIgMTkgMTA6MTA6MTEgMjAwNyArMDIwMAoKICAgIEFUU1RLMTAwMDogRml4IHBvdGVudGlhbCBmbGFzaCBwcm9ncmFtbWluZyBidWcKCiAgICBUaGUgKG5vdyBvYnNvbGV0ZSkgYXRuZ3cxMDAgZmxhc2ggcHJvZ3JhbW1pbmcgY29kZSB3YXMgaGF2aW5nIHByb2JsZW1zCiAgICBwcm9ncmFtbWluZyB0aGUgb25ib2FyZCBhdDQ5YnY2NDIgY2hpcC4gVGhlIGF0c3RrMTAwMCBmbGFzaAogICAgcHJvZ3JhbW1pbmcgY29kZSBtYXkgaGF2ZSB0aGUgc2FtZSBidWcsIHNvIGltcG9ydCBmaXggZm9yIHRoaXMgcHJvYmxlbQogICAgZnJvbSB0aGUgQVZSMzIgTGludXggQlNQLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGIyZTFkNWI2NDQ2OWYxMGRmY2NlMjdmN2IwYWZkOTM1Njg0YThlMTEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAyMiAxNzowNDoxMyAyMDA3ICswMTAwCgogICAgQVRTVEsxMDA0OiBGaXggY29tbWVudCBhYm91dCBkZWZhdWx0IGxvYWQgYWRkcmVzcwoKICAgIFRoZSBkZWZhdWx0IGxvYWQgYWRkcmVzcyBpcyBTRFJBTSArIDJNQiwgbm90IFNEUkFNICsgNE1CLiBUaGUgbGF0dGVyCiAgICB3b3VsZG4ndCBoYXZlIHdvcmtlZCBhbnl3YXkgc2luY2UgdGhlIGJvYXJkIGNhbiBvbmx5IGFjY2VzcyA0TUIgb2YKICAgIFNEUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDgyNjlhYjUzNjA4ZDhkYjJhYTA2OTY5YzMzN2FiMGIwNTE4MjExZTUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAyMiAxNzowMToyNCAyMDA3ICswMTAwCgogICAgQVRTVEsxMDAyOiBVc2UgU0RSQU0gKyA0TUIgYXMgZGVmYXVsdCBsb2FkIGFkZHJlc3MKCiAgICBNYW55IHBlb3BsZSBydW4gaW50byBwcm9ibGVtcyB3aGVuIHRoZXkgY29tcGlsZSBhIGJpZyBrZXJuZWwgYW5kIGxvYWQKICAgIHRoZSB1SW1hZ2UgYXQgdGhlIGRlZmF1bHQgU0RSQU0gKyAyTUIgYWRkcmVzcyBhcyB0aGUga2VybmVsIHdpbGwKICAgIG92ZXJ3cml0ZSB0aGUgdUltYWdlIGFzIGl0IGlzIGJlaW5nIHVucGFja2VkLiBJbmNyZWFzZSB0aGUgZGVmYXVsdAogICAgbG9hZCBhZGRyZXNzIHNvIHRoYXQgd2UgY2FuIGxvYWQgYSA0TUIga2VybmVsIGltYWdlIHdpdGhvdXQgYW55CiAgICBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyYmNhY2MyZDg0MWI3N2YzZDJkMzkxMGRiNzIyMDAzNzQyNzI3ZTlmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTY6NTE6MzkgMjAwNyArMDEwMAoKICAgIEFUTkdXMTAwOiBGaXggZGVmYXVsdCBtdGVzdCByYW5nZQoKICAgIExldCBtdGVzdCBjb3ZlciB0aGUgd2hvbGUgU0RSQU0gZXhjZXB0IHRoZSBsYXN0IG1lZ2FieXRlLCB3aGljaCBpcwogICAgd2hlcmUgdS1ib290IGxpdmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk4NTZhNmIzMTA0ZTBiYzIxMGIwODY4ZGZlNjkxYzUyYmYwM2MyMjcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMjIgMTU6MzE6NTYgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggcmVnaXN0ZXIgYWRkcmVzcyBvZiBTSDc3MjIuCgogICAgVGhlIGFkZHJlc3Mgb2YgU0g3NzIyIGlzIHdyb25nIGJ5IG9sZCBkb2N1bWVudC4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzMDk0MmIxOGI2NmYzNWYyY2VlZGFiMzlhZjEwZTllY2NhYTk0M2NjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIG5ldyBjb21tYW5kIGZvciBkaXNwbGF5aW5nIHN0cmluZ3MgYXQgc3BlY2lmaWVkIG1lbW9yeSBsb2NhdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjU4ZDhiNDhlMjViMGM4NjZkMTY3Y2M1NzdmMTE4ZjUyOGNkOWUwYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICByZXdyaXRlL2NsZWFudXAgQmxhY2tmaW4gUlRDIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA5NGE5MWUyNDhiNzFjM2ZmOTUxZmMyN2NmZjY5MDllODJjYTM3ZDE1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIGdlbmVyYXRlIHUtYm9vdC5sZHIgZm9yIEJsYWNrZmluIHRhcmdldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjc3OWY3YTU5NTMwNDM2MDQwZjE1N2Y3ODQxZGI3YWI3OTY1NDJkZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBzY3J1YiB1bnVzZWQgc3ltYm9scwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjYzI5NzdhY2MzYmJiYjc4NTBmMTY2NDVkZDEwODFmOTUzMzU4NjhkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIG1vdmUgQmxhY2tmaW4gY3B1IG9iamVjdCBsaXN0IHRvIHJlc3BlY3RpdmUgY3B1IGRpcmVjdG9yaWVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQwYjAxYTI0NmQwYTM1MWJjN2RjZTFkMGM5Y2Y2YWViZGY2ZDc1MDUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgaW50ZXJmYWNlIHRvIEJsYWNrZmluIG9uLWNoaXAgT25lLVRpbWUtUHJvZ3JhbW1hYmxlIG1lbW9yeQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0YzcyN2M3N2U0Mzg3MmQzYTFkMWY3NmE5NDlmY2IzZjI2YTM4Nzg4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTYgMjAwOCAtMDUwMAoKICAgIGFkZCBzdXBwb3J0IGZvciBtZW1vcnkgY29tbWFuZHMgd2l0aCBCbGFja2ZpbiBMMSBpbnN0cnVjdGlvbiBtZW1vcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmI5MDk3ZTVlNzQ5MGFhN2I4MjhjNmYxYTFjN2EwZTg3NWRmODQ2NApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU2IDIwMDggLTA1MDAKCiAgICB1c2UgQyBjb2RlIHJhdGhlciB0aGFuIGlubGluZSBhc3NlbWJseQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA5N2MyNmUwMDZkMmZhNmQ0ZTE1NjA5MzNlZTZmMzg1ZDhiODkwOGI5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTYgMjAwOCAtMDUwMAoKICAgIGFkZCBCbGFja2Zpbi1zcGVjaWZpYyByZWdpbmZvIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDg1OGI4MzVlN2VhNTAxZWEwODRkMzRjZWY3NTkzMmYwOTgzNDJiYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICBhZGQgc3VwcG9ydCBmb3IgQmxhY2tmaW4gc3ltYm9sIHByZWZpeGVzIHRvIGV4YW1wbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDhkYzQ4ZDcxYTRiZTc1M2VhOWY4NDk1NmNkMzM2MDBkZTM1ZmFkMDQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgYWRkIEJsYWNrZmluLXNwZWNpZmljIGJkaW5mbyBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDAwMDM2MTNlM2M3ZGYzYjg0YjJjYjkyZTc5N2Q3N2Y0NmYxNWE0M2EKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgbW92ZSAtZmZpeGVkLVA1IHRvIGJsYWNrZmluX2NvbmZpZy5tayBhbmQgZHJvcCB1bnVzZWQgLURfX0JMQUNLRklOX18KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNjBmYTcyZDY1NjEwYzdlZjMzZTFkNmRiODU4OTc5ZDA1ZmYwZGY1OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICB1bmlmeSB0aGUgQmxhY2tmaW4gYm9hcmQgdGFyZ2V0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkNGQ3NzMwODUzZTVkNjc1Zjc2ZWM2NjY4MDdkYTMwMjhjOTFkNTkyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIHB1bnQgQmxhY2tmaW4gVkRTUCBoZWFkZXJzIGFuZCBpbXBvcnQgc2FuaXRpemVkL2F1dG8tZ2VuZXJhdGVkIG9uZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmNmY2NlNjc2NzFhMzQyNTIyOWQ2NjIwMzM4NmZhM2NiZDBjYzNiZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBhbHdheXMgcHVsbCBpbiBhc20vYmxhY2tmaW4uaCBmb3IgQmxhY2tmaW4gcG9ydHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmY1Mzk3NGMyZGRhZTY3OGQ3NjYwZjJiNWNjZmViMDczMmI2ZjVkYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBhZGQgbWlzc2luZyBfX3JhdyB2ZXJzaW9ucyBvZiBCbGFja2ZpbiByZWFkL3dyaXRlIGlvIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyNGUwMmQwZmQzYWNjNTBlNzNlMWEzY2RkNTY3ZjBhNzc5NDZmMTVkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIGFkZCB0aGUgZGVmYXVsdCBCbGFja2ZpbiBsb2dvIHVzZWQgYnkgQmxhY2tmaW4gYm9hcmRzIHdpdGggc3BsYXNoIHNjcmVlbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNGM1OGViNTU1MjIyMGU0MjVjOGFmNmFjOGQyODM5MjQ0YTJmNTdiMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBhZGQgc29tZSBtb3JlIEJsYWNrZmluIGRvY3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzJhOWY1ZjIxNjBhMDM0ZWE4N2VhNjUxYjIzM2VmN2M2MzVlNTVjZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBtYWtlIHNtYzkxMTExX2VlcHJvbSBtYW5hZ21lbnQgc2ltcGxlciBieSBkZXBlbmRpbmcgb24gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZSByYXRoZXIgdGhhbiBhIGhhcmRjb2RlZCBsaXN0IG9mIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0MDg3YmM4OGNlYmVjNzVjNDMyYTdmZTlmNmFmYjU0NWIwOTE5ODMxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIGZpeCBidWlsZGluZyBvbiBCbGFja2ZpbiBhcyB0aGUgYXNzZW1ibGVyIHN1cHBvcnRzIHRoZSAuc2V0IHN5bnRheCwgbm90IHRoZSA9IHN5bnRheCwgZm9yIGFzc2lnbmluZyBzeW1ib2xzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI0NTI2NGVlODVjYmQ5MjAyMDY0MGEzMmUwMmZiNDM0ZmQ1NTcxMDgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1MyAyMDA4IC0wNTAwCgogICAgYWRkIGdpdGlnbm9yZXMgZm9yIEJsYWNrZmluIHBpZWNlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhOTM5MDdjNDNmODQ3ZjA3NmRkMGUzNGVlM2I2OWI1ZThlNmQwZDI5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEphbiAxOCAwMToxNDowMyAyMDA4ICswMTAwCgogICAgVEZUUDogYWRkIGhvc3QgaXAgYWRkciBzdXBwb3J0CgogICAgYWxsb3cgdG8gdXNlIGEgZGlmZmVyZW50IHNlcnZlciBhcyBzZXQgaW4gc2VydmVyaXAKICAgIGFkZCBDT05GSUdfVEZUUF9GSUxFX05BTUVfTUFYX0xFTiB0byBjb25maWd1cmUgdGhlIGZpbGUgbmFtZSBsZW5ndGgKICAgIGlmIG5vdCBkZWZpbmVkIHRoZSBtYXggbGVuZ3RoIHdpbGwgYmUgYXQgMTI4CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlNTZiNGI0OTRjZDkyZGVmNTc3OTY5Zjk2NzgzOTVhYTIyZDM0YzlmCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE0OjM1OjI2IDIwMDggLTA2MDAKCiAgICA4NXh4LDg2eHg6IERldGVybWluZSBJMkMgY2xvY2sgZnJlcXVlbmNpZXMgYW5kIHN0b3JlIGluIGdsb2JhbF9kYXRhCgogICAgVXBkYXRlIGdsb2JhbF9kYXRhIHRvIGRlZmluZSBpMmMxX2NsayBhbmQgaTJjMl9jbGsgdG8gODV4eCBhbmQgODZ4eC4KCiAgICBVcGRhdGUgdGhlIGdldF9jbG9ja3MoKSBmdW5jdGlvbiBpbiA4NXh4IGFuZCA4Nnh4IHRvIGRldGVybWluZSB0aGUgSTJDCiAgICBjbG9jayBmcmVxdWVuY3kgYW5kIHN0b3JlIGl0IGluIGdkLT5pMmMxX2NsayBhbmQgZ2QtPmkyYzJfY2xrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2VjOGJiMTVlZTM2OGVhNTRkNDhkNjQ4Njc3NjdhNzA0ZDlhYjRjMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjcgMTA6NTY6NTQgMjAwNyArMDEwMAoKICAgIE9NQVA1OTEyOiBmaXggRklGTyBoYW5kbGluZyBpbiBVQVJUIGRyaXZlcgoKICAgIEFjY29yZGluZyB0byB0aGUgT01BUDU5MTIgU2VyaWFsIEludGVyZmFjZXMgUmVmZXJlbmNlIEd1aWRlIChzZWUKICAgIGh0dHA6Ly9mb2N1cy50aS5jb20vbGl0L3VnL3NwcnU3NjBjL3NwcnU3NjBjLnBkZiwgcGFnZSAxNTApLCB0aGUKICAgIEZJRk9fRU4gZW5hYmxlIGJpdCBpbiB0aGUgRklGTyBDb250cm9sIFJlZ2lzdGVyIChGQ1IpIGNhbiBvbmx5IGJlCiAgICBjaGFuZ2VkIHdoZW4gdGhlIGJhdWQgY2xvY2sgaXMgbm90IHJ1bm5pbmcsIGkuIGUuIHdoZW4gYm90aCBETEwgYW5kCiAgICBETEggYXJlIHNldCB0byAwLgoKICAgIFRodXMgbWFrZSBzdXJlIHRoYXQgRExMIGFuZCBETEggYXJlIDAgd2hlbiB3cml0aW5nIHRoZSBGQ1IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxNjE1ODc3OGI1ZjUyZjIwMWU5NWRlZDJkMmQ5MDg0YjBlZDU2NzBkCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNToxMDo1MiAyMDA3ICswMTAwCgogICAgQVJNOiBTM0MyNHgwIFNvQyBOQU5EIGNvbnRyb2xsZXIgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIHN1cHBvcnQgdG8gdGhlIFMzQzI0eDAgU29DIGNvZGUgaW4gdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBhN2MxODVlZDNkOWY4ZWJkODVjZmMyODZlMWZmZWU3MmU0ODAzMTYzCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoyNDo0MCAyMDA3ICswMTAwCgogICAgQVJNOiBzM2MyNHh4OiBNdWx0aXBsZSBzZXJpYWwgcG9ydCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIENPTkZJR19TRVJJQUxfTVVMVEkgb24gczNjMjR4MCBDUFUncwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYTI1ZjcyZjFmNzNhMTFkZTY4MjUxZmI4OGM4OTk5MWUyMDJlNjhmYQpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MTY6NTcgMjAwNyArMDEwMAoKICAgIEFSTTogYXJtOTIwdDogQWxsb3cgdXNlIG9mICdnZCcgcG9pbnRlciBmcm9tIElSUQoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIHVzIHRvIHVzZSB0aGUgJ2dkJyBwb2ludGVyIChhbmQgdGh1cyBlbnZpcm9ubWVudAogICAgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBhc3NvY2lhdGVkIHdpdGggaXQpIGZyb20gaW50ZXJydXB0IGNvbnRleHQgb24KICAgIGFybTkyMHQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBiZTE5YmQ1Y2QwZjQ1NGI2MzI5ODg0NGEwYjUzNzdlMDI5YjJjYWFkCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoxOTozOCAyMDA3ICswMTAwCgogICAgQVJNOiBhcm05MjAvczNjMjR4eDogSVJRIGRlbXVsaXRwbGV4ZXIgY2FsbGJhY2sKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBJUlEgZGVtdWx0aXBsZXhlciBjYWxsYmFjayB0byB0aGUgYXJtOTIwIGNwdSBjb3JlIGNvZGUsCiAgICBwbHVzIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBpdCBmb3IgdGhlIFMzQzI0MTAuCgogICAgVGhlIHB1cnBvc2UgaXMgdG8gYWxsb3cgYXJtOTIwdCBpbXBsZW1lbnRhdGlvbnMgc3VjaCBhcyB0aGUgczNjMjR4MCB0bwogICAgaW1wbGVtZW50IGludGVycnVwdCBoYW5kbGVycyBpbiB1LWJvb3Qgd2l0aG91dCBoYXZpbmcgdG8gdG91Y2ggY29yZQogICAgYXJtOTIwdCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYTQxZGJiZDk4ZDIwMWQ4YWVhMzFiNWQyMWRmNDc0MmMyMGNkN2VkYQpBdXRob3I6IEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJVHVlIERlYyAxOCAxNjowMzowNyAyMDA3IC0wODAwCgogICAgQVJNOiBEaXNwbGF5IEV0aGVybmV0IGluZm8gaW4gZG9fYmRpbmZvIG9ubHkgaWYgQ09ORklHX0NNRF9ORVQgaXMgZGVmaW5lZAoKICAgIEFkZCBpZmRlZiB0byBiZGluZm8gY29tbWFuZCB0byBkaXNwbGF5IGV0aGVybmV0IGluZm9ybWF0aW9uCiAgICBvbmx5IGlmIENPTkZJR19DTURfTkVUIGlzIGRlZmluZWQgZm9yIGFybSBtb2R1bGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEsgUiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgZjdhZDc5YjZmOWYwZjQ1NDM3YjYyZTE5YjQ1MzU2Y2MyYWFmNDg4NApBdXRob3I6IEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJVHVlIERlYyAxOCAxNjowMDo1NCAyMDA3IC0wODAwCgogICAgQVJNOiBhZGQgSTJDIGluaXQgZnVuY3Rpb24gY2FsbCBpbiBsaWJfYXJtL2JvYXJkLmMKCiAgICBBZGRzIEkyQyBpbml0IGZ1bmMgY2FsbCB0byBpbml0IHNlcXVlbmNlIGZvciBBUk0gYm9hcmRzLiBUaGlzIGlzCiAgICBwcmVzZW50IGluIHBwYyxibGFja2ZpbiBhbmQgb3RoZXIgcHJvY2Vzc29yIGluaXQgc2VxdWVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogSyBSIEd1cnVyYWphIEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCBmZjAyZjEzOTgwNGYzY2I2MTQxNGY3YmJjYmZkYWEwMjc5ZTNlZmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDEgMDk6Mzg6MjkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IG5kZmMgSFcgRUNDIGJ5dGUgb3JkZXIKCiAgICBUaGUgY3VycmVudCBuZGZjIEhXIEVDQyBpbXBsZW1lbnRhdGlvbiBzd2FwcyB0aGUgZmlyc3QgdHdvIEVDQyBieXRlcy4KICAgIEJ1dCB0aGUgNHh4IE5ERkMgYWxyZWFkeSB1c2VzIHRoZSBTTUMgKFNtYXJ0IE1lZGlhIENhcmQpIEVDQyBvcmRlcmluZywKICAgIHNvIHRoaXMgc3dhcHBpbmcgaW4gdGhlIEhXIEVDQyBkcml2ZXIgaXMgYm9ndXMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcwogICAgcHJvYmxlbSBhbmQgbm93IHJlYWxseSB1c2VzIHRoZSBTTUMgRUNDIGJ5dGUgb3JkZXIuCgogICAgVGhhbmtzIHRvIFNlYW4gTWFjTGVubmFuIGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTFkMTQyOWI0OWIwZWU1OGM4MGY4YzdiMjljMWViYWY4YmU3ZjVmMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMCAxNTozNTo1MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggR1BJTyBjb25maWd1cmF0aW9uIGZvciBwY3M0NDBlcAoKICAgIFRoZSBTUkQwX1BGQzAgcmVnaXN0ZXIgd2FzIG5vdCBjb25maWd1cmVkIGNvcnJlY3RseSB0byBlbmFibGUgdGhlIEdQSU8ncwogICAgNDktNjMgZm9yIEdQSU8uIFRoZXkgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQgYXMgdHJhY2Ugc2lnbmFscy4gVGhpcyBwYXRjaAogICAgZml4ZXMgdGhpcyBieSBjbGVhcmluZyB0aGUgY29ycmVzcG9uZGluZyBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI4ZDc3ZDk2OGJmZTAzMTZkZWI1YmYxNWMxN2Y1N2Q1ZmYyYzg4MjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzAgMTQ6NDg6MjggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gd2l0aCBpbml0LXJhbSBiaWdnZXIgdGhhbiA0ayBvbiA0NDAgcGxhdGZvcm1zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmZWRmZGRmOTc0NjFiODg2NjhiOWFlYzc3NGRmYjdhMGM2ZGMzNjgKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAwMDo0MjozMiAyMDA3ICswMTAwCgogICAgQVJNOiBCb2FyZCB2b2ljZWJsdWUgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IDJjNTI2MGY3MTExNjhkNWVlOTFjNzBkZGJiN2Q4OTcwMTNlZWZjNDYKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVRodSBEZWMgNiAyMzoyNDo1NyAyMDA3ICswMTAwCgogICAgQVJNOiBBVDkxUk05MjAwIGJhc2VkIGJvYXJkcyBjb25maWcgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCiAgICBSZW1vdmUgbm93aGVyZSB1c2VkIHN0cnVjdCBiZF9pbmZvX2V4dCwgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2VzLCBmaXgKICAgIGluZGVudGF0aW9uLgoKY29tbWl0IDQ4MWYyOGIxZGI1Y2QyMWRlYjU1ZjY5Mzk5YmEyNDBlMTA3YWY0YzcKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVRodSBEZWMgNiAyMjo1OToxNiAyMDA3ICswMTAwCgogICAgQVJNOiBGaXggYXQ5MXJtOTIwMGRrIGJhc2UgYWRkcmVzcwoKICAgIFNvbWV3aGVyZSBkdXJpbmcgZGV2ZWxvcG1lbnQgb2YgVS1Cb290LTEuMS4zIENPTkZJR19CT09UQklORlVOQyB3YXMKICAgIHJlbmFtZWQgaW50byBDT05GSUdfSU5JVF9DUklUSUNBTCB3aGljaCB3YXMgMDQgQXByIDIwMDUgcmVwbGFjZWQKICAgIHdpdGggQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVCBhbmQgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QuCiAgICBIb3dldmVyIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQgaGFzIG9wb3NpdGUgbWVhbmluZyB0bwogICAgQ09ORklHX0JPT1RCSU5GVU5DLCBzbyBmaXggY29uZmlndXJhdGlvbiB0byByZWZsZWN0IHRoaXMgZmFjdC4KICAgIEknbSBzZW5kaW5nIHRoaXMgcGF0Y2ggNHRoICghKSB0aW1lIGluIGhvcGUgaXQgcHJvZHVjZXMgYXQgbGVhc3Qgc29tZQogICAgcmVhY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKICAgIEZpeCBhdDkxcm05MjAwZGsgYmFzZSBhbmQgZW52aXJvbm1lbnQgYWRkcmVzcy4KCmNvbW1pdCBjOTUyMTlmYWUyYTdhZGQ3ZGFhMmY5MWFlZGNhNjViMTY5ODQ2NWM3CkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjAgMTA6NDA6MjQgMjAwNyArMDEwMAoKICAgIE1NQyBmb3IgUFhBIDI3WCAocmVzdWJtaXQpCgogICAgTU1DIHN1cHBvcnQgZm9yIFhfU2NhbGUgUFhBIGlzIGJyb2tlbiBhbmQgZG9lcyBub3Qgd29yay4KICAgIE1haW5seSwgdGhlIG1tY19pbml0KCkgZnVuY3Rpb24gY2Fubm90IHJlY29nbml6ZSBjdXJyZW50IFNEL01NQyBjYXJkcy4KICAgIFRoZXJlIHdlcmUgYWxyZWFkeSBzb21lIHBhdGNoZXMgYXJvdW5kIHRoZSB3b3JsZCBidXQgbm9uZSBvZiB0aGVtIHdhcwogICAgbWVyZ2VkIGludG8gdGhlIG9mZmljaWFsIHUtYm9vdCB0cmVlLgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgb3JkZXIgZml4aW5nIHRoaXMgaXNzdWUuIFJlc3VibWl0IGFmdGVyIGNvZGUgY2xlYW51cC4KCiAgICBBcHBsaWVkIGFuZCB0ZXN0ZWQgb24gUFhBIDI3MCAoVHJpemVwc0lWIG1vZHVsZSkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgOTZiYmZhMWU2NjI1Y2UyM2ExNTA5MzY4NjNiM2VjZjRjODUzZWIzMwpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDIwIDEwOjM3OjA0IDIwMDcgKzAxMDAKCiAgICBGaXggZ2NjIGlzc3VlcyBpbiBweGEtcmVncy5oCgogICAgRml4IGdjYzQgaXNzdWUuIFdpdGggc29tZSB0b29sY2hhaW4sIGEgcHJldmlvdXMgcGF0Y2ggdGhhdCBmaXhlcyBnY2M0CiAgICBpc3N1ZXMgZ2VuZXJhdGVzIHdyb25nIGNvZGUuCiAgICAoUHJvYmxlbSB3YXMgcmVwb3J0ZWQgd2l0aCBnY2MtNC4wLjItZ2xpYmMtMi4zLjYvYXJtLXNvZnRmbG9hdC1saW51eC1nbnUpLgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSBhbmQgc29sdmVzIHRoZSBnY2MtNCBpc3N1ZXMgYXMgdGhlIGxpbnV4CiAgICBrZXJuZWwgZG9lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBJdmFub3YgPGl2YWRtaXRyeUBnbWFpbC5jb20+Cgpjb21taXQgNzA0N2IzODg4NzZlN2I5MDViMmVjNGVkYjgwMTA1NDNlMzY0MWI4NQpBdXRob3I6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KRGF0ZToJVHVlIEphbiAyOSAwODo0NTowMyAyMDA4ICswMTAwCgogICAgVFFNODM0eDogZW5hYmxlIERIQ1AKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4NzcwMDRkNDRjYTdkYmMxZTYxOGFkZDNlZWIxZGE3Yzg0ZTRiZWMKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CkRhdGU6CVR1ZSBKYW4gMjkgMDg6NDU6MDIgMjAwOCArMDEwMAoKICAgIFRRTTgzNHg6IHN1cHBvcnQgZm9yIFNwYW5zaW9uIE4tdHlwZSBGbGFzaGVzIChzZWN0b3Igc2l6ZSA9IDI1NiBLaUIgYXQgMngxNiBCaXQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODkzMWFiMTc2MDI1YjAzY2ZjMzIwYjNmZDFlY2E0MzJhODhlZDU2MApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVNhdCBKYW4gMjYgMjM6NDE6MTkgMjAwOCAtMDUwMAoKICAgIEZpeCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiBtcHg4eHh4X3NwaSBkcml2ZXIKCiAgICBUaGlzIGRyaXZlciBzaG91bGQgb25seSBjb21waWxlIGlmIENPTkZJR19NUEM4WFhYX1NQSSBpcyBzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2M2Y3MzJkM2QzODgwZmViNTMxZjQ4YWYyNDdjMDI1YmYwMTQ2MmIwCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyOSAxNzowMDozNCAyMDA4ICswMTAwCgogICAgQVBJOiBQcm92aWRlIGR1bW15IGhhbHQoKSBpbiB0aGUgZ2x1ZSBsYXllci4KCiAgICBUaGlzIGZpeGVzIGEgZGVtbyBhcHAgbGluayBmYWlsdXJlIG9uIHBsYXRmb3JtcyBjb25maWd1cmVkIHdpdGggQ09ORklHX1BBTklDX0hBTkcuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwZGMxZmMyMmFmODZkMTY5OTMzODhkOWVkOTYzMGRiYWEyZDUxODI2CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyOSAxNjo1NzozOCAyMDA4ICswMTAwCgogICAgQVBJOiBDb252ZXJ0IGNvbmRpdGlvbmFsIGJ1aWxkaW5nIHRvIHRoZSBuZXcgc2NoZW1lLgoKICAgIFRoaXMgZml4ZXMgYSBidWlsZCBicmVha2FnZSB3aXRoIENPTkZJR19BUEkgZW5hYmxlZCwgd2hpY2ggYXBwZWFyZWQgYWZ0ZXIKICAgIHRoZSByZWNlbnQgY2hhbmdlcyBpbiB0aGUgVS1Cb290IGJ1aWxkIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDk4Yjc0MjQ4OWMwOTc4MGJlNmE4MzJlZWFhNGU1ZWZmODI0NzkyYmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDI1IDA5OjU2OjE3IDIwMDggKzAxMDAKCiAgICBpbmthNHgwOiByZW1vdmUgZGVhZCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZjkzZjhiMWE0ZDM1YjZkMzAyODQyMTMyZWRiYTkyMGVmOGY2MmFhCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDYgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEFkZCByZWdpbmZvIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGNlYmNiNjM4NzE1YTYyNzhkYTkzYjU1M2Q1MDE2Zjk5ODIzODE2CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDUgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEFkZCBwcmludF9sYXdzIGZ1bmN0aW9uIHRvIGZzbF9sYXcuYwoKICAgIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGRlYnVnLCBhbmQgd2lsbCBiZSB1c2VkIGJ5IGJvYXJkIGNvZGUKICAgIHRvIGhlbHAgaW1wbGVtZW50IHJlZ2luZm8uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWNkMzI0MjZmMjZhMDU2N2JiNjFmMzM5ZWRkODNjNmEyY2U5YmZjMwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjA0IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBSZW1vdmUgb2xkLXN0eWxlIGxhdyBzZXR1cCBjb2RlCgogICAgVGhpcyBpbmNsdWRlcyBtcGM4NjEwaHBjZCwgbXBjODY0MWhwY24sIGFuZCBzYmM4NjQxZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MTNkODE4NjY0OWRhZTg3NDYxM2Q0OTViMGNlY2FhMDM5YTk4YjMwCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDMgMjAwOCAtMDYwMAoKICAgIDg2eHg6IENvbnZlcnQgc2JjODY0MWQgdG8gdXNlIG5ldyBsYXcgc2V0dXAgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMzE5NzZmNjM2NGI5MzgzM2U5ODlmNTdlOWYxZTAyM2UwYmU4YzRjCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDIgMjAwOCAtMDYwMAoKICAgIDg2eHg6IENvbnZlcnQgbXBjODYxMGhwY2QgdG8gbmV3IGxhdyBzZXR1cCBtZXRob2QuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDkzM2I5MWY4YTQ5ZTQzNjY4MWYxNjNkZjMxNzNiZWI5MWNhYzQ0YQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAxIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBTdXBwb3J0IG5ldyBsYXcgc2V0dXAgbWV0aG9kIGFuZCBjb252ZXJ0IG1wYzg2NDEKCiAgICBBZGRzIHRoZSBzdXBwb3J0IGNvZGUgaW4gY3B1L21wYzg2eHggZm9yIHRoZSBuZXcgbGF3IHNldHVwIGNvZGUKICAgIHJlY2VudGx5IGNyZWF0ZWQgZnNsX2xhdy5jLCBhbmQgY2hhbmdlcyB0aGUgTVBDODY0MUhQQ04gY29uZmlnCiAgICB0byB1c2UgdGhpcyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhNDFmN2NlOWMwODZlMjA4YzBlYWJmNTI1NjVhMjM3YWYyYTJiZDEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowMCAyMDA4IC0wNjAwCgogICAgODZ4eDogUmVhcnJhbmdlIHRoZSBzZXF1ZW5jZSBpbiBzdGFydC5TCgogICAgKiBzcGxpdCB0aGUgQkFUIGluaXRpYWxpemF0aW9uIHNvIHRoYXQgb25seSAyIEJBVHMgKGZvciB0aGUgYm9vdCBwYWdlCiAgICBhbmQgc3RhY2spIGFyZSBwcm9ncmFtbWVkIHZlcnkgZWFybHkgb24uICBUaGUgcmVzdCBhcmUgaW5pdGlhbGl6ZWQgbGF0ZXIuCiAgICAqIE1vdmUgb3RoZXIgQkFUIHNldHVwLCAgY2NzcmJhciBzZXR1cCwgYW5kIGxhdyBzZXR1cCBsYXRlciBpbiB0aGUgY29kZQogICAgYWZ0ZXIgdHJhbnNsYXRpb24gaGFzIGJlZW4gZW5hYmxlZC4KCiAgICBUaGVzZSBjaGFuZ2VzIHdpbGwgZmFjaWxpdGF0ZSB0aGUgbW92aW5nIG9mIGxhdyBhbmQgQkFUIGluaXRpYWxpemF0aW9uCiAgICB0byBDIGNvZGUsIGFuZCB3aWxsIGFpZCB3aXRoIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzaW5nIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzNkYWMwM2IxYjVkNjFlNGZlZDdiYWQ0NDViYTQwYjRjOTdmZWJhMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjMgMTQ6NDE6MzcgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NjVmMGY5NzU0Yjk1MTgzY2FkMzk1ZGU3ZThjYjg1ZGYwYzZlYTFmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMyAxNDozMToxNyAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIENsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmZTVjYTc3OTc2YWZkYmU3ZWNiODZlMzlmZDc1MDViZGU2MzZhY2UKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTggMTA6MDc6MDQgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IENvcnJlY3QgdGhlIHN0cnVjdCBzcGk4eHh4IGluIG1wYzh4eHhfc3BpLmgKCiAgICBUaGUgY29tbWl0IDA0YTllMTE4MGFjNzZhN2JhY2MxNWE2ZmNkOTVhZDgzOWQ2NWJkZGIKICAgIGNhdXNlIHRoZSA4M3h4IGltbWFwIGJyb2tlbiwgc28gdGhlIERNQSBhbmQgUENJIHdpbGwKICAgIGJlIGZhaWxlZC4KCiAgICBUaGUgcGF0Y2ggZml4IHRoZSBzdHJ1Y3Qgc3BpOHh4eCBhbmQgcm0gc3RydWN0IHNwaTgzeHguCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmI0NDM5NDQ0Mjg2ZTBmY2QwMTU5NmRmNTA0ZTZjYTg5N2FkM2U1YQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgQXByIDE0IDE3OjExOjQ5IDIwMDcgKzAyMDAKCiAgICBBVlIzMjogQVROR1cxMDAgYm9hcmQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgQVROR1cxMDAgTmV0d29yayBHYXRld2F5IHJlZmVyZW5jZSBkZXNpZ24sCiAgICBpbmNsdWRpbmcgZmxhc2gsIGV0aGVybmV0IGFuZCBNTUMgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlMDA2OTI3YTBiOWE1NGU4ZWU3Njg1ZDhhYzc0OGFhYWQ2ODAxODYyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMTg6MTU6MzEgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBJbml0aWFsaXplIGlwYWRkciwgbG9hZGFkZHIgYW5kIGJvb3RmaWxlIGF0IHN0YXJ0dXAKCiAgICBJIGRvbid0IGtub3cgd2h5IHRoZSByZWxldmFudCBsYXllcnMgY2FuJ3QgZG8gdGhpcyBieSBpdHNlbGYsIGJ1dCB0aGlzCiAgICBpcyB3aGF0IHBwYyBkb2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDc5OTg5MWVmN2IxYjM0MzIwMzJlYzIzNDY2ZGY2YjY2NWE3OTdmYTQKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglGcmkgSmFuIDE4IDAwOjA0OjI4IDIwMDggKzAxMDAKCiAgICBBZGQgQWNUdXggYm9hcmQgc3VwcG9ydAoKICAgIEhpLAoKICAgIFRoZSBwYXRjaCBhZGRzIDQgYm9hcmRzLCBjYWxsZWQgQWNUdXgtMSAuLiBBY1R1eC00LiBUaGlzIHBhdGNoIGNvbnRhaW5zIHRoZQogICAgZmlsZXMgdGhhdAogICAgY29udGFpbiBjaGFuZ2VzIGZvciBtdWx0aXBsZSBib2FyZHMsIHRoZSBib2FyZC1zcGVjaWZpYyBmaWxlcyBmb2xsb3cgYXMKICAgIHNlcGFyYXRlIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCA2NmE0MzQ0YTRkOTEwYTExMTI1ZGY3NzY4ODk5YWQ1Mjk3MTk4NTVlCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxOTo1MzoyMyAyMDA4ICswMTAwCgogICAgYWRkIEFjVHV4LTQgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgYmMyNDM0NWU0MTAxYTVjOTk2ZDZiNDhjZTQ5N2IwOWM1MzAyNWRjNgpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTE6NTUgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC0zIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGFlYmYwMGZjNGQxMzQzYjI0NzE1MzczODkzZjdiMjBiZjQ2MmQxZTkKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglXZWQgSmFuIDE2IDE5OjUxOjE0IDIwMDggKzAxMDAKCiAgICBhZGQgQWNUdXgtMiBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCBlYTk5ZThmMDViNzI0MGZkNjU3NzM5ZTI4NjY2NDY2NGFlMTYwYWJlCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxOTo1MDozNyAyMDA4ICswMTAwCgogICAgYWRkIEFjVHV4LTEgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgM2Q5ZjNiZmI3YTMzZWZlOGU0MWUwMWIwMjU1NjNjZDcxMmM1N2Q2NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTk6MjA6MDggMjAwOCArMDEwMAoKICAgIEFSTTogcmVtb3ZlIHVzZWxlc3MgZnVuY3Rpb24gYm9hcmRfcG9zdF9pbml0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NmJkNDYyOTQyMDIyZTQ1NjliNTgyYzA3MmEwZWQyNmRlMWNkMTliCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJVGh1IEphbiAxMCAxNDo1OTo0NiAyMDA4ICswMTAwCgogICAgSVhQOiBlbmFibGUgUlRTCgogICAgZW5hYmxlcyB0aGUgUlRTIHNpZ25hbCB3aXRoIENPTkZJR19TRVJJQUxfUlRTX0FDVElWRS4KICAgIE5vIGhhbmRzaGFraW5nIGlzIGRvbmUsIGJ1dCB0aGUgYWN0aXZlIFJUUyBzaWduYWwgYWxsb3dzIHRvCiAgICBjb25uZWN0IHRvIHRoZSB0YXJnZXQgdXNpbmcgYSBQQyB3aGljaCBpcyB1c2luZyBSVFMvQ1RTCiAgICBoYW5kc2hha2UsIGFuZCBkb2VzIG5vIGhhcm0gaWYgdGhlIFBDIGlzIHNldCB0byBpZ25vcmUgUlRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgYTFjZjAyN2EwOGY5ZGMxYzBlNzY5NDk5ZTZmNGZiZGRjZjljYWI5MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBKYW4gNyAwODo0MTozNCAyMDA4ICswMTAwCgogICAgSVhQOiBhZGQgZHluYW1pYyBtaWNyb2NvZGUgYWRkcgoKICAgIGFsbG93IHRvIGxvYWQgdGhlIG1pY3JvZGUgZnJvbSBmbGFzaCBvciByYW0gYnkgZG93bmxvYWQgaXQgdGhyb3VnaAogICAgdGhlIHNlcmlhbCBvciBvdGhlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2M2ViY2M0NjE1ZGQzOTkyNmNjZjYxZjFkNWYzNTEwMjYyZWY2NTY0CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJU2F0IE5vdiAxMCAxNTo0NDoxMiAyMDA3ICswMTAwCgogICAgbG9hZCBpeHA0MnggTlBFIGZpcm13YXJlIGZyb20gc2VwYXJhdGUgZmxhc2ggYmxvY2ssIHJlbW92ZSBkZWFkIGNvZGUKCiAgICBIaSwKCiAgICB0aGUgZm9sbG93aW5nIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBtb3ZlIHRoZSBJWFA0MlggTlBFIGZpcm13YXJlIHRvIGEKICAgIHNlcGFyYXRlIGZsYXNoIGJsb2NrLCB3aG9zZSBzdGFydCBhZGRyZXNzIGlzIGRlZmluZWQgaW4KICAgIENPTkZJR19JWFA0WFhfTlBFX0VYVF9VQ09ERV9CQVNFLiBVc2luZyB0aGF0LCBpdCBpcyBwb3NzaWJsZSB0byBidWlsZAogICAgTlBFLWVuYWJsZWQgdS1ib290IHdpdGhvdXQgY29weXJpZ2h0IHByb2JsZW1zIGR1ZSB0byB0aGUgTlBFIGZpcm13YXJlLgoKICAgIEkgaG9wZSB0aGUgcGF0Y2ggYXBwbGllcywgSSBnZXQgd2hpdGVzcGFjZS1yZWxhdGVkIGRpZmZlcmVuY2VzIGluIHRoZSBOUEUKICAgIGZpbGVzIGR1ZSB0byB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIHRoZSBvcmlnaW5hbCB2ZXJzaW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1N2ExMjcyMDFlYjNkOGNjMTkxNzBhMDA4ZTBiZDdhZjYwOGJkNzJmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjE1OjQ2IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ3eF84eCAtIEFkZCBNNTQ3NUVWQiBhbmQgTTU0ODVFVkIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhZWUxMTExMzVkODY2MGExNjRkNGY2YmY3ZDY2YjAzMmVhNTM1Y2YKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MDI6NDkgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDd4Xzh4IC0gQWRkIE01NDd4RVZCIGFuZCBNNTQ4eEVWQiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3N2QxYWJkOTc5NmYxYzJlMTQ4NDE3Y2MxMDY1N2U4NDdkMzE4Y2UKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MDA6MjUgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBGRUMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyZjU2YWRjMGIyNWQ0Mzg3NWFkMDY3YmFlNmJlMWJjZWE4NmI3OWYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NTQ6MDkgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBkbWEgY29kZSBhbmQgaGVhZGVyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2UwOWZjNDliNTZlYTNjNDQyNzk0YjZiZTliN2RiNGI5OWRmZGM4NwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzo1MjowMyAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IGRtYSBjb2RlIC0gMgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDExODY1ZWE4NDRlNzE1NGZkMzBjN2UyODYwZGE0ZWVkNGExMmFkMWYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NDg6NTIgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBkbWEgY29kZSAtIDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NjIxZmMzZmU3Y2Q2NWI3OGIzY2JkMzFmNjVjOWY3ZjcyYjIyYmQzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjM5OjQ0IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggcmVsYXRlZCBoZWFkZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTcwYzAxODZhZWNhYjFiNzQ3YjJkNDRkMGUxZDNjMWFjNGNiMjdmNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzozNzozNCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IGNwdSBhcmNoCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTI3NTZmNGI1NGFiYTBlMDUyM2I4MWRkMTQ1NjY2ODI5Y2Y3ZmQ1OQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzo0NzoyMyAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1MjI3eCBjcHUgYW5kIE01MjI3N0VWQiBzdXBwb3J0LTMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjODc1ODEwMjc5OTRjMTQ4MTMxYjJmMTFhYTc1NTAxZjc4MmVjMTlhCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjQ2OjE5IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjUyMjd4IGNwdSBhbmQgTUNGNTIyNzdFVkIgc3VwcG9ydC0yCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTU1MmFmNzBlY2FiMTFiOWYzZGNlZmY3NTI4ZWQxNWZhZjY3OGI5ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzo0MzozMyAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1MjI3eCBjcHUgYW5kIE01MjI3N0VWQiBzdXBwb3J0LTEKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzOTdiN2I4MWExZjEwMDg3OThhZTEyMDY5MTM1MDhjYzg5Y2IzYTdkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjM1OjQ0IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogRml4IENGSSBGbGFzaCBsb3cgbGV2ZWwgUmVhZC9Xcml0ZSBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhNWYxZjlkYzgxNWE3NmY2ZGZmYjU4MDc5ODU5OWMwMjhmZTdmZWIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MjM6MDggMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUzNzNFVkIgcGxhdGZvcm0gc3VwcG9ydCAtIDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYWM1NTlkNGFhMzU4ZjYzYjQ4YzYyYjU2NDIyNGMwNmZlZWI0ZTM2CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjE5OjU0IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MzczRVZCIHBsYXRmb3JtIHN1cHBvcnQgLSAxCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzIwZDYxOTkxZmEzMTkwZWU0MTc2NTYwMWVkMDE3YjZiNWZmN2IyYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzoxNzowMyAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBGbGV4QnVzIENTIGZvciBNQ0Y1MzJ4CgogICAgRGVmaW5pdGlvbiB1cGRhdGUgYW5kIGNoYW5nZSBmcm9tIDE2Yml0IHRvIDMyYml0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmU3MmFkMDY0NGI5NDA4MTdhODlhMzU5MGNlMGQ3Yjk5YzA1YzM5NgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzoxMTo0NyAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IFBDSSBhbmQgbWlzYyB1cGRhdGVzIGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyYjE2NDkzNDgwYWMzZDRhNjBhZDdkODM1YjBkYzI3ZDJlOTljZWUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MDY6NTUgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDQ1eCBoZWFkZXIgZmlsZXMgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ5YWFlNjI2MDk5M2E5M2Y3ZmNmMTNhYmZmODVhNjAxZjRmNTBlYTcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTY6NTk6NDIgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzJ4IGhlYWRlciBmaWxlcyBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2FmNzc1MWQwNDdlNzRiMmVjNTg0MDBmOTdiODc5YzU2NDQ2YjNlOApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNTozMDoxNSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBtb2R1bGVzIGhlYWRlciBmaWxlcwoKICAgIEFkZCBDRiBzcGVjaWZpYyBtb2R1bGVzIGhlYWRlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyOTU2YWNkNWVmOTNhNDk4MzM3ZjhhYzJlYzZhZTZhNzdkNDkxZGM1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxMjo0ODowMCAyMDA4IC0wNjAwCgogICAgY29kaW5nc3R5bGUgY2xlYW51cCBmb3Igc3BpIGRyaXZlcgoKICAgIC4uYW5kIHJtIHVudXNlZCBDT05GSUdfRlNMX1NQSSBkZWZpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1OWZlZmZiNDJjOWYxNzQxMTZkYjdhODJhMzExZGY5ODk4M2RmY2UKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE3OjEyOjEyIDIwMDggLTA1MDAKCiAgICBGU0w6IEZpeCBjb21tb24gRUVQUk9NX2RhdGEgc3RydWN0dXJlIGRlZmluaXRpb24KCiAgICAtIEZpeCBFRVBST01fZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBhY2NvcmRpbmcgdG8gU3lzdGVtIEVFUFJPTSBEYXRhIEZvcm1hdC4KICAgIC0gUmVhZCBNQUMgYWRkcmVzc2VzIGZyb20gRUVQUk9NIHRvIGV0aFhhZGRyIGJlZm9yZSBzYXZpbmcgZXRoWGFkZHIgdG8KICAgICAgYmQtPmJpX2V0aGFkZHIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YmVlNzY0YmQ2ZGE1MTBhNGFhZDYxNDg4MDMwMGM5NjhiYzczMThkCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNTo0ODoxMiAyMDA4IC0wNjAwCgogICAgODZ4eDogZW5hYmxlIGNvbW1hbmQtbGluZSBlZGl0aW5nCgogICAgRW5hYmxlIGNvbW1hbmQtbGluZSBlZGl0aW5nIGZvciBhbGwgTVBDODZ4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MGRkZDIyNjI2ZDMyMWE3NzJlYmZiYTMwNGViNzgzMGNiNGY2YmFjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAyMjozNzo0MiAyMDA4IC0wNTAwCgogICAgSW1wbGVtZW50IGhhcmQgU1BJIGRyaXZlciBvbiBNUEM4MzQ5RU1EUwoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZnNsX3NwaSBkcml2ZXIgb24gdGhlIE1QQzgzNDlFTURTIGV2YWx1YXRpb24gYm9hcmQuCiAgICBUaGlzIGJvYXJkIGhhcyBhbiBTVCBNMjVQNDAgNE1iaXQgRUVQUk9NIG9uIGl0cyBTUEkgYnVzCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDRhOWUxMTgwYWM3NmE3YmFjYzE1YTZmY2Q5NWFkODM5ZDY1YmRkYgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMjI6Mzc6MzUgMjAwOCAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBhIEZyZWVzY2FsZSBub24tQ1BNIFNQSSBjb250cm9sbGVyCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBTUEkgY29udHJvbGxlciBmb3VuZCBvbiBGcmVlc2NhbGUgUG93ZXJQQwogICAgcHJvY2Vzc29ycyBzdWNoIGFzIHRoZSBNQ1A4MzR4IGZhbWlseS4gIEFkZGl0aW9uYWxseSwgYSBuZXcgY29uZmlnIG9wdGlvbiwKICAgIENPTkZJR19IQVJEX1NQSSwgaXMgYWRkZWQgZm9yIGdlbmVyYWwgcHVycG9zZSBTUEkgY29udHJvbGxlciB1c2UuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYThjYjQzYTg5YmU2Y2ZkMjgzMjU3YTYwM2RkOTg0MTUwM2NjY2UwZgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxODoyMzoxOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBmYXRhbCBjb25mbGljdCBvZiBtZXJnZQoKICAgIFRoZSBjb21taXQgOWU4OTY0Nzg4OWNkNGI1YWRhNWI1ZTdjYWQ2Y2JlNTU3MzdhMDhkNwogICAgd2lsbCBjYXVzZSB0aGUgbXBjODMxNWVyZGIgYm9hcmQgY2FuJ3QgYm9vdCB1cC4KCiAgICBUaGUgcGF0Y2ggZml4IHRoYXQgYnVnLCBhbmQgcmVtb3ZlIHRoZSBkdXBsaWNhdGVkICNpZmRlZgogICAgQ0ZHX1NQQ1JfVFNFQ0VQIGNvZGUgYW5kIGNsZWFuIHRoZSBTQ0NSX1RTRUMyIGZvcgogICAgTVBDODMxM0UgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMyNTllZWFhNDE0ODEyNWE4MTQxNzQ3N2Y2MmMwNWJkNjdmNjA1ODcKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwODo1MDowOSAyMDA4IC0wNTAwCgogICAgTWVyZ2UgU2VxdW9pYSBiZWF1dGlmaWNhdGlvbiBpbnRvIEtvcmF0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBlMTY5MjU3NzMyMTEyOTFiNTYyZTc3MTg3MDYxZTlkZDFkNzU3MjE3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBKYW4gMTcgMDc6NDU6MDUgMjAwOCArMDEwMAoKICAgIG5ldDogYWRkICdldGhyb3RhdGUnIGVudmlyb25tZW50IHZhcmlhYmxlCgogICAgW1BBVENIXSBuZXQ6IGFkZCAnZXRocm90YXRlJyBlbnZpcm9ubWVudCB2YXJpYWJsZQoKICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIGJ1aWxkdGltZSBjb25maWd1cmF0aW9uIG9wdGlvbgogICAgQ09ORklHX05FVF9ET19OT1RfVFJZX0FOT1RIRVIgdGhyb3VnaCB0aGUgJ2V0aHJvdGF0ZScgcnVudGltZQogICAgY29uZmlndXJhdGlvbiB2ZXJpYWJsZS4gU2VlIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYmE1MmJlM2QwZTYxOGMyNjA3MGU5M2FhZjNjMWYyZDJhZGY1NTcxZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxNyAxNDoyOTowNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MgYW5kIGNvZGluZyBzdHlsZSBpc3N1ZXMgaW4gSENVNC9IQ1U1CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU1ZWQxNTE2Y2JjMWRhZDNhZTI3N2M2N2VlMDZmYzRhNDZlYWFjN2QKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMTg6MDc6MzIgMjAwOCArMDkwMAoKICAgIHNoOiBSZW1vdmUgQ09ORklHX0NPTU1BTkRTIGZyb20gTVM3NzIwU0UgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMDU1NjA2YmQyNWU4OGMwY2QwNGFkMzQ4YTY3OWEwNGIxYjYxNmJlZQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzk6MjAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U0IGJvYXJkOiBhZGRlZCB2YXJpb3VzIGZpeGVzIGFuZCBQT1NUCgogICAgLSBNb3ZlZCBzb21lIGNvbW1vbiBjb2RlIHRvIG5ldHN0YWwvY29tbW9uL25tX2JzcC5jLgogICAgLSBzZHJhbSBpbml0aWFsaXNhdGlvbiBnb2VzIGdvIG5ldHN0YWwvY29tbW9uL2ZpeGVkX3NkcmFtLmMuCiAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIFBPU1QuCiAgICAtIFN0eWxpc3RpYyBjbGVhbnVwcyAobXVsdGktbGluZSBjb21tZW50cy8gZW5mb3JjZSA4MCBjb2xvbW4gd2lkdGgpCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2OWIwNjM0YTRlZTk4Yzk3OTE4MTU2MDBkNDNiOTlmNjI2YTk1MmYzCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxMjo1Mzo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBuZXRzdGFsL2NvbW1vbiBkZWZpbmUgcm91dGluZXMgdXNlZCBieSBhbGwgYm9hcmRzCgogICAgQWRkZWQgc29tZSByb3V0aW5lcyB1c2VkIGJ5IGFsbCBOZXRzdGFsIGJvYXJkczoKICAgIC0gbm1fYnNwLmM6IC0gbm1fc2hvd19wcmludCBhbmQKCSAgICAtICBjb21tb25fbWlzY19pbml0X3IKCSAgICAtIHNldF9wYXJhbXNfZm9yX3N3X2luc3RhbGwuIFZlcnkgc3BlY2lmaWMgY29kZSB0byBoYW5kbGUgb3VyIFNXCgkgICAgICBpbnN0YWxsYXRpb24gcHJvY2VkdXJlCiAgICAtIGZpeGVkX3NkcmFtLmM6IENvbW1vbiByb3V0aW5lcyBmb3IgSENVNCAoYW5kIHVwY29taW5nKSBNQ1UyNSBib2FyZHMKICAgICAgdG8gaGFuZGxlIHNkcmFtIGluaXRpYWxpemF0aW9uLgogICAgLSBubS5oOiBDb21tb24gaGVhZGVyCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBlZmVmZjUzODJiN2E5MWI0OGExYWE2OGIyYjc1ZjkyYWQxZDMzZmY4CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxODozOToxOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBOZXRzdGFsIEhDVTUgYm9hcmQ6IGFkZGVkIHZhcmlvdXMgZml4ZXMgYW5kIFBPU1QKCiAgICAtIE1vdmVkIHNvbWUgY29tbW9uIGNvZGUgdG8gbmVzdGFsL2NvbW1vbi9ubV9ic3AuYy4KICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIHZ4V29ya3MgRURSLgogICAgLSBFbmFibGUgdHJhY2UgZm9yIExhdXRlcmJhY2gsIGlmIHByZXNlbnQuCiAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIFBPU1QuCiAgICAtIFN0eWxpc3RpYyBjbGVhbnVwcyAobXVsdGktbGluZSBjb21tZW50cy8gZW5mb3JjZSA4MCBjb2xvbW4gd2lkdGgpCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA0MzcxMDkwZTVkYTc3ZWRjN2JmOWYyOTYzNjRkYjQ4MDE2MzlkOWM0CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxODozOTowOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBOZXRzdGFsIEhDVTUgYm9hcmQuIEFkZGVkIFBPU1QuIFZhcmlvdXMgZml4ZXMKCiAgICAtIFZhcmlvdXMgZml4ZXMKICAgIC0gUmVkdWNlZCByb21fc2l6ZSBmcm9tIDM4NCB0byAzMjAga0IKICAgIC0gRW52aXJvbm1lbnQgaXMgbm93IGluIGZsYXNoCiAgICAtIEFkZGVkIFBPU1QKICAgIC0gU3VwcG9ydCBmb3IgT0YKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDRiZDUwMzZlNjBhZmFjMzdlNDg0YzJkMzVjYmJlN2Y2Y2MxNjIzZTcKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE4OjM3OjUwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE5ldHN0YWwgSENVNCBib2FyZC4gQWRkZWQgUE9TVC4gVmFyaW91cyBmaXhlcwoKICAgIC0gVmFyaW91cyBmaXhlcwogICAgLSBSZWR1Y2VkIHJvbV9zaXplIGZyb20gMzg0IHRvIDMyMCBrQgogICAgLSBFbnZpcm9ubWVudCBpcyBub3cgaW4gZmxhc2gKICAgIC0gQWRkZWQgUE9TVAogICAgLSBTdXBwb3J0IGZvciBPRgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMWEzYWM4NmI3OWZjYjY5MDI3NWM4NTg2MWM4ZWZhNmEzODk5MDYwYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgSmFuIDE3IDEwOjUzOjA4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IENvbXBsZXRlIERVNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxNWEwOGJjMmJlZjkxZTVmMWVhNGI5Y2Y2MGU0NjgzMmQ4NmJjYzFmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTA6NTI6MzAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIERVNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhYzMzMWRhMDdkYjM4NjBmMTFmYTFkMGZkM2RiN2M4MTBiY2UxMTk4CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE1OjUzOjUyIDIwMDggKzA5MDAKCiAgICBzaDogVXBkYXRlIFN1cGVySCBTQ0lGIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggZml4ZWQgd3JvbmcgU0g3NzIwIENQVSBtYWNybyBhbmQgY2hhbmdlZCBtYWNybyB0aGF0CiAgICBjYWxjdWxhdGVkIHZhbHVlIG9mIFNDQlJSIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzMzRlNDQyZTZmYWM1OWJlOTEyNDQwNjNlOWIzZjZjYTI1ZThkYWY4CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTU6MTI6NDcgMjAwOCArMDEwMAoKICAgIFNldCBpcHMgZGl2aWRvciB0byAxLzQgb2YgY3NiIGNsb2NrLgoKICAgIFByZXZpb3VzIHNldHRpbmcgY2F1c2UgaXBzIGNsb2NrIHRvIGJlIG91dCBvZiBzcGVjLiBUaGlzIGJ1ZyB3YXMgZm91bmQgYnkgSm9obgogICAgUmlnYnkgZnJvbSBGcmVlc2NhbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgN2RjMzU4YmIwZGU5ZTJmYTM0MWYzYjRjOTE0NDY2YjFmMzRiMmQ4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDI6MTk6MTggMjAwOCAtMDYwMAoKICAgIDg1eHg6IEdldCByaWRlIG9mIG9sZCBUTEIgc2V0dXAgY29kZQoKICAgIE5vdyB0aGF0IGFsbCBib2FyZHMgaGF2ZSBiZWVuIGNvbnZlcnRlZCwgcmVtb3ZlIG9sZCBjb25maWcgY29kZSBhbmQgdGhlCiAgICBjb25maWcgb3B0aW9uIGZvciB0aGUgbmV3IHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2I1NThlMjZhNWVmMzE2MzU3ODdkNmQ2ZTk3ZDcwOTM5ZDRmODkyZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDI6MDI6MTAgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgVFFNODV4eCB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3NDEyMWI0NzBjMTRmN2VhZjI4NGVlODM4YmZmY2E2Zjk1MjEwNjllCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMTo1NjozMiAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBTVFhHUDMgJiBTVFhTU0EgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTQzYjUxOGQ5MTI1YjU0Zjk2ZjFkN2YxYWZjNjQwYjhhYWU4MWZmMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6NDQ6MzQgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgU0JDODU0MC9TQkM4NTYwL1NCQzg1NDggdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODE4MjE4YmFjNmExMTU5MWUyNTQyYzM0NGQyMzMwZTBmNGUxOTY4YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6MzE6MzQgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgUE04NTQvUE04NTYgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZmY0NjgxYzkyODViMmI0ZDI0NTUyYTE5Y2FjYzE3NjlmZTJmYzdlMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6MjU6MzMgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgTVBDODU0MEVWQUwgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzNhYTlhYzJiNDZmMWNmZDAzOTEwNmViZDZiOTg2NTAxNjAwNTIzNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6MTI6MjIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgTVBDODU2OCBNRFMgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGRiMzdkYzJlZWQzMDg4NGRiMmRhYTI0ZGJkOWExMTNiNWQwMDYxMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6MDE6MDkgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgTVBDODU0MS9NUEM4NTU1L01QQzg1NDggQ0RTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIxOWE4MWI5OGQ4MzRmOTA3MWI2ZjdjM2JkYzZiN2VjMzljYzQ2Y2MKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAwOjUyOjI5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDAvTVBDODU2MCBBRFMgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODBkMGI2YTE0OTg3NjFjNDM1NWIyZGI5YzgwMDFiMDRjMjk1ZTdiOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDA6MzI6MTcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgQVRVTTg1NDggdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGY3YTNkYzk1Y2JmZjNjMjFiZDZkYmM2MzkzMTM3OTY0MTJiYmJhYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMjM6MTE6NTcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgTVBDODU0NCBEUyB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4NzE2MzE4MDU3YTVmNjBhYjFiYTA4MWVjZTJkYmU4MmFlMDBlMWVlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAyMjozODozNCAyMDA4IC0wNjAwCgogICAgODV4eDogUmV3b3JrZWQgaW5pdGlhbCBwcm9jZXNzb3IgaW5pdAoKICAgIFJld29ya2VkIHRoZSBpbml0aWFsIHByb2Nlc3NvciBpbml0aWFsemF0aW9uIHNlcXVlbmNlOgogICAgKiBpbnRyb2R1Y2VkIGNwdV9lYXJseV9pbml0X2YgdGhhdCBpcyBydW4gaW4gYWRkcmVzcyBzcGFjZSAxIChBUz0xKQogICAgKiBNb3ZlZCBUTEIvTEFXIGFuZCBDQ1NSIGluaXQgaW50byBjcHVfZWFybHlfaW5pdF9mKCkKICAgICogUmV3b3JrZWQgaW5pdGlhbCBhc20gY29kZSB0byBkbyBtb3N0IG9mIHRoZSBjb3JlIGluaXQgYmVmb3JlIFRMQnMKCiAgICBUaGUgbWFpbiByZWFzb25zIGZvciB0aGVzZSBjaGFuZ2VzIGFyZSB0byBhbGxvdyBoYW5kbGluZyBvZiAzNi1iaXQgcGh5cwogICAgYWRkcmVzc2VzIGluIHRoZSBmdXR1cmUgYW5kIHNvbWUgb2YgdGhlIGlzc3VlcyB0aGF0IHdpbGwgZXhpc3Qgd2hlbiB3ZQogICAgZG8gdGhhdC4KCiAgICBUaGVyZSBhcmUgYSBmZXcgY2F2ZWF0cyBvbiB3aGF0IGNhbiBiZSBpbml0aWFsaXplZCB2aWEgdGhlIExBVyBhbmQgVExCCiAgICBzdGF0aWMgdGFibGVzOgogICAgKiBUTEIgZW50cnkgMTQvMTUgY2FuJ3QgYmUgaW5pdGlhbGl6ZWQgdmlhIHRoZSBUTEIgdGFibGUKICAgICogYW55IExBVyB0aGF0IGNvdmVycyB0aGUgaW1wbGljaXQgYm9vdCB3aW5kb3cgKDRHLThNIHRvIDRHKSBtdXN0IG1hcCB0bwogICAgICB0aGUgY29kZSB0aGF0IGlzIGN1cnJlbnRseSBleGVjdXRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NGEyM2NmZDYzNjBhNjhlYWE0MWY5NDUxOTA2MThhNTU1MTllYWMzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAyMjozMzoyMiAyMDA4IC0wNjAwCgogICAgODV4eDogSW50cm9kdWNlIG5ldyB0bGIgQVBJCgogICAgQWRkIGEgc2V0IG9mIGZ1bmN0aW9ucyB0byBtYW5pcHVsYXRlIFRMQiBlbnRyaWVzOgogICAgICogc2V0X3RsYigpIC0gd3JpdGUgYSB0bGIgZW50cnkKICAgICAqIGludmFsaWRhdGVfdGxiKCkgLSBpbnZhbGlkYXRlIGEgdGxiIGFycmF5CiAgICAgKiBkaXNhYmxlX3RsYigpIC0gZGlzYWJsZSBhIHZhcmlhYmxlIHNpemUgdGxiIGVudHJ5CiAgICAgKiBpbml0X3RsYnMoKSAtIHNldHVwIGluaXRpYWwgdGxicyBiYXNlZCBvbiBzdGF0aWMgdGFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlODhiMTY5OTg2M2MyNjI4MThmM2FmN2Y2MDE3M2I0ZDQ4ZGY4ZmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTcgMDc6NTA6MTcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHJlbWFpbmluZyBDT05GSUdfQ09NTUFORFMgaW4gNHh4IGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM4YzQxZDRhODBiMWE4YWQ1OTg0YTI4N2Q4MWVhNzgwNDk2MjU5ZjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDEwOjA0OjQyIDIwMDggLTA2MDAKCiAgICA4NXh4OiBVc2UgcHJvcGVyIGRlZmluZXMgZm9yIFBDSSBhZGRyZXNzZXMKCiAgICBXZSBzaG91bGQgYmUgdXNpbmcgdGhlIF9NRU1fUEhZUyBmb3IgTEFXIGFuZCBUTEIgc2V0dXAgYW5kIG5vdCBfTUVNX0JBU0UuCiAgICBXaGlsZSBfTUVNX0JBU0UgJiBfTUVNX1BIWVMgYXJlIG5vcm1hbGx5IHRoZSBzYW1lLCBfTUVNX0JBU0Ugc2hvdWxkIG9ubHkKICAgIGJlIHVzZWQgZm9yIGNvbmZpZ3VyaW5nIHRoZSBQQ0kgQVRNVS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0YTUwNzAxMTVlZmYzOGU5YjMyNGI3OGFiZGZhMGI0NTIwNTgwYjkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDA5OjIyOjI5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBSZW1vdmUgb2xkIHN0eWxlIG9mIExBVyBpbml0CgogICAgQWxsIGJvYXJkcyBhcmUgbm93IHVzaW5nIHRoZSBuZXcgZnNsX2xhdyBjb2RlIHNvIHdlIGNhbiBkcm9wIHRoZSBvbGQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRkMzUyMWNjNzljYWJjNjFlZGYxMmM0OGMwY2UzMThkNGVmYjcxMmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDA5OjE1OjI5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IHJlbWFpbmluZyA4NXh4IGJvYXJkcyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIENvbnZlcnRlZCBBVFVNODU0OCwgTVBDODU2OCBNRFMsIE1QQzg1NDAgRVZBTCwgYW5kIFRRTTg1eHggYm9hcmRzIG92ZXIKICAgIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU3MmIxM2FmYzQyNzEwZjI5NTdjMzgyYTcxMDM2MDQyOWMwZTA5OWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDA5OjExOjUzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IFNUWEdQMy9TVFhTU0Egb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ1ZjIxNjZhYzAyMzNhOTI2MzA1ODM3OGYzOTYxMmJkMTFmNjExOTYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDA5OjA2OjQ4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IFBNODU0L1BNODU2IG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlMmIxNTlkMDA3MGVlMDZlNGFjN2UyZjkzODFkM2U4ZTU0MmU2MTRhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOTowNToyNyAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBTQkM4NTQwL1NCQzg1NjAvU0JDODU0OCBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmNmYWExYWExYWFjMzlhODEwMDZiN2IyN2UwZTQzMWJmMjFmNmRmYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6NDU6MTAgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgTVBDODU0MS9NUEM4NTU1L01QQzg1NDggQ0RTIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3MjMyYTI3MjRjY2M5ZGNiYzNlYzRlZjg0YWRhMDJmMTNjY2QxMjM4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwMTozMjowNiAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBNUEM4NTQwL01QQzg1NjAgQURTIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0YmNhZTljOTJhZWUwZDcyYTJmMTliODFjYWIyN2VmMzgxMDdjZTc1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwMToxNjoxNiAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBNUEM4NTQ0IERTIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4M2Q0MGRmZDc5ZmU4Njg3OTYyNzU4MDJmNjAxMTZkODRiOWU0Mzk1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwMToxMzo1OCAyMDA4IC0wNjAwCgogICAgODV4eDogTW92ZSBMQVcgaW5pdCBjb2RlIGludG8gQwoKICAgIE1vdmUgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBMQVdzIGludG8gQyBjb2RlIGFuZCBwcm92aWRlIGFuIEFQSQogICAgdG8gYWxsb3cgbW9kaWZpY2F0aW9uIG9mIExBV3MgYWZ0ZXIgaW5pdC4KCiAgICBCb2FyZCBjb2RlIGlzIHJlc3BvbnNpYmxlIHRvIHByb3ZpZGUgYSBsYXdfdGFibGUgYW5kIG51bV9sYXdfZW50cmllcy4KCiAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbWUgY29kZSBvbiA4Nnh4IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiZWQ4Y2U4MzhhNjA5YWFhYjEzNmQ0M2IyNWU2ZGYyYTUyMGJjODU0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNTowMzoxMiAyMDA3ICswMTAwCgogICAgcWVtdS1taXBzOiBhY3RpdmUgSFVTSCBQQVJTRVIsIEFVVE9fQ09NUExFVEUgYW5kIENNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDc2NGMxNjRmZWQ2Mjc3ZDM1OWNmMTMyZDU1MTg3ZWEzNDI5MDExNApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglXZWQgSmFuIDE2IDE5OjI3OjUxIDIwMDggKzAyMDAKCiAgICBNSVBTOlRhcmdldCBzdXBwb3J0IGZvciBxZW11IC1NIG1pcHMKCiAgICBXaXRoIHNlcmlhbCwgTkUyMDAwLCBJREUgc3VwcG9ydC4gVGVzdGVkIGluIGJpZy1lbmRpYW4gbW9kZS4KICAgIE1lbW9yeSBzaXplIGhhcmQtY29kZWQgdG8gMTI4TSBmb3Igbm93LCBzbyBkb24ndCBwbGF5IHdpdGgKICAgIHRoZSAtbSBvcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgN2Y1MmZhM2MyZGY1OWU0OWRjMmJhZGQ3YzA4NGNmMmQwMDdjNDM4ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMDA6MDE6MzcgMjAwOCArMDEwMAoKICAgIEZpeCBuZnMgY29tbWFuZCBoZWxwIHRvIHJlZmxlY3QgdGhhdCB0aGUgc2VydmVyaXAgaXMgb3B0aW9uYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBiOGY0MTYyYTRmN2E5YmVlNWU5ZDAzMDVjMTdmMmQzNGRlNDY2YTliCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIERlYyAxMCAyMjozMjoxNCAyMDA3ICswMTAwCgogICAgYmY1Mzctc3RhbXA6IHJlbW92ZSBhbHJlYWR5IGRlZmluZWQgaXNfemVyb19ldGhlcl9hZGRyIGFuZCBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcgoKICAgIGFuZCBtb3ZlIGlzX3ZhbGlkX2V0aGVyX2FkZHIgYm9hcmQgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGMyZjg5NmI4ZmM0NzIyZTM2OTE1OTAzZTE5NDJlMTM4ZTY4Y2U4MDQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTY6MTM6MzEgMjAwOCArMDkwMAoKICAgIGRyaXZlcnMvbmV0L3J0bDgxMzkuYzogcnhfc3RhdHVzIHNob3VsZCBiZSBsZTMyX3RvX2NwdShyeF9zdGF0dXMpLgoKICAgIHJ4X3N0YXR1cyBvbiB0aGUgbWVtb3J5IGlzIGJhc2ljYWxseSBpbiBMRSwgYnV0IG5lZWRzIHRvIGJlIGhhbmRsZWQgaW4gQ1BVCiAgICBlbmRpYW4uIGxlMzJfdG9fY3B1KCkgdGFrZXMgdXAgdGhpcyBtaXNzaW9uLiBFdmVuIGlmIG9uIHRoZSBzYW5lIGhhcmR3YXJlLAogICAgaXQnbGwgd29yayBmaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBNYXNhbWkgS29taXlhIDxta29taXlhQHNvbmFyZS5pdD4KICAgIENjOiBMdWNhcyBKaW4gPGx1Y2FzamluQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTZhMjM2NzQ2ZmU2YTdiODQ4MDJhZmI0ZWQzMTUzNjY5NmQzNDgxMgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNjoxMjoyNiAyMDA4ICswOTAwCgogICAgZHJpdmVycy9uZXQvcnRsODEzOS5jOiBGaXggY2FjaGUgY29oZXJlbmN5IGlzc3VlcwoKICAgIEN1cnJlbnQgZHJpdmVyIGlzIG1lYW50IGZvciBjYWNoZSBjb2hlcmVudCBzeXN0ZW1zLiBUaGlzIHBhdGNoIGFkZHMKICAgIGZsdXNoX2NhY2hlKCkgcm91dGluZXMgdG8gc3VwcG9ydCBjYWNoZSBub24tY29oZXJlbnQgc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogTWFzYW1pIEtvbWl5YSA8bWtvbWl5YUBzb25hcmUuaXQ+CiAgICBDYzogTHVjYXMgSmluIDxsdWNhc2ppbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGQxMjc2Yzc2YzFlMmI1MDM1Mjk2Njg5MjgwYmExYWNiMmM0MjUxMDQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTY6MTE6MTQgMjAwOCArMDkwMAoKICAgIGRyaXZlcnMvbmV0L3J0bDgxMzkuYzogRml4IHR4IHRpbWVvdXQKCiAgICAidG8gPSAoY3VycnRpY2tzKCkgKyBSVExfVElNRU9VVCkiIGhhcyBwb3NzaWJpbGl0aWVzIHRvIHdyYXAgYXJvdW5kLiBJZiBpdAogICAgZG9lcywgdGhlIGNvbmRpdGlvbiAiKGN1cnJ0aWNrcygpIDwgdG8pIiBiZWNvbWVzIGludmFsaWQgYW5kIGltbWVkaWF0ZWx5CiAgICBsZWFkcyB0byB0eCB0aW1lb3V0IGVycm9yLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGZpbmUtZ3JhZGVkIHVkZWx5KDEwKQogICAgbG9vcHMgdG8gZWFzZSB0aGUgaW1wYWN0IG9mIHdyYXBwaW5nIGFyb3VuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogTWFzYW1pIEtvbWl5YSA8bWtvbWl5YUBzb25hcmUuaXQ+CiAgICBDYzogTHVjYXMgSmluIDxsdWNhc2ppbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDE4ZWUzMjBmZjYzZWRiZjdiMjdiYmViMDVmMGUxMmE1MjMwMmM2OGEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTg6NDU6MjggMjAwOCArMDgwMAoKICAgIFRTRUM6IEFkZCB0aGUgc3VwcG9ydCBmb3IgUmVhbFRlayBSVEw4MjExQiBQSFkKCiAgICBBZGQgdGhlIHN1cHBvcnQgb2YgUmVhbFRlayBSVEw4MjExQiBQSFksIHRoZSBSVEw4MjExQgogICAgUEhZIG9ubHkgc3VwcG9ydHMgUkdNSUkgYW5kIE1JSSBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDg0YTMwNDdiNzJiNzBlODYyYjBiN2E4ZTIwNTgwNzc0NTdmODlhMzIKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJV2VkIEphbiAxNiAwOTo0MDo0MSAyMDA4ICswMTAwCgogICAgUmVtb3ZlIGFubm95aW5nIGRlYnVnIHByaW50b3V0IGZvciBQSFkgbGVzcyBib2FyZHMuCgogICAgUEhZIGxlc3MgYm9hcmQgcHJpbnRzIG91dCBsb3RzIG9mICJyZWFkIHdyb25nIC4uLiI6CiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAyLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAzLCBiYXNlIGUwMTAyMzIwCiAgICBVRUM6IFBIWSBpcyBHZW5lcmljIE1JSSAoZmZmZmZmZmYpCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyA0LCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAwLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAxLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAxLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyA1LCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAxLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyAxLCBiYXNlIGUwMTAyMzIwCiAgICByZWFkIHdyb25nIHZhbHVlIDogbWlpX2lkIDMsbWlpX3JlZyA1LCBiYXNlIGUwMTAyMzIwCiAgICBGU0wgVUVDMDogRnVsbCBEdXBsZXgKICAgIEZTTCBVRUMwOiBTcGVlZCAxMDBCVAogICAgRlNMIFVFQzA6IExpbmsgaXMgdXAKICAgIFVzaW5nIEZTTCBVRUMwIGRldmljZQoKICAgIE1ha2UgdGhpcyBwcmludG91dCBkZXBlbmQgb24gVUVDX1ZFUkJPU0VfREVCVUcgYW5kCiAgICByZW1vdmUgaXRzIGRlZmluaXRpb24gaW4gdWVjX3BoeS5jCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGVlNjJlZDMyODZmODNiOThiNzc4NWUwMzE4ZGM2Mzc5ZTc4ZjdmZjYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjExOjAwIDIwMDggLTA2MDAKCiAgICBuZXQ6IHJlZHVjZSBib290IGxhdGVuY3kgb24gUUUgVUVDIGJhc2VkIGJvYXJkcwoKICAgIGFjdHVhbGx5IHBvbGxpbmcgZm9yIFBIWSBhdXRvbmVnb3RpYXRpb24gdG8gZmluaXNoIGVuYWJsZXMgdXMgdG8gcmVtb3ZlIHRoZQogICAgNSBzZWNvbmQgYm9vdCBwcm9tcHQgbGF0ZW5jeSBwcmVzZW50IG9uIFFFIGJhc2VkIGJvYXJkcy4KCiAgICBjYWxsIHRvIHFlX3NldF9taWlfY2xrX3NyYyBpbiBpbml0X3BoeSwgYW5kIG12IGNhbGwgdG8gaW5pdF9waHkgZnJvbQogICAgdWVjX2luaXRpYWxpemUgdG8gdWVjX2luaXQgYnkgSm9ha2ltIFRqZXJubHVuZDsgYXV0b25lZ290aWF0aW9uIHdhaXQKICAgIGNvZGUgc2hhbWVsZXNzbHkgc3RvbGVuIGZyb20gdHNlYyBkcml2ZXIuCgogICAgYWxzbyBybSB1bnVzZWQgQ09ORklHX1JNSUlfTU9ERSBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNTVmZTdjNTdhOGI5OWExMzA5MjUwNTJkY2RiYjc3ZjA1M2RjNTBlMwpBdXRob3I6IG1pY2hhZWwuZmlydGhAYnQuY29tIDxtaWNoYWVsLmZpcnRoQGJ0LmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMTo0MDo1MSAyMDA4ICswMDAwCgogICAgVFNFQyBkcml2ZXI6IENoYW5nZSBNRElPIHN1cHBvcnQgdG8gYWxsb3cgYWNjZXNzIHRvIGFueSBQSFlzIG9uIHRoZSBNRElPIGJ1cwoKICAgIFRoZSBjdXJyZW50IFRTRUMgZHJpdmVyIGxpbWl0cyBNRElPIGFjY2VzcyB0byB0aGUgZGV2aWNlcyB0aGF0IGhhdmUgYmVlbiBjb25maWd1cmVkIGFzIGF0dGFjaGVkCiAgICB0byBhIFRTRUMgTUFDLiBUaGlzIHBhdGNoIGFsbG93cyBhY2Nlc3MgdG8gYW55IFBIWSBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzIHRocm91Z2ggdGhlICdtaWknIGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgRmlydGggPG1pY2hhZWwuZmlydGhAYnQuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNWU5MThhOThjMjZlOGFiOWI1ZDJkNDhkOTk4YTJjZWQyYjViODViMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMDA6Mzg6MDUgMjAwOCAtMDYwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM3eEVSREIKCiAgICBNUEM4Mzd4RVJEQiBib2FyZCBzdXBwb3J0IGluY2x1ZGVzOgogICAgKiBERFIyIDMzME1IeiBoYXJkY29kZWQgKHNvbGRlcmVkIG9uIHRoZSBib2FyZCkKICAgICogTG9jYWwgQnVzIE5PUiBGbGFzaAogICAgKiBJMkMsIFVBUlQgYW5kIFJUQwogICAgKiBlVFNFQyBSR01JSSAoVFNFQzAgLSBSVEw4MjExQiB3aXRoIE1JSTsKICAgICoJICAgICAgIFRTRUMxIC0gVlNDNzM4NSBsb2NhbCBidXMsIGhhcmRjb2RlZCwgcmVxdWlyZXMgc2VwZXJhdGUgZmlybXdhcmUKICAgICoJCSAgICAgICBsb2FkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEtldmluIExhbSA8a2V2aW4ubGFtQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgRCdBYmJyYWNjaW8gPGpvZS5kJ2FiYnJhY2Npb0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZTg5NjQ3ODg5Y2Q0YjVhZGE1YjVlN2NhZDZjYmU1NTczN2EwOGQ3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMjowNjoxNiAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIG1vcmUgc3lzdGVtIGNsb2NrIHBlcmZvcm1hbmNlIGNvbnRyb2xzCgogICAgU3lzdGVtIHJlZ2lzdGVycyB0aGF0IGFyZSBtb2RpZmllZCBhcmUgdGhlIEFyYml0ZXIgQ29uZmlndXJhdGlvbgogICAgUmVnaXN0ZXIgKEFDUiksIHRoZSBTeXN0ZW0gUHJpb3JpdHkgQ29udHJvbCBSZWdpc3RlciAoU1BDUiksIGFuZCB0aGUKICAgIFN5c3RlbSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIChTQ0NSKS4KCiAgICBTaWduZWQtb2ZmIGJ5OiBNaWNoYWVsIEYuIFJlaXNzIDxNaWNoYWVsLkYuUmVpc3NAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBEJ0FiYnJhY2NpbyA8bGpkMDE1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE2YzNjZGUwNTBlMmQyNDNlNjJiMzc0ODZmMTU1ODU3MDc4N2JlYjgKQXV0aG9yOiBKYW1lcyBZYW5nIDxqYW1lcy55YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTE6NTg6MDggMjAwOCAtMDYwMAoKICAgIEZTTDogR2VuZXJhbGl6ZSBQSVhJUyByZXNldCBjb21tYW5kIHBhcnNpbmcuCgogICAgQmVmb3JlLCB0aGUgb3JkZXIgb2YgYXJndW1lbnRzIHRvIHRoZSBwaXhpc19yZXNldAogICAgY29tbWFuZCBuZWVkZWQgdG8gYmUgc3VwcGxpZWQgaW4gYSBoYXJkLWNvZGVkIG9yZGVyLgogICAgR2VuZXJhbGl6ZSB0aGUgY29tbWFuZCBwYXJzaW5nIHRvIGFsbG93IGFueSBvcmRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxqYW1lcy55YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZDhmODY4N2I3OGMzZTkxN2IxNzNmMDM4OTI2Njk1MzgzYzU1NTU1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzo0Mjo0MSAyMDA4IC0wNjAwCgogICAgRlNMOiBDb252ZXJ0IGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUgdG8gdXNlIENPTkZJR18KCiAgICBDb252ZXJ0IHRoZSBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlIHRvIHVzZQogICAgQ09ORklHXyogb3B0aW9ucyB0byBzZWxlY3Qgd2hpY2ggZmlsZXMgdG8gY29uZGl0aW9uYWxseQogICAgY29tcGlsZSBpbnRvIHRoZSBib2FyZC9mcmVlc2NhbGUvY29tbW9uIGxpYnJhcnkgcmF0aGVyCiAgICB0aGFuIGNvbmRpdGlvbmFsbHkgY29tcGlsaW5nIGVudGlyZSBmaWxlcy4KCiAgICBOb3cgaGFuZGxlczo6CglDT05GSUdfRlNMX1BJWElTCglDT05GSUdfRlNMX0RJVV9GQgoJQ09ORklHX1BRX01EU19QSUIKCiAgICBDT05GSUdfSURfRUVQUk9NIGlzIGludHJvZHVjZWQgdW50aWwgQ0ZHX0lEX0VFUFJPTSBpcyBnb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2MyMjIxZWIyMzAzNzJhOWU1MzdjNGY2NjM2YjE0N2IwOTA5MzI1ZgpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNjozODozOCAyMDA4ICswODAwCgogICAgVXNlIENPTkZJR19VTEk1MjZYIGFzIE1QQzg2MTBIUENEIGRlZmF1bHQgRXRoZXJuZXQgZHJpdmVyCgogICAgVXNlIGRyaXZlci9uZXQvdWxpNTI2eC5jIGFzIE1QQzg2MTBIUENEIGRlZmF1bHQgRXRoZXJuZXQgZHJpdmVyLgogICAgUmVtb3ZlIHVudXNlZCBldGhlcm5ldCBDT05GSUdfIG9wdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzExYTc5NDYyNzdkMmUyOWFmNDgxMDExZTg2MzVlOTk3NWM1NGU0NQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MDU6MTQgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBRRSBFVEhQUklNRXMgdG8gY29ycmVjdCAnRlNMIFVFQzAnIHZhbHVlCgogICAgY29udGludWF0aW9uIG9mIGNvbW1pdCBiOTZjODNkNGFlNDc1YTcwZWYyNjM1Y2QwZTc0ODE3NGM0NGM4NjAxCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNjNlZWE5ZmY3ZjE5YTJjYmExN2YyNjJiZDE3NTU5ZjE2NmUxMzRlCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAwOTo1MToxMiAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogY2xlYW4gdXAgbXBjODM2MGVtZHMuYyB3YXJuaW5ncwoKICAgIG1wYzgzNjBlbWRzLmM6IEluIGZ1bmN0aW9uICdmdF9ib2FyZF9zZXR1cCc6CiAgICBtcGM4MzYwZW1kcy5jOjMyNzogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozMjk6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X2dldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjMzNDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdmZHRfc2V0cHJvcCcgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzQxOiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjM0Mzogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdmZHRfZ2V0cHJvcCcgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzQ4OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2ZkdF9zZXRwcm9wJyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjA5ODgwZWE3MmExYzgwNmRiMjIzY2U1OTRjNWZiMWI2NTQyZmY2YQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTY6MTQ6NDYgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBwaHktY29ubmVjdGlvbi10eXBlIGZpeHVwIGNvZGUKCiAgICB1c2UgdHJlZSBwYXNzZWQgdG8gdXMgaW4gbG9jYWwgYmxvYiwgbm90IGdsb2JhbCBmZHQuCgogICAgQWxzbyB1c2UgZmR0X3BhdGhfb2Zmc2V0IHRvIGNvbnZlcnQgdG8gcmVsYXRpdmUgb2Zmc2V0LCBzaW5jZSBhYnNvbHV0ZQogICAgcmVmZXJlbmNlIGlzIG5lZWRlZCB0byBjaGVjayBmb3IgcmdtaWktaWQgbW9kZSBzdHJpbmcgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYjRjOTUyYmU3YzQzNTdhMTNlODM5ZDQ4ZGY4MDg1MzgyMGMzM2ViCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEphbiAxNCAwOTowMTo0MCAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogZml4IG1wYzgzMTMvbXBjODMxNS9tcGM4MzQ5aXR4IE1ha2VmaWxlcyBmb3Igc2lsZW50IGJ1aWxkICh3aXRoIC1zKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxZDhlZDJjMDhkYTE0YjE2ODY1OGNjNWZhNzg1MjlkNDYxYWVhNzAKQXV0aG9yOiBQb29uYW0gQWdncndhbCA8YjEwODEyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMDk6NDE6MTQgMjAwOCArMDUzMAoKICAgIENoYW5nZXMgaW4gdWJvb3QgRERSIGNvbmZpZ3VyYXRpb24gZm9yIE1QQzgzMTNlUkRCCgogICAgVGhlc2UgY2hhbmdlcyB3ZXJlIGlkZW50aWZpZWQgYnkgSGlnaFNtaXRoIEJpbGwgLE1henp5YXIgYW5kIEpvc2VwaCBmb3IKICAgIEREUiBjb25maWd1cmF0aW9uIGluIHUtYm9vdCBjb2RlLiBTb21lIGFyZSByZWxhdGVkIHRvIHBlcmZvcm1hbmNlLCBzb21lCiAgICBhZmZlY3Qgc3RhYmlsaXR5IGFuZCBzb21lIGNvcnJlY3QgZmV3IGJhc2ljIGVycm9ycyBpbiB0aGUgY3VycmVudAogICAgY29uZmlndXJhdGlvbi4KCiAgICBUaGUgY2hhbmdlcyBoYXZlIGJlZW4gdGVzdGVkIGFuZCBmb3VuZCB0byBnaXZlIGJldHRlciBtZW1vcnkgbGF0ZW5jeQogICAgZmlndXJlcyBvbiBNUEM4MzEzZVJEQi5MTUJlbmNoIGZpZ3VyZXMgcHJvdmUgaXQuCgogICAgVGhlIGNoYW5nZXMgYXJlOgoKICAgIC0gQ1MwX0NPTkZJR1sgQVBfbl9FTl0gaXMgY2hhbmdlZCBmcm9tIDEgdG8gMAogICAgICAodGhpcyBtYXkgaW1wcm92ZSBwZXJmb3JtYW5jZSBmb3IgYXBwbGljYXRpb24gd2l0aCBtYW55IHJlYWQKICAgICAgb3Igd3JpdGUgdG8gb3BlbiBwYWdlcykuCiAgICAtIENTMF9DT05GSUdbT0RUX1dSX0NGR10gaXMgY3VycmVudGx5IGNoYW5nZWQgZnJvbSAxMDAgdG8KICAgICAgMDAxIChhY3RpdmF0aW5nIGFsbCB0aGUgQ1Mgd2hlbiBvbmx5IG9uZSBpcyB1c2VkIG1heSBjYXVzZQogICAgICB1bndhbnRlZCBub2lzZSBvbiB0aGUgc3lzdGVtKQoKICAgIC0gVElNSU5HX0NGR18xW0FDVFRPUFJFXSBpcyBjaGFuZ2VkIGZyb20gOWNsa3MgdG8gOGNsa3MgKGJhc2VkIG9uCiAgICAgIFRyYXM9NDVucykKICAgIC0gVElNSU5HX0NGR18xW1JFRlJFQ10gY2hhbmdlZCBmcm9tIDIxIGNsa3MgdG8gMThjbGtzLgoKICAgIC0gVElNSU5HX0NGR18yW0FMXSB2YWx1ZSBjaGFuZ2VkIGZyb20gMCBzZXR0aW5nIHRvIDEgY2xrIHRvCiAgICAgIGNvbXBseSB3aXRoIHRoZSAzIE9EVCBjbGsgcmVxdWlyZW1lbnRzKQogICAgLSBUSU1JTkdfQ0ZHXzJbQ1BPXSB3YXMgc2V0IHRvIGEgcmVzZXJ2ZWQgdmFsdWUsIGNoYW5nZWQgdG8gUkwrMy80LgogICAgLSBUSU1JTkdfQ0ZHXzJbRk9VUl9BQ1RdIGlzIGNoYW5nZWQgZnJvbSAxMCBjbGtzIHRvIDZjbGtzLgoKICAgIC0gRERSX1NEUkFNX01PREVbQUxdY2hhbmdlZCBmcm9tIDAgdG8gMS4KICAgIC0gRERSX1NEUkFNX01PREVbV1JSRUNdIGNoYW5nZWQgZnJvbSAxIGNsayB0byAzIGNsa3MuCgogICAgLSBERFJfU0RSQU1fSU5URVJWQUxbUkVGSU5UXSBpcyBjaGFuZ2VkIGZyb20gMHgwMzIwIHRvIDB4MDUxMC4KICAgIC0gRERSX1NEUkFNX0lOVEVSVkFMW0JTVE9QUkVdIGlzIGNoYW5nZWQgZnJvbSAweDY0IHRvIDB4MDUwMC4KCiAgICBUaGUgcGF0Y2ggaXMgYmFzZWQgb2YgZ2l0Oi8vd3d3LmRlbnguZGUvZ2l0L3UtYm9vdC1tcGM4M3h4LmdpdAogICAgVGhlIGxhc3QgY29tbWl0IG9uIHRoaXMgdHJlZSB3YXMgNjc3NWM2ODY4M2E1M2M3YWJjNzc4Nzc0NjQxYWFjNmY4MzNhMmNiZgoKICAgIFNpZ25lZC1vZmYtYnk6IFBvb25hbSBBZ2dyd2FsLWIxMDgxMiA8YjEwODEyQGZyZWVzY2FsZS5jb20+CiAgICBDYzogQmlsbCBIaWdoU21pdGggPEJpbGwuSGlnaHNtaXRoQGZyZWVzY2FsZS5jb20+CiAgICBDYzogUmF6emF6IE1henlhciA8TVJhenphekBmcmVlc2NhbGUuY29tPgogICAgQ2M6IEpvc2VwIFAgSiA8UEouSm9zZXBoQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1Y2RkN2RmNGEwNmVkYjkxNTM5YzlhMmVhN2MxNzhhODcwYzNhOTUKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVNhdCBKYW4gMTIgMTM6MjQ6MTQgMjAwOCAtMDUwMAoKICAgIEVuYWJsZSB0aGUgaXNkcmFtIGNvbW1hbmQgb24gdGhlIE1QQzgzNjBFTURTIGJvYXJkCgogICAgVGhlIGlzZHJhbSBjb21tYW5kIHByaW50cyBvdXQgZGVjb2RlZCBpbmZvcm1hdGlvbiB0aGUgInNlcmlhbCBwcmVzZW5jZQogICAgZGV0ZWN0IiAoU1BEKSBjaGlwIG9uIHRoZSBTRFJBTSBTSU1Ncy4gIFRoaXMgY2FuIGJlIHZlcnkgaGVscGZ1bCB3aGVuCiAgICBkZWJ1Z2dpbmcgbWVtb3J5IGNvbmZpZ3VyYXRpb24gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGJkNTIyY2U0YWZkYTNkNDg2OGVlOGM5MTNmNTM5NDA5NDMyNmJlMQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxODo0ODoyNCAyMDA4ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBzdXBwb3J0IGZvciBNUEM4MzE1RVJEQiBib2FyZAoKICAgIFRoZSBmZWF0dXJlcyBsaXN0OgogICAgLSBCb290IGZyb20gTk9SIEZsYXNoCiAgICAtIEREUjIgMjY2TUh6IGhhcmRjb2RlZCBjb25maWd1cmF0aW9uCiAgICAtIExvY2FsIGJ1cyBOT1IgRmxhc2ggUi9XIG9wZXJhdGlvbgogICAgLSBJMkMsIFVBUlQsIE1JSSBhbmQgUlRDCiAgICAtIGVUU0VDMC8xIHN1cHBvcnQKICAgIC0gUENJIGhvc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMDU4ODRlZmE2MTRlNGQ4YTk0MTMxNThmYzIyOGUwZGMwMmFiNzA0CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQ2OjUwIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgY29uZmlnIG9mIGVUU0VDIGVtZXJnZW5jeSBwcmlvcml0eSBpbiBTUENSCgogICAgVGhlIFRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGRlZmluaXRpb24gb2YgODMxeC84Mzd4CiAgICBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgZGVmaW5pdGlvbiBvZiA4MzR4IGluIFNQQ1IgcmVnaXN0ZXIuCgogICAgQWRkIHRoZSBvdGhlciBjb25maWcgb2YgVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgaW50bwogICAgY3B1X2luaXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDliOTU4MjM0YjA3ODNmMTNkOTJmMDA3Zjc1M2ZkMmMzYWUyYzg2ODAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTg6NDI6MTkgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBNUEM4MzYwRVJESy5oCgogICAgVGhlIE1QQzgzNjBFUkRLIGJvYXJkIHN1cHBvcnQgcGF0Y2ggaXMgYWRkZWQgYmVmb3JlCiAgICB0aGUgY29tbWl0IDJjNWI0OGZjMjA1YzNlMjc1MjkxMGRhOGYzOTIwOWVkMDc1OTI5ZTUKICAgIHNvLCBtaXNzIGNsZWFuIHVwIGl0LgoKICAgIFRoZSBwYXRjaCBjbGVhbiB1cCB0aGUgbWlzcyBjYWNoZSBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2Q5ZDIzMDUzZDQzNWMwOGZjODY5NTAxN2I1Y2I5MDAzZmNkYTc4NgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gSmFuIDE0IDIzOjA5OjMyIDIwMDggKzAzMDAKCiAgICBuYW5kOiBGU0wgVVBNIE5BTkQgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNmNiMjIzOWFlNzZmYWVlNjQ0MzQyODZjNGY4ZmM3MTM3NDcwMmRkMgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUdWUgSmFuIDE1IDA4OjU5OjQ0IDIwMDggKzA5MDAKCiAgICBPbmVOQU5EOiBTZXBhcmF0ZSBVLUJvb3QgZGVwZW5kZW50IGNvZGUgZnJvbSBPbmVOQU5ECgogICAgT25lTkFORDogU2VwYXJhdGUgVS1Cb290IGRlcGVuZGVudCBjb2RlIGZyb20gT25lTkFORAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgODNhNDljOGRkNzk5OGJlMmQxZjBkNDIwNTk3YTM2YmJmMGJmNDE2NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgSmFuIDE2IDEwOjMzOjQ2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFNlcXVvaWEgY29kaW5nIHN0eWxlIGNsZWFudXAgYW5kIGJlYXV0aWZpY2F0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNGIzY2M2ZWNlOWM0NTU1MDRjZjEyOTA5ZmFlMzhkMDg1ZDg0OGFjMApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUdWUgSmFuIDE1IDE0OjM1OjU4IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFJlZmFjdG9yIEVDQyBQT1NUIGZvciBBTUNDIERlbmFsaSBjb3JlCgogICAgVGhlIEVDQyBQT1NUIHJlcG9ydGVkIGludGVybWl0dGVudCBmYWlsdXJlcyBydW5uaW5nIGFmdGVyIHBvd2VyLXVwIG9uCiAgICB0aGUgS29yYXQgUFBDNDQwRVB4IGJvYXJkLglFdmVuIHdoZW4gdGhlIHRlc3QgcGFzc2VkLCB0aGUgZGVidWdnaW5nCiAgICBvdXRwdXQgb2NjYXNpb25hbGx5IHJlcG9ydGVkIGFkZGl0aW9uYWwgdW5leHBlY3RlZCBFQ0MgZXJyb3JzLgoKICAgIFRoaXMgcmVmYWN0b3JpbmcgaGFzIHRocmVlIG1haW4gb2JqZWN0aXZlczogKDEpIG1pbmltaXplIHRoZSBjb2RlCiAgICBleGVjdXRlZCB3aXRoIEVDQyBlbmFibGVkIGR1cmluZyB0aGUgdGVzdHMsICgyKSBhZGQgbW9yZSBjaGVja2luZyBvZiB0aGUKICAgIHJlc3VsdHMgc28gYW55IHVuZXhwZWN0ZWQgRUNDIGVycm9ycyB3b3VsZCBjYXVzZSB0aGUgdGVzdCB0byBmYWlsLCBhbmQKICAgICgzKSB1c2Ugc3luY2hyb25pemF0aW9uIChvbmx5KSB3aGVyZSByZXF1aXJlZCBieSB0aGUgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDI0NjU2NjViNzNhYzJmNjg4YWY5NDViMWVkNTEwNzUyYWZhODE2YTQKQXV0aG9yOiBEYXZpZCBTYWFkYSA8RGF2aWQuU2FhZGFAZWNpdGVsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTA6NDA6MjQgMjAwOCArMDIwMAoKICAgIFFFIFVFQzogRXh0ZW5kIG51bWJlciBvZiBzdXBwb3J0ZWQgVUVDcyB0byA0CgogICAgVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkIFVFQ3MgdG8gNC4gTm90ZSB0aGF0IHRoZQogICAgcHJvYmxlbSBvZiBRRSB0aHJlYWQgcmVzb3VyY2VzIGV4aGF1c3Rpb24gaXMgcmVzb2x2ZWQgYnkgc2V0dGluZyB0aGUKICAgIGNvcnJlY3QgbnVtYmVyIG9mIFFFIHRocmVhZHMgYWNjb3JkaW5nIHRvIEV0aGVybmV0IHR5cGUgKEdCRSBvciBGRSkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2FhZGEgPGRhdmlkLnNhYWRhQGVjaXRlbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1OGQyMDQyNTZjYjFjZTFiZDMyMzg0N2Q5ZjY0NGFjZjcwYTcyZTZhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxNiAwMDowMTowMSAyMDA4ICswMTAwCgogICAgTFdNT041OiBlbmFibGUgaHVzaCBzaGVsbCBhcyBjb21tYW5kIGxpbmUgcGFyc2VyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NmZmYjE4ODNmZWVkZGRjODEzZDhhNTA3ZDA2MGYyYTk0MGViMmIyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNSAxNzoyMjoyOCAyMDA4ICswMTAwCgogICAgQURTNTEyMTogZGlzYWJsZSB3YXRjaGRvZzsgZW5hYmxlIGltYWdlIHRpbWVzdGFtcHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJiNGY3NzhmZTlkMWRlNjFkNzQ0NWJhZTdiMzI1MzQwYWJhNjk2OGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDE1IDE3OjIxOjI4IDIwMDggKzAxMDAKCiAgICBUSzg4NUQ6IGZpeGVzIGZvciBiaWdnZXIgZmxhc2ggc2VjdG9yIHNpemVzIG9uIG5ldyBtb2R1bGVzOwogICAgYWRqdXN0IGRlZmF1bHQgZW52aXJvbm1lbnQ7CiAgICBkaXNhYmxlIFNDQyBldGhlcm5ldCAobm90IHVzZWQgb24gdGhpcyBib2FyZCkuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmOTFkN2FlNWNhODlhY2Y5ZmExZWQxMDE1ZGMwNzhjZjI5NTgxNjA3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSmFuIDE1IDE3OjQ4OjEzIDIwMDggKzA5MDAKCiAgICBwY21jaWE6IFJlbW92ZSBDT05GSUdfQ09NTUFORFMgZnJvbSBtYXJ1YnVuIHBjbWNpYSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNzZlNDlhYTdmYjhlNzZjYzQ5MDkyYzFhY2Q1M2ZmZjkyMWUyNjM2MApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAyMzoyNToyNSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNINzcxMC9TSDc3MTIKCiAgICBTSDc3MTAvU0g3NzEyIG9mIFNIMyBDUFUgYXJlIHN1cHBvcnRlZC4KICAgIFNINzcxWCBpcyBjYWxsZWQgU0gtRXRoZXIsIGFuZCBoYXMgdGhlIEV0aGVyIGNvbnRyb2xsZXIgaW4gQ1BVLgogICAgVGhlIGRyaXZlciBvZiBFdGhlciBpcyBub3QgaW5jbHVkZWQgaW4gdGhpcyBwYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNjNhMTFiZTY4MzA2ODcwZTA0ZDM4NTFlZDlmYTQxOTU1Y2RmNDg5NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAyMzowNjoxNyAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IG9mIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKSB0byBTdXBlckgKCiAgICBUaGlzIHBhdGNoIGFkZCB0aGUgc3VwcG9ydCBvZiBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkKICAgIHVzZWQgd2l0aCBDb21tb24gRmxhc2ggSW50ZXJmYWNlKENGSSkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkYjM5OTVmZTUxNjRhYzVkNjMwYjdlY2I5NjI4NmE5ODI4ZGZiYjU0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgSmFuIDkgMTQ6NDI6MjcgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgbWFpbnRhaW5lciBvZiBNUzc3MjBTRSB0byB0aGUgTUFJTlRBSU5FUiBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGRjZDk5ZTg4ZTAzZDU2YTBhZWVjZDQyYjUwN2QyZDI5ZDIwYWIwZTMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBKYW4gOSAxNDozOTo1OCAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBib2FyZCBuYW1lIGluIE1TNzcyMFNFJ3MgY29uZmlnLm1rCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGMwYTA0ZDkzNzM0ZDc2OGIzOWRiYjcyZmI1MDFiNjU2MTRjODYxNWQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBKYW4gOSAxNDozNzozNiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBNUzc3MjBTRSB0byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGIyYjVlMmJiNzhhMWVmNGFlODUwNGY1YTI2YmZkYzMyOTNlYTc0YWUKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CU1vbiBEZWMgMyAyMjo1ODo1MCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGZvciBNUzc3MjBSUDAyIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgQ0M6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIEFja2VkLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgN2MxMGM1NzI3NTkwMTkzOWE4ZWNlNGE5ZWYzZTdjY2I3YzEyYTBlZApBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE0OjMwOjAyIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgZm9yIFNINzcyMCBpbiBzZXJpYWxfc2ggZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGY5OTEzYThlZTcxZmYxNGZjZmMxYzdmZDBlNjkxMmY4OTdlNjk0MDMKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CU1vbiBEZWMgMyAyMjo1ODo0NSAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNIMyBhbmQgU0g3NzIwCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgQ0M6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIEFja2VkLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgOWFkZmM5ZmI5YWRlNjRjZGYxZWQ5ZmY4NDJlNGY5MDBjYmRhNzhiZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNSAxMDoxMTowMiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgY29tcGlsZXIgd2FybmluZyBpbiBjcHUvcHBjNHh4LzQ0eF9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3YmVmNjgwOTdhYjM2OTI1MDBhMzZmYjMxMTE1YmZmNzkxMGFhOTkKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglNb24gSmFuIDE0IDE0OjA0OjQyIDIwMDggKzAxMDAKCiAgICBwcGNfNHh4OiBGaXggcG9zdCBzcHIuYyBmb3IgUFBDNDA1CgogICAgcG9zdC9jcHUvcHBjNHh4L3Nwci5jIGNvbnRhaW5lZCBhIGZldyBjaGVja3MgZm9yIHJlZ2lzdGVycyBvbmx5IHByZXNlbnQKICAgIGZvciBQUEM0NDAgYW5kIGRlcml2YXRlcyBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAwNmM0MjhiY2Q0NDEzMDE0YjQzMjM2ZTc3NzY1MDIyMDcxNDI0ZmE2CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDExOjEyOjAxIDIwMDggKzA4MDAKCiAgICBRRTogZml4IGNvbXBpbGUgd2FybmluZwoKICAgIHFlLmM6IEluIGZ1bmN0aW9uICdxZV91cGxvYWRfZmlybXdhcmUnOgogICAgcWUuYzozOTA6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIKICAgIHVlYy5jOiBJbiBmdW5jdGlvbiAndWVjX2luaXRpYWxpemUnOgogICAgdWVjLmM6MTIzNjogd2FybmluZzogJ3VlY19pbmZvJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMGRkOTlkNTFlZmE1NWZlMDIzZTE5Yzk3ZWFkOTI2ODM3MjVlYjExCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSmFuIDE0IDEwOjA1OjA1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLaWxhdWVhIENQTEQgY29uZmlndXJhdGlvbiB3aXRoIFVTQiBQSFkgcmVzZXQgYml0CgogICAgTm93IHRoYXQgYml0IDI5IGlzIHRoZSBVU0IgUEhZIHJlc2V0IGJpdCwgdXBkYXRlIHRoZSBLaWxhdWVhIHBvcnQKICAgIHRvIHJlbW92ZSB0aGUgVVNCIFBIWSByZXNldCBhZnRlciBwb3dlcnVwLiBUaGUgQ1BMRCB3aWxsIGtlZXAgdGhlCiAgICBVU0IgUEhZIGluIHJlc2V0IChhY3RpdmUgbG93KSB1bnRpbCB0aGUgYml0IGlzIHNldCB0byAxIGluCiAgICBib2FyZF9lYXJseV9pbml0X2YoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjQzYWQ1MzkwOGYxZWE4M2E3YzI2YzM1MDViYmU4NDM4MmU0N2FhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMjM6MjY6NDUgMjAwOCArMDEwMAoKICAgIEFSTTogdXBkYXRlIG1hY2gtdHlwZXMuaCBmcm9tIDIuNi4yNC1yYzcgTGludXgga2VybmVsIHRyZWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhkMTAzMDcxYjdiMGUzZWM4ODg4NTliZmNiOWQ0MjI1NjVlNmQ3NTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDIzOjM3OjUwIDIwMDggKzAxMDAKCiAgICBBRFM1MTIxOiBGaXggdHlwbyBpbiBhZHM1MTIxLmMsIGFkanVzdCBkZWZhdWx0IGVudmlyb25tZW50CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MWI2N2QwNmZhYTY3MGM2NWRlNmYyOWVjNWI1YWFjZTc0YjJhMDQ3CkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMjQgMTg6MTg6NDMgMjAwNyAtMDYwMAoKICAgIEFEUzUxMjE6IE1BWCBzbGV3IHJhdGUgZm9yIFBBVEEgcGlucwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkNTMxYWFjMzRhYWFkMTM4ZjE2Y2FjZGI1MWQ2MTkwOGQ1OWMwZTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDIxOjA1OjUyIDIwMDggKzAxMDAKCiAgICBGaXggTWFrZWZpbGUgZGVwZW5kZW5jeSBwcm9ibGVtIHdpdGggcGFyYWxsZWwgYnVpbGRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODk5Njc4NDFlM2VhMDJlM2QwZTVlMTI5NWFiNjg3NTc2ZTViMTA4OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMTk6NTE6MzkgMjAwOCArMDEwMAoKICAgIE1QQzg1NDREUzogZml4IGJvYXJkIE1ha2VmaWxlIGZvciBzaWxlbnQgYnVpbGQgKHdpdGggLXMpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZDcxNGY4MmZiNGI4YmI3ZTI2N2U5YzcxYjgwMDliYzY3MGJmZTg4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAxNjo0NDowOCAyMDA4ICswMTAwCgogICAgUE1DNDQwIGJvYXJkOiBmaXggYm9hcmQgTWFrZWZpbGUgZm9yIG91dC1vZi10cmVlIGJ1aWxkaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZWIzZmIxNTU4OGQzMTliZDMwOTlkNWY5YjkxMDA1MWRmZWFiNmIyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAxNjowNzo0NCAyMDA4ICswMTAwCgogICAgTWFrYWx1OiBmaXggY29tcGlsZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwYTFlMDNiY2FkYzc3MzQ2ODhhMjFlOGRkMmU0NmE0ZjYwODE5M2MwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEphbiAxMyAxMjozNjoxMiAyMDA4ICswMTAwCgogICAgY21kX25hbmQgOiBmaXggY29tcGlsZXIgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDgyMjVkMWUzYWMwYWIxNDdjZGRlNGIwMDQyODEyNTgzMzgwYWZiOGEKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8cmluY2V3aW5kQGRpc2N3b3JsZC5kYXNjb24uZGU+CkRhdGU6CVNhdCBKYW4gMTIgMjA6Mjk6NDcgMjAwOCArMDEwMAoKICAgIENGSTogRml4IENPTkZJR19GTEFTSF9DRklfTEVHQUNZIGNvbXBpbGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmIyZjQzZWQ2YTMwZWNlNzdmNzYxOTFjODQ1YWM5NTI2N2RhYTMxYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDI6MTk6NDQgMjAwOCArMDEwMAoKICAgIE1QQzgzNjBFUkRLOiBmaXggaW5jb3JyZWN0IGluaXRpYWxpemF0aW9uIG9mIENGR19JMkNfTk9QUk9CRVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4ZTk5ZTFkZDAxYTNlMGUzZGMzYTcxMzhlYjgyN2M5OTdlMmI3NGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAyOjE5OjEzIDIwMDggKzAxMDAKCiAgICBNUEM4eHggRkVDIGRyaXZlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZTZkMTA1NmQyYzJlNGQxMjY2NDEzYzBhZThhNmQ1NTI5ZWNkZTRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMDo1OToyMSAyMDA4ICswMTAwCgogICAgRml4IE1ha2VmaWxlIGRlcGVuZGVuY2llcyBpc3N1ZXM7IGFsbG93IHNpbGVudCBidWlsZAoKICAgIC0gZ2V0IHJpZCBvZiAidmVyc2lvbiIgdGFyZ2V0IHdoaWNoZGlkbid0IHJlYWxseSB3b3JrCiAgICAtIG1ha2UgYXV0b2NvbmYubWsgZGVwZW5kIG9uIHZlcnNpb25fYXV0b2dlbmVyYXRlZC5oIHRvIG1ha2Ugc3VyZQogICAgICB0byByZWJ1aWxkIGZpbGVzIGFzIG5lZWRlZAogICAgLSBhZGQgWEVDSE8gbWFjcm8gdG8gYWxsb3cgZm9yIHNpbGVudCBidWlsZCB1c2luZyAibWFrZSAtcyIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUzNDNhYjgzZDUxMzViNTU4YWE1OGRiOWJlOGZjN2ZhYTY4ZDc3ZWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAwOjU1OjQ3IDIwMDggKzAxMDAKCiAgICBBRFM1MTIxZTogZml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjJiNmY0NjEwNjI3ZmUzZDYwNzYyMGUyNTA4MjkxNmEwMTUzODg3NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDA6NTU6MTggMjAwOCArMDEwMAoKICAgIE1VTklDZXM6IGZpeCBib2FyZCBNYWtlZmlsZSBmb3IgcmVtb3RlIGJ1aWxkIGRpcmVjdG9yeQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmFkNGQzOTk5ZmU4MDFhYTcxNjIyMWQ3ZDlhNGM1YmRhZDc0NzgzYQpBdXRob3I6IE9saXZlciBXZWJlciA8YWxtb2VsaUBnbXguZGU+CkRhdGU6CVdlZCBKYW4gOSAxNzowNDozOCAyMDA4ICswMTAwCgogICAgTVBDNTIwMDogZG9uJ3QgdXNlIGhhcmRjb2RlZCBNQkFSIGFkZHJlc3MgaW4gQmVzdGNvbW0gZmlybXdhcmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBPbGl2ZXIgV2ViZXIgPGFsbW9lbGlAZ214LmRlPgoKY29tbWl0IDAwYWM1MGUzNDhkMWJhY2UyN2ExNzRiN2Y1MjhkMTEzYmM3Y2RmN2YKQXV0aG9yOiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE3OjEwOjU2IDIwMDggKzAxMDAKCiAgICBNYWtlIGJvb3RyZXRyeSB3b3JrIHdoZW4gY29tbWFuZCBsaW5lIGVkaXRpbmcgaXMgZW5hYmxlZAoKICAgIEN1cnJlbnRseSwgd2hlbiBDT05GSUdfQ01ETElORV9FRElUSU5HIGlzIHNldCwgYm9vdHJldHJ5IGRvZXNuJ3Qgd29yay4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+Cgpjb21taXQgNjMyZGUwNjcyZDNjM2FiNTNhZDc5OGM0N2Y1ZjFlYjI2MDA4YTBlNApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglGcmkgSmFuIDExIDIzOjI2OjE4IDIwMDggLTA1MDAKCiAgICBSZWZhY3RvciBjb2RlIGZvciAiaTJjIHNkcmFtIiBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMGRmNmI4NDQ2YzQ3MjFiOTFjZTMxMTU0ODExNDg5MTEzMDM3MTA4MwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUaHUgSmFuIDEwIDIyOjIzOjM5IDIwMDggLTA1MDAKCiAgICBGaXggImkyYyBzZHJhbSIgY29tbWFuZCBmb3IgRERSMiBESU1NcwoKICAgIE1hbnkgb2YgdGhlIFNQRCBieXRlcyBmb3IgRERSMiBTRFJBTSBhcmUgbm90IGludGVycHJldGVkIGNvcnJlY3RseSBieSB0aGUKICAgICJpMmMgc2RyYW0iIGNvbW1hbmQuICBUaGlzIHBhdGNoIHByb3ZpZGVzIGNvcnJlY3QgYWx0ZXJuYXRpdmUKICAgIGludGVycHJldGF0aW9ucyB3aGVuIEREUjIgbWVtb3J5IGlzIGRldGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDY0MTM0ZjAxMTI1NDEyMzYxODc5OGZmNzdjNDJiYTE5NmIyZWM0ODUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDIwOjMxOjM5IDIwMDggKzAxMDAKCiAgICBGaXggbGlua2VyIHNjcmlwdHM6IGFkZCBOT0xPQUQgYXRyaWJ1dGUgdG8gLmJzcy8uc2JzcyBzZWN0aW9ucwoKICAgIFdpdGggcmVjZW50IHRvb2xjaGFpbiB2ZXJzaW9ucywgc29tZSBib2FyZHMgd291bGQgbm90IGJ1aWxkIGJlY2F1c2UKICAgIG9yIGVycm9ycyBsaWtlIHRoaXMgb25lIChoZXJlIGZvciBvY290ZWEgYm9hcmQgd2hlbiBidWlsZGluZyB3aXRoCiAgICBFTERLIDQuMiBiZXRhKToKICAgIHBwY180eHgtbGQ6IHNlY3Rpb24gLmJvb3RwZyBbZmZmZmYwMDAgLT4gZmZmZmYyM2JdIG92ZXJsYXBzIHNlY3Rpb24gLmJzcyBbZmZmZWU5MDAgLT4gZmZmZmY4YWJdCgogICAgRm9yIG1hbnkgYm9hcmRzLCB0aGUgLmJzcyBzZWN0aW9uIGlzIGJpZyBlbm91Z2ggdGhhdCBpdCB3cmFwcyBhcm91bmQKICAgIGF0IHRoZSBlbmQgb2YgdGhlIGFkZHJlc3Mgc3BhY2UgKDB4RkZGRkZGRkYpLCBzbyB0aGUgcHJvYmxlbSB3aWxsIG5vdAogICAgYmUgdmlzaWJsZSB1bmxlc3MgeW91IHVzZSBhIDY0IGJpdCB0b29sIGNoYWluIGZvciBkZXZlbG9wbWVudC4gT24KICAgIHNvbWUgYm9hcmRzIGhvd2V2ZXIsIGNoYW5nZXMgdG8gdGhlIGNvZGUgc2l6ZSAoZHVlIHRvIGRpZmZlcmVudAogICAgb3B0aW1pemF0aW9ucykgd2UgYmFpbCBvdXQgd2l0aCBzZWN0aW9uIG92ZXJsYXBzIGxpa2UgYWJvdmUuCgogICAgVGhlIGZpeCBpcyB0byBhZGQgdGhlIE5PTE9BRCBhdHRyaWJ1dGUgdG8gdGhlIC5ic3MgYW5kIC5zYnNzCiAgICBzZWN0aW9ucywgdGVsbGluZyB0aGUgbGlua2VyIHRoYXQgLmJzcyBkb2VzIG5vdCBjb25zdW1lIGFueSBzcGFjZSBpbgogICAgdGhlIGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2FmYWM3OWVjMjdiOTFkZjE4NWYwOTBiMzFkYWQ5NjIwNzc5ZjQ0MApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMjA6NDI6NTggMjAwOCAtMDYwMAoKICAgIFVTQjogQWRkIFBoaWxpcHMgMTU2MSBQQ0ktT0hDSSBpZHMKICAgIChuZWVkZWQgZm9yIE01NDc1RVZCKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZThkZWY2NzMxY2Q3YmVjNzRiZmY0MmExNmIxMzlkZTA0MDEwMzUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMiAxNTo1MTozNCAyMDA4ICswMTAwCgogICAgQWRkIE1BSU5UQUlORVJTIGVudHJpZXMgZm9yIGlkczgyNDcsIGp1cGl0ZXIsIG11bmljc2UsIHNjMyBhbmQgdWMxMDEKICAgIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWQ0OWUwZTE1MmE4YjgxY2MwNjAyMjcxZThmZDI1OTM3MWY1NTliNwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSmFuIDExIDEyOjAzOjQzIDIwMDggKzAxMDAKCiAgICBNUEM1MTJYOiBDbGVhbnVwIGJ1cyBjbG9jayBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2NmE5NDU1YjZiZjQ2ZDY5Y2VjNWM4OGQxYTYwMGQxZDlhMTA2NzBkCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNzoxNjo1OSAyMDA4ICswMTAwCgogICAgTVBDNTEyWDogRml4ZWQgdHlwbyBpbiBtYWNybyBuYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI4MWZmOWE0NWNmOWViMTdiOGE5YWZjNDM2Y2I3ODNjZjFmNjIzNjMKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE3OjE2OjE1IDIwMDggKzAxMDAKCiAgICBhZHM1MTIxOiBBZGRlZCBzdXBwb3J0IGZvciBGRFQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgYTEwZmY5MTk2MTgzZTdlNWYyYWUzYzRmNWYzY2JlOTJhZTljYjcxOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTIgMDE6MDU6NTAgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjZkYjk0NTY0OWU1ZTlkMGM3ZWZlMzNiNTA3ZDI0M2NkYzg2Y2YwMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjE1OjE3IDIwMDggKzAxMDAKCiAgICBGaXhlZCBzeW50YXggZXJyb3IgaW4gZnVuY3Rpb24gaW5pdF9lMzAwX2NvcmUoKSBvZiBtcGM4M3h4L3N0YXJ0LlMgaWYKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZmEwNTY2NGNkOGM3YWIxZWNmMDYyYWE3M2I5OTJiN2I1OGJiYTQ5YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjE1OjE2IDIwMDggKzAxMDAKCiAgICBNVU5JQ2VzOiBTZXQgdGhlIHJpZ2h0IENGR19ERUZBVUxUX01CQVIgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNWZiMmIyMzQyZWNlOGQ3ODZjNmY3ZmRiYTFiYzI3M2ZlYmQzYjNkMgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjE1OjE1IDIwMDggKzAxMDAKCiAgICBhZGRlZCB0aGUgY29uZmlnIEZpbGUgZm9yIHRoZSBNVU5JQ2VzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDYzNDFkOWQ3MjNiNzFiNGMwYmY4NmY5NzllNGNiMjI4YzAyZmQwOWQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNCAyMDA4ICswMTAwCgogICAgYWRkZWQgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIE1VTklDZXMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2JiNzdmYjA5YTFjYWFiZjVhMjkyY2M1YjQ4NmE3OGI5NzdmYmUxOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTIgMDA6Mzk6MzcgMjAwOCArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cgYW5kIE1BSU5UQUlORVJTIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWJhNzM5MGMzY2I1NzkxNzJiZTY2ODg4YTM3MTcwN2I0N2I1YmU0ZQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMjoxNTowMiAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIHByb2JsZW0gaW4gY29tbW9uL2NtZF9ibXAuYwoKICAgIGNvbW1vbi9jbWRfYm1wLmMgZmFpbHMgdG8gY29tcGlsZSBpZiBDT05GSUdfVklERU9fQk1QX0daSVAKICAgIGlzbid0IGRlZmluZWQuIFRoaXMgcGF0Y2ggZml4IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDVhYTQzN2JhYWU1ZmU2MjlhYmVhYjk5YmVmNzkzYTJhMWZjNzFiNTgKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowOSAyMDA4ICswMTAwCgogICAgRml4IGRlZmF1bHRjb25maWcgZm9yIHRoZSBtZ2NvZ2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYWM5ZGIwNjZiMjY5MzVmMzFiZmYxNWM5ODE2OGIxOWZhZWI2MDNmMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAxOjEyOjA4IDIwMDggKzAxMDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgbWdjb2dlIGJvYXJkIGZyb20ga2V5bWlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBiNDIzZDA1NWNjMmUxM2M0ZWYxZjAzODljM2ZhMjk4OGQwZWVkODE4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDE6MTI6MDcgMjAwOCArMDEwMAoKICAgIEVuYWJsZSBTTUMgbWljcm9jb2RlIHJlbG9jYXRpb24gcGF0Y2ggZm9yIFNNQzEuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMzgxZTRlNjM5NzIwZDhkMmVmYjgwNjZjN2M0OGVjOTU4OGNiMjhjNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAxOjEyOjA2IDIwMDggKzAxMDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgbWdzdXZkIGJvYXJkIGZyb20ga2V5bWlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBiZjA1MjkzOTczYjM0OGY2OTQ2YzlkZjkyY2QzYzY1ZWNlNDJkMGJlCkF1dGhvcjogSmFtZXMgWWFuZyA8amFtZXMueWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDE2OjAyOjA3IDIwMDggLTA2MDAKCiAgICBGaXggNjQtYml0IHZzcHJpbnRmLgoKICAgIFRoZXJlIHdlcmUgc29tZSBzaXplIGFuZCB1bnNpZ25lZCBwcm9ibGVtcy4KICAgIEFsc28gYWRkIHN1cHBvcnQgZm9yICJsbCIgc2l6ZSBtb2RpZmllciBpbiBmb3JtYXQgc3RyaW5nIGxpa2UgZ2xpYmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MmZhMzdlYWM1MzA4NjA2NDNhZmEyNmFlMzQ3YWYzZDIzZDY3MzA5CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVdlZCBKYW4gOSAxMjo0MjozNSAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIHN1cGVyZmx1b3VzIHByZXByb2Nlc3NvciBjb25kaXRpb25hbHMgZnJvbSBMTTczIGRyaXZlcgoKICAgICgxKSBSZW1vdmUgdW51c2VkIHN5bWJvbCAiQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0VOQUJMRSIuCgogICAgKDIpIFVzZSBjb25kaXRpb25hbCBNYWtlZmlsZS5vLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGVmYzZmNDQ3YzFiOTQwZDE2NTBjNGI4NTRjNTU5OGE1OTVkZGMzZGEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTAgMTc6NTk6MDcgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgVEs4ODVEIGJhc2Vib2FyZCBmcm9tIFRFTEUtREFUQQoKICAgIFRoZSBUSzg4NUQgYm9hcmQgdXNlcyBhIFRRTTg4NUQgbW9kdWxlIGZyb20gVFEsIHRoaXMgcG9ydCBhZGRzIGFuCiAgICBvd24gY29uZmlndXJhdGlvbiBmaWxlIGFuZCBhZGRzIGEgbGFzdF9zdGFnZV9pbml0KCkgbWV0aG9kIHRvCiAgICBjb25maWd1cmUgdGhlIHR3byBQSFlzLCBkZXBlbmRpbmcgb24gdGhlIHBoeV9hdXRvX25lZ28gZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAwZWM1OTUyNDNkYzk5ZWRjZDI0OGJiY2ZiZmQ1YTFkYzg2MGJkZTg5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxMCAwMjoyMjowNSAyMDA4IC0wNjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmcKCiAgICBtYWluLmM6IEluIGZ1bmN0aW9uICdyZWFkbGluZV9pbnRvX2J1ZmZlcic6CiAgICBtYWluLmM6OTI3OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3BfYnVmJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYmVkNTM3NTNkZDFkN2U2YmNiZWE0MzM5YmUwZmI3NzYwMjE0Y2MzNQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNDozMDowMSAyMDA4ICswMTAwCgogICAgQWRkIEZ1aml0c3UgQ29yYWxQL0xpbWUgdmlkZW8gZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMjBjNDUwZWY2MWVmMmViMWM5NmY5YjU5YmEwZWI4ZDg0OWJiYTA1OApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMjozOTo0NyAyMDA4ICswMTAwCgogICAgRml4IHZpZGVvIGNvbnNvbGUgbmV3bGluZSBhbmQgY2FycmlhZ2UgcmV0dXJuIGhhbmRsaW5nCgogICAgTGluZXMgb2YgdGhlIGxlbmdodCBDT05TT0xFX0NPTFMgb3IgZ3JlYXRlciB0aGFuIENPTlNPTEVfQ09MUwogICAgYXJlIG5vdCBkaXNwbGF5ZWQgY29ycmVjdGx5LiBUaGlzIGlzIGFuIGF0dGVtcHQgdG8gZml4CiAgICB0aGlzIGlzc3VlLiBBbHNvIGFkZCBjYXJyaWFnZSByZXR1cm4gaGFuZGxpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgZDVhMTYzZDZiYWEwNGY1YThlZGNjMTBlYmM2ZmFkMDg2NTdkMzA5MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNTo1Mzo1OCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggc2RyYW0gaW5pdCBvbiBTZXF1b2lhIGJvYXJkcwoKICAgIENsZWFyIHBvc3NpYmxlIGVycm9ycyBpbiBNQ1NSIHJlc3VsdGluZyBmcm9tIGRhdGEtZXllLXNlYXJjaC4KICAgIElmIG5vdCBkb25lLCB0aGVuIHdlIGNvdWxkIGdldCBhbiBpbnRlcnJ1cHQgbGF0ZXIgb24gd2hlbgogICAgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDYxMGE2MDczMGI3NDY0ZjZmNjU5ZGI0OWQyNjRkODlhN2M3MTA2MQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNTozMTowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZXdvcmsgTGltZSBzdXBwb3J0IGZvciBsd21vbjUKCiAgICBSZXdvcmsgTGltZSBzdXBwb3J0IGZvciBsd21vbjUgdXNpbmcgbmV3IHZpZGVvIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBmZjQxZmZjOTNjMTU5MmU3N2E0NGJkYmViZDVkNzgxNzM5ZjNhYWUwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6NTU6MTYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBNQzQ0MCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGUzZWRjYjM2ZjE0ZjBhYWJiNmY1MGU5NjAxNGQ2ODc3ZjczZDY0ZWEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxNDo1NTowOCAyMDA4ICswMTAwCgogICAgcHB4NHh4OiBGaXggc2RyYW0gaW5pdCBvbiBQTUM0NDAgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMDYxYWFkNGQzMjBkZGRjZTI2MjQ3Njk5ZGNmMjg3NWVlMmVhMTM2NgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowOTozMyAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBidWcgb2YgMjY2TUh6IGRhdGEgcmF0ZSBERFIKCiAgICBUaGUgRERSIGRvZXNuJ3Qgd29yayBvbiB0aGUgMjY2TUh6IGRhdGEgcmF0ZSwKICAgIHRoZSBwYXRjaCBmaXggdGhlIGJ1Zy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZWQwODMxN2FkOWUzNDBiODg3YmYyZWI0NmU5NTY1YTBmNjEwYTkzCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA4OjI2IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBNYWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUKCiAgICBGb3JtYXQgdGhlIGNvZGUsIG1ha2UgaXQgbW9yZSByZWFkYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdlNzRkNjNkMWEyMTFmYmMzNGVjNDI0ZTJkYzY3MjY2MDFmMzIzZDAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDc6MjMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IFJlZHVjZSB0aGUgbGF0ZW5jeSBvZiBERFIKCiAgICBSZWR1Y2UgdGhlIEFMIGZyb20gMiB0byAxIGNsb2NrIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmMzkzMWEyYmVkNTQxMmMyMGQ1ZTU1MzZjODY1ZmJkNjU3ZjdkMjgKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDY6MDUgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgd3JvbmcgZGVmaW5pdGlvbiBvZiBNUEM4MzE1RQoKICAgIEFjY29yZGluZyB0byB0aGUgbGF0ZXN0IHVzZXIgbWFudWFsIG9mIE1QQzgzMTVFLAogICAgMSkgVGhlIFNWQ09EIG9mIEhSQ1dMIGlzIGRpZmZlcmVudCB0aGFuIDgzN3gKICAgIDIpIFRoZSBTQ0NSIGhhcyBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWMyNjM4ZWEwOGE1MzdhMWJkNDA5ZGI4NzNhYWFhMzNhMDUzZWJhZQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowNTowMCAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSB0eXBvIGluIG1wYzgzeHguaAoKICAgIFRoZSBTUENSIGFib3V0IFRTRUMgcHJpb3JpdHkgaXMgd3JvbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPE1pY2hhZWwuQmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgRCdBYmJyYWNjaW8gPEpvZS5EJ2FiYnJhY2Npb0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg2ZWYyY2Q5ZWY4MTkzNTA0OTIzMWZhODlmMzZjN2I3OTNmMmQ0YgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowNDoxMyAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSB0eXBvIGluIGdsb2JhbCBkYXRhIHN0cnVjdAoKICAgIEZpeCB0aGUgdHlwbyBpbiBnbG9iYWxfZGF0YS5oCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmM1YjQ4ZmMyMDVjM2UyNzUyOTEwZGE4ZjM5MjA5ZWQwNzU5MjllNQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowMzowMyAyMDA4ICswODAwCgogICAgbXBjODN4eDogUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIGNvbmZpZy5oCgogICAgY2xlYW4gdXAgdGhlIGNhY2hlIGNvbmZpZyBmcm9tIGNvbmZpZ3MuaCBvZiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhYjZmNTU2YmJiYmQxYmIzNWE1NDMzMTYxZjdmMTczYzE4ZGY1NTkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIEphbiA5IDIwOjU3OjQ3IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBhZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNjBFLVJESwoKICAgIFRoaXMgaXMgTVBDODM2MEUgYmFzZWQgYm9hcmQgd2l0aDoKICAgIC0gMjU2TUIgZml4ZWQgU0RSQU07CiAgICAtIDhNQiBJbnRlbCBTdHJhdGEgTk9SIGZsYXNoOwogICAgLSBTdE1JQ1JPIDY0TWlCIE5BTkQgZmxhc2g7CiAgICAtIHR3byAxMC8xMDAvMTAwMCBldGhlcm5ldCBwb3J0cyBjb25uZWN0ZWQgdmlhIEJyb2FkY29tCiAgICAgIEJDTTU0ODEgUEhZczsKICAgIC0gdHdvIDEwLzEwMCBldGhlcm5ldCBwb3J0cyBjb25uZWN0ZWQgdmlhIE5hdGlvbmFsCiAgICAgIERQODM4NDggUEhZczsKICAgIC0gb25lIFBDSSBhbmQgb25lIG1pbmlQQ0kgc2xvdHM7CiAgICAtIGZvdXIgc2VyaWFsIHBvcnRzICh0d28gTlMxNjU1MC1jb21wYXRpYmxlLCB0d28gVUNDcyk7CiAgICAtIGZvdXIgVVNCIHBvcnRzIHdvcmtpbmcgdGhyb3VnaCBNUEM4MzYwRSAiRkhDSSIgVVNCIGNvbnRyb2xsZXI7CiAgICAtIEZ1aml0c3UgTUI4NjI3NyBncmFwaGljcyBjb250cm9sbGVyOwogICAgLSBBbmFsb2cgdG8gRGlnaXRhbCBDb252ZXJ0ZXIvVG91Y2hzY3JlZW4gY29udHJvbGxlciwgQUQ3ODQzCiAgICAgIGNvbm5lY3RlZCB0byBTUEkuCgogICAgRmVhdHVyZXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHBhdGNoIGFyZToKICAgIC0gU3RNSUNSTyA2NE1pQiBOQU5EIGZsYXNoIChwYXRjaCBzZW50KTsKICAgIC0gTUlOVCBmcmFtZWJ1ZmZlciBpbml0aWFsaXphdGlvbiAocGF0Y2ggaXMgcGVuZGluZyk7CiAgICAtIEZldGNoaW5nIHByb2R1Y3Rpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgRUVQUk9NIHZpYSBJMkM7CiAgICAtIEZIQ0kgVVNCOwogICAgLSBUd28gc2xvdyBVQ0NzIHVzZWQgYXMgUlMtNDg1IFVBUlRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiM2QyY2RlN2EzYWExZTgzYjc5NjhjZGZmOTI5ZTUyYzhjYzYxN2JiCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBKYW4gOSAyMDo1Nzo0MCAyMDA4ICswMzAwCgogICAgbXBjODN4eDogYWRkICJmc2wsIHFlIiBjb21wYXRpYmxlIGZpeHVwcwoKICAgIE5ldyBkZXZpY2UgdHJlZXMgd2lsbCB1c2UgImZzbCxxZSIgY29tcGF0aWJsZSBwcm9wZXJ0aWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NzdiNTc1ODNhN2MzNDAxMGU1NjZhMDlhNjc5ZWMzYzE4MzZmOTk2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE1OjI0OjA2IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgbWlzc2luZyBDT05GSUdfSEFTX0VUSDAgZGVmaW5lcwoKICAgIHRoZSBuZXcgbGliZmR0IGNvZGUgb25seSB1cGRhdGVzIGV0aDAgaWYgQ09ORklHX0hBU19FVEgwCiAgICBpcyBkZWZpbmVkOyBhZGQgdGhlIGRlZmluZSB0byB0aGUgbWlzc2luZyBib2FyZCBjb25maWdzLgoKICAgIFRoYW5rcyB0byBFbWlsaWFuIE1lZHZlIGZvciBmaW5kaW5nIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiODMwYjdmMTYzNTk4NGJhNjA3MjE5ZmNiZDc4NTk3YzI4ZWViNTI5CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMTQ6MDA6MjggMjAwOCAtMDYwMAoKICAgIDg2eHg6IFN1cHBvcnQgMkdCIERJTU1zCgogICAgQ29uZmlndXJlIHRoZSBudW1iZXIgb2YgYml0cyB1c2VkIHRvIGFkZHJlc3MgdGhlIGJhbmtzIGluc2lkZSB0aGUgU0RSQU0KICAgIGRldmljZS4gIFRoZSBkZWZhdWx0IHJlZ2lzdGVyIHZhbHVlIG9mIDAgbWVhbnMgMiBiaXRzIHRvIGFkZHJlc3MgNCBiYW5rcy4KICAgIEhpZ2hlciBjYXBhY2l0eSBkZXZpY2VzIGxpa2UgYSAyR0IgRElNTSByZXF1aXJlIDMgYml0cyB0byBhZGRyZXNzIDggYmFua3MuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQzMzJkYmViMDhmNTg2M2QxZWE2OWQ5MWEwMGM1NDk5ZDNhODdlZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CVRodSBKYW4gMTAgMTg6NTA6MzMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBTZXF1b2lhIGJvb3QgdnhXb3JrcwoKICAgIHZ4V29ya3MgZXhwZWN0cyBpbgogICAgVExCIDAgYSBlbnRyeSBmb3IgdGhlIE1hY2hpbmUgQ2hlY2sgaW50ZXJydXB0CiAgICBUTEIgMSBhIGVudHJ5IGZvciB0aGUgUkFNCiAgICBUTEIgMiBhIGVudHJ5IGZvciB0aGUgRUJDCiAgICBUTEIgMyBhIGVudHJ5IGZvciB0aGUgYm9vdCBmbGFzaAoKICAgIEFmdGVyIGNoYW5naW5nIHRoZSBiYXVkcmF0ZSB0byA5NjAwIEkgaGFkIG5vIHByb2JsZW1zIHRvIGJvb3QgdGhlCiAgICB2eFdvcmtzIGltYWdlIGFzIGRpc3RyaWJ1dGVkIGJ5IFdpbmRSaXZlciAoUmV2aXNpb24gMi4wLzEgZnJvbQogICAgSnVuZSAxOCwgMjAwNykKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDZkODE4NGIwMGMwZDFkNzA5MGU0YTJmNTE0ZTMxMGQ5OGEzOTRmOGQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJV2VkIEphbiA5IDIzOjEwOjI3IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IEZpeCBkZmx1c2goKSB0byByZXN0b3JlIERWTElNIHJlZ2lzdGVyCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMjUyZjYwYjA2OGQxZjk0MTkwYjViY2ZkYTE2OWRiNTgyMzg3ZTE1ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBKYW4gMTAgMDM6NTI6NDQgMjAwOCAtMDUwMAoKICAgIE5pb3MyOiByZW1vdmUgY29tbW9uL2NtZF9iZGluZm8uYyB1bnVzZWQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IE1jTnV0dCA8c21jbnV0dEBwc3llbnQuY29tPgoKY29tbWl0IDQyMmIxYTAxNjAyYjZlMmZiZjg0NDRhMTE5MmM3YmEzMTQ2MWZkNGMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgSmFuIDkgMTg6MTU6NTMgMjAwOCAtMDUwMAoKICAgIEZpeCBFdGhlcm5ldCBpbml0KCkgcmV0dXJuIGNvZGVzCgogICAgQ2hhbmdlIHJldHVybiB2YWx1ZXMgb2YgaW5pdCgpIGZ1bmN0aW9ucyBpbiBhbGwgRXRoZXJuZXQgZHJpdmVycyB0byBjb25mb3JtCiAgICB0byB0aGUgZm9sbG93aW5nOgoKCT49MDogU3VjY2VzcwoJPDA6ICBGYWlsdXJlCgogICAgQWxsIGRyaXZlcnMgZ29pbmcgZm9yd2FyZCBzaG91bGQgcmV0dXJuIDAgb24gc3VjY2Vzcy4gIEN1cnJlbnQgZHJpdmVycyB0aGF0CiAgICByZXR1cm4gMSBvbiBzdWNjZXNzIHdlcmUgbGVmdCBhcy1pcyB0byBtaW5pbWl6ZSBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLUJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzYTY1MzJjYmUyNjNkOTkyZjQ5ZTg2YWM5NWJlZGUyOGU5NmY5YzgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDEwIDAwOjU1OjE0IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTdhNDFlNDQ5MjEyMWNjZjlmYTJjMTBjMmNiMWE2ZDFjMThkNzRmNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNjo1Njo1NCAyMDA4IC0wNjAwCgogICAgQWRkIFFFIGJyZyBmcmVxIGFuZCBjb3JyZWN0IHFlIGJ1cyBmcmVxIGZkdCB1cGRhdGUgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODkwZGZlZjA2YzJkMTY5YTMzNTYzNTk1OTY4OTA3NTRkZmI4ZWUxYwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE2OjM0OjUxIDIwMDggLTA2MDAKCiAgICBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gQVRVTTg1NDggYW5kIHNiYzg1NDggY29uZmlncwoKICAgIFRoZXNlIGJvYXJkcyB3ZXJlbid0IHVwZGF0ZWQgYnkgS3VtYXIncyBjb25maWcgcGF0Y2ggYmVjYXVzZSB0aGV5CiAgICB3ZXJlbid0IGluIHRoZSB0cmVlLCB5ZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4ZWMyMzg1MDM4YzA5NGIwN2VjNWI0OTMzNjI4OWE0NmI2ZTljYzYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDcgMTM6MzE6MTkgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGFkZCBhYmlsaXR5IHRvIHVwbG9hZCBRRSBmaXJtd2FyZQoKICAgIERlZmluZSB0aGUgbGF5b3V0IG9mIGEgYmluYXJ5IGJsb2IgdGhhdCBjb250YWlucyBhIFFFIGZpcm13YXJlIGFuZCBpbnN0cnVjdGlvbnMKICAgIG9uIGhvdyB0byB1cGxvYWQgaXQuICBBZGQgZnVuY3Rpb24gcWVfdXBsb2FkX2Zpcm13YXJlKCkgdG8gcGFyc2UgdGhlIGJsb2IgYW5kCiAgICBwZXJmb3JtIHRoZSBhY3R1YWwgdXBsb2FkLglBZGQgY29tbWFuZC1saW5lIGNvbW1hbmQgInFlIGZ3IiB0byB0YWtlIGEgZmlybXdhcmUKICAgIGJsb2IgaW4gbWVtb3J5IGFuZCB1cGxvYWQgaXQuICBVcGRhdGUgZnRfY3B1X3NldHVwKCkgb24gODV4eCB0byBjcmVhdGUgdGhlCiAgICAnZmlybXdhcmUnIGRldmljZSB0cmVlIG5vZGUgaWYgVS1Cb290IGhhcyB1cGxvYWRlZCBhIGZpcm13YXJlLiAgRnVsbHkgZGVmaW5lCiAgICAnc3RydWN0IHJzcCcgaW4gaW1tYXBfcWUuaCB0byBpbmNsdWRlIHRoZSBhY3R1YWwgUklTQyBTcGVjaWFsIFJlZ2lzdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIwMDlmM2VjYTk5YmI3YjllNmJhNjYzOWE4OTA5YTEzOGRkNWU5ZmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgSmFuIDggMDE6MjI6MjEgMjAwOCAtMDYwMAoKICAgIDg1eHg6IFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWdzLmgKCiAgICBFaXRoZXIgdXNlIHRoZSBzdGFuZGFyZCBkZWZpbmVzIGluIGFzbS9jYWNoZS5oIG9yIGdyYWIgdGhlIGluZm9ybWF0aW9uCiAgICBhdCBydW50aW1lIGZyb20gdGhlIEwxQ0ZHIFNQUi4KCiAgICBBbHNvLCBtaW5vciBjbGVhbnVwIGluIGNhY2hlLmggdG8gbWFrZSB0aGUgY29kZSBhIGJpdCBtb3JlIHJlYWRhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjk2NGU5MzY4ZjQ1MzcyYWFmMWRhMGMxM2ZlNTZmNmQ4MWFlOGU5NgpBdXRob3I6IHJvYmVydCBsYXphcnNraSA8cm9iZXJ0bGF6YXJza2lAZ21haWwuY29tPgpEYXRlOglGcmkgRGVjIDIxIDEwOjM5OjI3IDIwMDcgLTA1MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgQVRVTTg1NDggKHVwZGF0ZWQpCgogICAgQWRkIHN1cHBvcnQgZm9yIEluc3RpdHV0byBBdGxhbnRpY28ncyBBVFVNODU0OCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IHJvYmVydCBsYXphcnNraSA8cm9iZXJ0bGF6YXJza2lAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdiZDYxMDRiNzFkZTliY2E4MGFjOGUwOTM2MDAzNDQzYmI0MmYyZmMKQXV0aG9yOiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIERlYyAyMSAxMDozNjozNyAyMDA3IC0wNTAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIEFUVU04NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBJbnN0aXR1dG8gQXRsYW50aWNvJ3MgQVRVTTg1NDggYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KCmNvbW1pdCA5ZTNlZDM5MmQyYzg5NjVlMjRjOTQyYjU4Nzk2YzMxYzY0NGMyZjcwCkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAwNjo0NToxNCAyMDA3IC0wNjAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIFNCQzg1NDggKHVwZGF0ZWQpCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NTQ4IHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgoKY29tbWl0IDExYzQ1ZWJkNDZkNjUxN2I1MWI3YTkyZGQ1MmE2MThiMmY0ZTU1ODYKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgRGVjIDEzIDA2OjQ1OjA4IDIwMDcgLTA2MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgU0JDODU0OCAodXBkYXRlZCkKCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg1NDggcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRkNGJjYjA4N2MyZWNlMWM0ZDBkZThlZmU4NWUwMDc1ZTViMTU5NApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gT2N0IDIyIDE5OjU4OjE5IDIwMDcgKzA0MDAKCiAgICBNUEM4NTY4RS1NRFM6IHNldCB1cCBRRSBwYXJpbyBmb3IgVUFSVDEKCiAgICBUbyB1c2UgVUFSVDEgb24gdGhlIE1QQzg1NjhFLU1EUywgUUUgcGFyaW8gcGlucyBQQ1swOjNdIHNob3VsZAogICAgYmUgc2V0IHVwIGFwcHJvcHJpYXRlbHkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgYWQxNjIyNDljYjM3MWU5ZTM4OTcxNjc2ZjA5YmU3OTFlNWYzY2Y0YQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gT2N0IDIyIDE4OjEyOjQ2IDIwMDcgKzA0MDAKCiAgICBNUEM4NTY4RS1NRFM6IHJlc2V0IFVDQ3MgdG8gdXNlIHRoZW0gcmVsaWFibHkKCiAgICBJbiBvcmRlciB0byB1c2UgR0VUSDEgYW5kIEdFVEgyIG9uIHRoZSBNUEM4NTY4RS1NRFMsIHdlIHNob3VsZCByZXNldAogICAgVUNDcy4KCiAgICBwLnMgU2ltaWxhciBjb2RlIGV4aXN0cyBpbiB0aGUgTGludXgga2VybmVsIGJvYXJkIGZpbGUgKGZvciBjYXBhYmlsaXR5CiAgICByZWFzb25zIHdpdGggb2xkZXIgVS1Cb290cyksIGJ1dCBzaG91bGQgYmUgcmVtb3ZlZCBzb21lIGRheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAyMTQ2Y2Y1NjgyMWMzMzY0Nzg2Y2E5NGE3MzA2MDA4YzU4MjRiMjM4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAwMToxODoxNSAyMDA3IC0wNjAwCgogICAgUmV3b3JrZWQgRlNMIEJvb2stRSBUTEIgbWFjcm9zIHRvIGJlIG1vcmUgcmVhZGFibGUKCiAgICBUaGUgb2xkIG1hY3JvcyBtYWRlIGl0IGRpZmZpY3VsdCB0byBrbm93IHdoYXQgV0lNR0UgYW5kIHBlcm0gYml0cwogICAgd2VyZSBzZXQgZm9yIGEgVExCIGVudHJ5LiAgQWN0dWFsbHkgdXNlIHRoZSBiaXQgbWFza3MgZm9yIHRoZXNlIGl0ZW1zCiAgICBzaW5jZSB0aGV5IGFyZSBvbmx5IGEgc2luZ2xlIGJpdC4KCiAgICBBbHNvIG1vdmVkIHRoZSBtYWNyb3MgaW50byBtbXUuaCBvdXQgb2YgZTUwMC5oIHNpbmNlIHRoZXkgYXJlbid0IHNwZWNpZmljCiAgICB0byBlNTAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMWQ0NzI3M2Q0NjkyNTkyOWY4ZjJjMTkxM2NkOTZkNzI1N2FhZGU4OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMTggMjM6MjE6NTEgMjAwNyAtMDYwMAoKICAgIFVzZSBGU0wgQm9vay1FIE1NVSBtYWNyb3MgZnJvbSBMaW51eCBLZXJuZWwKCiAgICBHcmFiIHRoZSBGU0wgQm9vay1FIE1BUyByZWdpc3RlciBtYWNyb3MgZnJvbSBMaW51eC4gIEFsc28gYWRkZWQKICAgIGRlZmluZXMgZm9yIHBhZ2Ugc2l6ZXMgdXAgdG8gNFRCIGFuZCByZW1vdmVkIFNIQVJFTiBzaW5jZSBpdCBkb2VzbnQKICAgIHJlYWxseSBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDAyZGY0YTI3MGY4MTdlZjZlYzM5MDQ3YTAxYjU1ZmVjZGM1ZjNiMzcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxMzo1MTozMiAyMDA4IC0wNjAwCgogICAgRml4IG15IG93biBtZXJnZSBzdHVwaWRpdHkKCiAgICBXYXkgYmFjayBpbiBBdWd1c3QgSSBtZXJnZWQgSGVpa28ncyBwYXRjaDoKICAgIDU2NmE0OTRmNTkyOiBbUENTNDQwRVBdIHVwZ3JhZGUgdGhlIFBDUzQ0MEVQIGJvYXJkCgogICAgd2l0aCBKb24ncyBDT05GSUdfQ09NTUFORFMgcGF0Y2hlcy4KCiAgICBUaGlzIHdhcyBkb25lIGluIGNvbW1pdDogNmJmNmYxMTRkY2RkOTdlYzNmODBjMjc2MWVkNDBlMzEyMjlkNmI3OAoKICAgIEhvd2V2ZXIsIGluIHRoZSBwcm9jZXNzLCBJIGxlZnQgb3V0IHNvbWUgb2YgSGVpa28ncyBnb29kIGNoYW5nZXMuCgogICAgTm93IEhlaWtvJ3MgYW5kIEpvbidzIHBhdGNoZXMgYXJlIHByb3Blcmx5IG1lcmdlZCBpbiBmYXRfcmVnaXN0ZXJfZGV2aWNlKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjYzNmI2MmE2ZWZjN2YxNGU2ZTc4ODc4ODYzMWFlN2E3ZmNhNDUzNwpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDExOjE3OjQ5IDIwMDggLTA2MDAKCiAgICBFeHBvc2UgcGFyc2VfbGluZSgpIGdsb2JhbGx5LgoKICAgIEFkZCBuZXcgZnVuY3Rpb24gcmVhZGxpbmVfaW50b19idWZmZXIoKSB0aGF0IGFsbG93cyB0aGUKICAgIG91dHB1dCBvZiByZWFkbGluZSB0byBiZSBwdXQgaW50byBhIHBvaW50ZXIgdG8gY2hhciBidWZmZXIuCgogICAgVGhpcyByZWZhY3RvcmluZyBhbGxvd3Mgb3RoZXIgZnVuY3Rpb25zIGJlc2lkZXMgdGhlCiAgICBtYWluIGNvbW1hbmQgbG9vcCB0byBhbHNvIHVzZSB0aGUgc2FtZSBpbnB1dCBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2NhOTA1MTM0ODZhYmQ0YWU1MGJkMWI3NDAzZjQ3Y2M1OGM1YWQyNQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDAxOjE1OjI1IDIwMDggKzAxMDAKCiAgICB0cml2aWFsOiBmaXggY29uc2VxdWVuY2VzIG9mIGEgYmFkIG1lcmdlCgogICAgRml4IHdoYXQgbG9va3MgbGlrZSBhIG1lcmdlIGFydGlmYWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA0Nzg1YTY5NGMwMDQ1OTk2Y2NmMGFjNWI4ZWRmNTMxZWZjMWI3MzBlCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAzIDEwOjUxOjE1IDIwMDggKzA4MDAKCiAgICBBZGQgQ3RybCBjb21ibyBrZXkgc3VwcG9ydCB0byB1c2Iga2V5Ym9hcmQgZHJpdmVyLgoKICAgIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgaXMgYWRkZWQsIHdoaWNoIGlzIHZlcnkgdXNlZnVsIHRvIGlucHV0IEN0cmwtQwogICAgZm9yIGludGVycnVwdCBjdXJyZW50IGpvYi4KICAgIEFsc28gYWRkIHVzYl9ldmVudF9wb2xsKCkgY2FsbGluZyB0byB1c2Jfa2JkX3Rlc3RjKCksIHdoaWNoIGNhbiBnZXQKICAgIGtleSBpbnB1dCB3aGVuIHRzdGMoKSBpcyBjYWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGM3MzgyYmM1ZDVlNjRjNDdmOTRhYzJjYTc4Y2M1NzQ0NDJlODJkCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglTdW4gRGVjIDMwIDAzOjMwOjU2IDIwMDcgKzAxMDAKCiAgICBmaXggdmFyaW91cyBjb21tZW50cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCA3ODE3Y2IyMDgzZDk4MjkyMzc1MmZlMGYxMmI2N2MwZTdjMDlhMDI3CkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglTdW4gRGVjIDMwIDAzOjMwOjQ2IDIwMDcgKzAxMDAKCiAgICBmaXggY29tbWVudHMgd2l0aCBuZXcgZHJpdmVycyBvcmdhbml6YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgYTliNDEwZGM3ZDJhNDcyMWM0MDhiMTNhYmZjMDM3OTg4MTUwZjE0NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxMjo1MDo1OSAyMDA3ICswOTAwCgogICAgUmVtb3ZlIHRoZSBvYnNvbGV0ZSB0ZXJzZSB2ZXJzaW9uIG9mIGRvX21paSgpCgogICAgV2Ugbm93IGhhdmUgbW9yZSB1c2VmdWwgdmVyc2lvbiBvZiBkb19taWkoKSBhbmQgZXZlcnlib2R5IHVzZSBpdC4KICAgIEdlcmFsZCBWYW4gQmFyZW4gc2F5czoKCiAgICA+IFdoZW4gSSBvcmlnaW5hbGx5IHdyb3RlIHRoZSBtaWkgY29tbWFuZCA2KCEpIHllYXJzIGFnbywgSSB3cm90ZSBhCiAgICA+IHZlcmJvc2UgdmVyc2lvbiB0aGF0IHByaW50ZWQgaHVtYW4gcmVhZGFibGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgZmxhZ3MsCiAgICA+IGV0Yy4sIGFuZCBhIHRlcnNlIG9uZSB0aGF0IGRpZG4ndCBwcmludCBhcyBtdWNoIHN0dWZmIGFuZCB0aHVzIGhhZCBhCiAgICA+IHNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KICAgID4KICAgID4gSXQgc291bmRzIGxpa2UgdGhlIHRlcnNlIHZlcnNpb24gaGFzIHdpdGhlcmVkIGFuZCBkaWVkLCBhcHBhcmVudGx5CiAgICA+IHBlb3BsZSBhcmUgb25seSB1c2luZyB0aGUgdmVyYm9zZSB2ZXJzaW9uICh3aGljaCBpcyB2ZXJ5IHVuZGVyc3RhbmRhYmxlLAogICAgPiBJIGRvIG15c2VsZikuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwMWM2ODdhYTZlMDY1YmQ0ZmFmODBmNzIzMzYxZTc5ODk0MWRkNmIwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgRGVjIDI3IDEzOjQyOjU2IDIwMDcgLTA1MDAKCiAgICBEbyBub3QgcmVmZXJlbmNlIHNoYTEuYyB3aGVuIGJ1aWxkaW5nIG1raW1hZ2UuCgogICAgcmVtb3ZlIHNoYTEubyBmcm9tIG1raW1hZ2UgbGlua2luZyBzaW5jZSBpdCBpc24ndCBhY3R1YWxseSB1c2VkLgoKICAgIFNpZ25lZC1PZmYtQnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiOTE3M2FmNzNlNTI0ZDM3YzgxMmYyMTAxNzNjZjgzMzg1YzUxNzFhCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE1OjM5OjU0IDIwMDcgKzA5MDAKCiAgICBjb21tb24vY21kX21paS5jOiBBZGQgc2FuaXR5IGFyZ2MgY2hlY2sKCiAgICBJZiB0eXBlIG1paSBjb21tYW5kIHdpdGhvdXQgYXJndW1lbnRzLCB3ZSBzdWZmZXIgZnJvbSB1bmluaXRpYWxpemVkIGFyZ3ZbXQogICAgZW50cmllczsgZm9yIGV4YW1wbGUgd2UgTUlQUyBnZXQgc3R1Y2sgYnkgVExCIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA1MDA4NTZlYjE3MDdlZDE3ZDkyMDRiYWE2MWRkNTk5NDhkM2IyODk5CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE5OjM5OjM2IDIwMDggKzAxMDAKCiAgICBBUEkgZm9yIGV4dGVybmFsIGFwcGxpY2F0aW9ucy4KCiAgICBUaGlzIGlzIGFuIEFQSSBmb3IgZXh0ZXJuYWwgKHN0YW5kYWxvbmUpIGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIHRvcCBvZgogICAgVS1Cb290LCBhbmQgaXMgbWVhbnQgdG8gYmUgbW9yZSBleHRlbnNpYmxlIGFuZCByb2J1c3QgdGhhbiB0aGUgZXhpc3RpbmcKICAgIGp1bXB0YWJsZSBtZWNoYW5pc20uIEl0IGlzIHNpbWlsYXIgdG8gVU5JWCBzeXNjYWxsIGFwcHJvYWNoLiBTZWUgYXBpL1JFQURNRQogICAgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBJbmNsdWRlZCBpcyB0aGUgZGVtbyBhcHBsaWNhdGlvbiB1c2luZyB0aGlzIG5ldyBmcmFtZXdvcmsgKGFwaV9leGFtcGxlcykuCgogICAgUGxlYXNlIG5vdGUgdGhpcyBpcyBzdGlsbCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSwgYW5kIGlzIHR1cm5lZCBvZmYgYnkKICAgIGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZThkZDBiMjIyMGI3YzAyYjBkNGM5YzRmOTk2Nzg3OTk3MDQ3N2IxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDEyOjE0OjU1IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gY29uZmlncy5oCgogICAgSnVzdCB1c2UgdGhlIHN0YW5kYXJkIGRlZmluZXMgaW4gYXNtL2NhY2hlLmguCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNmE0MTc5MGY4ZWJhMTlhZDQ1MGUxOGFlOTEzNTFkYWY0ODViM2UyCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE4OjA1OjI3IDIwMDggKzAxMDAKCiAgICBHbG9iYWxpemUgZW52bWF0Y2goKQoKICAgIFRoZSBuZXdseSBpbnRyb2R1Y2VkIEFQSSAocm91dGluZXMgcmVsYXRlZCB0byBlbnYgdmFycykgd2lsbCBuZWVkIHRvIGNhbGwKICAgIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIFphYmR5ciA8YXJtb0BzZW1paGFsZi5jb20+Cgpjb21taXQgMWRmMTcwZjhiMmE5OWUxZTJmOTQwZjlmMGI1NjUxMWUxZTRjOWUxZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gNCAxMjowNzoyNyAyMDA4IC0wNjAwCgogICAgQ29udmVydCBNUEM4NjEwSFBDRCB0byB1c2UgbGliZmR0LgoKICAgIEFzc3VtZXMgdGhlIHByZXNlbmNlIG9mIHRoZSBhbGlhc2VzIG5vZGUgaW4gdGhlIERUUyB0bwogICAgbG9jYXRlIHRoZSBwY2kgYW5kIHNlcmlhbCBub2RlcyBmb3IgZml4dXBzLgoKICAgIFVzZSBjb25zaXN0ZW50IGZkdGFkZHIgYW5kIGZkdGZpbGUgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzk5NzRhYjBhNGQzNzMxY2RiNzZhNzU5OWQ5ZmU5NDQ1ZDc2NGQ2MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gNCAxMTo1ODoyMyAyMDA4IC0wNjAwCgogICAgODYxMDogRml4IGxpbmdlcmluZyBjb21waWxlIHdhcm5pbmdzLgoKICAgIFR1cm4gb2ZmIERFQlVHLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjAwN2YzMjUxYzA5NjdhZGMxM2YyZWQ4YmUxYjkyNGRkYzMwMTI0ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxNToxNDo0NiAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZjNjQxNGVjYTU1ZjFmYzEwOGZiMTJmYzhjZGM0M2JkOGI0NDYzZjkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBEZWMgMTggMDQ6Mjk6NTUgMjAwNyAtMDUwMAoKICAgIGZpeCBlYXN5bG9nbyBvbiBiaWcgZW5kaWFuIGRldiBzeXN0ZW1zCgogICAgZGlkbnQgcmVhbGl6ZSBob3cgb3V0IG9mIHNoYXBlIGVhc3lsb2dvIGFjdHVhbGx5IHdhcyB1bnRpbCBpIHRyaWVkIHVzaW5nIGl0LgogICAgdGhpcyBwYXRjaCBkb2VzIGJ5dGUgc3dhcHBpbmcgYXMgbmVlZCBiZSBvbiB0aGUgaW5wdXQgdGdhIGhlYWRlciBzaW5jZSB0aGUgdGdhCiAgICBpcyBpbiBsaXR0bGUgZW5kaWFuIGJ1dCB0aGUgaG9zdCBjb3VsZCBqdXN0IGFzIHdlbGwgYmUgYmlnIGVuZGlhbi4JaSBkaWRudAogICAgYm90aGVyIHVzaW5nIGJzd2FwIG1hY3JvcyBvciBzdWNoIHN0dWZmIGZyb20gc3lzdGVtIGhlYWRlcnMgYXMgbm90aGluZyBpbgogICAgUE9TSVggZGljdGF0ZXMgYnl0ZSBzd2FwcGluZyBmdW5jdGlvbmFsaXR5LgoKICAgIFNpZ25lZC1PZmYtQnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzOGQyOTljMmRiODFiZDg4OWM2MDFiNWRmYzEyYzRlODNlZjgzMzMzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDE4IDAzOjIzOjI1IDIwMDcgLTA1MDAKCiAgICBjbGVhbnVwIGVhc3lsb2dvCgogICAgLSBtYWtlIHRoZSBNYWtlZmlsZSBub3Qgc3VjawogICAgLSBpbmNsdWRlIHByb3BlciBoZWFkZXJzIGZvciBwcm90b3R5cGVzCiAgICAtIGZpeCBvYnZpb3VzIGJyb2tlbiBoYW5kbGluZyBvZiBzdHJjaHIoKSB3aGVuIGhhbmRsaW5nICcuJyBpbiBmaWxlbmFtZXMKCiAgICBTaWduZWQtT2ZmLUJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgODgzZTM5MjVkOTlhOGRkNjljNWIwMjAxY2JhNWIxODg3Zjg4Zjk1YwpBdXRob3I6IHJhcHRvcmJyaW5vQGFpbS5jb20gPHJhcHRvcmJyaW5vQGFpbS5jb20+CkRhdGU6CVRodSBEZWMgMTMgMjE6MjM6MjggMjAwNyAtMDUwMAoKICAgIEZpeCBidWlsZCBwcm9ibGVtcyB1bmRlciBDeWd3aW4KCiAgICBUaGlzIHBhdGNoIGFsbG93cyB1LWJvb3QgdG8gYnVpbGQgd2l0aG91dCBlcnJvciBpbiBhIGN5Z3dpbgogICAgZW52aXJvbm1lbnQuICBDeWd3aW4gZG9lcyBub3QgZGVmaW5lIF9fdTY0IGluIGl0J3MKICAgIGluY2x1ZGUvYXNtL3R5cGVzLmggZmlsZS4gIFRoZSAtaWRpcmFmdGVyIGZsYWcgaW4gdGhlIHUtYm9vdAogICAgYnVpbGQgY2F1c2VzIHRoZSBpbmNsdXNpb24gb2YgdGhlIGN5Z3dpbiB0eXBlcy5oIGZpbGUgYXMgb3Bwb3NlZAogICAgdG8gdS1ib3QvaW5jbHVkZS9hc20vdHlwZXMuaCBmaWxlIHdoaWNoIGRvZXMgZGVmaW5lIF9fdTY0LgogICAgU3Vic2VxdWVudGx5LCBzaGExLmMgY29tcGlsZSBmYWlscyBkdWUgdG8gdW5rbm93biBzeW1ib2wuCgogICAgU2lnbmVkLW9mZi1ieTogQnJpYW4gTWlsbGVyIDxyYXB0b3Jicmlub0BuZXRzY2FwZS5uZXQ+Cgpjb21taXQgNDNlZjFjMzgxZjkxOTU1MDRhMjQ4OGY1Y2I5MDkyMjdlYjk3ZDQ3NQpBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CUZyaSBOb3YgMzAgMTc6Mjk6NTkgMjAwNyArMDEwMAoKICAgIGNtZF9ibXA6IEFkZCBzdXBwb3J0IGZvciBkaXNwbGF5aW5nIGd6aXAgY29tcHJlc3NlZCBibXBzCgogICAgVGhlIGV4aXN0aW5nIGNvZGUgY2FuIHNob3cgaW5mb3JtYXRpb24gYWJvdXQgYSBnemlwIGNvbXByZXNzZWQgQk1QCiAgICBpbWFnZSwgYnV0IGNhbid0IGFjdHVhbGx5IGRpc3BsYXkgaXQuCgogICAgVGhlcmVmb3JlLCBtb3ZlIHRoZSBkZWNvbXByZXNzaW9uIGNvZGUgb3V0IG9mIGJtcF9pbmZvKCkgYW5kIHVzZSBpdCBpbgogICAgYm1wX2Rpc3BsYXkoKSBhcyB3ZWxsIGluIG9yZGVyIHRvIGRpc3BsYXkgYSBjb21wcmVzc2VkIEJNUCBpbWFnZS4KCiAgICBBbHNvLCBjbGVhbiB0aGluZ3MgdXAgYSBiaXQgYW5kIGZpeCBhIG1lbW9yeSBsZWFrIHdoaWxlIHdlJ3JlIGF0IGl0LgoKICAgIFtoc2tpbm5lbW9lbkBhdG1lbC5jb206IGEgYml0IG9mIHJlZmFjdG9yaW5nXQogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDE5N2ZmZDgxNzJjNmZkZWYzODczMzQyNDY0MGE5YTQ3Mjk1ZDZlOQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyOSAyMToxNTo1NiAyMDA3ICswMTAwCgogICAgRml4IGFuZCBvcHRpbWl6ZSBNSUkgb3BlcmF0aW9ucyBvbiBGRUMgKE1QQzh4eCkgY29udHJvbGxlcnMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHNldmVyYWwgaXNzdWVzIGF0IGxlYXN0IG9uIGEgTVBDODg1IGJhc2VkIHN5c3RlbSB3aXRoIHR3bwogICAgRkVDIGludGVyZmFjZXMgdXNlZCBpbiBNSUkgbW9kZS4KCiAgICAxLiBQSFkgZGlzY292ZXJ5IHNob3VsZCBmaXJzdCByZWFkIFBIWV9QSFlJRFIyIHJlZ2lzdGVyIGFuZCBvbmx5IHRoZW4KICAgICAgIFBIWV9QSFlJRFIxIGxpa2UgY3B1L21wYzh4eC9mZWMuYzo6bWlpX2Rpc2NvdmVyX3BoeSgpIGRvZXMgaXQsCiAgICAgICBvdGhlcndpc2UgdGhlIHZhbHVlcyByZWFkIGFyZSB3cm9uZy4gQWxzbyBub3RpY2UsIHRoYXQgUEhZIGRpc2NvdmVyeQogICAgICAgY2Fubm90IHdvcmsgb24gTVBDODh4IC8gTVBDODd4IGluIHNldHVwcyB3aXRoIGJvdGggRkVDcyBhY3RpdmUgYXQgYWxsCiAgICAgICBpbiBpdHMgcHJlc2VudCBmb3JtLCBiZWNhdXNlIGZvciBib3RoIGludGVyZmFjZXMgdGhlIHJlZ2lzdGVycyBmcm9tIEZFQwogICAgICAgMSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBvdmVyIE1JSS4KCiAgICAyLiBSZW1vdmUgY29kZSBkdXBsaWNhdGlvbiBmb3IgcmVzZXR0aW5nIHRoZSBGRUMgYnkgaXNvbGF0aW5nIGl0IGludG8gYQogICAgICAgc2VwYXJhdGUgZnVuY3Rpb24uCgogICAgMy4gSW5pdGlhbGl6ZSBNSUkgb24gRkVDIDEgd2hlbiBjb21tdW5pY2F0aW5nIG92ZXIgRkVDIDIgaW4gZmVjX2luaXQoKS4KCiAgICA0LiBPcHRpbWl6ZSBtaWlfaW5pdCgpIHRvIG9ubHkgcmVzZXQgdGhlIEZFQyAxIGNvbnRyb2xsZXIgb25jZS4KCiAgICA1LiBGaXggYSB0eXBvIGluIG1paV9pbml0KCkgdXNpbmcgaW5kZXggaSBpbnN0ZWFkIG9mIGogdGh1cyBwb3RlbnRpYWxseQogICAgICAgbGVhZGluZyB0byB1bnByZWRpY3RhYmxlIHJlc3VsdHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDZhNWUxZDc1YmYxMDZmYTE1N2U5Y2U2OGJjYWY0YjEzZThhMWQyMTQKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjAgMTM6MTQ6MjAgMjAwNyArMDEwMAoKICAgIEZpeCBlbmRpYW5uZXNzIGNvbnZlcnNpb25zIGluIHJ0bDgxNjkgZHJpdmVyCgogICAgSXQgaXMgdW5jbGVhciBvbiB3aGF0IHBsYXRmb3JtcyB0aGlzIGRyaXZlciBoYXMgYmVlbiB0ZXN0ZWQsIHNpbmNlCiAgICBub29uZSB1cCB0byBub3cgZGVmaW5lcyBDT05GSUdfUlRMODE2OSBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbgogICAgaGVhZGVyLiBOb3cgaXQgaGFzIGJlZW4gZml4ZWQgZm9yIGEgYmlnLWVuZGlhbiBtcGM4MjQxIGJhc2VkCiAgICBsaW5rc3RhdGlvbiBwbGF0Zm9ybS4gVGhpcyBwYXRjaCBwcmVzZW50cyB0aGUgbmVjZXNzYXJ5IGVuZGlhbm5lc3MKICAgIGNvbnZlcnNpb24gZml4ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDU4Njk0Zjk3MDljMGMzZTMxNzhlMzQ5YWU3NDhkOThjZmIwYzYzOWEKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDMgMTA6NTE6MTUgMjAwOCArMDgwMAoKICAgIEFkZCBDdHJsIGNvbWJvIGtleSBzdXBwb3J0IHRvIHVzYiBrZXlib2FyZCBkcml2ZXIuCgogICAgQ3RybCBjb21ibyBrZXkgc3VwcG9ydCBpcyBhZGRlZCwgd2hpY2ggaXMgdmVyeSB1c2VmdWwgdG8gaW5wdXQgQ3RybC1DCiAgICBmb3IgaW50ZXJydXB0IGN1cnJlbnQgam9iLgogICAgQWxzbyBhZGQgdXNiX2V2ZW50X3BvbGwoKSBjYWxsaW5nIHRvIHVzYl9rYmRfdGVzdGMoKSwgd2hpY2ggY2FuIGdldAogICAga2V5IGlucHV0IHdoZW4gdHN0YygpIGlzIGNhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAwN2ViMDI2ODdmMDA4NzIxOTc0YTJmYjU0Y2Q3ZmRjMjgwMzNhYjNjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEzOjQzOjM4IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlbmF1cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzI2YWNjMWE0M2IzMWRkY2E1YWRkNDJmZDAzNjBmZjBlZWU5MGM4MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEzOjExIDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgYml0IHN3YXBwaW5nIGluIFhpbGlueCBTcGFydGFuIGJpdGZpbGUgbG9hZGluZwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgdW5uZWNlc3NhcnkgYml0IHN3YXBwaW5nIHdoZW4KICAgIGJvb3RpbmcgLmJpdCBmaWxlcyB3aXRoIHRoZSAnZnBnYSBsb2FkYicgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA0MzdmYzczMjdmMDYxMWY4MjkzNzg1OGYyZDgwZTRjZDYxYjQwOTg0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTM6MDUgMjAwNyArMDEwMAoKICAgIEZpeCBNU0IgY2hlY2sgaW4gWGlsaW54IFNwYXJ0YW4gc2xhdmUgc2VyaWFsIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAzYmZmNGZmYTMzNzI5YTQyNjQ1ZTMyOGEyMWU4ZDE2NDg4ODcyOTU4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTI6NTYgMjAwNyArMDEwMAoKICAgIEFkZCBuZXcgWGlsaW54IFNwYXJ0YW4gRlBHQSB0eXBlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDIxZDM5ZDU5OGM0ZTc0ZDRlNzc2MTYwOGM3OWRiYTI3MTVkNDBhNGMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMjo0MyAyMDA3ICswMTAwCgogICAgQWRkIHByZSBhbmQgcG9zdCBjb25maWd1cmF0aW9uIGNhbGxiYWNrcyBmb3IgU3BhcnRhbiBGUEdBcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHBvc3QgY29uZmlndXJhdGlvbiBjYWxsYmFjayBmb3IgU3BhcnRhbjIvMyBGUEdBcy4KICAgIHByZSBhbmQgcG9zdCBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGFyZSBub3cgb3B0aW9uYWwgYW5kCiAgICBub3QgY2FsbGVkIHdoZW4gdGhlIGZ1bmN0aW9uIHBvaW50ZXIgaXMgc2V0IHRvIE5VTEwuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMDEzMzUwMmUzOWZmODliNjdjMjZjYjQwMTVlMGU3ZThkOTU3MTE4NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEyOjM0IDIwMDcgKzAxMDAKCiAgICBJbXByb3ZlIGNvbmZpZ3VyYXRpb24gb2YgRlBHQSBzdWJzeXN0ZW0KCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIEZQR0Egc3Vic3lzdGVtIGNvbmZpZ3VyYXRpb24gdGhyb3VnaAogICAgdGhlIENPTkZJR19GUEdBIGJpdG1hc2sgY29uZmlndXJhdGlvbiBvcHRpb24uCgogICAgU2VlIFJFQURNRSBmb3IgdGhlIG5ldyBvcHRpb25zOgoKCUNPTkZJR19GUEdBLAoJQ09ORklHX0ZQR0FfPHZlbmRvcj4sCglDT05GSUdfRlBHQV88ZmFtaWx5PgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDk1YzZiYzdkNGEzNTg4YjQ1MmJhY2E2MTBmOGM3OTVhODM2MzA0NzcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNjo1NToxNyAyMDA3ICswMTAwCgogICAgQWRkIEVwc29uIFJYODAyNSBSVEMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDEyMDhhMmRmZGUwMmJlZGQzYzViZGEyOWE2MDY2MzJiOGUwYmUwNTgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNjo1NzoyMyAyMDA3ICswMTAwCgogICAgc2VyaWFsOiBNYWtlIGRlZmF1bHRfc2VyaWFsX2NvbnNvbGUoKSBhIHdlYWsgZnVuY3Rpb24KCiAgICBXaXRoIHRoaXMgcGF0Y2ggaXQgaXMgcG9zc2libGUgdG8gcmVpbXBsZW1lbnQgZGVmYXVsdF9zZXJpYWxfY29uc29sZSgpCiAgICBpbiBib2FyZCBzcGVjaWZpYyBjb2RlLiBUaGlzIHdpbGwgYmUgZG9uZSBpbiB0aGUgdXBjb21taW5nIFBNQzQ0MAogICAgVS1Cb290IHBvcnQuIFRoaXMgYWxzbyBhbGxvd3MgdGhlIGx3bW9uIGJvYXJkIG1haW50YWluZXIgdG8KICAgIHJlbW92ZSB0aGUgJyNpZiAhZGVmaW5lZChDT05GSUdfTFdNT04pIC4uLicgZnJvbSBjb21tb24vc2VyaWFsLmMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDE2NDcxZWUwNWNlN2FjNTM5MmJjMGU5ZmUzZmY0YjU4YTc2OGYzMwpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MTQ6NDcgMjAwNyArMDEwMAoKICAgIGFkZCAndGVybWluYWwgcHJvZ3JhbScgZnVuY3Rpb25hbGl0eQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhICdjdScgbGlrZSBzZXJpYWwgdGVybWluYWwgY29tbWFuZCB0byB1LWJvb3QKICAgIHVzaW5nIHdoaWNoIHlvdSBjYW4gYWNjZXNzIG90aGVyIHNlcmlhbCBwb3J0cyBmcm9tIHRoZSBzeXN0ZW0gY29uc29sZS4KCiAgICBPcGVuTW9rbyB1c2VzIHRoaXMgaW4gdGhlaXIgTmVvMTk3MyBwaG9uZXMgdG8gZ2V0IGFjY2VzcyB0byB0aGUgR1NNCiAgICBNb2RlbSBhbmQgR1BTIGNoaXAgZnJvbSB0aGUgYm9vdGxvYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IDYyZDRmNDM2NTM0MTU3NmY1YTUzMDdiMmIyMDVhNWFhMmUzYzZiZTYKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjEyOjUzIDIwMDcgKzAxMDAKCiAgICBSZS1pbnRyb2R1Y2UgdGhlICduYW5kIHJlYWQub29iJyBhbmQgJ25hbmQgd3JpdGUub29iJyBjb21tYW5kcwogICAgdGhhdCB1c2VkIHRvIGV4aXN0IHdpdGggdGhlIGxlZ2FjeSBOQU5EIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGY1NDBjNDJkOTU2NDg1NGIxOWNlOWJiYjcwYWZmZTE3MjUyOWZlNzAKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjA5OjU4IDIwMDcgKzAxMDAKCiAgICBGaXggYnVpbGRpbmcgd2l0aCBDUkFNRlMgYnV0IG5vdCBKRkZTMiBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCAyM2QwYmFmOTY3ZmVjZGFmMTgwNGYwNDVmNjMzOTMzN2M1NjA3ZWVjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNTo1Mjo1OCAyMDA3ICswMTAwCgogICAgQWxsb3cgQ09ORklHX0FVVE9fQ09NUExFVEUgYW5kIGNvbW1hbmQgaGlzdG9yeSBDT05GSUdfQ01ETElORV9FRElUSU5HIGF0IHRoZSBzYW1ldGltZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjM3NzZmZjI5Mjk2NmE4NWQ4MTExMjY5MzM4MzBiZWQ0ODIxMTgyNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBEZWMgMTEgMTA6NTM6MTIgMjAwNyArMDEwMAoKICAgIEFSTTogc3VwcG9ydCBib2FyZC1zcGVjaWZpYyBldGhlcm5ldCBQSFkgaW5pdAoKICAgIEFkZCB1bnRpbCB0aGUgbmV3IHBoeWxpYiB3aWxsIGJlIGFycml2ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdiNzRlYmU3MjNlNTc2YmFlZGY1YThiNjI0MDU4OWIxOWI4NDVhMWIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRGVjIDggMTY6MzQ6MDggMjAwNyArMDEwMAoKICAgIElYUDogQWRkIGZ1bGwgYmF1ZC1yYXRlIHN1cHBvcnQgZm9yIGl4cDQyeCwgaXhwNDV4IGFuZCBpeHA0NngKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGEyZGY0ZGEzMWIxYTFlNDFlM2U5ZTEzNThjZmM1MmI4MDYwNDZjZTEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRGVjIDkgMTE6MDE6MTAgMjAwNyArMDEwMAoKICAgIEFkZCBtaXNzaW5nIGZpbGUgaW4gZ2l0aWdub3JlIGFuZCBjb21tZW50cwoKICAgIGJhc2VkIG9uIExpbnV4IHNvdXJjZSB0cmVlJ3MgLmdpdGlnbm9yZSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDM1ZGM4ZmNkYjNiYzYxZDNkNDkwNzczYThmMzY5Zjk4YTIwYzg2OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMTozNjoyMSAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGIyZTIxNDJjNTAwYzQ4YTU3ZjE4ZjlkZDMwZTY2YzEzY2FlYTA5NzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMDozODo1OCAyMDA4ICswMTAwCgogICAgUE9TVDogRXhlY3V0ZSBTUFIgdGVzdCBhZnRlciByZWxvY2F0aW9uCgogICAgT24gTFdNT041IHdlIG5vdyB1c2UgZC1jYWNoZSBhcyBpbml0LXJhbSBhbmQgc3RhY2suIFRoZSBTUFIgUE9TVCB0ZXN0IHVzZXMKICAgIHNlbGYgbW9kaWZ5aW5nIGNvZGUgYW5kIHRoaXMgZG9lc24ndCB3b3JrIHdpdGggc3RhY2sgaW4gZC1jYWNoZSwgc2luY2UKICAgIEkgY2FuJ3QgbW92ZSB0aGUgY29kZSBmcm9tIGQtY2FjaGUgdG8gaS1jYWNoZS4gV2UgbW92ZSB0aGUgU1BSIHRlc3QgdG8KICAgIGJlIGV4ZWN1dGVkIGEgbGl0dGxlIGxhdGVyLCBhZnRlciByZWxvY2F0aW9uLiBUaGVuIHN0YWNrIGlzIGxvY2F0ZWQgaW4KICAgIFNEUkFNIGFuZCB0aGlzIHNlbGYtbW9kaWZ5aW5nIGNvZGUgaXMgbm8gcHJvYmxlbSBhbnltb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZjI0ZTA2MzdhZTExMzUwMGQ4YmQ2MGQ4MGQ1N2FmY2MwYWE4YmRlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6Mjg6MjAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQ2hhbmdlIExXTU9ONSB0byBub3QgdXNlIE9DTSBmb3IgaW5pdC1yYW0gYW5kIFBPU1QgYW55bW9yZQoKICAgIFRoaXMgcGF0Y2ggY29uZmlndXJlcyB0aGUgTFdNT041IHBvcnQgdG8gdXNlIGQtY2FjaGUgYXMgaW5pdC1yYW0gYW5kCiAgICB0aGUgdW51c2VkIEdQVDBfQ09NUDYgYXMgUE9TVCBXT1JEIHN0b3JhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3NTRmNTBiNzEwMTk0Zjg4NmI2ZjI4MzE4MDNkODk2MDE3MWExNGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMDoyNTo0NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ0ZHX1BPU1RfQUxUX1dPUkRfQUREUiB0byBzdXBwb3J0IG5vbiBPQ00gUE9TVCBXT1JEIHN0b3JhZ2UKCiAgICBUaGUgcHJpdmlvdXMgNHh4IFBPU1QgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0ZWQgc3RvcmluZyB0aGUgUE9TVAogICAgV09SRCBpbiBPQ00uIFNpbmNlIHdlIG5lZWQgdG8gcmVzZXJ2ZSB0aGUgT0NNIG9uIExXTU9ONSBmb3IgdGhlIGxvZ2J1ZmZlcgogICAgd2UgbmVlZCB0byBzdG9yZSB0aGUgUE9TVCBXT1JEIGluIHNvbWUgb3RoZXIgbm9uIHZvbGF0aWxlIGxvY2F0aW9uLgogICAgVGhpcyBwYXRjaCBhZGRzIENGR19QT1NUX0FMVF9XT1JEX0FERFIgdG8gc3BlY2lmeSBhbiBhZGRyZXNzIGZvciBzdWNoCiAgICBhIGxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMDJjNTIxZDk0YjQ1ZDdiMDVhYTUyMmU0Y2NkZTZiNzRiZjVmZTU3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6MjM6MTYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIDQ0eCBjYWNoZSBsb2NraW5nIHRvIGJldHRlciBzdXBwb3J0IGluaXQtcmFtIGluIGQtY2FjaGUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbG9ja2luZyB0aGUgaW5pdC1yYW0vc3RhY2sgaW4gZC1jYWNoZSwKICAgIHNvIHRoYXQgb3RoZXIgcmVnaW9ucyBtYXkgdXNlIGQtY2FjaGUgYXMgd2VsbAoKICAgIE5vdGUsIHRoYXQgdGhpcyBjdXJyZW50IGltcGxlbWVudGF0aW9uIGxvY2tzIGV4YWN0bHkgNGsgb2YgZC1jYWNoZSwKICAgIHNvIHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3UgZG9uJ3QgZGVmaW5lIGEgYmlnZ2VyIGluaXQtcmFtIGFyZWEuIFRha2UKICAgIGEgbG9vayBhdCB0aGUgbHdtb241IDQ0MEVQeCBpbXBsZW1lbnRhdGlvbiBhcyBhIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRkYjg5NjAxYThkMjllODA4ZGI0NTAzNjY3NTJmZmRjNjI2N2M1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMDoxNjozMyAyMDA4ICswMTAwCgogICAgRml4IG1lbXNldCBidWcgaW4gZXh0MmZzX3JlYWRfZmlsZSgpCgogICAgZXh0MmZzX3JlYWRfZmlsZSgpIGhhZCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzIHN3YXBwZWQuCgogICAgUG9pbnRlZCBvdXQgYnkgTWlrZSBNb250b3VyLCAxOSBEZWMgMjAwNyAyMjozNDoyNSAtMDgwMAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzJkNmYxYmMwOTE3NWYzYjc3NDY5NzcxZTgzOWJjNzI1NWE5ZjIyZQpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gNSAwODoxNzoxNSAxOTg4ICswMTAwCgogICAgRml4IHByb2JsZW1zIHdpdGggdXNiIHN0b3JhZ2UgZGV2aWNlcyBvbiBNUEM1MjAwIC9UUU01MjAwCgogICAgVGhlIE1QQzUyMDAgT0hDSSBjb250cm9sbGVyIG9wZXJhdGVzIGluIGJpZyBlbmRpYW4sIHNvCiAgICBDRkdfT0hDSV9CRV9DT05UUk9MTEVSIG11c3QgYmUgZGVmaW5lZCBmb3IgaXQgdG8gd29yayBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDQ2ZjZlNTAxOTA0OGIxMDNkNzY5M2Q1MzEwZGUwZjFjZmJhZjRjMTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDggMjI6NTg6MjcgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gd2l0aCBuZXcgZW52IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NGIzNzI3Yjk3NzlkODYxMjdjZDU3NmUzOTJhOTg3ZGU1ZWJiOWZkCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyNyAxMDoyMzoyMCAyMDA3ICswMTAwCgogICAgdG9vbHM6IGZpeCBmd19wcmludGVudiB0b29sIHRvIGNvbXBpbGUgYWdhaW4KCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGZ3X3ByaW50ZW52L2Z3X3NldGVudiB1c2Vyc3BhY2UgdG9vbCB0byBpbmNsdWRlCiAgICB0aGUgY29ycmVjdCBNVEQgaGVhZGVyIGluIG9yZGVyIHRvIGNvbXBpbGUgYWdhaW5zdCBjdXJyZW50IGtlcm5lbAogICAgaGVhZGVycy4gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBwcmVzZXJ2ZWQgYnkgaW50cm9kdWNpbmcgYW4gb3B0aW9uCiAgICBNVERfVkVSU0lPTiB3aGljaCBjYW4gYmUgc2V0IHRvICJvbGQiIGZvciBjb21waWxhdGlvbiB1c2luZyB0aGUgb2xkIE1URAogICAgaGVhZGVycy4gQWxvbmcgd2l0aCB0aGlzIGEgbnVtYmVyIG9mIHdhcm5pbmdzIGFyZSBmaXhlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDFmODQwMjFhODVhYmViODM3ZDJjZTBkYzg0Mjk3YjRmMWQ0NWQ1MTYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE1OjQwOjA5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IGFzc2lnbiBQQ0kgaW50ZXJydXB0cyBvbiBzZXVxb2lhIGJvYXJkcwoKICAgIFNvbWUgb3BlcmF0aW5nIHN5c3RlbXMgcmVseSBvbiBhc3NpZ25lZCBQQ0kgaW50ZXJydXB0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA2ZTkyMzNkMzBhZmU1N2NiNmUxNDhmYmZhNDg5NWU3ODEwMTk2ZmFjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNTo1MDo0OSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBNb3ZlIGNwdS9wcGM0eHgvdmVjbnVtLmggaW50byBpbmNsdWRlIHBhdGgKCiAgICBUaGlzIHBhdGNoIGFsbG93cyB0aGUgdXNlIG9mIDR4eCBpbnRlcnJ1cHQgdmVjdG9yIG51bWJlciBkZWZpbmVzCiAgICBpbiBib2FyZCBzcGVjaWZpYyBjb2RlIG91dHNpZGUgY3B1L3BwYzR4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA1ODBkMWQzMTg2YTJiYzZkYmRiNjI2OTQxYjcxNmRhZTE3ODhlNTFlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNTozOTowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggVUlDMiB2ZWN0b3IgbnVtYmVyIGJhc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmZjVmYjhhNmNjYmE1NmUzNDgyZDBlMjk3ZDhjZmI3ZmFhMDQwODExCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxMjo0OTo1OCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgUExCL1BDSSBkaXZpZGVyIGZvciBQTUM0NDAgYm9hcmQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIFBMQi9QQ0kgZGl2aWRlciB3aGVuIHJ1bm5pbmcgYXQKICAgIDQwME1IeiBDUFUgZnJlcXVlbmN5IGZyb20gNCB0byAzIHdoaWNoIHJlc3VsdHMgaW4gNDRNSHogUENJIHN5bmMgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgN2Q1ZDc1NjMzMTc0ODY3MzE2YTBjMGYyZmNhNWNlYjJjZjMxMmNkZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTE6MTM6MDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRGlzYWJsZSBlcnJvciBtZXNzYWdlIHdoZW4gbm8gTkFORCBjaGlwIGlzIGluc3RhbGxlZCBvbiBQTUM0NDAKCiAgICBBZGQgQ0ZHX05BTkRfUVVJRVRfVEVTVCBvcHRpb24gdG8gZGlzYWJsZSBlcnJvciBtZXNzYWdlIHdoZW4KICAgIG5vIE5BTkQgY2hpcCBpcyBpbnN0YWxsZWQgb24gUE1DNDQwIGJvYXJkcy4KCiAgICBEaXNhYmxlIGEgY291cGxlIG9mIGNvbmZpZyBkZWZpbmVzIHRoYXQgYXJlIG9ubHkgdXNlZCBmb3IgTkFORF9VX0JPT1QuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzgzZDdjYTRkYWRkNDRhZTQzMDIzNTA3N2Y2M2I2NGExMWYzNmY2ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOCAyMjo1ODoyNyAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSB3aXRoIG5ldyBlbnYgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZkZTY2YjM1NDI2MzEyYTIxMTc0YTliZjA1NzZhMDk0ZTI5MDRiZWEKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDI3IDEwOjIzOjIwIDIwMDcgKzAxMDAKCiAgICB0b29sczogZml4IGZ3X3ByaW50ZW52IHRvb2wgdG8gY29tcGlsZSBhZ2FpbgoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZndfcHJpbnRlbnYvZndfc2V0ZW52IHVzZXJzcGFjZSB0b29sIHRvIGluY2x1ZGUKICAgIHRoZSBjb3JyZWN0IE1URCBoZWFkZXIgaW4gb3JkZXIgdG8gY29tcGlsZSBhZ2FpbnN0IGN1cnJlbnQga2VybmVsCiAgICBoZWFkZXJzLiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzIHByZXNlcnZlZCBieSBpbnRyb2R1Y2luZyBhbiBvcHRpb24KICAgIE1URF9WRVJTSU9OIHdoaWNoIGNhbiBiZSBzZXQgdG8gIm9sZCIgZm9yIGNvbXBpbGF0aW9uIHVzaW5nIHRoZSBvbGQgTVRECiAgICBoZWFkZXJzLiBBbG9uZyB3aXRoIHRoaXMgYSBudW1iZXIgb2Ygd2FybmluZ3MgYXJlIGZpeGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYWQzMDA2ZmU3ZTg0NjY3MDIxNzUzYjc0MjQ3YjBiYWZkOTdiYTM1ZgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKYW4gNyAyMzo0NzozMiAyMDA4IC0wNTAwCgogICAgTElCRkRUOiB1c2UgbWVtbW92ZSgpIGluc3RlYWQgb2YgbWVtY3B5KCkKCiAgICBUaGlzIGlzIHBhcnRpYWwgcGF0Y2ggZnJvbSB0aGUgRFRDL2xpYmZkdAogICAgY29tbWl0ICA2N2I2YjMzYjliNDEzYTQ1MGE3MjEzNWI1ZGM1OWMwYTFlMzNlNjQ3CiAgICBBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgRGF0ZTogICBXZWQgTm92IDIxIDExOjU2OjE0IDIwMDcgKzExMDAKCglUaGUgcGF0Y2ggYWxzbyBmaXhlcyBvbmUgZ2VudWluZSBidWcgY2F1Z2h0IGJ5IHZhbGdyaW5kIC0KCV9wYWNrYmxvY2tzKCkgaW4gZmR0X3J3LmMgd2FzIHVzaW5nIG1lbWNweSgpIHdoZXJlIGl0IHNob3VsZCBoYXZlIGJlZW4KCXVzaW5nIG1lbW1vdmUoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGFlYzcxMzViYzMwMGUzMzQwZDE4ZjIwMzM0N2VlMDBjNWI1ZjY4YzAKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIERlYyAxNyAxNDo0MjowNyAyMDA3ICsxMTAwCgogICAgbGliZmR0OiBBZGQgbW9yZSBkb2N1bWVudGF0aW9uIChwYXRjaCB0aGUgc2V2ZW50aCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgbW9yZSBkb2N1bWVudGluZyBjb21tZW50cyB0byBsaWJmZHQuaC4gIFNwZWNpZmljYWxseSwKICAgIHRoZXNlIGRvY3VtZW50IHRoZSByZWFkL3dyaXRlIGZ1bmN0aW9ucyAobm90IGluY2x1ZGluZyBmZHRfb3Blbl9pbnRvKCkKICAgIGFuZCBmZHRfcGFjaygpLCBmb3Igbm93KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCA5ZDQ0NTBiNWFkYzM2NjIzZTljMWRlMWY5MjUzOWRiNzdhZDBjNTdlCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBEZWMgMTcgMTQ6NDE6NTIgMjAwNyArMTEwMAoKICAgIGxpYmZkdDogQWRkIG1vcmUgZG9jdW1lbnRhdGlvbiAocGF0Y2ggdGhlIHNpeHRoKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzb21lIG1vcmUgZG9jdW1lbnRpbmcgY29tbWVudHMgdG8gbGliZmR0LmguCiAgICBTcGVjaWZpY2FsbHkgdGhpcyBkb2N1bWVudHMgYWxsIHRoZSB3cml0ZS1pbi1wbGFjZSBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgYjYwYWYzZDRjMTY4MDQ4N2VlMzdlMTFhYTFiM2RiNmRlYzA0ZDhmMApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBEZWMgMjkgMjI6NDU6MjcgMjAwNyAtMDUwMAoKICAgIEZpbmUgZ3JhaW5lZCBwZXIgcHJvcGVydHkgL2Nob3NlbiB1cGRhdGluZy4KCiAgICBJbXBsZW1lbnQgYSBzdWdnZXN0aW9uIGJ5IFNjb3R0IFdvb2QgdG8gbWFrZSB0aGUgL2Nob3NlbiBoYW5kbGluZyBmaW5lCiAgICBncmFpbmVkLiAgRG9uJ3Qgb3ZlcndyaXRlIHByZS1leGlzdGluZyBwcm9wZXJ0aWVzIG9uIGEgcGVyLXByb3BlcnR5IGJhc2lzLAogICAgc28gaWYgL2Nob3NlbiBleGlzdHMgYnV0IGEgbmVjZXNzYXJ5IC9jaG9zZW4vcHJvcGVydHkgZG9lc24ndCwgaXQgZ2V0cwogICAgY3JlYXRlZC4gIElmIGEgL2Nob3NlbiBwcm9wZXJ0eSBleGlzdHMsIGl0IGlzIE5PVCBvdmVyd3JpdHRlbiB1bmxlc3MgdGhlCiAgICAiZm9yY2UiIGZsYWcgaXMgdHJ1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDIzOGNiN2E0MjNjNmVhYTM2NDk2ZWZiNzg4Y2ZiOTc5OGNlYTdmOTUKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgSmFuIDUgMTU6MzM6MjkgMjAwOCAtMDUwMAoKICAgIEltcHJvdmUgdGhlIEZEVCBoZWxwIG1lc3NhZ2UuCgogICAgQWRkIGEgbm90ZSB0aGF0ICJmZHQgY29weSIgbWFrZXMgdGhlIG5ldyBhZGRyZXNzIGFjdGl2ZS4KICAgIFJlbW92ZSBtb3N0IG9mIHRoZSBleHRyYSBoaW50cyBhdCB0aGUgZW5kIG9mIHRoZSBmZHQgaGVscC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGVhNmQ4YmUxNTNjZWFmMTY5NThmODAwOWNlYTZkNzVmM2ZmNThkOTIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgSmFuIDUgMTQ6NTI6MDQgMjAwOCAtMDUwMAoKICAgIFN1cHBvcnQgc2V0dGluZyBGRFQgcHJvcGVydGllcyB3aXRoIG9wdGlvbmFsIHZhbHVlcy4KCiAgICBGaXggYSBidWcgZm91bmQgYW5kIGRvY3VtZW50ZWQgYnkgQmFydGxvbWllaiBTaWVrYSB3aGVyZSB0aGUgb3B0aW9uYWwKICAgIHZhbHVlIG9uICJmZHQgc2V0IDxwYXRoPiA8cHJvcD4gWzx2YWw+XSIgd2Fzbid0IG9wdGlvbmFsLgoKICAgID0+IGZkdCBta25vZGUgLyB0ZXN0bm9kZQogICAgPT4gZmR0IHByaW50IC90ZXN0bm9kZQogICAgdGVzdG5vZGUgewogICAgfTsKICAgID0+IGZkdCBzZXQgL3Rlc3Rub2RlIHRlc3Rwcm9wCiAgICA9PiBmZHQgcHJpbnQgL3Rlc3Rub2RlCiAgICB0ZXN0bm9kZSB7CgkgICAgdGVzdHByb3A7CiAgICB9OwoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMjJmYjIyNDZkZjkxYmZjODQwZDg3ZjBjNTkxMDgxOGJhZDU1NTc3YQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDExOjU2OjMwIDIwMDcgKzAxMDAKCiAgICBBZGQgZmR0X2ZpbmRfYW5kX3NldHByb3AoKSB0byBmZHRfc3VwcG9ydC5oCgogICAgZmR0X2ZpbmRfYW5kX3NldHByb3AoKSBpcyB1c2VkIGJ5IHNldmVyYWwgNHh4IGJvYXJkcyBhbmQgaXQncwogICAgbWlzc2luZyBpbiB0aGUgYXBwcm9wcmlhdGUgaGVhZGVyLiBUaGlzIHBhdGNoIGVsaW1pbmF0ZXMgYQogICAgd2FybmluZyB3aGVuIGJ1aWxkaW5nIFUtQm9vdCBmb3Igc3VjaCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgwMmI3NjliYWMxN2IwNTYwZDM1MzVhNDJjNTAyNDY5ZWUxOTBjZDEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOCAxODozOTozMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZXR1cm4gMCBvbiBzdWNjZXNzIGluIDR4eCBldGhlcm5ldCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjc3NWM2ODY4M2E1M2M3YWJjNzc4Nzc0NjQxYWFjNmY4MzNhMmNiZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gOCAwOTo1OTo0OSAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogZml4IG1pc3NlZCBwY2lfaG9zZSAtPiBob3NlIGNvbnZlcnNpb24gZm9yIG5ldyBsaWJmZHQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTRmYWIyNWY1ZjFhN2QxYzBjYzYzYzE3ZTgxM2VhODk0M2ZlNDljNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTY6Mjg6MzQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHJtIHJlbWFpbmluZyBGTEFUX1RSRUUgY29kZQoKICAgIC4uaW4gYm9hcmQgcGNpLmMgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzNDU4ZDJjZDU1ZDAxNzMyZTMwYTc2ZDg5OGFmZDk5ZTg3MWNkNjcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDIwIDE1OjU3OjI4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiByZW1vdmUgRkxBVF9UUkVFIGNvZGUKCiAgICBuZWVkIHRvIHJtIGl0IGZyb20gcGNpIGNvZGUsIHRvbyEKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDViOGJjNjA2YzYxNDU2NTY2YWY2OTEyZjgxOGExNTNiNmIwNmYyNDIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDIwIDE0OjA5OjIyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBjb252ZXJ0IHRvIHVzaW5nIGRvX2ZpeHVwXyooKQoKICAgIGNvbnZlcnQgdG8gdXNpbmcgc2ltcGxlciBtcGM4NXh4IHN0eWxlIGZkdCB1cGRhdGUgY29kZTsgc3RyZWFtbGluZSBieQogICAgZWxpbWluYXRpbmcgbWFjcm9zIE9GX1NPQywgT0ZfQ1BVLCBldGMuIHdoaWNoIGFsbG93cyB1cyB0byBybQogICAgdGhlIG9sZCBzY2hvb2wgRkxBVF9UUkVFIGNvZGUgZnJvbSA4M3h4IChzaW5jZSB0aGUgc2JjODM0OSB3YXMganVzdAogICAgY29udmVydGVkIG92ZXIgdG8gdXNpbmcgbGliZmR0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU0OTY4NjVlY2MzMWEyZmUyZjlhYmZlNzk4MzM0YmIwMmFhZjA1YWIKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxMjo1ODo1MSAyMDA3IC0wNTAwCgogICAgc2JjODM0OTogZW5hYmxlIGxpYmZkdCBieSBkZWZhdWx0IG9uIFdSUyBTQkM4MzQ5IGJvYXJkLgoKICAgIE1ha2UgbGliZmR0IHRoZSBkZWZhdWx0IGZvciB0aGUgV1JTIFNCQzgzNDkgYm9hcmQuCiAgICBQYXJhbGxlbCBvZiBjb21taXQgMzVjYzRlNDgyMzY2OGU4NzQ1ODU0ODk5Y2ZhZWRkNDQ4OWJlYjBlZgogICAgZG9uZSBmb3IgdGhlIG90aGVyIDgzeHggYmFzZWQgYm9hcmRzLiAgQWxzbyBmaXggYSB0eXBvIGluIENPTkZJR19QQ0kuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMjQwOGIzZjIwYmNiZGQ5YzZjMzk3Y2QwM2FiMGQ3MWQ1NDY4MGE0MApBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDIwIDEyOjU4OjE2IDIwMDcgLTA1MDAKCiAgICBzYmM4MzQ5OiBtaWdyYXRlIGJvYXJkIHRvIGxpYmZkdAoKICAgIFRoaXMgYWRkcyBsaWJmZHQgc3VwcG9ydCBjb2RlIGZvciB0aGUgV2luZCBSaXZlciBzYmM4MzQ5IGJvYXJkLgoKICAgIFBhcmFsbGVsIG9mIGNvbW1pdCAzZmRlOWU4YjIyY2ZiZDdhZjQ4OTIxNDc1OGY5ODM5YTIwNjU3NmNiIGZvcgogICAgdGhlIG90aGVyIEZyZWVzY2FsZSA4M3h4IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCAyN2EyNTZhOTBjYzg2MzkyYWM5YmYwMDM5YTNhZmU2MzhlYzJjMThkCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTI6NTY6MTkgMjAwNyAtMDUwMAoKICAgIHNiYzgzNDk6IFJlbW92ZSBib2FyZCBzcGVjaWZpYyBFQ0MgY29kZQoKICAgIEVDQyBjb2RlIGlzIG5vdyBzaGFyZWQgZm9yIGFsbCA4M3h4IGJvYXJkcywgc28gcmVtb3ZlIGJvYXJkIHNwZWNpZmljIG9uZS4KICAgIFNlZSBjb21taXQgZGFhYjhjNjdkMmRlZmVmNzNkYzI2YWIwN2YwYzNhZmQxYjA1ZDAxOSBmb3IgcmVmZXJlbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IGExZTFhYzg0OTI0OTMxMGU1ZTJlNWM3MTQ4ZTlmYjM1M2E4MzE3YTcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDIwIDAxOjMwOjQ4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgQ09ORklHIG9wdGlvbnMgcmVsYXRlZCB0byBPRiB0aGF0IHdlIGRvbnQgdXNlIChvbiA4Mzd4KQoKICAgIGNvbnRpbnVhdGlvbiBvZiBjb21taXQgMzczOTVmYTJiMGQ5ZDYxN2YyOGQ0NGNhMTE1OTIyNjBlZjE2MTA1YSB0byA4Mzd4CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjY2YyMWMzMTFlNjhkNDgzOTllZmYxZTcyOTM2MDUyODg1ZjZlM2Y3CkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVRodSBEZWMgNiAxNjo0Mzo0MCAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgQ09ORklHX1VFQ19FVEgzIGluIE1QQzgzeHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCBlNmFmOTkzMmQzMTE3MWUzNWRiODgwZTdiMmYyOWY5MDNiMWI3NjYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxMTowMDo1NCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIENPTkZJRyBvcHRpb25zIHJlbGF0ZWQgdG8gT0YgdGhhdCB3ZSBkb250IHVzZQoKICAgIFRoZSBNUEM4MzYwRSBNRFMgY29uZmlnIGRlZmluZWQ6CglDT05GSUdfT0ZfSEFTX0JEX1QKCUNPTkZJR19PRl9IQVNfVUJPT1RfRU5WCgogICAgV2hpY2ggd2UgZG9uJ3QgdXNlIG9yIGV2ZXIgbmVlZGVkLglUaGlzIHNlZW1zIGxpa2UgY29weS1wYXN0ZSBmZWF0dXJlIGNyZWVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjYwMjA4MmI0YjdlZDRlZTE2NDMyMDY3Y2M2N2EwYTI0ZmVkYzcxNQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTAgMTQ6MTY6MjIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHN1cHJlc3MgY29tcGlsZXIgd2FybmluZwoKICAgIG1wYzgzNjBlbWRzLmM6IEluIGZ1bmN0aW9uIOKAmGZ0X2JvYXJkX3NldHVw4oCZOgogICAgbXBjODM2MGVtZHMuYzozMzU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIG1wYzgzNjBlbWRzLmM6MzQ1OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMTZlNDRmYTgzNWZiOWVlYzk4MmQ5MTk4NjNhMDRlMmY3OGU1Y2U3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyNyAxNDoxNzoyOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IHJlbWFpbmluZyBmZHRfZmluZF9ub2RlX2J5X3BhdGggcmVmZXJlbmNlcwoKICAgIHJlbmFtZSB0byBmZHRfcGF0aF9vZmZzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyMWQ0YjE5YWQxYmU3MDRkZjU4NzI1NDg1ZDkyOTJkYzA0MTRhZGYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDE5IDEyOjMwOjA5IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggQ0ZHX0VOVl9BRERSIGFuZCBDRkdfRU5WX1NFQ1RfU0laRSBkZWZpbml0aW9ucyBmb3IgODM3eAoKICAgIEZpeCB0aGUgZGVmaW5pdGlvbnMgb2YgQ0ZHX0VOVl9BRERSIGFuZCBDRkdfRU5WX1NFQ1RfU0laRSBmb3IgODM3eC4KICAgIFRoaXMgY2hhbmdlIGd1YXJhbnRlZXMgdGhhdCB0aGUgZW52aXJvbm1lbnQgd2lsbCBiZSBsb2NhdGVkIG9uIHRoZQogICAgZmlyc3QgZmxhc2ggc2VjdG9yIGFmdGVyIHRoZSBVLUJvb3QgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNGY4Njg0MzNiNTBlY2JhYTg4ZTExOGFhZGM3YmQyNTQwMTNjNmFlCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE0OjI4OjA4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBtcGM4MzYwIHJldi4yLjEgZXJyYXR1bSAyOiByZXBsYWNlIHJnbWlpLWlkIHdpdGggcmdtaWktcnhpZAoKICAgIHUtYm9vdCBpdHNlbGYgdXNlcyBHTUlJIG1vZGUgb24gdGhlIDgzNjAuICBGaXggdXAgVUNDIHBoeS1jb25uZWN0aW9uLXR5cGUKICAgIHByb3BlcnRpZXMgaW4gdGhlIGRldmljZSB0cmVlIHNvIHRoZSBQSFkgZ2V0cyBjb25maWd1cmVkIGZvciBpbnRlcm5hbCBkZWxheSBvbgogICAgUlggb25seSBieSB0aGUgT1MsIGFzIHByZXNjcmliZWQgYnkgbXBjODM2MCByZXYuIDIuMSBwYiBtZHMgZXJyYXR1bSAjMi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyYjQ0OGRiZmJlMmE5OGYwMWZmNGFkYzNjMzk3OWY4YzU0MWFkN2IKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6NDE6MTUgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IHVwZGF0ZSB0aGUgQ1JFRElUUyBhbmQgTUFJTlRBSU5FUlMKCiAgICB1cGRhdGUgdGhlIENSRURJVFMgYW5kIE1BSU5UQUlORVJTLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjIxYWRkNGI0MmFmN2I3Njc0NDgyNTFiNTk5YjkxMDY2YTE2MGUwZApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjo0MDoyMSAyMDA3ICswODAwCgogICAgbXBjODN4eDogYWRkIE1BSU5UQUlORVIgYW5kIE1BS0VBTEwgZW50cmllcyBmb3IgdGhlIG1wYzgzN3hlbWRzCgogICAgQWRkIHRoZSBNQUlOVEFJTkVSIGFuZCBNQUtFQUxMIGVudHJpZXMgZm9yIG1wYzgzN3hlbWRzCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmODkwMGNlOTA5NGM0NjIzNTVlYjc5MmVlYTI2NGZmMTZhYzhmZDE2CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjM4OjUzIDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIE1QQzgzN3hFTURTIGJvYXJkIHJlYWRtZQoKICAgIEFkZCB0aGUgUkVBRE1FLm1wYzgzN3hlbWRzIHRvIC9kb2MKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE5NTgwZTY2MGNjOGRhNDlmMTY1MzZhOGJkNzhjMDQ3YzdiYzEyZTUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6Mzc6NTcgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBvZiBNUEM4Mzd4RU1EUyBib2FyZAoKICAgIFRoZSBNUEM4Mzd4RU1EUyBib2FyZCBzdXBwb3J0OgogICAgKiBERFIyIDQwME1IeiBoYXJkY29kZWQgYW5kIFNQRCBpbml0CiAgICAqIExvY2FsIGJ1cyBOT1IgRmxhc2gKICAgICogSTJDLCBVQVJULCBNSUkgYW5kIFJUQwogICAgKiBlVFNFQyBSR01JSQogICAgKiBQQ0kgaG9zdAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTU1ZGE2MTcwMjc3MWZlMGY3NmYzZGUyM2I0ZTc1OTBmMzcwNDE2MQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozNjo1OCAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBzdXBwb3J0IG9mIE1QQzgzMTVFIFNvQwoKICAgIFRoZSBNUEM4MzE1RSBTb0MgaW5jbHVkaW5nIGUzMDBjMyBjb3JlIGFuZCBuZXcgSVAgYmxvY2tzLAogICAgc3VjaCBhcyBURE0sIFBDSSBFeHByZXNzIGFuZCBTQVRBIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMzA1MWMzZDM1Yzk5ODFjZWFhMDU5MDA1NjYwZTY5OWYzZWFjZjFjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjM2OjExIDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIHN1cHBvcnQgb2YgTVBDODM3eCBTb0MKCiAgICBUaGUgTVBDODM3eCBTb0MgaW5jbHVkaW5nIGUzMDBjNCBjb3JlIGFuZCBuZXcgSVAgYmxvY2tzLAogICAgc3VjaCBhcyBTREhDLCBQQ0kgRXhwcmVzcyBhbmQgU0FUQSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjUxZDk2ZjdlNGM4NGFkY2RiOThlZjA3ZWM4NzhjMjAzMjZlMzM1OQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgTm92IDE0IDE4OjU0OjUzIDIwMDcgKzAzMDAKCiAgICBNUEM4MzYwRS1NRFM6IGNvbmZpZ3VyZSBhbmQgZW5hYmxlIHNlY29uZCBVQVJUCgogICAgRGVzcGl0ZSB1c2VyIG1hbnVhbCwgQkNTUjkuNyBpcyBuZWdhdGVkIChoaWdoKSBvbiBIUlNULCBzbwogICAgVUFSVDIgaXMgZGlzYWJsZWQuIEZpeCB0aGF0IGFuZCBjb25maWd1cmUgUUUgcGlucyBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBiMjg5M2UxZmNiMjhmYWQ4YzhiMzE3MTA0ZGY4Y2VlMDE0MmM3NjMxCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiA1IDA5OjM0OjA2IDIwMDcgLTA2MDAKCiAgICA4M3h4OiBmaXggQ0ZHX0VOVl9BRERSIGFuZCBDRkdfRU5WX1NFQ1RfU0laRSBkZWZpbml0aW9ucwoKICAgIEZpeCB0aGUgZGVmaW5pdGlvbnMgb2YgQ0ZHX0VOVl9BRERSIGFuZCBDRkdfRU5WX1NFQ1RfU0laRSBmb3IgYWxsIG9mIHRoZQogICAgY3VycmVudGx5LWRlZmluZWQgODN4eCBib2FyZHMuICBUaGlzIGNoYW5nZSBndWFyYW50ZWVzIHRoYXQgdGhlIGVudmlyb25tZW50CiAgICB3aWxsIGJlIGxvY2F0ZWQgb24gdGhlIGZpcnN0IGZsYXNoIHNlY3RvciBhZnRlciB0aGUgVS1Cb290IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwNTMyOTUxNmExMzYxNmI1MzI0MGNkODViNzM5MjE3YzJiZjg3ZjEKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiA0IDEzOjI3OjAyIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFJlbW92ZSB3ZWFrIGJpbmRpbmcgZnJvbSBjb21tb24gRGVuYWxpIGRhdGEtZXllIHNlYXJjaCBjb2RlCgogICAgTm93IHRoYXQgdGhlcmUgYXJlIG5vIGJvYXJkLXNwZWNpZmljIHZlcnNpb25zIG9mCiAgICAiZGVuYWxpX2NvcmVfc2VhcmNoX2RhdGFfZXllKCkiLCB0aGUgd2VhayBiaW5kaW5nIG9uIHRoZSBjb21tb24gdmVyc2lvbgogICAgY2FuIGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNWJhNTc2YzAxNjAyZmQzMjg4MDBhNDI3OTY0YzM2YTBhMDVjNWRjZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA1IDA5OjEzOjQ2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB1bnVzZWQgQ09ORklHX0VDQ19FUlJPUl9SRVNFVCBmcm9tIDQ0eF9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg0NWM2Yzk1ZGJmZTZjOTE1Y2U2OGEwYTExNTg1MmZhMTc5MzJmYjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAwOToxMjo0MSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2F0bWFpLzQ0eF9zcGRfZGRyMi5jIGNvZGUgZm9yIG9wdGltYWwgRERSMiBzZXR1cAoKICAgIE9uIEthdG1haSB0aGUgY29tcGxldGUgYXV0by1jYWxpYnJhdGlvbiBzb21laG93IGRvZXNuJ3Qgc2VlbSB0bwogICAgcHJvZHVjZSB0aGUgYmVzdCByZXN1bHRzLCBtZWFuaW5nIG9wdGltYWwgdmFsdWVzIGZvciBSUUZEL1JGRkQuCiAgICBUaGlzIHdhcyBkaXNjb3ZlcmVkIGJ5IEdEQSB1c2luZyBhIGhpZ2ggYmFuZHdpZHRoIHNjb3BlLAogICAgYW5hbHl6aW5nIHRoZSBERFIyIHNpZ25hbHMuIEdEQSBwcm92aWRlZCBhIGZpeGVkIHZhbHVlIGZvciBSUUZELAogICAgc28gbm93IG9uIEthdG1haSAib25seSIgUkZGRCBpcyBhdXRvLWNhbGlicmF0ZWQuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgUkRDQyBjYWxpYnJhdGlvbiBhcyBtZW50aW9uZWQgb24gcGFnZSA3IG9mCiAgICB0aGUgQU1DQyBQb3dlclBDNDQwU1AvU1BlIEREUjIgYXBwbGljYXRpb24gbm90ZToKICAgICJERFIxL0REUjIgSW5pdGlhbGl6YXRpb24gU2VxdWVuY2UgYW5kIER5bmFtaWMgVHVuaW5nIgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OWRiNDdiOGFlNmFmZmYyYjg5OGJlMzEyOTQ4ZmY1MDEzNTdkYzgwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMiAxNjo0ODo0MiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgc2RyYW0uaCBmcm9tIFBNQzQ0MCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDM0MDY1YTJjZTBkODk3MmYyZWM2NjUyMDc2MDE0YWIyNDNkMmNlOGEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIEphbiAyIDE2OjQ4OjM0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IHVzZSBjb21tb24gZGVuYWxpIGNvcmUgZGVmaW5lcyBhbmQgZGF0YSBleWUgc2VhcmNoIGNvZGUgZm9yIFBNQzQ0MAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDlhYzZiNmYzZDNmMWIwNzJkODkyNjhiMmVmZTQ3ZTk1ZTY2NTk0ODkKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIEphbiAyIDEyOjA1OjE0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE1vcmUgY2xlYW51cCBmb3IgZXNkJ3MgTENEIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmZTljMjZiMzMwYTIxY2U3M2U1MmI1YmQzNDdkNzI1Y2I4MWUzY2ZiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDQgMTI6MDA6MDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IFNlcXVvaWEgTkFORCBib290aW5nIHRhcmdldAoKICAgIFRoZSBTZXF1b2lhIE5BTkQgYm9vdGluZyB0YXJnZXQgbm93IHVzZXMgdGhlIHJlY2VudGx5IGV4dHJhY3RlZAogICAgY3B1L3BwYzR4eC9kZW5hbGlfZGF0YV9leWUuYyBmaWxlIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRkZDk2OWFlYzUzMmJkN2VhZTMwZmMwOTU5MDQ4OGEzYWFhNjI5YQpBdXRob3I6IExhd3JlbmNlIFIuIEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUaHUgSmFuIDMgMTU6MDI6MDIgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogVXNlIENGR180eHhfR1BJT19UQUJMRSB0byBjb25maWd1cmUgS29yYXQgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBiMDVlOGJmNThiZTlkODk1NmZkZmRlM2Q4YzhlODdjMTQwNDE0NjYzCkF1dGhvcjogTGF3cmVuY2UgUi4gSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CUZyaSBKYW4gNCAwMjoxMTo1NiAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBVc2UgQ0ZHXzR4eF9HUElPX1RBQkxFIHRvIGNvbmZpZ3VyZSBTZXF1b2lhIGJvYXJkCgogICAgTm90ZTogdGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBjb25maWd1cmF0aW9uIG9mIHNvbWUgR1BJTyByZWdpc3RlcnM6CgogICAgICAgUmVnaXN0ZXIgICAgICBPbGQgVmFsdWUJIE5ldyBWYWx1ZQogICAgLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tICAtLS0tLS0tLS0tCiAgICBEQ1IgR1BJTzBfVENSICAgIDB4MDAwMDAwMEYgIDB4MDAwMEYwQ0YKICAgIERDUiBHUElPMF9UU1JIICAgMHg1NTAwNTAwMCAgMHgwMDAwMDAwMAogICAgRENSIEdQSU8xX1RDUiAgICAweEMyMDAwMDAwICAweEUyMDAwMDAwCiAgICBEQ1IgR1BJTzFfVFNSTCAgIDB4MEMwMDAwMDAgIDB4MDAyMDAwMDAKICAgIERDUiBHUElPMV9JU1IyTCAgMHgwMDA1MDAwMCAgMHgwMDExMDAwMAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDVhYjg4NGIyNTRjYTJlNzA3YWI1MDU0NWNkNzA1ZjMwMTA4Y2Y0OTEKQXV0aG9yOiBMYXdyZW5jZSBSLiBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAzIDE4OjU0OjAwIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IEFkZCBmdW5jdGlvbmFsaXR5IHRvIEdQSU8gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdHdvIGFkZGl0aW9ucyB0byBHUElPIHN1cHBvcnQ6CgogICAgRmlyc3QsIGl0IGFkZHMgZnVuY3Rpb24gZ3Bpb19yZWFkX2luX2JpdCgpIHRvIHJlYWQgdGhlIGEgYml0IGZyb20gdGhlCiAgICBHUElPIElucHV0IFJlZ2lzdGVyIChHUElPeF9JUikgaW4gdGhlIHNhbWUgd2F5IHRoYXQgZnVuY3Rpb24KICAgIGdwaW9fcmVhZF9vdXRfYml0KCkgcmVhZHMgYSBiaXQgZnJvbSB0aGUgR1BJTyBPdXRwdXQgUmVnaXN0ZXIKICAgIChHUElPeF9PUikuCgogICAgU2Vjb25kLCBpdCBtb2RpZmllcyBmdW5jdGlvbiBncGlvX3NldF9jaGlwX2NvbmZpZ3VyYXRpb24oKSB0byBwcm92aWRlCiAgICBhbiBhZGRpdGlvbmFsIG9wdGlvbiBmb3IgY29uZmlndXJpbmcgdGhlIEdQSU8gZnJvbSB0aGUKICAgICJDRkdfNHh4X0dQSU9fVEFCTEUiLgoKICAgIEFjY29yZGluZyB0byB0aGUgNDQwRVB4IFVzZXIncyBNYW51YWwsIHdoZW4gYW4gYWx0ZXJuYXRlIG91dHB1dCBpcyB1c2VkLAogICAgdGhlIHRocmVlLXN0YXRlIGNvbnRyb2wgaXMgY29uZmlndXJlZCBpbiBvbmUgb2YgdHdvIHdheXMsIGRlcGVuZGluZyBvbgogICAgdGhlIHBhcnRpY3VsYXIgb3V0cHV0LiAgVGhlIGZpcnN0IG9wdGlvbiBpcyB0byBzZWxlY3QgdGhlIGNvcnJlc3BvbmRpbmcKICAgIGFsdGVybmF0ZSB0aHJlZS1zdGF0ZSBjb250cm9sIGluIHRoZSBHUElPeF9UUlNIL0wgcmVnaXN0ZXJzLiAgVGhlIHNlY29uZAogICAgb3B0aW9uIGlzIHRvIHNlbGVjdCB0aGUgR1BJTyBUaHJlZS1TdGF0ZSBDb250cm9sIFJlZ2lzdGVyIChHUElPeF9UQ1IpIGluCiAgICB0aGUgR1BJT3hfVFJTSC9MIHJlZ2lzdGVycywgYW5kIHNldCB0aGUgY29ycmVzcG9uZGluZyBiaXQgaW4gdGhlCiAgICBHUElPeF9UQ1IgcmVnaXN0ZXIgdG8gZW5hYmxlIHRoZSBvdXRwdXQuICBGb3IgZXhhbXBsZSwgdGhlIE1hbnVhbAogICAgc3BlY2lmaWVzIGNvbmZpZ3VyaW5nIHRoZSBHUElPMDAgQWx0ZXJuYXRlIDEgU2lnbmFsIChQcmVBZGRyMDcpIHRvIHVzZQogICAgdGhlIGFsdGVybmF0ZSB0aHJlZS1zdGF0ZSBjb250cm9sIChmaXJzdCBvcHRpb24pLCBhbmQgc3BlY2lmaWVzCiAgICBjb25maWd1cmluZyB0aGUgR1BJTzMyIEFsdGVybmF0ZSAxIFNpZ25hbCAoVVNCMk9NMCkgd2l0aCB0aGUgb3V0cHV0CiAgICBlbmFibGVkIGluIHRoZSBHUElPeF9UQ1IgcmVnaXN0ZXIgKHNlY29uZCBvcHRpb24pLgoKICAgIEN1cnJlbnRseSwgZ3Bpb19zZXRfY2hpcF9jb25maWd1cmF0aW9uKCkgY29uZmlndXJlcyBhbGwgYWx0ZXJuYXRlIHNpZ25hbAogICAgb3V0cHV0cyB0byB1c2UgdGhlIGZpcnN0IG9wdGlvbi4gIFRoaXMgcGF0Y2ggYWxsb3cgdGhlIHNlY29uZCBvcHRpb24gdG8KICAgIGJlIHNlbGVjdGVkIGJ5IHNldHRpbmcgdGhlICJvdXRfdmFsIiBlbGVtZW50IGluIHRoZSB0YWJsZSBlbnRyeSB0bwogICAgIkdQSU9fT1VUXzEiLiAgVGhlIGZpcnN0IG9wdGlvbiBpcyB1c2VkIHdoZW4gdGhlICJvdXRfdmFsIiBlbGVtZW50IGlzCiAgICBzZXQgdG8gIkdQSU9fT1VUXzAiLiAgQmVjYXVzZSAib3V0X3ZhbCIgaXMgbm90IGN1cnJlbnRseSB1c2VkIHdoZW4gYW4KICAgIGFsdGVybmF0ZSBzaWduYWwgaXMgc2VsZWN0ZWQsIGFuZCBiZWNhdXNlIGFsbCBjdXJyZW50IEdQSU8gdGFibGVzIHNldAogICAgIm91dF92YWwiIHRvICJHUElPX09VVF8wIiBmb3IgYWxsIGFsdGVybmF0ZSBzaWduYWxzLCB0aGlzIHBhdGNoIHNob3VsZAogICAgbm90IGNoYW5nZSBhbnkgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMTk2NDA0Y2RjMWRlNDk1ZDYxODJlODQ3MzFjMjAwZmM1NzQ4ZGYxNQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTdW4gRGVjIDMwIDAxOjAxOjU0IDIwMDcgLTA1MDAKCiAgICBQUEM0eHg6IFJlbW92ZSBzZHJhbS5oIGZyb20gYm9hcmQvbHdtb241CgogICAgVGhlc2UgZGVmaW5pdGlvbnMgYXJlIG5vdyBpbiAiaW5jbHVkZS9wcGM0NDAuaCIuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZWYxNmZjY2Y5NmU1NWVhYjkzZmUyNWQwM2ViZTJlOWI1NmU1MzMyYgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTdW4gRGVjIDMwIDAxOjAxOjMyIDIwMDcgLTA1MDAKCiAgICBQUEM0eHg6IFVzZSBjb21tb24gY29kZSBmb3IgTFdNT041IGJvYXJkIFNEUkFNIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFsc28gbW9kaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGNvZGUgc28gdGhhdCB0aGUgZGF0YS1leWUKICAgIHNlYXJjaCBpcyBub3cgZG9uZSB3aXRoIHdpdGggdGhlIGNhY2hlIGRpc2FibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDYyY2MzOTUxYWI3MjEzNWQ5YzEwMWYxODQ1Yjc5NGU2M2EwZmExODkKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMToxNCAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBSZW1vdmUgc2RyYW0uaCBmcm9tIGJvYXJkL2FtY2Mvc2VxdW9pYQoKICAgIFRoZXNlIGRlZmluaXRpb25zIGFyZSBub3cgaW4gImluY2x1ZGUvcHBjNDQwLmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGNlMzkwMmUxNzY1YmJmYjA3Y2Y1YmJlOThiZTlhNjhlMzAwOTk5NmEKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMDo1MCAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBVc2UgY29tbW9uIGNvZGUgZm9yIFNlcXVvaWEgYm9hcmQgU0RSQU0gc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDhiMGM1YzEyNzY5MDMzNTc1ODEwMGMyNWVhZWMyYjg0ZGI5N2MxMDEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNjo1ODo0MSAyMDA3ICswMTAwCgogICAgbmV0OiBBZGQgQ09ORklHX05FVF9ET19OT1RfVFJZX0FOT1RIRVIgb3B0aW9uCgogICAgV2hlbiBDT05GSUdfTkVUX0RPX05PVF9UUllfQU5PVEhFUiBpcyBkZWZpbmVkIFUtQm9vdCdzCiAgICBuZXR3b3JraW5nIHN0YWNrIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkgc3dpdGNoIHRvCiAgICBhbm90aGVyIGludGVyZmFjZS4gVGhpcyBwYXRjaCBkb2VzIG5vdCB0b3VjaCB0aGUgZGVmYXVsdAogICAgYmVoYXZpb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDUwNWJlODdhNjVlNGY4N2FkN2Q4ZGExZDU3ZWE0ZGNkNDg3ZDdlMzIKQXV0aG9yOiBVcGFrdWwgQmFya2FrYXR5IDx1cGFrdWxAZ21haWwuY29tPgpEYXRlOglUaHUgTm92IDI5IDEyOjE2OjEzIDIwMDcgKzA1MzAKCiAgICBORVQ6IFByb3BlciByZXR1cm4gY29kZSBoYW5kbGluZyBpbiBldGhfaW5pdCgpIGZ1bmN0aW9uIGluIGZpbGUgZXRoLmMKCiAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSByZXR1cm4gY29kZSBoYW5kbGluZyBpbiB0aGUgZXRoX2luaXQoKQogICAgZnVuY3Rpb24sIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgaGFuZGxpbmcgb2YgdGhlIHJldHVybiBjb2RlcyBpbgogICAgdGhlIG90aGVyIG5ldHdvcmsgc3RhY2sgZmlsZXMuIEl0IG5vdyByZXR1cm5zIGEgMCBvbiBTdWNjZXNzIGFuZCAtMSBvbgogICAgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogVXBha3VsIEJhcmtha2F0eSA8dXBha3VsLmJhcmtha2F0eUBjb25leGFudC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVjYTJkMDk1M2U0NTc5YTgwODEwOTY2Y2NhMjA3N2UyMGQ5MTJjOTcKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CU1vbiBOb3YgMTkgMjA6Mjc6MDQgMjAwNyArMDkwMAoKICAgIG5ldC9ldGguYzogRml4IGVudl9lbmV0YWRkciBzaWduZWQgb3ZlcmZsb3cKCiAgICBBc3NpZ25pbmcgdGhlIG91dHB1dCBvZiBzaW1wbGVfc3RydG91bChDQjpBOTo4Nzo2NTo0MzoyMSkgdG8gYGNoYXInLCB3ZSBhcmUKICAgIHdhcm5lZCBhcyBiZWxvdzoKCiAgICAgIFUtQm9vdCAxLjIuMCAoQXVnIDMwIDIwMDcgLSAwODoyNzozNykKCiAgICAgIERSQU06ICAyNTYgTUIKICAgICAgRmxhc2g6IDMyIE1CCiAgICAgIEluOiAgICBzZXJpYWwKICAgICAgT3V0OiAgIHNlcmlhbAogICAgICBFcnI6ICAgc2VyaWFsCiAgICAgIE5ldDogICBORUMtQ2FuZHkKICAgICAgV2FybmluZzogTkVDLUNhbmR5IE1BQyBhZGRyZXNzZXMgZG9uJ3QgbWF0Y2g6CiAgICAgIEFkZHJlc3MgaW4gU1JPTSBpcwkgMDA6MDA6NEM6ODA6OTI6QTIKICAgICAgQWRkcmVzcyBpbiBlbnZpcm9ubWVudCBpcyAgRkZGRkZGQ0I6RkZGRkZGQTk6RkZGRkZGODc6NjU6NDM6MjEKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgZW52X2VuZXRhZGRyIHR5cGUgZnJvbSBgY2hhcicgdG8gYHVuc2lnbmVkIGNoYXInLgoKICAgIENjOiBNYXNha2kgSXNoaWthd2EgPGlzaGlrYXdhLW1hc2FraUBjbnQubXhlLm5lcy5uZWMuY28uanA+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGY4NWI2MDcxMDU3MWIzNzI5M2QyMjMzOTMzYjc2ZTJhYTNkYjU2MzUKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE4OjE5OjAyIDIwMDcgKzAxMDAKCiAgICBJbnRyb2R1Y2UgbmV3IGV0aF9yZWNlaXZlIHJvdXRpbmUKCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIHJvdXRpbmUgaXMgcmVjZWl2aW5nIGEgc2luZ2xlIG5ldHdvcmsgZnJhbWUsIG91dHNpZGUgb2YKICAgIFUtQm9vdCdzIE5ldExvb3AoKS4gRXhwb3J0aW5nIGl0IHRvIHN0YW5kYWxvbmUgcHJvZ3JhbXMgdGhhdCBydW4gb24gdG9wIG9mCiAgICBVLUJvb3Qgd2lsbCBsZXQgdGhlbSB1dGlsaXNlIG5ldHdvcmtpbmcgZmFjaWxpdGllcy4gRm9yIHNlbmRpbmcgYSByYXcgZnJhbWUKICAgIHRoZSBhbHJlYWR5IGV4aXN0aW5nIGV0aF9zZW5kKCkgY2FuIGJlIHVzZWQuCgogICAgVGhlIGRpcmVjdCBjb25zdW1lciBvZiB0aGlzIHJvdXRpbmUgaXMgdGhlIG5ld2x5IGludHJvZHVjZWQgQVBJIGxheWVyIGZvcgogICAgZXh0ZXJuYWwgYXBwbGljYXRpb25zIChlbmFibGVkIHdpdGggQ09ORklHX0FQSSkuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVjNzQwNzExZjBlYTViNTE0MTRiMzQxYjcxNTk3YzRhMDc1MWJlNzQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDMgMTA6NDE6MDQgMjAwOCAtMDYwMAoKICAgIDg2MTA6IE1vdmUgaW5jbHVkZSBvZiBjb25maWcuaCBlYXJsaWVyLgoKICAgIEluY2x1ZGUgY29uZmlnLmggZWFybGllciBpbiB0aGUgc2V0IG9mICNpbmNsdWRlcwogICAgc28gYXMgdG8gYXZvaWQgYSBpbmNpZGVudGFsIGFuZCBkdXBsaWNhdGUgZGVmaW5pdGlvbgogICAgb2YgQ0ZHX0NBQ0hFTElORV9TSVpFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlcgoKY29tbWl0IDYxZDM0MjFiZGVhMDkwYmQwMzk5YjE0YzNlMTBhM2JlYmNjOGQ1ZmYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDQgMTA6NTM6MzQgMjAwNyAtMDYwMAoKICAgIERvbid0IHNsYW0gI3VuZGVmIERFQlVHIGluIHRoZSA4NjQxSFBDTiBjb25maWcgZmlsZS4KCiAgICBEb2luZyBzbyBwcmV2ZW50cyBpdCBmcm9tIGJlaW5nIGluZGl2aWR1YWxseSBzZXQKICAgIGFuZCB1c2VmdWwgaW4gb3RoZXIgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYTlmNzM5NWVjMzYyNTg0ZTVlNGYyNjZiZDBiMGM0NDIyY2Y2YTRjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAyOCAxNDo0NzoxOCAyMDA3IC0wNjAwCgogICAgQ29udmVydCBNUEM4NjQxSFBDTiB0byB1c2UgbGliZmR0LgoKICAgIEFzc3VtZXMgdGhlIHByZXNlbmNlIG9mIHRoZSBhbGlhc2VzIG5vZGUgaW4gdGhlIERUUyB0bwogICAgbG9jYXRlIHRoZSBldGhlcm5ldCwgcGNpIGFuZCBzZXJpYWwgbm9kZXMgZm9yIGZpeHVwcy4KCiAgICBVc2UgY29uc2lzdGVudCBmZHRhZGRyIGFuZCBmZHRmaWxlIGluIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlMzc0MjJkMDAwMmUxMDQ5MGUyNjgzOTJlMGM0ZTMwMjhlNTJjZWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNDowNjoyNiAyMDA4ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBGaXggYnVnIGluIGZsYXNoX2lzc2V0KCkgdG8gdXNlIGNvcnJlY3QgMzJiaXQgZnVuY3Rpb24KCiAgICBUaGlzIGJ1ZyB3YXMgZGV0ZWN0ZWQgb24gdGhlIExXTU9ONSB0YXJnZXQgd2hpY2ggaGFzIDIgSW50ZWwgMTZiaXQgd2lkZQogICAgZmxhc2ggY2hpcHMgY29ubmVjdGVkIHRvIGEgMzJiaXQgd2lkZSBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMTgyZTlmOGUzYjkyZmMzNzJkNjQ5NDMyOTNkZTUzZGFhMmUyNmNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDE1OjU4OjQ0IDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIGludHJvZHVjZWQgYnkgImNsZWFudXAiIGNvbW1pdCAzZGZkNzA4YwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWFhYWI5YmZhZTBiM2IyZWUyYjQxOGMyMmM2NTEyODBlZTdiNjVjNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNTo1NDo0NSAyMDA4ICswMTAwCgogICAgTWFrZSBzY3JpcHRzIGFuZCBNYWtlZmlsZXMgUE9TSVggY29tcGxpYW50CgogICAgVGhlIGJhc2ggYnVpbHRpbiB2ZXJzaW9ucyBvZiB0aGUgInRlc3QiIChyZXNwLiAiWyIpIGNvbW1hbmQgYWxsb3cKICAgIHVzaW5nICI9PSIgZm9yIHN0cmluZyBjb21wYXJpc29ucywgYnV0IFBPU0lYIGNvbXBhdGlibGUgaW1wbGVtZW4tCiAgICB0YXRpb25zIChsaWtlIC91c3IvYmluL3Rlc3QpIGluc2lzdCBvbiB1c2luZyAiPSIgb25seS4gT24gc3VjaCBzeXN0ZW1zCiAgICB5b3Ugd2lsbCBzZWU6CgoJJCAvdXNyL2Jpbi90ZXN0IGEgPT0gYSAmJiBlY2hvIE9LCgkvdXNyL2Jpbi90ZXN0OiA9PTogYmluYXJ5IG9wZXJhdG9yIGV4cGVjdGVkCgogICAgVGhpcyBwYXRjaCBmaXhlcyBNYWtlZmlsZXMgYW5kIHNjcmlwdHMgdG8gdXNlIFBPU0lYIHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDdjYzIzY2JlOWE2NjljNTEwMTgzZjRmMDQ5YmY3MDNlZjQ0NWYzYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDE0OjA1OjM3IDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IEZpeCBidWcgaW4gZmxhc2hfaXNzZXQoKSB0byB1c2UgY29ycmVjdCAzMmJpdCBmdW5jdGlvbgoKICAgIFRoaXMgYnVnIHdhcyBkZXRlY3RlZCBvbiB0aGUgTFdNT041IHRhcmdldCB3aGljaCBoYXMgMiBJbnRlbCAxNmJpdCB3aWRlCiAgICBmbGFzaCBjaGlwcyBjb25uZWN0ZWQgdG8gYSAzMmJpdCB3aWRlIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNkZmQ3MDhjYzFiMmE5NjZhZDQ1NGNhOWVkMTI1ZGQxN2RiYWRiY2MKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTI6Mzg6NDMgMjAwOCArMDEwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTE3NGFjMzRhZGY1ZDU2NTNkZjEyYmMzY2YxOWM1MjA2M2E3MTI2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAxNzoyOTo1NiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YmExMzJjYWIxOGFlNDM4YjZkZDViMDIxNGMyOGE4ZmMwZDk3NmU1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MDc6MjQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29tcGxldGUgUE1DNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGJyaW5ncyB0aGUgUE1DNDQwIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZS4KICAgIEZpbmFsbHkgaXQgZW5hYmxlcyB0aGUgUE1DNDQwIGJvYXJkIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNDA3ODQzYTU4MjU2MGZjNTIzMTI5OTU2MWFiM2MyYjZiNmNkMzM5NwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjA3OjE4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBGUEdBIHN1cHBvcnQgYW5kIEJTUCBjb21tYW5kcyBmb3IgUE1DNDQwIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzb21lIEJTUCBjb21tYW5kcyBhbmQgRlBHQSBib290aW5nIHN1cHBvcnQKICAgIGZvciBlc2QncyBQTUM0NDAgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDcyYzVkNTJhZWRjY2UzNWU0YjRmYTU4OTU2MDU1NTQ4MjViNmE3NmYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzowNzoxNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBlc2QgUE1DNDQwIGJvYXJkIGZpbGVzCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBmaXJzdCBmaWxlcyBmb3IgdGhlIG5ldyBlc2QgUE1DNDQwIGJvYXJkcy4KICAgIFRoZSBuZXh0IHR3byBwYXRjaGVzIHdpbGwgY29tcGxldGUgdGhlIFBNQzQ0MCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGY2ZTBmMWY2MTg5NmNlNzcyOWJhMWJjZWEyZmZiZDEzOGQzOTQ3ZjUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzoxMDozNiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgRUVQUk9NIHdyaXRlIHByb3RlY3Rpb24gZm9yIFBMVTQwNSBib2FyZHMgKyBtaXNjLiB1cGRhdGVzCgogICAgLSBhZGQgRUVQUk9NIHdyaXRlIHByb3RlY3Rpb24gZm9yIGVzZCBQTFU0MDUgYm9hcmRzLgogICAgLSBpbml0aWFsaXplIE5BTkQgR1BJT3MKICAgIC0gdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzCiAgICAtIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3NzY2MGM0YjU5MDU1ZDYyMWQyYTg1OTViZDRjMThiYjI3NzI2OGZjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MTA6NDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIGZvciBlc2QncyBMQ0QgY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgZXNkJ3MgTENEIGRlY3RlY3Rpb24gY29kZSB0byB3b3JrIGNvcnJlY3RseSB3aXRoCiAgICBuZXdlciBnY2MgdmVyc2lvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYjU2YmQwZmNmYzFjNzNkYjcyMmUzNDYyYzhhOWJmNjA3YmE3Nzc1ZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjEwOjQyIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1haW50ZW5hbmNlIHBhdGNoIGZvciBWT0g0MDUgYm9hcmRzCgogICAgLSBhZGQgRUVQUk9NIHdyaXRlIHByb3RlY3Rpb24KICAgIC0gaW5pdGlhbGl6ZSBOQU5EIEdQSU9zCiAgICAtIHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycwogICAgLSBzbG93IGRvd24gSTJDIGNsb2NrIHRvIDEwMGtIegogICAgLSBlbmFibGUgZXh0LiBJMkMgYnVzCiAgICAtIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjMDU1NjkwNjZkYmNiYTNmZGYzNmQ0ZDE5NDNkZjI2NWRjMzE2YTg2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDI4IDE2OjA4OjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSA0MDVFUCBQQ0kgYXJiaXRlciBwZXIgZGVmYXVsdCBvbiBhbGwgYm9hcmRzCgogICAgSW4gYW4gYXR0bWVtdCB0byBjbGVhbiB1cCB0aGUgNHh4IHN0YXJ0LlMgZmlsZSwgSSByZW1vdmVkIHRoZSBlbmFibGluZwogICAgb2YgdGhlIGludGVybmFsIDQwNUVQIFBDSSBhcmJpdGVyLiBUaGlzIGlzIG5lZWRlZCBmb3IgbXVsdGlwbGUgb3RoZXIKICAgIDQwNUVQIHBsYXRmb3JtcywgbGlrZSBtb3N0IG9mIHRoZSBlc2QgNDA1RVAuIE5vdyB0aGUgaW50ZXJuYWwgUENJCiAgICBhcmJpdGVyIGlzIGVuYWJsZWQgYWdhaW4gcGVyIGRlZmF1bHQgYXMgaXQgaGFzIGJlZW4gYmVmb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiZWM5MjY0NjE2ZmI3ODI3M2ExZDkzZTg3ZmY0YjBiNjdjN2JlYzFiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDI4IDE1OjUzOjQ2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgaW4gY3B1X2luaXQuYyAoNDA1RVAgaW5zdGVhZCBvZiA0NTBFUCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZmI4M2E2NWM2MGFiNWNhMTIzNThiNzVmMTI1N2U1ZWVlNmNkYmY3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAwNjowNjowNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gcHJvYmxlbSBvZiBraWxhdWVhL2hhbGVha2FsYSBuYW5kIGJvb3RpbmcgdGFyZ2V0CgogICAgVXNlIGNvcnJlY3QgbGluayB0byBuYW5kX2VjYyBub3cgbG9jYXRlZCBpbiBkcml2ZXJzL210ZC9uYW5kLyBmb3IgdGhlCiAgICBwbGF0Zm9ybXMgbWVudGlvbmVkIGFib3ZlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNTY4ZmQyNTU3NDE4MWEzYjEyYWUzZDY2YjI5MTM5MDM0NDJjYjgzCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MDM6NDYgMjAwNyArMDEwMAoKICAgIFJlbW92ZSBDUENJNDQwIGJvYXJkCgogICAgVGhpcyBib2FyZCBuZXZlciBsZWZ0IHByb3RvdHlwaW5nIHN0YXRlIGFuZCBpdAogICAgYmVjYW1lIGEgbWlsbHN0b25lIHJvdW5kIG15IG5lY2suIFNvIHJlbW92ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjNTkxZGZmZTBjYmFjZDg5NmNjYmFkMDYwMTFmZTZkNmFmYTA4MGRhCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTE6Mjg6NTEgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBLb3JhdCBQUEM0NDBFUHggYm9hcmQKCiAgICBUaGVzZSBwYXRjaGVzIGFkZCBzdXBwb3J0IGZvciB0aGUgUFBDNDQwRVB4LWJhc2VkICJLb3JhdCIgYm9hcmQgdG8KICAgIFUtQm9vdC4gIFRoZXkgYXJlIGJhc2VkIHByaW1hcmlseSBvbiBzdXBwb3J0IGZvciB0aGUgU2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4N2RjMDk2ODI5ZTZhNjM2M2Y0ZmRkNzM2NTNiMDA5M2E4NWFkYmUwCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTY6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBjb25maWd1cmF0aW9uIGZpbGUgZm9yIEtvcmF0IGJvYXJkCgogICAgVGhpcyBwYXRjaCBzdXBwbGllcyB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgS29yYXQgUFBDNDQwRVB4LQogICAgcHJvY2Vzc29yIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDhlYjUyZDVkOTgyYjc2NGIzOWM4OGQ5ZDEwNjRkNTZjNTM5N2JmYTUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToxNjoxMSAyMDA3IC0wNTAwCgogICAgQWRkIGRlbmFsaV9kYXRhX2V5ZS5vIGFuZCBkZW5hbGlfc3BkX2RkcjIubyB0byBQUEM0eHggTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBhYmExOTYwNGQ4NDhiMjgzOGNmYjllYmU4MTg5MDllNmEyMTYwNThlCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTA6NTQ6NDggMjAwNyAtMDUwMAoKICAgIEFkZCA0NDBFUHggRERSMiBTUEQgRElNTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIFNQRCBERFIyIHN1cHBvcnQgZm9yIHRoZSA0NDBFUHggKCJEZW5hbGkiKSBTRFJBTQogICAgY29udHJvbGxlci4gIEl0IHNob3VsZCBhbHNvIHdvcmsgb24gdGhlIDQ0MEdSeC4gIEl0IGlzIGJhc2VkIG9uIHRoZSBERFIyCiAgICBTUEQgY29kZSBmb3IgdGhlIDQ0MEVQLzQ0MEVQeCwgYnV0IG1ha2VzIG5vIHByb3Zpc2lvbiBmb3IgRERSMSBzdXBwb3J0LgoKICAgIFRoaXMgY29kZSBoYXMgYmVlbiB0ZXN0ZWQgb24gcHJvdG90eXBlIEtvcmF0IGJvYXJkcyB3aXRoIHRocmVlIEtpbmdzdG9uCiAgICBESU1NUzogNTEyIE1pQiBFQ0MgKG9uZSByYW5rKSwgNTEyIE1pQiBub24tRUNDIChvbmUgcmFuaykgYW5kIDEgR2lCIEVDQwogICAgKHR3byByYW5rcykuICBUaGUgS29yYXQgYm9hcmQgaGFzIGEgc2luZ2xlIERJTU0gc29ja2V0LCBidXQgc3VwcG9ydCBoYXMKICAgIGJlZW4gcHJvdmlkZWQgKHRob3VnaCBub3QgdGVzdGVkKSBmb3IgYm9hcmRzIHdpdGggdHdvIERJTU0gc29ja2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4YTI0YTY5NjMwMDJjYjg2N2Q1YTZiNzBlMzU2MGYwYjE0NjdmNTVmCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTU6MzAgMjAwNyAtMDUwMAoKICAgIENvcHkgNDQwRVB4L0dSeCBTRFJBTSBkYXRhLWV5ZSBzZWFyY2ggdG8gY29tbW9uIGRpcmVjdG9yeQoKICAgIFRoaXMgcGF0Y2ggY3JlYXRlcyBhIG5vbi1ib2FyZC1zcGVjaWZpYyBmaWxlIGZvciBwZXJmb3JtaW5nIHRoZSBTRFJBTQogICAgZGF0YS1leWUgc2VhcmNoLiAgSXQgYWxzbyBhZGRzIEVDQyBlcnJvciBjaGVja2luZyB0byB0aGUgdGVzdCBvZiB2YWxpZAogICAgZGF0YSBvbiByZWFkYmFjayB3aGVuIEVDQyBpcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGM0NmY1MzMzM2IyMmIxZjkwOTg2NzZiZWE4ODg0ZmM3ZGI4MjBjZjMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToxNToxMyAyMDA3IC0wNTAwCgogICAgQWRkIGRlZmluaXRpb25zIGZvciA0NDBFUHgvR1J4IFNEUkFNIGNvbnRyb2xsZXIgdG8gcHBjNDQwLmgKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIERlbmFsaSBTRFJBTSBjb250cm9sbGVyIGRlZmluaXRpb25zIHRvICJwcGM0NDAuaCIuCiAgICBJdCBhbHNvIGZpeGVzIHR3byB0eXBvcyBpbiB0aGUgZGVmaW5pdGlvbnMsIHNvIHRoZSBib2FyZC1zcGVjaWZpYwogICAgInNkcmFtLmgiIGZpbGVzIGNvbnRhaW5pbmcgdGhlc2UgZGVmaW5pdGlvbnMgYXJlIGFsc28gZml4ZWQgdG8gYXZvaWQKICAgIGNvbXBpbGVyIHdhcm5pbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGMzNDg1NzhiZjYxMmQwYzU2ZDhkMzc2ZDIzY2FlMTZkZWZiZDg2YWYKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxMDo1MDo1NSAyMDA3IC0wNTAwCgogICAgQWRkIEV0aGVybmV0IDEwMDBCQVNFLVggc3VwcG9ydCBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IHN3aXRjaDogIkNPTkZJR19QSFlfRFlOQU1JQ19BTkVHIi4gIFdoZW4gdGhpcyBzeW1ib2wKICAgIGlzIGRlZmluZWQsIHRoZSBQSFkgd2lsbCBhZHZlcnRpc2UgaXQncyBjYXBhYmlsaXRpZXMgZm9yIGF1dG9uZWdvdGlhdGlvbgogICAgYmFzZWQgb24gdGhlIGNhcGFiaWxpdGllcyBzaG93biBpbiB0aGUgUEhZJ3Mgc3RhdHVzIHJlZ2lzdGVycywgaW5jbHVkaW5nCiAgICAxMDAwQkFTRS1YLiAgV2hlbiAiQ09ORklHX1BIWV9EWU5BTUlDX0FORUciIGlzIG5vdCBkZWZpbmVkLCB0aGUgUEhZIHdpbGwKICAgIGFkdmVydGlzZSBoYXJkLWNvZGVkIGNhcGFiaWxpdGllcywgYXMgYmVmb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDllMmMzNDcxNTFkYjVhZThhY2Y1ZjE4Yjk5NDkzY2Q1M2U2NjM3ZTMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJVGh1IERlYyAyNyAwOTo1MjoxNyAyMDA3IC0wNTAwCgogICAgQWRkIGRyaXZlciBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTczIHRlbXBlcmF0dXJlIHNlbnNvcgoKICAgIFRoaXMgZHJpdmVyIGlzIGJhc2VkIG9uIHRoZSBkcml2ZXIgZm9yIHRoZSBMTTc1LgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDEyNjE4Mjc4Njg4ZWE5YjNkNzY1MzY5NjBhNWFkMmUzNzkwZmFjNDAKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToxNDowMCAyMDA3IC0wNTAwCgogICAgQWRkIGRyaXZlciBmb3IgU1RNaWNyb2VsZWN0cm9uaWNzIE00MVQ2MCBSVEMKCiAgICBUaGlzIGRyaXZlciBpcyBiYXNlZCBvbiB0aGUgZHJpdmVyIGZvciB0aGUgTTQxVDExLglJbiB0aGUgaW50ZW5kZWQKICAgIGFwcGxpY2F0aW9uLCB0aGUgUlRDIHdpbGwgYmUgcG93ZXJlZCBieSBhIGxhcmdlIGNhcGFjaXRvciwgcmF0aGVyIHRoYW4gYQogICAgYmF0dGVyeS4gIFRoZSBkcml2ZXIgdGhlcmVmb3JlIGNoZWNrcyB0byBzZWUgd2hldGhlciB0aGUgUlRDIGhhcyBsb3N0CiAgICBwb3dlci4gIFRoZSBjaGlwJ3MgT1VUIGJpdCBpcyBub3JtYWxseSByZXNldCBmcm9tIGl0cyBwb3dlci11cCBzdGF0ZS4gIElmCiAgICB0aGUgT1VUIGJpdCBpcyByZWFkIGFzIHNldCwgb3IgaWYgdGhlIGRhdGUgYW5kIHRpbWUgYXJlIG5vdCB2YWxpZCwgdGhlbiB0aGUKICAgIFJUQyBpcyBhc3N1bWVkIHRvIGhhdmUgbG9zdCBwb3dlciwgYW5kIGl0cyBkYXRlIGFuZCB0aW1lIGFyZSByZXNldCB0bwogICAgMTkwMC0wMS0wMSAwMDowMDowMC4KCiAgICBTdXBwb3J0IGZvciBhZGp1c3RpbmcgdGhlIHNwZWVkIG9mIHRoZSBjbG9jayB0byBpbXByb3ZlIGFjY3VyYWN5IGlzCiAgICBwcm92aWRlZCB0aHJvdWdoIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGQzNDcxMTczZTE0Yjc1NDRiYjYwMzM5ZWRhOGQzZDM5MDY2OTRiMGEKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNTozNDozOSAyMDA3IC0wNTAwCgogICAgVXNlIG91dF9iZTMyKCkgYW5kIGZyaWVuZHMgdG8gYWNjZXNzIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXJzIGluIHNlcXVvaWEuYwoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGM2OGY1OWZlM2VjMTY3NjlmODJiNWZjYTc0MjE5ODNjMzM2ZDNhYWMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNTozNDoyMCAyMDA3IC0wNTAwCgogICAgVXNlIGRlZmluaXRpb25zIGZyb20gImFzbS1wcGMvbW11LmgiIGluIGluaXQuUyBmb3IgU2VxdW9pYQoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDBkOWNkZWFjMWQzZmE4ZDYyZWQ3ZDg4M2FjYzk1MGMzNjRmNWJkYTgKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToyMzo1MCAyMDA3IC0wNTAwCgogICAgQ29zbWV0aWMgY2hhbmdlcyB0byBFQ0MgUE9TVCBmb3IgQU1DQyBEZW5hbGkgY29yZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDJlNTgzZDZjODEwMzRmODBhMjY3Yjg5ZmE1NTQ5OGFlMDYzY2NlZjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMjYgMjA6MjA6MTkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW0gaW4gNDA1IGNhY2hlIFBPU1QgdGVzdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MmQ1NWVhMGJkZTA2ZTQ3ZDVhM2I0OWIwZDkxMDAyYWNkOGU1NzA4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRGVjIDIyIDEyOjIwOjA5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1vdmUgdmlydHVhbCBhZGRyZXNzIG9mIFBPU1QgY2FjaGUgdGVzdCB0byBiaWdnZXIgYWRkcmVzcwoKICAgIE9uIFNlcXVvaWEgJiBMV01PTjUgdGhlIHZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgUE9TVCBjYWNoZSB0ZXN0IGlzIG5vdwogICAgbW92ZWQgdG8gYSBiaWdnZXIgYWRkcmVzcy4gVGhpcyBlbmFibGVzIHVzYWdlIG9mIG1vcmUgbWVtb3J5IG9uIHRob3NlCiAgICBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ5MTcyMjEwMmNmNjNmNzdhMDE0OGVkM2YzZDU0YTI2ZDg3NTc1ZTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgMjIgMTI6MTg6MjYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gNDR4IGNhY2hlIFBPU1Qgcm91dGluZQoKICAgIEFzIHJlcG90ZWQgYnkgTGFycnkgSm9obnNvbiwgcnVubmluZyAiZGlhZyBydW4gY2FjaGUiIGNhdXNlZCBhIGNyYXNoCiAgICBpbiBVLUJvb3QuIFRoaXMgcHJvYmxlbSB3YXMgaW50cm9kdWNlZCBieSBhIHBhdGNoIHRoYXQgcmVtb3ZlZCB0aGUKICAgIFRMQiBlbnRyeSBmb3IgdGhlIGNhY2hlIHRlc3QgYWZ0ZXIgdGhlIHRlc3QgaGFzIGNvbXBsZXRlZC4gU2luY2UgdGhpcwogICAgVExCIHdhcyBvbmx5IHNldHVwIG9uY2UsIGEgMm5kIGF0dGVtcHQgdG8gcnVuIHRoaXMgY2FjaGUgdGVzdAogICAgZmFpbGVkIHdpdGggYSBjcmFzaC4gTm93IHRoaXMgVExCIGVudHJ5IGlzIGNyZWF0ZWQgZXZlcnkgdGltZSB0aGUKICAgIHJvdXRpbmUgaXMgY2FsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMDI2NWI1NzZiYjhmYTk0NjVmOTllOTljMzIzNzY4YjU2MmZhZGMyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDIxIDA3OjUxOjI5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBNYWthbHUgZmR0IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYmY4MzI0ZTRhNTA3NThkYWZmOGNkZGQwNGM2YTJmZjhlZDc3NWJlYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIERlYyAxOSAwOTowNTo0MCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgdG8gQU1DQyBLYXRtYWkgZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMjhhMzQwMzkyYTVkZjlhYWYwMDc5MmJlOTg5ZGY3M2U3NTA4NTllCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDE4IDA4OjQ0OjUxIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGZkdDogQ2xlYW51cCBzZXR1cCBvZiBjcHUgbm9kZSBzZXR1cAoKICAgIE5vdyB0aGUgY3B1IG5vZGUgc2V0dXAgKCJ0aW1lYmFzZS1mcmVxdWVuY3kiIGFuZCAiY2xvY2stZnJlcXVlbmN5IikgaXMKICAgIHdpdGhvdXQgdXNpbmcgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGNwdSBub2RlLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlCiAgICB0byB1c2UgdGhpcyBVLUJvb3QgdmVyc2lvbiB3aXRoIGJvdGggdmVyc2lvbnMgb2YgY3B1LW5vZGUgbmFtaW5nCiAgICAiY3B1QDAiIGFuZCB0aGUgZm9ybWVyICJQb3dlclBDLDQ0MEVQeEAwIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzgxMmJjNGEyZTI0MzZlYmJjMGNlNWI0ZTk5YzFkZmMyZTc3ZWI1YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIERlYyAxNyAxNzoyNjoyMSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggbHdtb241IGNvbXBpbGF0aW9uIHByb2JsZW0KCiAgICBOb3cgdGhhdCB0aGUgNDQwRVB4IEVDQyB0ZXN0IGlzIG5vdCBib2FyZCBzcGVjaWZpYyBhbnltb3JlCiAgICByZW1vdmUgdGhpcyBNYWtlZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDJlZDMzZmZlMTM1ZjYxODY4MGY5ZDZlOTcxMmViMzVhODViY2I2MgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RzY2hpbkB0LW9ubGluZS5kZT4KRGF0ZToJV2VkIERlYyA1IDE3OjQzOjIwIDIwMDcgKzAxMDAKCiAgICBGaXggcHBjNHh4IGNsZWFyX2JzcygpIGNvZGUKCiAgICBwcGM0eHggY2xlYXJfYnNzKCkgZmFpbHMgaWYgQlNTIHNlZ21lbnQgc2l6ZSBpcyBub3QKICAgIGRpdmlzaWJsZSBieSA0IHdpdGhvdXQgcmVtYWluZGVyLiBUaGlzIHBhdGNoIHByb3ZpZGVzCiAgICBmaXggZm9yIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgODVkYzJhN2Y4MmQxMWUxN2YwY2EyYTQ0ODExOGFlZDdmN2E0Yjg1ZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBOb3YgMzAgMTg6MzU6MTEgMjAwNyArMDEwMAoKICAgIFBQQzR4eDogTWluaW1hbCBjaGFuZ2VzIHRvIGFkZCB2eFdvcmtzIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDA1MjQ0MGIwMjJjYTg5ODFkMzliNmY4YzEwZDFhYTYzMjZmNDc0ODAKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglGcmkgTm92IDIzIDEzOjA5OjE4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBDT05GSUdfQk9PVFBfU1VCTkVUTUFTSyB0byBTZXF1b2lhIGJvYXJkIGNvbmZpZwoKICAgIFdoZW4gdXNpbmcgZGhjcC9ib290cCB0aGUgIm5ldG1hc2siIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdAogICAgc2V0IGJlY2F1c2UgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgaXMgbm90IGRlZmluZWQuIEJ1dCB1c3VhbGx5IHRoaXMgaXMKICAgIGRlc2lyZWFibGUsIHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggYWRkcyB0aGlzIHRoaXMgb3B0aW9uIHRvIHRoZSBib2FyZAogICAgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTcyNGE5YjQwYzdmYmViNmFkZTE5M2NhNTIzMjFiNDQxZWFlY2I0ZQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgT2N0IDI3IDEyOjQ4OjE1IDIwMDcgLTA0MDAKCiAgICBGaXgvZW5oYW5jZSBFQ0MgUE9TVCBmb3IgNDQwRVB4L0dSeAoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIHRoZSBFQ0MgUE9TVCB0byBiZSB1c2VkIGZvciBkaWZmZXJlbnQgYm9hcmRzIHdpdGggdGhlCiAgICBQUEM0NDAgRGVuYWxpIFNEUkFNIGNvbnRyb2xsZXIuICBNb2RpZmljYXRpb25zIGluY2x1ZGUgc2tpcHBpbmcgdGhlIHRlc3QKICAgIGlmIEVDQyBpcyBub3QgZW5hYmxlZCAoYXMgZm9yIG5vbi1FQ0MgRElNTXMpIGFuZCBhZGRpbmcgc3luY2hyb25pemF0aW9uCiAgICB0byBwcmV2ZW50IHRpbWluZyBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNDU0YTZjZjhkNDk4ZjcwZDJiM2UxOGYwNzgzNzYwM2ViMjRiMTJkNApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgT2N0IDI3IDEyOjQ4OjA1IDIwMDcgLTA0MDAKCiAgICBQUEM0eHg6IE1vdmUvcmVuYW1lIEVDQyBQT1NUIGZvciA0NDBFUHgvR1J4CgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYzI5ZDJkMzY4MDA0NmQ0MzAwMjJjNTVlNTBmY2IyN2Y1ODY2NTE3ZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDE0IDExOjIwOjMzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycyBmb3IgNHh4IGV0aGVybmV0IFBPU1QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiYTc5ZmRlNThhNDhjMGE2ZmY4ZTJhOTZjYWJhOTUxNTk0MTQyMjAzCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTE6MTk6NTYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogZml4IGZsdXNoICsgaW52YWxpZGF0ZV9kY2FjaGVfcmFuZ2UgYXJndW1lbnRzCgogICAgZmx1c2ggKyBpbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSgpIGV4cGVjdCB0aGUgc3RhcnQgYW5kIHN0b3ArMSBhZGRyZXNzLgogICAgU28gdGhlIHN0b3AgYWRkcmVzcyBpcyB0aGUgZmlyc3QgYWRkcmVzcyBiZWhpbmQgKCEpIHRoZSByYW5nZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4NzFlNmNlMTg4YTdjNmJjNzMyMWJjZjgzNzI4NTcwMzVkMjBmMWNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDE0IDA4OjQxOjI5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGZkdDogdXNlIGZkdF9maXh1cF9ldGhlcm5ldCgpCgogICAgQnkgdXNpbmcgYWxpYXNlcyBpbiB0aGUgZHRzIGZpbGUsIHRoZSBldGhlcm5ldCBub2RlIGZpeHVwIGlzCiAgICBtdWNoIGVhc2llciB3aXRoIHRoZSByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgZHRzIGZpbGUgbmVlZHMgdGhlIGFsaWFzZXMgZm9yIHRoaXMgdG8gd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTM2Mjg4ODQ3ZTNiMDRmMmZmMzU3YTA2N2FkNDVlMTBhZmEwYTI0YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IERlYyAxMyAxNDo1Mjo1MyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBCcmluZyA0eHggZmR0IHN1cHBvcnQgdXAtdG8tZGF0ZQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlIHRoZSA0eHggZmR0IHN1cHBvcnQuIEl0IGVuYWJsZWQgZmR0IGJvb3RpbmcKICAgIG9uIHRoZSBBTUNDIEtpbGF1ZWEgYW5kIFNlcXVvaWEgZm9yIG5vdy4gTW9yZSBjYW4gZm9sbG93IGxhdGVyCiAgICBxdWl0ZSBlYXNpbHkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkYzgwZTI3NTlmYmE4NTljY2M0Y2RhZGM2MzM1NzdjYTI5NzFmM2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjcgMDc6NTA6NTQgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogQWRkIG1pc3NpbmcgY2hlY2sgZm9yIGVyYXNlZCBkZXN0IHRvIGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcigpCgogICAgVGhlIGNoZWNrIGZvciBhbiBzdWZmaWNpZW50bHkgZXJhc2VkIGRlc3RpbmF0aW9uIHdhcyBtaXNzaW5nIGluIHRoZQogICAgYnVmZmVyZWQgd3JpdGUgZnVuY3Rpb24gb2YgdGhlIGNmaSBmbGFzaCBkcml2ZXIgKHdoZW4KICAgIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIGlzIGRlZmluZWQpLiBUaGlzIHBhdGNoIGFkZHMgdGhpcyBjaGVjayB0byB0aGF0CiAgICB3cml0aW5nIHRvIHN1Y2ggYSByZWdpb24gd2lsbCBmYWlsIHdpdGggdGhlIGN1cnJlY3QgZXJyb3IgbWVzc2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzNlZDczYmMwZTM4ZDBmMmI1YzE4M2Q0NjI5ZDhmMjA3ZTViOTk5NApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gTm92IDEyIDEwOjU2OjE3IDIwMDcgKzAxMDAKCiAgICBTb21lIGNvbmZpZ3VyYXRpb24gdXBkYXRlcyBmb3IgdGhlIFRRTTUyMDAgYmFzZWQgVEI1MjAwIGJvYXJkOgoKICAgIC0gZW5hYmxlIGNvbW1hbmQgbGluZSBoaXN0b3J5CiAgICAtIGluY3JlYXNlIG1hbGxvYyBzcGFjZSAoYmVjYXVzZSBvZiBiaWdnZXIgZmxhc2ggc2VjdG9ycykKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBlMzE4ZDllOTAyMWEwYWY3NTA4MTcxZjg0ZWQwOWQwZTc5ZjAyODRlCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTE6MTA6MDggMjAwNyArMDIwMAoKICAgIFRRTTh4eDogdXNlIHRoZSBDRkkgZmxhc2ggZHJpdmVyIG9uIGFsbCBUUU04eHggYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMTFkOWVlYzQ3OWI0NzBlYWI5MjQyYWI5MzdmY2E3MGE4NzZkOTM3NgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU2IDIwMDcgKzAyMDAKCiAgICBUUU04ODVEOiBhZGp1c3QgZm9yIGRvdWJsZWQgZmxhc2ggc2VjdG9yIHNpemUgKyBzb21lIG1pbm9yIGZpeGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMjJkMWE1NmNiZmIwYmZmMzRmNDc3YjRkYjZhNTVkMDc2ZDgyOWI4MwpBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU0IDIwMDcgKzAyMDAKCiAgICBUUU04ODVEOiBFeGNoYW5nZWQgU0RSQU0gdGltaW5nIGJ5IGEgbW9yZSByZWxheGVkIHRpbWluZy4KCiAgICBDQVMtTGF0ZW5jeT0yLCBXcml0ZSBSZWNvdmVyeSBUaW1lIHRXUj0yCiAgICBUaGUgbWF4LiBzdXBwb3J0ZWQgYnVzIGZyZXF1ZW5jeSBpcyA2NiBNSHouIFRoZXJlZm9yZSwgY2hhbmdlZAogICAgdGhyZXNob2xkIHRvIHN3aXRjaCBmcm9tIDE6MSBtb2RlIHRvIDI6MSBmcm9tIDgwIE1IeiB0byA2NiBNSHouCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgYjk4OGI4Y2Q0NDM5ODliZTY1MTYxODg4ZWVhMDEyN2FkMDNmODQ2ZgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU2IDIwMDcgKzAyMDAKCiAgICBUUU04ODVEOiB1c2UgY2FsY3VsYXRlZCBjcHVjbGsgaW5zdGVhZCBvZiBtZWFzdXJpbmcgaXQKCiAgICBPbiB0aGUgVFFNODg1RCB0aGUgbWVhc3VyZW1lbnQgb2YgY3B1Y2xrIHdpdGggdGhlIFBJVCByZWZlcmVuY2UKICAgIHRpbWVyIGlzdCBub3QgbmVjZXNzYXJ5LiBTaW5jZSBhbGwgbW9kdWxlIHZhcmlhbnRzIHVzZSB0aGUgc2FtZQogICAgZXh0ZXJuYWwgMTAgTUh6IG9zY2lsbGF0b3IsIHRoZSBjcHVjbGsgb25seSBkZXBlbmRzIG9uIHRoZSBQTEwKICAgIGNvbmZpZ3VyYXRpb24gLSB3aGljaCBpcyByZWFkYWJsZSBieSBzb2Z0d2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA0OTJjNzA0OTg2OTM0OGQzMTE2OGRlOGRhZDg5NjUxMzE1ZTQ2OGUwCkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTQ6NTQ6NDYgMjAwNyArMDIwMAoKICAgIFRRTTg4NUQ6IGZpeCBTRFJBTSByZWZyZXNoCgogICAgQXQgMTMzIE1IeiB0aGUgY3VycmVudCBTRFJBTSByZWZyZXNoIHJhdGUgaXMgdG9vIGZhc3QKICAgIChtZWFzdXJlZCA0ICogMS4xNyB1cykuCiAgICBDRkdfTUFNUl9QVEEgY2hhbmdlcyBmcm9tIDM5IHRvIDEyOC4gVGhpcyByZXN1bHQKICAgIGluIGEgcmVmcmVzaCByYXRlIG9mIDQgKiA3LjggdXMgYXQgdGhlIGRlZmF1bHQgY2xvY2sKICAgIDY2IE1Iei4gQXQgMTMzIE1IeiB0aGUgdmFsdWUgd2lsbCBiZSB0aGVuIDQgKiAzLjggdXMuCiAgICBUaGlzIGlzIGEgY29tcHJvbWlzZSB1bnRpbCBhIG5ldyBtZXRob2QgaXMgZm91bmQgdG8KICAgIGFkanVzdCB0aGUgcmVmcmVzaCByYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGRhYmFkNGI5YmM0NjkwOGUzMDFmNzNjZTc2YjM4YjIzNjI2YTk2ZTkKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJVGh1IFNlcCAyNyAxNDo1NDo0NiAyMDA3ICswMjAwCgogICAgVFFNODYwTTogU3VwcG9ydCBmb3IgMTBjb2wgU0RSQU1zLCBtYXguIDEyOCBNaUIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA2MWZiMTVjNTE2ZmVmNTYzMWUzMDVmMTk3NmQ3YjNhNjc5NzI1ODU2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyNyAwMTo1Mjo1MCAyMDA3ICswMTAwCgogICAgRml4IGNvZGluZyBzdHlsZSBpc3N1ZXM7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NjdiY2VlMTFmZTI2YWQ0MjJmMmRlOTcxYWE3MDg2NjA3OTg3MGYyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTU6MzY6MTggMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogQWRkIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBmaXh1cHMKCiAgICBSdW4gZml4dXBzIGJhc2VkIG9uIHRoZSBKRURFQyBtYW51ZmFjdHVyZXIgSUQgaW5kZXBlbmRlbnQgb2YgdGhlCiAgICBjb21tYW5kIHNldCBJRC4KCiAgICBUaGlzIGNoYW5nZXMgY3VycmVudCBiZWhhdmlvdXI6IFByZXZpb3VzbHksIGdlb21ldHJ5IHJldmVyc2FsIGZvciBBTUQKICAgIGNoaXBzIHdlcmUgZG9uZSBiYXNlZCBvbiB0aGUgY29tbWFuZCBzZXQgSUQsIHdoaWxlIHRoZXkgYXJlIG5vdyBkb25lCiAgICBiYXNlZCBvbiB0aGUgSkVERUMgbWFudWZhY3R1cmVyIGFuZCBkZXZpY2UgSUQuCgogICAgQWxzbyBhZGQgZml4dXAgZm9yIHRvcC1ib290IEF0bWVsIGNoaXBzLiBBIGZpeHVwIGlzIG5lZWRlZCBmb3IKICAgIEFUNDlCVjY0MTYoVCkgdG9vLCBidXQgc2luY2UgdS1ib290IGN1cnJlbnRseSBvbmx5IHJlYWRzIHRoZSBsb3cgYnl0ZQogICAgb2YgdGhlIGRldmljZSBJRCwgdGhlcmUncyBubyB3YXkgdG8gdGVsbCBpdCBhcGFydCBmcm9tIEFUNDlCVjY0MkQsCiAgICB3aGljaCBzaG91bGQgbm90IGhhdmUgdGhpcyBmaXh1cC4gU2luY2UgQVQ0OUJWNjQyRCBzdXBwb3J0IGlzCiAgICBuZWNlc3NhcnkgdG8gZ2V0IEFUTkdXMTAwIGJvYXJkIHN1cHBvcnQgaW50byBtYWlubGluZSwgSSd2ZSBjb21tZW50ZWQKICAgIG91dCB0aGUgZml4dXAgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwZGRmMDZkZGY2YjRiZDA1N2FkNGM1ZjBkZmZlYTc4NzBiYTA2YTJhCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTU6MzY6MTcgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogQWRkIGNtZHNldC1zcGVjaWZpYyBpbml0IGZ1bmN0aW9ucwoKICAgIE1vdmUgdGhpbmdzIGxpa2UgcmVhZGluZyBKRURFQyBJRHMgYW5kIGZpeGluZyB1cCBnZW9tZXRyeSByZXZlcnNhbAogICAgaW50byBzZXBhcmF0ZSBmdW5jdGlvbnMuIFRoZSBnZW9tZXRyeSByZXZlcnNhbCBmaXh1cCBpcyBub3cgcGVyZm9ybWVkCiAgICBieSBhbHRlcmluZyB0aGUgcXJ5IHN0cnVjdHVyZSBkaXJlY3RseSwgd2hpY2ggbWFrZXMgdGhlIHNlY3RvciBpbml0CiAgICBjb2RlIHNsaWdodGx5IGNsZWFuZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZTIzNzQxZjRhNmQ4MDQ3NTIwZWYwZDQ5NzE3NjI3NDliMzU4N2QzMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE1OjM2OjE2IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IFJlYWQgd2hvbGUgUVJZIHN0cnVjdHVyZSBpbiBvbmUgZ28KCiAgICBSZWFkIG91dCB0aGUgd2hvbGUgQ0ZJIFN0YW5kYXJkIFF1ZXJ5IHN0cnVjdHVyZSBhZnRlciBzdWNjZXNzZnVsIGNmaQogICAgaWRlbnRpZmljYXRpb24uIFRoaXMgYWxsb3dzIHN1YnNlcXVlbnQgY29kZSB0byBhY2Nlc3MgdGhpcyBpbmZvcm1hdGlvbgogICAgZGlyZWN0bHkgd2l0aG91dCBoYXZpbmcgdG8gZ28gdGhyb3VnaCBmbGFzaF9yZWFkX3VjaGFyKCkgYW5kIGZyaWVuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZGY5YzI1ZWEwNGIzOGEwZTA1ZDRmOGM3M2M1Y2MxNDRjZGFmYTdkYgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gRGVjIDE3IDExOjAyOjQ0IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogRml4IGxvZ2ljIGludmVyc2lvbiBpbiBkaXNhYmxlX2ludGVycnVwdHMoKQoKICAgIGRpc2FibGVfaW50ZXJydXB0cygpIHNob3VsZCByZXR1cm4gbm9uemVybyBpZiBpbnRlcnJ1cHRzIHdlcmUKICAgIF9lbmFibGVkXyBiZWZvcmUsIG5vdCBkaXNhYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhY2FjNDc1MjEyY2JlZGIxN2IzMjFhMzYzYTFjODc4ZTJiNDdiMzdmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTY6NTE6MjIgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBFbmFibGUgaW50ZXJydXB0cyBhdCBib290dXAKCiAgICBUaGUgdGltZXIgY29kZSBkZXBlbmRzIG9uIHRoZSB0aW1lciBpbnRlcnJ1cHQgdG8ga2VlcCB0cmFjayBvZiB0aGUKICAgIHVwcGVyIDMyIGJpdHMgb2YgdGhlIGN5Y2xlIGNvdW50ZXIuIFRoaXMgb2J2aW91c2x5IGRvZXNuJ3Qgd29yayB3aGVuCiAgICBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCB0aGUgd2hvbGUgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5NTcwYmNkODdmNGRiMjU1NTE0ZjQzYjY3MDE3NDZjNDEyZjhmZWYwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMTUgMTA6MDM6NDUgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBGaXggd3JvbmcgcGluIHNldHVwIGZvciBVU0FSVDMKCiAgICBBcyByZXBvcnRlZCBieSBHZXJoYXJkIEJlcmdob2ZlcjoKCiAgICBpbiAiZ3Bpb19lbmFibGVfdXNhcnQzIiB0aGUgY29ycmVjdCBwaW5zIGZvciBVU0FSVCAzIGFyZSBQQjE3IGFuZCBQQjE4CiAgICBpbnN0ZWFkIG9mIFBCMTggYW5kIFBCMTkuCgogICAgd2hpY2ggaXMgb2J2aW91c2x5IGNvcnJlY3QuIFRoZXJlJ3MgY3VycmVudGx5IG5vIGNvZGUgdGhhdCB1c2VzCiAgICBVU0FSVDMsIGJ1dCBjdXN0b20gYm9hcmRzIG1heSBydW4gaW50byBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwOWVhMGRlMDNkY2MzZWU3YWYwNDViMGI1NzIyMjdiZGEyYzFjOTE4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMSAxMjo0NDoyMCAyMDA3ICswMTAwCgogICAgUkVBRE1FOiBSZW1vdmUgQVRTVEsxMDAwIGRhdWdodGVyYm9hcmQgbGlzdAoKICAgIEFzIG5vdGVkIGJ5IEtpbSBQaGlsbGlwcywgdGhlc2UgbGlzdHMgdGVuZCB0byBiZWNvbWUgb3V0IG9mIGRhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzgxY2JiYWQyMWNiMGFlOTgzZTJlNzk2MjExMjAyMjM0Y2RjOGJlMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUdWUgT2N0IDMwIDE0OjU2OjM2IDIwMDcgKzAxMDAKCiAgICBBZGQgQVRTVEsxMDBbMjM0XSB0byBNQUlOVEFJTkVSUwoKICAgIEFkZCBhbGwgdGhlIEFUU1RLMTAwMCBkYXVnaHRlcmJvYXJkcyB0byBNQUlOVEFJTkVSUyBhbG9uZyB3aXRoIHRoZWlyCiAgICAibW90aGVyIi4gQWxzbyB1cGRhdGUgdGhlIGVudHJ5IGZvciBBVFNUSzEwMDAgdG8gYmUgbm90IG9ubHkgYWJvdXQgdGhlCiAgICBBUDcwMDAgQ1BVOyBpdCdzIGludGVuZGVkIHRvIGhhbmRsZSBhbGwgQ1BVcyBpbiB0aGUgQVQzMkFQIGZhbWlseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2NGZmMjM1N2IxNzI3MjEzODAzNTkxODEzZGJjNzc5YzkyNGJmNzcyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MDI6NTQgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwNCBib2FyZAoKICAgIEFUU1RLMTAwNCBpcyBhIGRhdWdodGVyYm9hcmQgZm9yIEFUU1RLMTAwMCB3aXRoIHRoZSBBVDMyQVA3MDAyIENQVSwKICAgIHdoaWNoIGlzIGEgZGVyaXZhdGl2ZSBvZiBBVDMyQVA3MDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDY2NzU2OGRiMTU3ZjM3NGI4NWFiZDdlMDM1OTZkZGQxZjBiMjU2ODEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzowMjo1NCAyMDA3ICswMTAwCgogICAgQVZSMzI6IEFkZCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAzIGJvYXJkCgogICAgQVRTVEsxMDAzIGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgQVRTVEsxMDAwIHdpdGggdGhlIEFUMzJBUDcwMDEgQ1BVLAogICAgd2hpY2ggaXMgYSBkZXJpdmF0aXZlIG9mIEFUMzJBUDcwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNWZlZTg0YTc5NGE1MWVjODMwNTQ4Y2RhNDg1YTc3MGVmYjAxOGI5MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjIzOjMzIDIwMDcgKzAxMDAKCiAgICBBVlIzMjogTWFrZSBzb21lIEFUMzJBUDcwMHggcGVyaXBoZXJhbHMgb3B0aW9uYWwKCiAgICBBZGQgYSBjaGlwLWZlYXR1cmVzIGZpbGUgcHJvdmlkaW5nIGRlZmluaXRpb25zIG9mIHRoZSBmb3JtCgogICAgQVQzMkFQNzAweF9DSElQX0hBU188cGVyaXBoZXJhbD4KCiAgICB0byBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBnaXZlbiBwZXJpcGhlcmFsIG9uIHRoZSBjdXJyZW50bHkKICAgIHNlbGVjdGVkIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzZmMjhmOGE5NjA1ZWU1ZGNmYTMzMDQ4MmNmYzYyMTcxMjYxYWY5NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjA5OjU2IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogUmVuYW1lIGF0MzJhcDcwMDAgLT4gYXQzMmFwNzAweAoKICAgIFRoZSBTb0Mtc3BlY2lmaWMgY29kZSBmb3IgYWxsIHRoZSBBVDMyQVA3MDB4IENQVXMgaXMgcHJhY3RpY2FsbHkKICAgIGlkZW50aWNhbDsgdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHNvbWUgY2hpcHMgaGF2ZSBsZXNzIGZlYXR1cmVzCiAgICB0aGFuIG90aGVycy4gQnkgZG9pbmcgdGhpcyByZW5hbWUsIHdlIGNhbiBhZGQgc3VwcG9ydCBmb3IgdGhlIEFQNzAwMAogICAgZGVyaXZhdGl2ZXMgc2ltcGx5IGJ5IG1ha2luZyBzb21lIGZlYXR1cmVzIGNvbmRpdGlvbmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDRkNWZhOTljNzNmMzU0ZTdjZjk4NWVmY2Y0MTdlYTU1Y2EyZjZhNWUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEp1biAyOSAxODoyMjozNCAyMDA3ICswMjAwCgogICAgYXRtZWxfbWNpOiBTaG93IFNSIHdoZW4gYmxvY2sgcmVhZCBmYWlscwoKICAgIFNob3cgY29udHJvbGxlciBzdGF0dXMgYXMgd2VsbCBhcyBjYXJkIHN0YXR1cyB3aGVuIGFuIGVycm9yIG9jY3VycwogICAgZHVyaW5nIGJsb2NrIHJlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODY5N2U2YTE5YjEwZjUxNDUxMWI2YTljODZkZTg4YmQxMDhjNGY4ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IERlYyAxMyAxNDo1Mjo1MyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBCcmluZyA0eHggZmR0IHN1cHBvcnQgdXAtdG8tZGF0ZQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlIHRoZSA0eHggZmR0IHN1cHBvcnQuIEl0IGVuYWJsZWQgZmR0IGJvb3RpbmcKICAgIG9uIHRoZSBBTUNDIEtpbGF1ZWEgYW5kIFNlcXVvaWEgZm9yIG5vdy4gTW9yZSBjYW4gZm9sbG93IGxhdGVyCiAgICBxdWl0ZSBlYXNpbHkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEyZDMwYWE3OTc3OWMyYWE3YTk5OGJiYWU0YzA3NWY4MjJhNTMwMDQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjozNCAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBVc2UgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpCgogICAgVXNlIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKSB0byBjb252ZXJ0IGZyb20gcGh5c2ljYWwgdG8KICAgIHZpcnR1YWwgYWRkcmVzc2VzLiBUaGlzIGdpdmVzIHRoZSBhcmNoIGEgY2hhbmNlIHRvIHByb3ZpZGUgYW4gdW5jYWNoZWQKICAgIG1hcHBpbmcgZm9yIGZsYXNoIGFjY2Vzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDRkN2Q2OTM2ZWIyOWFmN2NjYTMzMDkzNzgwODMxMmFhNWY2MTQ1NGQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjozMyAyMDA3ICswMTAwCgogICAgSW50cm9kdWNlIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKQoKICAgIG1hcF9waHlzbWVtKCkgcmV0dXJucyBhIHZpcnR1YWwgYWRkcmVzcyB3aGljaCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgYQogICAgZ2l2ZW4gcGh5c2ljYWwgYWRkcmVzcyB3aXRob3V0IGludm9sdmluZyB0aGUgY2FjaGUuIHVubWFwX3BoeXNtZW0oKQogICAgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSB2aXJ0dWFsIGFkZHJlc3MgcmV0dXJuZWQgYnkgbWFwX3BoeXNtZW0oKSBpcwogICAgbm8gbG9uZ2VyIG5lZWRlZC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBzdHViIGltcGxlbWVudGF0aW9uIHdoaWNoIHNpbXBseSByZXR1cm5zIHRoZQogICAgcGh5c2ljYWwgYWRkcmVzcyBjYXN0IHRvIGEgdWNoYXIgKiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgZXhjZXB0IEFWUjMyLAogICAgd2hpY2ggY29udmVydHMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgdG8gYW4gdW5jYWNoZWQgdmlydHVhbCBtYXBwaW5nLgogICAgdW5tYXBfcGh5c21lbSgpIGlzIGEgbm8tb3Agb24gYWxsIGFyY2hpdGVjdHVyZXMsIGJ1dCBpZiBhbnkKICAgIGFyY2hpdGVjdHVyZSBuZWVkcyB0byBkbyBzdWNoIG1hcHBpbmdzIHRocm91Z2ggdGhlIFRMQiwgdGhpcyBpcyB0aGUKICAgIGhvb2sgd2hlcmUgdGhvc2UgVExCIGVudHJpZXMgY2FuIGJlIGludmFsaWRhdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGNkYmFlZmI1ZjVmMDNlNTQ0NTVkMDQzOWRjZjZkYmQ5N2VhZDFmOWQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjozMiAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBJbnRyb2R1Y2UgcmVhZCBhbmQgd3JpdGUgYWNjZXNzb3JzCgogICAgSW50cm9kdWNlIGZsYXNoX3JlYWR7OCwxNiwzMiw2NCkgYW5kIGZsYXNoX3dyaXRlezgsMTYsMzIsNjR9IGFuZCB1c2UKICAgIHRoZW0gdG8gYWNjZXNzIHRoZSBmbGFzaCBtZW1vcnkuIFRoaXMgbWFrZXMgaXQgY2xlYXJlciB3aGVuIHRoZSBmbGFzaAogICAgaXMgYWN0dWFsbHkgYmVpbmcgYWNjZXNzZWQ7IG1lcmVseSBkZXJlZmVyZW5jaW5nIGEgdm9sYXRpbGUgcG9pbnRlcgogICAgbG9va3MganVzdCBsaWtlIGFueSBvdGhlciBraW5kIG9mIGFjY2Vzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA4MTI3MTFjZTZiM2EzODYxMjVkY2YwZDZhNTk1ODhlNDYxYWJiYjg3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzEgMjAwNyArMDEwMAoKICAgIEltcGxlbWVudCBfX3Jhd197cmVhZCx3cml0ZX1bYndsXSBvbiBhbGwgYXJjaGl0ZWN0dXJlcwoKICAgIFRoaXMgYWRkcyBpbXBsZW1lbnRhdGlvbnMgb2YgX19yYXdfcmVhZFtid2xdIGFuZCBfX3Jhd193cml0ZVtid2xdIHRvCiAgICBtNjhrLCBwcGMsIG5pb3MgYW5kIG5pb3MyLiBUaGUgbTY4ayBhbmQgcHBjIGltcGxlbWVudGF0aW9ucyB3ZXJlIHRha2VuCiAgICBmcm9tIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGJlNjBhOTAyMWM4MmZjNWFlY2Q1YjJiMWZjOTZmNzBhOWM4MWJiY2QKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE9jdCA2IDE4OjU1OjM2IDIwMDcgKzAyMDAKCiAgICBjZmlfZmxhc2g6IFJlb3JkZXIgZnVuY3Rpb25zIGFuZCBlbGltaW5hdGUgZXh0cmEgcHJvdG90eXBlcwoKICAgIFJlb3JkZXIgdGhlIGZ1bmN0aW9ucyBpbiBjZmlfZmxhc2guYyBzbyB0aGF0IGVhY2ggZnVuY3Rpb24gb25seSB1c2VzCiAgICBmdW5jdGlvbnMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBiZWZvcmUgaXQuIFRoaXMgYWxsb3dzIHRoZSBzdGF0aWMKICAgIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMgbmVhciB0aGUgdG9wIHRvIGJlIGVsaW1pbmF0ZWQgYW5kIG1pZ2h0IGFsbG93CiAgICBnY2MgdG8gZG8gYSBiZXR0ZXIgam9iIGlubGluaW5nIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzMDU1NzkzYmNiZGYyNGIxZjgxMTdmNjA2ZmZiNzY2ZDMyZWI3NjZmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MjkgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogTWFrZSBzb21lIG5lZWRsZXNzbHkgZ2xvYmFsIGZ1bmN0aW9ucyBzdGF0aWMKCiAgICBNYWtlIGZ1bmN0aW9ucyBub3QgZGVjbGFyZWQgaW4gYW55IGhlYWRlciBmaWxlIHN0YXRpYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3ZTViOWI0NzE1MThjNTY1MmZlYmM2OGJhNjJiNDMyMTkzZDZhYmY0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MjggMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogQnJlYWsgbG9uZyBsaW5lcwoKICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8ga2VlcCBhbGwgbGluZXMgaW4gdGhlIGNmaV9mbGFzaCBkcml2ZXIgYmVsb3cgODAKICAgIGNvbHVtbnMuIFRoZXJlIGFyZSBhIGZldyBsaW5lcyBsZWZ0IHdoaWNoIGRvbid0IGZpdCB0aGlzIHJlcXVpcmVtZW50CiAgICBiZWNhdXNlIEkgY291bGRuJ3QgZmluZCBhbnkgdHJpdmlhbCB3YXkgdG8gYnJlYWsgdGhlbSAoaS5lLiBpdCB3b3VsZAogICAgdGFrZSBzb21lIHJlc3RydWN0dXJpbmcsIHdoaWNoIEkgaW50ZW5kIHRvIGRvIGluIGEgbGF0ZXIgcGF0Y2guKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDQyMDI2YzljYjNhNzY4NDliNDFlNmUyNGFiZmI3YjU2ODA3YTVjMWEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgRGVjIDExIDEzOjU5OjU3IDIwMDcgKzAxMDAKCiAgICBDRkk6IHN5bmNocm9uaXplIGNvbW1hbmQgb2Zmc2V0cyB3aXRoIExpbnV4IENGSSBkcml2ZXIKCiAgICBGaXhlcyBub24td29ya2luZyBDRkkgRmxhc2ggb24gdGhlIElua2E0eDAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4ZmYzZGU2MWZjNWY5YjNiMjE2NDdiY2UwODFhM2I3ZjcxMGYwZDRkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIERlYyA3IDEyOjE3OjM0IDIwMDcgLTA2MDAKCiAgICBIYW5kbGUgTVBDODV4eCBQQ0llIHJlc2V0IGVycmF0YSAoUENJLUV4IDM4KQoKICAgIE9uIHRoZSBNUEM4NXh4IGJvYXJkcyB0aGF0IGhhdmUgUENJZSBlbmFibGUgdGhlIFBDSWUgZXJyYXRhIGZpeC4KICAgIChNUEM4NTQ0RFMsIE1QQzg1NDhDRFMsIE1QQzg1NjhNRFMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODJhYzhjOTcxNDVhNGMzYmY4YjNkYmZhZDAwZmE5NmU5MjBmOWI5YwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAxMjowNDozMCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIEZyZWVzY2FsZSBNUEM4NXh4IEFEUy9DRFMvTURTIGJvYXJkIGNvbmZpZwoKICAgICogRW5hYmxlZCBDT05GSUdfQ01EX0VMRgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDQzNTc5MzIyOWNlMjlhNDI3OTdjMWVkYzM5ZjViMzRmOTg3ZjkxYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAwNDo1OToyNiAyMDA3IC0wNjAwCgogICAgSGFuZGxlIEFzeW5jaHJvbm91cyBERFIgY2xvY2sgb24gODV4eAoKICAgIFRoZSBNUEM4NTcyIGludHJvZHVjZXMgdGhlIGNvbmNlcHQgb2YgYW4gYXN5bmNocm9ub3VzIEREUiBjbG9jayB3aXRoCiAgICByZWdhcmRzIHRvIHRoZSBwbGF0Zm9ybSBjbG9jay4KCiAgICBJbnRyb2R1Y2UgZ2V0X2Rkcl9mcmVxKCkgdG8gcmVwb3J0IHRoZSBERFIgZnJlcSByZWdhcmRsZXNzIG9mIHN5bmMvYXN5bmMKICAgIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyMmFiYjJkMmVhZjdiNzk1YTY5MjNjNjI3M2VjOWNiNTNmZGE5YTEwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAxMDozNDoyOCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIEZyZWVzY2FsZSBNUEM4NXh4IEFEUy9DRFMvTURTIGJvYXJkIGNvbmZpZwoKICAgICogUmVtb3ZlZCBzb21lIG1pc2MgZW52aXJvbm1lbnQgc2V0dXAKICAgICogRW5hYmxlZCBDT05GSUdfQ01ETElORV9FRElUSU5HCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0MTVhNjEzYmFiYjg0ZDVlNWQ1YjQyZThlNTUzODY4YzcxZmMzYTY0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAxMDo0Nzo0NCAyMDA3IC0wNjAwCgogICAgTW92ZSB0aGUgTVBDODU0MS9NUEM4NTU1L01QQzg1NDggQ0RTIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzJkOTQzZmZiZmQzMzU5YjNiNDVkMTc3YjQzNzM3OWQyY2I4NmZiZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MTY6MTggMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NDAgQURTIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODcwY2VhYzViM2EzNDg2YzEwOTM5NmUwMDVhZjgxYWU3NjJiNTcxMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NjAgQURTIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWNiY2E4NzZmYjNmZWMyNWNkOWM1NWIwZWZjODFmZjYxOGZmNTI2MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MTM6NDcgMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NjggTURTIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTg1M2Q1NmM1OWIzMzQxNTMwNDUzMTQ0MzYzMzgwODczNmFjZmM2ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDI6MTg6NTkgMjAwNyAtMDYwMAoKICAgIFVzZSBzdGFuZGFyZCBMQVdBUl9UUkdUX0lGXyogZGVmaW5lcyBmb3IgTEFXIHNldHVwIG9uIDg1eHgKCiAgICBXZSBhbHJlYWR5IGhhZCBkZWZpbmVzIGZvciBMQVdBUl9UUkdUX0lGXyogdGhhdCB3ZSBzaG91bGQgdXNlCiAgICByYXRoZXIgdGhhbiBjcmVhdGluZyBuZXcgb25lcy4gIEFsc28sIGFkZGVkIHNvbWUgbWlzc2luZyBkZWZpbmVzIGZvcgogICAgUENJRSB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDRkYjQwMDg5MmRhMzdiNzZhNTg1ZTMzMmEwYzEzNzk1NGFkMjAxNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDI6MTA6MDkgMjAwNyAtMDYwMAoKICAgIFN0b3AgdXNpbmcgaW1tYXBfdCBvbiA4NXh4CgogICAgSW4gdGhlIGZ1dHVyZSB0aGUgb2Zmc2V0cyB0byB2YXJpb3VzIGJsb2NrcyBtYXkgbm90IGJlIGluIHNhbWUgbG9jYXRpb24uCiAgICBNb3ZlIHRvIHVzaW5nIENGR19NUEM4NXh4XypfQUREUiBhcyB0aGUgYmFzZSBvZiB0aGUgcmVnaXN0ZXJzCiAgICBpbnN0ZWFkIG9mIGdldHRpbmcgaXQgdmlhICZpbW1hcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI3MTQyMjNmOGUwNGFiM2U0MTMzZmY2NTg3MmVlZjM2NmQ5MGJmZWEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAxOjIzOjA5IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgQ09ORklHX09GX0ZMQVRfVFJFRSByZWxhdGVkIGNvZGUgZnJvbSBtcGM4NXh4IHNpbmNlIHdlIG5vdyB1c2UgbGliZmR0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjNDgwODYxYmYwMDAxNTZlNmEzZTkzMmMyNThkYjU5ZmYyMjEyZGQzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMTowNjoxOSAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NjggTURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTY4IE1EUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxNTYzZjU2ZTBjNjhmNjkyMGY5NTYzODJkNmQxM2JlZTNmMDFjMGY3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxNCAxNTo1MjowNiAyMDA3IC0wNTAwCgogICAgQWRkIFBDSSBFeHByZXNzIHN1cHBvcnQgb24gTVBDODU2OE1EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGI5MGQyNTQ5NzYyNWI5MGZmYTNmMjkxMWEwODk1Y2EyMzc1NTZmZjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAwOjExOjQ0IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODV4eCBDRFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1eHggQ0RTIGNvbmZpZyB0byB1c2UgbGliZmR0IGFuZCBhc3N1bWUgdXNlIG9mIGFsaWFzZXMgZm9yCiAgICBldGhlcm5ldCwgcGNpLCBhbmQgc2VyaWFsIGZvciB0aGUgdmFyaW91cyBmaXh1cHMgdGhhdCBhcmUgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBmZDVlYzY2YjEwNTIxYTA1N2FkNzNlNjlhYjVmMGY5ZWFmYmEyNTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDI4IDIyOjU0OjI3IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODU0MCBBRFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NDAgQURTIGNvbmZpZyB0byB1c2UgbGliZmR0IGFuZCBhc3N1bWUgdXNlIG9mIGFsaWFzZXMgZm9yCiAgICBldGhlcm5ldCwgcGNpLCBhbmQgc2VyaWFsIGZvciB0aGUgdmFyaW91cyBmaXh1cHMgdGhhdCBhcmUgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDVjZTcxNTgwMmY2YzUwZGM3OGIzNDA1YjkyZjE4NGIxZTM3MTA1MTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDI4IDIyOjQwOjMxIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODU2MCBBRFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NjAgQURTIGNvbmZpZyB0byB1c2UgbGliZmR0IGFuZCBhc3N1bWUgdXNlIG9mIGFsaWFzZXMgZm9yCiAgICBldGhlcm5ldCwgcGNpLCBhbmQgc2VyaWFsIGZvciB0aGUgdmFyaW91cyBmaXh1cHMgdGhhdCBhcmUgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFhZmVlZmJkYjhiMDI5ZjVjYTJhMTk1NTk4ZDBhNTAxYTYwNmVlYTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDI4IDAwOjM2OjMzIDIwMDcgLTA2MDAKCiAgICBTdG9wIHVzaW5nIGltbWFwX3QgZm9yIGNwbSBvZmZzZXQgb24gODV4eAoKICAgIEluIHRoZSBmdXR1cmUgdGhlIG9mZnNldHMgdG8gdmFyaW91cyBibG9ja3MgbWF5IG5vdCBiZSBpbiBzYW1lIGxvY2F0aW9uLgogICAgTW92ZSB0byB1c2luZyBDRkdfTVBDODV4eF9DUE1fQUREUiBhcyB0aGUgYmFzZSBvZiB0aGUgQ1BNIHJlZ2lzdGVycwogICAgaW5zdGVhZCBvZiBnZXR0aW5nIGl0IHZpYSAmaW1tYXAtPmltX2NwbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY1OWI1NWE1YjhmY2FkYWE5OTc4MWJhNDhlN2EzOGU5NTZhZmE1MjcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgTm92IDI3IDIzOjI1OjAyIDIwMDcgLTA2MDAKCiAgICBTdG9wIHVzaW5nIGltbWFwX3QgZm9yIGd1dHMgb2Zmc2V0IG9uIDg1eHgKCiAgICBJbiB0aGUgZnV0dXJlIHRoZSBvZmZzZXRzIHRvIHZhcmlvdXMgYmxvY2tzIG1heSBub3QgYmUgaW4gc2FtZSBsb2NhdGlvbi4KICAgIE1vdmUgdG8gdXNpbmcgQ0ZHX01QQzg1eHhfR1VUU19BRERSIGFzIHRoZSBiYXNlIG9mIHRoZSBndXRzIHJlZ2lzdGVycwogICAgaW5zdGVhZCBvZiBnZXR0aW5nIGl0IHZpYSAmaW1tYXAtPmltX2d1ci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDUwYzAzYzhjZjQ5NGQ5MWNkZWMzOTY3MGQ5NTMzN2M3NDNlMTZlYzkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgTm92IDI3IDIyOjQyOjM0IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODU0NCBEUyBjb25maWcKCiAgICAqIFJlbW92ZWQgSEFTX0VUSDIvSEFTX0VUSDMgLSBNUEM4NTQ0IG9ubHkgaGFzIFRTRUMxLzIKICAgICogUmVtb3ZlZCBzb21lIG1pc2MgZW52aXJvbm1lbnQgc2V0dXAKICAgICogTW92ZWQgdG8gdXNpbmcgZmR0ZmlsZSAmIGZkdGFkZHIgYXMgZmR0IGVudiB2YXIgbmFtZXMKICAgICogRW5hYmxlZCBDT05GSUdfQ01ETElORV9FRElUSU5HCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhZGRjZTU3ZTJlNGM0OWU3N2ZmYjIwMjBhODQ2OTA3MTNiYjE4YjQ3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxNzoxMjoyNCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDREUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU0NERTIGNvbmZpZyB0byB1c2UgbGliZmR0IGFuZCBhc3N1bWUgdXNlIG9mIGFsaWFzZXMgZm9yCiAgICBldGhlcm5ldCwgcGNpLCBhbmQgc2VyaWFsIGZvciB0aGUgdmFyaW91cyBmaXh1cHMgdGhhdCBhcmUgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY4NTJjZTcyZjEwMGNhYmQxZjExYzIxYzA4NWEwYWQ4ZWNhOWZiNjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAwOjE1OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgbGliZmR0IGJhc2VkIGZ0X2NwdV9zZXR1cCBmb3IgbXBjODV4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2I5YWJkYzQ0OGExYzJjNmE0YzJhYTI5MjcyNGI0ZDFhMDUxNjZhOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxMSAxMzozODoxOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDb3JyZWN0IEdQSU8gb2Zmc2V0IGluIGdwaW9fY29uZmlnKCkKCiAgICBUaGFua3MgdG8gR2FyeSBKZW5uZWpvaG4gZm9yIHBvaW50aW5nIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ODA5YTI3MTNiMWNlYWYzZGE1NWQ5ZDc4NTQ3MDI5NGYxNWRlMDZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDExIDExOjQ2OjAxIDIwMDcgKzAxMDAKCiAgICBydGM6IEZpeCBtZXJnaW5nIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2NmYzEyYTdkY2ZkYjM1MGUyYWI3NmRiNGRhZmNjMzBmN2U3N2MyYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IERlYyA4IDE0OjQ3OjM0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IDQwNUVYOiBDb3JyZWN0bHkgZW5hYmxlIFVTQiBwaW5zCgogICAgVGhpcyBwYXRjaCBzZWxlY3RzIHRoZSBVU0IgZGF0YSBwaW5zIGluIHRoZSA0MDVFWCBHUElPIGFuZCBNRkMgKG11bHRpCiAgICBmdW5jdGlvbiBjb250cm9sKSByZWdpc3RlcnMuIFRoaXMgaXMgZG9uZSBmb3IgdGhlIEFNQ0MgS2lsYXVlYSBhbmQKICAgIE1ha2FsdSBldmFsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTY5MmMyNzM0YTQ3ZjIzYjQ0YTBmNjgwNDJhM2UyY2E4ZDFiZmIzOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IERlYyA4IDA4OjI1OjA5IDIwMDcgKzAxMDAKCiAgICBDRkk6IENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgxYjIwY2NjMmQ3OTVhZTlhMTE5OWRiNWE1MGFkOWMyOGQxZTRkMjIKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglGcmkgRGVjIDcgMjM6MzU6MDIgMjAwNyArMDEwMAoKICAgIENGSTogc3VwcG9ydCBKRURFQyBmbGFzaCByb21zIGluIENGSS1mbGFzaCBmcmFtZXdvcmsKCiAgICBUaGUgZm9sbG93aW5nIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igbm9uLUNGSSBmbGFzaCBST01TLCBieSBob29raW5nIGludG8gdGhlCiAgICBDRkkgZmxhc2ggY29kZSBhbmQgdXNpbmcgbW9zdCBvZiBpdHMgY29kZSwgYXMgcmVjZW50bHkgZGlzY3Vzc2VkIGhlcmUgaW4gdGhlCiAgICB0aHJlYWQgIk1peGluZyBDRkkgYW5kIG5vbi1DRkkgZmxhc2hzIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMwMWIxN2RkODU2ZmExMjBiMjk3MGY1MGQ5NTk4NTQ2YTQ5MjdlYzMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgTm92IDI4IDIxOjI0OjUwIDIwMDcgLTA1MDAKCiAgICBDb25kaXRpb25hbGx5IGNvbXBpbGUgZmR0X2ZpeHVwX2V0aGVybmV0KCkKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3M6IE9uIGJvYXJkcyB0aGF0IGRvbid0IGhhdmUgZXRoZXJuZXRzIGRlZmluZWQsCiAgICBkb24ndCBjb21waWxlIGZkdF9maXh1cF9ldGhlcm5ldCgpLgoKY29tbWl0IDI0NmQ0YWU2YmMyODJiYzE4NDEyMjRlMWM1ZmM0OWRjOTI1ZTBiZjcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgTm92IDI3IDIxOjU5OjQ2IDIwMDcgLTA2MDAKCiAgICBDb252ZXJ0IGJvYXJkcyB0aGF0IHNldCBtZW1vcnkgbm9kZSB0byB1c2UgZmR0X2ZpeHVwX21lbW9yeSgpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxNTFjOGIwOWIzNWVlYmU4ZmQ5MTM5Y2I2YzFkOTFjMjdiMjJmMDU4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxNzowNjoxNSAyMDA3IC0wNjAwCgogICAgQWRkZWQgZmR0X2ZpeHVwX3N0ZG91dCB0aGF0IHVzZXMgYWxpYXNlcyB0byBzZXQgbGludXgsc3Rkb3V0LXBhdGgKCiAgICBXZSB1c2UgYSBjb21iaW5hdGlvbiBvZiB0aGUgc2VyaWFsTiBhbGlhcyBhbmQgQ09ORklHX0NPTlNfSU5ERVggdG8KICAgIGRldGVybWluZSB3aGljaCBzZXJpYWwgYWxpYXMgd2Ugc2hvdWxkIHNldCBsaW51eCxzdGRvdXQtcGF0aCB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNjOTI3MjgxM2ZhZDg0YzY5MWQwZTQ5ODliYjE4YTNmZmViZGViZmMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDE0OjU3OjQ1IDIwMDcgLTA2MDAKCiAgICBBZGQgY29tbW9uIG1lbW9yeSBmaXh1cCBmdW5jdGlvbgoKICAgIEFkZCB0aGUgZnVuY3Rpb24gZmR0X2ZpeHVwX21lbW9yeSgpIHRvIGZpeHVwIHRoZSAvbWVtb3J5IG5vZGUgb2YgdGhlIGZkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOWM5MTA5ZTdmY2Y3YWMyY2ExOWM5NWI4YWM1NGI4ZDFjNzczYjE1NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTE6MTk6MTIgMjAwNyAtMDYwMAoKICAgIENvbmRpdGlvbmFsbHkgY29tcGlsZSBmZHRfc3VwcG9ydC5jCgogICAgTW9kaWZ5IGNvbW1vbi9NYWtlZmlsZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgZmR0X3N1cHBvcnQuYyBiYXNlZAogICAgb24gQ09ORklHX09GX0xJQkZEVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ4OGU3YmEwOTgwNzczNDc5ZTFhNjRiYWRiMjkzMTE2MDcxYjdlZjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDEwOjQxOjQwIDIwMDcgLTA2MDAKCiAgICBGaXggYnVpbGQgYnJlYWthZ2UgZHVlIHRvIGxpYmZkdCBpbXBvcnQKCiAgICBUaGUgSURTODI0NyBnb3QgbG9zdCBpbiB0aGUgdXBkYXRlIGFuZCBuZWVkIGFuIEFQSSB1cGRhdGUKICAgIGRvIHRvIHJlbmFtZSBvZiBmdW5jdGlvbnMgaW4gbGliZmR0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjhmMzg0YjE3MWJiZjFmYjJkYWZiMTA0NmU2ZDI1OWE2YjJmODcxNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBOb3YgMjMgMTk6NDM6MjAgMjAwNyAtMDUwMAoKICAgIEFkZCBzcGFjZXMgYXJvdW5kIHRoZSA9IGluIHRoZSBmZHQgcHJpbnQgZm9ybWF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMjk1OTJlY2JhM2I5MzJiOWIxNTJiY2VjNmMwYzA4MDY0MTJkYjRhMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJRnJpIERlYyA3IDAxOjI1OjM4IDIwMDcgKzA5MDAKCiAgICBzaDogTW92ZWQgZHJpdmVyIG9mIHRoZSBTdXBlckggZGVwZW5kZW5jZQoKICAgIFRoZSBjb21wb3NpdGlvbiBvZiB0aGUgZGlyZWN0b3J5IGluIHRoZSBkcml2ZXJzLyBjaGFuZ2VkLgogICAgSSBtb3ZlZCBTdXBlckggc2VyaWFsIGRyaXZlciBhbmQgbWFydWJ1biBQQ01DSUEgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA0MWJlOTY5ZjQ5NTcxMTVlZDdiMWZlOGI4OTBiZmFlZTk5ZDdhN2EyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IERlYyA2IDEwOjIxOjE5IDIwMDcgKzAxMDAKCiAgICBSZWxlYXNlIHYxLjMuMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2Y1OTMzYmExZTk3YTFjZDhmNWYyNDA3MGU4MjBmMjFkOTc2ZWFlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgNiAxMDoyMTowMyAyMDA3ICswMTAwCgogICAgQURTNTEyMSBCb2FyZDogZml4IGNvbXBpbGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGEyNzA0NGIxNGE5ZTkzNjc4YTgyZDdiMzVmMjAyYjkzZTc2ODdhYmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgNiAwNTo1ODo0MyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgaGFyZHdhcmUtZml4IGZvciBQQ0kvRE1BIGVycmF0YSBvbiBBTUNDIDQ0MFNQL1NQZSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIGhhcmR3YXJlLWZpeCBmb3IgdGhlIFBDSS9ETUEgZXJyYXRhJ3MgMTkrMjIgYnkKICAgIHNldHRpbmcgdGhlIEZJWEQgYml0IGluIHRoZSBTRFIwX01GUiByZWdpc3Rlci4gSGVyZSBhIGRlc2NyaXB0aW9uIG9mIHRoZQogICAgc3ltcHRvbXM6CgogICAgUHJvYmxlbSBEZXNjcmlwdGlvbgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBJZiBhIERNQSBpcyBwZXJmb3JtZWQgYmV0d2VlbiBtZW1vcnkgYW5kIFBDSSB3aXRoIHRoZSBETUEgMSBDb250cm9sbGVyCiAgICB1c2luZyBwcmVmZXRjaCwgYW5kIGFzIGEgcmVzdWx0IHVzZXMgYSBzcGVjaWFsIHB1cnBvc2UgYnVmZmVyIHNlbGVjdGVkIGJ5CiAgICB0aGUgUENJWG4gQnJpZGdlIE9wdGlvbnMgMSBSZWdpc3RlciAoUENJWG5fQlJER09QVDFbUkJQN10gLSBiaXRzIDMxLTI5KSwKICAgIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSB0cmFuc2ZlciBzZXF1ZW5jZSBpcyBwZXJmb3JtZWQgdHdpY2UuIFRoZQogICAgUFBDNDQwU1BlIFBDSSBDb250cm9sbGVyIHJlcXVlc3RzIG1vcmUgZGF0YSB0aGFuIHdhcyBuZWVkZWQgc3VjaCB0aGF0IGluCiAgICB0aGUgY2FzZSBvZiBlbmZvcmNlIG1lbW9yeSBwcm90ZWN0aW9uLCBhIGhvc3QgQ1BVICBleGNlcHRpb24gY2FuIG9jY3VyLgogICAgTm8gZGF0YSBpcyBjb3JydXB0ZWQsIGJlY2F1c2UgZGF0YSB0cmFuc2ZlciBpcyBzdG9wcGVkIGluIHRoZSBQQ0kKICAgIENvbnRyb2xsZXIuIFByZWZldGNoIGVuYWJsZSBpcyBzcGVjaWZpZWQgYnkgc2V0dGluZyBETUEgQ29uZmlndXJhdGlvbgogICAgUmVnaXN0ZXIgKEkyTzBfRE1BeF9DRkdbRFhFUERdIC0gYml0IDMxKSB0byAwLgoKICAgIEJlaGF2aW9yIHRoYXQgbWF5IGJlIG9ic2VydmVkIGluIGEgcnVubmluZyBzeXN0ZW0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIDEuIERNQSBwZXJmb3JtYW5jZSBpcyBkZWNyZWFzZWQgYmVjYXVzZSBvZiB0aGUgZG91YmxlIGFjY2VzcyBvbiB0aGUgUENJIGJ1cwogICAgaW50ZXJmYWNlLgogICAgMi4gSWYgYW4gaWxsZWdhbCBhY2Nlc3MgdG8gc29tZSBhZGRyZXNzIG9uIHRoZSBQQ0kgYnVzIGlzIGRldGVjdGVkIGF0IHRoZQogICAgc3lzdGVtIGxldmVsLCBhIG1hY2hpbmUgY2hlY2sgb3Igc2ltaWxhciBzeXN0ZW0gZXJyb3IgbWF5IG9jY3VyLgoKICAgIFdvcmthcm91bmRzIEF2YWlsYWJsZQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIDEuIERvIG5vdCBwcm9ncmFtIHByZWZldGNoLiBOb3RlIHRoYXQgYSBwcmVmZXRjaCBjb21tYW5kIGNhbm5vdCBiZSBwcm9ncmFtbWVkCiAgICB3aXRob3V0IHNlbGVjdGluZyBhIHNwZWNpYWwgcHVycG9zZSBidWZmZXIuCiAgICAyLiBUbyBhdm9pZCBjcm9zc2luZyBhIHBoeXNpY2FsIGJvdW5kYXJ5IG9mIHRoZSBQQ0kgc2xhdmUgZGV2aWNlLCBhZGQgNTEyCiAgICBieXRlcyBvZiBhZGRyZXNzIHRvIHRoZSBQQ0kgYWRkcmVzcyByYW5nZS4KCiAgICBUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGx5IHByb3ZpZGVkIGJ5IFByYXZpbiBNLiBCYXRoaWphIDxwYmF0aGlqYUBhbWNjLmNvbT4KICAgIGZyb20gQU1DQyBhbmQgc2xpZ2hseSBjaGFuZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFByYXZpbiBNLiBCYXRoaWphIDxwYmF0aGlqYUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhOTA5MjFmNzFkMjI1YmY5ZTBmMGZjN2I4YmVhZGViODAwMWJmNzhhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDQgMTY6Mjk6NDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogWW9zZW1pdGUvWWVsbG93c3RvbmU6IEFkZCBEVFQgQUQ3NDE0IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGQ0ZjA0MGEzYzE1MDM2YTZlYTI1YTljMzllN2Q4OWZlZmE4NDQwZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBEZWMgMyAwMDoxNToyOCAyMDA3ICswMTAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjEtcmMxCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMTVlMzM0MzNlN2MwNTExMTk2OGRjOWI0MzRhNTJmZDQyY2JkMjIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDMwIDA3OjE1OjQxIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IEFkZCBQQ0llIHJlc2V0IGFzc2VydGlvbiB1cG9uIHBvd2VyLXVwCgogICAgVGhpcyBtYW51YWwgUENJZSByZXNldCB0cmlnZ2VyaW5nIHNvbHZlcyB0aGUgcHJvYmxlbSBzZWVuIHdpdGggdGhlCiAgICBJbnRlbCBFUFJPLzEwMDAgY2FyZCwgd2hpY2ggd2FzIG5vdCBkZXRlY3RlZCAobGluayBub3QgZXN0YWJsaXNoZWQpCiAgICB1cG9uIHBvd2VyLXVwIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNjBlZWE1Njc2Y2E0NjkwM2EzMzU2ODZjYzAyMGIyOWM0Y2E0NmZlCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgTm92IDI5IDAxOjIxOjU0IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIFN1cGVySCBib2FyZHMgbWFpbnRhaW5lciB0byBNQUlOVEFJTkVSUyBmaWxlCgogICAgQWRkIE1TNzc1MFNFIGFuZCBNUzc3MjJTRSdzIGJvYXJkIG1haW50YWluZXIgdG8gTUFJTlRBSU5FUlMgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYWE5YzRmMWQyMjcwMWE5MjM0N2MxYzgxZjM0ZDEyYzhhZDNhMzc0NwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxMzowNCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBtczc3NTBzZSBzdXBwb3J0IGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzcxNDQzNzM0MjdhMTc4MzMyYmY5NzU0MTMxYzhjMzRjNTJjMjAwYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjcgMDk6NDQ6NTMgMjAwNyArMDEwMAoKICAgIHNoOiBBZGQgc2gzIGFuZCBzaDQgc3VwcG9ydCBpbiBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxMzAwODA4NzRhM2QyODQ1MDA5ODQ4MWEyNjJjNWY3Yzg1NWU5MDhkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gTm92IDI1IDAyOjUxOjE3IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIGRvY3VtZW50IGZvciBTdXBlckguCgogICAgVGhpcyBkb2N1bWVudCBpcyBhIHN1bW1hcnkgb2YgaW5mb3JtYXRpb24gY29uY2VybmluZyBTdXBlckggb2YgVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzM2VjZGMyZjlkNjQ5MjZlMWE2MDY3YjI4ZjNhMGFlZmMzYjZkMjNkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gTm92IDI1IDAyOjM5OjMxIDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIG1hcnVidW4ncyBwY21jaWEgZHJpdmVyCgogICAgTWFydWJ1biBwY21jaWEgaXMgYSBjaGlwIGZvciBQQ01DSUEgdXNlZCB3aXRoIFN1cGVySC4KICAgIE9mIGNvdXJzZSwgdGhpcyBjYW4gYmUgdXNlZCBldmVuIGJ5IG90aGVyIGFyY2hpdGVjdHVyZXMuCiAgICBXaGVuIHVzZSB0aGlzIGRyaXZlciwgY2FtZSB0byBiZSBhYmxlIHRvIHVzZSBDb21wYWN0Rmxhc2gKICAgIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZmViZDg2Yjk2OWI5NzUyODllZDk0OGYxYWMwZWI5NzIyZGE0MWNlZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIE5vdiAyNSAwMjozMjoxMyAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBTdXBlckggU0NJRiBkcml2ZXIKCiAgICAtIENoYW5nZWQgdm9sYXRpbGUgdW5zaWduZWQgdG8gdnVfLgogICAgLSBDaGFuZ2VkIE1ha2VmaWxlIGZvciBrY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA4YmU3NjA5MDM2NDVhZjA5ODcxYmU1MGFkMGE2ZjllYmI2MmIzMTFkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI3IDExOjU3OjM1IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWEgJiBNYWthbHU6IEZpeCBleHQgSVJRIHBpbiBtdWx0aXBsZXhpbmcKCiAgICBBZnRlciBhbiBlcnJvciBpbiB0aGUgQU1DQyA0MDVFWCB1c2VycyBtYW51YWwgbm93IGNvcnJlY3RseSBjb25maWd1cmUKICAgIElSUTIgKEtpbGF1ZWEpL0lSUTAgKE1ha2FsdSkgYXMgYWx0ZXJuYXRlIDIgc2lnbmFsIGZvciBleHRlcm5hbCBJUlEKICAgIHVzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNWY2MDFmZDFiMTI3OGRlYWU1YWE5ZmMyN2EyMzJiMGQxYzFjNzg4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNiAxOToxODoyMSAyMDA3ICswMTAwCgogICAgQ2xlYW51cCBjb2Rpbmcgc3R5bGU7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNkZWNhOWQ0NDc2N2VmZDFiODNmNGI3MDFmMGRiZjIxYTc1OTVmN2IKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDI1IDIyOjM5OjI1IDIwMDcgKzAxMDAKCiAgICBNQUtFQUxMOiBhZGQgbWlzc2luZyA1MTJ4IGJvYXJkcyBpbiBwcGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGEzNDBjMzI1ZTY2OGNhNzM4NmMyMjc2Mzg3NjgxNzIwYmU5YzM3NTcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDI1IDE4OjQ1OjQ3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSA6IGZpeCB0YWdzIGN0YWdzIGV0YWdzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2MzM2MmNmYzZiYWE5N2FlMGUzN2JhMmM2ZWNlNTMwZmNhYzlmNzllCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI2IDE1OjA2OjE0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1ha2FsdTogQ2hhbmdlIEVCQyBzZXR1cCBmb3IgQ1MwIHRvIGVuYWJsZSA0MDBNSHogdXNhZ2UKCiAgICBBcyBzdWdnZXN0ZWQgYnkgU2VuYW8sIHVzZSBhIGRpZmZlcmVudCBFQkNfUEIwQVAgc2V0dXAgZm9yIDQwME1IegogICAgb3BlcmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYTFjZTIyNjI4NzI3MGJiMDFlMjViOGUzNjc0YzcwMWYxMmVkZjE5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI2IDE1OjAxOjQ1IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IENvbmZpZ3VyZSBwaW4gbXV4IHRvIHVzZSBleHQgSVJRMiBhcyBpbnRlcnJ1cHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODdkZGVkZDZhZDgwNDQyN2NlMTI1Y2VhYTA3NmQ3YTRmNzRlOWQ1ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMjUgMTg6NDU6NDcgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIDogZml4IHRhZ3MgY3RhZ3MgZXRhZ3Mgd2l0aCBuZXcgZHJpdmVycyBvcmdhbml6YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU5ODI5Y2MxODkzNzhjMTQyYzEzZDJhYThkOWE4OTdkOGJlZjM5NjEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDIxOjI2OjU2IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL210ZCA6IG1vdmUgbXRkIGRyaXZlcnMgdG8gZHJpdmVycy9tdGQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDMxOGMwYjkwNDMxZjI2NDg1NTJlNWFkZTc4ODMzZjQyNjUyY2U4NTkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDIxOjE3OjU1IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL21pc2MgOiBtb3ZlIG1pc2MgZHJpdmVycyB0byBkcml2ZXJzL21pc2MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDMzZGFmNWI3ODU4ODA3Y2I0Y2U0MTU4YzJjNTY1MjQ2NzFjMTRjMDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDIxOjEzOjU5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2Jsb2NrIDogbW92ZSBibG9jayBkcml2ZXJzIHRvIGRyaXZlcnMvYmxvY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBjNjk4ZGNhYTcwMjc1ZWI4ODE0ZjY2NWI1NDU1NDdjZWUwMTM4OTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDIwOjU5OjUwIDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3J0YyA6IG1vdmUgcnRjIGRyaXZlcnMgdG8gZHJpdmVycy9ydGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY4NjhjYzVhNTA3NTdkOTRmMzZjMzEyMzk1NDgxY2IwZjE4N2Q5ZTYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDIwOjE0OjQ0IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2h3bW9uIDogbW92ZSBoYXJkd2FyZSBtb25pdG9yIGRydmllcnMgdG8gZHJpdmVycy9od21vbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTZiMTk1YzgyYTE4Y2JmZDE2NDgwMGYxN2ExZWY5ZGIyZTQ4MzMxYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMTk6NDY6NDUgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvaW5wdXQgOiBtb3ZlIGlucHV0IGRyaXZlcnMgdG8gZHJpdmVycy9pbnB1dAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTQ1NTg2NjYyOTMzNjRmYzNhZjFjMWQ5MzgxY2E5MzNmYTBmMTI3NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMTk6NDA6MTEgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvdXNiIDogbW92ZSB1c2IgZHJpdmVycyB0byBkcml2ZXJzL3VzYgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTM3OGRmNzkyYTdmZjNhYmQxYmY1NGE2M2Y1NDc1Nzg0ZjViMDgzYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMTk6MzM6MzggMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvc2VyaWFsIDogbW92ZSBzZXJpYWwgZHJpdmVycyB0byBkcml2ZXJzL3NlcmlhbAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjQzOWU0YmZhMTExYmFiZjRiYzA3YmEyMGVmYmYzZTM2MDM2ODEzZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBOb3YgMjEgMjE6MTk6MjQgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvbmV0IDogbW92ZSBuZXQgZHJpdmVycyB0byBkcml2ZXJzL25ldAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzUyZDI1OTEzMGIzNDlmZTk1OTNiOGRhZGE2NDFiZDc4YTk2NTllNQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMjA6NDE6NDggMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvdmlkZW8gOiBtb3ZlIHZpZGVvIGRyaXZlcnMgdG8gZHJpdmVycy92aWRlbwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzM2NDYyMTcxODZhYTE3YWZjOGUzMDVjNWYwNmYwNmRkMzM1ZWFhZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMjA6MzM6MDkgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvcGNtY2lhIDogbW92ZSBwY21jaWEgZHJpdmVycyB0byBkcml2ZXJzL3BjbWNpYQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTNhNjg2ZWU5YzVkZGM2ZmEzNjhjMzJjZmJmZGU2ZjY3MjQ1OTlmYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMjA6Mjg6MDkgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvcGNpIDogbW92ZSBwY2kgZHJpdmVycyB0byBkcml2ZXJzL3BjaQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTE2MjM1MjgxNzU3OTg0MGQ3ODAyZGE2ZDg1ODcyYjNjYTAwM2M5NwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTc6MjM6MjMgMjAwNyAtMDUwMAoKICAgIEZpeCBmZHQgcHJpbnRpbmcgZm9yIHVwZGF0ZWQgbGliZmR0CgogICAgQWxzbyBpbXByb3ZlIHByaW50aW5nIChhZG9wdCBkdGMgdjEgImMgc3R5bGUiIGhleCBmb3JtYXQpLCB3aGl0ZXNwYWNlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5ZWI3N2NlYTFmYTEyZDU5NjllYjI2YTFkMWQ4MWRhMzgxYmQ2YjFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAxMzozMDoxNSAyMDA3IC0wNjAwCgogICAgQWRkIGFkZGl0aW9uYWwgZmR0IGZpeHVwIGhlbHBlciBmdW5jdGlvbnMKCiAgICBBZGRlZCB0aGUgZm9sbG93aW5nIGZkdCBmaXh1cCBoZWxwZXJzOgogICAgICogZG9fZml4dXBfYnlfcHJvcHtfdTMyfSAtIEZpbmQgbWF0Y2hpbmcgbm9kZXMgYnkgcHJvcGVydHkgbmFtZS92YWx1ZQogICAgICogZG9fZml4dXBfYnlfY29tcGF0e191MzJ9IC0gRmluZCBtYXRjaGluZyBub2RlcyBieSBjb21wYXQKCiAgICBUaGUgX3UzMiB2YXJpYW50cyB3b3JrIHRoZSBzYW1lIG9ubHkgdGhlIHByb3BlcnR5IHRoZXkgYXJlIHNldHRpbmcKICAgIGlzIGtub3cgdG8gYmUgYSAzMi1iaXQgaW50ZWdlciBpbnN0ZWFkIG9mIGEgYnl0ZSBidWZmZXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhYjU0NDYzM2FiZGQxNGY0ZGQ1ZDkyZTUwMGI3M2ViNTllZjU3ZTY3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAxMToxMTowMyAyMDA3IC0wNjAwCgogICAgQWRkIGZkdF9maXh1cF9ldGhlcm5ldCBoZWxwZXIgdG8gc2V0IG1hYyBhZGRyZXNzZXMKCiAgICBBZGRlZCBhIGZpeHVwIGhlbHBlciB0aGF0IHVzZXMgYWxpYXNlcyB0byBzZXQgbWFjIGFkZHJlc3NlcwogICAgaW4gdGhlIGRldmljZSB0cmVlIGJhc2VkIG9uIHRoZSBiZF90CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkYmFmMDdjZTYyMGFhYjI0OWUzNTAyYjIwYTk4NjIzNGE2YWYxZDNhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAxNDowNzo0NiAyMDA3IC0wNjAwCgogICAgRml4IHdhcm5pbmdzIGZyb20gaW1wb3J0IG9mIGxpYmZkdAoKICAgIGNtZF9mZHQuYzogSW4gZnVuY3Rpb24gZmR0X3ByaW50OgogICAgY21kX2ZkdC5jOjU4Njogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQogICAgY21kX2ZkdC5jOjYxMzogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQogICAgY21kX2ZkdC5jOjYzNTogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQogICAgY21kX2ZkdC5jOjYzNjogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGQwNGYwMmY2MjI0ZTY5ODNmNDgxMmVhNGRhNzA0OTUwZWM4NTM5YwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjQgMTE6MDQ6MjIgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBsaWJmZHQgZnJvbSBkZXZpY2UgdHJlZSBjb21waWxlciAoZHRjKQoKICAgIFVwZGF0ZSBsaWJmZHQgdG8gY29tbWl0IDhlYWY1ZTM1ODM2NjAxN2FhMmU4NDZjNTAzOGQxYWExOTk1ODMxNGUgZnJvbQogICAgdGhlIGRldmljZSB0cmVlIGNvbXBpbGVyIChkdGMpIHByb2plY3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlOTNiZWNmODBkNzMyYjY0YWVmODFiMjNlOGI2ZWNlMDJjNDA1MzNkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJU2F0IE5vdiAzIDE5OjQ2OjI4IDIwMDcgLTA1MDAKCiAgICBNb3ZlIGRvX2ZpeHVwKiBmb3IgbGliZmR0IGludG8gY29tbW9uIGNvZGUKCiAgICBNb3ZlZCB0aGUgZ2VuZXJpYyBmaXh1cCBoYW5kbGluZyBjb2RlIG91dCBvZiBjcHUvbXBjNXh4eCBhbmQgY3B1L21wYzgyNjAKICAgIGludG8gY29tbW9uL2ZkdF9zdXBwb3J0LmMgYW5kIHJlbmFtZWQ6CgogICAgZG9fZml4dXAoKQktPiBkb19maXh1cF9ieV9wYXRoKCkKICAgIGRvX2ZpeHVwX3UzMigpCS0+IGRvX2ZpeHVwX2J5X3BhdGhfdTMyKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3MzhiNGE3NTk5OGY0MmE3NDA4ZGVmYWRjOWJhYWM3YTMxYzkyZGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDI1IDE2OjE1OjA3IDIwMDcgLTA1MDAKCiAgICBNYWtlIG5vIG9wdGlvbnMgdG8gZmR0IHByaW50IGRlZmF1bHQgdG8gJy8nCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhM2MyOTMzZTAyNTAzZmUzNmFkZTJjMWI2NWFmNDZmMmI3YTE2OGU3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCAyNCAxMDoyMTo1NyAyMDA3IC0wNTAwCgogICAgUmVtb3ZlZCBzb21lIG5vbnVzZWQgZmR0IGZ1bmN0aW9ucyBhbmQgbW92ZWQgZmR0X2ZpbmRfYW5kX3NldHByb3Agb3V0IG9mIGxpYmZkdAoKICAgIFJlbW92ZWQ6CglmZHRfbm9kZV9pc19jb21wYXRpYmxlCglmZHRfZmluZF9ub2RlX2J5X3R5cGUKCWZkdF9maW5kX2NvbXBhdGlibGVfbm9kZQoKICAgIFRvIGVhc2UgbWVyZ2Ugb2YgbmV3ZXIgbGliZmR0IGFzIHdlIGFyZW4ndCB1c2luZyB0aGVtIGFueXdoZXJlIGF0IHRoaXMgdGltZS4KCiAgICBBbHNvIG1vdmVkIGZkdF9maW5kX2FuZF9zZXRwcm9wIG91dCBvZiBsaWJmZHQgaW50byBmZHRfc3VwcG9ydC5jIGZvciB0aGUgc2FtZQogICAgcmVhc29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOThlMjg2N2NjODU0MDliOTE5Zjg2MmU2YzE2MDI2NDYxZWM5NTVkZgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJV2VkIE5vdiAyMSAwOToxOTozNyAyMDA3IC0wNzAwCgogICAgW0JVSUxEXSBSZW1vdmUgbGlicmFyaWVzIHdoZW4gdXBkYXRpbmcgYXV0b2NvbmYubWsKCiAgICBGaXggbGlicmFyeSBwcm9ibGVtcyBjYXVzZWQgYnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24uICBVc2luZwogICAgYXV0b2NvbmYubWsgdG8gZGVjaWRlIHdoaWNoIGZpbGVzIHRvIGNvbXBpbGUgaGFzIGNhdXNlZCBhIHByb2JsZW0gd2hlbgogICAgY2hhbmdpbmcgY29uZmlndXJhdGlvbiBmcm9tIG9uZSBib2FyZCB0byBhbm90aGVyIHdpdGhvdXQgY2xlYXJpbmcgb3V0CiAgICB0aGUgbGlicmFyeSAoKi5hKSBmaWxlcy4KCiAgICBJdCB1c2VkIHRvIGJlIHRoYXQgdGhlIGxpbmtlciB3YXMgYWx3YXlzIHBhc3NlZCB0aGUgc2FtZSBsaXN0IG9mIC5vCiAgICBmaWxlcyB3aGVuIGJ1aWxkaW5nIHRoZSAuYSBmaWxlcy4gIEhvd2V2ZXIsIHRoYXQgaXMgbm90IGxvbmdlciB0cnVlCiAgICB3aXRoIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiAgTm93LCBhIGRpZmZlcmVudCBib2FyZCBjb25maWcgd2lsbCBoYXZlCiAgICBhIGRpZmZlcmVudCBmaWxlIGxpc3QgcGFzc2VkIHRvIHRoZSBsaW5rZXIuICBUaGUgcHJvYmxlbSBvY2N1cnMgd2hlbgogICAgYSBsaWJyYXJ5IGhhcyBhbHJlYWR5IGJlZW4gYnVpbHQgYW5kIHRoZSBib2FyZCBjb25maWcgaXMgY2hhbmdlZC4KCiAgICBTaW5jZSB0aGUgbGlua2VyIHdpbGwgdXBkYXRlIGluc3RlYWQgb2YgcmVwbGFjZSBhIHByZWV4aXN0aW5nIGxpYnJhcnksCiAgICB0aGVuIGlmIHRoZSBmaWxlIGxpc3QgY2hhbmdlcyB0byByZW1vdmUgc29tZSBvYmplY3QgZmlsZXMgdGhlIG9sZAogICAgb2JqZWN0cyB3aWxsIHN0aWxsIGV4aXN0IGluIHRoZSBsaWJyYXJ5LgoKICAgIFRoZSBzb2x1dGlvbiBpcyB0byByZW1vdmUgYWxsIG9sZCBsaWJyYXJ5IGZpbGVzIHdoZW4gYXV0b2NvbmYubWsgaXMKICAgIG1hZGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGVkMTM1M2Q3NGI5Y2U4YTdmY2Q2NjA1NzBiODQ4YTE4NGQ2MTRiNWYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDIxIDA4OjQ5OjUwIDIwMDcgLTA2MDAKCiAgICBbQlVJTERdIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBsaWJmZHQvKi5jIGluIGxpYmZkdC9NYWtlZmlsZQoKICAgIE1vZGlmeSBsaWJmZHQvTWFrZWZpbGUgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIHRoZSAqLmMgZmlsZXMgYmFzZWQKICAgIG9uIHRoZSBib2FyZCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0YTQzNzE5YTc3Mzg3MTI4MTFkODIyY2E4MTI1NDI3YjI3YTU1Y2RjCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBbQlVJTERdIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBjb21tb24vY21kXyouYyBpbiBjb21tb24vTWFrZWZpbGUKCiAgICBNb2RpZnkgY29tbW9uL01ha2VmaWxlIHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSB0aGUgY21kXyouYyBmaWxlcyBiYXNlZAogICAgb24gdGhlIGJvYXJkIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMmYxNTVmNmMwYTFmNWU5YTMwNmEzZjFmNGZiZTA2N2RiN2NlZDNiMQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBHZW5lcmF0ZSBpbmNsdWRlL2F1dG9jb25mLm1rIGZyb20gYm9hcmQgY29uZmlnIGZpbGVzCgogICAgVXNlIGNwcCBhbmQgc2VkIHRvIHBvc3Rwcm9jZXNzIGNvbmZpZy5oIGFuZCBpbXBvcnQgdGhlIGRlZmluZWQgdmFsdWVzCiAgICBpbnRvIGluY2x1ZGUvYXV0b2NvbmYubWsuICBhdXRvY29uZi5tayBpcyB0aGVuIGluY2x1ZGVkIGJ5IGNvbmZpZy5tayB0bwogICAgZ2l2ZSAnbWFrZScgYWNjZXNzIHRvIHRoZSBib2FyZCBjb25maWd1cmF0aW9uLgoKICAgIERvaW5nIHRoaXMgZW5hYmxlcyBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhdCB0aGUgTWFrZWZpbGUgbGV2ZWwgaW5zdGVhZAogICAgb2YgYnkgd3JhcHBpbmcgZXZlcnkgLmMgZmlsZSB3aXRoICNpZmRlZi8jZW5kaWYgd3JhcHBlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDY4Yjg4OTk5ZGE4N2FiODhlNzFlMTMwNjE5MjkwNWJlMzQ1MDE5OGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDIwIDE1OjAyOjI2IDIwMDcgLTA2MDAKCiAgICA4NjEwSFBDRDogRW5hYmxlIHRoZSA4NjEwIERpc3BsYXkgSW50ZXJmYWNlIFVuaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc0Zjg5ZmFhOWQxZTc3ZWQ5NDdlNjI4ZDNlZmZhYTUxM2ZlMDVkMDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDIwIDE1OjAwOjUzIDIwMDcgLTA2MDAKCiAgICBNb3ZlIDg2MTAgRElVIGludGVyZmFjZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgdG8gaGVhZGVyIGZpbGUuCgogICAgVGhlc2UgdHdvIHN0cnVjdHVyZXMgYXJlIHN0aWxsIG5lZWRlZCBkdXJpbmcgdGhlCiAgICBpbml0aWFsaXphdGlvbiBhbmQgc2V0dXAgb2YgdGhlIERJVSBoYXJkd2FyZS4KICAgIFNvIG1vdmUgdGhlbSB0byB0aGUgZnNsX2RpdV9mYi5oIGZpbGUgZm9yIG5vdy4KICAgIE9mZmljaWFsICJibGFoIi4KCiAgICBOb3RpY2VkLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwODBjNjQ2ZGJmNDc0YTEwOWMzZjg1NzE4ZmIwMWNlMDQyYTM4YzQ1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAyMDoxNDoxOCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9pMmMgOiBtb3ZlIGkyYyBkcml2ZXJzIHRvIGRyaXZlcnMvaTJjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5YTMzN2RkYzE1NGExMGEyNmYxMTdmZDE0N2IwMDlhYmNkZWJhNzVhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxOSAyMjoyMDoyNCAyMDA3ICswMTAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjAgcmVsZWFzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYzMGFkNDliMTZiZjk5OGIwM2MxYTUyMjhiNmM4NjM2OWQ2MWMyNTgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDE5IDEwOjAyOjEzIDIwMDcgLTA1MDAKCiAgICBNb3ZlIENPTkZJR19RRSBvdXQgb2YgQ09ORklHX1BDSSB3cmFwIGZvciBNUEM4NTY4TURTCgogICAgQ09ORklHX1FFIHNob3VsZG4ndCBiZSBpbiB0aGUgd3JhcCBvZiBDT05GSUdfUENJLCBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOGMzMjA2MDkzNjYxNzZiMzExMDRkOWJmNWUyOTUyMzJlMWM3ZjFkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglNb24gTm92IDE5IDExOjE0OjE2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYm9hcmQvZ3RoMi9sb3dsZXZlbF9pbml0LlM6IEZpeCBhIGJ1aWxkIHdhcm5pbmcKCiAgICBsb3dsZXZlbF9pbml0LlM6IEFzc2VtYmxlciBtZXNzYWdlczoKICAgIGxvd2xldmVsX2luaXQuUzo0MTM6IFdhcm5pbmc6IFByZXRlbmRpbmcgZ2xvYmFsIHN5bWJvbCB1c2VkIGFzIGJyYW5jaCB0YXJnZXQgaXMgbG9jYWwuCgogICAgTG9va2luZyBhdCBjb2RlcywgdGhlIGBtZW10ZXN0JyBhbmQgYGNsZWFybWVtJyBhcmUgaW50ZW50aW9uYWwgbWl4ZWQKICAgIHVzZSBvZiBgZ2xvYmFsIHN5bWJvbHMnIGFuZCBgbGFiZWwnIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gVG8gbWFrZSBpdAogICAgYnVpbGQsIGp1c3QgZGlzYWJsZSBnbG9iYWwtc3ltYm9scy11c2UgZm9yIG5vdy4gQXMgYSByZXN1bHQgYG1lbXRlc3QnCiAgICBzdGlsbCByZW1haW5zIGFzIHVudXNlZCwgYnV0IGxlYXZlIGl0IGJlLi4uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGU4ZGE1OGYyYmMwOTI4OTFlOGNjOTJiOTI3ZWQ1YzRiZDBjYjBjYWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDE5IDEyOjU5OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggYnVpbGQgcHJvYmxlbXMgd2l0aCBtcDJ1c2IgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZiZjRjNjg2YWZjYTFlODZlMWMzODRkNTkyMThmOTE0NjA1NzEzYmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDE4IDE4OjM2OjExIDIwMDcgKzAxMDAKCiAgICBzM2MyNHgwOiBGaXggdXNiX29oY2kuYyBtaXNzaW5nIGluIE1ha2VmaWxlCiAgICBhbmQgdXNiX29oY2kuYyB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2MDczZjYxZTA3OGRhNWRkYjUyMWI1NjI1NmJjYzM2NTA4NTg5ODgzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAxOCAxMjo1NTowMiAyMDA3ICswMTAwCgogICAgcGIxeDAwIGJvYXJkOiBGaXggdTE2IHN0YXR1cyBkZWNsYXJhdGlvbiB3aGVuIFBDTUNJQSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NDEyZDgxNGNlOGJmNTU3MGEyYjc0N2YxZTdmZDMyMTA5N2ZlOTg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNzoxMTowOSAyMDA3ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBBUk0gc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQwOWVjZGMwYmI0N2RkMjhiMGFmNmMyNWZmZDY1OGQyMmNjMzZiMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTm92IDE4IDE2OjM2OjI3IDIwMDcgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgZm9yIFBQQyBzeXN0ZW1zLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjUzODExYTNjMmIzNTg1NmJmMTJlMTk2ZGNjOGM0Njk0ZTI4ZTQyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNDo0NDo0NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDb3JyZWN0IDQwNUVYIFBDSWUgVVRMIHJlZ2lzdGVyIG1hcHBpbmcKCiAgICBNYXAgNGsgbWVtIHNwYWNlIGZvciBVVEwgcmVnaXN0ZXJzIGZvciBlYWNoIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3OWMyYzRmYTcxYzBkMWViZWYzOTQ1MDhkZjkwODhkZjhhMzA4ZDMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDE3IDExOjMxOjEwIDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBuZXQvbmV0LmMgYW5kIG5ldC9uZnMuYwoKY29tbWl0IDdlMTRmYzY1MzY4Y2JkMjg2MWIxMjA3NDUzZGE1NWE0ZmM3YjNmODEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjQyOjQ1IDIwMDcgKzA5MDAKCiAgICBndGgyLmM6IEZpeCBhIHdhcm5pbmcgb24gZ3RoMiBidWlsZC4KCiAgICBndGgyLmM6IEluIGZ1bmN0aW9uICdtaXNjX2luaXRfcic6CiAgICBndGgyLmM6NDM0OiB3YXJuaW5nOiBwb2ludGVyIHRhcmdldHMgaW4gcGFzc2luZyBhcmd1bWVudCAyIG9mICdzZXRlbnYnIGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyMzA5YzEzMGFhNGM4NGI5MWJkODc0YTQxMjY5YzkyM2ViNjFiNTU1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDA3OjU4OjI1IDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjb21tb24vY21kX3Njc2kuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZWE2MWI1Nzk2ODU1NGVhZjBmNDc0ZWM3ZTA4OGIxN2QzNjdmNDc0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDE0OjUyOjI5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEtpbGF1ZWEgY29uZmlnIGZpbGUKCiAgICAtIFVzZSBnZW5lcmljIEdQSU8gY29uZmlndXJhdGlvbiBmcmFtZXdvcmsgKENGR180eHhfR1BJT19UQUJMRSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2UxZDg4NGI3Y2I2MDIwMDczMjljNTE3ZWMxYzQ1M2UzYTZhNWQ5YwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6MDU6MjYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9jb25maWcubWs6IEZpeCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gcGlja2VyCgogICAgQ3VycmVudCB0cmljayB0byBwaWNrIHVwIEdOVSBhc3NlbWJsZXIgbWlub3IgdmVyc2lvbiBkb2VzIG5vdCB3b3JrIHdpdGggdGhlCiAgICBsYXRlc3QgYmludXRpbHMgKDIwMDctMDMtMDEgb3IgbGF0ZXIpIGR1ZSB0byAke1BLR1ZFUlNJT059IG5vdyBkZWZhdWx0IHRvCiAgICAiKEdOVSBCaW51dGlscykgIi4KCiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIKICAgICAgR05VIGFzc2VtYmxlciAyLjE1Ljk0IG1pcHNzZGUtNi4wMi4wMi0yMDA1MDYwMgogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nCiAgICAgIDIuMTUuOTQKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JyB8YXdrIC1GLiAne3ByaW50ICQyfScKICAgICAgMTUKICAgICAgJAoKICAgICAgJCBtaXBzLWxpbnV4LWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIKICAgICAgR05VIGFzc2VtYmxlciAoR05VIEJpbnV0aWxzKSAyLjE4CiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nCiAgICAgIChHTlUKICAgICAgJCBtaXBzLWxpbnV4LWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScgfGF3ayAtRi4gJ3twcmludCAkMn0nCiAgICAgIChubyBvdXRwdXQpCiAgICAgICQKCiAgICBBcyBhIHJlc3VsdCBvZiBhYm92ZSwgeW91J2xsIHNlZSBtYW55IG5vaXNlcyB3aXRoIHN1Y2ggYmludXRpbHM6CgogICAgICBtYWtlIC1DIGNwdS9taXBzLwogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2NwdS9taXBzJwogICAgICBtaXBzLWxpbnV4LWdjYyAgLURfX0FTU0VNQkxZX18gLWcgIC1PcyAgIC1EX19LRVJORUxfXyAtRFRFWFRfQkFTRT0weEIwMDAwMDAwICAtSS9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvaW5jbHVkZSAtZm5vLWJ1aWx0aW4gLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1pc3lzdGVtIC9ob21lL3NrdXJpYmF5L2RldmVsL2J1aWxkcm9vdC9idWlsZF9taXBzL3N0YWdpbmdfZGlyL3Vzci9iaW4vLi4vbGliL2djYy9taXBzLWxpbnV4LXVjbGliYy80LjIuMS9pbmNsdWRlIC1waXBlICAtRENPTkZJR19NSVBTIC1EX19NSVBTX18gLUcgMCAtbWFiaWNhbGxzIC1mcGljIC1waXBlIC1tc29mdC1mbG9hdCAtbWFyY2g9NGtjIC1tdHVuZT00a2MgLUVCIC1jIC1vIGluY2FpcF93ZHQubyBpbmNhaXBfd2R0LlMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtaXBzLWxpbnV4LWdjYyAgLURfX0FTU0VNQkxZX18gLWcgIC1PcyAgIC1EX19LRVJORUxfXyAtRFRFWFRfQkFTRT0weEIwMDAwMDAwICAtSS9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvaW5jbHVkZSAtZm5vLWJ1aWx0aW4gLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1pc3lzdGVtIC9ob21lL3NrdXJpYmF5L2RldmVsL2J1aWxkcm9vdC9idWlsZF9taXBzL3N0YWdpbmdfZGlyL3Vzci9iaW4vLi4vbGliL2djYy9taXBzLWxpbnV4LXVjbGliYy80LjIuMS9pbmNsdWRlIC1waXBlICAtRENPTkZJR19NSVBTIC1EX19NSVBTX18gLUcgMCAtbWFiaWNhbGxzIC1mcGljIC1waXBlIC1tc29mdC1mbG9hdCAtbWFyY2g9NGtjIC1tdHVuZT00a2MgLUVCIC1jIC1vIGNhY2hlLm8gY2FjaGUuUwogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1pcHMtbGludXgtZ2NjIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzIC1jIC1vIGFzY19zZXJpYWwubyBhc2Nfc2VyaWFsLmMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAoKICAgIFRoaXMgcGF0Y2ggc2ltcGxpZmllcyB0aGUgdHJpY2sgYW5kIG1ha2VzIGl0IHdvcmsgd2l0aCBib3RoIHZlcnNpb25zIG9mIGdhcy4KICAgIEkgYWxzbyByZXBsYWNlIGFuIGV4cGVuc2l2ZSBgYXdrIChvciBnYXdrKScgd2l0aCBgY3V0Jy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDE2NjY0ZjcyODUwODQ2ZTY0NTYxNmRhMWMwZmE1YWZjZDZkMTVmMTUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjI2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gUmVtb3ZlIHVzZWxlc3MgaW5zdHJ1Y3Rpb25zIGZvciBpbml0aWFsaXppbmcgJGdwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMDNjMDMxZDU2NjBlYTk0NmMzOWFmNmUyZTE2MjY3ZGE4NTdjNjA5ZgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6Mjc6MDYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBNSVBTIDRLIGNvcmU6IENvZGluZyBzdHlsZSBjbGVhbnVwcwoKICAgIE5vIGxvZ2ljYWwgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGY1ZTQyOWQzODYwYmJhNGM2YWU4YmVhZDhmNzgzNDlmYTI0NDkxYjIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjIwIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gZ3RoMi5jOiBGaXggYSB3YXJuaW5nIG9uIGd0aDIgYnVpbGQuCgogICAgZ3RoMi5jOiBJbiBmdW5jdGlvbiAnbWlzY19pbml0X3InOgogICAgZ3RoMi5jOjQzNDogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnc2V0ZW52JyBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNGZiZDA3NDFiMmI2NDQxZGExMGJlOTNlMTAyNjcxMjI1ODFiNzA3OQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6MjI6MzMgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBhdTF4MDBfZXRoLmM6IEZpeGVkIGEgd2FybmluZyBvbiBwYjEwMDAgYnVpbGQuCgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX21paXBoeV93cml0ZSc6CiAgICBhdTF4MDBfZXRoLmM6MTM5OiB3YXJuaW5nOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGYwMTMyMDQ1OTczNmYxNTY3MDc0MjVjZjgxMTJmOTg2MDYzMDFhYTQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI1IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYXUxeDAwX2V0aC5jOiBGaXggYXUxeDAwX21paXBoeV97cmVhZCx3cml0ZX0gYnVpbGQgZXJyb3IKCiAgICBhdTF4MDBfZXRoLmM6IEluIGZ1bmN0aW9uICdhdTF4MDBfZW5ldF9pbml0aWFsaXplJzoKICAgIGF1MXgwMF9ldGguYzoyNDY6IGVycm9yOiAnYXUxeDAwX21paXBoeV9yZWFkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIGF1MXgwMF9ldGguYzoyNDY6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogJ2F1MXgwMF9taWlwaHlfd3JpdGUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX21paXBoeV93cml0ZSc6CiAgICBhdTF4MDBfZXRoLmM6Mjk4OiB3YXJuaW5nOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKICAgIG1ha2VbMV06ICoqKiBbYXUxeDAwX2V0aC5vXSBFcnJvciAxCgogICAgRml4ZWQgYnkgbW92aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgZm9yd2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGIwOTI1OGM1MzkzZWRkMTA4N2M1ZjM5YWU2ODMzOGYxNmI0OWY4YjMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI1IDIwMDcgKzA5MDAKCiAgICBNQUtFQUxMOiBBZGRlZCBtaXNzaW5nIHBiMTAwMCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMmU0YTZlMzY2N2ExZTM5YzBlNmU5OTQ5ODY4NmIxNWQyNzE4YjM2OQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6MDA6MjQgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBwYjEwMDA6IFJlcGxhY2Ugb2Jzb2xldGUgbWVtc2V0dXAuUyB3aXRoIGxvd2xldmVsX2luaXQuUwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNjYyZTVjYjM5NzI0OWMzZWE4OGE0YzMyNTVlOWNjZmM0MGI5OGQ4MgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6MDA6MjQgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBDbGVhbnVwIF9fdV9ib290X2NtZF97c3RhcnQsZW5kfQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNTk0N2Y2OTk5YWFmYTdjNTRjMTM5MDk4M2QyNjRhODQ2M2RmZWE4ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDI6MzQ6MzggMjAwNyArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0lHLCBwcmVwYXJlIGZvciAtcmM0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZDMyOWU2ZjA1YmJkZmU2YmQ3MWIwZTA5ZjBjNzZkM2IwYTAyNWE1CkF1dGhvcjogTHVvdGFvIEZ1IDxsLmZ1QHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTm92IDE0IDE4OjU4OjMzIDIwMDcgKzAxMDAKCiAgICBGaXggdGhlIGkyYyBmcmVxdWVuY3kgYW5kIGRlZmF1bHQgYWRkcmVzcyBpbiByc2Rwcm90byBib2FyZAoKICAgIHJzZHByb3RvIGJvYXJkIHN1cHBvcnQgaGFzIHdyb25nIEkyQyBmcmVxdWVuY3kgYW5kIHdyb25nIHJldHVybiB2YWx1ZQogICAgaGFuZGxpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTHVvdGFvIEZ1IDxsLmZ1QHBlbmd1dHJvbml4LmRlPgoKY29tbWl0IDQyOWMxODBlZGFkMDM4ZjkxYzk4OWNiMTRiNDc4MjI4MDkyZTcwNTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAxOjQ1OjM4IDIwMDcgKzAxMDAKCiAgICBwb3dlcnBjOiBCYWNrb3V0IHJlbG9jYXRpb24gY2hhbmdlcyBmb3IgTVBDNTEyMSwgdG9vLgoKICAgIEFwcGx5IEdyYW50IExpa2VseSdzIGJhY2tvdXQgdG8gTVBDNTEyMSBjb2RlLCB0b28uCgogICAgUG9pbnRlZCBvdXQgYnkgUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDFjM2RkNDMzMzhhMDc3MTY1ZTdlMDMwOWNiMzk5NGU2NWQyYmRiZjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBOb3YgMTMgMjI6MTg6MzMgMjAwNyAtMDcwMAoKICAgIHBvd2VycGM6IEJhY2tvdXQgcmVsb2NhdGlvbiBjaGFuZ2VzLgoKICAgIFVnaC4gIEkgKmhhdGUqIHRvIGJhY2sgdGhpcyBjaGFuZ2Ugb3V0LCBidXQgdGhlc2UgY29tcGlsZXIgZmxhZ3MgZG9uJ3QKICAgIHdvcmsgZm9yIHJlbG9jYXRpb24gb24gYWxsIHZlcnNpb25zIG9mIEdDQy4gIEkndmUgbm90IGJlZW4gYWJsZSB0bwogICAgcmVwcm9kdWNlIHRoZSBlbnZpcm9ubWVudCBpbiBteSBzZXR1cCAoYW5kIGhlbmNlLCBub3QgYmVlbiBhYmxlIHRvCiAgICBmaW5kIGEgY29tYmluYXRpb24gdGhhdCAqZG9lcyogd29yayksIHNvIEkndmUgZ290IG5vIGNob2ljZSBidXQgdG8gZ28KICAgIGJhY2sgdG8gdGhlIG9sZCBnY2MgZmxhZ3MgYW5kIGxpbmtlciBzY3JpcHQuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVjMTUwMTBlZmFkOTgwYWQ1NDk4Y2M1NjVmYzFlZDcwZGYyZjUyYjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDEzIDA5OjExOjA1IDIwMDcgKzAxMDAKCiAgICBGaXhlZCBtaXBzX2lvX3BvcnRfYmFzZSBidWlsZCBlcnJvcnMuCgogICAgVGhpcyBwYXRjaCBoYXMgYmVlbiBzZW50IG9uOgogICAgLSAyOSBTZXAgMjAwNwoKICAgIEFsdGhvdWdoIG1pcHNfaW9fcG9ydF9iYXNlIGlzIGN1cnJlbnRseSBhIHBhcnQgb2YgSURFIGNvbW1hbmQsIGl0IGlzIHF1aXRlCiAgICBmdW5kYW1lbnRhbCBmb3IgTUlQUyBJL08gcG9ydCBhY2Nlc3Mgc3VjaCBhcyBpbltid2xdIGFuZCBvdXRbYndsXS4gU28gbW92ZQogICAgaXQgdG8gTUlQUyBnZW5lcmFsIHBhcnQsIGFuZCBpbnRyb2R1Y2UgYHNldF9pb19wb3J0X2Jhc2UoKScgZnJvbSBMaW51eC4KCiAgICBUaGlzIHBhdGNoIGlzIHRyaWdnZXJlZCBieSBtdWx0aXBsZSBkZWZpbml0aW9uIG9mIGBtaXBzX2lvX3BvcnRfYmFzZScgYnVpbGQKICAgIGVycm9yIG9uIGd0aDIgKGFuZCB0YjAyMjkgYWxzbyBuZWVkcyB0aGlzIGZpeC4pCgogICAgYm9hcmQvZ3RoMi9saWJndGgyLmEoZ3RoMi5vKTogSW4gZnVuY3Rpb24gYGxvZ19zZXJpYWxfY2hhcic6CiAgICAvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2JvYXJkL2d0aDIvZ3RoMi5jOjQ3OiBtdWx0aXBsZSBkZWZpbml0aW9uIG9mIGBtaXBzX2lvX3BvcnRfYmFzZScKICAgIGNvbW1vbi9saWJjb21tb24uYShjbWRfaWRlLm8pOi9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvY29tbW9uL2NtZF9pZGUuYzo3MTI6IGZpcnN0IGRlZmluZWQgaGVyZQogICAgbWFrZTogKioqIFt1LWJvb3RdIEVycm9yIDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2ZWNiYjdhM2ZhOWIwOTQwZWQzM2U0OTBkMTk1ZDRiNjgzMGIyNDIyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMTozMDo0MCAyMDA3ICswMTAwCgogICAgRml4IGEgYnVnIGluIHRoZSBzbGF2ZSBzZXJpYWwgcHJvZ3JhbW1pbmcgbW9kZSBmb3IgdGhlIFhpbGlueAogICAgU3BhcnRhbjIvMyBGUEdBcy4gVGhlIG9sZCBjb2RlIHVzZWQgIjwgMCIgb24gYSAiY2hhciIgdHlwZSB0byB0ZXN0IGlmCiAgICB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgd2FzIHNldCwgd2hpY2ggZGlkIG5vdCB3b3JrIG9uIGFueQogICAgYXJjaGl0ZWN0dXJlIHdoZXJlICJjaGFyIiBkZWZhdWx0ZWQgdG8gYmUgYW4gdW5zaWduZWQgdHlwZS4KCiAgICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEFuZ2Vsb3MgTWFub3VzYXJpZGlzIDxhbWFub3VzQGluYWNjZXNzbmV0d29ya3MuY29tPgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDA4YjcyMzNiYzI1MmZhYWQ4MzM5ZTdjYTBkZGZkNjJmYTc5OTAzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMSAxMjoyMzoyOSAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGJyb2tlbiB2YXJpYWJsZSByZWZlcmVuY2Ugd2hlbiAjZGVmIERFQlVHaW5nLgoKICAgIFNvbWV0aW1lcyB5b3UgY2FuJ3QgcmVmZXJlbmNlIHRoZSBERFIyIGNvbnRyb2xsZXIgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjlkOTE2NGQ5YzZiNWE3ZjAzOTNmZDhkN2UyNDZiOGEwMzI2YmMxOQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjYgMTg6MzI6MDAgMjAwNyArMDgwMAoKICAgIG1ha2UgODYxMCBib2FyZCB1c2UgcGl4aXMgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRiNzRiM2MxYzk0ODFhNmJmZmJmOGNkNDQ1ZTViY2JmNjkwOGU4MzYKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDI5IDE5OjI2OjIxIDIwMDcgKzA4MDAKCiAgICBVbmlmeSBwaXhpc19yZXNldCBhbHRiYW5rIGFjcm9zcyBib2FyZCBmYW1pbGllcwoKICAgIEJhc2ljYWxseSwgcmVmYWN0b3IgdGhlIENGR19QSVhJU19WQk9PVF9NQVNLIHZhbHVlcwogICAgaW50byB0aGUgc2VwYXJhdGUgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0YmY1NTU0NjVjNzkyNmJlMTNlMTA0NmFjMGQwZjA1YWM3MjgyOWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDcgMDg6MTk6MjEgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nOiBwb2ludGVyIHRhcmdldHMgaW4gYXNzaWdubWVudCBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2E2MGVlN2M2MjQ4YTk1OGM1NzU3ZDM2NjBhMTcwMjcyM2EyNzg2ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBOb3YgNyAwODoxOToxOSAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gY29tbW9uL2NtZF9pZGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjMxZDM4YjllZWE5YjMyZjZhMWFjODQ4YTI5OGNjNzFjYTRjOWEwMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAxNiAxNDoxNjo1NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgNDA1RVggUENJZSBVVEwgcmVnaXN0ZXIgY29uZmlndXJhdGlvbgoKICAgIFRpbGwgbm93IHRoZSBVVEwgcmVnaXN0ZXJzIG9uIDQwNUVYIHdlcmUgbm90IGluaXRpYWxpemVkIGJ1dCBsZWZ0IHdpdGgKICAgIHRoZWlyIGRlZmF1bHQgdmFsdWVzLiBUaGlzIHBhdGNoIG5ldyBpbml0aWFsaXplcyBzb21lIG9mIHRoZSBVVEwKICAgIHJlZ2lzdGVycyBvbiA0MDVFWC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWNkY2JkNGY4YzFmOGNlZmQ3ODU3NTJmNGU3NTM2YWFlMmE0ZWNmOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAxNiAxNDowMDo1OSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBNYWthbHUgZm9yIGJvYXJkIHJldiAxLjEKCiAgICBUaGlzIHBhdGNoIGFkZHMgY2hhbmdlcyBuZWVkZWQgZm9yIE1ha2FsdSByZXYgMS4xOgoKICAgIC0gRW5hYmxlIDJuZCBERFIyIGJhbmsgcmVzdWx0aW5nIGluIDI1Nk1CeXRlIG9mIFNEUkFNCiAgICAtIEVuYWJsZSAybmQgZXRoZXJuZXQgcG9ydCBFTUFDMQogICAgLSBVc2UgZ2VuZXJpYyBHUElPIGNvbmZpZ3VyYXRpb24gZnJhbWV3b3JrIChDRkdfNHh4X0dQSU9fVEFCTEUpCiAgICAtIFJlc2V0IFBDSWUgcG9ydHMgdmlhIEdQSU8gdXBvbiBib290dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGQ0ZmFhZTY1ZTExNWUzMjc0MjVjZDUxNGMxYTM1MTQ2YTg1MTY2YgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgR3JvdXAgUENJIGFuZCBQQ01DSUEgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDU3OThmODdkYzEwYTQ5NmQ3OWQzMTc3YjlmNWE3NjQ4ODk4N2ZkMzUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIEdyb3VwIGJsb2NrL2ZsYXNoIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBkZjU4YzgxNTUxNzAwZjA1OGI0NGNhY2Y1NWE3OTk3ZmE2M2JmZTBhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBHcm91cCBVU0IgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVkYmI2ZWQ2MjJlNTM5YjBjODQ5M2VmN2U1NzhkM2E1MzMxODFkMjkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIGkyYyBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZWMwMGM3NmRlMGU1OTcxMjczOTA1OTk4ZDYyZDZiYjExOTMyNDIxOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMCAyMDA3IC0wNjAwCgogICAgR3JvdXAgY29uc29sZSBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzU0ZjIzMGFhMDFiOGM3ODlmYzMxZjgwMTNjMjQ4Nzk1NDA3MzMwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMCAyMDA3IC0wNjAwCgogICAgR3JvdXAgbmV0d29yayBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjAwMzdjNTZiMGQxMmNkNDYyMTUxMjQ2NjdiOWY4M2Q2MGVmOTM5MQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMCAyMDA3IC0wNjAwCgogICAgQnVpbGQ6IHNwbGl0IENPQkpTIHZhbHVlIGludG8gbXVsdGlwbGUgbGluZXMKCiAgICBUaGlzIGNoYW5nZSBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgY29uZHRpdGlvbmlhbCBjb21waWxlIHN1cHBvcnQgaW4gdGhlCiAgICBidWlsZCBzeXN0ZW0uICBCeSBzcGxpdGluZyB0aGVtIGFsbCBpbnRvIHNlcGVyYXRlIGxpbmVzIG5vdywgc3Vic2VxdWVudAogICAgcGF0Y2hlcyB0aGF0IGNoYW5nZSAnQ09CSlMteSArPSAnIGludG8gJ0NPQkpTLSQoQ09ORklHXzxibGFoPikgKz0gJyB3aWxsCiAgICBiZSBsZXNzIGludmFzaXZlIGFuZCBlYXNpZXIgdG8gcmV2aWV3CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDFiNGFhZmZlNGZiMmE1ZTk1ZDkxMTFhNWQ5NGZkMWY4OTIxNWRjZTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEFkZCAuZ2l0aWdub3JlIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTU1NDEzZjM1ZjA1NGE4MmU0MDA0MmYxZGJjZjUwMWM2YTA1NzE5YgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyNzo1MiAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IHJlbG9jYXRpb24gZml4dXAgZm9yIG1wYzV4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM2NDljZDk5YmE4MTViNjYwMTg2ODczNTc2NTYwMmYwMGVmMzY5MmIuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZTE1NjMzODg4YTA1OGFhY2IzMWE2MmQyY2YxMjc4ZTFlNGMyMzZhYgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyNDozMiAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIE1QQzV4eHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA2Zjc1NzZiMjBlY2YwZDA0MGMzYWMzYjAzMmI1Y2JjODYwZTM4YTkwLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDEzOTM2NWZiZTU2NmQwZmM2MTlhMWVkMDQ0NTJlYzUzODhmMGNlZjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjE6MDQgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjIwIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYTg1ZGQyNTRjMDU3N2ZjYTEzNjI3YzQ2ZTkzZmMyYWQ0YzRmMWYwMC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3MDkyMjM0MjM2OWU1ZTM5YjI4NmZlMjFlNzY4YTIzOWNhMDdhNTE0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjU3IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI0eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGYzYTUyZmUwNTkyMzkzNWRiODY5ODVkYWY5NDM4ZTJmNzBhYzM5YWEuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTYyNzlhYjRjYWQ2MGNiNTk3MmFhOTM0ZmJlNDg0NWFjMDJjYzc1YQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo1MCAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNjAiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA1YWY2MWIyZjRiODM4YTA1Zjc5YmUyNzRmM2U1YTY2ZWRkMmQ5Yzk2LgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDkyOGZlMzNiMjRjZGYzODJhOGRjODY4N2ZlZDI0YjE5NjFjZGI1ZDYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NDMgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4M3h4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDU3MDA0ZjRhNDg2MzU1NGQ1NmNjNTYyNjhiZmE3YzdkOTczOGUyNy4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTM5NDVlOGY5ZTMwMDg2MGQyYmY3M2EyNTQ5Y2U1Nzk0ZjhiZDAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjI1IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIltNUEM1MTJ4XSBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZDE3OTc5ZDAzNTk0OTJhODIyYTBhNDA5ZDI2ZTNhMzU0OWI0Y2Q0LgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5NjcyZjgxZjFiZGI0ZThkZGY2MmFhNzJjYTAyMDZlOGI3MmFhMWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTUgMTQ6MjU6MDkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogU21hbGwgQU1DQyBLaWxhdWVhIGNsZWFudXAKCiAgICBSZW1vdmUgbm90IG5lZWRlZCBwY2lfdGFyZ2V0X2luaXQoKSBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVlNzQ3ZjE5YjQ2MGEwZTlkYTIwZmYyMWU5MGZkYWFjMWNlYzM1OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAxNSAxNDoyMzo1NSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgNDQwIEdQSU8gaW5pdCB0YWJsZSBDRkdfNDQwX0dQSU9fVEFCTEUgZm9yIDQwNSBwbGF0Zm9ybXMKCiAgICAtIFJlbmFtZSBDRkdfNDQwX0dQSU9fVEFCTEUgdG8gQ0ZHXzR4eF9HUElPX1RBQkxFCiAgICAtIENsZWFudXAgb2YgdGhlIDR4eCBHUElPIGZ1bmN0aW9ucwogICAgLSBNb3ZlIHNvbWUgR1BJTyBkZWZpbmVzIGZyb20gdGhlIGNwdSBoZWFkZXJzIHBwYzQwNS5oL3BwYzQ0MC5oIGludG8gZ3Bpby5oCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhhZGEwZWJmMzhlNDA3M2JlZWEwMzA5MTg4YjI1ZDgyYTExMmEyYWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTUgMTQ6MjA6MDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQU1DQyBUYWlodSBib2FyZCBjb25maWcgZmlsZSBjbGVhbnVwCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgQU1DQyBUYWlodSBhIGxpdHRsZSBtb3JlIGNvbXBhdGlibGUgdG8gdGhlIG90aGVyCiAgICBBTUNDIGV2YWwgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZTcxYzUxZDc0Yzk2M2QzMTc0MDYwYzA3OGRjYWNmMTNiZGQwMmVmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMzozNzoyOCAyMDA3ICswMTAwCgogICAgW0lOS0E0eDBdIE5HIGhhcmR3YXJlOiBmbGFzaCBzdXBwb3J0CgogICAgRGlzYWJsZWQgYW5kIHJlbW92ZSBpbmthNHgwIGN1c3RvbSBmbGFzaCBkcml2ZXIsIHVzZSBDRkkgZmxhc2gKICAgIGRyaXZlciBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNWZiNmQ3MTkxZTIwNmNkZGUwZTIzMTQwZmQ4MTExY2FlZDkzYTU5NQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBOb3YgMTUgMTM6Mjk6NTUgMjAwNyArMDEwMAoKICAgIFtJTktBNHgwXSBORyBoYXJkd2FyZTogU0RSQU0gc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aHJlZSBuZXcgRERSIGNoaXBzIHRoYXQgbWF5ICBiZSBwcmVzZW50IG9uIGEgTkcKICAgIElOS0E0eDAgaGFyZHdhcmU6IEhZQjI1RDUxMjE2MEJGLTUsIEs0SDUxMTYzOEMtN0NCMywgVDQ2VjMyTTE2Qk4tNklULgoKICAgIENsZWFudXAgYm9hcmQvaW5rYTR4MC9tdDQ4bGMxNm0xNmEyLTc1LmggZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGYyM2NiMzRjMzY3YmIyNzU4NWE0ZmRiOGE3NTI3NzM3MGU3ZDA1OTYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDE1IDEzOjI0OjQzIDIwMDcgKzAxMDAKCiAgICBbSU5LQTR4MF0gTkcgaGFyZHdhcmU6IHBsYXRmb3JtIGNvZGUgdXBkYXRlCgogICAgLSBDbGVhbnVwIGNvbXBpbGUgd2FybmluZ3MuCiAgICAtIEFkZCBtaXNzaW5nICdcMCcgaW4gZGVmYXVsdCBlbnZpcm9ubWVudC4KICAgIC0gSW5jcmVhc2UgQ0ZHX01PTklUT1JfTEVOIHRvIDI1NiBLaUIuCiAgICAtIEFkZCByZXF1aXJlZCBDRkdfVVNFX1BQQ0VOVi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDJhZTY0ZjUxMzVlNTFiYjE4NzUzODg0ZDEyNjViOTllODliNWFlZGQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUaHUgTm92IDE1IDA4OjU4OjAwIDIwMDcgKzAwMDAKCiAgICBSZW1vdmUgd2FybmluZ3MgcmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwogICAgUmVtb3ZlIHdhcm5pbmdzIHJlIG9uZW5hbmRfcmVhZCgpICYgd3JpdGUoKQoKY29tbWl0IDJkYjkxNmUxNDQxMGUzZWMxNzM4NTA4YzdiZjRkZmViMmIyOTlhZTcKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUaHUgTm92IDE1IDA4OjQ1OjEzIDIwMDcgKzAwMDAKCiAgICBDb3JyZWN0aW9uIHBhdGNoCgpjb21taXQgMWQ4YTQ5ZWNhMWM3YmRjOGRiMWM0N2E5MmY5MDE0YTI5ZWFkMDNhZQpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxODo1MjoyOCAyMDA3ICswODAwCgogICAgRW5hYmxlIFVMaTE1NzUgRXRoZXJuZXQgc3VwcG9ydCBpbiA4NjEwSFBDRCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGZkNmM5M2MyOGEwYTQ1MzUyZmZmNWRkOTI2NzM0MDFmZjU2M2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA4OjE4OjIwIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogQ2hhbmdlIFBIWSByZXNldCBzZXF1ZW5jZSBmb3IgUEhZIE1ESU8gYWRkcmVzcyBsYXRjaGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZDBhNDA2NmI1YTZiNjk4ZTVmYzFiNjZjZmU5NzA1Nzc0YmJjZTkzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA4OjA2OjExIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCA0MDVFWCBQQ0llIFVUTFNFVCByZWdpc3RlciBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxY2U1NTE1MWM4NWQwNjhmNzAzMTdhOGQ2NWM2MTA1OGI4OTFhZmI0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTMgMDc6NTA6MjkgMjAwNyArMDEwMAoKICAgIFtVQzEwMV0gU1JBTSBub3cgd2l0aCAyIE1CIHdvcmtpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMmQxNDY4NDM0MTEwOWE2OTYxNmU0ZDYwMTZjZDYxNDAyZDU1MDg2ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgTm92IDkgMTU6Mzc6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXNlIGdlbmVyaWMgdXNiLW9oY2kgZHJpdmVyIGZvciBzZXF1b2lhIGJvYXJkCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgc2VxdW9pYSBib2FyZCB1c2UgdGhlIGdlbmVyaWMgdXNiLW9oY2kgZHJpdmVyCiAgICBpbnN0ZWFkIG9mIGNwdS9wcGM0eHgvdXNiX29oY2kuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YmU2NTlhYzA4NjhkYzM2N2NhYTk1N2M1YzcyNWU0NmIwN2Y2YTVmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNTozNzoyMyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIFVTQiB3b3JraW5nIHdpdGggQ09ORklHXzR4eF9EQ0FDSEUgZGVmaW5lZAoKICAgIFRoaXMgcGF0Y2ggZGlzYWJsZXMgdGhlIDQ0eCBkLWNhY2hlIG9uICd1c2Igc3RhcnQnIGFuZAogICAgcmVlbmFibGVzIGl0IG9uICd1c2Igc3RvcCcuIFRoaXMgc2hvdWxkIGJlIHNlZW4gYXMgYQogICAgdGVtcG9yYXJ5IGZpeCB1bnRpbCB0aGUgZ2VuZXJpYyB1c2Itb2hjaSBkcml2ZXIgY2FuCiAgICBsaWZlIHdpdGggZC1jYWNoZSBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZiZGUyMTY5ZDJjNDhmY2M5ZmYwMzQ4OTUzNGE3OGZmYjBhOGEwZDQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE1OjM2OjQ0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSByZWR1bmRhbnQgY29kZSBmcm9tIDR4eCBuZXR3b3JrIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIHJlZHVuZGFudCBjb2RlIGFuZCBkZWNyZW1lbnRzIHRoZSBlbmQKICAgIGFkZHJlc3Mgb2YgY2FjaGUgZmx1c2ggYW5kIGludmFsaWRhdGUgYnkgMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Y2E5ODgxYWFkOGM0MTNhYzJhODI4NjhhNWUzNzE5MTc4MjU0NTAyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE1OjI0OjI2IDIwMDcgKzAwMDAKCiAgICBBZGQgYXBvbGxvbiBib2FyZCBzdXBwb3J0CiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGI1MzMxM2RiZmM3NDUyNWQ4NWYxZTdlMDEwMmY5MDJkNWM4NjNiZWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgOSAxMjoxOTo1OCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgSW46L091dDovRXJyOiBib290IG91dHB1dCBmb3IgQU1DQyBLaWxhdWVhCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM3ZjY5YzM0MDI3NzkzNWE2YzE5YTk1NjQyMTg1MmRhOTQ0YTM2NWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgOSAxMjoxODo1NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIG91dHB1dCBhIGxpdHRsZSBzaG9ydGVyIG9uIEkyQyBib290cm9tIGRldGVjdGlvbgoKICAgIE1vc3QgNHh4IFBQQyBjYXBhYmxlIG9mIHVzaW5nIGFuIEkyQyBib290cm9tIGZvciBib290c3RyYXAgc2V0dGluZwogICAgYWxyZWFkeSBwcmludCBhIGxpbmUgd2l0aCB0aGUgaW5mb3JtYXRpb24gd2hpY2ggSTJDIGJvb3Ryb20gaXMKICAgIHVzZWQgZm9yIGJvb3RzdHJhcCBjb25maWd1cmF0aW9uLiBTbyB3ZSBkb24ndCBuZWVkIHRoaXMgZXh0cmEgbGluZQogICAgd2l0aCAiSTJDIGJvb3QgRUVQUk9NIGVuLS9kaXMtYWJsZWQiLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBoYXMgYSBsaXR0bGUgY29kZSBjbGVhbnVwIGludGVncmF0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhkNzM3YTI4MTUyZWMxMjg3M2Y4NTQ0Y2NhMWZiMzlhNDllNWU2OTMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjo1MDoxOCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSBSZW1vdmUgcmVzZXQgcmVnaXN0ZXJzIGZyb20gQ0NNCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkN2NkZWE3NjlhNjBiMGE2ZTRjMThiZWY3ZjlkNjQ4ZmQxNGI4ZDcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjozMToxMSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSBBZGQgUmVzZXQgc3RydWN0dXJlIHRvIGltbWFwXzUzMjkuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwOWIyNmNmMDBkNzZkNzVmZGY3ZmRjNGIxM2U0ZGQ5Mjk3NDNiYzIxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6MTk6MDEgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gcmV2ZXJ0IGluY2x1ZGUvYXNtLW02OGsvbTUzMjkuaCBmaWxlIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjI1YTI0YjVlMDYyYWQ5NDYyNzQyNDUwOGFlODE0ZjUxZGJlMWEzNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE4OjAwOjU0IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ0NXggLSBVcGRhdGUgY29ycmVjdCBSQU1CQVIgYW5kIG1pc3NpbmcgbGlua2VyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0OGM3YzE0ODM1ZjM0ZDVkOTEwYjQ1ZTU2MDAwNTBlNThjYTZjYWIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxNzo1NjoxNSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMnggLSBVcGRhdGUgZG9fcmVzZXQoKSB1c2luZyBjb3JlIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ5MjQwYTVmODI3ZWIzYjQ3NmE2YmEyOTM4ZDAxZjFhOWU3Njg4ZjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxNzo1MTowMCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBjcHUgZmxhZyBmb3IgNC4yLXh4IGNvbXBpbGVyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA3MGJhNTYxMTViNGRhNjNiNDZlOTc0Mjg3ZmE0NTUwZDQwMjMzODYKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDMxIDE0OjU5OjA0IDIwMDcgLTA1MDAKCiAgICA4NjEwOiBBZGQgY29uc29sZSBmcmFtZSBidWZmZXIgc3VwcG9ydCB0byBGU0wgODYxMCBESVUgZHJpdmVyLgoKICAgIEFkZCBjZmIgY29uc29sZSBzdXBwb3J0IHRvIEZTTCA4NjEwIERJVSBkcml2ZXIuCiAgICBJbnNwZWN0IGJvYXJkIHZlcnNpb24gZnJvbSBQSVhJUyB0byBvYnRhaW4gY29ycmVjdCBwaXhlbCBmb3JtYXQuCgogICAgVXNlICNkZWZpbmUgQ09ORklHX1ZJREVPIGluIGNvbmZpZyBmaWxlIHRvIGVuYWJsZSBmYiBjb25zb2xlLgoKICAgIFRvIHN3aXRjaCBtb25pdG9yLCBzZXQgbW9uaXRvciB2YXJpYWJsZSB0bwogICAgMCAtIERWSSwgMSAtIFNpbmdsZSBsaW5rIExWRFMsIDIgLSBEb3VibGUgbGluayBMVkRTCiAgICBmb2xsb3dlZCBieSAiZGl1ZmIgaW5pdCIuCgogICAgUHJlc2VydmUgbG9nbyBiaXRtYXAgYXQgdGhlIHRvcCBvZiB0aGUgZmIgY29uc29sZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODc3ODgwYzY5NDllOTQ4YmQ2M2NkNmVhNGUyMTY1NzNkMmY1M2RkCkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzo1ODozOSAyMDA3IC0wNTAwCgogICAgODYxMDogQWRkIDg2MTAgRElVIGRpc3BsYXkgZHJpdmVyCgogICAgMTI4MHgxMDI0IGFuZCAxMDI0eDc2OCBAIDMyIGJwcCBhcmUgc3VwcG9ydGVkIG5vdy4KICAgIERWSSwgU2luZ2xlLWxpbmsgTFZEUywgRG91YmxlLWxpbmsgTFZEUyBhcmUgYWxsIHN1cHBvcnRlZC4KCiAgICBFbnZpcm9ubWVudGFsIHZhcmlhYmxlICJtb25pdG9yIiBpcyB1c2VkIHRvIHNwZWNpZnkgbW9uaXRvciBwb3J0LgoKICAgIEEgbmV3IGNvbW1hbmQgImRpdWZiIiBpcyBpbnRyb2R1Y2VkIHRvIHJlaW5pdGlhbGl6ZSBtb25pdG9yCiAgICBhbmQgZGlzcGxheSBhIEJNUCBmaWxlIGluIHRoZSBtZW1vcnkuIFNvIGZhciwgMS1iaXQsIDQtYml0LAogICAgOC1iaXQgYW5kIDI0LWJpdCBCTVAgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgoKCWRpdWZiIGluaXQKCSAgICAtIGluaXRpYWxpemUgdGhlIGRpdSBkcml2ZXIKCUVuYWJsZSB0aGUgcG9ydCBzcGVjaWZpZWQgaW4gdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUgIm1vbml0b3IiCgoJZGl1ZmIgYWRkcgoJICAgIC0gZGlzcGxheSBibXAgZmlsZSBpbiBtZW1vcnkuCglUaGUgYm1wIGltYWdlIHNob3VsZCBiZSBubyBiaWdnZXIgdGhhbiB0aGUgcmVzb2x1dGlvbiwgMTI4MHgxMDI0Cglmb3IgRFZJIGFuZCBkb3VibGUtbGluayBMVkRTLCAxMDI0eDc2OCBmb3Igc2luZ2xlLWxpbmsgTFZEUy4KCiAgICBOb3RlLCB0aGlzIGRyaXZlciBhbGxvY2F0ZSBtZW1vcnkgYnV0IGRvZXNuJ3QgZnJlZSBpdCBhZnRlciB1c2UKICAgIEl0IGlzIHdyaXR0ZW4gb24gcHVycG9zZSAtLSB0byBhdm9pZCBhIGZhaWx1cmUgb2YgcmVhbGxvY2F0aW9uCiAgICBkdWUgdG8gbWVtb3J5IGZyYWdlbWVudC4KCiAgICBFQ0Mgb2YgRERSIGlzIGRpc2FibGVkIGZvciBESVUgcGVyZm9ybWFuY2UuIEwyIGRhdGEgY2FjaGUgaXMgYWxzbyBkaXNhYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIGxvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MmU1ZGRmZWNkZGEzMDhmNzU3ODJmYWUyMDZiNjc3YjE4MTBmNWY5CkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAzMSAxMDo0Mzo1OSAyMDA3IC0wNTAwCgogICAgRlNMOiBBZGQgYSBmcmVlc2NhbGUgYml0bWFwIGxvZ28uCgogICAgVGhpcyBGcmVlc2NhbGUgbG9nbyBpcyBhIDM0MCB4IDEyOCB4IDRicHAgQk1QIGZpbGUKICAgIHRoYXQgY2FuIGJlIGRpc3BsYXllZCBieSB0aGUgRElVIEZyYW1lYnVmZmVyIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODE1MzM4ZmJkMWMwZjk0ZjgyNzZkMjg5MWI5OWNhYTVhMDVmNjIyCkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzo1Nzo1MyAyMDA3IC0wNTAwCgogICAgODYxMDogTWFrZSBzb21lIGV4dHJhIGRlYnVnIGVudmlyb25tZW50IHZhcmlhYmxlcyBjb25kaXRpb25hbC4KCiAgICBPbmUgbWF5ICNkZWZpbmUgRU5WX0RFQlVHIHRvIGdldCB0aGVtIGJhY2sgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjE0MjFjY2NhODBhOWZiMzdiMTljMzdhYTYxZDQ2ZWY3NWUwNjQ3CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgODYxMDogQWN0dWFsbHkgZW5hYmxlIHBpeGlzX3Jlc2V0IENPTkZJR3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYzYmNlYWFiMjMwYjQ3NDhkMGFmYzQxMDliNjgzNzMwOGYwMThiNDAKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMxOjU5IDIwMDcgKzA4MDAKCiAgICBGaXggdGhlIEJBVCBkZWZpbml0aW9uIG9mIFBDSSBJTyBvbiA4NjEwIGJvYXJkCgogICAgVGhlIGFkZHJlc3MgaW4gdGhlIEJBVCByZWdpc3RlciBpcyBhbGlnbmVkIHdpdGggdGhlIEJBVCBzaXplLgogICAgVGhlIG9yaWdpbmFsIGRlZmluaXRpb24gYWN0dWFsbHkgZGlkIG5vdCBkZWZpbmUgQkFUIGZvciBQQ0lFMiBJTy4KICAgIFRoaXMgcGF0Y2ggZml4IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZjIzY2EzMzRhNmY1ZjAyMWVmOWU5ZDBmYWQ5ZGE4MGQ2M2IyZDU2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgVW5pZnkgcGl4aXNfcmVzZXQgYWx0YmFuayBhY3Jvc3MgYm9hcmQgZmFtaWxpZXMKCiAgICBCYXNpY2FsbHksIHJlZmFjdG9yIHRoZSBDRkdfUElYSVNfVkJPT1RfTUFTSyB2YWx1ZXMKICAgIGludG8gdGhlIHNlcGFyYXRlIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODMxOGVjMjA1YzhlODc5NGI1ZjlmMWI4NTg0YWJhZGI0NDBlOGJhCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNiAxODozMjowMCAyMDA3ICswODAwCgogICAgbWFrZSA4NjEwIGJvYXJkIHVzZSBwaXhpcyByZXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWM4NDcwOWVlZGNlOWM2ODBkZDY5NTk4NGFiN2QyMzI4ZjRmMDRmNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMSAxMjoyMzoyOSAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGJyb2tlbiB2YXJpYWJsZSByZWZlcmVuY2Ugd2hlbiAjZGVmIERFQlVHaW5nLgoKICAgIFNvbWV0aW1lcyB5b3UgY2FuJ3QgcmVmZXJlbmNlIHRoZSBERFIyIGNvbnRyb2xsZXIgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWYxMDMxMDVhMzc0NmFiMTIyNzliNjNiOGMxZDM3MmMwY2UyY2M1OApBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiA1IDE3OjM5OjI0IDIwMDcgKzA4MDAKCiAgICBJbXBsZW1lbnQgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIgc3VwcG9ydCBpbiBVLWJvb3QKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIuCiAgICBVbnRpbCBub3csIGl0IGlzIHRoZSBvbmx5IG5hdGl2ZSBFdGhlcm5ldCBwb3J0IG9uCiAgICBNUEM4NjEwSFBDRCBib2FyZCwgYnV0IGl0IGNvdWxkIGJlIHVzZWQgb24gb3RoZXIgYm9hcmRzCiAgICB3aXRoIFVMaSA1MjZ4IEV0aGVybmV0IHBvcnQgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA3MWJjNmU2NDc0ZmVhOGVmNDgxYjliNDVkMWVkZDdhZDFmNmRmYmJkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBOb3YgMSAwODo0Njo1MCAyMDA3IC0wNTAwCgogICAgTkVUOiBBZGQgRXRoZXJuZXQgMTAwMEJBU0UtWCBzdXBwb3J0IGZvciBQUEM0eHgKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgMTAwMEJBU0UtWCB0byBmdW5jdGlvbnMgIm1paXBoeV9zcGVlZCAoKSIgYW5kCiAgICAibWlpcGh5X2R1cGxleCgpIi4JSXQgYWxzbyBhZGRzIGZ1bmN0aW9uICJtaWlwaHlfaXNfMTAwMGJhc2VfeCAoKSIsIHdoaWNoCiAgICByZXR1cm5zIG5vbi16ZXJvIGlmZiB0aGUgUEhZIHJlZ2lzdGVycyBhcmUgY29uZmlndXJlZCBmb3IgMTAwMEJBU0UtWC4gIFRoZQogICAgIm1paSBpbmZvIiBjb21tYW5kIGlzIG1vZGlmaWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gMTAwMEJBU0UtVCBhbmQgLVguCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyOTgwMzVkZjQ5NDhiMTEzZDI5YWMwZTY5NDcxN2QzNGI5NWJjNWRjCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTE6MjE6MjkgMjAwNyAtMDUwMAoKICAgIE5FVDogQ29zbWV0aWMgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNjU0ZjM4YjNhMzg3ODg2OTk2YTVhNzU3NzFmYmZjMjljYjRmMjI1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiA1IDA3OjQzOjA1IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1ha2Ugb3V0cHV0IGEgbGl0dGxlIHNob3J0ZXIgb24gUENJZSBkZXRlY3Rpb24KCiAgICBOb3cgbm90IG1heCAzIGxpbmVzIGJ1dCAyIGxpbmVzIGFyZSBwcmludGVkIHBlciBQQ0llIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5Mjc0MmE1YjA5ZDkwNDBhZGJkMTU2ZmI5MDc1NmFmNjZhZGUzMTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDMgMjM6MDk6MjcgMjAwNyArMDEwMAoKICAgIENsZWFudXAgY29kaW5nIHN0eWxlOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlODgxY2I1NjNlMzJmNDU4MzJiN2I2ZGI3N2JkY2QwMTdhZGNiYjQxCkF1dGhvcjogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgpEYXRlOglGcmkgTm92IDIgMTM6MTU6NDIgMjAwNyAtMDcwMAoKICAgIGZpeCB3b3JkaW5nIGluIFJFQURNRQoKICAgIENoYW5nZWQgdGhlIHdvcmRpbmcgdG8gcHJvcGVybHkgZGVzY3JpYmUgdGhlIHNoYWRvd2luZwogICAgb2YgdGhlIGVudmlyb25tZW50IGZyb20gUk9NIHRvIFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBhY20ub3JnPgoKY29tbWl0IGFkODQ1YmVlZjA2MjQ1NDI2YzU3YjUzZGNkYzAxYjdkYzcwZTBkNDUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglXZWQgT2N0IDMxIDAyOjE4OjE1IDIwMDcgKzA5MDAKCiAgICBibGFja2ZpbjogTW92ZSBgLURfX0JMQUNLRklOX18nIHRvICQoQVJDSClfY29uZmlnLm1rCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlYzIyNzU1Nzk5NDY2YzhhMTAzNjY0YmIzYTVlNjQ3YmY5YzIzOGY0CkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVRodSBPY3QgMjUgMTY6MDg6MTQgMjAwNyArMDMwMAoKICAgIFRyaW1tZWQgc29tZSB2YXJpYWJsZXMgaW4gbmUyMDAwLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBlYjZmMjE0ZDM2NDRiMmE3Nzk2OGMxNzZlZDM2ZGNmODU4Y2ZlN2UwCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzo1MToyNyAyMDA3ICswODAwCgogICAgRml4IHRoZSBpc3N1ZSBvZiB1c2Jfa2JkIGRyaXZlciBtaXNzaW5nIHRoZSBzY2FuIGNvZGUgb2Yga2V5ICd6Jy4KCiAgICBUaGUgc2NhbiBjb2RlIG9mIHRoZSBrZXkgJ3onIGlzIDB4MWQsIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkLgoKICAgIFRoZSBjaGFuZ2UgaGFzIGJlIHRlc3RlZCBvbiBOT1ZBVEVLIFVTQiBrZXlib2FyZCBhbmQgVUxJIFBDSSBPSENJCiAgICBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmJmNDc5NmY2NDk4ZmJhZGU1NmQ1NmVmZjNhMGE0OWIyOTlkOTNlNQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MzA6MDQgMjAwNyArMDgwMAoKICAgIEZpeCBVU0Igc3VwcG9ydCBpc3N1ZSBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBoYXMgYWxyZWFkeSBlbmFibGVkIFVTQiwgYnV0IGl0CiAgICBtaXNzZWQgZGVmaW5pdGlvbiBvZiBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MsIHRoZSBVU0IKICAgIG9uIE1QQzg2NDFIUENOIGNhbiBub3Qgd29yayBiZWNhdXNlIG9mIHRoZSB3cm9uZyBVU0IKICAgIHJlZ2lzdGVyIGVuZGlhbi4KCiAgICBBbmQgYWRkIHRoZSBVU0IgY29tbWFuZCB0byBVLUJvb3QgY29tbWFuZHMgbGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlNjIwNDEwMjNkYzNkZTlkOThkOTc3YmIwODAyMzViYzZkMDM1ZTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE4OjE2OjAxIDIwMDcgKzAyMDAKCiAgICBVc2UgY29uZmlnX2NtZF9kZWZhdWx0LmggaW5zdGVhZCBvZiBjb25maWdfY21kX2FsbC5oCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NjYyMmY4Nzg1NzQzOWIxYzIyMWU5ZGVlZjExYTlkNWJiNWQ0MzA4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAwMTozNzozNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQ2FsbCB1c2JfY3B1X2luaXQoKSBkdXJpbmcgYm9hcmQgaW5pdAoKICAgIHVzYl9jcHVfaW5pdCgpIGNvbmZpZ3VyZXMgR1BTIFVTQiBwaW5zLCBjbG9ja3MsIGV0Yy4gYW5kCiAgICBpcyByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBrZXJuZWwgVVNCIHN1YnN5c3RlbS4KICAgIFRoaXMgc2V0dXAgd2FzIHByZXZpb3VzbHkgZG9uZSBpbiB0aGUga2VybmVsIGJ5IHRoZSBmaXh1cAogICAgY29kZSB3aGljaCBpcyBiZWluZyByZW1vdmVkLCB0aHVzIGxvdyBsZXZlbCBpbml0IG11c3QgYmUKICAgIGRvbmUgYnkgVS1ib290IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI5YzI5YzAyNjdmZTg1N2U3MjAxNGNlOTBjNWQzNWIyZWY2MzAyYmQKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTY6MjU6NTAgMjAwNyArMDIwMAoKICAgIEZpeCB0eXBvIGluIG5mcy5jCgogICAgQW4gb2J2aW91cyB0eXBvLiBPcmlnaW5hbGx5IGZpeGVkIGluIGxpbmtzdGF0aW9uIHUtYm9vdCBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA1OTU0M2ZlMDBhNGNlNzIwZWY5ZjVhYTdmYjM4N2M2ZGFmMWM3ZDc4CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjM1OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggYSB0eXBvIGluIGNwdS9tcGM4MjR4L2ludGVycnVwdHMuYwoKICAgIFNpbmNlIERlY2VtYmVyIDIwMDMgdGhlIHRpbWVyX2ludGVycnVwdF9jcHUoKSBmdW5jdGlvbiBpbgogICAgY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jIGNvbnRhaW5zIHdoYXQgc2VlbXMgdG8gYmUgYSBzdXBlcmZsdW91cwogICAgcGFyYW1ldGVyLiBSZW1vdmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGM5ZTdiOWI5YTE3MDBmZTAwOTY3OGQxZjliNDFlNjM2NGFjNWRmMmQKQXV0aG9yOiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTE6MTM6NTEgMjAwNyArMDIwMAoKICAgIGFkZCBmdF9jcHVfc2V0dXAoLi4pIG9uIG1wYzgyNjAKCiAgICBBZGQgZnRfY3B1X3NldHVwKC4uKS1mdW5jdGlvbiB0byBhZGFwdCBpdCBmb3IgdXNlIHdpdGggbGliZmR0CiAgICBiYXNlZCBvbiBjb2RlIGZyb20gbXBjNXh4eAoKICAgIFNpZ2VuZC1vZmYtYnk6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KICAgIC0tCgpjb21taXQgNmFiZDgyZTE5YWU5M2MwYjRkMTA0ZTUwMTY1ZTIzNTkxNWVjMDg3NQpBdXRob3I6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxMToxODo0MiAyMDA3ICswMjAwCgogICAgY2hhbmdlcyBmb3IgSURTODI0NyBib2FyZCBzdXBwb3J0CgogICAgVG8gZ2V0IHRoZSBJRFM4MjQ3IGJvYXJkIHdvcmtpbmcgZm9sbG93aW5nIGFyZSBkb25lOgogICAgIC0gRkNDMiBpcyBkZWFjdGl2YXRlZAogICAgIC0gRkNDMSBpcyBhY3RpdmF0ZWQKICAgICAtIEkyQyBpcyBhY3RpdmF0ZWQKICAgICAtIENGSSBkcml2ZXIgaXMgYWN0aXZhdGVkCiAgICAgLSBBZGFwdGVkIGZvciB1c2Ugd2l0aCBMSUJGRFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CiAgICAtLQoKY29tbWl0IDNkNmNiM2IyNGFkZDY0MTVmODZhMGYwMTNlYTQwZjU2MzliOTAwNDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMyAxMjowODoyOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBLaWxhdWVhL0hhbGVha2FsYSBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDA1RVgocikgZXZhbCBib2FyZHMuCiAgICBBZ2Fpbiwgb25seSBvbmUgaW1hZ2Ugc3VwcG9ydHMgYm90aCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YjY2ODRhNjk4NTAwYmU5YzE0MmVjMmM5ZjQ2Y2ZjMzQ4ZTE3ZjBjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMTU6NDg6MzcgMjAwNyArMDIwMAoKICAgIEFUU1RLMTAwMjogUmVtb3ZlIGRlZmF1bHQgZXRoZXJuZXQgYWRkcmVzc2VzCgogICAgV29sZmdhbmcgaXMgcmlnaHQ6IEl0J3Mgbm90IGEgZ29vZCBpZGVhIHRvIHNldCB1cCBkZWZhdWx0IGluaXRpYWwKICAgIGV0aGVybmV0IGFkZHJlc3NlcyBmb3IgYSBib2FyZCwgZXZlbiB0aG91Z2ggdGhleSBiZWxvbmcgdG8gdGhlIGxvY2FsCiAgICByYW5nZS4KCiAgICBUaGlzIHdpbGwgY2hhbmdlIHRoZSBmYWlsdXJlIG1vZGUgZnJvbSAiSVQgbWFuYWdlciBzY3JlYW1zIGF0IHlvdSBmb3IKICAgIHVzaW5nIGR1cGxpY2F0ZSBldGhlcm5ldCBhZGRyZXNzZXMiIHRvIGEgbmljZSBlcnJvciBtZXNzYWdlIGV4cGxhaW5pbmcKICAgIHRoYXQgdGhlIGV0aGVybmV0IGFkZHJlc3MgaGFzbid0IGJlZW4gc2V0IHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGU1Yzc5NGU0OTFhNTdkODI5YjZkODczM2UyZWQ4MzY4YTIyNjlhYmYKQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgpEYXRlOglNb24gT2N0IDI5IDE3OjQwOjM1IDIwMDcgLTA0MDAKCiAgICBESENQIENsaWVudCBGaXgKCiAgICBUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgoKICAgIGNvbW1pdCBlNmU1MDVlYWU5NGVkNzIxZTEyM2UxNzc0ODkyOTFmYzQ1NDRiN2I4CiAgICBBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBEYXRlOiAgIE1vbiBPY3QgMjkgMTc6MTk6MDMgMjAwNyAtMDQwMAoKCUZvdW5kIGEgYnVnIGluIHRoZSB3YXkgdGhlIERIQ1AgUmVxdWVzdCBwYWNrZXQgaXMgYnVpbHQsIHdoZXJlIHRoZSBJUCBhZGRyZXNzCgl0aGF0IGlzIG9mZmVyZWQgYnkgdGhlIHNlcnZlciBpcyBib3VuZCB0byBwcmVtYXR1cmVseS4gVGhpcyBwYXRjaCBpcyBhIGZpeCBvZgoJdGhhdCBidWcgd2hlcmUgdGhlIElQIGFkZHJlc3Mgb2ZmZXJlZCBieSB0aGUgREhDUCBzZXJ2ZXIgaXMgbm90IHVzZWQgdW50aWwKCWFmdGVyIHRoZSBESENQIEFDSyBmcm9tIHRoZSBzZXJ2ZXIgaXMgcmVjZWl2ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDVkOTZkNDBkM2YzNmRhMzMzNDhlNjhmOWVhOTkzZjM4M2UxMWY5OTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NTg6MzQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGFjYWRpYV9uYW5kIGJ1aWxkIHByb2JsZW0KCiAgICBTaW5jZSB0aGUgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zIHdlcmUgbW92ZWQgZnJvbSBzdGFydC5TIGludG8gY2FjaGUuUwogICAgdGhlIGFjYWRpYSBOQU5EIGJvb3RpbmcgTWFrZmlsZSBuZWVkcyB0byBiZSBhZGFwdGVkIGFjY29yZGluZ2x5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYTJlMTQyODQzNTMzY2E1OTNmY2I1Y2IzZTFkYWYxYjdmNWU1OTQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjU3OjExIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBDT05GSUdfNHh4X0RDQUNIRSBjb21waWxlIG9wdGlvbnMgdG8gZW5hYmxlIGNhY2hlZCBTRFJBTQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgQ09ORklHXzR4eF9EQ0FDSEUgb3B0aW9ucyB0byBzb21lIFNEUkFNIGluaXQgZmlsZXMKICAgIGFuZCB0byB0aGUgU2VxdW9pYSBUTEIgaW5pdCBjb2RlLiBOb3cgdGhlIGNhY2hlIGNhbiBiZSBlbmFibGVkIG9uIDQ0eAogICAgYm9hcmRzIGJ5IGRlZmluaW5nIENPTkZJR180eHhfRENBQ0hFIGluIHRoZSBib2FyZCBjb25maWcgZmlsZS4gVGhpcwogICAgb3B0aW9uIHdpbGwgZGlzYXBwZWFyLCB3aGVuIG1vcmUgYm9hcmRzIHVzZSBpcyBzdWNjZXNzZnVsbHkgYW5kIG5vCiAgICBtb3JlIGtub3duIHByb2JsZW1zIGV4aXN0LgoKICAgIFRoaXMgaXMgdGVzdGVkIHN1Y2Nlc3NmdWxseSBvbiBTZXF1b2lhIGFuZCBLYXRtYWkuIFRoZSBvbmx5IHByb2JsZW0gdGhhdAogICAgbmVlZHMgdG8gYmUgZml4ZWQgaXMsIHRoYXQgVVNCIGlzIG5vdCB3b3JraW5nIG9uIFNlcXVvaWEgcmlnaHQgbm93LCBzaW5jZQogICAgaXQgd2lsbCBuZWVkIHNvbWUgY2FjaGUgaGFuZGxpbmcgY29kZSB0b28sIHNpbWlsYXIgdG8gdGhlIDR4eCBFTUFDIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2RiOTNiOGJlZGQzMmU5MTRiMzg5NzYxNDFiM2ZkZjRlYTNmZjczOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo1MToxMCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgQ1BVIFBPU1QgdGVzdCBmb3IgNHh4IHdpdGggZGNhY2hlIGVuYWJsZWQKCiAgICBOb3cgd2l0aCBjYWNoZXMgZW5hYmxlZCAoaS0gYW5kIGQtY2FjaGUpIG9uIDQ0eCwgd2UgbmVlZCBhIGNoYW5jZSB0bwogICAgZGlzYWJsZSB0aGUgY2FjaGUgZm9yIHRoZSBDUFUgUE9TVCB0ZXN0cywgc2luY2UgdGhlc2UgdGVzdHMgY29uc2lzdAogICAgb2Ygc2VsZiBtb2RpZnlpbmcgY29kZS4gVGhpcyBpcyBkb25lIHZpYSB0aGUgbmV3IGNoYW5nZV90bGIoKSBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjcxYjI4ODhiNGIzYzg3MDkwOWEwMzQxNDI3YjJhOTE0MjQ2ZjgxZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo0NzoyNiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDaGFuZ2UgNHh4IFBPU1QgZXRoZXJuZXQgdGVzdCB0byBoYW5kbGUgY2FjaGVkIG1lbW9yeSB0b28KCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIDR4eCBFTUFDIFBPU1QgZHJpdmVyIHRvIHdvcmsgdG9vLCB3aGVuIGRjYWNoZSBpcwogICAgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTI2ODU5MDQwNjFiMzVhMTc1ODNkNjVmZTQ3Y2RjMjY4NmE2OWVhYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo0NTo1MyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdGVtcG9yYXJ5IFRMQiBlbnRyeSBpbiBQT1NUIGNhY2hlIHRlc3Qgb25seSBmb3IgNDQwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZmNzY4Y2IxNjhkODE1N2MyNGEyNTAxNmRiZmJlYjQ2NWU0N2Y0MjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMTg6MDE6MjQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ2hhbmdlIDR4eCBldGhlcm5ldCBkcml2ZXIgdG8gaGFuZGxlIGNhY2hlZCBtZW1vcnkgdG9vCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSA0eHggRU1BQyBkcml2ZXIgdG8gd29yayB0b28sIHdoZW4gZGNhY2hlIGlzCiAgICBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ODNlMDlhMjIzYzY2NjI2OWVmODFkMzU3M2E2NTkxYjEwNDZiMGVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE3OjU5OjIyIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBjaGFuZ2VfdGxiIGZ1bmN0aW9uIHRvIG1vZGlmeSBJIGF0dHJpYnV0ZSBvZiBUTEIocykKCiAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZWl0aGVyIHR1cm4gY2FjaGUgb24gb3Igb2ZmIGluIGEgc3BlY2lmaWMKICAgIG1lbW9yeSBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMjVkZmUwOGZiZDEyMjBjYjk5NGU3ZTZiMTA1MDQ5YWE5YWE4ZTc5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE3OjU3OjUyIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBjYWNoZSBkZWZpbml0aW9uIGZyb20gNHh4IGJvYXJkIGNvbmZpZyBmaWxlcwoKICAgIEFsbCA0eHggYm9hcmQgY29uZmlnIGZpbGVzIGRvbid0IG5lZWQgdGhlIGNhY2hlIGRlZmluaXRpb25zIGFueW1vcmUuCiAgICBUaGVzZSBhcmUgbm93IGRlZmluZWQgaW4gY29tbW9uIGhlYWRlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDliOTRhYzYxZDIxNzYxODVjMzBhZGYwNzkzZTA3OWVjMzBlNjg2ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMTc6NTU6NTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmV3b3JrIDR4eCBjYWNoZSBzdXBwb3J0CgogICAgTmV3IGNhY2hlIGhhbmRsaW5nIGZ1bmN0aW9ucyBhZGRlZCBhbmQgYWxsIGV4aXN0aW5nIGZ1bmN0aW9ucwogICAgbW92ZWQgZnJvbSBzdGFydC5TIGludG8gc2VwZXJhdGUgY2FjaGUuUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDY3MTM3NzNkYTRhYzNkMzkwYzYzZDgyNjQxZWI1NTMyMjRiMjdjMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxODowMzoxMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgY29tcGlsZXIgd2FybmluZyBmcm9tIHByZXZpb3VzIGNvbW1pdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZmEzOTdkZjY3YzBmMjY5ZTQ1MjhiZjE4MWE2ZThjODhmOTcyM2Y5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjQwOjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB0ZW1wb3JhcnkgVExCIGVudHJ5IGluIFBPU1QgY2FjaGUgdGVzdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMzM4ZTZhODE4MzQwOTliYTE5NzMzYjY5YWFmZDhlZjVmMDk4MDk0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjA1OjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBhdXRvbmVnb3RpYXRpb24gdGltZW91dCBmcm9tIDQgdG8gNSBzZWNvbmRzCgogICAgSSBsYXRlbHkgbm90aWNlZCwgdGhhdCBuZXdlciA0eHggYm9hcmQgd2l0aCBHQml0IHN1cHBvcnQgc29tZXRpbWVzIGRvbid0CiAgICBmaW5pc2ggbGluayBhdXRvbmVnb3RpYXRpb24gaW4gNCBzZWNvbmRzLiBDaGFuZ2luZyB0aGlzIHRpbWVvdXQgdG8gNQogICAgc2Vjb25kcyBzZWVtcyBmaW5lIGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkODM0NzZhNGMxYzk5MTFkMTU4YTNmOGE0MzEyZDM1NGJjMWJkYjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6MDM6MTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIDR4eF9lbmV0ICYgbWlpcGh5IHRvIHVzZSBvdXRfYmUzMigpIGFuZCBmcmllbmRzCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIGFsbCBpbjMyL291dDMyIGNhbGxzIHRvIHVzZSB0aGUgcmVjb21tZW5kZWQgaW5fYmUzMi8KICAgIG91dF9iZTMyIG1hY3JvcyBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZDQ3Y2VlMmNjNTdmOTA3MzgwZjJjMDZmNWI2YzY4M2QwM2U0MjNhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDI1IDEyOjI0OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBQT1NUIGV0aGVybmV0IHRlc3QgZm9yIEhhbGVha2FsYQoKICAgIFRoZSBQT1NUIGV0aGVybmV0IHRlc3QgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8gZHluYW1pY2FsbHkgZGV0ZXJtaW5lCiAgICB0aGUgY291bnQgb2YgZXRoZXJuZXQgZGV2aWNlcy4gVGhpcyBjb2RlIGlzIGNsb25lZCBmcm9tIHRoZSA0eHgKICAgIGV0aGVybmV0IGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjEwNDkzYzZkNzdhMWUwN2E2YzJmZjRkNzcyOTM3YTVlNzM1OWQ2YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxMTozMTowNSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb3JyZWN0IFVBUlQgaW5wdXQgY2xvY2sgY2FsY3VsYXRpb24gYW5kIHBhc3NpbmcgdG8gZmR0CgogICAgV2Ugbm93IHVzZSBhIHZhbHVlIGluIHRoZSBnZCAoZ2xvYmFsIGRhdGEpIHN0cnVjdHVyZSBmb3IgdGhlIFVBUlQgaW5wdXQKICAgIGZyZXF1ZW5jeSwgc2luY2UgdGhlIFBQQzR4eF9TWVNfSU5GTyBzdHJ1Y3QgaXMgYWx3YXlzIHJld3JpdHRlbiBjb21wbGV0ZWx5CiAgICBpbiBnZXRfc3lzX2luZm8oKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzUzZjI2ODhiNGUwZmM3Yjk2OWJjNzBhMDJiZTRiNDBiZjBkZDEyNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoxMDowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBBTUNDIEhhbGVha2FsYSBQUEM0MDVFWHIgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEhhbGVha2FsYSBpcyBuZWFybHkgaWRlbnRpY2FsIHdpdGggdGhlIEtpbGF1ZWEgZXZhbCBib2FyZC4gVGhlIG9ubHkKICAgIGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgNDA1RVhyIG9ubHkgc3VwcG9ydHMgb25lIEVNQUMgYW5kIG9uZSBQQ0llCiAgICBpbnRlcmZhY2UuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgSGFsZWFrYWxhIGJvYXJkIGJ5IHVzaW5nCiAgICB0aGUgaWRlbnRpY2FsIGltYWdlIGZvciBLaWxhdWVhIGFuZCBIYWxlYWthbGEuIFRoZSBkaXN0aW5jdGlvbiBpcyBkb25lCiAgICBieSBjb21wYXJpbmcgdGhlIFBWUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWY3OTg3NjZhYTg1ZTYyZWI4ZmE4YzcyMWUxNDhkZjYwOWI3ODEzNwpBdXRob3I6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMDg6Mjk6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4ZWQgb2Zmc2V0IG9mIHJlZnJlc2ggcmF0ZSB0eXBlIGZvciBCYW1ib28gb24tYm9hcmQgRERSIFNEUkFNCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBub3RlIHRvIHRoZSBmaXhlZCBERFIgc2V0dXAgZm9yIEJhbWJvbyBOQU5EIGJvb3Rpbmc6CgogICAgTm90ZToKICAgIEFzIGZvdW5kIG91dCBieSBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPiwgdGhlIGZpeGVkCiAgICBERFIgc2V0dXAgaGFzIHByb2JsZW1zIChVLUJvb3QgY3Jhc2hlcyByYW5kb21seSB1cG9uIFRGVFApLCB3aGVuIHRoZSBESU1NCiAgICBtb2R1bGVzIGFyZSBzdGlsbCBwbHVnZ2VkIGluLiBTbyBpdCBpcyByZWNvbW1lbmRlZCB0byByZW1vdmUgdGhlIERJTU0KICAgIG1vZHVsZXMgd2hpbGUgdXNpbmcgdGhlIE5BTkQgYm9vdGluZyBjb2RlIHdpdGggdGhlIGZpeGVkIFNEUkFNIHNldHVwIQoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWZlOWZhNTljYjYzYjRmOWQxNmJmMDFjOTNlYjIxMmYyNWEzOGMyYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjoyNDo0NCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgU05UUCBzdXBwb3J0IHRvIEFNQ0MgS2F0bWFpLCBLaWxhdWVhICYgTWFrYWx1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMjQ4ZjYzYWQ4OWNiMDMxNDkxZWRiNzAxNjU4N2ZlNmU5YTIzOGI5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjIyOjQwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJld29yayBvZiA0eHggc2VyaWFsIGRyaXZlciAoNCkKCiAgICBDaGFuZ2UgNHh4X3VhcnQuYzoKCiAgICAtIFVzZSBpbl84L291dF84IG1hY3JvcyBpbnN0ZWFkIG9mIGluOC9vdXQ4CiAgICAtIE5vIG5lZWQgZm9yIFVBUlRfQkFTRSBtYXJjbyBhbnltb3JlLCBub3cgcmVhbGx5IGhhbmRsZWQgdmlhIGZ1bmN0aW9uCiAgICAgIHBhcmFtZXRlcgogICAgLSBzZXJpYWxfaW5pdF9jb21tb24oKSBpbnRyb2R1Y2VkCiAgICAtIEZ1cnRoZXIgY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTYxY2I4MTYzYTY2YjhhMTM1Njk2YWUyMzJlMmJlYWQxY2UwYTA0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNTo0NTo0OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgb2YgNHh4IHNlcmlhbCBkcml2ZXIgKDMpCgogICAgQ2hhbmdlIGFsbCBsaW5rZXIgc2NyaXB0cyB0byByZWZlcmVuY2UgdGhlIGNoYW5nZWQgZHJpdmVyIG5hbWUgaW9wNDgwX3VhcnQuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODgyYWU0MTI3NDkyMWY5MDE2MTMxODA2YmRlYjI3ZTE5NjA2ZjQ3YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNTo0NDozOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgb2YgNHh4IHNlcmlhbCBkcml2ZXIgKDIpCgogICAgQ2hhbmdlIGFsbCBsaW5rZXIgc2NyaXB0cyB0byByZWZlcmVuY2UgdGhlIGNoYW5nZWQgZHJpdmVyIG5hbWUgNHh4X3VhcnQuby4KCiAgICBOb3RlOiBJbiBtb3N0IGNhc2VkIGFsbCB0aGVzZSBleHBsaWNpdCByZWZlcmVuY2luZyBvZiB0aGVzZSBvYmplY3QgZmlsZXMKICAgIGluIHRoZSBsaW5rZXIgc2NyaXB0cyBpcyBub3QgbmVjY2Vzc2FyeS4gT25seSBmb3IgbWFudWFsbHkgZW1iZWRkZWQKICAgIGVudmlyb25tZW50IGludG8gdGhlIFUtQm9vdCBpbWFnZSwgd2hpY2ggaXMgbm90IGRvbmUgaXMgbW9zdCBjYXNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWQzMWU0MGJlZDA0MmNiNjcwZDAwMzZmZWE5NjQzNTAwN2FmYjgzOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNTowOTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgb2YgNHh4IHNlcmlhbCBkcml2ZXIgKDEpCgogICAgVGhpcyBwYXRjaCBzdGFydHMgdGhlIHJld29yayBvZiB0aGUgUFBDNHh4IHNlcmlhbCBkcml2ZXIuIEZpcnN0IHdlIHNwbGl0CiAgICB0aGUgZmlsZSBpbnRvIHR3byBzZXBlcmF0ZSBmaWxlcywgb25lIDR4eF91YXJ0LmMgd2l0aCB0aGUgNDA1LzQ0MCBVQVJUCiAgICBoYW5kbGluZyBjb2RlIGFuZCB0aGUgb3RoZXIgb25lIGlvcDQ4MF91YXJ0LmMgd2l0aCB0aGUgVUFSVCBjb2RlIGZvciB0aGUKICAgIFBMWC1UZWNoIElPUDQ4MCBQUEMgKFBQQzQwMyBiYXNlZCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc2NGU3NDE3ZWU1ZjZlMjViMTcxNTcyMGU3ZDdkZDM0ODcxMDkzODUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTA6MzA6MzggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29ycmVjdCBVQVJUIGlucHV0IGNsb2NrIGNhbGN1bGF0aW9uIGFuZCBwYXNzaW5nIHRvIGZkdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMTFlYTkxYWM2YzIyNWJlYzdlNjY4YTAzZDBiYTdkNzMxMDY3OWZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDA3OjM0OjM0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIEFNQ0MgTWFrYWx1IDQwNUVYIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmE4YWVhMjA0NTZlNmYxZGJhNDNmNDZiY2M3MjAyNGRkOTQ5OTk5OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAwNzozMzo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgZnJlcVVBUlQgdG8gQ1BVIHNwZWVkIGRldGVjdGlvbgoKICAgIFRoaXMgdmFsdWUgaXMgbmVlZGVkIGxhdGVyIGZvciB0aGUgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbiBvZgogICAgdGhlIHVhcnQgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzN2M3MzBiNGQ3YzZiMWRkZjNkMWUyNDdjYjQ0NDUwMDVkOWJmMGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMTQ6MjY6MjkgMjAwNyArMDIwMAoKICAgIHBwYzogU21hbGwgS2lsYXVlYSBjbGVhbnVwIG9mIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1OGMwMzdhZWVhZDM0YjQ5NjMxYjhkYTNhOTBiMWJiYTE0YzA0MTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMDg6MTY6MTIgMjAwNyArMDIwMAoKICAgIHJ0YzogQWRkIFhpY29yL0ludGVyc2lsIFgxMjA1IFJUQyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBYaWNvci9JbnRlcnNpbCBYMTIwNSBSVEMgdXNlZCBvbiB0aGUKICAgIEFNQ0MgTWFrYWx1IGV2YWwgYm9hcmQuIFRoaXMgZHJpdmVyIGlzIGJhc2ljYWxseSBjbG9uZWQgZnJvbSB0aGUgTGludXgKICAgIGRyaXZlciB2ZXJzaW9uICgyLjYuMjMpLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIHRoZSBMaW51eCBiY2QuaCBoZWFkZXIgZm9yIHRoZSBCQ0QyQklOLwogICAgQklOMkJDRCBjb252ZXJzaW9ucy4gSW4gdGhlIGZ1dHVyZSBzb21lIG9mIHRoZSBvdGhlciBVLUJvb3QgUlRDIGRyaXZlcgogICAgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBhbHNvIHVzZSB0aGlzIGhlYWRlciBpbnN0ZWFkIG9mIGltcGxlbWVudGluZwogICAgdGhlaXIgb3duIGxvY2FsIGNvcHkgb2YgdGhlc2UgZnVuY3Rpb25zL21hY3Jvcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDg3ZGZkYjc5YjVmZDFhYjk5YTI2OTkwYzYyYTczMmMwMWE4YzdmNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAwODoxMjo0MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb25zb2xpZGF0ZSBzb21lIG9mIHRoZSA0MDUgYW5kIDQ0MCBtYWNyb3Mvc3RydWN0cyBpbnRvIDR4eAoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgc29tZSBjb21tb24gNHh4IG1hY3JvcyBhbmQgdGhlIFBQQzQwNV9TWVNfSU5GTy8KICAgIFBQQzQ0MF9TWVNfSU5GTyBzdHJ1Y3R1cmUgaW50byB0aGUgY29tbW9uIHBwYzR4eC5oIGhlYWRlci4KCiAgICBMb3QncyBvZiBvdGhlciBtYWNyb3MgYXJlIGdvb2QgY2FuZGlkYXRlcyB0byBiZSBjb25zb2xpZGF0ZWQgdGhpcyB3YXkKICAgIGluIHRoZSBmdXR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3MGM3YWY1ODAwZjU5OGQyMjczMGQxZjRiNzBmMTZjOWIzMzUxMmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMDg6MDU6MTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHNpemUgc2V0dXAgaW4gS2lsYXVlYSBERFIyIGluaXQgcm91dGluZQoKICAgIFRoZSBzaXplIHdhcyBpbml0aWxpemVkIHdyb25nLiBJbnN0ZWFkIG9mIDI1Nk1CLCB0aGUgRERSMiBjb250cm9sbGVyCiAgICB3YXMgc2V0dXAgdG8gNTEyTUIuIE5vdyB0aGUgY29ycmVjdCB2YWx1ZXMgaXMgdXNlZC4KCiAgICBUaGlzIHBhdGNoIGFsc28gZG9lcyBhIGxpdHRsZSBjbGVhbnVwIGFuZCBhZGRzIGEgY29tbWVudCBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNmJhOWI1NjYwN2Q0YjI3NTUwMzAxYzdjN2Y2YjU1YjY1NGZkNjJhCkF1dGhvcjogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzoyOTowNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBEZWZpbmUgQ09ORklHX0JPT0tFIGZvciBhbGwgUFBDNDQwIGJhc2VkIHByb2Nlc3NvcnMKCiAgICBDT05GSUdfQk9PS0UgbXVzdCBiZSBkZWZpbmVkIGZvciBQUEM0NDAgcHJvY2Vzc29ycyBzbyB0aGF0IHRoZSBwcm9wZXIgU1BSCiAgICBudW1iZXIgaXMgdXNlZCB0byBhY2Nlc3Mgc3lzdGVtIHJlZ2lzdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMzNmM2ODE2MDMzM2FjNWZlNDFlYzNkYjEyYTcyOGI3MDc1YjM5MTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBPY3QgMTggMDc6NDI6MjcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIGluYm91bmQgUENJZSBsb2NhdGlvbiBmb3IgZW5kcG9pbnQgdGVzdHMgb24gS2F0bWFpCgogICAgT24gWXVjY2EgJiBLYXRtYWksIHRoZSBpbmJvdW5kIG1lbW9yeSBtYXAgcG9pbnRlZCB0byAweDQuMDAwMC4wMDAwLCB3aGljaAogICAgaXMgdGhlIGludGVybmFsIFNSQU0uIFNpbmNlIEkgbm93IHBvcnRlZCBhbmQgdGVzdGVkIHRoaXMgZW5kcG9pbnQgbW9kZQogICAgb24gS2lsYXVlYSBzdWNjZXNzZnVsbHkgdG8gbWFwIHRvIDAgKFNEUkFNKSwgSSBhbHNvIGNoYW5nZWQgdGhpcyBmb3IKICAgIEthdG1haS4KCiAgICBZdWNjYSB3aWxsIHN0YXkgYXQgaW50ZXJuYWwgU1JBTSBmb3Igbm93LiBOb3Qgc3VyZSBpZiBzb21lYm9keSByZWxpZXMgb24KICAgIHRoaXMgc2V0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVjYjRhZjQ3OTFmNjE4NDM0MzIxNTUxNDJiNmNmYWM5MDFmNjZjMTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBPY3QgMTggMDc6Mzk6MzggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFBDSWUgZW5kcG9pbnQgc3VwcG9ydCBvbiBLaWxhdWVhICg0MDVFWCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgZW5kcG9pbnQgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgS2lsYXVlYSBldmFsIGJvYXJkLiBJdCBjYW4KICAgIGJlIHRlc3RlZCBieSBjb25uZWN0aW5nIGEgcmV3b3JrZWQgUENJZSBjYWJsZSAob25seSAxeCBsYW5lIHNpbmdsZXMKICAgIGNvbm5lY3RlZCkgdG8gYW5vdGhlciByb290LWNvbXBsZXguCgogICAgSW4gdGhpcyB0ZXN0IHNldHVwLCBhIDY0TUIgaW5ib3VuZCB3aW5kb3cgaXMgY29uZmlndXJlZCBhdCBCQVIwIHdoaWNoIG1hcHMKICAgIHRvIDAgb24gdGhlIFBMQiBzaWRlLiBTbyBhY2Nlc3NpbmcgdGhpcyBCQVIwIGZyb20gdGhlIHJvb3QtY29tcGxleCB3aWxsCiAgICBhY2Nlc3MgdGhlIGZpcnN0IDY0TUIgb2YgdGhlIFNEUkFNIG9uIHRoZSBQUEMgc2lkZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDRjYjJkMTc5NDY0NjY3NDBhZmViMTk1YTU3ZDZjYjI5MGJmNGNjMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAxNjo0MzoyMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBEeW5hbWljIGNvbmZpZ3VyYXRpb24gb2YgNHh4IFBDSWUgbW9kZSBhcyByb290IG9yIGVuZHBvaW50IG1vZGUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZHluYW1pYyBjb25maWd1cmF0aW9uIG9mIFBDSWUgcG9ydHMgZm9yIHRoZQogICAgQU1DQyBQUEM0eHggYm9hcmRzIGVxdWlwcGVkIHdpdGggUENJZSBpbnRlcmZhY2VzLiBUaGVzZSBhcmUgdGhlIFBQQzQ0MFNQZQogICAgYm9hcmRzIFl1Y2NhICYgS2F0bWFpIGFuZCB0aGUgNDA1RVggYm9hcmQgS2lsYXVlYS4KCiAgICBUaGlzIGR5bmFtaWMgY29uZmlndXJhdGlvbiBpcyBkb25lIHZpYSB0aGUgInBjaWVfbW9kZSIgZW52aXJvbmVtZW50CiAgICB2YXJpYWJsZS4gVGhpcyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvICJFUCIgb3IgIlJQIiBmb3IgZW5kcG9pbnQgb3IKICAgIHJvb3Rwb2ludCBtb2RlLiBNdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIGpvaW5lZCB2aWEgdGhlICI6IiBkZWxpbWl0ZXIuCiAgICBIZXJlIGFuIGV4YW1wbGU6CgogICAgcGNpZV9tb2RlPVJQOkVQOkVQCgogICAgVGhpcyB3YXksIFBDSWUgcG9ydCAwIHdpbGwgYmUgY29uZmlndXJlZCBhcyByb290cG9pbnQsIFBDSWUgcG9ydCAxIGFuZCAyCiAgICBhcyBlbmRwb2ludC4KCiAgICBQZXIgZGVmYXVsdCBZdWNjYSB3aWxsIGJlIGNvbmZpZ3VyZWQgYXM6CiAgICBwY2llX21vZGU9UlA6RVA6RVAKCiAgICBQZXIgZGVmYXVsdCBLYXRtYWkgd2lsbCBiZSBjb25maWd1cmVkIGFzOgogICAgcGNpZV9tb2RlPVJQOlJQOlJFUAoKICAgIFBlciBkZWZhdWx0IEtpbGF1ZWEgd2lsbCBiZSBjb25maWd1cmVkIGFzOgogICAgcGNpZV9tb2RlPVJQOlJQCgogICAgU2lnbmVkLW9mZi1ieTogVGlydW1hbGEgUiBNYXJyaSA8dG1hcnJpQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZkNjcxODAyYjY3YTBlZjM3YTA2MTI0ZmEyY2U4NWYwMGFhMjJjNmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBPY3QgMTEgMTE6MTU6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRW5hYmxlIGRldmljZSB0cmVlIHN1cHBvcnQgKGZkdCkgb24gS2lsYXVlYSBwZXIgZGVmYXVsdAoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgZmR0IHN1cHBvcnQgb24gdGhlIEFNQ0MgS2lsYXVlYSBldmFsIGJvYXJkLgogICAgQWRkaXRpb25hbGx5IG5vdyBFQkMgcmFuZ2VzIGZkdCBmaXh1cCBpcyBpbmNsdWRlZCB0byBzdXBwb3J0IE5PUgogICAgRkxBU0ggbWFwcGluZyB2aWEgdGhlIExpbnV4IHBoeXNtYXBfb2YgZHJpdmVyLgoKICAgIFRoaXMgS2lsYXVlYSBwb3J0IG5vdyBzdXBwb3J0IGJvb3RpbmcgYXJjaC9wcGMgYW5kIGFyY2gvcG93ZXJwYwogICAgTGludXgga2VybmVscy4gVGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgIm5ldF9uZnMiIGlzIGZvciBhcmNoL3BwYwogICAgYW5kICJuZXRfbmZzX2ZkdCIgaXMgZm9yIGFyY2gvcG93ZXJwYy4gSW4gdGhlIGxvbmcgcnVuLCBhcmNoL3BwYwogICAgc3VwcG9ydCB3aWxsIGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5OTRmZmQ4OTBiOWQ5NWQ4MDczODdhOWI3YmQ4YTQ4MDNlZTQwNmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBPY3QgMTEgMTE6MTE6NDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGFkZGl0aW9uYWwgZGVidWcgaW5mbyB0byA0eHggZmR0IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGIzMjMyZGRiMDU4ZDBlZDBiYzMxZjdjNWMyOTY3NDhhMWFmYWM2NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDIxOjI4OjU4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzbWFsbCBtZXJnZSBwcm9ibGVtcyB3aXRoIENQQ0k0NDAgYW5kIEFjYWRpYSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTk0MWNjZTcxYjFhZTk3NTYwMjg1NDA0NTA2MWU4MmY5NGVjZDAxMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjM1OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzbWFsbCBtZXJnZSBwcm9ibGVtIGluIDR4eF9lbmV0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTY2ODA2Y2ExYTFiZjRkODk1ZGFhZjBiMmJhNTQ5NGFiYmZmZWJhZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjExOjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIEFNQ0MgS2lsYXVlYSA0MDVFWCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRiYmQxMjU3MjFhZWE2NjQ1ZmRiOTYyZjM2YmQ0MWY1OWUyNzJmOWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzoxMDo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgUFBDNDA1RVggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZDdiODc0ZTljOWE3YzY2ZjVkOGRhOWVjNzhhMzczMzc2NWQzZTMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MDk6MzYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBvZiA0eHggUENJIGFuZCBQQ0llIHN1cHBvcnQgKHJlbmFtaW5nKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjE0ZWQ2MjMwYjljMTA5YWFjOWE2ZmI4Nzg0OTdkYWJkNDRjMmRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MDc6NTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgZmR0IHN1cHBvcnQgdG8gNHh4IChmaXJzdCBuZWVkZWQgb24gNDA1RVgpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0MjRhOGJiMjkyNGI5MDcyNGI5NDQxNjVkMzE0MWYxZmE4ZGZlNWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzowNDo1NyAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIDQwNUVYIHN1cHBvcnQgdG8gNHh4IFVBUlQgUE9TVCB0ZXN0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmMmU5MmMxMWY2ZTIzOTJmYzgxODc4MjkyMTFhNWNhN2YwYzFlMTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNToxMDowMiAyMDA3ICswMjAwCgogICAgRFRUOiBQcmVwYXJlIERTMTc3NSBkcml2ZXIgZm9yIHVzZSBvZiBkaWZmZXJlbnQgSTJDIGFkZHJlc3NlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOWU5M2IxZTE2ZDI2NzIyMDQ0MGQ4MjdiOTIwZmJhZDhhYmZhNzBmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTQ6MjM6NDMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IENoYW5nZSBQQ0llIHN0YXR1cyBvdXRwdXQgdG8gbWF0Y2ggY29tbW9uIHN0eWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZmNjhmNjZiY2IwZGE4NDc4NDVhYTJmYWMxMWViYTZjMjU5MzhjOTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAwOToyMjozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQgYXMgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NzkyMzc3MGNiNTJiNjRkNjllZWM5NThhMTFiMmVkYThkNDZlMGY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMDk6MTg6MjMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IE1vcmUgZ2VuZXJhbCBjbGVhbnVwIGFuZCA0MDVFWCBQQ0llIHN1cHBvcnQgYWRkZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGRiZWU4YTkwZGY2MTNlYjUxN2FhZGJlY2ViZDcwZjE2ODkxM2QzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDA3OjU3OjIwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBDaGFuZ2UgQ0ZHX1BDSUVfTUVNU0laRSB0byAxMjhNQiBvbiBZdWNjYSAmIEthdG1haQoKICAgIDEyOE1CIHNlZW1zIHRvIGJlIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSB2YWx1ZSBmb3IgdGhlIG1lbW9yeSBzaXplCiAgICBmb3Igb24gUENJZSBwb3J0LiBXaXRoIHRoaXMgY2hhbmdlIG5vdyB0aGUgQkFSJ3Mgb2YgdGhlIFBDSWUgY2FyZHMKICAgIGFyZSBhY2Nlc3NpYmxlIHVuZGVyIFUtQm9vdC4KCiAgICBPbmUgYmlnIG5vdGU6IFRoaXMgb25seSB3b3JrcyBmb3IgUENJZSBwb3J0IDAgJiAxLiBGb3IgcG9ydCAyIHRoaXMKICAgIGN1cnJlbnRseSBkb2Vzbid0IHdvcmssIHNpbmNlIHRoZSBiYXNlIGFkZHJlc3MgaXMgbm93IDB4YzAwMDAwMDAKICAgICgweGIwMDAwMDAwICsgMiAqIDB4MDgwMDAwMDApLCBhbmQgdGhpcyBpcyBhbHJlYWR5IG9jY3VwaWVkIGJ5CiAgICBDRkdfUENJRTBfQ0ZHQkFTRS4gQnV0IHNvbHZpbmcgdGhpcyBpc3N1ZSBmb3IgcG9ydCAyIHdvdWxkIG1lYW4KICAgIHRvIGNoYW5nZSB0aGUgYmFzZSBhZGRyZXNzZXMgY29tcGxldGVseSBhbmQgdGhpcyBjaGFuZ2Ugd291bGQgaGF2ZQogICAgdG9vIG11Y2ggaW1wYWN0IHJpZ2h0IG5vdy4KCiAgICBUaGlzIHBhdGNoIGFkZHMgZGVidWcgb3V0cHV0IHRvIHRoZSA0eHggcGNpZSBkcml2ZXIgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZDk1Mjg5MjgxZWQyOTU4ZWJmNzZkMmI1NWY4NmJiZDg4NTkxZmQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMjE6MTY6MzIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IEZpeCBwcm9ibGVtIHdpdGggU0RSTiBhY2Nlc3MgdXNpbmcgcG9ydCBudW1iZXIgYXMgaWR4CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMwNDhiY2JmMGJhZDI2MjM3OGM1YWY2OGYyYmY2Nzc4ZmI3ZDgyOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAxNTowMTowMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW5hbWUgNDA1Z3BfcGNpIHRvIDR4eF9wY2kgc2luY2UgaXRzIHVzZWQgb24gYWxsIDR4eCBwbGF0Zm9ybXMKCiAgICBUaGVzZSBmaWxlcyB3ZXJlIGludHJvZHVjZWQgd2l0aCB0aGUgSUJNIDQwNUdQIGJ1dCBhcmUgY3VycmVudGx5IHVzZWQgb24gYWxsCiAgICA0eHggUFBDIHBsYXRmb3Jtcy4gU28gdGhlIG5hbWUgZG9lc24ndCBtYXRjaCB0aGUgY29udGVudCBhbnltb3JlLiBUaGlzIHBhdGNoCiAgICByZW5hbWVzIHRoZSBmaWxlcyB0byA0eHhfcGNpLmMvaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQyNzZlYjBhN2EzNWI5ZThjMDUzZDU4OWFlMjI1YjBmMDE3YTIzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDE0OjE0OjU4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBhIGNvbW1lbnQgZm9yIDQwNUVYIFBDSWUgZW5kcG9pbnQgY29uZmlndXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwM2QzNDRiYjZhNWYwODJlYTEwZWM5ZDc1MzU1OGVhN2RmZDFjNjI2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMTA6Mzg6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogTWFrZSA0NDBTUGUgUENJZSBjb2RlIG1vcmUgZ2VuZXJpYyB0byB1c2Ugb24gZGlmZmVyZW50IDR4eCBQUENzICgzKQoKICAgICgzKSBUaGlzIHBhdGNoIGludHJvZHVjZXMgbWFjcm9zIGxpa2UgU0RSTl9QRVNEUl9ETFBTRVQocG9ydCkgdG8gYWNjZXNzCgl0aGUgU0RSIHJlZ2lzdGVycyBvZiB0aGUgUENJZSBwb3J0cy4gVGhpcyBtYWtlcyB0aGUgb3ZlcmFsbCBkZXNpZ24KCWNsZWFyZXIsIHNpbmNlIGl0IHJlbW92ZWQgYSBsb3Qgb2Ygc3dpdGNoIHN0YXRlbWVudHMgd2hpY2ggYXJlIG5vdAoJbmVlZGVkIGFueW1vcmUuCgoJQWxzbywgdGhlIGZ1bmN0aW9ucyBwcGM0eHhfaW5pdF9wY2llX3Jvb3Rwb3J0KCkgYW5kCglwcGM0eHhfaW5pdF9wY2llX2VudHBvcnQoKSBhcmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZnVuY3Rpb24KCXBwYzR4eF9pbml0X3BjaWVfcG9ydCgpLCBzaW5jZSBtb3N0IG9mIHRoZSBjb2RlIHdhcyBkdXBsaWNhdGVkLgoJVGhpcyBtYWtlcyBtYWludGFpbmFuY2UgYW5kIHBvcnRpbmcgdG8gb3RoZXIgNHh4IHBsYXRmb3JtcwoJZWFzaWVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjZmNzExMDY4NzFmMzFkMTdkMGVhMGRiOWE3NTQ3ZmY5MjkzNGJjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMDc6NDg6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogTWFrZSA0NDBTUGUgUENJZSBjb2RlIG1vcmUgZ2VuZXJpYyB0byB1c2Ugb24gZGlmZmVyZW50IDR4eCBQUENzICgyKQoKICAgIFRoaXMgcGF0Y2ggaXMgdGhlIGZpcnN0IHBhdGNoIG9mIGEgc2VyaWVzIHRvIG1ha2UgdGhlIDQ0MFNQZSBQQ0llIGNvZGUKICAgIHVzYWJsZSBvbiBkaWZmZXJlbnQgNHh4IFBQQyBwbGF0Zm9ybXMuIEluIHByZXBlcmF0aW9uIGZvciB0aGUgbmV3IDQwNUVYCiAgICB3aGljaCBpcyBhbHNvIGVxdWlwcGVkIHdpdGggUENJZSBpbnRlcmZhY2VzLgoKICAgICgyKSBUaGlzIHBhdGNoIHJlbmFtZXMgdGhlIGZ1bmN0aW9ucyBmcm9tIDQ0MHNwZV8gdG8gNHh4XyB3aXRoIGEKCWxpdHRsZSBhZGRpdGlvbmFsIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzdjNmRhMjMwMjhmMTQ2ZDkxMjUxNGI5NWFlZmEzZGE3Y2YzNzY5OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDA3OjM0OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1ha2UgNDQwU1BlIFBDSWUgY29kZSBtb3JlIGdlbmVyaWMgdG8gdXNlIG9uIGRpZmZlcmVudCA0eHggUFBDcyAoMSkKCiAgICBUaGlzIHBhdGNoIGlzIHRoZSBmaXJzdCBwYXRjaCBvZiBhIHNlcmllcyB0byBtYWtlIHRoZSA0NDBTUGUgUENJZSBjb2RlCiAgICB1c2FibGUgb24gZGlmZmVyZW50IDR4eCBQUEMgcGxhdGZvcm1zLiBJbiBwcmVwZXJhdGlvbiBmb3IgdGhlIG5ldyA0MDVFWAogICAgd2hpY2ggaXMgYWxzbyBlcXVpcHBlZCB3aXRoIFBDSWUgaW50ZXJmYWNlcy4KCiAgICAoMSkgVGhpcyBwYXRjaCByZW5hbWVzIHRoZSBmaWxlcyBmcm9tIDQ0MHNwZV9wY2llIHRvIDR4eF9wY2llCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI0NWEzNjJhZDNjMGMxYjg0ZmNjYzlmZWM3YjYyM2ViMTRmNmU1MDIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDI0IDAxOjM3OjM2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBDYWxsIHVzYl9jcHVfaW5pdCgpIGR1cmluZyBib2FyZCBpbml0CgogICAgdXNiX2NwdV9pbml0KCkgY29uZmlndXJlcyBHUFMgVVNCIHBpbnMsIGNsb2NrcywgZXRjLiBhbmQKICAgIGlzIHJlcXVpcmVkIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGtlcm5lbCBVU0Igc3Vic3lzdGVtLgogICAgVGhpcyBzZXR1cCB3YXMgcHJldmlvdXNseSBkb25lIGluIHRoZSBrZXJuZWwgYnkgdGhlIGZpeHVwCiAgICBjb2RlIHdoaWNoIGlzIGJlaW5nIHJlbW92ZWQsIHRodXMgbG93IGxldmVsIGluaXQgbXVzdCBiZQogICAgZG9uZSBieSBVLWJvb3Qgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGI1YWY3NzNmOGQ5MjY3N2UwNmYzMjk1YjQ1NTU3YzlkMGE0ODdjMjQKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjUxOjI3IDIwMDcgKzA4MDAKCiAgICBGaXggdGhlIGlzc3VlIG9mIHVzYl9rYmQgZHJpdmVyIG1pc3NpbmcgdGhlIHNjYW4gY29kZSBvZiBrZXkgJ3onLgoKICAgIFRoZSBzY2FuIGNvZGUgb2YgdGhlIGtleSAneicgaXMgMHgxZCwgd2hpY2ggc2hvdWxkIGJlIGhhbmRsZWQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmUgdGVzdGVkIG9uIE5PVkFURUsgVVNCIGtleWJvYXJkIGFuZCBVTEkgUENJIE9IQ0kKICAgIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODVhYzk4OGU4NmY5NDE0ZmE2NDViMDE0OGRjNjZjMzUyMGExZWI4NApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE9jdCAxNSAxMTo1OToxNyAyMDA3ICswMjAwCgogICAgUFhBIFVTQiBPSENJOiAidXNiIHN0b3AiIGltcGxlbWVudGF0aW9uLgoKICAgIFNvbWUgVVNCIGtleXMgbmVlZCB0byBiZSBzd2l0Y2hlZCBvZmYgYmVmb3JlIGxvYWRpbmcgdGhlIGtlcm5lbAogICAgb3RoZXJ3aXNlIHRoZXkgY2FuIHJlbWFpbiBpbiBhbiB1bmRlZmluZWQgc3RhdHVzIHdoaWNoIHByZXZlbnRzIHRoZW0KICAgIHRvIGJlIGNvcnJlY3RseSByZWNvZ25pemVkIGJ5IHRoZSBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDMxNTQ4MjQ5ZGVjZjE4YTZiODc3YTE4NDM2YjYxMzlkZDQ4M2ZlNGEKQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgpEYXRlOglNb24gT2N0IDI5IDE3OjQwOjM1IDIwMDcgLTA0MDAKCiAgICBESENQIENsaWVudCBGaXgKCiAgICBUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgoKICAgIGNvbW1pdCBlNmU1MDVlYWU5NGVkNzIxZTEyM2UxNzc0ODkyOTFmYzQ1NDRiN2I4CiAgICBBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBEYXRlOiAgIE1vbiBPY3QgMjkgMTc6MTk6MDMgMjAwNyAtMDQwMAoKCUZvdW5kIGEgYnVnIGluIHRoZSB3YXkgdGhlIERIQ1AgUmVxdWVzdCBwYWNrZXQgaXMgYnVpbHQsIHdoZXJlIHRoZSBJUCBhZGRyZXNzCgl0aGF0IGlzIG9mZmVyZWQgYnkgdGhlIHNlcnZlciBpcyBib3VuZCB0byBwcmVtYXR1cmVseS4gVGhpcyBwYXRjaCBpcyBhIGZpeCBvZgoJdGhhdCBidWcgd2hlcmUgdGhlIElQIGFkZHJlc3Mgb2ZmZXJlZCBieSB0aGUgREhDUCBzZXJ2ZXIgaXMgbm90IHVzZWQgdW50aWwKCWFmdGVyIHRoZSBESENQIEFDSyBmcm9tIHRoZSBzZXJ2ZXIgaXMgcmVjZWl2ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGU4ZWU4ZjNhZGUyYTA2YzE4OTNkZDVlNjhmMjIzMDcwZDY1MGM3ZWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTY6MjIgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlIDU0NDU1OiBGaXggY29ycmVjdCBib290IGxvY2F0aW9uIGZvciBhdG1lbCBhbmQgaW50ZWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjg4ZThlYjQxNGFjMTExY2NhN2NlNjBiZGYzMGU4MDVhYjlhN2JjYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxNDowMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBidWlsZCBlcnJvciB3aGVuIENPTkZJR19XQVRDSERPRyBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2N2UxMmU3MDViMjA0Y2ZlOTE0ZTNlM2U2OTNkNjlhNDQ1ZGNhYmYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTI6MzYgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlIDUzMjk6IEFzc2lnbiBjb3JyZWN0IFNEUkFNIHNpemUgYW5kIGZpeCBjYWNoZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NWU5ZjJjMjEyYTY1NjEwYjJlNTlhNWMwMGQwMTEzMzgzYTRkYTBiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjEwOjIzIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MjUzOiBBc3NpZ24gY29ycmVjdCBTRFJBTSBzaXplCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJhY2VmYTcyZWUwMDI2Zjg2MmFiNjU1OTdjYTY4NzQyOGY2M2E5NzMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MDk6MTcgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlIDUyODI6IEZpeCBleHRlcm5hbCBmbGFzaCBib290IGFuZCByZXR1cm4gZHJhbXNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDc4NzkxYWU5MTRkNGU3YzVlZGNhMWNkYWQ3M2IzZGM4MWE0ZWI4MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MjA6MDEgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGluY3JlYXNlIGtlcm5lbF9hZGRyX3IgYW5kIGZkdF9hZGRyX3IgKGhpbnRlZCBieSBXb2xmZ2FuZyBEZW5rKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFhMGNlMjBhYTRjYjRlMzA2OGRhMDRlNzI5MGVlOTk4NmZkMGI4MzQKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIE9jdCAyNCAwODo0MjoyNSAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogZml4IHNwdXJpb3VzIGNoYXJhY3RlcnMgb24gc2Vjb25kIHNlcmlhbCBpbnRlcmZhY2UKCiAgICBXaXRoIHRoaXMgcGF0Y2ggUFNDMyBpcyBjb25maWd1cmVkIGFzIFVBUlQuIFRoaXMgaXMgZG9uZSwgYmVjYXVzZSBpZgogICAgdGhlIHBpbnMgb2YgUFNDMyBhcmUgbm90IGNvbmZpZ3VyZWQgYXQgYWxsICgtPiBhbGwgcGlucyBhcmUgR1BJKSwKICAgIGR1ZSB0byBjcm9zc3RhbGssIHNwdXJpb3VzIGNoYXJhY3RlcnMgbWF5IGJlIHNlbmQgb3ZlciB0aGUgUlgyMzJfMl9UWEQKICAgIHNpZ25hbCBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGJlNGE4N2YxMWUyOTdhNWNlZGVkYmY3ZGQ3MWMwMjQ4ZjM4NzRhY2QKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIE9jdCAyNCAwODo0MToyNyAyMDA3ICswMjAwCgogICAgVFFNNTIwMFM6IGZpeCBjb21tYW5kcyBmb3IgU1RLNTJ4eCBiYXNlIGJvYXJkIGJlY2F1c2Ugb2YgbWlzc2luZyBTTTUwMSBncmFmaWMgY29udHJvbGxlcgoKICAgIFNvbWUgY29tbWFuZHMgZm9yIHRoZSBTVEs1Mnh4IGJhc2UgYm9hcmQgdHJ5IHRvIGFjY2VzcyB0aGUgU001MDEgZ3JhZmljCiAgICBjb250cm9sbGVyLiBCdXQgdGhlIFRRTTUyMDBTIGhhcyBubyBncmFmaWMgY29udHJvbGxlciAob25seSB0aGUgVFFNNTIwMAogICAgYW5kIHRoZSBUUU01MjAwQiBoYXZlKS4gVGhpcyBwYXRjaCBkZWFjdGl2YXRlcyB0aGUgY29tbWFuZHMgYWNjZXNzaW5nCiAgICB0aGUgU001MDEgZm9yIHRoZSBUUU01MjAwUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiMzFmNjQzNDNlYWQ5NDgyY2Q0MzliMWFkYmU0YzM0MDI2YTY0MWIxCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTY6NDU6NTMgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBzcHVyaW91cyBjaGFyYWN0ZXJzIG9uIHNlY29uZCBzZXJpYWwgaW50ZXJmYWNlCgogICAgV2l0aCB0aGlzIHBhdGNoIFBTQzMgaXMgY29uZmlndXJlZCBhcyBVQVJULiBUaGlzIGlzIGRvbmUsIGJlY2F1c2UgaWYKICAgIHRoZSBwaW5zIG9mIFBTQzMgYXJlIG5vdCBjb25maWd1cmVkIGF0IGFsbCAoLT4gYWxsIHBpbnMgYXJlIEdQSSksCiAgICBkdWUgdG8gY3Jvc3N0YWxrLCBzcHVyaW91cyBjaGFyYWN0ZXJzIG1heSBiZSBzZW5kIG92ZXIgdGhlIFJYMjMyXzJfVFhECiAgICBzaWduYWwgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCAwZmMwZjkxYjIwZmZhODAyZjVhNjY1MzRjYTVjMjg0NDkxMDU4M2Y2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTY6NDA6MDYgMjAwNyArMDIwMAoKICAgIFRRTTUyMDBTOiBmaXggY29tbWFuZHMgZm9yIFNUSzUyeHggYmFzZSBib2FyZCBiZWNhdXNlIG9mIG1pc3NpbmcgU001MDEgZ3JhZmljIGNvbnRyb2xsZXIKCiAgICBTb21lIGNvbW1hbmRzIGZvciB0aGUgU1RLNTJ4eCBiYXNlIGJvYXJkIHRyeSB0byBhY2Nlc3MgdGhlIFNNNTAxIGdyYWZpYwogICAgY29udHJvbGxlci4gQnV0IHRoZSBUUU01MjAwUyBoYXMgbm8gZ3JhZmljIGNvbnRyb2xsZXIgKG9ubHkgdGhlIFRRTTUyMDAKICAgIGFuZCB0aGUgVFFNNTIwMEIgaGF2ZSkuIFRoaXMgcGF0Y2ggZGVhY3RpdmF0ZXMgdGhlIGNvbW1hbmRzIGFjY2Vzc2luZwogICAgdGhlIFNNNTAxIGZvciB0aGUgVFFNNTIwMFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgN2IwYTQyMjE5ZjMwMjc3ZjcxZjQ0MDVjYmFmOGEyNjlmNmQyZDIyNwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMDk6MTQ6MjggMjAwNyArMDIwMAoKICAgIE1pcHM6IEZpeCBzdHJpbmcgZnVuY3Rpb25zIGRpZmZlciBwcm90b3R5cGUgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGNiODI1MGZlNGIzYzRlZDU0OWIyNzBlOGEyMGJjMjIwNjBlN2UxZDIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDE5IDE3OjUxOjQwIDIwMDcgLTA1MDAKCiAgICBmc2xfcGNpX2luaXQgZW5hYmxlIENPTU1BTkRfTUVNT1JZIGlmIGluYm91bmQgd2luZG93CgogICAgUGF0Y2ggMTZlMjNjM2YgcmVtb3ZlZCBQQ1NSQkFSIGFsbG9jYXRpb24uCUJ1dCBwYXNzaW5nIHplcm8gd2luZG93cwogICAgdG8gcGNpYXV0b19zZXR1cF9kZXZpY2UgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBub3QgZ2V0dGluZwogICAgQ09NTUFORF9NRU1PUlkgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTlkMGQ1Mjc5OTI1NjZlYmVmOTgyNjk2MmZmMTc0NWIyZjA4MmI5MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMTA6NTU6MjQgMjAwNyArMDIwMAoKICAgIGRlbHRhOiBGaXggT0hDSV9SRUdTX0JBU0UgdW5kZWNsYXJlZCBhbmQgd2FpdF9tcyBpbXBsaWNpdCBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOWM0ODg0ZjU0ZGE5ODJjZTk5MGM3ZDE3NjBhYzgxYjA3MDRkM2M2NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDg6MTA6MTUgMjAwNyArMDIwMAoKICAgIGZpeCB3YXJuaW5nOiBubyByZXR1cm4gc3RhdGVtZW50IGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTc4MjIwZjZlNTE0MjA2NzU3YWNmZTI0NzI5N2ZjOWEzMjhhODgxZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDY6MzM6NDUgMjAwNyArMDIwMAoKICAgIHhzZW5naW5lOiBGaXggbm8gcGFydGl0aW9uIHR5cGUgc3BlY2lmaWVkLCB1c2UgRE9TIGFzIGRlZmF1bHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEwY2RiOGRiZDY3YTgxODgyM2FiOWVjODhiNjhmYzM0ODkwM2RiNTkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjI0OjU5IDIwMDcgKzAyMDAKCiAgICBsdWJib2NrOiBGaXggbm8gcGFydGl0aW9uIHR5cGUgc3BlY2lmaWVkLCB1c2UgRE9TIGFzIGRlZmF1bHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQxYjRkMjgyZDM4ZmE3MjMxYzMxNWM1ZjZjZmZmNWJkZDI0ZTAxOTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE2OjUwOjAzIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGU6IGtlZXAgbGlzdHMgc29ydGVkOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1OGI3NGIwNWM2MjFlMjgzNWVjZjRlMmQzMjQzMDQyY2Y0MTg2Nzc3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDowOTowNSAyMDA3ICswMjAwCgogICAgRml4IG1pc3NpbmcgZHJpdmVycyBtYWtlZmlsZSBlbnRyaWVzIGRzMTcyMi5jIG13X2VlcHJvbS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NjQ1NWJmZWJjOTg4NzgzNzA5NWM5MDUxZDIxNmY1M2M2MWI1ZjEwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDowNzozOSAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gYm9hcmQvaW5ub2tvbS9pbm5va29tLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDJhNDc0MWQ5YTE0ZWM0NzVmNTBlOTg1NmQyYzBhNjdlOGI0MjcxYmQKQXV0aG9yOiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MjU6MzMgMjAwNyArMDIwMAoKICAgIGZpeCBweGEyNTVfaWRwIGJvYXJkCgogICAgVGhlIHB4YTI1NV9pZHAgYmVpbmcgYW4gb2xkIHVubWFpbnRhaW5lZCBib2FyZCBzaG93ZWQgc2V2ZXJhbCBpc3N1ZXM6CiAgICAxLiBDT05GSUdfSU5JVF9DUklUSUNBTCB3YXMgc3RpbGwgZGVmaW5lZC4KICAgIDIuIE5laXRoZXIgQ09ORklHX01BQ19QQVJUSVRJT04gbm9yIENPTkZJR19ET1NfUEFSVElUSU9OIHdhcyBkZWZpbmVkLgogICAgMy4gU3ltYm9sIGZsYXNoX2FkZHIgd2FzIHVuZGVjbGFyZWQuCiAgICA0LiBUaGUgYm9hcmRzIGxvd2xldmVsX2luaXQgZnVuY3Rpb24gd2FzIHN0aWxsIGNhbGxlZCBtZW1zZXR1cC4KICAgIDUuIFRoZSBURVhUX0JBU0Ugd2FzIHN0aWxsIDB4YTMwMDAwMDAgcmF0aGVyIHRoYW4gMHhhMzA4MDAwMC4KICAgIDYuIFVzaW5nIC1tYXJjaD1hcm12NSBpbnN0ZWFkIG9mIC1tYXJjaD1hcm12NXRlIHJlc3VsdGVkIGluIGxvdHMgb2YKICAgICd0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nJyB3YXJuaW5ncyBvbiByZWNlbnQgY29tcGlsZXJzLgogICAgNy4gVGhlIFBYQSdzIHNlcmlhbCBkcml2ZXIgcmVkZWZpbmVkIEZGVUFSVCwgQlRVQVJUIGFuZCBTVFVBUlQgdXNlZCBhcwogICAgaW5kZXhlcyByYXRoZXIgdGhhbiB0aGUgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgZnJvbSB0aGUgcHhhLXJlZ3MgaGVhZGVyCiAgICBmaWxlLiBSZW5hbWVkIHRoZW0gdG8gRkZVQVJUX0lOREVYLCBCVFVBUlRfSU5ERVggYW5kIFNUVUFSVF9JTkRFWCB0bwogICAgYXZvaWQgYW55IGFtYmlndWl0aWVzLgogICAgOC4gVGhlcmUgd2VyZSBzZXZlcmFsIHJlZGVmaW5pdGlvbiB3YXJuaW5ncyBjb25jZXJuaW5nIElDTVIsIE9TTVIzLAogICAgT1NDUiwgT1dFUiwgT0lFUiwgUkNTUiBhbmQgQ0NDUiBpbiB0aGUgUFhBJ3MgYXNzZW1ibHkgc3RhcnQgZmlsZS4KICAgIDkuIFRoZSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUgd2FzIHJhdGhlciBvdXRkYXRlZC4KICAgIDEwLiBUaGUgcGFydCBoZWFkZXIgZmlsZSBkZWZpbmVkIHRoZSB2ZW5kb3IsIHByb2R1Y3QgYW5kIHJldmlzaW9uIGFycmF5cwogICAgYXMgdW5zaWduZWQgY2hhcnMgaW5zdGVhZCBvZiBqdXN0IGNoYXJzIGluIHRoZSBibG9ja19kZXZfZGVzY190CiAgICBzdHJ1Y3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IDI5OGNkNGNhZmU4MWZmOGE2Yzg3YmU4ZmJjNDQwYTIwNzIwZDNlZDYKQXV0aG9yOiBSdW5lIFRvcmdlcnNlbiA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEYXRlOglXZWQgT2N0IDE3IDExOjU2OjMxIDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzgyNjZBRFMgY29tbWFuZCBzZWxlY3Rpb24gbW9yZSByb2J1c3QKCiAgICBGaXggTVBDODI2NiBjb21tYW5kIGxpbmUgZGVmaW5pdGlvbiBzbyBpdCB3b24ndCBicmVhayB3aGVuIG5ldyBjb21tYW5kcwogICAgYXJlIGFkZGVkIHRvIHUtYm9vdC4KICAgIFNpZ25lZC1vZmYtYnkgUnVuZSBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KCmNvbW1pdCBkM2FmYTFlZTE5MzQ1YTMxZmQxZWFhZDNlOThiOTdkMTNjYTQ3MzE1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMzoxNDoxMCAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogVXBkYXRlIGNvbmZpZ3VyYXRpb24gdG8gYWNjb21vZGF0ZSBuZXh0IGdlbmVyYXRpb24gYm9hcmQuCgogICAgTmV3IGJvYXJkIGhhcyBmYXN0ZXIgb3NjaWxsYXRvciBhbmQgYSBkaWZmZXJlbnQgRmxhc2ggY2hpcC4gVGhpcyBhZmZlY3RzOgogICAgLSBDRkdfTVBDNVhYWF9DTEtJTgogICAgLSBTRFJBTSB0aW1pbmdzCiAgICAtIEZsYXNoIENTIGNvbmZpZ3VyYXRpb24gKHRpbWluZ3MpCiAgICAtIEZsYXNoIHNlY3RvciBzaXplLCBhbmQgdGh1cyBNVEQgcGFydGl0aW9uIGxheW91dAogICAgLSBtYWxsb2MoKSBhcmVuYSBzaXplIChkdWUgdG8gYmlnZ2VyIEZsYXNoIHNlY3RvcnMpCiAgICAtIHNtYWxsZXIgbWVtb3J5IHRlc3QgcmFuZ2UgKGR1ZSB0byBiaWdnZXIgbWFsbG9jKCkgYXJlbmEpCgogICAgVGhpcyBwYXRjaCBhbHNvIGVuYWJsZXMgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3RpbmcgdmlhICJtdGVzdCIuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlZmY1MDE5MDRkZjJiZjE3MjRhNzUwMDYyNjI4YmEyYzUxZGJiMWY4CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMTozNjowNyAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIHNldHRpbmcgb2YgU0RlbGF5IHJlZy4gdG8gU0RSQU0gY29udHJvbGxlciBjb25maWd1cmF0aW9uLgoKICAgIFBlciBBTjMyMjEgKE1QQzUyMDBCIFNEUkFNIEluaXRpYWxpemF0aW9uIGFuZCBDb25maWd1cmF0aW9uKSwgdGhlIFNEZWxheQogICAgcmVnaXN0ZXIgbXVzdCBiZSB3cml0dGVuIGEgdmFsdWUgb2YgMHgwMDAwMDAwNCBhcyB0aGUgZmlyc3Qgc3RlcCBvZiB0aGUKICAgIFNEUkFNIGNvbnRvcmxsZXIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdhOTM0ODcyOGViZGE2M2NkYmFhY2ZmZDgzMDk5YWE3MWQ5ZDRjNTQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgT2N0IDIzIDEwOjIyOjE2IDIwMDcgKzAxMDAKCiAgICBNb3ZlIFBMMDEqIHNlcmlhbCBkcml2ZXJzIHRvIGRyaXZlcnMvc2VyaWFsIGFuZCBhZGp1c3QgTWFrZWZpbGVzLgoKY29tbWl0IDIwZDUwMGQ1MzFhNmI5NzFjZTZjYzFiZjE5MWNiMDA5MmNkYzBhZmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTA6MTc6NDIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBTb21lIGZ1cnRoZXIgR1BJTyBjb25maWcgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZTlhNzM4ZmFhN2MyZjQ3Mjg2MTE5YzNiZmViYzNkZmJmZTdkODZkCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVN1biBPY3QgMjEgMjI6MTA6MTAgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBGaXggVU5DQUNIRURfU0RSQU0KCiAgICBQSFlTQUREUiBpcyBmb3IgcGh5c2ljYWwgYWRkcmVzcywgS1NFRzFBRERSIGlzIGZvciB1bmNhY2hlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAwMDEwMWRkN2EzMmQxMmY2OTgxNTAxMjNlNDdlNGIzNDIwMjc5Zjg2CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDIxOjMwOjQyIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gQWRkIFBJQy1yZWxhdGVkIHN3aXRjaGVzIHRvIFBMQVRGT1JNX3tDUFAsTER9RkxBR1MgYW5kIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZWI3MDA2MzZkYjAxN2QzMTBlZGFlYjU1OWIxM2Q4MjU4ODU2MDY3NApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNyAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IERlZmluZSBfZ3AgaW4gYSBzdGFuZGFyZCBtYW5uZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMjIwNjkyMTVlYjdhZGY1YTM4ODhiZjdjNzc4NGVhOWQ3MGE3MmNkMApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIEZpeCAkZ3AgdXNhZ2UKCiAgICBOb3cgd2UgbG9hZCAkZ3Agd2l0aCBfR0xPQkFMX09GRlNFVF9UQUJMRV8sIGJ1dCB0aGlzIGlzIGluY29ycmVjdCB1c2UuCiAgICBBcyBhIGdlbmVyYWwgcHJpbmNpcGxlLCB3ZSBzaG91bGQgdXNlIF9ncCBmb3IgJGdwLgoKICAgIFRoYW5rcyB0byBsaW5rZXIgc2NyaXB0J3MgaGVscCB3ZSBmb3J0dW5hdGVseSBoYXZlIF9ncCB3aGljaCBlcXVhbHMgdG8KICAgIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4gQnV0IG9uY2UgX2dwIGdldHMgb3V0IG9mIGFsaWdubWVudCwgd2Ugd2lsbCBub3QKICAgIGJlIGFibGUgdG8gYWNjZXNzIHRvIEdPVCBlbnRpcmVzLCBnbG9iYWwgdmFyaWFibGVzIGFuZCBwcm9jZWR1cmUgZW50cnkKICAgIHBvaW50cy4gVGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGlzIHRvIHVzZSBfZ3AuCgogICAgVGhpcyBwYXRjaCBhbHNvIGludHJvZHVjZSBhIG5ldyBzeW1ib2wgYC5ncHdvcmQgX0dMT0JBTF9PRkZTRVRfVEFCTEVfJwogICAgd2hpY2ggaG9sZHMgdGhlIG9mZnNldCBmcm9tIF9ncC4gV2hlbiB1cGRhdGluZyBHT1QgZW50cmllcywgd2UgdXNlIHRoaXMKICAgIG9mZnNldCBhbmQgX2dwIHRvIGNhbGN1bGF0ZSB0aGUgZmluYWwgX0dMT0JBTF9PRkZTRVRfVEFCTEVfLgoKICAgIFRoaXMgcGF0Y2ggaXMgb3JpZ2luYWxseSBzdWJtaXR0ZWQgYnkgVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+LCB0aGVuCiAgICBJIG1hZGUgc29tZSBjaGFuZ2UgdG8gbGVhdmUgb3ZlciBudW1fZ290X2VudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGNiZjIzMjNiNWI4Mjg1ZWEwMWFjYmE3YmJiOTA1YTMxNjJkOWIwMjEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBGaXggX19nb3Rfc3RhcnQgYW5kIF9fZ290X2VuZAoKICAgIEVuc3VyZSB0aGF0IF9fZ290X3N0YXJ0IHBvaW50cyB0byB0b3Agb2YgdGhlIGAuZ290JywgYW5kIF9fZ290X2VuZCBwb2ludHMKICAgIHRvIGJvdHRvbSBhcyB3ZWxsLCBzbyB0aGF0IHdlIG5ldmVyIGZhaWwgdG8gY291bnQgbnVtX2dvdF9lbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCBlNWYzMjVmZWM1YjQ4YWU3MDVjODk1MjI5MjNiYTVhMmUzN2NkNWM3CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogUmVtb3ZlIGR1cGxpY2F0ZWQgLnNkYXRhIHNlY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMDViZjQ5MTljMWNlNDljZGVkYWRhY2Q1NjRkMDc4NmE4ZWQ3OTZhMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMDE6MDE6MTcgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZjI4NWNhMDdlZGExZWE0YTg5MDk4NDhjYzFjYzYwNGVjOGZlYzljCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVRodSBPY3QgNCAyMDo0NzoxMCAyMDA3ICswMzAwCgogICAgRml4IE5FMjAwMCBkcml2ZXI6CgogICAgRml4ZWQgdHlwbyBpbiBuZTIwMDAuaCwgdGhpbmtvIHJlIG4ya19pbmIoKSB1c2FnZSwgZG9uJ3QgdHJ5CiAgICB0byBkbyBhbnl0aGluZyBpbiBldGhfc3RvcCgpIGlmIGV0aF9pbml0KCkgd2FzIG5vdCBjYWxsZWQuCiAgICBTaW1wbGlmaWVkIFJYIHBhdGggaW4gb3JkZXIgdG8gYXZvaWQgdGltZW91dHMgb24gcmVhbGx5IHJlYWxseQogICAgZmFzdCBORTIwMDAgY2FyZHMgKHJlYWQ6IHFlbXUgd2l0aCBpbnRlcm5hbCB0ZnRwKSwgTmV0TG9vcCgpIGlzCiAgICBjbGV2ZXIgZW5vdWdoIHRvIGNvcGUgd2l0aCAxIHBhY2tldCBwZXIgZXRoX3J4KCkuCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgZGY5MDk2OGI0OGZiMzRmYTkwNzJmYWIxNTBkYjJhYzg5Njc4ZjUzNwpBdXRob3I6IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tIDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KRGF0ZToJTW9uIFNlcCAyNCAxMzozMjoxMyAyMDA3IC0wNDAwCgogICAgU2V0dGluZyBNU1JbREVdIGluIGRvX3Jlc2V0CgogICAgSGVsbG8sCiAgICAgICBUaGlzIHBhdGNoIGVuc3VyZXMgdGhlIHNvZnQgcmVzZXQgb2YgdGhlIGJvYXJkIGZvciB0aGUgODV4eCBib2FyZHMKICAgICAgIGJ5IHNldHRpbmcgdGhlIE1TUltERV0gaW4gdGhlIGRvX3Jlc2V0IGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN1Z2hvc2ggR2FudSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+Cgpjb21taXQgMWU3MDFlNzAxMzA0YjNjM2EzNzY4Y2E4M2RkMmFiN2I5ZTg4Yzc3ZApBdXRob3I6IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tIDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KRGF0ZToJTW9uIFNlcCAyNCAxMzozNjowMSAyMDA3IC0wNDAwCgogICAgTVNSIG92ZXJ3cml0ZSBmaXgKCiAgICBIZWxsbywKICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgTVNSIG92ZXJ3cml0ZSBpbiB0aGUgc3RhcnQuUyB3aGVuIG1vdmluZyBvdXQgb2YKICAgICAgdGhlIGxhc3QgNEsgcGFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdWdob3NoIEdhbnUgPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgoKY29tbWl0IDVjN2VhNjRiYjc0YTg1MGEyYjIzMDNmODUzYTgyNzA2OTVhZDg2MDIKQXV0aG9yOiBEYW4gV2lsc29uIDxkd2lsc29uQGZ1bGNydW1taWNyby5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMTE6MzM6NDggMjAwNyAtMDUwMAoKICAgIHRzZWMgZHJpdmVyIHNob3VsZCBjbGVhciBSSEFMVCBvbiBzdGFydHVwCgogICAgVGhpcyB3YXMgY2F1c2luZyBwcm9ibGVtcyBmb3Igc29tZSBwZW9wbGUuCgogICAgU2lnbmVkLW9mZi1ieTogQWxhaW4gR3JhdmVsIDxhZ3JhdmVsQGZ1bGNydW1taWNyby5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYW4gV2lsc29uIDxkd2lsc29uQGZ1bGNydW1taWNyby5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYwMGQ0N2I4ZjZhMTAwMTllNTM3ZGM5YTYyYWExNDk4ZGY1OGQyNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTEgMDA6Mjk6MTggMjAwNyAtMDUwMAoKICAgIEltcHJvdmUgaGFuZGxpbmcgb2YgUENJIGludGVycnVwdCBkZXZpY2UgdHJlZSBmaXh1cCBvbiBNUEM4NXh4IENEUwoKICAgIE9uIHRoZSBNUEM4NXh4IENEUyB3ZSBoYXZlIHR3byBpc3N1ZXM6CgogICAgMS4gVGhlIGRldmljZSB0cmVlIGZpeHVwIGNvZGUgZGlkIG5vdCBjaGVjayB0byBzZWUgaWYgdGhlIHByb3BlcnR5IHdlIGFyZQogICAgdHJ5aW5nIHRvIHVwZGF0ZSBpcyBhY3R1YWxseSBmb3VuZC4gIEl0cyBwb3NzaWJsZSB0aGF0IGl0IHdvdWxkIHVwZGF0ZQogICAgcmFuZG9tIG1lbW9yeSBzdGFydGluZyBhdCAwLgoKICAgIDIuIE5ld2VyIExpbnV4IGtlcm5lbCdzIGhhdmUgbW92ZWQgdGhlIGxvY2F0aW9uIG9mIHRoZSBQQ0kgbm9kZXMgdG8gYmUKICAgIHNpYmlsaW5ncyBvZiB0aGUgc29jIG5vZGUgYW5kIG5vdCBjaGlsZHJlbi4gIFRoZSBleHBsaWNpdCBQQVRIIHRvIHRoZSBQQ0kKICAgIG5vZGUgd291bGQgbm90IGJlIGZvdW5kIGZvciB0aGVzZSBkZXZpY2UgdHJlZXMuICBBZGQgdGhlIGFiaWxpdHkgdG8gaGFuZGxlCiAgICBib3RoIHBhdGhzLiAgSW4gdGhlIGZ1dHVyZSB3ZSBzaG91bGRuJ3QgaGFuZGxlIHN1Y2ggZml4dXBzIGJ5IGV4cGxpY2l0IHBhdGguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhMzA2M2VlYzc3NTcxOWI3ZTkxMDIzYmJlYzNmNjRiMzExODc5MWRmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxMSAwMDoxODo0OCAyMDA3IC0wNTAwCgogICAgU2V0IE9GX1NURE9VVF9QQVRIIHRvIG1hdGNoIHRoZSBkZWZhdWx0IGNvbnNvbGUgb24gTVBDODU2OCBNRFMKCiAgICBPbiB0aGUgTVBDODU2OCBNRFMgd2UgdXNlIHR0eVMwLCBVQVJUMCwgZXRjLiBhcyB0aGUgc3RhbmRhcmQgY29uZmlndXJlZAogICAgY29uc29sZS4gIE1ha2UgaXQgc28gd2UgbWF0Y2ggdGhhdCBjb25maWcgd2hhdCB3ZSB0ZWxsIExpbnV4IGFzIHRoZSBlYXJseQogICAgU1RET1VUIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlMWNlM2NiNjE3YmIwNmY5MWY4MmY5ODkxNTM5MTE3NWFkZGYzZTgyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyIDExOjEyOjI3IDIwMDcgLTA1MDAKCiAgICBSZW1vdmUgbWFnaWMgbnVtYmVycyBmcm9tIGNhY2hlIHJlbGF0ZWQgb3BlcmF0aW9ucyBmb3IgbXBjODV4eAoKICAgIFRoZSBtcGM4NXh4IHN0YXJ0IGNvZGUgdXNlcyBzb21lIG1hZ2ljIG51bWJlcnMgdGhhdCB3ZSBhY3R1YWxseQogICAgaGF2ZSAjZGVmaW5lcyBmb3IgaW4gPGNvbmZpZy5oPiBzbyB1c2UgdGhvc2UgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0NDFmNjFhM2Q4YjcwMzRmMTlmYzEzNjExODNlOTM2MTk4ZTZkYmIKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxOSAxNjo0NzoyNiAyMDA3ICswMjAwCgogICAgRml4IHR3byB0eXBvcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAyODFkZjQ1N2MxYWE1MGQyNzUyMTY1ZDBjNWMzMjgyZDQwMjdiOTc0CkF1dGhvcjogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE4IDE3OjQ3OjE5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgY29uZmlndXJlIGVudHJ5IGZvciBNUEM4M3h4IEFUTSBzdXBwb3J0CgogICAgQWRkIE1QQzgzNjBFTURTX0FUTV9jb25maWcgYW5kIE1QQzgzMlhFTURTX0FUTV9jb25maWcgaW50bwogICAgTWFrZmlsZSBhbmQgTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDI2NDY1NTRmNTI5YTk1Nzc1MTVlY2ViMGVjNWVjZWVlMTgyNDRiYQpBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzo0NDozOCAyMDA3ICswODAwCgogICAgbXBjODN4eDogcHEtbWRzLXBpYi5jIHR5cG8gZXJyb3IKCiAgICBDb3JyZWN0IHRvIHZhbDggZnJvbSB2YWwuCgogICAgU2lnbmVkLW9mZi1ieTogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZTExYWU4MGZlYzFlZTEyMTk0OTQwOTU1NDMxMTg2YWJmNjAwOWMyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE3IDE1OjQwOjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCA2NjcvMTMzIChDUFUvUExCKSBmcmVxdWVuY3kgc2V0dXAgdG8gU2VxdW9pYSBib290c3RyYXAgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYzg5ZDc1NDA5ZWIyNjYzOWQzNmRmYTExZDRlZTNkOGI5NjJkYzNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxNToyNzo0MyAyMDA3IC0wNTAwCgogICAgSW5pdGlhbCBtcGM4NjEwaHBjZCBNYWtlZmlsZSBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFoZXNoIEphZGUgPG1haGVzaC5qYWRlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NTUzZGY4NmQzYTMxOWMzYTFhN2NkZTdlNGVkZDZlZWI1YWE2NGM3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxNToyNjo1MSAyMDA3IC0wNTAwCgogICAgSW5pdGlhbCBtcGM4NjEwaHBjZCBjcHUvLCBSRUFETUUgYW5kIGluY2x1ZGUvIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggSmFkZSA8bWFoZXNoLmphZGVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkZDJkYjUzY2ViMGRmZjgwZjI1YzJhMDdmODNmMjliOTA3YjQwM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDE2IDEzOjU0OjAxIDIwMDcgLTA1MDAKCiAgICBJbml0aWFsIG1wYzg2MTBocGNkIGJvYXJkIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggSmFkZSA8bWFoZXNoLmphZGVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdlZTZiYTFhMDU2ZTQwNjFhYjRjZmRlMzAxMjdlMzMyZTc5NTdhZmQKQXV0aG9yOiBydW5ldEBpbm5vdnN5cy5jb20gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxNDo1MDo0MCAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGJvYXJkIGNvbXBpbGUgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogUnVuZXQgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgMjQ5MTE2N2MyNDVkOGViZTZmMmRiZDhjNDI4N2FhYTBkMTRmZTkzYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjcgMTI6NDE6MDMgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEFsbG93IGZvciBmZXdlciBERFIgc2xvdHMgcGVyIG1lbW9yeSBjb250cm9sbGVyLgoKICAgIEFzIGEgZGlyZWN0IGNvcnJlbGF0aW9uIGV4aXN0cyBiZXR3ZWVuIEREUiBESU1NIHNsb3RzCiAgICBhbmQgU1BEIEVFUFJPTSBhZGRyZXNzZXMgdXNlZCB0byBjb25maWd1cmUgdGhlbSwgdXNlCiAgICB0aGUgaW5kaXZpZHVhbGx5IGRlZmluZWQgU1BEX0VFUFJPTV9BRERSRVNTKiB2YWx1ZXMgdG8KICAgIGRldGVybWluZSBpZiBhIEREUiBESU1NIHNsb3Qgc2hvdWxkIGhhdmUgaXRzIFNQRAogICAgY29uZmlndXJhdGlvbiByZWFkIG9yIG5vdC4KCiAgICBFZmZlY3RpdmVseSwgdGhpcyBub3cgYWxsb3dzIGZvciAxIG9yIDIgRElNTSBzbG90cwogICAgcGVyIG1lbW9yeSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQ0YTk0NWUxODlhMmYzODRjNjY0MzIzMTZkYTI3ODhhMGFjMTYwNwpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE9jdCAxNSAxMTo1OToxNyAyMDA3ICswMjAwCgogICAgUFhBIFVTQiBPSENJOiAidXNiIHN0b3AiIGltcGxlbWVudGF0aW9uLgoKICAgIFNvbWUgVVNCIGtleXMgbmVlZCB0byBiZSBzd2l0Y2hlZCBvZmYgYmVmb3JlIGxvYWRpbmcgdGhlIGtlcm5lbAogICAgb3RoZXJ3aXNlIHRoZXkgY2FuIHJlbWFpbiBpbiBhbiB1bmRlZmluZWQgc3RhdHVzIHdoaWNoIHByZXZlbnRzIHRoZW0KICAgIHRvIGJlIGNvcnJlY3RseSByZWNvZ25pemVkIGJ5IHRoZSBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgZTJlOTM0NDJlNTU4Y2YxNTAwZTkyODYxZjk5NzEzYjJmMDQ1ZWEyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAxNSAxMTozOTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggYnVnIGluIEkyQyBib290c3RyYXAgdmFsdWVzIGZvciBTZXF1b2lhL1JhaW5pZXIKCiAgICBUaGUgSTJDIGJvb3RzdHJhcCB2YWx1ZXMgdGhhdCBjYW4gYmUgc2V0dXAgdmlhIHRoZSAiYm9vdHN0cmFwIiBjb21tYW5kLAogICAgd2VyZSBzZXR1cCBpbmNvcnJlY3QgcmVnYXJkaW5nIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBpbnRlcm5hbCBzeW5jIFBDSQogICAgY2xvY2suIFRoZSB2YWx1ZXMgZm9yIFBMQiBjbG9jayA9PSAxMzNNSHogd2VyZSBzbGlnaGx5IGluY29ycmVjdCBhbmQgdGhlCiAgICB2YWx1ZXMgZm9yIFBMQiBjbG9jayA9PSAxNjZNSHogd2VyZSB0b3RhbGx5IGluY29ycmVjdC4gVGhpcyBjb3VsZAogICAgbGVhZCB0byBhIGhhbmd1cCB1cG9uIGJvb3Rpbmcgd2hpbGUgUENJIGNvbmZpZ3VyYXRpb24gc2Nhbi4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUgYW5kIGNvbmZpZ3VyZXMgdmFsaWQgUENJIGRpdmlzb3IgdmFsdWVzCiAgICBmb3IgdGhlIHN5bmMgUENJIGNsb2NrLCB3aXRoIHJlc3BlY3QgdG8gdGhlIHByb3ZpZGVkIGV4dGVybmFsIGFzeW5jCiAgICBQQ0kgZnJlcXVlbmN5LgoKICAgIEhlcmUgdGhlIHZhbHVlcyBvZiB0aGUgZm9ybXVsYSBpbiB0aGUgY2hhcHRlciAxNC4yICJQQ0kgY2xvY2tpbmciCiAgICBmcm9tIHRoZSA0NDBFUHggdXNlcnMgbWFudWFsOgoKICAgIEFzeW5jUENJQ0xLIC0gMU1IeiA8PSBTeW5jUENJQ2xrIDw9ICgyICogQXN5bmNQQ0lDbGspIC0gMU1IegoKICAgIDMzTUh6IGFzeW5jIFBDSSBmcmVxdWVuY3k6CiAgICBQTEIgPSAxMzM6CiAgICA9PgkgICAgMzIgPD0gNDQuMyA8PSA2NQkgICAgKGRpdiA9IDMpCgogICAgUExCID0gMTY2OgogICAgPT4JICAgIDMyIDw9IDU1LjMgPD0gNjUJICAgIChkaXYgPSAzKQoKICAgIDY2TUh6IGFzeW5jIFBDSSBmcmVxdWVuY3k6CiAgICBQTEIgPSAxMzM6CiAgICA9PgkgICAgNjUgPD0gNjYuNSA8PSAxMzIJICAgIChkaXYgPSAyKQoKICAgIFBMQiA9IDE2NjoKICAgID0+CSAgICA2NSA8PSA4MyA8PSAxMzIJICAgIChkaXYgPSAyKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YTU5NThiN2RlNzBhZTk5ZjBlN2NiZDVjOTdlYzEzNDZlMDUxNTg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDE1IDExOjI5OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpbmNvcnJlY3QgMzMvNjZNSHogUENJIGNsb2NrIGxvZy1tZXNzYWdlIG9uIFNlcXVvaWEgJiBZb3NlbWl0ZQoKICAgIFRoZSBCQ1NSIHN0YXR1cyBiaXQgZm9yIHRoZSA2Nk1IeiBQQ0kgb3BlcmF0aW9uIHdhcyBjb3JyZWN0bHkKICAgIGFkZHJlc3NlZCAoTVNCL0xTQiBwcm9ibGVtKS4gTm93IHRoZSBjb3JyZWN0IGN1cnJlbnRseSBzZXR1cAogICAgUENJIGZyZXF1ZW5jeSBpcyBkaXNwbGF5ZWQgdXBvbiBib290dXAuCgogICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIHRoaXMgcHJvYmxlbSBvbiBSYWluaWVyICYgWWVsbG93c3RvbmUsIHNpbmNlIHRoZXNlCiAgICBib2FyZHMgdXNlIHRoZSBzYW1lIHNvdWNlIGNvZGUgYXMgU2VxdW9pYSAmIFlvc2VtaXRlIGRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYTNhYWQ1NWNiZGU4MGFiNmUzMDFhYWZhODJhMmM0MTFhYTUzZWZmCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTYgMjAwNyArMDIwMAoKICAgIFRRTTg2ME06IGFkanVzdCBmb3IgZG91YmxlZCBmbGFzaCBzZWN0b3Igc2l6ZS4KCiAgICBBZGp1c3QgZmxhc2ggbWFwIHRvIHN1cHBvcnQgdGhlIG5ldyBTMjlHTHh4TiAoTi1UeXBlKSBGbGFzaGVzIHdpdGgKICAgIGRvdWJsZWQgc2VjdG9yIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWQyOTI1MGUyZTYyZjRiZjIwYzdhMjBiNDE3M2Q4NGM0OGYxMWY1ZApBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU0IDIwMDcgKzAyMDAKCiAgICBUUU04eHg6IEZpeCBDQU4gdGltaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGQ0M2U0ODliYWYwMmFmYWU0OTA3Nzc5MWZiMjIzMzJkMjQwZDg2NTYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJVGh1IFNlcCAyNyAxNDo1NDozNiAyMDA3ICswMjAwCgogICAgVFFNODY2TTogZml4IFNEUkFNIHJlZnJlc2gKCiAgICBBdCAxMzMgTUh6IHRoZSBjdXJyZW50IFNEUkFNIHJlZnJlc2ggcmF0ZSBpcyB0b28gZmFzdAogICAgKG1lYXN1cmVkIDQgKiAxLjE3IHVzKS4KICAgIENGR19NQU1SX1BUQSBjaGFuZ2VzIGZyb20gMzkgdG8gOTcuIFRoaXMgcmVzdWx0CiAgICBpbiBhIHJlZnJlc2ggcmF0ZSBvZiA0ICogNy44IHVzIGF0IHRoZSBkZWZhdWx0IGNsb2NrCiAgICA1MCBNSHouIEF0IDEzMyBNSHogdGhlIHZhbHVlIHdpbGwgYmUgdGhlbiA0ICogMi45IHVzLgogICAgVGhpcyBpcyBhIGNvbXByb21pc2UgdW50aWwgYSBuZXcgbWV0aG9kIGlzIGZvdW5kIHRvCiAgICBhZGp1c3QgdGhlIHJlZnJlc2ggcmF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5ZWY1N2JiZWUxYzY3Y2MwMWRhMjAyNmMyNDJjNDY5MmRiMzJiZTM2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTUgMjAwNyArMDIwMAoKICAgIFRRTTg2Nk06IGFkanVzdCBmb3IgZG91YmxlZCBmbGFzaCBzZWN0b3Igc2l6ZS4KCiAgICBBZGp1c3QgZmxhc2ggbWFwIHRvIHN1cHBvcnQgdGhlIG5ldyBTMjlHTHh4TiAoTi1UeXBlKSBGbGFzaGVzIHdpdGgKICAgIGRvdWJsZWQgc2VjdG9yIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZjhiZjkwNDYxZDliYWQyZTZmZWQzMWZjZWJhZjIzNWY2MGRkNjc2MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE9jdCAxNCAxNjoxMjoyOSAyMDA3ICswMjAwCgogICAgW0ZJWF0gWFVQVjJQIGNoYW5nZSBjb21tYW5kIGhhbmRsaW5nCiAgICBhbmQgcmVtb3ZlIGNvZGUgdmlvbGF0aW9uCgpjb21taXQgNjM2NDAwMTk4MjI4ZDk2OTgzYzA2NjU3YjE3Zjc2MGY1OTg5OTU4ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMTQgMDA6MTM6MTkgMjAwNyArMDIwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4wLXJjMyByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OGYxNGY3N2NhNWZlNWY5Y2MwMjVjOGNhZTEwMTY3MWY2MjgzMDlmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IFNlcCAyOSAxMzo0MTozNyAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gY3B1L3B4YS9tbWMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZmMxOWUzNmY3NDFlOGJjNzI3YzBhMzMwMTcwYjNiNWRiOTAzOTllZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMjM6NTE6MTQgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL21wbC92Y21hOS92Y21hOS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGU3NGI5ZWVhY2NjYWYwYTQyZTVlY2M5YWU3OWE4OGY3YTMxMTI5NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMjE6MTU6MzkgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTE4OTM4MTViMDk5OTQxMGQ3YTMyNzU4OTYxMWM3YjM4ZTk1Mjk5ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTIgMTU6NDk6MzkgMjAwNyArMDIwMAoKICAgIEdQMyBTU0E6IGVuYWJsZSBSVEMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwMDIwMTIwNDFmMWZmOWY5OTdhNTcyN2FiZTUwMTVmNzBjZDJlNDYKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE9jdCA5IDEzOjU4OjI0IDIwMDcgKzAyMDAKCiAgICBbYWRzNTEyMV0gRUVQUk9NIHN1cHBvcnQgYWRkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgN2I2MjRhZDI1NGI5N2U1YTI1ZGNhMjMwNGEzOThiNjRhZWVkYWZmZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgT2N0IDYgMTg6NTU6MzUgMjAwNyArMDIwMAoKICAgIEFWUjMyOiBJbml0aWFsaXplIGJpX2ZsYXNoKiBpbiBib2FyZF9pbml0X3IKCiAgICBUaGUgQVRTVEsxMDAwLXNwZWNpZmljIGZsYXNoIGRyaXZlciBpbnRpYWxpemVzIGJpX2ZsYXNoc3RhcnQsCiAgICBiaV9mbGFzaHNpemUgYW5kIGJpX2ZsYXNob2Zmc2V0LCBidXQgb3RoZXIgZmxhc2ggZHJpdmVycywgbGlrZSB0aGUgQ0ZJCiAgICBkcml2ZXIsIGRvbid0LgoKICAgIEluaXRpYWxpemUgdGhlc2UgaW4gYm9hcmRfaW5pdF9yIGluc3RlYWQgc28gdGhhdCB0aGluZ3Mgd2lsbCBzdGlsbCBiZQogICAgc2V0IHVwIGNvcnJlY3RseSB3aGVuIHdlIHN3aXRjaCB0byB0aGUgQ0ZJIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyYjJhNTg3ZDZkMzA3NjM4N2QyMmFjNzQwZjQ0MDQ0YmY0NmUyY2I4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE9jdCA1IDEwOjQwOjU0IDIwMDcgKzAyMDAKCiAgICB0cW01MjAwOiBGaXggQ09ORklHX0NNRF9QQ0kgdHlwbyBpbiBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkyODY5MTk1ZWY4MjEwNzU4ZDIxNzYyMzBjMGEzNjg5N2FmZDUwZWQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgT2N0IDUgMDk6NDY6MDYgMjAwNyArMDIwMAoKICAgIENNNTIwMDogRml4IG1pc3NpbmcgbnVsbC10ZXJtaW5hdGlvbiBpbiBob3N0bmFtZSBtYW5pcHVsYXRpb24gY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOWFkZDk4ODRiMWZkZGMzNGNhMTg2ZTAwYTJmODY4Y2NkNWQwMmQ4NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUdWUgT2N0IDIgMTk6MDk6MDEgMjAwNyArMDIwMAoKICAgIEZpeCBtZW10ZXN0IGJyZWFrYWdlCgogICAgQ0ZHX01FTVRFU1RfU1RBUlQgdXNlcyB3ZWlyZCBtYWdpYyBpbnZvbHZpbmcgZ2QsIHdoaWNoIGZhaWxzIHRvCiAgICBjb21waWxlLiBVc2UgaGFyZGNvZGVkIHZhbHVlcyBpbnN0ZWFkICh3ZSBhY3R1YWxseSBrbm93IGhvdyBtdWNoIFJBTQogICAgd2UgaGF2ZSBvbiBib2FyZC4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNzM4ODE1YzBjYzQ0YWEzMjkwOTdmODY4ZGMxZWZjNDllZGU5YzViYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyIDExOjQ0OjQ2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3YzE4MzNhMzllOTQ0ZGI2NjM4NTI4NmZkNWUyOGY5YjNmY2RkNTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMiAxMTo0NDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFJlbW92ZSB3YXRjaGRvZyBmb3Igbm93LCBzaW5jZSBub3QgZnVsbHkgdGVzdGVkIHlldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZGI2NDc4NDA2MWJmYzM0ZjRiYTcwZWYxZDJmYmU3MTMzYjU1NjcwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBPY3QgMSAwOTo1MTo1MCAyMDA3ICswMjAwCgogICAgUHJvZ3JhbSBFUExEIHRvIGZvcmNlIGZ1bGwgZHVwbGV4IG1vZGUgZm9yIFBIWS4KCiAgICBFUExEIGZvcmNlcyBtb2RlcyBvZiBQSFkgb3BlcmF0aW9uLiBCeSBkZWZhdWx0IGZ1bGwgZHVwbGV4IGlzIHR1cm5lZCBvZmYuCiAgICBUaGlzIGZpeCB0dXJucyBpdCBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ODVjMTM0NzdiNzdkY2QyZTZjNTEyOGZmZmNkYjRlMTk0M2Y0ODE4CkF1dGhvcjogVGltbyBLZXRvbGEgPHRpbW8ua2V0b2xhQGV4ZXJ0dXMuZmk+CkRhdGU6CU1vbiBTZXAgMjQgMTQ6NTA6MzIgMjAwNyArMDMwMAoKICAgIEJ1Z2ZpeDogVXNlIG9ubHkgb25lIFBURCBmb3Igb25lIGVuZHBvaW50CgogICAgT3JpZ2luYWwgaXNwMTE2eC1oY2QgY29kZSBwcmVwYXJlZCBtdWx0aXBsZSBQVERzIGZvciBsb25nZXIgdGhhbiAxNgogICAgYnl0ZSB0cmFuc2ZlcnMgZm9yIG9uZSBlbmRwb2ludC4gVGhhdCBpcyB1bm5lY2Vzc2FyeSBiZWNhdXNlIHRoZQogICAgSVNQMTE2eCBpcyBhYmxlIHRvIHNwbGl0IGxvbmcgZGF0YSBmcm9tIG9uZSBQVEQgaW50byBtdWx0aXBsZQogICAgdHJhbnNhY3Rpb25zIGJhc2VkIG9uIHRoZSBidWZmZXIgc2l6ZSBvZiB0aGUgZW5kcG9pbnQuIEl0IGFsc28gY2F1c2VkCiAgICBzZXJpb3VzIHByb2JsZW1zIGlmIHRoZSBlbmRwb2ludCBOQUtlZCBzb21lIG9mIHRoZSB0cmFuc2FjdGlvbnMuIEluCiAgICB0aGF0IGNhc2UgSVNQMTE2eCB3b3VsZG4ndCBub3RpY2UgdGhhdCB0aGUgb3RoZXIgUFREcyB3ZXJlIGZvciB0aGUgc2FtZQogICAgZW5kcG9pbnQgYW5kIHdvdWxkIHRyeSB0aGUgb3RoZXIgUFREcyBwb3NzaWJseSBvdXQgb2Ygb3JkZXIuIFRoYXQgd291bGQKICAgIGJyZWFrIHRoZSB3aG9sZSB0cmFuc2Zlci4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIGlzcDExNnhfc3VibWl0X2pvYiB0byB1c2Ugb25lIFBURCBmb3Igb25lIHRyYW5zZmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbW8gS2V0b2xhIDx0aW1vLmtldG9sYUBleGVydHVzLmZpPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA4NmVjODZjMDQzMjZjMzkxMzE3OGE3Njc5YWE5MTBkZTA3MWRhNzVkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IFNlcCAyNyAyMzoyNzo0NyAyMDA3ICswMjAwCgogICAgRml4IG1pc3NpbmcgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgb24gQ09ORklHX0xQQzIyOTIgaW4gc2VyaWFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzZTk1NGJlYjYxNGI1YjE5MGQ3ZjRmNGMzYjY0MTQzN2EwMTMyZTM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDExIDE0OjEyOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogQ2hhbmdlIEdQSU8gNTggdG8gZGVmYXVsdCB0byBsb3cgKHdhdGNoZG9nIHRlc3QpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE0ODdhZGJkY2Y5NTk0YmIyZWI2ODYzMjVhNmY5NTQwZGFkMWI3MGEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDI2IDE2OjM1OjU0IDIwMDcgLTA1MDAKCiAgICA4NXh4IGlvIG91dCBmdW5jdGlvbnMgbmVlZCBzeW5jIGFmdGVyIHdyaXRlLgoKICAgIFRoaXMgZml4ZXMgdGhlIG1jMTQ2ODE4IHJ0Y19yZWFkL3dyaXRlIGZ1bmN0aW9ucyBmb3IgODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBkMzhlZmZjNmUzNTllNmIxYjBjNzhkNjZlOGJjMWE0ZGMxNWEyYWUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBTZXAgMjUgMTU6NDg6MDUgMjAwNyAtMDYwMAoKICAgIEZwZ2E6IGZpeCBpbmNvcnJlY3QgdGVzdCBvZiBDRkdfRlBHQV9YSUxJTlggbWFjcm8KCiAgICBDRkdfRlBHQV9YSUxJTlggaXMgYSBiaXQgdmFsdWUgdXNlZCB0byB0ZXN0IGFnYWluc3QgdGhlIHZhbHVlIGluCiAgICBDT05GSUdfRlBHQS4gIFRlc3RpbmcgZm9yIGEgdmFsdWUgd2lsbCBhbHdheXMgcmV0dXJuIFRSVUUuCUkgZG9uJ3QKICAgIHRoaW5rIHRoYXQgaXMgdGhlIGludGVudGlvbiBpbiB0aGlzIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDg1MzY0M2Q4Y2YyY2E4MGNiMmUyNWM1M2FkNWRjNTgwYWJhZmUxNjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6NDE6MzAgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNoYW5nZSBjb21tYW5kIGhhbmRsaW5nIGFuZCByZW1vdmluZyBjb2RlIHZpb2xhdGlvbgoKY29tbWl0IGYyNDAzNTY1MDcwMzhlNWNlNTVlOGEyNGNiMjYwN2U5ZWFlNmQxMGMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MzY6MDYgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNoYW5nZSBzZXRzIG9mIGNvbW1hbmRzCiAgICBiZWNhdXNlIGNoYW5naW5nIG9mIGNvbW1hbmQgaGFuZGxpbmcgYnJpbmdzCiAgICBjb21waWxhdGlvbiBwcm9ibGVtcwoKY29tbWl0IGNiMWJjNjNiNzVhMjMyNTcxZWI2OWFhMmM4YWE5MTkzMjE2NTU4NDUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MzA6NDIgMjAwNyArMDIwMAoKICAgIFtGSVhdIEVtYWlsIHJlcGFyYXRpb24gJiBDb3B5cmlnaHQKICAgIEJvdGggY29kZXMgYXJlIHdyaXR0ZW4gYnkgbXlzZWxmIHdpdGhvdXQgYW55CiAgICBzdXBwb3J0IGZyb20gQ1RVCgpjb21taXQgMDczMWNiYWU2YzJmZWFiOTNiMjQ0ZDgzZmQ2YTQzZjVjYzliZjg1MgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoyNToxMSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBDaGFuZ2UgbWFjcm8gbmFtZSBmb3IgVWFydExpdGUKICAgIGJlY2F1c2UgUG93ZXJQQyA0MDUgY2FuIHVzZSBVYXJ0TGl0ZSBhcyBjb25zb2xlCgpjb21taXQgMWMxMTAwZDJmY2Y0NmI5ZDExZGNmNzhkNmU1YWVhNzVlMmU4YjcxNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoyMToxOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgZGVzaWduIHdpdGhvdXQgaW50ZXJydXB0IGNvbnRyb2xsZXIKICAgIFBvbGxpbmcgdGltZXIKCmNvbW1pdCAwNzMxOTMzZWM4ZWM0NWQwMmJhODliNTJkZjY3M2Q1MjY4NzNjZGRlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE5OjQ4IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXNvbHZlIHByb2JsZW0gd2l0aCBjcHUgd2l0aG91dCBiYXJyZWwgc2hpZnRlcgoKY29tbWl0IGRiMTRkNzc5OTVjZTUxNWI3MjhiMTc4YjYzZjgyYmFiZTYwZTNkNTYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTg6NDYgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlcGFpciBlbWFpbCBhZGRyZXNzCgpjb21taXQgNDgxZDQzMjg2MTg4MDRhZGQxZjgxOGE2Yzk2Mjk2MTIxY2QwNTI4ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxNzo0MiAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVwYWlyIE1GU0wgY29tbWFuZHMKCmNvbW1pdCBiOTBjMDQ1ZjAzNWMzY2M5YjVkMmVkYWVkNjA0OGRmYjc0ZTQwNzYzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjA4OjM3IDIwMDcgKzAyMDAKCiAgICBzeW5jaHJvbml6aXRpb24gd2l0aCBtYWlubGluZQoKY29tbWl0IGVkYTNlMWU2NjE5YWQwYmVlOTRhZTRiMTZjOTlkODhlNzdlMmFmMTMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6NDI6MzggMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBjb21tYW5kIG9mIGlkZSB3aXRoIHNoCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGQ5MWVhNDVkMTVjZjhlMDk4NzQ1NmJkMjExZmZiYjY1MDgyNGI2ZjEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6Mzg6NDIgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgTWFrZWZpbGUKCiAgICBBZGQgc3VwcG9ydCBNUzc3MjJTRTAxIHRvIE1ha2VmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2YzBiYmRjY2QzNzlmNWM4NzAyYWY5ZTA3NjUyOTRjMmZiNzQ3MmE2CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjMxOjEzIDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBzaDc3MjIgcHJvY2Vzc29yIGFuZCBIaXRhY2hpIE1TNzcyMlNFMDEgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMDQ3Mzc1YmZhNGMzMDUyZmE1MGE3NDhkYTdmZjg5ZTlkYWQzYjM2NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjoxOToyNCAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBNUzc3NTBTRTAxIHBsYXRmb3JtCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDUxNmFkNzYwZGIzNTUzNzY2MjY3YWRhMDFiN2Q1ZDcyN2ZhYTRiYmQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MTc6MDggMjAwNyArMDkwMAoKICAgIHNoOiBSZW1vdmUgY29tbWVudCBvdXQgY29kZSBmcm9tIGluY2x1ZGUvYXNtLXNoL2NwdV9zaDQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBiMDJiYWQxMjg2NjllNTY3ZmNlODdkOGRmODIzYjA2YTAxNDRiOGRiCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjEyOjMwIDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIGNvcmUgY29kZSBvZiBTdXBlckguCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDY2ZGNhZDNhOWE1M2UwNzY2ZDkwZTAwODQxMjNiZDg1Mjk1MjJmYjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgU2VwIDIwIDAwOjA0OjE0IDIwMDcgKzAyMDAKCiAgICB2MS4zLjAtcmMyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxMzVlMTliYzI3NzNlYmNhNDg3ZTlhODM3MWY2N2UxYmEyMDIzMTNhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxOCAyMTozNjozNSAyMDA3ICswMjAwCgogICAgQXZvaWQgY29tcGlsZXIgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhhNzgzYTY1ODUxYmM3NDIxYWI2OWY0NDIyNjEyMTVlMjFiODg5MWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBTZXAgMTggMTI6MjQ6NTcgMjAwNyAtMDYwMAoKICAgIEJ1Z2ZpeDogcmVtb3ZlIGVtYmVkZGVkIG51bGwgKFwwKSBmcm9tIENGR19CT09URklMRSBtYWNybyBpbiBUUU04NTQwX2NvbmZpZwoKICAgIC9iaW4vYmFzaCBhbmQgL2Jpbi9kYXNoICh3aGljaCAvYmluL3NoIGlzIGxpbmtlZCB0byBvbiB1YnVudHUpIGhhbmRsZSBlbWJlZGRlZAogICAgbnVsbHMgaW4gYSBzdHJpbmcgZGlmZmVyZW50bHkuICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6CgllY2hvICJ0aGlzIGlzIGEgc3RyaW5nXDAiID4gYWZpbGUKICAgIFdpbGwgcHJvZHVjZSB0aGUgZm9sbG93aW5nIHdpdGggL2Jpbi9iYXNoOgoJInRoaXMgaXMgYSBzdHJpbmdcMCIKICAgIEJ1dCB3aXRoIC9iaW4vZGFzaCwgd2lsbCBwcm9kdWNlOgoJInRoaXMgaXMgYSBzdHJpbmcKCiAgICBCdWcgZml4ZWQgYnkgbW92aW5nIHRoZSBlbWJlZGRlZCBudWxsIG91dCBvZiB0aGUgbWFrZWZpbGUgYW5kIGludG8gdGhlCiAgICBjb25maWcgaGVhZGVyLiAgQWxzbyByZW5hbWVkIHRoZSBtYWNybyB0byBhdm9pZCB1c2FnZSBjb2xpc2lvbiB3aXRoIHRoZSBzYW1lCiAgICBtYWNybyB1c2VkIGJ5IG90aGVyIGJvYXJkIHBvcnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmOGQzY2E3YjZmYTMyMmFjNTdlOGU4MzFmMDdkYmVlYTAzOWE5ZjM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxOCAxNzo0MDoyNyAyMDA3ICswMjAwCgogICAgTUNDMjAwOiBmaXggYnVpbGQgd2FybmluZwoKICAgIFRoZSBNQ0MyMDAgYm9hcmQgY29uZmlnIGZpbGUgaW5jbHVkZXMgdmVyc2lvbi5oIGZvciBzb21lIGN1c3RvbWVyLQogICAgc3BlY2lmaWMgc2V0dGluZywgd2hpY2ggY2F1c2VzIHdhcm5pbmdzIHdpdGggIm1ha2UgZGVwZW5kIjsgYnVpbGQKICAgIHZlcnNpb24uaCBiZWZvcmUgZGVwZW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYmQ4NjIyMGY1OGI5OWQ2ODk2MTk4YzM4NWZkYTEzMmYwYzk4MDkxNQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTM6MDc6NTQgMjAwNyArMDEwMAoKICAgIE1vdmUgY29sb3VyZWQgbGVkIEFQSSB0byBzdGF0dXNfbGVkLmgKICAgIEltcHJvdmUgaW5kZW50YXRpb24gaW4gZHJpdmVycy9hdDQ1LmMKCmNvbW1pdCBlODBlNTg1YjAwZmJiYWI3YWQxYmY3MTYxOTc0MWYyYzViMDI5YWI3CkF1dGhvcjogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAwODo0NzoyMCAyMDA3ICswMjAwCgogICAgVXBkYXRlIGF0c3RrMTAwMiBib290YXJncy4KCiAgICBVcGRhdGVzIHRvIGF0c3RrMTAwMiBVLUJvb3QgaGVhZGVyIGZpbGU6CiAgICAtIENoYW5nZWQgYm9vdGFyZ3M6CgkqIFNldCB0aGUgYm9vdGFyZ3MgZm9yIGF0MTAwMiB0byBwb2ludCB0byB0aGUgU0QtY2FyZCBwYXJ0aXRpb24gaW5zdGVhZAoJKiAuLi4gb2YgdGhlIGJvb3QgZmxhc2guCgkqIFJlbW92aW5nIHRoZSByb290ZnN0eXBlIHNpbmNlIHRoYXQgYXJndW1lbnQgYXJlIG5vdCBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE0ZjNhYWI2ZGZiZWQ2YzI5MzY3YzY4OGJmYjhhNDdlZWY2MmMyMjUKQXV0aG9yOiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgpEYXRlOglXZWQgU2VwIDEyIDEzOjMyOjM3IDIwMDcgKzAyMDAKCiAgICBBZGQgc29tZSBjb21tZW50cyB0byBjbG9ja3MgaW4gYXRzdGsxMDAyLmgKCiAgICBUaGlzIHBhdGNoIGFwcGxpZXMgc29tZSBjbGFyaWZ5aW5nIGNvbW1lbnRzIHRvIGhvdyB0aGUgZGlmZmVyZW50CiAgICBjbG9ja3MgYXJlIHNldHVwIGFjY29yZGluZyB0byBhdHN0azEwMDIuaCBTb21lIG9mIHRoZSBwcmV2aW91cwogICAgY29tbWVudHMgd2hlcmUgc3RhdGluZyB3cm9uZ2Z1bCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5NzIxM2YzMjQxNmVhZDg4NWRlYWZlYTg2Nzc0ZTkxMmZmZDYwYWQwCkF1dGhvcjogRGF2aWQgU2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglNb24gU2VwIDE3IDE3OjA0OjQ3IDIwMDcgKzAyMDAKCiAgICBEZXNjcmlwdGlvbjogQWRkIE5FQydzIFBDSSBPSENJIG1vZHVsZSBJRCB0byB0aGUgVVNCIE9IQ0kgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2FhZGEgPGRhdmlkLnNhYWRhQGVjaXRlbGUuY29tPgoKY29tbWl0IDMwMzYzZTk4ZmE0NzBmYmVjZWE1ZThiYzBmMTQ0MzM1Mjc1NGYzMDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMTcgMDg6MjA6NDcgMjAwNyArMDIwMAoKICAgIFNtYWxsIHdoaXRlc3BhY2UgY2xlYW51cCBvZiBPbmVOQU5EIHBhdGNoCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3ZThjZTEwMWE0YTQ1ZWQ2ZWQ0NTczOWZjMmRlNWY4N2IxM2Y3ZjEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxNToxNCAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAzLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAxN2FhMjgwMDQ1N2RmMGMwNmI0MTUxNmY0NmYxMjY3MTJjMTk2MjE5CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTQ6MzQgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMi8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgOTE2NTI3ZjQ4MDlhN2JjZDgxMWYxZjFkYWYzNGFmMTg0ZTMxZGQ4YwpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjEzOjQ5IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDEvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGI0OWM5MGRmNmU3Y2ZjZmI4Yjg2MmI4YmJmODQ0OGRmZjVlZWQ5YTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBTZXAgMTYgMjA6NTE6NTcgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlbW92ZSBmaWxlcyBmb3JtIHJlcG9zaXRvcnkKCmNvbW1pdCA2N2MzMTAzNmFjYWFhYTk5MmZjMzQ2Y2M4OWRiMDkwOWE3ZTczM2M0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCAxNiAxNzoxMDowNCAyMDA3ICswMjAwCgogICAgVFFNOHh4W0xNXTogRml4IGJyb2tlbiBlbnZpcm9ubWVudCBhbGlnbm1lbnQuCgogICAgV2l0aCByZWNlbnQgdG9vbGNoYWlucywgdGhlIGVudmlyb25tZW50IHNlY3RvcnMgd2VyZSBubyBsb25nZXIgYWxpZ25lZCB0bwogICAgc2VjdG9yIGJvdW5kYXJpZXMuIFRoZSByZWFzb24gd2FzIGEgY29tYmluYXRpb24gb2YgdHdvIGJ1Z3M6CgogICAgMSkgY29tbW9uL2Vudmlyb25tZW50LmMgYXNzdW1lZCB0aGF0IENPTkZJR19UUU04eHhMIHdvdWxkIGJlIGRlZmluZWQKICAgICAgIGZvciBhbGwgVFFNOHh4TCBhbmQgVFFNOHh4TSBib2FyZHMuIEJ1dCAiaW5jbHVkZS9jb21tb24uaCIsIHdoZXJlCiAgICAgICB0aGlzIGdldHMgZGVmaW5lZCwgaXMgbm90IGluY2x1ZGVkIGhlcmUgKGFuZCBjYW5ub3QgYmUgaW5jbHVkZWQKICAgICAgIHdpdGhvdXQgY2F1c2luZyBsb3RzIG9mIHByb2JsZW1zKS4KCiAgICAgICBBZGRlZCBhIG5ldyAjZGVmaW5lIENGR19VU0VfUFBDRU5WIGZvciBhbGwgYm9hcmRzIHdoaWNoIHJlYWxseQogICAgICAgd2FudCB0byBwdXQgdGhlIGVudmlyb25tZW50IGlzIGEgIi5wcGNlbnYiIHNlY3Rpb24uCgogICAgMikgVGhlIGxpbmtlciBzY3JpcHRzIGp1c3QgaW5jbHVkZSBlbnZpcm9ubWVudC5vLCBzaWxlbnRseSBhc3N1bWluZwogICAgICAgdGhhdCB0aGUgb2JqZWN0cyBpbiB0aGF0IGZpbGUgYXJlIHJlYWxseSBpbiB0aGUgb3JkZXIgaW4gd2hpY2gKICAgICAgIHRoZXkgYXJlIGNvZGVkIGluIHRoZSBDIGZpbGUsIGkuIGUuICJlbnZpcm9ubWVudCIgZmlyc3QsIHRoZW4KICAgICAgICJyZWR1bmRhbmRfZW52aXJvbm1lbnQiLCBhbmQgImVudl9zaXplIiBsYXN0LiBIb3dldmVyLCBjdXJyZW50CiAgICAgICB0b29sY2hhaW5zIChHQ0MtNC54KSByZW9yZGVyIHRoZSBvYmplY3RzLCBjYXVzaW5nIHRoZSBlbnZpcm9ubWVudAogICAgICAgZGF0YSBub3QgdG8gc3RhcnQgb24gYSBmbGFzaCBzZWN0b3IgYm91bmRhcnk6CgogICAgICAgSW5zdGVhZCBvZjoJCQkJCXdlIGdvdDoKCgk0MDAwODAwMCBUIGVudmlyb25tZW50CQkJNDAwMDgwMDAgVCBlbnZfc2l6ZQoJNDAwMGMwMDAgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQJNDAwMDgwMDQgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQKCTQwMDEwMDAwIFQgZW52X3NpemUJCQk0MDAwYzAwNCBUIGVudmlyb25tZW50CgogICAgICAgTm90ZTogdGhpcyBwYXRjaCBmaXhlcyBqdXN0IHRoZSBmaXJzdCBwYXJ0LCBhbmQgY3VyZXMgdGhlIGFsaWdubWVudAogICAgICAgcHJvYmxlbSBieSBtYWtpbmcgc3VyZSB0aGF0ICJlbnZfc2l6ZSIgZ2V0cyBwbGFjZWQgY29ycmVjdGx5LiBIb3dldmVyLAogICAgICAgd2Ugc3RpbGwgaGF2ZSBhIHBvdGVudGlhbCBpc3N1ZSBiZWNhdXNlIHByaW1hcnkgYW5kIHJlZHVuZGFudAogICAgICAgZW52aXJvbm1lbnQgc2VjdG9ycyBhcmUgYWN0dWFsbHkgc3dhcHBlZCwgaS4gZS4gd2UgaGF2ZSBub3c6CgoJNDAwMDgwMDAgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQKCTQwMDBjMDAwIFQgZW52aXJvbm1lbnQKCTQwMDEwMDAwIFQgZW52X3NpemUKCiAgICAgICBUaGlzIHNoYWxsIGJlIGZpeGVkIGluIHRoZSBuZXh0IHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlYjZkYTgwNTA3OTdjMjA0YzlkMDEwNTQ4NDI0MTg2YzdjZTMyZmMxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCAxNiAwMjozOTozNSAyMDA3ICswMjAwCgogICAgVFFNOHh4L0ZQUzh4eDogYWRqdXN0IGZsYXNoIHBhcnRpdGlvbnMgZm9yIDIuNiBBUkNIPXBvd2VycGMga2VybmVscwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2QyZDE2MDJjNTRjYzY5NTdiZGVmMzg3MjI3MmE0YjI2NDg5Mzk2MApBdXRob3I6IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tIDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNDo1NDo1NiAyMDA3IC0wNDAwCgogICAgVHlwbyBmaXggaW4gdHNlYy5jCgogICAgRml4dXAgZm9yIHRoZSBicmVhayBzdGF0ZW1lbnQgaW4gd3JvbmcgcGxhY2UuCgogICAgW1BhdGNoIGJ5IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tXQogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6CVdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWJkN2ZlOWFlYjc2OTA2MzcxZjQwYjhmZDA3NjEzZjEwOTIyZTNlNwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDExIDE3OjA0OjAwIDIwMDcgKzAyMDAKCiAgICBGaXggZG9fZGl2KCkgdXNhZ2UgaW4gbmFuZCBwcm9jZXNzIG91dHB1dAoKICAgIEZpeCB1c2FnZSBvZiBkb19kaXYoKSBpbiBuYW5kIGVyYXNlfHJlYWR8d3JpdGUgcHJvY2VzcyBvdXRwdXQuCgogICAgVGhlIGxhc3QgcGF0Y2ggdG8gbmFuZF91dGlsLmMgaW50cm9kdWNlZCBkb19kaXYoKSBpbnN0ZWFkIG9mIGxpYmdjYydzCiAgICBpbXBsZW1lbnRhdGlvbi4gQnV0IGRvX2RpdigpIHJldHVybnMgdGhlIHF1b3RpZW50IGluIGl0cyBmaXJzdAogICAgbWFjcm8gcGFyYW1ldGVyIGFuZCBub3QgYXMgcmVzdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGM3NTBkMmU2NjkyYTAwMGE4MmYyOWRlN2JmMjRlM2RjMjEyMzkxNjEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIFNlcCAxMiAxMjozNjo1MyAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIENGR19OQU5EX1FVSUVUIG9wdGlvbgoKICAgIFRoaXMgY29uZmlnIG9wdGlvbiBzZXRzIHRoZSBkZWZhdWx0IGZvciB0aGUgcHJvZ3Jlc3MgaW5mb3JtYXRpb24KICAgIG91dHB1dCBiZWhhdmlvciB0aGF0IGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGUgJ3F1aWV0JwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgVGhlIGxlZ2FjeSBOQU5EIGNvZGUgZG9lcyBub3QgcHJpbnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgaW5mbwogICAgb24gdGhlIGNvbnNvbGUuIFNvIHRoaXMgb3B0aW9uIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvcgogICAgdW5pdHMgdGhhdCBhcmUgaW4gdGhlIGZpZWxkIGFuZCB3aGVyZSBzZXR0aW5nIHRoZSBxdWlldCB2YXJpYWJsZQogICAgaXMgbm90IGFuIG9wdGlvbi4gV2l0aCBDRkdfTkFORF9RVUlFVCBzZXQgdG8gJzEnIHRoZSBjb25zb2xlCiAgICBwcm9ncmVzcyBpbmZvIGlzIHR1cm5lZCBvZmYuIFRoaXMgY2FuIHN0aWxsIGJlIG92ZXJ3cml0dGVuCiAgICB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkY2I4ODYzMDI5MGQyYmNkODAzMzg2ZGQ0YzJiZTczMTQyOTk0YzRmCkF1dGhvcjogTGlldyBUc2kgQ2h1bmctcjVhYWhwIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjA2OjA1IDIwMDcgLTA3MDAKCiAgICBDb2xkRmlyZTogZml4IGJ1aWxkIGVycm9yIGJlY2FzdWUgb2YgYmFkIHR5cGUgb2YgbWlpX2luaXQoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMTRkNWI2Y2U1MmE0ZWQxOWRkMjk1ZDEzNjRlMjQ2YzVlNjA1MDE3CkF1dGhvcjogTGlldyBUc2kgQ2h1bmctcjVhYWhwIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjA0OjA1IDIwMDcgLTA3MDAKCiAgICBDb2xkRmlyZTogRml4IGJ1aWxkIGVycm9yIGNhdXNlZCBieSBwaXhpcy5jCgogICAgTW92ZWQgdGhlICNpbmNsdWRlIDxhc20vY2FjaGUuaD4gaW5zaWRlIHRoZSAjaWZkZWYgQ09ORklHX0ZTTF9QSVhJUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTIxNjU5ZTMwNjYwYTEzNzdjNDJhZjEzNWE2MTE0ZWZlMzk4MDFkOQpBdXRob3I6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgpEYXRlOglGcmkgU2VwIDE0IDExOjE0OjQyIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODM0OUlUWCpfY29uZmlnIHRvIHBsYWNlIGNvbmZpZy50bXAgaW4gcmlnaHQgcGxhY2UuCgogICAgTVBDODM0SVRYKl9jb25maWcgZG9lcyBub3Qgc3RvcmUgY29uZmlnLnRtcCBhdCB0aGUgY29ycmVjdCBsb2NhdGF0aW9uLAogICAgY2F1c2luZyBNUEM4MzQ5SVRYR1AgdG8gaGF2ZSB0aGUgd3JvbmcgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDEyMThhYmYxYjU4MTdhMzlhODIzOTliNGI5MjhiMDA3NTA1NzViZGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgU2VwIDE1IDIwOjQ4OjQxIDIwMDcgKzAyMDAKCiAgICBGaXggY2FzZXMgd2hlcmUgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgd2FzIG5vdCBkZWNsYXJlZCBhcyBnbG9iYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY2YjNmMjRkNjY1YmU2NzhhOWRiYjEyNWIxZTg0MTg1NDAwZjYzYjUKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglTYXQgU2VwIDE1IDExOjU1OjQyIDIwMDcgKzAyMDAKCiAgICBNYWtlIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGdsb2JhbCBmb3IgRGFWaW5jaQoKICAgIEFzIGRpc2N1c3NlZCBpbiBbMV0sIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGhhcyB0byBiZSBnbG9iYWwgYW5kIG5vdAogICAgZnVuY3Rpb24gbG9jYWwuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzE4MDUKCmNvbW1pdCA5OTFiMDg5ZDFjZTVhZDk0NTcyNWUzNjU3YThmMTA2ZGZhMDJhMzhlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgU2VwIDE1IDAwOjAzOjM1IDIwMDcgKzAyMDAKCiAgICBTeW5jaHJvbml6ZSB3aXRoIFUtQk9PVCBtYWlubGluZQoKY29tbWl0IGQ3ZmVlMzJiN2U2MWZlMTFjNjRlMzcxY2RlNzlmYWE0NzY4ZTgzNTAKQXV0aG9yOiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KRGF0ZToJRnJpIFNlcCAxNCAxMToxNDo0MiAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzgzNDlJVFgqX2NvbmZpZyB0byBwbGFjZSBjb25maWcudG1wIGluIHJpZ2h0IHBsYWNlLgoKICAgIE1QQzgzNElUWCpfY29uZmlnIGRvZXMgbm90IHN0b3JlIGNvbmZpZy50bXAgYXQgdGhlIGNvcnJlY3QgbG9jYXRhdGlvbiwKICAgIGNhdXNpbmcgTVBDODM0OUlUWEdQIHRvIGhhdmUgdGhlIHdyb25nIFRFWFRfQkFTRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmU3YjdiNmVhMWI2ZDA0ZGJlOTYyNDJlYjZhMGMxYzY2NGM5OGU4YwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTg6MjE6NDggMjAwNyArMDIwMAoKICAgIGNtNTIwMDogRml4IGEgdHlwbyBpbnRyb2R1Y2VkIGJ5IGFmYWFjODZmZTI5NDhhYzg0Y2Q5YTEyYmJlZDg4M2IzYzY4M2U3ZDkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGUxZjYwMWI1NzJkYjVkZTlhYTgxYTBiNzdjNjhhODY5OTRmZTI0YzQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjMzOjU5IDIwMDcgKzAyMDAKCiAgICB0cW01MjAwOiBSZXN0b3JlIGN1c3RvbWFyeSBlbnYuIHZhcmlhYmxlIGJvb3QgY29tbWFuZHMgZm9yIHBvd2VycGMga2VybmVscwoKICAgIC0gdXBkYXRlIGRlZmF1bHQgZGVmaW5pdGlvbnMgb2Yga2VybmVsX2FkZHIgYW5kIGZkdF9hZGRyIGVudi4gdmFyaWFibGVzCiAgICAtIG1ha2UgYXJjaC9wb3dlcnBjIGJvb3RpbmcgdGhlIGRlZmF1bHQgc2NlbmFyaW8KICAgIC0gdXBkYXRlIE1URCBwYXJ0aXRpb24gbGF5b3V0IHRvIG1hdGNoIHRoZSBhYm92ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZjM0MDI0ZDRhMzI4ZTZlZGQ5MDY0NTZkYTk4ZDJjNTM3MTU1YzRmNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTIgMDA6NDg6NTcgMjAwNyArMDIwMAoKICAgIEZpeCBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtIG9uIFNUWCBHUDMgU1NBIEJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDk0Yzc5ZTQ3MDExYWY1ZThkZDEwZWQ2MTYzYzA5YjRjZmM3NDNjYwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTU6MzU6MDEgMjAwNyArMDEwMAoKICAgIEZpbmFsIHRpZHkKCmNvbW1pdCAzOGFkODJkYTBjMTE4MGVjZGViMjEyYThmNDI0NWU5NDViY2M1NDZlCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTU6NDI6MTEgMjAwNyArMDIwMAoKICAgIFtHUDNTU0FdIEFkZCBkZWZpbmUgQ09ORklHX01QQzg1WFhfUENJMiBpbiBjb25maWcgZmlsZSB0byBhbGxvdyB1LWJvb3QgdG8KICAgIHNjYW4gb24gc2Vjb25kIHBjaSBidXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNmMyZjRmMzg4ZTgxODE2NTVlYThiNjkzNDNlYTAwYjY4YWE2ZThkMApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDExIDEyOjU3OjUyIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIHNkcmFtLmMgZm9yIGJhbWJvb19uYW5kIGJ1aWxkCgogICAgQmFtYm9vIGhhcyBhIGZpbGUgc2RyYW0uYyB3aGljaCBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudCB3aGVuIGJ1aWxkaW5nIGluCiAgICBzZXBhcmF0ZSBkaXJlY3RvcnkuIEl0IGhhcyB0byBiZSBsaW5rZWQgdG8gYnVpbGQgZGlyZWN0b3J5IG90aGVyd2lzZSBpdCBpcwogICAgbm90IHNlZW4uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQ1OTYzODU0ZWZmMzlkNTc1MTI0ZDg1OTQxOWJiNDk1M2NlMmM4NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIFNlcCAxMSAwMDozNzowNCAyMDA3ICswMjAwCgogICAgW0ZJWF0gTWljcm9ibGF6ZSBNTDQwMSAtIHJlcGFyZSBGTEFTSCBoYW5kbGluZwoKY29tbWl0IDM4YzFlZjcyOGQxOTk1MDQxNGE4YWIxY2NmYzUzNzY3ODQ4ZmEzNDYKQXV0aG9yOiBTZWFuIE1DR09PR0FOIDxzZWFuLm1jZ29vZ2FuQHN0LmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNjo1NTo1OSAyMDA3ICswMTAwCgogICAgQWxsb2NhdGUgQ1BVIEFyY2hpdGVjdHVyZSBDb2RlIGZvciBTVE1pY3JvZWxlY3Ryb25pY3MnIFNUMjAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlYW4gTWNHb29nYW4gPFNlYW4uTWNHb29nYW5Ac3QuY29tPgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjb21taXQgNzU0YmFjNDgxNTZmODk1OGQ4ZjZhNTNhNTFlZGE4OGFiNTc1ODkyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMTAgMjA6NDI6MzEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSB2ZXJzaW9uIHRvIG1hdGNoIGN1cnJlbnQgc3RhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3YTg4OGQ2YjNjMzJhMTI2ZGJiNTA0ZWYxNDZiYjRjMjY1NzRjYTdiCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTc6Mzk6MDggMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBTdHJlYW1saW5lIGZyYW1lIGhhbmRsaW5nIGluIHRoZSBGRUMgZHJpdmVyCgogICAgLSBjb252ZXJ0IGZyYW1lIHNpemUgc2V0dGluZ3MgdG8gYmUgZGVyaXZlZCBmcm9tIGEgc2luZ2xlIGJhc2UKICAgIC0gc2V0IGZyYW1lIHNpemUgdG8gdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQgdmFsdWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMjUxZTAwZDBkYjRiMzZkMWQyYjdlMzhmZWM0M2E3Mjk2YjUyOWEyCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTE6MzQ6MDAgMjAwNyArMDkwMAoKICAgIFJlbW92ZSBjb21waWxlciB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAxZDllMzFlMDQ5MTFhNmJiN2NjNjZkZDkxMTMyYzY5OTEwMWMzMmUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCA5IDIxOjIxOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZSBlcnJvciBpbiBzcGMxOTIwIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpi/GNoZXIgPG1rQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE3ZDdlY2E3OTFhMzdmNDUyYzlkYTEwZmVmNGIzMWRkN2FhOWE2MjIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CUZyaSBTZXAgNyAwOToyNTowNyAyMDA3IC0wNjAwCgogICAgQnVnZml4OiBtYWtlIGJvb3RtK2xpYmZkdCBjb21waWxlIG9uIGJvYXJkcyB3aXRoIG5vIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDZlZmMxZmMwYjYzZTU1Zjk0YzViYzYxZDhkZDIzYzkxOGUzYmM3NzgKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE4OjM1OjM3IDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBQQ0llIGVudmlyb25tZW50IHNldHRpbmdzIGZvciBLYXRtYWkgYW5kIFl1Y2NhCgogICAgLSAncGNpY29uZmlnaG9zdCcgaXMgc2V0IGJ5IGRlZmF1bHQgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBzY2FuIGJyaWRnZXMKICAgIGJlaGluZCB0aGUgcHJpbWFyeSBob3N0L1BDSWUKCiAgICAtICdwY2lzY2FuZGVsYXknIGVudiB2YXJpYWJsZSBpcyByZWNvZ25pemVkIHRvIGFsbG93IGZvciB1c2VyLWNvbnRyb2xsZWQKICAgIGRlbGF5IGJlZm9yZSB0aGUgUENJZSBidXMgZW51bWVyYXRpb247IHNvbWUgcGVyaXBoZXJhbCBkZXZpY2VzIHJlcXVpcmUgYQogICAgc2lnbmlmaWNhbnQgZGVsYXkgYmVmb3JlIHRoZXkgY2FuIGJlIHNjYW5uZWQgKGUuZy4gTFNJODQwOEUpOyB3aXRob3V0IHRoZQogICAgZGVsYXkgdGhleSBhcmUgbm90IGRldGVjdGVkCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgN2YxOTEzOTM4OTg0ZWY2YzZhNDZjYjUzZTAwMzcxOTE5NmQ5YzVkZQpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTg6MjA6MjMgMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIEltcHJvdmUgUENJZSBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcwoKICAgIC0gY29ycmVjdCBjb25maWd1cmF0aW9uIHNwYWNlIG1hcHBpbmcKICAgIC0gY29ycmVjdCBidXMgbnVtYmVyaW5nCiAgICAtIGJldHRlciBhY2Nlc3MgdG8gY29uZmlnIHNwYWNlCgogICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgdGhlIDQ0MFNQZSBob3N0L1BDSWUgYnJpZGdlIHdhcyBhYmxlIHRvIGNvbmZpZ3VyZSBvbmx5IHRoZQogICAgZmlyc3QgZGV2aWNlIG9uIHRoZSBmaXJzdCBidXMuIFdlIG5vdyBhbGxvdyB0byBjb25maWd1cmUgdXAgdG8gMTYgYnVzZXM7CiAgICBhbHNvLCBzY2FubmluZyBmb3IgZGV2aWNlcyBiZWhpbmQgdGhlIFBDSWUtUENJZSBicmlkZ2UgaXMgc3VwcG9ydGVkLCBzbwogICAgcGVyaXBoZXJhbCBkZXZpY2VzIGZhcnRoZXIgaW4gaGllcmFyY2h5IGNhbiBiZSBpZGVudGlmaWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDE1ZWU0NzM0ZTRlMDgwMDNkNzNkOWVhZDNjYTgwZTJhMDY3MmU0MjcKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjQ2OjE4IDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBDb252ZXJ0IG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9ucyBoYW5kbGluZwoKICAgIENvbnZlcnQgdXNpbmcgZml4dXAgbWVjaGFuaXNtIHRvIHN1cHByZXNzaW5nIE1DSyBmb3IgdGhlIGR1cmF0aW9uIG9mIGNvbmZpZwogICAgcmVhZC93cml0ZSB0cmFuc2FjdGlvbjogd2hpbGUgZml4dXBzIHdvcmsgZmluZSB3aXRoIHRoZSBjYXNlIG9mIGEgcHJlY2lzZQogICAgZXhjZXB0aW9uLCB3ZSBpZGVudGlmaWVkIGEgbWFqb3IgZHJhd2JhY2sgd2l0aCB0aGlzIGFwcHJvYWNoIHdoZW4gdGhlcmUncwogICAgYW4gaW1wcmVjaXNlIGNhc2UuIEluIHRoaXMgc2NlbmFyaW8gdGhlcmUgaXMgdGhlIGZvbGxvd2luZyByYWNlIGNvbmRpdGlvbjoKICAgIHRoZSBmaXh1cCBpcyAoYnkgZGVzaWduKSBzZXQgdG8gY2F0Y2ggdGhlIGluc3RydWN0aW9uIGZvbGxvd2luZyB0aGUgb25lCiAgICBhY3R1YWxseSBjYXVzaW5nIHRoZSBleGNlcHRpb247IGlmIGFuIGludGVycnVwdCAoZS5nLiBkZWNyZW1lbnRlcikgaGFwcGVucwogICAgYmV0d2VlbiB0aG9zZSB0d28gaW5zdHJ1Y3Rpb25zLCB0aGUgSVNSIGNvZGUgaXMgZXhlY3V0ZWQgYmVmb3JlIHRoZSBmaXh1cAogICAgaGFuZGxlciB0aGUgbWFjaGluZSBjaGVjayBpcyBubyBsb25nZXIgcHJvdGVjdGVkIGJ5IHRoZSBmaXh1cCBoYW5kbGVyIGFzIGl0CiAgICBhcHBlYXJzIGFzIHdpdGhpbiB0aGUgSVNSIGNvZGUuIEluIGNvbnNlcXVlbmNlIHRoZSBmaXh1cCBhcHByb2FjaCBpcyBiZWluZwogICAgcGhhc2VkIG91dCBhbmQgcmVwbGFjZWQgd2l0aCBleHBsaWNpdCBzdXBwcmVzc2luZyBvZiBNQ0sgZHVyaW5nIGEgUENJZQogICAgY29uZmlnIHJlYWQvd3JpdGUgY3ljbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZmY3NjQwYzllYWQ4ODA2YjVkODI3ZjJiMjlmOWNiMjYzMmFkZDcyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNyAxNzo0MzozNiAyMDA3ICswMjAwCgogICAgRml4IHR5cG8gaW4gTUFLRUFMTCBzY3JpcHQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwOGUyZTVmY2QyZTA2NjcwYjYyZTE2ODBhMzkzNGMwZTU1YzcyODEwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzowOToyMSAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIFByb3BlciBoYW5kbGluZyBvZiBsYXJnZXIgZnJhbWVzIGluIHRoZSBGRUMgZHJpdmVyCgogICAgV2hlbiBmcmFtZSBsYXJnZXIgdGhhbiBsb2NhbCBSWCBidWZmZXIgaXMgcmVjZWl2ZWQsIGl0IGlzIHNwbGl0IGFuZCBoYW5kbGVkCiAgICBieSB0d28gYnVmZmVyIGRlc2NyaXB0b3JzLiBQcmlvciB0byB0aGlzIHBhdGNoIHRoZSBGRUMgZHJpdmVyIGRpc2NhcmRlZAogICAgY29udGVudHMgb2YgYSBidWZmZXIgZGVzY3JpcHRvciB3aXRob3V0IHRoZSAnTEFTVCcgYml0IHNldCwgc28gdGhlIGZpcnN0CiAgICBwYXJ0IG9mIHRoZSBmcmFtZSB3YXMgbG9zdCBpbiBjYXNlIG9mIGxhcmdlciBmcmFtZXMuIFRoaXMgZml4IGFsbG93cyB0bwogICAgc2FmZWx5IGNvbWJpbmUgdGhlIHR3byBwaWVjZXMgaW50byB0aGUgd2hvbGUgZnJhbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzowNTozNiAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgYTg5Y2JiZDI3YTYwZTY3NDA3NzIwMDBmZDA2ODhmZmJhMWMyNTc2YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNyAwMToyMToyNSAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgbWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgNWU1ODAzZTExOWRlM2JlYmQ3NmZjOWE1N2JhYWMwYjVhZWNjYzhhMwpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIzOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IEFkZGVkIHN1cHBvcnQgZm9yIFRyaXplcHNJViBib2FyZC4KCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IGZvciB0aGUgVHJpemVwcyBJViBtb2R1bGUgKDUyME1oeikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgODAxNzJjNjE4MWM5MTJmYmIzNGVhM2JhMGMyMmIyMzJiNDE5YjQ3ZgpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIyOjU3OjA0IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzZXJpYWwgcG9ydHMuCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlcmlhbCBwb3J0cyB0byB0aGUgUFhBIHRhcmdldC4KICAgIEZGVUFSVCwgQlRVQVJUIGFuZCBTVFVBUlQgYXJlIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCAyOGJiM2Y3MmM2ODdhYzZiMmViMDc2YjAxZGQyMWE1ZmQ2NTdkNDVlCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjI6NDg6NDcgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogZml4IGNvbXBpbGUgaXNzdWUgKGludmFsaWQgbHZhbHVlKQoKICAgIENvZGUgaXMgYnJva2VuIGZvciBQWEEyNzAgZHVlIHRvICJpbnZhbGlkIGx2YWx1ZSBpbiBhc3NpZ25tZW50Ii4KCiAgICBUaGlzIHBhdGNoIGZpeCBpdCBpbiBweGEtcmVncy5oCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgMWQyY2E0NDZlMWE3MzFkZjQyMDIwNmQwNGZlMjc4YzI3ZWE2YjhlOApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTg6MTk6MDUgMjAwNyArMDgwMAoKICAgIEFkZCBCVUlMRF9ESVIgc3VwcG9ydCBmb3IgYmlvcyBlbXVsYXRvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0ZDhhNTUxNDU0NDJmMTM2OTgyNjM0ODYyMzQxYTNlMDIwMDJiZGEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6NDE6NTEgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBSZW1vdmUgaW5saW5lIGFzbSBzdHJpbmcgZnVuY3Rpb25zCgogICAgU3RvcCB1c2luZyBpbmxpbmUgc3RyaW5nIGZ1bmN0aW9ucyBvbiBNSVBTIGFzIG90aGVyIEFSQ0hzIGRvIHNvLAogICAgc2luY2UgdGhlIG9wdGltaXplZCBpbmxpbmUgYXNtIHZlcnNpb25zIGFyZSBub3Qgc21hbGwuCgogICAgVGhpcyBjaGFuZ2UgaXMgdHJpZ2dlcmVkIGJ5IGEgZm9sbG93aW5nIE1JUFMgYnVpbGQgZXJyb3I6CiAgICBjb21tb24vbGliY29tbW9uLmEoZXhwb3J0cy5vKSgudGV4dCsweGRjKTogSW4gZnVuY3Rpb24gYGp1bXB0YWJsZV9pbml0JzoKICAgIGNvbW1vbi9leHBvcnRzLmM6MzI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHN0cmNtcCcKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDhlYTJjNGU1NDgzM2RlYWViYzI0YzNjYTZiN2YyMTM1M2MyNWIwZjUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6NDE6NDUgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBVcGRhdGUgYXNtIHN0cmluZyBoZWFkZXIKCiAgICBUaGlzIHBhdGNoZXMgY29udGFpbnMgc2V2ZXJhbCBidWdmaXhlcyBhbmQgY2xlYW51cHMgaW4gdGhlIGxhdGVzdCB1cHN0cmVhbToKCiAgICAgLSBEb24ndCBpbmNsdWRlIGxpbnV4L2NvbmZpZy5oCiAgICAgLSBSZW1vdmUgYnVnZ3kgaW5saW5lIHZlcnNpb24gb2YgbWVtc2Nhbi4KICAgICAtIE1lcmdlIHdpdGggTGludXggMi42LjExLXJjMy4KICAgICAtIEZpeCB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIHN0cmNweSBpbiBiaW5mbXRfbWlzYyBjYXVzZWQgYnkgZ2NjIDMuNC4KICAgICAtIEdvb2RieWUgbWlwczY0LgkzMTcwNCBsaW5lcyBvZiBjb2RlIGJpdGUgdGhlIGR1c3QuCiAgICAgLSBSZXBsYWNlIGV4dGVybiBpbmxpbmUgd2l0aCBzdGF0aWMgaW5saW5lLgogICAgIC0gRml4IHJldHVybiB2YWx1ZSBvZiBzdHJuY3B5LgogICAgIC0gUmVtb3ZlIGEgYnVuY2ggbW9yZSAiJDEiIGNsb2JiZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA1YjcyOWZiM2JkOThmNDk4NTVkNmJmYzY1N2MzZmJhZTk1ZjJhZGMyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE3OjMxOjIyIDIwMDcgKzAyMDAKCiAgICBGaXggZG9fYm9vdG1fbGludXgoKSBzbyB0aGF0IG11bHRpLWZpbGUgaW1hZ2VzIHdpdGggRkRUIGJsb2IgYm9vdC4KCiAgICBGaXggaW5jb3JyZWN0IGJsb2IgYWRkcmVzcyBjYWxjdWxhdGlvbiBpbiBkb19ib290bV9saW51eCgpIHRoYXQgcHJldmVudHMKICAgIGJvb3RpbmcgdGhlIGtlcm5lbCBmcm9tIGEgbXVsdGktZmlsZSBpbWFnZSAoa2VybmVsICsgaW5pdHJkICsgYmxvYikuCgogICAgQWxzbywgbWFrZSBtaW5vciB1cGRhdGVzIHRvIHRoZSBVLUJvb3QncyBvdXRwdXQgYW5kIHRvIHRoZSBjb2Rpbmcgc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwNDFhMjU1NGFkNjE5ZTgwZGNlNTIwYzFhMzMyMTBhZmZjYjZhM2YyCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnkuamVubmVqb2huQGZyZWVuZXQuZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6Mjk6MDQgMjAwNyArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTaWw2ODAgSURFIGNvbnRyb2xsZXIuCgogICAgbyBhZGQgZHJpdmVycy9zaWw2ODAuYyB0byBzdXBwb3J0IHRoZSBTaWw2ODAgSURFLWNvbnRyb2xsZXIuCiAgICBvIGRyaXZlcnMvTWFrZWZpbGU6IGFkZCBzaWw2ODAuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCBlNzkwMjEyMjNiYzMzOWRmNjU1ZTM2MDY0NWE1MmM0NTdhNzRiMDY3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDc6NDAgMjAwNyAtMDYwMAoKICAgIGJvb3RtL2ZkdDogT25seSBwcm9jZXNzIHRoZSBmZHQgaWYgYW4gZmR0IGFkZHJlc3Mgd2FzIHByb3ZpZGVkCgogICAgQm9hcmRzIHdpdGggQ09ORklHX09GX0xJQkZEVCBlbmFibGVkIGFyZSBub3QgYWJsZSB0byBib290IG9sZC1zdHlsZQogICAga2VybmVscyB1c2luZyB0aGUgYm9hcmQgaW5mbyBzdHJ1Y3R1cmUgKGluc3RlYWQgb2YgcGFzc2luZyBhIGRldmljZSB0cmVlKQogICAgVGhpcyBjaGFuZ2UgYWxsb3dzIHRoZSBvbGQgc3R5bGUgYm9vdGluZyB0byBiZSB1c2VkIGlmIHRoZSBmZHQgYXJndW1lbnQKICAgIHdhcyBub3QgcGFzc2VkIHRvICdib290bScuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YyODE3YTg0YzJlOWJlYTJjNWRmYzA4NGJjZTJmMmQyNTYzYWM0MwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ2OjIzIDIwMDcgLTA2MDAKCiAgICBNaWdyYXRlIDV4eHggYm9hcmRzIGZyb20gQ09ORklHX09GX0ZMQVRfVFJFRSB0byBDT05GSUdfT0ZfTElCRkRUCgogICAgQWZmZWN0cyBib2FyZHM6IGljZWN1YmUgKGxpdGU1MjAwKSwganVwaXRlciwgbW90aW9ucHJvLCB0cW01MjAwCgogICAgVGVzdGVkIG9uOiBsaXRlNTIwMGIKCiAgICBOb3RlOiB0aGUgZml4dXAgZnVuY3Rpb25zIGhhdmUgbm90IGJlZW4gbW92ZWQgdG8gYSBjb21tb24gcGxhY2UuICBUaGlzCiAgICBwYXRjaCBpcyB0YXJnZXRlZCBmb3IgaW1tZWRpYXRlIG1lcmdpbmcgYXMgaW4gc29sdmVzIGEgYnVpbGQgaXNzdWUsIGJ1dAogICAgdGhlIGZpbmFsIG5hbWUvbG9jYXRpb24gb2YgdGhlIGZpeHVwcyBpcyBzdGlsbCBzdWJqZWN0IHRvIGRlYmF0ZS4gIEkKICAgIHByb3Bvc2UgdG8gbWVyZ2UgdGhpcyBub3csIGFuZCBtb3ZlIHRoZSBmaXh1cHMgaW4gdGhlIG5leHQgbWVyZ2Ugd2luZG93CiAgICB0byBiZSB1c2FibGUgYnkgYWxsIHRhcmdldHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDQxYmI3NmU5NDE5MjlmNTRhNzMyMDZmYjEzMmY3YTRjMjc1NTQzYTMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0NjoxNyAyMDA3IC0wNjAwCgogICAgbGliZmR0OiBhZGQgY29udmVuaWVuY2UgZnVuY3Rpb24gZmR0X2ZpbmRfYW5kX3NldHByb3AoKQoKICAgIEdpdmVuIHRoZSBwYXRoIHRvIGEgbm9kZSwgZmR0X2ZpbmRfYW5kX3NldHByb3AoKSBhbGxvd3MgYSBwcm9wZXJ0eSB2YWx1ZQogICAgdG8gYmUgc2V0IGRpcmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4MDc2N2E2Y2VhZDk5OTBkOWU3N2U2MmJlOTQ3ODQzYzJjNzJmNDY5CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIFNlcCA1IDE2OjA0OjQxIDIwMDcgKzAxMDAKCiAgICBDaGFuZ2VkIEFQSSBuYW1lIHRvIGNvbG91cmVkX2xlZC5oCiAgICBSZW1vdmVkIGNvZGUgdXNpbmcgZGVwcmVjYXRlZCBpZmRlZiBDT05GSUdfQk9PVEJJTkZVTkMKICAgIFRpZGllZCBvdGhlciBjcHUvYXJtOTIwdC9zdGFydC5TIGNvZGUKCmNvbW1pdCA1NmE5MjcwNTIxYmFhYTAwZTEyNjM5YTk3ODMwMmE2N2Y2MWVmMDYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAzMCAxNjoxODoxOCAyMDA3IC0wNTAwCgogICAgRml4IFVMSSBSVEMgc3VwcG9ydCBvbiBNUEM4NTQ0IERTCgogICAgVGhlIFJUQyBvbiB0aGUgTTE1NzUgVUxJIGNoaXBzZXQgcmVxdWlyZXMgYSBkdW1teSByZWFkIGJlZm9yZQogICAgd2UgYXJlIGFibGUgdG8gdGFsayB0byB0aGUgUlRDLiAgV2UgYWNjb21wbGlzaCB0aGlzIGJ5IGFkZGluZyBhCiAgICBzZWNvbmQgbWVtb3J5IHJlZ2lvbiB0byB0aGUgUEhCIHRoZSBVTEkgaXMgb24gYW5kIHJlYWQgZnJvbSBpdC4KCiAgICBUaGUgc2Vjb25kIHJlZ2lvbiBpcyBhZGRlZCB0byBtYWludGFpbiBjb21wYXRpYWJpbHR5IHdpdGggTGludXgncwogICAgdmlldyBvZiB0aGUgUENJIG1lbW9yeSBtYXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzVlODllOWI1NzE0ZGIyYjBlODAwNzQwNzFkZmJkZDZmNTk0ODhhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAwMTo1ODo0OCAyMDA3IC0wNTAwCgogICAgZnRfYm9hcmRfc2V0dXAgdXBkYXRlIDg1eHgvODZ4eCBvZiBwY2kvcGNpZSBidXMtcmFuZ2UgcHJvcGVydHkuCgogICAgcGNpZSBpcyBub3cgZGlmZmVyZW50aWF0ZWQgZnJvbSBwY2kuICBBZGQgODY0MSBidXMtcmFuZ2UgdXBkYXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmNWMzZDM3MjBlNzc3YTU3MmRjZGM4YWYyMDA4YjQ0YzcyNDM4ODUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTY6MTg6MzggMjAwNyArMDEwMAoKICAgIEFkZCBjb2xvdXJlZCBsZWQgaW50ZXJmYWNlIGZvciBBUk0gYm9hcmRzLgogICAgVXNlIGl0IGluIGNwdS9hcm05MjB0L3N0YXJ0LlMgdG8gaW5kaWNhdGUgVS1Cb290IGNvZGUgaGFzIGJlZW4gZW50ZXJlZC4KCmNvbW1pdCA3NDYyZmUwZDVhOWQ0MGNkZTA4M2ZiMWEzY2Q3MzkxMTk5NmI1ZWNiCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjQ5OjI4IDIwMDcgKzAxMDAKCiAgICBNb3ZlIGluY2x1ZGUvbGVkLmggdG8gYm9hcmQvYXQ5MXJtOTIwMGRrCgpjb21taXQgNmU0YmY5YjI0ZTU3YzE1YWJjNjU0MmU2ODVkMDYzODBiYzY0YWYyNwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDoyNTo1MSAyMDA3ICswMTAwCgogICAgUmFuIExpbmRlbnQgb24gZHJpdmVycy9hdDQ1LmMKCmNvbW1pdCA1NTdhYjg5ZDI5NGYwOGRkNTMyZjIxZDE5ODYxYjQwMDkzMjAwYTMzCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjIzOjUwIDIwMDcgKzAxMDAKCiAgICBSZW5hbWUgQ09ORklHX0NNRF9NVVggdG8gQ09ORklHX0NNRF9BVDkxX1NQSU1VWAoKY29tbWl0IDgxYjczZGVjMTZmZDEyMjczNjlhMTkxZTcyNWUxMDA0NGE5ZDU2YjgKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxNToyMTo0NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiAoUmUtKUVuYWJsZSBDT05GSUdfUENJX1BOUCBvbiBBTUNDIDQ0MEVQeCBTZXF1b2lhCgogICAgVGhlIDQ0MEVQeCBoYXMgYSBwcm9ibGVtIHdoZW4gdGhlIFBDSV9DQUNIRV9MSU5FX1NJWkUgcmVnaXN0ZXIgaXMKICAgIHNldCB0byBub24temVybywgYmVjYXVzZSBpdCBkb2Vzbid0IHN1cHBvcnQgTVJNIChtZW1vcnktcmVhZC0KICAgIG11bHRpcGxlKSBjb3JyZWN0bHkuIFdlIG5vdyBhZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gY29uZmlndXJlCiAgICB0aGlzIHJlZ2lzdGVyIGluIHRoZSBib2FyZCBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZQogICAgb2YgOCBjYW4gYmUgb3ZlcnJpZGRlbi4KCiAgICBIZXJlIHRoZSBkZXRhaWxzIG9mIHRoaXMgcGF0Y2g6CgogICAgbyBkcml2ZXJzX3BjaV9hdXRvLmM6IGludHJvZHVjZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSB0byBhbGxvdwogICAgICBib2FyZC1zcGVjaWZpYyBzZXR0aW5ncy4gQXMgYW4gZXhhbXBsZSB0aGUgc2VxdW9pYSBib2FyZCByZXF1aXJlcyAwLgogICAgICBJZGVhIGZyb20gU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPi4KICAgIG8gYm9hcmQvYW1jYy9zZXF1b2lhL2luaXQuUzogYWRkIGEgVExCIG1hcHBpbmcgYXQgMHhFODAwMDAwMCBmb3IgdGhlCiAgICAgIFBDSSBJTy1zcGFjZS4gT2J0YWluZWQgZnJvbSBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+LgogICAgbyBpbmNsdWRlL2NvbmZpZ3Mvc2VxdW9pYS5oOiB0dXJuIENPTkZJR19QQ0lfUE5QIGJhY2sgb24gYW5kIHNldAogICAgICBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSB0byAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwMTc0NzQ2YzY2OGIzMDkzNzhhOTE0ODhkZGVkODk4ZTk1NTNlYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDMxIDEwOjAxOjUxIDIwMDcgKzAyMDAKCiAgICBGaXggVEZUUCBPQUNLIGNvZGUgZm9yIHNob3J0IHBhY2tldHMuCgogICAgVGhlIG9sZCBjb2RlIGhhZCBhIGxvb3AgbGltaXQgb3ZlcmZsb3cgYnVnIHdoaWNoIGNhdXNlZCBhIHNlbWktCiAgICBpbmZpbml0ZSBsb29wIGZvciBzbWFsbCBwYWNrZXRzLCBiZWNhdXNlIGluICJpPGxlbi04IiwgImkiIHdhcyBzaWduZWQsCiAgICBidXQgImxlbiIgd2FzIHVuc2lnbmVkLCBhbmQgImxlbi04IiBiZWNhbWUgYSBodWdlIG51bWJlciBmb3Igc21hbGwKICAgIHZhbHVlcyBvZiAibGVuIi4KCiAgICBUaGlzIGlzIGEgd29ya2Fyb3VuZCB3aGljaCByZXBsYWNlcyBicm9rZW4gY29tbWl0IDhmMWJjMjg0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjk2ZGQxMzA3Y2Q4ZTczYTEwZTliYjNjNTE3MzFiZmQ2ZjgzN2JlZQpBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTU6MDM6MDUgMjAwNyArMDIwMAoKICAgIFJlZHVjZSBCT09UREVMQVkgdmFyaWFibGUgdG8gMSBzZWNvbmQgYnkgZGVmYXVsdCBmb3IgU1RLMTAwMgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjODhiNmUxY2JmOWE4YWUyYTM0ZmI2MDJmNzhhMWJmNGU2NjkyYjZhCkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxNTowMzowNCAyMDA3ICswMjAwCgogICAgUmVtb3ZlIGRvdWJsZSBxdW90YXRpb24gbWFya3MgYXJvdW5kIE1BQyBhZGRyZXNzIGZvciBTVEsxMDAyCgogICAgU2lnbmVkLW9mZi1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZmMTNhYzhjN2JiZWJiMjM4ZTMzOTU5MmRlNzY1YzU0NmRiYTEwNzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDE0OjQyOjE1IDIwMDcgKzAyMDAKCiAgICBCYWNrb3V0IGNvbW1pdCA4ZjFiYzI4NCBhcyBpdCBjYXVzZXMgVEZUUCB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTkwMGZiZjI1NWFjYmE4Yjk0ZmI0NDJhMTY0MDhlYTg1YTFkNDZhNgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMDI6MjY6MTcgMjAwNyAtMDUwMAoKICAgIFJldmVydCAiRml4IE1QQzg1NDREUyBQQ0llMyBzY3NpLiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDk0NjhlNjgwLgogICAgQ29tbWl0IDE2ZTIzYzNmNWRhIHJlbW92aW5nIGFsbG9jYXRpb24gb2YgUENTUkJBUiBpcyBzdWZmaWNpZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGYxYmMyODQwOGRlZDIxMzQxOGQ5YmMwNzgwYzdkOGZiOGEwMzc3NApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJV2VkIEF1ZyAyOSAxODoyNjoyNCAyMDA3IC0wNjAwCgogICAgdGZ0cDogZG9uJ3QgaW1wbGljaXR5IHRydXN0IHRoZSBmb3JtYXQgb2YgcmVjZXZpZWQgcGFja2V0cwoKICAgIFRoZSBURlRQIE9BQ0sgY29kZSB0cnVzdHMgdGhhdCB0aGUgaW5jb21pbmcgcGFja2V0IGlzIGZvcm1hdGVkIGFzCiAgICBBU0NJSSB0ZXh0IGFuZCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHN0cmluZyBmdW5jdGlvbnMuIEl0IGFsc28gaGFzIGEKICAgIGxvb3AgbGltaXQgb3ZlcmZsb3cgYnVnIHdoZXJlIGlmIHRoZSBwYWNrZXQgbGVuZ3RoIGlzIGxlc3MgdGhhbiA4LCBpdAogICAgZW5kcyB1cCBsb29waW5nIG92ZXIgKmFsbCogb2YgbWVtb3J5IHRvIGZpbmQgdGhlICdibGtzaXplJyBzdHJpbmcuCgogICAgVGhpcyBwYXRjaCBzb2x2ZXMgdGhlIHByb2JsZW0gYnkgZm9yY2luZyB0aGUgcGFja2V0IHRvIGJlIG51bGwKICAgIHRlcm1pbmF0ZWQgYW5kIHVzaW5nIHN0cnN0cigpIHRvIHNlYXJjaCBmb3IgdGhlIHN1YiBzdHJpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA0NjI1NzY0Y2M5M2NlOGE2MTYyNWFjMTlkN2ZlMmEyY2VlZTgxNDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTY6MzE6MTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIGx3bW9uNSBkZWZhdWx0IGVudmlyb25tZW50IHRvIHN1cHBvcnQgTGludXggUlRDCgogICAgVGhlIExpbnV4IFBDRjg1NjMgUlRDIGRyaXZlciBkb2Vzbid0IGRvIGF1dG9wcm9iaW5nLCBzbyB3ZSBuZWVkCiAgICB0byBzdXBwbHkgdGhlIFJUQyBJMkMgYWRkcmVzcyBhcyBib290bGluZSBwYXJhbWV0ZXIuIFRoaXMgcGF0Y2gKICAgIGFkZHMgc3VwcG9ydCBmb3IgdGhpcyBydGMgcHJvYmluZyBwYXJhbWV0ZXIgdG8gdGhlIGJvb3RhcmdzOgoKICAgICJydGMtcGNmODU2My5wcm9iZT0wLDB4NTEiCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MDJhNWM0MGFlMzdhYjk2NWE0ZTI0MDg1NGZkYWZmYjUxMzI4YTQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDI5IDA5OjA2OjA1IDIwMDcgLTA1MDAKCiAgICBzYmM4NjQxOiByZW1vdmUgdW51c2VkIE9GX0ZMQVRfVFJFRV9NQVhfU0laRQoKICAgIHRoaXMgaGFkIHNsaXBwZWQgdGhyb3VnaCB0aGUgY3JhY2tzLCBzaW5jZSB0aGUgc2JjIGJvYXJkIHdhcyBhZGRlZAogICAgYWZ0ZXIgSSB3cm90ZSB0aGUgb3JpZ2luYWwgcGF0Y2ggdG8gcmVtb3ZlIGFsbCB0aGVzZSBzeW1ib2xzLCBhbmQKICAgIGJlZm9yZSBpdCB3YXMgbWVyZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzViZGVkM2M4OGU0OGFlNjQ4YTc1ZDM1N2RjODFhODI1NWZhODFmMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTQ6MDU6MzAgMjAwNyArMDIwMAoKICAgIEFkZCBtaWlfaW5pdCgpIHByb3RvdHlwZQoKICAgIHRvIGdldCByaWQgb2YgYSAqbG90KiBvZiBjb21waWxlciB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJkMWYyM2FhMWU3NGU0YThmOGZmYTY3ZjI0NmViOThjNTIyZGZkN2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDEzOjM1OjAzIDIwMDcgKzAyMDAKCiAgICBEaXNhYmxlIG5ldHdvcmsgc3VwcG9ydCBvbiBjbWlfbXBjNXh4IGJvYXJkCgogICAgLi5iZWNhdXNlIGl0IGNhdXNlZCBjb21waWxlciBlcnJvcnMgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIG5vCiAgICBib2FyZCBtYWludGFpbmVyIHRvIHRha2UgY2FyZSBvZiB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTQ2OGU2ODA0YjdlMjViMGY2ZjUyZTUzZjQ3YmNlMzE3NTQwMGExNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBdWcgMjAgMDk6NDQ6MDAgMjAwNyAtMDUwMAoKICAgIEZpeCBNUEM4NTQ0RFMgUENJZTMgc2NzaS4KCiAgICA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CgogICAgVGhlIHByb2JsZW0gaXMgcGNpYXV0b19zZXR1cF9kZXZpY2UoKSBnZXR0aW5nIGNhbGxlZCBmcm9tIGZzbF9wY2lfaW5pdC5jCiAgICBpcyBhbGxvY2F0aW5nIG1lbW9yeSBzcGFjZSBpdCBkb2Vzbid0IG5lZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YmY0YWJiOGE0ZTk5NTU1NTZiMTIwYTFhYWZhMzBjMDNlNzQwMzJhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMSAwOTozODo1OSAyMDA3IC0wNTAwCgogICAgODU0OGNkcyBmaXhlcwoKICAgIFJlc3RvcmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUyBkZWZpbml0aW9uIHdoaWNoIGNvbnRhaW5zIHRoZQogICAgY29ycmVjdCBjb25zb2xlZGV2IG5lZWRlZCBmb3IgbGludXggYm9vdC4KICAgIFN0YW5kYXJkaXplIG9uIGZkdHtmaWxlLGFkZHJ9IHZhciB0byBob2xkIGR0YiBmaWxlIG5hbWUuCgogICAgU2V0IFBDSSBpbmJvdW5kIG1lbW9yeSByZWdpb24gZnJvbSBDRkdfTUVNT1JZX3tCVVMsUEhZU30uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YTFhYzQxOWZhMGQyZDIzZGRkMDhiZDYxZDE2ODk2YTlmMzNjOTMzCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyMyAxNToyMDo1NCAyMDA3IC0wNDAwCgogICAgRW5hYmxlIEwyIGNhY2hlIGZvciBNUEM4NTY4TURTIGJvYXJkCgogICAgVGhlIEwyIGNhY2hlIHNpemUgaXMgNTEyS0IgZm9yIDg1NjgsIHByaW50IG91dCB0aGUgY29ycmVjdCBpbmZvcm1haXRvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk0YzQ3ZmRhZjE0Y2IyOWZhM2ZiNGQ0ZGEyZWZkZDk2YzgwM2I0NmIKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIyIDE3OjU0OjQ5IDIwMDcgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGJpb3MgZW11bGF0b3IgYmluYXJ5IGZpbGVzIGZyb20gTUFJIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjA4ZDc1ZjljODdjOWViNWIzYTQzMjE5ZDA1MDZkM2U5NzlhMTNmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMSAxNzowMDoxNyAyMDA3IC0wNTAwCgogICAgc3VwcG9ydCBib2FyZCB2ZW5kb3ItY29tbW9uIG1ha2VmaWxlcwoKICAgIGlmIGEgYm9hcmQvJChWRU5ET1IpL2NvbW1vbi9NYWtlZmlsZSBleGlzdHMsIGJ1aWxkIGl0LgoKICAgIGFsc28gYWRkIHRoZSBmaXJzdCBzdWNoIGNhc2UsIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUsIHRvCiAgICBoYW5kbGUgYnVpbGRpbmcgYm9hcmQtc2hhcmVkIEVFUFJPTSwgUElYSVMsIGFuZCBNRFMtUElCIGNvZGUsIGFzCiAgICBkaWN0YXRlZCBieSBib2FyZCBjb25maWd1cmF0aW9uLgoKICAgIHRodXNseSBnZXQgcmlkIG9mIGFsdGVybmF0ZSBidWlsZCBkaXIgZXJyb3JzIHN1Y2ggYXM6CgogICAgRkFUQUw6IGNhbid0IGNyZWF0ZSAvd29yay93ZC90bXAvdS1ib290LXBwYy9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvLi4vY29tbW9uL3BxLW1kcy1waWIubzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQoKICAgIGJ5IHB1dHRpbmcgdGhlIGNvbW1vbi8gbWtkaXIgY29tbWFuZCBpbiBpdHMgcHJvcGVyIHBsYWNlICh0aGUgY29tbW9uCiAgICBNYWtlZmlsZSkuIENvbW1vbiBiaXRzIGZyb20gZXhpc3RpbmcgaW5kaXZpZHVhbCBib2FyZCBNYWtlZmlsZXMgaGF2ZQogICAgYmVlbiByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWY4ZjIwNzUyNzEyZGMxY2RiZDg2ZjQ3ZTNiZDZlMzVmODFjODNmZApBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE1OjUyOjMzIDIwMDcgKzAyMDAKCiAgICBGaXg6IFRGVFAgaXMgbm90IHdvcmtpbmcgb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zCgogICAgVEZUUCBkb2VzIG5vdCB3b3JrIGFueW1vcmUgYWZ0ZXIgbXVsdGljYXN0IHRmdHAKICAgIHBhdGNoIHdhcyBhcHBsaWVkIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcy4KICAgIFRoaXMgcGF0Y2ggZml4IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDVmNDcwOTQ4NTcwNTI2ZTkxODZmMDUzYTMwMDNkYTc3MTk2MDRlOTAKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNTo1MDozMyAyMDA3ICswMjAwCgogICAgRml4IE1BQyBhZGRyZXNzIHNldHRpbmcgaW4gRE05MDAwIGRyaXZlci4KCiAgICBUaGUgbG9naWMgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYSBjb3JyZWN0IE1BQyBhZGRyZXNzIGluIHRoZSBETTkwMDAKICAgIEVFUFJPTSwgYWRkZWQgaW4gdGhlIGxhc3QgcGF0Y2gsIGlzIHdyb25nLiBOb3cgdGhlIE1BQyBhZGRyZXNzIGlzCiAgICBhbHdheXMgdGFrZW4gZnJvbSB0aGUgZW52aXJvbm1lbnQsIGV2ZW4gaWYgYSBzdWl0YWJsZSBNQUMgaXMgcHJlc2VudAogICAgaW4gdGhlIEVFUFJPTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA0YTg1MjdlZjA4NmVjN2M4OWY0MDY3NGVmMDI0YWU2Zjk4OGE2MTRhCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTI6NDA6MzQgMjAwNyArMDIwMAoKICAgIE1QQzV4eHg6IGZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzIGluIFVTQiBjb2RlCgogICAgRml4IHRoZSBmb2xsb3dpbmcgd2FybmluZ3M6CiAgICAtIHVzYi5jOnh4OiB3YXJuaW5nOiBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpc24ndCBhIHByb3RvdHlwZQogICAgLSB1c2Jfb2hjaS5jOnh4eDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAxIG9mICdfX2Zzd2FiMzInIG1ha2VzIGludGVnZXIKICAgICAgZnJvbSBwb2ludGVyIHdpaHRvdXQgYSBjYXN0CgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXNlQHRxcy5kZT4KCmNvbW1pdCAxNmUyM2MzZjVkYWI2OTM3ZjUxMDkzNjU0MTY4MDhjN2YxNWMxMjJiCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAyMzo1NTozMyAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IC0gUmVtb3ZlIHNlbGYgUENTUkJBUiBhbGxvY2F0aW9uCgogICAgQ1BVIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2Ugd2FzIGJlaW5nIHdhc3RlZCBieSBhbGxvY2F0aW5nIGEKICAgIFBDU1JCQVIgUENJIGluYm91bmQgcmVnaW9uIHRvIGl0J3MgbWVtb3J5IHNwYWNlLgoKICAgIEFzIGEgcnVsZSwgUENTUkJBUiBzaG91bGQgYmUgbGVmdCBhbG9uZSBzaW5jZSBpdCBkb2VzIG5vdCBhZmZlY3QKICAgIHRyYW5zYWN0aW9ucyBmcm9tIHNlbGYgYW5kIG90aGVyIG1hc3RlcnMgbWF5IGhhdmUgY2hhbmdlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlNzAwY2UwM2EyM2JiMTkyMTE0OWJjNzcwMDhhY2U3MTAzZDUyODkKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEF1ZyAyMCAxMzo1Njo0NyAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gaW5jbHVkZS9zM2MyNDEwLmgKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSAidHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVjdGlvbiByZXR1cm4gdHB5ZSIKICAgIHdhcm5pbmcgZm9yIGluY2x1ZGUvczNjMjQxMC5oCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWJiOGIyMDllZDIwNThhNTc1NmVjYmViNTQ0YzA2N2U0NGE0MmFlYQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMDc6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBmb3Igb21hcDI0MjBoNF9jb25maWcuCgogICAgb21hcDI0MjBoNCBzd2l0Y2hlZCB0byBjZmksIHNvIHJlbW92ZSBvbGQgKGFscmVhZHkgZGlzYWJsZWQpIGZsYXNoLmMKICAgIGFuZCBmbGFzaF9wcm9iZSgpIGNhbGxzIGluIGVudl9mbGFzaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDNiYjM0MmZjODVkNzlkYmI2YjhjMjAzOWU3Y2RjZGRjODJiOGQ5MGYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE0OjM0OjE0IDIwMDcgLTA1MDAKCiAgICBmZHQ6IHJlbW92ZSB1bnVzZWQgT0ZfRkxBVF9UUkVFX01BWF9TSVpFIHJlZmVyZW5jZXMKCiAgICBhbmQgbWFrZSBzb21lIG1pbm9yIGNvcnJlY3Rpb25zIHRvIHRoZSBGRFQgcGFydCBvZiB0aGUgUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmFmMmVlYjFlOTljMmRjYzU4NGQ0YzVhYjdmY2FlMzBhMzI1ZjRkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMDE6MzI6MDUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTg2MTU1OGM2NWY2NWYxY2YxMzAyZjNhMzVlOWRiNzY4NmI5ZTFhMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyOCAxNzo0MDozMyAyMDA3ICswMjAwCgogICAgW1VDMTAxXSBGaXg6IGlmIG5vIENGIGluIHRoZSBib2FyZCwgVS1Cb290IHJlc2V0cyBzb21ldGltZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZjk4OTg0Y2IxOTRiYjM0ZGJlMWRiOTQyOWQzYjUxMTMzYWYzMGQwNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyOCAxNzozOToxNCAyMDA3ICswMjAwCgogICAgSURFOgktIG1ha2UgaWRlX2luYiAoKSBhbmQgaWRlX291dGIgKCkgIndlYWsiLCBzbyBib2FyZHMgY2FuCgkgICAgICBkZWZpbmUgdGhlcmUgb3duIEkvTyBmdW5jdGlvbnMuCgkgICAgICAoTmVlZGVkIGZvciB0aGUgcGNzNDQwZXAgYm9hcmQpLgoJICAgIC0gVGhlIGRlZmF1bHQgSS9PIEZ1bmN0aW9ucyBhcmUgYWdhaW4gOCBCaXQgYWNjZXNzZXMuCgkgICAgLSBBZGRlZCBDT05GSUdfQ01EX0lERSBmb3IgdGhlIHBjczQ0MGVwIEJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDJjMDVmZDEyNTc0NDk4MWU1ZjI4MjhkMjRlNjZjY2MyMGE3N2QyNWQKQXV0aG9yOiBTZW1paCBIYXphciA8c2VtaWguaGF6YXJAaW5kZWZpYS5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMTk6MDA6MDEgMjAwNyArMDMwMAoKICAgIEFWUjMyOiBDaGFuZ2UgcHJvdG90eXBlIG9mIG1lbXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbWloIEhhemFyIDxzZW1paC5oYXphckBpbmRlZmlhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDljMDJkZWZjMjliNTc5NDViNjAwNzE0Y2Y2MWRkZmQwMmIwMmZiMTQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVNhdCBBdWcgMjUgMDU6MDc6MTYgMjAwNyArMDIwMAoKICAgIFBPU1Q6IGxpbWl0IG1lbW9yeSB0ZXN0IGFyZWEgdG8gbm90IHRvdWNoIGdsb2JhbCBkYXRhIGFueW1vcmUKCiAgICBBcyBleHBlcmllbmNlZCBvbiBsd21vbjUsIG9uIHNvbWUgYm9hcmRzIHRoZSBQT1NUIG1lbW9yeSB0ZXN0IGNhbgogICAgY29ycnVwdCB0aGUgZ2xvYmFsIGRhdGEgYnVmZmVyIChiZCkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZQogICAgYnkgY2hlY2tpbmcgYW5kIGxpbWl0aW5nIHRoaXMgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzVlMWE4NGQ0ODNlMzZiZTEwZTIwNmU1MzliMDI4YzQ4ODllMTE1OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyNCAxNTo0MTo0MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgUlRDIFBPU1QgdGVzdCB0byBsd21vbjUgYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIFNpbmNlIHRoaXMgUlRDIFBPU1QgdGVzdCBpcyB0YWtpbmcgcXVpdGUgYSB3aGlsZSB0byBjb21wbGV0ZQogICAgaXQncyBvbmx5IGluaXRpYXRlZCB1cG9uIHNwZWNpYWwga2V5cHJlc3Mgc2FtZSBhcyB0aGUgY29tcGxldGUKICAgIG1lbW9yeSBQT1NULgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkN2JmYTYyMDAzN2E2ZDIyMTAxNTkzODc1NzFiZGY5M2FhMzJjMTYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDI0IDE1OjE5OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBHUElPIHNpZ25hbCBmb3Igd2F0Y2hkb2cgdHJpZ2dlcmluZyBvbiBsd21vbjUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzI1ZGQ4ZmMyNWU5Y2EzNjk1ZGI5OTZhMjU3ZDliYTRkYWI0MTRkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyMyAxMTowMjozNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3VwcG9ydCBmb3IgMm5kIEkyQyBFRVBST00gb24gbHdtb241IGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSAybmQgRUVQUk9NIChBVDI0QzEyOCkgb24gdGhlIGx3bW9uNQogICAgYm9hcmQuIE5vdyB0aGUgImVlcHJvbSIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byByZWFkL3dyaXRlIGZyb20vdG8gdGhpcwogICAgZGV2aWNlLiBBZGRpdGlvbmFsbHkgYSBuZXcgY29tbWFuZCB3YXMgYWRkZWQgImVlcHJvbXdwIiB0byBlbi0vZGlzYWJsZQogICAgdGhlIHdyaXRlLXByb3RlY3Qgb2YgdGhpcyAybmQgRUVQUk9NLgoKICAgIFRoZSAxc3QgRUVQUk9NIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIHdyaXRlLXByb3RlY3QgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY0ZmIzMGU0YzU5NzYwMDdkNTZmYzE3ODljN2EwNjY2MDgyYjUzNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyMiAwODo1NjowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIG9wdGlvbiBDRkdfSU5JVF9SQU1fT0NNCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhZDYzODc4NzM3YTVhMmIxZTYwODI1YmYwYTdkNjAxZDdhNjk1ZTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTY6Mjc6NTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG1hdHJpeCBrYmQgc3VwcG9ydCB0byBsd21vbjUgYm9hcmQgKDQ0MEVQeCBiYXNlZCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG1hdHJpeCBrZXlib2FyZCBvbiB0aGUgbHdtb241IGJvYXJkLgogICAgU2luY2UgdGhlIGltcGxlbWVudGF0aW9uIGluIHRoZSBkc1BDSSBpcyBraW5kIG9mIGNvbXBhdGlibGUgd2l0aCB0aGUKICAgICJvbGQiIGx3bW9uIGJvYXJkLCBtb3N0IG9mIHRoZSBjb2RlIGlzIGNvcGllZCBmcm9tIHRoZSBsd21vbgogICAgYm9hcmQgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZTY2YzA3ODAwMzYwN2E3ZDFkMjE0YzE1YTVmMjYyYmMxYjQwMzJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxOSAxMDoyNzozNCAyMDA3ICswMjAwCgogICAgRml4IHNvbWUgYnVpbGQgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDU2NzU3MzVlZjc3ZGMyM2I1ZTBlYjc4MmJhZDFmZjQ3N2I1NWU4NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMjI6MDA6MzggMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgNzlmMjQwZjdlY2MwNTA2YjQzYWM1MGQxZWE0MDVmZjY1NDBkNGQ1NwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6MzkgMjAwNyAtMDUwMAoKICAgIGxpYl9wcGM6IG1ha2UgYm9hcmRfYWRkX3JhbV9pbmZvIHdlYWsKCiAgICBwbGF0Zm9ybXMgd2lzaGluZyB0byBkaXNwbGF5IFJBTSBkaWFnbm9zdGljcyBpbiBhZGRpdGlvbiB0byBzaXplLAogICAgY2FuIGRvIHNvLCBvbiBvbmUgbGluZSwgaW4gdGhlaXIgb3duIGJvYXJkX2FkZF9yYW1faW5mbygpCiAgICBpbXBsZW1lbnRhdGlvbi4KCiAgICB0aGlzIGNvbnNlcXVlbnRseSBlbGltaW5hdGVzIENPTkZJR19BRERfUkFNX0lORk8uCgogICAgVGhhbmtzIHRvIFN0ZWZhbiBmb3IgdGhlIGhpbnQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MTViNWJkNWIxODU2OTkxN2MzZTA0Yjk3NTc1MTFlNmVkMjNiOWY2CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDE3IDEyOjQzOjQ0IDIwMDcgKzA5MDAKCiAgICBQQ0lfUkVBRF9WSUFfRFdPUkRfT1A6IEZpeCAqdmFsIHVuaW5pdGlhbGl6ZWQgYnVnCgogICAgVGhpcyBwYXRjaCBoYXMgYmVlbiBzZW50IG9uOgogICAgLSA2IEp1biAyMDA3CgogICAgTWFueSB1c2VycyBvZiBQQ0kgY29uZmlnIHJlYWQgcm91dGluZXMgdGVuZCB0byBpZ25vcmUgdGhlIGZ1bmN0aW9uCiAgICByZXQgdmFsdWUsIGFuZCBhcmUgb25seSBjb25jZXJuZWQgYWJvdXQgdGhlIGNvbnRlbnRzIG9mICp2YWwuIEJhc2VkCiAgICBvbiB0aGlzLCBwY2lfaG9zZV9yZWFkX2NvbmZpZ197Ynl0ZSx3b3JkfV92aWFfZHdvcmQgc2hvdWxkIGluaXRpYWxpemUKICAgIHRoZSAqdmFsIG9uIGR3b3JkIHJlYWQgZXJyb3IuCgogICAgV2l0aG91dCB0aGlzIGZpeCwgZm9yIGV4YW1wbGUsIHdlJ2xsIGdvIG9uIHNjYW5uaW5nIGJ1cyB3aXRoIHZlbmRvciBvcgogICAgaGVhZGVyX3R5cGUgdW5pbml0aWFsaXplZC4gVGhpcyBicmluZ3MgbWFueSB1bm5lY2Vzc2FyeSBjb25maWcgdHJpYWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAyNjY2N2I3ZmEwNWE4YmYyZmM2NWZiOWYzMjMwYjAyYjFhMTBjMzY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDE0OjM3OjUyIDIwMDcgKzAyMDAKCiAgICBDb2xkRmlyZTogRml4IHNvbWUgcmVtYWluaW5nIHByb2JsZW1zIHdpdGggQ0ZHX0NNRF8KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODI4MGY2YTFjNDMyNDc2MTZiNjgyMjQ2NzUxODhlNWNjZDEyNDY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAxNDozMzowMiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGE0NDJkMzE4NmIzMTg5M2I0Zjc3YzZlODJmNjNjNDUxN2E1MjI0YgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxOToyMzo1MCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTIzNUVWQiBQbGF0Zm9ybSBmb3IgTUNGNTIzeAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0Y2MxY2Q1OTQxODI3YTA0Y2Y1YzUxYTA3ZmNjNDJlODk0NTg5NGFhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAwOTozMDowMCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IHR5cG8gaW4gRERSMiBwcm9ncmFtbWluZwoKICAgIGludHJvZHVjZWQgaW4gdGhlIGltcGxlbWVudCBib2FyZF9hZGRfcmFtX2luZm8gcGF0Y2ggYXMgSSB3YXMgY2xlYW5pbmcgb3V0IHRoZQogICAgbWFnaWMgbnVtYmVycy4gIHNvcnJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU4ZmU5NTc4NGQyNTE0ZmM5YzIxMDI4ZGM1OWYyYjMxOWEzNWQ4MApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTM6MDkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1vdmUgZnJlZXNjYWxlIGJvYXJkcyB0byBib2FyZHMvZnJlZXNjYWxlCgogICAgaW5jbHVkZXMgYnVpbGQgZml4ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YWE0YWQ4ZDhlN2U5NDY4MjE5OTkwYzc4NzVkNWZkYzllOTYyZjQ3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1Mjo1OSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlICd2YWw4JyB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmVhNDZmNzZmNzY3YjkxOTA3MGI0ODI5YmYzNGM4NmJkMjIzMjQ4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1Mjo0OCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogaW1wbGVtZW50IGJvYXJkX2FkZF9yYW1faW5mbwoKICAgIGFkZCBib2FyZF9hZGRfcmFtX2luZm8sIHRvIG1ha2UgbWVtb3J5IGRpYWdub3N0aWMgb3V0cHV0IG1vcmUKICAgIGNvbnNpc3RlbnQuIHUtYm9vdCBiYW5uZXIgb3V0cHV0IG5vdyBsb29rcyBsaWtlOgoKICAgIERSQU06ICAyNTYgTUIgKEREUjEsIDY0LWJpdCwgRUNDIG9uKQoKICAgIGFuZCBmb3IgYm9hcmRzIHdpdGggU0RSQU0gb24gdGhlIGxvY2FsIGJ1cywgYSBsaW5lIHN1Y2ggYXMgdGhpcyBpcwogICAgYWRkZWQ6CgogICAgU0RSQU06IDY0IE1CIChsb2NhbCBidXMpCgogICAgYWxzbyByZXBsYWNlZCBzb21lIG1hZ2ljIG51bWJlcnMgd2l0aCB0aGVpciBlcXVpdmFsZW50IGRlZmluZSBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0Nzc4NTg1ZDEzODlkODZkNTg0NmVmZWMyOWU1ZmNlODkyNjgwY2UKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMTA6MzU6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFNwbGl0IFBJQiBpbml0IGNvZGUgZnJvbSBwY2kuYyBhbmQgYWRkIFFvYzMgQVRNIGNhcmQgc3VwcG9ydAoKICAgIFRoZSBwYXRjaCBzcGxpdCB0aGUgUElCIGluaXQgY29kZSBmcm9tIHBjaS5jIHRvIGEgc2luZ2xlIGZpbGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9wcS1tZHMtcGliLmMKICAgIEFuZCBhZGQgUW9jMyBBVE0gY2FyZCBzdXBwb3J0IGZvciBNUEM4MzYwRU1EUyBhbmQgTVBDODMyWEVNRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieSBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFlMTU4Y2Q4N2E0YTI1NzIyYjI3ODM1MjYxYjZmZjBmYTJhYTZhNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNTowNToxMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTQ0NTVFVkIgZm9yIE1DRjU0NDV4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGExNDM2YTg0MjY1NGE4ZDM5MjdkMDgyYThhZTllZTBhMTBkYTYyZDcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTM6MjA6NTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyNTNFVkJFIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE2MDVhYWNkODMyNDA5NDE5OTQwMjgxNmNjNmQ5MTI0YWJhNTdiOGQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMDU6MDQ6MzEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyNDlFVkIgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjI4ZTFiZDlkYWE2ZGU1ZWIzM2FlNDgyMmJkYTZiMDA4Y2NiNGU5ZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDozMjowNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBGcmVlc2NhbGUgTUNGNTJ4MiBwbGF0Zm9ybXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODcwNDcwZGJmNmY0YmI5ODY0ZTBkOTdhZWVkYmMxN2MxNjdjNmQxYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo1NToxMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBFQitNQ0YtRVYxMjMgcGxhdGZvcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWE5M2Q4NTlkOWIxZmNkOGVlYTUyZDUxYjA2ZTg2YzM4ZjcyMTExYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0NjozOCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IHVwZGF0ZSBUQVNSRUcgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTk1MDU1MTBiZjU2YTliNTU1ODI0OGRkOGI3M2VjOWQ5YTE1NTZhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0NTo1MSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IHVwZGF0ZSByNTIwMCBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2Y2ZkM2M3YmM4MTNmYjMxN2FiN2MwNzgxZjBkMTg3NGIxYzA4NzdjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQzOjIwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogaWRtciBwbGF0Zm9ybSBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzA2NDI0ZDBiYjg1MWZiNTJhZjAwY2QxYzMzMDFlOTFlZTdmMmIwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQxOjA2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogY29icmE1MjcyIHBsYXRmb3JtIGZvciBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NjExNTY2NWI0YTY0YzEwYzAxNDQwYzU3NzQ5YjI2NWUwOTA4ZmE0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjM4OjE1IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTJ4MiBIZWFkZXIgZmlsZXMgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzZWMyMGJjNDM4MGVlYmRkZmRlNDVkYTZlM2E2OWE5MmQ0ZGIyMWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6MjE6MjEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTJlNzgzMDRkY2MwYWM0NTljMGVhMWZhNWJlMjc1YzdkMTY0MmNmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE4OjQ2OjExIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSB1cGRhdGUgY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzE3MTk3N2ZiOGZkNzdjZmI2Njc2OTUzZmE5YTA1Nzg5YzQ1MDUxMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTo0MDoyMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgaGVhZGVyIGZpbGUgY2xlYW4gdXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWI3N2JjNTQ3YmE1NjFjMjVlYTM0NDU3ZWQxN2FhMGIyZjdjMjcyMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTozOToxNyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgVXBkYXRlIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwMzI3ZGM1NTQxZjk0N2MwY2Y3ZTMxZmVmODZjNDcwNjE2OTYwN2EKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTY6MzU6MDIgMjAwNyAtMDUwMAoKICAgIEFkZCBDT05GSUdfSEFTX0VUSDAgdG8gYWxsIGJvYXJkcyB3aXRoIFRTRUMKCiAgICBUaGUgODV4eCBjb2RlIG5vdyByZWxpZXMgb24gQ09ORklHX0hBU19FVEgwIHRvIGRldGVybWluZSB3aGV0aGVyCiAgICB0byB1cGRhdGUgVFNFQzEncyBkZXZpY2UtdHJlZSBub2RlLCBzbyB3ZSBuZWVkIHRvIGFkZCBpdAogICAgdG8gYWxsIHRoZSBib2FyZHMgd2l0aCBUU0VDcy4gIERvIHRoaXMgZm9yIDgzeHggYW5kIDg2eHgsIHRvbywKICAgIHNpbmNlIHRoZXkgd2lsbCBldmVudHVhbGx5IGRvIHNvbWV0aGluZyBzaW1pbGFyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNjRlZTkwOGExYjUyNWU1YmIyYjRjYmViNWM0NDlhZDZhNDY5NjY2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAxNiAxNTowNTowNCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIE1QQzg1NDQgRFMgUENJIG1lbW9yeSBtYXAKCiAgICBUaGUgUENJZSBidXMgdGhhdCB0aGUgVUxJIE0xNTc1IGlzIGNvbm5lY3RlZCB0byBoYXMgbm8gcG9zc2libGUgd2F5IG9mCiAgICBuZWVkaW5nIG1vcmUgdGhhbiB0aGUgZml4ZWQgYW1vdW50IG9mIElPICYgTWVtb3J5IHNwYWNlIG5lZWRlZCBieSB0aGUgVUxJLgoKICAgIFNvIG1ha2UgaXQgdXNlIGZhciBsZXNzIElPICYgbWVtb3J5IHNwYWNlIGFuZCBoYXZlIGl0IHVzZSB0aGUgc2hhcmVkIExBVy4gIFRoaXMKICAgIGZyZWUncyB1cCBhIExBVyBmb3IgUENJZTEgSU8gc3BhY2UuICBBbHNvIHJlZHVjZSB0aGUgYW1vdW50IG9mIElPIHNwYWNlIG5lZWRlZAogICAgYnkgZWFjaCBidXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlYTU4NzdlMzFlZDYzYWRlOTQ4ZmQxMjkzODk1ZWMyM2ZlMDE0NzJlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAxNiAxMTowMToyMSAyMDA3IC0wNTAwCgogICAgRml4IHVwIHNvbWUgZmR0IGlzc3VlcyBvbiA4NTQ0RFMKCiAgICBJdCBsb29rcyBsaWtlIHdlIGhhZCBhIG1lcmdlIGlzc3VlIHRoYXQgZHVwbGljYXRlZCBhIGJpdCBvZiBjb2RlCiAgICBpbiBmdF9ib2FyZF9zZXR1cC4JQWxzbywgd2UgbmVlZCB0byBzZXQgQ09ORklHX0hBU19FVEgwIHRvIGdldAogICAgdGhlIE1BQyBhZGRyZXNzIHByb3Blcmx5IHNldCBpbiB0aGUgZGV2aWNlIHRyZWUgb24gYm9vdCBmb3IgVFNFQzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDA3YmMyMDU2MGNiOWQzZDE4NmNjYTI2OGMwNWM4Mjc2MmU4YzU1YWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjE2OjAzIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81IGNsZWFudXAKCiAgICBNaW5vciBjbGVhbnVwcyB0byBjb25maXJtIHRvIHRoZSB1LWJvb3QgY29kaW5nIHN0eWxlLgogICAgU29tZSBnZXJtYW4gZXhwcmVzc2lvbnMgLT4gZW5nbGlzaC4KICAgIEhDVTUgZW5mb3JjZXMgYSB1bmlxdWUgSVAgYWRyZXNzIGZvciBhIGdpdmVuIHNsb3QgaW4gdGhlIHJhY2suCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxZTZiMDdjNjQ5NjdjMWViMmNkODRmYWE0YzMyYmYyYTc2OWJjOGViCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNToxNjowMiAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNSBjbGVhbnVwIGVjYy9zZHJhbSBpbml0CgogICAgTWFrZSBlY2MgaW5pdGlhbGlzYXRpb24gcm9idXN0LCBhcyBERFIyLUVDQyBlcnJvcnMgbWF5IGJlIGdlbmVyYXRlZAogICAgd2hpbGUgemVyb2luZyB0aGUgUkFNLgoKICAgIFJldHVybiAxNiBieXRlcyAoYSBjYWNoZWxpbmUpIGxlc3MgdGhhbiB0aGUgYXZhaWxhYmxlIG1lbW9yeSwgYXMgdGhlCiAgICBib2FyZCBhbmQvb3IgUFBDNDQwRVB4IG1pZ2h0IGhhdmUgcHJvYmxlbXMgYWNjZXNzaW5nIHRoZSBsYXN0IGJ5dGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZDM1YjUwOGE1NTUwODUzNWI2ZTg0NDViNzE4NTg1ZDI3ZGY3MzNkMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6Mjk6NTYgMjAwNyAtMDUwMAoKICAgIGZkdDogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlICdiZCcgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODJiZDllZTc3NDkwNTg4ZDRkYTc4NWQ3NTgyOWNhNjNkMDE3NmJhZgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowNjo1MCAyMDA3IC0wNTAwCgogICAgRml4IHdhcm5pbmdzIGZyb20gb2ZfZGF0YSBjb3B5IGZpeAoKICAgIEZvcmdvdCB0byBjYXN0IG9mX2ZsYXRfdHJlZSB0byB1bG9uZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYxM2FmZGE3N2Q1ZWVjMGY0N2QzMDMwMjViMGM2NjFiNzBlNGM3MwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzo0NCAyMDA3IC0wNTAwCgogICAgRG9uJ3Qgd2FpdCBmb3IgZGlzY29ubmVjdGVkIFRTRUNzCgogICAgVGhlIFRTRUMgZHJpdmVyJ3MgUEhZIGNvZGUgd2FpdHMgYSBsb25nIHRpbWUgZm9yIGF1dG9uZWdvdGlhdGlvbiB0bwogICAgY29tcGxldGUsIGV2ZW4gaWYgdGhlIGxpbmsgaXMgZG93bi4gIFRoZSBQSFkga25vd3MgdGhlIGxpbmsgaXMKICAgIGRvd24gb3IgdXAgYmVmb3JlIGF1dG9uZWdvdGlhdGlvbiBjb21wbGV0ZXMsIHNvIHdlIGNhbiBzaG9ydC1jaXJjdWl0CiAgICB0aGUgcHJvY2VzcyBpZiB0aGUgbGluayBpcyBkb3duLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTZjODNkNGFlNDc1YTcwZWYyNjM1Y2QwZTc0ODE3NGM0NGM4NjAxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjM0IDIwMDcgLTA1MDAKCiAgICBGaXggbnVtZXJvdXMgYnVncyBpbiB0aGUgODU2OCBVRUMgc3VwcG9ydAoKICAgIEFjdHVhbGx5LCBmaXhlZCBhIGxhcmdlIGJ1ZyBpbiB0aGUgVUVDIGZvciAqYWxsKiBwbGF0Zm9ybXMuCiAgICBIb3cgZGlkIHRoaXMgZXZlciB3b3JrPwoKICAgIHVlY19pbml0KCkgZGlkIG5vdCBmb2xsb3cgdGhlIHNwZWMgZm9yIGV0aF9pbml0KCksIGFuZCByZXR1cm5lZAogICAgMCBvbiBzdWNjZXNzLiAgU3dpdGNoIGl0IHRvIHJldHVybiB0aGUgbGluayBsaWtlIHRzZWNfaW5pdCgpCiAgICAoYW5kIDAgb24gZXJyb3IpCgogICAgVGhlIGltbWFwIGZvciB0aGUgODU2OCB3YXMgZGVmaW5lZCBiYXNlZCBvbiBNUEM4NTY4LCByYXRoZXIgdGhhbgogICAgQ09ORklHX01QQzg1NjgKCiAgICBDT05GSUdfUUUgd2FzIG9mZgoKICAgIENPTkZJR19FVEhQUklNRSB3YXMgc2V0IHRvICJGcmVlc2NhbGUgR0VUSCIuICBOb3cgaXMgIkZTTCBVRUMwIgoKICAgIEZpeGVkIGEgY29tbWVudCBhYm91dCB0aGUgcmFuZ2VzIGZvciBDT05GSUdfRVRIUFJJTUUgaWYgVFNFQ19FTkVUIGlzCiAgICBlbmFibGVkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNhNzkwMTNlMmFkZGE1MzMzMmRmZDBiNTExMDY2YTgwNWU5MjlhOWQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MjUgMjAwNyAtMDUwMAoKICAgIERlZmluZSB0c2VjIGZsYWcgdmFsdWVzIGluIGNvbmZpZyBmaWxlcwoKICAgIFRoZSB0c2VjX2luZm8gc3RydWN0dXJlIGFuZCBhcnJheSBoYXMgYSAiZmxhZ3MiIGZpZWxkIGZvciBlYWNoCiAgICBldGhlcm5ldCBjb250cm9sbGVyLiAgVGhpcyBmaWVsZCBpcyB0aGUgb25seSByZWFzb24gdGhlcmUgYXJlCiAgICBzZXR0aW5ncy4gIFN3aXRjaCB0byBkZWZpbmluZyBUU0VDbl9GTEFHUyBmb3IgZWFjaCBjb250cm9sbGVyCiAgICBpbiB0aGUgY29uZmlnIGhlYWRlciwgYW5kIHdlIGNhbiBncmVhdGx5IHNpbXBsaWZ5IHRoZSBhcnJheSwgYW5kCiAgICBhbHNvIHNpbXBsaWZ5IHRoZSBhZGRpdGlvbiBvZiBmdXR1cmUgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzcyMzgyMjk1MDdlN2Y0NzUzM2E2MTFlYThjNTMzMTlkMjM0Y2YzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjEzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgYWxsIGJvYXJkcyB3aXRoIGEgVFNFQwoKICAgIENoYW5nZXMgdG8gdGhlIFRTRUMgZHJpdmVyIGFmZmVjdCBhbG1vc3QgYWxsIDgzeHgsIDg1eHgsIGFuZCA4Nnh4IGJvYXJkcy4KICAgIE5vdyB3ZSBjYW4gZG8gYSBNQUtFQUxMIHRlc3Qgb24gYWxsIG9mIHRoZW0hCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwYWFmNzE2Y2IwZGM2NjE0ZGY1NGVmNzhiZWQ1MTQ0YWZkMjNlZjgKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTc6MzA6NTYgMjAwNyAtMDUwMAoKICAgIEZpeCBvZl9kYXRhIGNvcHlpbmcgZm9yIENPTkZJR19PRl9GTEFUX1RSRUUtdXNpbmcgYm9hcmRzCgogICAgVGhlIGZpeCwgIkZpeCB3aGVyZSB0aGUgI2lmZGVmIENGR19CT09UTUFQU1ogaXMgcGxhY2VkIgogICAgbmVnbGVjdGVkIHRvICphbHNvKiBwdXQgdGhlIGNvZGUgaW5zaWRlIHRoZSBzaW1pbGFyICNpZmRlZgogICAgZm9yIENPTkZJR19PRl9GTEFUX1RSRUUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc4ZjlmZWY3ZjQwNjA3OGM4YmY3MTkxZTY2NWE3M2Y3OTUxNTc3NDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTo0Njo0NiAyMDA3IC0wNTAwCgogICAgbXBjODg1YWRzOiBEb24ndCBkZWZpbmUgQ09ORklHX0JaSVAyLgoKICAgIGJ6aXAyIHJlcXVpcmVzIGEgc2lnbmlmaWNhbnQgY2h1bmsgb2YgbWFsbG9jIHNwYWNlLCBhbmQgdGhlcmUgaXNuJ3QKICAgIGVub3VnaCByb29tIG9uIG1wYzg4NWFkcyAod2l0aCBvbmx5IDhNQiBSQU0pIGZvciBib3RoIGJ6aXAyJ3MgbWFsbG9jIGFyZWEKICAgIGFuZCBhIGRvd25sb2FkZWQgaW1hZ2UgYXQgMHg0MDAwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDAyMjc1YTNlZDhiMTE0ODg1ZjY3MDJkNmQ1NDRkMDc4MGRmZTY4OQpBdXRob3I6IE1pY2hhbCBTaW1layA8TW9uc3RyQHNlem5hbS5jej4KRGF0ZToJVGh1IEF1ZyAxNiAwODo1NDoxMCAyMDA3ICswMjAwCgogICAgQmlvcyBlbXVsYXRvciAtIGZpeCBtaWNyb2JsYXplIHRvb2xjaGFpbiBwcm9ibGVtCgogICAgbWljcm9ibGF6ZSBDUFUgaGF2ZSBwcm9ibGVtIHdpdGggYmlvc19lbXVsYXRvciBjb2RlLgogICAgTWljcm9ibGF6ZSB0b29sY2hhaW4gZG9lc24ndCBzdXBwb3J0IFBSQUdNQSBQQUNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhNWEzOGY0ZmQ3ZTUzNjZkNzA2ZmY2YTk4NWY5YjY3MTVkZGJjOThiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMTo1MTowNCAyMDA3ICswMjAwCgogICAgTWlub3IgQ29kaW5nIFN0eWxlIGZpeDsgVXBkYXRlIENIQU5HRUxPRyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGZiNmU4MGMwNjg0OWUzMDEzYWM1YzkzNTBkOGVkOWU1Mjk2Nzk5MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMToyMTo0OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgI3dhcm5pbmcgaW4gZXNkIGF1dG9fdXBkYXRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmQ3ODA3NGQyZTgwNmVkYzM4MGMxNDY0ZWI5ZTVkZjMzNWVjZTY1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxNzozMjoyOCAyMDA3ICswMjAwCgogICAgcHBjN3h4OiBVcGRhdGUgQ1BDSTc1MCBib2FyZAoKICAgIFRoaXMgc21hbGwgQ1BDSTc1MCB1cGRhdGUgZXh0ZW5kcyB0aGUgYm9hcmQgc3BlY2lmaWMgY29tbWFuZAogICAgInNob3dfY29uZmlnIiB0byBkaXNwbGF5IHRoZSBNYXJ2ZWxsIHN0cmFwcGluZyByZWdpc3RlcnMgYW5kCiAgICBleHRlbmRzIHRoZSBQQ0kgSURFIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc4Y2ZmNTBlZGJhNmIxNTA4ZWIxNWMyZjUzY2U5NjZhYzg5MWViOWUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVRodSBBdWcgMTYgMTA6NDY6MjggMjAwNyArMDIwMAoKICAgIFtGSVhdIENoYW5nZXMgZm9yIGJpb3NfZW11bGF0b3IgY29kZSBmb3Igb3RoZXJzIGFyY2hpdGVjdHVyZQoKY29tbWl0IDZlMGUyMjUzZjAzOTM0NGY4ZWJkMjc4NzI4NWZkYmE5MGU2NzE0ZTgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVRodSBBdWcgMTYgMTA6NDU6MDkgMjAwNyArMDIwMAoKICAgIFtGSVhdIFJlbW92ZSB1bnVzZWQgaW5jbHVkZSBmaWxlCgpjb21taXQgOWRlNDY5YmQ5NjBjYzE4NzBiYjQwZDY2NzJlZDQyNzI2YjhiNTBkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDoxODozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBPbmx5IGVuYWJsZSBQT1NUIEZQVSB0ZXN0IG9uIFNlcXVvaWEgYW5kIG5vdCBSYWluaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZkYTBjNWJkNGE1M2U0MGViNGY3ZWI3MmE0YzA1MWVjYWJhZDc4M2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMDk6NTQ6NTEgMjAwNyArMDIwMAoKICAgIEFkZCBtaXNzaW5nIHJhaW5pZXIgKFBQQzQ0MEdSeCkgdGFyZ2V0IHRvIE1BS0VBTEwgYW5kIE1BSU5UQUlORVJzIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyYmE3MDIyZjYyYmI3NTkwODI5NmM1OGM2Mzg2NmUxZDI5NGI2OWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMDk6NTI6MjkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIFNlcXVvaWEvUmFpbmllciBib290c3RyYXAgY29tbWFuZAoKICAgIEFzIHN1Z2dlc3RlZCBieSBEYXZpZCBNaXRjaGVsbCwgaGVyZSBhbiB1cGRhdGUgZm9yIHRoZSBTZXF1b2lhL1JhaW5pZXIKICAgIGJvb3RzdHJhcCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNWNjNGU0ODIzNjY4ZTg3NDU4NTQ4OTljZmFlZGQ0NDg5YmViMGVmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDozOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZW5hYmxlIGxpYmZkdCBieSBkZWZhdWx0IG9uIGZyZWVzY2FsZSBib2FyZHMKCiAgICB0aGlzIGVuYWJsZXMgbGliZmR0IGNvZGUgYnkgZGVmYXVsdCBmb3IgdGhlCiAgICBmcmVlc2NhbGUgbXBjODMxM2VyZGIsIG1wYzgzMnhlbWRzLCBtcGM4MzQ5ZW1kcywKICAgIG1wYzgzNDlpdHggYW5kIGdwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNmZGU5ZThiMjJjZmJkN2FmNDg5MjE0NzU4Zjk4MzlhMjA2NTc2Y2IKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtaWdyYXRlIHJlbWFpbmluZyBmcmVlc2NhbGUgYm9hcmRzIHRvIGxpYmZkdAoKICAgIHRoaXMgYWRkcyBsaWJmZHQgc3VwcG9ydCBjb2RlIGZvciB0aGUgZnJlZXNjYWxlCiAgICBtcGM4MzEzZXJkYiwgbXBjODMyeGVtZHMsIG1wYzgzNDllbWRzLCBtcGM4MzQ5aXR4LAogICAgYW5kIGdwIGJvYXJkcy4KCiAgICBCb2FyZHMgcmVtYWluIGNvbXBhdGlibGUgd2l0aCBPRl9GTEFUX1RSRUUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YTE2ZTBkZmNjNDExOWI0NmFkYjFkY2UyZDZjOGZiM2M1ZDEwOGUxCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoyNiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbW92ZSBjb21tb24gL21lbW9yeSBub2RlIHVwZGF0ZSBtZWNoYW5pc20gdG8gY3B1LmMKCiAgICBhbHNvIGFkZHMgY29tbW9uIHByb3RvdHlwZXMgdG8gaW5jbHVkZS9jb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmOWUwZTlmMzM5YWVlNGNlMzFhMzM4ZDVmMjczNTZlYjU0NTdmODUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjE5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiByZW1haW5pbmcgODM2MCBsaWJmZHQgZml4ZXMKCiAgICBQQ0kgY2xvY2tzIGFuZCBRRSBmcmVxdWVuY2llcyB3ZXJlbid0IGJlaW5nIHVwZGF0ZWQsIGFuZCB0aGUgY29yZSBjbG9jawogICAgd2FzIGJlaW5nIHVwZGF0ZWQgaW5jb3JyZWN0bHkuICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhIC9tZW1vcnkgbm9kZSBpZgogICAgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0IHByaW9yIHRvIHVwZGF0ZS4KCiAgICBwbHVzIHNvbWUgY29zbWV0aWMgdHJpbW1pbmcgdG8gc2luZ2xlIGxpbmUgY29tbWVudHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNGIyYWM1ZWQ5YWFmZjk5MjBkNDg3YmZmOGE1OTY5NmMwODNhNTI0CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoxMiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IFVFQzItPjEgdHlwbyBpbiBsaWJmZHQgc2V0dXAgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTlmYTFjMzUzNjg0ODRkNGVkMTBkZGNlOGE3NzkzYzIxODYyZTNhMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MDUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGFkZCBNQUlOVEFJTkVSIGFuZCBNQUtFQUxMIGVudHJpZXMgZm9yIHRoZSBtcGM4MzIzZXJkYgoKICAgIGFuZCByZW9yZGVyIHRoZSBleGlzdGluZyA4M3h4IG1haW50YWluZXJzIGFscGhhLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWI0ZGU5MzA5ZDdhMDNhYTFkYjJlNTM5MWFiNjk2MzYzMzkxZjQ2MApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMToxNTowNSAyMDA3ICswMjAwCgogICAgW0ZJWF0gUmVzb2x2ZSBwcm9ibGVtIHdpdGggd2FybmluZ3MKICAgIG1pY3JvYmxhemUgdG9vbGNoYWluIGRvbid0IHN1cHBvcnQgUFJBR01BIFBBQ0suCgpjb21taXQgZDFlZDI4Y2YzNmFiNmIxZDRjNDc5ODA5ZGU3MjUyYmY1M2QyZjJkNApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMTowNTowNyAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29ycmVjdGlvbiBjb21tYW5kIHNldHRpbmcgZm9yIE1pY3JvYmxhemUgYm9hcmRzCgpjb21taXQgN2FhNjNkOGNkMzBhYjIwYWMyZmQxYWI4NmU2MDQ3MWRlOGIxZjFlNQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMTowMzo0MSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29ycmVjdGlvbiBjb21tYW5kIGRlZmluaXRpb24KCmNvbW1pdCAzMGI1MmRmOWU5MDZiZjBlNDY1OTE2YzJjNmJiNTE5MmI0MzhlMGI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMTo1NTozNSAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGxpbmdlcmluZyBDRkdfQ01EXyogcmVmZXJlbmNlcyBpbiBzYmM4NjQxZC5oCgogICAgUmVtb3ZlIGEgbGVmdG92ZXIgaW4gbmV0L3RmdHAuYyB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjZTkxNzc0MmIxZTQ4ZmFhOWJmOWE5NzU3NTQ1ZTU2ZmI0Y2ZlNDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDEyOjIwOjQwIDIwMDcgLTA1MDAKCiAgICBNb3ZlIHRoZSBNUEM4NjQxSFBDTiBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2NjI1NzdmZTM2ZmRiNmE0NGI1NWI5OThkOWRhYWM2MzkyYTczNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjQ2OjIyIDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggbGluZ2VyaW5nIENGR19DTURfKiByZWZlcmVuY2VzIGluIHNiYzg2NDFkLmgKCiAgICBSZW1vdmUgYSBsZWZ0b3ZlciBpbiBuZXQvdGZ0cC5jIHdoaWxlIHdlJ3JlIGF0IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjEwZjQ2M2M3MTkxN2I3YTQ0OTVjMjEwM2MyMjhiOWMxNzlhZTY0ZApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMToxMzoxNSAyMDA3IC0wNDAwCgogICAgRml4IHdoZXJlIHRoZSAjaWZkZWYgQ0ZHX0JPT1RNQVBTWiBpcyBwbGFjZWQuCgogICAgQ29tbWl0IDA3M2UxYjUwOTk4MGNlZmU2ZjUzYzJkN2ZiYmNkMTM1ZGYxZTM5MjQgIkZpeCBpbml0cmQvZHRiCiAgICBpbnRlcmFjdGlvbiIgcHV0IHRoZSBuZXcgY29kZSBvdXRzaWRlIG9mIHRoZSAjaWYgZGVmaW5lZChDT05GSUdfT0ZfTElCRkRUKQogICAgd2hlbiBpdCBzaG91bGQgaGF2ZSBnb25lIGluc2lkZSBvZiB0aGUgY29uZGl0aW9uYWwuICBBcyBhIHJlc3VsdCwgaXQKICAgIGJyb2tlIG5vbi1MSUJGRFQgYm9hcmQgYnVpbGRzLgoKICAgIEFsc28gYWRkZWQgYSBtaXNzaW5nICJub3QuIiB0byB0aGUgY29tbWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDBlMTkyMDk3NjcxOTRhOTdjZWM2ZDkzZGJhOWU2NGQxZGE4ZDU0OGUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgQXVnIDE1IDEyOjE0OjIzIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81LUJvYXJkIGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDU5NGU3OTgzOGNlNTA3OGE5MGQwYzI3YWJiMmIyZDYxZDVmOGU4YTcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDE0OjA2OjQ1IDIwMDcgLTA1MDAKCiAgICBGaXggbWFsbG9jIHNpemUgZXJyb3IgaW4gYWhjaV9pbml0X29uZS4KCiAgICBUeXBpY2FsbHkgdGhpcyBjYXVzZXMgc2NzaSBpbml0IHRvIGNvcnJ1cHQgdGhlCiAgICBkZXZsaXN0IGFuZCBicmVhayB0aGUgY29uaW5mbyBjb21tYW5kLgogICAgRml4IGEgY29tcGlsZXIgc2l6ZSB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8amFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzYxYWNkNjRmZDI1MjVjMDgxYjliMjg4YjA4MDRlZmUyMDljMGU5CkF1dGhvcjoga3NpQGtvaTgubmV0IDxrc2lAa29pOC5uZXQ+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MDI6MTYgMjAwNyAtMDcwMAoKICAgIFRJIERhVmluY2kgLSBmaXggdW5zdXBwb3J0ZWQgJWhoeCBmb3JtYXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KCmNvbW1pdCBmMDFkYmI1NDI0YTgxNDUzYzgxMTkwZGQzMGU5NDU4OTE0NjZmNjIxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxODo0MjozNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwNzNlMWI1MDk5ODBjZWZlNmY1M2MyZDdmYmJjZDEzNWRmMWUzOTI0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjMyOjU5IDIwMDcgLTA1MDAKCiAgICBGaXggaW5pdHJkL2R0YiBpbnRlcmFjdGlvbgoKICAgIFRoZSBvcmlnaW5hbCBjb2RlIHdvdWxkIHdyb25nbHkgcmVsb2NhdGUgdGhlIGJsb2IgdG8gYmUgcmlnaHQgYmVmb3JlCiAgICB0aGUgaW5pdHJkIGlmIGl0IGV4aXN0ZWQuICBUaGUgYmxvYiAqbXVzdCogYmUgd2l0aGluIENGR19CT09UTUFQU1osCiAgICBpZiBpdCBpcyBkZWZpbmVkLiAgU28gd2UgbWFrZSB0d28gY2hhbmdlczoKCiAgICAxKSBmbGFnIHRoZSBibG9iIGZvciByZWxvY2F0aW9uIHdoZW5ldmVyIGl0cyBhZGRyZXNzIGlzIGFib3ZlIEJPT1RNQVBTWgoKICAgIDIpIElmIHRoZSBibG9iIGlzIGJlaW5nIHJlbG9jYXRlZCwgcmVsb2NhdGUgaXQgYmVmb3JlIGtiZCwgbm90IGluaXRyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNTRiOTcwMTczNzY5MzA3YTExNmJkMzQwMjhiNmQwYzJlZWEyYTRlCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxNTo0MDowMCAyMDA3ICswMTAwCgogICAgU3VwcGx5IHNwaSBpbnRlcmZhY2UgaW4gYXQ0NS5jCgpjb21taXQgNGNlODQ2ZWM1OWYzNmI4NWQ2NjQ0YTc2OTY5MGFkM2ZlYjY2NzU3NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNToxMjowMSAyMDA3ICswMjAwCgogICAgUE9TVDogRml4IG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDI5ZDk1NzFmNjA2MzFhZThhMmZlMTJiMTFiZTRjNzViMGMyYjM3YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNTowMzoxNyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzc5ZTk3NTExN2E3NWU5MWZjZWJlMjI2YTYzMTA0ZGJmYjkyNGFiMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDo0NDo0MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBaZXVzIChQUEM0MDVFUCkgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNWExNzJhNWZkNjM2YzEyNDY3NDI5ZTNmNzkxMGU1Mzc3Mzk3OWM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjQxOjU1IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgb3B0aW9uIGZvciBleHRlcm5hbCBldGhlcm5ldCBsb29wYmFjayB0ZXN0CgogICAgV2hlbiBDRkdfUE9TVF9FVEhFUl9FWFRfTE9PUEJBQ0sgaXMgZGVmaW5lZCwgdGhlIGV0aGVybmV0IFBPU1QKICAgIGlzIG5vdCBkb25lIHVzaW5nIGFuIGludGVybmFsIGxvb3BiYWNrIGNvbm5lY3Rpb24sIGJ1dCBieSBhc3N1bWluZwogICAgdGhhdCBhbiBleHRlcm5hbCBsb29wYmFjayBjb25uZWN0b3IgaXMgcGx1Z2dlZCBpbnRvIHRoZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWIyYjQwMTBhZTQyNjI0NTE3Mjk4ODgwNGVlOGQ5MTkzZmI0MTAzOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDozOTo0NCAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIHBwYzQwNSBzdXBwb3J0IHRvIGNhY2hlIGFuZCBVQVJUIFBPU1QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGM0MmYzNmYxNTA3NGJkOTgwOGE3ZGJkN2VmNjExZmFkOWJmNTM3YwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6NDY6MzIgMjAwNyArMDEwMAoKICAgIFJlcGxhY2UgbG9zdCBlbmQgb2YgYXQ0NS5jLgoKY29tbWl0IDY1ZDdhZGE2NDU1N2U3NjA5NGI0ZmQzYmFkMzBhMGYxOGY1ZmIyYjIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjMwOjA2IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgTWFrZWZpbGVzIGZvciBtZXJnZWQgYW5kIHNwbGl0IGF0NDUuYy4KCmNvbW1pdCAzNDU0Y2VjZTJkYjU3Y2I5ZWI3MDg3OTk1ZjdlNzMwNjZhMTYzZjcxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoyMTowNiAyMDA3ICswMTAwCgogICAgRGVsZXRlIHRoZSBtZXJnZWQgZmlsZXMuCgpjb21taXQgZGNiZmQyZTU2NDlmOTdhYTA0ZmJiYzZlYTJiMDA4YWE0NDg2ZTIyNQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MTQ6MDUgMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgZmlsZXMuCgpjb21taXQgZDRmYzYwMTJmZDBhNWMyMTFiODI1NjkxZjQ0YjA2ZjgwMzJjMDU1MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MTA6NTIgMjAwNyArMDEwMAoKICAgIEFkZCBNQUNIX1RZUEUgcmVjb3JkcyBmb3Igc2V2ZXJhbCBBVDkxIGJvYXJkcy4KICAgIE1lcmdlIHRvIHR3byBhdDQ1LmMgZmlsZXMgaW50byBhIGNvbW1vbiBmaWxlLCBzcGxpdCB0byBhdDQ1LmMgYW5kIHNwaS5jCiAgICBGaXggc3BlbGxpbmcgZXJyb3IgaW4gRE05MTYxIFBIWSBTdXBwb3J0LgogICAgSW5pdGlhbGl6ZSBhdDkxcm05MjAwIGJvYXJkIChhbmQgc2V0IExFRCkuCiAgICBBZGQgUElPIGNvbnRyb2wgZm9yIGF0OTFybTkyMDBkayBMRURzIGFuZCBNdXguCiAgICBDaGFuZ2UgZGF0YWZsYXNoIHBhcnRpdGlvbiBib3VuZGFyaWVzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBMaW51eCAyLjYuCgogICAgU2lnbmVkLW9mZi1ieToJUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6CVVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgoKY29tbWl0IDRlZjM1ZTUzYzY5MzU1NmM1NGIwYzIyZDZmODczZGU4N2JhZGUyNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDA5OjU0OjQ2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODVlYjVjYWY2YjkwNmY3ZWM1YjU0ODE0ZThjN2M3NGY1NTk4NmJiNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMDk6NDc6MjcgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyByZWJ1aWxkIENIQU5HRUxPRwoKY29tbWl0IDdmM2YyYmQyZGMwOGUwYjA1ZTE4NTY2MmNhMmUyZDI4Mzc1NzEwNGEKQXV0aG9yOiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbGludXhib3guKG5vbmUpPgpEYXRlOglUdWUgRmViIDI3IDE5OjQyOjIyIDIwMDcgLTA3MDAKCiAgICA4NXh4Q0RTOiBBZGQgbWFrZSB0YXJnZXRzIGZvciBsZWdhY3kgc3lzdGVtcy4KCiAgICBUaGUgUENJIElEIHNlbGVjdCB2YWx1ZXMgb24gdGhlIEFyY2FkaWEgbWFpbiBib2FyZCBkaWZmZXIgZGVwZW5kaW5nCiAgICBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUuIFRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uIHN1cHBvcnRzCiAgICBSZXYgMy4xLiBUaGUgbGVnYWN5IHRhcmdldCBzdXBwb3J0cyBSZXYgMi54LgoKICAgIFNpZ25lZC1vZmYtYnkgUmFuZHkgVmluc29uIDxydmluc29uQG12aXN0YS5jb20+Cgpjb21taXQgZTQxMDk0YzdlMzgxNzdjNzU1ZmJkOWIxODIwMTgwNjk2MTRmMDgwZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTo1MDowOSAyMDA3IC0wNTAwCgogICAgODV4eENEUzogRW5hYmxlIHRoZSBWSUEgUENJLXRvLUlTQSBicmlkZ2UuCgogICAgQXV0aG9yOiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbGludXhib3guKG5vbmUpPgoKICAgIEVuYWJsZSB0aGUgUENJLXRvLUlTQSBicmlkZ2UgaW4gdGhlIFZJQSBTb3V0aGJyaWRnZSBsb2NhdGVkIG9uIHRoZQogICAgQXJjYWRpYSBtYWluIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYTlkNDYxMGQ3NmU1MmM0ZDIwYThmM2Q4NDMzNDM5YTdmY2Y1YjcxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAwOjE0OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgVUVDIHRvIDg1NjgKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1OWU0MDkxZmZlMDE0ODM5OGI5ZTlmZjE0YTAxOWVhMDM4Yjc0MzIKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDE5IDE0OjE4OjM0IDIwMDcgLTA0MDAKCiAgICBBZGQgUENJIHN1cHBvcnQgZm9yIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGlzIGFnYWluc3QgdS1ib290LW1wYzg1eHguZ2l0IG9mIHd3dy5kZW54LmNvbQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxMTFkNjM4MmM5OWZkZWEwOGMyMzEyZWVlYWU4Nzg2OTQ1ZTE4OWEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDE5IDE0OjE4OjMyIDIwMDcgLTA0MDAKCiAgICBFbXBpcmljYWxseSBzZXQgY3BvIGFuZCBjbGtfYWRqdXN0IGZvciBtcGM4NXh4IEREUjIgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggaXMgYWdhaW5zdCB1LWJvb3QtbXBjODV4eC5naXQgb2Ygd3d3LmRlbnguY29tCgogICAgU2V0dGluZyBjcG8gdG8gMHg5IGZvciBmcmVxdWVuY2llcyBoaWdoZXIgdGhhbiAzMzNNSHogaXMgdmVyaWZpZWQgb24KICAgIGJvdGggTVBDODU0OENEUyBib2FyZCBhbmQgTVBDODU2OE1EUyBib2FyZCwgZXNwZWNpYWxseSBmb3Igc3VwcG9ydGluZwogICAgNTMzTUh6IEREUjIuCgogICAgU2V0dGluZyBjbGtfYWRqdXN0IHRvIDB4NigzLzQgbGF0ZSBjeWNsZSkgZm9yIE1QQzg1NjhNRFMgYm9hcmQgaXMgZm9yCiAgICBERFIyIG9uIGFsbCBjdXJyZW50IGJvYXJkIHZlcnNpb25zIGVzcGVjaWFsbHkgdmVyIDEuOTIgb3IgbGF0ZXIgdG8gYnJpbmcKICAgIHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2RiMGJlZjU5ZWFiMTE1NTgwMTYxOGNlZjVjNDgxZTk3NTUzYjU5NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgNyAxODowNzoyNyAyMDA3IC0wNTAwCgogICAgVXNlIGFuIGFic29sdXRlIGFkZHJlc3Mgd2hlbiBqdW1waW5nIG91dCBvZiA0ayBib290IHBhZ2UKCiAgICBPbiBlNTAwIHdoZW4gd2UgbGVhdmUgdGhlIDRrIGJvb3QgcGFnZSB3ZSBzaG91bGQgdXNlIGFuIGFic29sdXRlIGFkZHJlc3Mgc2luY2UKICAgIHdlIGRvbid0IGtub3cgd2hlcmUgdGhlIGJvYXJkIGNvZGUgbWF5IHdhbnQgdXMgdG8gYmUgcmVhbGx5IHJ1bm5pbmcgYXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzOTk4MGM2MTBjOWE0YzM4MTkwN2M5ZTFkMWI5YzBlMWMwZGNhNTdhCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDEzIDE0OjQ5OjU5IDIwMDcgLTA1MDAKCiAgICBNUEM4NXh4IEJBIGJpdHMgbm90IHNldCBmb3IgMy1iaXQgYmFuayBhZGRyZXNzIERJTU0KCiAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzZXQgdGhlIG51bWJlciBvZiBiYW5rIGFkZHJlc3MgYml0cwogICAgKEJBKSBpbiB0aGUgcHJvY2Vzc29yLiBUaGUgZGVmYXVsdCBhc3N1bWVzIDIgbG9naWNhbCBiYW5rIGJpdHMuIFRoaXMKICAgIHdvcmtzIGZpbmUgZm9yIGEgRElNTSB0aGF0IHVzZXMgZGV2aWNlcyB3aXRoIDQgaW50ZXJuYWwgYmFua3MgKFNQRAogICAgYnl0ZTE3ID0gMHg0KSBidXQgbmVlZHMgdG8gYmUgc2V0IGFwcHJvcHJpYXRlbHkgZm9yIGEgRElNTSB0aGF0IHVzZXMKICAgIGRldmljZXMgd2l0aCA4IGludGVybmFsIGJhbmtzIChTUEQgYnl0ZTE3ID0gMHg4KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmVnIERhdmlzIDxEYXZpc0dAZW1iZWRkZWRwbGFuZXQuY29tPgoKY29tbWl0IDZjNTQzNTk3YmI0YjFlY2Y1ZDg1ODlmN2FiYjBmMzk5MjlmYjdmZDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTQ6Mzg6MDYgMjAwNyAtMDUwMAoKICAgIEZpeCBtaW5vciA4NXh4IHdhcm5pbmdzCgogICAgU29tZSBwYXRjaGVzIGhhZCBpbnNlcnRlZCB3YXJuaW5ncyBpbnRvIHRoZSBidWlsZDoKICAgICogbXBjODU2MGFkcyBkZWNsYXJlZCBkYXRhIHdpdGhvdXQgdXNpbmcgaXQKICAgICogY3B1X2luaXQgZGVjbGFyZWQgZWNtIGFuZCBpbW1hcCB3aXRob3V0IHVzaW5nIGl0IGluIGFsbCBDT05GSUdzCiAgICAqIE1QQzg1NDhDRFMuaCBoYWQgaXRzIGRlZmF1bHQgZmlsZW5hbWVzIGNoYW5nZWQgc28gdGhhdCB0aGV5IGNvbnRhaW5lZAogICAgICAiXG0iIGluIHRoZSBwYXRocy4gIE1hZGUgdGhlIGRlZmF1bHRzIG5vdCBXaW5kb3dzLXNwZWNpZmljIChvcgogICAgICBhbnl0aGluZy1zcGVjaWZpYykKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjJjZmY2YjEwNGY4MmI5OTNiZWY2MDg2Y2UwYzk3MTU5YmJlMWFkZApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NTIgMjAwNyAtMDUwMAoKICAgIDg1NDhjZHMgUENJRSBzdXBwb3J0LgoKICAgIE1ha2UgdGhlIGVhcmx5IEwxIGNhY2hlIHN0YWNrIHJlZ2lvbiBndWFyZGVkIHRvIHByZXZlbnQgc3BlY3VsYXRpdmUKICAgIGZldGNoZXMgb3V0c2lkZSB0aGUgbG9ja2VkIHJhbmdlLgoKICAgIFVzZSBfUEhZUyBkZWZpbmVzLCBub3QgX01FTSBmb3IgY3B1LXNpZGUgUENJIG1lbW9yeSBtYXBwZWQgcmVnaW9ucy4KICAgIGluaXQuUyB3aGl0ZXNwYWNlIGNsZWFudXAuCgogICAgQWxsb3cgVEVYVF9CQVNFIHZhbHVlIHRvIGJlIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUuICBUaGlzIGFsbG93cyBpdAogICAgdG8gYmUgc2V0IHRvIDB4ZmZmYzAwMDAgd2hpY2ggY3V0cyB0aGUgdWJvb3QgYmluYXJ5IGluIGhhbGYuCgogICAgQ2xlYXIgYW5kIGVuYWJsZSBsYmMgYW5kIGVjbSBlcnJvcnMuCgogICAgVXBkYXRlIGxhc3RfYnVzbm8gaW4gZGV2aWNlLXRyZWUgZm9yIHBjaSBhbmQgcGNpZS4KCiAgICBSZW1vdmUgbG9hZCBvZiBvYnNvbGV0ZSBjcHUvbXBjODV4eC9wY2kuMAoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzN2YxYmEwNWNmYjI0OGFiYTVhYjhlMWZiMWJmZWVmYTA3ZDU5NjIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjUxIDIwMDcgLTA1MDAKCiAgICA4NTQ0ZHMgUENJRSBzdXBwb3J0CgogICAgUENJMSBMQVcgbWFwcGluZyBzaG91bGQgdXNlIENGR19QQ0kxX01FTV9QSFkgYW5kIG5vdCBfQkFTRSBhZGRyZXNzLgoKICAgIEVuYWJsZSBMQkMgYW5kIEVDTSBlcnJvcnMgYW5kIGNsZWFyIGVycm9yIHJlZ2lzdGVycy4KCiAgICBBZGQgdGZ0cGZsYXNoIGVudiB2YXIgdG8gZ2V0IHVib290IGZyb20gdGZ0cCBzZXJ2ZXIgYW5kIGZsYXNoIGl0LgoKICAgIEFkZCBwY2kvcGNpZSBjb252ZW5pZW5jZSBlbnYgdmFycyB0byBkaXNwbGF5IHJlZ2lzdGVyIHNwYWNlOgogICAgICAicnVuIHBjaWUzcmVncyIgdG8gc2VlIGFsbCBwY2llMyBjY3NyIHJlZ2lzdGVycwogICAgICAicnVuIHBjaWUzY2ZnIiB0byBzZWUgYWxsIGNmZyByZWdpc3RlcnMKICAgIFdoaXRlc3BhY2UgY2xlYW51cCBhbmQgTVBDODU0NERTLmgKCiAgICBFbmFibGUgQ09ORklHX0lOVEVSUlVQVFMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFhMjFlOTgwYTdiOTE4ODQyNGQwNGYxYzI2NWZkYzVjMjFjN2U4NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTozNDoyMSAyMDA3IC0wNTAwCgogICAgODV4eCBzdGFydC5TIGNsZWFudXAgYW5kIGV4Y2VwdGlvbiBzdXBwb3J0CgogICAgRnJvbTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCiAgICBTdXBwb3J0IGV4dGVybmFsIGludGVycnVwdHMgZnJvbSBwbGF0Zm9ybSB0byBlbGltaW5hdGUgc3lzdGVtIGhhbmdzLgogICAgRGVmaW5lIENPTkZJR19JTlRFUlJVUFRTIGJvYXJkIGNvbmZpZ3VyZSBvcHRpb24gdG8gZW5hYmxlLgogICAgRW5hYmxlIGVjbSwgZGRyLCBsYmMsIGFuZCBwY2kvcGNpZSBlcnJvciBpbnRlcnJ1cHRzIGluIFBJQy4KCiAgICBSZW1vdmUgZXh0cmEgY3B1IGluaXRpYWxpemF0aW9uIHJlZHVuZGFudCB3aXRoIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uLgogICAgV2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIERlZmluZSBhbmQgdXNlIF9TVEFSVF9PRkZTRVQgY29uc2lzdGVudCB3aXRoIG90aGVyIHByb2Nlc3NvcnMgdXNpbmcKICAgIHBwY19hc20udG1wbAoKICAgIE1vdmUgYWRkaXRpb25hbCBjb2RlIGZyb20gLnRleHQgdG8gYm9vdCBwYWdlIHRvIG1ha2Ugcm9vbSBmb3IKICAgIGV4Y2VwdGlvbiB2ZWN0b3JzIGF0IHN0YXJ0IG9mIGltYWdlLgoKICAgIEhhbmRsZSBNYWNoaW5lIENoZWNrLCBFeHRlcm5hbCBhbmQgQ3JpdGljYWwgZXhjZXB0aW9ucy4KCiAgICBGaXggZTUwMCBtYWNoaW5lIGNoZWNrIGVycm9yIGRldGVybWluYXRpb24gaW4gdHJhcHMuYwoKICAgIFRFWFRfQkFTRSBjYW4gbm93IGJlIDB4ZmZmY18wMDAwIC0gd2hpY2ggY3V0cyBiaW5hcnkgaW1hZ2UgaW4gaGFsZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmQzMGZjNGE2NDc1YjQxZDY2NzlhZTNhYWZjOWZhNTA1MjYwYzQ3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjMzOjE4IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIFJFQURNRQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGM3ZjliMGRlNGUzMDAzNzBhZGZjNzA0MTI4ZmEwZjc5YTE0M2I2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0OCAyMDA3IC0wNTAwCgogICAgODV4eCBhbGxvdyBkZWJ1Z2dlciB0byBjb25maWd1cmUgZGRyLgoKICAgIE9ubHkgY2hlY2sgZm9yIG1wYzg1NDggcmV2IDEgd2hlbiBjb21waWxlZCBmb3IgODU0OC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyOTM3MmZmMzhjNWJhYWI3ZDBlM2E4YzE0ZmUxMWZhMTk0YTM4NzA0CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NyAyMDA3IC0wNTAwCgogICAgbXBjODV4eCBMMiBjYWNoZSByZXBvcnRpbmcgYW5kIFNSQU0gcmVsb2NhdGlvbiBvcHRpb24uCgogICAgQWxsb3cgZGVidWdnZXIgdG8gb3ZlcnJpZGUgZmxhc2ggY3MwL2NzMSBzZXR0aW5ncyB0byBlbmFibGUgYWx0ZXJuYXRlCiAgICBib290IHJlZ2lvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MWYwZjhmYjFhYjkyZjBjYmE3ZDMyOWRlOTAwNzBmODIyZjgyOTlmCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NiAyMDA3IC0wNTAwCgogICAgZTUwMCBuZWVkcyBwcGNfYXNtLnRtcCBNQ0tfRVhDRVBUSU9OCgogICAgQWx3YXlzIGRlZmluZSBNQ0tfRVhDRVBUSU9OIG1hY3JvIC0gc28gZTUwMCBjYW4gdXNlIGl0IHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1M2E1YzQyNGJmODY1NWI3YjRlMmMzMDVhNDQxOTYzMjU5YTI2YTgxCkF1dGhvcjogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgpEYXRlOglNb24gSnVuIDExIDEwOjQxOjA3IDIwMDcgLTA1MDAKCiAgICBtdWx0aWNhc3QgdGZ0cDogUkZDMjA5MAoKICAgIEltcGxlbWVudGVkIElFVEYgUkZDMjA5MCwgTXVsdGljYXN0IFRGVFAuICBJbml0aWFsIGltcGxlbWVudGF0aW9uCiAgICBvbiBSZWFsdGVrIFJUTDgxMzkgYW5kIEZyZWVzY2FsZSBUU0VDLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDVkMTEwZjBhYTY5ZjA2NWVlMzg2ZWMxODQwZGZlZTFlOGNjNDZiYzEKQXV0aG9yOiBXaWxzb24gQ2FsbGFuIDx3Y2FsbGFuQHNhdmFudGF2LmNvbT4KRGF0ZToJU2F0IEp1bCAyOCAxMDo1NjoxMyAyMDA3IC0wNDAwCgogICAgTmV3IENPTkZJR19CT09UUF9TRVJWRVJJUCBvcHRpb24KCiAgICBBZGRlZCBDT05GSUdfQk9PVFBfU0VSVkVSSVAgdG8gYWxsb3cgdGhlIHRmdHAgc2VydmVyIHRvIGJlIGRpZmZlcmVudAogICAgZnJvbSB0aGUgYm9vdHAgc2VydmVyCgogICAgU2lnbmVkLW9mZi1ieTogV2lsc29uIENhbGxhbiA8d2NhbGxhbkBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1MGNjYThiOTc2ZWM3NDA2OTg2MDIwOGMzNmU2NGNlOGY0ZDVlNGMxCkF1dGhvcjogTWlrZSBSYXBvcG9ydCA8bWlrZUBjb21wdWxhYi5jby5pbD4KRGF0ZToJU3VuIEF1ZyAxMiAwODo0ODoyNyAyMDA3ICswMzAwCgogICAgQWRkIGFiaWxpdHkgdG8gdGFrZSBNQUMgYWRkcmVzcyBmcm9tIHRoZSBlbnZpcm9ubWVudCB0byBETTkwMDAgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBSYXBvcG9ydCA8bWlrZUBjb21wdWxhYi5jby5pbD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGJlNWQ3MmQxMGQ0NzYwOTMyNjIyNjIyNTE4MWUzMDFmYjlhMzNiNTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDEzIDIxOjU3OjUzIDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNjYTM0OTY3Y2JkMTNmZjZiZDM1MmJlMjllM2YxY2M4OGFiMjRjMDUKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglTYXQgQXVnIDExIDA2OjU0OjU4IDIwMDcgLTA1MDAKCiAgICBNb2RpZnkgU0JDODY0MUQgdG8gdXNlIG5ldyBGcmVlc2NhbGUgUENJIHJvdXRpbmVzCgogICAgUENJLUV4cHJlc3Mgc29ja2V0cyAxIGFuZCAyIHZlcmlmaWVkIHdvcmtpbmcgd2l0aCBJbnRlbCBQcm8vMTAwMCBQVAogICAgYWRhcHRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgU2lnbmRlLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMDg0NTgzMDNlN2Y5ZGI2N2YyOTY5ODAwMzZkMzI5MmMzNWNiNDVjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKdW4gMjkgMTg6Mzg6NTEgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogRml4IGRhdGEgdGltZW91dCB2YWx1ZQoKICAgIENhbGN1bGF0ZSB0aGUgZGF0YSB0aW1lb3V0IGJhc2VkIG9uIHZhbHVlcyBmcm9tIHRoZSBDU0QgaW5zdGVhZCBvZgogICAganVzdCB1c2luZyBhIGhhcmRjb2RlZCBEVE9SIHZhbHVlLiBUaGlzIGlzIGEgYmFja3BvcnQgb2YgYSBzaW1pbGFyIGZpeAogICAgaW4gQlNQIDIuMCwgd2l0aCBvbmUgYWRkaXRpb25hbCBmaXg6IHRoZSBEVE9DWUMgdmFsdWUgaXMgcm91bmRlZCB1cAogICAgaW5zdGVhZCBvZiBkb3duLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBiYThlZWQyOGI1NzU2MjZiMTdlMGE3ODgyZjkyM2I4M2UwZDc1ODQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNzoyMjozMSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEluY2x1ZGUgPGRpdjY0Lmg+IGluc3RlYWQgb2YgPGFzbS9kaXY2NC5oPgoKICAgIGluY2x1ZGUvYXNtLWF2cjMyL2RpdjY0Lmggd2FzIHJlY2VudGx5IG1vdmVkIHRvIGluY2x1ZGUvZGl2NjQuaCwgYnV0CiAgICBjcHUvYXQzMmFwL2ludGVycnVwdHMuYyB3YXNuJ3QgcHJvcGVybHkgdXBkYXRlZCAoYW4gZWFybGllciB2ZXJzaW9uIG9mCiAgICB0aGUgcGF0Y2ggd2FzIG1lcmdlZCBwZXJoYXBzPykKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMgc28gdGhhdCB0aGUgYXZyMzIgcG9ydAogICAgY29tcGlsZXMgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZjBkMTI0NmVkN2NiNWE4ODUyMjI0NGM1OTZkN2FlN2U2ZjE2MTI4MwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSnVuIDI3IDEzOjM0OjI2IDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IFVzZSA1MTIgYnl0ZSBibG9ja3NpemUgaWYgcG9zc2libGUKCiAgICBJbnN0ZWFkIG9mIGFsd2F5cyB1c2luZyB0aGUgbGFyZ2VzdCBibG9ja3NpemUgdGhlIGNhcmQgc3VwcG9ydHMsIGNoZWNrCiAgICBpZiBpdCBjYW4gc3VwcG9ydCBzbWFsbGVyIGJsb2NrIHNpemVzIGFuZCB1c2UgNTEyIGJ5dGVzIGlmIHBvc3NpYmxlLgogICAgTW9zdCBjYXJkcyBkbyBzdXBwb3J0IHRoaXMsIGFuZCBvdGhlciBwYXJ0cyBvZiB1LWJvb3Qgc2VlbSB0byBoYXZlCiAgICB0cm91YmxlIHdpdGggYmxvY2sgc2l6ZXMgZGlmZmVyZW50IGZyb20gNTEyIGJ5dGVzLgoKICAgIEFsc28gZW5hYmxlIHVuZGVycnVuL292ZXJydW4gcHJvdGVjdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgoKY29tbWl0IDI3M2RiN2UxYmRkMTkzN2UzMmYxZDQ1MDczMjFiYjcyMWViZDMxMTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTMgMDk6MDU6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gUExMIGNsb2NrIGNhbGN1bGF0aW9uCgogICAgVGhpcyBwYXRjaCB3YXMgb3JpZ2luYWxsIHByb3ZpZGVkIGJ5IERhdmlkIE1pdGNoZWxsIDxkbWl0Y2hlbGxAYW1jYy5jb20+CiAgICBhbmQgZml4ZXMgYSBidWcgaW4gdGhlIFBMTCBjbG9jayBjYWxjdWxhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTk4NmJjM2U0MGU4OTliZWEzNzJhOTlhMmJjYTQwNzFiZGYyZTI0YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjE6MzQ6NTAgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCA3N2QxOWE4YmYzYjBiMWU0MDFjYjlmMjNjODFlMmVmNDE5NzA1YzFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMTozNDozNCAyMDA3ICswMjAwCgogICAgTWlub3IgYWxpZ25tZW50IG9mIG91dHB1dCwgMm5kIHRyeS4KICAgIEFsc28gdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmIzMDlmMjJhNzI0ZmFkODQxOGU4MTE3NTFhMDc0MWI4OTM0MTljZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjA6MzU6NDkgMjAwNyArMDIwMAoKICAgIE1pbm9yIGFsaWdubWVudCBvZiBvdXRwdXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZmNmQ3YjljODU1OWUyNDFlOGQyMzI2MjE1NDJiOGI1OTY5OWIwN2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE4OjI4OjE4IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIG91dHB1dCBvbiBBRFM1MTIxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuawoKY29tbWl0IGE0ZDI2MzZmMmE4NTkyNDVlZDNhNDAxZjI2MTg5ZGEyZGZkYTRjZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE1OjExOjM4IDIwMDcgKzAyMDAKCiAgICBBZGFwdCBib2FyZCBjb25maWd1cmF0aW9uIGFuZCBmaXgga2VybmVsIGNyYXNoIG9uIE1DQzIwMCBib2FyZC4KCiAgICBUaGUgdXBkYXRlIHByb2NlZHVyZSB3YXMgbW9kaWZpZWQgdG8gdHVybiBvZmYgdGhlIFVTQiBzdWJzeXN0ZW0KICAgIGJlZm9yZSBleGl0IGZvciBNQ0MyMDAgYW5kIFRSQUIuIFRoaXMgaXMgbmVjZXNzYXJ5IGFzIG90aGVyd2lzZSB0aGUKICAgIFVTQiBjb250cm9sbGVyIGNvbnRpbnVlcyB0byB3cml0ZSBwZXJpb2RpY2FsbHkgdG8gc3lzdGVtIG1lbW9yeSEKCiAgICBNQ0MyMDAtc3BlY2lmaWMgbm90ZXM6CiAgICAtIHRoZSBwYXRjaCBkaXNhYmxlcyB0aGUgbWFnaWMga2V5IGNoZWNrIGZvciBNQ0MyMDAKICAgIC0gdGhlIHBhdGNoIGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgbWFkZQogICAgICBmb3IgdGhlIG5ldyByZXZpc2lvbiBvZiB0aGUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTI3ZjNhNmVmYjlkYjVhNTMzMjIzYjA1YzYyOWZmNGFjOGQ5MjFiZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTQ6NDc6NTQgMjAwNyArMDIwMAoKICAgIEFkanVzdCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb2YgQURTNTEyMSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFmYWFjODZmZTI5NDhhYzg0Y2Q5YTEyYmJlZDg4M2IzYzY4M2U3ZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE0OjI3OjM5IDIwMDcgKzAyMDAKCiAgICBDbGVhbiB1cCBzb21lIHJlbWFpbmluZyBDRkdfQ01EXyAtPiBDT05GSUdfQ01EXyBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZmU2YmU2MjA4ZGRhODUyYzM1NjRlMzg0YmQ3OGQ3NTc4NGRlYTNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIEF1ZyA3IDIxOjE0OjIyIDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGVycm9yIHByaW50IG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTlkZmZjYTNiNzU5MGExNmEwMGJjNDc1Yzg2MGI2N2IyYTNmMTQ2MgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTcgMTM6NTc6MDQgMjAwNyAtMDUwMAoKICAgIGZkdDogYWxsb3cgZm9yIGJ1aWxkcyB0aGF0IGRvbid0IHdhbnQgZW52IGFuZCBiZF90IG5vZGVzCgogICAgcHJvdGVjdCBmZHRfZW52IGFuZCBmZHRfYmRfdCBpbnZvY2F0aW9ucywgZml4IGNvZGluZ3N0eWxlIHdoaWxlIGluIHRoZQogICAgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxMTQ4YmY3YWViYTE0MmQ2ZjM0ODgwNWRiNzYyNWRiN2RhNjRkNmYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDE3IDEzOjU2OjUzIDIwMDcgLTA1MDAKCiAgICBmZHQ6IGRvIGJvYXJkIHNldHVwIGJhc2VkIG9uIGZkdCBhZGRyZXNzIHNwZWNpZmllZCBvbiBib290bSBsaW5lCgogICAgVGhlIGxhc3QgZmR0IHBhdGNoIHRvIGJvb3RtIGRpZCBib2FyZCBzZXR1cCBiYXNlZCBvbiB0aGUgYWRkcmVzcwogICAgc3BlY2lmaWVkIGJ5IGEgcHJpb3IgZmR0IGFkZHJlc3MgY29tbWFuZCBpbnZvY2F0aW9uLiAgVGhlIGJvb3RtCiAgICBjb2RlLCBhcyBpdHMgY2FsbCB0byBmZHRfY2hvc2VuIGRvZXMsIHNob3VsZCB1c2UgdGhlIGZkdCBzcGVjaWZpZWQKICAgIGJ5IHRoZSB1c2VyIG9uIHRoZSBib290bSBjb21tYW5kLiAgTm90ZSB0aGlzIHJlc3RvcmVzIGZ1bGwKICAgIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSA4MzYwJ3MgZXhpc3RpbmcgZGVmYXVsdCBib290IGVudmlyb25tZW50CiAgICB2YWx1ZXMsIGUuZy4gJ3J1biBuZnNib290JyAoaS5lLiBubyBoYXZpbmcgdG8gJ2ZkdCBhZGRyICRmZHRhZGRyJwogICAgYmVmb3JlIGJvb3RpbmcgYSBrZXJuZWwpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTEyNWEyZmZjMjA5ZGQzNDc5NGUzMjZjNzE3NTY1ODI1M2JlYWRmMwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMjA6NDA6MzkgMjAwNyAtMDQwMAoKICAgIENhbGwgZnRfYm9hcmRfc2V0dXAoKSBmcm9tIHRoZSBib290bSBjb21tYW5kLgoKICAgIEluIHRoZSBwYXRjaCB0aXRsZWQgIkNyZWF0ZSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZC4uLiIgSSByZW1vdmVkIHRoZQogICAgY2FsbCB0byBmdF9ib2FyZF9zZXR1cCgpIGZyb20gdGhlIHJvdXRpbmUgZmR0X2Nob3NlbigpLCBidXQgSSBmb3Jnb3QKICAgIHRvIGFkZCBhIGRpcmVjdCBjYWxsIGJhY2sgaW50byBjbWRfYm9vdG0uYwoKICAgIFRoaXMgZml4ZXMgdGhlIG92ZXJzaWdodCBieSBhZGRpbmcgdGhlIGRpcmVjdCBjYWxsIHRvIHRoZSBib290bSBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZmQ2MWU1NWRkOGNiNTJjZTNmZjkxYjM5MTdhZjI2ZTI0YjZiMDg0NQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMjM6MjU6MjggMjAwNyAtMDQwMAoKICAgIENyZWF0ZSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZCwgZml4IGJ1ZyBwYXJzaW5nIFtdIGZvcm0gb2Ygc2V0IHZhbHVlcy4KCiAgICBQcmV2aW91c2x5IGZ0X2JvYXJkX3NldHVwKCkgd2FzIGNhbGxlZCBieSBmZHRfY2hvc2VuKCkgd2hpY2ggd2FzIG5vdAogICAgcmVhbGx5IGNvcnJlY3RseSBzdHJ1Y3R1cmVkLiAgVGhpcyBzcGxpdHMgZnRfYm9hcmRfc2V0dXAoKSBvdXQgYnkgY3JlYXRpbmcKICAgIGEgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQuCgogICAgRml4IGEgYnVnIHdoZW4gcGFyc2luZyBmZHQgc2V0IGNvbW1hbmQgdmFsdWVzIHdoaWNoIGhhdmUgdGhlIHNxdWFyZQogICAgYnJhY2tldCBmb3JtIFswMCAxMSAyMiAzM10gLSB0aGUgbGVuZ3RoIHdhcyB1cGRhdGVkIGluY29ycmVjdGx5IGluIHdoZW4KICAgIHBhcnNpbmcgdGhhdCBmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNmYzNWRlZDllODU0OTM1OTVlMGViNjZhODJiNTAyYTk1MzI2ZDA0OQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMjA6NTU6NTggMjAwNyAtMDQwMAoKICAgIFRpZ2h0ZW4gdXAgdGhlIGVycm9yIG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYzQ1ODc0YjA1YWFlODk3YTZjMjlkMWE5N2Q0YmI3MDhmY2EyNzU2YwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTk6NTI6MjMgMjAwNyAtMDQwMAoKICAgIEFzdGhldGljIGltcHJvdmVtZW50czogZXJyb3IgbWVzc2FnZXMgYW5kIGxpbmUgbGVuZ3Rocy4KCiAgICBUaWdodGVuIHVwIHRoZSBlcnJvciBtZXNzYWdlcywgc3BsaXQgb3Zlcmxlbmd0aCBsaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDM1ZWMzOThmMTZlMTdkZjYwMGVkYzFiMzhjMWU5ZTYyYzE1YzlhYTEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgTWF5IDI1IDIyOjA4OjU3IDIwMDcgLTA0MDAKCiAgICBGaXggZmR0X2Nob3NlbigpIHRvIGNhbGwgZnRfYm9hcmRfc2V0dXAoKSwgY2xlYW4gdXAgbG9uZyBsaW5lcy4KCiAgICBUaGUgZmR0X2Nob3NlbigpIGZ1bmN0aW9uIHdhcyBhZGRpbmcvc2V0aW5nIHNvbWUgcHJvcGVydGllcyBhZC1ob2MKICAgICAgaW1wcm9wZXJseSBhbmQgZHVwbGljYXRlZCAocG9vcmx5KSB3aGF0IHdhcyBkb25lIGluIGZ0X2JvYXJkX3NldHVwKCkKCiAgICBDbGVhbiB1cCBsb25nIGxpbmVzIChzZXR0aW5nIHByb3BlcnRpZXMsIHByaW50aW5nIGVycm9ycykuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwNmUxOWEwNzcwMWM5NjhmMTVkNzJjMDgzYjU4NzJhMWExMWM3YjAxCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIE1heSAyMSAyMzoyNzoxNiAyMDA3IC0wNDAwCgogICAgRm9yIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLCBoYW5kbGUgdGhlIHJvb3QgcGF0aCBwcm9wZXJseS4KCiAgICBBbHNvIHJlbW92ZXMgdGhlIHNwZWNpYWwgY2FzZSByb290IHBhdGggZGV0ZWN0aW9uIGluIGNtZF9mZHQuYyBzaW5jZSBpdAogICAgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDk2NzVlZTcyMDhhYjk2NWQxM2VhOGQ4MjYyZDc3YWM0MTYwZWY1NDkKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgTWF5IDE3IDIzOjU0OjM2IDIwMDcgLTA0MDAKCiAgICBBZGQgZmR0X2ZpbmRfbm9kZV9ieV90eXBlKCkgYW5kIGZkdF9maW5kX2NvbXBhdGlibGVfbm9kZSgpIHRvIExJQkZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMWE4NjExNjliYzM3NThmOWRlM2FlYWQ2MmIwNTg3MzZjNjg5MTI0NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBKdW4gNiAyMjo0Nzo1OCAyMDA3IC0wNDAwCgogICAgUmVwbGFjZSBmZHRfbm9kZV9vZmZzZXQoKSB3aXRoIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLgoKICAgIFRoZSBuZXcgbmFtZSBtYXRjaGVzIG1vcmUgY2xvc2VseSB0aGUga2VybmVsJ3MgbmFtZSwgd2hpY2ggaXMgYWxzbwogICAgYSBtdWNoIGJldHRlciBkZXNjcmlwdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGFkZGQ4Y2U4MzA3OGMyNWYwZWNhNWYyM2FkYmRmYzY0Y2E1MGEyNDMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgTWF5IDE2IDIyOjM5OjU5IDIwMDcgLTA0MDAKCiAgICBGaXggY21kX2ZkdCBsaW5lIGxlbmd0aHMsIHJlZmFjdG9yIGNvZGUuCgogICAgQnJlYWsgbGluZXMgdGhhdCB3ZXJlIGdyZWF0ZXIgdGhhbiA4MCBjaGFyYWN0ZXJzIGluIGxlbmd0aC4KICAgIE1vdmUgdGhlIGZkdCBwcmludCBhbmQgcHJvcGVydHkgcGFyc2luZyBjb2RlIHRvIHNlcGFyYXRlIHN0YXRpYyBmdW5jdGlvbnMKICAgICAgdG8gcmVkdWNlIGNvZGluZyBjbHV0dGVyIGluIHRoZSBmZHRfY21kIGhhbmRsaW5nIGJvZHkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyNTExNDAzM2FiMjE3ODg4MTBjNDhiYTRkZjEwM2I2NDlkYTEyMjNiCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1heSAxMiAwOTo0NzoyNSAyMDA3IC0wNDAwCgogICAgRkRUIGNvbW1hbmQgaW1wcm92ZW1lbnRzLgoKICAgIEZpeCAiZmR0IHNldCIgc28gdGhhdCBpdCB3aWxsIGNyZWF0ZSBhIG5vbi1leGlzdGluZyBwcm9wZXJ0eS4KICAgIEFkZCAiZmR0IG1rbm9kZSIgdG8gY3JlYXRlIG5vZGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMzhlYjUwOGU4ZTgxMWUyZTU3NjI4ZjQ0NWRlM2EyNGEyM2M3ZDgwNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXkgMTIgMDk6NDU6NDYgMjAwNyAtMDQwMAoKICAgIFJlb3JnYW5pemUgYW5kIGZpeCBwcm9ibGVtcyAocmV0dXJucykgaW4gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgRG8gKk5PVCogcmV0dXJuIGFmdGVyIHRoZSAicG9pbnQgb2Ygbm8gcmV0dXJuIiBoYXMgYmVlbiBwYXNzZWQuCiAgICAgIElmIHNvbWV0aGluZyBnb2VzIHdyb25nLCB0aGUgYm9hcmQgbXVzdCBiZSByZXNldCBhZnRlciB0aGF0IHBvaW50LgogICAgTW92ZSB0aGUgIlRyYW5zZmVycmluZyBjb250cm9sIHRvIExpbnV4IiBkZWJ1ZyBtZXNzYWdlIGJhY2sgdG8gd2hlcmUgaXQKICAgICAgYmVsb25nczoganVzdCBiZWZvcmUgdHJhbnNmZXJyaW5nIGNvbnRyb2wgdG8gbGludXguCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA4OWM4NzU3ZDhmMjEzYzQ3NzA5YmRjNGVmZTA2OTUyNjNhNjA4MGE2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIE1heSA4IDIxOjI3OjM1IDIwMDcgLTA0MDAKCiAgICBGaXggYnVncyBpbiB0aGUgQ09ORklHX09GX0xJQkZEVAoKICAgIFN0dXBpZCBjb2RpbmcgbWlzdGFrZXMgKGlkZW50aWZpZWQgYnkgVGltdXIgVGFiaSwgdGhhbmtzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDZiZTA3Y2MxY2E0NTgyNzhjODVlY2RiZjFhMDUzNmNmZjRjNzAxZWMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIyOjQ3OjE1IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGZkdCBtb3ZlIGxlbmd0aCBoYW5kbGluZy4KCiAgICBNYWtlIHRoZSBsZW5ndGggcGFyYW1ldGVyIG9wdGlvbmFsOiBpZiBub3Qgc3BlY2lmaWVkLCBkbyB0aGUgbW92ZSB1c2luZwogICAgdGhlIGN1cnJlbnQgc2l6ZSB1bmNoYW5nZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBiYjkzMGU3NmZlYTZjZjg5Y2EyZDk4ZTJmN2M3YTYwNDNkNzkzMjdkCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMjoyMzozNiAyMDA3IC0wNDAwCgogICAgTWlub3IgY29kZSBjbGVhbiB1cC4KCiAgICBEZWNsYXJlIHRoZSB2YXJpYWJsZSBmZHQgcHJvcGVybHkgYXMgZXh0ZXJuLgogICAgQ2FsbCB0aGUgInNldF9mbiIgZnVuY3Rpb24gcG9pbnRlciB0aGUgInNob3J0IHdheSIgd2l0aG91dCB0aGUgZnVsbAogICAgICBkZXJlZmVyZW5jaW5nIHN5bnRheC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGJhMjRlMmFjM2JkYjVjNDg5ZjNjNzg3ZTc1NDJiNjQ3NGM0ZDY1YzYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIxOjI0OjI3IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGVycm9yIG1lc3NhZ2VzLCBtb3JlIGluZm9ybWF0aXZlLgoKICAgIFByaW50IG1vcmUgdGhhbiB0aGUgcmF3IGxpYmZkdCBlcnJvciBtZXNzYWdlIHN0cmluZ3MuICBUaGlzIGlzIGVzcGVjaWFsbHkKICAgIHVzZWZ1bCBmb3IgY2x1aW5nIGluIHRoZSB1c2VyIHdoZW4gdGhlIGJvb3RtIGNvbW1hbmQgYWJvcnRzIGR1ZSB0bwogICAgYmxvYiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDgwOTZiM2I4Zjc3MmMxODk0ZGRlZGE5ZGJjZWZmNmE4ODI2NDczYTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDIwIDIyOjQ2OjUzIDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IENvbmRpdGlvbmFsbHkgY29tcGlsZSBiYXNlZCBvbiBDT05GSUdfT0ZfTElCRkRUCgogICAgVGhpcyBpcyB0aGUgd2F5IHUtYm9vdCByZWR1Y2VzIGNvbmZpZ3VyZWQtb3V0IGNvZGUuICBBdCBXb2xmZ2FuZwogICAgR3JhbmRlZ2dlciBhbmQgV29sZmdhbmcgRGVuaydzIHJlcXVlc3QsIG1ha2UgbGliZmR0IGNvbmZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5MjNlZmQyODY0MTFlZDA1MmQ5ZTA3NGY1OWY4OTg2ZDYwODEwNjFjCkF1dGhvcjogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE0OjU0OjQ3IDIwMDcgLTA3MDAKCiAgICBhZGQgaW1hZ2Ugc2l6ZSBhbmQgZGVzY3JpcHRvcnMgZm9yIFNwYXJ0YW4gM0UgRlBHQSBjaGlwcwoKICAgIFNwYXJ0YW4gM0UgaW1hZ2Ugc2l6ZXMgdGFrZW4gZnJvbSBUYWJsZSAxLTQgaW4gWGlsaW54IFVHMzMyICh2MS4xKQoKICAgIFNpZ25lZC1vZmYgYnk6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KCmNvbW1pdCBmYjU2NTc5ZmZlN2VmMzI3NWI3MDM2YmI3YjkyNGU1YTBkMzJiZDcwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNTozNDo0OCAyMDA3IC0wNTAwCgogICAgbWFrZSBNQUtFQUxMIG1vcmUgaW1tdW5lIHRvIG1lcmdlIGNvbmZsaWN0cwoKICAgIC4uYnkgcGxhY2luZyBib2FyZCBlbnRyaWVzIG9uZSBwZXIgbGluZSwgYXMgc3VnZ2VzdGVkIGJ5IGpkbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2MjgxMTRlYzU2NGY5NjlmMzRiNWY3MTA1ZmJkMTY4Y2I4YzljM2YKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDEzOjI4OjI1IDIwMDcgLTA1MDAKCiAgICBSRUFETUU6IFJlbW92ZSBvdXRkYXRlZCBjcHUgdHlwZSwgYm9hcmQgdHlwZSwgYW5kIE5BTUVfY29uZmlnIGxpc3RzCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWJiNTk5MTJkMjFhYWNiNTA3ZWI4MWZkMjFmYjdhZjY1MGM3MDZjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE1OjQ4OjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBTdXBwcmVzcyB0aGUgd2FybmluZyAnYnVyc3RsZW4nCgogICAgc3VwcHJlc3MgdGhlIHdhcm5pbmcgJ2J1cnN0bGVuJyBvZiBzcGRfc2RyYW0uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjQ2YmJhNjQ2NWE0NWM2MDc0NmQ0Y2MxNjAyY2QwNmMxOTYwZjJkCkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDE1OjExOjAzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU0JDODY0MUQuIENvbmZpZyBmaWxlcy4KCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg2NDFEIHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgQWNrZWQtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YWMyNzMyNzFkNTczMjFmOTA1MDVjN2E1MWNkYjFlZjIxMTNiNjI4CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDE1OjEwOjUzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU0JDODY0MUQuICBCb2FyZCBmaWxlcy4KCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg2NDFEIHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgQWNrZWQtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMmMwYWI0YWZmODY2MjJiODM3YTQ4YTBlNTYwMzUxZjlhZmFmYjk1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDIwOjM0OjU4IDIwMDcgKzAyMDAKCiAgICBDb25kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzc0YjIxMDhlMzFmZTA5YmQxYzVkMjkxYzNjZjM2MDUxMGQ0ZjEzZQpBdXRob3I6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgpEYXRlOglGcmkgQXVnIDEwIDIwOjI2OjE4IDIwMDcgKzAyMDAKCiAgICBbQVJNXSBUSSBEYVZpbmNpIHN1cHBvcnQsIGhvcGVmdWxseSBmaW5hbAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIERhVmluY2kgYm9hcmRzOgogICAgLSBEVl9FVk0KICAgIC0gU0NITU9PR0lFCiAgICAtIFNPTkFUQQoKICAgIENoYW5nZXM6CgogICAgLSBTcGxpdCBpbnRvIHNlcGFyYXRlIGJvYXJkIGRpcmVjdG9yaWVzCiAgICAtIFJlbW92ZWQgY2hhbmdlcyB0byBNVERfREVCVUcgKG9yIHdoYXRldmVyIGl0J3MgY2FsbGVkKQogICAgLSBOZXcgQ09ORklHX0NNRCBwYXJ0eSBsaW5lIGZvbGxvd2VkCiAgICAtIFNvbWUgY29zbWV0aWMgZml4ZXMsIGNsZWFudXAgZXRjLgogICAgLSBQYXRjaGVzIGFnYWluc3QgdGhlIGxhdGVzdCBVLUJvb3QgdHJlZSBhcyBvZiBub3cuCiAgICAtIEZpeGVkIENPTkZJR19DTURfTkVUIGluIG5ldCBmaWxlcy4KICAgIC0gRml4ZWQgQ09ORklHX0NNRF9FRVBST00gZm9yIHNjaG1vb2dpZS4KICAgIC0gTWFkZSBzdXJlIGl0IGNvbXBpbGVzIGFuZCB3b3JrcyAoZm9yY2VlbnYoKSBsaW5rIHByb2JsZW0pIG9uIFNDSE1PT0dJRSBhbmQKICAgICAgIERWX0VWTS4gQ2FuJ3QgY2hlY2sgaWYgaXQgd29ya3Mgb24gU09OQVRBLCBkb24ndCBoYXZlIGEgYm9hcmQgYW55IG1vcmUsCiAgICAgICBidXQgaXQgYXQgbGVhc3QgY29tcGlsZXMuCgogICAgSGVyZSBpcyBhbiBleGNlcnB0IGZyb20gc2Vzc2lvbiBsb2cgb24gU0NITU9PR0lFLi4uCgogICAgVS1Cb290IDEuMi4wLWc2YzMzYzc4NS1kaXJ0eSAoQXVnICA3IDIwMDcgLSAxMzowNzoxNykKCiAgICBEUkFNOiAgMTI4IE1CCiAgICBOQU5EOiAgMTI4IE1pQgogICAgSW46ICAgIHNlcmlhbAogICAgT3V0OiAgIHNlcmlhbAogICAgRXJyOiAgIHNlcmlhbAogICAgQVJNIENsb2NrIDogMjk3TUh6CiAgICBERFIgQ2xvY2sgOiAxNjJNSHoKICAgIEVUSCBQSFkgICA6IERQODM4NDggQCAweDAxCiAgICBVLUJvb3QgPiBpcHJvYmUKICAgIFZhbGlkIGNoaXAgYWRkcmVzc2VzOiAxQiAzOCAzQSAzRCAzRiA1MCA1RCA2RgogICAgVS1Cb290ID4gcGluZyAxOTIuMTY4LjI1My4xMAogICAgaG9zdCAxOTIuMTY4LjI1My4xMCBpcyBhbGl2ZQogICAgVS1Cb290ID4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KICAgIEFja2VkLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmU0ZDk0ZjFlM2MyOTYxNDI4OTY3YTMzYjZmZjI1MjA1NjgzOTFiMwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDUgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCBjbGVhbnVwLgoKICAgIERvIG5vdCBlbmFibGUgbm9ybWFsIGVycm9ycyBjcmVhdGVkIGR1cmluZyBwcm9iZSAobWFzdGVyIGFib3J0LCBwZXJyLAogICAgYW5kIHBjaWUgSW52YWxpZCBDb25maWd1cmF0aW9uIGFjY2VzcykuCgogICAgQWRkIENPTkZJR19QQ0lfTk9TQ0FOIGJvYXJkIG9wdGlvbiB0byBwcmV2ZW50IGJ1cyBzY2FuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkzNmIzZTY5YjY2N2MzZWI5YTYxZWNlNGU3ODY0N2QzZmNlOWZjMmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ0IDIwMDcgLTA1MDAKCiAgICBwY2lhdXRvX3NldHVwX2RldmljZSBiYXJzX251bSBmaXgKCiAgICBQYXNzaW5nIGJhcnNfbnVtPTAgdG8gcGNpYXV0b19zZXR1cF9kZXZpY2Ugc2hvdWxkIGFzc2lnbiBubyBiYXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjBiMTg1ZTU4Y2EwYWVjOGFlMmIyYTg4MDRlYzBlZjU4ZWUyMWQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyA2IDE3OjM5OjQ0IDIwMDcgLTA1MDAKCiAgICA4NjQxaHBjbjogRG8gY29ycmVjdCBzaXplZCBwb2ludGVyIG1hdGguCgogICAgV2hlbiBJIHJlYmFzZWQgRWQncyBwYXRjaCBhbmQgY2xlYW5lZCB1cCBhIGZldyBjb21waWxhdGlvbgogICAgcHJvYmxlbXMsIEkgYXBwYXJlbnRseSByZWJhc2VkIG15IGJyYWluIG9uIGNyYWNrIGZpcnN0LgogICAgRml4IHRoYXQgYnkgZG9pbmcgKGNoYXIgKikgc2l6ZWQgcG9pbnRlciBtYXRoIGFzIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmYzdhN2Y1YmIzMjczYzk5NTExNzNjNzg4MDAxZDQ1MTE4ZjE0MWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIgMTQ6NDI6MjAgMjAwNyAtMDUwMAoKICAgIGNwdS84Nnh4IGZpeGVzLgoKICAgIFJlbW92ZSByZXYgMSBmaXhlcy4KICAgIEFsd2F5cyBzZXQgUElDR0NSX01PREUuCiAgICBFbmFibGUgbWFjaGluZSBjaGVjayBhbmQgcHJvdmlkZSBib2FyZCBjb25maWcgb3B0aW9uCiAgICB0byBzZXQgYW5kIGhhbmRsZSBTb0MgZXJyb3IgaW50ZXJydXB0cy4KCiAgICBJbmNsdWRlIE1TU1NSMCBpbiBlcnJvciBtZXNzYWdlLgoKICAgIElzb2xhdGUgYSBSQU1CT09UIGJpdCBvZiBjb2RlIHdpdGggI2lmZGVmIENGR19SQU1CT09ULgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1ZDIyZjk1N2E4NWEyMmJiM2NkMWFkMDg0ZmE1NDA0NjIwZDFjNDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMTA6NDI6MjUgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhNmQ1NmMyMDk4OWZlMjczNjBhZmU3NDNiZDJhN2FkNGQ3NmU0OGYKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgQXVnIDIgMTc6NDI6MDggMjAwNyArMDIwMAoKICAgIE1ha2UgdXNlIG9mIGdlbmVyaWMgNjRiaXQgZGl2aXNpb24gaW4gbmFuZF91dGlsLmMKCiAgICBVc2UgZ2VuZXJpYyA2NGJpdCBkaXZpc2lvbiBpbiBuYW5kX3V0aWwuYy4gVGhpcyBtYWtlcyBuYW5kX3V0aWwuYwogICAgaW5kZXBlbmRlbnQgb2YgYW55IHRvb2xjaGFpbiA2NGJpdCBkaXZpc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCBmN2MwODZlOTRlOGNlOWFhZDcyNjhhZjk3ZjczYWE2ODg0Njg2ZjI3CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE3OjQxOjE0IDIwMDcgKzAyMDAKCiAgICBNb3ZlIDY0Yml0IGRpdmlzaW9uIGZyb20gYXZyMzIgdG8gZ2VuZXJpYyBsaWIKCiAgICBNb3ZlIHRoZSA2NGJpdCBkaXZpc2lvbiBmcm9tIGxpYl9hdnIzMiB0byBsaWJfZ2VuZXJpYy4gV2l0aCB0aGlzLCBhbGwKICAgIGJvYXJkcyBjYW4gZG9fZGl2L19fZGl2NjRfMzIgaWYgbmVlZGVkLCBub3Qgb25seSBhdnIgb25lLiBDb2RlIGlzIHB1dAogICAgdG8gbGliX2dlbmVyaWMsIHNvIG5vIGxhcmdlciBtZW1vcnkgZm9vdHByaW50IGlmIG5vdCB1c2VkLiBObyBjb2RlCiAgICBtb2RpZmljYXRpb25zLiBUaGFua3MgZm9yIHByb3Bvc2FsIGJ5IEjDpXZhcmQgU2tpbm5lbW9lbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCAxNTdjZGE0ZDBjM2Q1OTJjY2JiMTliYmZjMDdkOTI1MTg5NGYwODk0CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozMToyMiAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNmU1ZGUyNmM2ZTc1ODBmYWYxNmU4Nzc0NWNkNDg4YjkyYjQ5MmQwYwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MzA6MzMgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTQgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGU4Mzk3ZmM3OGM5Mzk0ZDcxZGUyMzNhNGQ4MTBmYmM5MDQ3ZTRjNzYKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjM4OjI2IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBjb21tb24gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGFjOTgyZWE1YTRmMmY5OTNlZmNmNTJkY2ExMjJmNWE1OWRmMDQ3ZDgKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI4OjQ0IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBtYWtlIHJlbGF0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDEzN2ZkZDlmNDc0ZWNiODUzZWZkYWNlNTIwMDU3NjMwOGM2N2YxOGQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI4OjAzIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U1IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNzE0YmM1NWIzNWI2ZjZhNjVjYzg3NDBhMzg0MmE1NDNlODhjZGVmMgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjc6MTUgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTQgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxODk0ZGQzODExMjRiZGJmYmRhZTdjZjNhNmNhNTJhOGViMWY0NDIxCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyNTozMSAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogUkVBRE1FcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNjQxY2NhOTU2OWNlMzUxZGRiMjg3ZmQzMzQzZDhiMWRjYjU5MWRiNApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mzc6NDAgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEluZnJhc3RydWN0dXJlCgogICAgVGhpcyBzZXJpZXMgb2YgcGF0Y2hlcyBhZGRzIHN1cHBvcnQgZm9yIDIgYm9hcmRzIGZyb20gTmV0c3RhbCBNYXNjaGluZW4uCgogICAgVGhlIEhDVTQgaGFzIGEgUFBDNDA1R3ByIGFuZAogICAgdGhlIEhDVTUgaGFzIGEgUFBDNDQwRVBYLgoKICAgIFRoZSBIQ1U0IGhhcyBhIHNvbWVob3cgY29tcGxpY2F0ZWQgZmxhc2ggc2V0dXAsIGFzIHRoZSBib290ZXByb20gaXMKICAgIG9ubHkgOCBiaXRzIGFuZCB0aGUgQ0ZJIDE2IGJpdHMgd2lkZSwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZSB0byB1c2UgYSBtb3JlCiAgICBlbGVnYW50IHNvbHV0aW9uLgoKICAgIFRoZSBIQ1U1IGhhcyBvbmx5IGEgYm9vdGVwcm9tIGFzIHRoZSB3aG9sZSBjb2RlIHdpbGwgYmUgZG93bmxvYWRlZCBmcm9tIGEKICAgIGRpZmZlcmVudCBib2FyZCB3aGljaCBoYXMgSEQsIENELVJPTSwgZXRjIGFuZCB3aGVyZSBhbGwgY29kZSBpcyBzdG9yZWQuCgogICAgVGhpcyBpcyBteSB0aGlyZCB0cnkuIEkgaW5jb3Jwb3JhdGVkIGFsbCBzdWdnZXN0aW9ucyBtYWRlIGJ5IFdvbGZnYW5nIGFuZCBTdGVmYW4uCiAgICBUaGFua3MgdGhlbSBhIGxvdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDNlNGM5MGM2MjMzNjE4ZmMxODA2ZTYzZmRlNjhkZjVmM2Q2YTAxNzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMDg6NDI6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBQT1NUIGNvbmZpZ3VyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjljYjI1ZGE1NmFmZTE4Y2Y1ZTcwNzJhOTJhOWQ5OGVhOGFmMWZkNApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAwODoyNToyMiAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIHBwYzR4eCBVQVJUIFBPU1Qgc3VwcG9ydCB3aXRob3V0IGV4dGVybmFsIHVhcnQgY2xvY2sgKGx3bW9uNSkKCiAgICBUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBVQVJUIFBPU1Qgb24gcHBjNDR4LWJhc2VkIGJvYXJkcyB3aXRoIG5vCiAgICBleHRlcm5hbCBzZXJpYWwgY2xvY2tzIGluc3RhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5YzJmZGFiOTFiYzYzM2U0NmZiNDFkYmFhNjI5Zjg3Y2NmNmUwMGYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDYgMTg6MTg6MzQgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBJVFhbR1BdIE89YnVpbGRkaXIgYnVpbGRzCgogICAgbWFrZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYC93b3JrL3dkL3RtcC9ib2FyZC9tcGM4MzQ5aXR4L3UtYm9vdC5sZHMnLCBuZWVkZWQgYnkgYC93b3JrL3dkL3RtcC91LWJvb3QnLiAgU3RvcC4KCiAgICBCb3RoIHRoZSBJVFggYW5kIElUWC1HUCBmYWlsIHdoZW4geW91IHVzZSAibWFrZSBPPTxzb21lIGRpcj4gLi4uIiBvcgogICAgIkJVSUxEX0RJUj08c29tZSBkaXI+IC4vTUFLRUFMTCAuLi4iCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0N2U4YmM4NDY3NTllMDM3YjhhZjBlNWY5YzlmOWNmYTdhMTA1MGMzCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEgMTU6MDA6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvcnJlY3QgdGhlIFJFQURNRSBmb3IgRERSIEVDQwoKICAgIFVwZGF0ZSB0aGUgUkVBRE1FIGZvciBERFIgRUNDLCBjaGFuZ2UgdGhlIG5hbWUKICAgIHRvIFJFQURNRS5tcGM4M3h4LmRkcmVjYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYWFiOGM2N2QyZGVmZWY3M2RjMjZhYjA3ZjBjM2FmZDFiMDVkMDE5CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEgMTU6MDA6MTUgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvbnNvbGlkYXRlIHRoZSBFQ0Mgc3VwcG9ydCBvZiA4M3h4CgogICAgUmVtb3ZlIHRoZSBkdXBsaWNhdGVkIHNvdXJjZSBjb2RlIG9mIGVjYyBjb21tYW5kIG9uIHRoZSA8Ym9hcmQ+LmMsCiAgICBmb3IgcmV1c2VkLCBtb3ZlIHRoZXNlIGNvZGUgdG8gY3B1L21wYzgzeHggZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzNjU3NWM1NDRjZjFiNjk2NTRkOGZiMzM0YmRhNjljNmZmM2RhMzYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBBdWcgNCAxMzozNzozOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29ycmVjdCB0aGUgYnVyc3QgbGVuZ3RoIGZvciBERFIyIHdpdGggMzIgYml0cwoKICAgIFRoZSBidXJzdCBsZW5ndGggc2hvdWxkIGJlIDQgZm9yIEREUjIgd2l0aCAzMiBiaXRzIGJ1cwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWMyNzRjNGUwNWI2ZGM5YjI0ZWRjOGFhNjE4YjAyZjYwN2VlNmVlZApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODMyM0UgUkRCCgogICAgTVBDODMyM0UgYmFzZWQgYm9hcmQgd2l0aCA2NE1CIGZpeGVkIFNEUkFNLCAxNk1CIGZsYXNoLAogICAgZml2ZSAxMC8xMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBhbiBJQ1BsdXMgSVAxNzVDCiAgICBzd2l0Y2gsIG9uZSBQQ0kgc2xvdCwgYW5kIHNlcmlhbC4gIEZlYXR1cmVzIG5vdCBzdXBwb3J0ZWQKICAgIGluIHRoaXMgcGF0Y2ggYXJlIFNEIGNhcmQgaW50ZXJmYWNlLCAyIFVTQiBwb3J0cywgYW5kIHRoZQogICAgdHdvIHBob25lIHBvcnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNDNkOTEwMDlkNTVmYzViM2ZmOGNjOTQwNTk3YWY2YzZhYTFkMzU5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNToyOCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4dXAgZ2VuZXJpYyBwY2kgZm9yIGxpYmZkdAoKICAgIGFkZCBsaWJmZHQgc3VwcG9ydCB0byB0aGUgZ2VuZXJpYyA4M3h4IHBjaSBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTdhYzdhN2IzNzEwOTI0NWI2OWRiODA4MzllYmVlMjYxNzk5NjZhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNToyMiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IDgzNjAgYW5kIGNwdSBmdW5jdGlvbnMgdG8gdXBkYXRlIGZkdCBiZWluZyBwYXNzZWQKCiAgICAuLmFuZCBub3QgdGhlIGdsb2JhbCBmZHQuIFJlbmFtZSBsb2NhbCBmZHQgdmFycyB0byBibG9iIHNvIGFzIG5vdCB0bwogICAgYmUgY29uZnVzZWQgd2l0aCB0aGUgZ2xvYmFsIHZhciB3aXRoIHRoZSBzYW1lIHRocmVlLWxldHRlciBuYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGJlNDA0NDU5YTZiNzM5NTQxNWE1N2JiMzVlODM3N2UzYjJiNWFjYgpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIxOjM0OjI0IDIwMDcgLTA0MDAKCiAgICBtcGM4M3h4OiBGaXggZXJyb3JzIHdoZW4gQ09ORklHX09GX0xJQkZEVCBpcyBlbmFibGVkCgogICAgU2V2ZXJhbCBub2RlIHN0cmluZ3Mgd2VyZSBub3QgY29ycmVjdCAodHJhaWxpbmcgc2xhc2hlcyBhbmQgcHJvcGVydGllcwogICAgICBpbiB0aGUgc3RyaW5ncykKICAgIEFkZGVkIHNldHRpbmcgb2YgdGhlIHRpbWViYXNlLWZyZXF1ZW5jeS4KICAgIEltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIGFuZCB1c2UgZGVidWcoKSBpbnN0ZWFkIG9mIHByaW50ZigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2ZDAyYzliYmFjMTc1MWM1ZTE5Mjk0ZjAwMDEwMGI0OGQ0M2E5MjAKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMToyNzozMCAyMDA3IC0wNDAwCgogICAgbXBjODN4eDogUmVwbGFjZSBmZHRfbm9kZV9vZmZzZXQoKSB3aXRoIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLgoKICAgIFRoZSBuZXcgbmFtZSBtYXRjaGVzIG1vcmUgY2xvc2VseSB0aGUga2VybmVsJ3MgbmFtZSwgd2hpY2ggaXMgYWxzbwogICAgYSBtdWNoIGJldHRlciBkZXNjcmlwdGlvbi4KCiAgICBUaGVzZSBhcmUgdGhlIG1wYzgzeHggY2hhbmdlcyBtYWRlIG5lY2Vzc2FyeSBieSB0aGUgZnVuY3Rpb24gbmFtZSBjaGFuZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWJlMzlhNjdjOWY4ZmVmNzEwN2Y1ZGYwOWQ2NzMwMDVmMDRkMDk2MwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTA6NDE6NTYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgZGlzcGxheSBvZiByZXNldCBzdGF0dXMKCiAgICA4M3h4IHByb2Nlc3NvciBmYW1pbHkgaGFzIG1hbnkgcmVzZXQgc291cmNlcywgc3VjaCBhcwogICAgcG93ZXIgb24gcmVzZXQsIHNvZnR3YXJlIGhhcmQgcmVzZXQsIHNvZnR3YXJlIHNvZnQgcmVzZXQsCiAgICBKVEFHLCBidXMgbW9uaXRvciwgc29mdHdhcmUgd2F0Y2hkb2csIGNoZWNrIHN0b3AgcmVzZXQsCiAgICBleHRlcm5hbCBoYXJkIHJlc2V0LCBleHRlcm5hbCBzb2Z0d2FyZSByZXNldC4KICAgIHNvbWV0aW1lcywgdG8gZmlndXJlIG91dCB0aGUgZmF1bHQgb2Ygc3lzdGVtLCB3ZSBuZWVkIHRvCiAgICBrbm93IHRoZSBjYXVzZSBvZiByZXNldCBlYXJseSBiZWZvcmUgdGhlIHByb21wdCBvZgogICAgdS1ib290IHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmY5NjU4ZDcwNDliZjhjOGU4ZTBhMDVkYmU1ZTlmN2U5MWFhNWE1ZApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTA6NDE6MDQgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYWxpZ24gYnVnIG9mIFNETUEgYnVmZmVyCgogICAgQWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgdXNlciBtYW51YWwsIHRoZSBTRE1BIHRlbXBvcmFyeQogICAgYnVmZmVyIGJhc2UgYWRkcmVzcyBtdXN0IGJlIDRLQiBhbGlnbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY2ZGMyYzJkYzUxZjhiODhiYjhlMjMxYmM4MGNkOTJlYWUxZDY0NzYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEzOjIxOjEyIDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBSZXZpc2UgdGhlIE1QQzgzNjBFTURTIHJlYWRtZSBkb2MKCiAgICBXaGVuIHRoZSByZXYyLnggc2lsaWNvbiBtb3VudCBvbiB0aGUgTVBDODM2MEVNRFMgYmFvcmQsCiAgICBhbmQgaWYgeW91IGFyZSB1c2luZyB0aGUgdS1ib290IHZlcnNpb24gYWZ0ZXIgdGhlIGNvbW1pdAogICAgM2ZjMGJkMTU5MTAzYjUzNmUxYzU0YzZmNDQ1N2EwOWIzYWJhNjZjYS4KICAgIHRvIG1ha2UgdGhlIGV0aGVybmV0IGludGVyZmFjZSB1c2FibGUsIHdlIGhhdmUgdG8gc2V0dXAKICAgIHRoZSBqdW1wZXJzIGNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNzM5YmM5NTc5N2FhYzRmZWZjNGM3NWI1NWM3Yzc4ZTU5ZDNlYTljCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAzIDEzOjQ2OjMyIDIwMDcgLTA1MDAKCiAgICBGU0wgSTJDIGRyaXZlciBwcm9ncmFtcyB0aGUgdHdvIEkyQyBidXNzZXMgZGlmZmVyZW50bHkKCiAgICBUaGUgaTJjX2luaXQoKSBmdW5jdGlvbiBpbiBmc2xfaTJjLmMgcHJvZ3JhbXMgdGhlIHR3byBJMkMgYnVzc2VzIGRpZmZlcmVudGx5LgogICAgVGhlIHNlY29uZCBJMkMgYnVzIGhhcyBpdHMgc2xhdmUgYWRkcmVzcyBwcm9ncmFtbWVkIGluY29ycmVjdGx5IGFuZCBpcwogICAgbWlzc2luZyBhIDUtdXMgZGVsYXkuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGYzM2Y2YjRkNmQ2MzY5M2RkOTIwMDgwOGIyNDJkZTFiODZjYjhlOApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMyAxMzowNDozNCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIFNDQ1IgcHJvZ3JhbW1pbmcgaW4gY3B1X2luaXRfZigpIHRvIHN1cHBvcnQgYWxsIDgzeHggcHJvY2Vzc29ycwoKICAgIFVwZGF0ZSB0aGUgY3B1X2luaXRfZigpIGZ1bmN0aW9uIGluIGNwdS9tcGM4M3h4L2NwdV9pbml0LmMgdG8gcHJvZ3JhbSB0aGUKICAgIGJpdGZpZWxkcyBmb3IgYWxsIDgzeHggcHJvY2Vzc29ycy4JVGhlIGNvZGUgdG8gdXBkYXRlIHNvbWUgYml0ZmllbGRzIHdhcwogICAgY29tcGlsZWQgb25seSBvbiBzb21lIHByb2Nlc3NvcnMuICBOb3csIHRoZSBiaXRmaWVsZHMgYXJlIHByb2dyYW1tZWQgYXMgbG9uZwogICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgQ0ZHX1NDQ1Igb3B0aW9uIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGhlYWRlciBmaWxlLgogICAgVGhpcyBtZWFucyB0aGF0IHRoZSBib2FyZCBoZWFkZXIgZmlsZSBzaG91bGQgbm90IGRlZmluZSBhbnkgQ0ZHX1NDQ1IgbWFjcm9zCiAgICBmb3IgYml0ZmllbGRzIHRoYXQgZG9uJ3QgZXhpc3Qgb24gdGhhdCBwcm9jZXNzb3IsIG90aGVyd2lzZSB0aGUgU0NDUiB3aWxsIGJlCiAgICBwcm9ncmFtbWVkIGluY29ycmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NDYyNjY5OTlmMGI5YjUxMzcyNjM2NjE0MjExYjg4ZDkwZjBmMjUKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJRnJpIEp1biAyMiAxMzowNDoyMiAyMDA3ICswMjAwCgogICAgVFFNODM0eDogY2xlYW51cCBjb25maWd1cmF0b24KCiAgICBSZW1vdmUgaXJyaXRhdGluZyAjdW5kZWYgREVCVUcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWQ0OTdlNmJmMGY1YmY2MzcyOWI0YTQ3YjNmZDc4NmQzYzc3YTFiYwpBdXRob3I6IGRhdmlkLnNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxOCAwOTowOTo1MyAyMDA3IC0wNzAwCgogICAgTVBDODN4eDogRml4IG1ha2VmaWxlIHRvIGdlbmVyYXRlIGNvbmZpZy5oIGZpbGUgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeQoKICAgIE1QQzgzeHg6IEZpeCB0aGUgTWFrZWZpbGUgY29uZmlnIHNlY3Rpb25zIHRvIGdlbmVyYXRlIHRoZSBpbmNsdWRlL2NvbmZpZy5oCiAgICBmaWxlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkgaW5zdGVhZCBvZiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkZWQwMjQyZTQzNzI1OTM2Njc5MmQ1MmI3ZTlkMWUxOTMxZDhmYTUKQXV0aG9yOiBMZWUgTmlwcGVyIDxMZWUuTmlwcGVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMTQgMjA6MDc6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciA4MzYwIHNpbGljb24gcmV2aXNpb24gMi4xCgogICAgVGhpcyBjaGFuZ2UgYWRkcyA4MzYwIHNpbGljb24gcmV2aXNpb24gMi4xIHN1cHBvcnQgdG8gdS1ib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIyODA2NDY5YThmMmI2OWM4MjlmNGZkNTM2MWZkZWJkMGNiMDFiNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBdWcgOCAwNDoxNDoyOCAyMDA3IC0wNTAwCgogICAgVHJlYXQgcHBjNjQgaG9zdCBhcyBwcGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkYzQyNzliMDhmZjgyNDcyYmVjMmUyYzkwODU4NjAyNDU5ZmViZTgKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDggMDk6MDE6NDYgMjAwNyArMDgwMAoKICAgIE1pbm9yIGZpeCBmb3IgYmlvcyBlbXVsYXRvciBtYWtlZmlsZQoKICAgIEFkZCAkKG9iaikgdG8gTElCIGF2b2lkaW5nIG9iamVjdHMgYmUgYnVpbHQgaW4gdGhlIHNvdXJjZSBkaXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlOTgxZGM4NTdhZGZjODAzNmNhMmY2ZDVkNWEwNmMyYThhYTc3ZDYKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDggMDg6MzM6MTEgMjAwNyArMDgwMAoKICAgIEFkZCBDT05GSUdfQklPU0VNVSBkZWZpbmUgdG8gZ3VhcmQgYWxsIHRoZSBiaW9zIGVtdWxhdG9yIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBjb21waWxlIGlzc3VlIG9uIHRoZSBib2FyZCB0aGF0IGRpZCBub3QgZW5hYmxlIHRoZSBiaW9zIGVtdWxhdG9yCgpjb21taXQgZWQ4MTA2NDMzNTIyZjJlYTg5MzNlOTgwODM0Njg2MGQwNjFkNzczMQpBdXRob3I6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgpEYXRlOglUdWUgSnVsIDMxIDEyOjI3OjI1IDIwMDcgLTA1MDAKCiAgICB0c2VjOiBmaXggbXVsdGlwbGUgUEhZIHN1cHBvcnQKCiAgICBUaGUgY2hhbmdlIGVudGl0bGVkICJSZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4IgogICAgYnJva2UgbXVsdGlwbGUgUEhZIHN1cHBvcnQgaW4gdHNlYy5jLiAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGNiODRiNzIwOGFkZTBiYmViYmViNTZiZWM5YzJjNjRmOGIyZWVkZQpBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAwOTowODoxOCAyMDA3IC0wNTAwCgogICAgdHNlYzogQWxsb3cgVGVuIEJpdCBJbnRlcmZhY2UgYWRkcmVzcyB0byBiZSBjb25maWd1cmFibGUKCiAgICBBbGxvdyB0aGUgYWRkcmVzcyBvZiB0aGUgVGVuIEJpdCBJbnRlcmZhY2UgKFRCSSkgdG8gYmUgY2hhbmdlZCBpbiB0aGUKICAgIGV2ZW50IG9mIGEgY29uZmxpY3Qgd2l0aCBhbm90aGVyIGRldmljZS4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgoKY29tbWl0IDNiYTRjMmQ2OGY2NTQxZGI0Njc3YjRhZWExMjA3MWY1NmU2ZmY2ZTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgOCAwOTo1NDoyNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQxZGUxZjBkMzczZTA5Yzc4MmRlYTU1ODM4NWEwNjI0NzExMWJhNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA1OjE1OjE4IDIwMDcgLTA1MDAKCiAgICBQb3J0IGVuYWJsZWQgZm9yIEkyQyBzaWduYWxzIGFuZCBjaGlwc2VsZWN0cyBwb3J0IGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhMzNjZTY1YTRjNTFhNjkxOTBkZDhjNDA4ZjllMWM2MmE2NmU5NGYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNDozMToxOCAyMDA3IC0wNTAwCgogICAgQWRkZWQgTkFORCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhZjllNDQ3YmViM2U0OTg4MThlZjhhZDBiOGMxNTk3Y2Q1MDYxNDkKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNDoxMToyMCAyMDA3IC0wNTAwCgogICAgQWRkZWQgSTJDIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTljMDNjMTc1ZDI2ODkwOTMxNzZmYWNmMTdjNThjZTJjYjMyMDAwMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjU4OjUyIDIwMDcgLTA1MDAKCiAgICBDaGFuZ2VkIENGR19DTEsgdG8gZ2QtPmJ1c19jbGsgZm9yIENGR19USU1FUl9QUkVTQ0FMRVIuIEFkZGVkIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGZvciB0aW1lLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGQxZDY2YWY1NGQzMDVkZTI5ZDBiYmY0YWE4YzllNjM3NWY3ZjczMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjU1OjIxIDIwMDcgLTA1MDAKCiAgICBBZGRlZCB1YXJ0X2dwaW9fY29uZigpIGluIHNlcmlhbF9pbml0KCksIHNlcGVyYXRlZCB1YXJ0IHBvcnQgY29uZmlndXJhdGlvbiBmcm9tIGNwdV9pbml0KCkgdG8gdWFydF9ncGlvX2NvbmYoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZmRlODRhNDRiN2U1NzVlYTgwZmUwZTJkNWJlM2I2ZjczZDFlNjMwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NDM6MzAgMjAwNyAtMDUwMAoKICAgIE1vdmVkIHN5bmMoKSBmcm9tIGJvYXJkIGZpbGUgdG8gaW5jbHVkZS9hc20tbTY4ay9pby5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDllNzM3ZDg0NzZlN2Q2YTU5NmQxNmNhYWY2YTM4NTNhOWExMTkwYTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzozMDo0NCAyMDA3IC0wNTAwCgogICAgRGVjbGFyZWQgYXR0cmlidXRlcyBvZiB2b2lkIF9fbWlpX2luaXQodm9pZCkgYXMgYW4gYWxpYXMgZm9yIGludCBtaWlfaW5pdCh2b2lkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTk4YmQzN2VhZDg1ZTkzOTUzNTU5NzIwNzEwZDNiMDY4NWM4MWU2CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6MTk6MTAgMjAwNyAtMDUwMAoKICAgIFJlbmFtZWQgQ09ORklHX01DRlNFUklBTCB0byBDT05GSUdfTUNGVUFSVAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YzRjMzcyMmEzOGQ0MGIwY2Y1MzdkZGFlNzJiMDRmNDA4OGIxOTBjCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA3IDE2OjE3OjA2IDIwMDcgKzA4MDAKCiAgICBBZGQgQ09ORklHX0JJT1NFTVUgZGVmaW5lIHRvIGd1YXJkIGFsbCB0aGUgYmlvcyBlbXVsYXRvciBjb2RlCgogICAgVGhpcyBwYXRjaCBmaXggdGhlIGNvbXBpbGUgaXNzdWUgb24gdGhlIGJvYXJkIHRoYXQgZGlkIG5vdCBlbmFibGUgdGhlIGJpb3MgZW11bGF0b3IKCmNvbW1pdCBiZjEwNjBlYTRmOWVhYTdlN2QxNjRhNzBhN2Q2ZjI4OTM5ODgyMDUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyA3IDE2OjAyOjEzIDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBicmFjZSBlcnJvciBpbiBmcy9mYXQvZmF0LmMKICAgIFtwb2ludGVkIG91dCBieSBSb2RlcmlrIFdpbGRlbmJ1cmddCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MDY3MTRkOTdhMGQwOGQ1OWVkYTRkZTIyNjhjMzlmNTA0Njg4MzI5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6NDE6NTMgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlbW92ZSBjdXRlIGNvZGUKCmNvbW1pdCBmNTAwZDlmZGViNTc2Mjg4NjU2ZGFjNDI3MDUyYWQyYzVjYTBhZDFhCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6MzU6MjYgMjAwNyArMDIwMAoKICAgIFtGSVhdIEZpeCByb21mcyBjb2RlCgpjb21taXQgYWI0Yjk1NmQzMTQzZjhmODE3NDA4OTA1M2Y1ZGZhYmJiMDQ3NjJiMApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjMxOjQ5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb2Rpbmcgc3R5bGUgY2xlYW51cCAtIFdvbGZnYW5nJ3Mgc3VnZ2VzdGlvbnMKCmNvbW1pdCA2YzMzYzc4NTU3Y2E2ZjhkYTY4YzAxY2UzM2UyNzg2OTUxOTdkM2Y0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjIxOjA1IDIwMDcgKzAyMDAKCiAgICBGaXhlZCB0eXBvIGluIFJFQURNRSAocG9pbnRlZCBvdXQgYnkgTWFydGluIEpvc3QpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTM3MjIzYWZhNjFmNjQ0ODBkZjMxY2U0NDBhOWNiMzg2ZGY0YTgxNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDIxOjEwOjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEJhbWJvbyBSRUFETUUgZG9jL1JFQURNRS5iYW1ib28KCiAgICBBcyBzdWdnZXN0ZWQgYnkgRXVnZW5lIE8nQnJpZW4gPEV1Z2VuZS5PJ0JyaWVuQGFkdmFudGVjaGFtdC5jb20+LAogICAgaGVyZSBhbiB1cGRhdGVkIEJhbWJvbyBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDljN2U0YjA2MjE0ZGI2MWJiMjFmMWJjYmU1N2M5NzUxOTY2OWJhYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMDI6MTc6MzYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjIxODM4Y2M3ZWIxNzgzNzBmZjYyYWEwNTkyMGE1ODJlMTJhYzMyMgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MDM6MjIgMjAwNyArMDgwMAoKICAgIFJlbW92ZSB0aGUgYmlvcyBlbXVsYXRvciBmcm9tIE1BSSBib2FyZC4KCiAgICBUaGUgYmlvcyBlbXVsYXRvciBpbiB0aGUgTUFJIGJvYXJkIGNhbiBub3QgcGFzcyBjb21waWxlCiAgICBhbmQgaGF2ZSBhIGxvdCBvZiBjcmFwIGluIGl0LiByZW1vdmUgaXQgYW5kIHdpbGwgaGF2ZSBhCiAgICBjbGVhbiBhbmQgc21hbGwgYmlvcyBlbXVsYXRvciBpbiB0aGUgZHJpdmVycyBkaXJlY3RvcnkKICAgIHdoaWNoIGNhbiBiZSB1ZXNlZCBmb3IgZXZlcnkgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NjE4MzMyNDA5YmI5NmY0NDQ4ZDE3MTI4OTkzNjlmYzgwYzBiNDg5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxMyAxMjoxNDo1OSAyMDA3ICswODAwCgogICAgRml4IHNvbWUgY29tcGlsZSBpc3N1ZXMgZm9yIE1BSSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBmNDYwYTFlZTE0OGI2NDhlZTI0MmMzMTU3NjUwMjg3ZDQyOTYyNjAKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDEzIDEyOjE0OjU4IDIwMDcgKzA4MDAKCiAgICBDb25maWd1cmF0aW9ucyBmb3IgQVRJIHZpZGVvIGNhcmQgQklPUyBlbXVsYXRvcgoKICAgIFRoaXMgcGF0Y2ggYWRkIGRlZmluaXRpb24gb2YgdGhlIEJJT1MgZW11bGF0b3IgYW5kIHRoZSBBVEkgZnJhbWVidWZmZXIKICAgIGRyaXZlciBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWNlOTJmODUwNTNiOGRmNjEzZWRjZjA1YjI2YTQxNmNiYzNkNjI5YwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgNiAwODozNDo1NiAyMDA3ICswODAwCgogICAgVGhpcyBpcyBhIEJJT1MgZW11bGF0b3IsIHBvcnRpbmcgZnJvbSBTY2lUZWNoIGZvciB1LWJvb3QsIG1haW5seSBmb3IKICAgIEFUSSB2aWRlbyBjYXJkIEJJT1MuIGFuZCBjYW4gYmUgdXNlZCBmb3IgeDg2IGNvZGUgZW11bGF0aW9uIGJ5IHNvbWUKICAgIG1vZGlmaWNhdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDcyMTg4YWNhYmRlMzE3OGZhYzdmNWE1OTcxNTBlNmU3NGZkNDBjCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDA4OjMzOjMzIDIwMDcgKzA4MDAKCiAgICBUaGlzIGlzIGEgZnJhbWVidWZmZXIgZHJpdmVyIGZvciBBVEkgdmlkZW8gY2FyZCwgY2FuIHdvcmsgZm9yIFBDSTkyMDAsCiAgICBYMzAwLCBYNzAwLCBYODAwIEFUSSB2aWRlbyBjYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NzI4YmUzODllNjVmZDQ3ZjM0YjMzYzI1OTYyNzFlYjRkYjc1MWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDAxOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwOTJmZWY0YzI5YjM5NTk1OGJiNjQ5NjQ3ZGE3ZTM3NzU3MzE1MTcKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxNYXJ0aW4uS3JhdXNlQHRxcy5kZT4KRGF0ZToJVHVlIERlYyAxMiAxNDoyNjowMSAyMDA2ICswMTAwCgogICAgQWRkIGZ1bmN0aW9ucyB0byBsaXN0IG9mIGV4cG9ydGVkIGZ1bmN0aW9ucwoKICAgIEFkZGl0aW9uYWxseSBleHBvcnQgdGhlIGZvbGxvd2luZyBmdWN0aW9ucyAodG8gbWFrZSB0cmFiX2NvbmZpZyBidWlsZCBhZ2Fpbik6CiAgICAtIHNpbXBsZV9zdHJ0b2woKQogICAgLSBzdHJjbXAoKQoKICAgIEFsc28gYnVtcCB0aGUgQUJJIHZlcnNpb24gdG8gcmVmbGVjdCB0aGlzIGNoYW5nZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDYzY2VjNTgxNGZhYjVkMmIxYzg2OTgyMzI3NDMzODA3YTVhYzAyNDkKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIgMTQ6MDk6NDkgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODY0MSdzIFBDSS9QQ0ktRSBkcml2ZXIgYSBjb21tb24gZHJpdmVyIGZvciBtYW55IEZTTCBwYXJ0cy4KCiAgICBBbGwgb2YgdGhlIFBDSS9QQ0ktRXhwcmVzcyBkcml2ZXIgYW5kIGluaXRpYWxpemF0aW9uIGNvZGUgdGhhdAogICAgd2FzIGluIHRoZSBNUEM4NjQxSFBDTiBwb3J0IGhhcyBub3cgYmVlbiBtb3ZlZCBpbnRvIHRoZSBjb21tb24KICAgIGRyaXZlcnMvZnNsX3BjaV9pbml0LmMuICBJbiBhIHN1YnNlcXVlbnQgcGF0Y2gsIHRoaXMgd2lsbCBiZQogICAgdXRpbGl6ZWQgYnkgdGhlIDg1eHggcG9ydHMgYXMgd2VsbC4KCiAgICBDb21tb24gUENJLUUgSU1NQVAgcmVnaXN0ZXIgYmxvY2tzIGZvciBGU0wgODV4eC84Nnh4IGFyZSBhZGRlZC4KCiAgICBBbHNvIGVuYWJsZSB0aGUgc2Vjb25kIFBDSS1FeHByZXNzIGNvbnRyb2xsZXIgb24gODY0MQogICAgYnkgZ2V0dGluZyBpdHMgQkFUUyBhbmQgQ0ZHXyBzZXR1cCByaWdodC4KCiAgICBGaXhlZCBhIHUxNiB2ZW5kb3IgY29tcGlsZXIgd2FybmluZyBpbiBBSENJIGRyaXZlciB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyNzRjYTRmNmQ2ODgzMGU3YzkxNmY4OTc1NjFjZmY4YzQxMDFjMzgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAyMjozMzowNSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29kaW5nIHN0eWxlIGNsZWFudXAKCmNvbW1pdCBhZjgzNzdkNGViM2EwYWM1YTgzMTgzMGQ1Y2U2M2ZiZjY1ZmVjYjdmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTY6MTM6MzEgMjAwNyArMDIwMAoKICAgIFtGSVhdIFhpbGlueCBVYXJ0bGl0ZSBkcml2ZXIKICAgIEJlY2F1c2UgUFBDNDA1IGNhbiB1c2UgVUFSVExJVEUgc2VyaWFsIGludGVyZmFjZSBhbmQKICAgIE1pY3JvYmxhemUgY2FuIHVzZSBVYXJ0MTY1NTAgc2VyaWFsIGludGVyZmFjZSBub3Qgb25seSBVYXJ0bGl0ZS4KCmNvbW1pdCA5ODg4OWVkZDUwYWFkZjg2MjA3MWViNTY2NDc0N2FkMGQ1NjhhMjBlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTU6NTQ6NTMgMjAwNyArMDIwMAoKICAgIFtGSVhdIENoYW5nZSBjb25maWd1cmF0aW9uIGZvciBYVVBWMlAgTWljcm9ibGF6ZSBib2FyZAoKY29tbWl0IDUzNzA5MWI0ZWVkOTMwMjg2NWQwM2ZlZjNmNzIxMmI0ZmU1Y2YyOGYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNTo1Mzo1MCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBZGRlZCBzdXBwb3J0IGZvciBYaWxpbnggRW1hYyBjb21tdW5pdHkgZHJpdmVyCgpjb21taXQgODZiMTE2YjFiMWUxNjVjYTQ4NDBkYWVmZWQzNmQyZTNiODQ2MDE3MwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBdWcgMyAxMjowODoxNiAyMDA3ICswMjAwCgogICAgY20xX3FwMSAtPiBjbTUyMDA6IHNpbmdsZSBVLUJvb3QgaW1hZ2UgZm9yIG1vZHVsZXMgZnJvbSB0aGUgY201MjAwIGZhbWlseS4KCiAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIG1vZHVsZXMgZnJvbSB0aGUgU2NoaW5kbGVyIGNtNTIwMCBmYW1pbHkgdG8gdXNlIGEKICAgIHNpbmdsZSBVLUJvb3QgaW1hZ2U6CiAgICAtIHJlbmFtZSBjbTFfcXAxIHRvIGNtNTIwMAogICAgLSBhZGQgcnVuLXRpbWUgbW9kdWxlIGRldGVjdGlvbgogICAgLSBwYXJhbWV0cml6ZSBTRFJBTSBjb25maWd1cmF0aW9uIGFjY29yZGluZyB0byB0aGUgbW9kdWxlIHdlIGFyZSBydW5uaW5nIG9uCgogICAgRmV3IG1pbm9yLCBib2FyZC1zcGVjaWZpYyBmaXhlcyBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoOgogICAgLSBiZXR0ZXIgTUFDIGFkZHJlc3MgaGFuZGxpbmcKICAgIC0gdXBkYXRlZCBkZWZhdWx0IGVudmlyb25tZW50ICgndXBkYXRlJyBjb21tYW5kIHVzZXMgK3tmaWxlc2l6ZX0gbm93KQogICAgLSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyBpbiB0aGUgYXV0by11cGRhdGUgY29kZQogICAgLSBhbGxvdyBib290aW5nIFUtQm9vdCBmcm9tIFJBTSAoQ0ZHX1JBTUJPT1QpCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjN2U3MTdlYmMyYjA0NGQ3YTcxMDYyNTUyYzlkYzBmNTRlYTliNzc5CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDMgMDQ6MDU6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBNYXJ2ZWxsIDExNDkgUEhZIHN1cHBvcnQgdG8gdGhlIFRTRUMKCmNvbW1pdCBiMWI1NGUzNTIwMjhlZDM3MGMzYWE5NWQ2ZmRlYjlkNjRjNWQyZjg2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDIxOjI3OjQ2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjNlMjI3NjRkMmY4NjUzZjY4ODg4YzY2N2ViNjViMzk5NmI1MjY4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAxMDoxMToxOCAyMDA3ICswMjAwCgogICAgTWlub3IgY2xlYW51cCBvZiA8Ym9hcmQ+X25hbmQgYnVpbGQgcnVsZXMuCgpjb21taXQgOWNhOGQ3OWRlMDk2YzY1YjliOWM4NjcyNTliM2ZmNDY4NWY3NzVlZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDA4OjMzOjU2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOTI0MDk4MTIyMDZhYzY3YTdmYTdhYWUyOTg1MzlhOWMzODA0YTQ2CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTg6NTE6NDggMjAwNyArMDIwMAoKICAgIFtwcGM0NDBTUGVdIEdyYWNlZnVsIHJlY292ZXJ5IGZyb20gbWFjaGluZSBjaGVjayBkdXJpbmcgUENJZSBjb25maWd1cmF0aW9uCgogICAgRHVyaW5nIGNvbmZpZyB0cmFuc2FjdGlvbnMgb24gdGhlIFBDSWUgYnVzIGFuIGF0dGVtcHQgdG8gc2NhbiBmb3IgYQogICAgbm9uLWV4aXN0ZW50IGRldmljZSBjYW4gbGVhZCB0byBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uIHdpdGggY2VydGFpbgogICAgcGVyaXBoZXJhbCBkZXZpY2VzLiBJbiBvcmRlciB0byBhdm9pZCBjcmFzaGluZyBpbiBzdWNoIHNjZW5hcmlvcyB0aGUKICAgIGluc3RydW1lbnRlZCB2ZXJzaW9ucyBvZiB0aGUgY29uZmlnIGN5Y2xlIHJlYWQgcm91dGluZXMgYXJlIGludHJvZHVjZWQsIHNvCiAgICB0aGUgZXhjZXB0aW9ucyBmaXh1cHMgZnJhbWV3b3JrIGNhbiBncmFjZWZ1bGx5IHJlY292ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkZWM5OTU1OGI5ZWE3NWEzNzk0MGQwN2Y0MWEzNTY1YTUwYjU0YWQxCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxODoxOTo1NCAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gU2VwYXJhdGUgc2V0dGluZ3MgZm9yIFBDSWUgYnVzIG51bWJlcmluZyBvbiA0NDBTUGUgcmV2LkEKCiAgICBUaGlzIGJyaW5ncyBiYWNrIHNlcGFyYXRlIHNldHRpbmdzIGZvciBQQ0llIGJ1cyBudW1iZXJzIGRlcGVuZGluZyBvbiBjaGlwCiAgICByZXZpc2lvbiwgd2hpY2ggZ290IGVsaW1pbmF0ZWQgaW4gMmIzOTNiMGYwYWY4NDAyZWY0M2IyNWMxOTY4YmZkMjk3MTRkZGZmYQogICAgY29tbWl0LiA0NDBTUGUgcmV2LiBBIGRvZXMgTk9UIHdvcmsgcHJvcGVybHkgd2l0aCB0aGUgc2FtZSBzZXR0aW5ncyBhcyBmb3IKICAgIHRoZSByZXYuIEIgKG5vIGRldmljZXMgYXJlIHNlZW4gb24gdGhlIGJ1cyBkdXJpbmcgZW51bWVyYXRpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgY2RkOTE3YTQzZGE2ZmE3ZmM4ZjU0YTNjYzlmNDIwY2U1ZWNmMzE5NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAwMDo0ODo0NSAyMDA3ICswMjAwCgogICAgRml4IGJ1aWxkIGVycm9ycyBhbmQgd2FybmluZ3MgLyBjb2RlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkMmY2ODAwNjYyN2VkYTZjYjZjN2YzNjRiZGRmNjIxZGJmZDJmYzY4CkF1dGhvcjogRXVnZW5lIE9CcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglUdWUgSnVsIDMxIDEwOjI0OjU2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEJhbWJvbyA0NDBFUCBzdXBwb3J0CgogICAgQ2hhbmdlZCBzdG9yYWdlIHR5cGUgb2YgY2ZnX3NpbXVsYXRlX3NwZF9lZXByb20gdG8gY29uc3QKICAgIENoYW5nZWQgc3RvcmFnZSB0eXBlIG9mIGdwaW9fdGFiIHRvIHN0YWNrIHN0b3JhZ2UKICAgIChDYW5ub3QgYWNjZXNzIGdsb2JhbCBkYXRhIGRlY2xhcmF0aW9ucyBpbiAuYnNzIHVudGlsIGFmZXIgY29kZSByZWxvY2F0aW9uKQoKICAgIEltcHJvdmVkIFNEUkFNIHRlc3RzIHRvIGNhdGNoIHByb2JsZW1zIHdoZXJlIGRhdGEgaXMgbm90IHVuaXF1ZWx5IGFkZHJlc3NhYmxlCiAgICAoZS5nLiBpbmNvcnJlY3RseSBwcm9ncmFtbWVkIFNEUkFNIHJvdyBvciBjb2x1bW5zKQoKICAgIEFkZGVkIENPTkZJR19QUk9HX1NEUkFNX1RMQiB0byBzdXBwb3J0IEJhbWJvbyBTSU1NL0RJTU0gbW9kdWxlcwogICAgRml4ZWQgQU0yOUxWMzIwRFQgKE9wQ29kZSBGbGFzaCkgc2VjdG9yIG1hcAoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYTlmNmJjZTM4M2NjOWZiY2RlZTI4YjU4MzYxMDliMWE2ZGJhNTc0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDMxIDA4OjM3OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NDBFUHggbHdtb241IGJvYXJkIHN1cHBvcnQKCiAgICAtIENsZWFyIEVDQyBzdGF0dXMgcmVncyBhZnRlciBFQ0MgUE9TVCB0ZXN0CiAgICAtIFNldCBkY2J6IGZvciBFQ0MgZ2VuZXJhdGlvbiB3aXRoIGNhY2hlcyBlbmFibGVkIGFzIGRlZmF1bHQKICAgIC0gQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI3YTUyOGZiNDE0MzNjNGMxZTJiNWQ2YmQzZmQ4ZDc4NjA2ZmM3MjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMzAgMTE6MDQ6NTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogT25seSBwcmludCBFQ0MgcmVsYXRlZCBpbmZvIHdoZW4gdGhlIGVycm9yIGJpcyBhcmUgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUzNjIyMGE0YmFmMWYxODhiYTYwZjE3ZTlkMGYwNDMwNjliMTM2MmEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNjo0NDozMSAyMDA3ICswMjAwCgogICAgbmV3IEZQR0EgaW1hZ2UgZm9yIFBMVTQwNSBib2FyZAoKICAgIG5ldyBGUEdBIGltYWdlIGZvciBQTFU0MDUgYm9hcmQgd2l0aCBpbXByb3ZlZCBDb21wYWN0Rmxhc2ggdGltaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODk5M2U1NGI2ZjM5Nzk3Mzc5NGYzZDZmNDdkM2IzYzBjOThkZDRmNgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTQ6NDM6NTkgMjAwNyArMDIwMAoKICAgIFtBRFM1MTIxXSBTdXBwb3J0IGZvciB0aGUgQURTNTEyMSBib2FyZAoKICAgIFRoZSBmb2xsb3dpbmcgTVBDNTEyMWUgc3Vic3lzdGVtcyBhcmUgc3VwcG9ydGVkOgoKICAgIC0gbG93LWxldmVsIENQVSBpbml0CiAgICAtIE5PUiBCb290IEZsYXNoIChjb21tb24gQ0ZJIGRyaXZlcikKICAgIC0gRERSIFNEUkFNCiAgICAtIEZFQwogICAgLSBJMkMKICAgIC0gV2F0Y2hkb2cKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDE4NjNjZmI3YjEwMGJhMGVlMzQwMTc5OTQ1N2EwMWRjMDU4NzQ1ZjgKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE0OjIyOjA0IDIwMDcgKzAyMDAKCiAgICBbUFBDXSBSZW1vdmUgdW51c2VkIE1TUl9VU0VSIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ0MDI0YmI3MmRkODE2OTVlYzA5OWIyMTk5ZWRhMGQyN2M2MjNlNjIKQXV0aG9yOiBKb2huIE90a2VuIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+CkRhdGU6CVRodSBKdWwgMjYgMTc6NDk6MTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHN1cHBvcnQgZm9yIEFNQ0MgNDA1RVAgVGFpaHUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIE90a2VuIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+Cgpjb21taXQgYjY2MDkxZGU2YzczOTA2MjAzMTJjMjUwMWRiMjNkODM5MWU3Y2FiYgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAyNiAxNTowODowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFVwZGF0ZSBMaW1lIGluaXRpYWxpemF0aW9uCgogICAgQ2hhbmdlIExpbWUgU0RSQU0gaW5pdGlhbGl6YXRpb24gdG8gbm93IHN1cHBvcnQgMTAwTUh6IGFuZAogICAgMTMzTUh6IChpZiBlbmFibGVkKS4gQWxzbyB0aGUgZnJhbWVidWZmZXIgaXMgaW5pdGlhbGl6ZWQgdG8KICAgIGRpc3BsYXkgYSBibHVlIHJlY3RhbmdsZSB3aXRoIGEgd2hpdGUgYm9yZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZjI0YTgwOGYxN2ZjMGYzN2I3ZmI0ODA1ZjczNDc0MTMzNWNhZWNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDI0IDA5OjUyOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU3VwcG9ydCBmb3IgMTI4IE1CeXRlIE5PUiBGTEFTSCBhZGRlZAoKICAgIFRoZSB1c2VkIEludGVsIE5PUiBGTEFTSCBjaGlwcyBoYXZlIGludGVybmFsbHkgdHdvIGRpZXMsIGFuZCBhcmUgbm93CiAgICB0cmVhdGVkIGFzIHR3byBzZXBlcmF0ZSBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVkZjViZGUxNzllY2ZiZDBhOTYxMzBkMTg5OTZhOTY1MThiNzg1ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAyNCAwNzoyMDowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggbHdtb241IGludGVycnVwdCBjb250cm9sbGVyIHNldHVwIChwb2xhcml0eSwgdHJpZ2dlci4uLikKCiAgICBBcyBzdWdnZXN0ZWQgYnkgSGFrYW4gRXJ5aWdpdCwgaGVyZSBhbiB1cGRhdGVkIHNldHVwIGZvciB0aGUgbHdtb241CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTcxZDk2ZWFjODEzMGI1M2E5MWY5M2NkMTBjNzBmY2EwZGIxOGQ1MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAyMCAxNTowMzo0NCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggYnVnIHdpdGggZGVmYXVsdCBHUElPIG91dHB1dCB2YWx1ZQoKICAgIEFzIHNwb3R0ZWQgYnkgTWF0dGhpYXMgRnVjaHMsIHRoZSBkZWZhdWx0IG91dHB1dCB2YWx1ZXMgZm9yIGFsbCBHUElPMQogICAgb3V0cHV0cyB3ZXJlIG5vdCBzZXR1cCBjb3JyZWN0bHkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTMxZTNlOGI4MzFmMzU3MDU2NDQ4ZmE1NzMxMzdkNWZiMzcwMDBmZApBdXRob3I6IFBhdmVsIEtvbGVzbmlrb3YgPGNvbmNvcmRAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdWwgMjAgMTU6MDM6MDMgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBFQ0MgUE9TVCBmb3IgdGhlIGx3bW9uNSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBFQ0MgUG9zdCB0ZXN0IGZvciB0aGUgTHdtb241IGJvYXJkIGJhc2VkCiAgICBvbiBQUEM0NDBFUHggdG8gVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdmVsIEtvbGVzbmlrb3YgPGNvbmNvcmRAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYzMwMjNiOWY5NWQ3YWM5NTlhNzY0NDcxYTY1MDAxMDYyYWVjZjQxCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEp1bCAxOSAxNzoxMjoyOCAyMDA3ICswMjAwCgogICAgRml4IGJyZWFrYWdlIG9mIDh4eCBib2FyZHMgZnJvbSByZWNlbnQgY29tbWl0LgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIG5lZ2F0aXZlIGNvbnNlcXVlbmNlcyBmb3IgOHh4IG9mIHRoZSByZWNlbnQKICAgICJwcGM0eHg6IENsZWFuIHVwIDQ0MCBleGNlcHRpb25zIGhhbmRsaW5nIiBjb21taXQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjODgzZjZlYTMyZGNlOTFmMDc2NzBiM2FhZmVjZjZjOTliMWU1MzQxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEzOjExOjEyIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ODQ4ZWM4NThmNzRlZDZkYWIwNmZiNmQ1ZGRjOTMzZTBhMTMyOGJmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAyOjEyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYTQ5ZmMxN2QwOTAyMGU3ZWJkOTUzNjY5NGQ5OWQyMGU0MTlmY2I4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAxOjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFNQ0MgTHVhbiB1c2VzIHRoZSBuZXcgYm9hcmRzcGVjaWZpYyBERFIyIGNvbnRyb2xsZXIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGYzZjE3NDIyYWViMDNmYjgxYTdhYzhjNzhkMmIwNWQwNWFhNGNmOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMDo0MyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTdXBwb3J0IGZvciBZdWNjYSBib2FyZCB3aXRoIDQ0MFNQZSBSZXYgQSBhZGRlZCB0byA0NHhfc3BkX2RkcjIuYwoKICAgIFRoZSBuZXcgYm9hcmRzcGVjaWZpYyBERFIyIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBpcyB1c2VkIGZvciB0aGUgWXVjY2EKICAgIGJvYXJkLiBOb3cgdGhlIFl1Y2NhIGJvYXJkIHdpdGggNDQwU1BlIFJldi4gQSBjaGlwcyBpcyBhbHNvIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmVkMTRhZGRmOTdjOGNkOGY1MzFlOWFlN2IyZDNlMjIyZmZmZDUzZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAwOTo1NzowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbmV3IHdlYWsgZnVuY3Rpb25zIHRvIHN1cHBvcnQgYm9hcmRzcGVjaWZpYyBERFIyIGNvbmZpZ3VyYXRpb24KCiAgICBUaGUgbmV3ICJ3ZWFrIiBmdW5jdGlvbnMgZGRyX3dyZHRyKCkgYW5kIGRkcl9jbGt0cigpIGFyZSBhZGRlZCB0byBiZXR0ZXIKICAgIHN1cHBvcnQgbm9uIGRlZmF1bHQsIGJvYXJkc3BlY2lmaWMgRERSKDIpIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTc0M2E5MjA3YTM3MGI5MGYwOWIyMGViZDYxMTY3YzgwNmI5MzdmMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAwODo1Mzo1MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcmVtb3ZlX3RsYigpIGZ1bmN0aW9uIHRvIHJlbW92ZSBhIG1lbSBhcmVhIGZyb20gVExCIHNldHVwCgogICAgVGhlIG5ldyBmdW5jdGlvbiByZW1vdmVfdGxiKCkgY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIHRoZSBUTEIncyB1c2VkIHRvCiAgICBtYXAgYSBzcGVjaWZpYyBtZW1vcnkgcmVnaW9uLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB0aGUgRERSKDIpCiAgICBzZXR1cCByb3V0aW5lcyB3aGljaCBjb25maWd1cmUgdGhlIFNEUkFNIGFyZWEgdGVtcG9yYXJpbHkgYXMgYSBjYWNoZWQKICAgIGFyZWEgKGZvciBzcGVlZHVwIG9uIGF1dG8tY2FsaWJyYXRpb24gYW5kIEVDQyBnZW5lcmF0aW9uKSBhbmQgbGF0ZXIKICAgIG5lZWQgdGhpcyBhcmVhIHVuY2FjaGVkIGZvciBub3JtYWwgdXNhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjMGE5Y2RhMWJkZTM3MTA2NTIwNDc2ZWQ0ODZiZDY3ZWI4ZDMwYWUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKdWwgMTYgMDA6MzE6MDcgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3VwcG9ydCBmb3IgWGlsaW54IEVtYWNMaXRlIGNvbnRyb2xsZXIKCmNvbW1pdCAzYTZjYWI4NDRjZjc0Zjc2NjM5ZDc5NWUwYmU4NzE3ZTAyYzg2YWY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEp1bCAxNCAyMjo1MTowMiAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTI4MGYzNTJjOGRhMzNiMWQ3ZmJmNDQ4NzY4NzE3ZDllMTZmZjlhMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAxMzoxMToyOCAyMDA3ICswMjAwCgogICAgW0ZJWF0gc3VwcG9ydCBmb3Igc2ltcGx5IG1lYXN1cmluZyB0aW1lCgpjb21taXQgOTFiYjRjYTY2NWQyZTBjZjdmNjBjNGI1YjM3MDk5MDI1MGVjMGM0MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAxMjo0MToyMyAyMDA3ICswMjAwCgogICAgW0ZTXSBBZGRlZCBzdXBwb3J0IGZvciBST01GUwoKY29tbWl0IDAxMTU5NTMwNzczMWE3YTY3YTc0NDVkMTA3YzI3OWQwMzFlOGFiOTcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBKdWwgMTQgMDE6MDY6NTggMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCmNvbW1pdCA1YTJmMTA5OGQ4MWFkNThiMzA5ZTVlNTU4ZDA0OTI2NDMxNjZhNzk5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDAwOjE4OjQ4IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN1cHBvcnQgdGltZSB3aXRob3V0IHRpbWVyCgpjb21taXQgYTQ3NmNhMmFjMjIxN2RkZDA1YTJiZjBjNTE0MDc1ODE0YjEwYTNjMApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMyAyMTo0Mzo1NSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBSZW1vdmUgcHJvYmxlbSB3aXRoIGRpc2FibGVkIEJBUlJFTCBTSElGVEVSCgpjb21taXQgNTVlMjZhZDYyMTA3ZDJmMTRmNzU3ZGUzYWUwYjE0YjlhYTdhZWQ5NApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMyAyMTo0MTo0NCAyMDA3ICswMjAwCgogICAgW0ZJWF0gY29ycmVjdCBoZWxwIGZvciByc3ByCgpjb21taXQgZmFkNjM0MDcxNTRmNDYyNDZjZTgwZDUzYTljNjY5YTQ0MzYyYWM2NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMyAwOTo1NDoxNyAyMDA3ICswMjAwCgogICAgbWFrZSBzaG93X2Jvb3RfcHJvZ3Jlc3MgKCkgd2Vhay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5MDc5MDI0NzIzOTFiNmNhMTg3NmVjMzAwNjg3NTYyZWNhZjQ1OWIxCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVsIDEzIDA4OjI2OjA1IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gVGhlIERJQUcgTEVEcyBhcmUgbm93IGJsaW5raW5nLCBpZiBhbiBlcnJvciBvY2N1cgoJCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTJlMWM3MDk4Y2Y5NTc0Mzg2YjBjOTY4NDFkZmM4ZWE1Y2M5MzU3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMiAxNjozMjowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgcmVjZWl2ZSBidWZmZXIgaGFuZGxpbmcgaW4gdGhlIDR4eCBlbWFjIGRyaXZlcgoKICAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgYnVnIGluIHRoZSByZWNlaXZlIGJ1ZmZlciBoYW5kbGluZywgdGhhdAogICAgY291bGQgbGVhZCB0byBwcm9ibGVtcyB1cG9uIGhpZ2ggbmV0d29yayB0cmFmZmljIChicm9hZGNhc3RzLi4uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjM5ZjA1ZWU0ZGQ0Y2ZlMGI1MGYyNTFiNTMzZGNlYmU5ZTY3YzM2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTIgMDE6NDU6MzQgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0csIG1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWE1NmFmM2I1MjJiYTQ3ZmIzM2EzZmVlODRkMjNiZjFlNTQyOTY1NApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1biA4IDE2OjQxOjE4IDIwMDcgLTA1MDAKCiAgICBSZW1vdmUgZXJyb25lb3VzIGVycmF0YSBjb2RlIGZyb20gTWFydmVsIDg4RTExMTFTIGRyaXZlcgoKICAgIFRoZSBNYXJ2ZWwgODhFMTExMVMgZHJpdmVyIGZvciB0aGUgVFNFQyB3YXMgY29waWVkIGZyb20gdGhlCiAgICA4OEUxMTAxIGRyaXZlciwgYW5kIGluY2x1ZGVkIGEgZml4IGZvciBhbiBlcnJhdHVtIHdoaWNoIGRvZXMgbm90CiAgICBleGlzdCBvbiB0aGF0IHBhcnQuICBOb3cgaXQgaXMgcmVtb3ZlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ODJlZmNmMjNmZDAzNjQ3ZTAxZTJmYmUyOGE3YTM2MjM5MTU2Y2MwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDUgMTY6Mzg6NDQgMjAwNyAtMDUwMAoKICAgIEZyb206IGVyYW4gbGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KCiAgICBhZGRzIHRoZSByZXNldCByZWdpc3RlciB0byA4NXh4IGltbWFwCgogICAgU2lnbmVkLW9mZi1ieTogRXJhbiBMaWJlcnR5IDxlcmFuLmxpYmVydHlAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzZWMwZDk0M2EwNDViZGI5OWUxNTllN2JiYzc3NDMwZTA5ZjExZDcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMTAgMTc6NTA6MDEgMjAwNyAtMDUwMAoKICAgIFBvbGlzaGVkIHRoZSA4NXh4IEFEUyBjb25maWcgZmlsZXMKCiAgICBNYWRlIHRoZSBib290IGNvbW1hbmRzIHVzZSBkZXZpY2UgdHJlZXMgYnkgZGVmYXVsdC4KICAgIEFsc28gbW92ZWQgdGhlIHJhbWRpc2sgdG8gMTAwMDAwMCAoSSB0aGluayB0aGUgcHJldmlvdXMgYWRkcmVzcwogICAgd2FzIGdldHRpbmcgb3ZlcnJpZGRlbiBkdXJpbmcgYm9vdCkuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmYjM3YjMyZDFiMGIwM2YxODA3N2RiYTQ5Y2M2NmE2ZTc2ZmEwMzgKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6MDM6MzIgMjAwNyAtMDUwMAoKICAgIDg1NDRkczogRml4IE1ha2VmaWxlIGFmdGVyIG1vdmluZyBwaXhpcyB0byBib2FyZC9mcmVlc2NhbGUuCgogICAgVGhlIE9CSlRSRUUgIT0gU1JDVFJFRSBidWlsZCBzY2VuYXJpbyB3YXMgYnJva2VuLgogICAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYTNjZWU0M2MzYjcxZmE1YjhkOTFkYjE5ZjA1MDY3ODY1MjkwZjNlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMDA6NTQ6MjAgMjAwNyAtMDUwMAoKICAgIHRzZWM6IEZpeCBQSFkgY29kZSB0byBtYXRjaCBmaXJzdCBkcml2ZXIKCiAgICBKYXJyb2xkIFdlbiBub3RpY2VkIHRoYXQgdGhlIGdlbmVyaWMgUEhZIGNvZGUgYWx3YXlzIG1hdGNoZXMKICAgIHVuZGVyIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLiAgQ2hhbmdlIGl0IHNvIHRoZSBmaXJzdCBtYXRjaAogICAgd2lucywgYW5kICpvbmx5KiB1bmtub3duIFBIWXMgdHJpZ2dlciB0aGUgZ2VuZXJpYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2NjMDkxYWFjNjFhMzhjZDk5OGQ1NzVkOTJmNzIzMmUyNTZkNjMxMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE3OjI3OjQzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQ1BNIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gdG8gODU2MCBBRFMKCiAgICAqIEFkZHMgY29kZSB0byBtb2RpZnkgQ1BNIGZyZXF1ZW5jaWVzCiAgICAqIENsZWFucyB1cCB0aGUgY29uZmlnIGZpbGUgdG8gI2RlZmluZSBUU0VDIGFuZCAoZm9yIG5vdykgI3VuZGVmIEZDQwogICAgKiBBZGRzIHRoZSBNSUkgY29tbWFuZCBmb3IgYWxsIDg1NjAgQURTIGNvbmZpZ3VyYXRpb25zCiAgICAqIFVwZGF0ZXMgY29uZmlnIGZpbGUgdG8gcHJvdmlkZSBjb252ZW5pZW5jZSBjb21tYW5kcyBmb3IgYm9vdGluZwogICAgICB3aXRoIGEgZGV2aWNlIHRyZWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBWaXRhbHkgQm9yZHVnIDx2Ym9yZHVnQHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzUwN2Q1NmNjYWY3YWFlMWM0NzQzNDJhOWE1NTQwMTY1Y2Q3ZTlkOQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE3OjIzOjAyIDIwMDcgLTA1MDAKCiAgICBGaXggTWFydmVsbCA4OGUxMTQ1IFBIWSBpbml0IGNvZGUKCiAgICBGaXggYSBidWcgaW4gdGhlIE1hcnZlbGwgODhlMTE0NSBQSFkgaW5pdCBjb2RlIGluIHRoZSBUU0VDIGRyaXZlcgogICAgd2hlcmUgdGhlIHJlc2V0IHdhcyBiZWluZyBkb25lIGFmdGVyIHRoZSBlcnJhdGEgY29kZSBpbnN0ZWFkIG9mCiAgICBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGMyMTBkZWM1YmFjZTk4YTUwYjZiYTkwNTM0Nzg5MDA5MWE5YmIwCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjoxNiAyMDA3IC0wNTAwCgogICAgQWRkIHNpbXBsZSBhZ2VudC9lbmQtcG9pbnQgY29uZmlndXJhdGlvbiBpbiBQQ0kgQXV0b0NvbmZpZyBmb3IgUENJX0NMQVNTX1BST0NFU1NPUl9QT1dFUlBDLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThiODVmM2JhNGNkODkzMGUwYTJmZWEyMTAwYzgxNWQ2NDIwMTc2NQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MDggMjAwNyAtMDUwMAoKICAgIHBjaWF1dG8gc2V0dXAgYnJpZGdlCgogICAgVGhlIFAyUCBicmlkZ2UgYnVzIG51bWJlcnMgcHJvZ3JhbW1lZCBpbnRvIHRoZSBkZXZpY2UgYXJlIHJlbGF0aXZlIHRvCiAgICBob3NlLT5maXJzdF9idXNuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MWY0OWZhNzE3MDA0Y2E0MjY4YjRlMjQwNTdlZmM3YmY5Zjk4N2IKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjAxIDIwMDcgLTA1MDAKCiAgICBTdXBwb3J0IFBDSWUgZXh0ZW5kZWQgY29uZmlnIHJlZ2lzdGVycwoKICAgIEZTTCBQQ0llIGJsb2NrIGhhcyBleHRlbmRlZCBjZmcgcmVnaXN0ZXJzIGluIHRoZSAxMDAgYW5kIDQwMCByYW5nZS4KICAgIEZvciBleGFtcGxlLCB0byByZWFkIHRoZSBMVFNTTSByZWdpc3RlcjogcGNpIGRpc3BsYXkgPGJ1c24+LjAgNDA0IDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhNWZlYjEyNTgxYmIyOTEyY2UzMDFlNDg2NmI3MWY4NDZlOWZjMDcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUxOjQ4IDIwMDcgLTA1MDAKCiAgICBNaW5vciBpbXByb3ZlbWVudHMgdG8gZHJpdmVycy9wY2lfYXV0by5jCgogICAgLSBNYWtlIHBjaWF1dG9fe3ByZSxwb3N0fXNjYW5fc2V0dXBfYnJpZGdlIG5vbi1zdGF0aWMKICAgIC0gQWRkZWQgcGh5c2ljYWwgYWRkcmVzcyBkaXNwbGF5IGluIGRlYnVnIG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBlODFhZGRhYjdiYjc0ZDIwZGRmNjgxY2U5YmFiYzg4MGE4MjhlZQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTE6MzUgMjAwNyAtMDUwMAoKICAgIFN0YXJ0IHBjaSBob3NlIHNjYW4gZnJvbSBob3NlLT5jdXJyZW50X2J1c25vLgoKICAgIEVuc3VyZSBob3NlLT5jdXJyZW50X2J1c25vIGlzIG5vdCBsZXNzIHRoYW4gZmlyc3RfYnVzbm8uICBUaGlzIGZpeGVzCiAgICBicm9rZW4gYm9hcmQgY29kZSB3aGljaCBsZWF2ZXMgY3VycmVudF9idXNubz0wIHdoZW4gZmlyc3RfYnVzbm8gaXMKICAgIGdyZWF0ZXIgdGhhbiAwIGZvciB0aGUgY2FzZXMgd2l0aCBtdWx0aXBsZSBjb250cm9sbGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NjViMWZiNzg0M2EwOGFkNDlhNjMxOWEzNjQxNTc1MjI3NmZmNDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTEgMTI6MTM6NTMgMjAwNyArMDIwMAoKICAgIEZpeCBzb21lIGNvbXBpbGUgcHJvYmxlbXMgaW50cm9kdWNlZCBieSB0aGUgbGF0ZXN0IENGR19DTURfeHh4IGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmExZGYzMDg5MjZhNmY3MGUzNTA0YzU3NTE0ZWYyN2FjMzFmZDEzYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMjA6MTE6MDcgMjAwNyArMDIwMAoKICAgIENNMS5RUDE6IFN1cHBvcnQgZm9yIHRoZSBTY2hpbmRsZXIgQ00xLlFQMSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5NmUxZDc1YmU4MTkzY2E3OWU0MjE1YTM2OGJmOWQ3ZjIzNjI0NTBmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVsIDExIDE4OjM5OjExIDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gU2hvdyBvbiB0aGUgRElBRyBMRURzLCBpZiB0aGUgU0hBMSBjaGVjayBmYWlsZWQKCQktIG5vdyB0aGUgRmxhc2ggU1QgTTI5VzA0MEIgaXMgc3VwcG9ydGVkIChub3QgdGVzdGVkKQoJCS0gZml4IHRoZSAibGVkIiBjb21tYW5kCgkJLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBlOTUxNDc1MWNmYTVjY2U2MWVhNjk5ZmEwZDNlYjM3ODk4YTVlZWI1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gSnVsIDggMTM6NDQ6MjcgMjAwNyArMDIwMAoKICAgIEZpeCBtYWxsb2MgcHJvYmxlbSBpbnRyb2R1Y2VkIHdpdGggdGhlIHJlbG9jYXRpb24gZml4dXAgZm9yIHRoZSBQUEMgcGxhdGZvcm0KCiAgICBUaGUgcmVsb2NhdGlvbiBmaXh1cCBkaWRuJ3QgaGFuZGxlIHRoZSBtYWxsb2MgcG9pbnRlciBpbml0aWFsaXphdGlvbgogICAgY29ycmVjdGx5LiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgcHJvYmxlbS4gVGVzdGVkIHN1Y2Nlc3NmdWxseSBvbiA0eHguCiAgICBUaGUgcmVsb2NhdGlvbiBmaXh1cCBwYXRjaGVzIGZvciA0eHggd2lsbCBmb2xsb3cgc29vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjYTg3NGRiNjI3MThlNDEyNTM2NTllNjBmM2ExZGU3ZWI0MThjZQpBdXRob3I6IFRzaUNodW5nIDx0Y2xpZXdAR29rdS4obm9uZSk+CkRhdGU6CVR1ZSBKdWwgMTAgMTU6NDU6NDMgMjAwNyAtMDUwMAoKICAgIENhY2hlIHVwZGF0ZSBhbmQgYWRkZWQgQ0ZHX1VOSUZZX0NBQ0hFCgogICAgRW5hYmxlZCBjYWNoZSBpbiBjcHVfaW5pdF9mKCkgZm9yIGZhc3RlciBmbGFzaCB0byBtZW0gYWxsb2NhdGlvbi4gVXBkYXRlZCBjYWNoZSBoYW5kbGluZyBpbiBzdGFydC5TLiBBcHBsaWVkIGNhY2hlIGludmFsaWRhdGUgaW4gZmVjX3NlbmQoKSBhbmQgZmVjX3JlY3YoKS4gQWRkZWQgQ0ZHX1VOSUZZX0NBQ0hFIGZvciBDRiBWMyBvbmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIDx0Y2xpZXdAR29rdS4obm9uZSk+Cgpjb21taXQgNTJiMDE3NjA0YThmNGQ0YTc5NTg4MGVmNmU3ODYxZDdmMmYxYjAwNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjM2OjE2IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUuIEluY2x1ZGUgZHRpbWVyX2ludHJfc2V0dXAoKS4gQ2hhbmdlZCB0aW1lciBkaXZpZGVyIHRvIGdsb2JhbCBkZWZpbmUuCgogICAgSW5jbHVkZSBpbW1hcC5oIGFuZCB0aW1lci5oLiBNb3ZlZCBkdGltZXIgaW50ZXJydXB0IHNldHVwIHRvIGR0aW1lcl9pbnRyX3NldHVwKCkgZnJvbSBjcHUvbWNmNTMyeC9pbnRlcnJ1cHRzLmMuIENoYW5nZWQgKENGR19DTEsgLzEwMDAwMDApIC0xIDw8IDggdG8gQ0ZHX1RJTUVSX1BSRVNDQUxFUgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1Y2RjMDdjN2VmOGYwOGVhNTVkM2M0N2VkOTIyMWQ5MWFhNmQ1ZmFjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MzE6MjUgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZXMKCiAgICBJbmNsdWRlIGltbWFwLmggYW5kIHJlbmFtZWQgbWNmcnRjLmggdG8gcnRjLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjg3MGU5OGFjOGU1NTUzZTkxODdiMTJhNDdlNWY0NmJhYmI1Mzk5MApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjI5OjIxIDIwMDcgLTA1MDAKCiAgICBBZGQgbWNmZmVjX2luaXRpYWxpemUoKQoKICAgIEFkZGVkIG1jZmZlY19pbml0aWFsaXplKCkgaW4gZXRoX2luaXRpYWxpemUoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NWEyNWJmZDBjNTJmOGEzZmExMzcyMTZiYzk0ZDMyZjkwYmVkYzVkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6Mjc6NDAgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgY2xlYW4gdXAKCiAgICBJbmNsdWRlIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGNlZTljNjYzMTg2MDJjODU2YTg5OWFlNWZhNzU3OWNjYmE2NDQzYQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIzOjE1IDIwMDcgLTA1MDAKCiAgICBOZXcgdWFydCBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMKCiAgICBTZXBlcmF0ZWQgZnJvbSBtY2Z1YXJ0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTkwZTc5ZGU4ZDk5ZTljOWQ2OWQ2MGJmZmY5ZjI0YzMzNzE2NTkwMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIyOjMxIDIwMDcgLTA1MDAKCiAgICBOZXcgdGltZXIgc3RydWN0dXJlIGFuZCBkZWZpbmVzCgogICAgU2VwZXJhdGVkIGZyb20gbWNmdGltZXIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMDRhY2IyZWJhNDc4MjQ4OTQxNzI0MGVmZjc2ZTIwZTE3NmFlYzEwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjE6MDkgMjAwNyAtMDUwMAoKICAgIFJlbmFtZSBtY2ZydGMgdG8gcnRjCgogICAgU2luY2UgaXQgaXMgYWxyZWFkeSBpbiBtNjhrIGZvbGRlciwgdW4tbmVjZXNzYXJ5IHRvIHBhZCBtY2YuIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB0byBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiZDgwNmZlNGZjMjM5NThiOGY3ODc3ODE5OWU3YTZlM2Y4ZjZhZDUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxNzozNiAyMDA3IC0wNTAwCgogICAgUmVuYW1lIG1jZnNlcmlhbC5jLiBVcGRhdGUgaW5jbHVkZSBoZWFkZXIKCiAgICBSZW5hbWVkIG1jZnNlcmlhbC5jIHRvIG1jZnVhcnQuYy4gTW9kaWZpZWQgTWFrZWZpbGUgZm9yIG1jZnVhcnQubyBmcm9tIG1jZnNlcmlhbC5vLiBSZXBsYWNlIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB0byBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyMjA4ZmJjMmViOWRlM2Y0Mjg1YmZhYTAyMWM2ZWJhZTE2YzliMGUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxMzo1OCAyMDA3IC0wNTAwCgogICAgSGVhZGVyIGZpbGUgdXBkYXRlLCBjbGVhbiB1cCBhbmQgY2FjaGUgaGFuZGxpbmcKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBJbmNsdWRlZCBjYWNoZV9pbnZhbGlkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZTNmMjVhZTkwODJkYWE5ZjVkMTgxZGI0NWRmYmMyZTUyY2UwZjk3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTA6NDAgMjAwNyAtMDUwMAoKICAgIENyZWF0ZSBpbnRlcnJ1cHRzLmMgYW5kIG1vZGlmeSBNYWtlZmlsZQoKICAgIGludGVycnVwdF9pbml0KCkgYW5kIGR0aW1lcl9pbnRyX3NldHVwKCkgYXJlIHBsYWNlZCBpbiBpbnRlcnJ1cHRzLmMuIEFkZGVkIGludGVycnVwdHMubyB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGQxMDRmMWVkNjU1ZWRhNTBjMDZiYTYzNjIzN2E4M2VkOTQzZjM0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDY6NTUgMjAwNyAtMDUwMAoKICAgIEVuYWJsZSBJY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjliZjNkZTM3N2IyYmFlNzBjOTgzYzliOTdmZWFlOTE0OTk5ZTczNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjA1OjMxIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIHNvbWUgY2xlYW4gdXAKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBSZW1vdmVkIHdoaXRlc3BhY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NGEwMTViNTJlYzgyMGE1YWUxNzM3MTdkNzg1MTZkZTczMWM4OWMyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDM6MjggMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgZW5hYmxlIGljYWNoZQoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIEVuYWJsZWQgaWNhY2hlX2VuYWJsZSgpIGluIGNwdV9pbml0X3IoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ExN2U3NTljN2E4YjU4ZTkxMGRhZjU0ZGY2MTFlOTRmYzhjYTA3NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjAxOjIyIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIHJlbW92ZWQgaW50ZXJydXB0X2luaXQoKQoKICAgIFJlcGxhY2UgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gUmVtb3ZlZCBpbnRlcnJ1cHRfaW5pdCgpIGFuZCBwbGFjZWQgaXQgaW4gaW50ZXJydXB0cy5jCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiNjM1NDkyYzk1YmQwZDZlMDhmOTNmNjk5ODIxY2JhMWY2MDJhNjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1Nzo0NiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGZvciBmbGFzaC5vIGFuZCBtaWkubwoKICAgIFJlbW92ZWQgZmxhc2gubyBhbmQgYWRkZWQgbWlpLm8KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzVkZWQyNzVkODM5ZTRmZjc5ZjQxNzE4ZDUwYTgzNWQ5ODlmNTdiYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU2OjE5IDIwMDcgLTA1MDAKCiAgICBNSUkgZnVuY3Rpb25zIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MjdjODE0MTA0NTYwZTI5YmRhMTQ5NTVjNjc3MDMyNDVhYWFhNWI0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTQ6NDIgMjAwNyAtMDUwMAoKICAgIFJlbW92ZWQgTUlJIGZ1bmN0aW9ucyBhbmQgcmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4KCiAgICBUaGUgcmVtb3ZlZCBNSUkgcm91dGluZXMgd2lsbCBiZSBwbGFjZWQgaW4gbWlpLmMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAxYTc5M2ZkYTA5YzYzZGY1YTQ5NmYwOWRjMWM3Y2IyNmU2NzUxYTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1MTowNSAyMDA3IC0wNTAwCgogICAgRHVwbGljYXRlIGNvZGUKCiAgICBUaGVyZSBpcyBhIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgRHJpdmVyIGV4aXN0ZWQuIFRvIHVzZSB0aGUgQ0ZJIGRyaXZlciwgZGVmaW5lIENGR19GTEFTSF9DRkkgaW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzQ0MzU0YTg0MzdiOGY3OGRiMTc4ZTMwNjYwMjE1Njg4YmZmNTcwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDY6MzggMjAwNyAtMDUwMAoKICAgIFNlcGVyYXRlIG9sZCBzdHJ1Y3R1cmUgZGVmaW5lcyBhbmQgbmV3IHN0cnVjdHVyZSBkZWZpbmVzCgogICAgUmVtb3ZlZCBuZXcgdWFydCBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMgdG8gdWFydC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiZDU4NjA4ZGJjZmY4ODkwY2E5YTBjNTllODYxYWMyNGY4YmIyMzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0NTowMSAyMDA3IC0wNTAwCgogICAgU2VwZXJhdGUgb2xkIHN0cnVjdHVyZSBkZWZpbmVzIGFuZCBuZXcgc3RydWN0dXJlIGRlZmluZXMKCiAgICBOZXcgdGltZXIgc3RydWN0dXJlIGFuZCBkZWZpbmVzIHdpbGwgbW92ZSB0byBuZXcgdGltZXIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4Y2Q1Y2Q2ZGU0ZmY5MmUwMzk3ODMzOGVkN2FlYjNjZTdiN2I5Nzg0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDI6MjMgMjAwNyAtMDUwMAoKICAgIENsZWFuIHVwCgogICAgUmVtb3ZlZCB3aGl0ZXNwYWNlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUxNDg3MWY1NjVkZDhiZDExMjFlNGEzYWMxNjY1YTc5MGUyMGI4ZjIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0MToyNCAyMDA3IC0wNTAwCgogICAgQ2xlYW4gdXAKCiAgICBSZXBsYWNlZCB3aGl0ZXNwYWNlIHdpdGggdGFicwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OGRiZmVhYmM3YWZmZmUzMDYwOWE0NDg5ZjEwYzIyY2I2N2VmN2RkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6Mzk6MDcgMjAwNyAtMDUwMAoKICAgIENyZWF0ZSBuZXcgaGVhZGVyIGZpbGUgYW5kIG1vdmUgcGVyaXBoZXJhbHMgYmFzZSBhZGRyZXNzIGZyb20gY29uZmlncyBmaWxlIHRvIG5ldyBoZWFkZXIgZmlsZS4KCiAgICBDcmVhdGUgbmV3IGhlYWRlciBmaWxlIHRvIGluY2x1ZGUgaW1tYXBfNXh4eC5oIGFuZCBtNXh4eC5oIGFuZCB0byBzaGFyZSBhbW9uZyBkcml2ZXJzIHdpdGhvdXQgdXBkYXRlIGluIGRyaXZlciBmaWxlIGVhY2ggcHJvY2Vzc29yIGlzIGFkZGVkLiBNb3ZlZCBwZXJpcGhlcmFscyBiYXNlIGFkZHJlc3MgYW5kIGRlZmluZXMgZnJvbSBjb25maWdzIGZpbGUgdG8gaW1tYXAuaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmUyOTZlMzFjNDQxMWY5NmQ5Y2IzZDJhZmM4ZmNiMDA2ODY3YWJmYQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjI0OjU4IDIwMDcgLTA1MDAKCiAgICBSZXZlcnQgZmlsZSBtb2RlCgogICAgQ2hhbmdlZCBNQUtFQUxMIGZpbGUgbW9kZSB0byBleGVjdXRhYmxlLCByZW1vdmVkIGV4ZWN1dGFibGUgZmlsZSBtb2RlIGZyb20gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjNhZmYwY2I5ZWNmMjM2ZDdlOGM5Mzc2MWRkMWRhZGY2ODM3YTU4MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MTk6NTAgMjAwNyAtMDUwMAoKICAgIGRpc2svIGRvYy8gbGliXyovIGFuZCB0b29scy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRiNWQ4NmYwMjE1YmNiNmMyOTM1MTBjNTBlYjA1MGU5Mjg4M2I3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MTM6MjEgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0MGE3ZjNlMzg4OGI0MmE0MzY3NGIwOTllNTQ3MDAyMmM4YzU0NGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjA3OjU2IDIwMDcgLTA1MDAKCiAgICBmcy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjEwZjJlOWMyOGE5YzEwMWUwOWZhMWI3ODE0M2NmNWYwMGVkMTU5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDU6MDIgMjAwNyAtMDUwMAoKICAgIG5ldC86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTAyNTMxNzg4Mzc2MDQ2ZGEyMTJhZmQxNjYxY2ZmYjYyZjNkYWExYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDI6NDQgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM5YjU3NDE1ODM4YzczZmIwYTM3ZWNhODRkZTNjNjhiYTk5MDU4NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6NDg6MjIgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tqLXpdKjogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3N2EzMTg1NDVkNTdhZWZhODQ0NzUyNDY1Yjk0YzdlMDlhM2YyNmQwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDozOToxMCAyMDA3IC0wNTAwCgogICAgYm9hcmQvW0EtWmEtaV0qOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA2OGI2MGEwZWI3ZTczYjI0M2NhNTUzOTlmMmE3ZGY3NmUyYzNmM2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjI3OjM5IDIwMDcgLTA1MDAKCiAgICBjcHUvIHJ0Yy8gaW5jbHVkZS86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA3OWExMzZjMzU4ODgxNDc4NDU2MWQ2ZTQ4NTY5NzBlZTgyZDZlMmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjEyOjEwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW3Atel0qICsgbWlzYzogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZjVjMDE1Nzc0MDBjNzRjYzViYWM3NGY0MWRkMGQzYzc5ZGY2MjNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTozODowMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tnLW9dKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MGZmNGY5OWI4NGI2NGVkY2EzZmQxMGRhMzY1ZWMxNDkzYmUxYzk1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToyOTowMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1thLWVdKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMWFhMGJiNTAyZTI1ZmQ1OThiNWUwY2NkZmIyYzE3NDkyMWQ3MTRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToyMjoyMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tQLVpdKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NTllMmY2NzM2MjMyYTA4YWNjYTg3ODVjMjA2ZTJiNGQ5Y2QwN2Q3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToxMDo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tKLU9dKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMTc5OTQzNGM1ZmYxNWE2MTI1NzdiYjFhZDFmNGVhMWEwNTk1ZTRiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTowMjo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tBLUldKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZmU4MGQ3OWM1YzRlNTJkMzQxMGE3YWI0Yjg1MTVkYTA5NWNkYWIzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIyOjA4OjM0IDIwMDcgLTA1MDAKCiAgICBGaW5hbGx5IHJldGlyZSBjbWRfY29uZmRlZnMuaCBhbmQgQ09ORklHX0JPT1RQX01BU0shCgogICAgQWxsIG9mIHRoZSBjaG9pY2VzIGZvciBDT05GSUdfQk9PVFBfIGFyZSBub3cgZG9jdW1lbnRlZCBpbgogICAgdGhlIFJFQURNRSBmaWxlLiAgWW91IG11c3Qgbm93IGluZGl2aWR1YWxseSBzZWxlY3QgZXhhY3RseQogICAgdGhlIHNldCB0aGF0IHlvdSB3YW50IHVzaW5nIGEgc2VyaWVzIG9mCgkjZGVmaW5lIENPTkZJR19CT09UUF88eD4KICAgIHN0YXRlbWVudHMgaW4gdGhlIGJvYXJkIHBvcnQgY29uZmlnIGZpbGVzIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzYjhjMWE3NDNkY2QzMTYyNWM5OWU2YTQ0NTkwZjIwN2ViMDAwMjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6NTc6MzEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bbS16XSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmZkOTBjZTU3NWIwMmQxODljYmY0NDNjODUzMDliY2QwMDFhYTM5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTo0ODoyNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1thLW1dKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzN2Q0YmI3MDU4NjY1OWRlZGVmMTY1OGNlMWJlZDA3MWJlMDk4YWVjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjM4OjAyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1QtWl0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4MjI1ZThkZDE5NTBiZDZkYmYzNTAxMWU0MzZkYjdmNDc0YzE4N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MzE6MjQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bUC1TXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2JlMDQ0ZTRlYTY0NGIwZWYxYzQ4NmRhZGMxYTRjMjY2NWI0Mzc0ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMToyNDoxOSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tILU5dKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZDJlYmUxYjNlZjAwNTVjNjYxYmIxYTBkMjUyYmYyNTIzODAwNjlmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjE2OjUzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0EtR10qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1NWY3ZjhkODNmMzYwMjFhYjFmMGUzZDczOGY1ZDhjODA4M2E3ZTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MTI6MzAgMjAwNyAtMDUwMAoKICAgIFJldGlyZSBDT05GSUdfQ09NTUFORFMgZmluYWxseS4KICAgIFN0cmlwIG9sZCBDRkdfQ01EXyogc3ltYm9scyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTUwMWY3ZDcyMGZlZDk5YWIwYjQyYzgzZjVkZWE1Mjg2OGNlMDA3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjEwOjAzIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgUkVBRE1FLiogdG8gcmVmZXJlbmNlIG5ldyBDT05GSUdfQ01EXyogbmFtZXMgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQzMTI4M2M3ZTZkNTRhZTE4MGQ0NjZlNTFiZjJkOTc0NzFhMGFkOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOTowNjowMCAyMDA3IC0wNTAwCgogICAgY3B1L20qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNhMWVkMWUxZjkyMmM0MTliYjcxZjdkZjQ5NDlkNzgzYWRlMzY5ZmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6NTc6MjIgMjAwNyAtMDUwMAoKICAgIGNwdS9bN2EtbG4tel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiM2FiY2JhYmQ4NDA5MjhmYjFlYjUxMjIxMThjYTQ2NmI1ZTUwMTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6NDU6MTYgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1txLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZmUwMDEwOWE1ZjEyZGU1NWI2ZTI1YjFmOThkZmMyNGJjOTA5MGM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjM4OjM5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bbS1wXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzUwOGE0Y2VmZDhhOTUzZmM2NDk1NzY1MDUwNmEwMzVlNmUzZDlkMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODozMToyOCAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2YtbF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5MzA3MjYyZjhhOWYzYjVjOWUxNWE2MDY3ZWFkYzE3NDA3MTQ2ZjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MjQ6NTUgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tkLWVdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2VjMmViOTNlMTI2NDAwMDA5NzI5MzI4ZTc5N2YxMmJjOTRmMWZkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjE5OjA5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bQS1aYS1jXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU5MzgxNGYyYmUwYzljZGMzMTMzY2Q1NTBiMTY3YjhhOTg4MzI4ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoxMDo1MCAyMDA3IC0wNTAwCgogICAgcnRjLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzM1MDU2OGY5ZDQ2ZTY2YzIxODI5ZjM1MTNiM2RiMGNhZWI5NDhiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjA1OjM4IDIwMDcgLTA1MDAKCiAgICBsaWJfe2FybSxhdnIzMixibGFja2ZpbixnZW5lcmljLGkzODZ9LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZGVmNmIzNGY5MTBmMDhkN2VmMGExNDY0NmRhMDY3NzE5MjM3Y2EyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjAyOjExIDIwMDcgLTA1MDAKCiAgICBsaWJfe202OGssbWljcm9ibGF6ZSxtaXBzLHBwY30vOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkNjBkMTIyM2I5OWE4OGE3MjE2ZjNlMDQxZmU0MDYzNGFkNGMyYmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NTY6NTAgMjAwNyAtMDUwMAoKICAgIGZzLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOTE4OThiYmM1MDVhZmYzZTEyYTgwN2FmODhlNzZkYTE4ZWZiN2VlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjQ2OjA5IDIwMDcgLTA1MDAKCiAgICB0b29scy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjQzZDFhYjIzOTYwOTUwYjUyZTBhMjgwM2MyZDNlYTRjNTU4ZmEwMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo0NToxNCAyMDA3IC0wNTAwCgogICAgbmV0LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjUxYzBiZjg4Zjk1YTFiY2E2ODMyNGIwMTI2ZjhlZWQ4YjQzMjczCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjM5OjQyIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzL1tuLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwN2QzOGExN2U5NjRhZWM0Yzc4MjdmMGVlOWE1ODNiYzhjYzFhZDZiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjMwOjAxIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzL1thLW1dKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZGU1YzY0ZDE3Y2Y0ODM0YWE3YjVjMzczZjI4OGJjN2RhZDI3YjI5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjIyOjM3IDIwMDcgLTA1MDAKCiAgICBkaXNrLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzkyMjFjNzZjODgyMTViZDU1YWY4M2FkMTc0ZmMzMGQxOTQwZjhmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjE1OjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCiAgICBNb3N0bHkgcmVtb3ZlZCBmcm9tIGNvbW1lbnRzIGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZWYyMThmNmZkZjhkNzQ3ZjQ1ODlkYTUyNTJiMDA0ZTdkMmMyODc2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAxMCAwMDowMToyOCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjODYwM2NmYmQ0NTczMzc5YTYwNzZjOWMyMDg1NDViYTJiYmYwMTlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDkgMTE6MDA6MjQgMjAwNyArMDIwMAoKICAgIFNtYWxsIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBmOTJjN2U3YzlhNjI3NTViMTQ1N2QzYzQ2ZjkzYzhjMWY2YzE5ZmMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA4IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgUmVtb3ZlIHVudXNlZCBDRkdfTkFORF9MRUdBQ1kgZGVmaW5lCgogICAgVGhlc2UgYm9hcmRzIHRvIG5vdCBoYXZlIE5BTkQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmQ4NGVlNGMyMDIwYzNhNjg2MWY0YmIyZTdlYTBmYjQ5ZjgyZTgwMwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDYgMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgLWNsZWFudXAKICAgIC11c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgKGluL291dF9iZTMyKCkpCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZTA5ZjdhYjU3NDljMzQ1ZjkyNGRhMjcyYmVhMDUyMWE3M2FmNWIxMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDQgMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBUaGlzIHBhdGNoIHByZXBhcmVzIHRoZSBtaWdyYXRpb24gZnJvbSB0aGUgbGVnYWN5IE5BTkQgZHJpdmVyCiAgICB0byBVLUJvb3QncyBuZXcgTkFORCBzdWJzeXN0ZW0gZm9yIGVzZCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzM1MTdmOTE5ZDBmNjE2NTBjZjMwMjdmZDRmYWYwZjYzMTE0MmY2YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODoxMDowOCAyMDA3IC0wNTAwCgogICAgY29tbW9uLyogbm9uLWNtZCo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmQ5YmNhYTM1YmU2NGZlNDFhNDIyM2ZkYjZlY2RiYWQ1MjQ3MGIzOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODowNTozOSAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bcC14XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3NmZlNDc0MjVhZmM3ZDVkNjcwZmYwNTM5ODIzYzg1ZDY1ZDljNDIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MDI6MjMgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2ktbl0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYWEyNmRiNDExMzY3OWI4MDk3MGZmNDQ3ZDkxY2MxMDIxNzc0MmE2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE3OjUxOjM5IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1thZl0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjA3NWVlOTZlNTJkZGE3YjZiY2E2YzkzNzU4OGFlYWFlYzVmMmNkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE3OjAyOjAxIDIwMDcgLTA1MDAKCiAgICBDbGVhciB1cCBjb25mdXNpb24gb3ZlciB0aGUgQ01EX1BPU1QgYW5kIFBPU1RfRElBRyBtZXNzLgoKICAgIEZvciBzb21lIHJlYXNvbiwgQ09ORklHX1BPU1QgcGVybWVhdGVkIGFzIENPTkZJR19DTURfUE9TVF9ESUFHCiAgICB3aGVuIGl0IHJlYWxseSBtZWFucyBqdXN0IENPTkZJR19DTURfRElBRy4JVGhlcmUgaXMgbm8gQ01EX1BPU1QuCiAgICBDbGVhciB0aGlzIG1lc3MgdXAgc29tZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzNjMxNDg3MTA1YTU3YWI3Y2JhZGZjMjZlZmJhZjk2NzYyNzUwMTgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6NDU6MDggMjAwNyAtMDUwMAoKICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgY21kX2NvbmZkZWZzLmggaW5jbHVkZSBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIyZDRkYTk1ZTIwMDQ5YjRkYWExYzJhMDIyZjYxZThhNzJmMmZiNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTo0Mjo1OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBDYXRjaCBzb21lIENPTkZJR19DTURfKiBjb252ZXJzaW9uIHN0cmFnZ2xlcnMuCgogICAgVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gbHdtb241LmggYm9hcmQgY29uZmlnIGZpbGUuCiAgICBGaXggQ09ORklHX0NNRF8qIHR5cG8gYnJhaW5kYW1hZ2UgaW4gb21hcDE1MTBpbm4uaAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU1NjI5MDE2NjFiZDQyOGY3ZTVmZWIzMzNmNzk2MzcyY2I4MTAxOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTozMTo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtUVVZXWllaXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmU3Zjc4MmQ1YjhjNjRhMDE5NWM2OGMzMWEwYTExZDRmNjQxMzU1ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTowMjo0NCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5YTBmOGYxNWMxMWYzMzc5NjdhYTA2MDBhZDZlOGFmMzMwMzdmNTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MTI6NDAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBSKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMmFhOWZkMjNkNzI0YmQ2YWI4OGUxYmFhMGRiMzUxMzNhMjczMDNmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjU1OjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWNmMDI2OTc3OTQyMmYzZTE0N2QyZGRmYjQ5OWM5ZjZmZjEwYWQ1ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDo0OTo0NCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFAqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxOGExMDYxYTg2MzBjYjY3OTk1ZmRmOTlhZmQzZmI1MGQxYjE4N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6MjE6NDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbTk9dKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MzUzZTEzOWJmYWQ5MDU5YzU0ZjViMjQyMWYxYTMwOTBlMTVhMmUyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjE0OjE3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgTSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQ4ZjI1OGYyNDI1MzQzM2U0YTIzMDJhMGJiY2ViNjc0MGE2NzI0NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxMzo0NjoxOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtJSktMXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmM0ZjRkYTliZmM5Zjk0MDNmNTRmY2U2NzhlZDAzNjRiN2M4NmE2YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxMDowOTozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEgqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwYTA4NzZiNTEwNmIzNDIyMGU0NTljMjA4YmJmNjQ4MDczMzA2YzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjE6MDQ6MjYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBGKiBhbmQgRyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGNhYTcxNTYyODI2YTI0NjZlODk0Yzg2OGQxMzI1MDlkY2RhODQ0NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMDo1NjowNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNjMzIyN2YzYzczNzUwMjMxMWIyNWI3MjA4NDU3MzkwMWNiYmYxN2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjA6NDA6NDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBEKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWNmN2U4ZWU3ZWY5NDNmZGZlODY2Y2UyODQxMGIwYmZiZjZhMjZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjUyOjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGU4YjJhNmUzMzI5OGRjZGIxMGJkZGE0OGRiMjVlNTNjMzA4OWViYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOTozMjowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5OGZmOWEyMjg0ODViZDRiOWYyM2QwNjZiYWRhMjY4ZjlhZGQxZGQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6MTM6NTIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBBKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2luY2UgQURTODYwLmggaW5jbHVkZXMgImJvYXJkL2ZhZHMvZmFkcy5oIiB3aXRoIHJhbWlmaWNhdGlvbnMKICAgIG9uIHRoZSBDT05GSUdfQ09NTUFORCB0cmVhdG1lbnQsIGl0IHRvbyBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8KICAgIGV4Y2x1ZGUgYWxyZWFkeSBjb25maWd1cmVkIGNvbW1hbmRzIGluIHRoaXMgc2FtZSBjb21taXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGUwMzg5MzJmMjJlZTgwZWJkNTNkZTMxMjUzMWU3MGU2NTkwYTJmCkF1dGhvcjogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDE0OjU4OjM5IDIwMDcgKzAyMDAKCiAgICBbTkFORF0gQmFkIGJsb2NrIHNraXBwaW5nIGZvciBjb21tYW5kIG5ib290CgogICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBjb21tYW5kIG5ib290IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyB0aGUgaW1hZ2UgZnJvbQogICAgTkFORCBmbGFzaCB3aXRoIHNraXBwaW5nIG9mIGJhZCBibG9ja3MuIFRoZSBwYXRjaCBpbXBsZW1lbnRzIGEgbmV3IHZlcnNpb24gb2YKICAgIHRoZSBuYm9vdCBjb21tYW5kOiBieSBjYWxsaW5nIG5ib290LmpmZnMyIGZyb20gdGhlIHUtYm9vdCBjb21tYW5kIGxpbmUgdGhlCiAgICBjb21tYW5kIHdpbGwgbG9hZCB0aGUgaW1hZ2UgZnJvbSBOQU5EIGZsYXNoIHdpdGggcmVzcGVjdCB0byBiYWQgYmxvY2tzIChieSB1c2luZwogICAgbmFuZF9yZWFkX29wdHMoKSkuIFRoaXMgaXMgc2ltaWxhciB0byBlLmcuIHRoZSBOQU5EIHJlYWQgY29tbWFuZDogIm5hbmQKICAgIHJlYWQuamZmczIgLi4uIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMzNDA0M2Y2MDFhOTBhYzUzZTVlY2M4NDZmYmI3M2ExZWYzOGNiMWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAxMjoyNjo1MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGRlZmF1bHQgZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWQxODc0MzBhMDU1ZDYyZjE3Y2E4NGQ3NWU3MjQ1NDM5ZDFmN2U3NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDExOjQ4OjI0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgYm9hcmQKCiAgICBBZGQgdW5sb2NrPXllcyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBkZWZhdWx0IHZhcmlhYmxlcyB0byB1bmxvY2sKICAgIHRoZSBDRkkgZmxhc2ggYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmIwYTE3NGExZTZmNTVlMWY1YTFmYmIyMjNjZGFkNzY0NWE0NjQ2ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDA5OjQ1OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggcHJvYmxlbSB3aXRoIGdldC9zZXRkY3IgY29tbWFuZHMgaW50cm9kdWNlZCBieSBjZmcgcGF0Y2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTE1MmY4YzI4ZGI0YTIyMDg3YzIxYzYxOGEzZjdiYWE0OGU5YTRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDAyOjUwOjE5IDIwMDcgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAgYW5kIGRlZmF1bHQgY29uZmlnIHVwZGF0ZSBmb3IgU1RDIEdQMyBTU0EgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNGRiZTFiMjE1ZjVjNmM0NjJlNzY5MDlkMjQwYmQ5NjQ3MmI4NGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCA1IDE3OjU2OjI3IDIwMDcgKzAyMDAKCiAgICBGaXhpbmcgc29tZSB0eXBvcyBldGMuIGludHJvZHVjZWQgbWFpbmx5IGJ5IGNmZyBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjZiNDY4NDU0NjgwOWY4OWM4YmFjNzI4NjNjYTQ5YjVmZDhhYzBjZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgNSAxMToxMjoxNiAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgZGNhM2IzZDZkNjM5NmI2N2U1ZTg0YWY1MzQ1MjE2NDkyM2M3MzQ0MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzo0NiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFt2LXpdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YzE4ZWI5ODA0YjUyNWYzZTRmM2JiM2QwMTRkZDY5YTIwMGQ5ZmE3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjM4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgdCogYW5kIHUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2ZGExZTk2YjdkYjE0ZjRmY2QyYzkyNTQ0ZTdjMDg2MjAyNGJjNzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MzAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBzKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MGNjM2ViNmQyYmU4NTZkOWRkZDgxNDM2ZGU5Y2YzNDNiYzZiNWM4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjIzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcSogYW5kIHIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2YTM0NTYwZDU2YTlkZjViYzJhZTIzNTI1ZDkyMjk3MzYxMzQ3NTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBwKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNWNiMjMwOTJhN2QzMTQ5MGEzM2Q0ZWM4NzE0NjhiNjNiYWJmYTNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjEzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTI5YTJiZmQxNDI3MzcwMDNhOGZjMzJlMWI4NmUxZjJjMTg1MDI1NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG4qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkYzExYTUxMTk2MGQ0OTBmN2YwMWZmZDc0NmVkZmU2Mjc3Zjk5YjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MDEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBtKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YmJiMWMwODIwYzFmYmQzODExYWI2ZWU0YmEwZjZjNmY3NmIyN2U0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMyMzRjMTI5ZmEwNGZiOWZhMzM1MzA5MzBlNWNiYzYwODRjZDQ3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjo1MSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGoqIGFuZCBrKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZDJjNmJjNDkxOTY5ZjhkOGZiMzRjOGUzMGU4YmVhN2EyYWY5YzMxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjMyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhkNWQxMDJhMmYyZTYxOWM5MjA1MGI5YWVkYmI2OTY4OTE4NWJjMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoyNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGgqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyZWIwZWZhZWQ3MDQ4YWZjYzYxZmM2ZjAwODVjNDkzOTRiNWRjMzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBnKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYmVjM2QzMDAyZDNiYmJhZTZmMjQ2OGEwZjczNzZkYjExMjBkMzNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjEwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWI5OTliYTFiMzFlYmU3OGRkMTYzNzQzOTRhNTVkN2M2ZTVhYTZlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjowMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGQqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM3ZTRmMjRiODdmYTI1NWFlNDU2ZDE5M2I3Y2QyM2MxOGRkMWQ1NmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NTYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBjKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTIzNTFmOWQxZTg0MWJkMDBlYTZkYWQxZTNjMTZkMDI1OWFkMjY0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGIzNjFjOTE2NjE3YWZmNzllNjQ3YjQwZjBlNDMzNjFlMGJiYWNjZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo0MiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI3MzBjZGE4MmUzNjJkZjZhMjJmNGM1OWMwYTliOTdlODg1YjEwMTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gbXBjNXh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3OTRjZmVmZWFkNWZjMTc3Y2Y0ZjQxMTY0ZTgwMzgyZTljOTQ4NGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MTUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyA1MjAwIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVmMGRmNTJhYjQ5ZWVhNGEzMGMxNTA4N2ZkMjdkNTRjMWQ5NDZmMmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gU1R4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2NmUzMDg5YmZjODI2YmI0ZGM3NDYzN2Y4YWFkODdhM2JhYjc5ZmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6NTggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gc2JjKiBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNjk0NjkwZTI4NWFjYWEzNDkyMmY1NWY0YjVhZTAzMGRhNjBjNTVhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjUwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIFRRTSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxY2M0YzQ1ODMyOTc2NWI1OGU1ODRhMTk4MjFlNzk2YjNjMTBlOTc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjI4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDgyeHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGVhNTQ5OWFmZGFiYTBhY2Y2MDkyM2RkOTkwMDFjMzk5ZDRhN2M4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDowNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4M3h4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0NDg5NjIxNWEwOWM2MGZhNDBjYWU5MDZmN2VkMjA3YmJjMmM0OTIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgSnVsIDUgMDg6MTc6MzcgMjAwNyArMDIwMAoKICAgIE1lcmdlZCBQT1NUIGZyYW1ld29yayB3aXRoIHRoZSBjdXJyZW50IFRPVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGIyNDYyOWZhMzc3MjE0ZDYzYmI0MGQxMzYwZTM1NGI2ZDNlNGFmNTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIzOjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OiBSZW1vdmUgb2xkIENGR19DTURfKiByZWZlcmVuY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDYxNzVkOTc2NGRhMTI5YmI0ZmQzNDFjZDI1NTRkYzdkNTVmNWIyYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjI6NTQgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTY4TURTIHRvIE1BS0VBTEwgODV4eCB0YXJnZXQuCgogICAgSXQgd2FzIG1pc3NpbmcgZnJvbSB0aGUgb3JpZ2luYWwgcG9ydCBzdWJtaXNzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjgzNWU1MThjOTY5ZTUxMjRiYTExNzRlZWYzZTgzNzVlMTJmYTdkNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjI6MDggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODV4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NmIzMDRhYzIwOTE2ODk1MDYwODhhOWFlNjdmNjNmZDYzMDBjZjE2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMTozNyAyMDA3IC0wNTAwCgogICAgRml4ICNpZiB0eXBvIGluIENPTkZJR19DTURfKiBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjc4MGI4MzMxNmQ5YWYxZjYxZDcxY2M4OGIxOTE3YjM4N2I5Yjk5NQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CVdlZCBKdW4gMjcgMTg6MTE6MzggMjAwNyArMDIwMAoKICAgIHJlc3VibWl0OiBwcGM0eHg6IFJlbW92ZSBzZXF1b2lhL3NlcXVpb2EuaC4gQ2xlYW51cCBwcGM0NDAuaCBmb3IgUFBDNDQwRVBYCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgoKY29tbWl0IDA0ZTZjMzhiNzY2ZWFhMmYzMjg3NTYxNTYzYzllMjE1ZTBjM2EwZDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAxMDowNjozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGJvYXJkCgogICAgLSBBZGQgb3B0aW9uYWwgRUNDIGdlbmVyYXRpb24gcm91dGluZSB0byBwcmVzZXJ2ZSBleGlzdGluZwogICAgICBSQU0gdmFsdWVzLiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIExpbnV4IGxvZy1idWZmZXIgc3VwcG9ydAogICAgLSBBZGQgb3B0aW9uYWwgRERSMiBzZXR1cCB3aXRoIENMPTQKICAgIC0gR1BJTzUwIG5vdCB1c2VkIGFueW1vcmUKICAgIC0gTGltZSByZWdpc3RlciBzZXR1cCBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ODEwYTM0Njc3ZGJjNDQ2MzM0ZjVlNDUxZjE2ODI0MjZkZDMzYjQ5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MTc6MjggMjAwNyAtMDYwMAoKICAgIEZpeCBNYWtlZmlsZSB0byB1c2UgJChNS0NPTkZJRykgbWFjcm8gZm9yIGFsbCBib2FyZCBwb3J0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MGIxYjJkNjliOTM5NmZmMmYwMTE2NWViYzE2YzlhNTk0ZWI1OTI2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MTc6MjggMjAwNyAtMDYwMAoKICAgIEZpeCBNYWtlZmlsZSB0byB1c2UgJChNS0NPTkZJRykgbWFjcm8gZm9yIGFsbCBib2FyZCBwb3J0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwNTcwMDRmNGE0ODYzNTU0ZDU2Y2M1NjI2OGJmYTdjN2Q5NzM4ZTI3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6NDkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YWY2MWIyZjRiODM4YTA1Zjc5YmUyNzRmM2U1YTY2ZWRkMmQ5Yzk2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6NDQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI2MAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MzkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI0eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhODVkZDI1NGMwNTc3ZmNhMTM2MjdjNDZlOTNmYzJhZDRjNGYxZjAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MzQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2Zjc1NzZiMjBlY2YwZDA0MGMzYWMzYjAzMmI1Y2JjODYwZTM4YTkwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MjkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgTVBDNXh4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MjQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgcmVsb2NhdGlvbiBmaXh1cCBmb3IgbXBjNXh4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY4MmIzYjYzMDRiNjIwZWY3ZTI4YmZhYTFlYTg4N2EyYWQyZmEzMjUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoxOSAyMDA3IC0wNjAwCgogICAgRG9uJ3Qgc2V0IGdkLT5yZWxvY19vZmYgaWYgcmVsb2NhdGlvbiBvZiAuZml4dXAgd29ya3MgY29ycmVjdGx5CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxYTYxNDRjMzJkYzdkZTczYmNkZDMzOTk1ZGUwMTQ4Y2JkMGJkMjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoxNCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgzeHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTdlMzJmYzM5MDhiZjcwODlkM2YxNmZjODJhMWMzYWU2NzRkZDY1YgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjA5IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjYwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGFmN2QzOGIzOTM2OTBkN2VlYWY0MThhYzg1YTFlODMxYTUwZDVmZDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDowNCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjk0YTNhZWNlYmM0MGNhMDkzOWM3ZDY2ZDAxMDAwOWNmNTFiZTllMgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjU5IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMyBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhNzFjMDg0ZjNhYzdmZWRmMTQ0NTM3ZGIyYjJkYTQ3MzIzMDY4ODMzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NTMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgyIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY2NzBhMTU0NjhkMTM2NTI0MWQ0MDAyMmI5NDA4ZTEwMDQxODFmNWUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo0OCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDEgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDk1NTViZDQ1YTA0YzBlNTRmMTcyNTI4ZDIxYmMxODg5NjU1MGQyOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjQzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODIyMCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZWZiOTkyZjA0NmU1MTIyNWM5M2Q1MmY4MGZlY2JlNDMzYWJkNzg5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MzggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgzIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA3YzEzZGZlZjY1YjMxNjQ3ZTY5ZDhiNjFkYWExZWVjNTk4YWRkMWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzozMyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDIgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjRmNjc1MTNhNjI0Y2U4NTg2NmM2NmM1NzViZDJkOWQ3OTc3ZDdmMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjI4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMSBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiN2Q4ZTA1Zjg2NzUyNDliNWYyMDhhYTczYmFiZWVkMzg0YTQ1MTlkCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MjMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNDE2YTBiNmQ0MGY2ZWJhM2EyZmM1NDcyNTNjMTZiZGEyOGQ5MjJmNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjE4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4M3h4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVmYzU5MTc1YjkyODgzZWQ1ZDI2NjZhMDRlNmJjNDllNzBhNGEzNjUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoxMyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI2MCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3MzdmOWViMDJkNzMzNWRmMmIzZTRkN2E0ZDMzNDg3ODRkMWRhMjA3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MDggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOWM3NTdiNzg5YTU5YTg1NWRiNTdiNDQ4ZGQ4MjUzMjljNGU5YzRhMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjAzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjIwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGQxODFjOWExNWNkNDE4NjNmZTI0ODQwZDE3ODQ4NDI5ZjI3ZDNjOGMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMjo1OCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAyODdhYzkyNGFkYjcyOTFiZWJlNTA4NjY1MmEzNjJhMzBhYjI4YjEzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzI6NTMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzV4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1MmI4NzA0ZDAyNDVlNTg5Zjg2ZDQ2MmU5ZWMyNWFlYjdlY2JiYmRkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDAwOjQzOjUzIDIwMDcgKzAyMDAKCiAgICBGaXggYSBmZXcgZmlsZSBwZXJtaXNzaW9uIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzhlMGNmMmRlN2JlN2YxZWFlZWI2MjJlYjYxZmQ1MGU0ZDVlMjA1YwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAwMDozODozOCAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFJlYnVpbGQgQ0hBTkdFTE9HIGZpbGUuCgpjb21taXQgMmY5YzE5ZTQ5NmFjYjZiYjUwZDkyOTllMWFhYjM3NzYyNWQ0OGMzOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6NDQgMjAwNyAtMDUwMAoKICAgIGNvbmZpZ3MvIG1wYzg2eHg6IFJld3JpdGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgdXNpbmcgbmV3IENPTkZJR19DTUQtKiBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwMmFkM2IzM2Q5Y2VlZjgzZGJhYjQ2YmU2ODY0NmQ2NDVkNjM3ZWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjM5IDIwMDcgLTA1MDAKCiAgICBSRUFETUU6IFJld3JpdGUgY29tbWFuZCBsaW5lIGNvbmZpZyB0byB1c2UgQ09ORklHX0NNRF8qIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzJhMDc0Y2VjNjhlNWJhZDYwZDYzMjA2YzA1MDk3NGUwOGFmZDgwNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MzQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvIG5vbi1jb25maWc6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmY2Y1NDNlMGI2NjI4Yzc2ZmY0ODcwNWIxYjA1NjZiZmQxMTUwN2IKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjI4IDIwMDcgLTA1MDAKCiAgICB0b29scy8gOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MTA3ZWJlMGQzNTI0MjA4OTVhYjY5YjcxNTY5N2JkZWJjOGNhZjUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoyMyAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2stel0qOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZTM3ODAwM2Q1OTJlYTgyOGVjNjlkNmRlZmNkNGRlNzkwOTZkZDVjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoxOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW01hLWldKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzM3MTg0MTE0ZWM5YzllMGFiOTRkNjcxMzUzNjEyNjA3M2JkMjQ3MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MTUgMjAwNyAtMDUwMAoKICAgIGNwdS8gbm9uLW1wYyo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0ODA3MGZlNWZlNDQwZGZiNWVlNTI2OGM5MjBkZTcwZTQ4ZWEzMjcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjA4IDIwMDcgLTA1MDAKCiAgICBjcHUvbXBjKi8gOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYzUwNWRiMGEwZGMxZjY3MGIxM2NlM2I0ZDNmYmYxZWM1YjNjYmQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzowMyAyMDA3IC0wNTAwCgogICAgbGliXyovOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3M2YwMzIwMjFlYzVmMTNjZGE4ZmFhNGUzNGI2ZGU4MDk2MGViODZmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo1OCAyMDA3IC0wNTAwCgogICAgbGliX3BwYy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4Yjc5MDAzYzIxYzI1NzgyMDYwMDMyNTZkZTRlNzgxZDZiMzZjYTgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjUzIDIwMDcgLTA1MDAKCiAgICBydGMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZTIxMTVhY2I2YTg5MmQ1M2E2ODgxYmYyNTNhZTQxZDNkZjM5MTU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo0OSAyMDA3IC0wNTAwCgogICAgbmV0LzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVjZGI5YjcyYzk0NjU1YzczMDhiNDY0YTI2NjYwNTdjMGIyODZlMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MzQgMjAwNyAtMDUwMAoKICAgIGRpc2svOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTEwOWFlOTgyOTRhNWNhN2ZmODQ4Yjc2NTJjN2JmZDQwMjNhOTRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjoyMCAyMDA3IC0wNTAwCgogICAgZnMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNWJlNDNkZTkzZmY5MDVjNDY1ZTUwOWQ0NWEzMTY0ZWY0OGQyNmU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjoxMCAyMDA3IC0wNTAwCgogICAgZHJpdmVycy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0NTM5NjBkNGZkYjg3YjM5NzBkOTYxMTliOTBkZjJlZDAyNGZjNGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjA1IDIwMDcgLTA1MDAKCiAgICBjb21tb24vIG5vbi1jbWQ6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1YzQ1MGI0N2E2MjY1OWQ1MjJjZmE4ZjRmYTFlNGU1YzYwZGNjZDAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjU0IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1tpLXpdKiA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NmFkYzgxNDJjMWQ5NTYzODVhMTA5ZTBiNzBmOTMxOWVkZTRkNjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjQzIDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1thLWZdKiA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjNjNiMTBiNjFmZDY4MjM4ZDRjMTVjMWNkMDRjMGIzODIyOGUyYzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjM0IDIwMDcgLTA1MDAKCiAgICBJbnRyb2R1Y2UgaW5pdGlhbCB2ZXJzaW9ucyBvZiBuZXcgQ29tbWFuZCBDb25maWcgZmlsZXMuCgogICAgRGVyaXZlIHRocmVlIG5ldyBmaWxlcyBmcm9tIGNtZF9jb25mZGVmcy5oOgoJY29uZmlnX2Jvb3RwLmggLSBIYXMgQk9PVFAgcmVsYXRlZCBjb25maWcgb3B0aW9ucywgbm90IGNvbW1hbmRzCgljb25maWdfY21kX2FsbC5oIC0gSGFzIGEgQ09ORklHX0NNRF8qIGRlZmluaXRpb24gZm9yIGV2ZXJ5IGNvbW1hbmQKCWNvbmZpZ19jbWRfZGVmYXVsdC5oIC0gSGFzIGEgQ09ORklHX0NNRF8qIGRlZmluaXRpb24gZm9yIGRlZmF1bHQgY21kcy4KCiAgICBGb3Igbm93LCBpbmNsdWRlICJjb25maWdfYm9vdHAuaCIgZm9yIGNvbXBhdGFiaWxpdHkgdW50aWwgYWxsCiAgICB1c2VycyBvZiBpdCBkaXJlY3RseSBpbmNsdWRlIGl0IHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWYyYTA1ODk4NjU4OTAwZGM1NzE3NzYxZTI3YWJmMjA1MmU2N2UxMwpBdXRob3I6IE11c2h0YXEgS2hhbiA8bXVzaHRhcWtfOTIxQHlhaG9vLmNvLmluPgpEYXRlOglTYXQgSnVuIDMwIDE4OjUwOjQ4IDIwMDcgKzAyMDAKCiAgICBGaXggUy1BVEEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBtdXNodGFxIGtoYW4gPG11c2h0YXFrXzkyMUB5YWhvby5jby5pbj4KCmNvbW1pdCBhNWQ3MWUyOTBmMzY3MzI2OWJlOGVlZmI0ZWM0NGY1MzQxMmY5NDYxCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gSnVuIDI1IDE5OjExOjM3IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCWdldCByaWQgb2YgQ09ORklHX1BQQzR4eF9VU0VfU1BEX0REUl9JTklUX0hBTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBhMWJkNjIwMGVjY2QzYTAyMDQwYTk1NWQ1ZjQzZDNlZTFmYzlmOTNiCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgpEYXRlOglNb24gSnVuIDI1IDE3OjAzOjEzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFBQQzQ0MEVQeCBFbWl0IEREUjAgcmVnaXN0ZXJzIG9uIG1hY2hpbmUgY2hlY2sgaW50ZXJydXB0CgogICAgVGhpcyBwYXRjaCBwcmludHMgdGhlIEREUiBzdGF0dXMgcmVnaXN0ZXJzIHVwb24gbWFjaGluZSBjaGVjawogICAgaW50ZXJydXB0IG9uIHRoZSA0NDBFUHgvR1J4LiBUaGlzIGNhbiBiZSB1c2VmdWwgZXNwZWNpYWxseSB3aGVuCiAgICBFQ0Mgc3VwcG9ydCBpcyBlbmFibGVkLgoKICAgIEkgYWRkZWQgc29tZSBzbWFsbCBjaGFuZ2VzIHRvIHRoZSBvcmlnaW5hbCBwYXRjaCBmcm9tIE5pa2xhdXMgdG8KICAgIG1ha2UgaXQgY29tcGlsZSBjbGVhbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODA3MDE4ZmI3ZmFjZWI0MjljZTBjYjQ3YmFhMjA3Mzc0NmIzM2E0ZQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxNjo1MDo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggTz1idWlsZGlyIGJ1aWxkcwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gdG8gYXNzZW1ibGUgY3B1L3BwYzR4eC9zdGFydC5TCiAgICBleHBlcmllbmNlZCBsYXN0IHdlZWsgd2hlcmUgYnVpbGRpbmcgZmFpbGVkIGhhdmluZyBzcGVjaWZpZWQKICAgIE89Li4vYnVpbGQuc2VxdW9pYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+Cgpjb21taXQgNDY2ZmZmMWE3YmI1ZmU3NjRhMDY0NTA2MjZmNjA5ODIxOWY0NDZiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyNSAxNTo1NzozOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcGNpX3ByZV9pbml0KCkgZm9yIDQwNSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIENGR19QQ0lfUFJFX0lOSVQgb3B0aW9uIGNvbXBsZXRlbHksIHNpbmNlCiAgICBpdCdzIG5vdCBuZWVkZWQgYW55bW9yZSB3aXRoIHRoZSBwYXRjaCBmcm9tIE1hdHRoaWFzIEZ1Y2hzIHdpdGgKICAgIHRoZSAid2VhayIgcGNpX3ByZV9pbml0KCkgaW1wbGVtZW50YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmMzVjNTMxNjYyMTNjMjRhNWEwZTIzOTBlZDg2MTEzNmZmNzM4NzAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIEp1biAyNCAxNzo0MToyMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWludGVuYW5jZSBwYXRjaCBmb3IgZXNkJ3MgQ1BDSTQwNSBkZXJpdmF0cwoKICAgIC1hZGQgcGNpX3ByZV9pbml0KCkgZm9yIHBjaSBpbnRlcnJ1cHQgZml4dXAgY29kZQogICAgLWRpc2FibGUgcGh5IHNsZWVwIG1vZGUgdmlhIHJlc2V0X3BoeSgpIGZ1bmN0aW9uCiAgICAtdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzCiAgICAtY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDVhMWM5ZmYwYzQ0MzA1YjU3Y2I0ZDhmOTM2OWJiYTkwYmNmMGUxZjgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIEp1biAyNCAxNzoyMzo0MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcGNpX3ByZV9pbml0KCkgZm9yIDQwNSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY2FsbGluZyBhIHBsYXR0Zm9ybSBkZXBlbmRhbnQKICAgIHBjaV9wcmVfaW5pdCgpIGZ1bmN0aW9uIGZvciA0MDUgYm9hcmRzLiBUaGlzIGNhbiBiZSB1c2VkIHRvCiAgICBtb3ZlIHRoZSBjdXJyZW50IHBjaV80MDVncF9maXh1cF9pcnEoKSBmdW5jdGlvbiBpbnRvIHRoZQogICAgYm9hcmQgY29kZS4KCiAgICBUaGlzIHBhdGNoIGFsc28gbWFrZXMgdGhlIENGR19QQ0lfUFJFX0lOSVQgZGVmaW5lIG9ic29sZXRlLgogICAgQSBkZWZhdWx0IGZ1bmN0aW9uIHdpdGggJ3dlYWsnIGF0dHJpYnV0ZSBpcyB1c2VkIHdoZW4KICAgIGEgYm9hcmQgc3BlY2lmaWMgcGNpX3ByZV9pbml0KCkgaXMgbm90IGltcGxlbWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDE2MzZkMWM4NTI5YzAwNmQxMDYyODdjZmJjMjBjZDBhMjQ2ZmUxY2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDIzOjU5OjAwIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGtlIGNsZWFudXA7IHJlYnVpbGQgQ0hBTkdFTE9HCgpjb21taXQgMmRjNjQ0NTFiNGMwOGZmZDYxOTM3MmFiZmRjMjUwNmEyZTIzNjNiOQpBdXRob3I6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBBcHIgMTggMTQ6NTU6MTkgMjAwNyArMDQwMAoKICAgIEFkYXB0IGxvZyBidWZmZXIgY29kZSB0byBzdXBwb3J0IExpbnV4IDIuNgoKICAgIEEgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlLCAibG9ndmVyc2lvbiIsIHNlbGVjdHMgdGhlIGxvZyBidWZmZXIKICAgIGJlaGF2aW91ci4gSWYgaXQgaXMgbm90IHNldCBvciBzZXQgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIDIsIHRoZW4gdGhlCiAgICBvbGQsIExpbnV4IDIuNC40LCBiZWhhdmlvdXIgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KICAgIC0tCgpjb21taXQgYTExZTA2OTY1ZWM5MTI3MGM1MTg1MzQwN2ZmMTI2MWQzYzc0MDM4NgpBdXRob3I6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBNYXIgMjggMTk6MDY6MTkgMjAwNyArMDQwMAoKICAgIEV4dGVuZCBQT1NUIHN1cHBvcnQgZm9yIFBQQzQ0MAoKICAgIEFkZGVkIG1lbW9yeSwgQ1BVLCBVQVJULCBJMkMgYW5kIFNQUiBQT1NUIHRlc3RzIGZvciBQUEM0NDAuCgogICAgU2lnbmVkLW9mZi1ieTogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KICAgIC0tCgpjb21taXQgNTY2YTQ5NGY1OTJhZTNiM2MwNzg1ZDkwZDRlMWJhNDU1NzQ4ODBjNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxOToxMTo1NCAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQkgICAgdXBncmFkZSB0aGUgUENTNDQwRVAgYm9hcmQ6CgkJICAgIC0gU2hvdyBvbiB0aGUgU3RhdHVzIExFRHMsIHNvbWUgU3RhdGVzIG9mIHRoZSBib2FyZC4KCQkgICAgLSBHZXQgdGhlIE1BQyBhZGRyZXNzZXMgZnJvbSB0aGUgRUVQcm9tCgkJICAgIC0gdXNlIFBSRUJPT1QKCQkgICAgLSB1c2UgdGhlIENGIG9uIHRoZSBib2FyZC4KCQkgICAgLSBjaGVjayB0aGUgVS1Cb290IGltYWdlIGluIHRoZSBGbGFzaCB3aXRoIGEgU0hBMQoJCSAgICAgIGNoZWNrc3VtLgoJCSAgICAtIHVzZSBkeW5hbWljIFRMQiBlbnRyaWVzIGdlbmVyYXRpb24gZm9yIHRoZSBTRFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDNhMWY1YzgxYjBiOTU1NzgxN2E3ODliZWNlODM5OTA1NTgxYzIyMDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTY6NTg6NDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gd2l0aCBleHRlbmRlZCBwcm9ncmFtX3RsYigpIGZ1bnRpb24KCiAgICBUaGUgcmVjZW50bHkgZXh0ZW5kZWQgcHJvZ3JhbV90bGIoKSBmdW5jdGlvbiBoYWQgYSBwcm9ibGVtIHdoZW4KICAgIG11bHRpcGxlIFRMQidzIGhhZCB0byBiZSBzZXR1cCAoZm9yIGV4YW1wbGUgd2l0aCA1MTJNQiBvZiBTRFJBTSkuIFRoZQogICAgdmlydHVhbCBhZGRyZXNzIHdhcyBub3QgaW5jcmVtZW50ZWQuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZQogICAgYW5kIGlzIHRlc3RlZCBvbiBLYXRtYWkgd2l0aCA1MTJNQiBTRFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIwMzJlOGYxNDc1MWExYTc1MWIwOTI0MGE0ZjFjZjlmOGEyMDc3ZgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gMjIgMTQ6NTg6MDQgMjAwNyArMDIwMAoKICAgIFtwcGNdIEZpeCBidWlsZCBicmVha2FnZSBmb3IgYWxsIG5vbi00eHggUG93ZXJQQyB2YXJpYW50cy4KCiAgICAtIGFkYXB0IHRvIHRoZSBtb3JlIGdlbmVyaWMgRVhDRVBUSU9OX1BST0xPRyBhbmQgQ1JJVF9FWENFUFRJT04gbWFjcm9zCiAgICAtIG1pbm9yIDR4eCBjbGVhbnVwCgpjb21taXQgZDY3N2IzMjg1NWY1NzdhZTI2OTBkY2Q2NGExNzJjZGQ3MDZlMGZmYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIEp1biAyMiAxMDozNDoxMiAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBhZGQgbmFuZF9pbml0KCkgcHJvdG90eXBlIHRvIG5hbmQuaAoKICAgIHNpbmNlIG5hbmRfaW5pdCgpIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBieSBvdGhlciBwYXJ0cyBvZiB1LWJvb3QsIHRoZXJlCiAgICBzaG91bGQgYmUgYSBwcm90b3R5cGUgZm9yIGl0IGluIG5hbmQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4M2I0Y2ZhM2Q2MjlkZmYwMjY0MzY2MjYzYzVlOTRkOWE1MGFkODBiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1biAyMCAxODoxNDoyNCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFJlZnJlc2ggQ0hBTkdFTE9HLgoKY29tbWl0IGIzZjllYzg2ZTM4ODIwN2ZkMDNkY2RmN2IxNDViOWVkMDgwYmYwMjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTc6MjI6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGJvb3RzdHJhcCBjb21tYW5kIGZvciBBTUNDIFNlcXVvaWEgKDQ0MEVQeCkgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGJvYXJkIGNvbW1hbmQgdG8gY29uZmlndXJlIHRoZSBJMkMgYm9vdHN0cmFwIEVFUFJPTQogICAgdmFsdWVzLiBSaWdodCBub3cgNTMzIGFuZCA2NjdNSHogYXJlIHN1cHBvcnRlZCBmb3IgYm9vdGluZyBlaXRoZXIgdmlhIE5PUgogICAgb3IgTkFORCBGTEFTSC4gSGVyZSB0aGUgdXNhZ2U6CgogICAgPT4gYm9vdHN0cmFwIDUzMyBub3IJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDUzM01IeiBOT1IgYm9vdGluZwogICAgPT4gYm9vdHN0cmFwIDY2NyBuYW5kCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciA2NjdNSHogTk5BTkQgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjhhMjRjZGQzMDE1MTUwNWNmNTdiYmVlNTI4OWU5MWJmNTNiZDFiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE2OjQyOjMxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBGaXggcHJvYmxlbSB3aXRoIE5BTkQgYm9vdGluZyBvbiBBTUNDIEFjYWRpYQoKICAgIFRoZSBsYXRlc3QgY2hhbmdlcyBzaG93ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGxvY2F0aW9uIG9mIHRoZSBOQU5ELVNQTAogICAgaW1hZ2UgaW4gdGhlIE9DTSBhbmQgdGhlIGluaXQtZGF0YSBhcmVhIChpbmNsLiBjYWNoZSkuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODZiYTk5ZTM0MTk0Mzk0MDUyZDI0YzA0ZGM0MGQxMjYzZDI5YTI2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNjo0MDo1OCAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQ2hhbmdlIGJvYXJkL2FtY2MvYWNhZGlhL2Nwci5jIHRvIHBsbC5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhlNTg1ZjAyZjgyYzE3Y2M2NmNkMjI5ZGJmMGZkMzA2NmJiYmY2NTgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDE4IDEzOjUwOjEzIDIwMDcgLTA1MDAKCiAgICBBZGRlZCBNNTMyOUFGRUUgYW5kIE01MzI5QkZFRSBQbGF0Zm9ybXMKCiAgICBBZGRlZCBib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIsIGNwdS9tY2Y1MzJ4LCBkcml2ZXJzL25ldCwKICAgIGRyaXZlcnMvc2VyaWFsLCAgaW1tYXBfNTMyOS5oLCBtNTMyOS5oLCBtY2ZydGMuaCwKICAgIGluY2x1ZGUvY29uZmlncy9NNTMyOUVWQi5oLCBsaWJfbTY4ay9pbnRlcnJ1cHRzLmMsIGFuZAogICAgcnRjL21jZnJ0Yy5jCgogICAgTW9kaWZpZWQgQ1JFRElUUywgTUFLRUZJTEUsIE1ha2VmaWxlLCBSRUFETUUsIGNvbW1vbi9jbWRfYmRpbmZvLmMsCiAgICBjb21tb24vY21kX21paS5jLCBpbmNsdWRlL2FzbS1tNjhrL2J5dGVvcmRlci5oLCBpbmNsdWRlL2FzbS1tNjhrL2ZlYy5oLAogICAgaW5jbHVkZS9hc20tbTY4ay9pby5oLCBpbmNsdWRlL2FzbS1tNjhrL21jZnRpbWVyLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL21jZnVhcnQuaCwgaW5jbHVkZS9hc20tbTY4ay9wdHJhY2UuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvdS1ib290LmgsIGxpYl9tNjhrL01ha2VmaWxlLCBsaWJfbTY4ay9ib2FyZC5jLAogICAgbGliX202OGsvdGltZS5jLCBuZXQvZXRoLmMgYW5kIHJ0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDkzMTcyZjA4ZDZhZmIzZjM0ZDhhMmYyNmVlMGVlODc0MjYxY2YyNwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEp1biAxNyAxOTowNDoxMSAyMDA3ICswMjAwCgogICAgW2ZpeF0gZW1haWwgcmVwYXJhdGlvbgoKY29tbWl0IDM2NjZhZmZmZTdiYWY4NTljNmFlMGNlMmJlYmJjOGFiN2U1MTJkZGMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBKdW4gMTcgMTk6MDM6MjEgMjAwNyArMDIwMAoKICAgIFtGSVhdIGZpeCBtaWNyb2JsYXplIGZpbGUgcGVybWl0aXNzaW9uCgpjb21taXQgZTczODQ2YjdjZjFlMjlhZTYzNWJmOWJiNTU3MDI2OTY2M2RmMmVlNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAxMTozMzo0MSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQ2hhbmdlIGx3bW9uNSBwb3J0IHRvIHdvcmsgd2l0aCByZWNlbnQgNDQwIGV4Y2VwdGlvbiByZXdvcmsKCiAgICBOb3cgQ09ORklHXzQ0MCBoYXMgdG8gYmUgZGVmaW5lZCBpbiBhbGwgUFBDNDQwIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWZhMzVjZjEyZDkxNGQ0Y2FiYTk0MmFjZDVhNmM0NWYyMTdkZTMwMgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDE1IDExOjE5OjI4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENsZWFuIHVwIDQ0MCBleGNlcHRpb25zIGhhbmRsaW5nCgogICAgLSBJbnRyb2R1Y2VkIGRlZGljYXRlZCBzd2l0Y2hlcyBmb3IgYnVpbGRpbmcgNDQwIGFuZCA0MDUgaW1hZ2VzIHJlcXVpcmVkCiAgICAgIGZvciA0NDAtc3BlY2lmaWMgbWFjaGluZSBpbnN0cnVjdGlvbnMgbGlrZSAncmZtY2knIGV0Yy4KCiAgICAtIEV4Y2VwdGlvbiB2ZWN0b3JzIG1vdmVkIHRvIHRoZSBwcm9wZXIgbG9jYXRpb24gKF9zdGFydCBtb3ZlZCBhd2F5IGZyb20KICAgICAgdGhlIGNyaXRpY2FsIGV4Y2VwdGlvbiBoYW5kbGVyIHNwYWNlLCB3aGljaCBpdCBvY2N1cGllZCkKCiAgICAtIENyaXRpY2FsSW5wdXQgbm93IHNlcnZpY2VkICh3aXRoIGRlZmF1bHQgaGFuZGxlcikKCiAgICAtIE1hY2hpbmVDaGVjayBwcm9wZXJseSBzZXJ2aWNlZCAoYWRkZWQgYSBkZWRpY2F0ZWQgaGFuZGxlciBhbmQgcmV0dXJuCiAgICAgIHN1YnJvdXRpbmUpCgogICAgLSBPdmVyYWxsIGNsZWFudXAgb2YgZXhjZXB0aW9ucyBkZWNsYXJlZCB3aXRoIFNURF9FWENFUFRJT04gbWFjcm8gKHVudXNlZCwKICAgICAgdW5oYW5kbGVkIGFuZCB0aG9zZSBub3QgcmVsZXZhbnQgZm9yIDR4eCB3ZXJlIGVsaW1pbmF0ZWQpCgogICAgLSBFbGltaW5hdGVkIExpbnV4IGxlZnRvdmVycywgcmVtb3ZlZCBkZWFkIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjc2NWZmYjc3M2Y1YTNjZDVhYTk0ZWM3NmI2YTA1Mjc2YjhjZDViMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAwODoxODowMSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQWRkIGluaXRpYWwgbHdtb241IGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgTGllYmhlcnIgbHdtb241IGJvYXJkIGV1cWlwcGVkCiAgICB3aXRoIGFuIEFNQ0MgNDQwRVB4IFBvd2VyUEMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1ZjczNzM3NmQ1ZmYzZDVmMGQ0NWE4YjY1NzY4NjMyNmQxNzUzMDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMDc6Mzk6NDMgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEV4dGVuZCA0NHggR1BJTyBzZXR1cCB3aXRoIGRlZmF1bHQgb3V0cHV0IHN0YXRlCgogICAgVGhlIGJvYXJkIGNvbmZpZyBhcnJheSBDRkdfNDQwX0dQSU9fVEFCTEUgZm9yIHRoZSBwcGM0NDAgR1BJTyBzZXR1cAogICAgaXMgZXh0ZW5kZWQgd2l0aCB0aGUgZGVmYXVsdCBHUElPIG91dHB1dCBzdGF0ZSAobGV2ZWwpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYmNhMjA4NTE4ZTVlN2YwMWE2NDIwNTg4ZDFjZDZlNjBkYjc0YzJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVuIDE0IDExOjE0OjMyIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBFeHRlbmQgcHJvZ3JhbV90bGIoKSB3aXRoIHZpcnR1YWwgJiBwaHlzaWNhbCBhZGRyZXNzZXMKCiAgICBOb3cgcHJvZ3JhbV90bGIoKSBhbGxvd3MgdG8gcHJvZ3JhbSBhIFRMQiAob3IgbXVsdGlwbGUpIHdpdGgKICAgIGRpZmZlcmVudCB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzZXMuIFdpdGggdGhpcyBjaGFuZ2UsIG5vdyBvbmUKICAgIHBoeXNpY2FsIHJlZ2lvbiAoZS5nLiBTRFJBTSkgY2FuIGJlIG1hcHBlZCAyIHRpbWVzLCBvbmNlIHdpdGggY2FjaGVzCiAgICBkaWFibGVkIGFuZCBvbmNlIHdpdGggY2FjaGVzIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5MTIxMjFmN2VkODA0ZWE1OGZkNjJmM2YyMzBiNWRjZmMzNTdkODgKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAyMyAxOTowMjo0MSAyMDA3ICswMjAwCgogICAgQ2hhbmdlICdyZXBlYXRhYmxlJyBhdHRyaWJ1dGUgb2Ygc29tZSBjb21tYW5kcyB0byBzZW5zaWJsZSB2YWx1ZXMuCgogICAgTW9zdCBwcm9taW5lbnRseSB0aGlzIGNoYW5nZXMgJ2VyYXNlJyB0byBiZSBub24tcmVwZWF0YWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1YWZiMjAyMDkzZjZhMDAxNzk3ZGI5MmNmNjk1YjkzYTcwZWE5YWI0CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMjMgMTg6NDc6NDggMjAwNyArMDIwMAoKICAgIEZpeCAncnVuJyBub3QgdG8gY29udGludWUgYWZ0ZXIgaW50ZXJydXB0ZWQgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDliNzQ2NGEyYzg4NjE0ZTEwNjFmNTA5YzQ4OTMwYTNkMjQwZDFhMzUKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDExIDE1OjE0OjI0IDIwMDcgKzAyMDAKCiAgICBVU0I6IFRoaXMgcGF0Y2ggZml4IHJlYWRsIGluIG9oY2kgc3dhcCByZWcgYWNjZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGY4NDE2ZmFkYTlmYWY5NGI5YTkyZjIxZmU2MDAwNjQzY2I1MjFkNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gOCAxNDo1MjoyMiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQWRkIEZsYXQgRGV2aWNlIFRyZWUgc3VwcG9ydCwgdXBkYXRlIGRlZmF1bHQgZW52LiBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTA0NWYzM2MwMjNmNjk4NjYwYTJlNDVkMWIyMTk0YzA3MTFhYmViYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gOCAxMDoyNDo1OCAyMDA3ICswMjAwCgogICAgRml4IGNvbmZpZyBwcm9ibGVtcyBvbiBTQzMgYm9hcmQ7IG1ha2UgaWRlX3Jlc2V0X3RpbWVvdXQgd29yay4KCmNvbW1pdCBmYmEzZmIwNDQ5YjhhNTQ1NDJhZWQxZTcyOWRlNzZlN2Y1YTJmZjFiCkF1dGhvcjogQmVub8OudCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KRGF0ZToJRnJpIEp1biA4IDA5OjU1OjI0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGZpeCBncGlvIHNldHRpbmcgd2hlbiB1c2luZyBDRkdfNDQwX0dQSU9fVEFCTEUKCiAgICBTZXQgdGhlIGNvcnJlY3QgdmFsdWUgaW4gR1BJT3hfVENSIHdoZW4gY29uZmlndXJpbmcgdGhlIGdwaW8KICAgIHdpdGggQ0ZHXzQ0MF9HUElPX1RBQkxFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbm9pdCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTM5ZWRjMDc2Y2ZlNTJiZmY5MTlkZDUxMmJhOGQ3YWYwZTIyMDkyCkF1dGhvcjogVmFkaW0gQmVuZGVidXJ5IDx2YmVuZGViQGdvb2dsZS5jb20+CkRhdGU6CVRodSBNYXkgMjQgMTU6NTI6MjUgMjAwNyAtMDcwMAoKICAgIGNvc21ldGljIGNoYW5nZXMgdG8gYmNtNTcweCBkcml2ZXIKCiAgICBUaGlzIGlzIGEgY29zbWV0aWMgb25seSBjaGFuZ2VzIHN1Ym1pc3Npb24uCiAgICBJdCBhZmZlY3RzIGZpbGVzIHJlbGV2YW50IHRvIGJjbTU3MHggZHJpdmVyLgogICAgdGhlIGNvbW1hbmRzIHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjaGFuZ2Ugd2FzCgogICAgY2QgZHJpdmVycwogICAgTGluZGVudCAtcGNzIC1sODAgIGJjbTU3MHguYyAgIGJjbTU3MHhfbG0uaCAgIGJjbTU3MHhfbW0uaAl0aWdvbjMuYyAgdGlnb24zLmgKCiAgICBUaGUgQk1XIHRhcmdldCAodGhlIG9ubHkgb25lIHVzaW5nIHRoaXMgY2hpcCBzbyBmYXIpIGJ1aWxkcyBjbGVhbmx5LCB0aGUKICAgIGBiZWZvcmUgYW5kIGFmdGVyJyBnZW5lcmF0ZWQgb2JqZWN0IGZpbGVzIGZvciBkcml2ZXJzL2JjbTU3MHguYyBhbmQKICAgIGRyaXZlcnMvdGlnb24zLm8gYXJlIGlkZW50aWNhbCBhcyByZXBvcnRlZCBieSBvYmpkdW1wIC1kCgogICAgU2lnbmVkLW9mZi1ieTogVmFkaW0gQmVuZGVidXJ5IDx2YmVuZGViQGdvb2dsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA3MjU2NzFjY2QyY2QwNGM5ZWJjNTBjOWU1YTk0ZGQ4Y2JhZGU2NmI3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDE2OjI2OjU2IDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgZ2VuZXJhdGUgbmV3IENIQU5HRUxPRyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTlkNzYzYzM1ZTBiNTU2OGVhZjBiOGFkYmY3YTY4Y2NmZTdmYTI0MwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0NCAyMDA3ICswMjAwCgogICAgVFJBQiwgVVNCOiB1cGRhdGUgdHJhYiBib2FyZCBjb25maWd1cmF0aW9uIGZvciB1c2Ugb2YgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IGRhY2U0NWFjZDFjMTM1N2RhYTkzMjIwOTlkMDdjOWE5ZTA4YjAwMjQKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDMgMjAwNyArMDIwMAoKICAgIFVTQjogb2hjaSBmaXhlcyBhbmQgY2xlYW51cCBmb3IgcHBjNHh4IGFuZCB5b3NlbWl0ZSBib2FyZC4KCmNvbW1pdCA3MjY1NzU3MGI2MTYzNWM3NGZhMGMzZjBlOWU3ZDA2NzFhOWQwOGRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQzIDIwMDcgKzAyMDAKCiAgICBVU0I6IG9oY2kgZml4ZXMgYW5kIGNsZWFudXAgZm9yIG1wYzV4eHggYW5kIEljZUN1YmUgYm9hcmQgY29uZmlnCgpjb21taXQgZmM0M2JlNDc4ZjJhYTM3Y2UzOGFjZDg1MzU1MDM4ODY2ZTQxNjJhZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTozNSAyMDA3ICswMjAwCgogICAgVVNCL09IQ0k6IGVuZGlhbm5lc3MgY2xlYW51cCBpbiB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IGM0NDBiZmU2ZDZkOTJkNjY0NzhhN2U4NDQwMmIzMWY0ODQxMzYxN2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0MjoxMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIEFNQ0MgQWNhZGlhICg0MDVFWikgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQWNhZGlhIGV2YWwgYm9hcmQuCgogICAgUGxlYXNlIG1ha2Ugc3VyZSB0byBjb25maWd1cmUganVtcGVyIEo3IHRvIHBvc2l0aW9uIDItMyB3aGVuIGJvb3RpbmcKICAgIGZyb20gTk9SLCBhbmQgdG8gcG9zaXRpb24gMS0yIHdoZW4gYm9vdGluZyBmb3IgTkFORC4KCiAgICBJIGFsc28gYWRkZWQgYSBib2FyZCBjb21tYW5kIHRvIGNvbmZpZ3VyZSB0aGUgSTJDIGJvb3RzdHJhcCBFRVBST00KICAgIHZhbHVlcy4gUmlnaHQgbm93IG9ubHkgMjY3TUh6IGlzIHN1cHBvcnQgZm9yIGJvb3RpbmcgZWl0aGVyIHZpYSBOT1IKICAgIG9yIE5BTkQgRkxBU0guIEhlcmUgdGhlIHVzYWdlOgoKICAgID0+IGJvb3RzdHJhcCAyNjcgbm9yCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciAyNjdNSHogTk9SIGJvb3RpbmcKICAgID0+IGJvb3RzdHJhcCAyNjcgbmFuZAk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgMjY3TUh6IE5OQU5EIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTgxMzUxMjVmOTA5OTQ4Yjg1ZDFkNjg4MWFiNGFjMGVmYjRhMWM1OApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIEZpbGVzIGluY2x1ZGUvbGludXgvYnl0ZW9yZGVyL3tiaWcsbGl0dGxlfV9lbmRpYW4uaCBkZWZpbmUKICAgIF9fQklHX0VORElBTiBhbmQgX19MSVRUTEVfRU5ESUFOLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGE4MWQxYzBiODViMTNlOWQ0NWYyZDg3ZGU5NmE1MWE2ZTBlZjBmODIKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIEFkZCBVU0IgUENJLU9IQ0ksIFVTQiBrZXlib2FyZCBhbmQgZXZlbnQgcG9sbCBzdXBwb3J0IHRvIHRoZQogICAgTVBDODY0MUhQQ04gYm9hcmQgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZGFlMTRjZThmYmRmMzgwMDE3ZGM1NGYxNzIyMThlN2QyYWNjODg5CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBVU0IgUENJLU9IQ0ksIGludGVycnVwdCBwaXBlIGFuZCB1c2IgZXZlbnQgcG9sbCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRlZCBVU0IgUENJLU9IQ0kgY2hpcHMgc3VwcG9ydCwgaW50ZXJydXB0IHBpcGUgc3VwcG9ydAogICAgYW5kIHVzYiBldmVudCBwb2xsIHN1cHBvcnQuIEZvciBzdXBwb3J0aW5nIHRoZSBVU0IgaW50ZXJydXB0IHBpcGUsIHRoZQogICAgZ2xvYmUgdXJiX3ByaXYgaXMgbW92ZWQgdG8gcHVyYiBpbiBlZCBzdHJ1Y3QuIE5vdywgd2UgY2FuIHByb2Nlc3MKICAgIHNldmVyYWwgdXJicyBhdCBvbmUgdGltZS4gVGhlIGludGVycnVwdCBwaXBlIHN1cHBvcnQgY29kZXMgYXJlIHBvcnRlZAogICAgZnJvbSBMaW51eCBrZXJuZWwgMi40LgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmRjZmFhMWIwMjI2OGIyODk5ZTM3NGIzNWFkZjkzNmM5MTFhNDdlYgpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMyAyMDA3ICswMjAwCgogICAgVVNCIGV2ZW50IHBvbGwgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0IgZXZlbnQgcG9sbCBzdXBwb3J0LCB3aGljaCBjb3VsZCBiZSB1c2VkIGluIHVzYmtiZAogICAgYW5kIG90aGVyIHVzYiBkZXZpY2VzIGRyaXZlciB3aGVuIHRoZSBhc3luY2hyb25vdXMgaW50ZXJydXB0CiAgICBwcm9jZXNzaW5nIGlzIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tCgpjb21taXQgOWExZDAwZmE0N2MxZTA1ZTNmZGI2MGIzMzIxM2FmNGUxOGQ0YzE4ZQpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTIgMjAwNyArMDIwMAoKICAgIElTUDExNng6IGRlbGF5IGZvciBjcmFwcHkgVVNCIGtleXMKCiAgICBVc2luZyBzb21lICh2ZXJ5KSBzbG93IFVTQiBrZXlzIGNhdXNlIHRoZSBVU0IgaG9zdCBjb250cm9sbGVyIGJ1ZmZlcnMKICAgIGFyZSBub3QgcmVhZHkgdG8gYmUgcmVhZCBieSB0aGUgQ1BVIHNvIHdlIG5lZWQgYW4gZXh0cmEgZGVsYXkgYmVmb3JlCiAgICByZWFkaW5nIHRoZSBVU0Igc3RvcmFnZSBkYXRhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDA5NDQ0MTQzNjcwYzljMjI0M2NiN2FiYTlmNzBiMzcxM2QzM2JlZDEKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTIgMjAwNyArMDIwMAoKICAgIENoYW5nZSBkdXBsaWNhdGUgdXNiX2NwdV9pbml0X2ZhaWwgdG8gdXNiX2JvYXJkX2luaXRfZmFpbAoKICAgIFRoYW5rcyB0byBMaWV3IFRzaSBDaHVuZyA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4gZm9yIHBvaW50aW5nCiAgICB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDMyOTIyY2RjNDcwZmRmZDM5YmVhMGMxYzRmNTgyZDNmYjM0MDQyMWUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDUgMTI6MzA6NTIgMjAwNyAtMDUwMAoKICAgIG1wYzg2NDEgaW1hZ2Ugc2l6ZSBjbGVhbnVwCgogICAgZTYwMCBkb2VzIG5vdCBoYXZlIGEgYm9vdHBnIHJlc3RyaWN0aW9uLgogICAgTW92ZSB0aGUgdmVyc2lvbiBzdHJpbmcgdG8gYmVnaW5uaW5nIG9mIGltYWdlIGF0IGZmZjAwMDAwLgogICAgUmVzZXR2ZWMuUyBpcyBub3QgbmVlZGVkLgogICAgVXBkYXRlIGZsYXNoIGNvcHkgaW5zdHJ1Y3Rpb25zLgogICAgQWRkIHRmdHBmbGFzaCBlbnYgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlM2NiZTFmOTNjNTcyMmY4ZWJiYWQ0NjhlMzBjMDY5YTJiNTExMDk3CkF1dGhvcjogQmVub8OudCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KRGF0ZToJTW9uIEp1biA0IDA4OjM2OjA1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCBwcGM0eHggYm9vdHN0cmFwIGxldHRlciBkaXNwbGF5ZWQgb24gc3RhcnR1cAoKICAgIFRoZSBhdHRhY2hlZCBwYXRjaCBpcyBtYWlubHkgY29zbWV0aWMsIGFsbG93aW5nIHUtYm9vdCB0bwogICAgZGlzcGxheSB0aGUgY29ycmVjdCBib290c3RyYXAgb3B0aW9uIGxldHRlciBhY2NvcmRpbmcgdG8gdGhlCiAgICBkYXRhc2hlZXRzLgoKICAgIFRoZSBvcmlnaW5hbCBwYXRjaCB3YXMgZXh0ZW5kZWQgd2l0aCA0MDVFWiBzdXBwb3J0IGJ5IFN0ZWZhbgogICAgUm9lc2UuCgogICAgU2lnbmVkLW9mZi1ieTogQmVub2l0IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDViMTMxM2ZiMjc1OGZmY2U4YjYyNDQ1N2Y3NzdkOGNjNjcwOTYwOGQKQXV0aG9yOiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CkRhdGU6CVdlZCBNYXkgMjMgMTI6NDU6MTkgMjAwNyArMDQwMAoKICAgIGZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGZvciBtcGM4MzQ5aXR4IENGR19SQU1CT09UCgogICAgQ3VycmVudCBpbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oIGRvZXMgY29udGFpbiBzb21lIHN1cHBvcnQgZm9yIGJ1aWxkaW5nCiAgICBpbWFnZSB0aGF0IHdpbGwgYmUgc3RhcnRlZCBmcm9tIG1lbW9yeSAod2l0aG91dCBwdXR0aW5nIGluIGludG8gZmxhc2gpLgogICAgSXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5IGJ1aWxkaW5nIHdpdGggVEVYVF9CQVNFIHNldCB0byBhIGxvdyB2YWx1ZS4KCiAgICBIb3dldmVyLCB0aGlzIHN1cHBvcnQgaXMgaW5jb21wbGV0ZTogdXNpbmcgb2YgbG93IFRFWFRfQkFTRSBjYXVzZXMKICAgIGRlZmluaW5nIGNvbmZpZ3VyYXRpb24gbWFjcm9zIGluIGluY29uc2lzdGVudCB3YXksIHdoaWNoIGxhdGVyIGxlYWRzCiAgICB0byBjb21waWxhdGlvbiBlcnJvcnMuIEluIHBhcnRpY3VsYXIuIGZsYXNoIHN1cHBvcnQgaXMgYmVpbmcgZGlzYWJsZWQsCiAgICBidXQgdGhlbiBmbGFzaCBzdHJ1Y3R1cmVzIGdldCByZWZlcmVuY2VkLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcywgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGggbG93IFRFWFRfQkFTRS4KCiAgICBTaWduZWQtT2ZmLUJ5OiBOaWtpdGEgWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YTM2NGYwOTcwZGU0OTk0OWQ2MzVlNjBhY2NmNDYzYzY0NDNlZjhjCkF1dGhvcjogTmlraXRhIFYuIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgpEYXRlOglXZWQgTWF5IDIzIDEyOjQ1OjI1IDIwMDcgKzA0MDAKCiAgICBhZGQgbWlzc2luZyAnY29uc29sZScgdmFyIHRvIGRlZmF1bHQgbXBjODM0OWl0eCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4ZDE1NmViMzdjOTBmYWRjOGVjN2E4MWEzYjg5MTc2MTYxZjg1YjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNjoxODoxNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbWlzc2luZyBmaWxlIGZvciBCYW1ib28gTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTU1YTk2NDc4YTA4ODFlNmRhOTZjYmJiY2YzNDk1MmQ2YTNiMWI0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjU4OjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVuZG8gU2VxdW9pYSBwYXRjaCBmb3IgZHluYW1pYyBFQkMgc3BlZWQgc3VwcG9ydCBvZiA4M01IegoKICAgIFRoaXMgcGF0Y2ggdW5kb2VzIHRoZSBwYXRjaCBieSBKZWZmIE1hbm4gd2l0aCBjb21taXQtaWQgYWRhNDY5N2QuIEFzCiAgICBzdWdnZXN0ZWQgYnkgQU1DQyBpdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gZHluYW1pY2FsbHkgY2hhbmdlIHRoZSBFQkMKICAgIHNwZWVkIGFmdGVyIGJvb3R1cC4gU28gd2UgdW5kbyB0aGlzIGNoYW5nZSB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZDkwOTYwNDNlOGY3MTNkNGJmMTc0M2QzMmUxNDU5ZTZhMTE2NDRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6Mjk6MDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIFNlcXVvaWEgTkFORCBib290aW5nIHN1cHBvcnQgd2l0aCBFQ0MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2Y5NTljN2Q2Njg3NTY3YzMwOGUzNjZlOTU4MWUxYTVhZmY1Y2M1YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjI3OjExIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgQU1DQyBCYW1ib28gKDQ0MEVQKSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyBCYW1ib28gZXZhbCBib2FyZC4KICAgIFNpbmNlIHRoZSBOQU5ELVNQTCBib290IGltYWdlIGlzIGxpbWl0ZWQgdG8gNGtieXRlcywgdGhpcyB2ZXJzaW9uCiAgICBvbmx5IHN1cHBvcnRzIHRoZSBvbmJvYXJkIDY0TUJ5dGVzIG9mIEREUi4gVGhlIERJTU0gbW9kdWxlcyBjYW4ndCBiZQogICAgc3VwcG9ydGVkLCBzaW5jZSB0aGUgc2V0dXAgY29kZSBmb3IgSTJDIERJTU0gYXV0b2RldGVjdGlvbiBhbmQKICAgIGNvbmZpZ3VyYXRpb24gaXMgdG9vIGJpZyBmb3IgdGhpcyBOQU5EIGJvb3Rsb2FkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyYmU1NmY1M2M4YjEwNzg2OGU2MTI1Yzg1MjRhZTg0MjkzZTk1YTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyMzowNCAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIEVDQyBzdXBwb3J0IHRvIE5BTkQgYm9vdGluZyBzdXBwb3J0IGluIG5hbmRfc3BsL25hbmRfYm9vdC5jCgogICAgVGhlIFUtQm9vdCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBpcyBub3cgZXh0ZW5kZWQgdG8gc3VwcG9ydCBFQ0MKICAgIHVwb24gbG9hZGluZyBvZiB0aGUgTkFORCBVLUJvb3QgaW1hZ2UuCgogICAgVGVzdGVkIG9uIEFNQ0MgU2VxdW9pYSAoNDQwRVB4KSBhbmQgQmFtYm9vICg0NDBFUCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0NzFkYjA3ZmJiNjVhODQxZmZjOWY0ZjExMjU2MmI5NDUyMzBmOTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxOToyOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBQcmVwYXJlIEJhbWJvbyBwb3J0IGZvciBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgIm5vcm1hbCIgQmFtYm9vIE5PUiBib290aW5nIHBvcnQsIHNvCiAgICB0aGF0IGl0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgY29taW5nIHNvb24gTkFORCBib290aW5nCiAgICBCYW1ib28gcG9ydC4KCiAgICBJdCBhbHNvIGVuYWJsZXMgdGhlIDJuZCBOQU5EIGZsYXNoIG9uIHRoZSBCYW1ib28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzYWQwMjEwM2ZiOGJlNDEzOGE5OTM3YThhYjkxZmNkZmY3YjQ5ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxNjo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgaW5fYmUzMigpIGZ1bmN0aW9ucyBhbmQgZnJpZW5kcyB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MWRhMDljZmJjZTBjMWRlMDVkNmQ4NGFhODM2M2Q2NjZmYTdlYTNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTU6MTIgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBoYXJkd2FyZSBFQ0Mgc3VwcG9ydCB0byB0aGUgUFBDNHh4IE5BTkQgZHJpdmVyIG5kZmMuYwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBoYXJkd2FyZSBFQ0Mgc3VwcG9ydCB0byB0aGUgTkRGQyBkcml2ZXIuIEl0IGFsc28KICAgIGNoYW5nZXMgdGhlIHJlZ2lzdGVyIGFjY2VzcyBmcm9tIHVzaW5nIHRoZSAic2ltcGxlIiBpbjMyL291dDMyCiAgICBmdW5jdGlvbnMgdG8gdGhlIGluX2JlMzIvb3V0X2JlMzIgZnVuY3Rpb25zLCB3aGljaCBtYWtlIHN1cmUKICAgIHRoYXQgdGhlIGFjY2VzcyBpcyBjb3JyZWN0bHkgc3luY2VkLiBUaGlzIGlzIHRoZSBvbmx5IHJlY29tbWVuZGVkCiAgICBhY2Nlc3MgdG8gU29DIHJlZ2lzdGVycyBpbiB0aGUgY3VycmVudCBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3YjVlODYyMjg3Y2NhNzZmMTlkY2Y4Yjc0MWU2MWE3ZDA2NjE3ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxMjoxNSAyMDA3ICswMjAwCgogICAgTkFORDogVXBkYXRlIG5hbmRfZWNjLmMgdG8gbGF0ZXN0IExpbnV4IHZlcnNpb24KCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIG5hbmRfZWNjIGNvZGUgdG8gdGhlIGxhdGVzdCBMaW51eCB2ZXJzaW9uLgogICAgVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGlzIHRoZSBtb3JlIGNvbXBhY3QgY29kZS4gVGhpcyBtYWtlcwogICAgaXQgcG9zc2libGUgdG8gaW5jbHVkZSB0aGUgRUNDIGNvZGUgaW50byB0aGUgTkFORCBib290bG9hZGVyCiAgICBpbWFnZSAoTkFORF9TUEwpIGZvciBQUEM0eHguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQyZDQzMjc2MGQyMTk5ZDBlODU1OGZkZDlkMTc4OWI4MTMxYWJjZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNTowOTo1MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0NHggRERSIGRyaXZlciBjb2RlIGNsZWFudXAgYW5kIHNtYWxsIGZpeCBmb3IgQmFtYm9vCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU0YmJlZDI4MDNhMmFkMDUyMWM3MzYyZjVkM2UwNjVmOTlhYmFlZGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxMzo0NToyNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgTHVhbiBjb25maWcgZmlsZSB0byBzdXBwb3J0IEVDQwoKICAgIFdpdGggdGhlIHVwZGF0ZWQgNDR4IEREUjIgZHJpdmVyIHRoZSBMdWFuIGJvYXJkIG5vdyBzdXBwb3J0cwogICAgRUNDIGdlbmVyYXRpb24gYW5kIGNoZWNraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MTg3ZGI3MzQ5MWM4ZGUwZmI1NmVmYjVlNTEzNGJhNWVjNDQzMDg5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTM6NDU6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgQWRkIGNvbmZpZyBvcHRpb24gZm9yIDE4MCBkZWdyZWUgYWR2YW5jZSBjbG9jayBjb250cm9sIGFzIG5lZWRlZAogICAgZm9yIHRoZSBBTUNDIEx1YW4gZXZhbCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWUxNTI5ODM4YWJiZmFhMzVmMTRlM2ZmYmVhYWJhNjkzMTU5NDc1ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMzEgMTc6MjA6MDkgMjAwNyArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTVFggR1AzU1NBIChzdHhzc2EpIEJvYXJkIHdpdGggNCBNaUIgZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MDQ5Mjg4ZmIxZjE2ZjFiMzE3MTQwMjI2Y2RlYmQwN2JkNDE2Mzk1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzoyNjo0NiAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQ29kZSBjbGVhbnVwLCBmaXggb2YgYSB0eXBvIGluIE9GX1NURE9VVF9QQVRILgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNDUyMGZkNGQyYzQ1MGRhNDk2MzcyMTZhYTBlNTM3MzliNjFjNjBhYwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDY6MzYgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzdXBwb3J0IGZvciByZWR1bmRhbnQgZW52aXJvbm1lbnQuCgogICAgRW5hYmxlIHJlZHVuZGFudCBlbnZpcm9ubWVudCwgYWRkIGEgTVREIHBhcnRpdGlvbiBmb3IgaXQ7IGFsc28gYWRkIGVudi4KICAgIHZhcmlhYmxlIGNvbW1hbmQgZm9yIHBhc3NpbmcgTVREIHBhcnRpdGlvbnMgdG8gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGEyNmVhYmVlYzMxNzQ2ZjA2ZDMwOTEwMzY5MDg5MjgwNTY5NmUzNDQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA1OjExIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBDaGFuZ2UgbWF4aW11bSBjb25zb2xlIGJ1ZmZlciBzaXplIGZyb20gMjU2IHRvIDEwMjQgYnl0ZXMuCgogICAgQWxsb3cgcGFzc2luZyBsb25nZXIgY29tbWFuZCBsaW5lIHRvIHRoZSBrZXJuZWwgLSB1c2VmdWwgZXNwZWNpYWxseQogICAgZm9yIHBhc3NpbmcgTVREIHBhcnRpdGlvbiBsYXlvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkxNjBiOTZmNzE0ODNhMTE2ZGU4MWM2ODk4NWU4ZWUzMDZkMzY3NjQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA0OjE4IDIwMDcgKzAyMDAKCiAgICBGaXg6IEFkZCBtaXNzaW5nIE5VTEwgdGVybWluYXRpb24gaW4gc3RyaW5ncyBleHBhbmRlZCBieSBtYWNyb3MgcGFyc2VyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2MzBlYzg0YWVmNzIyOGZjMWRiZmIzOGRlYzc4NTQxNDAzYTc4NmNkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowMzozNyAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogVXBkYXRlIEVFUFJPTSdzIHBhZ2Ugd3JpdGUgYml0cyBhbmQgd3JpdGUgZGVsYXkuCgogICAgQ2hhbmdlIEVFUFJPTSBjb25maWd1cmF0aW9uIGFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0OiAiVGhlIDI0QzAxQSBhbmQgMjRDMDJBCiAgICBoYXZlIGEgcGFnZSB3cml0ZSBjYXBhYmlsaXR5IG9mIHR3byBieXRlcyIsIGFuZCAiVGhpcyBkZXZpY2Ugb2ZmZXJzIGZhc3QgKDFtcykKICAgIGJ5dGUgd3JpdGUiLiBBZGQgM21zIG9mIGV4dHJhIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjMDAxMjVlMDdjMWViYzEyNWJhYjQwZTFlMThiY2VlZDhiZTBjMTYyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1ODo0NSAyMDA3ICswMjAwCgogICAgTVBDNVhYWCwgTW90aW9uLVBSTzogRml4IFBIWSBpbml0aWFsaXphdGlvbiBwcm9ibGVtLgoKICAgIEFmdGVyIGJlaW5nIHJlc2V0IGluIG1wYzV4eHhfZmVjX2luaXRfcGh5KCksIFBIWSBnb2VzIGludG8gRlggbW9kZSwgaW4gd2hpY2gKICAgIG5ldHdvcmtpbmcgZG9lcyBub3QgZnVuY3Rpb24uIFRoaXMgY29tbWl0IHN3aXRjaGVzIFBIWSB0byBUWCBtb2RlIGJ5IGNsZWFyaW5nCiAgICB0aGUgRlhfU0VMIGJpdCBvZiBNb2RlIENvbnRyb2wgUmVnaXN0ZXIuIEl0IGFsc28gcmV2ZXJzZXMgY29tbWl0CiAgICAwMDg4NjFhMmYzZWYyYzA2Mjc0NGQ3MzM3ODdjN2U1MzBhMWI4NzYxLCBpLmUuLCBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTNiNzhmNTM0YTZlNzA4YjRjZjFhNGZmYjRkODQzOGM2N2EwMDdkYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTc6MTUgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzdXBwb3J0IGZvciB0aGUgdGVtcGVyYXR1cmUgc2Vuc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjNzVlNjM5NjMwY2MxMzJkYzE5Y2QxZWNkYTU5MjJjMGRiMGJmYmJhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1NToyMyAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIGRpc3BsYXlpbmcgb2YgQ1BMRCByZXZpc2lvbiBpbmZvcm1hdGlvbiBkdXJpbmcgYm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzk5NTEyZDZiZDM5NzNmMDFjYTJmYzQ4OTZkODI5YjQ2ZTY4ZjE1MApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTM6NDMgMjAwNyArMDIwMAoKICAgIE1QQzV4eHg6IENoYW5nZSBuYW1lcyBvZiBkZWZpbmVzIHJlbGF0ZWQgdG8gSVBCIGFuZCBQQ0kgY2xvY2tzLgoKICAgIEJvdGggQ0ZHX1BDSVNQRUVEXzY2IGFuZCBDRkdfSVBCU1BFRURfMTMzIGFyZSBtaXNuYW1lZCwgYXMgZGVmaW5pbmcKICAgIHRoZW0gZG9lcyBub3QgY2F1c2UgUENJIG9yIElQQiBjbG9ja3MgdG8gcnVuIGF0IHRoZSBzcGVjaWZpZWQgc3BlZWQuCiAgICBJbnN0ZWFkLCB0aGV5IGNvbmZpZ3VyZSBkaXZpc29ycyB1c2VkIHRvIGNhbGN1bGF0ZSBzYWlkIGNsb2Nrcy4gVGhpcwogICAgcGF0Y2ggcmVuYW1lcyB0aGUgZGVmaW5lcyBhY2NvcmRpbmcgdG8gdGhlaXIgcmVhbCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGExMWMwYjg1ZGMzNjY0YmIzYzFlNzgxMTM3MTE4NzMwYzhmNjE5YWIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjUxOjQ4IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgTEVEIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ZWJiNDQ3OWIwN2ZmMjk0ZWI0ZDc2ZTQyMDc1M2EwMzQ5ZjdjOTNiCkF1dGhvcjogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CkRhdGU6CVRodSBNYXkgMjQgMTI6MTI6NDcgMjAwNyArMDIwMAoKICAgIFtQQVRDSF1bTkFORF0gRGVmaW5lIHRoZSBWZW5kb3IgSWQgZm9yIE1pY3JvbiBOQU5EIEZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDc1Njg5NDcyMmM4ODhkMDlhOWZhMWRmODMyMzc1Mzc3MmQzZGNjZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAyNCAwOTo0OTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgNDA1RVogT0NNIGluaXRpbGl6YXRpb24gYnVnIGluIHN0YXJ0LlMKCiAgICBBcyBwb2ludGVkIG91dCBieSBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAYWNtLm9yZz4gdGhpcyBwYXRjaAogICAgZml4ZXMgYSBzbWFsbCBidWcgaW4gdGhlIDQwNUVaIE9DTSBpbml0aWFsaXphdGlvbi4gVGhhbmtzIGZvcgogICAgc3BvdHRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkNGExNzkwMTNkNTlhNzY0NDY0NjJlMWViMGE5NjlmYmE2M2ViODEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMjQgMDg6MjI6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQWNhZGlhIHN1cHBvcnQgZm9yIGJvYXJkIHJldmlzaW9uIDEuMQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgQWNhZGlhICg0MDVFWikgc3VwcG9ydCBmb3IgdGhlIG5ldyAxLjEgYm9hcmQKICAgIHJldmlzaW9uLiBJdCBhbHNvIGFkZHMgc3VwcG9ydCBmb3IgTkFORCBGTEFTSCB2aWEgdGhlIDR4eCBOREZDLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhlIGp1bXBlciBKNyBtdXN0IGJlIGluIHBvc2l0aW9uIDItMyBmb3IgdGhpcwogICAgTkFORCBzdXBwb3J0LiBQb3NpdGlvbiAxLTIgaXMgZm9yIE5BTkQgYm9vdGluZyBvbmx5LiBOQU5EIGJvb3RpbmcKICAgIHN1cHBvcnQgd2lsbCBmb2xsb3cgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyMmQ1NTM2NWJiNTU3ZTA4NGQwZTMzNjI1YTZkZWRjYzg2NjExMGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDIzIDE0OjA5OjQ2IDIwMDcgLTA1MDAKCiAgICBBZGQgTElTVF84Nnh4IE1BS0VBTEwgdGFyZ2V0IGZvciBQb3dlclBDIGJ1aWxkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmMDA3N2FiZDY5ZjdhN2M3NTZhOTE1Yjk2MTAzNzMwMmJlM2U2ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjIgMTI6NDg6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXNlIGRvIHsgLi4uIH0gd2hpbGUgKDApIGZvciBDUFIgJiBTRFIgYWNjZXNzIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZjNkZmMxMzlhODM4YjA4NDFjMTUxZWZlMDBhZDQ3ZGIyMzY2ZTc5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIyIDEyOjQ2OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCA0MDUgc3VwcG9ydCB0byA0eHggTkFORCBkcml2ZXIgbmRmYy5jCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDQwNSBQUEMncyB0byB0aGUgNHh4IE5BTkQgZHJpdmVyCiAgICBuZGZjLmMuIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBuZXcgQU1DQyA0MDVFWi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTA2MDNkNzY3Njc0MjZiZTgwM2RhZGQ0ZmI2ODhiOTdlYjY5NDgxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAyMSAwNzo0MToyMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiA0MDVFWiBPQ00gaW5pdGlhbGl6YXRpb24KCiAgICBBcyBzcG90dGVkIGJ5IEJydWNlIEFkbGVyIHRoaXMgcGF0Y2ggZml4ZXMgYW4gaW5pdGlhbGl6YXRpb24gcHJvYmxlbQogICAgZm9yIHRoZSA0MDVFWiBPQ00uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNlM2I5NTY5MDZlYmE5ZTRhZDc5MzE1ODFlY2VkYWFkMTBlY2NjZTgKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE2OjQ3OjAzIDIwMDcgKzAxMDAKCiAgICBSZWR1Y2UgbGluZSBsZW5ndGhzIHRvIDgwIGNoYXJhY3RlcnMgbWF4LgoKY29tbWl0IDkzZWY0NWM5ZGRmZGQ5ZmMxN2M0ZTc0YmQ4ZTJmMjQ1NjU4MGViNzIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE0OjM0OjA3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSBwZXJtaXNzaW9ucwoKY29tbWl0IDE0NDNhMzE0NTdkNjhmN2U4ZjBiOTQwM2U5ODMyZWMxZTc5ZGM1OWQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE0OjMzOjExIDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSBwZXJtaXNzaW9ucwoKY29tbWl0IDI1NWEzNTc3Yzg0ODcwNjQ0MWRhZWUwMTc0NTQzZWZlMjA1YTc3ZjgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDE2IDE2OjUyOjE5IDIwMDcgLTA1MDAKCiAgICBSZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4CgogICAgRm9yIGFsbCBwcmFjdGljYWwgdS1ib290IHB1cnBvc2VzLCBUU0VDcyBkb24ndCBkaWZmZXIgdGhyb3VnaG91dCB0aGUKICAgIG1wYzhbMzU2XXh4IGZhbWlsaWVzOyByZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzAxMjRjMjYwMmFlMmQ0YzVkM2RiYTA1YjQ4MmQ5MTU0ODI0MmRlOApBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDE0OjQ5OjEyIDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIGNhdXNlIG15IE1pY3JvYmxhemUgbWVyZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCBhZGE0Njk3ZDAyMzBkNmRhNTUyODY3Nzc3Zjk4YTY3ZWMzYmEyNTc5CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMTM6MjM6MTAgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gUnVuIG5ldyBzZXF1b2lhIGJvYXJkcyB3aXRoIGFuIEVCQyBzcGVlZCBvZiA4M01IegoKICAgIEJlY2F1c2UgdGhlIFNlcXVvaWEgYm9hcmQgZG9lcyBub3QgYm9vdCB3aXRoIGFuIEVCQyBmYXN0ZXIgdGhhbiA2Nk1IeiwKICAgIHRoZSBjbG9jayBkaXZpZGVyIGFyZSBjaGFuZ2VkIGFmdGVyIHRoZSBpbml0aWFsIGJvb3QgcHJvY2Vzcy4KCiAgICBUaGlzIGFsbG93cyBmb3IgbWF4aW11bSBjbG9ja2luZyBzcGVlZHMgIHRvIGJlIGFjaGlldmVkIG9uIG5ld2VyIGJvYXJkcy4KICAgIFNlcXVvaWEgYm9hcmRzIHdpdGggNjY2LjY2IE1IeiBwcm9jZXNzb3JzIHJlcXVpcmUgdGhhdCB0aGUgRUJDIGRpdmlkZXIKICAgIGJlIHNldCB0byAzIGluIG9yZGVyIHRvIHN0YXJ0IHRoZSBpbml0aWFsIGJvb3QgcHJvY2VzcyBhdCBhIHNsb3dlciBFQkMKICAgIHNwZWVkLiBBZnRlciB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MsIHRoZSBkaXZpZGVyIGNhbiBiZSBzZXQgYmFjayB0byAyLAogICAgd2hpY2ggd2lsbCBjYXVzZSB0aGUgYm9hcmRzIHRvIHJ1biBhdCA4My4zMzNNSHouIFRoaXMgaXMgYmFja3dhcmQKICAgIGNvbXBhdGlibGUgd2l0aCBib2FyZHMgd2l0aCA1MzMuMzMgTUh6IHByb2Nlc3NvcnMsIGFzIHRoZXNlIGJvYXJkcyB3aWxsCiAgICBhbHJlYWR5IGJlIHNldCB3aXRoIGFuIEVCQyBkaXZpZGVyIG9mIDIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+Cgpjb21taXQgYTc2NzZlYTc3MzJmM2M1OTY4MDUwNzlmZWQ3ZTVjOWZhYzY1MmNmYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMDE6MTY6NTMgMjAwNyArMDIwMAoKICAgIE1pbm9yIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDYyZjY0Y2MyM2E5NDBlYWZlNzEyYzc3NmIzMjQ5ZTQxNjA3NTNkMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMDA6MTM6MzMgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwLCBuZXcgQ0hBTkdFTE9HCgpjb21taXQgMzE2MmViODM2OTAzYzhiMjQ3ZmRjNzQ3MGRkMzliZmE2OTk2ZjQ5NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMTUgMjM6Mzg6MDUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDY2ZDlkYmVjMWNjMjdkNjM5OGVlNmNmODQ2MzlkYmUxNDk3MTI1MWUKQXV0aG9yOiBtdXNodGFxIGtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoyMzowMiAyMDA3ICswNTMwCgogICAgQWRkIGRyaXZlciBmb3IgUy1BVEEtY29udHJvbGxlciBvbiBJbnRlbCBwcm9jZXNzb3JzIHdpdGggU291dGgKICAgIEJyaWRnZSwgSUNILTUsIElDSC02IGFuZCBJQ0gtNy4KCiAgICBJbXBsZW1lbnRhdGlvbjoKCiAgICAxLiBDb2RlIGlzIGRpdmlkZWQgaW4gdG8gdHdvIGZpbGVzLiBBbGwgZnVuY3Rpb25zLCB3aGljaCBhcmUKICAgICAgIGNvbnRyb2xsZXIgc3BlY2lmaWMgYXJlIGtlcHQgaW4gImRyaXZlcnMvYXRhX3BpaXguYyIgZmlsZSBhbmQKICAgICAgIGZ1bmN0aW9ucywgd2hpY2ggYXJlIG5vdCBjb250cm9sbGVyIHNwZWNpZmljLCBhcmUga2VwdCBpbgogICAgICAgImNvbW1vbi9jbWRfc2F0YS5jIiBmaWxlLgoKICAgIDIuIFJlYWRpbmcgYW5kIFdyaXRpbmcgZnJvbSB0aGUgUy1BVEEgZHJpdmUgaXMgZG9uZSB1c2luZyBQSU8gbWV0aG9kLgoKICAgIDMuIERyaXZlciBjYW4gYmUgY29uZmlndXJlZCBmb3IgNDgtYml0IGFkZHJlc3NpbmcgYnkgZGVmaW5pbmcgbWFjcm8KICAgICAgIENPTkZJR19MQkE0OCwgaWYgdGhpcyBtYWNybyBpcyBub3QgZGVmaW5lZCBkcml2ZXIgdXNlcyB0aGUgMjgtYml0CiAgICAgICBhZGRyZXNzaW5nLgoKICAgIDQuIFMtQVRBIHJlYWQgZnVuY3Rpb24gaXMgaG9va2VkIHRvIHRoZSBGaWxlIHN5c3RlbSwgY29tbWFuZHMgbGlrZQogICAgICAgZXh0MmxzIGFuZCBleHQybG9hZCBmaWxlIGNhbiBiZSB1c2VkLiBUaGlzIGhhcyBiZWVuIHRlc3RlZC4KCiAgICA1LiBVLUJvb3QgY29tbWFuZCAiU0FUQV9pbml0IiBpcyBhZGRlZCwgd2hpY2ggaW5pdGlhbGl6ZXMgdGhlIFMtQVRBCiAgICAgICBjb250cm9sbGVyIGFuZCBpZGVudGlmaWVzIHRoZSBTLUFUQSBkcml2ZXMgY29ubmVjdGVkIHRvIGl0LgoKICAgIDYuIFUtQm9vdCBjb21tYW5kICJzYXRhIiBpcyBhZGRlZCwgd2hpY2ggaXMgdXNlZCB0byByZWFkL3dyaXRlLCBwcmludAogICAgICAgcGFydGl0aW9uIHRhYmxlIGFuZCBnZXQgaW5mbyBhYm91dCB0aGUgZHJpdmVzIHByZXNlbnQuIFRoaXMgSSBoYXZlCiAgICAgICBpbXBsZW1lbnRlZCBpbiBzYW1lIHdheSBhcyAiaWRlIiBjb21tYW5kIGlzIGltcGxlbWVudGVkIGluIFUtQm9vdC4KCiAgICA3LiBUaGlzIGRyaXZlciBpcyBmb3IgUy1BVEEgaW4gbmF0aXZlIG1vZGUuCgogICAgOC4gVGhpcyBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgTmF0aXZlIGNvbW1hbmQgcXVldWluZyBhbmQKICAgICAgIEhvdC1wbHVnZ2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNdXNodGFxIEtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KCmNvbW1pdCA2NDRlNmZiNGViOGJlOTBlYTA0YmEzNGI2NDNhOGJmMDE5ZDY4MGUwCkF1dGhvcjogbXVzaHRhcSBraGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTU6NTc6MjIgMjAwNyArMDUzMAoKICAgIEZpeGVzIGJ1ZyBjbGVhcmluZyB0aGUgYnNzIHNlY3Rpb24gZm9yIGkzODYKCiAgICBIaSwKICAgIFRoZXJlIGlzIGEgYnVnIGluIHRoZSBjb2RlIG9mIGNsZWFyaW5nIHRoZSBic3Mgc2VjdGlvbiBmb3IgcHJvY2Vzc29yCiAgICBpMzg2LihGaWxlOiBjcHUvaTM4Ni9zdGFydC5TKQogICAgSW4gdGhlIGNvZGUsIGJzc19zdGFydCBhZGRyIChzdGFydGluZyBhZGRyIG9mIGJzcyBzZWN0aW9uKSBpcyBwdXQgaW50bwogICAgdGhlIHJlZ2lzdGVyICVlYXgsIGJ1dCB0aGUgY29kZSB3aGljaCBjbGVhcnMgdGhlIGJzcyBzZWN0aW9uIHJlZmVycyB0bwogICAgdGhlIGFkZHIgcG9pbnRlZCBieSAlZWRpLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBidWcgYnkgcHV0dGluZyBic3Nfc3RhcnQgaW50byAlZWRpIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE11c2h0YXEgS2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgoKY29tbWl0IGMzMjQzY2Y3YjQ5MDA1NzI3N2Q2MWFjZmZlNGFkMDk0NmY5ZWI0YTQKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglNb24gQXByIDMwIDE2OjQ3OjI4IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQkNNNTQ2NCBRdWFkIFBoeQoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJyb2FkY29tJ3MgQkNNNTQ2NCBRdWFkIFBoeQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+Cgpjb21taXQgMWIzMDViZGM3NTRjODQ2OGUxZDVkODU4ZjVkY2Y4YTdhMGE0YmI3YQpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAwODoxMDo1NyAyMDA3ICswODAwCgogICAgU2VhcmNoIHRoZSBleGNlcHRpb24gdGFibGUgd2l0aCBsaW5lYXIgYWxnb3JpdGhtCgogICAgU2VhcmNoIHRoZSBleGNlcHRpb24gdGFibGUgd2l0aCBsaW5lYXIgYWxnb3JpdGhtIGluc3RlYWQgb2YKICAgIGJpc2VjdGluZyBhbGdvcml0aG0uCiAgICBCZWNhdXNlIHRoZSBleGNlcHRpb24gdGFibGUgbWlnaHQgYmUgdW5zb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkZmFhNTBlYjgxOTY4NmJmYmExOTI3ZThjNWI4YTcwYTRkNjVmZDMKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWF5IDE0IDExOjQ3OjM1IDIwMDcgKzA4MDAKCiAgICBGaXggY29tcGlsYXRpb24gaXNzdWVzIG9uIE1BQ09TWAoKICAgIFNpbmdlZC1vZmYtYnk6IE1hcmMgSG9mZm1hbiA8TWFyYy5Ib2ZmbWFuQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgoKY29tbWl0IDU2ZmQ3MTYyOTg1YzQxMjMxN2JiZjc2M2EyMjVmYmEyM2M2NGZkMzEKQXV0aG9yOiBTdGVwaGVuIFdpbGxpYW1zIDxzdGV2ZUBpY2FydXMuY29tPgpEYXRlOglUdWUgTWF5IDE1IDA3OjU1OjQyIDIwMDcgLTA3MDAKCiAgICBGaXggZm9yIGNvbXBpbGUgb2YgSlNFIHRhcmdldAoKICAgIFRoZSBhdHRhY2hlZCBwYXRjaCBmaXhlcyB0aGUgY29tcGlsZSBvZiB0aGUgSlNFIGJvYXJkIGluIHRoZQogICAgZGVueCBnaXQgYXMgb2YgMTQgbWF5IDIwMDcuIEl0IGlzIGFuIGV4dHJlbWVseSBzaW1wbGUgcGF0Y2gsCiAgICBpdCBqdXN0IGFkZHMgdGhlIG1pc3NpbmcgZGVmaW5lIG9mIENGR19TWVNURU1BQ0VfV0lEVEguCgogICAgIEZpeCB0byBjb21waWxlIEpTRSBhZ2FpbnN0IDIwMDcwNTE0IGdpdCBvZiB1LWJvb3QKCmNvbW1pdCA2OWRmM2M0ZGEwYzkzMDE3Y2NlYjI1YTM2NmU3OTQ1NzBiZDBlZDk4CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QHJhaHV0ZS4obm9uZSk+CkRhdGU6CVN1biBNYXkgMTMgMjE6MDE6MDMgMjAwNyArMDkwMAoKICAgIHNoOiBNUzc3NTBTRSBzdXBwb3J0LgoKICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgSGl0YWNoaSBNUzc3NTBTRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMGIxMzVjZmMyZTUyNGRjMjQ5Yjc1MDU3YjU1ZGQ0Y2MwOTg0MmUyNwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUByYWh1dGUuKG5vbmUpPgpEYXRlOglTdW4gTWF5IDEzIDIwOjU4OjAwIDIwMDcgKzA5MDAKCiAgICBzaDogRmlyc3Qgc3VwcG9ydCBjb2RlIG9mIFN1cGVySC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNjE5MzY2NjdlODZhMjUwYWUxMmZkMmRjMTg5ZDM1ODhmMGE1OWUwYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxMSAxMjowMTo0OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbXRjcHIvbWZjcHIgYWNjZXNzIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDNjNDhiZDg0NjA2YzQwMjVjOGE3YzcyNjNmZGE0NjVkNmUyODRjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDExIDEyOjAxOjA2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFNldCBiZC0+YmlfcGNpX2J1c2ZyZXEgb24gNDQwRVB4L0dSeCB0b28KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2Q5OGJhNzcwYTdlYWVmYTI5Y2U5MjdmMzFhMDk1NmRmODViZjY1MApBdXRob3I6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXkgMTAgMTY6NTU6NTIgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgTVREIGFuZCBKRkZTMiBzdXBwb3J0LCBhbHNvIGFkZCBkZWZhdWx0IHBhcnRpdGlvbgogICAgZGVmaW5pdGlvbi4KCmNvbW1pdCA2NWZiNmE2NzZlODIxZjk1NzBhMmEzNzZkYzIwNGJmNjExY2U1ZjgxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjQyOjQ0IDIwMDcgKzAxMDAKCiAgICBBZGQgdGhlIGJvYXJkIGRpcmVjdG9yeSBmb3IgU01ONDIKCmNvbW1pdCAxNjAxMzFiZjk2NTc4NTQxOTYyNmRmNmMzODg3MjlmZTBiNTk3OTkyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjQxOjU4IDIwMDcgKzAxMDAKCiAgICBBZGQgdGhlIGZpbGVzIGZvciB0aGUgU01ONDIgYm9hcmQKCmNvbW1pdCA1YzZkMmI1YTUwMGY4YzQ5NjcwZGU4OTEwMTUwYjc4YTQxZjc4MWZjCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjQwOjM0IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgdGhlIGRlbGV0ZWQgZmlsZXMgZm9yIHRoZSBTTU40MiBwYXRjaAoKY29tbWl0IGIwZDhmNWJmMGQyMTVhZGM5NDI0Y2IyMjhiMjQ4NGRiZjA3Zjc3NjEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6Mzc6NTYgMjAwNyArMDEwMAoKICAgIE5ldyBib2FyZCBTTU40MiBicmFuY2gKCmNvbW1pdCAyOWYzYmUwY2FmMDc5OWNhNmI4OWRmZDk4MjRjMTU2MTlhNTAwMDBmCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDEwOjI0OjM4IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSBwZXJtaXNzaW9ucwoKY29tbWl0IGI4NDI4OWI1OTU3MzFlODg1MWRmNDZlODkzODQ1Y2MxMzIyYzliOWIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDggMTQ6MTc6MDcgMjAwNyAtMDUwMAoKICAgIDg2NDFocGNuOiBGaXggTWFrZWZpbGUgYWZ0ZXIgbW92aW5nIHBpeGlzIHRvIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBUaGUgT0JKVFJFRSAhPSBTUkNUUkVFIGJ1aWxkIHNjZW5hcmlvIHdhcyBicm9rZW4uCiAgICBUaGlzIGZpeGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2OWY2NmM2ZWJlODJiYmJkMWRhNzY2YmM0ZWRhNDBlYzdlZTVhZjEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNTo1Nzo0MyAyMDA3ICswMjAwCgogICAgYWRkOiByZWFkaW5nIHNwZWNpYWwgcHVycG9zZSByZWdpc3RlcnMKCmNvbW1pdCAxYTUwZjE2NGJlYjA2NWYzNjBmYmRkYjc2MDI5NjA3ZDZiMDk5Njk4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWF5IDggMTQ6NTI6NTIgMjAwNyArMDIwMAoKICAgIGFkZDogTWljcm9ibGF6ZSBWNSBleGNlcHRpb24gaGFuZGxpbmcKCmNvbW1pdCBhYjg3NGQ1MDQ3ZTVkMzBkYmMxZTUxN2ZmMjYwODNlZmZmYTk4ZWNiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWF5IDggMTQ6Mzk6MTEgMjAwNyArMDIwMAoKICAgIGFkZDogRlNMIGNvbnRyb2wgcmVhZCBhbmQgd3JpdGUKCmNvbW1pdCBkZTFkZTAyYTdjYmYwNWU2YjYzZTBkOGZmYzYyNGYxMjQ5M2Y2YmEzCkF1dGhvcjogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDEzOjA1OjQ0IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIHN1cHBvcnQgZm9yIEkyQywgRUVQUk9NIGFuZCBSVEMuCgpjb21taXQgZmE1YzJiYTEyM2IxYmY4ODQ1NWJmYzIxZGI1ZTc4NmNhMDQ1MDI5ZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxMDoyMzo1NiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBBVEEgc3VwcG9ydC4gQWRkIENGLWJvb3RpbmcgY29tbWFuZHMgdG8gdGhlIGRlZmF1bHQKICAgIGVudmlyb25tZW50LgoKY29tbWl0IDA2MjQxZDUwYTNhYjFiMjBhMGIwOGJhZWVhZmZjYWEyM2FlNGI4MzkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMDk6Mzk6MTIgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBDaGFuZ2UgSVBCIGNsb2NrIGZyZXF1ZW5jeSBmcm9tIDUwTUh6IHRvIDEwME1Iei4gVGhpcwogICAgZWxpbWluYXRlcyBuZXR3b3JraW5nIHByb2JsZW1zIGluIExpbnV4ICh0aW1lb3V0cykuCgpjb21taXQgMWYxMzY5YzM0YjYyOWJlOTQ3MDI2ODRkNDFkM2ZkZGYwZjYxOTNlNwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAwOToyMTo1NyAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEVuYWJsZSBGbGF0IERldmljZSBUcmVlIHN1cHBvcnQgYW5kIG1vZGlmeSBkZWZhdWx0IGVudmlyb25tZW50CiAgICB0byBhbGxvdyBib290aW5nIG9mIEZEVC1leHBlY3Rpbmcga2VybmVscy4KCmNvbW1pdCBmYjA1ZjZkYTM1ZWExYzE1YzU1M2FiZTZmMjNmNjU2YmYxOGRjNWRiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMjM6NTg6MzEgMjAwNyArMDIwMAoKICAgIG5ldzogVVNFX01TUl9JTlRSIHN1cHBvcnQKCmNvbW1pdCAwMDg4NjFhMmYzZWYyYzA2Mjc0NGQ3MzM3ODdjN2U1MzBhMWI4NzYxCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE1heSA3IDIyOjM2OjE1IDIwMDcgKzAyMDAKCiAgICBbTVBDNXh4eF0gVGhlcmUgYXJlIG5ldHdvcmtpbmcgcHJvYmxlbXMgb24gdGhlIE1vdGlvbi1QUk8gYm9hcmQgd2l0aAogICAgY3VycmVudCBQSFkgaW5pdGFsaXphdGlvbiBjb2RlICh0ZnRwIHRpbWVvdXRzIGFsbCB0aGUgdGltZSkuIFRoaXMgY29tbWl0CiAgICB0ZW1wb3JhcmlseSBkaXNhYmxlcyBQSFkgaW5pdGFsaXphdGlvbiBzZXF1ZW5jZSB0byBtYWtlIHRoZSBuZXR3b3JraW5nCiAgICBvcGVyYXRpb25hbCwgdW50aWwgYSBmaXggaXMgZm91bmQuCgpjb21taXQgYWJjYTkwMTg2OWMzNzYwYjZjNWZlY2I4MjVkYjZjMWQ5MWE3OGE5MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNyAyMjoxMDozNiAyMDA3ICswMjAwCgogICAgR2V0IHJpZCBvZiBkdXBsaWNhdGVkIGZpbGUgKHNlZSBpbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMDdiN2IyYzlkOTc1MmUwZjY0NzhjMzBjMjliNzA4N2Y2ZTZjYmI2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDIyOjA3OjA4IDIwMDcgKzAyMDAKCiAgICBHZXQgcmlkIG9mIGR1cGxpY2F0ZWQgZmlsZSAoc2VlIGRvYy9SRUFETUUuU0JDODU2MCBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTdiYWM3ZTliNTdiYTk0ODA1MWJlYjE5ZWM1YmUzYTc1Y2U3NTM4MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjQzOjEwIDIwMDcgKzAyMDAKCiAgICBmaXg6IHJlYWQgYW5kIHdyaXRlIE1TUiAtIHJlcGFpciBudW1iZXIgb2YgcGFyYW1ldGVycwoKY29tbWl0IDE5M2I0YTNiYjNhY2FkZGY3OThkYThkZTBkYTA1ZDk0YmE4Nzc0ZWUKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJTW9uIE1heSA3IDE5OjQyOjQ5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHBwYzR4eDogRml4IENPTkZJR19TWVNfQ0xLX0ZSRVEgZGVmaW5pdGlvbiBpbiBTZXF1b2lhIGNvbmZpZyBmaWxlCgogICAgQSAnMycgZ290IGN1dCBvZmYgaW4gdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGxhc3QgcGF0Y2ggdG8gYXV0b21hdGljYWxseQogICAgY2hhbmdlIHRoZSBjbG9jayBzcGVlZCBvZiB0aGUgc3lzdGVtIGNsb2NrIG9uIHNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTliZjFmYmFkN2YxOWQ1YTEyMGJlOWIxZGFmMTM2ZTA1MmZjYWIzOQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjMzOjUxIDIwMDcgKzAyMDAKCiAgICBuZXc6IGZzbCBpbnRlcnJ1cHQgc3VwcG9ydAogICAgRlNMX0hhc19kYXRhIGlzIGNvbm5lY3RlZCB0byBJTlRDLgoKY29tbWl0IDc5MjAzMmJhYTdkNjI1ZTM0Yzk4MWFiNmRmNTIxOTExYmQ4ZGM4NjEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTozMDoxMiAyMDA3ICswMjAwCgogICAgZml4OiBpbnRlcnJ1cHQgaGFuZGxlcgogICAgcmVtb3ZlIGFzbSBjb2RlCgpjb21taXQgZjNmMDAxYTM0MWVmMTg1ZDBmMTM4NDFiZTViNWRjMzM5NWFhY2MzMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjI1OjA4IDIwMDcgKzAyMDAKCiAgICBmaXg6IHJlbW92ZSBhc20gY29kZQoKY29tbWl0IGZiN2MyZGJlZjAyYzlmNmY4ZDdiMDRlYzRjMmJmYjkxNDE4YjljMDEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOToxMjo0MyAyMDA3ICswMjAwCgogICAgZml4OiBjbGVhbiBpbnRlcnJ1cHQKCmNvbW1pdCA0MmVmZWQ2MTMwYzhmY2Y3ZGE4ODEzODViNTQyNzA2NWQyODAxNzU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTc6MjI6MjUgMjAwNyArMDIwMAoKICAgIGZpeDogaW50ZXJydXB0IGhhbmRsZXIgZm9yIG11bHRpcGxlIHNvdXJjZXMKCmNvbW1pdCA0OGZiZDNhNGNkYWJiZWJjMWRlYmQ3ZWVkNzNjMDBjMmNhZjkxNGY2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTc6MTE6MDkgMjAwNyArMDIwMAoKICAgIG5ldzogYWRkIHdyaXRpbmcgdG8gbXNyIHJlZ2lzdGVyCgpjb21taXQgM2E2MTlkZDdiZWQwM2U4YjRkMjJhMzkxMWY5MGZkMTJhZjUzNzZjMgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNyAxNjo0Mzo1NiAyMDA3ICswMjAwCgogICAgRml4IGFuIGFuY2llbnQgQ0hBTkdFTE9HIGNvbmZsaWN0Cgpjb21taXQgYWM0Y2Q1OWQ1OWM5YmYzZjg5Y2I3YTM0NGFiZjgxODRkNjc4ZjU2MgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBNYXkgNSAwODoxMjozMCAyMDA3ICswMjAwCgogICAgNXh4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE5ZDg3ZTI3MDdkY2IyNDlmNmJiN2Y3ZmY3ZTAwYWNkOGNkYTlmZDIKQXV0aG9yOiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDI5IDE0OjAxOjU0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggTVBDNTIwMEIgZnJvbSBNUEM1MjAwIGluIGJvb3QgbWVzc2FnZQoKICAgIE1QQzUyMDBCIHN5c3RlbXMgYXJlIGluY29ycmVjdGx5IHJlcG9ydGVkIGFzIE1QQzUyMDAgaW4gVS1Cb290IHN0YXJ0LXVwCiAgICBtZXNzYWdlLiBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3byB2YXJpYW50cywgYW5kIHByaW50IHByb3BlciBDUFUKICAgIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDRlYzViZDU1ZWQxZmZhOTFhNzc0YWYyOTg3Njk2MjFmNGZiYjE4YzEKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVdlZCBBcHIgMjUgMTY6MDE6MjYgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gc2ltcGxpZnkgc2lsZW50IGNvbnNvbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI3NTk4YTQzZjJiNDIxYTcxM2Q4MTM1ZTk4YTQyYzM3ZDllYjlkZjAKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gQXByIDIzIDE1OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEF2b2lkIGFzc2lnbmluZyBQQ0kgcmVzb3VyY2VzIGZyb20gemVybyBhZGRyZXNzCgogICAgSWYgYSBQQ0kgSURFIGNhcmQgaGFwcGVucyB0byBnZXQgYSB6ZXJvIGFkZHJlc3MgYXNzaWduZWQgdG8gaXQsIHRoZSBMaW51eCBJREUKICAgIGNvcmUgY29tcGxhaW5zIGFuZCBJREUgZHJpdmVycyBmYWlscyB0byB3b3JrLiAgQWxzbywgYXNzaWduaW5nIHplcm8gdG8gYSBCQVIKICAgIHdhcyBpbGxlZ2FsIGFjY29yZGluZyB0byBQQ0kgMi4xICh0aGUgbGF0ZXIgcmV2aXNpb25zIHNlZW0gdG8gaGF2ZSBleGNsdWRlZCB0aGUKICAgIHNlbnRlbmNlIGFib3V0ICIwIiBiZWluZyBjb25zaWRlcmVkIGFuIGludmFsaWQgYWRkcmVzcykgLS0gc28sIHVzZSBhIHJlYXNvbmFibGUKICAgIHN0YXJ0aW5nIHZhbHVlIG9mIDB4MTAwMCAodGhhdCdzIHdoYXQgdGhlIG1vc3QgTGludXggYXJjaHMgYXJlIHVzaW5nKS4KCiAgICBBbHRlcm5hdGl2ZWx5LCBvbmUgbWlnaHQgaGF2ZSBmaXhlZCB0aGUgY2FsbHMgdG8gcGNpX3NldF9yZWdpb24oKSBpbmRpdmlkdWFsbHkKICAgIChzb21lIGNvZGUgZXZlbiBzZWVtcyB0byBoYXZlIHRha2VuIGNhcmUgb2YgdGhpcyBpc3N1ZSkgYnV0IHRoYXQgd291bGQgaGF2ZQogICAgYmVlbiBhIGxvdCBtb3JlIHdvcmsuIDotKQoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlmZmQ0NTFhZmViMDhlNWJlN2RkYWU2ODA0ODdlYzk2MmIyYmNhMjUKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNDowMDoxMSAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBzZXRlbnYoLi4uKSBjYW4gZGVsZXRlIGVudmlyb25tZW50YWx2YXJpYWJsZXMKCiAgICB1cGRhdGUgc2V0ZW52KCkgZnVuY3Rpb24gc28gdGhhdCBlbnRlcmluZyBhIE5VTEwgdmFsdWUgZm9yIHRoZQogICAgdmFyaWFibGUncyB2YWx1ZSB3aWxsIGRlbGV0ZSB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYmQwYTBhZTA1YTQ0NzY5YzRlMjc0NThhZDRlOWYzNDM4MjUwNDQzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gQXByIDIzIDEzOjU0OjI0IDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHVzZSB1bnNpZ25lZCBjaGFyIGluIHNtYzkxMTExIGRyaXZlciBmb3IgbWFjCgogICAgdGhlIHZfbWFjIHZhcmlhYmxlIGluIHRoZSBzbWM5MTExMSBkcml2ZXIgaXMgZGVjbGFyZWQgYXMgYSBzaWduZWQgY2hhciAuLi4KICAgIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gb25lIG9mIHRoZSBieXRlcyBpbiB0aGUgTUFDIGlzICJzaWduZWQiIGxpa2UgMHhFMAogICAgYmVjYXVzZSB3aGVuIGl0IGdldHMgcHJpbnRlZCBvdXQsIHlvdSBnZXQgYSBkaXNwbGF5IGxpa2U6CiAgICAweEZGRkZGRkUwIGFuZCB0aGF0J3Mgbm8gZ29vZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmZmM1MGY5YmIxOTQzNDNjNjMwMzUxN2E1MTc3MDg0NTdhNWViNmI4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgTWF5IDUgMTg6NTQ6NDIgMjAwNyArMDIwMAoKICAgIG5ldzogRlNMIGFuZCBNU1Igc3VwcG9ydCAjMgoKY29tbWl0IGY3ZTJlMGViMDY2ODEzNjMwNWY3OGJiOWMyMWJlNzliNDhhMzQyNDcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBNYXkgNSAxODoyNzoxNiAyMDA3ICswMjAwCgogICAgbmV3OiBGU0wgYW5kIE1TUiBzdXBwb3J0Cgpjb21taXQgMmYxNTI3OGMyZWI5MTFjNjY4YjRmZTU2MjEzMGI3OGNmNTU0ZDEzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgNSAxODoyMzoxMSAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxrZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODg1ZWM4OWI2NDhhODk5YTJmMzIzOTNmZDNmZmQ5ZjcyMzRjNDQwMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgNSAxODowNTowMiAyMDA3ICswMjAwCgogICAgQWRkIFNUWCBHUDMgU1NBIGJvYXJkIHRvIE1BS0VBTEwgc2NyaXB0OyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTQ5OTY0NWIzZmUxN2E1NDhhZjlkZmM0NzljYTZlMjQ1NWYxNzlhMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgNSAxNzoxNTo1MCAyMDA3ICswMjAwCgogICAgTWFrZSAiZmlsZSIgY29tbWFuZCBoYXBweSB3aXRoIHNvbWUgY29uZmlnLm1rIGZpbGVzOyB1cGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZTNiOGM3OGJjMjQ4OWMyN2FlMDIwOTg2ZWYwZWFjYTY4NDg2NmNlZgpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MzI6MTQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRGV0ZWN0IGlmIHRoZSBzeXNjbGsgb24gU2VxdW9pYSBpcyAzMyBvciAzMy4zMzMgTUh6CgogICAgVGhlIEFNQ0MgU2VjcXVvaWEgYm9hcmQgaGFzIGJlZW4gY2hhbmdlZCBpbiBhIG5ldyByZXZpc2lvbiBmcm9tIHVzaW5nIGEKICAgIDMzLjAwMCBNSHogY2xvY2sgdG8gYSAzMy4zMzMgTUh6IHN5c3RlbSBjbG9jay4gQSBiaXQgaW4gdGhlIENQTEQKICAgIGluZGljYXRlcyB0aGUgZGlmZmVyZW5jZS4gVGhpcyBwYXRjaCByZWFkcyB0aGF0IGJpdCBhbmQgdXNlcyB0aGUgY29ycmVjdAogICAgY2xvY2sgc3BlZWQgZm9yIHRoZSBib2FyZC4gVGhpcyBjb2RlIGlzIGJhY2t3YXJkIGNvbXBhdGFibGUgd2lsbCBhbGwKICAgIHByaW9yIGJvYXJkcy4gQWxsIHByaW9yIGJvYXJkcyB3aWxsIGJlIHJlYWQgYXMgMzMuMDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY1NDRmZjY2NTZmY2EyNjNlZDFlYmUzOTg5OWI2ZDk1ZGE2N2M4YjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgNSAwODoyOTowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTZXF1b2lhOiBSZW1vdmUgY3B1L3BwYzR4eC9zcGVlZC5jIGZyb20gTkFORCBib290aW5nCgogICAgVXNpbmcgY3B1L3BwYzR4eC9zcGVlZC5jIHRvIGNhbGN1bGF0ZSB0aGUgYnVzIGZyZXF1ZW5jeSBpcyB0b28gYmlnCiAgICBmb3IgdGhlIDRrIE5BTkQgYm9vdCBpbWFnZSBzbyBkZWZpbmUgYnVzX2ZyZXF1ZW5jeSB0byAxMzNNSHogaGVyZQogICAgd2hpY2ggaXMgc2F2ZSBmb3IgdGhlIHJlZnJlc2ggY291bnRlciBzZXR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmY1NTBhYjk3NjQwNTMwMGY1YjA3YmYyODkwODAwODQwZDBhYTA1ZgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBNYXkgNSAwODoxMjozMCAyMDA3ICswMjAwCgogICAgNXh4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE3OTg4NjU5MDU5M2JhMWQ2NjdjODQwY2FhNDk0MGM2MTYzOWYxOGYKQXV0aG9yOiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgpEYXRlOglTYXQgTWF5IDUgMDc6MDQ6NDIgMjAwNyArMDIwMAoKICAgIE5BTkQ6IFdyb25nIGNhbGN1bGF0aW9uIG9mIHBhZ2UgbnVtYmVyIGluIG5hbmRfYmxvY2tfYmFkKCkKCiAgICBJbiBjYXNlIHRoYXQgdGhlcmUgaXMgbm8gbWVtb3J5IGJhc2VkIGJhZCBibG9jayB0YWJsZSBhdmFpbGFibGUgdGhlCiAgICBmdW5jdGlvbiBuYW5kX2Jsb2NrX2NoZWNrYmFkKCkgaW4gZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYyB3aWxsIGNhbGwKICAgIG5hbmRfYmxvY2tfYmFkKCkgZGlyZWN0bHkuIFdoZW4gcGFyYW1ldGVyICdnZXRjaGlwJyBpcyBzZXQgdG8gemVybywKICAgIG5hbmRfYmxvY2tfYmFkKCkgd2lsbCBub3QgcmlnaHQgc2hpZnQgdGhlIG9mZnNldCB0byBjYWxjdWxhdGUgdGhlCiAgICBjb3JyZWN0IHBhZ2UgbnVtYmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTg3N2Q3ZGNkMWVlYmU2MWFhNWQ4YjhmZmU5YzA0OGVhNDI2ZTZmNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgNCAxMDowMjozMyAyMDA3ICswMjAwCgogICAgRml4IGluaXRyZCBsZW5ndGggY29ycnVwdGlvbiBpbiBib290bSBjb21tYW5kLgoKICAgIFdoZW4gdXNpbmcgRkRUIEltYWdlcywgdGhlIGxlbmd0aCBvZiBhbiBpbml0YWwgcmFtZGlzayB3YXMKICAgIG92ZXJ3cml0dGVuIChidWcgaW50cm9kdWNlZCBieSBjb21taXQgODdhNDQ5YzgsIDIyIEF1ZyAyMDA2KS4KCiAgICBQYXRjaGVzIGJ5IFRpbXVyIFRhYmkgJiBKb2hucyBEYW5pZWwuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwNjhhYWI2NjBiYzM5MTJiOTMwYmU1NTQwZTZiM2YzZmQ2YWQzYzk2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAzIDE5OjQzOjUyIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggdHJpdmlhbCBlcnJvciBpbiBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjRhODlkNmNlODU4NGI5ZmM2NGY0ZTg1ZGE5ZWNhYzNjZmMyYzJhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAzIDE2OjM0OjQxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgYm9hcmQgY29uZmlndXJhdGlvbiBmb3IgU1RYIEdQM1NTQSBib2FyZDoKCiAgICBFbmFibGUgaHVzaCBzaGVsbCwgZW52aXJvbm1lbnQgaW4gZmxhc2ggcmF0aGVyIGluIEVFUFJPTSwKICAgIG1vcmUgdXNlci1mcmllbmRseSBkZWZhdWx0IGVudmlyb25tZW50LCBldGMuCiAgICBUaGUgc2ltcGxlIEVFUFJPTSBlbnZpcm9ubWVudCBjYW4gYmUgc2VsZWN0ZWQgZWFzaWx5IGluIHRoZSBib2FyZAogICAgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYzZmYjE5OWRjNTc1NmZjNzJmNDlkMWY0ZGUxMDVlMDg5MDQ5ZDY1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyNCAxNDozNzo0OSAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBTVFggR1AzU1NBIGNvZGU7IGZpeCBidWlsZCBhbmQgY29tcGlsZSBwcm9ibGVtcy4KCmNvbW1pdCAzNTE3MWRjMDRlMDI4ZWNhY2MyM2FkOTE2YTY2Mjk1NDcyNTU1ZGJmCkF1dGhvcjogRGFuIE1hbGVrIDxkYW5AZW1iZWRkZWRhbGxleS5jb20+CkRhdGU6CUZyaSBKYW4gNSAwOToxNTozNCAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNUWCBHUDNTU0EgKHN0eHNzYSkgQm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5IERhbiBNYWxlaywgPGRhbkBlbWJlZGRlZGFsbGV5LmNvbT4KCmNvbW1pdCBmMjEzNGY4ZTllYjAwNmJkY2Q3MjllODlmMzA5YzA3YjJmYTQ1MTgwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXkgMiAxMzozMTo1MyAyMDA3ICswMjAwCgogICAgbWFjYjogRG9uJ3QgcmVzdGFydCBhdXRvbmVnb3RpYXRpb24gaWYgd2UgYWxyZWFkeSBoYXZlIGxpbmsKCiAgICBSZXdvcmsgbWFjYl9waHlfaW5pdCBzbyB0aGF0IGl0IGRvZXNuJ3QgYXR0ZW1wdCB0byByZS1uZWdvdGlhdGUgaWYgdGhlCiAgICBsaW5rIGlzIGFscmVhZHkgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDRmY2I1ZDM4YmM5MDc3OWNkOWE3MTBkNjA3MDIwNzU5ODZmMGUyOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIgMTM6MjI6MzggMjAwNyArMDIwMAoKICAgIG1hY2I6IEludHJvZHVjZSBhIGZldyBiYXJyaWVycyB3aGVuIGRlYWxpbmcgd2l0aCBETUEgZGVzY3JpcHRvcnMKCiAgICBUaGVyZSB3ZXJlIGEgZmV3IHRoZW9yZXRpY2FsIHBvc3NpYmlsaXRpZXMgdGhhdCB0aGUgY29tcGlsZXIgbWlnaHQKICAgIG9wdGltaXplIGF3YXkgRE1BIGRlc2NyaXB0b3IgcmVhZHMgYW5kL29yIHdyaXRlcyBhbmQgdGh1cyBjYXVzZQogICAgc3luY2hyb25pemF0aW9uIHByb2JsZW1zIHdpdGggdGhlIGhhcmR3YXJlLiBJbnNlcnQgYmFycmllcnMgd2hlcmUKICAgIHdlIGRlcGVuZCBvbiByZWFkcy93cml0ZXMgYWN0dWFsbHkgaGl0dGluZyBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmZhNjIxYTBkMTJhMWNjZDgxYzkzNmM1NjdmODkxN2EyMTM3ODdhOApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEZlYiAyNCAwMTowODoxMyAyMDA3IC0wNjAwCgogICAgQ2xlYW5lZCB1cCBzb21lIDg1eHggUENJIGJ1Z3MKCiAgICAqIENsZWFuZWQgdXAgdGhlIENEUyBQQ0kgQ29uZmlnIFRhYmxlcyBhbmQgYWRkZWQgTlVMTCBlbnRyaWVzIHRvCiAgICAgIHRoZSBlbmQKICAgICogRml4ZWQgUENJZSBMQVdCQVIgYXNzaWduZW10IHRvIHVzZSB0aGUgY3B1LXJlbGF0aXZlIGFkZHJlc3MKICAgICogRml4ZWQgODV4eCBQQ0kgY29kZSB0byBhc3NpZ24gcG93YXIgcmVnaW9uIHNpemVzIGJhc2VkIG9uIHRoZQogICAgICBjb25maWcgdmFsdWVzIChyYXRoZXIgdGhhbiBoYXJkLWNvZGluZyB0aGVtKQogICAgKiBGaXhlZCB0aGUgODU0OCBDRFMgUENJMiBJTyB0byBvbmNlIGFnYWluIGhhdmUgMCBhcyB0aGUgYmFzZSBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY3NDMxMDU5ODhmYzQ0ZDViMGQzMDM4OGM3OTA2MDc4MzVhYWU3YTYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDI6NTQ6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgODU2OCBNRFMgYm9hcmQKCiAgICBUaGlzIGluY2x1ZGVkIHNvbWUgY2hhbmdlcyB0byBjb21tb24gZmlsZXM6CiAgICAqIEFkZCA4NTY4IHByb2Nlc3NvciBTVlIgdG8gdmFyaW91cyBwbGFjZXMKICAgICogQWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgdGhlIHFlIGJ1cy1mcmVxdWVuY3kgdmFsdWUgaW4gdGhlIGR0cwogICAgKiBBZGQgdGhlIDg1NjhNRFMgdGFyZ2V0IHRvIHRoZSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjFjMmI4NGJmMjdjODU2NWJhZGRjODJkMWFiYjkzNzAwZDEwZTJlCkF1dGhvcjogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjM0OjQ4IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdHJlYXRpbmcgdW5rbm93biBQSFlzIGFzIGdlbmVyaWMgUEhZcy4KCiAgICBXaGVuIGJyaW5naW5nIHVwIHUtYm9vdCBvbiBuZXcgYm9hcmRzLCBQSFkgc3VwcG9ydCBzb21ldGltZXMgZ2V0cwogICAgbmVnbGVjdGVkLglNb3N0IFBIWXMgZG9uJ3QgcmVhbGx5IG5lZWQgYW55IHNwZWNpYWwgc3VwcG9ydCwKICAgIHRob3VnaC4gIEJ5IGFkZGluZyBhIGdlbmVyaWMgZW50cnkgdGhhdCBhbHdheXMgbWF0Y2hlcyBpZiBub3RoaW5nCiAgICBlbHNlIGRvZXMsIHdlIGNhbiBwcm92aWRlIHN1cHBvcnQgZm9yICJ1bnN1cHBvcnRlZCIgUEhZcyBmb3IgdGhlCiAgICB0c2VjLgoKICAgIFRoZSBnZW5lcmljIFBIWSBkcml2ZXIgc3VwcG9ydHMgbW9zdCBQSFlzLCBpbmNsdWRpbmcgZ2lnYWJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTc1YWY5YmZkOGZmZjA0OTllZmRiYjkwNjAxY2VjNWEyYWZlZjExNwpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiA3IDE1OjI4OjA0IDIwMDcgLTA2MDAKCiAgICBDb25kaXRpb25hbGl6ZSA4NjQxIFJldjEuMCBNQ00gd29ya2Fyb3VuZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2NDcwMmI3ZmM4ZjhkZjM5ZDMxYWRkNzcwZGY2ZTM3MmY5ZTljZTMKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDMwIDEzOjU5OjUwIDIwMDcgLTA1MDAKCiAgICBGaXggbWVtb3J5IGluaXRpYWxpemF0aW9uIG9uIE1QQzgzNDlFLW1JVFgKCiAgICBEZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTCBmb3IgdGhlIE1QQzgzNDlFLW1JVFggYW5kIE1QQzgzNDlFLW1JVFgtR1AuCiAgICBUaGlzIGFsbG93cyBkZHItPnNkcmFtX2Nsa19jbnRsIHRvIGJlIHByb3Blcmx5IGluaXRpYWxpemVkLiAgVGhpcyBpcyBuZWNlc3NhcnkKICAgIG9uIHNvbWUgSVRYIGJvYXJkcywgbm90YWJseSB0aG9zZSB3aXRoIGEgcmV2aXNpb24gMy4xIENQVS4KCiAgICBBbHNvIGNoYW5nZSBzcGRfc2RyYW0oKSBpbiBjcHUvbXBjODN4eC9zcGRfc2RyYW0uYyB0byBub3Qgd3JpdGUgYW55dGhpbmcgaW50bwogICAgZGRyLT5zZHJhbV9jbGtfY250bCBpZiBDRkdfRERSX1NEUkFNX0NMS19DTlRMIGlzIG5vdCBkZWZpbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogTWljaGFlbCBCZW5lZGljdCA8TUJlbmVkaWN0QHR3YWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTRiMmQ0MzRhZTlkMDE3ODc5MzZmMzRmZTE3NTljZjNkNzYyNGFlMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTU6MjY6MjEgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IHJlcGxhY2UgZWxhYm9yYXRlIGJvb3R0aW1lIHZlcmJvc2l0eSB3aXRoICdjbG9ja3MnIGNvbW1hbmQKCiAgICBhbmQgZml4IENQVTogdG8gYWxpZ24gd2l0aCBCb2FyZDogZGlzcGxheSB0ZXh0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzFhYjgyNjY5ZDk1MjU5OThjMzRlODAyYTEyY2FkNjYyNzIzZjIyYQpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAxNiAxMzowMjo1MyAyMDA3IC0wNTAwCgogICAgUmV3cm90ZSBwaWNvc190b19jbGsoKSB0byBhdm9pZCByb3VuZGluZyBlcnJvcnMuCiAgICBDbGFyaWZpZWQgdGhhdCBjb252ZXJzaW9uIGlzIHRvIERSQU0gY2xvY2tzIHJhdGhlciB0aGFuIHBsYXRmb3JtIGNsb2Nrcy4KICAgIE1hZGUgZnVuY3Rpb24gc3RhdGljIHRvIHNwZF9zZHJhbS5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGIzOTUwMWQyODc1NGU3MjcyNmNlN2ZiMDIzMTBlNTZkYmRmMTE2YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAyOSAxNDoxMzowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBCYW1ib286IFVzZSBjdXJyZW50IE5BTkQgZHJpdmVyIGFuZCAqbm90KiB0aGUgbGVnYWN5IGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NjRhYTZhNmE0NjZmY2I5MmJmMzJiMWQ3ZGJhNzljZDcwOWI1MmM5CkF1dGhvcjogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyOSAxNDowMTo1NCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIE1QQzUyMDBCIGZyb20gTVBDNTIwMCBpbiBib290IG1lc3NhZ2UKCiAgICBNUEM1MjAwQiBzeXN0ZW1zIGFyZSBpbmNvcnJlY3RseSByZXBvcnRlZCBhcyBNUEM1MjAwIGluIFUtQm9vdCBzdGFydC11cAogICAgbWVzc2FnZS4gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gdmFyaWFudHMsIGFuZCBwcmludCBwcm9wZXIgQ1BVCiAgICBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YzVkMzI0MjkzNWNmMzU0M2FmMDExNDI2Mjc0OTQ0MzQ4MzRjZjk4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAxMjozNDozOCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbWlub3IgZml4dXBzIGZvciA4MzEzcmRiIGludHJvZHVjdGlvbgoKY29tbWl0IGFkYTRkNDAwOTFmNmVkNGE0ZjAwNDBlMDhkMjBkYjIxOTY3ZTRhNjcKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVdlZCBBcHIgMjUgMTY6MDE6MjYgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gc2ltcGxpZnkgc2lsZW50IGNvbnNvbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE0NDg3NmEzODBmNTc1NmY1NzQxMmNhZjc0YzFkNmRjMjAxZGQ3OTYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBBcHIgMjQgMjM6MDE6MDIgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gTVREIHBhcnRpdGlvbiBzdXBwb3J0LCBKRkZTMiBzdXBwb3J0Cgpjb21taXQgMzdlZDZjZGQ0MTU5MTk1YmZhZDY4ZDhhMjM3ZjZhZGRhOGY0ODJjYgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgQXByIDI0IDE0OjAzOjQ1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IHNldHVwIDQ0MEVQeC9HUnggWk1JSS9SR01JSSBicmlkZ2UgZGVwZW5kaW5nIG9uIFBGQyByZWdpc3RlciBjb250ZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDY2ZWQ2Y2NhM2YzNDBmN2E4YTA2ZDkyNzJhZTJlZjhlOTZmMDI3M2QKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDI6Mzc6NDcgMjAwNyAtMDUwMAoKICAgIFJld29ya2VkIDg1eHggc3BlZWQgZGV0ZWN0aW9uIGNvZGUKCiAgICBDaGFuZ2VkIHRoZSBjb2RlIHRvIHJlYWQgdGhlIHJlZ2lzdGVycyBhbmQgY2FsY3VsYXRlIHRoZSBjbG9jawogICAgcmF0ZXMsIHJhdGhlciB0aGFuIHVzaW5nIGEgInN3aXRjaCIgc3RhdGVtZW50LgoKICAgIElkZWEgZnJvbSBBbmRyZXcgS2xvc3NuZXIgPGFuZHJld0BjZXNhLm9wYnUueGVyb3guY29tPgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MWY0ODFjYTcwOGVkNmE1NmJmOWM0MTBlMzE5MWRiYWQ1ODFjNTY1CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjI0OjI4IDIwMDcgLTA1MDAKCiAgICBFbmFibGUgODU0NCBzdXBwb3J0CgogICAgKiBBZGQgc3VwcG9ydCB0byB0aGUgTWFrZWZpbGUKICAgICogQWRkIDg1NDQgY29uZmlndXJhdGlvbiBzdXBwb3J0IHRvIHRoZSB0c2VjIGRyaXZlcgogICAgKiBBZGQgODU0NCBTVlIgbnVtYmVycyB0byBwcm9jZXNzb3IuaAoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBkOGMzYTIwOTZlYWZmOGQ3ZGU4OWQ0NWU5YWY0ZDRiMGQ0ODY4ZmUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTc6MTI6MjUgMjAwNyAtMDYwMAoKICAgIFN1cHBvcnQgMUcgc2l6ZSBvbiA4NTQ4CgogICAgZTUwMHYyIGFuZCBuZXdlciBjb3JlcyBzdXBwb3J0IDFHIHBhZ2Ugc2l6ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NWNlZjYxMmNjNjAxZDJkMWM4OTBmYmJkN2NkYzk2MDlhMTg5YTQ2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDIzIDE3OjExOjE2IDIwMDcgLTA2MDAKCiAgICBDaGFuZ2VkIEJPT0tFX1BBR0VTWl9uR0IgdG8gQk9PS0VfUEFHRVNaX25HCgogICAgVGhlIG90aGVyIHBhZ2VzeiBjb25zdGFudHMgdXNlIG9uZSBsZXR0ZXIgdG8gc3BlY2lmeSBvcmRlciBvZgogICAgbWFnbml0dWRlLglBbHNvIGNoYW5nZSB0aGUgb25lIHJlZmVyZW5jZSB0byBpdCBpbiBtcGM4NTQ4Y2RzL2luaXQuUwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZjlhMzE4Y2VhMTQyNzJlZGQxMGQ2MzczOWUyZDMyNmM5MGY0MzBlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDIzIDE2OjI4OjQ2IDIwMDcgLTA2MDAKCiAgICBPbmx5IHNldCBkZHJpb292Y3IgZm9yIDg1NDggcmV2MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkzNDNkYmY4NWJjMDMwMzNmMjEwMmQ4ZTg1NDM1NjdjMmMxYWQyZDIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBGZWIgMjQgMDE6MTY6NDUgMjAwNyAtMDYwMAoKICAgIFR3ZWFrIEREUiBFQ0MgZXJyb3IgY291bnRlcgoKICAgIEVuYWJsZSBzaW5nbGUtYml0IGVycm9yIGNvdW50ZXIgd2hlbiBtZW1vcnkgd2FzIGNsZWFyZWQgYnkgZGRyIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NWU3YzdhNDVlM2RkOWM3Y2UzZTcyMjM1MmJhNjBmOGRmMWE3YTRiCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEZlYiAxMiAxMzozNDo1NSAyMDA3IC0wNjAwCgogICAgODV4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDNiODFiNDhlZWMwYWQyNDllYzk3YTRhZTE2YzM2ZmEyZTAxNGZmNApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMTo0NDo0NCAyMDA3IC0wNTAwCgogICAgU29tZSA4NXh4IGNwdSBjbGVhbnVwcwoKICAgICogQ2xlYW5lZCB1cCB0aGUgVFNSW1dJU10gY2xlYXJpbmcKICAgICogQ2xlYW5lZCB1cCBETUEgaW5pdGlhbGl6YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTUxZDVkOTkyZWFiOGM0OTdiMjRjODE2YzczZGMxYWQ4YmZmYjRlYgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMTozMjoyMiAyMDA3IC0wNTAwCgogICAgQWRkIGNwdSBzdXBwb3J0IGZvciB0aGUgODU0NAoKICAgIFJlY29nbml6ZSBuZXcgU1ZSIHZhbHVlcywgYW5kIGFkZCBhIGZldyByZWdpc3RlciBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWQ4M2Q3ZjRhYzY1NzI3MTgyZDhkZGFmN2JhNDJmYTc0Y2Y2NWFlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAxMSAxNjo1MTowMiAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NDREUyBiYXNpYyBwb3J0IGJvYXJkIGZpbGVzLgoKICAgIEFkZCBib2FyZCBwb3J0IHVuZGVyIG5ldyBib2FyZC9mcmVlc2NhbGUgZGlyZWN0b3J5CiAgICBzdHJ1Y3R1cmUgYW5kIHJldXNlIGV4aXN0aW5nIFBJWElTIEZQR0Egc3VwcG9ydCB0aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwY2RlNGIwMGZjNzM5M2I4OWYzNzlkODNhOWQ0MzZkY2IxMzM0YmZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAxMSAxNjo1MDo1NyAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NDREUyBtYWluIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNjJkZDgzMDc3YWMwNGMwMjk2YmNhM2U4MjRlYzJmYjNkNDRkOWQ2CkF1dGhvcjogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIERlYyAyNyAyMjowNzoxNSAyMDA2ICswMzAwCgogICAgRml4IFBDSSBJL08gc3BhY2UgbWFwcGluZyBvbiBGcmVlc2NhbGUgTVBDODV4MEFEUwoKICAgIFRoZSBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcgZm9yIEZyZWVzY2FsZSBNUEM4NTQwQURTIGJvYXJkIHdhcyBicm9rZW4gYnkgY29tbWl0CiAgICA1MmM3YTY4YjhkNTg3ZWJjZjVhNmIwNTFiNThiM2QzZmZhMzc3ZGRjIHdoaWNoIGZhaWxlZCB0byB1cGRhdGUgdGhlICNkZWZpbmUncwogICAgZGVzY3JpYmluZyB0aGUgbG9jYWwgYWRkcmVzcyB3aW5kb3cgdXNlZCBmb3IgdGhlIFBDSSBJL08gc3BhY2UgYWNjZXNzZXMgLS0gZml4CiAgICB0aGlzIGFuZCBjYXJyeSBvdmVyIHRoZSBuZWNlc3NhcnkgY2hhbmdlcyBpbnRvIHRoZSBNUEM4NTYwQURTIGNvZGUgc2luY2UgdGhlCiAgICBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcgd2FzIGFsc28gYnJva2VuIGZvciB0aGlzIGJvYXJkIChieSB0aGUgZWFybGllciBjb21taXQKICAgIDA4NzQ1NDYwOWU0NzI5NTQ0M2FmNzkzYTI4MmNkZGNkOTFhNWY0OWMpLglBZGQgdGhlIGNvbW1lbnRzIGNsYXJpZnlpbmcgaG93CiAgICB0aGUgUENJIEkvTyBzcGFjZSBtdXN0IGJlIG1hcHBlZCB0byBhbGwgdGhlIE1QQzg1eHggYm9hcmQgY29uZmlnLiBoZWFkZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CgogICAgIGJvYXJkL21wYzg1NDBhZHMvaW5pdC5TCSAgfCAgICA0ICsrLS0KICAgICBib2FyZC9tcGM4NTYwYWRzL2luaXQuUwkgIHwgICAgNCArKy0tCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDBBRFMuaCB8ICAgIDUgKystLS0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0MUNEUy5oIHwgICAgMiArLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQ4Q0RTLmggfCAgICAyICstCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NjBBRFMuaCB8ICAgIDggKysrKy0tLS0KICAgICA2IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKY29tbWl0IDk2NjI5Y2JhYmRiNzI3ZDRhNWU2MjU0MmRlZWZjMDFkNDk4ZGI2ZGMKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDUgMTY6NDI6MzAgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IGU1MDAgdjIgY29yZSByZXNldCBidWcKCiAgICBUaGUgZm9sbG93aW5nIHBhdGNoIGZpeGVzIHRoZSBlNTAwIHYyIGNvcmUgcmVzZXQgYnVnLgogICAgRm9yIGU1MDAgdjIgY29yZSwgYSBuZXcgcmVzZXQgY29udHJvbCByZWdpc3RlciBpcyBhZGRlZCB0byByZXNldCB0aGUKICAgIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjMyNDdhNWFjZDU4MDMyZTZjZjMzZjUyNWJjMzkyM2I0NjdiYWM4OApBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgMjAgMTE6MDE6MDAgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogdjI6IFJlbW92ZSB0aGUgZml4ZWQgVExCIGFuZCBMQVcgZW50cnludWJtZXIKCiAgICBSZW1vdmUgdGhlIGZpeGVkIFRMQiBhbmQgTEFXIGVudHJ5IG51Ym1lci4gVXNlIGFjdHVhbGx5IFRMQiBhbmQgTEFXCiAgICBlbnRyeSBudW1iZXIgdG8gY29udHJvbCB0aGUgbG9vcC4gIFRoaXMgY2FuIHJlZHVjZSB0aGUgcG90ZW50aWFsIHJpc2sKICAgIGZvciB0aGUgODV4eCBwcm9jZXNzb3IgaW5jcmVhc2luZyBpdHMgVExCIGFkbiBMQVcgZW50cnkgbnVtYmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN3YXJ0aG91dCBFZHdhcmQgPHN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBiMTkzNGJhMTJmZDQwOGZjYzNiOGJkOWY0YjA0ODY0YzQyYTQyYmYKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDE4IDE3OjAxOjA0IDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCB0aGUgODV4eGNkcyB0c2VjIGJ1ZwoKICAgIEZpeCB0aGUgODV4eGNkcyB0c2VjIGJ1Zy4KICAgIFdoZW4gZW5hYmxlIFBDSSwgdHNlYy5vIHNob3VsZCBiZSBhZGRlZCB0byB1LWJvb3QubGRzIHRvIG1ha2UgdHNlYyB3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MzM3YjIzN2ZmYzRhYWYxYjk0NjcwMjRmZTQ3MmE4ODBkODUyNTk4CkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxNSAxNDo0MzozMSAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggQ1BVMiBlcnJhdGEgb24gTVBDODU0OENEUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYXBwbHkgd29ya2Fyb3VuZCBvZiBDUFUyIGVycmF0YSBvbiBNUEM4NTQ4Q0RTIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6RWJvbnkgWmh1IDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzOWIxOGM0ZjNlMGI2ZDBkYzAwZjRlNjhiYWQyZGEzNzY2Yzg1ZjA5CkF1dGhvcjogZWJvbnkuemh1QGZyZWVzY2FsZS5jb20gPGVib255LnpodUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDE4IDE2OjI1OjE1IDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IERpc2FibGVzIE1QQzg1NDhDRFMgMlRfVElNSU5HIGZvciBERFIgYnkgZGVmYXVsdAoKICAgIFRoaXMgcGF0Y2ggZGlzYWJsZXMgTVBDODU0OENEUyAyVF9USU1JTkcgZm9yIEREUiBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6RWJvbnkgWmh1IDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MWZiN2UwZjFlYzliOTFiZGFlMjU2NWJhYjVmMmUzZWUxNTAzOWM3CkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAxNCAxNDoxNDo1NSAyMDA2ICswODAwCgogICAgdS1ib290OiBFbmFibGUgUENJIGZ1bmN0aW9uIGFuZCBhZGQgUEVYICYgcmFwaWRpbyBtZW1vcnkgbWFwIG9uIE1QQzg1NDhDRFMgYm9hcmQKCiAgICBFbmFibGUgUENJIGZ1bmN0aW9uIGFuZCBhZGQgUEVYICYgcmFwaWRpbyBtZW1vcnkgbWFwIG9uIE1QQzg1NDhDRFMKICAgIGJvYXJkLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk2YjhhMDU0MzJmMzQ2ZjM2NDkzNTM1Yzg1MzIwYjcwZWM5YzdjMWIKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDo1NDoxNSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIE1QQzgzMTNFUkRCIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDllYTNiNmVhZmU2MDYyODVhZTRkNWMzNzgwMjYxNTNkZGU1MzIwMApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjIxIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgZ2VuZXJpYyBQQ0kgc2V0dXAgY29kZS4KCiAgICBCb2FyZCBjb2RlIGNhbiBub3cgcmVxdWVzdCB0aGUgZ2VuZXJpYyBzZXR1cCBjb2RlIHJhdGhlciB0aGFuIGhhdmluZyB0bwogICAgY29weS1hbmQtcGFzdGUgaXQgZm9yIHRoZW1zZWx2ZXMuICBCb2FyZHMgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB1c2UgdGhpcwogICAgb25jZSB0aGV5J3JlIHRlc3RlZCB3aXRoIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjOThlNTE5M2U5M2RmNmI5YjY1MTg1MWQ1NGI2MzhhNjFlYmIwZWEKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIDgzMXggc3VwcG9ydCB0byBzcGVlZC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBmMjUzMjgzYTMyZDkxZTA2ODQ0ZDdmODdmOWIzM2Y0ZjRmYmNlOGYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxOCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIDgzMXggc3VwcG9ydCB0byBnbG9iYWxfZGF0YS5oCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTVlN2VmODk3ZTU0NTkxZTYxNWZjMWI0NThiNzRjMjg2ZmUxZmIwNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE2IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBDaGFuZ2UgUFZSXzgzeHggdG8gUFZSX0UzMDBDMS0zLCBhbmQgdXBkYXRlIGNoZWNrY3B1KCkuCgogICAgUmF0aGVyIHRoYW4gbWlzbGVhZGluZ2x5IGRlZmluZSBQVlJfODN4eCBhcyB0aGUgc3BlY2lmaWMgdHlwZSBvZiA4M3h4CiAgICBiZWluZyBidWlsdCBmb3IsIHRoZSBQVlIgb2YgZWFjaCBjb3JlIHJldmlzaW9uIGlzIGRlZmluZWQuIGNoZWNrY3B1KCkgbm93CiAgICBwcmludHMgdGhlIGNvcmUgdGhhdCBpdCBkZXRlY3RzLCByYXRoZXIgdGhhbiBhYm9ydGluZyBpZiBpdCBkb2Vzbid0IGZpbmQKICAgIHdoYXQgaXQgdGhpbmtzIGl0IHdhbnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEzNWIwYzQ5NTBkODRjZjllM2E5ZTMyYjkxNjEzNTk1NmQxYWM2MzYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxNSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogUmVjb2duaXplIFNQUiB2YWx1ZXMgZm9yIE1QQzgzMTEgYW5kIE1QQzgzMTMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDg3YzU3YjIwMWI0NTcyZDE2ZjFiNjQyOTk4ZmFhMDBjOTkxMmIxNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjMxOjU1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIE1QQzgzMXguCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ZjNGM3MWExNDNiZTg2NjZkNzA4MDNmYjI1YWU2MDM3OWM5NTYyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyMyAxNTozOTo1OSAyMDA3ICswMjAwCgogICAgRml4IGZpbGUgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzODI1Nzk4OGFiZmU3NGQ0NTljYTJhZDc0OGIxMDljYTA0ZTRlZmUxCkF1dGhvcjogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNTozMDozOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBdm9pZCBhc3NpZ25pbmcgUENJIHJlc291cmNlcyBmcm9tIHplcm8gYWRkcmVzcwoKICAgIElmIGEgUENJIElERSBjYXJkIGhhcHBlbnMgdG8gZ2V0IGEgemVybyBhZGRyZXNzIGFzc2lnbmVkIHRvIGl0LCB0aGUgTGludXggSURFCiAgICBjb3JlIGNvbXBsYWlucyBhbmQgSURFIGRyaXZlcnMgZmFpbHMgdG8gd29yay4gIEFsc28sIGFzc2lnbmluZyB6ZXJvIHRvIGEgQkFSCiAgICB3YXMgaWxsZWdhbCBhY2NvcmRpbmcgdG8gUENJIDIuMSAodGhlIGxhdGVyIHJldmlzaW9ucyBzZWVtIHRvIGhhdmUgZXhjbHVkZWQgdGhlCiAgICBzZW50ZW5jZSBhYm91dCAiMCIgYmVpbmcgY29uc2lkZXJlZCBhbiBpbnZhbGlkIGFkZHJlc3MpIC0tIHNvLCB1c2UgYSByZWFzb25hYmxlCiAgICBzdGFydGluZyB2YWx1ZSBvZiAweDEwMDAgKHRoYXQncyB3aGF0IHRoZSBtb3N0IExpbnV4IGFyY2hzIGFyZSB1c2luZykuCgogICAgQWx0ZXJuYXRpdmVseSwgb25lIG1pZ2h0IGhhdmUgZml4ZWQgdGhlIGNhbGxzIHRvIHBjaV9zZXRfcmVnaW9uKCkgaW5kaXZpZHVhbGx5CiAgICAoc29tZSBjb2RlIGV2ZW4gc2VlbXMgdG8gaGF2ZSB0YWtlbiBjYXJlIG9mIHRoaXMgaXNzdWUpIGJ1dCB0aGF0IHdvdWxkIGhhdmUKICAgIGJlZW4gYSBsb3QgbW9yZSB3b3JrLiA6LSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZmI5MDNhMmViOTQzNmJhYTkyNzBjY2MwYzI3MDgyZDg2NDk3ZDg5CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTQ6MDA6MTEgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gc2V0ZW52KC4uLikgY2FuIGRlbGV0ZSBlbnZpcm9ubWVudGFsdmFyaWFibGVzCgogICAgdXBkYXRlIHNldGVudigpIGZ1bmN0aW9uIHNvIHRoYXQgZW50ZXJpbmcgYSBOVUxMIHZhbHVlIGZvciB0aGUKICAgIHZhcmlhYmxlJ3MgdmFsdWUgd2lsbCBkZWxldGUgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzZmMTA0ZTVjYWE3NDdkNTY4ZWZmMjZiMzY5NTY1YWY1N2MyZmZhNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEFwciAyMyAxMzo1NDoyNCAyMDA3ICswMjAwCgogICAgW3BhdGNoXSB1c2UgdW5zaWduZWQgY2hhciBpbiBzbWM5MTExMSBkcml2ZXIgZm9yIG1hYwoKICAgIHRoZSB2X21hYyB2YXJpYWJsZSBpbiB0aGUgc21jOTExMTEgZHJpdmVyIGlzIGRlY2xhcmVkIGFzIGEgc2lnbmVkIGNoYXIgLi4uCiAgICB0aGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG9uZSBvZiB0aGUgYnl0ZXMgaW4gdGhlIE1BQyBpcyAic2lnbmVkIiBsaWtlIDB4RTAKICAgIGJlY2F1c2Ugd2hlbiBpdCBnZXRzIHByaW50ZWQgb3V0LCB5b3UgZ2V0IGEgZGlzcGxheSBsaWtlOgogICAgMHhGRkZGRkZFMCBhbmQgdGhhdCdzIG5vIGdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDk4YzA4ODVhZDYxN2ZjY2YyMWU3YzI2ZWY4Y2I3MjhmYmZiMjQ1OQpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxMzoxMDo1MiAyMDA3ICswMjAwCgogICAgVVNCOiAoQW5vdGhlcikgZGVsYXkgZm9yIGNyYXBweSBVU0Iga2V5cy4KCiAgICBTb21lIFVTQiBrZXlzIGFyZSBzbG93IGluIGdpdmluZyBiYWNrIGFuIGFuc3dlciB3aGVuIHRoZSBSb290IEhVQgogICAgZW5hYmxlcyBwb3dlciBsaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCAzMjNiZmE4ZjQzNmRjM2JjNTcxODdjOWIxNDg4YmMzMTQ2ZmYxNTIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIzIDEyOjAwOjIyIDIwMDcgKzAyMDAKCiAgICBSZW1vdmUgQk9BUkRMSUJTIHVzYWdlIGNvbXBsZXRlbHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzI1NTY0NDM4NDBmMTI3MTcwZTRiYWE4YmRkNWI1NjcwMzlmNmMzNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMTowNzoyMiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBTeXN0ZW1BQ0Ugc3VwcG9ydCBmb3IgTWljcm9ibGF6ZQoKY29tbWl0IDA2NDM2MzFhYTEwMzZjZDc0NmJmNWQxNWY1YTM0YmM3YmMwMWVhNGYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBBcHIgMjEgMjE6MDI6NDAgMjAwNyArMDIwMAoKICAgIDE2Yml0IHJlYWQvd3JpdGUgbGl0dGxlIGVuZGlhbgoKY29tbWl0IDlkMWQ2YTM0ZDI2YzU5MzNiYzA5N2NlNzNjOTM0OGY5NTU3M2NkZDQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBBcHIgMjEgMjA6NTM6MzEgMjAwNyArMDIwMAoKICAgIENoYW5nZSBNTDQwMSBwYXJhbWV0ZXJzIC0gWGlsaW54IEJTUAoKY29tbWl0IDJlMzQzYjlhNTdmMzJlMWJkMDhjMzVjOTk3NjkxMDMzM2ZiNGUxM2QKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI4IDA1OjM3OjI5IDIwMDcgLTA2MDAKCiAgICBtcGM4NjQxaHBjbjogRml4IExBVyBhbmQgVExCIHNldHVwIHRvIHVzZSB0aGUgSU9fUEhZUyAjZGVmaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc5Y2I0NzM5MWVlYmVmODVhY2FkYjNmNjk2MWVmNmM1NWNhY2U2YWMKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE5IDEwOjQyOjM3IDIwMDcgKzA4MDAKCiAgICBFbmFibGUgTEFXcyBmb3IgTVBDODY0MSBQQ0ktRXgyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJkNzg1MWNlMWUxZjE0MDY2NWI1MjAwMjZhYmYxMDQyOTY4YjExMDIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjEyOjI2IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OyBXcml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2RiZGYyOGI4YmQ4NTVhODUzMGRjMzI5MmU0OTgyNTc1YTE5NzA2MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MTE6MzggMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg6IHByb3RlY3QgbWVtY3B5IHRvIGJhZCBhZGRyZXNzIGlmIGEgbWFjLWFkZHJlc3MgaXMgbWlzc2luZyBmcm9tIGR0CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTRkYTVmNzY3NWJiYjQyN2M0NjllM2Y0NTAwNmUwMjdiNmUyMWRiOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjAgMTc6NDM6MjggMjAwNyArMDIwMAoKICAgIENsZWFudXAgY29tcGlsZXIgd2FybmluZ3MsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY5MjM1NjVkYjEyYWYzNGZkNWUwMmQzNTRlZTY1YThjNzhhYzQ2MGYKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyMCAxMjowMTo0NyAyMDA3ICswMjAwCgogICAgRml4IGJyZWFrYWdlIG9mIE5DNjUwIGJvYXJkIHdpdGggcmVzcGVjdCB0byBuYW5kIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMzlmMjNjZDkwOTQ3NjM5YWMyNzhhMThmZjI3N2VjNzg2YjVhYzE2NwpBdXRob3I6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgpEYXRlOglGcmkgQXByIDIwIDExOjEzOjE2IDIwMDcgKzAyMDAKCiAgICBbUkZDIFBBVENIXSBpY2VjdWJlL2xpdGU1MjAwYjogZml4IE9GX1RCQ0xLICh0aW1lYmFzZS1mcmVxdWVuY3kpIGNhbGN1bGF0aW9uCgogICAgRzIgY29yZSByZWZlcmVuY2UgbWFudWFsIHNheXMgZGVjcmVtZW50ZXIgYW5kIHRpbWUgYmFzZQogICAgYXJlIGRlY3JlYXNpbmcvaW5jcmVhc2luZyBvbmNlIGV2ZXJ5IDQgYnVzIGNsb2NrIGN5Y2xlcy4KICAgIExldHMgZml4IGl0LCBzbyB0aW1lIGluIExpbnV4IHdvbid0IHJ1biB0d2ljZSBhcyBmYXN0CgogICAgU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDc2NTFmOGJkYmJhMDNiYjBiNGYyNDFlMmQyYzRjYjY1YjIzMGJkNTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgQXByIDE5IDIzOjE0OjM5IDIwMDcgLTA0MDAKCiAgICBGaXggc2VyaW91cyBwb2ludGVyIGJ1ZyB3aXRoIGJvb3RtIGFuZCByZXNlcnZlIG1hcC4KCiAgICBXaGF0IHdhcyBzdXBwb3NlIHRvIGJlIGEgc3RhY2sgdmFyaWFibGUgd2FzIGRlY2xhcmVkIGFzIGEgcG9pbnRlciwKICAgICAgb3ZlcndyaXRpbmcgcmFuZG9tIG1lbW9yeS4KICAgIEFsc28gbW92ZWQgdGhlIGxpYmZkdC5hIHJlcXVpcmVtZW50IGludG8gdGhlIG1haW4gTWFrZWZpbGUuICBUaGF0IGlzCiAgICAgIFRoZSBVLUJvb3QgV2F5LgoKY29tbWl0IGQyMTY4NjI2MzU3NGU5NWNiM2U5ZTliMDQ5NmY5NjhiMWI4OTdmZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMTkgMDk6NTM6NTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGNoaXAgc2VsZWN0IHRpbWluZyBmb3IgU3lzQUNFIGFjY2VzcyBvbiBBTUNDIEthdG1haQoKICAgIFByZXZpb3VzIHZlcnNpb25zIHVzZWQgZnVsbCB3YWl0IHN0YXRlcyBmb3IgdGhlIGNoaXAgc2VsZWN0ICMxIHdoaWNoCiAgICBpcyBjb25uZWN0ZWQgdG8gdGhlIFhpbGluaXggU3lzdGVtQUNFIGNvbnRyb2xsZXIgb24gdGhlIEFNQ0MgS2F0bWFpCiAgICBldmFsdWF0aW9uIGJvYXJkLiBUaGlzIGxlYWRzIHRvIHJlYWxseSBzbG93IGFjY2VzcyBhbmQgdGhlcmVmb3JlIGxvdwogICAgcGVyZm9ybWFuY2UuIFRoaXMgcGF0Y2ggbm93IHNldHMgdXAgdGhlIGNoaXAgc2VsZWN0IGEgbG90IGZhc3RlcgogICAgcmVzdWx0aW5nIGluIG11Y2ggYmV0dGVyIHJlYWQvd3JpdGUgcGVyZm9ybWFuY2Ugb2YgdGhlIExpbnV4IGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzc4Mzc4MjhkODkwODQ4NzliZWUyZjJiOGM3YzY4ZDQ2OTU5NDBkZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6NDk6MjkgMjAwNyArMDIwMAoKICAgIENsZW5hdXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZkMDk0YzYzNzllMmVmOGE0ZDBjZWI1NjQwYjI0Y2IwYzhkMDQ0NDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjIwOjU4IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYTI2ZWM0NzMyZWZkN2EzMDhkMGJiYzk3NzE0YzFkNzVlZjExNzNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzowNzoyNiAyMDA3ICswMjAwCgogICAgQ2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ2VuZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWY2YzczMmFmZmVhOTY0Nzc2MmQyN2E0NjE3YTJhZTY0YzUyZGNlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTY6MTc6NDYgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBhZDRlYjU1NTY3MWQ5N2Y5NmRjNTZlYWI1NTEwM2IxZjg2ODc0YjAxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNDozMDozOSAyMDA3ICswMjAwCgogICAgTUNDMjAwIGJvYXJkOiByZW1vdmUgd2FybmluZyB3aGljaCBpcyBvYnNvbGV0ZSBhZnRlciBQU29DIGZpcm13YXJlIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDM3NDdhM2YwMTBiMmIxNDQyZGVjM2U4NzFjNjk3ODhiNjAxN2FhYWUKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJV2VkIEFwciAxOCAxMjoxMTowNSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBpY2VjdWJlL2xpdGU1MjAwYjogZG9jdW1lbnQgd2FrZXVwIGZyb20gbG93LXBvd2VyIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KCmNvbW1pdCBlNjczMjI2ZmY5ZDZhYTkxYjQ3Y2VhYzc0YjhjMTM3NzBiMDZiYjM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDEyOjA3OjQ3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBY2FkaWEgdG8gbm90IHNldHVwIFBMTCB3aGVuIGJvb3RpbmcgdmlhIGJvb3RzdHJhcCBFRVBST00KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTBlNmY0MWNmMDlmYzk4ZjZjY2I1MTBlMTgzZDUzYWI4NTQ2Y2YyZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxMjowNTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgb3V0cHV0IGZvciBib290cm9tIGxvY2F0aW9uIHRvIDQwNUVaIHBvcnRzCgogICAgTm93IDQwNUVaIHBvcnRzIGFsc28gc2hvdyB1cG9uIGJvb3R1cCBmcm9tIHdoaWNoIGJvb3QgZGV2aWNlCiAgICB0aGV5IGFyZSBjb25maWd1cmVkIHRvIGJvb3Q6CgogICAgVS1Cb290IDEuMi4wLWdkMzgzMmU4Zi1kaXJ0eSAoQXByIDE4IDIwMDcgLSAwNzo0NzowNSkKCiAgICBDUFU6ICAgQU1DQyBQb3dlclBDIDQwNUVaIFJldi4gQSBhdCAxOTkuOTk5IE1IeiAoUExCPTEzMywgT1BCPTY2LCBFQkM9NjYgTUh6KQoJICAgQm9vdHN0cmFwIE9wdGlvbiBFIC0gQm9vdCBST00gTG9jYXRpb24gRUJDICgzMiBiaXRzKQoJICAgMTYga0IgSS1DYWNoZSAxNiBrQiBELUNhY2hlCiAgICBCb2FyZDogQWNhZGlhIC0gQU1DQyBQUEM0MDVFWiBFdmFsdWF0aW9uIEJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDljMDBkZmIwYmY4OWM4YzIzZThhZjViNWJkZjQ5Y2Y2NmQ3NjlmODUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXByIDE3IDEzOjMwOjMzIDIwMDcgKzAxMDAKCiAgICBNb3ZlIHBwZWFyc2UgdG8gQVJNIGJvYXJkIGxpc3QKICAgIEFkZCBLb25zdGFudGluIEtsZXRzY2hrZSBmb3Igc2NiOTMyOC4KICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+Cgpjb21taXQgZDM4MzJlOGZlMWIyMTRlYzYyNDI0ZWFjMzZjZmRhOWZjNTZkMjFiMwpBdXRob3I6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjAwOjEzIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiB3YWtldXAgZnJvbSBsb3ctcG93ZXIgc3VwcG9ydAoKICAgIFUtQm9vdCBwYXJ0IG9mIExpdGU1MjAwYiBsb3cgcG93ZXIgbW9kZSBzdXBwb3J0LgogICAgUHV0cyBTRFJBTSBvdXQgb2Ygc2VsZi1yZWZyZXNoIGFuZCB0cmFuc2ZlcnMgY29udHJvbCB0bwogICAgYWRkcmVzcyBzYXZlZCBhdCBwaHlzaWNhbCAweDAuCgogICAgU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYzNWE1M2ZjN2IwYzc5ZmNmZTdiZGMwMTE2M2M0YjM0YWFiYTE0NjAKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTdW4gQXByIDE1IDEzOjU0OjI2IDIwMDcgLTA0MDAKCiAgICBGaXggdGhlIGZ0X2NwdV9zZXR1cCgpIHByb3BlcnR5IHNldHRpbmdzLgoKICAgIFVzZSAic2V0dGVyIiBmdW5jdGlvbnMgaW5zdGVhZCBvZiBmbGFncywgY2xlYW5lciBhbmQgbW9yZSBmbGV4aWJsZS4KICAgIEl0IGFsc28gZml4ZXMgdGhlIHByb2JsZW0gbm90ZWQgYnkgVGltdXIgVGFiaSB0aGF0IHRoZSBldGhlcm5ldCBNQUMKICAgIGFkZHJlc3NlcyB3ZXJlIGFsbCBiZWluZyBzZXQgaW5jb3JyZWN0bHkgdG8gdGhlIHNhbWUgTUFDIGFkZHJlc3MuCgpjb21taXQgYzI4YWJiOWM2MTRmNjVjZTIwOTZjYzRhNjZmYzg4NmM3N2QwZTVhNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBBcHIgMTQgMjI6NTE6MjQgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgdGhlIGJvb3RtIGNvbW1hbmQgZm9yIENPTkZJR19PRl9MSUJGRFQKCiAgICBJbiBib290bSwgY3JlYXRlIHRoZSAiL2Nob3NlbiIgbm9kZSBvbmx5IGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAgICAoYmV0dGVyIG1hdGNoZXMgdGhlIHByZXZpb3VzIGJlaGF2aW9yKS4KICAgIFVwZGF0ZSBmb3IgcHJvcGVyIHJlc2VydmVkIG1lbW9yeSBtYXAgaGFuZGxpbmcgZm9yIGluaXRyZC4KCmNvbW1pdCAzZjlmMDhjZjkxYzhhNjk0OWE1ZDc4YTE4YmQzZDhkZjdiODZkODg4CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAyMjo0Njo0MSAyMDA3IC0wNDAwCgogICAgQWRkIHNvbWUgdXRpbGl0aWVzIHRvIG1hbmlwdWxhdGUgdGhlIHJlc2VydmVkIG1lbW9yeSBtYXAuCgpjb21taXQgODA0OGNkZDU2ZjA0YTc1NmVlZWE0OTUxZjQwMmJmNWNjMzM3ODVkYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBcHIgMTQgMjE6MTY6NTQgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCA4ZTY4NzUxODNjZGNhOTFjMTM0NDA4ZDExOWQ0YWJjZDQ4ZWY2ODU2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTg6NTY6NDYgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBFbmFibGUgTU1DIHN1cHBvcnQKCiAgICBTZXQgdXAgdGhlIHBvcnRtdXggZm9yIHRoZSBNTUMgaW50ZXJmYWNlIGFuZCBlbmFibGUgdGhlIE1NQyBkcml2ZXIKICAgIGFsb25nIHdpdGggc3VwcG9ydCBmb3IgRE9TIHBhcnRpdGlvbnMsIGV4dDIgYW5kIEZBVCBmaWxlc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmYzI2Yzk3YmI2ZGY0MWI0YTk1NjYyYzM0MDU0ZmU5MTIzODdiZjM4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKYW4gMjAgMTA6MDM6NTMgMjAwNiArMDEwMAoKICAgIEF0bWVsIE1DSSBkcml2ZXIKCiAgICBEcml2ZXIgZm9yIHRoZSBBdG1lbCBNQ0kgY29udHJvbGxlciAoTU1DIGludGVyZmFjZSkgZm9yIEFUMzJBUCBDUFVzLgoKICAgIFRoZSBBVDkxIEFSTS1iYXNlZCBDUFVzIHVzZSBiYXNpY2FsbHkgdGhlIHNhbWUgaGFyZHdhcmUsIHNvIGl0IHNob3VsZAogICAgYmUgcG9zc2libGUgdG8gc2hhcmUgdGhpcyBkcml2ZXIsIGJ1dCBubyBlZmZvcnQgaGFzIGJlZW4gbWFkZSBzbyBmYXIuCgogICAgSGFyZHdhcmUgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlIEFUMzJBUDcwMDAgZGF0YSBzaGVldCwKICAgIHdoaWNoIGNhbiBiZSBkb3dubG9hZGVkIGZyb20KCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvZGF0YXNoZWV0cy5hc3A/ZmFtaWx5X2lkPTY4MgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA1ZmRhYjFlZjZhMTBkMDQ5YTUwMDIxYTg2ZjEyMjZmNDQ0ZDliOWYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1NTozNyAyMDA2ICswMTAwCgogICAgQVZSMzI6IEFkZCBjbGsgYW5kIGdwaW8gaW5mcmFzdHJ1Y3R1cmUgZm9yIG1tY2kKCiAgICBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgbW1jaSBwaW5zLCBhcyB3ZWxsIGFzCiAgICBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIGNsb2NrIHJhdGUgb2YgdGhlIG1tY2kgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3ZmFjM2Y2OWU5ZjA1YzVlNTMyNjY4MTk3NmMzNWQxMjkzMjRjNGRlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTg6NTM6NTYgMjAwNiArMDEwMAoKICAgIEVuYWJsZSBwYXJ0aXRpb24gc3VwcG9ydCB3aXRoIE1NQwoKICAgIEluY2x1ZGUgaW1wbGVtZW50YXRpb25zIG9mIGluaXRfcGFydCgpIGFuZCBnZXRfcGFydGl0aW9uX2luZm8oKSB3aGVuCiAgICBDT05GSUdfTU1DIGlzIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YTI0ZjQ3N2ExZWQ1YmIwZjc0Mzc3Yzk4NWQ3NTRlYmJmYTQ0ODcyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTc6MTQ6MzAgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBFbmFibGUgbmV0d29ya2luZwoKICAgIEltcGxlbWVudCBNQUNCIGluaXRpYWxpemF0aW9uIGZvciBBVlIzMiBhbmQgQVRTVEsxMDAwLCBhbmQgdHVybgogICAgZXZlcnl0aGluZyBvbiwgaW5jbHVkaW5nIHRoZSBNQUNCIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1YzFmZTFmZmZmZDE3NTBhN2U0N2U1YTJlMmNkNjAwYzAwZTRmMDA5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKYW4gMjAgMTA6MDM6MzQgMjAwNiArMDEwMAoKICAgIEF0bWVsIE1BQ0IgZXRoZXJuZXQgZHJpdmVyCgogICAgRHJpdmVyIGZvciB0aGUgQXRtZWwgTUFDQiBvbi1jaGlwIGV0aGVybmV0IGNvbnRyb2xsZXIuCgogICAgVGhpcyBkcml2ZXIgaGFzIGJlZW4gdGVzdGVkIG9uIHRoZSBBVFNUSzEwMDAgYm9hcmQgd2l0aCBhIEFUMzJBUDcwMDAKICAgIENQVS4gSXQgc2hvdWxkIHByb2JhYmx5IHdvcmsgb24gQVQ5MVNBTTkyNnggYXMgd2VsbCB3aXRoIHNvbWUgbWlub3IKICAgIG1vZGlmaWNhdGlvbnMuCgogICAgSGFyZHdhcmUgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlIEFUMzJBUDcwMDAgZGF0YSBzaGVldCwKICAgIHdoaWNoIGNhbiBiZSBkb3dubG9hZGVkIGZyb20KCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvZGF0YXNoZWV0cy5hc3A/ZmFtaWx5X2lkPTY4MgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGI0ZWM5YzJkNDNkODk0NzI5YmI2MzNiZmRiZGZhOTVhOTYyYzE1NTYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNjo1NjoxNCAyMDA2ICswMTAwCgogICAgQVZSMzI6IEFkZCBjbGsgYW5kIGdwaW8gaW5mcmFzdHJ1Y3R1cmUgZm9yIG1hY2IwIGFuZCBtYWNiMQoKICAgIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBtYWNiMCBhbmQgbWFjYjEgcGlucywgYXMKICAgIHdlbGwgYXMgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSB2YXJpb3VzCiAgICBidXNzZXMgdGhlIG1hY2IgZXRoZXJuZXQgY29udHJvbGxlcnMgYXJlIGNvbm5lY3RlZCB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkNWFjYjk1YjE2YTBhNzRjNjQzNTI0MzQyYzM0MzdlNzY1NDI2ZDA1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTU6Mzk6MTUgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBJbXBsZW1lbnQgc2ltcGxlIERNQSBtZW1vcnkgYWxsb2NhdG9yCgogICAgSW1wbGVtZW50IGRtYV9hbGxvY19jb2hlcmVudCgpIHdoaWNoIHJldHVybnMgY2FjaGUtYWxpZ25lZAogICAgdW5jYWNoZWFibGUgbWVtb3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDkxOTc1YjBmZWE3NzNjOWU2ODFmZWE4Y2YzMzQ5NjY5ZjI3Njg1ZWUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNTo0NjowMiAyMDA2ICswMTAwCgogICAgSW1wb3J0IDxsaW51eC9taWkuaD4gZnJvbSB0aGUgTGludXgga2VybmVsCgogICAgSW5zdGVhZCBvZiBjcmVhdGluZyB5ZXQgYW5vdGhlciBzZXQgb2YgTUlJIHJlZ2lzdGVyIGRlZmluaXRpb25zCiAgICBpbiB0aGUgbWFjYiBkcml2ZXIsIGhlcmUncyBhIGNvbXBsZXRlIHNldCBvZiBkZWZpbml0aW9ucyBmb3IgZXZlcnlvbmUKICAgIHRvIHVzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxYjgwNGIyMjk1NTZhNGQ4NjJkYTkzYzBlYzk0ZTc5NDE5MzY0YjJjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXIgMjEgMTk6NDc6MzYgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBJbmNsdWRlIG1vcmUgY29tbWFuZHMgZm9yIEFUU1RLMTAwMAoKICAgIEluY2x1ZGUgdGhlIGltaSwgaW1scyBhbmQgamZmcyBjb21tYW5kcyBzZXRzIGJ5IGRlZmF1bHQgb24gQVRTVEsxMDAwLgogICAgQWxzbyBkZWZpbmUgQ09ORklHX0JPT1RBUkdTIHRvIHNvbWV0aGluZyBtb3JlIHVzZWZ1bCwgZGVmaW5lCiAgICBDT05GSUdfQk9PVENPTU1BTkQgYW5kIGVuYWJsZSBhdXRvYm9vdCBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDljMGRlYjVhZTNlYTAxODlmMmUwOGFjMjllZjEzMTZmMWZiODU0OGQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1hciAyMSAxOTo0NDo0OCAyMDA3ICswMTAwCgogICAgQVZSMzI6IFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzdGF0CgogICAgQ29weSB0aGUgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc3RhdCBmcm9tIHRoZSBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMTJmMDk5YzA4MTY3YTdhNTFhZWVlNjIzYmMxNmRhZmQwODQxMjcxYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE0OjQ2OjA2IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogVXNlIGluaXRkcmFtKCkgaW5zdGVhZCBvZiBib2FyZF9pbml0X21lbW9yaWVzKCkKCiAgICBDb25mb3JtIHRvIHRoZSAic3RhbmRhcmQiIGludGVyZmFjZSBhbmQgdXNlIGluaXRkcmFtKCkgaW5zdGVhZCBvZgogICAgYm9hcmRfaW5pdF9tZW1vcmllcygpIG9uIEFWUjMyLiBUaGlzIGVuYWJsZXMgdXMgdG8gZ2V0IHJpZCBvZiB0aGUKICAgIHNkcmFtX3NpemUgbWVtYmVyIG9mIHRoZSBnbG9iYWxfZGF0YSBzdHJ1Y3QgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxZjRmMjEyMWMyNjg1MTgyZWI4N2ZhOWE5Yjc5OWQxOTE3Mzg3YTFjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBOb3YgMjAgMTU6NTM6MTAgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBSZWxvY2F0ZSB1LWJvb3QgdG8gU0RSQU0KCiAgICBSZWxvY2F0ZSB0aGUgdS1ib290IGltYWdlIGludG8gU0RSQU0gbGlrZSBldmVyeW9uZSBlbHNlIGRvZXMuIFRoaXMKICAgIG1lYW5zIHRoYXQgd2UgY2FuIGhhbmRsZSBtdWNoIGxhcmdlciAuZGF0YSBhbmQgLmJzcyB0aGFuIHdlIHVzZWQgdG8uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZGY1NDhkM2MzZTJiYmM0MDI1ODcxMzE2Nzg1OWZmYzJjZTk5YTkwMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gTm92IDE5IDE4OjA2OjUzIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogUmVzb3VyY2UgbWFuYWdlbWVudCByZXdyaXRlCgogICAgUmV3cml0ZSB0aGUgcmVzb3VyY2UgbWFuYWdlbWVudCBjb2RlIChpLmUuIEkvTyBtZW1vcnksIGNsb2NrIGdhdGluZywKICAgIGdwaW8pIHNvIGl0IGRvZXNuJ3QgZGVwZW5kIG9uIGFueSBnbG9iYWwgc3RhdGUuIFRoaXMgaXMgbmVjZXNzYXJ5CiAgICBiZWNhdXNlIHRoaXMgY29kZSBpcyBoZWF2aWx5IHVzZWQgYmVmb3JlIHJlbG9jYXRpb24gdG8gUkFNLCBzbyB3ZQogICAgY2FuJ3Qgd3JpdGUgdG8gYW55IGdsb2JhbCB2YXJpYWJsZXMuCgogICAgQXMgYW4gYWRkZWQgYm9udXMsIHRoaXMgbWFrZXMgdS1ib290J3MgbWVtb3J5IGZvb3RwcmludCBhIGJpdCBzbWFsbGVyLAogICAgYWx0aG91Z2ggc29tZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGxlZnQgb3V0OyBhbGwgY2xvY2tzIGFyZSBlbmFibGVkCiAgICBhbGwgdGhlIHRpbWUsIGFuZCB0aGVyZSdzIG5vIGNoZWNraW5nIGZvciBncGlvIGxpbmUgY29uZmxpY3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDAzZDFlMTM2NTc5NmNkMTVkMTcyNmU4YTUxZmQ4YjViZTUwYjJmZTkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxODowMToxMyAyMDA2ICswMTAwCgogICAgQVZSMzI6IENsZWFuIHVwIG1lbW9yeS1tYXAuaCBmb3IgYXQzMmFwNzAwMAoKICAgIENvbnZlcnQgc3BhY2VzIHRvIHRhYnMgKG11c3QgaGF2ZSBtaXNzZWQgdGhpcyBvbmUgbGFzdCB0aW1lIGFyb3VuZCksCiAgICBzb3J0IHRoZSBlbnRyaWVzIGJ5IGFkZHJlc3MgYW5kIGdyb3VwIHRoZW0gdG9nZXRoZXIgYnkgYnVzCiAgICBjb25uZWN0aXZpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMjhjNjk5ZWY2OWY0YjZjZGYyNTJlNDc0N2I3YjU5MDAyOGE4ODk4MQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjMyOjMxIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQnVpbGQgcG9zaXRpb24taW5kZXBlbmRlbnQgdS1ib290CgogICAgQWRkIC1mUElDIC1tbm8taW5pdC1nb3QgdG8gdGhlIGF2cjMyLXNwZWNpZmljIENGTEFHUyB0byBtYWtlIHUtYm9vdAogICAgcG9zaXRpb24gaW5kZXBlbmRlbnQuIFRoaXMgd2lsbCBtYWtlIHJlbG9jYXRpb24gYSBsb3QgZWFzaWVyLgoKICAgIC1tbm8taW5pdC1nb3QgbWVhbnMgdGhhdCBnY2Mgc2hvdWxkbid0IGVtaXQgY29kZSB0byBsb2FkIHRoZSBHT1QKICAgIGFkZHJlc3MgaW50byByNiBpbiBldmVyeSBmdW5jdGlvbiBwcm9sb2d1ZS4gV2UgZG8gaXQgb25jZSBhbmQgZm9yCiAgICBhbGwgaW4gdGhlIGVhcmx5IHN0YXJ0dXAgYXNzZW1ibHkgY29kZSwgc28gZW5hYmxpbmcgdGhpcyBvcHRpb24KICAgIG1ha2VzIHUtYm9vdCBhIGJpdCBmYXN0ZXIgYW5kIHNtYWxsZXIuCgogICAgVGhlIGFzc2VtYmx5IHBhcnRzIGhhdmUgYWx3YXlzIGJlZW4gcG9zaXRpb24taW5kZXBlbmRlbnQsIHNvIG5vIGNvZGUKICAgIGNoYW5nZXMgc2hvdWxkIGJlIG5lY2Vzc2FyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1Mzc0YjM2ZGU5MWQwMDZkMWRmOTUzNjI1OWZhOWY2NmIwMWFhM2FhCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTc6MjQ6MzEgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBVc2UgYXZyMzItbGludXgtIGNyb3NzLWNvbXBpbGF0aW9uIHByZWZpeCBieSBkZWZhdWx0CgogICAgSXQgZG9lc24ndCByZWFsbHkgbWF0dGVyIHdoaWNoIHRvb2xjaGFpbiB5b3UgdXNlIHRvIGNvbXBpbGUgdS1ib290LAogICAgYnV0IHRoZSBhdnIzMi1saW51eCBvbmUgaXMgcHJvYmFibHkgd2hhdCBtb3N0IHBlb3BsZSBoYXZlIGluc3RhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjODQxYmVlZGRlYmVjZTAwMzllNzI0ZmIyN2Y0ZDFhMzllZTFjNmI2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTc6MTU6MzAgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBTcGxpdCBzdGFydF91X2Jvb3QgaW50byBib2FyZF9pbml0X2YgYW5kIGJvYXJkX2luaXRfcgoKICAgIFNwbGl0IHRoZSBhdnIzMiBpbml0aWFsaXphdGlvbiBjb2RlIGludG8gYSBmdW5jdGlvbiB0byBydW4gYmVmb3JlCiAgICByZWxvY2F0aW9uLCBib2FyZF9pbml0X2YgYW5kIGEgZnVuY3Rpb24gdG8gcnVuIGFmdGVyIHJlbG9jYXRpb24sCiAgICBib2FyZF9pbml0X3IuIEZvciBub3csIGJvYXJkX2luaXRfZiBzaW1wbHkgY2FsbHMgYm9hcmRfaW5pdF9yCiAgICBhdCB0aGUgZW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDM3NDAzMDA1Y2ZlNmJiMTM5NjRkNDUwZjZhNDhhMGIwZjJmNzAxN2UKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBBcHIgMTQgMDU6MjY6NDggMjAwNyArMDIwMAoKICAgIFtGaXhdCVNldCB0aGUgTEVEIHN0YXR1cyByZWdpc3RlciBvbiB0aGUgVUMxMDEgZm9yIHRoZSBMWFQ5NzEgUEhZLgoJICAgIGNsZWFyIHRoZSBEaXNwbGF5IGFmdGVyIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDc4ODI3NTFjNzhiN2VjYWJmZDQ5YjBlZmY4ZGUyNzY2MWM3MWYxNmMKQXV0aG9yOiBEZW5pcyBQZXRlciA8ZC5wZXRlckBtcGwuY2g+CkRhdGU6CUZyaSBBcHIgMTMgMDk6MTM6MzMgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IGJ1Z3MgaW4gY21kX2lkZS5jIGFuZCBjbWRfc2NzaS5jCgogICAgRml4IGJ1ZyBpbnRyb2R1Y2VkIGJ5ICJGaXggZ2V0X3BhcnRpdGlvbl9pbmZvKCkgcGFyYW1ldGVyIGVycm9yIGluIGFsbAogICAgb3RoZXIgY2FsbHMiIGZyb20gMjAwNS0wMy0wNCBpbiBjbWRfaWRlLmMgYW5kIGNtZF9zY3NpLmMsIHdoaWNoIHByZXZlbnRlZAogICAgdG8gdXNlIGRpc2tib290IG9yIHNjc2lib290IGZvcm0gYW5vdGhlciBkZXZpY2UgdGhhbiAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERlbmlzIFBldGVyIDxkLnBldGVyQG1wbC5jaD4KCmNvbW1pdCAwYjk0NTA0ZDIyZTcwZjUzN2MxN2EwZDM4Yzg3ZWRiNmUzNzA5NzdkCkF1dGhvcjogR3JlZyBMb3BwIDxsb3BwQHBvYm94LmNvbT4KRGF0ZToJRnJpIEFwciAxMyAwODowMjoyNCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggdXNlIG9mICJ2b2lkICoiIGZvciBibG9jayBkZXYgcmVhZC93cml0ZSBidWZmZXIgcG9pbnRlcnMKCiAgICBTaWduZWQtb2YtYnk6IEdyZWcgTG9wcCA8bG9wcEBwb2JveC5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDZmYmYyNjFmOGRmMjk0ZTU4OWNmYWRlYmViZTU0NjhlM2MwZjI5ZTkKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciA5IDE5OjA4OjI1IDIwMDcgKzA4MDAKCiAgICBGaXggdHdvIGJ1Z3MgZm9yIE1QQzgzeHggRERSMiBjb250cm9sbGVyIFNQRCBJbml0CgogICAgVGhlcmUgYXJlIGEgZmV3IGJ1Z3MgaW4gdGhlIGNwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCiAgICB0aGUgZmlyc3QgYnVnIGlzIHRoYXQgdGhlIHBpY29zX3RvX2NsayByb3V0aW5lIGludHJvZHVjZXMgYSBodWdlCiAgICByb3VuZGluZyBlcnJvciBpbiA4M3h4LgogICAgdGhlIHNlY29uZCBidWcgaXMgdGhhdCB0aGUgbW9kZSByZWdpc3RlciB3cml0ZSByZWNvdmVyeSBmaWVsZCBpcwogICAgdFdSLTEsIG5vdCB0V1IgPj4gMS4KCmNvbW1pdCAyYWQzYWJhMDFkMzdiNzJlN2M5NTdiMDdlMTAyZmNjZDY0ZmU2ZDEzCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVRodSBBcHIgMTIgMTQ6MTU6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGkyYyBkaXZpc29yIGNhbGN1bGFyaW9uIGZvciBQUEM0eHgKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNoYW5nZXMgdGhlIGkyY19pbml0KC4uLikgZnVuY3Rpb24gdG8gdXNlIHRoZSBmdW5jdGlvbgogICAgZ2V0X09QQl9mcmVxKCkgcmF0aGVyIHRoYW4gY2FsY3VsYXRpbmcgdGhlIE9QQiBzcGVlZCBieQogICAgc3lzSW5mby5mcmVxUExCL3N5c0luZm8ucGxsT3BiRGl2LiBUaGUgZ2V0X09QQl9mcmVxKCkgZnVuY3Rpb24gaXMKICAgIHNwZWNpZmljIHBlciBwcm9jZXNzb3IuIFRoZSBwcmlvciBtZXRob2Qgd2FzIG5vdCBhbmQgc28gd2FzIGNhbGN1bGF0aW5nCiAgICB0aGUgd3Jvbmcgc3BlZWQgZm9yIHNvbWUgUFBDNHh4IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmM5YmE5MTkzNzVkYjk3N2FhYWQ5MTQ2YmYzMjBjN2FmZDA3YWU3YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTEgMTc6MjU6MDEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUxMDU2ZGQ5ODYzZTZhMWJjMzYzYWZiYmUxNzc1YzU4Y2Q5Njc0MTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDExIDE3OjIyOjU1IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgZm9yIFNDMyBib2FyZAoKICAgICogTWFrZSBJREUgdGltZW91dCBjb25maWd1cmFibGUgdGhyb3VnaCBpZGVfcmVzZXRfdGltZW91dCB2YXJpYWJsZS4KICAgICogVXNlIE5ld2xpbmUgYXMgInBhc3N3b3JkIiBzdHJpbmcKICAgICogVXNlIGp1c3QgYSBzaW5nbGUgcGFydGl0aW9uIGluIE5BTkQgZmxhc2gKCmNvbW1pdCAzZDk4Yjg1ODAwYzgwZGM2ODIyN2M4ZjEwYmY1YzkzNDU2ZDZkMDU0CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAyMiAxMjozNzozMCAyMDA3IC0wNjAwCgogICAgQWRkIFBJWElTIEZQR0Egc3VwcG9ydCBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgTW92ZSB0aGUgODY0MUhQQ04ncyBQSVhJUyBjb2RlIHRvIHRoZSBuZXcgZGlyZWN0b3J5CiAgICBib2FyZC9mcmVlc2NhbGUvY29tbW9uLyBhcyBpdCB3aWxsIGJlIHNoYXJlZCBieQogICAgZnV0dXJlIGJvYXJkcyBub3QgaW4gdGhlIHNhbWUgcHJvY2Vzc29yIGZhbWlseS4KCiAgICBXcml0ZSBhICJwaXhpc19yZXNldCIgY29tbWFuZCB0aGF0IHV0aWxpemVzIHRoZSBGUEdBCiAgICByZXNldCBzZXF1ZW5jZXIgdG8gc3VwcG9ydCBhbHRlcm5hdGUgc29mdC1yZXNldCBvcHRpb25zCiAgICBzdWNoIGFzIHVzaW5nIHRoZSAiYWx0ZXJuYXRlIiBmbGFzaCBiYW5rLCBlbmFibGluZwogICAgdGhlIHdhdGNoIGRvZywgb3IgY2hvb3NpbmcgZGlmZmVyZW50IENQVSBmcmVxdWVuY2llcy4KCiAgICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHBpeGlzX3Jlc2V0IHRvIFJFQURNRS5tcGM4NjQxaHBjbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGRiYmQ0MGM1ODM0OWI2NGY0M2ZkMzNkYmI1Y2EwYWRiNjdkNjQyCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIEFwciA2IDE0OjE5OjQzIDIwMDcgLTA0MDAKCiAgICBNb3ZlZCBmZHQgY29tbWFuZCBzdXBwb3J0IGNvZGUgdG8gZmR0X3N1cHBvcnQuYwoKICAgIC4uLmluIHByZXBhcmF0aW9uIGZvciBpbXByb3ZpbmcgdGhlIGJvb3RtIGNvbW1hbmQncyBoYW5kbGluZyBvZiBmZHQgYmxvYnMuCiAgICBBbHNvIGNsZWFuZWQgdXAgc29tZSBjb2Rpbmcgc2xvcHBpbmVzcy4KCmNvbW1pdCA2Njc5ZjkyOTk1MzRlNDg4YTE3MWE5YmI4ZjliYjg5MWRlMjQ3YWFiCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIEFwciA2IDE0OjE3OjE0IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IE1ha2UgZmR0X2NoZWNrX2hlYWRlcigpIHB1YmxpYwoKICAgIENoYW5nZWQgX2ZkdF9jaGVja19oZWFkZXIoKSB0byBmZHRfY2hlY2tfaGVhZGVyKCkgYW5kIG1hZGUgaXQgcGFydCBvZgogICAgdGhlIGludGVyZmFjZSAtIGl0IGlzIGEgdXNlZnVsIHJvdXRpbmUuCgogICAgQWxzbyBkaWQgc29tZSBhc3RoZXRpY3MgY2xlYW51cCB0byB0aGUgaW5jbHVkZSBmaWxlcyAoaGVhZGVycykuCgpjb21taXQgYzA3MDdjZTY1Njc3NjUwYjVjZWFiMDUwMGVlNTBhZTUxNjhhZmVmMgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozNDowNiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gS2lsbCBvZmYgYSBidW5jaCBvZiBjb21tb24gbG9jYWwgcHJvdG90eXBlcwoKY29tbWl0IDdiN2UzMGFhNjRiYjY2NTdhMWJmZDMyZmRiZGJmZWI1NjFlNmE0OGQKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzM6MDQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBkeW5hbWljIENQTEIgZ2VuZXJhdGlvbiBpc3N1ZQoKY29tbWl0IDA0NDVlM2EyNjQyNTFkNzViMWJlNDVlZjcxM2M3MDcyNmEyOTUyZjAKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzE6NDcgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbmlvciBjbGVhbnVwCgpjb21taXQgMTU1ZmQ3NjY1NzM5ODEwOTBlNjM4YjQ5M2Q1ODU3NTYyMTUxODYyZQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMToxOCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IGNvcHlyaWdodCBhbmQgdXBkYXRlIGxpY2Vuc2UKCmNvbW1pdCA5ZmQ0MzdiYmQ3NWQyODJmODk5ZTFkYTUwYmUyMGEyYmYzODQ1MGJjCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMwOjI1IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBBZGQgQkY1MzcgRU1BQyBkcml2ZXIgaW5pdGlhbGl6YXRpb24KCmNvbW1pdCA4ODkyNTZlODYwNGUwYzY4ZGIxZDg2NmQ3MjA4OTRkZmZlZGU5ZGY2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI5OjU1IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjYWxsIHJlYWwgdGhlIHN5c3RlbSBzeW5jaHJvbml6ZSBpbnN0cnVjdGlvbgoKY29tbWl0IGUwZGYxYzkyMWI3ODgyODk1NjRlNGMxZWU3MTIwYTZhOWNkM2FiMDUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6Mjk6MTcgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIHJlbW92ZSBhc20vcGFnZS5oIGFzIHdlIGRvIG5vdCBhY3R1YWxseSB1c2Uvd2FudCBhbnkgb2YgdGhlc2UgZGVmaW5pdGlvbnMgbm9yIGRvZXMgYW55IG90aGVyIGFyY2ggaW5jbHVkZSBpdAoKY29tbWl0IGRmZWVhYjJjZDY4MGRmMDQ3ZTY4ZTcyM2IyNDZhZGY2ZjMzYmI1NTYKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6Mjg6MzQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdOiBmaXggZmxhc2ggdW5hbGlnbmVkIGNvcHkgaXNzdWUKCmNvbW1pdCA0NDNmZWI3NDA1ODRlNDA2ZWZhMjAzYWY5MDlmZTI5MjY2MDhlOGQ1CkF1dGhvcjogSWdvciBNYXJuYXQgPG1hcm55QHJhbWJsZXIucnU+CkRhdGU6CVdlZCBNYXIgMjEgMDk6NTU6MDEgMjAwNyArMDMwMAoKICAgIFVwZGF0ZSB1c2FnZSBvZiAnbmMnIGluIFJFQURNRS5OZXRDb25zb2xlCgogICAgQWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgdXNhZ2Ugb2YgTmV0Q29uc29sZSBvbiBzeXN0ZW1zIHdoZXJlIHRoZSAtbCBhbmQgLXAKICAgIHN3aXRjaGVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCgogICAgU2lnbmVkLW9mZi1ieTogSWdvciBNYXJuYXQgPG1hcm55QHJhbWJsZXIucnU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAzMWM5OGE4ODIyODAyMWIzMTRjODllYmI4MTA0ZmI2NDczZGE0NDcxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciA0IDAyOjA5OjMwIDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA5NGFiZDdjMDU4M2ViZTAxZTc5OWIyNWY0NTEyMDFkZWVhYWI1NTBkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciA0IDAxOjQ5OjE1IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjbGVhbnVwLgoKY29tbWl0IDgyMmFmMzUxYWQyYmFiYzdkOTkwMzMzNjFhNWZjYWNkMzBmNmJjNzgKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CVR1ZSBBcHIgMyAxNDoyNzoxOCAyMDA3ICswMjAwCgogICAgU3VwcG9ydCBmb3IgdGhlIFBoaWxpcHMgSVNQMTE2eCBIQ0QgKEhvc3QgQ29udHJvbGxlciBEcml2ZXIpCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgoKY29tbWl0IGVkZjU4NTFiZTZjMTdjMDMxZDRmNzFkZDViMGExMjA0MGI3YzUwYzgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgQXByIDMgMTQ6Mjc6MDggMjAwNyArMDIwMAoKICAgIFVTQjogY2xlYW51cCBtb25haGFucyB1c2Igc3VwcG9ydC4gUmVtb3ZlIGRlYWQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGE2NWM1NzY4ZTU1Mzc1MzBiZDE3ODBhZjNkM2ZkZGMzMTEzYTE2M2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMiAxMDowOTozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgU3lzQUNFIGFkZHJlc3Mgb24gS2F0bWFpCgogICAgV2l0aCB0aGlzIG5ldyBiYXNlIGFkZHJlc3Mgb2YgdGhlIFhpbGlueCBTeXN0ZW1BQ0UgY29udHJvbGxlcgogICAgdGhlIExpbnV4IGRyaXZlciB3aWxsIGJlIGVhc2llciB0byBhZGFwdCwgc2luY2UgaXQgY2FuIG5vdyBiZQogICAgbWFwcGVkIHZpYSB0aGUgIm5vcm1hbCIgaW9yZW1hcCgpIGNhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlYTAzYzRlOGMzYTIxY2U0M2QzZmFmNDhhNmU2ZDQ3NGM4YmRmNzMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDE0OjMwOjUzIDIwMDcgLTA0MDAKCiAgICBGaXggc29tZSBtaW5vciB3aGl0ZXNwYWNlIHZpb2xhdGlvbnMuCgpjb21taXQgMjEzYmY4YzgyMmRlOGVlY2FmNjk4NjA2ODQ0NjljZGFiYTJlOWU2YQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MjM6NTEgMjAwNyAtMDQwMAoKICAgIEFkZCBhIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZSAoZmR0KSBjb21tYW5kICgyIG9mIDIpCgogICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZXhpc3RpbmcgY29kZSB0byBzdXBwb3J0IHRoZSBuZXcgZmR0IGNvbW1hbmQuCgpjb21taXQgNzgxZTA5ZWU2ZTNlM2UzOTJhYjM2MmMxZjBlZjEwNjhhZGM3NmUzZQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MjI6MTAgMjAwNyAtMDQwMAoKICAgIEFkZCBhIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZSAoZmR0KSBjb21tYW5kICgxIG9mIDIpCgogICAgVGhlIGZkdCBjb21tYW5kIHVzZXMgRGF2aWQgR2lic29uJ3MgbGliZmR0IGxpYnJhcnkgdG8gbWFuaXB1bGF0ZSBhcyB3ZWxsCiAgICBhcyBwcmludCB0aGUgZmxhdHRlbmVkIGRldmljZSB0cmVlLiAgVGhpcyBwYXRjaCBpcyB0aGUgbmV3IGNvbW1hbmQsCiAgICB0aGUgc2Vjb25kIHBhcnQgaXMgdGhlIG1vZGlmaWNhdGlvbnMgdG8gdGhlIGV4aXN0aW5nIGNvZGUuCgpjb21taXQgM2FmMGQ1ODdkOTNlMGJlNWY5NmUxYjMwZmE0MWU2NjJmOGIwODAzZQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MTM6NDMgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogRW5oYW5jZWQgYW5kIHB1Ymxpc2hlZCBmZHRfbmV4dF90YWcoKQoKICAgIEVuaGFuY2VkIHRoZSBmb3JtZXJseSBwcml2YXRlIGZ1bmN0aW9uIF9mZHRfbmV4dF90YWcoKSB0byBhbGxvdyBzdGVwcGluZwogICAgICB0aHJvdWdoIHRoZSB0cmVlLCB1c2VkIHRvIHByb2R1Y2UgYSBodW1hbi1yZWFkYWJsZSBkdW1wLCBhbmQgbWFkZQogICAgICBpdCBwYXJ0IG9mIHRoZSBwdWJsaXNoZWQgaW50ZXJmYWNlLgogICAgQWxzbyBhZGRlZCBzb21lIGNvbW1lbnRzLgoKY29tbWl0IGZhM2E3NGNlYzczZGZkMDZhNWFlMzVhOWEzMzY4MjAwMjczYWFhNzEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjA1OjM5IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEN1c3RvbWl6YXRpb25zIGZvciB1c2UgYnkgdS1ib290LgoKICAgIENoYW5nZXMgdG8gRGF2aWQgR2lic29uJ3Mgb3JpZ2luYWwgc291cmNlIHRvIGZpdCBpbnRvIHUtYm9vdCdzCiAgICBlbnZpcm9ubWVudC4gIE5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcy4KCmNvbW1pdCAzNTc0ODE3N2M2NGE0YTgzYTAwMDU3ZTkzYmIzM2U0MDI3OGEyYTk2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjowMDo1NiAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBJbXBvcnQgbGliZmR0IHNvdXJjZSAoMiBvZiAyKQoKICAgIFRoaXMgYWRkcyB0aGUgYXBwbGljYWJsZSBsaWJmZHQgc291cmNlIGZpbGVzICh1bm1vZGlmaWVkKSBhbmQgYSBSRUFETUUKICAgIHRvIGV4cGxhaW4gd2hlcmUgdGhlIHNvdXJjZSBjYW1lIGZyb20uCgpjb21taXQgN2NkNWRhMGZlODc3ZTcxNzFhNGNkZDQ0ODgwYmNlNzgzMTMyODcxYQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTE6NTk6NTkgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogSW1wb3J0IGxpYmZkdCBzb3VyY2UgKDEgb2YgMikKCiAgICBUaGlzIGFkZHMgdGhlIGFwcGxpY2FibGUgbGliZmR0IHNvdXJjZSBmaWxlcyAodW5tb2RpZmllZCkgYW5kIGEgUkVBRE1FCiAgICB0byBleHBsYWluIHdoZXJlIHRoZSBzb3VyY2UgY2FtZSBmcm9tLgoKY29tbWl0IGRhNmViYzFiYzA4MmNiZTNiNmJiZGUwNzljYWZlMDlmN2ViYmFkNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMTM6MTY6MjMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEthdG1haSBib290c3RyYXAgY29tbWFuZAoKICAgIE5vdyB0aGUgRERSMiBmcmVxdWVuY3kgaXMgYWxzbyAyKlBMQiBmcmVxdWVuY3kgd2hlbiAxNjZNSHogUExCCiAgICBpcyBzZWxlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2FiZWU3NTZhNjUzMjk4NjcyOTQ3N2MzY2MxZWExNmVmODUxN2FkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAxMzoxNTowNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBBZGRpdGlvbmFsIFJBTSBpbmZvcm1hdGlvbiBpcyBub3cgcHJpbnRlZCB1cG9uIHBvd2VydXAsIGxpa2UKICAgIEREUjIgZnJlcXVlbmN5IGFuZCBDQVMgbGF0ZW5jeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjA3MjM4MDM0MzFhYzc1Y2FkMDg1NjkwNzg5ZTQzM2Q1YWI5MTc0ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0ODozNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgWXVjY2EgY29uZmlnIGZpbGUgdG8gc3VwcG9ydCBFQ0MKCiAgICBXaXRoIHRoZSB1cGRhdGVkIDQ0eCBERFIyIGRyaXZlciB0aGUgWXVjY2EgYm9hcmQgbm93IHN1cHBvcnRzCiAgICBFQ0MgZ2VuZXJhdGlvbiBhbmQgY2hlY2tpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5MGU1NzMwYzY3NGIyMGQ3MDhiNzgzYTJjNWZmZDcyMDhmODM4NzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMDg6NDc6MzQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4ICJib290c3RyYXAiIGNvbW1hbmQgZm9yIEthdG1haSBib2FyZAoKICAgIFRoZSBib2FyZCBzcGVjaWZpYyAiYm9vdHN0cmFwIiBjb21tYW5kIGlzIG5vdyBmaXhlZCBhbmQgY2FuCiAgICBiZSB1c2VkIGZvciB0aGUgQU1DQyBLYXRtYWkgYm9hcmQgdG8gY29uZmlndXJlIGRpZmZlcmVudAogICAgQ1BVL1BMQi9PUEIgZnJlcXVlbmNpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk0ZjU0NzAzYzNhNzc2ZWMyM2U0MjdjYTJhMTZlMGE3OWE1ZDUwYzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMDg6NDY6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgRml4IGEgYnVnIGluIHRoZSBhdXRvIGNhbGlicmF0aW9uIHJvdXRpbmUuIFRoaXMgZHJpdmVyIG5vdyBydW5zCiAgICBtb3JlIHJlbGlhYmxlIHdpdGggdGhlIHRlc3RlZCBtb2R1bGVzLiBJdCdzIGFsc28gdGVzdGVkIHdpdGgKICAgIDE2N01IeiBQTEIgZnJlcXVlbmN5ICg2NjdNSHogRERSMiBmcmVxdWVuY3kpIG9uIHRoZSBLYXRtYWkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0MmNkMDk3YmUxZTdhZmZlODJmNDJhYjNkYTIyMDk1OWE2OTllNjQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMzAgMjI6NTI6MDkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQ2xlYW4gaW5jbHVkZSBkZXBlbmRlbmNlCgpjb21taXQgNmY5MzQyMTBmYjI5M2ZkZTJjZmI0MjUxYzZkOTZmZGM1OGI2YTkwNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAzMCAyMjo0Mjo0NSAyMDA3ICswMjAwCgogICAgW0NMRUFOXSBSZW1vdmUgaW5lZmZpY2llbnQgU3V6YWt1IGNvZGUKCmNvbW1pdCA0MzBmMWIwZjlhNjcwYzJmMTNlYWE1MmU2NmExMGRiOTZkZDM2NDdkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI4IDE1OjAzOjE2IDIwMDcgKzAyMDAKCiAgICBNZXJnZSBzb21lIEFNQ0MgbWFrZSB0YXJnZXRzIHRvIGtlZXAgdGhlIHRvcC1sZXZlbCBNYWtlZmlsZSBzbWFsbGVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjNzVjOWQ4NDMwN2E5ZjFjYmUxZmYwYzRkODkzN2VlM2E5NjQ3NWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjggMTQ6NTI6MTIgMjAwNyArMDIwMAoKICAgIGkyYzogRW5hYmxlICJvbGQiIGkyYyBjb21tYW5kcyBldmVuIHdoZW4gQ09ORklHX0kyQ19DTURfVFJFRSBpcyBkZWZpbmVkCgogICAgVGhlICJvbGQiIGkyYyBjb21tYW5kcyAoaXByb2JlLCBpbWQuLi4pIGFyZSBub3cgY29tcGlsZWQgaW4gYWdhaW4sCiAgICBldmVuIHdoZW4gdGhlIGkyYyBjb21tYW5kIHRyZWUgaXMgZW5hYmxlZCB2aWEgdGhlIENPTkZJR19JMkNfQ01EX1RSRUUKICAgIGNvbmZpZyBvcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkYTA0OGFkZjQ0YmVhNWUzYjk0MDgwZDAyOTAzYzJlM2ZlN2FhNGEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXIgMjcgMDA6MzI6MTYgMjAwNyArMDIwMAoKICAgIFBBVENIOiBSZXNvbHZlIEdQTCBsaWNlbnNlIHByb2JsZW0KCmNvbW1pdCBhZTAwYmI0YjI5NDRkYzY0YTQ4NWVkNzJhMTk3NTRiMTFhZjdjMjIzCkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gTWFyIDI2IDEyOjAzOjM2IDIwMDcgKzAyMDAKCiAgICBQWEE6IHB4YTI3eCBVU0IgT0hDSSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgYWU3OWY2MDY3N2MyMDgzMjY1MzU2NDdkY2JkNWMzZWM0MGRiY2IwYgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMjYgMTE6MjE6MDUgMjAwNyArMDIwMAoKICAgIFVTQjogcmVtb3ZlIHRoZSBTM0MyNFgwX21lcmdlICNkZWZpbmUsIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIHdoaWxlCiAgICBtZXJnaW5nIE9IQ0kgZHJpdmVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDE3OTgwNDk1MjJmNTk0MDEzYWVhMjk0NTdkNDY3OTQyOThjNmFlMTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPHJvb3RAbW9uc3RyLmV1PgpEYXRlOglNb24gTWFyIDI2IDAxOjM5OjA3IDIwMDcgKzAyMDAKCiAgICBTdXBwb3J0IGZvciBYVVBWMlAgYm9hcmQKICAgIFJlc2V0IHN1cHBvcnQKICAgIEJTUCBhdXRvY29uZmlnIHN1cHBvcnQKCmNvbW1pdCAwZDk3NGQ1Mjk3MzQ5NTA0YTJkZGZhMDkzMTRiZTU3M2I1ZGYzMjBhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjU3OjA5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCA0eHggR1BJTyBmdW5jdGlvbnMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc29tZSA0eHggR1BJTyBmdW5jdGlvbnMuIEl0IGFsc28gbW92ZXMgc29tZSBvZiB0aGUKICAgIGNvbW1vbiBjb2RlIGFuZCBkZWZpbmVzIGludG8gYSBjb21tb24gNHh4IEdQSU8gaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkYjYzMzY1OGJiZjM2NmFiMGM4ZGFkN2EwNzI3ZTFmYjJhZTZiMTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjQgMTU6NTU6NTggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU21hbGwgU2VxdW9pYSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNjYjg2ZjNlNDBkMmE4MDM1NjE3NzQzNGE5OWY3NWJjOGJhYTljYWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjQgMTU6NDU6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2xlYW4gdXAgNDBFWi9BY2FkaWEgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIGFsbCB0aGUgb3BlbiBpc3N1ZSBvZiB0aGUgcHJlbGltaW5hcnkKICAgIEFjYWRpYSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZWIxZGY4MzUxOTFkOGNlNGI4MWQ1YWY0MGZhOGUwZmJlNzhlOTk3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyAxMiAxMTowMjoyMCAyMDA2IC0wNjAwCgogICAgRml4IDg2NDFIUENOIHByb2JsZW0gd2l0aCBsZCB2ZXJzaW9uIDIuMTYKCiAgICAoRG90IG91dHNpZGUgc2VjdGlvbnMgcHJvYmxlbSkuCgogICAgVGhpcyBmaXggaXMgaW4gdGhlIHNwaXJpdCBvZiA4MDdkNWQ3MzE5MzMwZTMzNmFiMzRhNTYyM2M1ZTBkNzNiODdkNTQwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTk2NGE0ZGQwZDRlZjVhMDM3ZmViYWViZjFhYTQ5NGIxYTcyOTkxYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAxMDozNTo1NSAyMDA2IC0wNjAwCgogICAgU2V0IFJldiAyLnggODZ4eCBQSUMgaW4gbWl4ZWQgbW9kZS4KCiAgICBQcmV2ZW50IGZhbHNlIGludGVycnVwdCBmcm9tIGhhbmdpbmcgTGludXggYXMgTVNSW0VFXSBpcyBzZXQKICAgIHRvIGVuYWJsZSBpbnRlcnJ1cHRzIGJ5IGNoYW5naW5nIHRoZSBQSUMgb3V0IG9mIHRoZSBkZWZhdWx0CiAgICBwYXNzIHRocm91Z2ggbW9kZSBpbnRvIG1peGVkIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWE1OGE3M2NlYjBhNDA1OWM0MmVmNjRjZWRiYzFhNDVlMGFhYTAwZQpBdXRob3I6IEphc29uIEppbiA8amFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAxMDozMjozNSAyMDA2IC0wNjAwCgogICAgQWRkIGZsYXNoIGNtZCBmdW5jdGlvbiB0byA4NjQxSFBDTiByYW1ib290CgogICAgQWxzbyBmaXhlcyBzb21lIGNvbW1tYW5kIGZvciA4NjQxIEhQQ04gcmFtYm9vdCBjYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8amFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJjY2NlYWNjMDRiMDA5ZDkyM2FmYjdjMjYxODliYTJmOGEyYTVkNDYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzQ6MTQgMjAwNiAtMDYwMAoKICAgIEFkZCBzdXBwb3J0IGZvciA4NjQxIFJldiAyIHNpbGljb24uCgogICAgV2l0aG91dCB0aGlzIHBhdGNoLCBJIGFtIHVuYWJsZSB0byBnZXQgdG8gdGhlIHByb21wdCBvbiByZXYgMiBzaWxpY29uLgogICAgT25seSBzZXQgZGRyaW9vdmNyIGZvciByZXYxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDRiYTQ2NGI5OTAwMWY4YmQxYzQ1NmExZTlkNTk3MjYyNTJmNzA3YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjIgMDA6MTM6MTIgMjAwNyArMDEwMAoKICAgIENvZGUgY2xlYW51cCAvIHJlLWluc2VydCBwcmV2aW91cyBDb3B5cmlnaHQgZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhOGRmZTA4MzU5YTFiNjYzNDE4YjJmYWExZGExZDdiY2UzNGQzMDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDIzOjI2OjE1IDIwMDcgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBlNjYxNWVjZjRlYWY0ZGQ1MjY5NjkzNGFlZDhmNWM2NDc0Y2ZkMjg2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDE0OjU0OjI5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBmaWxlIG1vZGUgb2YgaW5jbHVkZS9jb25maWdzL2FjYWRpYS5oCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ1ZjQ2MTRjOTM1MGQ5MzMzZTU3NTEwMGZiMjUwYWFiNzc0ZDAyNTgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDE0OjQxOjQ2IDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBmaXggc21hbGwgY2xvY2sgcm91dGluZyBidWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDE2YzBjYzFjODIwODFhNDkzYWI4N2M1MTk4MGIyODMzNmNlMWJjZTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTM6Mzk6NTcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEFNQ0MgQWNhZGlhICg0MDVFWikgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBuZXcgQU1DQyBBY2FkaWEgZXZhbCBib2FyZC4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgQWNhZGlhLzQwNUVaIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBiZXRhIHN0YWdlLgogICAgU3RpbGwgbG90J3Mgb2YgY2xlYW51cCBuZWVkZWQgYnV0IHdlIG5lZWQgYSBwcmVsaW1pbmFyeSByZWxlYXNlIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTAxYmQyMThiMDBhZjczNDk5MzMxYTFhNzAxNjI1YTg1MmNkMjg2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxMzozODo1OSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgQU1DQyBQUEM0MDVFWiBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBuZXcgQU1DQyA0MDVFWiBQUEMuIEl0IGlzIGluCiAgICBwcmVwYXJhdGlvbiBmb3IgdGhlIEFNQ0MgQWNhZGlhIGJvYXJkIHN1cHBvcnQuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIEFjYWRpYS80MDVFWiBzdXBwb3J0IGlzIHN0aWxsIGluIGEgYmV0YSBzdGFnZS4KICAgIFN0aWxsIGxvdCdzIG9mIGNsZWFudXAgbmVlZGVkIGJ1dCB3ZSBuZWVkIGEgcHJlbGltaW5hcnkgcmVsZWFzZSBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3ZTgyY2IyZTI4NGE4OTNkZjY2OTNmMmExMzM3YWIyYzQ3YmY2YTEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMDg6NDU6MTcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVFFNODI3MjogZG9udCBjaGFuZ2UgdGhlIGJpdHMgZ2l2ZW4gZnJvbSB0aGUgSFJDVwoJCSAgICAgZm9yIHRoZSBTSVVNQ1IgYW5kIEJDUiBSZWdpc3Rlci4KCQkgICAgIEZpeCB0aGUgY2FsY3VsYXRpb24gZm9yIHRoZSBFRXByb20gU2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDY1NDU4OTg3M2RiYWZjZjEwNGRmZjEzM2NlMGQwM2E0NTA2ZTljYzMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUdWUgTWFyIDIwIDE4OjE2OjI0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBBZGQgQkY1NjEgRVpLSVQgYm9hcmQgc3VwcG9ydAoKY29tbWl0IGE2MTU0ZmQxY2ZkMDIwZjZkYTg1MjdlMDM2NWIxMDIwYTExYTcxZDAKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDE5IDIyOjU1OjU4IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5vciBjbGVhbnVwCgpjb21taXQgMzg5YjZiYjUwZjc0NWJmNTAzOGNlMDMwMzAwZDhhODUxMmU5NmY3OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMTkgMTM6MTA6MDggMjAwNyArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZWQgUE9TVCBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhlNzA5YmJiMjYzNmI1NjcwYThmMmI1NzVlMTM4ZWIxZjU1NzczZjYKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDE5IDAxOjI2OjExIDIwMDcgKzA4MDAKCiAgICBbUEFUQ0hdIEFkZCBmbGFzaCBjaGlwIE0yOVczMjBFVC9CIHN1cHBvcnQKCmNvbW1pdCAyNmJmN2RlY2EzNjRhNWIzM2YzOWU4ZjE0ZGRkM2Y0MDgxMzQ1MDE1CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAwMToyNDo1MiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTM3IHN0YW1wIGJvYXJkIHN1cHBvcnQKCmNvbW1pdCA4NDIzZTVlMzFhNzIzNWQwNWE0ODI2MjczMTVmYjExZDQ5YzE3YmQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDE2IDIxOjExOjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVzZSBkeW5hbWljIFNEUkFNIFRMQiBzZXR1cCBvbiBBTUNDIEVib255IGV2YWwgYm9hcmQKCiAgICBEZWZpbmUgQ09ORklHX1BST0dfU0RSQU1fVExCIHNvIHRoYXQgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUKICAgIEREUiBtZW1vcnkgYXJlIGR5bmFtaWNhbGx5IHByb2dyYW1tZWQgbWF0Y2hpbmcgdGhlIHRvdGFsIHNpemUKICAgIG9mIHRoZSBlcXVpcHBlZCBtZW1vcnkgKERJTU0gbW9kdWxlcykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc2ZDE0NjZmOTE4Yjg4MWNkYTJkMjU5MjU0NzYxZTczODg1MDkzYzIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE1hciAxMyAxMzozODowNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSByZW5hbWVkIGVudmlyb25tZW50IHZhcmlhYmxlICdhZGRjb24nIHRvICdhZGRjb25zJyBmb3IgUENJNDA1CgkgICAgYm9hcmRzIGluIHRlcm1zIG9mIHVuaWZpY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGE3MDkwYjk5M2QzZDRkMjIyMWFjM2YzM2U2Y2IxZDFiMmNjYzZiZjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDEzIDE2OjA1OjU1IDIwMDcgKzAxMDAKCiAgICBNYWtlIFNDMyBib2FyZCBidWlsZCB3aXRoICdtYWtlIE89JzsgdXNlICdhZGRjb25zJyBjb25zaXN0ZW50bHkKICAgIChTQzMgYW5kIEp1cGl0ZXIgdXNlZCB0byB1c2UgJ2FkZGNvbicgaW5zdGVhZCkuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayB3ZEBkZW54LmRlCgpjb21taXQgODUwMmUzMGEyOGU0OTJjNzU2ZWEyZDdkZjBhY2UwMjYzODhmY2U0YgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMyAwOTo0MDo1OSAyMDA3ICswMTAwCgogICAgW1BBVENIXSB1cGRhdGUgYm9hcmQgY29uZmlnIGZvciBqdXBpdGVyIEJvYXJkOgoJICAgIGFkZGVkIEh1c2ggU2hlbGwsCgkJICBDT05GSUdfQ01ETElORV9FRElUSU5HLAoJCSAgQ0ZHX0VOVl9BRERSX1JFRFVORCBhY3RpdmF0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwZDkzZGUxMTQ0OTM5MGE1OTg0YjAyMzZjMzYxMmU1MGY2ZGJiN2U4CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAxMjoxMTo1NSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWlub3IgY2xlYW51cAoKY29tbWl0IGJmYTU3NTRhNTg0NzdhYzkxN2QyMTUyN2NkMGYwNzlkODdjZjE4OGUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDAxOjQyOjA2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggQlVJTERfRElSIG9wdGlvbiBvZiBNQUtFQUxMIGJ1aWxkaW5nIGlzc3VlCgpjb21taXQgODQ0MGJiMTQ1ODFhMjk0Mzc1YzM0YjkxYjQyNTEyZjk3NTNkMTEzMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMDA6MjU6MTQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIGNvZGUgY2xlYW51cAoKY29tbWl0IGNmYzY3MTE2YTcwNmZkMThiOGY2YTljMTFhMTY3NTNjNTYyNmQ2ODkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBNYXIgMTEgMTM6NDg6MjQgMjAwNyArMDEwMAoKICAgIFtNaWNyb2JsYXplXVtQQVRDSF0gcGFydCAyCiAgICB0aW1lciBzdXBwb3J0CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlciBzdXBwb3J0CiAgICBmbGFzaCBzdXBwb3J0CiAgICBldGhlcm5ldCBzdXBwb3J0CiAgICBjYWNoZSBzdXBwb3J0CiAgICBib2FyZCBpbmZvcm1hdGlvbiBzdXBwb3J0CiAgICBlbnYgc3VwcG9ydAogICAgYm9vdGluZyBpbWFnZSBzdXBwb3J0CgogICAgYWRkaW5nIHN1cHBvcnQgZm9yIFhpbGlueCBNTDQwMQoKY29tbWl0IDc2MzE2YTMxOGRlOTFmNjE4NGU3YzIyYTEwZTAyZDI3NWFkZTI0NDEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBNYXIgMTEgMTM6NDI6NTggMjAwNyArMDEwMAoKICAgIFtNaWNyb2JsYXplXVtQQVRDSF0KICAgIHRpbWVyIHN1cHBvcnQKICAgIGludGVycnVwdCBjb250cm9sbGVyIHN1cHBvcnQKICAgIGZsYXNoIHN1cHBvcnQKICAgIGV0aGVybmV0IHN1cHBvcnQKICAgIGNhY2hlIHN1cHBvcnQKICAgIGJvYXJkIGluZm9ybWF0aW9uIHN1cHBvcnQKICAgIGVudiBzdXBwb3J0CiAgICBib290aW5nIGltYWdlIHN1cHBvcnQKCiAgICBhZGRpbmcgc3VwcG9ydCBmb3IgWGlsaW54IE1MNDAxCgpjb21taXQgOGRiMTNkNjMxNTc4MTFjODM5ZDE1YTMxM2Q5ZjJkMmY1ZmQxMGFmMwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVNhdCBNYXIgMTAgMjM6NDk6MjkgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIGNvZGUgY2xlYW51cAoKY29tbWl0IGVmMjZhMDhmZWY5MjhiN2JjMTFhZTJjMTA5ZTYzOGRjM2EwMTZkOTEKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglGcmkgTWFyIDkgMTM6NDA6NTYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0gtMi8yXSBDb21tb24gZmlsZXMgY2hhbmdlZCB0byBzdXBwb3J0IGJmNTMzIHBsYXRmb3JtCgpjb21taXQgM2YwNjA2YWQwYjU2MzlmN2YyMjg0OGZlNWI0NTc0ZTc1NGQwNDcwZgpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CUZyaSBNYXIgOSAxMzozODo0NCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVBBVENILTEvMl06IFJlbW92ZSBvYnNvbGV0ZSBibGFja2ZpbiBwb3J0IGFuZCBhZGQgYmY1MzMgcGxhdGZvcm0gc3VwcG9ydAoKY29tbWl0IDk5MjQyM2FiNDNjMmJjZjZiNzA0ODUzYmQwMGFmNzc0NTA5MTVlMjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAyMzowMDowOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggZmlsZSBtb2RlIG9mIHNlcXVvaWEuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjkyZjYxMzU1NjgwMGY3NDgzNjY2ZGIwOWQ5YTIzN2FkOTExZDRhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAyMjo1Mjo1MSAyMDA3ICswMTAwCgogICAgTWlub3IgY2xlYW51cC4KCmNvbW1pdCA4Y2UxNmY1NWM3Yjk3NTJhZjNkOGJlZDg0NTIxYWVjNTMzN2UyZGUxCkF1dGhvcjogSm9obiBPdGtlbiBqb2huQHNvZnRhZHZhbmNlcy5jb20gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDA5OjM5OjQ4IDIwMDcgLTA2MDAKCiAgICBwcGM0eHg6IENsZWFyIFNlcXVvaWEvUmFpbmllciBzZWN1cml0eSBlbmdpbmUgcmVzZXQgYml0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gT3RrZW4gam9obkBzb2Z0YWR2YW5jZXMuY29tIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+Cgpjb21taXQgNjUwYTMzMGRkMjUzOTEzMGM4YzMyNDc5MWUyZjlmNzVhZWQ3OWQ0ZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjY6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBhZGQgc29tZSBtb3JlIFNQRCBlZXByb20gZGVjb2RpbmcgZm9yIEREUjIgbW9kdWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQ5ZmM3MDMyNDY4NDBjNGIyNjhkZWJmNDhjMzM0YmE1NWM1OTdkYzAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjI1OjQ3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogZGlzYWJsZSBmbGF0IGkyYyBjb21tYW5kcyB3aGVuIENPTkZJR19JMkNfQ01EX1RSRUUgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGNlZDViOTAyOTA0MzM5NzM0OGNkYzg4ZTBjZmNkNmIxZjYyOTI1MGIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjIzOjExIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogYWxsb3cgQ09ORklHX0kyQ19DTURfVFJFRSB3aXRob3V0IENPTkZJR19JMkNfTVVMVElfQlVTCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDhhOGVhNWM0NzZkMzcwMDZmYzdmODViN2Y5MDMxNDI3OTVjOGIxNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjA6MzIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBBZGQgbWlzc2luZyBkZWZhdWx0IENGR19TUERfQlVTX05VTQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGY5ZmM2YTU4NTJhNjMzNTg0MDg4MmZhMjExMTkyNTAxMGVlYTFhYmUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIE1hciA3IDE1OjMyOjAxIDIwMDcgKzAxMDAKCiAgICBmaXhlZCBldGhlcm5ldCBwaHkgY29uZmlndXJhdGlvbiBmb3IgcGx1NDA1IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNzY5MTA0YzkzNTY1OTRkZWIyMDkyZTIwNGEzOWMwNWIzMzIwMmQ2YwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjE6NDk6MjcgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNsZWFudXAKCmNvbW1pdCAwMGNkYjRjZTVlMWI0MjI0OGU3ZTY1MjJhZDBkYTM0MjFiOTg4YWZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MTM6MTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgTHVhbiA0NDBTUCBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGUgQU1DQyBMdWFuIG5vdyB1c2VzIHRoZSBjb21tb24gNDQwU1AoZSkgRERSIFNQRCBjb2RlIGZvciBERFIKICAgIGluaXRpdGlhbGl6aXRpb24uIFRoaXMgaW5jbHVkZXMgRERSIGF1dG8gY2FsaWJyYXRpb24gYW5kIHN1cHBvcnQKICAgIGZvciBkaWZmZXJlbnQgRElNTSBtb2R1bGVzLCBpbnN0ZWFkIG9mIHRoZSBmaXhlZCBzZXR1cCB1c2VkIGluCiAgICB0aGUgZWFybGllciB2ZXJzaW9uLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmFibGVzIHRoZSBjYWNoZSBpbiBGTEFTSCBmb3IgdGhlIHN0YXJ0dXAKICAgIHBoYXNlIG9mIFUtQm9vdCAod2hpbGUgcnVubmluZyBmcm9tIEZMQVNIKS4gQWZ0ZXIgcmVsb2NhdGluZyB0bwogICAgU0RSQU0gdGhlIGNhY2hlIGlzIGRpc2FibGVkIGFnYWluLiBUaGlzIHdpbGwgc3BlZWQgdXAgdGhlIGJvb3QKICAgIHByb2Nlc3MsIGVzcGVjaWFsbHkgdGhlIFNEUkFNIHNldHVwLCBzaW5jZSB0aGVyZSBhcmUgc29tZSBsb29wcwogICAgZm9yIG1lbW9yeSB0ZXN0aW5nIChhdXRvIGNhbGlicmF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmY1ZGY0NzM1MTkxMGEyOTM2Yzc3NDFjZjExMTg1NTgyOTIwMDk0MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjEwOjE4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIFl1Y2NhIDQ0MFNQZSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGUgQU1DQyBZdWNjYSBub3cgdXNlcyB0aGUgY29tbW9uIDQ0MFNQKGUpIEREUiBTUEQgY29kZSBmb3IgRERSCiAgICBpbml0aXRpYWxpeml0aW9uLiBUaGlzIGluY2x1ZGVzIEREUiBhdXRvIGNhbGlicmF0aW9uIGFuZCBzdXBwb3J0CiAgICBmb3IgZGlmZmVyZW50IERJTU0gbW9kdWxlcywgaW5zdGVhZCBvZiB0aGUgZml4ZWQgc2V0dXAgdXNlZCBpbgogICAgdGhlIGVhcmxpZXIgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjcyMWE2OGE5ZWE5MWYxZTQ5NDY0OWNlNjhiMjU3NzI2MWY1NzhlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjA3OjE4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFNtYWxsIEFNQ0MgS2F0bWFpIDQ0MFNQZSB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGYyOTQ0OTc0NzliMWRjYTZkZDg2MzE4YjJhOTEyZjcyZmVkZTBkZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjA2OjA5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NDBTUC80NDBTUGUgRERSIFNQRCBzZXR1cCBjb2RlIHRvIHN1cHBvcnQgNDQwU1AKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODM4NTMxNzhiZDM2YmNhNmYwZjhmMTMzMTQ3NjYyMGM4NGE1ODdmYwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNyAxMjoxNDo1MCAyMDA3IC0wNjAwCgogICAgbmV0IC0gU3VwcG9ydCBwaW5nIHJlcGx5IHdoZW4gcHJvY2Vzc2luZyBuZXQtbG9vcAoKICAgIEFkZCBJQ01QX0VDSE9fUkVRVUVTVCBwYWNrZXQgc3VwcG9ydCBieSByZXNwb25kaW5nIHdpdGggYSBJQ01QX0VDSE9fUkVQTFkuCgogICAgVGhpcyBwZXJtaXRzIHRoZSBwaW5nIGNvbW1hbmQgdG8gdGVzdCB0aGUgcGh5IGludGVyZmFjZSB3aGVuIHRoZSBwaHkKICAgIGlzIHB1dCBpbiBsb29wYmFjayBtb2RlICh0eXBpY2FsbHkgYnkgc2V0dGluZyByZWdpc3RlciAwIGJpdCAxNCkuCgogICAgSXQgYWxzbyBhbGxvd3MgdGhlIHBvcnQgdG8gcmVzcG9uZCB0byBhbiBleHRlcm5hbCBwaW5nIHdoZW4gdS1ib290IGlzCiAgICBwcm9jZXNzaW5nIHNvbWUgb3RoZXIgbmV0IGNvbW1hbmQgKHN1Y2ggYXMgdGZ0cCkuICBUaGlzIGlzIHVzZWZ1bCB3aGVuCiAgICB0ZnRwIGFwcGVhcnMgdG8gaGFuZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgZmExYWVmMTViY2Q0NzczNjY4N2JlMWFmNTQ0NTA2ZTkwZmJhNTQ1ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjQzOjAwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVzZSBkeW5hbWljIFNEUkFNIFRMQiBzZXR1cCBvbiBBTUNDIE9jb3RlYSBldmFsIGJvYXJkCgogICAgRGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQiBzbyB0aGF0IHRoZSBUTEIgZW50cmllcyBmb3IgdGhlCiAgICBERFIgbWVtb3J5IGFyZSBkeW5hbWljYWxseSBwcm9ncmFtbWVkIG1hdGNoaW5nIHRoZSB0b3RhbCBzaXplCiAgICBvZiB0aGUgZXF1aXBwZWQgbWVtb3J5IChESU1NIG1vZHVsZXMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMmViZTY5NjgxODkzOWUyYjk3NDYyOGJlOWM5MjFlYTNmZTlkZTEzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6Mzk6MzYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IEFNQ0MgNDR4IFNQRCBTRFJBTSBpbml0IGNvZGUgdG8gc3VwcG9ydCAyIERJTU0ncwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHRoYXQgb2NjdXJzIHdoZW4gMiBESU1NJ3MgYXJlCiAgICB1c2VkLiBUaGlzIHByb2JsZW0gd2FzIGZpcnN0IHNwb3R0ZWQgYW5kIGZpeGVkIGJ5IEdlcmFsZCBKYWNrc29uCiAgICA8Z2VyYWxkLmphY2tzb25AcmVhb25peHNlY3VyaXR5LmNvbT4gYnV0IHRoaXMgcGF0Y2ggZml4ZXMgdGhlCiAgICBwcm9ibGVtIGluIGEgbGl0dGxlIG1vcmUgY2xldmVyIHdheS4KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyB0aGUgbmljZSBmdW5jdGlvbmFsaXR5IHRvIGR5bmFtaWNhbGx5CiAgICBjcmVhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgU0RSQU0gKHRsYi5jKS4gU28gd2Ugc2hvdWxkCiAgICBuZXZlciBydW4gaW50byBzdWNoIHByb2JsZW1zIHdpdGggd3JvbmcgKHRvbyBzaG9ydCkgVExCCiAgICBpbml0aWFsaXphdGlvbiBhZ2FpbiBvbiB0aGVzZSBwbGF0Zm9ybXMuCgogICAgQXMgdGhpcyBmZWF0dXJlIGlzIG5ldyB0byB0aGUgIm9sZCIgNDR4IFNQRCBERFIgZHJpdmVyLCBpdAogICAgaGFzIHRvIGJlIGVuYWJsZWQgdmlhIHRoZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgZGVmaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzOTIxODQzMzk4MzQxN2I5ZGYwODc5NzZhNzllM2Y4MGRkNWU4M2Q2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjMzOjQ0IDIwMDcgKzAxMDAKCiAgICBVQzEwMTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgOGQ3ZTI3MzIyMjFiYzJkNjRkZjE0ZjcwMGM2NGMyM2UwYTRjM2RjZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6MTk6NDYgMjAwNyArMDEwMAoKICAgIEhNSTEwMDE6IGZpeCBidWlsZCBlcnJvciwgY2xlYW51cCBjb21waWxlciB3YXJuaW5ncy4KCmNvbW1pdCBhZDViYjQ1MWFkZTU1MmM0NGJlZjkxMTlkOTA3OTI5ZWJjMmMxMjZmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNiAxODowODo0MyAyMDA3ICswMTAwCgogICAgUmVzdHJ1Y3R1cmUgUE9TVCBkaXJlY3RvcnkgdG8gc3VwcG9ydCBvZiBvdGhlciBDUFVzLCBib2FyZHMsIGV0Yy4KCmNvbW1pdCBhNTI4NGVmZDEyNTk2NzY3NWIyZTljNmVmN2I5NTgzMjI2OGFkMzYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNiAxODowMTo0NyAyMDA3ICswMTAwCgogICAgRml4IEhPU1RBUkNIIGhhbmRsaW5nLgogICAgUGF0Y2ggYnkgTWlrZSBGcnlzaW5nZXIsIE1hciAwNSAyMDA3Cgpjb21taXQgMDdiN2IwMDM3YWFjNTEwMjkzOTkxN2Q3Y2JlNTYxYjVjMGQ1YWE0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDA3OjQ3OjA0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFNwZWVkIG9wdGltaXphdGlvbiBvZiBBTUNDIFNlcXVvaWEvUmFpbmllciBERFIyIHNldHVwCgogICAgQXMgcHJvdmlkZWQgYnkgdGhlIEFNQ0MgYXBwbGljYXRpb25zIHRlYW0sIHRoaXMgcGF0Y2ggb3B0aW1pemVzIHRoZQogICAgRERSMiBzZXR1cCBmb3IgMTY2TUh6IGJ1cyBzcGVlZC4gVGhlIHZhbHVlcyBwcm92aWRlZCBhcmUgYWxzbyBzYXZlCiAgICB0byB1c2Ugb24gYSAibm9ybWFsIiAxMzNNSHogUExCIGJ1cyBzeXN0ZW0uIE9ubHkgdGhlIHJlZnJlc2ggY291bnRlcgogICAgc2V0dXAgaGFzIHRvIGJlIGFkanVzdGVkIGFzIGRvbmUgaW4gdGhpcyBwYXRjaC4KCiAgICBGb3IgdGhpcyB0aGUgTkFORCBib290aW5nIHZlcnNpb24gaGFkIHRvIGluY2x1ZGUgdGhlICJzcGVlZC5jIiBmaWxlCiAgICBmcm9tIHRoZSBjcHUvcHBjNHh4IGRpcmVjdG9yeS4gV2l0aCB0aGlzIGFkZGl0aW9uIHRoZSBOQU5EIFNQTCBpbWFnZQogICAgd2lsbCBqdXN0IGZpdCBpbnRvIHRoZSA0a2J5dGVzIG9mIHByb2dyYW0gc3BhY2UuIGdjYyB2ZXJzaW9uIDQueCBhcwogICAgcHJvdmlkZWQgd2l0aCBFTERLIDQueCBpcyBuZWVkZWQgdG8gZ2VuZXJhdGUgdGhpcyBvcHRpbWl6ZWQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjQ3ZDNjM2VlZDBkYTFkMTUwNWVlY2FiZTBiMGZhYjk2Zjk1NmU2OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gTWFyIDQgMDE6MzY6MDUgMjAwNyArMDEwMAoKICAgIFNvbWUgY29kZSBjbGVhbnVwLgoKY29tbWl0IDc4MWUwMjZjOGFhNmY3ZTllYjVmMGU3MmNjNGQyMDk3MTIxOWIxNDgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI4IDAwOjAyOjA0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2Z0X2dldF9wcm9wJyB3YXJuaW5ncwoKICAgIChjaGVycnkgcGlja2VkIGZyb20gYzViZjEzYjAyMjg0YzMyMDRhNzIzNTY2YTliYWI3MDBlNTA1OTY1OSBjb21taXQpCgpjb21taXQgNGZlYWI0ZGU3YmZjMmNiMmZlZDM2YWQ3NmY5M2MzYTY5NjU5YmJhZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMjcgMjM6NTE6NDIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBjb25maWcgb2YgQXJiaXRlciwgU3lzdGVtIFByaW9yaXR5LCBhbmQgQ2xvY2sgTW9kZQoKICAgIFRoZSBjb25maWcgdmFsdWUgZm9yOgogICAgKiBDRkdfQUNSX1BJUEVfREVQCiAgICAqIENGR19BQ1JfUlBUQ05UCiAgICAqIENGR19TUENSX1RTRUMxRVAKICAgICogQ0ZHX1NQQ1JfVFNFQzJFUAogICAgKiBDRkdfU0NDUl9UU0VDMUNNCiAgICAqIENGR19TQ0NSX1RTRUMyQ00KCiAgICBXZXJlIG5vdCBiZWluZyB1c2VkIHdoZW4gc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgcmVnaXN0ZXIKCiAgICBBZGRlZDoKICAgICogQ0ZHX1NDQ1JfVVNCTVBIQ00KICAgICogQ0ZHX1NDQ1JfVVNCRFJDTQogICAgKiBDRkdfU0NDUl9QQ0lDTQogICAgKiBDRkdfU0NDUl9FTkNDTQoKICAgIFRvIGFsbG93IGZ1bGwgY29uZmlnIG9mIHRoZSBTQ0NSLgoKICAgIEFsc28gcmVtb3ZlZCByYW5kb20gQ0ZHX1NDQ1Igc2V0dGluZ3MgaW4gTVBDODM0OUVNRFMsIFRRTTgzNHgsIGFuZCBzYmM4MzQ5CiAgICB0aGF0IHdlcmUganVzdCBib2d1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ1MWIzY2YzNzFjZDQ0MTAzMDQ2MGVmMTlkMzZiMjkyNGMzNjFiMWEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRmViIDIyIDIwOjA2OjU3IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiB1cGRhdGUgW2xvY2FsLV1tYWMtYWRkcmVzcyBwcm9wZXJ0aWVzIG9uIFVFQyBiYXNlZCBkZXZpY2VzCgogICAgODM2MCBhbmQgODMyeCB3ZXJlbid0IHVwZGF0aW5nIHRoZWlyIFtsb2NhbC1dbWFjLWFkZHJlc3MKICAgIHByb3BlcnRpZXMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYxZjRmOTEyYWNiZTYwNzc2YzVlMDBkZjFlYzk0MDk0Y2U2NzI5NTcKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDEzIDEwOjQxOjQyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgdGhpcyBwYXRjaAogICAgdXBkYXRlcyBmdHBfY3B1X3NldHVwKCkgdG8gd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGlmIGl0IGV4aXN0cy4KICAgIFRoaXMgZnVuY3Rpb24gYWxyZWFkeSB1cGRhdGVzIGxvY2FsLW1hYy1hZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjJkNzFhNzFmNTdmZDVkMzhiMjdhYzM4NDhlNTBkNzkwMzYwYTU5OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMjcgMTg6NDE6MDggMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBjb21tYW5kIGxpbmUgZWRpdGluZyBieSBkZWZhdWx0Cgpjb21taXQgM2ZjMGJkMTU5MTAzYjUzNmUxYzU0YzZmNDQ1N2EwOWIzYWJhNjZjYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTk6NTA6NTMgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IERpc2FibGUgRzFUWENMSywgRzJUWENMSyBoL3cgYnVmZmVycwoKICAgIERpc2FibGUgRzFUWENMSywgRzJUWENMSyBoL3cgYnVmZmVycy4gVGhpcyBwYXRjaAogICAgZml4ZXMgYSBuZXR3b3JraW5nIHRpbWVvdXQgaXNzdWUgd2l0aCBNUEM4MzYwRUEgKFJldi4yKSBQQnMuCgogICAgVmVyaWZpZWQgb24gUmV2LiAxLjEsIFJldi4gMS4yLCBhbmQgUmV2LiAyLjAgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFbWlsaWFuIE1lZHZlIDxFbWlsaWFuLk1lZHZlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDYxODUzY2YyNDcyZTBiOGJjYmQxMzE0NjFhOTNkMWM0OWZmMGMxZgpBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE4OjI3OjE3IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgRERSMiBjb250cm9sbGVyIGZpeGVkL1NQRCBJbml0IGZvciBNUEM4M3h4CgogICAgVGhlIGNvZGUgc3VwcGx5IGZpeGVkIGFuZCBTUEQgaW5pdGlhbGl6YXRpb24gZm9yIE1QQzgzeHggRERSMiBDb250cm9sbGVyLgogICAgaXQgcGFzcyBERFIvRERSMiBjb21wbGlhbmNlIHRlc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFhpZSBYaWFvYm8gPFguWGllQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjExMGY0MGJkMTgwYzZiNTYwMjc2NTg5YmVlZGY3NTNlOTdjNDZjZQpBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE4OjI3OjA2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIGNwdSBzcGVjaWZpYyBjb2RlIGZvciBNUEM4MzYwRSByZXYyLjAgTURTCgogICAgTVBDODM2MEUgcmV2Mi4wIGhhdmUgbmV3IHNwcmlkcixhbmQgUFZSIHZhbHVlLAogICAgVGhlIE1EUyBib2FyZCBmb3IgTVBDODM2MEUgcmV2Mi4wIGhhcyAzMk0gYnl0ZXMgRmxhc2ggYW5kIDI1Nk0gRERSMiBESU1NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFhpZSBYaWFvYm8gPFguWGllQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGQxNzJjMGYwZDg1OTk4YTI1NmE5NWI3NDU5YTU0MDNhMzAzODBlZApBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE4OjI2OjQ0IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIGNwdSBhbmQgYm9hcmQgc3BlY2lmaWMgY29kZSBmb3IgTVBDODM0OUUgcmV2My4xIE1EUwoKICAgIE1QQzgzNDlFIHJldjMuMSBoYXZlIG5ldyBzcHJpZHIsYW5kIFBWUiB2YWx1ZSwKICAgIFRoZSBNRFMgYm9hcmQgZm9yIE1QQzgzNDlFIHJldjMuMSBoYXMgMzJNIGJ5dGVzIEZsYXNoIGFuZCAyNTZNIEREUjIgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvPFguWGllQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjZmNWY3MDllNWM4ZTQ1NjRjNGRmZWVjZmRmMjI3OTI0NGY5YzgzYgpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPGpvYWtpbS50amVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglXZWQgSmFuIDMxIDExOjA0OjE5IDIwMDcgKzAxMDAKCiAgICBtcGM4M3h4OiBGaXggZW1wdHkgaTJjIHJlYWRzL3dyaXRlcyBpbiBmc2xfaTJjLmMKCiAgICBGaXggZW1wdHkgaTJjIHJlYWRzL3dyaXRlcywgaTJjX3dyaXRlKDB4NTAsIDB4MDAsIDAsIE5VTEwsIDApCiAgICB3aGljaCBpcyB1c2VkIHRvIHNlIGlmIGFuIHNsYXZlIHdpbGwgQUNLIGFmdGVyIHJlY2VpdmluZyBpdHMgYWRkcmVzcy4KCiAgICBDb3JyZWN0IGkyYyBwcm9iaW5nIHRvIHVzZSB0aGlzIG1ldGhvZCBhcyB0aGUgb2xkIG1ldGhvZCBjb3VsZCB1cHNldAogICAgYSBzbGF2ZSBhcyBpdCB3cm90ZSBhIGRhdGEgYnl0ZSB0byBpdC4KCiAgICBBZGQgYSBzbWFsbCBkZWxheSBpbiBpMmNfaW5pdCgpIHRvIGxldCB0aGUgY29udHJvbGxlcgogICAgc2h1dGRvd24gYW55IG9uZ29pbmcgSTJDIGFjdGl2aXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IDdhNzhmMTQ4ZDZhNzI5OGU0ZmZhY2U2ODBkYzdlYWNkODc3YjFhYmEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMxIDE1OjU0OjI5IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFgtR1AKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFgtR1AsIGEgc3RyaXBwZWQtZG93biB2ZXJzaW9uIG9mIHRoZQogICAgTVBDODM0OUUtbUlUWC4gIEJvbnVzIGZlYXR1cmVzIGluY2x1ZGUgc3VwcG9ydCBmb3IgbG93LWJvb3QgKEJNUyBiaXQgaW4KICAgIEhSQ1cgaXMgMCkgZm9yIHRoZSBJVFggYW5kIGEgUkVBRE1FIGZvciB0aGUgSVRYIGFuZCB0aGUgSVRYLUdQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmFiMTY4MDdhZGFkMzUwZjYxODAyNDM1MGM2OTUwMTY1YzI0N2M3MgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzEgMTU6NTQ6MjAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IERlbGV0ZSBzZHJhbV9pbml0KCkgZm9yIE1QQzgzNDlFLW1JVFgKCiAgICBUaGVyZSBpcyBubyBTRFJBTSBvbiBhbnkgb2YgdGhlIDgzNDkgSVRYIHZhcmlhbnRzLCBzbyBmdW5jdGlvbiBzZHJhbV9pbml0KCkKICAgIG5ldmVyIGRvZXMgYW55dGhpbmcuICBUaGlzIHBhdGNoIGRlbGV0ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODdjODU2ZWI0MTFiOTM2NTkzN2QwZDRiOWMyMWU0NmFkYmUxYzE0CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxOSAxMDo0MzoyNiAyMDA3ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBMQVcxLzMgYnVnCgogICAgVGhlIHBhdGNoIHNvbHZlcyB0aGUgYWxpZ25tZW50IHByb2JsZW0gb2YgdGhlIGxvY2FsIGJ1cyBhY2Nlc3Mgd2luZG93cyB0bwogICAgcmVuZGVyIGFjY2Vzc2libGUgdGhlIG1lbW9yeSBiYW5rIGFuZCBQSFkgcmVnaXN0ZXJzIG9mIFVQQyAxIChzdGFydGluZyBhdAogICAgMHhmODAxIDAwMDApLiBXaGF0IHdlIGFjdHVhbGx5IGRpZCB3YXMgdG8gYWRqdXN0IHRoZSBzaXplcyBvZiB0aGUgYnVzCiAgICBhY2Nlc3Mgd2luZG93cyBzbyB0aGF0IHRoZSBiYXNlIGFkZHJlc3MgYWxpZ25tZW50IHJlcXVpcmVtZW50IHdvdWxkIGJlIG1ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBDaGVyZWppIE1hcmlhbiA8bWFyaWFuLmNoZXJlamlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyaWRpc2ggU2hsb21pIDxncmlkaXNoQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3YzRiMzk3ZGNlMjM2YTczMThiMzA0NjY3YmY4OWU1OWQwOGIxN2MKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjMxIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBkb24ndCBoYW5nIGlmIHdhdGNoZG9nIGNvbmZpZ3VyZWQgb24gODM2MCwgODMyeAoKICAgIGRvbid0IGhhbmcgaWYgd2F0Y2hkb2cgY29uZmlndXJlZCBvbiA4MzYwLCA4MzJ4CgogICAgVGhlIHdhdGNoZG9nIHByb2dyYW1taW5nIG1vZGVsIGlzIHRoZSBzYW1lIGFjcm9zcyBhbGwgODN4eCBkZXZpY2VzOwogICAgbWFrZSB0aGUgY29kZSByZWZsZWN0IHRoYXQuCgpjb21taXQgYjcwMDQ3NDc4NTcwZTM3MWNlNzIyM2JlMzQyY2U5OGFmZWEwZjdkNgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MjEgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHByb3RlY3QgbWVtY3B5IHRvIGJhZCBhZGRyZXNzIGlmIGEgbG9jYWwtbWFjLWFkZHJlc3MgaXMgbWlzc2luZyBmcm9tIGR0CgogICAgcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBsb2NhbC1tYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCmNvbW1pdCA2NzUyZWQwODhjNzVjMjZhODliNzBjNDZiNzMyNmE0Y2Q2MDE1ZjI5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNTowNCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogbWFrZSA4MzYwIGRlZmF1bHQgZW52aXJvbm1lbnQgZmR0IGJlIDgzNjAgKG5vdCA4MzQ5KQoKICAgIG1ha2UgODM2MCBkZWZhdWx0IGVudmlyb25tZW50IGZkdCBiZSA4MzYwIChub3QgODM0OSkKCmNvbW1pdCBhMjg4OTljOTEwMDI0YTAyMjYzMzFkZjA3MjA3YjEwMzhjMzAwYzkzCkF1dGhvcjogRW1pbGlhbiBNZWR2ZSA8RW1pbGlhbi5NZWR2ZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE0OjUwIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggYWx0ZXJuYXRpbmcgdHggZXJyb3IgLyB0eCBidWZmZXIgbm90IHJlYWR5IGJ1ZyBpbiBRRSBVRUMKCiAgICBUaGUgcHJvYmxlbSBpcyBub3QgZ2NjNCBidXQgdGhlIGNvZGUgaXRzZWxmLiBUaGUgQkRfU1RBVFVTKCkgbWFjcm8gY2FuJ3QKICAgIGJlIHVzZWQgZm9yIGJ1c3ktd2FpdGluZyBzaW5jZSBpdCBzdHJpcHMgdGhlICd2b2xhdGlsZScgcHJvcGVydHkgZnJvbQogICAgdGhlIGJkIHZhcmlhYmxlLiBnY2MzIHdhcyB3b3JraW5nIGJ5IHB1cmUgbHVjay4KCiAgICBUaGlzIGlzIGEgZm9sbG93IG9uIHBhdGNoIHRvICJGaXggdGhlIFVFQyBkcml2ZXIgYnVnIG9mIFFFIgoKY29tbWl0IDNlNzhhMzFjZmUzZDMwMjJmNDZmNjdlYjg4ZTEyODFkNWNjMmViODkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgSmFuIDMwIDE0OjA4OjMwIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIENPTkZJR19NUEM4MzQ5IGFuZCB1c2UgQ09ORklHX01QQzgzNFggaW5zdGVhZAoKICAgIFRoZSBjb2RlIHRoYXQgaXMgaWZkZWYnZCB3aXRoIENPTkZJR19NUEM4MzQ5IGlzIGFjdHVhbGx5IGFwcGxpY2FibGUgdG8gYWxsCiAgICBNUEM4MzRYIGNsYXNzIHByb2Nlc3NvcnMuICBDaGFuZ2UgdGhlIHByb3RlY3Rpb25zIGZyb20gQ09ORklHX01QQzgzNDkgdG8KICAgIENPTkZJR19NUEM4MzRYIHNvIHRoZXkgYXJlIG1vcmUgZ2VuZXJpYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFlMjQ2ZGM2YzE5MzdjMjkxMDE0ZWFkZDkwYjZkNDhjNDM4YzdjYjAKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDI1IDEzOjQwOjU1IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgTVBDODMyWEVNRFMgYW5kIHNiYzgzNDkgdG8gTUFLRUFMTAoKY29tbWl0IDRkZWNkODRlOGYwNDI3OWM1Y2ZmZjdmOGU5MDc0NjVlZjhkOGEzZmIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDI0IDE3OjE4OjM3IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBzb3J0IE1ha2VmaWxlIHRhcmdldHMKCiAgICByZW9yZGVyZWQgdGFyZ2V0cyBhbHBoYWJldGljYWxseQoKY29tbWl0IDkxZTI1NzY5NzcxYzExNjRlZDYzZmZjYTBhZGQ0OWY5MzRhZTMzNDMKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJVHVlIEphbiAxNiAxMTozODoxNCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogVS1Cb290IHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIgU0JDODM0OQoKICAgIEkndmUgcmVkb25lIHRoZSBTQkM4MzQ5IHN1cHBvcnQgdG8gbWF0Y2ggZ2l0LWN1cnJlbnQsIHdoaWNoCiAgICBpbmNvcnBvcmF0ZXMgYWxsIHRoZSBNUEM4MzR4IHVwZGF0ZXMgZnJvbSBGcmVlc2NhbGUgc2luY2UgdGhlIDEuMS42CiAgICByZWxlYXNlLCAgaW5jbHVkaW5nIHRoZSBERFIgY2hhbmdlcy4KCiAgICBJJ3ZlIGtlcHQgYWxsIHRoZSBTQkM4MzQ5IGZpbGVzIGFzIHBhcmFsbGVsIGFzIHBvc3NpYmxlIHRvIHRoZQogICAgTVBDODM0OUVNRFMgb25lcyBmb3IgZWFzZSBvZiBtYWludGVuYW5jZSBhbmQgdG8gYWxsb3cgZm9yIGVhc3kKICAgIGluc3BlY3Rpb24gb2Ygd2hhdCB3YXMgY2hhbmdlZCB0byBzdXBwb3J0IHRoaXMgYm9hcmQuICBIZW5jZSB0aGUgU0JDODM0OQogICAgVS1Cb290IGhhcyBGRFQgc3VwcG9ydCBhbmQgZXZlcnl0aGluZyBlbHNlIHRoYXQgdGhlIE1QQzgzNDlFTURTIGhhcy4KCiAgICBGb3J0dW5hdGVseSB0aGUgRnJlZXNjYWxlIHVwZGF0ZXMgYWRkZWQgc3VwcG9ydCBmb3IgYm9hcmRzIHVzaW5nIENTMCwKICAgIGJ1dCBJIGhhZCB0byBjaGFuZ2Ugc3BkX3NkcmFtLmMgdG8gYWxsb3cgZm9yIGJvYXJkIHNwZWNpZmljIHNldHRpbmdzIGZvcgogICAgdGhlIHNkcmFtX2Nsa19jbnRsIChpdCBpcy93YXMgaGFyZCBjb2RlZCB0byB6ZXJvLCBhbmQgdGhhdCByZW1haW5zIHRoZQogICAgZGVmYXVsdCBpZiB0aGUgYm9hcmQgZG9lc24ndCBzcGVjaWZ5IGEgdmFsdWUuKQoKICAgIEhvcGVmdWxseSB0aGlzIHNob3VsZCBiZSBtZXJnZWFibGUgYXMtaXMgYW5kIHJlcXVpcmUgbm8gd2hpdGVzcGFjZQogICAgY2xlYW51cHMgb3Igc2ltaWxhciwgYnV0IGlmIHNvbWV0aGluZyBkb2Vzbid0IG1lYXN1cmUgdXAgdGhlbiBsZXQgbWUKICAgIGtub3cgYW5kIEknbGwgZml4IGl0LgoKICAgIFRoYW5rcywKICAgIFBhdWwuCgpjb21taXQgMDUwMzFkYjQ1NmFiMjI3ZjNlMzc1MmYzN2I5YjgxMmI2NWJiODNhZApBdXRob3I6IFNhbSBTb25nIDxzYW1zb25nc2h1QHlhaG9vLmNvbS5jbj4KRGF0ZToJVGh1IERlYyAxNCAxOTowMzoyMSAyMDA2ICswODAwCgogICAgbXBjODN4eDogUmVtb3ZlIGEgcmVkdW5kYW50IHNlbWljb2xvbiBpbiBtcGM4MzQ5aXR4LmMKCiAgICBBIHJlZHVuZGFudCBzZW1pY29sb24gZXhpc3RlZCBpbiBtcGM4MzQ5aXR4LmMKICAgIHNob3VsZCBiZSByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbSBTb25nIDxzYW1zb25nc2h1QHlhaG9vLmNvbS5jbj4KCmNvbW1pdCBmMzVmMzU4MjQxYzU0OWJlM2Y3NWNmZTJlYWE2NDI5MTQyNzViN2JhCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxnZXJhbGQudmFuYmFyZW5AY29tY2FzdC5uZXQ+CkRhdGU6CVdlZCBEZWMgNiAyMToyMzo1NSAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogUHV0IHRoZSB2ZXJzaW9uIChhbmQgbWFnaWMpIGFmdGVyIHRoZSBIUkNXLgoKICAgIFB1dCB0aGUgdmVyc2lvbiAoYW5kIG1hZ2ljKSBhZnRlciB0aGUgSFJDVy4gIFRoaXMgcHV0cyBpdCBpbiBhIGZpeGVkCiAgICBsb2NhdGlvbiBpbiBmbGFzaCwgbm90IGF0IHRoZSBzdGFydCBvZiBmbGFzaCBidXQgYXMgY2xvc2UgYXMgd2UgY2FuIGdldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZXJyeSBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNDhhZWNkOTY5MTcxYTZlOTlhNTVmYWUwNDkzMzg1Nzc4N2Y5YTViZApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjE0OjUxIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIE1QQzgzMlhFTURTIGJvYXJkIHJlYWRtZQoKICAgIEFkZCB0aGUgTVBDODMyWEVNRFMgYm9hcmQgcmVhZG1lCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNGMzYWNhM2YxMzU4YjExM2QzMjE1YWRiNTQzM2IxNTZlOTlmNzJiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMjE6MTM6MTUgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODMyWEVNRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIERVQVJULCBFVEgzLzQgYW5kIFBDSSBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMDgwMzEzYzMyMzIyZTE1YWI1YTE4ZWI4OTZhMjUyODU4YzU3Mjg0CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMjE6MTE6NTggMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IHN0cmVhbWxpbmUgdGhlIDgzeHggaW1tciBoZWFkIGZpbGUKCiAgICBGb3IgYmV0dGVyIGZvcm1hdCBhbmQgc3R5bGUsIEkgc3RyZWFtbGluZWQgdGhlIDgzeHggaGVhZCBmaWxlcywKICAgIGluY2x1ZGluZyBpbW1hcF84M3h4LmggYW5kIG1wYzgzeHguaC4gSW4gdGhlIG9sZCBoZWFkIGZpbGVzLCAxKQogICAgZHVwbGljYXRlZCBtYWNybyBkZWZpbml0aW9uIGFwcGVhciBpbiB0aGUgYm90aCBmaWxlczsgMikgdGhlIHN0cnVjdHVyZQogICAgb2YgUUUgaW1tciBpcyBkdXBsaWNhdGVkIGluIHRoZSBpbW1hcF84M3h4LmggYW5kIGltbWFwX3FlLmg7IDMpIFRoZQogICAgbWFjcm8gZGVmaW5pdGlvbiBwdXQgaW5zaWRlIHRoZSBlYWNoIHN0cnVjdHVyZS4gU28sIEkgY2xlYW5lZCB1cCB0aGUKICAgIHN0cnVjdHVyZSBvZiBRRSBpbW1yIGZyb20gaW1tYXBfODN4eC5oLCBkZWxldGVkIHRoZSBkdXBsaWNhdGVkIHN0dWZmIGFuZAogICAgbW92ZWQgdGhlIG1hY3JvIGRlZmluaXRpb24gdG8gbXBjODN4eC5oLCBKdXN0IGxpa2UgTVBDODI2MC4KCiAgICBDSEFOR0VMT0cKCiAgICAqc3RyZWFtbGluZSB0aGUgODN4eCBpbW1yIGhlYWQgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRkMDI0OTJmNDNkYjU0MDhmNWFiOWY4MjNiMGJhNTc5NmUyOGVmMApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyA2IDExOjM4OjE3IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIFVFQyBkcml2ZXIgYnVnIG9mIFFFCgogICAgVGhlIHBhdGNoIHByZXZlbnRzIHRoZSBHQ0MgdG9vbCBjaGFpbiBmcm9tIHN0cmlwaW5nIHVzZWZ1bCBjb2RlIGZvcgogICAgb3B0aW1pemF0aW9uLiBJdCB3aWxsIG1ha2UgVUVDIGV0aGVybmV0IGRyaXZlciB3b3JrYWJsZSwgT3RoZXJ3aXNlIHRoZQogICAgVUVDIHdpbGwgZmFpbCBpbiB0eCB3aGVuIHlvdSBhcmUgdXNpbmcgZ2NjNC54LiBidXQgdGhlIGRyaXZlciBjYW4gd29yawogICAgd2hlbiB1c2luZyBnY2MzLjQuMy4KCiAgICBDSEFOR0VMT0cKCiAgICAqUHJldmVudCB0aGUgR0NDIGZyb20gc3RyaXBpbmcgY29kZSBmb3Igb3B0aW1pemF0aW9uLCBPdGhlcndpc2UgdGhlIFVFQwogICAgd2lsbCB0eCBmYWlsZWQgd2hlbiB5b3UgYXJlIHVzaW5nIGdjYzQueC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhNThlNGM5YTlhOTE3Y2U3OTVkZDE2ZDRlYzhkNTE1ZjlmN2FhMzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMSAyMToxMTozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBLYXRtYWkgNDQwU1BlIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgcmVjZW50bHkgYWRkZWQgS2F0bWFpIGJvYXJkIHN1cHBvcnQuIFRoZSBiaWdnZXN0CiAgICBjaGFuZ2UgaXMgdGhlIHN1cHBvcnQgb2YgRUNDIERJTU0gbW9kdWxlcyBpbiB0aGUgNDQwU1AoZSkgU1BEIEREUjIKICAgIGRyaXZlci4KCiAgICBQbGVhc2Ugbm90ZSwgdGhhdCBzdGlsbCBzb21lIHByb2JsZW1zIGFyZSBsZWZ0IHdpdGggc29tZSBtZW1vcnkKICAgIGNvbmZpZ3VyYXRpb25zLiBTZWUgdGhlIGRyaXZlciBmb3IgbW9yZSBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YzEyMDQ1YTNiMDZjNWI2Njc1ZDNmZTAyZmJjOWY1NDU5ODgxMjlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEgMDc6MDM6MjUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBBZGQgbWlzc2luZyBkZWZhdWx0IENGR19SVENfQlVTX05VTSAmIENGR19EVFRfQlVTX05VTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjY2JjNzAzNjY0OGU0NjU2OTdjYTI5OGJhNTFlMGU3NmRkYTM1MmEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBGZWIgMjggMDE6Mjg6NTMgMjAwNyArMDEwMAoKICAgIFNDMzogZml4IHR5cG8gaW4gZGVmYXVsdCBlbnZpcm9ubWVudAoKY29tbWl0IGUzNDQ1NjhiMWI0NmFmODVlYzMyZDgxNTU4NmY5MWJjMTE1ZDYyMjMKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgRmViIDI3IDIwOjE1OjMwIDIwMDcgKzAzMDAKCiAgICBNQ0MyMDA6IEZpeGVzIGZvciB1cGRhdGUgcHJvY2VkdXJlCgogICAgLSBmaXggbG9naWMgZXJyb3IgaW4gaW1hZ2UgdHlwZSBoYW5kbGluZwogICAgLSBtYWtlIHN1cmUgZmlsZSBzeXN0ZW0gaW1hZ2VzIChjcmFtZnMgZXRjLikgZ2V0IHN0b3JlZCBpbiBmbGFzaAogICAgICB3aXRoIGltYWdlIGhlYWRlciBzdHJpcHBlZCBzbyB0aGV5IGNhbiBiZSBtb3VudGVkIHRocm91Z2ggTVRECgpjb21taXQgNzQzNTcxMTQ1YjM3MTgyNzU3ZDRlNjg4YTc3ODYwYjM2ZWU3NzU3MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgRmViIDI3IDE0OjI2OjA0IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgNjM4ZGQxNDU4YmJkYzJhNTVkNGI5ZTI1YzVjNGUxZjgzOGE1ZGM3MgpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBGZWIgMjcgMTI6NDA6MTYgMjAwNyArMDMwMAoKICAgIE1DQzIwMCB1cGRhdGUgLSBhZGQgTENEIFByb2dyZXNzIEluZGljYXRvcgoKY29tbWl0IDZjN2NhYzhjNGZjZTBlYTJiZjhlMTVlZDg2NThkODc5NzQxNTViNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjIgMDc6NDM6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gZ2V0X2RldigpIG5vdyB1bmNvbmRpdGlvbmFsbHkgdXNlcyBtYW51YWwgcmVsb2NhdGlvbgoKICAgIFNpbmNlIHRoZSByZWxvY2F0aW9uIGZpeCBpcyBub3QgaW5jbHVkZWQgeWV0IGFuZCB3ZSdyZSBub3Qgc3VyZSBob3cKICAgIGl0IHdpbGwgYmUgYWRkZWQsIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjb2RlIHRoYXQgcmVxdWlyZWQgcmVsb2NhdGlvbgogICAgdG8gYmUgZml4ZWQgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODI3NGVjMGJkMDFkMmZlYjJjN2YwOTVlYmE3OGQ0MmVhMDA5Nzk4YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMiAwNzo0MDoyMyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDaGFuZ2Ugc3lzdGVtYWNlIGRyaXZlciB0byBzZWxlY3QgOCAmIDE2Yml0IG1vZGUKCiAgICBBcyBzdWdnZXN0ZWQgYnkgR3JhbnQgTGlrZWx5IHRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgWGlsaW54IFN5c3RlbUFDRQogICAgZHJpdmVyIHRvIHNlbGVjdCA4IG9yIDE2Yml0IG1vZGUgdXBvbiBzdGFydHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYTE5N2IyZmU0OWQ2ZmEwMzk3OGU2MGFmMjM5NGVmZTljNzBiNTI3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyMSAxNjo1MjozMSAyMDA3ICswMTAwCgogICAgW1BBVENIIHYzXSBBZGQgc3luYyB0byBlbnN1cmUgZmxhc2hfd3JpdGVfY21kIGlzIGZ1bGx5IGZpbmlzaGVkCgogICAgU29tZSBDUFVzIGxpa2UgUFBDLCBCTEFDS0ZJTiBuZWVkIHN5bmMoKSB0byBlbnN1cmUgY2ZpIGZsYXNoIHdyaXRlIGNvbW1hbmQKICAgIGlzIGZ1bGx5IGZpbmlzaGVkLiBUaGUgc3luYygpIGlzIGRlZmluZWQgaW4gZWFjaCBDUFUncyBpby5oIGZpbGUuIEZvcgogICAgdGhvc2UgQ1BVcyB3aGljaCBkbyBub3QgbmVlZCBzeW5jIGZvciBub3csIGEgZHVtbXkgc3luYygpIGlzIGRlZmluZWQgaW4KICAgIHRoZWlyIGlvLmggYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhMDQ5OTVjN2RjNjc3MjAxM2E5YTBkYzVjNzY3ZjE5MGM0MDI0NzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgMjEgMTM6NDQ6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IHByb2JsZW0gaW4gc3lzdGVtYWNlIGRyaXZlciAoYWNlX3dyaXRldyBpbnN0ZWFkIG9mIGFjZV93cml0ZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzUxYmI1NzEwN2Q3ODk3OGFlMDhlNjk3YzNkZWJhODE2ZjViZTA5MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoyMTo1NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggcmVsb2NhdGlvbiBwcm9ibGVtIHdpdGggIm5ldyIgZ2V0X2RldigpIGZ1bmN0aW9uCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSAibmV3IiBnZXRfZGV2KCkgZnVuY3Rpb24gZm9yIGJsb2NrIGRldmljZXMKICAgIGludHJvZHVjZWQgYnkgR3JhbnQgTGlrZWx5IHRvIGJlIHVzZWQgb24gc3lzdGVtcyB0aGF0IHN0aWxsIHN1ZmZlcgogICAgZnJvbSB0aGUgcmVsb2NhdGlvbiBwcm9ibGVtcyAobWFudWFsIHJlbG9jYXRpb24gbmVlZGUgYmVjYXVzZSBvZgogICAgcHJvYmxlbXMgd2l0aCBsaW5rZXIgc2NyaXB0KS4KCiAgICBIb3BlZnVsbHkgd2UgY2FuIHJlc29sdmUgdGhpcyByZWxvY2F0aW9uIGlzc3VlIHNvb24gZm9yIGFsbCBwbGF0Zm9ybQogICAgc28gd2UgZG9uJ3QgbmVlZCB0aGlzIGFkZGl0aW9uYWwgY29kZSBhbnltb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkOTNlMjIxMmY5NjI2NjhiM2RjZTA5MWZmNWVkYzMzZjIzNDdmZTM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEzOjE3OjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTeXN0ZW1BQ0UgZHJpdmVyIGZvciAxNmJpdCBhY2Nlc3MKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBwcm9ibGVtcyB3aGVuIHRoZSBYaWxpbnggU3lzdGVtQUNFIGRyaXZlcgogICAgaXMgdXNlZCB3aXRoIDE2Yml0IGFjY2VzcyBvbiBhbiBiaWcgZW5kaWFuIHBsYXRmb3JtIChsaWtlIHRoZQogICAgQU1DQyBLYXRtYWkpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NzRiYjdiODhmZTliNDY0OGUxMjg4YTM4N2FmMmUzMTAxNGE3MmYzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEzOjE1OjQwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFuIHVwIEthdG1haSAoNDQwU1BlKSBsaW5rZXIgc2NyaXB0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ3NDVhY2FhMWE2MDNiNjdmNmI5Yjc5NzAzNjVlYmFkZDdkNjU4NmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6NTc6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEthdG1haSAoNDQwU1BlKSBldmFsIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkYzAxOGVjZTEzZWZmYzY4OWU0NzQ3OWVhOWViZjFjOThhNTA3ZjUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6NTE6MjYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c3NlcyBmb3IgUlRDICYgRFRUCgogICAgVGhpcyBwYXRjaCBzd2l0Y2hlcyB0byB0aGUgZGVzaXJlZCBJMkMgYnVzIHdoZW4gdGhlIGRhdGUvZHR0CiAgICBjb21tYW5kcyBhcmUgY2FsbGVkLiBUaGlzIGNhbiBiZSBjb25maWd1cmVkIHVzaW5nIHRoZQogICAgQ0ZHX1JUQ19CVVNfTlVNIGFuZC9vciBDRkdfRFRUX0JVU19OVU0gZGVmaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDAzN2VkM2I2MzkyM2NmY2VjMjdmNzg0YTg5MDU3YzNjYmFiY2VkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo0MzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IEFkZCA0NDBTUChlKSBERFIyIFNQRCBESU1NIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEREUjIgY29udHJvbGxlciB1c2VkIG9uIHRoZQogICAgNDQwU1AgYW5kIDQ0MFNQZS4gSXQgaXMgdGVzdGVkIG9uIHRoZSBLYXRtYWkgKDQ0MFNQZSkgZXZhbAogICAgYm9hcmQgYW5kIHdvcmtzIGZpbmUgd2l0aCB0aGUgZm9sbG93aW5nIERJTU0gbW9kdWxlczoKCiAgICAtIENvcnNhaXIgQ00yWDUxMi01NDAwQzQgKDUxMk1CeXRlIHBlciBESU1NKQogICAgLSBLaW5nc3RvbiBWYWx1ZVJBTSBLVlI2NjdEMk41LzUxMiAoNTEyTUJ5dGUgcGVyIERJTU0pCiAgICAtIEtpbmdzdG9uIFZhbHVlUkFNIEtWUjY2N0QyTjVLMi8yRyAoMUdCeXRlIHBlciBESU1NKQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHRoZSBuaWNlIGZ1bmN0aW9uYWxpdHkgdG8gZHluYW1pY2FsbHkKICAgIGNyZWF0ZSB0aGUgVExCIGVudHJpZXMgZm9yIHRoZSBTRFJBTSAodGxiLmMpLiBTbyB3ZSBzaG91bGQKICAgIG5ldmVyIHJ1biBpbnRvIHN1Y2ggcHJvYmxlbXMgd2l0aCB3cm9uZyAodG9vIHNob3J0KSBUTEIKICAgIGluaXRpYWxpemF0aW9uIGFnYWluIG9uIHRoZXNlIHBsYXRmb3Jtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzZkODMwYzk4MzAzNzkwNDVmNWRhYTlmNTQyYWMxYzk5MGM3MDA2OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDozNTo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IFNwbGl0IDR4eCBTUEQgU0RSQU0gaW5pdCByb3V0aW5lcyBpbnRvIDIgZmlsZXMKCiAgICBTaW5jZSB0aGUgZXhpc3RpbmcgNHh4IFNQRCBTRFJBTSBpbml0aWFsaXphdGlvbiByb3V0aW5lcyBmb3IgdGhlCiAgICA0MDUgU0RSQU0gY29udHJvbGxlciBhbmQgdGhlIDQ0MCBERFIgY29udHJvbGxlciBkb24ndCBoYXZlIG11Y2ggaW4KICAgIGNvbW1vbiB0aGlzIHBhdGNoIHNwbGl0cyBib3RoIGRyaXZlcnMgaW50byBkaWZmZXJlbnQgZmlsZXMuCgogICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIDQ0MCBERFIyIGNvbnRyb2xsZXIgc3VwcG9ydCAoNDQwU1AvZSkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc5YjJkMGJiMmVhZTA5NjAyNDQ4ZjdhN2NiNTY1MzBkMmYzMWU2YzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6Mjc6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c3NlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzIG9uIHRoZSBQUEM0eHgKICAgIHBsYXRmb3Jtcy4gRGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTIGluIHRoZSBib2FyZCBjb25maWcgZmlsZQogICAgdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgoKICAgIEl0IGFsc28gbWVyZ2VzIHRoZSA0MDUgYW5kIDQ0MCBpMmMgaGVhZGVyIGZpbGVzIGludG8gb25lIGNvbW1vbgogICAgZmlsZSA0eHhfaTJjLmguCgogICAgQWxzbyB0aGUgNHh4IGkyYyByZXNldCBwcm9jZWR1cmUgaXMgcmV3b3JrZWQgc2luY2UgSSBleHBlcmllbmNlZAogICAgc29tZSBwcm9ibGVtcyB3aXRoIHRoZSBmaXJzdCBhY2Nlc3Mgb24gdGhlIDQ0MFNQZSBLYXRtYWkgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViODY3YTc2MjM4ZmIzOGU5NTJjMzc4NzFiMTZkMGQ3ZmQ2MWM5NWYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6NDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA5XzldIFVzZSAidm9pZCAqIiBub3QgInVuc2lnbmVkIGxvbmcgKiIgZm9yIGJsb2NrIGRldiByZWFkX3dyaXRlIGJ1ZmZlciBwb2ludGVycwoKICAgIEJsb2NrIGRldmljZSByZWFkL3dyaXRlIGlzIGFub255bW91cyBkYXRhOyB0aGVyZSBpcyBubyBuZWVkIHRvIHVzZSBhCiAgICB0eXBlZCBwb2ludGVyLiAgdm9pZCAqIGlzIGZpbmUuICBBbHNvIGFkZCBhIGhvb2sgZm9yIGJsb2NrX3JlYWQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDUzNzU4ZmEyMGU5MzVjYzg3ZWViMDUxOWVkMzY1ZGY3NTNhNmYyODkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MzggMjAwNyArMDEwMAoKICAgIFtQQVRDSCA4XzldIEFkZCBibG9ja193cml0ZSBob29rIHRvIGJsb2NrX2Rldl9kZXNjX3QKCiAgICBQcmVwYXJhdGlvbiBmb3IgZnV0dXJlIHBhdGNoZXMgd2hpY2ggc3VwcG9ydCBibG9jayBkZXZpY2Ugd3JpdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNDg1MmViZTZjYTk0NmE1MDk2NjdlYjY4YmU0MjAyNmY4MzdiZTc2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjMxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggN185XSBSZXBsYWNlIGFjZV9yZWFkd19hY2Vfd3JpdGViIGZ1bmN0aW9ucyB3aXRoIG1hY3JvcwoKICAgIFJlZ2lzdGVyIHJlYWQvd3JpdGUgZG9lcyBub3QgbmVlZCB0byBiZSB3cmFwcGVkIGluIGEgZnVsbCBmdW5jdGlvbi4gIFRoZQogICAgcGF0Y2ggcmVwbGFjZXMgdGhlbSB3aXRoIG1hY3Jvcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgM2E4Y2U5YWY2ZmNiNTc0NGE3ODUxYjQ0NDBjMDc2ODhhY2M0MDg0NApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNToyMyAyMDA3ICswMTAwCgogICAgW1BBVENIIDZfOV0gTW92ZSBjb21tb25fY21kX2FjZS5jIHRvIGRyaXZlcnNfc3lzdGVtYWNlLmMKCiAgICBUaGUgY29kZSBpbiB0aGlzIGZpbGUgaXMgbm90IGEgY29tbWFuZDsgaXQgaXMgYSBkZXZpY2UgZHJpdmVyLiAgUHV0IGl0IGluCiAgICB0aGUgY29ycmVjdCBwbGFjZS4JVGhlcmUgYXJlIHplcm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoaXMgcGF0Y2gsIGl0CiAgICBvbmx5IG1vdmVzIHRoZSBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5ODQ2MThmM2U3Nzk0Yzc4M2VjOGQxNTExZTc0YzZlZTJkNjliZmU0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjE2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNV85XSBXaGl0ZXNwYWNlIGZpeHVwIG9uIGNvbW1vbl9jbWRfYWNlLmMgKHVzaW5nIExpbmRlbnQpCgogICAgVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJhdGlvbiBvZiBhZGRpdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHN5c2FjZSBkcml2ZXIuCiAgICBNYXkgYXMgd2VsbCB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gZml4dXAgdGhlIGluY29uc2lzdGVudCB3aGl0ZXNwYWNlIHNpbmNlCiAgICB0aGlzIGZpbGUgaXMgYWJvdXQgdG8gdW5kZXJnbyBtYWpvciBjaGFuZ2VzIGFueXdheS4KCiAgICBUaGVyZSBhcmUgemVybyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaC4gIEl0IG9ubHkgY2xlYW5zIHVwIHRoZQogICAgdGhlIHdoaXRlc3BhY2UuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDgwYmE5ODFkOTQwNDcxZmU3ZTUzOWU2NGZhM2QyYmQ4MDAwMmJlZGEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA0XzRdIFJlbW92ZSBsb2NhbCBpbXBsZW1lbnRhdGlvbiBvZiBpc3ByaW50KCkgaW4gZnRfYnVpbGQuYwoKICAgIGlzcHJpbnQgaXMgYWxyZWFkeSBkZWZpbmVkIGluIGN0eXBlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzk1YzQyODBkNzUxY2EwNzhjMmZmNTgyMjhkMmYyYjQ0Y2NmMDYwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTowMCAyMDA3ICswMTAwCgogICAgW1BBVENIIDNfOV0gTW92ZSBidWZmZXIgcHJpbnQgY29kZSBmcm9tIG1kIGNvbW1hbmQgdG8gY29tbW9uIGZ1bmN0aW9uCgogICAgUHJpbnRpbmcgYSBidWZmZXIgaXMgYSBkYXJuIHVzZWZ1bCB0aGluZy4gIE1vdmUgdGhlIGJ1ZmZlciBwcmludCBjb2RlCiAgICBpbnRvIHByaW50X2J1ZmZlcigpIGluIGxpYl9nZW5lcmljLwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5OWIwZjBmZDNmYmYyNTcyYWUxYTc3MjNkZDkwY2ZmYzhlODUxMzBhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA0OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggMl80XSBVc2UgY29uZmlnLmgsIG5vdCB4cGFyYW1ldGVycy5oLCBmb3IgeGlsaW54IHRhcmdldHMKCiAgICBDaGFuZ2UgdGhlIHhpbGlueCBkZXZpY2UgZHJpdmVycyBhbmQgYm9hcmQgY29kZSB0byBpbmNsdWRlIGNvbmZpZy5oCiAgICBpbnN0ZWFkIG9mIHhwYXJhbWV0ZXJzLmggZGlyZWN0bHkuCWNvbmZpZy5oIGFsd2F5cyBpbmNsdWRlcyB0aGUKICAgIGNvcnJlY3QgeHBhcmFtZXRlcnMgZmlsZS4gIFRoaXMgY2hhbmdlIHJlZHVjZXMgdGhlIHBvc2liaWxpdHkgb2YKICAgIGluY2x1ZGluZyB0aGUgd3JvbmcgZmlsZSB3aGVuIGFkZGluZyBhIG5ldyB4aWxpbnggYm9hcmQgcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3MzVkZDk3YjFiMjBlNzc3ZDA1OWM3YjM4OWZlOWQ3MGNkM2Y4MGM3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA0OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggMV80XSBNZXJnZSBjb21tb24gZ2V0X2RldigpIHJvdXRpbmVzIGZvciBibG9jayBkZXZpY2VzCgogICAgRWFjaCBvZiB0aGUgZmlsZXN5c3RlbSBkcml2ZXJzIGR1cGxpY2F0ZSB0aGUgZ2V0X2RldiByb3V0aW5lLiAgVGhpcyBjaGFuZ2UKICAgIG1lcmdlcyB0aGVtIGludG8gYSBzaW5nbGUgZnVuY3Rpb24gaW4gcGFydC5jCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY1ZmNjM2MyMGI2NTU1NGU5OGExNjU1NDJjMzZlZTBjNjEwYTJkODEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxOSAyMzowOTo1MSAyMDA3ICswMTAwCgogICAgTUNDMjAwOiBTb2Z0d2FyZSBVcGRhdGVyOiBhbGxvdyBib3RoICJyYW1kaXNrIiBhbmQgImZpbGVzeXN0ZW0iIHR5cGVzCiAgICBhcyByb290IGZpbGUgc3lzdGVtIGltYWdlcy4KCmNvbW1pdCA0ODljNjk2YWU3MjExMjE4OTYxZDE1OWU0M2U3MjJkNzRjMzZmY2JjCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxNDozMDoyOCAyMDA3ICswMzAwCgogICAgTUNDMjAwOiBFeHRlbnNpb25zIHRvIFNvZnR3YXJlIFVwZGF0ZSBNZWNoYW5pc20KCiAgICBVcGRhdGUgLyBleHRlbmQgU29mdHdhcmUgVXBkYXRlIE1lY2hhbmlzbSBmb3IgTUNDMjAwIGJvYXJkOgoKICAgIC0gQWRkIHN1cHBvcnQgZm9yIHJvb3RmcyBpbWFnZSBhZGRlZC4gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcwogICAgICAicm9vdGZzX3N0IiBhbmQgInJvb3Rmc19uZCIgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQKICAgICAgdmFsdWVzIG9mIHRoZSBpbWFnZSBzdGFydCBhbmQgZW5kLgogICAgLSBSZW1vdmUgZXhjZXNzaXZlIGtleSBjaGVjayBjb2RlLgogICAgLSBDb2RlIGNsZWFudXAuCgpjb21taXQgNGJlMjNhMTJmMjNmMTM3MjYzNGVkYzMyMTUxMzdiMDk3NjhiNzk0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxOSAwODoyMzoxNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU2VxdW9pYSBFQkMgY29uZmlndXJhdGlvbiAoTk9SIEZMQVNIKQoKICAgIEFzIHNwb3R0ZWQgYnkgTWF0dGhpYXMgRnVjaHMsIHRoZSBSRUFEWSBpbnB1dCBzaG91bGQgbm90IGJlCiAgICBlbmFibGVkIGZvciB0aGUgTk9SIEZMQVNIIG9uIHRoZSBTZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNjA1ZTkwYmY2NzZkNDgxMjNhZmU1NzE5YTg0NmQyYjUyYjI0YWFjCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgRmViIDE2IDA3OjU3OjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBqdXBpdGVyIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDQ5N2QwMTJlNWJlMDE5NGUxMDg0MDczZDAwODFlYjFhODQ0Nzk2YjIKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTIgMTM6MTE6NTAgMjAwNyArMDEwMAoKICAgIExQQzIyOTI6IHBhdGNoIGZyb20gU2llbWVucy4KCmNvbW1pdCBiMGIxYTkyMGFlYmVhZDBkNDQxNDZlNzM2NzZhZTlkODBmZmZjOGUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRmViIDEwIDA4OjQ5OjMxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBtaXNzaW5nIHAzbXguaCBmaWxlIHRvIHJlcG9zaXRvcnkgKHVwcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTNkNGE0OTgzZmI5YjNhZTVmN2IyZjEwYzU5OWFjYTJiMWI0MDM0YQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgOSAxMDo0NTo0MiAyMDA3ICswMTAwCgogICAgW01vdGlvbi1QUk9dIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHRoZSBNb3Rpb24tUFJPIGJvYXJkLgoKY29tbWl0IDVhNzUzZjk4YzZhMDFiZDFjNjFhOWEzZjk1ZTgzMjlhMzVmNjI5OTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNyAxNjo1MTowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgc29tZSBBTUNDIDR4eCBib2FyZCBjb25maWcgZmlsZXMgKHNldCBpbml0cmRfaGlnaCkKCiAgICBTb21lIGJvYXJkcyB0aGF0IGNhbiBoYXZlIG1vcmUgdGhhbiA3NjhNQnl0ZXMgb2YgU0RSQU0gbmVlZCB0bwogICAgc2V0ICJpbml0cmRfaGlnaCIsIHNvIHRoYXQgdGhlIGluaXRyZCBjYW4gYmUgYWNjZXNzZWQgYnkgdGhlCiAgICBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDczNzJjYTY4MjI3OTMwZDAzY2ZmYTU0ODMxMDUyNGNhZDViOTY3MzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMiAxMjo0NDoyMiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDb3JyZWN0bHkgZGlzcGxheSBQQ0kgYXJiaXRlciBlbi0vZGlzYWJsZWQgb24gc29tZSA0eHggYm9hcmRzCgogICAgUHJldmlvdXNseSB0aGUgc3RyYXBwaW5nIERDUi9TRFIgd2FzIHJlYWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBpbnRlcm5hbCBQQ0kKICAgIGFyYml0ZXIgaXMgZW5hYmxlZCBvciBub3QuIFRoaXMgc3RyYXBwaW5nIGJpdCBjYW4gYmUgb3ZlcnJpZGRlbiwgc28gbm93CiAgICB0aGUgY3VycmVudCBzdGF0dXMgaXMgcmVhZCBmcm9tIHRoZSBjb3JyZWN0IERDUi9TRFIgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJhYTU0ZjY1MWE0MmQxOTg2NzMzMThmMDdhMjBjODlhNDNlNGQxOTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMiAxMjo0MjowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDaGFuZ2UgY29uZmlndXJhdGlvbiBvdXRwdXQgb2YgU3ljYW1vcmUsIFllbGxvd3N0b25lICYgUmFpbmllcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMzc0NGQ2YjViZjE3NTkyZWI2YTBlZjRmMzE4ZjYwODlmNTU5OTNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDEgMTM6MjI6NDEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIFBDSS1QTlAgY29uZmlndXJhdGlvbiBmcm9tIFNlcXVvaWEvUmFpbmllciBjb25maWcgZmlsZQoKICAgIFdoZW4gUENJIFBOUCBpcyBlbmFibGVkIHRoZSBwY2kgcG5wIGNvbmZpZ3VyYXRpb24gcm91dGluZSBpcyBjYWxsZWQKICAgIHdoaWNoIHNldHMgdGhlIFBDSV9DQUNIRV9TSVpFX0xJTkUgdG8gOC4gVGhpcyBzZWVtcyB0byBnZW5lcmF0ZSBzb21lCiAgICBwcm9ibGVtcyB3aXRoIHNvbWUgUENJIGNhcmRzLiBGb3Igbm93IGRpc2FibGUgdGhlIFBDSSBQTlAgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjkwMmZhZGFkZTNiZTc2NTk0NjdlOGQwNzQwNDhjNmI3MDY4ZjVjMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjo1NjoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgNDQwRVB4LzQ0MEdSeCBjcHUgZGV0ZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ1ZWEyODdiMDJhNjk0NWMzOTc3NDEwZTM2NGE4NzlkZDFhNTU1YzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6Mzg6MDQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIGVzZCBjcGNpNTIwMCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4YjdkMWYwYWI3ZDdjNGZlMzE2MGJiZjc0YTdlOTY5MGQ5ZjNhM2FiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjM3OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBlc2QgbWVjcDUyMDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNzFhNGU1ZmRhOGI2MDA0NGFiOWY0NjA2OWZhMWNmYTI2YmRkMDdmZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxMjozODo1MCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBSZW1vdmUgdW5uZWNjZXNzYXJ5IHllbGxvd3N0b25lIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU4MDI1OTRiNmZhMWIxNjYzMDg4MjBjMjc2Yjk2ZGMwZDdjYzczMWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTc6MDY6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgKDQ0MEVQeCkgY29uZmlnIGZpbGUKCiAgICBUaGUgY29uZmlnIGZpbGUgbm93IGhhbmRsZXMgdGhlIDJuZCB0YXJnZXQsIHRoZSBSYWluaWVyICg0NDBHUngpCiAgICBldmFsdWF0aW9uIGJvYXJkIGJldHRlci4gQWRkaXRpb25hbGx5IHRoZSBQUEMgaW5wdXQgY2xvY2sgd2FzCiAgICBhZGp1c3RlZCB0byBtYXRjaCB0aGUgY29ycmVjdCB2YWx1ZSBvZiAzMy4wIE1Iei4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzAwMjAwYzY3ZTczYjgzNzUxNDE4YWJlNzgxNTg0MGRjYThmZDZjYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxNzowNDoxOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBNZXJnZSBZb3NlbWl0ZSAmIFllbGxvd3N0b25lIGJvYXJkIHBvcnRzCgogICAgTm93IHRoZSBBTUNDIGV2YWwgYm9hcmRzIFlvc2VtaXRlICg0NDBFUCkgYW5kIFllbGxvd3N0b25lICg0NDBHUikKICAgIHNoYXJlIG9uZSBjb25maWcgZmlsZSBhbmQgYWxsIGJvYXJkIHNwZWNpZmljIGZpbGVzLiBUaGlzIHdheSB3ZQogICAgZG9uJ3QgaGF2ZSB0byBtYWludGFpbiB0d28gZGlmZmVyZW50IHNldHMgb2YgZmlsZXMgZm9yIG5lYXJseQogICAgaWRlbnRpY2FsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWJiZjVlYWUzMjJmNWYxZjY0MjdlY2MzYWMxM2EwY2I3ZGJhOGFkNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxNTowMTo0OSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgUHJvZHJpdmUgU0NQVSAoUEROQjMgdmFyaWFudCkgYm9hcmQKCiAgICBTQ1BVIGRvZXNuJ3QgdXNlIHJlZHVuZGFudCBlbnZpcm9ubWVudCBpbiBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjMwNDQzMGVkNjQyZWE4ZmExNWM5ZTVhZjk2NWFjMmUwMzNlZWM0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxMjo1MTowNyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBhbHByOiBVcGRhdGUgYWxwciBib2FyZCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmOGRiODRmMTMyYjFlMzM1ZjIwZjk2MTM4YTFmMDllZDk3YjA4NjY0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMDA6NTA6NDAgMjAwNyArMDEwMAoKICAgIExQQzIyOTIgU09ESU1NIHBvcnQgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgNmJkMjQ0N2VlNDdlZTIzYzE4ZDJiM2M3Y2NkNWEyMGY3NjI2ZjViMwpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyNCAxMjoxNjo1NiAyMDA3ICswMTAwCgogICAgQWRkIHBvcnQgZm9yIHRoZSBscGMyMjkyc29kaW1tIGV2YWx1YXRpb24gYm9hcmQgZnJvbSBFbWJlZGRlZEFydGlzdHMKCmNvbW1pdCAyZGFmMDQ2YmE2MjdmODVmNDQxOTU4MTU3NzgxNDAwMzk2MzYyNDRlCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNzoyMjowNiAyMDA3ICswMTAwCgogICAgW2lETVJdIEFkZCBNVEQgYW5kIEpGRlMyIHN1cHBvcnQsIGFsc28gYWRkIGRlZmF1bHQgcGFydGl0aW9uIGRlZmluaXRpb24uCgpjb21taXQgZjdkYjMzMTAxZmJjOWM4ZjBhMTA3MzhjZTg3MDM0ODc1YTE3YWViOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTQ6MjE6MTQgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBGbGFzaCBkcml2ZXIgb24gaW5pdGlhbGlzYXRpb24gd3JpdGUtcHJvdGVjdHMgc29tZSBzZWN0b3JzLAogICAgY3VycmVudGx5IHNlY3RvcnMgMC0zLiBTZWN0b3IgMyBkb2VzIG5vdCBuZWVkIHRvIGJlIHByb3RlY3RlZCwgdGhvdWdoCiAgICAoVS1ib290IG9jY3VwaWVzIHNlY3RvcnMgMC0xIGFuZCB0aGUgZW52aXJvbm1lbnQgc2VjdG9yIDIpLiBUaGlzIGNvbW1pdAogICAgZml4ZXMgdGhpcywgaS5lLiwgb25seSBzZWN0b3JzIDAtMiBhcmUgcHJvdGVjdGVkLgoKY29tbWl0IDBlZDQ3YmIxMTljZDJjNGMxNmVkYjI1NDg3ODkxNDhmOWU2ZGM5ZGUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE0OjExOjIyIDIwMDcgKzAxMDAKCiAgICBbaURNUl0gVXNpbmcgTUlJLXJlbGF0ZWQgY29tbWFuZHMgb24gaURSTSBib2FyZCBkb2Vzbid0IHdvcmsgbm93IChlLmcuLAogICAgIm1paSBkZXZpY2UiIHJlc3VsdHMgaW4gIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIikuIEZpeGluZyB0aGlzIHByb3Blcmx5CiAgICByZXF1aXJlcyBzb21lIGNsZWFuLXVwIGluIHRoZSBGRUMgZHJpdmVycyBpbmZyYXN0cnVjdHVyZSBmb3IgQ29sZEZpcmUsIHNvCiAgICB0aGlzIGNvbW1pdCBkaXNhYmxlcyBNSUkgY29tbWFkcyBmb3Igbm93LgoKY29tbWl0IDM2M2QxZDhmOWM5OWI2M2RhZWY4MWY1OTg1Y2FiM2ZjMDBlZGRlNWMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDEzOjI1OjIyIDIwMDcgKzAxMDAKCiAgICBbQ29sZEZpcmUgTUNGNTI3MSBmYW1pbHldIEFkZCBDUFUgZGV0ZWN0aW9uIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBDaGlwCiAgICBJZGVudGlmaWNhdGlvbiBSZWdpc3RlciAoQ0lSKS4KCmNvbW1pdCBmZGVmMzg4NzU4NTA2NzY1ZDRkNmE3MTU1YzhmMTU4NGM2M2ZmNTgxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDIyIDEzOjE5OjIxIDIwMDcgKzA4MDAKCiAgICB1c2UgIENGR19XUklURV9TV0FQUEVEX0RBVEEgZGVmaW5lIGluc3RlYWQgb2YgZGVmaW5lIENGR19GTEFTSF9DRklfU1dBUAogICAgVGhlIHBhdGNoIGJ5IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4gb24gSmFuLCAxOSwgMjAwNwogICAgZml4ZXMgY2ZpX2RyaXZlciBidWcgZm9yIG1wYzc0NDhocGMyIGJvYXJkLiBUaGUgZGVmYXVsdCBjZmlfZHJpdmVyIGNhbiBzdXBwb3J0CiAgICBtcGM3NDQ4aHBjMiBib2FyZC4KCmNvbW1pdCBhNDAxMjM5NjY0NTUzM2FlZjIxODM1NGVlYmE3NTRkZmYwZGVhY2U4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTkgMjM6MDg6MzkgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBmNTM5YjdiYTdkN2VmNmRkMTg3YzgyMDk2MDkwMDFjYjFjZDk1ZTM5CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDE5OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFNDMyBib2FyZDogYWRkZWQgQ0ZHX0NNRF9BVVRPU0NSSVBULgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGQwYjZlMTQwODdkZGQ4Nzg5ZjIyNGE0OGUxZDMzZjJhNWRmNGQxNjcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTkgMTg6MDU6MjYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ0ZJOiBkZWZpbmUgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSBmb3IgdGhlIENGSS1GbGFzaCBkcml2ZXIKCQkgaWYgeW91IG11c3Qgc3dhcCB0aGUgYnl0ZXMgYmV0d2VlbiByZWFkaW5nL3dyaXRpbmcuCgkJIChOZWVkZWQgZm9yIHRoZSBTQzMgYm9hcmQpCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOWQ4ZDVhNWJmYjY0NzY4ZjI5YTBjYjQ3ZmMzN2NkNmY0YzQwZTI3NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxNjowNTo0NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgUHJvZHJpdmUgU0NQVSAoUEROQjMgdmFyaWFudCkgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDA1N2Q3NThlM2U4NzRjYmU3ZjI0NzQ1ZDBjY2U4YzFjYjZjMjA3ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMTo1NDo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgUHJvZHJpdmUgUDNNeCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0MTY3YTM2YzI5ZWU5NDZiNzI3NDY1ZGI1YzAxNDc0NmEwOGU5NzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6NDg6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIG1pc3NpbmcgVGFpc2hhbiBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYjQ4MjA3MjVlOWZjNDA5YzVjYmM4ZTgzMDU0YTZlZDUyMmQyMTExCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjI4OjUxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeDogQ29tcGlsZXJ3YXJuaW5ncyBmb3IgU0MzIGJvYXJkLgoJCSBUaGUgRUJDIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgaXMgbm93IGJ5IENGR19FQkNfQ0ZHIGRlZmluYWJsZQoJCSBBZGRlZCBKRkZTMiBzdXBwb3J0IGZvciB0aGUgU0MzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDVmYjY5MmNhZTU3ZDE3MTBjOGY1MmE0MjdjZjdmMzlhMzczODNmY2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTA6MjU6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIEFNQ0MgVGFpc2hhbiBQUEM0NDBHWCBldmFsIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZkM2UwMTA3MjM1YWEwZTZhNmRjYjc3Zjk4ODQ0OTcyODBiZjg1YWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNiAxODozMDo1MCAyMDA3ICswMTAwCgogICAgUmFuYW1lIHNvbGlkY2FyZDMgaW50byBzYzM7IGFkZCByZWR1bmRhbnQgZW52IGZvciBzYzMKCmNvbW1pdCAxYmJiYmRkMjBmY2VjOTkzMzY5NzAwMGRjZjU1ZmY3OTcyNjIyNTk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTYgMTI6NDY6MzUgMjAwNyArMDEwMAoKICAgIFVwZGF0ZSBkZWZhdWx0IGVudmlyb25tZW50IGZvciBTb2xpZGNhcmQzCgpjb21taXQgNWE1YzU2OTg2YTljY2Y3MTY0MmM4YjYzNzRlYjE4NDg3YjE1ZmVjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEphbiAxNSAwOTo0NjoyOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggNDQwU1BlIHJldiBCIGRldGVjdGlvbiBmcm9tIHByZXZpb3VzIHBhdGNoCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0NDNkMzE0MTBjNTcxZWU4Zjk3MGRhODE5YTQ0ZDY5OGZkZDZiMWYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTQgMTM6MzU6MzEgMjAwNyArMDEwMAoKCVtGSVhdIGNvcnJlY3QgSTJDIFdyaXRlcyBmb3IgdGhlIExNODEgU2Vuc29yLgoKCVNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDBiYmE1NDUyODM1ZjE5YTYxMjA0ZWRjZGEzYTU4MTEyZmQ4ZTIyMDgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAxMToxNzoxMCAyMDA3ICswMTAwCgogICAgVW5kbyBjb21taXQgMzAzM2ViYjI6IHJlc2V0IGNvbW1hbmQgZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnRzCgogICAgSGFpeWluZyBXYW5nJ3MgbW9kaWZpY2F0aW9uIHRvIHRoZSByZXNldCBjb21tYW5kIHdhcyBicm9rZW4sIHVuZG8gaXQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NTk4MTc3OGNmZjAwMzhmZDk5NDEwNDRkNmEzZWRhODEwZTMzMjU4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA4OjAxOjAzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSA0NDBTUChlKSBjcHUgcmV2aXNpb25zCgogICAgQWxzbyBkaXNwbGF5IGVuYWJsZWQvZGlzYWJsZWQgUkFJRCA2IHN1cHBvcnQgZm9yIDQ0MFNQLzQ0MFNQZSBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzdkZGM1YjlhZmIzMjUyNjJmZDg4NzUyYmE0MzBhMWRkZWQxZjBjNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwNzo1OTo1NiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgWWVsbG93c3RvbmUgKDQ0MEdSKSB0byBkaXNwbGF5IGJvYXJkIHJldiBhbmQgUENJIGJ1cyBzcGVlZAoKICAgIE5vdyB0aGUgYm9hcmQgcmV2aXNpb24gYW5kIHRoZSBjdXJyZW50IFBDSSBidXMgc3BlZWQgYXJlIHByaW50ZWQgYWZ0ZXIKICAgIHRoZSBib2FyZCBtZXNzYWdlLgoKICAgIEFsc28gdGhlIEVCQyBpbml0aWFsaXNpbmcgaXMgbm93IGRvbmUgdmlhIGRlZmluZXMgaW4gdGhlIGJvYXJkIGNvbmZpZwogICAgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzZhZGZmMzYyYzJjMDE0MWZmOGE4MTBkNDJhN2U0NzhmNzc5MTMwZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwNzo1OToxOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgWW9zZW1pdGUgKDQ0MEVQKSB0byBkaXNwbGF5IGJvYXJkIHJldiBhbmQgUENJIGJ1cyBzcGVlZAoKICAgIE5vdyB0aGUgYm9hcmQgcmV2aXNpb24gYW5kIHRoZSBjdXJyZW50IFBDSSBidXMgc3BlZWQgYXJlIHByaW50ZWQgYWZ0ZXIKICAgIHRoZSBib2FyZCBtZXNzYWdlLgoKICAgIEFsc28gdGhlIEVCQyBpbml0aWFsaXNpbmcgaXMgbm93IGRvbmUgdmlhIGRlZmluZXMgaW4gdGhlIGJvYXJkIGNvbmZpZwogICAgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTBiOWVhOGM4YTI5NGRlNmE1MzUwYWU2Mzg4NzlkMjRiNWI3MDlkNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwNzo1Nzo1MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU2VxdW9pYSAoNDQwRVB4KSB0byBkaXNwbGF5IGJvYXJkIHJldiBhbmQgUENJIGJ1cyBzcGVlZAoKICAgIE5vdyB0aGUgYm9hcmQgcmV2aXNpb24gYW5kIHRoZSBjdXJyZW50IFBDSSBidXMgc3BlZWQgYXJlIHByaW50ZWQgYWZ0ZXIKICAgIHRoZSBib2FyZCBtZXNzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYTQzYmExOGU5MTAyMDZlZjgwNjNlNGIyMmQyODI2MzBiZmYzZmQyCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgSmFuIDExIDE1OjQ0OjQ0IDIwMDcgKzAxMDAKCglBZGRlZCBzdXBwb3J0IGZvciB0aGUgU09MSURDQVJEIElJSSBib2FyZCBmcm9tIEV1cm9kZXNpZ24KCglTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2YWJhZWU0MjYyMWMwN2U4MWEyY2QxODlhZDQzNjhiNWU4YzUwMjgwCkF1dGhvcjogUmVpbmhhcmQgVGhpZXMgPFJlaW5oYXJkLlRoaWVzQHdlYi5kZT4KRGF0ZToJV2VkIEphbiAxMCAxNDo0MToxNCAyMDA3ICswMTAwCgogICAgQWRqdXN0ZWQgZGVmYXVsdCBlbnZpcm9ubWVudCBmb3IgY2FtNTIwMCBib2FyZC4KCmNvbW1pdCBiYWI1YTkwZDRjY2MxYTQ2YTgxMjdiODY3ZmE1OTAyOGNjNjIzYWQ5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTAgMTU6MzU6NTIgMjAwNyArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCA3ODdmYTE1ODYwYTU3ODMzZTUwYmQzMDU1NTA3OWE5Y2Q0ZTUxOWI4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTAgMDE6Mjg6MzkgMjAwNyArMDEwMAoKICAgIEZpeCBhdXRvX3VwZGF0ZSBmb3IgTUNDMjAwIGJvYXJkLgoKICAgIFRoZSBpbnZvY2F0aW9uIG9mIGRvX2F1dG9fdXBkYXRlKCkgaXMgbW92ZWQgdG8gdGhlIGVuZCBvZiB0aGUKICAgIG1pc2NfaW5pdF9yKCkgZnVuY3Rpb24sIGFmdGVyIHRoZSBmbGFzaCBtYXBwaW5ncyBoYXZlIGJlZW4KICAgIGluaXRpYWxpemVkLiBQbGVhc2UgZmluZCBhdHRhY2hlZCBhIHBhdGNoIHRoYXQgaW1wbGVtZW50cyB0aGF0CiAgICBjaGFuZ2UuCgogICAgQWxzbyBjb3JyZWN0IHRoZSBkZWNvZGluZyBvZiB0aGUga2V5cGFkIHN0YXR1cy4gV2l0aCB0aGlzIHVwZGF0ZSwgdGhlCiAgICBrZXkgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHVwZGF0ZSBpcyBDb2x1bW4gMiwgUm93IDIuCgpjb21taXQgZDkzODRkZTJmNTcxMDQ2ZTcxMDgxYmFlMjJiNDllM2Q1Y2EyZTNkNQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gMTAgMDA6MjY6MTUgMjAwNyArMDEwMAoKICAgIENBTTUyMDAgZmxhc2ggZHJpdmVyIG1vZGlmaWNhdGlvbnM6CiAgICAtIHVzZSBDRkkgZHJpdmVyIChyZXBsYWNlcyBjdXN0b20gZmxhc2ggZHJpdmVyKSBmb3IgbWFpbiAnY2FtNTIwMCcgdGFyZ2V0CiAgICAtIGFkZCBzZWNvbmQgYnVpbGQgdGFyZ2V0ICdjYW01MjAwX25pb3NmbGFzaCcgd2hpY2ggc3RpbGwgdXNlcyBjdXN0b20gZHJpdmVyCgpjb21taXQgNjdmZWEwMjJmYTk1N2Y1OTY1M2I1MjM4Yzc0OTZmODBhNmI3MDQzMgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNjowMjo0OCAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogY2xlYW51cCBtZW1vcnkgY29udG9sbGVyIHNldHVwCgpjb21taXQgOGZjMjEwMmZhYTIzNTkzYzgwMzgxNDM3YzA5Zjc3NDVhMTRkZWI0MApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxNCAyMDA3ICswMTAwCgogICAgRml4IHRoZSBjcHUgc3BlZWQgc2V0dXAgdG8gd29yayB3aXRoIGFsbCBib2FyZHMuCgpjb21taXQgOTI5NWFjYjc3NDgxY2YwOTllZjliNDBlMWZhMmQxNDViM2M3NDkwYwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogYWRkIHN1cHBvcnQgZm9yIHRoZSBGTTE4TDA4IFJhbXRyb24gRlJBTQoKY29tbWl0IDM4Y2NkMmZkZjMzNjRhNTNmZTgwZTliMzY1MzAzZWNkYWZjOWUyMjMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IHVwZGF0ZSB0aGUgSFBJIHJlZ2lzdGVyIGFkZHJlc3NlcyB0byB3b3JrIHdpdGggdGhlIHNlY29uZAogICAgZ2VuZXJhdGlvbiBvZiBoYXJkd2FyZQoKY29tbWl0IDU5MjFlNTMxM2ZjM2VhZGQ0Mjc3MGMyYjk5YmFkZDdmYWU1ZWNmMWUKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBNaXNjZWxsYW5pb3VzIHNwYzE5MjAgcmVsYXRlZCBjbGVhbnVwcwoKY29tbWl0IGU0YzJkMzdhZGM4YmIxYmY2OWRjZjYwMGNiYzZjNzVmOTE2YTYxMjAKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTIgMjAwNyArMDEwMAoKICAgIFNQQzE5MjAgR08vTk9HTyBsZWQgc2hvdWxkIGJlIHNldCB0byBjb2xvciByZWQgaW4gVS1Cb290Cgpjb21taXQgMGJlNjI3MjhhYWM0NTliYTI2OGQ2ZDc1MmVkNDllYzBlMmJjNzM0OApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTIgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgRFMzMjMxIFJUQwoKY29tbWl0IDgxMzk1NjdiNjBkNjc4NTg0YjA1ZjA3MThhNjgxZjIwNDdjNWUxNGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjExIDIwMDcgKzAxMDAKCiAgICBTTUMxIHVzZXMgZXh0ZXJuYWwgQ0xLNCBpbnN0ZWFkIG9mIEJSRyBvbiBzcGMxOTIwCgpjb21taXQgZDhkOWRlMWEwMmZiZDg4MGI2MTNkNjA3MTQzZDFmNTczNDJhZmZjNwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIFVwZGF0ZSB0aGUgU1BDMTkyMCBDTUIgUExEIGRyaXZlcgoKY29tbWl0IDNmMzRmODY5MTYyNzUwZTVlOTk5ZmQxNDBmODg0ZjVkZTk1MmJjZmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgLyBlbmFibGUgSTJDIHN1cHBvcnQgb24gdGhlIHNwYzE5MjAgYm9hcmQKCmNvbW1pdCBkMjg3MDdkYmNlMWU5YWMyMDE3YWQwNTFkYTQxMzNiZjIyYjQyMDRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSB0bXMzMjA2NzF4IGhvc3QgcG9ydCBpbnRlcmZhY2UgKEhQSSkKCmNvbW1pdCBmNGViNTQ1MjliYjM2NjRjM2E1NjJlNDg4YjQ2MGZlMDc1Zjc5ZDY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBKYW4gNyAwMDoxMzoxMSAyMDA3ICswMTAwCgogICAgUHJlcGFyZSBmb3IgcmVsZWFzZSAxLjIuMAoKY29tbWl0IGYwN2FlN2E5ZGFlZjI3YTNkMDIxM2E0ZjNmZTM5ZDUzNDIxNzNjMDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNiAxNTo1ODowOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSA0NHg6IEZpeCBwcm9ibGVtIHdpdGggRERSIGNvbnRyb2xsZXIgc2V0dXAgKHJlZnJlc2ggcmF0ZSkKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB3aXRoIGFuIGluY29ycmVjdCBzZXR1cCBmb3IgdGhlIHJlZnJlc2gKICAgIHRpbWVyIG9mIHRoZSA0NHggRERSIGNvbnRyb2xsZXIgaW4gdGhlIGZpbGUgY3B1L3BwYzR4eC9zZHJhbS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxNmMxZGE5NTc3ZjA2YzVmYzA4NjUxYTQwNjU1Mzc0MDdkZTQ2MzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNiAxNTo1NjoxMyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQUxQUiBib2FyZCBmaWxlcwoKICAgIFRoaXMgdXBkYXRlIGJyaW5ncyB0aGUgQUxQUiBib2FyZCBzdXBwb3J0IHRvIHRoZSBuZXdlc3QgdmVyc2lvbi4KICAgIEl0IGFsc28gZml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIE5BTkQgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZDFkOTM3ZjkwMjUwYTMyOTg4YzM3YjJiNGFmODM2NGQyNWRlOGVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDUgMTE6NDY6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHByb2JsZW0gd2l0aCBvb2JzaXplIGNhbGN1bGF0aW9uCgogICAgSGVyZSB0aGUgZGVzY3JpcHRpb24gZnJvbSBCcmlhbiBCcmVsc2ZvcmQgPEJyaWFuX0JyZWxzZm9yZEBkZWxsLmNvbT46CgogICAgVGhlIEh5bml4IHBhcnQgcmV0dXJucyBhIDB4MWQgaW4gdGhlIDR0aCBJRCBieXRlLiBUaGUgU2Ftc3VuZyBwYXJ0CiAgICByZXR1cm5zIGEgMHgxNS4gSW4gdGhlIGNvZGUgZnJhZ21lbnQgYmVsb3cgYml0cyBbMTowXSBkZXRlcm1pbmUgdGhlCiAgICBwYWdlIHNpemUsIGl0IGlzIEFORGVkIHZpYSAiKGV4dGlkICYgMHgzKSIgdGhlbiBzaGlmdGVkIG91dC4gVGhlCiAgICBuZXh0IGZpZWxkIGlzIGFsc28gQU5EZWQgd2l0aCAweDMuIEhvd2V2ZXIgdGhpcyBpcyBhIG9uZSBiaXQgZmllbGQKICAgIGFzIGRlZmluZWQgaW4gdGhlIEh5bml4IGFuZCBTYW1zdW5nIHBhcnRzIGluIHRoZSA0dGggSUQgYnl0ZSB0aGF0CiAgICBkZXRlcm1pbnMgdGhlIG9vYnNpemUsIG5vdCBhIHR3byBiaXQgZmllbGQuIEl0IHdvcmtzIG9uIFNhbXN1bmcgYXMKICAgIGJpdHNbMzoyXSBhcmUgMDEuIEhvd2V2ZXIgZm9yIHRoZSBIeW5peCB0aGVyZSBpcyBhIDExIGluIHRoZXNlIHR3bwogICAgYml0cywgc28gdGhlIG9vYiBzaXplIGdldHMgbWVzc2VkIHVwLgoKICAgIEkgY2hlY2tlZCB0aGUgY29ycmVjdCBsaW51eCBjb2RlIGFuZCB0aGUgc3VnZ2VzdGVkIGZpeCBmcm9tIEJyaWFuIGlzCiAgICBhbHNvIGF2YWlsYWJsZSBpbiB0aGUgbGludXggbmFuZCBtdGQgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzhiYzQ0M2FlNWE0YThiYTg3NTkwNTg3ZDVlMzViZjVhNzg3YjJlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDUgMTA6NDA6MzYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2xlYXIgUExCNEEwX0FDUltXUlBdIG9uIFNlcXVvaWEgKDQ0MEVQeCkKCiAgICBUaGlzIGZpeCB3aWxsIG1ha2UgdGhlIE1BTCBidXJzdCBkaXNhYmxpbmcgcGF0Y2ggZm9yIHRoZSBMaW51eAogICAgRU1BQyBkcml2ZXIgb2Jzb2xldGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyMzg4OTgzODI4MmI2MjM3YjQwMTY2NGYyMmRkMjJkZmJhMmMwNjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMDozODowNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgRERSMiBvcHRpbWl6YXRpb24gY29kZSBmb3IgU2VxdW9pYSAoNDQwRVB4KSBib2FyZAoKICAgIFRoaXMgY29kZSB3aWxsIG9wdGltaXplIHRoZSBERFIyIGNvbnRyb2xsZXIgc2V0dXAgb24gYSBib2FyZCBzcGVjaWZpYwogICAgYmFzaXMuCgogICAgTm90ZTogVGhpcyBjb2RlIGRvZXNuJ3Qgd29yayByaWdodCBub3cgb24gdGhlIE5BTkQgYm9vdGluZyBpbWFnZSBmb3IgdGhlCiAgICBTZXF1b2lhIGJvYXJkLCBzaW5jZSBpdCBkb2Vzbid0IGZpdCBpbnRvIHRoZSA0a0J5dGVzIGZvciB0aGUgU1BMIGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjY2U0YWNiYjY4Mzk4NjM0YjhkMDExZWQ3YmIwZDEyMjY5Yzg0MjMwCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IERlYyAyOCAxOTowODoyMSAyMDA2ICswMTAwCgogICAgRmV3IFYzOEIgY2hhbmdlczoKICAgICAgLSBmaXggYSB0eXBvIGluIFYzOEIgY29uZmlnIGZpbGUKICAgICAgLSBtb3ZlIHdhdGNoZG9nIGluaXRpYWxpc2F0aW9uIGVhcmxpZXIgaW4gdGhlIGJvb3QgcHJvY2VzcwogICAgICAtIGFkZCAid2R0PW9mZiIgdG8gZGVmYXVsdCBrZXJuZWwgY29tbWFuZCBsaW5lIChkaXNhYmxlcyBrZXJuZWwgd2F0Y2hkb2cpCgpjb21taXQgOTJlYjcyOWJhZDg3NjcyNWFlZWE5MDhkMmFkZGJhMDgwMDYyMDg0MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRGVjIDI3IDAxOjI2OjEzIDIwMDYgKzAxMDAKCiAgICBGaXggYnVnIGluIGFkYXB0aW9uIG9mIFN0ZWZhbm8gQmFiaWMncyBDRkkgZHJpdmVyIHBhdGNoLgoKY29tbWl0IDljMGY0MmVjZmUyNWY3ZmZjZThlYzdhODE1ZjAzODY0ZDcyM2ZmZTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIERlYyAyNCAwMTo0Mjo1NyAyMDA2ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGQ3ODRmZGIwNTkwMGFkYTM2ODZkNTc3ODc4M2UxZmIzMjhlOWZiNjYKQXV0aG9yOiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxMiAwMDoyMjo0MiAyMDA2ICswMTAwCgogICAgRml4IGNmaSBmYWlsdXJlIHdpdGggU3BhbnNpb24gRmxhc2ggKFNwYW5zaW9uIEZsYXNoIERldmljZXMgaGF2ZSBhIGRpZmZlcmVudCBvZmZzZXQgdG8gZ28gaW50byBDRkkgbW9kZSkKCmNvbW1pdCAxYjNjMzYwYzIzNWRjNjg0ZWMwNmMyZDVmMTgzZjBhMjgyY2U0NWUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDIyIDE0OjI5OjQwIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBzZXF1b2lhIGZsYXNoIGF1dG9kZXRlY3Rpb24gKGZpbmFsbHkgY29ycmVjdCkKCiAgICBOb3cgMzJNQnl0ZSBhbmQgNjRNQnl0ZSBGTEFTSCBpcyBrbm93IHRvIHdvcmsgYW5kIG90aGVyCiAgICBjb25maWd1cmF0aW9ucyBzaG91bGQgd29yayB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyZTUyMzZhOGI3MTk1NDM2NDNmZDI2ZDU4Mjc5MzhhYjJiOTQ4MTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMiAxMDozMDoyNiAyMDA2ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IGZhMjMwNDQ1NjQwOTFmMDVkOTY5NWJlYjdiNWI5YTkzMWU3ZjQxYTQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjEgMTc6MTc6MDIgMjAwNiArMDEwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBUUU04MjcyIGJvYXJkIGZyb20gVFEKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2ZGVkZjNkNDlkZDE0YzNiZjU0MWM4ZWNlZTdmZmFhYzVmMGUxZDZjCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgRGVjIDIxIDE2OjE0OjQ4IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciB0aGUgVUMxMDEgYm9hcmQgZnJvbSBNQU4uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYzg0YmFkMGVmNjBlNzA1NWFiMGJkNDliOTMwNjk1MDljZWNjMzgyYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBEZWMgMjAgMDA6Mjk6NDMgMjAwNiArMDEwMAoKICAgIEZpeCB0byBtYWtlIHRoZSBiYXVkcmF0ZSBjaGFuZ2VzIGltbWVkaWF0ZSBmb3IgdGhlIE1DRjUyeDIgZmFtaWx5LgoKY29tbWl0IGRhYTZlNDE4YmNjMGM3MTc3NTJlOGRlOTM5YzIxM2M3OTAyODYwOTYKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRGVjIDIwIDAwOjI3OjMyIDIwMDYgKzAxMDAKCiAgICBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciB0aGUgaURNUiBib2FyZCAoQ29sZEZpcmUpLgoKY29tbWl0IGNkYjk3YTY2Nzg4MjZmODVlN2M2OWVhZTZhMWMxMTNkMDM0YzliMTAKQXV0aG9yOiBBbmRyZWkgU2Fmcm9ub3YgPHNhZnJvbm92QHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgRGVjIDggMTY6MjM6MDggMjAwNiArMDEwMAoKICAgIGF1dG9tYXRpYyB1cGRhdGUgbWVjaGFuaXNtCgpjb21taXQgOWQyN2IzYTA2ODVmZjk5ZmM0Nzc5ODNmMzE1YzA0ZDQ5ZjY1N2E4YQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE3OjU2OjU5IDIwMDYgKzA4MDAKCiAgICBTbGlnaHQgY29kZSBjbGVhbiB1cC4KICAgIEFkZCBjb21tZW50cywgZGVsZXRlIGR1cGxpY2F0ZSBkZWZpbmUgYW5kIHJlbW92ZSBzcGFjZXMuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGRiY2Q2OWUzZTI3NzZlYTMzNDU5MGQ1NzY4ZTM2OTJjNWZhZTVjMQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE3OjU0OjIxIDIwMDYgKzA4MDAKCiAgICBJbnRyb2R1Y2UgUExMX0NGR1swOjRdIHRhYmxlIGZvciBwcm9jZXNzb3IgNzQ0OC83NDQ3QS83NDU1Lzc0NTcuIFRoZSBvcmlnaW5hbAogICAgbXVsdGlwbGllciB0YWJsZSBjYW4gbm90IHJlZmVjdCB0aGUgcmVhbCBQTEwgY2xvY2sgYmVoYXZpb3Igb2YgdGhlc2UKICAgIHByb2Nlc3NvcnMuIFBsZWFzZSByZWZlciB0byB0aGUgaGFyZHdhcmUgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlsZWQKICAgIGluZm9ybWF0aW9uIG9mIHRoZSBjb3JyZXNwb25kaW5nIHByb2Nlc3NvcnMuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGVmZTIwYzk1NzkwMTFkOTk4N2Y2MmVkN2QzNWVlOGNkYzFjZjBlMApBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE0OjQ2OjIzIDIwMDYgKzA4MDAKCiAgICBSZW1vdmUgdGhlIHN0YXRpYyBNQUMgYWRkcmVzcywgaXAgYWRkcmVzcywgc2VydmVyIGlwLCBuZXRtYXNrIGFuZAogICAgZ2F0ZXdheSBpcCBmb3IgbmV0d29yayBzZXR0aW5nLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmMTJjNjFjZjMxZWQ3M2Q3MmRkZmNmYzcxMmE4NTRhM2ExNzdhYWYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNDozMzowOCAyMDA2ICswODAwCgogICAgUmVtb3ZlIHRoZSBkdXBsaWNhdGUgbWVtb3J5IHRlc3QgY29kZSBmb3IgbXBjNzQ0aWhwYzIgYm9hcmQuCiAgICBJZiBhIG1lbW9yeSB0ZXN0IGlzIG5lZWRlZCwgcGxlYXNlIHVzZSB0aGUgZnVuY3Rpb25zIGluCiAgICBwb3N0L21lbW9yeS5jIG9yIG1lbXRlc3QgY29tbWFuZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOWMxZWVlZDdkZDE5M2ZhNjVmYjE5NDY1NDEzMjA0MGQ0OWQ0ZDNhCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDEgMTk6MDE6MjUgMjAwNiArMDgwMAoKICAgIEZpeCB0aGUgZXhjZXB0aW9uIG9jY3VyaW5nIGluIFJBTSB0YWJsZSBzZWFyY2ggaXNzdWUuCiAgICBUaGUgb3JpZ2luYWwgc2VhcmNoX29uZV90YWJsZSgpIGZ1bmN0aW9uIGNvZGUgY2FuIG9ubHkgcHJvY2Vzc2VzIHRoZSBzZWFyY2gKICAgIGZvciB0aGUgZXhjZXB0aW9uIG9jY3VycmluZyBpbiBGTEFTSC9ST00sIGJlY2F1c2UgdGhlIGV4Y2VwdGlvbiBhbmQgZml4dXAKICAgIHRhYmxlIHVzdWFsbHkgbG9jYXRlIGluIEZMQVNILiBJZiB0aGUgZXhjZXB0aW9uIGFkZHJlc3MgaXMgYWxzbyBpbgogICAgRkxBU0gsIGl0IHdpbGwgYmUgT0suCiAgICBJZiB0aGUgZXhjZXB0aW9uIG9jY3VycyBpbiBSQU0sIGFmdGVyIHRoZSB1LWJvb3QgcmVsb2NhdGlvbiwgYQogICAgcmVsb2NhdGlvbiBvZmZzZXQgc2hvdWxkIGJlIGFkZGVkLgoKICAgIGNsZWFuIHVwIHRoZSBjb2RlIGluIGNwdS83NHh4Xzd4eC9jcHUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZTMxMTIxNGUwZDIxNmY5MDRmZWVhMjY5NTk5ZDA5MzRiZjcxZjIzCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDEgMTE6NDc6MzYgMjAwNiArMDgwMAoKICAgIENsZWFuIHVwIHRoZSBjb2RlIGFjY29yZGluZyB0byBjb2Rlc3R5bGU6CiAgICAoMSkgcmVtb3ZlIHNvbWUgQysrIGNvbW1lbnRzLgogICAgKDIpIHJlbW92ZSB0cmFpbGluZyB3aGl0ZSBzcGFjZS4KICAgICgzKSByZW1vdmUgdHJhaWxpbmcgZW1wdHkgbGluZS4KICAgICg0KSBJbmRlbnRhdGlvbiBieSB0YWJsZS4KICAgICg1KSByZW1vdmUge30gaW4gb25lIGxpbmUgY29uZGl0aW9uLgogICAgKDYpIGFkZCBzcGFjZSBiZWZvcmUgJygnIGluIGZ1bmN0aW9uIGNhbGwuCiAgICBSZW1vdmUgc29tZSB3ZWlyZCBwcmludGYgKCkgb3V0cHV0LgogICAgQWRkIG5lY2Vzc2FyeSBjb21tZW50cy4KICAgIE1vZGlmaWVkIE1ha2VmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnkuCgpjb21taXQgZGQ1MjBiZjMxNGM3YWRkNDE4M2M1MTkxNjkyMTgwZjU3NmY5NmI2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTm92IDMwIDE4OjAyOjIwIDIwMDYgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAuCgpjb21taXQgOGQ5YTg2MTBiODI1NjMzMTEzMjIyN2U5ZTY1ODVjNmJkNTc0Mjc4NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTm92IDMwIDAxOjU0OjA3IDIwMDYgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgNzI2ZTkwYWFjZjBiMWVjYjBlNzA1NWJlNTc0NjIyZmJlM2U0NTBiYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJV2VkIE5vdiAyOSAxNjoyMzo0MiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBbTVBDNTJ4eF0gVXNlIElQQiBidXMgZnJlcXVlbmN5IGZvciBTT0MgcGVyaXBoZXJhbHMKCiAgICBUaGUgc29jIG5vZGUgb2YgdGhlIG1wYzUyeHggbmVlZHMgdG8gYmUgbG9hZGVkIHdpdGggdGhlIElQQiBidXMgZnJlcXVlbmN5LAogICAgbm90IHRoZSBYTEIgZnJlcXVlbmN5LgoKICAgIFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiB0aGUgcHJldmlvdXMgcGF0Y2hlcyBmb3IgTVBDNTJ4eCBkZXZpY2UgdHJlZSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgU2lnbmVkLW9mZi1ieTogU3lsdmFpbiBNdW5hdXQgPHRudEAyNDZ0TnQuY29tPgoKY29tbWl0IDFlYWMyYTcxNDE3YjY2NzViMTFhYWNlNzIxMDJhMmU3ZmRlOGY1YzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjkgMTU6NDI6MzcgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIFByb2RyaXZlIFAzTTc1MCAmIFAzTTc0NDggKFAzTXgpIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUHJvZHJpdmUgUDNNNzUwIChQUEM3NTAgJiBNVjY0NDYwKQogICAgYW5kIHRoZSBQM003NDQ4IChNUEM3NDQ4ICYgTVY2NDQ2MCkgUE1DIG1vZHVsZXMuIEJvdGggbW9kdWxlcyBhcmUKICAgIHF1aXRlIHNpbWlsYXIgYW5kIHNoYXJlIHRoZSBzYW1lIGJvYXJkIGRpcmVjdG9yeSAicHJvZHJpdmUvcDNteCIKICAgIGFuZCB0aGUgc2FtZSBjb25maWcgZmlsZSAicDNteC5oIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWJkZDQ2ODMyYWViNTY5ZjVlMDRiMWYyMGY2NDMxODUyNWI2NTI1YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxMjo1MzoxNSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBjb21tb24vY21kX2VsZi5jOiBFbmFibGUgbG9hZGFkZHIgYXMgcGFyYW1ldGVyIGluIGJvb3R2eCBjb21tYW5kCgogICAgSW4gdGhlIGJvb3R2eCBjb21tYW5kIHRoZSBsb2FkIGFkZHJlc3Mgd2FzIG9ubHkgcmVhZCBmcm9tIHRoZSBlbnYKICAgIHZhcmlhYmxlICJsb2FkYWRkciIgYW5kIG5vdCBvcHRpb25hbGx5IHBhc3NlZCBhcyBwYXJhbXRlciBhcyBkZXNjcmliZWQKICAgIGluIHRoZSBoZWxwLiBUaGlzIGlzIGZpeGVkIHdpdGggdGhpcyBwYXRjaC4gVGhlIGJlaGF2aW91ciBpcyBub3cgdGhlCiAgICBzYW1lIGFzIGluIHRoZSBib290ZWxmIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRlMjZmMTA3NGMzYWMxYmQ4ZmQwOTRmMGRjNGExYzRhMGIxNWE1OTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjkgMTI6MDM6NTcgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gaW5jbHVkZS9wcGM0NDAuaCBtaW5vciBlcnJvciBhZmZlY3RpbmcgaW50ZXJydXB0cwoKICAgIEZpeGVkIGluY2x1ZGUvcHBjNDQwLmMgZm9yIFVJQyBhZGRyZXNzIEJ1ZwoKICAgIENvcnJlY3RzIGJ1ZyBhZmZlY3RpbmcgdGhlIGFkZHJlc3NlcyBmb3IgdGhlIHVuaXZlcnNhbCBpbnRlcnJ1cHQKICAgIGNvbnRyb2xsZXIgVUlDMiBhbmQgVUlDMyBvbiB0aGUgUFBDNDQwIEVweCwgR1J4LCBhbmQgU1BFIGNoaXBzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmYgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5MzlkOTY5NDQzY2NmMzE2Y2FiMmJmMzJhYjEwMjdkNGRiNWJhMWEKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJVHVlIE5vdiAyOCAxNjoxNzoyNyAyMDA2IC0wNjAwCgogICAgTWFrZSBmc2wtaTJjIG5vdCBjb25mbGljdCB3aXRoIFNPRlQgSTJDCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNDE5OGJmNzY4ZmRjOTU4ZTNjMWFmZDI0MDRlNTI2MjIwOGU5OGQ3CkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MTc6MTggMjAwNiAtMDYwMAoKICAgIEZpeCBJMkMgbWFzdGVyIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjNkMDQ1ZTUxY2E4ZGNjNmNmNzU5ODI3MTQwODYxZDZhYzI1YzA0CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyOCAyMzozMToxOSAyMDA2IC0wNjAwCgogICAgQXNzaWduIG1haW50YWluZXJzIGZvciBtcGM4MzQ5ZW1kcyBhbmQgbXBjODM2MGVtZHMKCiAgICBEYXZlIGZvciBtcGM4MzYwZW1kcywgYW5kIG1lIGZvciBtcGM4MzQ5ZW1kcy4KCmNvbW1pdCAxYWE5MzRjODFiNzdmMjA4MGQzY2E0YjIyNmVhYjY3YjE3YTMzOTYxCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyOCAyMzoyODozMyAyMDA2IC0wNjAwCgogICAgRWxpbWluYXRlIGdjYyA0ICd1c2VkIHVuaW5pdGlhbGl6ZWQnIHdhcm5pbmdzIGluIGRyaXZlcnMvcWUvdWNjZi5jCgogICAgZ2l2ZSBpbml0aWFsIHZhbHVlcyBmb3IgcmVnX251bSwgc2hpZnQsIHBfY214dWNyIGluIHVjY19zZXRfY2xrX3NyYwogICAgc2luY2UgdGhleSBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZSB0byB1Y2NfZ2V0X2NteHVjcl9yZWcgYW5kIGFzc2lnbmVkLgoKY29tbWl0IGU4NTdhNWJkYjM5NTRiODk2YzA5MjBjYjlkOGQyYjFiOWMxMDdjZTUKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDEyOjA5OjM1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBNaXNjZWxsYW5lb3VzIGNvZGUgc3R5bGUgZml4ZXMKCiAgICBJbXBsZW1lbnQgdmFyaW91cyBjb2RlIHN0eWxlIGZpeGVzIGFuZCBzaW1pbGFyIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNTk1ODFjNTZhYjVkNmUwMjA3ZGRhYzNiMmMxZDU1Y2IzNmVjNzA2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDE3OjU1OjQ5IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEVuYWJsZSB0aGUgSWNlQ3ViZS9saXRlNTIwMCB2YXJpYW50cyB0byBwYXNzIGEgZGV2aWNlIHRyZWUgdG8gTGludXguCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBjb2RlIGFuZCBjb25maWd1cmF0aW9uIG5lY2Vzc2FyeSB0byBib290IHdpdGggYW4KICAgIGFyY2gvcG93ZXJwYyBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAZ21haWwuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTczMmZhZWM5NWE4M2NiNDY4YjQ4NTBhZTgwN2M4MzAxZGRlOGY2YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxNjowOToyNCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IDQ0MFNQIFJldi4gQyBkZXRlY3Rpb24gYWRkZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTdmM2U5ZmYwMWZiZDdmYTcyZWI0MmE5Njc1ZmJlZDZiYzQ3MzZiMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxMTowNDo0NSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcGF0Y2ggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1OGUzYjE0YzE4ZWQzMjg4Y2VlZjhkMDg2OTQ2ZGJmM2RmNjRjY2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDExOjA0OjQ1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwYXRjaCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmNGI2MDJlYzc1MjRhMDMyYmRmM2M2ZDI4YzdmNTI1YTRhNjdlYWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAyMjo1Mzo1MyAyMDA2ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGY2ZTQ5NWY1NGNkYjhmZTM0MGI5YzAzZGVhYjQwYWQ3NDZkNTJmYWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6NDM6MjUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gNHh4X2VuZXQuYzogQ29ycmVjdCB0aGUgc2V0dGluZyBvZiB6bWlpZmVyIHJlZ2lzdGVyCgogICAgUGF0Y2ggYmVsb3cgY29ycmVjdHMgdGhlIHNldHRpbmcgb2YgdGhlIHptaWlmZXIgcmVnaXN0ZXIsIGl0IHdhcwogICAgb3ZlcndyaXR0aW5nIHRoZSByZWdpc3RlciByYXRoZXIgdGhhbiBPUmluZyB0aGUgc2V0dGluZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogTmVpbCBXaWxzb24gPE5XaWxzb25AYWlyc3Bhbi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDFhNzI1NDUyOTY4MDBiN2UyMTlmOTMxMDRhZDU4MzZmMDAwM2Q2NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzozNDoxMCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBTZWxlY3QgTkFORCBlbWJlZGRlZCBlbnZpcm9ubWVudCBmcm9tIGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBUaGUgY3VycmVudCBOQU5EIEJvb3Rsb2FkZXIgc2V0dXAgZm9yY2VzIHRoZSBlbnZpcm9ubWVudAogICAgdmFyaWFibGVzIHRvIGJlIGluIGxpbmUgd2l0aCB0aGUgYm9vdGxvYWRlci4gVGhpcyBjaGFuZ2UKICAgIGVuYWJsZXMgdGhlIGNvbmZpZ3VyYXRpb24gdG8gYmUgbWFkZSBpbiB0aGUgYm9hcmQgaW5jbHVkZQogICAgZmlsZSBpbnN0ZWFkIHNvIHRoYXQgaXQgY2FuIGJlIGluZGl2aWR1YWxseSBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE1Nzg0ODYyODU3YzNjMjIxNDQ5OGRlZmNmZWQ4NGZmMTM3ZmI4MWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6MjI6MTkgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZF93YWl0KCkgdGltZW91dCBmaXhlcwoKICAgIFR3byBmaXhlcyBmb3IgdGhlIG5hbmRfd2FpdCgpIGZ1bmN0aW9uIGluCiAgICBkcml2ZXJzL25hbmQvbmFuZF9iYXNlLmM6CgogICAgMS4gVXNlIGNvcnJlY3QgdGltZW91dHMuIFRoZSBvcmlnaW5hbCB0aW1lb3V0cyBpbiBMaW51eAogICAgc291cmNlIGFyZSA0MDBtcyBhbmQgMjBtcyBub3QgNDBzIGFuZCAyMHMKCiAgICAyLiBSZXR1cm4gY29ycmVjdCBlcnJvciB2YWx1ZSBpbiBjYXNlIG9mIHRpbWVvdXQuIDAgaXMKICAgIGludGVycHJldGVkIGFzIE9LLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJ1aSBTb3VzYSA8cnVpLnNvdXNhQGxhcG9zdGUubmV0PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRhNTU1M2IwOTViZjA0ZjRmMTA5YWQ3ZTU2NWRhZTNhYmE0N2IyMzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6MDQ6MDYgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQWxsb3cgQ09ORklHX09GX0ZMQVRfVFJFRSB0byBib290IGEgbm9uLWFyY2gvcG93ZXJwYyBrZXJuZWwKCiAgICBUaGlzIHBhdGNoIGFsbG93cyBhbiBhcmNoL3BwYyBrZXJuZWwgdG8gYmUgYm9vdGVkIGJ5IGp1c3QgcGFzc2luZyAxIG9yIDIKICAgIGFyZ3VtZW50cyB0byBib290bS4gIEl0IHJlbW92ZXMgdGhlIGdldGVudigiZGlzYWJsZV9vZiIpIHRlc3QgdGhhdCB1c2VkCiAgICB0byBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTkzOThlMDE4NTkzNzgyYzVmYTdkMDc0MTk1NWZjMTI1NmIzNGMxZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE1OjMyOjQyIDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgMTcyOWI5MmNkZTU3NTQ3NjY4NGJmZmU4MTlkMGI3NzkxYjU3YmZmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo1MjowNCAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHg6IEZpeCBwcm9ibGVtIHdpdGggYm9hcmQgc3BlY2lmaWMgcmVzZXQgY29kZSAobm93IGZvciByZWFsKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYzVlZThhOTJhMGUzY2E2ZjcyN2FmNzFiOGZkMjA2NDYwYzdhZmQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ5OjUxIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGFscHI6IHJlbW92ZSB1bnVzZWQgYm9hcmQgc3BlY2lmaWMgZmxhc2ggZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFmOTRkMTYyZTJiNWYwZWRjMjhkOWZiMTE0ODI1MDJjNDRkMjE4ZTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDg6NDEgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBGaXggcHJvYmxlbSB3aXRoIGJvYXJkIHNwZWNpZmljIHJlc2V0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWMwYzJlYzcyNWFlYzk1MjRhMTc3YTc3Y2U3NTU1OWU2NDRhOTMxYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0NjowNiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBSZW1vdmUgdGVzdGluZyA0eHggZW5ldCBQSFkgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWMyY2UyMjYyMDY5NTEwZjMxYzdkM2ZkN2VmZDNkNThiOGMwYzE0OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDoxMjoxNyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgUHJvZHJpdmUgQUxQUiBib2FyZCBzdXBwb3J0ICg0NDBHWCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNThiNDg1Nzc2Njk4YzNkNzFlYzVhMjE1ZTM5MjEyM2I0YzE1YWZhMwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NTE6MjEgMjAwNiArMDEwMAoKICAgIEFkZCBhIHNtYWxsIFJFQURNRSB3aXRoIGluZm9ybWF0aW9uIG9uIHRoZSBnZW5lcmljIG9oY2kgZHJpdmVyLgoKY29tbWl0IGFlM2I3NzBlNGVhZThlOThiNmU5ZTI5NjYyZTE4YzQ3ZmRmMDE3MWYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjQ2OjQ2IDIwMDYgKzAxMDAKCiAgICBGaXggc29tZSBlbmRpYW5uZXNzIGlzc3VlcyByZWxhdGVkIHRvIHRoZSBnZW5lcmljIG9oY2kgZHJpdmVyCgpjb21taXQgN2I1OWIzYzdhOGNlMmU0YjU2N2FiZjk5YzFjZDY2N2JmMzViOTQxOApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDQ6NTggMjAwNiArMDEwMAoKICAgIEludHJvZHVjZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIENPTkZJR19VU0JfT0hDSV9ORVcgaW4gb3JkZXIgdG8gYmUgYWJsZQogICAgdG8gY2hvb3NlIGJldHdlZW4gdGhlIG9sZCBhbmQgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXJzLgoKY29tbWl0IDUzZTMzNmU5ZmZjNTEwMzViZGM0ZTU4Njc2MzFiMzM3ODc2MWI0ZGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjQzOjA5IDIwMDYgKzAxMDAKCiAgICBNb2RpZmllZCB0aGUgbXBjNXh4eCBhbmQgdGhlIHBwYzR4eCBjcHUgdG8gdXNlIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVyCiAgICBhbmQgYWRhcHRlZCBib2FyZCBjb25maWdzIFRRTTUyMDAgYW5kIHlvc2VtaXRlIGFjY29yZGluZ2x5LiBUaGlzIGNvbW1pdAogICAgYWxzbyBtYWtlcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygcm9vdCBodWIgcG9ydHMgY29uZmlndXJhYmxlCiAgICAoQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTKS4KCmNvbW1pdCA3OGQ2MjBlYmI1ODcxZDI1MjI3MGRlZGZhZDYwYzY1Njg5OTNiNzgwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAYXRsYXMuZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMyAyMjo1ODo1OCAyMDA2ICswMTAwCgogICAgVXBkYXRlcyBmb3IgVFFNNTIwMCBtb2R1bGVzOgogICAgLSBmaXggb2ZmLWJ5LW9uZSBlcnJvciBpbiBib2FyZC90cW01MjAwL2NhbTUyMDBfZmxhc2guYyBlcnJvciBtZXNzYWdlCiAgICAtIHNpbXBsaWZ5ICJ1ZGF0ZSIgZGVmaW5pdGlvbnMKCmNvbW1pdCAyMDUzMjgzMzA0ZWVkZGYyNTBkMTA5ZTY3OTFlYjZmYTRjYWQxNGY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDIyIDEzOjIwOjUwIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eCBzdGFydC5TOiBGaXggZm9yIHByb2Nlc3NvciBlcnJhdGEKCiAgICBGaXhlZCBjcHUvcHBjNHh4L3N0YXJ0LlMgZm9yIDQ0MEVQeCBFcnJhdGE6IGZ1cnRoZXIgY29ycmVjdHMgUFBDNDQwRVB4CiAgICBlcnJhdGEgMS4xMjogNDQwXzMzIGJ5IG1vdmluZyBwYXRjaCB1cCBpbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmYgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRlZjYyNTE0MDNmNjM3ODQxMDAwZTBmZWY5ZTgzMmFhMDEzMzk4MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjAgMjA6Mzk6NTIgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgU2VxdW9pYSBjb25maWcgZmlsZSB0byBzdXBwb3J0IDY0TUJ5dGUgTk9SIEZMQVNICgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU0YmJkOGRhMTY0Yjk3NmQzODYxNmJkOWM2OWM1ZTg2ZTE5M2NkZjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyMCAxMDoyODozMCAyMDA2ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDI2MDQyMWEyMWU5MzRhNjhkMzFmYjYxMjViMGZiZDI2MzFhOGNhMjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMTMgMTM6NTU6MjQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQ0ZJIGRyaXZlciBBTUQgQ29tbWFuZCBTZXQgVG9wIGJvb3QgZ2VvbWV0cnkgcmV2ZXJzYWwsIGV0Yy4gW1VwZGF0ZWRdCgogICAgICAgKiBBZGRzIHN1cHBvcnQgZm9yIEFNRCBjb21tYW5kIHNldCBUb3AgQm9vdCBmbGFzaCBnZW9tZXRyeSByZXZlcnNhbAogICAgICAgKiBBZGRzIHN1cHBvcnQgZm9yIHJlYWRpbmcgSkVERUMgTWFudWZhY3R1cmVyIElEIGFuZCBEZXZpY2UgSUQKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciBkaXNwbGF5aW5nIGNvbW1hbmQgc2V0LCBtYW51ZmFjdHVyZXIgaWQgYW5kCgkgZGV2aWNlIGlkcyAoZmxpbmZvKQogICAgICAgKiBNYWtlcyBmbGluZm8gb3V0cHV0IHRvIGJlIGNvbnNpc3RlbnQgd2hlbiBDRkdfRkxBU0hfRU1QVFlfSU5GTyBkZWZpbmVkCiAgICAgICAqIFJlbW92ZXMgb3V0ZGF0ZWQgY2hhbmdlIGhpc3RvcnkgKHJlZmVyIHRvIGdpdCBsb2cgaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb2x1bmF5IE9ya3VuIDxsaXN0bWVtYmVyQG9ya3VuLnVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGIyMWI1MTFkNGM1MDQwOGY0ODUzZjQ2ZjA2YjYwMTI3MjE5NjIyM2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxMiAyMToxMzoyMyAyMDA2ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGNlM2YxYTQwYzUwN2FmYmFiMDZjNWViNThjY2RjNjcxM2VkYTMyNDUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTYXQgTm92IDExIDIyOjQ4OjIyIDIwMDYgKzAxMDAKCiAgICBEaXNhYmxlIHRoZSB3YXRjaGRvZyBpbiB0aGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBWMzhCIGJvYXJkLgoKY29tbWl0IDQ0YTQ3ZTZkYjI2OTQ4NDEyMTFmMWM4ZmRiYWZkMzY5OTJlOWNkMWEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTYXQgTm92IDExIDIyOjQzOjAwIDIwMDYgKzAxMDAKCiAgICBDaGFuZ2UgdGhlIEdQSU8gcGluIG11bHRpcGxleGluZyBjb25maWd1cmF0aW9uIGZvciBWMzhCLiBUaGUgVVNCIEdQSU8gcGluCiAgICBncm91cCBpcyBlbmFibGVkIGZvciBVU0IgZWFybGllciAoaW4gY3B1X2luaXRfZigpIGluc3RlYWQgb2YKICAgIHVzYl9sb3dsZXZlbF9pbml0KCkpLgoKY29tbWl0IDkxNjUwYjNlNGRlNjg4MDM4ZDRmNzEyNzljNDQ4NThlM2UyYzY4NzAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiA2IDE3OjA2OjM2IDIwMDYgKzAxMDAKCiAgICBTZXF1ZW50aWFsIGFjY2Vzc2VzIHRvIG5vbi1leGlzdGVudCBtZW1vcnkgbXVzdCBiZSBzeW5jaHJvbml6ZWQsCiAgICBhdCBsZWFzdCBvbiBHMiBjb3Jlcy4KCiAgICBUaGlzIGZpeGVzIGdldF9yYW1fc2l6ZSgpIHByb2JsZW1zIG9uIE1QQzUyMDAgUmV2LiBCIGJvYXJkcy4KCmNvbW1pdCBiZTVlNjE4MTVkNWExZmFjMjkwY2U5YzBlZjA5Y2I2YThlNDI4OGZhCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDE5OjE1OjAwIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBVcGRhdGUgODN4eCB0byB1c2UgZnNsX2kyYy5jCgogICAgVXBkYXRlIHRoZSA4M3h4IHRyZWUgdG8gdXNlIEkyQyBzdXBwb3J0IGluIGRyaXZlcnMvZnNsX2kyYy5jLiAgRGVsZXRlCiAgICBjcHUvbXBjODN4eC9pMmMuYywgaW5jbHVkZS9hc20tcHBjL2kyYy5oLCBhbmQgYWxsIHJlZmVyZW5jZXMgdG8gdGhvc2UgZmlsZXMuCiAgICBBZGRlZCBtdWx0aXBsZSBJMkMgYnVzIHN1cHBvcnQgdG8gZnNsX2kyYy5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDIzOWQ3NGIxYzkzNzk4NGJjNTE5MDgzYThlN2RlMzczYTM5MGYwNgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMjowMDoyOCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogUmVwbGFjZSBDRkdfSU1NUkJBUiB3aXRoIENGR19JTU1SCgogICAgUmVwbGFjZSBhbGwgaW5zdGFuY2VzIG9mIENGR19JTU1SQkFSIHdpdGggQ0ZHX0lNTVIsIHNvIHRoYXQgdGhlIDgzeHgKICAgIHRyZWUgbWF0Y2hlcyB0aGUgb3RoZXIgOHh4eCB0cmVlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3ZmIyZTcwM2VjOTY4ODU0MTQxNjk2MjcyNGFkZmY3MGE3MzIyY2IKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6NDc6MTEgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IExpbmRlbnQgYW5kIGNsZWFuIHVwIGNwdS9tcGM4M3h4L3NwZWVkLmMKCmNvbW1pdCA5MGYzMGE3MTBhM2M2MTliNTQwNTg2MGE2ODZjNGRkZmM0OTVkNGI2CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjA1OjUwIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGluY29ycmVjdCBkY2J6IG9wZXJhdGlvbgoKICAgIFRoZSA4MzR4IHJldjEueCBzaWxpY29uIGhhcyBvbmUgQ1BVNSBlcnJhdGEuCgogICAgVGhlIGlzc3VlIGlzIHdoZW4gdGhlIGRhdGEgY2FjaGUgbG9ja2VkIHdpdGgKICAgIEhJRDBbRExPQ0tdLCB0aGUgZGNieiBpbnN0cnVjdGlvbiBsb29rcyBsaWtlIG5vLW9wIGluc3QuCgogICAgVGhlIHJpZ2h0IGJlaGF2aW9yIG9mIHRoZSBkYXRhIGNhY2hlIGlzIHdoZW4gdGhlIGRhdGEgY2FjaGUKICAgIExvY2tlZCB3aXRoIEhJRDBbRExPQ0tdLCB0aGUgZGNieiBpbnN0cnVjdGlvbiBhbGxvY2F0ZXMKICAgIG5ldyB0YWdzIGluIGNhY2hlLgoKICAgIFRoZSA4MzR4IHJldjMuMCBhbmQgbGF0ZXIgYW5kIDgzNjAgaGF2ZSBub3QgdGhpcyBidWcgaW5zaWRlLgoKICAgIFNvLCB3aGVuIDgzNHggcmV2My4wLzgzNjAgYXJlIHdvcmtpbmcgd2l0aCBFQ0MsIHRoZSBkY2J6CiAgICBpbnN0cnVjdGlvbiB3aWxsIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLCB0aGUgcHJvY2Vzc29yIHdpbGwKICAgIGNoZWNrc3RvcCByZXNldC4KCiAgICBIb3dldmVyLCB0aGUgODM0eCByZXYxLnggY2FuIHdvcmsgd2l0aCBFQ0Mgd2l0aCB0aGVzZSBjb2RlLAogICAgYmVjYXVzZSB0aGUgc2lsbGljb24gaGFzIHRoaXMgY2FjaGUgYnVnLiBUaGUgZGNieiB3aWxsIG5vdAogICAgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUuCiAgICBSZWFsbHksIGl0IGlzIHRoZSBmYXVsdCBjb2RlIHJ1bm5pbmcgb24gZmF1bHQgc2lsbGljb24uCgogICAgVGhpcyBwYXRjaCBmaXggdGhlIGluY29ycmVjdCBkY2J6IG9wZXJhdGlvbi4gSW5zdGVhZCBvZgogICAgQ1BVIEZQIHdyaXRpbmcgdG8gaW5pdGlhbGlzZSB0aGUgRUNDLgoKICAgIENIQU5HRUxPRzoKICAgICogRml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24gaW5zdGVhZCBvZiBDUFUgRlAKICAgIHdyaXRpbmcgdG8gaW5pdGlhbGlzZSB0aGUgRUNDIG1lbW9yeS4gT3RoZXJ3aXNlLCBpdAogICAgd2lsbCBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZSwgVGhlIHByb2Nlc3NvciB3aWxsIGNoZWNrc3RvcAogICAgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjBiNTQyZDY3NzNhNWExY2JjZTc3NjkxZjAwOWIwNmQ5YWViNTdkCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAwOjEwOjQwIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgT0ZfRkxBVF9UUkVFIGJpdHMgdG8gODN4eCBib2FyZHMKCiAgICBhZGQgZnRfcGNpX3NldHVwLCBPRl9DUFUsIE9GX1NPQywgT0ZfVEJDTEssIGFuZAogICAgU1RET1VUX1BBVEggY29uZmlndXJhdGlvbiBiaXRzIHRvIG1wYzgzNDllbWRzLAogICAgbXBjODM0OWl0eCwgYW5kIG1wYzgzNjBlbWRzIGJvYXJkIGNvZGUuCgogICAgcmVkbyBlbnZpcm9ubWVudCB0byB1c2UgYm9vdG0gd2l0aCB0aGUgZmR0YWRkcgogICAgZm9yIGJvb3RpbmcgQVJDSD1wb3dlcnBjIGtlcm5lbHMgYnkgZGVmYXVsdCwKICAgIGFuZCBwcm92aWRlIGRlZmF1bHQgZmR0YWRkciB2YWx1ZXMuCgpjb21taXQgNDgwNDEzNjViMzQyMDU4OWFkNDY0ZWJjNzc1MmUwMDUzNTM4YjcyOQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMDowNzoyNSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogY2hhbmdlIGZ0IGNvZGUgdG8gbW9kaWZ5IGxvY2FsLW1hYy1hZGRyZXNzIHByb3BlcnR5CgogICAgVXBkYXRlIDgzeHggT0YgY29kZSB0byB1cGRhdGUgbG9jYWwtbWFjLWFkZHJlc3MgcHJvcGVydGllcwogICAgZm9yIGV0aGVybmV0IGluc3RlYWQgb2YgdGhlIG9ic29sZXRlICdhZGRyZXNzJyBwcm9wZXJ0eS4KCmNvbW1pdCA5Y2E4ODBhMjUwODcwYTdkNTU3NTQyOTFiNTU5MWQyYjVmZTg5YjU0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAyMToyMzoxNiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IGR1YWwgSTJDIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5SVRYLCBNUEM4MzQ5RU1EUywgVFFNODM0eCwgYW5kIE1QQzgzNjBFTURTCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYW4gaW1wcm92ZWQgSTJDIHNldF9zcGVlZCgpLCB3aGljaCBoYW5kbGVzIGFsbCBjbG9jawogICAgZnJlcXVlbmNpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYzRiNTYyMmNlMDUwYjVlZTFlMTU0Yjk4ZGY2MzBkNzc4NjYxNjMyCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOTo1NDo1OSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIHRoZSBSRUFETUUubXBjODM2MGVtZHMKCiAgICBhZGQgZG9jL1JFQURNRS5tcGM4MzYwZW1kcyB0byBhY2NvbXBhbnkgdGhlIG5ldyBib2FyZCBzdXBwb3J0Cgpjb21taXQgNzczN2Q1YzY1OGM2MDZmOTk5ZGZiZTNlODZiMGZlZDQ5ZTVjNTBlZgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMjoxMToxNSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIFFFIGV0aGVybmV0IHN1cHBvcnQKCiAgICB0aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFFVSUNDIEVuZ2luZSBiYXNlZCBVQ0MgZ2lnYWJpdCBldGhlcm5ldCBkZXZpY2UuCgpjb21taXQgNWY4MjA0Mzk0ZTM5YmJlOGNkOWYwOGI4ZjhkMTQ1YjZjMDFmN2M3MwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxOTozMzo0NCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIE1QQzgzNjBFTURTIGJhc2ljIGJvYXJkIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIEZyZWVzY2FsZSBNUEM4MzYwRU1EUyBib2FyZC4KICAgIEluY2x1ZGVzIEREUiwgRFVBUlQsIExvY2FsIEJ1cywgUENJLgoKY29tbWl0IDIzODkyZTQ5MzUyZGU3NGY3ZmFjMzZmZjkwYmIxYmUxNDNkMTk1ZTMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjMwOjQwIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgdGhlIFFVSUNDIEVuZ2luZSAoUUUpIGltbWFwIGZpbGUKCiAgICBjb21tb24gUUUgaW1tYXAgZmlsZS4gIEFsc28gcmVxdWlyZWQgZm9yIDgzNjAuCgpjb21taXQgYjcwMTY1MmE0OTkyYmRjYzYyZmIxYTYwMzhhODViZWVmOWU1NWRhNApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6MjU6MzggMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzYwIHNwZWNpZmljcyB0byA4M3h4IGltbWFwCgogICAgTWFpbmx5IGFkZCBRRSBkZXZpY2UgZGVwZW5kZW5jaWVzLCB3aXRoIGFwcHJvcHJpYXRlIDgzNjAgcHJvdGVjdGlvbi4KICAgIExpbmRlbnQgYWxzbyBydW4uCgpjb21taXQgOTg4ODMzMzI0YTdmZGE0ODJjOGFjM2NhMjNlYjUzOWY4MjMyZTQwNApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6MTQ6NDEgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBQQ0ksIFVTQiwgYm9vdGFyZ3MgZm9yIE1QQzgzNDlFLW1JVFgKCiAgICBQUkVSRVFVSVNJVEUgUEFUQ0hFUzoKCiAgICAqIFRoaXMgcGF0Y2ggY2FuIG9ubHkgYmUgYXBwbGllZCBhZnRlciB0aGUgZm9sbG93aW5nIHBhdGNoZXMgaGF2ZSBiZWVuIGFwcGxpZWQ6CgogICAgICAxKSBETlgjMjAwNjA5MjE0MjAwMDAxNSAiQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYICAxLzIiCiAgICAgIDIpIEROWCMyMDA2MDkyMTQyMDAwMDI0ICJBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFggIDIvMiIKCiAgICBDSEFOR0VMT0c6CgogICAgKiBGb3IgdGhlIDgzNDlFLW1JVFgsIGZpeCBzb21lIHNpemUgdmFsdWVzIGluIHBjaV9pbml0X2JvYXJkKCksIGVuYWJsZQogICAgICB0aGUgY2xvY2sgZm9yIHRoZSAybmQgVVNCIGJvYXJkIChMaW51eCBrZXJuZWwgd2lsbCBoYW5nIG90aGVyd2lzZSksCiAgICAgIGFuZCBmaXggdGhlIENPTkZJR19CT09UQVJHUyBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJhZDZiNTEzYjMxMDcwYmQwYzAwMzc5MmVkMWMzZTdmNWQ3NDAzNTcKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE4OjQ0OjQyIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFgKCiAgICBQUkVSRVFVSVNJVEUgUEFUQ0hFUzoKCiAgICAqIFRoaXMgcGF0Y2ggY2FuIG9ubHkgYmUgYXBwbGllZCBhZnRlciB0aGUgZm9sbG93aW5nIHBhdGNoZXMgaGF2ZSBiZWVuIGFwcGxpZWQ6CgogICAgICAxKSBETlgjMjAwNjA5MDc0MjAwMDAyNCAiQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcyIKICAgICAgMikgRE5YIzIwMDYwOTA3NDIwMDAwMzMgIk11bHRpLWJ1cyBJMkMgaW1wbGVtZW50YXRpb24gb2YgTVBDODM0eCIKICAgICAgMykgRE5YIzIwMDYwOTEyNDIwMDAwNDEgIkFkZGl0aW9uYWwgTVBDODM0OSBzdXBwb3J0IGZvciBtdWx0aWJ1cyBpMmMiCiAgICAgIDQpIEROWCMyMDA2MDkxMjQyMDAwMDc4ICJBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgZmxhc2ggbWVtb3J5IHNpemVzIG9uIDgzeHggc3lzdGVtcyIKICAgICAgNSkgRE5YIzIwMDYwOTEyNDIwMDAwNjkgIkFkZCBzdXBwb3J0IGZvciBFcnJhdGEgRERSNiBvbiBNUEMgODM0eCBzeXN0ZW1zIgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEFkZCBzdXBwb3J0IGZvciB0aGUgRnJlZXNjYWxlIE1QQzgzNDlFLW1JVFggcmVmZXJlbmNlIGRlc2lnbiBwbGF0Zm9ybS4KICAgICAgVGhlIHNlY29uZCBUU0VDIChWaXRlc3NlIDczODUgc3dpdGNoKSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4M2RhNmQ5YjQ0NmNjMTIxMjM0NTU4NDRhZDExODdlMjM3NTYyNmYKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVHVlIFNlcCAxMiAxMDoxNTo1MyAyMDA2IC0wNDAwCgogICAgQWRkaXRpb25hbCBNUEM4MzQ5IHN1cHBvcnQgZm9yIG11bHRpYnVzIGkyYwoKICAgIEhlbGxvLAoKICAgIEhlcmUgaXMgYSBwYXRjaCBmb3IgYSBmaWxlIHRoYXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG91dCBvZiBhIHByZXZpb3VzCiAgICBhdHRlbXB0LgoKICAgIEl0IGFjY29tcGFuaWVzIHRoZSBwYXRjaCB3aXRoIHRpY2tldCBETlgjMjAwNjA5MDc0MjAwMDAyNAoKICAgIENIQU5HRUxPRzoKCSAgICBDaGFuZ2UgUENJIGluaXRpYWxpemF0aW9uIHRvIHVzZSBuZXcgbXVsdGktYnVzIEkyQyBBUEkuCgogICAgcmVnYXJkcywKICAgIEJlbgoKY29tbWl0IGIyNGYxMTlkNjcyYjcwOWQxNTNmZjJhYzA5MWQ0YWE2M2VjNjg3N2QKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IFNlcCA3IDE2OjUxOjA0IDIwMDYgLTA0MDAKCiAgICBNdWx0aS1idXMgSTJDIGltcGxlbWVudGF0aW9uIG9mIE1QQzgzNHgKCiAgICBIZWxsbywKCiAgICBBdHRhY2hlZCBpcyBhIHBhdGNoIGltcGxlbWVudGluZyBtdWx0aXBsZSBJMkMgYnVzZXMgb24gdGhlIE1QQzgzNHggQ1BVCiAgICBmYW1pbHkgYW5kIHRoZSBNUEM4MzQ5RU1EUyBib2FyZCBpbiBwYXJ0aWN1bGFyLgogICAgVGhpcyBwYXRjaCByZXF1aXJlcyBQYXRjaCAxIChBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzKS4KICAgIFRlc3Rpbmcgd2FzIHBlcmZvcm1lZCBvbiBhIDUzM01IeiBib2FyZC4KCiAgICAvKioqIE5vdGU6IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGlja2V0IEROWCMyMDA2MDgzMDQyMDAwMDI3ICoqKi8KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCiAgICBDSEFOR0VMT0c6CgkgICAgSW1wbGVtZW50ZWQgZHJpdmVyLWxldmVsIGNvZGUgdG8gc3VwcG9ydCB0d28gSTJDIGJ1c2VzIG9uIHRoZQogICAgTVBDODM0eCBDUFUgZmFtaWx5IGFuZCB0aGUgTVBDODM0OUVNRFMgYm9hcmQuICBBdmFpbGFibGUgSTJDIGJ1cyBzcGVlZHMKICAgIGFyZSA1MGtIeiwgMTAwa0h6IGFuZCA0MDBrSHogb24gZWFjaCBidXMuCgogICAgcmVnYXJkcywKICAgIEJlbgoKY29tbWl0IGJiOTlhZDZkODI1N2JmODI4ZjE1MGQ0MGY1MDdiMzBkODBhNGE3YWUKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IFNlcCA3IDE2OjUwOjU0IDIwMDYgLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzCgogICAgSGVsbG8sCgogICAgQXR0YWNoZWQgaXMgYSBwYXRjaCBwcm92aWRpbmcgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzIGF0IHRoZQogICAgY29tbWFuZCBsZXZlbC4gIFRoZSBzZWNvbmQgcGFydCBvZiB0aGUgcGF0Y2ggaW5jbHVkZXMgYW4gaW1wbGVtZW50YXRpb24KICAgIGZvciB0aGUgTVBDODM0eCBDUFUgYW5kIE1QQzgzNDlFTURTIGJvYXJkLgoKICAgIC8qKiogTm90ZTogVGhpcyBwYXRjaCByZXBsYWNlcyB0aWNrZXQgRE5YIzIwMDYwODMwNDIwMDAwMTggKioqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKICAgIE92ZXJ2aWV3OgoKICAgIDEuIEluY2x1ZGUgbmV3ICdpMmMnIGNvbW1hbmQgKGJhc2VkIG9uIFVTQiBpbXBsZW1lbnRhdGlvbikgdXNpbmcKICAgIENPTkZJR19JMkNfQ01EX1RSRUUuCgogICAgMi4gQWxsb3cgbXVsdGlwbGUgYnVzZXMgYnkgZGVmaW5pbmcgQ09ORklHX0kyQ19NVUxUSV9CVVMuICBOb3RlIHRoYXQKICAgIHRoZSBjb21tYW5kcyB0byBjaGFuZ2UgYnVzIG51bWJlciBhbmQgc3BlZWQgYXJlIG9ubHkgYXZhaWxhYmxlIHVuZGVyIHRoZQogICAgbmV3ICdpMmMnIGNvbW1hbmQgbWVudGlvbmVkIGluIHRoZSBmaXJzdCBidWxsZXQuCgogICAgMy4gVGhlIG9wdGlvbiBDRkdfSTJDX05PUFJPQkVTIGhhcyBiZWVuIGV4cGFuZGVkIHRvIHdvcmsgaW4gbXVsdGktYnVzCiAgICBzeXN0ZW1zLiAgV2hlbiBDT05GSUdfSTJDX01VTFRJX0JVUyBpcyB1c2VkLCB0aGlzIG9wdGlvbiB0YWtlcyB0aGUgZm9ybQogICAgb2YgYW4gYXJyYXkgb2YgYnVzLWRldmljZSBwYWlycy4gIE90aGVyd2lzZSwgaXQgaXMgYW4gYXJyYXkgb2YgdWNoYXIuCgogICAgQ0hBTkdFTE9HOgoJICAgIEFkZGVkIG5ldyAnaTJjJyBtYXN0ZXIgY29tbWFuZCBmb3IgYWxsIEkyQyBpbnRlcmFjdGlvbi4gIFRoaXMgaXMKICAgIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgd2l0aCBDT05GSUdfSTJDX0NNRF9UUkVFLiAgTmV3IGNvbW1hbmRzIGFkZGVkIGZvcgogICAgc2V0dGluZyBJMkMgYnVzIHNwZWVkIGFzIHdlbGwgYXMgY2hhbmdpbmcgdGhlIGFjdGl2ZSBidXMgaWYgdGhlIGJvYXJkCiAgICBoYXMgbW9yZSB0aGFuIG9uZSAoY29uZGl0aW9uYWxseSBjb21waWxlZCB3aXRoCiAgICBDT05GSUdfSTJDX01VTFRJX0JVUykuICBVcGRhdGVkIE5PUFJPQkUgbG9naWMgdG8gaGFuZGxlIG11bHRpcGxlIGJ1c2VzLgogICAgVXBkYXRlZCBSRUFETUUuCgogICAgcmVnYXJkcywKICAgIEJlbgoKY29tbWl0IGJlZDg1Y2FmODcyNzE0ZWJmNTMwMTM5NjdhNjk1YzlkNjNhY2ZjNjgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE4OjEzOjM2IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgRXJyYXRhIEREUjYgb24gTVBDIDgzNHggc3lzdGVtcwoKICAgIENIQU5HRUxPRzoKCiAgICAqIEVycmF0YSBERFI2LCB3aGljaCBhZmZlY3RzIGFsbCBjdXJyZW50IE1QQyA4MzR4IHByb2Nlc3NvcnMsIGxpc3RzIGNoYW5nZXMKICAgICAgcmVxdWlyZWQgdG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHZhcmlvdXMgdHlwZXMgb2YgRERSIG1lbW9yeS4gIFRoaXMKICAgICAgcGF0Y2ggaW1wbGVtZW50cyB0aG9zZSBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWZkNmU0NzBmNjM5ODgzMDAyYzdjNTlkNTYyNjkwYTVjYjBmNDg2NQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTg6NDU6MjMgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBUUU0gYnVpbGQgYnkgZGVmaW5pbmcgYSBDRkdfRkxBU0hfU0laRSBmb3IgaXQKCmNvbW1pdCAzMTA2OGI3YzRhYmVlZmNiMmM4ZmQ0ZmJlY2NjOGVjNmM2ZDA0NzVhCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxNzowNzowMCAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHZhcmlhYmxlIGZsYXNoIG1lbW9yeSBzaXplcyBvbiA4M3h4IHN5c3RlbXMKCiAgICBDSEFOR0VMT0c6CgogICAgKiBPbiA4M3h4IHN5c3RlbXMsIHVzZSB0aGUgQ0ZHX0ZMQVNIX1NJWkUgbWFjcm8gdG8gcHJvZ3JhbSB0aGUgTEJDIGxvY2FsIGFjY2VzcwogICAgICAgd2luZG93IHJlZ2lzdGVycywgaW5zdGVhZCBvZiB1c2luZyBhIGhhcmQtY29kZWQgdmFsdWUgb2YgOE1CLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmZjMzRhZTY2ZTczZmE3ODQxZDFhMDA2ZGMxYjVkY2JjMWY3ODk2NQpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6Mzg6MTMgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFVuaWZpZWQgVFFNODM0eCB2YXJpYWJsZSBuYW1lcyB3aXRoIDgzeHggYW5kIGNvbnNvbGlkYXRlZCBtYWNyb3MKCiAgICBVbmlmaWVkIFRRTTgzNHggdmFyaWFibGUgbmFtZXMgd2l0aCA4M3h4IGFuZCBjb25zb2xpZGF0ZWQgbWFjcm8KICAgIGluIHByZXBhcmF0aW9uIGZvciB0aGUgODM2MCBhbmQgb3RoZXIgdXBjb21pbmcgODN4eCBkZXZpY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2ZWRhN2Y4MGNjYzEzZDY1ODAyMDI2OGM1MDdkNzE3M2NmMmU4YWEKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI1IDE0OjQxOjIxIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBDaGFuZ2VkIHRvIHVuaWZpZWQgbXB4ODN4eCBuYW1lcyBhbmQgYWRkZWQgY29tbW9uIDgzeHggY2hhbmdlcwoKICAgIEluY29ycG9yYXRlZCB0aGUgY29tbW9uIHVuaWZpZWQgdmFyaWFibGUgbmFtZXMgYW5kIHRoZSBjaGFuZ2VzIGluIHByZXBhcmF0aW9uCiAgICBmb3IgcmVsZWFzaW5nIG1wYzgzNjAgcGF0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4OTRjNDZjMjdjNjQ4OTFmOTNhYzA0ZWRkZTg2YTlmYTk3NThkOTIKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM2OjAyIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggbWlzc2luZyBidWlsZCBmb3IgbXBjODM0OWVtZHMgcGNpLmMKCiAgICBNYWtlIHBjaSBidWlsZCBmb3IgbXBjODM0OWVtZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwOWE4MWZmNzQwYjI5ZGVlYTFlMmFiMDhhM2MyYWMxMzZjMmU2MjE5CkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozOTo0OSAyMDA2ICswODAwCgogICAgbXBjODN4eDogUmVtb3ZlZCB1bnVzZWQgZmlsZSByZXNldHZlYy5TIGZvciBtcGM4M3h4IGNwdQoKICAgIFJlbW92ZWQgdW51c2VkIGZpbGUgcmVzZXR2ZWMuUyBmb3IgbXBjODN4eCBjcHUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNGY4OTlmYzQ2NWMzZTQ0ZjJiNTVlY2M3MDYxOGY1Njk2ZmMwZGRmCkF1dGhvcjogTmljayBTcGVuY2UgPE5pY2suU3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBTZXAgMzAgMDA6MzI6NTkgMjAwNiAtMDcwMAoKICAgIE5BTkQgRmxhc2ggdmVyaWZ5IGFjcm9zcyBibG9jayBib3VuZGFyaWVzCgogICAgVGhpcyBwYXRjaCBhZGRyZXNzZXMgYSBwcm9ibGVtIHdoZW4gQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcwogICAgZGVmaW5lZAogICAgYW5kIHRoZSB3cml0ZSBjcm9zc2VzIGEgYmxvY2sgYm91bmRhcnkuIFRoZSBwb2ludGVyIHRvIHRoZSB2ZXJpZmljYXRpb24KICAgIGJ1ZmZlciAoYnVmc3RhcnQpIGlzIG5vdCBiZWluZyB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIHN0YXJ0aW5nIG9mIHRoZQogICAgbmV3CiAgICBibG9jayBzbyB0aGUgdmVyaWZpY2F0aW9uIG9mIHRoZSBzZWNvbmQgYmxvY2sgZmFpbHMuCgogICAgQ0hBTkdFTE9HOgoKICAgICogRml4IE5BTkQgRkxBU0ggcGFnZSB2ZXJpZmljYXRpb24gYWNyb3NzIGJsb2NrIGJvdW5kYXJpZXMKCmNvbW1pdCBmNDg0ZGM3OTFhMzkzMjUzNzIxM2M0M2M2NTRjYzEyOTVjNjRiODRjCkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgNyAwNzozOTo0NiAyMDA2IC0wNzAwCgogICAgQWRkZWQgUkdNSUkgc3VwcG9ydCB0byB0aGUgVFNFQ3MgYW5kIE1hcnZlbGwgODgxMTExIFBoeQoKICAgIEFkZGVkIGEgcGh5IGluaXRpYWxpemF0aW9uIHRvIGFkanVzdCB0aGUgUkdNSUkgUlggYW5kIFRYIHRpbWluZwogICAgQWx3YXlzIHNldCB0aGUgUjEwMCBiaXQgaW4gMTAwIEJhc2VUIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgVFNFQyBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDgzMWM4YjhhOTc3OTlkYTc3OTIzZDZiYmI0YzI2MGMwZDQ1NTIxYwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEzOjEwOjAwIDIwMDYgKzA4MDAKCiAgICBSZW1vdmUgc29tZSB1bnVzZWQgQ0ZHIGRlZmluZS4KICAgIHVuZGVmIENGR19EUkFNX1RFU1QKCmNvbW1pdCA5OWMwOWM0ZGVjMzRmNzdjMjQzYmY1MWJlYTUzMmUzZjMzOTQxMGFkCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTM6MDc6MzYgMjAwNiArMDgwMAoKICAgIENoYW5nZSB0aGUgVEVYVF9CQVNFIGZyb20gMHhGRkYwMDAwMCB0byAweEZGMDAwMDAwLgogICAgQm90aCB3b3JrLiAweEZGMDAwMDAwIHNlZW1zIG1vcmUgcmVhc29uYWJsZS4KCmNvbW1pdCBjNTkyMDA0NDMwNzIzNTMwNDRhYTRiZjczN2E1YTYwZjlhOWFmMjMxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMiAxNToxNTowMSAyMDA2ICswMTAwCgogICAgUmVsZWFzZSBVLUJvb3QgMS4xLjYKCmNvbW1pdCBjMWZiZTQxMDNhMGQ2Yzg5NTdmOTEyYWY5MDJkNzA1YmE2NzgzNmYyCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MTQ6NDggMjAwNiArMDgwMAoKICAgIFRoaXMgcGF0Y2ggY29tZXMgZnJvbSBZdWxpJ3MgcG9zdGVkIHBhdGNoIG9uIDgvOC8yMDA2CiAgICB0aXRsZWQgIkNGSSBEcml2ZXIgTGl0dGxlLUVuZGlhbiB3cml0ZSBJc3N1ZSIuCgogICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsYXJjaGl2ZS9tZXNzYWdlLnBocD9tc2dfaWQ9MzYzMTE5OTkKCiAgICBJZiB0aGF0IHBhdGNoIGFwcGxpZWQsIHBsZWFzZSBkaXNjYXJkIHRoaXMgb25lLgogICAgVW50aWwgbm93ICwgSSBkbyBub3Qgc2VlIGhpcyBwYXRjaCBpcyBhcHBsaWVkLiBTbyBwbGVhc2UgYXBwbHkgdGhpcyBvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogWXVsaSBCYXJjb2hlbiA8eXVsaUBhcmFiZWxsYXN3LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiODI1ZjE1OGU0NDllMWU5Y2Y3NGMwOGU1NzI5NTVlMTIyMzk0Yzk2CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MTI6MzEgMjAwNiArMDgwMAoKICAgIFRzaTEwOCBvbiBjaGlwIGkyYyBzdXBwb3J0LgoKICAgIFRoZSBpMmMgIEludGVyZmFjZSBwcm92aWRlcyBhIG1hc3Rlci1vbmx5LCBzZXJpYWwgaW50ZXJmYWNlIHRoYXQgY2FuIGJlCiAgICB1c2VkIGZvciBpbml0aWFsaXppbmcgVHNpMTA4L1RzaTEwOSByZWdpc3RlcnMgZnJvbSBhbiBFRVBST00gYWZ0ZXIgYQogICAgZGV2aWNlIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTIyNmU3ZDZmMDliOWExYWMwNzRjZDkxOGM4MTIyNWE0Njg5YmJhOApBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjExOjA2IDIwMDYgKzA4MDAKCiAgICBUc2kxMDggb24gY2hpcCBwY2kgY29udHJvbGxlciBzdXBwb3J0LgoKICAgIElmIHRoZXJlIGlzIG5vIHBjaSBjYXJkLCB0aGUgdHNpMTA4LzEwOSBwY2kgY29uZmlndXJlIHJlYWQgd2lsbAogICAgY2F1c2UgYSBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiB0byB0aGUgcHJvY2Vzc29yLiBQQ0kgZXJyb3Igc2hvdWxkCiAgICBhbHNvIGJlIGNsZWFyZWQgYWZ0ZXIgdGhlIHJlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTkyN2NlZTk3NzEyNmU1NDdjZWViYTIzZTRmOTc4ZjM3N2NmYjhmCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MDg6NTUgMjAwNiArMDgwMAoKICAgIFR1bmRyYSB0c2kxMDggb24gY2hpcCBFdGhlcm5ldCBjb250cm9sbGVyIHN1cHBvcnQuCgogICAgVGhlIGZvbGxvd2luZyBpcyBhIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBFdGhlcm5ldCBjb250cm9sbGVyOgogICAgVGhlIFRzaTEwOC85IEV0aGVybmV0IENvbnRyb2xsZXIgY29ubmVjdHMgU3dpdGNoIEZhYnJpYyB0byB0d28gaW5kZXBlbmRlbnQKICAgIEdpZ2FiaXQgRXRoZXJuZXQgcG9ydHMsRTAgYW5kIEUxLiAgSXQgdXNlcyBhIHNpbmdsZSBNYW5hZ2VtZW50IGludGVyZmFjZQogICAgdG8gbWFuYWdlIHRoZSB0d28gcGh5c2ljYWwgY29ubmVjdGlvbiBkZXZpY2VzIChQSFlzKS4gIEVhY2ggRXRoZXJuZXQgcG9ydAogICAgaGFzIGl0cyBvd24gc3RhdGlzdGljcyBtb25pdG9yIHRoYXQgdHJhY2tzIGFuZCByZXBvcnRzIGtleSBpbnRlcmZhY2UKICAgIHN0YXRpc3RpY3MuICBFYWNoIHBvcnQgc3VwcG9ydHMgYSAyNTYtZW50cnkgaGFzaCB0YWJsZSBmb3IgYWRkcmVzcwogICAgZmlsdGVyaW5nLglJbiBhZGRpdGlvbiwgZWFjaCBwb3J0IGlzIGJyaWRnZWQgdG8gdGhlIFN3aXRjaCBGYWJyaWMKICAgIHRocm91Z2ggYSAyLUtieXRlIHRyYW5zbWl0IEZJRk8gYW5kIGEgNC1LYnl0ZSBSZWNlaXZlIEZJRk8uCgogICAgRWFjaCBFdGhlcm5ldCBwb3J0IGFsc28gaGFzIGEgcGFpciBvZiBpbnRlcm5hbCBFdGhlcm5ldCBETUEgY2hhbm5lbHMgdG8KICAgIHN1cHBvcnQgdGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIGRhdGEgZmxvd3MuICBUaGUgRXRoZXJuZXQgRE1BIGNoYW5uZWxzCiAgICB1c2UgZGVzY3JpcHRvcnMgc2V0IHVwIGluIG1lbW9yeSwgdGhlIG1lbW9yeSBtYXAgb2YgdGhlIGRldmljZSwgYW5kCiAgICBhY2Nlc3MgdmlhIHRoZSBTd2l0Y2ggRmFicmljLiAgVGhlIEV0aGVybmV0IENvbnRyb2xsZXI/cyBETUEgYXJiaXRlcgogICAgaGFuZGxlcyBhcmJpdHJhdGlvbiBmb3IgdGhlIFN3aXRjaCBGYWJyaWMuCVRoZSBDb250cm9sbGVyIGFsc28KICAgIGhhcyBhIHJlZ2lzdGVyIGJ1c2ludGVyZmFjZSBmb3IgcmVnaXN0ZXIgYWNjZXNzZXMgYW5kIHN0YXR1cyBtb25pdG9yCiAgICBjb250cm9sLgoKICAgIFRoZSBQTUQgKFBoeXNpY2FsIE1lZGlhIERldmljZSkgaW50ZXJmYWNlIG9wZXJhdGVzIGluIE1JSSwgR01JSSwgb3IgVEJJCiAgICBtb2Rlcy4gIFRoZSBNSUkgbW9kZSBpcyB1c2VkIGZvciBjb25uZWN0aW5nIHdpdGggMTAgb3IgMTAwIE1iaXQvcyBQTURzLgogICAgVGhlIEdNSUkgYW5kIFRCSSBtb2RlcyBhcmUgdXNlZCB0byBjb25uZWN0IHdpdGggR2lnYWJpdCBQTURzLiAgSW50ZXJuYWwKICAgIGRhdGEgZmxvd3MgdG8gYW5kIGZyb20gdGhlIEV0aGVybmV0IENvbnRyb2xsZXIgdGhyb3VnaCB0aGUgU3dpdGNoIEZhYnJpYy4KCiAgICBFYWNoIEV0aGVybmV0IHBvcnQgdXNlcyBpdHMgdHJhbnNtaXQgYW5kIHJlY2VpdmUgRE1BIGNoYW5uZWxzIHRvIG1hbmFnZQogICAgZGF0YSBmbG93cyB0aHJvdWdoIGJ1ZmZlciBkZXNjcmlwdG9ycyB0aGF0IGFyZSBwcmVkZWZpbmVkIGJ5IHRoZQogICAgc3lzdGVtICh0aGUgZGVzY3JpcHRvcnMgY2FuIGV4aXN0IGFueXdoZXJlIGluIHRoZSBzeXN0ZW0gbWVtb3J5IG1hcCkuCiAgICBUaGVzZSBkZXNjcmlwdG9ycyBhcmUgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgcG9pbnQgdG8gYnVmZmVycyBmaWxsZWQKICAgIHdpdGggZGF0YSByZWFkeSB0byB0cmFuc21pdCBvdmVyIEV0aGVybmV0LCBvciB0aGV5IHBvaW50IHRvIGVtcHR5CiAgICBidWZmZXJzIHJlYWR5IHRvIHJlY2VpdmUgZGF0YSBmcm9tIEV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzhhYTBjMzQyN2YzZWNkZWIzNGFhYmZiYmUyZGQyM2I2YWQ4ZjQwZQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjAxOjMzIDIwMDYgKzA4MDAKCiAgICBUdW5kcmEgdHNpMTA4IGhlYWRlciBmaWxlLgoKICAgIFRoZSBUdW5kcmEgU2VtaWNvbmR1Y3RvciBDb3Jwb3JhdGlvbiAoVHVuZHJhKSBUc2kxMDggaXMgYSBob3N0IGJyaWRnZSBmb3IKICAgIFBvd2VyUEMgcHJvY2Vzc29ycyB0aGF0IG9mZmVycyBudW1lcm91cyBzeXN0ZW0gaW50ZXJjb25uZWN0IG9wdGlvbnMgZm9yCiAgICBlbWJlZGRlZCBhcHBsaWNhdGlvbiBkZXNpZ25lcnMuIFRoZSBUc2kxMDggY2FuIGludGVyY29ubmVjdCA2MHggb3IKICAgIE1QWCBwcm9jZXNzb3JzIHRvIFBDSS9YIHBlcmlwaGVyYWxzLCBERFIyLTQwMCBtZW1vcnksIEdpZ2FiaXQgRXRoZXJuZXQsCiAgICBhbmQgRmxhc2guIFByb3ZpZGVkIHRoZSBtYWNybyBkZWZpbmUgZm9yIHRzaTEwOCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODdjNGRiMDk2OTljNmI4OTE3NmIzMTAwNGFmY2I4M2ViMTU4NWQ0NwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU5OjE1IDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydCBoaWdoIGxldmVsIGNvZGU6dHNpMTA4IGluaXQgKyBtcGM3NDQ4aHBjMi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI3ODAxYjhhYjExYzYxYjU3N2U0NTc0MmE1MTViYjNiMjNiODAyNDEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1NzoyMSAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIE1ha2UgLGNvbmZpZy5tayBhbmQgbGluayBmaWxlIGZvciB0aGUgbXBjNzQ0OGhwYzIgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjQxMWMwYzNiYmM3OWY5YmE4YWVmNTgyOTZhNDJkOGY5ZDhhMGE2CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTU6MDQgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBUaGUgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydCBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYyNWJiNWRkYjUwYjI0M2Y5MzEyNjJjYThjNDY5NTY0MDk0NzE5MTcKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1MjoyMSAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIFRoZSBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGxvdyBsZXZlbCBhc3NlbWJsZSBsYW5ndWFnZSBpbml0IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YzUyNzgzYjNkMDI0ZTE1M2M0OTcyYjk3MzMyZTMxNGJjM2JkYzQ2CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NDk6NTEgMjAwNiArMDgwMAoKICAgIEdlbmVyYWwgY29kZSBtb2RpZmljYXRpb24gZm9yIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQuCiAgICAxLiBBZGQgNzQ0N0EgYW5kIDc0NDggcHJvY2Vzc29yIHN1cHBvcnQuCiAgICAyLiBBZGQgdGhlIGZvbGxvd2luZyBmbGFncy4KCiAgICBDRkdfQ09ORklHX0JVU19DTEsgOiBJZiB0aGUgNzR4eCBidXMgZnJlcXVlbmN5IGNhbiBiZSBjb25maWd1cmVkIGR5bmFtaWNhbGx5CiAgICAoc3VjaCBhcyBieSBzd2l0Y2ggb24gYm9hcmQpLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBDRkdfRVhDRVBUSU9OX0FGVEVSX1JFTE9DQVRFOiBJZiBhbiBleGNlcHRpb24gb2NjdXJzIGFmdGVyIHRoZSB1LWJvb3QKICAgIHJlbG9jYXRlcyB0byBSQU0sIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIENGR19TRVJJQUxfSEFOR19JTl9FWENFUFRJT046IElmIHRoZSBwcmludCBvdXQgZnVuY3Rpb24gd2lsbCBjYXVzZSB0aGUKICAgIHN5c3RlbSBoYW5nIGluIGV4Y2VwdGlvbiwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgVGhlcmUgaXMgYSBkZXNpZ24gaXNzdWUgZm9yIHRzaTEwOC8xMDkgcGNpIGNvbmZpZ3VyZSAgcmVhZC4gV2hlbiBwY2kgc2NhbgogICAgdGhlIHNsb3RzLCBpZiB0aGVyZSBpcyBubyBwY2kgY2FyZCwgdGhlIHRzaTEwOC85IHdpbGwgY2F1c2UgYSBtYWNoaW5lCiAgICBjaGVjayBleGNlcHRpb24gZm9yIG1wYzc0NDggcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjkzNjZiZjQyZjIyZDY3ZWZjZThkYTNmOGM0MGE0M2Q0YTNjMjY5NQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjM0OjQ3IDIwMDYgKzA4MDAKCiAgICBBZGQgUkVBRE1FIGZpbGUgZm9yIG1wYzc0NDhocGMyIGJvYXJkLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1NzIxYjVjZWMyYmU0YmNlNzljZmFkZTE3ZWM4ZjZhYTFlNjc1MjYKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDI6MDQ6MzggMjAwNiArMDEwMAoKICAgIEZpbmlzaCB1cCBzdXBwb3J0IGZvciBNYXJlbFYzOEIgYm9hcmQKICAgICAtIGFkZCB3YXRjaGRvZyBzdXBwb3J0CiAgICAgLSBlbmFibGUgR1BJT19XS1VQXzcgcGluIGZvciBpbnB1dAogICAgIC0gY29kZSBjbGVhbnVwCgpjb21taXQgZmZhMTUwYmM5MGM5NDNjYTI2NTE3MGJkMWJlM2YyOTM2NzRkZDVjNwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMTo0NTo0NiAyMDA2ICswMTAwCgogICAgLSBGaXggaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiBFTERLIDQgd2hlbiBjb21waWxpbmcgZm9yIE1hcmVsVjM4QjoKCSAgKiByZW1vdmUgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgZXRoYWRkci5jCgkgICogYWRqdXN0IGxpbmtlciBzY3JpcHQgKGZpeGVzIGEgY3Jhc2ggcmVzdWx0aW5nIGZyb20gaW5jb3JyZWN0CgkgIGRlZmluaXRpb24gb2YgX191X2Jvb3RfY21kX3N0YXJ0KQogICAgLSBTb21lIE1hcmVsVjM4QiBjb2RlIGNsZWFudXAuCgpjb21taXQgZGFlODBmM2NhZjk3NTRhNmRkM2RkZjNjZjkwM2QwYzQ2Y2JkNDM4NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMTozODoxNiAyMDA2ICswMTAwCgogICAgLSBBZGQgTVBDNVhYWCByZWdpc3RlciBkZWZpbml0aW9uIE1QQzVYWFhfV1VfR1BJT19EQVRBX0kgYW5kIGNoYW5nZSB0aGUKICAgICAgTVBDNVhYWF9XVV9HUElPX0RBVEEgbWFjcm8gdG8gTVBDNVhYWF9XVV9HUElPX0RBVEFfTyAocGVyIE1QQzUyMDAgVXNlcidzCiAgICAgIE1hbnVhbCkuIFJlcGxhY2UgdGhlIHVzZXMgb2YgTVBDNVhYWF9XVV9HUElPX0RBVEEgd2l0aAogICAgICBNUEM1WFhYX1dVX0dQSU9fREFUQV9PIGZvciBhZmZlY3RlZCBib2FyZHMuCgogICAgLSBBZGQgZGVmaW50aW9ucyBmb3Igc29tZSBNUEM1WFhYIEdQSU8gcGlucy4KCmNvbW1pdCA4MmQ5YzllYzI5YTFiZWMxYjAzYmE2MTY0MjVlYmFlZDIzMTA3MmM4CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjM0OjI5IDIwMDYgKzAxMDAKCiAgICBDaGFuZ2VkIE1hcmVsVjM4QiBib2FyZCBtYWtlIHRhcmdldCB0byBsb3dlcmNhc2UuIENvbmZpZyBmaWxlIGNsZWFudXAuCgpjb21taXQgMTk1NGJlNmU5Yzk0MjFiNDVkMGE5ZDA1YjEwMzU2YWNjNzU2MzE1MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gT2N0IDI5IDAxOjAzOjUxIDIwMDYgKzAyMDAKCiAgICBBdXRvbWF0aWNhbGx5IGFkanVzdCBBUkZMQUdTIHNvICJtYWtlIC1zIiBpcyByZWFsbHkgc2lsZW50LgoKY29tbWl0IGZhZTY4NGU4OTg0NDg1NjM4M2JkZjEwMTQ0MDg4OTU1N2RmM2U2YjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTY6NDU6MDAgMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gb21hcDkyNS5jOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMjY1NTgxNTAyYWI4ZWE4YzA4ZThlZGJlOWJmNjRmYmQ2MmZkNzc2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE3OjEyOjU4IDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZCBzb21lIG1pc3NpbmcgbWFjaHR5cGVzIGZvciBuZXRzdGFyICYgdm9pY2VibHVlIGJvYXJkcwoKICAgIFVzZSBNQUNIX1RZUEVfTkVUU1RBUiBhbmQgTUFDSF9UWVBFX1ZPSUNFQkxVRSBkZWZpbmVzIGluc3RlYWQgb2YKICAgIG51bWJlcnMgaW4gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODU2ZjA1NDQxMGNlZjUyZDg2OGZlYjMzMDE2OGIyYTRjNDA5MTMyOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNTo1NTo1MiAyMDA2ICswMjAwCgogICAgW1BBVENIXSBOQU5EOiBQYXJ0aXRpb24gbmFtZSBzdXBwb3J0IGFkZGVkIHRvIE5BTkQgc3Vic3lzdGVtCgogICAgY2hwYXJ0LCBuYm9vdCBhbmQgTkFORCBzdWJzeXN0ZW0gcmVsYXRlZCBjb21tYW5kcyBub3cgYWNjZXB0IGFsc28gcGFydGl0aW9uCiAgICBuYW1lIHRvIHNwZWNpZnkgb2Zmc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwN2E2OWExOGMyZWNmZGE5MDQyMzFmZGYyM2UyNTIzZWE3NzkyZWI2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDI6Mjk6NDQgMjAwNiArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgMjc1MWE5NWFiZDFiOTY5MTEwODFjMzU3ZTk2YTEyZmE5N2I0MGRlZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI5OjE0IDIwMDYgKzAyMDAKCiAgICBFbmFibGUgY29tbWFuZGxpbmUgZWRpdGluZyBhbmQgaHVzaCBzaGVsbCBvbiBhbGwgVFFNIGJvYXJkcy4KCmNvbW1pdCA4MDc4ZjFhNWY2M2E3MzliODUzMzQ3OGY2YzJiNjJmYjFlMmY3OWQ3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDI6Mjg6MDIgMjAwNiArMDIwMAoKICAgIFJFQURNRSBzYXlzIENGR19BVVRPX0NPTVBMRVRFLCBidXQgb2NkZSB1c2VzIENPTkZJR19BVVRPX0NPTVBMRVRFCgpjb21taXQgNDcxYTdiZTdhMDQyZTk1ZTQ0MGY1ZGU5NjljOTc2NTIxNGFlOGQ2ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDE6MTQ6MzIgMjAwNiArMDIwMAoKICAgIENoZWNrIGZvciBpbGxlZ2FsIGNoYXJhY3RlciAnPScgaW4gZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZXMuCgogICAgTWFrZSBzdXJlIHRoZSBzdHJpbmcgcGFzc2VkIGFzIHZhcmlhYmxlIG5hbWUgZG9lcyBub3QgY29udGFpbiBhICc9JwogICAgY2hhcmFjdGVyLiBUaGlzIG5vdCBvbmx5IHByZXZlbnRzIHRoZSBjb21tb24gZXJyb3Igb3IgdHlwaW5nCiAgICAic2V0ZW52IGZvbz1iYXIiIGluc3RlYWQgb2YgInNldGVudiBmb28gYmFyIiwgYnV0IChtb3JlIGltcG9ydGFudGx5KQogICAgYWxzbyBjbG9zZXMgYSBiYWNrZG9vciB3aGljaCBhbGxvd2VkIHRvIGRlbGV0ZSB3cml0ZS1wcm90ZWN0ZWQKICAgIGVudmlyb25tZW50IHZhcmlhYmxlcywgZm9yIGV4YW1wbGUgYnkgdXNpbmcgInNldGVudiBldGhhZGRyPSIuCgpjb21taXQgMTk5NzNiNmFkOTg2M2E1NmY1YzVmYmNmZDkwZTIwYWIyNDkwYTJjMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAwOjM4OjM5IDIwMDYgKzAyMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZTExODg3YTc3ZDgxMDc3NDE2YTJkMWM1ZTAzNTQ5MTZmZWU4YzAzNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgT2N0IDI2IDE3OjU1OjMxIDIwMDYgKzAyMDAKCiAgICBEb24ndCBwYXNzIGFueSBkZWJ1ZyBvcHRpb25zIGRpcmVjdGx5IHRvIHRoZSBhc3NlbWJsZXIKCiAgICBXaGVuIHBhc3NpbmcgdGhlIC1nIG9wdGlvbiB0byBnY2MsIGdjYyBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgYQogICAgc3VpdGFibGUgLS1nPGZvcm1hdD4gb3B0aW9uIHRvIHBhc3Mgb24gdG8gdGhlIGFzc2VtYmxlci4KICAgIFRodXMsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZm9yY2luZyBhIHNwZWNpZmljIGRlYnVnIG9wdGlvbiBvbiB0aGUKICAgIGFzc2VtYmxlciB1c2luZyB0aGUgLVdhIG1lY2hhbmlzbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlYTA4ZmY2ZTE0ZjllYmI4YzA3Y2ZhNzljNTFlZjU0MGViMDg3MzkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNyAwNzo0NzoyMiAyMDA2IC0wNTAwCgogICAgTVBDODZ4eDogQ2xlYW5lZCB1cCB1bnVzZWQgYW5kIGNvbmRpdGlvbmFsbHkgdXNlZCBsb2NhbCB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMzg5MzZjZGFlNDZiZmQyNjIzZmY4M2Y2Y2U5YjYxNmQzNmFiMGY5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMjcgMTE6NTU6MjEgMjAwNiArMDIwMAoKICAgIEZpeCAiYXIiIGZsYWdzIGluIHNvbWUgTWFrZWZpbGVzIHRvIGFsbG93IGZvciBzaWxlbnQgIm1ha2UgLXMiCgpjb21taXQgNDY1M2Y5MWMxM2VkNTFjMjFjYzRjMzg1NTc0NWQ2OWEzZmIxODE3ZgpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgT2N0IDI2IDE0OjM4OjI1IDIwMDYgLTA0MDAKCiAgICBGaXggVFNFQyBkcml2ZXIgKG5vdyBmb3IgcmVhbCk6IGF2b2lkIGNyYXNoZXMgaWYgUEhZIGlzIG5vdCBhdHRhY2hlZAogICAgdG8gYSBUU0VDIChlLmcuIGEgc3dpdGNoIGlzIGNvbm5lY3RlZCB2aWEgUk1JSSkgb3IKICAgIGlmIHRoZSBQSFkgaXMgZGVmZWN0aXZlL2luY29ycmVjdGx5IGNvbmZpZ3VyZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgYjk4NWI1ZDZlNGZiODhmNTA4ZjdhYTBmMTI2YzJlMjdhZGEyYjk5OQpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgT2N0IDI2IDE0OjM4OjI1IDIwMDYgLTA0MDAKCiAgICBGaXggVFNFQyBkcml2ZXI6IGF2b2lkIGNyYXNoZXMgaWYgUEhZIGlzIG5vdCBhdHRhY2hlZAogICAgdG8gYSBUU0VDIChlLmcuIGEgc3dpdGNoIGlzIGNvbm5lY3RlZCB2aWEgUk1JSSkgb3IKICAgIGlmIHRoZSBQSFkgaXMgZGVmZWN0aXZlL2luY29ycmVjdGx5IGNvbmZpZ3VyZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMmIyYTQwYmViYmYxODIyNTA2ZTgwZTYzMWQ3MjUzZTYwZjBlMGZlNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgT2N0IDI2IDE2OjI0OjMxIDIwMDYgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAuCgpjb21taXQgNWUzYjBiYzE5ZjA3ZWQyNzdkODUzMjRhZDA0Mjc2NDJjODk4MWJhZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgT2N0IDI1IDE1OjQ4OjU5IDIwMDYgKzAyMDAKCiAgICBGaW5pc2ggdXAgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMC9BVFNUSzEwMDIgYm9hcmRzCgogICAgQWRkIGF0c3RrMTAwMl9jb25maWcgdGFyZ2V0IHRvIE1ha2VmaWxlIGFuZCBtb3ZlIHRoZSBBVlIzMiBzZWN0aW9uCiAgICBkb3duIGJlbG93IEJsYWNrZmluIHNvIHRoYXQgaXQgZG9lc24ndCBlbmQgdXAgaW4gdGhlIG1pZGRsZSBvZgogICAgTUlQUy4KCiAgICBEcm9wIHRoZSBhdXRvZ2VuZXJhdGVkIGxpbmtlciBzY3JpcHQgdGhpbmcgZm9yIG5vdy4gV2lsbCBoYXZlIHRvCiAgICByZXZpc2l0IGhvdyB0byBoYW5kbGUgY2hpcHMgd2l0aCBkaWZmZXJlbnQgZmxhc2ggYW5kIFJBTSBsYXlvdXQKICAgIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM3NmY5NTFhNzQ3Y2ZiODdiYTgyNmVmNDViNWFlYTgyZDViNWRiYjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDI0IDIzOjQ3OjM3IDIwMDYgLTA1MDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciBNdWx0aS1JbWFnZSBmaWxlcyB0aGF0IGNvbnRhaW4gYSBkZXZpY2UgdHJlZQoKICAgIElmIGEgTXVsdGktSW1hZ2UgZmlsZSBjb250YWlucyBhIHRoaXJkIGltYWdlIHdlIHRyeSB0byB1c2UgaXQgYXMgYQogICAgZGV2aWNlIHRyZWUuICBUaGUgZGV2aWNlIHRyZWUgaW1hZ2UgaXMgYXNzdW1lZCB0byBiZSB1bmNvbXByZXNzZWQgaW4gdGhlCiAgICBpbWFnZSBmaWxlLiAgV2UgYXV0b21hdGljYWxseSBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGRldmljZSB0cmVlIGluIG1lbW9yeQogICAgYW5kIHByb3ZpZGUgYW4gOGsgcGFkIHRvIGFsbG93IG1vcmUgdGhhbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mIGdyb3d0aC4KCiAgICBBZGRpdGlvbmFsbHksIGEgZGV2aWNlIHRyZWUgdGhhdCB3YXMgY29udGFpbmVkIGluIGZsYXNoIHdpbGwgbm93IGF1dG9tYXRpY2FsbHkKICAgIGdldCBjb3BpZWQgdG8gc3lzdGVtIG1lbW9yeSBhcyBwYXJ0IG9mIGJvb3QuICBQcmV2aW91c2x5IGFuIGVycm9yIHdhcwogICAgcmVwb3J0ZWQgaWYgb25lIHRyaWVkIHRvIGJvb3QgYSBkZXZpY2UgdHJlZSB0aGF0IHdhcyBpbiBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDdjNTJjNGI5NDNmZjUyYmJlODc5NmE3ZTJkM2U0NzZjZWFmM2Y1MTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDIxOjM1OjU1IDIwMDYgKzAyMDAKCiAgICBTd2l0Y2ggdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgQ0hBTkdFTE9HIGZpbGUuCiAgICAodXNlICJtYWtlIENIQU5HRUxPRyIgdG8gdXBkYXRlIGl0IGZyb20gdGltZSB0byB0aW1lKQoKY29tbWl0IDdhZGUwYzYzNGE5NzljMzJmYTkxYTc0ZThmNTc3NWYyNDY1MWZiZTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTg6MDY6NDggMjAwNiArMDIwMAoKICAgIEZpeCBidWcgaW4gUFBDNDQwIE5BTkQgZHJpdmVyIGNwdS9wcGM0eHgvbmRmYy5jCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDI0IE9jdCAyMDA2Cgpjb21taXQgOGFlM2I3MTNiMjI4NmUwYzMyMTNiNzgwMjA2MmU0YzE1OTkwMTBkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE3OjI0OjU1IDIwMDYgKzAyMDAKCiAgICBNZXJnZSB3aXRoIC9ob21lL3dkL2dpdC91LWJvb3QvbWFzdGVyCgpjb21taXQgNDdhNjk4OWMxMDY4NWQyYWIzZWZjZjk1MjI4Y2U1MGQyYTQ5NmQzZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE1OjMyOjU3IDIwMDYgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAKCmNvbW1pdCAzYTc4ZTNlNzViNjMzZWNiNjQxMzExNGZmZDExZTJmMDAwYzRmMTFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6NTE6MzYgMjAwNiArMDIwMAoKICAgIE1vdmUgYXRzdGsxMDAwIGZpbGVzIGludG8gdmVuZG9yIHNwZWNpZmljIGRpcmVjdG9yeS4KICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMTIgU2VwIDIwMDYKCmNvbW1pdCA2Y2NlYzQ0OTJlNzc0MjhmZDZlYWZkM2RmZTk0ZmJkZjA4ZTkxZDM3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6NDI6MzcgMjAwNiArMDIwMAoKICAgIEFkZCBBVFNUSzEwMDAgYW5kIEFUU1RLMTAwMiBib2FyZCBzdXBwb3J0CiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDAgd2l0aCB0aGUgQVRTVEsxMDAyIENQVQogICAgZGF1Z2h0ZXJib2FyZC4KCiAgICBBVFNUSzEwMDAgaXMgYSBmdWxsLWZlYXR1cmVkIGRldmVsb3BtZW50IGJvYXJkIGZvciBBVDMyQVAgQ1BVcy4gSXQKICAgIGhhcyB0d28gZXRoZXJuZXQgcG9ydHMsIGEgaGlnaCBxdWFsaXR5IFFWR0EgTENEIHBhbmVsLCBhIGxvdWRzcGVha2VyLAogICAgYW5kIGNvbm5lY3RvcnMgZm9yIFVTQVJULCBQUy8yLCBWR0EsIFVTQiwgTU1DL1NEIGNhcmRzIGFuZAogICAgQ29tcGFjdEZsYXNoIGNhcmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGlzIHBhZ2U6CgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL3Rvb2xzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgVGhlIEFUU1RLMTAwMiBpcyBhIGRhdWdodGVyYm9hcmQgZm9yIHRoZSBBVFNUSzEwMDAgc3VwcG9ydGluZyB0aGUKICAgIEFUMzJBUDcwMDAgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmOTNhZTc4OGMzNjQwZmNkZTVkYjM4MzQ3MWQ0NTU0OGZmNDA2MGQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6MzE6MjQgMjAwNiArMDIwMAoKICAgIEFkZCBjb21tb24gc2VyaWFsIGRyaXZlciBmb3IgQXRtZWwgQVQzMiBhbmQgQVQ5MSBjaGlwcwogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgaXMgYSBmaXJzdCBhdHRlbXB0IGF0IGNyZWF0aW5nIGEgY29tbW9uIHNlcmlhbCBkcml2ZXIgZm9yIEF0bWVsCiAgICBjaGlwcy4gRm9yIG5vdywgaXQgc3VwcG9ydHMgdGhlIEFUMzJBUDcwMDAgQVZSMzIgY2hpcCwgYnV0IGl0IHNob3VsZAogICAgYmUgcG9zc2libGUgdG8gc3VwcG9ydCBBVDkxUk05MjAwIGFuZCBvdGhlciBBUk0tYmFzZWQgY2hpcHMgd2l0aCBzb21lCiAgICBtaW5vciBtb2RpZmljYXRpb25zLgoKICAgIFRoZXJlJ3Mgbm90aGluZyBmdW5kYW1lbnRhbGx5IEFWUjMyLXNwZWNpZmljIGluIHRoaXMgZHJpdmVyLCBidXQgaXQKICAgIGRvZXMgdXNlIHNvbWUgZmVhdHVyZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBvbmx5IGRlZmluZWQgZm9yIHRoZQogICAgQVQzMkFQIENQVSBwb3J0OgogICAgICAqIHBtX2dldF9jbG9ja19mcmVxOiBPYnRhaW4gdGhlIGNsb2NrIGZyZXF1ZW5jeSBvZiBhIGdpdmVuIGRvbWFpbgogICAgICAqIGdkLT5jb25zb2xlX3VhcnQ6IEEgInN0cnVjdCBkZXZpY2UiIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQKCXJlZ2lzdGVyIG1hcHBpbmdzLCBncGlvIHJlc291cmNlcyBhbmQgY2xvY2tzIGFzc29jaWF0ZWQgd2l0aCB0aGUKCVVBUlQgZGV2aWNlLgoKICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZXNlIGZlYXR1cmVzLCBwbGVhc2Ugc2VlIHRoZSAiQVQzMkFQCiAgICBDUFUiIHBhdGNoLgoKY29tbWl0IDcyYTA4N2UwNDcwNWMyNmNhZDk4Mjg3OWViZDA2YjUyODFiZjgyNWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDoyNzozNSAyMDA2ICswMjAwCgogICAgQWRkIEFUMzJBUCBDUFUgYW5kIEFUMzJBUDcwMDAgU29DIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUMzJBUCBDUFUgZmFtaWx5IGFuZCB0aGUgQVQzMkFQNzAwMAogICAgY2hpcCwgd2hpY2ggaXMgdGhlIGZpcnN0IGNoaXAgaW1wbGVtZW50aW5nIHRoZSBBVlIzMiBhcmNoaXRlY3R1cmUuCgogICAgVGhlIEFUMzJBUCBDUFUgY29yZSBpcyBhIGhpZ2gtcGVyZm9ybWFuY2UgaW1wbGVtZW50YXRpb24gZmVhdHVyaW5nIGEKICAgIDctc3RhZ2UgcGlwZWxpbmUsIHNlcGFyYXRlIGluc3RydWN0aW9uLSBhbmQgZGF0YSBjYWNoZXMsIGFuZCBhIE1NVS4KICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSAiQVZSMzIgQVAgVGVjaG5pY2FsIFJlZmVyZW5jZSI6CgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Jlc291cmNlcy9wcm9kX2RvY3VtZW50cy9kb2MzMjAwMS5wZGYKCiAgICBJbiBhZGRpdGlvbiB0byB0aGlzLCB0aGUgQVQzMkFQNzAwMCBjaGlwIGNvbWVzIHdpdGggYSBsYXJnZSBzZXQgb2YKICAgIGludGVncmF0ZWQgcGVyaXBoZXJhbHMsIG1hbnkgb2Ygd2hpY2ggYXJlIHNoYXJlZCB3aXRoIHRoZSBBVDkxIHNlcmllcwogICAgb2YgQVJNLWJhc2VkIG1pY3JvY29udHJvbGxlcnMgZnJvbSBBdG1lbC4gRnVsbCBkYXRhIHNoZWV0IGlzCiAgICBhdmFpbGFibGUgaGVyZToKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcmVzb3VyY2VzL3Byb2RfZG9jdW1lbnRzL2RvYzMyMDAzLnBkZgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdiNjRmZWYzM2M2NmJlNjQ4ODI2YzBmZjk3NTgyOThlZjEzZDA2MDQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDoyMToxNiAyMDA2ICswMjAwCgogICAgQWRkIEFWUjMyIGFyY2hpdGVjdHVyZSBzdXBwb3J0CiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDYgU2VwIDIwMDYgMTY6MjM6MDIgKzAyMDAKCiAgICBUaGlzIHBhdGNoIGFkZHMgY29tbW9uIGluZnJhc3RydWN0dXJlIGNvZGUgZm9yIHRoZSBBdG1lbCBBVlIzMgogICAgYXJjaGl0ZWN0dXJlLiBTZWUgZG9jL1JFQURNRS5BVlIzMiBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyZGEyZDlhNDc2NjA2M2I5ODQ4ZjNhMzVhZDYwMjU0OTljZjg3MjY1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTM6NTc6MzMgMjAwNiArMDIwMAoKICAgIFVzZSAtZyBpbnN0ZWFkIG9mIC1nc3RhYnMgaW4gQUZMQUdTX0RFQlVHCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDMwIEF1ZyAyMDA2CgogICAgSW4gY29uZmlnLm1rLCAtV2EsLWdzdGFicyBpcyB1bmNvbmRpdGlvbmFsbHkgYXBwZW5kZWQgdG8gQUZMQUdTIG5vCiAgICBtYXR0ZXIgd2hhdCB0aGUgdGFyZ2V0J3MgcHJlZmVycmVkIGRlYnVnZ2luZyBmb3JtYXQgaXMuIFRoaXMgcGF0Y2gKICAgIHNpbXBseSByZXBsYWNlcyAtZ3N0YWJzIHdpdGggLWcsIHNvIHRoYXQgdGhlIGRlZmF1bHQgZGVidWdnaW5nIGZvcm1hdAogICAgZm9yIHRoZSBhcmNoaXRlY3R1cmUgaXMgdXNlZC4KCmNvbW1pdCA5NjU4Mjk4NzIxNjljMjk5NjAyMzg0MGQ5OGUxZDg1YWQxNDhkNjI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTM6NTU6MTggMjAwNiArMDIwMAoKICAgIEZpeC93b3JrYXJvdW5kIGJyb2tlbiBkZXBlbmRlbmN5IGhhbmRsaW5nIHdpdGggbWFrZSAzLjgxCiAgICBCYXNlZCBvbiBwYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDI5IEF1ZyAyMDA2IDExOjIwOjM5ICswMjAwCgpjb21taXQgODMxOGZiZjhjYzMwNDE4YjYyMWVhOWYzOWI4NGI0YzFhMDhmMDAzYQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBPY3QgMjMgMjI6MTc6MDUgMjAwNiArMDIwMAoKICAgIEZpeCBzZXF1b2lhIHNlcGFyYXRlIG9iamVjdCBkaXJlY29yeSBidWlsZGluZyBwcm9ibGVtcy4KCmNvbW1pdCAzZGZhOWNmZGNlZTc4YjMwZGEzNDMyMzE4YjMyODIxZmZhYmU5NzRiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyMCAxNzoxNjozNSAyMDA2IC0wNTAwCgogICAgVXNlIGdlbmVyaWMgSTJDIHJlZ2lzdGVyIGJsb2NrIG9uIDg1eHggYW5kIDg2eHguCgogICAgUmVwbGFjZSBwcml2YXRlIElNTUFQIEkyQyBzdHJ1Y3R1cmVzIHdpdGggZ2VuZXJpYyByZWcgYmxvY2sKICAgIGFuZCBhbGxvdyA4Nnh4IHRvIGhhdmUgbXVsdGlwbGUgSTJDIGRldmljZSBidXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTAxMjgyN2RmMTFjYTBjOWJlMWRmNWY4YjE1M2UxODhkYzJmYTdjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyMCAxNTo1NDozNCAyMDA2IC0wNTAwCgogICAgRml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIG9uIGEgZmV3IDg1eHggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjA0NzY3MjY4NGNmODVjYjZmOTZhMWZiYzk5MzE4MGFhYWYxOWE5OQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTU6NTA6MTUgMjAwNiAtMDUwMAoKICAgIENvbnZlcnRlZCBhbGwgODV4eCBib2FyZHMgdG8gdXNlIGEgY29tbW9uIEZTTCBJMkMgZHJpdmVyLgogICAgSW50cm9kdWNlZCBDT0ZJR19GU0xfSTJDIHRvIHNlbGVjdCB0aGUgY29tbW9uIEZTTCBJMkMgZHJpdmVyLgogICAgQW5kIHJlbW92ZWQgaGFyZCBpMmMgcGF0aCBmcm9tIGEgZmV3IHUtYm9vdC5sZHMgc2NpcHRzIHRvby4KICAgIE1pbm9yIHdoaXRlc3BhY2UgY2xlYW51cHMgYWxvbmcgdGhlIHdheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkNDVmNjllMzYyYjA1ODkyYzllOTJhNzkwN2U1ODIwOTk1NjEyYWEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE5IDEyOjAyOjI0IDIwMDYgLTA1MDAKCiAgICBSZXdyaXRlIGEgc2VyaWVzIG9mIGdvdG8gc3RhdGVtZW50cyBhcyBhIHNlcXVlbmNlcyBvZgogICAgY29uZGl0aW9uYWwgZXhwcmVzc2lvbnMgaW5zdGVhZC4KCiAgICBVc2UgY29uc2lzdGVudCByZXR1cm4gY29kZSAwLy0xIGZvciBnb29kL2JhZCBpbmRpY2F0b3JzLgoKICAgIEluY2x1ZGUgb25lIGZld2VyIGZpbGUgaWYgdGhlIGRyaXZlciBpc24ndCB1c2VkIGF0IGFsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyMzdjMDMzYjAyZmUyOTU4ODA0MzVmMWViODA4MTlhMGM5ODc1MzIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE5IDExOjAyOjE2IDIwMDYgLTA1MDAKCiAgICBNb3ZlZCBpMmMgZHJpdmVyIG91dCBvZiBjcHUvbXBjODZ4eC9pMmMuYyBpbnRvIGRyaXZlcnMvZnNsX2kyYy5jCgogICAgaW4gYW4gZWZmb3J0IHRvIGJlZ2luIHRvIHVuaWZ5IHRoZSB1bXB0ZWVuIEZTTCBJMkMgZHJpdmVycyB0aGF0CiAgICBhcmUgYWxsIG90aGVyd2lzZSB2ZXJ5IHNpbWlsYXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxM2E3ZmNkZjM3ZjZlYTk0MjlhZTA0YzlkZjY3Zjg5MzM2NGNmZTRiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMTozMzo1MiAyMDA2IC0wNTAwCgogICAgKiBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncyBmb3IgZ2NjIDQuMAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWY5ZTFmNWI5ZTZmOWNlODEwZjVlOGJmMjk2MWM5NTQyYTU4NjVjMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAxNyAwNjoxNDozMSAyMDA2ICswMjAwCgogICAgQWRkIG1vbml0b3IgZnVuY3Rpb25zIGZvciBpbmRpcmVjdCBhY2Nlc3MgdG8gUFBDNDQwIERDUidzCiAgICBQYXRjaCBieSBMZW9uaWQgQmFyeXVkaW4sIDEyIE9jdCAyMDA2Cgpjb21taXQgNWYzMjQ5YTBhMTY4ZTQ0NmE0Y2M5NjY5YjJiY2UwYmM0NTZmMGEwOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMTMgMTY6NDc6NTMgMjAwNiAtMDUwMAoKICAgIEZpeGVkIGxlYWRpbmcgd2hpdGVzcGFjZSBpc3N1ZXMuCiAgICBSZW1vdmVkIHNwdXJpb3VzIExBV0FSIHRoaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGVlOTBjYjc3ZTAxZDZlOGNjZDM3ZTFiZDk2Njc4NTk3ODc1YzM5MQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTIgMTA6NDI6MzYgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB1bm5lZWRlZCBpbmNsdWRlIGZpbGVzIGFuZCBsb2NhbCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFlYWYzYTVmZjQ5NjBhNDZmM2E5MDYzNTY4YmEyYWY3ODgzZjA3YzUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBPY3QgMTAgMDA6MjM6MzIgMjAwNiAtMDYwMAoKICAgIEZpeCBwb3NzaWJsZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcuCgogICAgV2hlbiBDT05GSUdfT0ZfRkxBR19UUkVFIGlzIHNldCwgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyB0aGF0ICdsZW4nIGluCiAgICBkb19ib290bV9saW51eCgpIG1heSBiZSB1bmluaXRpYWxpemVkLiAgVGhlcmUgaXMgbm8gcG9zc2liaWxpdHkgaW4gdGhlCiAgICBjdXJyZW50IGNvZGUgdGhhdCBsZW4gd2lsbCBnZXQgdXNlZCB1bmluaXRpYWxpemVkLCBidXQgdGhpcyBmaXggZm9sbG93cwogICAgdGhlIGV4aXN0aW5nIGNvbnZlbnRpb24gb2Ygc2V0dGluZyBib3RoIGxlbiBhbmQgZGF0YSB0byB6ZXJvIGF0IHRoZSBzYW1lCiAgICB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3Mzc2ZWI4N2FhYTYwMWY3MjhmOWI4ZTVlOWNkMjcxMWE2N2Y1MjllCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAxMSAxNToxMzowMSAyMDA2IC0wNTAwCgogICAgKiBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncyBmb3IgZ2NjIDQuMAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmY2NTFiYWEzNjVlNTQ0NzI0NmFhZDZhNjMzY2NkNjY3Y2YyNGEzOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTEgMTA6MTA6NDMgMjAwNiAtMDUwMAoKICAgIE1vdmUgImFyIiBmbGFncyB0byBjb25maWcubWsgdG8gYWxsb3cgZm9yIHNpbGVudCAibWFrZSAtcyIKCmNvbW1pdCAxZmQ1Njk5YTRhMjRmNWMxZGFiMWIzMmY0ODBiYWNlMWViYjlmYzNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzoxOTowMyAyMDA2IC0wNTAwCgogICAgQ29kaW5nIHN0eWxlIGNoYW5nZXMgdG8gcmVtb3ZlIGxvY2FsIHZhcmlibGUgYmxvY2tzCiAgICBhbmQgcmVmb3JtYXQgYSBiaXQgbmljZXIuCgpjb21taXQgOGIyODNkYmIzYTA4ZDFiOGQ0MDZiYzE1ZjExOWUwODFiM2UyNjA2YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTY6MDQgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCA3YjM4MmI3MTI1ZjIzOTdjY2U2MzI1M2RmNjJmMTgzZTNkZmEyNzcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzoxNDo0NSAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IGUxMDM5MGRkZDczNmIwZGFkMTUyOGVlYzRiMGZlMzVjMDgyNzEzOWEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjA2OjUzIDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgODk4NzVlOTZiYTNmMDIzMTU3YmY1MGQ1ZjhlMzNiZjI1NDk2NGE3NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDM6NDMgMjAwNiAtMDUwMAoKICAgIFJhbiBsaW5kZW50IGFuZCBjbGVhbmVkIHVwIHdoaXRlc3BhY2UgaXNzdWVzLgogICAgRm9ybWF0IGZvciA4MC1jb2x1bW5zIHRvby4KCmNvbW1pdCAzMzM5NjFhZTcwOTVmYzY2ZDhhMDQxZmNlMWFjOWVlODczYjA5ZDg2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowMjoyMiAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgYW5kIDgwLWNvbCBpc3N1ZXMuCgpjb21taXQgNWM5MTJjYjFjMzEyNjZjNjZjYTU5YjM2ZjliNmY4NzI5NjQyMWQ3NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjM2OjUxIDIwMDYgKzAyMDAKCiAgICBDRkdfTkFORF9RVUlFVF9URVNUIGFkZGVkIHRvIG5vdCB3YXJuIHVwb24gbWlzc2luZyBOQU5EIGRldmljZQogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IDViYzUyOGZhNGRhNzUxZDQ3MjM5N2IzMDgxMzcyMzhhNjQ2NWFmZDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozNToyNSAyMDA2ICswMjAwCgogICAgVXBkYXRlIEFMUFIgY29kZSAoTkFORCBzdXBwb3J0IHdvcmtpbmcgbm93KQogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IDc3ZDUwMzQ4NDdkMzI4NzUzYjgwYzQ2YjgzZjk2MGExNGEyNmY0MGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozMzowMyAyMDA2ICswMjAwCgogICAgUmVtb3ZlIGNvbXBpbGUgd2FybmluZ3MgaW4gZnBnYSBjb2RlCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgZjM0NDM4NjdlOTBkMjk3OWE3ZGQxYzY1YjBkNTM3Nzc3ZTFmOTg1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjMwOjUyIDIwMDYgKzAyMDAKCiAgICBBZGQgQ09ORklHX0JPQVJEX1JFU0VUIHRvIGNvbmZpZ3VyZSBib2FyZCBzcGVjaWZpYyByZXNldCBmdW5jdGlvbgogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IGY1NWRmMTgxODdlN2E0NWNiNzNmZWM0MzcwZDEyMTM1ZTY2OTFhZTEKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIFNlcCAyOSAwODoyMzoxMiAyMDA2ICswMTAwCgogICAgRml4IG1pc3NpbmcgdEN5Y2xlL21vZGZyZXEgY2FsY3VsYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODI3MmRjMmY1OGYyNDczZDg5OTVmY2M5YjkxNjQ0MGNmYmEwODBmMApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAxMyAxMDozMzozNSAyMDA2IC0wNTAwCgogICAgVXBkYXRlZCBjb25maWcgaGVhZGVycyB0byBhZGQgZGVmYXVsdCBGRFQtYmFzZWQgYm9vdGluZwoKY29tbWl0IDA5ZjNlMDllOWViY2ZhNzkxOWNhODkzMWE0YjU1MDRmYWRkMWYxZDMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzQ6MTggMjAwNiAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBlVFNFQyAzICYgNCBvbiA4NTQ4IENEUwoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgdXNpbmcgZVRTRUMgMyBhbmQgZVRTRUMgNCBvbiB0aGUgODU0OCBDRFMuCiAgICAgIFRoaXMgd2lsbCBvbmx5IHdvcmsgb24gcmV2IDEuMyBib2FyZHMgKGJ1dCBkb2Vzbid0IGJyZWFrIG9sZGVyIGJvYXJkcykKICAgICogQ2xlYW5lZCB1cCBzb21lIGNvbW1lbnRzIHRvIHJlZmxlY3QgdGhlIGV4cGFuZGVkIHJvbGUgb2YgdHNlYwogICAgICBpbiBvdGhlciBzeXN0ZW1zCgpjb21taXQgMDg0ZDY0OGIxMDljODk4NGY4MzY3NDA0M2MxYTdmYTM4ODVlZjgwMQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAxMyAxMDozMzo1NiAyMDA2IC0wNTAwCgogICAgQWRkZWQgY29kZSB0byBzdXBwb3J0IDIuNi4xOCBQQ0kgY2hhbmdlcyBpbiB1LWJvb3QKCiAgICAqIEFkZGVkIGNvZGUgdG8gc3dpenpsZSB0aGUgSVJRIG1hcCBmb3IgdGhlIFBDSQoKY29tbWl0IGFmYmRjNjQ5Zjg3NTFlNGY0ZjFhNmY1MjdlZGZlMTM5NzczZjJjMTUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE5IDA5OjM0OjEwIDIwMDYgLTA1MDAKCiAgICBNb2RpZmllZCBtYWtlZmlsZSBmb3IgbmV3IGJ1aWxkIG1lY2hhbmlzbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxNGJhNmE3OThiZWI3NTNlN2E4NjQ1MDA0MTRmY2MyZDE5OGI4YmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDE0IDA4OjQwOjM2IDIwMDYgLTA1MDAKCiAgICBIYW5kbGUgODZ4eCBTVlIgdmFsdWVzIGFjY29yZGluZyB0byB0aGUgbmV3IFJlZmVyZW5jZSBNYW51YWwuCiAgICBCb3RoIDg2NDEgYW5kIDg2NDFEIGhhdmUgU1ZSID09IDB4ODA5MCwgYW5kIGFyZSBkaXN0aW5ndWlzaGVkCiAgICBieSB0aGUgYnl0ZSBpbiBiaXRzIDE2LTIzIGluc3RlYWQuCiAgICBUaGFua3MgdG8gSmFzb24gSmluIGZvciBub3RpY2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg4YzhmNDkyMWZjNDdmYjBlYjIzODRiMTY1ODZmMWJkN2YyNzViZTcKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI4IDE0OjI1OjMxIDIwMDYgKzA4MDAKCiAgICBGaXhlZCBhbiBPRi10cmVlIG9mZi1ieS1vbmUgYnVnIHdoZW4gYWRkaW5nIGEgbmV3IHByb3BlcnR5IG5hbWUuCiAgICBUaGlzIGJ1ZyB3aWxsIGNhdXNlIHRoZSBrZXJuZWwgYm9vdGluZyB0byBwYXVzZSBhIGxvbmcgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSAyZjE1Nzc2Y2NjNmRjMzIzNzdkOGJhOTY1MmI4ZjU4MDU5YzI3YzZkIGNvbW1pdCkKCmNvbW1pdCA5YmZmN2E2OWE4ODVhZGViYmQyYmQ0NTk5MDQ5NGVjNGNmOTk4YTMwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAxMTowNTowOSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHRyYWlsaW5nIGVtcHR5IGxpbmVzLgoKY29tbWl0IGNkNmQ3M2Q1Yjg5NWE1OTM1YWM0ZmRlMGEzNTYyODgxNDJhNTg0ZTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDA5OjQ4OjQ5IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgYm9ndXMgbXN5bmMgYW5kIHVzZSB2b2xhdGlsZSBhc20uCgpjb21taXQgNzc4ZDQ1MDQ5Y2U1OTI3YjY1YjNmZjFkOGU2NjkyYjY1NGJkZDQ5ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMDg6MTc6MTQgMjAwNiAtMDUwMAoKICAgIEFkZCBteXNlbGYgYXMgbWFpbnRhaW5lciBmb3IgTVBDODY0MUhQQ04uCgpjb21taXQgMmYxNTc3NmNjYzZkYzMyMzc3ZDhiYTk2NTJiOGY1ODA1OWMyN2M2ZApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjggMTQ6MjU6MzEgMjAwNiArMDgwMAoKICAgIEZpeGVkIGFuIE9GLXRyZWUgb2ZmLWJ5LW9uZSBidWcgd2hlbiBhZGRpbmcgYSBuZXcgcHJvcGVydHkgbmFtZS4KICAgIFRoaXMgYnVnIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCBib290aW5nIHRvIHBhdXNlIGEgbG9uZyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTU2NzgwNmI2N2QwYWU4MzQ5M2FhODgyM2FkM2I2YzkxNGY1ODFkNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMjUgMTQ6Mzg6MzQgMjAwNiAtMDQwMAoKICAgIENoYW5nZSByYW1kaXNrYWRkciBhbmQgZHRiYWRkcgogICAgUmVtb3ZlIFBFWCBmbHVmZiBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMmI3ODQyMWQ5ZGI0OWMyMWE4MjFhZjhhMTljMjFjMWY3ZGZiMjllCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMyAxMzozMjo0NSAyMDA2IC0wNTAwCgogICAgKiBBbm90aGVyIHNtYWxsIGZpeCBmb3IgYm9vdGluZyB3aXRoIGRpc2FibGVfb2YKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRhN2NjMGYyMTkxOGU2ZWNmMDdlZDU3MDc1ZDY3ZGYyYzRhMTI5OWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDExOjA0OjQzIDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIGFuZCBsaW5kZW50IG5ldyBBSENJIGRyaXZlci4KCmNvbW1pdCBkYWJmOWVmOGMxMGI0ZGVhZDVlZjIxMDZlZjc0MmIxYzA2YjU0MmRlCkF1dGhvcjogSmluIFpoZW5neGlvbmcgPGphc29uQGJ1cy5hcC5mcmVlc2NhbGUubmV0PgpEYXRlOglXZWQgQXVnIDIzIDE5OjE1OjEyIDIwMDYgKzA4MDAKCiAgICBBZGQgQUhDSSBkZWZpbmUgYW5kIHNhdGEgc3VwcG9ydCBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW48amFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDc4MmFjODBiMDJmMGQwMWFmZDMwOWUyMjAwZGQzYzcwMzdmMmJhNApBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxqYXNvbkBidXMuYXAuZnJlZXNjYWxlLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMyAxOToxMDo0NCAyMDA2ICswODAwCgogICAgQWRkIEFIQ0kgc3VwcG9ydCB0byB1LWJvb3QKCiAgICBBZGQgQUhDSSBzdXBwb3J0IGluIHUtYm9vdCwgZW5hYmxlIHRoZSBzYXRhIGRpc2sgY29udHJvbGxlcnMgd2hpY2gKICAgIGZvbGxvd2luZyB0aGUgQUhDSSBwcm90b2NvbC4KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbjxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOGVhMmFjZjVmMTM3Y2FlOTk0MTdkZjRmNTczZDAzNmVlMzg0NjY4CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMyAxNzo1NDozMiAyMDA2ICswODAwCgogICAgQWRkIGR0YiBib290LXVwIHBhcmFtZXRlciB0byBkZWZhdWx0IGJvb3QgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTM3NzVjMjAzNmI5OWJhYTM5MGVhNDI1YzQ3NzE4OTViYmM2M2M0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxODoyNjowOCAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBldmVuIG1vcmUgcG9vcmx5IGludHJvZHVjZWQgd2hpdGVzcGFjZS4KCmNvbW1pdCBhZTYyNDE2ODVjYmNmMGM3OWEzNjM2NTMwZDJjZWFiMWZiMjkxYTk0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxODowNzowMCAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBtb3JlIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgMmMzM2U4YTFjNTM1YjNhZTkxY2YwYjI4NDQ4MDYwMGJmM2Y1N2M1NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTc6NTQ6MDUgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgcG9vcmx5IGludHJvZHVjZWQgd2hpdGVzcGFjZS4KCmNvbW1pdCA4MGU5NTVjN2RkOThmNGI0ZmQyM2MyMTEzY2FmNzVlZDJiNzdiNWIzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMjoyNToyNyAyMDA2IC0wNTAwCgogICAgR2VuZXJhbCBpbmRlbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cHMuCgpjb21taXQgZmZmZjNhZTU2ZjU4NDJjYTM2NzllNGNlNzkyMmI4MTlhODdhYWQ5ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTI6MDY6MTggMjAwNiAtMDUwMAoKICAgIEdlbmVyYWwgaW5kZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXBzLgoKY29tbWl0IDQxYTBlOGIzMDRkM2ZmNTVmZTI3YTIzMDUwN2FhYzc5Njg0MDE2YWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEwOjQyOjIxIDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLgoKY29tbWl0IDVkZTYyYzQ3YTg2MjhiM2RhNGQ3M2Y3YzA3MDI3ZjMyYTMzNDJkNDAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDA5OjMxOjU5IDIwMDYgLTA1MDAKCiAgICBGaXggZGlzYWJsZV9vZiBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4N2E0NDljOGFjMzk2NDIwY2IyNDI2MGY3MTdlYTllNmZhYTgyMDQ3CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAwOToyMzo1NSAyMDA2IC0wNTAwCgogICAgU3VwcG9ydCBmb3IgRkRUIGluIHVJbWFnZSBmb3JtYXQsIGVycm9yIHdoZW4gdXNpbmcgRkRUIGZyb20gZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1YzI5OWMzODM2OWQwMWFkZGQ1ZTA1NGI4YTE2MjE3YjcwZjRhODYKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEyOjU1IDIwMDYgLTA0MDAKCiAgICBVbmxvY2sgY2FjaGUgYmVmb3JlIGtlcm5lbCBzdGFydHMgdXAgZm9yIE1QQzg2eHgKCmNvbW1pdCA2NzI1NjY3OGYwMGMwOWIwYTdmMTllODYyZTVjMTg0NzU1M2QzMWJjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMzoxNSAyMDA2IC0wNDAwCgogICAgQ29weSBHbG9iYWwgRGF0YSBQb2ludGVyIHRvIHIyOSBmb3IgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIKCmNvbW1pdCAxYzhmNmQ4ZmIwMjhmMTU2MDk0ZDA1ZjJkMTQyOThlNjQ3OTM2NGFjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMjo1NSAyMDA2IC0wNDAwCgogICAgVW5sb2NrIGNhY2hlIGJlZm9yZSBrZXJuZWwgc3RhcnRzIHVwIGZvciBNUEM4Nnh4Cgpjb21taXQgMGQ5Y2NjNTVlZGY5YTdmM2M1YjJiNjI2MzU4MGE2ZWE4ZDcwMmEwNApBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTM6MTUgMjAwNiAtMDQwMAoKICAgIENvcHkgR2xvYmFsIERhdGEgUG9pbnRlciB0byByMjkgZm9yIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCgpjb21taXQgODZjOGUxN2YyNWU5NzJhN2UyNzI5NTBhMDczNWZhZDg0ZTA4MmI4OApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTYgMTM6NTk6NDcgMjAwNiAtMDUwMAoKICAgICogRml4IGRpc2FibGVfb2YgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjVjNzUxZTlhZGM4NmUyMmZlM2I1YjQ3Y2YyODA2Mzc5YjU3NWRiNwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTYgMTA6NTQ6MDkgMjAwNiAtMDUwMAoKICAgICogU3VwcG9ydCBmb3IgRkRUIGluIHVJbWFnZSBmb3JtYXQsIGVycm9yIHdoZW4gdXNpbmcgRkRUIGZyb20gZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5OTYyMGMyZDY2ZDRlZWYzYjJhMDAzNGQwNjJlNzFkNDVkODg2YzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTUgMTQ6MjI6MzUgMjAwNiArMDIwMAoKICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBBTFBSIGJvYXJkIGZyb20gUHJvZHJpdmUKICAgIE5BTkQgbmVlZHMgc29tZSBhZGRpdGlvbmFsIHRlc3RpbmcKICAgIFBhdGNoIGJ5IEhlaWtvIFNjaG9jaGVyLCAxNSBBdWcgMjAwNgoKY29tbWl0IGYwZmY0NjkyZmYzMzcyZGVjNTUwNzRhOGViNDQ0OTQzYWIwOTVhYmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTUgMTQ6MTU6NTEgMjAwNiArMDIwMAoKICAgIEFkZCBGUEdBIEFsdGVyYSBDeWNsb25lIDIgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIsIDE1IEF1ZyAyMDA2Cgpjb21taXQgZmVjZjFjN2U0ZGUxYjI3NzllZGMxODc0MmI5MWMyMmJkYzMyYjY4YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTQgMTU6MzM6MzggMjAwNiAtMDUwMAoKICAgIEZpeCBCQVQwIHRvIGFjdHVhbGx5IGJlIGNhY2hlYWJsZSwgbm9uLWd1YXJkZWQgYXMgZG9jdW1lbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwYmM4MzU1OWRiNTc0NTY4MTkwOWZkNzM4MmFlNTA5NTY3ZTExNmQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDkgMTU6MzI6MTYgMjAwNiAtMDUwMAoKICAgIFJlbW92ZWQgTVBDODY0MUhQQ04gRFRTIHNvdXJjZSBmaWxlIGZyb20gYnVpbGQuCiAgICBJdCBpcyBubyBsb25nZXIgbGlua2VkIGludG8gVS1Cb290OyBpdHMgc291cmNlcyBhcmUKICAgIG5vdyBsb2NhdGVkIGluIHRoZSBrZXJuZWwgdHJlZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0YzNjMGUwMWRiZjFmOGNjMmJkMDhkZTkyZjJiODliYTg0OTIxZWIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ3OjAzIDIwMDYgLTA1MDAKCiAgICAqIFN3aXRjaGVkIGRlZmF1bHQgUENJIHNwZWVkIGZvciA4NTQwIEFEUyBiYWNrIHRvIDMzTUh6CgogICAgKiBBZGRlZCBjb21tZW50cyBhbmQgYSBwcmludGYgdG8gd2FybiB0aGF0IFBDSS1YIHdvbid0CiAgICAgIHdvcmsgYXQgMzNNSHoKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI2YzVlMTM3M2I2ZWEwYmIzN2ExOGU0YWVlY2VjMDA2MTNkMWNkMzkKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjM1IDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIGEgYnVnIHdoZXJlIDg1NTUgUENJIGNvZGUgdXNlZCB0aGUgb2xkIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBuYW1lcyBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmYxZGZmZmQ4YzI2ZjhlY2RkNjMwYTBhZTRjODM0ZTc1MWU0ZTQ1MgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MTMgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgVklBIGNvbmZpZ3VyYXRpb24gdGFibGUKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIFBDSTIgb24gQ0RTCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjODhmOWZlNjZiNjQyNDdlNWI2YTM4NDEwYmEzMTVjYTI1NTk2ZDE2CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NTo0MSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBQQ0kgbWVtb3J5IGRlZmluaXRpb25zIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NzA3NGVkOTY1NTMwOWI2NDIzMWJjMmNlZTY5ZmU4NTM5OWY4MDU1CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NToxNyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBpbml0aWFsaXppbmcgc2Vjb25kIFBDSSBidXMgb24gODV4eCBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjBlNmY1N2Y3MWIzYzRmZGQxMzAyOGViMDNjM2YzZTkxOTI2ZGRhMgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6NDkgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgUENJLVggI2RlZmluZXMgZm9yIFBDSS1YIGluaXRpYWxpemF0aW9uIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyBvbiAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNGUxMTU1OGI4MTBlZjJjZGRmZmRmN2I5ZDg2YmMxMTMwNDQxOTYwCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDoyMyAyMDA2IC0wNTAwCgogICAgKiBNYWRlIHN1cmUgdGhlIGNvZGUgd2hpY2ggZGlzYWJsZXMgcHJlZmV0Y2ggZm9yIFBDSSBkZXZpY2VzIHNldHMgdGhlIHNpemUgb2YgdGhlIHByZWZldGNoIHJlZ2lvbiB0byAwIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyBvbiAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZTE2Mzg3ZGIxZDRhYWNkNWJmMzVjYjZkN2MxOTQyNzY1YzAzNDdiCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzozNiAyMDA2IC0wNTAwCgogICAgKiBBZGQgRmxhdCBEZXYgVHJlZSBjb25zdHJ1Y3Rpb24gZm9yIE1QQzg1eHggQURTIGFuZCBDRFMgYm9hcmRzIFBhdGNoIGJ5IEpvbiBMb2VsaWdlciAxNy1KYW4tMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODU1ZTZmYjA3M2Y5ZDA0ZmU0YTdmMDZjMTA3ZWNiYWM2MzQ0ZGRkNApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MDAgMjAwNiAtMDUwMAoKICAgICogUmVtb3ZlZCB0aGUgb2Z0cmVlLmR0cyBmb3Igc3R4eHR4IGluIGxpZ2h0IG9mIHRoZSBjaGFuZ2VzIHRvIHRoZSBmbGF0IGRldmljZSB0cmVlIGhhbmRsaW5nIGNvZGUgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDU0OThkOTAzMTJhYWQ5ZjZiZGJmMDQ3OTg2MDI3YzM1YjAzY2QxNjMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQyOjI0IDIwMDYgLTA1MDAKCiAgICAqIFBhdGNoIHRvIG1vZGlmeSBmdF9idWlsZC5jIHRvIHVwZGF0ZSBmbGF0IGRldmljZSB0cmVlcyBpbiBwbGFjZSBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgMDI2Nzc2OGVkZGM1Y2E3YmMxODY1YmM0MGM4NjY4MjlhYzVlZmJmZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDE6MzcgMjAwNiAtMDUwMAoKICAgICogTW9kaWZ5IGJvb3RtIGNvbW1hbmQgdG8gc3VwcG9ydCBib290aW5nIHdpdGggZmxhdCBkZXZpY2UgdHJlZXMgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDhmYzhiZDJjYzQ3OWI2Y2QxODhmZGVkZTQwMTBlMGUwNTI5NzBiOGEKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA5IDE0OjMzOjUwIDIwMDYgKzAxMDAKCiAgICBBZGQgUmFwaWRpbyBzdXBwb3J0IGZvciB0aGUgTVBDODY0MUhQQ04KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MWE0MTRjN2QxZmIwZWFjOTEyNTkyY2Q5OTViMzBjOWYyMzA0NWM5CkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgOCAxMTozMjo0MyAyMDA2ICswMTAwCgogICAgRml4IGNhc2xhdCBjYWxjdWxhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwOWQzMDczZTc0MTUzMjc4ZTc5MDRhNzA4MTliYmVmN2RmNTBlMWEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTY6MTc6NTYgMjAwNiAtMDUwMAoKICAgIENvbnZlcnQgdG8gbWFjLWFkZHJlc3MgaW4gZXRoZXJuZXQgbm9kZXMuCgpjb21taXQgNzE3NDhhZjgzM2NhMTAxN2VkZjE0MTViZTM3NjM2NmZmMjkzN2QxNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6MzUgMjAwNiAtMDQwMAoKICAgIENvcnJlY3QgdGhlIGlycSB2YWx1ZSBvZiBEVUFSVDIKCmNvbW1pdCA5Y2IzZTg4MTZhZTRkODU0ZTdkYzIyMTI4YzNlZWEzZDcwYmI5ODJjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAxMjo0MTo0MSAyMDA2IC0wNDAwCgogICAgQ2hhbmdlIHRoZSBzcGFjZSBzaXplIG9mIFBFWCBJTyBpbiBSRUFETUUKCmNvbW1pdCAyMzlkYjM3Yzk0ZjdhOTI5NDFjNDQ2NWZlY2ViODY3YzYwOTI0MWM1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAxMjo0MToxOCAyMDA2IC0wNDAwCgogICAgTW92ZSBnZXRfYm9hcmRfc3lzX2NsayB0byBib2FyZCBkaXJlY3RvcnkKCmNvbW1pdCA0OTI5MDBiOTg1NDM5ZmJjZTFhMTE4YWZkZTFlMzVkZWY4NzBkYjAzCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMDk6MDM6NTQgMjAwNiArMDEwMAoKICAgIEZpeCA4NjQxSFBDTiBwb2xsdXRpb24KCmNvbW1pdCA1MTVhYjhhNjJlODU3NGUyYmFiYzZlOGRjYzQzNTQ0YWQyMjFjNWIyCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMDg6MTY6MDYgMjAwNiArMDEwMAoKICAgIEZpeCA4NjQxSFBDTiB0aW1lYmFzZQoKY29tbWl0IGM4NjM2MGI4MzBmMWVlY2Q3YTcyMjA4NTc1ZGRlNGY1Nzg3OWZhZWEKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDAwOjAxOjM0IDIwMDYgKzA4MDAKCiAgICBGaXhlZCBPRiBkZXZpY2UgdHJlZSBvZiBtcGM4Nnh4aHBjbiBib2FyZC4KCiAgICBUaGUgY2hhbmdlcyB3b3JrcyBpbiB3aXRoIGtlcm5lbCBpcnEgbWFwcGluZyByZXdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZWEzZjI4ZDI4NTk0MmJmM2Y3YWIzMzljZTg1MTc4ZGVkNTQ0MjI1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMiAxMDo0ODowNSAyMDA2IC0wNDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgbWFjIGFkZHJlc3NlcyB0byBvciBmcm9tIElEIEVFUFJPTS4KCiAgICBBZGRlZCBjb2RlIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIE1hYyBhZGRyZXNzZXMgdG8vZnJvbSBJRCBFRVBST00oMHg1NykuCiAgICBXaXRoIGF0dGFjaGVkIHBhdGNoLCB3ZSBjYW4gdXNlIGNvbW1hbmQgIm1hYy9tYWMgcmVhZC9tYWMgc2F2ZS8iCiAgICB0byByZWFkIGFuZCB3cml0ZSBFRVBST00gdW5kZXIgdS1ib290IHByb21wdC4KCiAgICBVLWJvb3Qgd2lsbCBjYWxjdWxhdGUgdGhlIGNoZWNrc3VtIG9mIEVFUFJPTSB3aGlsZSBib290dXAsCiAgICBpZiBpdCBpcyByaWdodCwgdGhlbiB1LWJvb3Qgd2lsbCBjaGVjayB3aGV0aGVyIHRoZSBtYWMgYWRkcmVzcwogICAgb2YgZVRTRUMwLzEvMi8zIGlzIGF2YWlsYWxiZSAobm9uLXplcm8pLgoKICAgIElmIHRoZXJlIGlzIG1hYyBhZGRyZXNzIGF2YWlsYWJlIGluIEVFUFJPTSwgdS1ib290IHdpbGwgdXNlIGl0LAogICAgb3RoZXJld2lzZSwgdS1ib290IHdpbGwgdXNlIHRoZSBtYWMgYWRkcmVzcyBkZWZpbmVkIGluCiAgICBNUEM4NjQxSFBDTi5oLiBUaGlzIG1hdGNoZXMgdGhlIHJlcXVpcmVtZW50IHRvIHNldCB1bmlxdWUgbWFjIGFkZHJlc3MKICAgIGZvciBlYWNoIFRTRUMgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2IyOGU3NjM0MTVlMGU0ZTY2YjBmNDU4NDJkMTU1N2FlMTk4ZTVlCkF1dGhvcjogSmluIFpoZW5neGlvbmcgPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDEzIDEwOjM1OjEwIDIwMDYgLTA1MDAKCiAgICBGaXhlZCBpbml0cmQgaXNzdWUgYnkgZGVmaW5lIGJpZyBSQU0KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTZjZDJhMTc4NWQ3NGVjM2QzMGE4NmYxY2IzNjBiZThkZTQ3ODE1MQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgNyAxMDowMTo0NSAyMDA2IC0wNTAwCgogICAgV2UgbWFkZSBhIHUtYm9vdCBwYXRjaCB0byBmaXggdGhlIGhhbmcgdXAgaXNzdWUKICAgIHdoZW4gYm9vdGluZyBmaWxlc3lzdGVtIGZyb20gcmFtZGlzay4KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg0MzNjY2M1ODUwZWU3MDU0OWFmMGIyYmM1YjkyMDM1NWVmNTM4OApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDc6MDMgMjAwNiAtMDUwMAoKICAgICogU3dpdGNoZWQgZGVmYXVsdCBQQ0kgc3BlZWQgZm9yIDg1NDAgQURTIGJhY2sgdG8gMzNNSHoKICAgICogQWRkZWQgY29tbWVudHMgYW5kIGEgcHJpbnRmIHRvIHdhcm4gdGhhdCBQQ0ktWCB3b24ndAogICAgICB3b3JrIGF0IDMzTUh6CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNGMyYTBlYjBjM2UzZmZiZjgyNDgwMDE4NGVlNDJiZGM5OWQ1YjE5CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjozNSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBhIGJ1ZyB3aGVyZSA4NTU1IFBDSSBjb2RlIHVzZWQgdGhlIG9sZCB2YXJpYWJsZSBhbmQKICAgICAgZnVuY3Rpb24gbmFtZXMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiZmM3Y2U3NTZiODhlYjI2ZTU1MzdiYzdiNjI1YzQ0NWM2ZGNmYWMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjEzIDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFZJQSBjb25maWd1cmF0aW9uIHRhYmxlCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIFBDSTIgb24gQ0RTCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MmM3YTY4YjhkNTg3ZWJjZjVhNmIwNTFiNThiM2QzZmZhMzc3ZGRjCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NTo0MSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBQQ0kgbWVtb3J5IGRlZmluaXRpb25zCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwODc0NTQ2MDllNDcyOTU0NDNhZjc5M2EyODJjZGRjZDkxYTVmNDljCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NToxNyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBpbml0aWFsaXppbmcgc2Vjb25kIFBDSSBidXMgb24gODV4eAogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjYzNmFhZWI2ZmQ1MTZhNDQyZmI2MTFiYmVlZGRmMzA3N2E2ODdmYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6NDkgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgUENJLVggI2RlZmluZXMgZm9yIFBDSS1YIGluaXRpYWxpemF0aW9uCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyBvbiAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMGFiYmM2ZmZmYTExNTY5MDEwN2NjOTQyYzdhYmY4NGJkYzAzYTFiCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDoyMyAyMDA2IC0wNTAwCgogICAgKiBNYWRlIHN1cmUgdGhlIGNvZGUgd2hpY2ggZGlzYWJsZXMgcHJlZmV0Y2ggZm9yIFBDSSBkZXZpY2VzCiAgICAgIHNldHMgdGhlIHNpemUgb2YgdGhlIHByZWZldGNoIHJlZ2lvbiB0byAwCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyBvbiAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGQ1ZmEzNWQwMmRmMjI1ODA1OTNiZjAwMzlhYjE3MzM2N2U4ZWYwCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzozNiAyMDA2IC0wNTAwCgogICAgKiBBZGQgRmxhdCBEZXYgVHJlZSBjb25zdHJ1Y3Rpb24gZm9yIE1QQzg1eHggQURTIGFuZCBDRFMgYm9hcmRzCiAgICAgIFBhdGNoIGJ5IEpvbiBMb2VsaWdlciAxNy1KYW4tMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmU3ZThiMGNiNWEwYzQ5ZGMxODAwNzViOTZkZjI5NmE4OTNiZjE0NgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MDAgMjAwNiAtMDUwMAoKICAgICogUmVtb3ZlZCB0aGUgb2Z0cmVlLmR0cyBmb3Igc3R4eHR4IGluIGxpZ2h0IG9mIHRoZSBjaGFuZ2VzCiAgICAgIHRvIHRoZSBmbGF0IGRldmljZSB0cmVlIGhhbmRsaW5nIGNvZGUKICAgICAgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDFiMzgwZWMyMjU2NjVlNzM5NTk2NzdmMzg5M2RjNjU4YzU5MjVlMDUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQyOjI0IDIwMDYgLTA1MDAKCiAgICAqIFBhdGNoIHRvIG1vZGlmeSBmdF9idWlsZC5jIHRvIHVwZGF0ZSBmbGF0IGRldmljZSB0cmVlcyBpbiBwbGFjZQogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgOThhOWM0ZDQ2OGE5NDJhMDllYmU4OTc5YmVjNTA4MDE3ZjNlNDQ2MgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDE6MzcgMjAwNiAtMDUwMAoKICAgICogTW9kaWZ5IGJvb3RtIGNvbW1hbmQgdG8gc3VwcG9ydCBib290aW5nIHdpdGggZmxhdCBkZXZpY2UgdHJlZXMKICAgICAgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IGRhMDEyYWI2NjFmZDRhYjE2OWRkN2I5YjMyMjAxYTRkZjYyY2YzNGEKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMDg6NDM6NTYgMjAwNiAtMDUwMAoKICAgIENoYW5nZSBJZCB0byBzeW1ib2xpYyBuYW1lIGZvciBSVEw4MTM5CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYzA5Y2YzYzJiZmI4ZDU0YzY1OWNiYjMzMmY3OWQwOTUwOTgyZmQwCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjoxMCAyMDA2ICswODAwCgogICAgRml4IFJUTDgxMzkgaW4gYmlnIGVuZGlhbgoKICAgIHNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CiAgICBzaWduZWQtb2ZmLWJ5OiBXZWkgWmhhbmcgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjZmI5YTU3OTQ3ZmMyMDNiOTlmZTgxYWIwNTc4ZjcyODYyNjFmOWYKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjIzIDIwMDYgKzA4MDAKCiAgICBGaXggVHNlYyBidWcgd2hlbiBubyBsaW5rCgogICAgIFdoZW4gdGZ0cCBhIG5vbi1leGlzdCBmaWxlIGZyb20gdGhlIHRmdHAgc2VydmVyLCB1LWJvb3Qgd2lsbCBjaGVjawogICAgIHRoZSBsaW5rIG9mIGFsbCBldGggcG9ydC4gVGhlIG9yaWdpbmFsIGZpbGUgd2lsbCByZXR1cm4gd3JvbmcgbGluawogICAgIHN0YXRlIG9uIHRoZSBubyBsaW5rIHBvcnRzLgoKICAgIHNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmQyMmMyYjk3NTE0ZmJmYjBlMDNiZDljNzJiMzQ0NWU0ZGJkNTdlMgpBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MDIgMjAwNiArMDgwMAoKICAgIEZpeCBidWcgZm9yIGlvX2JhciBzaXplIGR1cmluZyBwY2kgc2NhbgoKICAgIER1cmluZyB0aGUgcGNpIHNjYW4gcHJvY2VzcywgU29tZSBkZXZpY2VzIHJldHVybiBiYXJfcmVwb25zZSB3aXRoIHRoZQogICAgaGlnaGVzdCBieXRlcyAwLCBzdWNoIGFzIHRoZSBwY2kgYnJpZGdlIGluIHVsaTE1NzUgcmV0dXJuIGJhcl9yZXNwb25zZQogICAgd2l0aCAweGZmZmZmZiwgU28gdGhlIGJhcl9zaXplIHNob3VsZCBiZSBtYW51YWxseSBzZXQgdW5kZXIgNjRLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8amFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmE3ZGI5YzM3N2JjMjM1M2ExN2JmMWQzODFkNjVhNmM0MTg3MjhmMApBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTE6NTQgMjAwNiArMDgwMAoKICAgIEVuYWJsZSBQQ0lFMSBmb3IgTVBDODY0MUhQQ04gYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5ZDcwZTNhNDdhZmZiOWJhZTA0MWEyY2FlY2U3Y2Q1MTZlMjEzYjMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyNiAxMTowNjowMCAyMDA2ICswMjAwCgogICAgTW9yZSBjb2RlIGNsZWFudXAKCmNvbW1pdCA2ODQ2MjNjZTkyYzVmZDMyZTdkYjJkNmUwMTY5NDVhNjdjNWZmYWJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAyMiAwODo1MTo0NiAyMDA2IC0wNTAwCgogICAgRml4IGJ1ZyBpbiA4NjQxaHBjbiByZXNldCBjb21tYW5kIHdpdGggbm8gYXJncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGJlNDI5YTVkZGJmMGViZTJkOTQxNzRiYTU4ZmNmYzdhMjQyODVkYwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjAgMTc6NDc6MTUgMjAwNiArMDgwMAoKICAgIFJld29ya2VkIElSUSBtYXBwaW5nIGluIE9GLXRyZWUuCgpjb21taXQgMGU0YzJhMTdjYTM0MDAxZWQzNmQyNTlmMTNjYjg4YWRhNDYxMWE4YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMTUgMjE6MzM6MzcgMjAwNiAtMDUwMAoKICAgIERvIG5vdCBlbmFibGUgYWRkcmVzcyB0cmFuc2xhdGlvbiBvbiBzZWNvbmRhcnkgQ1BVcy4KICAgIERvIG5vdCBzZXQgdXAgQkFUcyBvbiBzZWNvbmRhcnkgQ1BVcy4gIExldCBMaW51eCBkbyB0aGUgbmFzdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODZlZGEwMjI0NzMzOTRhZDhmMzZiODZmMmJkYzliNGNiODE2MjkxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMTQgMTg6MTQ6NTYgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cAoKY29tbWl0IDE2YzhkNWU3NmFlMGY3OGYzOWE2MDYwODU3NGFkZmUwZmViOWNjNzAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1biAxNCAxNzo0NTo1MyAyMDA2ICswMjAwCgogICAgVmFyaW91cyBVU0IgcmVsYXRlZCBwYXRjaGVzCiAgICAtIEFkZCBzdXBwb3J0IGZvciBtcGM4eHggVVNCIGRldmljZS4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIENvbW1vbiBEZXZpY2UgQ2xhc3MgLSBBYnN0cmFjdCBDb250cm9sIE1vZGVsIFVTQiBjb25zb2xlLgogICAgLSBBZGQgc3VwcG9ydCBmb3IgZmxvdyBjb250cm9sIGluIFVTQiBzbGF2ZSBkZXZpY2VzLgogICAgLSBBZGQgc3VwcG9ydCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gZ3NlcmlhbCBhbmQgY2RjX2FjbSB1c2luZyBlbnZpcm9ubWVudC4KICAgIC0gTWlub3IgY2hhbmdlcyB0byB1c2JkY29yZV9vbWFwMTUxMC5jIHVzYmRjb3JlX29tYXAxNTEwLmgKICAgIC0gVXBkYXRlIHVzYmNvcmUgc2xpZ2h0bHkgdG8gZWFzZSBob3N0IGVudW1lcmF0aW9uLgogICAgLSBGaXggbm9uLXBvcnRhYmxlIGVuZGlhbiBwcm9ibGVtcyBpbiB1c2JkY29yZSBhbmQgdXNiZGNvcmVfZXAwLgogICAgLSBBZGQgQWRkZXJVU0JfY29uZmlnIGFzIGEgZGVmY29uZmlnIHRvIGVuYWJsZSB1c2FnZSBvZiB0aGUgVVNCIGNvbnNvbGUKICAgICAgYnkgZGVmYXVsdCB3aXRoIHRoZSBBZGRlcjg3eCBVLUJvb3QgcG9ydC4KICAgIFBhdGNoZXMgYnkgQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPiwgMjkgTWF5IDIwMDYKCmNvbW1pdCA4ZWNjOTcxNjE4ZjU2MDI5YWQ5OWQzNTE2ZjhiMjk3YTZlZDU4OTcxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biA3IDEwOjUzOjU1IDIwMDYgLTA1MDAKCiAgICBGaXggYSBnZXRfYm9hcmRfc3lzX2NsaygpIHVzZS1iZWZvcmUtZGVmIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCBkOWJmNDg1OGZjYTVhYTRkNjUxYjI4MzI3MGY3N2RhNzJlYmFkZmQ1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biA3IDEwOjUyOjQ5IDIwMDYgLTA1MDAKCiAgICBBbGxvdyBEVEMgcGF0aCB0byBiZSBwYXNzZWQgaW4uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCBjODNhZTllYTZkOTNhYmJlNzUxYmY4YTMzOTYyMzZhMDg0ZTU2Zjg3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biA2IDE2OjU0OjI5IDIwMDYgLTA0MDAKCiAgICBNb2RpZnkgdGhlIElSUSBvZiBEVUFSVDIKCmNvbW1pdCBjOTM0ZjY1NWY5YWVjYTcwYTVjNWY4OGI0NjVkOWU5ZDU3YThkMjJlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMzo1NTozNSAyMDA2IC0wNTAwCgogICAgUmV2aWV3IGNsZWFudXBzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2I1OTY1ZmI5NWI3N2E0OWY0ZTZhZjk1MjQ4ZTBjODQ5ZjRhZjAzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTI6NDQ6NDQgMjAwNiAtMDUwMAoKICAgIFdoaXRlIHNwYWNlIGNsZWFudXAuCiAgICBTb21lIDgwLWNvbHVtbiBjbGVhbnVwcy4KICAgIENvbnZlcnQgcHJpbnRmKCkgdG8gcHV0cygpIHdoZXJlIHBvc3NpYmxlLgogICAgVXNlICNpbmNsdWRlICJzcGRfc2RyYW0uaCIgYXMgbmVlZGVkLgogICAgRW5oYW5jZWQgcmVzZXQgY29tbWFuZCB1c2FnZSBtZXNzYWdlIGEgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2Q1YzViZTU0NzQ0NWRkM2JkMmViNzM2OGQ4MGRmMDNlYTQzNzk3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTE6Mzk6MzQgMjAwNiAtMDUwMAoKICAgIFJlbW92ZWQgdW5uZWVkZWQgbG9jYWxfYnVzX2luaXQoKSBmcm9tIDg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQzZDcyOWMxNmMzOTJkMjk4MmQzMjY2YjY1OWQzMzNjOTI3Njk3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTE6MjQ6MjggMjAwNiAtMDUwMAoKICAgIE1vdmVkIG1wYzg2NDFocGNuX2JvYXJkX3Jlc2V0KCkgb3V0IG9mIGNwdS8gaW50byBib2FyZC8uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMmE5NDFkZTA2MDM1MGFkMTU4NzhkODIxOTgyNWY0OTUwZTliYjhlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMDowNzoyOCAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIGRlYWQgZGVidWcgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IDEyNmFhNzBmMTBiYTNkMjBlMGE2ZjRkMzIzMjgyNTA1MTNiNzc3NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDE3OjQ3OjAwIDIwMDYgLTA1MDAKCiAgICBNb3ZlIG1wYzg2eHggUElYSVMgY29kZSB0byBib2FyZCBkaXJlY3RvcnkKCiAgICBGaXJzdCBjdXQgYXQgbW92aW5nIHRoZSBQSVhJUyBwbGF0Zm9ybSBjb2RlIG91dCBvZgogICAgdGhlIDg2eHggY3B1IGRpcmVjdG9yeSBhbmQgaW50byBib2FyZC9tcGM4NjQxaHBjbgogICAgd2hlcmUgaXQgYmVsb25ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZjgzYTJmY2VmMWE2NzBjNDVmYzU4NTExOWRjYzFmZTA2MmM0YTkKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTWF5IDMwIDE2OjU2OjE0IDIwMDYgKzAyMDAKCiAgICBTdXBwb3J0IGdlbmVyaWMgT0hDSSBzdXBwb3J0IGZvciB0aGUgczNjMjR4MCBjcHUuCgpjb21taXQgMzhjZWUxMmRjZmNjMjU3MzcxYzkwMWM3ZTEzZTU4ZWNhYjBhMzVkOApBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMDk6MTA6MzIgMjAwNiAtMDUwMAoKICAgIEltcHJvdmUgInJlc2V0IiBjb21tYW5kJ3MgaW50ZXJhY3Rpb24gd2l0aCB3YXRjaGRvZy4KCgkicmVzZXQgYWx0YmFuayIgd2lsbCByZXNldCBhbm90aGVyIGJhbmsgV0lUSE9VVCB3YXRjaCBkb2cgdGltZXIgZW5hYmxlZAoJInJlc2V0IGFsdGJhbmsgd2QiIHdpbGwgcmVzZXQgYW5vdGhlciBiYW5rIFdJVEggd2F0Y2ggZG9nIGVuYWJsZWQKCSJkaXN3ZCIgd2lsbCBkaXNhYmxlIHdhdGNoIGRvZyBhZnRlciB1LWJvb3QgYm9vdHMgdXAgc3VjY2Vzc2Z1bGx5CgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDIwNWU1YTZkZGM4NTI4YjExZGI5ZWI0ZDNmYTAyMDlkOWZjZTJhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAwODo1MToxOSAyMDA2IC0wNTAwCgogICAgRml4IHR3byBTRFJBTSBzZXR1cCBidWdzLgoKCUZpeCBFQ0Mgc2V0dXAgYnVnLgoJRW5hYmxlIDFULzJUIGJhc2VkIG9uIG51bWJlciBvZiBESU1NcyBwcmVzZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDExZmVjNTAxNTMzNGRlYjIwMTBlMzZjZTAwYmIxMThjYzU0MjlhNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMjYgMTA6MjQ6NDggMjAwNiAtMDUwMAoKICAgIEFkZCBmaXJzdCBkcmFmdCBvZiB0aGUgTVBDODY0MUhQQ04gZG9jL1JFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGVkNDVkNmM5MzBiNTkzOTcxOGE4N2VlMTJlMjVjZjlhMDU5NzhkNGEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjEzOjA0IDIwMDYgLTA1MDAKCiAgICBBZGRlZCBwY2lAODAwMCBibG9jay4KICAgIFVwZGF0ZWQgZXRoZXJuZXQgaW50ZXJydXB0IG1hcHBpbmdzIChtb3ZlZCB1cCA0OCkuCiAgICBDbGVhbmVkIHVwIGEgZmV3IGNvbW1lbnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMzAzM2ViYjIwZmQ3YzM3MmM3YmNhM2M5OTU1YTQ2OTJiYjIyNDBiNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMjYgMTA6MDE6MTYgMjAwNiAtMDUwMAoKICAgIEFsbG93IGFyZ3Mgb24gcmVzZXQgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IDMwMWYxYWEzODRkMGVkY2FlNmEyMmZkOWFkYjkzM2FkNzE2OTVlY2MKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIzIDEzOjM4OjM1IDIwMDYgKzAyMDAKCiAgICBDaGFuZ2VkIHRoZSBtcDJ1c2IgKGF0OTFybTkyMDApIGJvYXJkIHRvIHVzZSB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlci4gU29tZQogICAgZml4ZXMgdG8gdGhlIGxhdHRlci4KCmNvbW1pdCAyNGUzNzY0NWU3Mzc4YjIwZmE4ZjIwZTI5OTZjOGZiOGU5MGM3MGM5CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMyAxMDozMzoxMSAyMDA2ICswMjAwCgogICAgTW9yZSBjbGVhbnVwIGZvciB0aGUgZGVsdGEgYm9hcmQgYW5kIHRoZSBnZW5lcmljIHVzYl9vaGNpIGRyaXZlci4gQWRkZWQKICAgIENGR19VU0JfQk9BUkRfSU5JVCBhbmQgQ0ZHX1VTQl9DUFVfSU5JVCBmb3IgZW5hYmxpbmcgYm9hcmQgYW5kIGNwdSBzcGVjaWZpYwogICAgaW5pdGlhbGl6YXRpb24gYW5kIGNsZWFudXAgaG9va3MgcmVzcGVjdGl2ZWx5LgoKY29tbWl0IDNlMzI2ZWNlOWViYTgxODRmNWQ0OGFhNGZiODc3NjBhOGY2ZjBmMTAKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWF5IDIyIDE2OjMzOjU0IDIwMDYgKzAyMDAKCiAgICBUaGlzIHBhdGNoIGFkZHMgVVNCIHN0b3JhZ2Ugc3VwcG9ydCBmb3IgdGhlIGRlbHRhIGJvYXJkLiBUaGlzIGlzIHRoZSBmaXJzdAogICAgYm9hcmQgdG8gbWFrZSB1c2Ugb2YgYSBnZW5lcmljIE9IQ0kgZHJpdmVyLCB0aGF0IGNhbGxzIGhvb2tzIGZvciBib2FyZAogICAgZGVwZW5kYW50IGluaXRpYWxpemF0aW9uLgoKY29tbWl0IDE0ZTM3MDgxZmYzY2FjN2ViZTZlOTM4MzY1MjM0Mjk4NTNiNmIyOTIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjI4OjM5IDIwMDYgLTA1MDAKCiAgICBDaGFuZ2UgYXJiaXRyYXRpb24gdG8gcm91bmQtcm9iaW4gZm9yIFNNUCBsaW51eC4KCmNvbW1pdCA5YTY1NTg3NmU1OTk1YmU4MGY0OTA1NGUyNTA5NTAwZTg3MWU0ZDNhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyNjozNCAyMDA2IC0wNTAwCgogICAgRW5hYmxlIGR1YWwgRERSIGNvbnRyb2xsZXJzIGFuZCBpbnRlcmxlYXZpbmcuCgpjb21taXQgNTg2ZDFkNWFiZDNlNTI1ZjFlMWQ5YjgxZTVhNjFhNGRhNmIyZmEzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MjI6NDQgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZSA4Nnh4IGFkZHJlc3MgbWFwIGFuZCBMQVdCQVJzLgoKY29tbWl0IGNjY2NlNWQwNTgxYmIwYmE0NjAyNzk5YTRiNTExMmU1OGQxNTc5Y2IKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjE0OjE1IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgTDIgQ2FjaGUgaW52YWxpZGF0ZSBwb2xsaW5nLgoKY29tbWl0IGYzNWVjNjhmYjA2NmNlYzBlMzYyOTRiZmUwN2RlYzJkNGU4YWQzYTgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEyOjMzOjA5IDIwMDYgLTA1MDAKCiAgICBFbmFibGUgMm5kIENQVSBhbmQgSTJDLgoKY29tbWl0IGJmNjkwZGNiNTEyZDM0YzRmY2VlYzBlYjFlNWMwZTg4YTlkYjVkNTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDE1IDA3OjI2OjU2IDIwMDYgLTA1MDAKCiAgICBVcGRhdGUgaW50ZXJydXB0IG1hcHBpbmcuCgpjb21taXQgNmNmZWEzMzQ3N2IwNGI2M2VkNDczODZlZDE2Mjk1Mjk0ODRjMzNiYQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTAgMDk6Mzg6MDYgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB1bm5lZWRlZCBJTklUX1JBTV9MT0NLIGNhY2hlIHR3aWRkbGluZy4KICAgIENvcnJlY3RseSB0cmFja3MgcjI5IGFzIGdsb2JhbCBkYXRhIHBvaW50ZXIgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDRkZDMxN2I1OGMxMjZhMmE3ZTczZjQ3NjRlY2MxYTdjOTdmODc2YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTAgMDk6MzM6MDcgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBmbGFzaC5jIGZpbGUuCgpjb21taXQgMThiNmM4Y2Q4YWY2Y2M3ZjM1MTgwY2VkYzRhZGIzMjM2Y2MxYTFiOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOSAwODoyMzo0OSAyMDA2IC0wNTAwCgogICAgR2V0IE1QQzg2NDFIUENOIGZsYXNoIGltYWdlcyB3b3JraW5nLgoKCUVuYWJsZSB0aGUgQ0ZJIGRyaXZlci4KCVJlbW92ZSBib2d1cyBMQVdCQVI3IGNydWZ0LgoJVXNlIGNvcnJlY3QgVEVYVF9CQVNFLCBGaXh1cCBsb2FkIHNjcmlwdC4KCUVuYWJsZSBTUEQgRUVQUk9NIGR1cmluZyBERFIgc2V0dXAuCglVc2UgZ2VuZXJpYyBSRkMgMTkxOCBJUCBhZGRyZXNzZXMgYnkgZGVmYXVsdC4KCmNvbW1pdCA1YzllZmIzNmE2YjU0MzE0MjNmNTI4ODhhMGUzYjRiNTE1ZmU3ZWNhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyNyAxMDoxNToxNiAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCB3aGl0ZXNwYWNlcyBhbmQgc3R5bGUgaXNzdWVzLgogICAgUmVtb3ZlZCAvLy1zdHlsZSBjb21tZW50cy4KICAgIFVzZSA4MC1jb2x1bW4gbGluZXMuCiAgICBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KICAgIFJlbW92ZSBkZWFkIGNvZGUgYW5kIGRlYnVnIGNydWZ0LgoKY29tbWl0IGEyMzIwYTZiZjgxMTNhMDk1NDRjNDJkMTYwZDEwYWM2OWQwNDlhMDMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI3IDA4OjIyOjM5IDIwMDYgLTA1MDAKCiAgICBSZXZlcnQgYmFkIFBDSSBwcmVmZXRjaCBsaW1pdCBjaGFuZ2UuCgpjb21taXQgZGViYjczNTRkMWVhNGY2OTQxNTQ4MThkZjVlNWI1MjNmNWMxY2MxZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMjYgMTc6NTg6NTYgMjAwNiAtMDUwMAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgTVBDODY0MSBIUENOIGJvYXJkLgo=