Y29tbWl0IDQ2N2JjZWUxMWZlMjZhZDQyMmYyZGU5NzFhYTcwODY2MDc5ODcwZjIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxOCAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgbWFudWZhY3R1cmVyLXNwZWNpZmljIGZpeHVwcwoKICAgIFJ1biBmaXh1cHMgYmFzZWQgb24gdGhlIEpFREVDIG1hbnVmYWN0dXJlciBJRCBpbmRlcGVuZGVudCBvZiB0aGUKICAgIGNvbW1hbmQgc2V0IElELgoKICAgIFRoaXMgY2hhbmdlcyBjdXJyZW50IGJlaGF2aW91cjogUHJldmlvdXNseSwgZ2VvbWV0cnkgcmV2ZXJzYWwgZm9yIEFNRAogICAgY2hpcHMgd2VyZSBkb25lIGJhc2VkIG9uIHRoZSBjb21tYW5kIHNldCBJRCwgd2hpbGUgdGhleSBhcmUgbm93IGRvbmUKICAgIGJhc2VkIG9uIHRoZSBKRURFQyBtYW51ZmFjdHVyZXIgYW5kIGRldmljZSBJRC4KCiAgICBBbHNvIGFkZCBmaXh1cCBmb3IgdG9wLWJvb3QgQXRtZWwgY2hpcHMuIEEgZml4dXAgaXMgbmVlZGVkIGZvcgogICAgQVQ0OUJWNjQxNihUKSB0b28sIGJ1dCBzaW5jZSB1LWJvb3QgY3VycmVudGx5IG9ubHkgcmVhZHMgdGhlIGxvdyBieXRlCiAgICBvZiB0aGUgZGV2aWNlIElELCB0aGVyZSdzIG5vIHdheSB0byB0ZWxsIGl0IGFwYXJ0IGZyb20gQVQ0OUJWNjQyRCwKICAgIHdoaWNoIHNob3VsZCBub3QgaGF2ZSB0aGlzIGZpeHVwLiBTaW5jZSBBVDQ5QlY2NDJEIHN1cHBvcnQgaXMKICAgIG5lY2Vzc2FyeSB0byBnZXQgQVROR1cxMDAgYm9hcmQgc3VwcG9ydCBpbnRvIG1haW5saW5lLCBJJ3ZlIGNvbW1lbnRlZAogICAgb3V0IHRoZSBmaXh1cCBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBkZGYwNmRkZjZiNGJkMDU3YWQ0YzVmMGRmZmVhNzg3MGJhMDZhMmEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxNyAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgY21kc2V0LXNwZWNpZmljIGluaXQgZnVuY3Rpb25zCgogICAgTW92ZSB0aGluZ3MgbGlrZSByZWFkaW5nIEpFREVDIElEcyBhbmQgZml4aW5nIHVwIGdlb21ldHJ5IHJldmVyc2FsCiAgICBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4gVGhlIGdlb21ldHJ5IHJldmVyc2FsIGZpeHVwIGlzIG5vdyBwZXJmb3JtZWQKICAgIGJ5IGFsdGVyaW5nIHRoZSBxcnkgc3RydWN0dXJlIGRpcmVjdGx5LCB3aGljaCBtYWtlcyB0aGUgc2VjdG9yIGluaXQKICAgIGNvZGUgc2xpZ2h0bHkgY2xlYW5lci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlMjM3NDFmNGE2ZDgwNDc1MjBlZjBkNDk3MTc2Mjc0OWIzNTg3ZDMyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTU6MzY6MTYgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogUmVhZCB3aG9sZSBRUlkgc3RydWN0dXJlIGluIG9uZSBnbwoKICAgIFJlYWQgb3V0IHRoZSB3aG9sZSBDRkkgU3RhbmRhcmQgUXVlcnkgc3RydWN0dXJlIGFmdGVyIHN1Y2Nlc3NmdWwgY2ZpCiAgICBpZGVudGlmaWNhdGlvbi4gVGhpcyBhbGxvd3Mgc3Vic2VxdWVudCBjb2RlIHRvIGFjY2VzcyB0aGlzIGluZm9ybWF0aW9uCiAgICBkaXJlY3RseSB3aXRob3V0IGhhdmluZyB0byBnbyB0aHJvdWdoIGZsYXNoX3JlYWRfdWNoYXIoKSBhbmQgZnJpZW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZjljMjVlYTA0YjM4YTBlMDVkNGY4YzczYzVjYzE0NGNkYWZhN2RiCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBEZWMgMTcgMTE6MDI6NDQgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBGaXggbG9naWMgaW52ZXJzaW9uIGluIGRpc2FibGVfaW50ZXJydXB0cygpCgogICAgZGlzYWJsZV9pbnRlcnJ1cHRzKCkgc2hvdWxkIHJldHVybiBub256ZXJvIGlmIGludGVycnVwdHMgd2VyZQogICAgX2VuYWJsZWRfIGJlZm9yZSwgbm90IGRpc2FibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGFjYWM0NzUyMTJjYmVkYjE3YjMyMWEzNjNhMWM4NzhlMmI0N2IzN2YKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNjo1MToyMiAyMDA3ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBpbnRlcnJ1cHRzIGF0IGJvb3R1cAoKICAgIFRoZSB0aW1lciBjb2RlIGRlcGVuZHMgb24gdGhlIHRpbWVyIGludGVycnVwdCB0byBrZWVwIHRyYWNrIG9mIHRoZQogICAgdXBwZXIgMzIgYml0cyBvZiB0aGUgY3ljbGUgY291bnRlci4gVGhpcyBvYnZpb3VzbHkgZG9lc24ndCB3b3JrIHdoZW4KICAgIGludGVycnVwdHMgYXJlIGRpc2FibGVkIHRoZSB3aG9sZSB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk1NzBiY2Q4N2Y0ZGIyNTU1MTRmNDNiNjcwMTc0NmM0MTJmOGZlZjAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMDowMzo0NSAyMDA3ICswMTAwCgogICAgQVZSMzI6IEZpeCB3cm9uZyBwaW4gc2V0dXAgZm9yIFVTQVJUMwoKICAgIEFzIHJlcG9ydGVkIGJ5IEdlcmhhcmQgQmVyZ2hvZmVyOgoKICAgIGluICJncGlvX2VuYWJsZV91c2FydDMiIHRoZSBjb3JyZWN0IHBpbnMgZm9yIFVTQVJUIDMgYXJlIFBCMTcgYW5kIFBCMTgKICAgIGluc3RlYWQgb2YgUEIxOCBhbmQgUEIxOS4KCiAgICB3aGljaCBpcyBvYnZpb3VzbHkgY29ycmVjdC4gVGhlcmUncyBjdXJyZW50bHkgbm8gY29kZSB0aGF0IHVzZXMKICAgIFVTQVJUMywgYnV0IGN1c3RvbSBib2FyZHMgbWF5IHJ1biBpbnRvIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA5ZWEwZGUwM2RjYzNlZTdhZjA0NWIwYjU3MjIyN2JkYTJjMWM5MTgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAxIDEyOjQ0OjIwIDIwMDcgKzAxMDAKCiAgICBSRUFETUU6IFJlbW92ZSBBVFNUSzEwMDAgZGF1Z2h0ZXJib2FyZCBsaXN0CgogICAgQXMgbm90ZWQgYnkgS2ltIFBoaWxsaXBzLCB0aGVzZSBsaXN0cyB0ZW5kIHRvIGJlY29tZSBvdXQgb2YgZGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjODFjYmJhZDIxY2IwYWU5ODNlMmU3OTYyMTEyMDIyMzRjZGM4YmUyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBPY3QgMzAgMTQ6NTY6MzYgMjAwNyArMDEwMAoKICAgIEFkZCBBVFNUSzEwMFsyMzRdIHRvIE1BSU5UQUlORVJTCgogICAgQWRkIGFsbCB0aGUgQVRTVEsxMDAwIGRhdWdodGVyYm9hcmRzIHRvIE1BSU5UQUlORVJTIGFsb25nIHdpdGggdGhlaXIKICAgICJtb3RoZXIiLiBBbHNvIHVwZGF0ZSB0aGUgZW50cnkgZm9yIEFUU1RLMTAwMCB0byBiZSBub3Qgb25seSBhYm91dCB0aGUKICAgIEFQNzAwMCBDUFU7IGl0J3MgaW50ZW5kZWQgdG8gaGFuZGxlIGFsbCBDUFVzIGluIHRoZSBBVDMyQVAgZmFtaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDY0ZmYyMzU3YjE3MjcyMTM4MDM1OTE4MTNkYmM3NzljOTI0YmY3NzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzowMjo1NCAyMDA3ICswMTAwCgogICAgQVZSMzI6IEFkZCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDA0IGJvYXJkCgogICAgQVRTVEsxMDA0IGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgQVRTVEsxMDAwIHdpdGggdGhlIEFUMzJBUDcwMDIgQ1BVLAogICAgd2hpY2ggaXMgYSBkZXJpdmF0aXZlIG9mIEFUMzJBUDcwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjY3NTY4ZGIxNTdmMzc0Yjg1YWJkN2UwMzU5NmRkZDFmMGIyNTY4MQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjAyOjU0IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogQWRkIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDMgYm9hcmQKCiAgICBBVFNUSzEwMDMgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciBBVFNUSzEwMDAgd2l0aCB0aGUgQVQzMkFQNzAwMSBDUFUsCiAgICB3aGljaCBpcyBhIGRlcml2YXRpdmUgb2YgQVQzMkFQNzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1ZmVlODRhNzk0YTUxZWM4MzA1NDhjZGE0ODVhNzcwZWZiMDE4YjkyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MjM6MzMgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBNYWtlIHNvbWUgQVQzMkFQNzAweCBwZXJpcGhlcmFscyBvcHRpb25hbAoKICAgIEFkZCBhIGNoaXAtZmVhdHVyZXMgZmlsZSBwcm92aWRpbmcgZGVmaW5pdGlvbnMgb2YgdGhlIGZvcm0KCiAgICBBVDMyQVA3MDB4X0NISVBfSEFTXzxwZXJpcGhlcmFsPgoKICAgIHRvIGluZGljYXRlIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIGdpdmVuIHBlcmlwaGVyYWwgb24gdGhlIGN1cnJlbnRseQogICAgc2VsZWN0ZWQgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzNmYyOGY4YTk2MDVlZTVkY2ZhMzMwNDgyY2ZjNjIxNzEyNjFhZjk3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MDk6NTYgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBSZW5hbWUgYXQzMmFwNzAwMCAtPiBhdDMyYXA3MDB4CgogICAgVGhlIFNvQy1zcGVjaWZpYyBjb2RlIGZvciBhbGwgdGhlIEFUMzJBUDcwMHggQ1BVcyBpcyBwcmFjdGljYWxseQogICAgaWRlbnRpY2FsOyB0aGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgc29tZSBjaGlwcyBoYXZlIGxlc3MgZmVhdHVyZXMKICAgIHRoYW4gb3RoZXJzLiBCeSBkb2luZyB0aGlzIHJlbmFtZSwgd2UgY2FuIGFkZCBzdXBwb3J0IGZvciB0aGUgQVA3MDAwCiAgICBkZXJpdmF0aXZlcyBzaW1wbHkgYnkgbWFraW5nIHNvbWUgZmVhdHVyZXMgY29uZGl0aW9uYWwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNGQ1ZmE5OWM3M2YzNTRlN2NmOTg1ZWZjZjQxN2VhNTVjYTJmNmE1ZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDI5IDE4OjIyOjM0IDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IFNob3cgU1Igd2hlbiBibG9jayByZWFkIGZhaWxzCgogICAgU2hvdyBjb250cm9sbGVyIHN0YXR1cyBhcyB3ZWxsIGFzIGNhcmQgc3RhdHVzIHdoZW4gYW4gZXJyb3Igb2NjdXJzCiAgICBkdXJpbmcgYmxvY2sgcmVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxMmQzMGFhNzk3NzljMmFhN2E5OThiYmFlNGMwNzVmODIyYTUzMDA0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzQgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogVXNlIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKQoKICAgIFVzZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkgdG8gY29udmVydCBmcm9tIHBoeXNpY2FsIHRvCiAgICB2aXJ0dWFsIGFkZHJlc3Nlcy4gVGhpcyBnaXZlcyB0aGUgYXJjaCBhIGNoYW5jZSB0byBwcm92aWRlIGFuIHVuY2FjaGVkCiAgICBtYXBwaW5nIGZvciBmbGFzaCBhY2Nlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZDdkNjkzNmViMjlhZjdjY2EzMzA5Mzc4MDgzMTJhYTVmNjE0NTRkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzMgMjAwNyArMDEwMAoKICAgIEludHJvZHVjZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkKCiAgICBtYXBfcGh5c21lbSgpIHJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3Mgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYWNjZXNzIGEKICAgIGdpdmVuIHBoeXNpY2FsIGFkZHJlc3Mgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGNhY2hlLiB1bm1hcF9waHlzbWVtKCkKICAgIHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgdmlydHVhbCBhZGRyZXNzIHJldHVybmVkIGJ5IG1hcF9waHlzbWVtKCkgaXMKICAgIG5vIGxvbmdlciBuZWVkZWQuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucyB0aGUKICAgIHBoeXNpY2FsIGFkZHJlc3MgY2FzdCB0byBhIHVjaGFyICogZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGV4Y2VwdCBBVlIzMiwKICAgIHdoaWNoIGNvbnZlcnRzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIHVuY2FjaGVkIHZpcnR1YWwgbWFwcGluZy4KICAgIHVubWFwX3BoeXNtZW0oKSBpcyBhIG5vLW9wIG9uIGFsbCBhcmNoaXRlY3R1cmVzLCBidXQgaWYgYW55CiAgICBhcmNoaXRlY3R1cmUgbmVlZHMgdG8gZG8gc3VjaCBtYXBwaW5ncyB0aHJvdWdoIHRoZSBUTEIsIHRoaXMgaXMgdGhlCiAgICBob29rIHdoZXJlIHRob3NlIFRMQiBlbnRyaWVzIGNhbiBiZSBpbnZhbGlkYXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjZGJhZWZiNWY1ZjAzZTU0NDU1ZDA0MzlkY2Y2ZGJkOTdlYWQxZjlkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzIgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogSW50cm9kdWNlIHJlYWQgYW5kIHdyaXRlIGFjY2Vzc29ycwoKICAgIEludHJvZHVjZSBmbGFzaF9yZWFkezgsMTYsMzIsNjQpIGFuZCBmbGFzaF93cml0ZXs4LDE2LDMyLDY0fSBhbmQgdXNlCiAgICB0aGVtIHRvIGFjY2VzcyB0aGUgZmxhc2ggbWVtb3J5LiBUaGlzIG1ha2VzIGl0IGNsZWFyZXIgd2hlbiB0aGUgZmxhc2gKICAgIGlzIGFjdHVhbGx5IGJlaW5nIGFjY2Vzc2VkOyBtZXJlbHkgZGVyZWZlcmVuY2luZyBhIHZvbGF0aWxlIHBvaW50ZXIKICAgIGxvb2tzIGp1c3QgbGlrZSBhbnkgb3RoZXIga2luZCBvZiBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODEyNzExY2U2YjNhMzg2MTI1ZGNmMGQ2YTU5NTg4ZTQ2MWFiYmI4NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjMxIDIwMDcgKzAxMDAKCiAgICBJbXBsZW1lbnQgX19yYXdfe3JlYWQsd3JpdGV9W2J3bF0gb24gYWxsIGFyY2hpdGVjdHVyZXMKCiAgICBUaGlzIGFkZHMgaW1wbGVtZW50YXRpb25zIG9mIF9fcmF3X3JlYWRbYndsXSBhbmQgX19yYXdfd3JpdGVbYndsXSB0bwogICAgbTY4aywgcHBjLCBuaW9zIGFuZCBuaW9zMi4gVGhlIG02OGsgYW5kIHBwYyBpbXBsZW1lbnRhdGlvbnMgd2VyZSB0YWtlbgogICAgZnJvbSBMaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiZTYwYTkwMjFjODJmYzVhZWNkNWIyYjFmYzk2ZjcwYTljODFiYmNkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNiAyMDA3ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBSZW9yZGVyIGZ1bmN0aW9ucyBhbmQgZWxpbWluYXRlIGV4dHJhIHByb3RvdHlwZXMKCiAgICBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gY2ZpX2ZsYXNoLmMgc28gdGhhdCBlYWNoIGZ1bmN0aW9uIG9ubHkgdXNlcwogICAgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgYmVmb3JlIGl0LiBUaGlzIGFsbG93cyB0aGUgc3RhdGljCiAgICBwcm90b3R5cGUgZGVjbGFyYXRpb25zIG5lYXIgdGhlIHRvcCB0byBiZSBlbGltaW5hdGVkIGFuZCBtaWdodCBhbGxvdwogICAgZ2NjIHRvIGRvIGEgYmV0dGVyIGpvYiBpbmxpbmluZyBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzA1NTc5M2JjYmRmMjRiMWY4MTE3ZjYwNmZmYjc2NmQzMmViNzY2ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI5IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IE1ha2Ugc29tZSBuZWVkbGVzc2x5IGdsb2JhbCBmdW5jdGlvbnMgc3RhdGljCgogICAgTWFrZSBmdW5jdGlvbnMgbm90IGRlY2xhcmVkIGluIGFueSBoZWFkZXIgZmlsZSBzdGF0aWMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2U1YjliNDcxNTE4YzU2NTJmZWJjNjhiYTYyYjQzMjE5M2Q2YWJmNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI4IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEJyZWFrIGxvbmcgbGluZXMKCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGtlZXAgYWxsIGxpbmVzIGluIHRoZSBjZmlfZmxhc2ggZHJpdmVyIGJlbG93IDgwCiAgICBjb2x1bW5zLiBUaGVyZSBhcmUgYSBmZXcgbGluZXMgbGVmdCB3aGljaCBkb24ndCBmaXQgdGhpcyByZXF1aXJlbWVudAogICAgYmVjYXVzZSBJIGNvdWxkbid0IGZpbmQgYW55IHRyaXZpYWwgd2F5IHRvIGJyZWFrIHRoZW0gKGkuZS4gaXQgd291bGQKICAgIHRha2Ugc29tZSByZXN0cnVjdHVyaW5nLCB3aGljaCBJIGludGVuZCB0byBkbyBpbiBhIGxhdGVyIHBhdGNoLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0MjAyNmM5Y2IzYTc2ODQ5YjQxZTZlMjRhYmZiN2I1NjgwN2E1YzFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIERlYyAxMSAxMzo1OTo1NyAyMDA3ICswMTAwCgogICAgQ0ZJOiBzeW5jaHJvbml6ZSBjb21tYW5kIG9mZnNldHMgd2l0aCBMaW51eCBDRkkgZHJpdmVyCgogICAgRml4ZXMgbm9uLXdvcmtpbmcgQ0ZJIEZsYXNoIG9uIHRoZSBJbmthNHgwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOGZmM2RlNjFmYzVmOWIzYjIxNjQ3YmNlMDgxYTNiN2Y3MTBmMGQ0ZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAxMjoxNzozNCAyMDA3IC0wNjAwCgogICAgSGFuZGxlIE1QQzg1eHggUENJZSByZXNldCBlcnJhdGEgKFBDSS1FeCAzOCkKCiAgICBPbiB0aGUgTVBDODV4eCBib2FyZHMgdGhhdCBoYXZlIFBDSWUgZW5hYmxlIHRoZSBQQ0llIGVycmF0YSBmaXguCiAgICAoTVBDODU0NERTLCBNUEM4NTQ4Q0RTLCBNUEM4NTY4TURTKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgyYWM4Yzk3MTQ1YTRjM2JmOGIzZGJmYWQwMGZhOTZlOTIwZjliOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMTI6MDQ6MzAgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRF9FTEYKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ0MzU3OTMyMjljZTI5YTQyNzk3YzFlZGMzOWY1YjM0Zjk4N2Y5MWEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMDQ6NTk6MjYgMjAwNyAtMDYwMAoKICAgIEhhbmRsZSBBc3luY2hyb25vdXMgRERSIGNsb2NrIG9uIDg1eHgKCiAgICBUaGUgTVBDODU3MiBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIGFuIGFzeW5jaHJvbm91cyBERFIgY2xvY2sgd2l0aAogICAgcmVnYXJkcyB0byB0aGUgcGxhdGZvcm0gY2xvY2suCgogICAgSW50cm9kdWNlIGdldF9kZHJfZnJlcSgpIHRvIHJlcG9ydCB0aGUgRERSIGZyZXEgcmVnYXJkbGVzcyBvZiBzeW5jL2FzeW5jCiAgICBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjJhYmIyZDJlYWY3Yjc5NWE2OTIzYzYyNzNlYzljYjUzZmRhOWExMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MzQ6MjggMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDE1YTYxM2JhYmI4NGQ1ZTVkNWI0MmU4ZTU1Mzg2OGM3MWZjM2E2NApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6NDc6NDQgMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGMyZDk0M2ZmYmZkMzM1OWIzYjQ1ZDE3N2I0MzczNzlkMmNiODZmYmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE2OjE4IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTQwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg3MGNlYWM1YjNhMzQ4NmMxMDkzOTZlMDA1YWY4MWFlNzYyYjU3MTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTYwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFjYmNhODc2ZmIzZmVjMjVjZDljNTViMGVmYzgxZmY2MThmZjUyNjIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjEzOjQ3IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTY4IE1EUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGE4NTNkNTZjNTliMzM0MTUzMDQ1MzE0NDM2MzM4MDg3MzZhY2ZjNmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjE4OjU5IDIwMDcgLTA2MDAKCiAgICBVc2Ugc3RhbmRhcmQgTEFXQVJfVFJHVF9JRl8qIGRlZmluZXMgZm9yIExBVyBzZXR1cCBvbiA4NXh4CgogICAgV2UgYWxyZWFkeSBoYWQgZGVmaW5lcyBmb3IgTEFXQVJfVFJHVF9JRl8qIHRoYXQgd2Ugc2hvdWxkIHVzZQogICAgcmF0aGVyIHRoYW4gY3JlYXRpbmcgbmV3IG9uZXMuICBBbHNvLCBhZGRlZCBzb21lIG1pc3NpbmcgZGVmaW5lcyBmb3IKICAgIFBDSUUgdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDA0ZGI0MDA4OTJkYTM3Yjc2YTU4NWUzMzJhMGMxMzc5NTRhZDIwMTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjEwOjA5IDIwMDcgLTA2MDAKCiAgICBTdG9wIHVzaW5nIGltbWFwX3Qgb24gODV4eAoKICAgIEluIHRoZSBmdXR1cmUgdGhlIG9mZnNldHMgdG8gdmFyaW91cyBibG9ja3MgbWF5IG5vdCBiZSBpbiBzYW1lIGxvY2F0aW9uLgogICAgTW92ZSB0byB1c2luZyBDRkdfTVBDODV4eF8qX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIHJlZ2lzdGVycwogICAgaW5zdGVhZCBvZiBnZXR0aW5nIGl0IHZpYSAmaW1tYXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyNzE0MjIzZjhlMDRhYjNlNDEzM2ZmNjU4NzJlZWYzNjZkOTBiZmVhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMToyMzowOSAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIENPTkZJR19PRl9GTEFUX1RSRUUgcmVsYXRlZCBjb2RlIGZyb20gbXBjODV4eCBzaW5jZSB3ZSBub3cgdXNlIGxpYmZkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzQ4MDg2MWJmMDAwMTU2ZTZhM2U5MzJjMjU4ZGI1OWZmMjIxMmRkMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MDY6MTkgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTY4IE1EUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU2OCBNRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTU2M2Y1NmUwYzY4ZjY5MjBmOTU2MzgyZDZkMTNiZWUzZjAxYzBmNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMTQgMTU6NTI6MDYgMjAwNyAtMDUwMAoKICAgIEFkZCBQQ0kgRXhwcmVzcyBzdXBwb3J0IG9uIE1QQzg1NjhNRFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiOTBkMjU0OTc2MjViOTBmZmEzZjI5MTFhMDg5NWNhMjM3NTU2ZmY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxMTo0NCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1eHggQ0RTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NXh4IENEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZmQ1ZWM2NmIxMDUyMWEwNTdhZDczZTY5YWI1ZjBmOWVhZmJhMjU1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo1NDoyNyAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTQwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1Y2U3MTU4MDJmNmM1MGRjNzhiMzQwNWI5MmYxODRiMWUzNzEwNTE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo0MDozMSAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NjAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTYwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhYWZlZWZiZGI4YjAyOWY1Y2EyYTE5NTU5OGQwYTUwMWE2MDZlZWE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAwMDozNjozMyAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBjcG0gb2Zmc2V0IG9uIDg1eHgKCiAgICBJbiB0aGUgZnV0dXJlIHRoZSBvZmZzZXRzIHRvIHZhcmlvdXMgYmxvY2tzIG1heSBub3QgYmUgaW4gc2FtZSBsb2NhdGlvbi4KICAgIE1vdmUgdG8gdXNpbmcgQ0ZHX01QQzg1eHhfQ1BNX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIENQTSByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9jcG0uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNTliNTVhNWI4ZmNhZGFhOTk3ODFiYTQ4ZTdhMzhlOTU2YWZhNTI3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMzoyNTowMiAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBndXRzIG9mZnNldCBvbiA4NXh4CgogICAgSW4gdGhlIGZ1dHVyZSB0aGUgb2Zmc2V0cyB0byB2YXJpb3VzIGJsb2NrcyBtYXkgbm90IGJlIGluIHNhbWUgbG9jYXRpb24uCiAgICBNb3ZlIHRvIHVzaW5nIENGR19NUEM4NXh4X0dVVFNfQUREUiBhcyB0aGUgYmFzZSBvZiB0aGUgZ3V0cyByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9ndXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MGMwM2M4Y2Y0OTRkOTFjZGVjMzk2NzBkOTUzMzdjNzQzZTE2ZWM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMjo0MjozNCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDQgRFMgY29uZmlnCgogICAgKiBSZW1vdmVkIEhBU19FVEgyL0hBU19FVEgzIC0gTVBDODU0NCBvbmx5IGhhcyBUU0VDMS8yCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIE1vdmVkIHRvIHVzaW5nIGZkdGZpbGUgJiBmZHRhZGRyIGFzIGZkdCBlbnYgdmFyIG5hbWVzCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWRkY2U1N2UyZTRjNDllNzdmZmIyMDIwYTg0NjkwNzEzYmIxOGI0NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MTI6MjQgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0RFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NDREUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmODUyY2U3MmYxMDBjYWJkMWYxMWMyMWMwODVhMGFkOGVjYTlmYjY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxNTozMCAyMDA3IC0wNjAwCgogICAgQWRkIGxpYmZkdCBiYXNlZCBmdF9jcHVfc2V0dXAgZm9yIG1wYzg1eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk2OTJjMjczNGE0N2YyM2I0NGEwZjY4MDQyYTNlMmNhOGQxYmZiMzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgOCAwODoyNTowOSAyMDA3ICswMTAwCgogICAgQ0ZJOiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MWIyMGNjYzJkNzk1YWU5YTExOTlkYjVhNTBhZDljMjhkMWU0ZDIyCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJRnJpIERlYyA3IDIzOjM1OjAyIDIwMDcgKzAxMDAKCiAgICBDRkk6IHN1cHBvcnQgSkVERUMgZmxhc2ggcm9tcyBpbiBDRkktZmxhc2ggZnJhbWV3b3JrCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG5vbi1DRkkgZmxhc2ggUk9NUywgYnkgaG9va2luZyBpbnRvIHRoZQogICAgQ0ZJIGZsYXNoIGNvZGUgYW5kIHVzaW5nIG1vc3Qgb2YgaXRzIGNvZGUsIGFzIHJlY2VudGx5IGRpc2N1c3NlZCBoZXJlIGluIHRoZQogICAgdGhyZWFkICJNaXhpbmcgQ0ZJIGFuZCBub24tQ0ZJIGZsYXNocyIuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMDFiMTdkZDg1NmZhMTIwYjI5NzBmNTBkOTU5ODU0NmE0OTI3ZWMzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIE5vdiAyOCAyMToyNDo1MCAyMDA3IC0wNTAwCgogICAgQ29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9maXh1cF9ldGhlcm5ldCgpCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzOiBPbiBib2FyZHMgdGhhdCBkb24ndCBoYXZlIGV0aGVybmV0cyBkZWZpbmVkLAogICAgZG9uJ3QgY29tcGlsZSBmZHRfZml4dXBfZXRoZXJuZXQoKS4KCmNvbW1pdCAyNDZkNGFlNmJjMjgyYmMxODQxMjI0ZTFjNWZjNDlkYzkyNWUwYmY3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMTo1OTo0NiAyMDA3IC0wNjAwCgogICAgQ29udmVydCBib2FyZHMgdGhhdCBzZXQgbWVtb3J5IG5vZGUgdG8gdXNlIGZkdF9maXh1cF9tZW1vcnkoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTUxYzhiMDliMzVlZWJlOGZkOTEzOWNiNmMxZDkxYzI3YjIyZjA1OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MDY6MTUgMjAwNyAtMDYwMAoKICAgIEFkZGVkIGZkdF9maXh1cF9zdGRvdXQgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IGxpbnV4LHN0ZG91dC1wYXRoCgogICAgV2UgdXNlIGEgY29tYmluYXRpb24gb2YgdGhlIHNlcmlhbE4gYWxpYXMgYW5kIENPTkZJR19DT05TX0lOREVYIHRvCiAgICBkZXRlcm1pbmUgd2hpY2ggc2VyaWFsIGFsaWFzIHdlIHNob3VsZCBzZXQgbGludXgsc3Rkb3V0LXBhdGggdG8uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYzkyNzI4MTNmYWQ4NGM2OTFkMGU0OTg5YmIxOGEzZmZlYmRlYmZjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxNDo1Nzo0NSAyMDA3IC0wNjAwCgogICAgQWRkIGNvbW1vbiBtZW1vcnkgZml4dXAgZnVuY3Rpb24KCiAgICBBZGQgdGhlIGZ1bmN0aW9uIGZkdF9maXh1cF9tZW1vcnkoKSB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIG9mIHRoZSBmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDljOTEwOWU3ZmNmN2FjMmNhMTljOTViOGFjNTRiOGQxYzc3M2IxNTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDExOjE5OjEyIDIwMDcgLTA2MDAKCiAgICBDb25kaXRpb25hbGx5IGNvbXBpbGUgZmR0X3N1cHBvcnQuYwoKICAgIE1vZGlmeSBjb21tb24vTWFrZWZpbGUgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9zdXBwb3J0LmMgYmFzZWQKICAgIG9uIENPTkZJR19PRl9MSUJGRFQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkODhlN2JhMDk4MDc3MzQ3OWUxYTY0YmFkYjI5MzExNjA3MWI3ZWYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxMDo0MTo0MCAyMDA3IC0wNjAwCgogICAgRml4IGJ1aWxkIGJyZWFrYWdlIGR1ZSB0byBsaWJmZHQgaW1wb3J0CgogICAgVGhlIElEUzgyNDcgZ290IGxvc3QgaW4gdGhlIHVwZGF0ZSBhbmQgbmVlZCBhbiBBUEkgdXBkYXRlCiAgICBkbyB0byByZW5hbWUgb2YgZnVuY3Rpb25zIGluIGxpYmZkdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI4ZjM4NGIxNzFiYmYxZmIyZGFmYjEwNDZlNmQyNTlhNmIyZjg3MTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgTm92IDIzIDE5OjQzOjIwIDIwMDcgLTA1MDAKCiAgICBBZGQgc3BhY2VzIGFyb3VuZCB0aGUgPSBpbiB0aGUgZmR0IHByaW50IGZvcm1hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDI5NTkyZWNiYTNiOTMyYjliMTUyYmNlYzZjMGMwODA2NDEyZGI0YTMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBEZWMgNyAwMToyNTozOCAyMDA3ICswOTAwCgogICAgc2g6IE1vdmVkIGRyaXZlciBvZiB0aGUgU3VwZXJIIGRlcGVuZGVuY2UKCiAgICBUaGUgY29tcG9zaXRpb24gb2YgdGhlIGRpcmVjdG9yeSBpbiB0aGUgZHJpdmVycy8gY2hhbmdlZC4KICAgIEkgbW92ZWQgU3VwZXJIIHNlcmlhbCBkcml2ZXIgYW5kIG1hcnVidW4gUENNQ0lBIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNDFiZTk2OWY0OTU3MTE1ZWQ3YjFmZThiODkwYmZhZWU5OWQ3YTdhMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgNiAxMDoyMToxOSAyMDA3ICswMTAwCgogICAgUmVsZWFzZSB2MS4zLjEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmNTkzM2JhMWU5N2ExY2Q4ZjVmMjQwNzBlODIwZjIxZDk3NmVhZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMTA6MjE6MDMgMjAwNyArMDEwMAoKICAgIEFEUzUxMjEgQm9hcmQ6IGZpeCBjb21waWxlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZDRmMDQwYTNjMTUwMzZhNmVhMjVhOWMzOWU3ZDg5ZmVmYTg0NDBkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIERlYyAzIDAwOjE1OjI4IDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciAxLjMuMS1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI2MGVlYTU2NzZjYTQ2OTAzYTMzNTY4NmNjMDIwYjI5YzRjYTQ2ZmUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MjE6NTQgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgU3VwZXJIIGJvYXJkcyBtYWludGFpbmVyIHRvIE1BSU5UQUlORVJTIGZpbGUKCiAgICBBZGQgTVM3NzUwU0UgYW5kIE1TNzcyMlNFJ3MgYm9hcmQgbWFpbnRhaW5lciB0byBNQUlOVEFJTkVSUyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBhYTljNGYxZDIyNzAxYTkyMzQ3YzFjODFmMzRkMTJjOGFkM2EzNzQ3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgTm92IDI5IDAwOjEzOjA0IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIG1zNzc1MHNlIHN1cHBvcnQgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjNzE0NDM3MzQyN2ExNzgzMzJiZjk3NTQxMzFjOGMzNGM1MmMyMDBhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyNyAwOTo0NDo1MyAyMDA3ICswMTAwCgogICAgc2g6IEFkZCBzaDMgYW5kIHNoNCBzdXBwb3J0IGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDEzMDA4MDg3NGEzZDI4NDUwMDk4NDgxYTI2MmM1ZjdjODU1ZTkwOGQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6NTE6MTcgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgZG9jdW1lbnQgZm9yIFN1cGVySC4KCiAgICBUaGlzIGRvY3VtZW50IGlzIGEgc3VtbWFyeSBvZiBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIFN1cGVySCBvZiBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzZWNkYzJmOWQ2NDkyNmUxYTYwNjdiMjhmM2EwYWVmYzNiNmQyM2QKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6Mzk6MzEgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgbWFydWJ1bidzIHBjbWNpYSBkcml2ZXIKCiAgICBNYXJ1YnVuIHBjbWNpYSBpcyBhIGNoaXAgZm9yIFBDTUNJQSB1c2VkIHdpdGggU3VwZXJILgogICAgT2YgY291cnNlLCB0aGlzIGNhbiBiZSB1c2VkIGV2ZW4gYnkgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KICAgIFdoZW4gdXNlIHRoaXMgZHJpdmVyLCBjYW1lIHRvIGJlIGFibGUgdG8gdXNlIENvbXBhY3RGbGFzaAogICAgYW5kIEV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmZWJkODZiOTY5Yjk3NTI4OWVkOTQ4ZjFhYzBlYjk3MjJkYTQxY2VkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gTm92IDI1IDAyOjMyOjEzIDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIFN1cGVySCBTQ0lGIGRyaXZlcgoKICAgIC0gQ2hhbmdlZCB2b2xhdGlsZSB1bnNpZ25lZCB0byB2dV8uCiAgICAtIENoYW5nZWQgTWFrZWZpbGUgZm9yIGtjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGE1ZjYwMWZkMWIxMjc4ZGVhZTVhYTlmYzI3YTIzMmIwZDFjMWM3ODgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDI2IDE5OjE4OjIxIDIwMDcgKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZTsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2RlY2E5ZDQ0NzY3ZWZkMWI4M2Y0YjcwMWYwZGJmMjFhNzU5NWY3YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMjUgMjI6Mzk6MjUgMjAwNyArMDEwMAoKICAgIE1BS0VBTEw6IGFkZCBtaXNzaW5nIDUxMnggYm9hcmRzIGluIHBwYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTM0MGMzMjVlNjY4Y2E3Mzg2YzIyNzYzODc2ODE3MjBiZTljMzc1NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMjUgMTg6NDU6NDcgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIDogZml4IHRhZ3MgY3RhZ3MgZXRhZ3Mgd2l0aCBuZXcgZHJpdmVycyBvcmdhbml6YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDg3ZGRlZGQ2YWQ4MDQ0MjdjZTEyNWNlYWEwNzZkN2E0Zjc0ZTlkNWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDI1IDE4OjQ1OjQ3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSA6IGZpeCB0YWdzIGN0YWdzIGV0YWdzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1OTgyOWNjMTg5Mzc4YzE0MmMxM2QyYWE4ZDlhODk3ZDhiZWYzOTYxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToyNjo1NiAyMDA3ICswMTAwCgogICAgZHJpdmVycy9tdGQgOiBtb3ZlIG10ZCBkcml2ZXJzIHRvIGRyaXZlcnMvbXRkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMThjMGI5MDQzMWYyNjQ4NTUyZTVhZGU3ODgzM2Y0MjY1MmNlODU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxNzo1NSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9taXNjIDogbW92ZSBtaXNjIGRyaXZlcnMgdG8gZHJpdmVycy9taXNjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzM2RhZjViNzg1ODgwN2NiNGNlNDE1OGMyYzU2NTI0NjcxYzE0YzA4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxMzo1OSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ibG9jayA6IG1vdmUgYmxvY2sgZHJpdmVycyB0byBkcml2ZXJzL2Jsb2NrCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYzY5OGRjYWE3MDI3NWViODgxNGY2NjViNTQ1NTQ3Y2VlMDEzODkyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDo1OTo1MCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ydGMgOiBtb3ZlIHJ0YyBkcml2ZXJzIHRvIGRyaXZlcnMvcnRjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmODY4Y2M1YTUwNzU3ZDk0ZjM2YzMxMjM5NTQ4MWNiMGYxODdkOWU2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDoxNDo0NCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9od21vbiA6IG1vdmUgaGFyZHdhcmUgbW9uaXRvciBkcnZpZXJzIHRvIGRyaXZlcnMvaHdtb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE2YjE5NWM4MmExOGNiZmQxNjQ4MDBmMTdhMWVmOWRiMmU0ODMzMWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQ2OjQ1IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2lucHV0IDogbW92ZSBpbnB1dCBkcml2ZXJzIHRvIGRyaXZlcnMvaW5wdXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU0NTU4NjY2MjkzMzY0ZmMzYWYxYzFkOTM4MWNhOTMzZmEwZjEyNzUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQwOjExIDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3VzYiA6IG1vdmUgdXNiIGRyaXZlcnMgdG8gZHJpdmVycy91c2IKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEzNzhkZjc5MmE3ZmYzYWJkMWJmNTRhNjNmNTQ3NTc4NGY1YjA4M2MKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjMzOjM4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3NlcmlhbCA6IG1vdmUgc2VyaWFsIGRyaXZlcnMgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI0MzllNGJmYTExMWJhYmY0YmMwN2JhMjBlZmJmM2UzNjAzNjgxM2UKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDIxIDIxOjE5OjI0IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL25ldCA6IG1vdmUgbmV0IGRyaXZlcnMgdG8gZHJpdmVycy9uZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM1MmQyNTkxMzBiMzQ5ZmU5NTkzYjhkYWRhNjQxYmQ3OGE5NjU5ZTUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjQxOjQ4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3ZpZGVvIDogbW92ZSB2aWRlbyBkcml2ZXJzIHRvIGRyaXZlcnMvdmlkZW8KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDczNjQ2MjE3MTg2YWExN2FmYzhlMzA1YzVmMDZmMDZkZDMzNWVhYWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjMzOjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjbWNpYSA6IG1vdmUgcGNtY2lhIGRyaXZlcnMgdG8gZHJpdmVycy9wY21jaWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzYTY4NmVlOWM1ZGRjNmZhMzY4YzMyY2ZiZmRlNmY2NzI0NTk5ZmMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjI4OjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjaSA6IG1vdmUgcGNpIGRyaXZlcnMgdG8gZHJpdmVycy9wY2kKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkxNjIzNTI4MTc1Nzk4NDBkNzgwMmRhNmQ4NTg3MmIzY2EwMDNjOTcKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgTm92IDIyIDE3OjIzOjIzIDIwMDcgLTA1MDAKCiAgICBGaXggZmR0IHByaW50aW5nIGZvciB1cGRhdGVkIGxpYmZkdAoKICAgIEFsc28gaW1wcm92ZSBwcmludGluZyAoYWRvcHQgZHRjIHYxICJjIHN0eWxlIiBoZXggZm9ybWF0KSwgd2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOWViNzdjZWExZmExMmQ1OTY5ZWIyNmExZDFkODFkYTM4MWJkNmIxYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTM6MzA6MTUgMjAwNyAtMDYwMAoKICAgIEFkZCBhZGRpdGlvbmFsIGZkdCBmaXh1cCBoZWxwZXIgZnVuY3Rpb25zCgogICAgQWRkZWQgdGhlIGZvbGxvd2luZyBmZHQgZml4dXAgaGVscGVyczoKICAgICAqIGRvX2ZpeHVwX2J5X3Byb3B7X3UzMn0gLSBGaW5kIG1hdGNoaW5nIG5vZGVzIGJ5IHByb3BlcnR5IG5hbWUvdmFsdWUKICAgICAqIGRvX2ZpeHVwX2J5X2NvbXBhdHtfdTMyfSAtIEZpbmQgbWF0Y2hpbmcgbm9kZXMgYnkgY29tcGF0CgogICAgVGhlIF91MzIgdmFyaWFudHMgd29yayB0aGUgc2FtZSBvbmx5IHRoZSBwcm9wZXJ0eSB0aGV5IGFyZSBzZXR0aW5nCiAgICBpcyBrbm93IHRvIGJlIGEgMzItYml0IGludGVnZXIgaW5zdGVhZCBvZiBhIGJ5dGUgYnVmZmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWI1NDQ2MzNhYmRkMTRmNGRkNWQ5MmU1MDBiNzNlYjU5ZWY1N2U2NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTE6MTE6MDMgMjAwNyAtMDYwMAoKICAgIEFkZCBmZHRfZml4dXBfZXRoZXJuZXQgaGVscGVyIHRvIHNldCBtYWMgYWRkcmVzc2VzCgogICAgQWRkZWQgYSBmaXh1cCBoZWxwZXIgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IG1hYyBhZGRyZXNzZXMKICAgIGluIHRoZSBkZXZpY2UgdHJlZSBiYXNlZCBvbiB0aGUgYmRfdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZGJhZjA3Y2U2MjBhYWIyNDllMzUwMmIyMGE5ODYyMzRhNmFmMWQzYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTQ6MDc6NDYgMjAwNyAtMDYwMAoKICAgIEZpeCB3YXJuaW5ncyBmcm9tIGltcG9ydCBvZiBsaWJmZHQKCiAgICBjbWRfZmR0LmM6IEluIGZ1bmN0aW9uIGZkdF9wcmludDoKICAgIGNtZF9mZHQuYzo1ODY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MTM6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhkMDRmMDJmNjIyNGU2OTgzZjQ4MTJlYTRkYTcwNDk1MGVjODUzOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDI0IDExOjA0OjIyIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgbGliZmR0IGZyb20gZGV2aWNlIHRyZWUgY29tcGlsZXIgKGR0YykKCiAgICBVcGRhdGUgbGliZmR0IHRvIGNvbW1pdCA4ZWFmNWUzNTgzNjYwMTdhYTJlODQ2YzUwMzhkMWFhMTk5NTgzMTRlIGZyb20KICAgIHRoZSBkZXZpY2UgdHJlZSBjb21waWxlciAoZHRjKSBwcm9qZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTkzYmVjZjgwZDczMmI2NGFlZjgxYjIzZThiNmVjZTAyYzQwNTMzZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBOb3YgMyAxOTo0NjoyOCAyMDA3IC0wNTAwCgogICAgTW92ZSBkb19maXh1cCogZm9yIGxpYmZkdCBpbnRvIGNvbW1vbiBjb2RlCgogICAgTW92ZWQgdGhlIGdlbmVyaWMgZml4dXAgaGFuZGxpbmcgY29kZSBvdXQgb2YgY3B1L21wYzV4eHggYW5kIGNwdS9tcGM4MjYwCiAgICBpbnRvIGNvbW1vbi9mZHRfc3VwcG9ydC5jIGFuZCByZW5hbWVkOgoKICAgIGRvX2ZpeHVwKCkJLT4gZG9fZml4dXBfYnlfcGF0aCgpCiAgICBkb19maXh1cF91MzIoKQktPiBkb19maXh1cF9ieV9wYXRoX3UzMigpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzM4YjRhNzU5OThmNDJhNzQwOGRlZmFkYzliYWFjN2EzMWM5MmRiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyNSAxNjoxNTowNyAyMDA3IC0wNTAwCgogICAgTWFrZSBubyBvcHRpb25zIHRvIGZkdCBwcmludCBkZWZhdWx0IHRvICcvJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNjMjkzM2UwMjUwM2ZlMzZhZGUyYzFiNjVhZjQ2ZjJiN2ExNjhlNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjQgMTA6MjE6NTcgMjAwNyAtMDUwMAoKICAgIFJlbW92ZWQgc29tZSBub251c2VkIGZkdCBmdW5jdGlvbnMgYW5kIG1vdmVkIGZkdF9maW5kX2FuZF9zZXRwcm9wIG91dCBvZiBsaWJmZHQKCiAgICBSZW1vdmVkOgoJZmR0X25vZGVfaXNfY29tcGF0aWJsZQoJZmR0X2ZpbmRfbm9kZV9ieV90eXBlCglmZHRfZmluZF9jb21wYXRpYmxlX25vZGUKCiAgICBUbyBlYXNlIG1lcmdlIG9mIG5ld2VyIGxpYmZkdCBhcyB3ZSBhcmVuJ3QgdXNpbmcgdGhlbSBhbnl3aGVyZSBhdCB0aGlzIHRpbWUuCgogICAgQWxzbyBtb3ZlZCBmZHRfZmluZF9hbmRfc2V0cHJvcCBvdXQgb2YgbGliZmR0IGludG8gZmR0X3N1cHBvcnQuYyBmb3IgdGhlIHNhbWUKICAgIHJlYXNvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk4ZTI4NjdjYzg1NDA5YjkxOWY4NjJlNmMxNjAyNjQ2MWVjOTU1ZGYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjEgMDk6MTk6MzcgMjAwNyAtMDcwMAoKICAgIFtCVUlMRF0gUmVtb3ZlIGxpYnJhcmllcyB3aGVuIHVwZGF0aW5nIGF1dG9jb25mLm1rCgogICAgRml4IGxpYnJhcnkgcHJvYmxlbXMgY2F1c2VkIGJ5IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiAgVXNpbmcKICAgIGF1dG9jb25mLm1rIHRvIGRlY2lkZSB3aGljaCBmaWxlcyB0byBjb21waWxlIGhhcyBjYXVzZWQgYSBwcm9ibGVtIHdoZW4KICAgIGNoYW5naW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBvbmUgYm9hcmQgdG8gYW5vdGhlciB3aXRob3V0IGNsZWFyaW5nIG91dAogICAgdGhlIGxpYnJhcnkgKCouYSkgZmlsZXMuCgogICAgSXQgdXNlZCB0byBiZSB0aGF0IHRoZSBsaW5rZXIgd2FzIGFsd2F5cyBwYXNzZWQgdGhlIHNhbWUgbGlzdCBvZiAubwogICAgZmlsZXMgd2hlbiBidWlsZGluZyB0aGUgLmEgZmlsZXMuICBIb3dldmVyLCB0aGF0IGlzIG5vdCBsb25nZXIgdHJ1ZQogICAgd2l0aCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gIE5vdywgYSBkaWZmZXJlbnQgYm9hcmQgY29uZmlnIHdpbGwgaGF2ZQogICAgYSBkaWZmZXJlbnQgZmlsZSBsaXN0IHBhc3NlZCB0byB0aGUgbGlua2VyLiAgVGhlIHByb2JsZW0gb2NjdXJzIHdoZW4KICAgIGEgbGlicmFyeSBoYXMgYWxyZWFkeSBiZWVuIGJ1aWx0IGFuZCB0aGUgYm9hcmQgY29uZmlnIGlzIGNoYW5nZWQuCgogICAgU2luY2UgdGhlIGxpbmtlciB3aWxsIHVwZGF0ZSBpbnN0ZWFkIG9mIHJlcGxhY2UgYSBwcmVleGlzdGluZyBsaWJyYXJ5LAogICAgdGhlbiBpZiB0aGUgZmlsZSBsaXN0IGNoYW5nZXMgdG8gcmVtb3ZlIHNvbWUgb2JqZWN0IGZpbGVzIHRoZSBvbGQKICAgIG9iamVjdHMgd2lsbCBzdGlsbCBleGlzdCBpbiB0aGUgbGlicmFyeS4KCiAgICBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIGFsbCBvbGQgbGlicmFyeSBmaWxlcyB3aGVuIGF1dG9jb25mLm1rIGlzCiAgICBtYWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlZDEzNTNkNzRiOWNlOGE3ZmNkNjYwNTcwYjg0OGExODRkNjE0YjVmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAwODo0OTo1MCAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgbGliZmR0LyouYyBpbiBsaWJmZHQvTWFrZWZpbGUKCiAgICBNb2RpZnkgbGliZmR0L01ha2VmaWxlIHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSB0aGUgKi5jIGZpbGVzIGJhc2VkCiAgICBvbiB0aGUgYm9hcmQgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGE0MzcxOWE3NzM4NzEyODExZDgyMmNhODEyNTQyN2IyN2E1NWNkYwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgY29tbW9uL2NtZF8qLmMgaW4gY29tbW9uL01ha2VmaWxlCgogICAgTW9kaWZ5IGNvbW1vbi9NYWtlZmlsZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIGNtZF8qLmMgZmlsZXMgYmFzZWQKICAgIG9uIHRoZSBib2FyZCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDJmMTU1ZjZjMGExZjVlOWEzMDZhM2YxZjRmYmUwNjdkYjdjZWQzYjEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIFtCVUlMRF0gR2VuZXJhdGUgaW5jbHVkZS9hdXRvY29uZi5tayBmcm9tIGJvYXJkIGNvbmZpZyBmaWxlcwoKICAgIFVzZSBjcHAgYW5kIHNlZCB0byBwb3N0cHJvY2VzcyBjb25maWcuaCBhbmQgaW1wb3J0IHRoZSBkZWZpbmVkIHZhbHVlcwogICAgaW50byBpbmNsdWRlL2F1dG9jb25mLm1rLiAgYXV0b2NvbmYubWsgaXMgdGhlbiBpbmNsdWRlZCBieSBjb25maWcubWsgdG8KICAgIGdpdmUgJ21ha2UnIGFjY2VzcyB0byB0aGUgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICBEb2luZyB0aGlzIGVuYWJsZXMgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYXQgdGhlIE1ha2VmaWxlIGxldmVsIGluc3RlYWQKICAgIG9mIGJ5IHdyYXBwaW5nIGV2ZXJ5IC5jIGZpbGUgd2l0aCAjaWZkZWYvI2VuZGlmIHdyYXBwZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwODBjNjQ2ZGJmNDc0YTEwOWMzZjg1NzE4ZmIwMWNlMDQyYTM4YzQ1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAyMDoxNDoxOCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9pMmMgOiBtb3ZlIGkyYyBkcml2ZXJzIHRvIGRyaXZlcnMvaTJjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5YTMzN2RkYzE1NGExMGEyNmYxMTdmZDE0N2IwMDlhYmNkZWJhNzVhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxOSAyMjoyMDoyNCAyMDA3ICswMTAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjAgcmVsZWFzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYzMGFkNDliMTZiZjk5OGIwM2MxYTUyMjhiNmM4NjM2OWQ2MWMyNTgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDE5IDEwOjAyOjEzIDIwMDcgLTA1MDAKCiAgICBNb3ZlIENPTkZJR19RRSBvdXQgb2YgQ09ORklHX1BDSSB3cmFwIGZvciBNUEM4NTY4TURTCgogICAgQ09ORklHX1FFIHNob3VsZG4ndCBiZSBpbiB0aGUgd3JhcCBvZiBDT05GSUdfUENJLCBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOGMzMjA2MDkzNjYxNzZiMzExMDRkOWJmNWUyOTUyMzJlMWM3ZjFkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglNb24gTm92IDE5IDExOjE0OjE2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYm9hcmQvZ3RoMi9sb3dsZXZlbF9pbml0LlM6IEZpeCBhIGJ1aWxkIHdhcm5pbmcKCiAgICBsb3dsZXZlbF9pbml0LlM6IEFzc2VtYmxlciBtZXNzYWdlczoKICAgIGxvd2xldmVsX2luaXQuUzo0MTM6IFdhcm5pbmc6IFByZXRlbmRpbmcgZ2xvYmFsIHN5bWJvbCB1c2VkIGFzIGJyYW5jaCB0YXJnZXQgaXMgbG9jYWwuCgogICAgTG9va2luZyBhdCBjb2RlcywgdGhlIGBtZW10ZXN0JyBhbmQgYGNsZWFybWVtJyBhcmUgaW50ZW50aW9uYWwgbWl4ZWQKICAgIHVzZSBvZiBgZ2xvYmFsIHN5bWJvbHMnIGFuZCBgbGFiZWwnIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gVG8gbWFrZSBpdAogICAgYnVpbGQsIGp1c3QgZGlzYWJsZSBnbG9iYWwtc3ltYm9scy11c2UgZm9yIG5vdy4gQXMgYSByZXN1bHQgYG1lbXRlc3QnCiAgICBzdGlsbCByZW1haW5zIGFzIHVudXNlZCwgYnV0IGxlYXZlIGl0IGJlLi4uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGU4ZGE1OGYyYmMwOTI4OTFlOGNjOTJiOTI3ZWQ1YzRiZDBjYjBjYWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDE5IDEyOjU5OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggYnVpbGQgcHJvYmxlbXMgd2l0aCBtcDJ1c2IgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZiZjRjNjg2YWZjYTFlODZlMWMzODRkNTkyMThmOTE0NjA1NzEzYmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDE4IDE4OjM2OjExIDIwMDcgKzAxMDAKCiAgICBzM2MyNHgwOiBGaXggdXNiX29oY2kuYyBtaXNzaW5nIGluIE1ha2VmaWxlCiAgICBhbmQgdXNiX29oY2kuYyB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2MDczZjYxZTA3OGRhNWRkYjUyMWI1NjI1NmJjYzM2NTA4NTg5ODgzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAxOCAxMjo1NTowMiAyMDA3ICswMTAwCgogICAgcGIxeDAwIGJvYXJkOiBGaXggdTE2IHN0YXR1cyBkZWNsYXJhdGlvbiB3aGVuIFBDTUNJQSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NDEyZDgxNGNlOGJmNTU3MGEyYjc0N2YxZTdmZDMyMTA5N2ZlOTg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNzoxMTowOSAyMDA3ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBBUk0gc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQwOWVjZGMwYmI0N2RkMjhiMGFmNmMyNWZmZDY1OGQyMmNjMzZiMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTm92IDE4IDE2OjM2OjI3IDIwMDcgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgZm9yIFBQQyBzeXN0ZW1zLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDc5YzJjNGZhNzFjMGQxZWJlZjM5NDUwOGRmOTA4OGRmOGEzMDhkMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMTcgMTE6MzE6MTAgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIG5ldC9uZXQuYyBhbmQgbmV0L25mcy5jCgpjb21taXQgN2UxNGZjNjUzNjhjYmQyODYxYjEyMDc0NTNkYTU1YTRmYzdiM2Y4MQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6NDI6NDUgMjAwNyArMDkwMAoKICAgIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDIzMDljMTMwYWE0Yzg0YjkxYmQ4NzRhNDEyNjljOTIzZWI2MWI1NTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDc6NTg6MjUgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfc2NzaS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlMWQ4ODRiN2NiNjAyMDA3MzI5YzUxN2VjMWM0NTNlM2E2YTVkOWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjI2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gZG9lcyBub3Qgd29yayB3aXRoIHRoZQogICAgbGF0ZXN0IGJpbnV0aWxzICgyMDA3LTAzLTAxIG9yIGxhdGVyKSBkdWUgdG8gJHtQS0dWRVJTSU9OfSBub3cgZGVmYXVsdCB0bwogICAgIihHTlUgQmludXRpbHMpICIuCgogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgMi4xNS45NCBtaXBzc2RlLTYuMDIuMDItMjAwNTA2MDIKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAyLjE1Ljk0CiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScgfGF3ayAtRi4gJ3twcmludCAkMn0nCiAgICAgIDE1CiAgICAgICQKCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgKEdOVSBCaW51dGlscykgMi4xOAogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAoR05VCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nIHxhd2sgLUYuICd7cHJpbnQgJDJ9JwogICAgICAobm8gb3V0cHV0KQogICAgICAkCgogICAgQXMgYSByZXN1bHQgb2YgYWJvdmUsIHlvdSdsbCBzZWUgbWFueSBub2lzZXMgd2l0aCBzdWNoIGJpbnV0aWxzOgoKICAgICAgbWFrZSAtQyBjcHUvbWlwcy8KICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jcHUvbWlwcycKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBpbmNhaXBfd2R0Lm8gaW5jYWlwX3dkdC5TCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBjYWNoZS5vIGNhY2hlLlMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtaXBzLWxpbnV4LWdjYyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtYyAtbyBhc2Nfc2VyaWFsLm8gYXNjX3NlcmlhbC5jCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIHRyaWNrIGFuZCBtYWtlcyBpdCB3b3JrIHdpdGggYm90aCB2ZXJzaW9ucyBvZiBnYXMuCiAgICBJIGFsc28gcmVwbGFjZSBhbiBleHBlbnNpdmUgYGF3ayAob3IgZ2F3ayknIHdpdGggYGN1dCcuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNjY2NGY3Mjg1MDg0NmU2NDU2MTZkYTFjMGZhNWFmY2Q2ZDE1ZjE1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyNiAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSB1c2VsZXNzIGluc3RydWN0aW9ucyBmb3IgaW5pdGlhbGl6aW5nICRncC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAzYzAzMWQ1NjYwZWE5NDZjMzlhZjZlMmUxNjI2N2RhODU3YzYwOWYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjI3OjA2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gTUlQUyA0SyBjb3JlOiBDb2Rpbmcgc3R5bGUgY2xlYW51cHMKCiAgICBObyBsb2dpY2FsIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmNWU0MjlkMzg2MGJiYTRjNmFlOGJlYWQ4Zjc4MzQ5ZmEyNDQ5MWIyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyMCAyMDA3ICswOTAwCgogICAgW01JUFNdIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDRmYmQwNzQxYjJiNjQ0MWRhMTBiZTkzZTEwMjY3MTIyNTgxYjcwNzkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjIyOjMzIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYXUxeDAwX2V0aC5jOiBGaXhlZCBhIHdhcm5pbmcgb24gcGIxMDAwIGJ1aWxkLgoKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjEzOTogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmMDEzMjA0NTk3MzZmMTU2NzA3NDI1Y2Y4MTEyZjk4NjA2MzAxYWE0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgW01JUFNdIGF1MXgwMF9ldGguYzogRml4IGF1MXgwMF9taWlwaHlfe3JlYWQsd3JpdGV9IGJ1aWxkIGVycm9yCgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX2VuZXRfaW5pdGlhbGl6ZSc6CiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogJ2F1MXgwMF9taWlwaHlfcmVhZCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6ICdhdTF4MDBfbWlpcGh5X3dyaXRlJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjI5ODogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCiAgICBtYWtlWzFdOiAqKiogW2F1MXgwMF9ldGgub10gRXJyb3IgMQoKICAgIEZpeGVkIGJ5IG1vdmluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiMDkyNThjNTM5M2VkZDEwODdjNWYzOWFlNjgzMzhmMTZiNDlmOGIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgTUFLRUFMTDogQWRkZWQgbWlzc2luZyBwYjEwMDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlNGE2ZTM2NjdhMWUzOWMwZTZlOTk0OTg2ODZiMTVkMjcxOGIzNjkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gcGIxMDAwOiBSZXBsYWNlIG9ic29sZXRlIG1lbXNldHVwLlMgd2l0aCBsb3dsZXZlbF9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDY2MmU1Y2IzOTcyNDljM2VhODhhNGMzMjU1ZTljY2ZjNDBiOThkODIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogQ2xlYW51cCBfX3VfYm9vdF9jbWRfe3N0YXJ0LGVuZH0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDU5NDdmNjk5OWFhZmE3YzU0YzEzOTA5ODNkMjY0YTg0NjNkZmVhOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAyOjM0OjM4IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9JRywgcHJlcGFyZSBmb3IgLXJjNAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQzMjllNmYwNWJiZGZlNmJkNzFiMGUwOWYwYzc2ZDNiMGEwMjVhNQpBdXRob3I6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1ODozMyAyMDA3ICswMTAwCgogICAgRml4IHRoZSBpMmMgZnJlcXVlbmN5IGFuZCBkZWZhdWx0IGFkZHJlc3MgaW4gcnNkcHJvdG8gYm9hcmQKCiAgICByc2Rwcm90byBib2FyZCBzdXBwb3J0IGhhcyB3cm9uZyBJMkMgZnJlcXVlbmN5IGFuZCB3cm9uZyByZXR1cm4gdmFsdWUKICAgIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCA0MjljMTgwZWRhZDAzOGY5MWM5ODljYjE0YjQ3ODIyODA5MmU3MDU0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMTo0NTozOCAyMDA3ICswMTAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMgZm9yIE1QQzUxMjEsIHRvby4KCiAgICBBcHBseSBHcmFudCBMaWtlbHkncyBiYWNrb3V0IHRvIE1QQzUxMjEgY29kZSwgdG9vLgoKICAgIFBvaW50ZWQgb3V0IGJ5IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYzNkZDQzMzM4YTA3NzE2NWU3ZTAzMDljYjM5OTRlNjVkMmJkYmY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgTm92IDEzIDIyOjE4OjMzIDIwMDcgLTA3MDAKCiAgICBwb3dlcnBjOiBCYWNrb3V0IHJlbG9jYXRpb24gY2hhbmdlcy4KCiAgICBVZ2guICBJICpoYXRlKiB0byBiYWNrIHRoaXMgY2hhbmdlIG91dCwgYnV0IHRoZXNlIGNvbXBpbGVyIGZsYWdzIGRvbid0CiAgICB3b3JrIGZvciByZWxvY2F0aW9uIG9uIGFsbCB2ZXJzaW9ucyBvZiBHQ0MuICBJJ3ZlIG5vdCBiZWVuIGFibGUgdG8KICAgIHJlcHJvZHVjZSB0aGUgZW52aXJvbm1lbnQgaW4gbXkgc2V0dXAgKGFuZCBoZW5jZSwgbm90IGJlZW4gYWJsZSB0bwogICAgZmluZCBhIGNvbWJpbmF0aW9uIHRoYXQgKmRvZXMqIHdvcmspLCBzbyBJJ3ZlIGdvdCBubyBjaG9pY2UgYnV0IHRvIGdvCiAgICBiYWNrIHRvIHRoZSBvbGQgZ2NjIGZsYWdzIGFuZCBsaW5rZXIgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YzE1MDEwZWZhZDk4MGFkNTQ5OGNjNTY1ZmMxZWQ3MGRmMmY1MmI0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMyAwOToxMTowNSAyMDA3ICswMTAwCgogICAgRml4ZWQgbWlwc19pb19wb3J0X2Jhc2UgYnVpbGQgZXJyb3JzLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gMjkgU2VwIDIwMDcKCiAgICBBbHRob3VnaCBtaXBzX2lvX3BvcnRfYmFzZSBpcyBjdXJyZW50bHkgYSBwYXJ0IG9mIElERSBjb21tYW5kLCBpdCBpcyBxdWl0ZQogICAgZnVuZGFtZW50YWwgZm9yIE1JUFMgSS9PIHBvcnQgYWNjZXNzIHN1Y2ggYXMgaW5bYndsXSBhbmQgb3V0W2J3bF0uIFNvIG1vdmUKICAgIGl0IHRvIE1JUFMgZ2VuZXJhbCBwYXJ0LCBhbmQgaW50cm9kdWNlIGBzZXRfaW9fcG9ydF9iYXNlKCknIGZyb20gTGludXguCgogICAgVGhpcyBwYXRjaCBpcyB0cmlnZ2VyZWQgYnkgbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnIGJ1aWxkCiAgICBlcnJvciBvbiBndGgyIChhbmQgdGIwMjI5IGFsc28gbmVlZHMgdGhpcyBmaXguKQoKICAgIGJvYXJkL2d0aDIvbGliZ3RoMi5hKGd0aDIubyk6IEluIGZ1bmN0aW9uIGBsb2dfc2VyaWFsX2NoYXInOgogICAgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9ib2FyZC9ndGgyL2d0aDIuYzo0NzogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnCiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX2lkZS5vKTovaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2NvbW1vbi9jbWRfaWRlLmM6NzEyOiBmaXJzdCBkZWZpbmVkIGhlcmUKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmVjYmI3YTNmYTliMDk0MGVkMzNlNDkwZDE5NWQ0YjY4MzBiMjQyMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6MzA6NDAgMjAwNyArMDEwMAoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgc2xhdmUgc2VyaWFsIHByb2dyYW1taW5nIG1vZGUgZm9yIHRoZSBYaWxpbngKICAgIFNwYXJ0YW4yLzMgRlBHQXMuIFRoZSBvbGQgY29kZSB1c2VkICI8IDAiIG9uIGEgImNoYXIiIHR5cGUgdG8gdGVzdCBpZgogICAgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHdhcyBzZXQsIHdoaWNoIGRpZCBub3Qgd29yayBvbiBhbnkKICAgIGFyY2hpdGVjdHVyZSB3aGVyZSAiY2hhciIgZGVmYXVsdGVkIHRvIGJlIGFuIHVuc2lnbmVkIHR5cGUuCgogICAgQmFzZWQgb24gYSBwYXRjaCBieSBBbmdlbG9zIE1hbm91c2FyaWRpcyA8YW1hbm91c0BpbmFjY2Vzc25ldHdvcmtzLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQwOGI3MjMzYmMyNTJmYWFkODMzOWU3Y2EwZGRmZDYyZmE3OTkwM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5ZDkxNjRkOWM2YjVhN2YwMzkzZmQ4ZDdlMjQ2YjhhMDMyNmJjMTkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMyOjAwIDIwMDcgKzA4MDAKCiAgICBtYWtlIDg2MTAgYm9hcmQgdXNlIHBpeGlzIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYjc0YjNjMWM5NDgxYTZiZmZiZjhjZDQ0NWU1YmNiZjY5MDhlODM2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgVW5pZnkgcGl4aXNfcmVzZXQgYWx0YmFuayBhY3Jvc3MgYm9hcmQgZmFtaWxpZXMKCiAgICBCYXNpY2FsbHksIHJlZmFjdG9yIHRoZSBDRkdfUElYSVNfVkJPT1RfTUFTSyB2YWx1ZXMKICAgIGludG8gdGhlIHNlcGFyYXRlIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGJmNTU1NDY1Yzc5MjZiZTEzZTEwNDZhYzBkMGYwNWFjNzI4MjljCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjIxIDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdhNjBlZTdjNjI0OGE5NThjNTc1N2QzNjYwYTE3MDI3MjNhMjc4NmQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDcgMDg6MTk6MTkgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfaWRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRkNGZhYWU2NWUxMTVlMzI3NDI1Y2Q1MTRjMWEzNTE0NmE4NTE2NmIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIEdyb3VwIFBDSSBhbmQgUENNQ0lBIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Nzk4Zjg3ZGMxMGE0OTZkNzlkMzE3N2I5ZjVhNzY0ODg5ODdmZDM1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBHcm91cCBibG9jay9mbGFzaCBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZGY1OGM4MTU1MTcwMGYwNThiNDRjYWNmNTVhNzk5N2ZhNjNiZmUwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgR3JvdXAgVVNCIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZGJiNmVkNjIyZTUzOWIwYzg0OTNlZjdlNTc4ZDNhNTMzMTgxZDI5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBHcm91cCBpMmMgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGVjMDBjNzZkZTBlNTk3MTI3MzkwNTk5OGQ2MmQ2YmIxMTkzMjQyMTgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIGNvbnNvbGUgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDc1NGYyMzBhYTAxYjhjNzg5ZmMzMWY4MDEzYzI0ODc5NTQwNzMzMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIG5ldHdvcmsgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYwMDM3YzU2YjBkMTJjZDQ2MjE1MTI0NjY3YjlmODNkNjBlZjkzOTEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEJ1aWxkOiBzcGxpdCBDT0JKUyB2YWx1ZSBpbnRvIG11bHRpcGxlIGxpbmVzCgogICAgVGhpcyBjaGFuZ2UgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGNvbmR0aXRpb25pYWwgY29tcGlsZSBzdXBwb3J0IGluIHRoZQogICAgYnVpbGQgc3lzdGVtLiAgQnkgc3BsaXRpbmcgdGhlbSBhbGwgaW50byBzZXBlcmF0ZSBsaW5lcyBub3csIHN1YnNlcXVlbnQKICAgIHBhdGNoZXMgdGhhdCBjaGFuZ2UgJ0NPQkpTLXkgKz0gJyBpbnRvICdDT0JKUy0kKENPTkZJR188YmxhaD4pICs9ICcgd2lsbAogICAgYmUgbGVzcyBpbnZhc2l2ZSBhbmQgZWFzaWVyIHRvIHJldmlldwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxYjRhYWZmZTRmYjJhNWU5NWQ5MTExYTVkOTRmZDFmODkyMTVkY2U0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgLmdpdGlnbm9yZSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NTQxM2YzNWYwNTRhODJlNDAwNDJmMWRiY2Y1MDFjNmEwNTcxOWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6Mjc6NTIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxNTYzMzg4OGEwNThhYWNiMzFhNjJkMmNmMTI3OGUxZTRjMjM2YWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjQ6MzIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMzkzNjVmYmU1NjZkMGZjNjE5YTFlZDA0NDUyZWM1Mzg4ZjBjZWY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIxOjA0IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzA5MjIzNDIzNjllNWUzOWIyODZmZTIxZTc2OGEyMzljYTA3YTUxNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo1NyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk2Mjc5YWI0Y2FkNjBjYjU5NzJhYTkzNGZiZTQ4NDVhYzAyY2M3NWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTAgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5Ni4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MjhmZTMzYjI0Y2RmMzgyYThkYzg2ODdmZWQyNGIxOTYxY2RiNWQ2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjQzIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzkzOTQ1ZThmOWUzMDA4NjBkMmJmNzNhMjU0OWNlNTc5NGY4YmQwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDoyNSAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1NGZkNmM5M2MyOGEwYTQ1MzUyZmZmNWRkOTI2NzM0MDFmZjU2M2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA4OjE4OjIwIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogQ2hhbmdlIFBIWSByZXNldCBzZXF1ZW5jZSBmb3IgUEhZIE1ESU8gYWRkcmVzcyBsYXRjaGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxY2U1NTE1MWM4NWQwNjhmNzAzMTdhOGQ2NWM2MTA1OGI4OTFhZmI0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTMgMDc6NTA6MjkgMjAwNyArMDEwMAoKICAgIFtVQzEwMV0gU1JBTSBub3cgd2l0aCAyIE1CIHdvcmtpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOGQ3MzdhMjgxNTJlYzEyODczZjg1NDRjY2ExZmIzOWE0OWU1ZTY5MwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjUwOjE4IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIFJlbW92ZSByZXNldCByZWdpc3RlcnMgZnJvbSBDQ00KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2Q3Y2RlYTc2OWE2MGIwYTZlNGMxOGJlZjdmOWQ2NDhmZDE0YjhkNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjMxOjExIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIEFkZCBSZXNldCBzdHJ1Y3R1cmUgdG8gaW1tYXBfNTMyOS5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YjI2Y2YwMGQ3NmQ3NWZkZjdmZGM0YjEzZTRkZDkyOTc0M2JjMjEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjoxOTowMSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSByZXZlcnQgaW5jbHVkZS9hc20tbTY4ay9tNTMyOS5oIGZpbGUgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMjVhMjRiNWUwNjJhZDk0NjI3NDI0NTA4YWU4MTRmNTFkYmUxYTM0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTg6MDA6NTQgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDQ1eCAtIFVwZGF0ZSBjb3JyZWN0IFJBTUJBUiBhbmQgbWlzc2luZyBsaW5rZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjQ4YzdjMTQ4MzVmMzRkNWQ5MTBiNDVlNTYwMDA1MGU1OGNhNmNhYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjU2OjE1IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyeCAtIFVwZGF0ZSBkb19yZXNldCgpIHVzaW5nIGNvcmUgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDkyNDBhNWY4MjdlYjNiNDc2YTZiYTI5MzhkMDFmMWE5ZTc2ODhmNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjUxOjAwIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNwdSBmbGFnIGZvciA0LjIteHggY29tcGlsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWYxMDMxMDVhMzc0NmFiMTIyNzliNjNiOGMxZDM3MmMwY2UyY2M1OApBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiA1IDE3OjM5OjI0IDIwMDcgKzA4MDAKCiAgICBJbXBsZW1lbnQgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIgc3VwcG9ydCBpbiBVLWJvb3QKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIuCiAgICBVbnRpbCBub3csIGl0IGlzIHRoZSBvbmx5IG5hdGl2ZSBFdGhlcm5ldCBwb3J0IG9uCiAgICBNUEM4NjEwSFBDRCBib2FyZCwgYnV0IGl0IGNvdWxkIGJlIHVzZWQgb24gb3RoZXIgYm9hcmRzCiAgICB3aXRoIFVMaSA1MjZ4IEV0aGVybmV0IHBvcnQgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA3MWJjNmU2NDc0ZmVhOGVmNDgxYjliNDVkMWVkZDdhZDFmNmRmYmJkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBOb3YgMSAwODo0Njo1MCAyMDA3IC0wNTAwCgogICAgTkVUOiBBZGQgRXRoZXJuZXQgMTAwMEJBU0UtWCBzdXBwb3J0IGZvciBQUEM0eHgKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgMTAwMEJBU0UtWCB0byBmdW5jdGlvbnMgIm1paXBoeV9zcGVlZCAoKSIgYW5kCiAgICAibWlpcGh5X2R1cGxleCgpIi4JSXQgYWxzbyBhZGRzIGZ1bmN0aW9uICJtaWlwaHlfaXNfMTAwMGJhc2VfeCAoKSIsIHdoaWNoCiAgICByZXR1cm5zIG5vbi16ZXJvIGlmZiB0aGUgUEhZIHJlZ2lzdGVycyBhcmUgY29uZmlndXJlZCBmb3IgMTAwMEJBU0UtWC4gIFRoZQogICAgIm1paSBpbmZvIiBjb21tYW5kIGlzIG1vZGlmaWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gMTAwMEJBU0UtVCBhbmQgLVguCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyOTgwMzVkZjQ5NDhiMTEzZDI5YWMwZTY5NDcxN2QzNGI5NWJjNWRjCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTE6MjE6MjkgMjAwNyAtMDUwMAoKICAgIE5FVDogQ29zbWV0aWMgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgOTkyNzQyYTViMDlkOTA0MGFkYmQxNTZmYjkwNzU2YWY2NmFkZTMxMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMyAyMzowOToyNyAyMDA3ICswMTAwCgogICAgQ2xlYW51cCBjb2Rpbmcgc3R5bGU7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU4ODFjYjU2M2UzMmY0NTgzMmI3YjZkYjc3YmRjZDAxN2FkY2JiNDEKQXV0aG9yOiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+CkRhdGU6CUZyaSBOb3YgMiAxMzoxNTo0MiAyMDA3IC0wNzAwCgogICAgZml4IHdvcmRpbmcgaW4gUkVBRE1FCgogICAgQ2hhbmdlZCB0aGUgd29yZGluZyB0byBwcm9wZXJseSBkZXNjcmliZSB0aGUgc2hhZG93aW5nCiAgICBvZiB0aGUgZW52aXJvbm1lbnQgZnJvbSBST00gdG8gUkFNCgogICAgU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGFjbS5vcmc+Cgpjb21taXQgYWQ4NDViZWVmMDYyNDU0MjZjNTdiNTNkY2RjMDFiN2RjNzBlMGQ0NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVdlZCBPY3QgMzEgMDI6MTg6MTUgMjAwNyArMDkwMAoKICAgIGJsYWNrZmluOiBNb3ZlIGAtRF9fQkxBQ0tGSU5fXycgdG8gJChBUkNIKV9jb25maWcubWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGVjMjI3NTU3OTk0NjZjOGExMDM2NjRiYjNhNWU2NDdiZjljMjM4ZjQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJVGh1IE9jdCAyNSAxNjowODoxNCAyMDA3ICswMzAwCgogICAgVHJpbW1lZCBzb21lIHZhcmlhYmxlcyBpbiBuZTIwMDAuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGViNmYyMTRkMzY0NGIyYTc3OTY4YzE3NmVkMzZkY2Y4NThjZmU3ZTAKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjUxOjI3IDIwMDcgKzA4MDAKCiAgICBGaXggdGhlIGlzc3VlIG9mIHVzYl9rYmQgZHJpdmVyIG1pc3NpbmcgdGhlIHNjYW4gY29kZSBvZiBrZXkgJ3onLgoKICAgIFRoZSBzY2FuIGNvZGUgb2YgdGhlIGtleSAneicgaXMgMHgxZCwgd2hpY2ggc2hvdWxkIGJlIGhhbmRsZWQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmUgdGVzdGVkIG9uIE5PVkFURUsgVVNCIGtleWJvYXJkIGFuZCBVTEkgUENJIE9IQ0kKICAgIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmY0Nzk2ZjY0OThmYmFkZTU2ZDU2ZWZmM2EwYTQ5YjI5OWQ5M2U1CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzozMDowNCAyMDA3ICswODAwCgogICAgRml4IFVTQiBzdXBwb3J0IGlzc3VlIGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGhhcyBhbHJlYWR5IGVuYWJsZWQgVVNCLCBidXQgaXQKICAgIG1pc3NlZCBkZWZpbml0aW9uIG9mIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUywgdGhlIFVTQgogICAgb24gTVBDODY0MUhQQ04gY2FuIG5vdCB3b3JrIGJlY2F1c2Ugb2YgdGhlIHdyb25nIFVTQgogICAgcmVnaXN0ZXIgZW5kaWFuLgoKICAgIEFuZCBhZGQgdGhlIFVTQiBjb21tYW5kIHRvIFUtQm9vdCBjb21tYW5kcyBsaXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGU2MjA0MTAyM2RjM2RlOWQ5OGQ5NzdiYjA4MDIzNWJjNmQwMzVlMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMTg6MTY6MDEgMjAwNyArMDIwMAoKICAgIFVzZSBjb25maWdfY21kX2RlZmF1bHQuaCBpbnN0ZWFkIG9mIGNvbmZpZ19jbWRfYWxsLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU2NjIyZjg3ODU3NDM5YjFjMjIxZTlkZWVmMTFhOWQ1YmI1ZDQzMDgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDI0IDAxOjM3OjM2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBDYWxsIHVzYl9jcHVfaW5pdCgpIGR1cmluZyBib2FyZCBpbml0CgogICAgdXNiX2NwdV9pbml0KCkgY29uZmlndXJlcyBHUFMgVVNCIHBpbnMsIGNsb2NrcywgZXRjLiBhbmQKICAgIGlzIHJlcXVpcmVkIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGtlcm5lbCBVU0Igc3Vic3lzdGVtLgogICAgVGhpcyBzZXR1cCB3YXMgcHJldmlvdXNseSBkb25lIGluIHRoZSBrZXJuZWwgYnkgdGhlIGZpeHVwCiAgICBjb2RlIHdoaWNoIGlzIGJlaW5nIHJlbW92ZWQsIHRodXMgbG93IGxldmVsIGluaXQgbXVzdCBiZQogICAgZG9uZSBieSBVLWJvb3Qgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjljMjljMDI2N2ZlODU3ZTcyMDE0Y2U5MGM1ZDM1YjJlZjYzMDJiZApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjoyNTo1MCAyMDA3ICswMjAwCgogICAgRml4IHR5cG8gaW4gbmZzLmMKCiAgICBBbiBvYnZpb3VzIHR5cG8uIE9yaWdpbmFsbHkgZml4ZWQgaW4gbGlua3N0YXRpb24gdS1ib290IHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDU5NTQzZmUwMGE0Y2U3MjBlZjlmNWFhN2ZiMzg3YzZkYWYxYzdkNzgKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6MzU6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBhIHR5cG8gaW4gY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jCgogICAgU2luY2UgRGVjZW1iZXIgMjAwMyB0aGUgdGltZXJfaW50ZXJydXB0X2NwdSgpIGZ1bmN0aW9uIGluCiAgICBjcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMgY29udGFpbnMgd2hhdCBzZWVtcyB0byBiZSBhIHN1cGVyZmx1b3VzCiAgICBwYXJhbWV0ZXIuIFJlbW92ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzllN2I5YjlhMTcwMGZlMDA5Njc4ZDFmOWI0MWU2MzY0YWM1ZGYyZApBdXRob3I6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxMToxMzo1MSAyMDA3ICswMjAwCgogICAgYWRkIGZ0X2NwdV9zZXR1cCguLikgb24gbXBjODI2MAoKICAgIEFkZCBmdF9jcHVfc2V0dXAoLi4pLWZ1bmN0aW9uIHRvIGFkYXB0IGl0IGZvciB1c2Ugd2l0aCBsaWJmZHQKICAgIGJhc2VkIG9uIGNvZGUgZnJvbSBtcGM1eHh4CgogICAgU2lnZW5kLW9mZi1ieTogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgogICAgLS0KCmNvbW1pdCA2YWJkODJlMTlhZTkzYzBiNGQxMDRlNTAxNjVlMjM1OTE1ZWMwODc1CkF1dGhvcjogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgpEYXRlOglXZWQgT2N0IDE3IDExOjE4OjQyIDIwMDcgKzAyMDAKCiAgICBjaGFuZ2VzIGZvciBJRFM4MjQ3IGJvYXJkIHN1cHBvcnQKCiAgICBUbyBnZXQgdGhlIElEUzgyNDcgYm9hcmQgd29ya2luZyBmb2xsb3dpbmcgYXJlIGRvbmU6CiAgICAgLSBGQ0MyIGlzIGRlYWN0aXZhdGVkCiAgICAgLSBGQ0MxIGlzIGFjdGl2YXRlZAogICAgIC0gSTJDIGlzIGFjdGl2YXRlZAogICAgIC0gQ0ZJIGRyaXZlciBpcyBhY3RpdmF0ZWQKICAgICAtIEFkYXB0ZWQgZm9yIHVzZSB3aXRoIExJQkZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KICAgIC0tCgpjb21taXQgOGI2Njg0YTY5ODUwMGJlOWMxNDJlYzJjOWY0NmNmYzM0OGUxN2YwYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE1OjQ4OjM3IDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDI6IFJlbW92ZSBkZWZhdWx0IGV0aGVybmV0IGFkZHJlc3NlcwoKICAgIFdvbGZnYW5nIGlzIHJpZ2h0OiBJdCdzIG5vdCBhIGdvb2QgaWRlYSB0byBzZXQgdXAgZGVmYXVsdCBpbml0aWFsCiAgICBldGhlcm5ldCBhZGRyZXNzZXMgZm9yIGEgYm9hcmQsIGV2ZW4gdGhvdWdoIHRoZXkgYmVsb25nIHRvIHRoZSBsb2NhbAogICAgcmFuZ2UuCgogICAgVGhpcyB3aWxsIGNoYW5nZSB0aGUgZmFpbHVyZSBtb2RlIGZyb20gIklUIG1hbmFnZXIgc2NyZWFtcyBhdCB5b3UgZm9yCiAgICB1c2luZyBkdXBsaWNhdGUgZXRoZXJuZXQgYWRkcmVzc2VzIiB0byBhIG5pY2UgZXJyb3IgbWVzc2FnZSBleHBsYWluaW5nCiAgICB0aGF0IHRoZSBldGhlcm5ldCBhZGRyZXNzIGhhc24ndCBiZWVuIHNldCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlNWM3OTRlNDkxYTU3ZDgyOWI2ZDg3MzNlMmVkODM2OGEyMjY5YWJmCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAzMTU0ODI0OWRlY2YxOGE2Yjg3N2ExODQzNmI2MTM5ZGQ0ODNmZTRhCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBlOGVlOGYzYWRlMmEwNmMxODkzZGQ1ZTY4ZjIyMzA3MGQ2NTBjN2VkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE2OjIyIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1NDQ1NTogRml4IGNvcnJlY3QgYm9vdCBsb2NhdGlvbiBmb3IgYXRtZWwgYW5kIGludGVsCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4OGU4ZWI0MTRhYzExMWNjYTdjZTYwYmRmMzBlODA1YWI5YTdiY2IKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3Igd2hlbiBDT05GSUdfV0FUQ0hET0cgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjdlMTJlNzA1YjIwNGNmZTkxNGUzZTNlNjkzZDY5YTQ0NWRjYWJmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjEyOjM2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MzI5OiBBc3NpZ24gY29ycmVjdCBTRFJBTSBzaXplIGFuZCBmaXggY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTVlOWYyYzIxMmE2NTYxMGIyZTU5YTVjMDBkMDExMzM4M2E0ZGEwYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMDoyMyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI1MzogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWNlZmE3MmVlMDAyNmY4NjJhYjY1NTk3Y2E2ODc0MjhmNjNhOTczCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjA5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MjgyOiBGaXggZXh0ZXJuYWwgZmxhc2ggYm9vdCBhbmQgcmV0dXJuIGRyYW1zaXplCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3ODc5MWFlOTE0ZDRlN2M1ZWRjYTFjZGFkNzNiM2RjODFhNGViODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjIwOjAxIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBpbmNyZWFzZSBrZXJuZWxfYWRkcl9yIGFuZCBmZHRfYWRkcl9yIChoaW50ZWQgYnkgV29sZmdhbmcgRGVuaykuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYTBjZTIwYWE0Y2I0ZTMwNjhkYTA0ZTcyOTBlZTk5ODZmZDBiODM0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDI6MjUgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBzcHVyaW91cyBjaGFyYWN0ZXJzIG9uIHNlY29uZCBzZXJpYWwgaW50ZXJmYWNlCgogICAgV2l0aCB0aGlzIHBhdGNoIFBTQzMgaXMgY29uZmlndXJlZCBhcyBVQVJULiBUaGlzIGlzIGRvbmUsIGJlY2F1c2UgaWYKICAgIHRoZSBwaW5zIG9mIFBTQzMgYXJlIG5vdCBjb25maWd1cmVkIGF0IGFsbCAoLT4gYWxsIHBpbnMgYXJlIEdQSSksCiAgICBkdWUgdG8gY3Jvc3N0YWxrLCBzcHVyaW91cyBjaGFyYWN0ZXJzIG1heSBiZSBzZW5kIG92ZXIgdGhlIFJYMjMyXzJfVFhECiAgICBzaWduYWwgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiZTRhODdmMTFlMjk3YTVjZWRlZGJmN2RkNzFjMDI0OGYzODc0YWNkCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDE6MjcgMjAwNyArMDIwMAoKICAgIFRRTTUyMDBTOiBmaXggY29tbWFuZHMgZm9yIFNUSzUyeHggYmFzZSBib2FyZCBiZWNhdXNlIG9mIG1pc3NpbmcgU001MDEgZ3JhZmljIGNvbnRyb2xsZXIKCiAgICBTb21lIGNvbW1hbmRzIGZvciB0aGUgU1RLNTJ4eCBiYXNlIGJvYXJkIHRyeSB0byBhY2Nlc3MgdGhlIFNNNTAxIGdyYWZpYwogICAgY29udHJvbGxlci4gQnV0IHRoZSBUUU01MjAwUyBoYXMgbm8gZ3JhZmljIGNvbnRyb2xsZXIgKG9ubHkgdGhlIFRRTTUyMDAKICAgIGFuZCB0aGUgVFFNNTIwMEIgaGF2ZSkuIFRoaXMgcGF0Y2ggZGVhY3RpdmF0ZXMgdGhlIGNvbW1hbmRzIGFjY2Vzc2luZwogICAgdGhlIFNNNTAxIGZvciB0aGUgVFFNNTIwMFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjMxZjY0MzQzZWFkOTQ4MmNkNDM5YjFhZGJlNGMzNDAyNmE2NDFiMQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQ1OjUzIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMGZjMGY5MWIyMGZmYTgwMmY1YTY2NTM0Y2E1YzI4NDQ5MTA1ODNmNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQwOjA2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDdiMGE0MjIxOWYzMDI3N2Y3MWY0NDA1Y2JhZjhhMjY5ZjZkMmQyMjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gT2N0IDIxIDA5OjE0OjI4IDIwMDcgKzAyMDAKCiAgICBNaXBzOiBGaXggc3RyaW5nIGZ1bmN0aW9ucyBkaWZmZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjYjgyNTBmZTRiM2M0ZWQ1NDliMjcwZThhMjBiYzIyMDYwZTdlMWQyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxNzo1MTo0MCAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGVuYWJsZSBDT01NQU5EX01FTU9SWSBpZiBpbmJvdW5kIHdpbmRvdwoKICAgIFBhdGNoIDE2ZTIzYzNmIHJlbW92ZWQgUENTUkJBUiBhbGxvY2F0aW9uLglCdXQgcGFzc2luZyB6ZXJvIHdpbmRvd3MKICAgIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygbm90IGdldHRpbmcKICAgIENPTU1BTkRfTUVNT1JZIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5ZDBkNTI3OTkyNTY2ZWJlZjk4MjY5NjJmZjE3NDViMmYwODJiOTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDEwOjU1OjI0IDIwMDcgKzAyMDAKCiAgICBkZWx0YTogRml4IE9IQ0lfUkVHU19CQVNFIHVuZGVjbGFyZWQgYW5kIHdhaXRfbXMgaW1wbGljaXQgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDljNDg4NGY1NGRhOTgyY2U5OTBjN2QxNzYwYWM4MWIwNzA0ZDNjNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA4OjEwOjE1IDIwMDcgKzAyMDAKCiAgICBmaXggd2FybmluZzogbm8gcmV0dXJuIHN0YXRlbWVudCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU3ODIyMGY2ZTUxNDIwNjc1N2FjZmUyNDcyOTdmYzlhMzI4YTg4MWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA2OjMzOjQ1IDIwMDcgKzAyMDAKCiAgICB4c2VuZ2luZTogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMGNkYjhkYmQ2N2E4MTg4MjNhYjllYzg4YjY4ZmMzNDg5MDNkYjU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNDo1OSAyMDA3ICswMjAwCgogICAgbHViYm9jazogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0MWI0ZDI4MmQzOGZhNzIzMWMzMTVjNWY2Y2ZmZjViZGQyNGUwMTkxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjo1MDowMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlOiBrZWVwIGxpc3RzIHNvcnRlZDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNThiNzRiMDVjNjIxZTI4MzVlY2Y0ZTJkMzI0MzA0MmNmNDE4Njc3NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGRyaXZlcnMgbWFrZWZpbGUgZW50cmllcyBkczE3MjIuYyBtd19lZXByb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY0NTViZmViYzk4ODc4MzcwOTVjOTA1MWQyMTZmNTNjNjFiNWYxMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDc6MzkgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL2lubm9rb20vaW5ub2tvbS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyYTQ3NDFkOWExNGVjNDc1ZjUwZTk4NTZkMmMwYTY3ZThiNDI3MWJkCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjI1OjMzIDIwMDcgKzAyMDAKCiAgICBmaXggcHhhMjU1X2lkcCBib2FyZAoKICAgIFRoZSBweGEyNTVfaWRwIGJlaW5nIGFuIG9sZCB1bm1haW50YWluZWQgYm9hcmQgc2hvd2VkIHNldmVyYWwgaXNzdWVzOgogICAgMS4gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2FzIHN0aWxsIGRlZmluZWQuCiAgICAyLiBOZWl0aGVyIENPTkZJR19NQUNfUEFSVElUSU9OIG5vciBDT05GSUdfRE9TX1BBUlRJVElPTiB3YXMgZGVmaW5lZC4KICAgIDMuIFN5bWJvbCBmbGFzaF9hZGRyIHdhcyB1bmRlY2xhcmVkLgogICAgNC4gVGhlIGJvYXJkcyBsb3dsZXZlbF9pbml0IGZ1bmN0aW9uIHdhcyBzdGlsbCBjYWxsZWQgbWVtc2V0dXAuCiAgICA1LiBUaGUgVEVYVF9CQVNFIHdhcyBzdGlsbCAweGEzMDAwMDAwIHJhdGhlciB0aGFuIDB4YTMwODAwMDAuCiAgICA2LiBVc2luZyAtbWFyY2g9YXJtdjUgaW5zdGVhZCBvZiAtbWFyY2g9YXJtdjV0ZSByZXN1bHRlZCBpbiBsb3RzIG9mCiAgICAndGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZycgd2FybmluZ3Mgb24gcmVjZW50IGNvbXBpbGVycy4KICAgIDcuIFRoZSBQWEEncyBzZXJpYWwgZHJpdmVyIHJlZGVmaW5lZCBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIHVzZWQgYXMKICAgIGluZGV4ZXMgcmF0aGVyIHRoYW4gdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZyb20gdGhlIHB4YS1yZWdzIGhlYWRlcgogICAgZmlsZS4gUmVuYW1lZCB0aGVtIHRvIEZGVUFSVF9JTkRFWCwgQlRVQVJUX0lOREVYIGFuZCBTVFVBUlRfSU5ERVggdG8KICAgIGF2b2lkIGFueSBhbWJpZ3VpdGllcy4KICAgIDguIFRoZXJlIHdlcmUgc2V2ZXJhbCByZWRlZmluaXRpb24gd2FybmluZ3MgY29uY2VybmluZyBJQ01SLCBPU01SMywKICAgIE9TQ1IsIE9XRVIsIE9JRVIsIFJDU1IgYW5kIENDQ1IgaW4gdGhlIFBYQSdzIGFzc2VtYmx5IHN0YXJ0IGZpbGUuCiAgICA5LiBUaGUgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlIHdhcyByYXRoZXIgb3V0ZGF0ZWQuCiAgICAxMC4gVGhlIHBhcnQgaGVhZGVyIGZpbGUgZGVmaW5lZCB0aGUgdmVuZG9yLCBwcm9kdWN0IGFuZCByZXZpc2lvbiBhcnJheXMKICAgIGFzIHVuc2lnbmVkIGNoYXJzIGluc3RlYWQgb2YganVzdCBjaGFycyBpbiB0aGUgYmxvY2tfZGV2X2Rlc2NfdAogICAgc3RydWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCAyOThjZDRjYWZlODFmZjhhNmM4N2JlOGZiYzQ0MGEyMDcyMGQzZWQ2CkF1dGhvcjogUnVuZSBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJV2VkIE9jdCAxNyAxMTo1NjozMSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGNvbW1hbmQgc2VsZWN0aW9uIG1vcmUgcm9idXN0CgogICAgRml4IE1QQzgyNjYgY29tbWFuZCBsaW5lIGRlZmluaXRpb24gc28gaXQgd29uJ3QgYnJlYWsgd2hlbiBuZXcgY29tbWFuZHMKICAgIGFyZSBhZGRlZCB0byB1LWJvb3QuCiAgICBTaWduZWQtb2ZmLWJ5IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgZDNhZmExZWUxOTM0NWEzMWZkMWVhYWQzZTk4Yjk3ZDEzY2E0NzMxNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTM6MTQ6MTAgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIGFjY29tb2RhdGUgbmV4dCBnZW5lcmF0aW9uIGJvYXJkLgoKICAgIE5ldyBib2FyZCBoYXMgZmFzdGVyIG9zY2lsbGF0b3IgYW5kIGEgZGlmZmVyZW50IEZsYXNoIGNoaXAuIFRoaXMgYWZmZWN0czoKICAgIC0gQ0ZHX01QQzVYWFhfQ0xLSU4KICAgIC0gU0RSQU0gdGltaW5ncwogICAgLSBGbGFzaCBDUyBjb25maWd1cmF0aW9uICh0aW1pbmdzKQogICAgLSBGbGFzaCBzZWN0b3Igc2l6ZSwgYW5kIHRodXMgTVREIHBhcnRpdGlvbiBsYXlvdXQKICAgIC0gbWFsbG9jKCkgYXJlbmEgc2l6ZSAoZHVlIHRvIGJpZ2dlciBGbGFzaCBzZWN0b3JzKQogICAgLSBzbWFsbGVyIG1lbW9yeSB0ZXN0IHJhbmdlIChkdWUgdG8gYmlnZ2VyIG1hbGxvYygpIGFyZW5hKQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmFibGVzIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0aW5nIHZpYSAibXRlc3QiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZWZmNTAxOTA0ZGYyYmYxNzI0YTc1MDA2MjYyOGJhMmM1MWRiYjFmOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzY6MDcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzZXR0aW5nIG9mIFNEZWxheSByZWcuIHRvIFNEUkFNIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBQZXIgQU4zMjIxIChNUEM1MjAwQiBTRFJBTSBJbml0aWFsaXphdGlvbiBhbmQgQ29uZmlndXJhdGlvbiksIHRoZSBTRGVsYXkKICAgIHJlZ2lzdGVyIG11c3QgYmUgd3JpdHRlbiBhIHZhbHVlIG9mIDB4MDAwMDAwMDQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlCiAgICBTRFJBTSBjb250b3JsbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YTkzNDg3MjhlYmRhNjNjZGJhYWNmZmQ4MzA5OWFhNzFkOWQ0YzU0CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoyMjoxNiAyMDA3ICswMTAwCgogICAgTW92ZSBQTDAxKiBzZXJpYWwgZHJpdmVycyB0byBkcml2ZXJzL3NlcmlhbCBhbmQgYWRqdXN0IE1ha2VmaWxlcy4KCmNvbW1pdCAyMGQ1MDBkNTMxYTZiOTcxY2U2Y2MxYmYxOTFjYjAwOTJjZGMwYWZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDEwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU29tZSBmdXJ0aGVyIEdQSU8gY29uZmlnIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGU5YTczOGZhYTdjMmY0NzI4NjExOWMzYmZlYmMzZGZiZmU3ZDg2ZApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglTdW4gT2N0IDIxIDIyOjEwOjEwIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4IFVOQ0FDSEVEX1NEUkFNCgogICAgUEhZU0FERFIgaXMgZm9yIHBoeXNpY2FsIGFkZHJlc3MsIEtTRUcxQUREUiBpcyBmb3IgdW5jYWNoZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMDAxMDFkZDdhMzJkMTJmNjk4MTUwMTIzZTQ3ZTRiMzQyMDI3OWY4NgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAyMTozMDo0MiAyMDA3ICswOTAwCgogICAgW01JUFNdIEFkZCBQSUMtcmVsYXRlZCBzd2l0Y2hlcyB0byBQTEFURk9STV97Q1BQLExEfUZMQUdTIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGViNzAwNjM2ZGIwMTdkMzEwZWRhZWI1NTliMTNkODI1ODg1NjA2NzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzcgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBEZWZpbmUgX2dwIGluIGEgc3RhbmRhcmQgbWFubmVyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDIyMDY5MjE1ZWI3YWRmNWEzODg4YmY3Yzc3ODRlYTlkNzBhNzJjZDAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBGaXggJGdwIHVzYWdlCgogICAgTm93IHdlIGxvYWQgJGdwIHdpdGggX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCBidXQgdGhpcyBpcyBpbmNvcnJlY3QgdXNlLgogICAgQXMgYSBnZW5lcmFsIHByaW5jaXBsZSwgd2Ugc2hvdWxkIHVzZSBfZ3AgZm9yICRncC4KCiAgICBUaGFua3MgdG8gbGlua2VyIHNjcmlwdCdzIGhlbHAgd2UgZm9ydHVuYXRlbHkgaGF2ZSBfZ3Agd2hpY2ggZXF1YWxzIHRvCiAgICBfR0xPQkFMX09GRlNFVF9UQUJMRV8uIEJ1dCBvbmNlIF9ncCBnZXRzIG91dCBvZiBhbGlnbm1lbnQsIHdlIHdpbGwgbm90CiAgICBiZSBhYmxlIHRvIGFjY2VzcyB0byBHT1QgZW50aXJlcywgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgcHJvY2VkdXJlIGVudHJ5CiAgICBwb2ludHMuIFRoZSByaWdodCB0aGluZyB0byBkbyBpcyB0byB1c2UgX2dwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2UgYSBuZXcgc3ltYm9sIGAuZ3B3b3JkIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXycKICAgIHdoaWNoIGhvbGRzIHRoZSBvZmZzZXQgZnJvbSBfZ3AuIFdoZW4gdXBkYXRpbmcgR09UIGVudHJpZXMsIHdlIHVzZSB0aGlzCiAgICBvZmZzZXQgYW5kIF9ncCB0byBjYWxjdWxhdGUgdGhlIGZpbmFsIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgc3VibWl0dGVkIGJ5IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPiwgdGhlbgogICAgSSBtYWRlIHNvbWUgY2hhbmdlIHRvIGxlYXZlIG92ZXIgbnVtX2dvdF9lbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBjYmYyMzIzYjViODI4NWVhMDFhY2JhN2JiYjkwNWEzMTYyZDliMDIxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRml4IF9fZ290X3N0YXJ0IGFuZCBfX2dvdF9lbmQKCiAgICBFbnN1cmUgdGhhdCBfX2dvdF9zdGFydCBwb2ludHMgdG8gdG9wIG9mIHRoZSBgLmdvdCcsIGFuZCBfX2dvdF9lbmQgcG9pbnRzCiAgICB0byBib3R0b20gYXMgd2VsbCwgc28gdGhhdCB3ZSBuZXZlciBmYWlsIHRvIGNvdW50IG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZTVmMzI1ZmVjNWI0OGFlNzA1Yzg5NTIyOTIzYmE1YTJlMzdjZDVjNwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IFJlbW92ZSBkdXBsaWNhdGVkIC5zZGF0YSBzZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDA1YmY0OTE5YzFjZTQ5Y2RlZGFkYWNkNTY0ZDA3ODZhOGVkNzk2YTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDAxOjAxOjE3IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmYyODVjYTA3ZWRhMWVhNGE4OTA5ODQ4Y2MxY2M2MDRlYzhmZWM5YwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDQgMjA6NDc6MTAgMjAwNyArMDMwMAoKICAgIEZpeCBORTIwMDAgZHJpdmVyOgoKICAgIEZpeGVkIHR5cG8gaW4gbmUyMDAwLmgsIHRoaW5rbyByZSBuMmtfaW5iKCkgdXNhZ2UsIGRvbid0IHRyeQogICAgdG8gZG8gYW55dGhpbmcgaW4gZXRoX3N0b3AoKSBpZiBldGhfaW5pdCgpIHdhcyBub3QgY2FsbGVkLgogICAgU2ltcGxpZmllZCBSWCBwYXRoIGluIG9yZGVyIHRvIGF2b2lkIHRpbWVvdXRzIG9uIHJlYWxseSByZWFsbHkKICAgIGZhc3QgTkUyMDAwIGNhcmRzIChyZWFkOiBxZW11IHdpdGggaW50ZXJuYWwgdGZ0cCksIE5ldExvb3AoKSBpcwogICAgY2xldmVyIGVub3VnaCB0byBjb3BlIHdpdGggMSBwYWNrZXQgcGVyIGV0aF9yeCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGRmOTA5NjhiNDhmYjM0ZmE5MDcyZmFiMTUwZGIyYWM4OTY3OGY1MzcKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzI6MTMgMjAwNyAtMDQwMAoKICAgIFNldHRpbmcgTVNSW0RFXSBpbiBkb19yZXNldAoKICAgIEhlbGxvLAogICAgICAgVGhpcyBwYXRjaCBlbnN1cmVzIHRoZSBzb2Z0IHJlc2V0IG9mIHRoZSBib2FyZCBmb3IgdGhlIDg1eHggYm9hcmRzCiAgICAgICBieSBzZXR0aW5nIHRoZSBNU1JbREVdIGluIHRoZSBkb19yZXNldCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdWdob3NoIEdhbnUgPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgoKY29tbWl0IDFlNzAxZTcwMTMwNGIzYzNhMzc2OGNhODNkZDJhYjdiOWU4OGM3N2QKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzY6MDEgMjAwNyAtMDQwMAoKICAgIE1TUiBvdmVyd3JpdGUgZml4CgogICAgSGVsbG8sCiAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIE1TUiBvdmVyd3JpdGUgaW4gdGhlIHN0YXJ0LlMgd2hlbiBtb3Zpbmcgb3V0IG9mCiAgICAgIHRoZSBsYXN0IDRLIHBhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCA1YzdlYTY0YmI3NGE4NTBhMmIyMzAzZjg1M2E4MjcwNjk1YWQ4NjAyCkF1dGhvcjogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgpEYXRlOglGcmkgT2N0IDE5IDExOjMzOjQ4IDIwMDcgLTA1MDAKCiAgICB0c2VjIGRyaXZlciBzaG91bGQgY2xlYXIgUkhBTFQgb24gc3RhcnR1cAoKICAgIFRoaXMgd2FzIGNhdXNpbmcgcHJvYmxlbXMgZm9yIHNvbWUgcGVvcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsYWluIEdyYXZlbCA8YWdyYXZlbEBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDBkNDdiOGY2YTEwMDE5ZTUzN2RjOWE2MmFhMTQ5OGRmNThkMjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjI5OjE4IDIwMDcgLTA1MDAKCiAgICBJbXByb3ZlIGhhbmRsaW5nIG9mIFBDSSBpbnRlcnJ1cHQgZGV2aWNlIHRyZWUgZml4dXAgb24gTVBDODV4eCBDRFMKCiAgICBPbiB0aGUgTVBDODV4eCBDRFMgd2UgaGF2ZSB0d28gaXNzdWVzOgoKICAgIDEuIFRoZSBkZXZpY2UgdHJlZSBmaXh1cCBjb2RlIGRpZCBub3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9wZXJ0eSB3ZSBhcmUKICAgIHRyeWluZyB0byB1cGRhdGUgaXMgYWN0dWFsbHkgZm91bmQuICBJdHMgcG9zc2libGUgdGhhdCBpdCB3b3VsZCB1cGRhdGUKICAgIHJhbmRvbSBtZW1vcnkgc3RhcnRpbmcgYXQgMC4KCiAgICAyLiBOZXdlciBMaW51eCBrZXJuZWwncyBoYXZlIG1vdmVkIHRoZSBsb2NhdGlvbiBvZiB0aGUgUENJIG5vZGVzIHRvIGJlCiAgICBzaWJpbGluZ3Mgb2YgdGhlIHNvYyBub2RlIGFuZCBub3QgY2hpbGRyZW4uICBUaGUgZXhwbGljaXQgUEFUSCB0byB0aGUgUENJCiAgICBub2RlIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdGhlc2UgZGV2aWNlIHRyZWVzLiAgQWRkIHRoZSBhYmlsaXR5IHRvIGhhbmRsZQogICAgYm90aCBwYXRocy4gIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkbid0IGhhbmRsZSBzdWNoIGZpeHVwcyBieSBleHBsaWNpdCBwYXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTMwNjNlZWM3NzU3MTliN2U5MTAyM2JiZWMzZjY0YjMxMTg3OTFkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTEgMDA6MTg6NDggMjAwNyAtMDUwMAoKICAgIFNldCBPRl9TVERPVVRfUEFUSCB0byBtYXRjaCB0aGUgZGVmYXVsdCBjb25zb2xlIG9uIE1QQzg1NjggTURTCgogICAgT24gdGhlIE1QQzg1NjggTURTIHdlIHVzZSB0dHlTMCwgVUFSVDAsIGV0Yy4gYXMgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyZWQKICAgIGNvbnNvbGUuICBNYWtlIGl0IHNvIHdlIG1hdGNoIHRoYXQgY29uZmlnIHdoYXQgd2UgdGVsbCBMaW51eCBhcyB0aGUgZWFybHkKICAgIFNURE9VVCBjb25zb2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTFjZTNjYjYxN2JiMDZmOTFmODJmOTg5MTUzOTExNzVhZGRmM2U4MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMiAxMToxMjoyNyAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIG1hZ2ljIG51bWJlcnMgZnJvbSBjYWNoZSByZWxhdGVkIG9wZXJhdGlvbnMgZm9yIG1wYzg1eHgKCiAgICBUaGUgbXBjODV4eCBzdGFydCBjb2RlIHVzZXMgc29tZSBtYWdpYyBudW1iZXJzIHRoYXQgd2UgYWN0dWFsbHkKICAgIGhhdmUgI2RlZmluZXMgZm9yIGluIDxjb25maWcuaD4gc28gdXNlIHRob3NlIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NDQxZjYxYTNkOGI3MDM0ZjE5ZmMxMzYxMTgzZTkzNjE5OGU2ZGJiCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTkgMTY6NDc6MjYgMjAwNyArMDIwMAoKICAgIEZpeCB0d28gdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMjgxZGY0NTdjMWFhNTBkMjc1MjE2NWQwYzVjMzI4MmQ0MDI3Yjk3NApBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzo0NzoxOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZ3VyZSBlbnRyeSBmb3IgTVBDODN4eCBBVE0gc3VwcG9ydAoKICAgIEFkZCBNUEM4MzYwRU1EU19BVE1fY29uZmlnIGFuZCBNUEM4MzJYRU1EU19BVE1fY29uZmlnIGludG8KICAgIE1ha2ZpbGUgYW5kIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyNjQ2NTU0ZjUyOWE5NTc3NTE1ZWNlYjBlYzVlY2VlZTE4MjQ0YmEKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDQ6MzggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IHBxLW1kcy1waWIuYyB0eXBvIGVycm9yCgogICAgQ29ycmVjdCB0byB2YWw4IGZyb20gdmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UxMWFlODBmZWMxZWUxMjE5NDk0MDk1NTQzMTE4NmFiZjYwMDljMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxNTo0MDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNjY3LzEzMyAoQ1BVL1BMQikgZnJlcXVlbmN5IHNldHVwIHRvIFNlcXVvaWEgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2VlNmJhMWEwNTZlNDA2MWFiNGNmZGUzMDEyN2UzMzJlNzk1N2FmZApBdXRob3I6IHJ1bmV0QGlubm92c3lzLmNvbSA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEYXRlOglUdWUgT2N0IDE2IDE0OjUwOjQwIDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzgyNjZBRFMgYm9hcmQgY29tcGlsZSBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdW5ldCBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KCmNvbW1pdCAyNDkxMTY3YzI0NWQ4ZWJlNmYyZGJkOGM0Mjg3YWFhMGQxNGZlOTNhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyNyAxMjo0MTowMyAyMDA3IC0wNTAwCgogICAgODZ4eDogQWxsb3cgZm9yIGZld2VyIEREUiBzbG90cyBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgQXMgYSBkaXJlY3QgY29ycmVsYXRpb24gZXhpc3RzIGJldHdlZW4gRERSIERJTU0gc2xvdHMKICAgIGFuZCBTUEQgRUVQUk9NIGFkZHJlc3NlcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGVtLCB1c2UKICAgIHRoZSBpbmRpdmlkdWFsbHkgZGVmaW5lZCBTUERfRUVQUk9NX0FERFJFU1MqIHZhbHVlcyB0bwogICAgZGV0ZXJtaW5lIGlmIGEgRERSIERJTU0gc2xvdCBzaG91bGQgaGF2ZSBpdHMgU1BECiAgICBjb25maWd1cmF0aW9uIHJlYWQgb3Igbm90LgoKICAgIEVmZmVjdGl2ZWx5LCB0aGlzIG5vdyBhbGxvd3MgZm9yIDEgb3IgMiBESU1NIHNsb3RzCiAgICBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDRhOTQ1ZTE4OWEyZjM4NGM2NjQzMjMxNmRhMjc4OGEwYWMxNjA3CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gT2N0IDE1IDExOjU5OjE3IDIwMDcgKzAyMDAKCiAgICBQWEEgVVNCIE9IQ0k6ICJ1c2Igc3RvcCIgaW1wbGVtZW50YXRpb24uCgogICAgU29tZSBVU0Iga2V5cyBuZWVkIHRvIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgbG9hZGluZyB0aGUga2VybmVsCiAgICBvdGhlcndpc2UgdGhleSBjYW4gcmVtYWluIGluIGFuIHVuZGVmaW5lZCBzdGF0dXMgd2hpY2ggcHJldmVudHMgdGhlbQogICAgdG8gYmUgY29ycmVjdGx5IHJlY29nbml6ZWQgYnkgdGhlIGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBlMmU5MzQ0MmU1NThjZjE1MDBlOTI4NjFmOTk3MTNiMmYwNDVlYTIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDE1IDExOjM5OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgaW4gSTJDIGJvb3RzdHJhcCB2YWx1ZXMgZm9yIFNlcXVvaWEvUmFpbmllcgoKICAgIFRoZSBJMkMgYm9vdHN0cmFwIHZhbHVlcyB0aGF0IGNhbiBiZSBzZXR1cCB2aWEgdGhlICJib290c3RyYXAiIGNvbW1hbmQsCiAgICB3ZXJlIHNldHVwIGluY29ycmVjdCByZWdhcmRpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGludGVybmFsIHN5bmMgUENJCiAgICBjbG9jay4gVGhlIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDEzM01IeiB3ZXJlIHNsaWdobHkgaW5jb3JyZWN0IGFuZCB0aGUKICAgIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDE2Nk1IeiB3ZXJlIHRvdGFsbHkgaW5jb3JyZWN0LiBUaGlzIGNvdWxkCiAgICBsZWFkIHRvIGEgaGFuZ3VwIHVwb24gYm9vdGluZyB3aGlsZSBQQ0kgY29uZmlndXJhdGlvbiBzY2FuLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBhbmQgY29uZmlndXJlcyB2YWxpZCBQQ0kgZGl2aXNvciB2YWx1ZXMKICAgIGZvciB0aGUgc3luYyBQQ0kgY2xvY2ssIHdpdGggcmVzcGVjdCB0byB0aGUgcHJvdmlkZWQgZXh0ZXJuYWwgYXN5bmMKICAgIFBDSSBmcmVxdWVuY3kuCgogICAgSGVyZSB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtdWxhIGluIHRoZSBjaGFwdGVyIDE0LjIgIlBDSSBjbG9ja2luZyIKICAgIGZyb20gdGhlIDQ0MEVQeCB1c2VycyBtYW51YWw6CgogICAgQXN5bmNQQ0lDTEsgLSAxTUh6IDw9IFN5bmNQQ0lDbGsgPD0gKDIgKiBBc3luY1BDSUNsaykgLSAxTUh6CgogICAgMzNNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICAzMiA8PSA0NC4zIDw9IDY1CSAgICAoZGl2ID0gMykKCiAgICBQTEIgPSAxNjY6CiAgICA9PgkgICAgMzIgPD0gNTUuMyA8PSA2NQkgICAgKGRpdiA9IDMpCgogICAgNjZNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICA2NSA8PSA2Ni41IDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgUExCID0gMTY2OgogICAgPT4JICAgIDY1IDw9IDgzIDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVhNTk1OGI3ZGU3MGFlOTlmMGU3Y2JkNWM5N2VjMTM0NmUwNTE1ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMTUgMTE6Mjk6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGluY29ycmVjdCAzMy82Nk1IeiBQQ0kgY2xvY2sgbG9nLW1lc3NhZ2Ugb24gU2VxdW9pYSAmIFlvc2VtaXRlCgogICAgVGhlIEJDU1Igc3RhdHVzIGJpdCBmb3IgdGhlIDY2TUh6IFBDSSBvcGVyYXRpb24gd2FzIGNvcnJlY3RseQogICAgYWRkcmVzc2VkIChNU0IvTFNCIHByb2JsZW0pLiBOb3cgdGhlIGNvcnJlY3QgY3VycmVudGx5IHNldHVwCiAgICBQQ0kgZnJlcXVlbmN5IGlzIGRpc3BsYXllZCB1cG9uIGJvb3R1cC4KCiAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhpcyBwcm9ibGVtIG9uIFJhaW5pZXIgJiBZZWxsb3dzdG9uZSwgc2luY2UgdGhlc2UKICAgIGJvYXJkcyB1c2UgdGhlIHNhbWUgc291Y2UgY29kZSBhcyBTZXF1b2lhICYgWW9zZW1pdGUgZG8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRhM2FhZDU1Y2JkZTgwYWI2ZTMwMWFhZmE4MmEyYzQxMWFhNTNlZmYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODYwTTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5ZDI5MjUwZTJlNjJmNGJmMjBjN2EyMGI0MTczZDg0YzQ4ZjExZjVkCkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTQgMjAwNyArMDIwMAoKICAgIFRRTTh4eDogRml4IENBTiB0aW1pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZDQzZTQ4OWJhZjAyYWZhZTQ5MDc3NzkxZmIyMjMzMmQyNDBkODY1NgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjM2IDIwMDcgKzAyMDAKCiAgICBUUU04NjZNOiBmaXggU0RSQU0gcmVmcmVzaAoKICAgIEF0IDEzMyBNSHogdGhlIGN1cnJlbnQgU0RSQU0gcmVmcmVzaCByYXRlIGlzIHRvbyBmYXN0CiAgICAobWVhc3VyZWQgNCAqIDEuMTcgdXMpLgogICAgQ0ZHX01BTVJfUFRBIGNoYW5nZXMgZnJvbSAzOSB0byA5Ny4gVGhpcyByZXN1bHQKICAgIGluIGEgcmVmcmVzaCByYXRlIG9mIDQgKiA3LjggdXMgYXQgdGhlIGRlZmF1bHQgY2xvY2sKICAgIDUwIE1Iei4gQXQgMTMzIE1IeiB0aGUgdmFsdWUgd2lsbCBiZSB0aGVuIDQgKiAyLjkgdXMuCiAgICBUaGlzIGlzIGEgY29tcHJvbWlzZSB1bnRpbCBhIG5ldyBtZXRob2QgaXMgZm91bmQgdG8KICAgIGFkanVzdCB0aGUgcmVmcmVzaCByYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDllZjU3YmJlZTFjNjdjYzAxZGEyMDI2YzI0MmM0NjkyZGIzMmJlMzYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NSAyMDA3ICswMjAwCgogICAgVFFNODY2TTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmOGJmOTA0NjFkOWJhZDJlNmZlZDMxZmNlYmFmMjM1ZjYwZGQ2NzYzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gT2N0IDE0IDE2OjEyOjI5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBYVVBWMlAgY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcKICAgIGFuZCByZW1vdmUgY29kZSB2aW9sYXRpb24KCmNvbW1pdCA2MzY0MDAxOTgyMjhkOTY5ODNjMDY2NTdiMTdmNzYwZjU5ODk5NThlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxNCAwMDoxMzoxOSAyMDA3ICswMjAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjAtcmMzIHJlbGVhc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4ZjE0Zjc3Y2E1ZmU1ZjljYzAyNWM4Y2FlMTAxNjcxZjYyODMwOWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgU2VwIDI5IDEzOjQxOjM3IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjcHUvcHhhL21tYy5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmYzE5ZTM2Zjc0MWU4YmM3MjdjMGEzMzAxNzBiM2I1ZGI5MDM5OWVmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMzo1MToxNCAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gYm9hcmQvbXBsL3ZjbWE5L3ZjbWE5LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkZTc0YjllZWFjY2NhZjBhNDJlNWVjYzlhZTc5YTg4ZjdhMzExMjk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMToxNTozOSAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMTg5MzgxNWIwOTk5NDEwZDdhMzI3NTg5NjExYzdiMzhlOTUyOTllCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxMiAxNTo0OTozOSAyMDA3ICswMjAwCgogICAgR1AzIFNTQTogZW5hYmxlIFJUQwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODAwMjAxMjA0MWYxZmY5Zjk5N2E1NzI3YWJlNTAxNWY3MGNkMmU0NgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDkgMTM6NTg6MjQgMjAwNyArMDIwMAoKICAgIFthZHM1MTIxXSBFRVBST00gc3VwcG9ydCBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YjYyNGFkMjU0Yjk3ZTVhMjVkY2EyMzA0YTM5OGI2NGFlZWRhZmZlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEluaXRpYWxpemUgYmlfZmxhc2gqIGluIGJvYXJkX2luaXRfcgoKICAgIFRoZSBBVFNUSzEwMDAtc3BlY2lmaWMgZmxhc2ggZHJpdmVyIGludGlhbGl6ZXMgYmlfZmxhc2hzdGFydCwKICAgIGJpX2ZsYXNoc2l6ZSBhbmQgYmlfZmxhc2hvZmZzZXQsIGJ1dCBvdGhlciBmbGFzaCBkcml2ZXJzLCBsaWtlIHRoZSBDRkkKICAgIGRyaXZlciwgZG9uJ3QuCgogICAgSW5pdGlhbGl6ZSB0aGVzZSBpbiBib2FyZF9pbml0X3IgaW5zdGVhZCBzbyB0aGF0IHRoaW5ncyB3aWxsIHN0aWxsIGJlCiAgICBzZXQgdXAgY29ycmVjdGx5IHdoZW4gd2Ugc3dpdGNoIHRvIHRoZSBDRkkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJiMmE1ODdkNmQzMDc2Mzg3ZDIyYWM3NDBmNDQwNDRiZjQ2ZTJjYjgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgT2N0IDUgMTA6NDA6NTQgMjAwNyArMDIwMAoKICAgIHRxbTUyMDA6IEZpeCBDT05GSUdfQ01EX1BDSSB0eXBvIGluIGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOTI4NjkxOTVlZjgyMTA3NThkMjE3NjIzMGMwYTM2ODk3YWZkNTBlZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBPY3QgNSAwOTo0NjowNiAyMDA3ICswMjAwCgogICAgQ001MjAwOiBGaXggbWlzc2luZyBudWxsLXRlcm1pbmF0aW9uIGluIGhvc3RuYW1lIG1hbmlwdWxhdGlvbiBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5YWRkOTg4NGIxZmRkYzM0Y2ExODZlMDBhMmY4NjhjY2Q1ZDAyZDg3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBPY3QgMiAxOTowOTowMSAyMDA3ICswMjAwCgogICAgRml4IG1lbXRlc3QgYnJlYWthZ2UKCiAgICBDRkdfTUVNVEVTVF9TVEFSVCB1c2VzIHdlaXJkIG1hZ2ljIGludm9sdmluZyBnZCwgd2hpY2ggZmFpbHMgdG8KICAgIGNvbXBpbGUuIFVzZSBoYXJkY29kZWQgdmFsdWVzIGluc3RlYWQgKHdlIGFjdHVhbGx5IGtub3cgaG93IG11Y2ggUkFNCiAgICB3ZSBoYXZlIG9uIGJvYXJkLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3Mzg4MTVjMGNjNDRhYTMyOTA5N2Y4NjhkYzFlZmM0OWVkZTljNWJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIgMTE6NDQ6NDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODdjMTgzM2EzOWU5NDRkYjY2Mzg1Mjg2ZmQ1ZTI4ZjliM2ZjZGQ1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyIDExOjQ0OjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogUmVtb3ZlIHdhdGNoZG9nIGZvciBub3csIHNpbmNlIG5vdCBmdWxseSB0ZXN0ZWQgeWV0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkYjY0Nzg0MDYxYmZjMzRmNGJhNzBlZjFkMmZiZTcxMzNiNTU2NzAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAxIDA5OjUxOjUwIDIwMDcgKzAyMDAKCiAgICBQcm9ncmFtIEVQTEQgdG8gZm9yY2UgZnVsbCBkdXBsZXggbW9kZSBmb3IgUEhZLgoKICAgIEVQTEQgZm9yY2VzIG1vZGVzIG9mIFBIWSBvcGVyYXRpb24uIEJ5IGRlZmF1bHQgZnVsbCBkdXBsZXggaXMgdHVybmVkIG9mZi4KICAgIFRoaXMgZml4IHR1cm5zIGl0IG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc4NWMxMzQ3N2I3N2RjZDJlNmM1MTI4ZmZmY2RiNGUxOTQzZjQ4MTgKQXV0aG9yOiBUaW1vIEtldG9sYSA8dGltby5rZXRvbGFAZXhlcnR1cy5maT4KRGF0ZToJTW9uIFNlcCAyNCAxNDo1MDozMiAyMDA3ICswMzAwCgogICAgQnVnZml4OiBVc2Ugb25seSBvbmUgUFREIGZvciBvbmUgZW5kcG9pbnQKCiAgICBPcmlnaW5hbCBpc3AxMTZ4LWhjZCBjb2RlIHByZXBhcmVkIG11bHRpcGxlIFBURHMgZm9yIGxvbmdlciB0aGFuIDE2CiAgICBieXRlIHRyYW5zZmVycyBmb3Igb25lIGVuZHBvaW50LiBUaGF0IGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgdGhlCiAgICBJU1AxMTZ4IGlzIGFibGUgdG8gc3BsaXQgbG9uZyBkYXRhIGZyb20gb25lIFBURCBpbnRvIG11bHRpcGxlCiAgICB0cmFuc2FjdGlvbnMgYmFzZWQgb24gdGhlIGJ1ZmZlciBzaXplIG9mIHRoZSBlbmRwb2ludC4gSXQgYWxzbyBjYXVzZWQKICAgIHNlcmlvdXMgcHJvYmxlbXMgaWYgdGhlIGVuZHBvaW50IE5BS2VkIHNvbWUgb2YgdGhlIHRyYW5zYWN0aW9ucy4gSW4KICAgIHRoYXQgY2FzZSBJU1AxMTZ4IHdvdWxkbid0IG5vdGljZSB0aGF0IHRoZSBvdGhlciBQVERzIHdlcmUgZm9yIHRoZSBzYW1lCiAgICBlbmRwb2ludCBhbmQgd291bGQgdHJ5IHRoZSBvdGhlciBQVERzIHBvc3NpYmx5IG91dCBvZiBvcmRlci4gVGhhdCB3b3VsZAogICAgYnJlYWsgdGhlIHdob2xlIHRyYW5zZmVyLgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgaXNwMTE2eF9zdWJtaXRfam9iIHRvIHVzZSBvbmUgUFREIGZvciBvbmUgdHJhbnNmZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltbyBLZXRvbGEgPHRpbW8ua2V0b2xhQGV4ZXJ0dXMuZmk+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg2ZWM4NmMwNDMyNmMzOTEzMTc4YTc2NzlhYTkxMGRlMDcxZGE3NWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgU2VwIDI3IDIzOjI3OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBvbiBDT05GSUdfTFBDMjI5MiBpbiBzZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDNlOTU0YmViNjE0YjViMTkwZDdmNGY0YzNiNjQxNDM3YTAxMzJlMzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTEgMTQ6MTI6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBDaGFuZ2UgR1BJTyA1OCB0byBkZWZhdWx0IHRvIGxvdyAod2F0Y2hkb2cgdGVzdCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ4N2FkYmRjZjk1OTRiYjJlYjY4NjMyNWE2Zjk1NDBkYWQxYjcwYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMjYgMTY6MzU6NTQgMjAwNyAtMDUwMAoKICAgIDg1eHggaW8gb3V0IGZ1bmN0aW9ucyBuZWVkIHN5bmMgYWZ0ZXIgd3JpdGUuCgogICAgVGhpcyBmaXhlcyB0aGUgbWMxNDY4MTggcnRjX3JlYWQvd3JpdGUgZnVuY3Rpb25zIGZvciA4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQzOGVmZmM2ZTM1OWU2YjFiMGM3OGQ2NmU4YmMxYTRkYzE1YTJhZQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIFNlcCAyNSAxNTo0ODowNSAyMDA3IC0wNjAwCgogICAgRnBnYTogZml4IGluY29ycmVjdCB0ZXN0IG9mIENGR19GUEdBX1hJTElOWCBtYWNybwoKICAgIENGR19GUEdBX1hJTElOWCBpcyBhIGJpdCB2YWx1ZSB1c2VkIHRvIHRlc3QgYWdhaW5zdCB0aGUgdmFsdWUgaW4KICAgIENPTkZJR19GUEdBLiAgVGVzdGluZyBmb3IgYSB2YWx1ZSB3aWxsIGFsd2F5cyByZXR1cm4gVFJVRS4JSSBkb24ndAogICAgdGhpbmsgdGhhdCBpcyB0aGUgaW50ZW50aW9uIGluIHRoaXMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODUzNjQzZDhjZjJjYTgwY2IyZTI1YzUzYWQ1ZGM1ODBhYmFmZTE2NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDo0MTozMCAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcgYW5kIHJlbW92aW5nIGNvZGUgdmlvbGF0aW9uCgpjb21taXQgZjI0MDM1NjUwNzAzOGU1Y2U1NWU4YTI0Y2IyNjA3ZTllYWU2ZDEwYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozNjowNiAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIHNldHMgb2YgY29tbWFuZHMKICAgIGJlY2F1c2UgY2hhbmdpbmcgb2YgY29tbWFuZCBoYW5kbGluZyBicmluZ3MKICAgIGNvbXBpbGF0aW9uIHByb2JsZW1zCgpjb21taXQgY2IxYmM2M2I3NWEyMzI1NzFlYjY5YWEyYzhhYTkxOTMyMTY1NTg0NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozMDo0MiAyMDA3ICswMjAwCgogICAgW0ZJWF0gRW1haWwgcmVwYXJhdGlvbiAmIENvcHlyaWdodAogICAgQm90aCBjb2RlcyBhcmUgd3JpdHRlbiBieSBteXNlbGYgd2l0aG91dCBhbnkKICAgIHN1cHBvcnQgZnJvbSBDVFUKCmNvbW1pdCAwNzMxY2JhZTZjMmZlYWI5M2IyNDRkODNmZDZhNDNmNWNjOWJmODUyCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjI1OjExIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBtYWNybyBuYW1lIGZvciBVYXJ0TGl0ZQogICAgYmVjYXVzZSBQb3dlclBDIDQwNSBjYW4gdXNlIFVhcnRMaXRlIGFzIGNvbnNvbGUKCmNvbW1pdCAxYzExMDBkMmZjZjQ2YjlkMTFkY2Y3OGQ2ZTVhZWE3NWUyZThiNzE2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjIxOjE5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBkZXNpZ24gd2l0aG91dCBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgUG9sbGluZyB0aW1lcgoKY29tbWl0IDA3MzE5MzNlYzhlYzQ1ZDAyYmE4OWI1MmRmNjczZDUyNjg3M2NkZGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTk6NDggMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlc29sdmUgcHJvYmxlbSB3aXRoIGNwdSB3aXRob3V0IGJhcnJlbCBzaGlmdGVyCgpjb21taXQgZGIxNGQ3Nzk5NWNlNTE1YjcyOGIxNzhiNjNmODJiYWJlNjBlM2Q1NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxODo0NiAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVwYWlyIGVtYWlsIGFkZHJlc3MKCmNvbW1pdCA0ODFkNDMyODYxODgwNGFkZDFmODE4YTZjOTYyOTYxMjFjZDA1MjhlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXBhaXIgTUZTTCBjb21tYW5kcwoKY29tbWl0IGI5MGMwNDVmMDM1YzNjYzliNWQyZWRhZWQ2MDQ4ZGZiNzRlNDA3NjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MDg6MzcgMjAwNyArMDIwMAoKICAgIHN5bmNocm9uaXppdGlvbiB3aXRoIG1haW5saW5lCgpjb21taXQgZWRhM2UxZTY2MTlhZDBiZWU5NGFlNGIxNmM5OWQ4OGU3N2UyYWYxMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjo0MjozOCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGNvbW1hbmQgb2YgaWRlIHdpdGggc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZDkxZWE0NWQxNWNmOGUwOTg3NDU2YmQyMTFmZmJiNjUwODI0YjZmMQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjozODo0MiAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBNYWtlZmlsZQoKICAgIEFkZCBzdXBwb3J0IE1TNzcyMlNFMDEgdG8gTWFrZWZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZjMGJiZGNjZDM3OWY1Yzg3MDJhZjllMDc2NTI5NGMyZmI3NDcyYTYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MzE6MTMgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIHNoNzcyMiBwcm9jZXNzb3IgYW5kIEhpdGFjaGkgTVM3NzIyU0UwMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwNDczNzViZmE0YzMwNTJmYTUwYTc0OGRhN2ZmODllOWRhZDNiMzY0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjE5OjI0IDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIE1TNzc1MFNFMDEgcGxhdGZvcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNTE2YWQ3NjBkYjM1NTM3NjYyNjdhZGEwMWI3ZDVkNzI3ZmFhNGJiZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjoxNzowOCAyMDA3ICswOTAwCgogICAgc2g6IFJlbW92ZSBjb21tZW50IG91dCBjb2RlIGZyb20gaW5jbHVkZS9hc20tc2gvY3B1X3NoNC5oCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGIwMmJhZDEyODY2OWU1NjdmY2U4N2Q4ZGY4MjNiMDZhMDE0NGI4ZGIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MTI6MzAgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgY29yZSBjb2RlIG9mIFN1cGVySC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNjZkY2FkM2E5YTUzZTA3NjZkOTBlMDA4NDEyM2JkODUyOTUyMmZiMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMjAgMDA6MDQ6MTQgMjAwNyArMDIwMAoKICAgIHYxLjMuMC1yYzIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDEzNWUxOWJjMjc3M2ViY2E0ODdlOWE4MzcxZjY3ZTFiYTIwMjMxM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDE4IDIxOjM2OjM1IDIwMDcgKzAyMDAKCiAgICBBdm9pZCBjb21waWxlciB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGE3ODNhNjU4NTFiYzc0MjFhYjY5ZjQ0MjI2MTIxNWUyMWI4ODkxYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIFNlcCAxOCAxMjoyNDo1NyAyMDA3IC0wNjAwCgogICAgQnVnZml4OiByZW1vdmUgZW1iZWRkZWQgbnVsbCAoXDApIGZyb20gQ0ZHX0JPT1RGSUxFIG1hY3JvIGluIFRRTTg1NDBfY29uZmlnCgogICAgL2Jpbi9iYXNoIGFuZCAvYmluL2Rhc2ggKHdoaWNoIC9iaW4vc2ggaXMgbGlua2VkIHRvIG9uIHVidW50dSkgaGFuZGxlIGVtYmVkZGVkCiAgICBudWxscyBpbiBhIHN0cmluZyBkaWZmZXJlbnRseS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHN0YXRlbWVudDoKCWVjaG8gInRoaXMgaXMgYSBzdHJpbmdcMCIgPiBhZmlsZQogICAgV2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgd2l0aCAvYmluL2Jhc2g6CgkidGhpcyBpcyBhIHN0cmluZ1wwIgogICAgQnV0IHdpdGggL2Jpbi9kYXNoLCB3aWxsIHByb2R1Y2U6CgkidGhpcyBpcyBhIHN0cmluZwoKICAgIEJ1ZyBmaXhlZCBieSBtb3ZpbmcgdGhlIGVtYmVkZGVkIG51bGwgb3V0IG9mIHRoZSBtYWtlZmlsZSBhbmQgaW50byB0aGUKICAgIGNvbmZpZyBoZWFkZXIuICBBbHNvIHJlbmFtZWQgdGhlIG1hY3JvIHRvIGF2b2lkIHVzYWdlIGNvbGlzaW9uIHdpdGggdGhlIHNhbWUKICAgIG1hY3JvIHVzZWQgYnkgb3RoZXIgYm9hcmQgcG9ydHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY4ZDNjYTdiNmZhMzIyYWM1N2U4ZTgzMWYwN2RiZWVhMDM5YTlmMzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDE4IDE3OjQwOjI3IDIwMDcgKzAyMDAKCiAgICBNQ0MyMDA6IGZpeCBidWlsZCB3YXJuaW5nCgogICAgVGhlIE1DQzIwMCBib2FyZCBjb25maWcgZmlsZSBpbmNsdWRlcyB2ZXJzaW9uLmggZm9yIHNvbWUgY3VzdG9tZXItCiAgICBzcGVjaWZpYyBzZXR0aW5nLCB3aGljaCBjYXVzZXMgd2FybmluZ3Mgd2l0aCAibWFrZSBkZXBlbmQiOyBidWlsZAogICAgdmVyc2lvbi5oIGJlZm9yZSBkZXBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiZDg2MjIwZjU4Yjk5ZDY4OTYxOThjMzg1ZmRhMTMyZjBjOTgwOTE1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMzowNzo1NCAyMDA3ICswMTAwCgogICAgTW92ZSBjb2xvdXJlZCBsZWQgQVBJIHRvIHN0YXR1c19sZWQuaAogICAgSW1wcm92ZSBpbmRlbnRhdGlvbiBpbiBkcml2ZXJzL2F0NDUuYwoKY29tbWl0IGU4MGU1ODViMDBmYmJhYjdhZDFiZjcxNjE5NzQxZjJjNWIwMjlhYjcKQXV0aG9yOiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgpEYXRlOglUdWUgU2VwIDE4IDA4OjQ3OjIwIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgYXRzdGsxMDAyIGJvb3RhcmdzLgoKICAgIFVwZGF0ZXMgdG8gYXRzdGsxMDAyIFUtQm9vdCBoZWFkZXIgZmlsZToKICAgIC0gQ2hhbmdlZCBib290YXJnczoKCSogU2V0IHRoZSBib290YXJncyBmb3IgYXQxMDAyIHRvIHBvaW50IHRvIHRoZSBTRC1jYXJkIHBhcnRpdGlvbiBpbnN0ZWFkCgkqIC4uLiBvZiB0aGUgYm9vdCBmbGFzaC4KCSogUmVtb3ZpbmcgdGhlIHJvb3Rmc3R5cGUgc2luY2UgdGhhdCBhcmd1bWVudCBhcmUgbm90IG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTRmM2FhYjZkZmJlZDZjMjkzNjdjNjg4YmZiOGE0N2VlZjYyYzIyNQpBdXRob3I6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CkRhdGU6CVdlZCBTZXAgMTIgMTM6MzI6MzcgMjAwNyArMDIwMAoKICAgIEFkZCBzb21lIGNvbW1lbnRzIHRvIGNsb2NrcyBpbiBhdHN0azEwMDIuaAoKICAgIFRoaXMgcGF0Y2ggYXBwbGllcyBzb21lIGNsYXJpZnlpbmcgY29tbWVudHMgdG8gaG93IHRoZSBkaWZmZXJlbnQKICAgIGNsb2NrcyBhcmUgc2V0dXAgYWNjb3JkaW5nIHRvIGF0c3RrMTAwMi5oIFNvbWUgb2YgdGhlIHByZXZpb3VzCiAgICBjb21tZW50cyB3aGVyZSBzdGF0aW5nIHdyb25nZnVsIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk3MjEzZjMyNDE2ZWFkODg1ZGVhZmVhODY3NzRlOTEyZmZkNjBhZDAKQXV0aG9yOiBEYXZpZCBTYWFkYSA8RGF2aWQuU2FhZGFAZWNpdGVsZS5jb20+CkRhdGU6CU1vbiBTZXAgMTcgMTc6MDQ6NDcgMjAwNyArMDIwMAoKICAgIERlc2NyaXB0aW9uOiBBZGQgTkVDJ3MgUENJIE9IQ0kgbW9kdWxlIElEIHRvIHRoZSBVU0IgT0hDSSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+Cgpjb21taXQgMzAzNjNlOThmYTQ3MGZiZWNlYTVlOGJjMGYxNDQzMzUyNzU0ZjMwMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAxNyAwODoyMDo0NyAyMDA3ICswMjAwCgogICAgU21hbGwgd2hpdGVzcGFjZSBjbGVhbnVwIG9mIE9uZU5BTkQgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdlOGNlMTAxYTRhNDVlZDZlZDQ1NzM5ZmMyZGU1Zjg3YjEzZjdmMQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjE1OjE0IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDMvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDE3YWEyODAwNDU3ZGYwYzA2YjQxNTE2ZjQ2ZjEyNjcxMmMxOTYyMTkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxNDozNCAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAyLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA5MTY1MjdmNDgwOWE3YmNkODExZjFmMWRhZjM0YWYxODRlMzFkZDhjCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTM6NDkgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMS8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYjQ5YzkwZGY2ZTdjZmNmYjhiODYyYjhiYmY4NDQ4ZGZmNWVlZDlhNQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIFNlcCAxNiAyMDo1MTo1NyAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVtb3ZlIGZpbGVzIGZvcm0gcmVwb3NpdG9yeQoKY29tbWl0IDY3YzMxMDM2YWNhYWFhOTkyZmMzNDZjYzg5ZGIwOTA5YTdlNzMzYzQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDE2IDE3OjEwOjA0IDIwMDcgKzAyMDAKCiAgICBUUU04eHhbTE1dOiBGaXggYnJva2VuIGVudmlyb25tZW50IGFsaWdubWVudC4KCiAgICBXaXRoIHJlY2VudCB0b29sY2hhaW5zLCB0aGUgZW52aXJvbm1lbnQgc2VjdG9ycyB3ZXJlIG5vIGxvbmdlciBhbGlnbmVkIHRvCiAgICBzZWN0b3IgYm91bmRhcmllcy4gVGhlIHJlYXNvbiB3YXMgYSBjb21iaW5hdGlvbiBvZiB0d28gYnVnczoKCiAgICAxKSBjb21tb24vZW52aXJvbm1lbnQuYyBhc3N1bWVkIHRoYXQgQ09ORklHX1RRTTh4eEwgd291bGQgYmUgZGVmaW5lZAogICAgICAgZm9yIGFsbCBUUU04eHhMIGFuZCBUUU04eHhNIGJvYXJkcy4gQnV0ICJpbmNsdWRlL2NvbW1vbi5oIiwgd2hlcmUKICAgICAgIHRoaXMgZ2V0cyBkZWZpbmVkLCBpcyBub3QgaW5jbHVkZWQgaGVyZSAoYW5kIGNhbm5vdCBiZSBpbmNsdWRlZAogICAgICAgd2l0aG91dCBjYXVzaW5nIGxvdHMgb2YgcHJvYmxlbXMpLgoKICAgICAgIEFkZGVkIGEgbmV3ICNkZWZpbmUgQ0ZHX1VTRV9QUENFTlYgZm9yIGFsbCBib2FyZHMgd2hpY2ggcmVhbGx5CiAgICAgICB3YW50IHRvIHB1dCB0aGUgZW52aXJvbm1lbnQgaXMgYSAiLnBwY2VudiIgc2VjdGlvbi4KCiAgICAyKSBUaGUgbGlua2VyIHNjcmlwdHMganVzdCBpbmNsdWRlIGVudmlyb25tZW50Lm8sIHNpbGVudGx5IGFzc3VtaW5nCiAgICAgICB0aGF0IHRoZSBvYmplY3RzIGluIHRoYXQgZmlsZSBhcmUgcmVhbGx5IGluIHRoZSBvcmRlciBpbiB3aGljaAogICAgICAgdGhleSBhcmUgY29kZWQgaW4gdGhlIEMgZmlsZSwgaS4gZS4gImVudmlyb25tZW50IiBmaXJzdCwgdGhlbgogICAgICAgInJlZHVuZGFuZF9lbnZpcm9ubWVudCIsIGFuZCAiZW52X3NpemUiIGxhc3QuIEhvd2V2ZXIsIGN1cnJlbnQKICAgICAgIHRvb2xjaGFpbnMgKEdDQy00LngpIHJlb3JkZXIgdGhlIG9iamVjdHMsIGNhdXNpbmcgdGhlIGVudmlyb25tZW50CiAgICAgICBkYXRhIG5vdCB0byBzdGFydCBvbiBhIGZsYXNoIHNlY3RvciBib3VuZGFyeToKCiAgICAgICBJbnN0ZWFkIG9mOgkJCQkJd2UgZ290OgoKCTQwMDA4MDAwIFQgZW52aXJvbm1lbnQJCQk0MDAwODAwMCBUIGVudl9zaXplCgk0MDAwYzAwMCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAk0MDAwODAwNCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAoJNDAwMTAwMDAgVCBlbnZfc2l6ZQkJCTQwMDBjMDA0IFQgZW52aXJvbm1lbnQKCiAgICAgICBOb3RlOiB0aGlzIHBhdGNoIGZpeGVzIGp1c3QgdGhlIGZpcnN0IHBhcnQsIGFuZCBjdXJlcyB0aGUgYWxpZ25tZW50CiAgICAgICBwcm9ibGVtIGJ5IG1ha2luZyBzdXJlIHRoYXQgImVudl9zaXplIiBnZXRzIHBsYWNlZCBjb3JyZWN0bHkuIEhvd2V2ZXIsCiAgICAgICB3ZSBzdGlsbCBoYXZlIGEgcG90ZW50aWFsIGlzc3VlIGJlY2F1c2UgcHJpbWFyeSBhbmQgcmVkdW5kYW50CiAgICAgICBlbnZpcm9ubWVudCBzZWN0b3JzIGFyZSBhY3R1YWxseSBzd2FwcGVkLCBpLiBlLiB3ZSBoYXZlIG5vdzoKCgk0MDAwODAwMCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAoJNDAwMGMwMDAgVCBlbnZpcm9ubWVudAoJNDAwMTAwMDAgVCBlbnZfc2l6ZQoKICAgICAgIFRoaXMgc2hhbGwgYmUgZml4ZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGViNmRhODA1MDc5N2MyMDRjOWQwMTA1NDg0MjQxODZjN2NlMzJmYzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDE2IDAyOjM5OjM1IDIwMDcgKzAyMDAKCiAgICBUUU04eHgvRlBTOHh4OiBhZGp1c3QgZmxhc2ggcGFydGl0aW9ucyBmb3IgMi42IEFSQ0g9cG93ZXJwYyBrZXJuZWxzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZDJkMTYwMmM1NGNjNjk1N2JkZWYzODcyMjcyYTRiMjY0ODkzOTYwCkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDEwIDE0OjU0OjU2IDIwMDcgLTA0MDAKCiAgICBUeXBvIGZpeCBpbiB0c2VjLmMKCiAgICBGaXh1cCBmb3IgdGhlIGJyZWFrIHN0YXRlbWVudCBpbiB3cm9uZyBwbGFjZS4KCiAgICBbUGF0Y2ggYnkgdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb21dCiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieToJV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YmQ3ZmU5YWViNzY5MDYzNzFmNDBiOGZkMDc2MTNmMTA5MjJlM2U3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTc6MDQ6MDAgMjAwNyArMDIwMAoKICAgIEZpeCBkb19kaXYoKSB1c2FnZSBpbiBuYW5kIHByb2Nlc3Mgb3V0cHV0CgogICAgRml4IHVzYWdlIG9mIGRvX2RpdigpIGluIG5hbmQgZXJhc2V8cmVhZHx3cml0ZSBwcm9jZXNzIG91dHB1dC4KCiAgICBUaGUgbGFzdCBwYXRjaCB0byBuYW5kX3V0aWwuYyBpbnRyb2R1Y2VkIGRvX2RpdigpIGluc3RlYWQgb2YgbGliZ2NjJ3MKICAgIGltcGxlbWVudGF0aW9uLiBCdXQgZG9fZGl2KCkgcmV0dXJucyB0aGUgcXVvdGllbnQgaW4gaXRzIGZpcnN0CiAgICBtYWNybyBwYXJhbWV0ZXIgYW5kIG5vdCBhcyByZXN1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzc1MGQyZTY2OTJhMDAwYTgyZjI5ZGU3YmYyNGUzZGMyMTIzOTE2MQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgU2VwIDEyIDEyOjM2OjUzIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgQ0ZHX05BTkRfUVVJRVQgb3B0aW9uCgogICAgVGhpcyBjb25maWcgb3B0aW9uIHNldHMgdGhlIGRlZmF1bHQgZm9yIHRoZSBwcm9ncmVzcyBpbmZvcm1hdGlvbgogICAgb3V0cHV0IGJlaGF2aW9yIHRoYXQgY2FuIGFsc28gYmUgY29uZmlndXJlZCB0aHJvdWdoIHRoZSAncXVpZXQnCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBUaGUgbGVnYWN5IE5BTkQgY29kZSBkb2VzIG5vdCBwcmludCB0aGUgY3VycmVudCBwcm9ncmVzcyBpbmZvCiAgICBvbiB0aGUgY29uc29sZS4gU28gdGhpcyBvcHRpb24gaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yCiAgICB1bml0cyB0aGF0IGFyZSBpbiB0aGUgZmllbGQgYW5kIHdoZXJlIHNldHRpbmcgdGhlIHF1aWV0IHZhcmlhYmxlCiAgICBpcyBub3QgYW4gb3B0aW9uLiBXaXRoIENGR19OQU5EX1FVSUVUIHNldCB0byAnMScgdGhlIGNvbnNvbGUKICAgIHByb2dyZXNzIGluZm8gaXMgdHVybmVkIG9mZi4gVGhpcyBjYW4gc3RpbGwgYmUgb3ZlcndyaXR0ZW4KICAgIHRocm91Z2ggdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGRjYjg4NjMwMjkwZDJiY2Q4MDMzODZkZDRjMmJlNzMxNDI5OTRjNGYKQXV0aG9yOiBMaWV3IFRzaSBDaHVuZy1yNWFhaHAgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MDY6MDUgMjAwNyAtMDcwMAoKICAgIENvbGRGaXJlOiBmaXggYnVpbGQgZXJyb3IgYmVjYXN1ZSBvZiBiYWQgdHlwZSBvZiBtaWlfaW5pdCgpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxNGQ1YjZjZTUyYTRlZDE5ZGQyOTVkMTM2NGUyNDZjNWU2MDUwMTcKQXV0aG9yOiBMaWV3IFRzaSBDaHVuZy1yNWFhaHAgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MDQ6MDUgMjAwNyAtMDcwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3IgY2F1c2VkIGJ5IHBpeGlzLmMKCiAgICBNb3ZlZCB0aGUgI2luY2x1ZGUgPGFzbS9jYWNoZS5oPiBpbnNpZGUgdGhlICNpZmRlZiBDT05GSUdfRlNMX1BJWElTLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMjE2NTllMzA2NjBhMTM3N2M0MmFmMTM1YTYxMTRlZmUzOTgwMWQ5CkF1dGhvcjogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CkRhdGU6CUZyaSBTZXAgMTQgMTE6MTQ6NDIgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4MzQ5SVRYKl9jb25maWcgdG8gcGxhY2UgY29uZmlnLnRtcCBpbiByaWdodCBwbGFjZS4KCiAgICBNUEM4MzRJVFgqX2NvbmZpZyBkb2VzIG5vdCBzdG9yZSBjb25maWcudG1wIGF0IHRoZSBjb3JyZWN0IGxvY2F0YXRpb24sCiAgICBjYXVzaW5nIE1QQzgzNDlJVFhHUCB0byBoYXZlIHRoZSB3cm9uZyBURVhUX0JBU0UuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTIxOGFiZjFiNTgxN2EzOWE4MjM5OWI0YjkyOGIwMDc1MDU3NWJkYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBTZXAgMTUgMjA6NDg6NDEgMjAwNyArMDIwMAoKICAgIEZpeCBjYXNlcyB3aGVyZSBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiB3YXMgbm90IGRlY2xhcmVkIGFzIGdsb2JhbAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjZiM2YyNGQ2NjViZTY3OGE5ZGJiMTI1YjFlODQxODU0MDBmNjNiNQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVNhdCBTZXAgMTUgMTE6NTU6NDIgMjAwNyArMDIwMAoKICAgIE1ha2UgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgZ2xvYmFsIGZvciBEYVZpbmNpCgogICAgQXMgZGlzY3Vzc2VkIGluIFsxXSwgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgaGFzIHRvIGJlIGdsb2JhbCBhbmQgbm90CiAgICBmdW5jdGlvbiBsb2NhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCiAgICBbMV0gaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAuYm9vdC1sb2FkZXJzLnUtYm9vdC8zMTgwNQoKY29tbWl0IDk5MWIwODlkMWNlNWFkOTQ1NzI1ZTM2NTdhOGYxMDZkZmEwMmEzOGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBTZXAgMTUgMDA6MDM6MzUgMjAwNyArMDIwMAoKICAgIFN5bmNocm9uaXplIHdpdGggVS1CT09UIG1haW5saW5lCgpjb21taXQgZDdmZWUzMmI3ZTYxZmUxMWM2NGUzNzFjZGU3OWZhYTQ3NjhlODM1MApBdXRob3I6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgpEYXRlOglGcmkgU2VwIDE0IDExOjE0OjQyIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODM0OUlUWCpfY29uZmlnIHRvIHBsYWNlIGNvbmZpZy50bXAgaW4gcmlnaHQgcGxhY2UuCgogICAgTVBDODM0SVRYKl9jb25maWcgZG9lcyBub3Qgc3RvcmUgY29uZmlnLnRtcCBhdCB0aGUgY29ycmVjdCBsb2NhdGF0aW9uLAogICAgY2F1c2luZyBNUEM4MzQ5SVRYR1AgdG8gaGF2ZSB0aGUgd3JvbmcgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZTdiN2I2ZWExYjZkMDRkYmU5NjI0MmViNmEwYzFjNjY0Yzk4ZThjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxODoyMTo0OCAyMDA3ICswMjAwCgogICAgY201MjAwOiBGaXggYSB0eXBvIGludHJvZHVjZWQgYnkgYWZhYWM4NmZlMjk0OGFjODRjZDlhMTJiYmVkODgzYjNjNjgzZTdkOQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTFmNjAxYjU3MmRiNWRlOWFhODFhMGI3N2M2OGE4Njk5NGZlMjRjNApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MzM6NTkgMjAwNyArMDIwMAoKICAgIHRxbTUyMDA6IFJlc3RvcmUgY3VzdG9tYXJ5IGVudi4gdmFyaWFibGUgYm9vdCBjb21tYW5kcyBmb3IgcG93ZXJwYyBrZXJuZWxzCgogICAgLSB1cGRhdGUgZGVmYXVsdCBkZWZpbml0aW9ucyBvZiBrZXJuZWxfYWRkciBhbmQgZmR0X2FkZHIgZW52LiB2YXJpYWJsZXMKICAgIC0gbWFrZSBhcmNoL3Bvd2VycGMgYm9vdGluZyB0aGUgZGVmYXVsdCBzY2VuYXJpbwogICAgLSB1cGRhdGUgTVREIHBhcnRpdGlvbiBsYXlvdXQgdG8gbWF0Y2ggdGhlIGFib3ZlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmMzQwMjRkNGEzMjhlNmVkZDkwNjQ1NmRhOThkMmM1MzcxNTVjNGY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxMiAwMDo0ODo1NyAyMDA3ICswMjAwCgogICAgRml4IG1lbW9yeSBjb3JydXB0aW9uIHByb2JsZW0gb24gU1RYIEdQMyBTU0EgQm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkOTRjNzllNDcwMTFhZjVlOGRkMTBlZDYxNjNjMDliNGNmYzc0M2NjCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNTozNTowMSAyMDA3ICswMTAwCgogICAgRmluYWwgdGlkeQoKY29tbWl0IDM4YWQ4MmRhMGMxMTgwZWNkZWIyMTJhOGY0MjQ1ZTk0NWJjYzU0NmUKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNTo0MjoxMSAyMDA3ICswMjAwCgogICAgW0dQM1NTQV0gQWRkIGRlZmluZSBDT05GSUdfTVBDODVYWF9QQ0kyIGluIGNvbmZpZyBmaWxlIHRvIGFsbG93IHUtYm9vdCB0bwogICAgc2NhbiBvbiBzZWNvbmQgcGNpIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2YzJmNGYzODhlODE4MTY1NWVhOGI2OTM0M2VhMDBiNjhhYTZlOGQwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTI6NTc6NTIgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEluZGl2aWR1YWwgaGFuZGxpbmcgb2Ygc2RyYW0uYyBmb3IgYmFtYm9vX25hbmQgYnVpbGQKCiAgICBCYW1ib28gaGFzIGEgZmlsZSBzZHJhbS5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4gYnVpbGRpbmcgaW4KICAgIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3Rvcnkgb3RoZXJ3aXNlIGl0IGlzCiAgICBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkNDU5NjM4NTRlZmYzOWQ1NzUxMjRkODU5NDE5YmI0OTUzY2UyYzg3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgU2VwIDExIDAwOjM3OjA0IDIwMDcgKzAyMDAKCiAgICBbRklYXSBNaWNyb2JsYXplIE1MNDAxIC0gcmVwYXJlIEZMQVNIIGhhbmRsaW5nCgpjb21taXQgMzhjMWVmNzI4ZDE5OTUwNDE0YThhYjFjY2ZjNTM3Njc4NDhmYTM0NgpBdXRob3I6IFNlYW4gTUNHT09HQU4gPHNlYW4ubWNnb29nYW5Ac3QuY29tPgpEYXRlOglNb24gU2VwIDEwIDE2OjU1OjU5IDIwMDcgKzAxMDAKCiAgICBBbGxvY2F0ZSBDUFUgQXJjaGl0ZWN0dXJlIENvZGUgZm9yIFNUTWljcm9lbGVjdHJvbmljcycgU1QyMDAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VhbiBNY0dvb2dhbiA8U2Vhbi5NY0dvb2dhbkBzdC5jb20+CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNvbW1pdCA3NTRiYWM0ODE1NmY4OTU4ZDhmNmE1M2E1MWVkYTg4YWI1NzU4OTI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAxMCAyMDo0MjozMSAyMDA3ICswMjAwCgogICAgVXBkYXRlIHZlcnNpb24gdG8gbWF0Y2ggY3VycmVudCBzdGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDdhODg4ZDZiM2MzMmExMjZkYmI1MDRlZjE0NmJiNGMyNjU3NGNhN2IKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNzozOTowOCAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIFN0cmVhbWxpbmUgZnJhbWUgaGFuZGxpbmcgaW4gdGhlIEZFQyBkcml2ZXIKCiAgICAtIGNvbnZlcnQgZnJhbWUgc2l6ZSBzZXR0aW5ncyB0byBiZSBkZXJpdmVkIGZyb20gYSBzaW5nbGUgYmFzZQogICAgLSBzZXQgZnJhbWUgc2l6ZSB0byB0aGUgcmVjb21tZW5kZWQgZGVmYXVsdCB2YWx1ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGUyNTFlMDBkMGRiNGIzNmQxZDJiN2UzOGZlYzQzYTcyOTZiNTI5YTIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxMTozNDowMCAyMDA3ICswOTAwCgogICAgUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmc6IHRhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcndvcmtpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDFkOWUzMWUwNDkxMWE2YmI3Y2M2NmRkOTExMzJjNjk5MTAxYzMyZTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDkgMjE6MjE6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGluIHNwYzE5MjAgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emL8Y2hlciA8bWtAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTdkN2VjYTc5MWEzN2Y0NTJjOWRhMTBmZWY0YjMxZGQ3YWE5YTYyMgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJRnJpIFNlcCA3IDA5OjI1OjA3IDIwMDcgLTA2MDAKCiAgICBCdWdmaXg6IG1ha2UgYm9vdG0rbGliZmR0IGNvbXBpbGUgb24gYm9hcmRzIHdpdGggbm8gZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmVmYzFmYzBiNjNlNTVmOTRjNWJjNjFkOGRkMjNjOTE4ZTNiYzc3OApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTg6MzU6MzcgMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIFBDSWUgZW52aXJvbm1lbnQgc2V0dGluZ3MgZm9yIEthdG1haSBhbmQgWXVjY2EKCiAgICAtICdwY2ljb25maWdob3N0JyBpcyBzZXQgYnkgZGVmYXVsdCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHNjYW4gYnJpZGdlcwogICAgYmVoaW5kIHRoZSBwcmltYXJ5IGhvc3QvUENJZQoKICAgIC0gJ3BjaXNjYW5kZWxheScgZW52IHZhcmlhYmxlIGlzIHJlY29nbml6ZWQgdG8gYWxsb3cgZm9yIHVzZXItY29udHJvbGxlZAogICAgZGVsYXkgYmVmb3JlIHRoZSBQQ0llIGJ1cyBlbnVtZXJhdGlvbjsgc29tZSBwZXJpcGhlcmFsIGRldmljZXMgcmVxdWlyZSBhCiAgICBzaWduaWZpY2FudCBkZWxheSBiZWZvcmUgdGhleSBjYW4gYmUgc2Nhbm5lZCAoZS5nLiBMU0k4NDA4RSk7IHdpdGhvdXQgdGhlCiAgICBkZWxheSB0aGV5IGFyZSBub3QgZGV0ZWN0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ZjE5MTM5Mzg5ODRlZjZjNmE0NmNiNTNlMDAzNzE5MTk2ZDljNWRlCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxODoyMDoyMyAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gSW1wcm92ZSBQQ0llIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzCgogICAgLSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gc3BhY2UgbWFwcGluZwogICAgLSBjb3JyZWN0IGJ1cyBudW1iZXJpbmcKICAgIC0gYmV0dGVyIGFjY2VzcyB0byBjb25maWcgc3BhY2UKCiAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgNDQwU1BlIGhvc3QvUENJZSBicmlkZ2Ugd2FzIGFibGUgdG8gY29uZmlndXJlIG9ubHkgdGhlCiAgICBmaXJzdCBkZXZpY2Ugb24gdGhlIGZpcnN0IGJ1cy4gV2Ugbm93IGFsbG93IHRvIGNvbmZpZ3VyZSB1cCB0byAxNiBidXNlczsKICAgIGFsc28sIHNjYW5uaW5nIGZvciBkZXZpY2VzIGJlaGluZCB0aGUgUENJZS1QQ0llIGJyaWRnZSBpcyBzdXBwb3J0ZWQsIHNvCiAgICBwZXJpcGhlcmFsIGRldmljZXMgZmFydGhlciBpbiBoaWVyYXJjaHkgY2FuIGJlIGlkZW50aWZpZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgMTVlZTQ3MzRlNGUwODAwM2Q3M2Q5ZWFkM2NhODBlMmEwNjcyZTQyNwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6NDY6MTggMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIENvbnZlcnQgbWFjaGluZSBjaGVjayBleGNlcHRpb25zIGhhbmRsaW5nCgogICAgQ29udmVydCB1c2luZyBmaXh1cCBtZWNoYW5pc20gdG8gc3VwcHJlc3NpbmcgTUNLIGZvciB0aGUgZHVyYXRpb24gb2YgY29uZmlnCiAgICByZWFkL3dyaXRlIHRyYW5zYWN0aW9uOiB3aGlsZSBmaXh1cHMgd29yayBmaW5lIHdpdGggdGhlIGNhc2Ugb2YgYSBwcmVjaXNlCiAgICBleGNlcHRpb24sIHdlIGlkZW50aWZpZWQgYSBtYWpvciBkcmF3YmFjayB3aXRoIHRoaXMgYXBwcm9hY2ggd2hlbiB0aGVyZSdzCiAgICBhbiBpbXByZWNpc2UgY2FzZS4gSW4gdGhpcyBzY2VuYXJpbyB0aGVyZSBpcyB0aGUgZm9sbG93aW5nIHJhY2UgY29uZGl0aW9uOgogICAgdGhlIGZpeHVwIGlzIChieSBkZXNpZ24pIHNldCB0byBjYXRjaCB0aGUgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nIHRoZSBvbmUKICAgIGFjdHVhbGx5IGNhdXNpbmcgdGhlIGV4Y2VwdGlvbjsgaWYgYW4gaW50ZXJydXB0IChlLmcuIGRlY3JlbWVudGVyKSBoYXBwZW5zCiAgICBiZXR3ZWVuIHRob3NlIHR3byBpbnN0cnVjdGlvbnMsIHRoZSBJU1IgY29kZSBpcyBleGVjdXRlZCBiZWZvcmUgdGhlIGZpeHVwCiAgICBoYW5kbGVyIHRoZSBtYWNoaW5lIGNoZWNrIGlzIG5vIGxvbmdlciBwcm90ZWN0ZWQgYnkgdGhlIGZpeHVwIGhhbmRsZXIgYXMgaXQKICAgIGFwcGVhcnMgYXMgd2l0aGluIHRoZSBJU1IgY29kZS4gSW4gY29uc2VxdWVuY2UgdGhlIGZpeHVwIGFwcHJvYWNoIGlzIGJlaW5nCiAgICBwaGFzZWQgb3V0IGFuZCByZXBsYWNlZCB3aXRoIGV4cGxpY2l0IHN1cHByZXNzaW5nIG9mIE1DSyBkdXJpbmcgYSBQQ0llCiAgICBjb25maWcgcmVhZC93cml0ZSBjeWNsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZjc2NDBjOWVhZDg4MDZiNWQ4MjdmMmIyOWY5Y2IyNjMyYWRkNzI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA3IDE3OjQzOjM2IDIwMDcgKzAyMDAKCiAgICBGaXggdHlwbyBpbiBNQUtFQUxMIHNjcmlwdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4ZTJlNWZjZDJlMDY2NzBiNjJlMTY4MGEzOTM0YzBlNTVjNzI4MTAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjA5OjIxIDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gUHJvcGVyIGhhbmRsaW5nIG9mIGxhcmdlciBmcmFtZXMgaW4gdGhlIEZFQyBkcml2ZXIKCiAgICBXaGVuIGZyYW1lIGxhcmdlciB0aGFuIGxvY2FsIFJYIGJ1ZmZlciBpcyByZWNlaXZlZCwgaXQgaXMgc3BsaXQgYW5kIGhhbmRsZWQKICAgIGJ5IHR3byBidWZmZXIgZGVzY3JpcHRvcnMuIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlIEZFQyBkcml2ZXIgZGlzY2FyZGVkCiAgICBjb250ZW50cyBvZiBhIGJ1ZmZlciBkZXNjcmlwdG9yIHdpdGhvdXQgdGhlICdMQVNUJyBiaXQgc2V0LCBzbyB0aGUgZmlyc3QKICAgIHBhcnQgb2YgdGhlIGZyYW1lIHdhcyBsb3N0IGluIGNhc2Ugb2YgbGFyZ2VyIGZyYW1lcy4gVGhpcyBmaXggYWxsb3dzIHRvCiAgICBzYWZlbHkgY29tYmluZSB0aGUgdHdvIHBpZWNlcyBpbnRvIHRoZSB3aG9sZSBmcmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4ZDE3OTc5ZDAzNTk0OTJhODIyYTBhNDA5ZDI2ZTNhMzU0OWI0Y2Q0CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjA1OjM2IDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhODljYmJkMjdhNjBlNjc0MDc3MjAwMGZkMDY4OGZmYmExYzI1NzZhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA3IDAxOjIxOjI1IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA1ZTU4MDNlMTE5ZGUzYmViZDc2ZmM5YTU3YmFhYzBiNWFlY2NjOGEzCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjM6MDE6NDkgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogQWRkZWQgc3VwcG9ydCBmb3IgVHJpemVwc0lWIGJvYXJkLgoKICAgIFRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRoZSBUcml6ZXBzIElWIG1vZHVsZSAoNTIwTWh6KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA4MDE3MmM2MTgxYzkxMmZiYjM0ZWEzYmEwYzIyYjIzMmI0MTliNDdmCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjI6NTc6MDQgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlcmlhbCBwb3J0cy4KCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VyaWFsIHBvcnRzIHRvIHRoZSBQWEEgdGFyZ2V0LgogICAgRkZVQVJULCBCVFVBUlQgYW5kIFNUVUFSVCBhcmUgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDI4YmIzZjcyYzY4N2FjNmIyZWIwNzZiMDFkZDIxYTVmZDY1N2Q0NWUKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMjo0ODo0NyAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBmaXggY29tcGlsZSBpc3N1ZSAoaW52YWxpZCBsdmFsdWUpCgogICAgQ29kZSBpcyBicm9rZW4gZm9yIFBYQTI3MCBkdWUgdG8gImludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1lbnQiLgoKICAgIFRoaXMgcGF0Y2ggZml4IGl0IGluIHB4YS1yZWdzLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCAxZDJjYTQ0NmUxYTczMWRmNDIwMjA2ZDA0ZmUyNzhjMjdlYTZiOGU4CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxODoxOTowNSAyMDA3ICswODAwCgogICAgQWRkIEJVSUxEX0RJUiBzdXBwb3J0IGZvciBiaW9zIGVtdWxhdG9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjRkOGE1NTE0NTQ0MmYxMzY5ODI2MzQ4NjIzNDFhM2UwMjAwMmJkYQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDo0MTo1MSAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSBpbmxpbmUgYXNtIHN0cmluZyBmdW5jdGlvbnMKCiAgICBTdG9wIHVzaW5nIGlubGluZSBzdHJpbmcgZnVuY3Rpb25zIG9uIE1JUFMgYXMgb3RoZXIgQVJDSHMgZG8gc28sCiAgICBzaW5jZSB0aGUgb3B0aW1pemVkIGlubGluZSBhc20gdmVyc2lvbnMgYXJlIG5vdCBzbWFsbC4KCiAgICBUaGlzIGNoYW5nZSBpcyB0cmlnZ2VyZWQgYnkgYSBmb2xsb3dpbmcgTUlQUyBidWlsZCBlcnJvcjoKICAgIGNvbW1vbi9saWJjb21tb24uYShleHBvcnRzLm8pKC50ZXh0KzB4ZGMpOiBJbiBmdW5jdGlvbiBganVtcHRhYmxlX2luaXQnOgogICAgY29tbW9uL2V4cG9ydHMuYzozMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RyY21wJwogICAgbWFrZTogKioqIFt1LWJvb3RdIEVycm9yIDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgOGVhMmM0ZTU0ODMzZGVhZWJjMjRjM2NhNmI3ZjIxMzUzYzI1YjBmNQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDo0MTo0NSAyMDA3ICswOTAwCgogICAgW01JUFNdIFVwZGF0ZSBhc20gc3RyaW5nIGhlYWRlcgoKICAgIFRoaXMgcGF0Y2hlcyBjb250YWlucyBzZXZlcmFsIGJ1Z2ZpeGVzIGFuZCBjbGVhbnVwcyBpbiB0aGUgbGF0ZXN0IHVwc3RyZWFtOgoKICAgICAtIERvbid0IGluY2x1ZGUgbGludXgvY29uZmlnLmgKICAgICAtIFJlbW92ZSBidWdneSBpbmxpbmUgdmVyc2lvbiBvZiBtZW1zY2FuLgogICAgIC0gTWVyZ2Ugd2l0aCBMaW51eCAyLjYuMTEtcmMzLgogICAgIC0gRml4IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gc3RyY3B5IGluIGJpbmZtdF9taXNjIGNhdXNlZCBieSBnY2MgMy40LgogICAgIC0gR29vZGJ5ZSBtaXBzNjQuCTMxNzA0IGxpbmVzIG9mIGNvZGUgYml0ZSB0aGUgZHVzdC4KICAgICAtIFJlcGxhY2UgZXh0ZXJuIGlubGluZSB3aXRoIHN0YXRpYyBpbmxpbmUuCiAgICAgLSBGaXggcmV0dXJuIHZhbHVlIG9mIHN0cm5jcHkuCiAgICAgLSBSZW1vdmUgYSBidW5jaCBtb3JlICIkMSIgY2xvYmJlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDViNzI5ZmIzYmQ5OGY0OTg1NWQ2YmZjNjU3YzNmYmFlOTVmMmFkYzIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDQgMTc6MzE6MjIgMjAwNyArMDIwMAoKICAgIEZpeCBkb19ib290bV9saW51eCgpIHNvIHRoYXQgbXVsdGktZmlsZSBpbWFnZXMgd2l0aCBGRFQgYmxvYiBib290LgoKICAgIEZpeCBpbmNvcnJlY3QgYmxvYiBhZGRyZXNzIGNhbGN1bGF0aW9uIGluIGRvX2Jvb3RtX2xpbnV4KCkgdGhhdCBwcmV2ZW50cwogICAgYm9vdGluZyB0aGUga2VybmVsIGZyb20gYSBtdWx0aS1maWxlIGltYWdlIChrZXJuZWwgKyBpbml0cmQgKyBibG9iKS4KCiAgICBBbHNvLCBtYWtlIG1pbm9yIHVwZGF0ZXMgdG8gdGhlIFUtQm9vdCdzIG91dHB1dCBhbmQgdG8gdGhlIGNvZGluZyBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDA0MWEyNTU0YWQ2MTllODBkY2U1MjBjMWEzMzIxMGFmZmNiNmEzZjIKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeS5qZW5uZWpvaG5AZnJlZW5ldC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDoyOTowNCAyMDA3ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNpbDY4MCBJREUgY29udHJvbGxlci4KCiAgICBvIGFkZCBkcml2ZXJzL3NpbDY4MC5jIHRvIHN1cHBvcnQgdGhlIFNpbDY4MCBJREUtY29udHJvbGxlci4KICAgIG8gZHJpdmVycy9NYWtlZmlsZTogYWRkIHNpbDY4MC5vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgoKY29tbWl0IGU3OTAyMTIyM2JjMzM5ZGY2NTVlMzYwNjQ1YTUyYzQ1N2E3NGIwNjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0Nzo0MCAyMDA3IC0wNjAwCgogICAgYm9vdG0vZmR0OiBPbmx5IHByb2Nlc3MgdGhlIGZkdCBpZiBhbiBmZHQgYWRkcmVzcyB3YXMgcHJvdmlkZWQKCiAgICBCb2FyZHMgd2l0aCBDT05GSUdfT0ZfTElCRkRUIGVuYWJsZWQgYXJlIG5vdCBhYmxlIHRvIGJvb3Qgb2xkLXN0eWxlCiAgICBrZXJuZWxzIHVzaW5nIHRoZSBib2FyZCBpbmZvIHN0cnVjdHVyZSAoaW5zdGVhZCBvZiBwYXNzaW5nIGEgZGV2aWNlIHRyZWUpCiAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdGhlIG9sZCBzdHlsZSBib290aW5nIHRvIGJlIHVzZWQgaWYgdGhlIGZkdCBhcmd1bWVudAogICAgd2FzIG5vdCBwYXNzZWQgdG8gJ2Jvb3RtJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjI4MTdhODRjMmU5YmVhMmM1ZGZjMDg0YmNlMmYyZDI1NjNhYzQzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDY6MjMgMjAwNyAtMDYwMAoKICAgIE1pZ3JhdGUgNXh4eCBib2FyZHMgZnJvbSBDT05GSUdfT0ZfRkxBVF9UUkVFIHRvIENPTkZJR19PRl9MSUJGRFQKCiAgICBBZmZlY3RzIGJvYXJkczogaWNlY3ViZSAobGl0ZTUyMDApLCBqdXBpdGVyLCBtb3Rpb25wcm8sIHRxbTUyMDAKCiAgICBUZXN0ZWQgb246IGxpdGU1MjAwYgoKICAgIE5vdGU6IHRoZSBmaXh1cCBmdW5jdGlvbnMgaGF2ZSBub3QgYmVlbiBtb3ZlZCB0byBhIGNvbW1vbiBwbGFjZS4gIFRoaXMKICAgIHBhdGNoIGlzIHRhcmdldGVkIGZvciBpbW1lZGlhdGUgbWVyZ2luZyBhcyBpbiBzb2x2ZXMgYSBidWlsZCBpc3N1ZSwgYnV0CiAgICB0aGUgZmluYWwgbmFtZS9sb2NhdGlvbiBvZiB0aGUgZml4dXBzIGlzIHN0aWxsIHN1YmplY3QgdG8gZGViYXRlLiAgSQogICAgcHJvcG9zZSB0byBtZXJnZSB0aGlzIG5vdywgYW5kIG1vdmUgdGhlIGZpeHVwcyBpbiB0aGUgbmV4dCBtZXJnZSB3aW5kb3cKICAgIHRvIGJlIHVzYWJsZSBieSBhbGwgdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNDFiYjc2ZTk0MTkyOWY1NGE3MzIwNmZiMTMyZjdhNGMyNzU1NDNhMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ2OjE3IDIwMDcgLTA2MDAKCiAgICBsaWJmZHQ6IGFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiBmZHRfZmluZF9hbmRfc2V0cHJvcCgpCgogICAgR2l2ZW4gdGhlIHBhdGggdG8gYSBub2RlLCBmZHRfZmluZF9hbmRfc2V0cHJvcCgpIGFsbG93cyBhIHByb3BlcnR5IHZhbHVlCiAgICB0byBiZSBzZXQgZGlyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDgwNzY3YTZjZWFkOTk5MGQ5ZTc3ZTYyYmU5NDc4NDNjMmM3MmY0NjkKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgU2VwIDUgMTY6MDQ6NDEgMjAwNyArMDEwMAoKICAgIENoYW5nZWQgQVBJIG5hbWUgdG8gY29sb3VyZWRfbGVkLmgKICAgIFJlbW92ZWQgY29kZSB1c2luZyBkZXByZWNhdGVkIGlmZGVmIENPTkZJR19CT09UQklORlVOQwogICAgVGlkaWVkIG90aGVyIGNwdS9hcm05MjB0L3N0YXJ0LlMgY29kZQoKY29tbWl0IDU2YTkyNzA1MjFiYWFhMDBlMTI2MzlhOTc4MzAyYTY3ZjYxZWYwNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDMwIDE2OjE4OjE4IDIwMDcgLTA1MDAKCiAgICBGaXggVUxJIFJUQyBzdXBwb3J0IG9uIE1QQzg1NDQgRFMKCiAgICBUaGUgUlRDIG9uIHRoZSBNMTU3NSBVTEkgY2hpcHNldCByZXF1aXJlcyBhIGR1bW15IHJlYWQgYmVmb3JlCiAgICB3ZSBhcmUgYWJsZSB0byB0YWxrIHRvIHRoZSBSVEMuICBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgYWRkaW5nIGEKICAgIHNlY29uZCBtZW1vcnkgcmVnaW9uIHRvIHRoZSBQSEIgdGhlIFVMSSBpcyBvbiBhbmQgcmVhZCBmcm9tIGl0LgoKICAgIFRoZSBzZWNvbmQgcmVnaW9uIGlzIGFkZGVkIHRvIG1haW50YWluIGNvbXBhdGlhYmlsdHkgd2l0aCBMaW51eCdzCiAgICB2aWV3IG9mIHRoZSBQQ0kgbWVtb3J5IG1hcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3NWU4OWU5YjU3MTRkYjJiMGU4MDA3NDA3MWRmYmRkNmY1OTQ4OGEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDAxOjU4OjQ4IDIwMDcgLTA1MDAKCiAgICBmdF9ib2FyZF9zZXR1cCB1cGRhdGUgODV4eC84Nnh4IG9mIHBjaS9wY2llIGJ1cy1yYW5nZSBwcm9wZXJ0eS4KCiAgICBwY2llIGlzIG5vdyBkaWZmZXJlbnRpYXRlZCBmcm9tIHBjaS4gIEFkZCA4NjQxIGJ1cy1yYW5nZSB1cGRhdGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWY1YzNkMzcyMGU3NzdhNTcyZGNkYzhhZjIwMDhiNDRjNzI0Mzg4NQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNjoxODozOCAyMDA3ICswMTAwCgogICAgQWRkIGNvbG91cmVkIGxlZCBpbnRlcmZhY2UgZm9yIEFSTSBib2FyZHMuCiAgICBVc2UgaXQgaW4gY3B1L2FybTkyMHQvc3RhcnQuUyB0byBpbmRpY2F0ZSBVLUJvb3QgY29kZSBoYXMgYmVlbiBlbnRlcmVkLgoKY29tbWl0IDc0NjJmZTBkNWE5ZDQwY2RlMDgzZmIxYTNjZDczOTExOTk2YjVlY2IKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6NDk6MjggMjAwNyArMDEwMAoKICAgIE1vdmUgaW5jbHVkZS9sZWQuaCB0byBib2FyZC9hdDkxcm05MjAwZGsKCmNvbW1pdCA2ZTRiZjliMjRlNTdjMTVhYmM2NTQyZTY4NWQwNjM4MGJjNjRhZjI3CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjI1OjUxIDIwMDcgKzAxMDAKCiAgICBSYW4gTGluZGVudCBvbiBkcml2ZXJzL2F0NDUuYwoKY29tbWl0IDU1N2FiODlkMjk0ZjA4ZGQ1MzJmMjFkMTk4NjFiNDAwOTMyMDBhMzMKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6MjM6NTAgMjAwNyArMDEwMAoKICAgIFJlbmFtZSBDT05GSUdfQ01EX01VWCB0byBDT05GSUdfQ01EX0FUOTFfU1BJTVVYCgpjb21taXQgODFiNzNkZWMxNmZkMTIyNzM2OWExOTFlNzI1ZTEwMDQ0YTlkNTZiOApBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDMxIDE1OjIxOjQ2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IChSZS0pRW5hYmxlIENPTkZJR19QQ0lfUE5QIG9uIEFNQ0MgNDQwRVB4IFNlcXVvaWEKCiAgICBUaGUgNDQwRVB4IGhhcyBhIHByb2JsZW0gd2hlbiB0aGUgUENJX0NBQ0hFX0xJTkVfU0laRSByZWdpc3RlciBpcwogICAgc2V0IHRvIG5vbi16ZXJvLCBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBNUk0gKG1lbW9yeS1yZWFkLQogICAgbXVsdGlwbGUpIGNvcnJlY3RseS4gV2Ugbm93IGFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBjb25maWd1cmUKICAgIHRoaXMgcmVnaXN0ZXIgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBkZWZhdWx0IHZhbHVlCiAgICBvZiA4IGNhbiBiZSBvdmVycmlkZGVuLgoKICAgIEhlcmUgdGhlIGRldGFpbHMgb2YgdGhpcyBwYXRjaDoKCiAgICBvIGRyaXZlcnNfcGNpX2F1dG8uYzogaW50cm9kdWNlIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIGFsbG93CiAgICAgIGJvYXJkLXNwZWNpZmljIHNldHRpbmdzLiBBcyBhbiBleGFtcGxlIHRoZSBzZXF1b2lhIGJvYXJkIHJlcXVpcmVzIDAuCiAgICAgIElkZWEgZnJvbSBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+LgogICAgbyBib2FyZC9hbWNjL3NlcXVvaWEvaW5pdC5TOiBhZGQgYSBUTEIgbWFwcGluZyBhdCAweEU4MDAwMDAwIGZvciB0aGUKICAgICAgUENJIElPLXNwYWNlLiBPYnRhaW5lZCBmcm9tIFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4uCiAgICBvIGluY2x1ZGUvY29uZmlncy9zZXF1b2lhLmg6IHR1cm4gQ09ORklHX1BDSV9QTlAgYmFjayBvbiBhbmQgc2V0CiAgICAgIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIDAuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjAxNzQ3NDZjNjY4YjMwOTM3OGE5MTQ4OGRkZWQ4OThlOTU1M2VhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTA6MDE6NTEgMjAwNyArMDIwMAoKICAgIEZpeCBURlRQIE9BQ0sgY29kZSBmb3Igc2hvcnQgcGFja2V0cy4KCiAgICBUaGUgb2xkIGNvZGUgaGFkIGEgbG9vcCBsaW1pdCBvdmVyZmxvdyBidWcgd2hpY2ggY2F1c2VkIGEgc2VtaS0KICAgIGluZmluaXRlIGxvb3AgZm9yIHNtYWxsIHBhY2tldHMsIGJlY2F1c2UgaW4gImk8bGVuLTgiLCAiaSIgd2FzIHNpZ25lZCwKICAgIGJ1dCAibGVuIiB3YXMgdW5zaWduZWQsIGFuZCAibGVuLTgiIGJlY2FtZSBhIGh1Z2UgbnVtYmVyIGZvciBzbWFsbAogICAgdmFsdWVzIG9mICJsZW4iLgoKICAgIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHdoaWNoIHJlcGxhY2VzIGJyb2tlbiBjb21taXQgOGYxYmMyODQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OTZkZDEzMDdjZDhlNzNhMTBlOWJiM2M1MTczMWJmZDZmODM3YmVlCkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxNTowMzowNSAyMDA3ICswMjAwCgogICAgUmVkdWNlIEJPT1RERUxBWSB2YXJpYWJsZSB0byAxIHNlY29uZCBieSBkZWZhdWx0IGZvciBTVEsxMDAyCgogICAgU2lnbmVkLW9mZi1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4OGI2ZTFjYmY5YThhZTJhMzRmYjYwMmY3OGExYmY0ZTY2OTJiNmEKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE1OjAzOjA0IDIwMDcgKzAyMDAKCiAgICBSZW1vdmUgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyBhcm91bmQgTUFDIGFkZHJlc3MgZm9yIFNUSzEwMDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmYxM2FjOGM3YmJlYmIyMzhlMzM5NTkyZGU3NjVjNTQ2ZGJhMTA3MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMTQ6NDI6MTUgMjAwNyArMDIwMAoKICAgIEJhY2tvdXQgY29tbWl0IDhmMWJjMjg0IGFzIGl0IGNhdXNlcyBURlRQIHRvIGZhaWwuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOTAwZmJmMjU1YWNiYThiOTRmYjQ0MmExNjQwOGVhODVhMWQ0NmE2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAwMjoyNjoxNyAyMDA3IC0wNTAwCgogICAgUmV2ZXJ0ICJGaXggTVBDODU0NERTIFBDSWUzIHNjc2kuIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTQ2OGU2ODAuCiAgICBDb21taXQgMTZlMjNjM2Y1ZGEgcmVtb3ZpbmcgYWxsb2NhdGlvbiBvZiBQQ1NSQkFSIGlzIHN1ZmZpY2llbnQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjFiYzI4NDA4ZGVkMjEzNDE4ZDliYzA3ODBjN2Q4ZmI4YTAzNzc0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgQXVnIDI5IDE4OjI2OjI0IDIwMDcgLTA2MDAKCiAgICB0ZnRwOiBkb24ndCBpbXBsaWNpdHkgdHJ1c3QgdGhlIGZvcm1hdCBvZiByZWNldmllZCBwYWNrZXRzCgogICAgVGhlIFRGVFAgT0FDSyBjb2RlIHRydXN0cyB0aGF0IHRoZSBpbmNvbWluZyBwYWNrZXQgaXMgZm9ybWF0ZWQgYXMKICAgIEFTQ0lJIHRleHQgYW5kIGNhbiBiZSBwcm9jZXNzZWQgYnkgc3RyaW5nIGZ1bmN0aW9ucy4gSXQgYWxzbyBoYXMgYQogICAgbG9vcCBsaW1pdCBvdmVyZmxvdyBidWcgd2hlcmUgaWYgdGhlIHBhY2tldCBsZW5ndGggaXMgbGVzcyB0aGFuIDgsIGl0CiAgICBlbmRzIHVwIGxvb3Bpbmcgb3ZlciAqYWxsKiBvZiBtZW1vcnkgdG8gZmluZCB0aGUgJ2Jsa3NpemUnIHN0cmluZy4KCiAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgcHJvYmxlbSBieSBmb3JjaW5nIHRoZSBwYWNrZXQgdG8gYmUgbnVsbAogICAgdGVybWluYXRlZCBhbmQgdXNpbmcgc3Ryc3RyKCkgdG8gc2VhcmNoIGZvciB0aGUgc3ViIHN0cmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDQ2MjU3NjRjYzkzY2U4YTYxNjI1YWMxOWQ3ZmUyYTJjZWVlODE0MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxNjozMToxOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgbHdtb241IGRlZmF1bHQgZW52aXJvbm1lbnQgdG8gc3VwcG9ydCBMaW51eCBSVEMKCiAgICBUaGUgTGludXggUENGODU2MyBSVEMgZHJpdmVyIGRvZXNuJ3QgZG8gYXV0b3Byb2JpbmcsIHNvIHdlIG5lZWQKICAgIHRvIHN1cHBseSB0aGUgUlRDIEkyQyBhZGRyZXNzIGFzIGJvb3RsaW5lIHBhcmFtZXRlci4gVGhpcyBwYXRjaAogICAgYWRkcyBzdXBwb3J0IGZvciB0aGlzIHJ0YyBwcm9iaW5nIHBhcmFtZXRlciB0byB0aGUgYm9vdGFyZ3M6CgogICAgInJ0Yy1wY2Y4NTYzLnByb2JlPTAsMHg1MSIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwMmE1YzQwYWUzN2FiOTY1YTRlMjQwODU0ZmRhZmZiNTEzMjhhNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjkgMDk6MDY6MDUgMjAwNyAtMDUwMAoKICAgIHNiYzg2NDE6IHJlbW92ZSB1bnVzZWQgT0ZfRkxBVF9UUkVFX01BWF9TSVpFCgogICAgdGhpcyBoYWQgc2xpcHBlZCB0aHJvdWdoIHRoZSBjcmFja3MsIHNpbmNlIHRoZSBzYmMgYm9hcmQgd2FzIGFkZGVkCiAgICBhZnRlciBJIHdyb3RlIHRoZSBvcmlnaW5hbCBwYXRjaCB0byByZW1vdmUgYWxsIHRoZXNlIHN5bWJvbHMsIGFuZAogICAgYmVmb3JlIGl0IHdhcyBtZXJnZWQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNWJkZWQzYzg4ZTQ4YWU2NDhhNzVkMzU3ZGM4MWE4MjU1ZmE4MWYxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxNDowNTozMCAyMDA3ICswMjAwCgogICAgQWRkIG1paV9pbml0KCkgcHJvdG90eXBlCgogICAgdG8gZ2V0IHJpZCBvZiBhICpsb3QqIG9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmQxZjIzYWExZTc0ZTRhOGY4ZmZhNjdmMjQ2ZWI5OGM1MjJkZmQ3ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTM6MzU6MDMgMjAwNyArMDIwMAoKICAgIERpc2FibGUgbmV0d29yayBzdXBwb3J0IG9uIGNtaV9tcGM1eHggYm9hcmQKCiAgICAuLmJlY2F1c2UgaXQgY2F1c2VkIGNvbXBpbGVyIGVycm9ycyBhbmQgdGhlcmUgc2VlbXMgdG8gYmUgbm8KICAgIGJvYXJkIG1haW50YWluZXIgdG8gdGFrZSBjYXJlIG9mIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NDY4ZTY4MDRiN2UyNWIwZjZmNTJlNTNmNDdiY2UzMTc1NDAwYTE2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEF1ZyAyMCAwOTo0NDowMCAyMDA3IC0wNTAwCgogICAgRml4IE1QQzg1NDREUyBQQ0llMyBzY3NpLgoKICAgIDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCiAgICBUaGUgcHJvYmxlbSBpcyBwY2lhdXRvX3NldHVwX2RldmljZSgpIGdldHRpbmcgY2FsbGVkIGZyb20gZnNsX3BjaV9pbml0LmMKICAgIGlzIGFsbG9jYXRpbmcgbWVtb3J5IHNwYWNlIGl0IGRvZXNuJ3QgbmVlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRiZjRhYmI4YTRlOTk1NTU1NmIxMjBhMWFhZmEzMGMwM2U3NDAzMmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIxIDA5OjM4OjU5IDIwMDcgLTA1MDAKCiAgICA4NTQ4Y2RzIGZpeGVzCgogICAgUmVzdG9yZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTIGRlZmluaXRpb24gd2hpY2ggY29udGFpbnMgdGhlCiAgICBjb3JyZWN0IGNvbnNvbGVkZXYgbmVlZGVkIGZvciBsaW51eCBib290LgogICAgU3RhbmRhcmRpemUgb24gZmR0e2ZpbGUsYWRkcn0gdmFyIHRvIGhvbGQgZHRiIGZpbGUgbmFtZS4KCiAgICBTZXQgUENJIGluYm91bmQgbWVtb3J5IHJlZ2lvbiBmcm9tIENGR19NRU1PUllfe0JVUyxQSFlTfS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhMWFjNDE5ZmEwZDJkMjNkZGQwOGJkNjFkMTY4OTZhOWYzM2M5MzMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIzIDE1OjIwOjU0IDIwMDcgLTA0MDAKCiAgICBFbmFibGUgTDIgY2FjaGUgZm9yIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBUaGUgTDIgY2FjaGUgc2l6ZSBpcyA1MTJLQiBmb3IgODU2OCwgcHJpbnQgb3V0IHRoZSBjb3JyZWN0IGluZm9ybWFpdG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTRjNDdmZGFmMTRjYjI5ZmEzZmI0ZDRkYTJlZmRkOTZjODAzYjQ2YgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjIgMTc6NTQ6NDkgMjAwNyArMDgwMAoKICAgIFJlbW92ZSB0aGUgYmlvcyBlbXVsYXRvciBiaW5hcnkgZmlsZXMgZnJvbSBNQUkgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDhkNzVmOWM4N2M5ZWI1YjNhNDMyMTlkMDUwNmQzZTk3OWExM2YKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIxIDE3OjAwOjE3IDIwMDcgLTA1MDAKCiAgICBzdXBwb3J0IGJvYXJkIHZlbmRvci1jb21tb24gbWFrZWZpbGVzCgogICAgaWYgYSBib2FyZC8kKFZFTkRPUikvY29tbW9uL01ha2VmaWxlIGV4aXN0cywgYnVpbGQgaXQuCgogICAgYWxzbyBhZGQgdGhlIGZpcnN0IHN1Y2ggY2FzZSwgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9NYWtlZmlsZSwgdG8KICAgIGhhbmRsZSBidWlsZGluZyBib2FyZC1zaGFyZWQgRUVQUk9NLCBQSVhJUywgYW5kIE1EUy1QSUIgY29kZSwgYXMKICAgIGRpY3RhdGVkIGJ5IGJvYXJkIGNvbmZpZ3VyYXRpb24uCgogICAgdGh1c2x5IGdldCByaWQgb2YgYWx0ZXJuYXRlIGJ1aWxkIGRpciBlcnJvcnMgc3VjaCBhczoKCiAgICBGQVRBTDogY2FuJ3QgY3JlYXRlIC93b3JrL3dkL3RtcC91LWJvb3QtcHBjL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy8uLi9jb21tb24vcHEtbWRzLXBpYi5vOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CgogICAgYnkgcHV0dGluZyB0aGUgY29tbW9uLyBta2RpciBjb21tYW5kIGluIGl0cyBwcm9wZXIgcGxhY2UgKHRoZSBjb21tb24KICAgIE1ha2VmaWxlKS4gQ29tbW9uIGJpdHMgZnJvbSBleGlzdGluZyBpbmRpdmlkdWFsIGJvYXJkIE1ha2VmaWxlcyBoYXZlCiAgICBiZWVuIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjhmMjA3NTI3MTJkYzFjZGJkODZmNDdlM2JkNmUzNWY4MWM4M2ZkCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTU6NTI6MzMgMjAwNyArMDIwMAoKICAgIEZpeDogVEZUUCBpcyBub3Qgd29ya2luZyBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMKCiAgICBURlRQIGRvZXMgbm90IHdvcmsgYW55bW9yZSBhZnRlciBtdWx0aWNhc3QgdGZ0cAogICAgcGF0Y2ggd2FzIGFwcGxpZWQgb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zLgogICAgVGhpcyBwYXRjaCBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgNWY0NzA5NDg1NzA1MjZlOTE4NmYwNTNhMzAwM2RhNzcxOTYwNGU5MApBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE1OjUwOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggTUFDIGFkZHJlc3Mgc2V0dGluZyBpbiBETTkwMDAgZHJpdmVyLgoKICAgIFRoZSBsb2dpYyB0byBjaGVjayBpZiB0aGVyZSBpcyBhIGNvcnJlY3QgTUFDIGFkZHJlc3MgaW4gdGhlIERNOTAwMAogICAgRUVQUk9NLCBhZGRlZCBpbiB0aGUgbGFzdCBwYXRjaCwgaXMgd3JvbmcuIE5vdyB0aGUgTUFDIGFkZHJlc3MgaXMKICAgIGFsd2F5cyB0YWtlbiBmcm9tIHRoZSBlbnZpcm9ubWVudCwgZXZlbiBpZiBhIHN1aXRhYmxlIE1BQyBpcyBwcmVzZW50CiAgICBpbiB0aGUgRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDRhODUyN2VmMDg2ZWM3Yzg5ZjQwNjc0ZWYwMjRhZTZmOTg4YTYxNGEKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxMjo0MDozNCAyMDA3ICswMjAwCgogICAgTVBDNXh4eDogZml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MgaW4gVVNCIGNvZGUKCiAgICBGaXggdGhlIGZvbGxvd2luZyB3YXJuaW5nczoKICAgIC0gdXNiLmM6eHg6IHdhcm5pbmc6IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzbid0IGEgcHJvdG90eXBlCiAgICAtIHVzYl9vaGNpLmM6eHh4OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ19fZnN3YWIzMicgbWFrZXMgaW50ZWdlcgogICAgICBmcm9tIHBvaW50ZXIgd2lodG91dCBhIGNhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3Jhc2VAdHFzLmRlPgoKY29tbWl0IDE2ZTIzYzNmNWRhYjY5MzdmNTEwOTM2NTQxNjgwOGM3ZjE1YzEyMmIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDIwIDIzOjU1OjMzIDIwMDcgLTA1MDAKCiAgICBmc2xfcGNpX2luaXQgLSBSZW1vdmUgc2VsZiBQQ1NSQkFSIGFsbG9jYXRpb24KCiAgICBDUFUgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSB3YXMgYmVpbmcgd2FzdGVkIGJ5IGFsbG9jYXRpbmcgYQogICAgUENTUkJBUiBQQ0kgaW5ib3VuZCByZWdpb24gdG8gaXQncyBtZW1vcnkgc3BhY2UuCgogICAgQXMgYSBydWxlLCBQQ1NSQkFSIHNob3VsZCBiZSBsZWZ0IGFsb25lIHNpbmNlIGl0IGRvZXMgbm90IGFmZmVjdAogICAgdHJhbnNhY3Rpb25zIGZyb20gc2VsZiBhbmQgb3RoZXIgbWFzdGVycyBtYXkgaGF2ZSBjaGFuZ2VkIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGU3MDBjZTAzYTIzYmIxOTIxMTQ5YmM3NzAwOGFjZTcxMDNkNTI4OQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gQXVnIDIwIDEzOjU2OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbiBpbmNsdWRlL3MzYzI0MTAuaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlICJ0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdWN0aW9uIHJldHVybiB0cHllIgogICAgd2FybmluZyBmb3IgaW5jbHVkZS9zM2MyNDEwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5YmI4YjIwOWVkMjA1OGE1NzU2ZWNiZWI1NDRjMDY3ZTQ0YTQyYWVhCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAwNzowOTowNSAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGZvciBvbWFwMjQyMGg0X2NvbmZpZy4KCiAgICBvbWFwMjQyMGg0IHN3aXRjaGVkIHRvIGNmaSwgc28gcmVtb3ZlIG9sZCAoYWxyZWFkeSBkaXNhYmxlZCkgZmxhc2guYwogICAgYW5kIGZsYXNoX3Byb2JlKCkgY2FsbHMgaW4gZW52X2ZsYXNoLmMuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgM2JiMzQyZmM4NWQ3OWRiYjZiOGMyMDM5ZTdjZGNkZGM4MmI4ZDkwZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTQ6MzQ6MTQgMjAwNyAtMDUwMAoKICAgIGZkdDogcmVtb3ZlIHVudXNlZCBPRl9GTEFUX1RSRUVfTUFYX1NJWkUgcmVmZXJlbmNlcwoKICAgIGFuZCBtYWtlIHNvbWUgbWlub3IgY29ycmVjdGlvbnMgdG8gdGhlIEZEVCBwYXJ0IG9mIHRoZSBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YWYyZWViMWU5OWMyZGNjNTg0ZDRjNWFiN2ZjYWUzMGEzMjVmNGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAwMTozMjowNSAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhODYxNTU4YzY1ZjY1ZjFjZjEzMDJmM2EzNWU5ZGI3Njg2YjllMWEzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgQXVnIDI4IDE3OjQwOjMzIDIwMDcgKzAyMDAKCiAgICBbVUMxMDFdIEZpeDogaWYgbm8gQ0YgaW4gdGhlIGJvYXJkLCBVLUJvb3QgcmVzZXRzIHNvbWV0aW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBmOTg5ODRjYjE5NGJiMzRkYmUxZGI5NDI5ZDNiNTExMzNhZjMwZDA3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgQXVnIDI4IDE3OjM5OjE0IDIwMDcgKzAyMDAKCiAgICBJREU6CS0gbWFrZSBpZGVfaW5iICgpIGFuZCBpZGVfb3V0YiAoKSAid2VhayIsIHNvIGJvYXJkcyBjYW4KCSAgICAgIGRlZmluZSB0aGVyZSBvd24gSS9PIGZ1bmN0aW9ucy4KCSAgICAgIChOZWVkZWQgZm9yIHRoZSBwY3M0NDBlcCBib2FyZCkuCgkgICAgLSBUaGUgZGVmYXVsdCBJL08gRnVuY3Rpb25zIGFyZSBhZ2FpbiA4IEJpdCBhY2Nlc3Nlcy4KCSAgICAtIEFkZGVkIENPTkZJR19DTURfSURFIGZvciB0aGUgcGNzNDQwZXAgQm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMmMwNWZkMTI1NzQ0OTgxZTVmMjgyOGQyNGU2NmNjYzIwYTc3ZDI1ZApBdXRob3I6IFNlbWloIEhhemFyIDxzZW1paC5oYXphckBpbmRlZmlhLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAxOTowMDowMSAyMDA3ICswMzAwCgogICAgQVZSMzI6IENoYW5nZSBwcm90b3R5cGUgb2YgbWVtc2V0CgogICAgU2lnbmVkLW9mZi1ieTogU2VtaWggSGF6YXIgPHNlbWloLmhhemFyQGluZGVmaWEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWMwMmRlZmMyOWI1Nzk0NWI2MDA3MTRjZjYxZGRmZDAyYjAyZmIxNApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJU2F0IEF1ZyAyNSAwNTowNzoxNiAyMDA3ICswMjAwCgogICAgUE9TVDogbGltaXQgbWVtb3J5IHRlc3QgYXJlYSB0byBub3QgdG91Y2ggZ2xvYmFsIGRhdGEgYW55bW9yZQoKICAgIEFzIGV4cGVyaWVuY2VkIG9uIGx3bW9uNSwgb24gc29tZSBib2FyZHMgdGhlIFBPU1QgbWVtb3J5IHRlc3QgY2FuCiAgICBjb3JydXB0IHRoZSBnbG9iYWwgZGF0YSBidWZmZXIgKGJkKS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlCiAgICBieSBjaGVja2luZyBhbmQgbGltaXRpbmcgdGhpcyBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NWUxYTg0ZDQ4M2UzNmJlMTBlMjA2ZTUzOWIwMjhjNDg4OWUxMTU4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDI0IDE1OjQxOjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBSVEMgUE9TVCB0ZXN0IHRvIGx3bW9uNSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgU2luY2UgdGhpcyBSVEMgUE9TVCB0ZXN0IGlzIHRha2luZyBxdWl0ZSBhIHdoaWxlIHRvIGNvbXBsZXRlCiAgICBpdCdzIG9ubHkgaW5pdGlhdGVkIHVwb24gc3BlY2lhbCBrZXlwcmVzcyBzYW1lIGFzIHRoZSBjb21wbGV0ZQogICAgbWVtb3J5IFBPU1QuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3YmZhNjIwMDM3YTZkMjIxMDE1OTM4NzU3MWJkZjkzYWEzMmMxNjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjQgMTU6MTk6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEdQSU8gc2lnbmFsIGZvciB3YXRjaGRvZyB0cmlnZ2VyaW5nIG9uIGx3bW9uNQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMjVkZDhmYzI1ZTljYTM2OTVkYjk5NmEyNTdkOWJhNGRhYjQxNGRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIzIDExOjAyOjM3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBzdXBwb3J0IGZvciAybmQgSTJDIEVFUFJPTSBvbiBsd21vbjUgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIDJuZCBFRVBST00gKEFUMjRDMTI4KSBvbiB0aGUgbHdtb241CiAgICBib2FyZC4gTm93IHRoZSAiZWVwcm9tIiBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIHJlYWQvd3JpdGUgZnJvbS90byB0aGlzCiAgICBkZXZpY2UuIEFkZGl0aW9uYWxseSBhIG5ldyBjb21tYW5kIHdhcyBhZGRlZCAiZWVwcm9td3AiIHRvIGVuLS9kaXNhYmxlCiAgICB0aGUgd3JpdGUtcHJvdGVjdCBvZiB0aGlzIDJuZCBFRVBST00uCgogICAgVGhlIDFzdCBFRVBST00gaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgd3JpdGUtcHJvdGVjdCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNjRmYjMwZTRjNTk3NjAwN2Q1NmZjMTc4OWM3YTA2NjYwODJiNTM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDIyIDA4OjU2OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB1bnVzZWQgb3B0aW9uIENGR19JTklUX1JBTV9PQ00KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2FkNjM4Nzg3MzdhNWEyYjFlNjA4MjViZjBhN2Q2MDFkN2E2OTVlNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNjoyNzo1NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbWF0cml4IGtiZCBzdXBwb3J0IHRvIGx3bW9uNSBib2FyZCAoNDQwRVB4IGJhc2VkKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbWF0cml4IGtleWJvYXJkIG9uIHRoZSBsd21vbjUgYm9hcmQuCiAgICBTaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gaW4gdGhlIGRzUENJIGlzIGtpbmQgb2YgY29tcGF0aWJsZSB3aXRoIHRoZQogICAgIm9sZCIgbHdtb24gYm9hcmQsIG1vc3Qgb2YgdGhlIGNvZGUgaXMgY29waWVkIGZyb20gdGhlIGx3bW9uCiAgICBib2FyZCBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNlNjZjMDc4MDAzNjA3YTdkMWQyMTRjMTVhNWYyNjJiYzFiNDAzMmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDE5IDEwOjI3OjM0IDIwMDcgKzAyMDAKCiAgICBGaXggc29tZSBidWlsZCBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwNTY3NTczNWVmNzdkYzIzYjVlMGViNzgyYmFkMWZmNDc3YjU1ZTg2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAyMjowMDozOCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCA3OWYyNDBmN2VjYzA1MDZiNDNhYzUwZDFlYTQwNWZmNjU0MGQ0ZDU3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1MjozOSAyMDA3IC0wNTAwCgogICAgbGliX3BwYzogbWFrZSBib2FyZF9hZGRfcmFtX2luZm8gd2VhawoKICAgIHBsYXRmb3JtcyB3aXNoaW5nIHRvIGRpc3BsYXkgUkFNIGRpYWdub3N0aWNzIGluIGFkZGl0aW9uIHRvIHNpemUsCiAgICBjYW4gZG8gc28sIG9uIG9uZSBsaW5lLCBpbiB0aGVpciBvd24gYm9hcmRfYWRkX3JhbV9pbmZvKCkKICAgIGltcGxlbWVudGF0aW9uLgoKICAgIHRoaXMgY29uc2VxdWVudGx5IGVsaW1pbmF0ZXMgQ09ORklHX0FERF9SQU1fSU5GTy4KCiAgICBUaGFua3MgdG8gU3RlZmFuIGZvciB0aGUgaGludC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxNWI1YmQ1YjE4NTY5OTE3YzNlMDRiOTc1NzUxMWU2ZWQyM2I5ZjYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMTI6NDM6NDQgMjAwNyArMDkwMAoKICAgIFBDSV9SRUFEX1ZJQV9EV09SRF9PUDogRml4ICp2YWwgdW5pbml0aWFsaXplZCBidWcKCiAgICBUaGlzIHBhdGNoIGhhcyBiZWVuIHNlbnQgb246CiAgICAtIDYgSnVuIDIwMDcKCiAgICBNYW55IHVzZXJzIG9mIFBDSSBjb25maWcgcmVhZCByb3V0aW5lcyB0ZW5kIHRvIGlnbm9yZSB0aGUgZnVuY3Rpb24KICAgIHJldCB2YWx1ZSwgYW5kIGFyZSBvbmx5IGNvbmNlcm5lZCBhYm91dCB0aGUgY29udGVudHMgb2YgKnZhbC4gQmFzZWQKICAgIG9uIHRoaXMsIHBjaV9ob3NlX3JlYWRfY29uZmlnX3tieXRlLHdvcmR9X3ZpYV9kd29yZCBzaG91bGQgaW5pdGlhbGl6ZQogICAgdGhlICp2YWwgb24gZHdvcmQgcmVhZCBlcnJvci4KCiAgICBXaXRob3V0IHRoaXMgZml4LCBmb3IgZXhhbXBsZSwgd2UnbGwgZ28gb24gc2Nhbm5pbmcgYnVzIHdpdGggdmVuZG9yIG9yCiAgICBoZWFkZXJfdHlwZSB1bmluaXRpYWxpemVkLiBUaGlzIGJyaW5ncyBtYW55IHVubmVjZXNzYXJ5IGNvbmZpZyB0cmlhbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDI2NjY3YjdmYTA1YThiZjJmYzY1ZmI5ZjMyMzBiMDJiMWExMGMzNjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMTQ6Mzc6NTIgMjAwNyArMDIwMAoKICAgIENvbGRGaXJlOiBGaXggc29tZSByZW1haW5pbmcgcHJvYmxlbXMgd2l0aCBDRkdfQ01EXwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MjgwZjZhMWM0MzI0NzYxNmI2ODIyNDY3NTE4OGU1Y2NkMTI0NjUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDE0OjMzOjAyIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YTQ0MmQzMTg2YjMxODkzYjRmNzdjNmU4MmY2M2M0NTE3YTUyMjRiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE5OjIzOjUwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjM1RVZCIFBsYXRmb3JtIGZvciBNQ0Y1MjN4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjYzFjZDU5NDE4MjdhMDRjZjVjNTFhMDdmY2M0MmU4OTQ1ODk0YWEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE3IDA5OjMwOjAwIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggdHlwbyBpbiBERFIyIHByb2dyYW1taW5nCgogICAgaW50cm9kdWNlZCBpbiB0aGUgaW1wbGVtZW50IGJvYXJkX2FkZF9yYW1faW5mbyBwYXRjaCBhcyBJIHdhcyBjbGVhbmluZyBvdXQgdGhlCiAgICBtYWdpYyBudW1iZXJzLiAgc29ycnkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNThmZTk1Nzg0ZDI1MTRmYzljMjEwMjhkYzU5ZjJiMzE5YTM1ZDgwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1MzowOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbW92ZSBmcmVlc2NhbGUgYm9hcmRzIHRvIGJvYXJkcy9mcmVlc2NhbGUKCiAgICBpbmNsdWRlcyBidWlsZCBmaXhlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhYTRhZDhkOGU3ZTk0NjgyMTk5OTBjNzg3NWQ1ZmRjOWU5NjJmNDcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjU5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgJ3ZhbDgnIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJiZWE0NmY3NmY3NjdiOTE5MDcwYjQ4MjliZjM0Yzg2YmQyMjMyNDgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjQ4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBpbXBsZW1lbnQgYm9hcmRfYWRkX3JhbV9pbmZvCgogICAgYWRkIGJvYXJkX2FkZF9yYW1faW5mbywgdG8gbWFrZSBtZW1vcnkgZGlhZ25vc3RpYyBvdXRwdXQgbW9yZQogICAgY29uc2lzdGVudC4gdS1ib290IGJhbm5lciBvdXRwdXQgbm93IGxvb2tzIGxpa2U6CgogICAgRFJBTTogIDI1NiBNQiAoRERSMSwgNjQtYml0LCBFQ0Mgb24pCgogICAgYW5kIGZvciBib2FyZHMgd2l0aCBTRFJBTSBvbiB0aGUgbG9jYWwgYnVzLCBhIGxpbmUgc3VjaCBhcyB0aGlzIGlzCiAgICBhZGRlZDoKCiAgICBTRFJBTTogNjQgTUIgKGxvY2FsIGJ1cykKCiAgICBhbHNvIHJlcGxhY2VkIHNvbWUgbWFnaWMgbnVtYmVycyB3aXRoIHRoZWlyIGVxdWl2YWxlbnQgZGVmaW5lIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTQ3Nzg1ODVkMTM4OWQ4NmQ1ODQ2ZWZlYzI5ZTVmY2U4OTI2ODBjZQpBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAxMDozNTo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogU3BsaXQgUElCIGluaXQgY29kZSBmcm9tIHBjaS5jIGFuZCBhZGQgUW9jMyBBVE0gY2FyZCBzdXBwb3J0CgogICAgVGhlIHBhdGNoIHNwbGl0IHRoZSBQSUIgaW5pdCBjb2RlIGZyb20gcGNpLmMgdG8gYSBzaW5nbGUgZmlsZSBib2FyZC9mcmVlc2NhbGUvY29tbW9uL3BxLW1kcy1waWIuYwogICAgQW5kIGFkZCBRb2MzIEFUTSBjYXJkIHN1cHBvcnQgZm9yIE1QQzgzNjBFTURTIGFuZCBNUEM4MzJYRU1EUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YWUxNThjZDg3YTRhMjU3MjJiMjc4MzUyNjFiNmZmMGZhMmFhNmE3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjA1OjExIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01NDQ1NUVWQiBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTE0MzZhODQyNjU0YThkMzkyN2QwODJhOGFlOWVlMGExMGRhNjJkNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxMzoyMDo1MCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTI1M0VWQkUgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTYwNWFhY2Q4MzI0MDk0MTk5NDAyODE2Y2M2ZDkxMjRhYmE1N2I4ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAwNTowNDozMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTI0OUVWQiBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjhlMWJkOWRhYTZkZTVlYjMzYWU0ODIyYmRhNmIwMDhjY2I0ZTllCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjMyOjA2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIEZyZWVzY2FsZSBNQ0Y1MngyIHBsYXRmb3JtcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NzA0NzBkYmY2ZjRiYjk4NjRlMGQ5N2FlZWRiYzE3YzE2N2M2ZDFjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjU1OjEwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIEVCK01DRi1FVjEyMyBwbGF0Zm9ybQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTkzZDg1OWQ5YjFmY2Q4ZWVhNTJkNTFiMDZlODZjMzhmNzIxMTFiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQ2OjM4IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogdXBkYXRlIFRBU1JFRyBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTUwNTUxMGJmNTZhOWI1NTU4MjQ4ZGQ4YjczZWM5ZDlhMTU1NmEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQ1OjUxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogdXBkYXRlIHI1MjAwIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjZmQzYzdiYzgxM2ZiMzE3YWI3YzA3ODFmMGQxODc0YjFjMDg3N2MKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDM6MjAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBpZG1yIHBsYXRmb3JtIE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY3MDY0MjRkMGJiODUxZmI1MmFmMDBjZDFjMzMwMWU5MWVlN2YyYjAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDE6MDYgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBjb2JyYTUyNzIgcGxhdGZvcm0gZm9yIE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2MTE1NjY1YjRhNjRjMTBjMDE0NDBjNTc3NDliMjY1ZTA5MDhmYTQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6Mzg6MTUgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MngyIEhlYWRlciBmaWxlcyB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODNlYzIwYmM0MzgwZWViZGRmZGU0NWRhNmUzYTY5YTkyZDRkYjIxZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOToyMToyMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1MmU3ODMwNGRjYzBhYzQ1OWMwZWExZmE1YmUyNzVjN2QxNjQyY2YKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTg6NDY6MTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IHVwZGF0ZSBjYWNoZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MTcxOTc3ZmI4ZmQ3N2NmYjY2NzY5NTNmYTlhMDU3ODljNDUwNTEzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjQwOjIwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSBoZWFkZXIgZmlsZSBjbGVhbiB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjc3YmM1NDdiYTU2MWMyNWVhMzQ0NTdlZDE3YWEwYjJmN2MyNzIzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjM5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSBVcGRhdGUgYW5kIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTAzMjdkYzU1NDFmOTQ3YzBjZjdlMzFmZWY4NmM0NzA2MTY5NjA3YQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNjozNTowMiAyMDA3IC0wNTAwCgogICAgQWRkIENPTkZJR19IQVNfRVRIMCB0byBhbGwgYm9hcmRzIHdpdGggVFNFQwoKICAgIFRoZSA4NXh4IGNvZGUgbm93IHJlbGllcyBvbiBDT05GSUdfSEFTX0VUSDAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKICAgIHRvIHVwZGF0ZSBUU0VDMSdzIGRldmljZS10cmVlIG5vZGUsIHNvIHdlIG5lZWQgdG8gYWRkIGl0CiAgICB0byBhbGwgdGhlIGJvYXJkcyB3aXRoIFRTRUNzLiAgRG8gdGhpcyBmb3IgODN4eCBhbmQgODZ4eCwgdG9vLAogICAgc2luY2UgdGhleSB3aWxsIGV2ZW50dWFsbHkgZG8gc29tZXRoaW5nIHNpbWlsYXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2NGVlOTA4YTFiNTI1ZTViYjJiNGNiZWI1YzQ0OWFkNmE0Njk2NjYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDE2IDE1OjA1OjA0IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgTVBDODU0NCBEUyBQQ0kgbWVtb3J5IG1hcAoKICAgIFRoZSBQQ0llIGJ1cyB0aGF0IHRoZSBVTEkgTTE1NzUgaXMgY29ubmVjdGVkIHRvIGhhcyBubyBwb3NzaWJsZSB3YXkgb2YKICAgIG5lZWRpbmcgbW9yZSB0aGFuIHRoZSBmaXhlZCBhbW91bnQgb2YgSU8gJiBNZW1vcnkgc3BhY2UgbmVlZGVkIGJ5IHRoZSBVTEkuCgogICAgU28gbWFrZSBpdCB1c2UgZmFyIGxlc3MgSU8gJiBtZW1vcnkgc3BhY2UgYW5kIGhhdmUgaXQgdXNlIHRoZSBzaGFyZWQgTEFXLiAgVGhpcwogICAgZnJlZSdzIHVwIGEgTEFXIGZvciBQQ0llMSBJTyBzcGFjZS4gIEFsc28gcmVkdWNlIHRoZSBhbW91bnQgb2YgSU8gc3BhY2UgbmVlZGVkCiAgICBieSBlYWNoIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGVhNTg3N2UzMWVkNjNhZGU5NDhmZDEyOTM4OTVlYzIzZmUwMTQ3MmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDE2IDExOjAxOjIxIDIwMDcgLTA1MDAKCiAgICBGaXggdXAgc29tZSBmZHQgaXNzdWVzIG9uIDg1NDREUwoKICAgIEl0IGxvb2tzIGxpa2Ugd2UgaGFkIGEgbWVyZ2UgaXNzdWUgdGhhdCBkdXBsaWNhdGVkIGEgYml0IG9mIGNvZGUKICAgIGluIGZ0X2JvYXJkX3NldHVwLglBbHNvLCB3ZSBuZWVkIHRvIHNldCBDT05GSUdfSEFTX0VUSDAgdG8gZ2V0CiAgICB0aGUgTUFDIGFkZHJlc3MgcHJvcGVybHkgc2V0IGluIHRoZSBkZXZpY2UgdHJlZSBvbiBib290IGZvciBUU0VDMQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDdiYzIwNTYwY2I5ZDNkMTg2Y2NhMjY4YzA1YzgyNzYyZThjNTVhZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MTY6MDMgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUgY2xlYW51cAoKICAgIE1pbm9yIGNsZWFudXBzIHRvIGNvbmZpcm0gdG8gdGhlIHUtYm9vdCBjb2Rpbmcgc3R5bGUuCiAgICBTb21lIGdlcm1hbiBleHByZXNzaW9ucyAtPiBlbmdsaXNoLgogICAgSENVNSBlbmZvcmNlcyBhIHVuaXF1ZSBJUCBhZHJlc3MgZm9yIGEgZ2l2ZW4gc2xvdCBpbiB0aGUgcmFjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDFlNmIwN2M2NDk2N2MxZWIyY2Q4NGZhYTRjMzJiZjJhNzY5YmM4ZWIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjE2OjAyIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81IGNsZWFudXAgZWNjL3NkcmFtIGluaXQKCiAgICBNYWtlIGVjYyBpbml0aWFsaXNhdGlvbiByb2J1c3QsIGFzIEREUjItRUNDIGVycm9ycyBtYXkgYmUgZ2VuZXJhdGVkCiAgICB3aGlsZSB6ZXJvaW5nIHRoZSBSQU0uCgogICAgUmV0dXJuIDE2IGJ5dGVzIChhIGNhY2hlbGluZSkgbGVzcyB0aGFuIHRoZSBhdmFpbGFibGUgbWVtb3J5LCBhcyB0aGUKICAgIGJvYXJkIGFuZC9vciBQUEM0NDBFUHggbWlnaHQgaGF2ZSBwcm9ibGVtcyBhY2Nlc3NpbmcgdGhlIGxhc3QgYnl0ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBkMzViNTA4YTU1NTA4NTM1YjZlODQ0NWI3MTg1ODVkMjdkZjczM2QzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjoyOTo1NiAyMDA3IC0wNTAwCgogICAgZmR0OiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgJ2JkJyB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MmJkOWVlNzc0OTA1ODhkNGRhNzg1ZDc1ODI5Y2E2M2QwMTc2YmFmCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjA2OjUwIDIwMDcgLTA1MDAKCiAgICBGaXggd2FybmluZ3MgZnJvbSBvZl9kYXRhIGNvcHkgZml4CgogICAgRm9yZ290IHRvIGNhc3Qgb2ZfZmxhdF90cmVlIHRvIHVsb25nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjEzYWZkYTc3ZDVlZWMwZjQ3ZDMwMzAyNWIwYzY2MWI3MGU0YzczCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjQ0IDIwMDcgLTA1MDAKCiAgICBEb24ndCB3YWl0IGZvciBkaXNjb25uZWN0ZWQgVFNFQ3MKCiAgICBUaGUgVFNFQyBkcml2ZXIncyBQSFkgY29kZSB3YWl0cyBhIGxvbmcgdGltZSBmb3IgYXV0b25lZ290aWF0aW9uIHRvCiAgICBjb21wbGV0ZSwgZXZlbiBpZiB0aGUgbGluayBpcyBkb3duLiAgVGhlIFBIWSBrbm93cyB0aGUgbGluayBpcwogICAgZG93biBvciB1cCBiZWZvcmUgYXV0b25lZ290aWF0aW9uIGNvbXBsZXRlcywgc28gd2UgY2FuIHNob3J0LWNpcmN1aXQKICAgIHRoZSBwcm9jZXNzIGlmIHRoZSBsaW5rIGlzIGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5NmM4M2Q0YWU0NzVhNzBlZjI2MzVjZDBlNzQ4MTc0YzQ0Yzg2MDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MzQgMjAwNyAtMDUwMAoKICAgIEZpeCBudW1lcm91cyBidWdzIGluIHRoZSA4NTY4IFVFQyBzdXBwb3J0CgogICAgQWN0dWFsbHksIGZpeGVkIGEgbGFyZ2UgYnVnIGluIHRoZSBVRUMgZm9yICphbGwqIHBsYXRmb3Jtcy4KICAgIEhvdyBkaWQgdGhpcyBldmVyIHdvcms/CgogICAgdWVjX2luaXQoKSBkaWQgbm90IGZvbGxvdyB0aGUgc3BlYyBmb3IgZXRoX2luaXQoKSwgYW5kIHJldHVybmVkCiAgICAwIG9uIHN1Y2Nlc3MuICBTd2l0Y2ggaXQgdG8gcmV0dXJuIHRoZSBsaW5rIGxpa2UgdHNlY19pbml0KCkKICAgIChhbmQgMCBvbiBlcnJvcikKCiAgICBUaGUgaW1tYXAgZm9yIHRoZSA4NTY4IHdhcyBkZWZpbmVkIGJhc2VkIG9uIE1QQzg1NjgsIHJhdGhlciB0aGFuCiAgICBDT05GSUdfTVBDODU2OAoKICAgIENPTkZJR19RRSB3YXMgb2ZmCgogICAgQ09ORklHX0VUSFBSSU1FIHdhcyBzZXQgdG8gIkZyZWVzY2FsZSBHRVRIIi4gIE5vdyBpcyAiRlNMIFVFQzAiCgogICAgRml4ZWQgYSBjb21tZW50IGFib3V0IHRoZSByYW5nZXMgZm9yIENPTkZJR19FVEhQUklNRSBpZiBUU0VDX0VORVQgaXMKICAgIGVuYWJsZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2E3OTAxM2UyYWRkYTUzMzMyZGZkMGI1MTEwNjZhODA1ZTkyOWE5ZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzoyNSAyMDA3IC0wNTAwCgogICAgRGVmaW5lIHRzZWMgZmxhZyB2YWx1ZXMgaW4gY29uZmlnIGZpbGVzCgogICAgVGhlIHRzZWNfaW5mbyBzdHJ1Y3R1cmUgYW5kIGFycmF5IGhhcyBhICJmbGFncyIgZmllbGQgZm9yIGVhY2gKICAgIGV0aGVybmV0IGNvbnRyb2xsZXIuICBUaGlzIGZpZWxkIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGVyZSBhcmUKICAgIHNldHRpbmdzLiAgU3dpdGNoIHRvIGRlZmluaW5nIFRTRUNuX0ZMQUdTIGZvciBlYWNoIGNvbnRyb2xsZXIKICAgIGluIHRoZSBjb25maWcgaGVhZGVyLCBhbmQgd2UgY2FuIGdyZWF0bHkgc2ltcGxpZnkgdGhlIGFycmF5LCBhbmQKICAgIGFsc28gc2ltcGxpZnkgdGhlIGFkZGl0aW9uIG9mIGZ1dHVyZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjNzIzODIyOTUwN2U3ZjQ3NTMzYTYxMWVhOGM1MzMxOWQyMzRjZjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MTMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBidWlsZGluZyBhbGwgYm9hcmRzIHdpdGggYSBUU0VDCgogICAgQ2hhbmdlcyB0byB0aGUgVFNFQyBkcml2ZXIgYWZmZWN0IGFsbW9zdCBhbGwgODN4eCwgODV4eCwgYW5kIDg2eHggYm9hcmRzLgogICAgTm93IHdlIGNhbiBkbyBhIE1BS0VBTEwgdGVzdCBvbiBhbGwgb2YgdGhlbSEKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBhYWY3MTZjYjBkYzY2MTRkZjU0ZWY3OGJlZDUxNDRhZmQyM2VmOApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNzozMDo1NiAyMDA3IC0wNTAwCgogICAgRml4IG9mX2RhdGEgY29weWluZyBmb3IgQ09ORklHX09GX0ZMQVRfVFJFRS11c2luZyBib2FyZHMKCiAgICBUaGUgZml4LCAiRml4IHdoZXJlIHRoZSAjaWZkZWYgQ0ZHX0JPT1RNQVBTWiBpcyBwbGFjZWQiCiAgICBuZWdsZWN0ZWQgdG8gKmFsc28qIHB1dCB0aGUgY29kZSBpbnNpZGUgdGhlIHNpbWlsYXIgI2lmZGVmCiAgICBmb3IgQ09ORklHX09GX0ZMQVRfVFJFRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzhmOWZlZjdmNDA2MDc4YzhiZjcxOTFlNjY1YTczZjc5NTE1Nzc0NgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjQ2OjQ2IDIwMDcgLTA1MDAKCiAgICBtcGM4ODVhZHM6IERvbid0IGRlZmluZSBDT05GSUdfQlpJUDIuCgogICAgYnppcDIgcmVxdWlyZXMgYSBzaWduaWZpY2FudCBjaHVuayBvZiBtYWxsb2Mgc3BhY2UsIGFuZCB0aGVyZSBpc24ndAogICAgZW5vdWdoIHJvb20gb24gbXBjODg1YWRzICh3aXRoIG9ubHkgOE1CIFJBTSkgZm9yIGJvdGggYnppcDIncyBtYWxsb2MgYXJlYQogICAgYW5kIGEgZG93bmxvYWRlZCBpbWFnZSBhdCAweDQwMDAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMDIyNzVhM2VkOGIxMTQ4ODVmNjcwMmQ2ZDU0NGQwNzgwZGZlNjg5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxNb25zdHJAc2V6bmFtLmN6PgpEYXRlOglUaHUgQXVnIDE2IDA4OjU0OjEwIDIwMDcgKzAyMDAKCiAgICBCaW9zIGVtdWxhdG9yIC0gZml4IG1pY3JvYmxhemUgdG9vbGNoYWluIHByb2JsZW0KCiAgICBtaWNyb2JsYXplIENQVSBoYXZlIHByb2JsZW0gd2l0aCBiaW9zX2VtdWxhdG9yIGNvZGUuCiAgICBNaWNyb2JsYXplIHRvb2xjaGFpbiBkb2Vzbid0IHN1cHBvcnQgUFJBR01BIFBBQ0suCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGE1YTM4ZjRmZDdlNTM2NmQ3MDZmZjZhOTg1ZjliNjcxNWRkYmM5OGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDExOjUxOjA0IDIwMDcgKzAyMDAKCiAgICBNaW5vciBDb2RpbmcgU3R5bGUgZml4OyBVcGRhdGUgQ0hBTkdFTE9HIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZmI2ZTgwYzA2ODQ5ZTMwMTNhYzVjOTM1MGQ4ZWQ5ZTUyOTY3OTkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDExOjIxOjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSAjd2FybmluZyBpbiBlc2QgYXV0b191cGRhdGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZDc4MDc0ZDJlODA2ZWRjMzgwYzE0NjRlYjllNWRmMzM1ZWNlNjVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE3OjMyOjI4IDIwMDcgKzAyMDAKCiAgICBwcGM3eHg6IFVwZGF0ZSBDUENJNzUwIGJvYXJkCgogICAgVGhpcyBzbWFsbCBDUENJNzUwIHVwZGF0ZSBleHRlbmRzIHRoZSBib2FyZCBzcGVjaWZpYyBjb21tYW5kCiAgICAic2hvd19jb25maWciIHRvIGRpc3BsYXkgdGhlIE1hcnZlbGwgc3RyYXBwaW5nIHJlZ2lzdGVycyBhbmQKICAgIGV4dGVuZHMgdGhlIFBDSSBJREUgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzhjZmY1MGVkYmE2YjE1MDhlYjE1YzJmNTNjZTk2NmFjODkxZWI5ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDo0NjoyOCAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ2hhbmdlcyBmb3IgYmlvc19lbXVsYXRvciBjb2RlIGZvciBvdGhlcnMgYXJjaGl0ZWN0dXJlCgpjb21taXQgNmUwZTIyNTNmMDM5MzQ0ZjhlYmQyNzg3Mjg1ZmRiYTkwZTY3MTRlOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDo0NTowOSAyMDA3ICswMjAwCgogICAgW0ZJWF0gUmVtb3ZlIHVudXNlZCBpbmNsdWRlIGZpbGUKCmNvbW1pdCA5ZGU0NjliZDk2MGNjMTg3MGJiNDBkNjY3MmVkNDI3MjZiOGI1MGQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDEwOjE4OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE9ubHkgZW5hYmxlIFBPU1QgRlBVIHRlc3Qgb24gU2VxdW9pYSBhbmQgbm90IFJhaW5pZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmRhMGM1YmQ0YTUzZTQwZWI0ZjdlYjcyYTRjMDUxZWNhYmFkNzgzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAwOTo1NDo1MSAyMDA3ICswMjAwCgogICAgQWRkIG1pc3NpbmcgcmFpbmllciAoUFBDNDQwR1J4KSB0YXJnZXQgdG8gTUFLRUFMTCBhbmQgTUFJTlRBSU5FUnMgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDJiYTcwMjJmNjJiYjc1OTA4Mjk2YzU4YzYzODY2ZTFkMjk0YjY5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAwOTo1MjoyOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgU2VxdW9pYS9SYWluaWVyIGJvb3RzdHJhcCBjb21tYW5kCgogICAgQXMgc3VnZ2VzdGVkIGJ5IERhdmlkIE1pdGNoZWxsLCBoZXJlIGFuIHVwZGF0ZSBmb3IgdGhlIFNlcXVvaWEvUmFpbmllcgogICAgYm9vdHN0cmFwIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1Y2M0ZTQ4MjM2NjhlODc0NTg1NDg5OWNmYWVkZDQ0ODliZWIwZWYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjM5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBlbmFibGUgbGliZmR0IGJ5IGRlZmF1bHQgb24gZnJlZXNjYWxlIGJvYXJkcwoKICAgIHRoaXMgZW5hYmxlcyBsaWJmZHQgY29kZSBieSBkZWZhdWx0IGZvciB0aGUKICAgIGZyZWVzY2FsZSBtcGM4MzEzZXJkYiwgbXBjODMyeGVtZHMsIG1wYzgzNDllbWRzLAogICAgbXBjODM0OWl0eCBhbmQgZ3AgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ZkZTllOGIyMmNmYmQ3YWY0ODkyMTQ3NThmOTgzOWEyMDY1NzZjYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1pZ3JhdGUgcmVtYWluaW5nIGZyZWVzY2FsZSBib2FyZHMgdG8gbGliZmR0CgogICAgdGhpcyBhZGRzIGxpYmZkdCBzdXBwb3J0IGNvZGUgZm9yIHRoZSBmcmVlc2NhbGUKICAgIG1wYzgzMTNlcmRiLCBtcGM4MzJ4ZW1kcywgbXBjODM0OWVtZHMsIG1wYzgzNDlpdHgsCiAgICBhbmQgZ3AgYm9hcmRzLgoKICAgIEJvYXJkcyByZW1haW4gY29tcGF0aWJsZSB3aXRoIE9GX0ZMQVRfVFJFRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZhMTZlMGRmY2M0MTE5YjQ2YWRiMWRjZTJkNmM4ZmIzYzVkMTA4ZTEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjI2IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtb3ZlIGNvbW1vbiAvbWVtb3J5IG5vZGUgdXBkYXRlIG1lY2hhbmlzbSB0byBjcHUuYwoKICAgIGFsc28gYWRkcyBjb21tb24gcHJvdG90eXBlcyB0byBpbmNsdWRlL2NvbW1vbi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGY5ZTBlOWYzMzlhZWU0Y2UzMWEzMzhkNWYyNzM1NmViNTQ1N2Y4NQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IHJlbWFpbmluZyA4MzYwIGxpYmZkdCBmaXhlcwoKICAgIFBDSSBjbG9ja3MgYW5kIFFFIGZyZXF1ZW5jaWVzIHdlcmVuJ3QgYmVpbmcgdXBkYXRlZCwgYW5kIHRoZSBjb3JlIGNsb2NrCiAgICB3YXMgYmVpbmcgdXBkYXRlZCBpbmNvcnJlY3RseS4gIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgL21lbW9yeSBub2RlIGlmCiAgICBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QgcHJpb3IgdG8gdXBkYXRlLgoKICAgIHBsdXMgc29tZSBjb3NtZXRpYyB0cmltbWluZyB0byBzaW5nbGUgbGluZSBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0YjJhYzVlZDlhYWZmOTkyMGQ0ODdiZmY4YTU5Njk2YzA4M2E1MjQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjEyIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggVUVDMi0+MSB0eXBvIGluIGxpYmZkdCBzZXR1cCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOWZhMWMzNTM2ODQ4NGQ0ZWQxMGRkY2U4YTc3OTNjMjE4NjJlM2EzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDowNSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogYWRkIE1BSU5UQUlORVIgYW5kIE1BS0VBTEwgZW50cmllcyBmb3IgdGhlIG1wYzgzMjNlcmRiCgogICAgYW5kIHJlb3JkZXIgdGhlIGV4aXN0aW5nIDgzeHggbWFpbnRhaW5lcnMgYWxwaGEuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YjRkZTkzMDlkN2EwM2FhMWRiMmU1MzkxYWI2OTYzNjMzOTFmNDYwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjE1OjA1IDIwMDcgKzAyMDAKCiAgICBbRklYXSBSZXNvbHZlIHByb2JsZW0gd2l0aCB3YXJuaW5ncwogICAgbWljcm9ibGF6ZSB0b29sY2hhaW4gZG9uJ3Qgc3VwcG9ydCBQUkFHTUEgUEFDSy4KCmNvbW1pdCBkMWVkMjhjZjM2YWI2YjFkNGM0Nzk4MDlkZTcyNTJiZjUzZDJmMmQ0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjA1OjA3IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb3JyZWN0aW9uIGNvbW1hbmQgc2V0dGluZyBmb3IgTWljcm9ibGF6ZSBib2FyZHMKCmNvbW1pdCA3YWE2M2Q4Y2QzMGFiMjBhYzJmZDFhYjg2ZTYwNDcxZGU4YjFmMWU1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjAzOjQxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb3JyZWN0aW9uIGNvbW1hbmQgZGVmaW5pdGlvbgoKY29tbWl0IDMwYjUyZGY5ZTkwNmJmMGU0NjU5MTZjMmM2YmI1MTkyYjQzOGUwYjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjU1OjM1IDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggbGluZ2VyaW5nIENGR19DTURfKiByZWZlcmVuY2VzIGluIHNiYzg2NDFkLmgKCiAgICBSZW1vdmUgYSBsZWZ0b3ZlciBpbiBuZXQvdGZ0cC5jIHdoaWxlIHdlJ3JlIGF0IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNlOTE3NzQyYjFlNDhmYWE5YmY5YTk3NTc1NDVlNTZmYjRjZmU0NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTI6MjA6NDAgMjAwNyAtMDUwMAoKICAgIE1vdmUgdGhlIE1QQzg2NDFIUENOIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODY2MjU3N2ZlMzZmZGI2YTQ0YjU1Yjk5OGQ5ZGFhYzYzOTJhNzM2YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6NDY6MjIgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBsaW5nZXJpbmcgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMgaW4gc2JjODY0MWQuaAoKICAgIFJlbW92ZSBhIGxlZnRvdmVyIGluIG5ldC90ZnRwLmMgd2hpbGUgd2UncmUgYXQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMTBmNDYzYzcxOTE3YjdhNDQ5NWMyMTAzYzIyOGI5YzE3OWFlNjRkCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjEzOjE1IDIwMDcgLTA0MDAKCiAgICBGaXggd2hlcmUgdGhlICNpZmRlZiBDRkdfQk9PVE1BUFNaIGlzIHBsYWNlZC4KCiAgICBDb21taXQgMDczZTFiNTA5OTgwY2VmZTZmNTNjMmQ3ZmJiY2QxMzVkZjFlMzkyNCAiRml4IGluaXRyZC9kdGIKICAgIGludGVyYWN0aW9uIiBwdXQgdGhlIG5ldyBjb2RlIG91dHNpZGUgb2YgdGhlICNpZiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCiAgICB3aGVuIGl0IHNob3VsZCBoYXZlIGdvbmUgaW5zaWRlIG9mIHRoZSBjb25kaXRpb25hbC4gIEFzIGEgcmVzdWx0LCBpdAogICAgYnJva2Ugbm9uLUxJQkZEVCBib2FyZCBidWlsZHMuCgogICAgQWxzbyBhZGRlZCBhIG1pc3NpbmcgIm5vdC4iIHRvIHRoZSBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMGUxOTIwOTc2NzE5NGE5N2NlYzZkOTNkYmE5ZTY0ZDFkYThkNTQ4ZQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTI6MTQ6MjMgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUtQm9hcmQgZml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNTk0ZTc5ODM4Y2U1MDc4YTkwZDBjMjdhYmIyYjJkNjFkNWY4ZThhNwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6MDY6NDUgMjAwNyAtMDUwMAoKICAgIEZpeCBtYWxsb2Mgc2l6ZSBlcnJvciBpbiBhaGNpX2luaXRfb25lLgoKICAgIFR5cGljYWxseSB0aGlzIGNhdXNlcyBzY3NpIGluaXQgdG8gY29ycnVwdCB0aGUKICAgIGRldmxpc3QgYW5kIGJyZWFrIHRoZSBjb25pbmZvIGNvbW1hbmQuCiAgICBGaXggYSBjb21waWxlciBzaXplIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzNjFhY2Q2NGZkMjUyNWMwODFiOWIyODhiMDgwNGVmZTIwOWMwZTkKQXV0aG9yOiBrc2lAa29pOC5uZXQgPGtzaUBrb2k4Lm5ldD4KRGF0ZToJVHVlIEF1ZyAxNCAxMDowMjoxNiAyMDA3IC0wNzAwCgogICAgVEkgRGFWaW5jaSAtIGZpeCB1bnN1cHBvcnRlZCAlaGh4IGZvcm1hdAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgoKY29tbWl0IGYwMWRiYjU0MjRhODE0NTNjODExOTBkZDMwZTk0NTg5MTQ2NmY2MjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE4OjQyOjM2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA3M2UxYjUwOTk4MGNlZmU2ZjUzYzJkN2ZiYmNkMTM1ZGYxZTM5MjQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MzI6NTkgMjAwNyAtMDUwMAoKICAgIEZpeCBpbml0cmQvZHRiIGludGVyYWN0aW9uCgogICAgVGhlIG9yaWdpbmFsIGNvZGUgd291bGQgd3JvbmdseSByZWxvY2F0ZSB0aGUgYmxvYiB0byBiZSByaWdodCBiZWZvcmUKICAgIHRoZSBpbml0cmQgaWYgaXQgZXhpc3RlZC4gIFRoZSBibG9iICptdXN0KiBiZSB3aXRoaW4gQ0ZHX0JPT1RNQVBTWiwKICAgIGlmIGl0IGlzIGRlZmluZWQuICBTbyB3ZSBtYWtlIHR3byBjaGFuZ2VzOgoKICAgIDEpIGZsYWcgdGhlIGJsb2IgZm9yIHJlbG9jYXRpb24gd2hlbmV2ZXIgaXRzIGFkZHJlc3MgaXMgYWJvdmUgQk9PVE1BUFNaCgogICAgMikgSWYgdGhlIGJsb2IgaXMgYmVpbmcgcmVsb2NhdGVkLCByZWxvY2F0ZSBpdCBiZWZvcmUga2JkLCBub3QgaW5pdHJkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1NGI5NzAxNzM3NjkzMDdhMTE2YmQzNDAyOGI2ZDBjMmVlYTJhNGUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDE1OjQwOjAwIDIwMDcgKzAxMDAKCiAgICBTdXBwbHkgc3BpIGludGVyZmFjZSBpbiBhdDQ1LmMKCmNvbW1pdCA0Y2U4NDZlYzU5ZjM2Yjg1ZDY2NDRhNzY5NjkwYWQzZmViNjY3NTc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE1OjEyOjAxIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBGaXggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MjlkOTU3MWY2MDYzMWFlOGEyZmUxMmIxMWJlNGM3NWIwYzJiMzdjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE1OjAzOjE3IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NzllOTc1MTE3YTc1ZTkxZmNlYmUyMjZhNjMxMDRkYmZiOTI0YWIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjQ0OjQxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIFpldXMgKFBQQzQwNUVQKSBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM1YTE3MmE1ZmQ2MzZjMTI0Njc0MjllM2Y3OTEwZTUzNzczOTc5YzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6NDE6NTUgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBvcHRpb24gZm9yIGV4dGVybmFsIGV0aGVybmV0IGxvb3BiYWNrIHRlc3QKCiAgICBXaGVuIENGR19QT1NUX0VUSEVSX0VYVF9MT09QQkFDSyBpcyBkZWZpbmVkLCB0aGUgZXRoZXJuZXQgUE9TVAogICAgaXMgbm90IGRvbmUgdXNpbmcgYW4gaW50ZXJuYWwgbG9vcGJhY2sgY29ubmVjdGlvbiwgYnV0IGJ5IGFzc3VtaW5nCiAgICB0aGF0IGFuIGV4dGVybmFsIGxvb3BiYWNrIGNvbm5lY3RvciBpcyBwbHVnZ2VkIGludG8gdGhlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjJiNDAxMGFlNDI2MjQ1MTcyOTg4ODA0ZWU4ZDkxOTNmYjQxMDM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjM5OjQ0IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgcHBjNDA1IHN1cHBvcnQgdG8gY2FjaGUgYW5kIFVBUlQgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzQyZjM2ZjE1MDc0YmQ5ODA4YTdkYmQ3ZWY2MTFmYWQ5YmY1MzdjCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDo0NjozMiAyMDA3ICswMTAwCgogICAgUmVwbGFjZSBsb3N0IGVuZCBvZiBhdDQ1LmMuCgpjb21taXQgNjVkN2FkYTY0NTU3ZTc2MDk0YjRmZDNiYWQzMGEwZjE4ZjVmYjJiMgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MzA6MDYgMjAwNyArMDEwMAoKICAgIFVwZGF0ZSBNYWtlZmlsZXMgZm9yIG1lcmdlZCBhbmQgc3BsaXQgYXQ0NS5jLgoKY29tbWl0IDM0NTRjZWNlMmRiNTdjYjllYjcwODc5OTVmN2U3MzA2NmExNjNmNzEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjIxOjA2IDIwMDcgKzAxMDAKCiAgICBEZWxldGUgdGhlIG1lcmdlZCBmaWxlcy4KCmNvbW1pdCBkY2JmZDJlNTY0OWY5N2FhMDRmYmJjNmVhMmIwMDhhYTQ0ODZlMjI1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoxNDowNSAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBmaWxlcy4KCmNvbW1pdCBkNGZjNjAxMmZkMGE1YzIxMWI4MjU2OTFmNDRiMDZmODAzMmMwNTUxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoxMDo1MiAyMDA3ICswMTAwCgogICAgQWRkIE1BQ0hfVFlQRSByZWNvcmRzIGZvciBzZXZlcmFsIEFUOTEgYm9hcmRzLgogICAgTWVyZ2UgdG8gdHdvIGF0NDUuYyBmaWxlcyBpbnRvIGEgY29tbW9uIGZpbGUsIHNwbGl0IHRvIGF0NDUuYyBhbmQgc3BpLmMKICAgIEZpeCBzcGVsbGluZyBlcnJvciBpbiBETTkxNjEgUEhZIFN1cHBvcnQuCiAgICBJbml0aWFsaXplIGF0OTFybTkyMDAgYm9hcmQgKGFuZCBzZXQgTEVEKS4KICAgIEFkZCBQSU8gY29udHJvbCBmb3IgYXQ5MXJtOTIwMGRrIExFRHMgYW5kIE11eC4KICAgIENoYW5nZSBkYXRhZmxhc2ggcGFydGl0aW9uIGJvdW5kYXJpZXMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIExpbnV4IDIuNi4KCiAgICBTaWduZWQtb2ZmLWJ5OglQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgogICAgU2lnbmVkLW9mZi1ieToJVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+Cgpjb21taXQgNGVmMzVlNTNjNjkzNTU2YzU0YjBjMjJkNmY4NzNkZTg3YmFkZTI1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMDk6NTQ6NDYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NWViNWNhZjZiOTA2ZjdlYzViNTQ4MTRlOGM3Yzc0ZjU1OTg2YmI3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAwOTo0NzoyNyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXA7IHJlYnVpbGQgQ0hBTkdFTE9HCgpjb21taXQgN2YzZjJiZDJkYzA4ZTBiMDVlMTg1NjYyY2EyZTJkMjgzNzU3MTA0YQpBdXRob3I6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBsaW51eGJveC4obm9uZSk+CkRhdGU6CVR1ZSBGZWIgMjcgMTk6NDI6MjIgMjAwNyAtMDcwMAoKICAgIDg1eHhDRFM6IEFkZCBtYWtlIHRhcmdldHMgZm9yIGxlZ2FjeSBzeXN0ZW1zLgoKICAgIFRoZSBQQ0kgSUQgc2VsZWN0IHZhbHVlcyBvbiB0aGUgQXJjYWRpYSBtYWluIGJvYXJkIGRpZmZlciBkZXBlbmRpbmcKICAgIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSBoYXJkd2FyZS4gVGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24gc3VwcG9ydHMKICAgIFJldiAzLjEuIFRoZSBsZWdhY3kgdGFyZ2V0IHN1cHBvcnRzIFJldiAyLnguCgogICAgU2lnbmVkLW9mZi1ieSBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KCmNvbW1pdCBlNDEwOTRjN2UzODE3N2M3NTVmYmQ5YjE4MjAxODA2OTYxNGYwODBkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjUwOjA5IDIwMDcgLTA1MDAKCiAgICA4NXh4Q0RTOiBFbmFibGUgdGhlIFZJQSBQQ0ktdG8tSVNBIGJyaWRnZS4KCiAgICBBdXRob3I6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBsaW51eGJveC4obm9uZSk+CgogICAgRW5hYmxlIHRoZSBQQ0ktdG8tSVNBIGJyaWRnZSBpbiB0aGUgVklBIFNvdXRoYnJpZGdlIGxvY2F0ZWQgb24gdGhlCiAgICBBcmNhZGlhIG1haW4gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFuZHkgVmluc29uIDxydmluc29uQG12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhOWQ0NjEwZDc2ZTUyYzRkMjBhOGYzZDg0MzM0MzlhN2ZjZjViNzEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDA6MTQ6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBVRUMgdG8gODU2OAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzU5ZTQwOTFmZmUwMTQ4Mzk4YjllOWZmMTRhMDE5ZWEwMzhiNzQzMgpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTkgMTQ6MTg6MzQgMjAwNyAtMDQwMAoKICAgIEFkZCBQQ0kgc3VwcG9ydCBmb3IgTVBDODU2OE1EUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggaXMgYWdhaW5zdCB1LWJvb3QtbXBjODV4eC5naXQgb2Ygd3d3LmRlbnguY29tCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDExMWQ2MzgyYzk5ZmRlYTA4YzIzMTJlZWVhZTg3ODY5NDVlMTg5YQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTkgMTQ6MTg6MzIgMjAwNyAtMDQwMAoKICAgIEVtcGlyaWNhbGx5IHNldCBjcG8gYW5kIGNsa19hZGp1c3QgZm9yIG1wYzg1eHggRERSMiBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBpcyBhZ2FpbnN0IHUtYm9vdC1tcGM4NXh4LmdpdCBvZiB3d3cuZGVueC5jb20KCiAgICBTZXR0aW5nIGNwbyB0byAweDkgZm9yIGZyZXF1ZW5jaWVzIGhpZ2hlciB0aGFuIDMzM01IeiBpcyB2ZXJpZmllZCBvbgogICAgYm90aCBNUEM4NTQ4Q0RTIGJvYXJkIGFuZCBNUEM4NTY4TURTIGJvYXJkLCBlc3BlY2lhbGx5IGZvciBzdXBwb3J0aW5nCiAgICA1MzNNSHogRERSMi4KCiAgICBTZXR0aW5nIGNsa19hZGp1c3QgdG8gMHg2KDMvNCBsYXRlIGN5Y2xlKSBmb3IgTVBDODU2OE1EUyBib2FyZCBpcyBmb3IKICAgIEREUjIgb24gYWxsIGN1cnJlbnQgYm9hcmQgdmVyc2lvbnMgZXNwZWNpYWxseSB2ZXIgMS45MiBvciBsYXRlciB0byBicmluZwogICAgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZGIwYmVmNTllYWIxMTU1ODAxNjE4Y2VmNWM0ODFlOTc1NTNiNTk3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyA3IDE4OjA3OjI3IDIwMDcgLTA1MDAKCiAgICBVc2UgYW4gYWJzb2x1dGUgYWRkcmVzcyB3aGVuIGp1bXBpbmcgb3V0IG9mIDRrIGJvb3QgcGFnZQoKICAgIE9uIGU1MDAgd2hlbiB3ZSBsZWF2ZSB0aGUgNGsgYm9vdCBwYWdlIHdlIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgYWRkcmVzcyBzaW5jZQogICAgd2UgZG9uJ3Qga25vdyB3aGVyZSB0aGUgYm9hcmQgY29kZSBtYXkgd2FudCB1cyB0byBiZSByZWFsbHkgcnVubmluZyBhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDM5OTgwYzYxMGM5YTRjMzgxOTA3YzllMWQxYjljMGUxYzBkY2E1N2EKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTQ6NDk6NTkgMjAwNyAtMDUwMAoKICAgIE1QQzg1eHggQkEgYml0cyBub3Qgc2V0IGZvciAzLWJpdCBiYW5rIGFkZHJlc3MgRElNTQoKICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHNldCB0aGUgbnVtYmVyIG9mIGJhbmsgYWRkcmVzcyBiaXRzCiAgICAoQkEpIGluIHRoZSBwcm9jZXNzb3IuIFRoZSBkZWZhdWx0IGFzc3VtZXMgMiBsb2dpY2FsIGJhbmsgYml0cy4gVGhpcwogICAgd29ya3MgZmluZSBmb3IgYSBESU1NIHRoYXQgdXNlcyBkZXZpY2VzIHdpdGggNCBpbnRlcm5hbCBiYW5rcyAoU1BECiAgICBieXRlMTcgPSAweDQpIGJ1dCBuZWVkcyB0byBiZSBzZXQgYXBwcm9wcmlhdGVseSBmb3IgYSBESU1NIHRoYXQgdXNlcwogICAgZGV2aWNlcyB3aXRoIDggaW50ZXJuYWwgYmFua3MgKFNQRCBieXRlMTcgPSAweDgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyZWcgRGF2aXMgPERhdmlzR0BlbWJlZGRlZHBsYW5ldC5jb20+Cgpjb21taXQgNmM1NDM1OTdiYjRiMWVjZjVkODU4OWY3YWJiMGYzOTkyOWZiN2ZkMQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNDozODowNiAyMDA3IC0wNTAwCgogICAgRml4IG1pbm9yIDg1eHggd2FybmluZ3MKCiAgICBTb21lIHBhdGNoZXMgaGFkIGluc2VydGVkIHdhcm5pbmdzIGludG8gdGhlIGJ1aWxkOgogICAgKiBtcGM4NTYwYWRzIGRlY2xhcmVkIGRhdGEgd2l0aG91dCB1c2luZyBpdAogICAgKiBjcHVfaW5pdCBkZWNsYXJlZCBlY20gYW5kIGltbWFwIHdpdGhvdXQgdXNpbmcgaXQgaW4gYWxsIENPTkZJR3MKICAgICogTVBDODU0OENEUy5oIGhhZCBpdHMgZGVmYXVsdCBmaWxlbmFtZXMgY2hhbmdlZCBzbyB0aGF0IHRoZXkgY29udGFpbmVkCiAgICAgICJcbSIgaW4gdGhlIHBhdGhzLiAgTWFkZSB0aGUgZGVmYXVsdHMgbm90IFdpbmRvd3Mtc3BlY2lmaWMgKG9yCiAgICAgIGFueXRoaW5nLXNwZWNpZmljKQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMmNmZjZiMTA0ZjgyYjk5M2JlZjYwODZjZTBjOTcxNTliYmUxYWRkCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo1MiAyMDA3IC0wNTAwCgogICAgODU0OGNkcyBQQ0lFIHN1cHBvcnQuCgogICAgTWFrZSB0aGUgZWFybHkgTDEgY2FjaGUgc3RhY2sgcmVnaW9uIGd1YXJkZWQgdG8gcHJldmVudCBzcGVjdWxhdGl2ZQogICAgZmV0Y2hlcyBvdXRzaWRlIHRoZSBsb2NrZWQgcmFuZ2UuCgogICAgVXNlIF9QSFlTIGRlZmluZXMsIG5vdCBfTUVNIGZvciBjcHUtc2lkZSBQQ0kgbWVtb3J5IG1hcHBlZCByZWdpb25zLgogICAgaW5pdC5TIHdoaXRlc3BhY2UgY2xlYW51cC4KCiAgICBBbGxvdyBURVhUX0JBU0UgdmFsdWUgdG8gYmUgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZS4gIFRoaXMgYWxsb3dzIGl0CiAgICB0byBiZSBzZXQgdG8gMHhmZmZjMDAwMCB3aGljaCBjdXRzIHRoZSB1Ym9vdCBiaW5hcnkgaW4gaGFsZi4KCiAgICBDbGVhciBhbmQgZW5hYmxlIGxiYyBhbmQgZWNtIGVycm9ycy4KCiAgICBVcGRhdGUgbGFzdF9idXNubyBpbiBkZXZpY2UtdHJlZSBmb3IgcGNpIGFuZCBwY2llLgoKICAgIFJlbW92ZSBsb2FkIG9mIG9ic29sZXRlIGNwdS9tcGM4NXh4L3BjaS4wCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODM3ZjFiYTA1Y2ZiMjQ4YWJhNWFiOGUxZmIxYmZlZWZhMDdkNTk2MgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NTEgMjAwNyAtMDUwMAoKICAgIDg1NDRkcyBQQ0lFIHN1cHBvcnQKCiAgICBQQ0kxIExBVyBtYXBwaW5nIHNob3VsZCB1c2UgQ0ZHX1BDSTFfTUVNX1BIWSBhbmQgbm90IF9CQVNFIGFkZHJlc3MuCgogICAgRW5hYmxlIExCQyBhbmQgRUNNIGVycm9ycyBhbmQgY2xlYXIgZXJyb3IgcmVnaXN0ZXJzLgoKICAgIEFkZCB0ZnRwZmxhc2ggZW52IHZhciB0byBnZXQgdWJvb3QgZnJvbSB0ZnRwIHNlcnZlciBhbmQgZmxhc2ggaXQuCgogICAgQWRkIHBjaS9wY2llIGNvbnZlbmllbmNlIGVudiB2YXJzIHRvIGRpc3BsYXkgcmVnaXN0ZXIgc3BhY2U6CiAgICAgICJydW4gcGNpZTNyZWdzIiB0byBzZWUgYWxsIHBjaWUzIGNjc3IgcmVnaXN0ZXJzCiAgICAgICJydW4gcGNpZTNjZmciIHRvIHNlZSBhbGwgY2ZnIHJlZ2lzdGVycwogICAgV2hpdGVzcGFjZSBjbGVhbnVwIGFuZCBNUEM4NTQ0RFMuaAoKICAgIEVuYWJsZSBDT05GSUdfSU5URVJSVVBUUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWEyMWU5ODBhN2I5MTg4NDI0ZDA0ZjFjMjY1ZmRjNWMyMWM3ZTg1CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjM0OjIxIDIwMDcgLTA1MDAKCiAgICA4NXh4IHN0YXJ0LlMgY2xlYW51cCBhbmQgZXhjZXB0aW9uIHN1cHBvcnQKCiAgICBGcm9tOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKICAgIFN1cHBvcnQgZXh0ZXJuYWwgaW50ZXJydXB0cyBmcm9tIHBsYXRmb3JtIHRvIGVsaW1pbmF0ZSBzeXN0ZW0gaGFuZ3MuCiAgICBEZWZpbmUgQ09ORklHX0lOVEVSUlVQVFMgYm9hcmQgY29uZmlndXJlIG9wdGlvbiB0byBlbmFibGUuCiAgICBFbmFibGUgZWNtLCBkZHIsIGxiYywgYW5kIHBjaS9wY2llIGVycm9yIGludGVycnVwdHMgaW4gUElDLgoKICAgIFJlbW92ZSBleHRyYSBjcHUgaW5pdGlhbGl6YXRpb24gcmVkdW5kYW50IHdpdGggaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24uCiAgICBXaGl0ZXNwYWNlIGNsZWFudXAuCgogICAgRGVmaW5lIGFuZCB1c2UgX1NUQVJUX09GRlNFVCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcHJvY2Vzc29ycyB1c2luZwogICAgcHBjX2FzbS50bXBsCgogICAgTW92ZSBhZGRpdGlvbmFsIGNvZGUgZnJvbSAudGV4dCB0byBib290IHBhZ2UgdG8gbWFrZSByb29tIGZvcgogICAgZXhjZXB0aW9uIHZlY3RvcnMgYXQgc3RhcnQgb2YgaW1hZ2UuCgogICAgSGFuZGxlIE1hY2hpbmUgQ2hlY2ssIEV4dGVybmFsIGFuZCBDcml0aWNhbCBleGNlcHRpb25zLgoKICAgIEZpeCBlNTAwIG1hY2hpbmUgY2hlY2sgZXJyb3IgZGV0ZXJtaW5hdGlvbiBpbiB0cmFwcy5jCgogICAgVEVYVF9CQVNFIGNhbiBub3cgYmUgMHhmZmZjXzAwMDAgLSB3aGljaCBjdXRzIGJpbmFyeSBpbWFnZSBpbiBoYWxmLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdiZDMwZmM0YTY0NzViNDFkNjY3OWFlM2FhZmM5ZmE1MDUyNjBjNDcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6MzM6MTggMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwYzdmOWIwZGU0ZTMwMDM3MGFkZmM3MDQxMjhmYTBmNzlhMTQzYjYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ4IDIwMDcgLTA1MDAKCiAgICA4NXh4IGFsbG93IGRlYnVnZ2VyIHRvIGNvbmZpZ3VyZSBkZHIuCgogICAgT25seSBjaGVjayBmb3IgbXBjODU0OCByZXYgMSB3aGVuIGNvbXBpbGVkIGZvciA4NTQ4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI5MzcyZmYzOGM1YmFhYjdkMGUzYThjMTRmZTExZmExOTRhMzg3MDQKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ3IDIwMDcgLTA1MDAKCiAgICBtcGM4NXh4IEwyIGNhY2hlIHJlcG9ydGluZyBhbmQgU1JBTSByZWxvY2F0aW9uIG9wdGlvbi4KCiAgICBBbGxvdyBkZWJ1Z2dlciB0byBvdmVycmlkZSBmbGFzaCBjczAvY3MxIHNldHRpbmdzIHRvIGVuYWJsZSBhbHRlcm5hdGUKICAgIGJvb3QgcmVnaW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQxZjBmOGZiMWFiOTJmMGNiYTdkMzI5ZGU5MDA3MGY4MjJmODI5OWYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ2IDIwMDcgLTA1MDAKCiAgICBlNTAwIG5lZWRzIHBwY19hc20udG1wIE1DS19FWENFUFRJT04KCiAgICBBbHdheXMgZGVmaW5lIE1DS19FWENFUFRJT04gbWFjcm8gLSBzbyBlNTAwIGNhbiB1c2UgaXQgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUzYTVjNDI0YmY4NjU1YjdiNGUyYzMwNWE0NDE5NjMyNTlhMjZhODEKQXV0aG9yOiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTA6NDE6MDcgMjAwNyAtMDUwMAoKICAgIG11bHRpY2FzdCB0ZnRwOiBSRkMyMDkwCgogICAgSW1wbGVtZW50ZWQgSUVURiBSRkMyMDkwLCBNdWx0aWNhc3QgVEZUUC4gIEluaXRpYWwgaW1wbGVtZW50YXRpb24KICAgIG9uIFJlYWx0ZWsgUlRMODEzOSBhbmQgRnJlZXNjYWxlIFRTRUMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNWQxMTBmMGFhNjlmMDY1ZWUzODZlYzE4NDBkZmVlMWU4Y2M0NmJjMQpBdXRob3I6IFdpbHNvbiBDYWxsYW4gPHdjYWxsYW5Ac2F2YW50YXYuY29tPgpEYXRlOglTYXQgSnVsIDI4IDEwOjU2OjEzIDIwMDcgLTA0MDAKCiAgICBOZXcgQ09ORklHX0JPT1RQX1NFUlZFUklQIG9wdGlvbgoKICAgIEFkZGVkIENPTkZJR19CT09UUF9TRVJWRVJJUCB0byBhbGxvdyB0aGUgdGZ0cCBzZXJ2ZXIgdG8gYmUgZGlmZmVyZW50CiAgICBmcm9tIHRoZSBib290cCBzZXJ2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxzb24gQ2FsbGFuIDx3Y2FsbGFuQHNhdmFudGF2LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDUwY2NhOGI5NzZlYzc0MDY5ODYwMjA4YzM2ZTY0Y2U4ZjRkNWU0YzEKQXV0aG9yOiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgpEYXRlOglTdW4gQXVnIDEyIDA4OjQ4OjI3IDIwMDcgKzAzMDAKCiAgICBBZGQgYWJpbGl0eSB0byB0YWtlIE1BQyBhZGRyZXNzIGZyb20gdGhlIGVudmlyb25tZW50IHRvIERNOTAwMCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgYmU1ZDcyZDEwZDQ3NjA5MzI2MjI2MjI1MTgxZTMwMWZiOWEzM2I1OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTMgMjE6NTc6NTMgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2NhMzQ5NjdjYmQxM2ZmNmJkMzUyYmUyOWUzZjFjYzg4YWIyNGMwNQpBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVNhdCBBdWcgMTEgMDY6NTQ6NTggMjAwNyAtMDUwMAoKICAgIE1vZGlmeSBTQkM4NjQxRCB0byB1c2UgbmV3IEZyZWVzY2FsZSBQQ0kgcm91dGluZXMKCiAgICBQQ0ktRXhwcmVzcyBzb2NrZXRzIDEgYW5kIDIgdmVyaWZpZWQgd29ya2luZyB3aXRoIEludGVsIFByby8xMDAwIFBUCiAgICBhZGFwdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBTaWduZGUtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEwODQ1ODMwM2U3ZjlkYjY3ZjI5Njk4MDAzNmQzMjkyYzM1Y2I0NWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEp1biAyOSAxODozODo1MSAyMDA3ICswMjAwCgogICAgYXRtZWxfbWNpOiBGaXggZGF0YSB0aW1lb3V0IHZhbHVlCgogICAgQ2FsY3VsYXRlIHRoZSBkYXRhIHRpbWVvdXQgYmFzZWQgb24gdmFsdWVzIGZyb20gdGhlIENTRCBpbnN0ZWFkIG9mCiAgICBqdXN0IHVzaW5nIGEgaGFyZGNvZGVkIERUT1IgdmFsdWUuIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBhIHNpbWlsYXIgZml4CiAgICBpbiBCU1AgMi4wLCB3aXRoIG9uZSBhZGRpdGlvbmFsIGZpeDogdGhlIERUT0NZQyB2YWx1ZSBpcyByb3VuZGVkIHVwCiAgICBpbnN0ZWFkIG9mIGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMGJhOGVlZDI4YjU3NTYyNmIxN2UwYTc4ODJmOTIzYjgzZTBkNzU4NApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gQXVnIDEzIDE3OjIyOjMxIDIwMDcgKzAyMDAKCiAgICBBVlIzMjogSW5jbHVkZSA8ZGl2NjQuaD4gaW5zdGVhZCBvZiA8YXNtL2RpdjY0Lmg+CgogICAgaW5jbHVkZS9hc20tYXZyMzIvZGl2NjQuaCB3YXMgcmVjZW50bHkgbW92ZWQgdG8gaW5jbHVkZS9kaXY2NC5oLCBidXQKICAgIGNwdS9hdDMyYXAvaW50ZXJydXB0cy5jIHdhc24ndCBwcm9wZXJseSB1cGRhdGVkIChhbiBlYXJsaWVyIHZlcnNpb24gb2YKICAgIHRoZSBwYXRjaCB3YXMgbWVyZ2VkIHBlcmhhcHM/KQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBjcHUvYXQzMmFwL2ludGVycnVwdHMuYyBzbyB0aGF0IHRoZSBhdnIzMiBwb3J0CiAgICBjb21waWxlcyBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmMGQxMjQ2ZWQ3Y2I1YTg4NTIyMjQ0YzU5NmQ3YWU3ZTZmMTYxMjgzCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKdW4gMjcgMTM6MzQ6MjYgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogVXNlIDUxMiBieXRlIGJsb2Nrc2l6ZSBpZiBwb3NzaWJsZQoKICAgIEluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIHRoZSBsYXJnZXN0IGJsb2Nrc2l6ZSB0aGUgY2FyZCBzdXBwb3J0cywgY2hlY2sKICAgIGlmIGl0IGNhbiBzdXBwb3J0IHNtYWxsZXIgYmxvY2sgc2l6ZXMgYW5kIHVzZSA1MTIgYnl0ZXMgaWYgcG9zc2libGUuCiAgICBNb3N0IGNhcmRzIGRvIHN1cHBvcnQgdGhpcywgYW5kIG90aGVyIHBhcnRzIG9mIHUtYm9vdCBzZWVtIHRvIGhhdmUKICAgIHRyb3VibGUgd2l0aCBibG9jayBzaXplcyBkaWZmZXJlbnQgZnJvbSA1MTIgYnl0ZXMuCgogICAgQWxzbyBlbmFibGUgdW5kZXJydW4vb3ZlcnJ1biBwcm90ZWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+Cgpjb21taXQgMjczZGI3ZTFiZGQxOTM3ZTMyZjFkNDUwNzMyMWJiNzIxZWJkMzExOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyAxMyAwOTowNTozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiBQTEwgY2xvY2sgY2FsY3VsYXRpb24KCiAgICBUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGwgcHJvdmlkZWQgYnkgRGF2aWQgTWl0Y2hlbGwgPGRtaXRjaGVsbEBhbWNjLmNvbT4KICAgIGFuZCBmaXhlcyBhIGJ1ZyBpbiB0aGUgUExMIGNsb2NrIGNhbGN1bGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTg2YmMzZTQwZTg5OWJlYTM3MmE5OWEyYmNhNDA3MWJkZjJlMjRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMTozNDo1MCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDc3ZDE5YThiZjNiMGIxZTQwMWNiOWYyM2M4MWUyZWY0MTk3MDVjMWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIxOjM0OjM0IDIwMDcgKzAyMDAKCiAgICBNaW5vciBhbGlnbm1lbnQgb2Ygb3V0cHV0LCAybmQgdHJ5LgogICAgQWxzbyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YjMwOWYyMmE3MjRmYWQ4NDE4ZTgxMTc1MWEwNzQxYjg5MzQxOWNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMDozNTo0OSAyMDA3ICswMjAwCgogICAgTWlub3IgYWxpZ25tZW50IG9mIG91dHB1dAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmY2ZDdiOWM4NTU5ZTI0MWU4ZDIzMjYyMTU0MmI4YjU5Njk5YjA3YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTg6Mjg6MTggMjAwNyArMDIwMAoKICAgIENsZWFudXAgb3V0cHV0IG9uIEFEUzUxMjEgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rCgpjb21taXQgYTRkMjYzNmYyYTg1OTI0NWVkM2E0MDFmMjYxODlkYTJkZmRhNGNlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTU6MTE6MzggMjAwNyArMDIwMAoKICAgIEFkYXB0IGJvYXJkIGNvbmZpZ3VyYXRpb24gYW5kIGZpeCBrZXJuZWwgY3Jhc2ggb24gTUNDMjAwIGJvYXJkLgoKICAgIFRoZSB1cGRhdGUgcHJvY2VkdXJlIHdhcyBtb2RpZmllZCB0byB0dXJuIG9mZiB0aGUgVVNCIHN1YnN5c3RlbQogICAgYmVmb3JlIGV4aXQgZm9yIE1DQzIwMCBhbmQgVFJBQi4gVGhpcyBpcyBuZWNlc3NhcnkgYXMgb3RoZXJ3aXNlIHRoZQogICAgVVNCIGNvbnRyb2xsZXIgY29udGludWVzIHRvIHdyaXRlIHBlcmlvZGljYWxseSB0byBzeXN0ZW0gbWVtb3J5IQoKICAgIE1DQzIwMC1zcGVjaWZpYyBub3RlczoKICAgIC0gdGhlIHBhdGNoIGRpc2FibGVzIHRoZSBtYWdpYyBrZXkgY2hlY2sgZm9yIE1DQzIwMAogICAgLSB0aGUgcGF0Y2ggY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBtYWRlCiAgICAgIGZvciB0aGUgbmV3IHJldmlzaW9uIG9mIHRoZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMjdmM2E2ZWZiOWRiNWE1MzMyMjNiMDVjNjI5ZmY0YWM4ZDkyMWJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNDo0Nzo1NCAyMDA3ICswMjAwCgogICAgQWRqdXN0IGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiBBRFM1MTIxIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWZhYWM4NmZlMjk0OGFjODRjZDlhMTJiYmVkODgzYjNjNjgzZTdkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTQ6Mjc6MzkgMjAwNyArMDIwMAoKICAgIENsZWFuIHVwIHNvbWUgcmVtYWluaW5nIENGR19DTURfIC0+IENPTkZJR19DTURfIGlzc3Vlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmZTZiZTYyMDhkZGE4NTJjMzU2NGUzODRiZDc4ZDc1Nzg0ZGVhM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgQXVnIDcgMjE6MTQ6MjIgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZXJyb3IgcHJpbnQgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5OWRmZmNhM2I3NTkwYTE2YTAwYmM0NzVjODYwYjY3YjJhM2YxNDYyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxNyAxMzo1NzowNCAyMDA3IC0wNTAwCgogICAgZmR0OiBhbGxvdyBmb3IgYnVpbGRzIHRoYXQgZG9uJ3Qgd2FudCBlbnYgYW5kIGJkX3Qgbm9kZXMKCiAgICBwcm90ZWN0IGZkdF9lbnYgYW5kIGZkdF9iZF90IGludm9jYXRpb25zLCBmaXggY29kaW5nc3R5bGUgd2hpbGUgaW4gdGhlCiAgICBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTExNDhiZjdhZWJhMTQyZDZmMzQ4ODA1ZGI3NjI1ZGI3ZGE2NGQ2ZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTcgMTM6NTY6NTMgMjAwNyAtMDUwMAoKICAgIGZkdDogZG8gYm9hcmQgc2V0dXAgYmFzZWQgb24gZmR0IGFkZHJlc3Mgc3BlY2lmaWVkIG9uIGJvb3RtIGxpbmUKCiAgICBUaGUgbGFzdCBmZHQgcGF0Y2ggdG8gYm9vdG0gZGlkIGJvYXJkIHNldHVwIGJhc2VkIG9uIHRoZSBhZGRyZXNzCiAgICBzcGVjaWZpZWQgYnkgYSBwcmlvciBmZHQgYWRkcmVzcyBjb21tYW5kIGludm9jYXRpb24uICBUaGUgYm9vdG0KICAgIGNvZGUsIGFzIGl0cyBjYWxsIHRvIGZkdF9jaG9zZW4gZG9lcywgc2hvdWxkIHVzZSB0aGUgZmR0IHNwZWNpZmllZAogICAgYnkgdGhlIHVzZXIgb24gdGhlIGJvb3RtIGNvbW1hbmQuICBOb3RlIHRoaXMgcmVzdG9yZXMgZnVsbAogICAgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIDgzNjAncyBleGlzdGluZyBkZWZhdWx0IGJvb3QgZW52aXJvbm1lbnQKICAgIHZhbHVlcywgZS5nLiAncnVuIG5mc2Jvb3QnIChpLmUuIG5vIGhhdmluZyB0byAnZmR0IGFkZHIgJGZkdGFkZHInCiAgICBiZWZvcmUgYm9vdGluZyBhIGtlcm5lbCkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMTI1YTJmZmMyMDlkZDM0Nzk0ZTMyNmM3MTc1NjU4MjUzYmVhZGYzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAyMDo0MDozOSAyMDA3IC0wNDAwCgogICAgQ2FsbCBmdF9ib2FyZF9zZXR1cCgpIGZyb20gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgSW4gdGhlIHBhdGNoIHRpdGxlZCAiQ3JlYXRlIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLi4uIiBJIHJlbW92ZWQgdGhlCiAgICBjYWxsIHRvIGZ0X2JvYXJkX3NldHVwKCkgZnJvbSB0aGUgcm91dGluZSBmZHRfY2hvc2VuKCksIGJ1dCBJIGZvcmdvdAogICAgdG8gYWRkIGEgZGlyZWN0IGNhbGwgYmFjayBpbnRvIGNtZF9ib290bS5jCgogICAgVGhpcyBmaXhlcyB0aGUgb3ZlcnNpZ2h0IGJ5IGFkZGluZyB0aGUgZGlyZWN0IGNhbGwgdG8gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBmZDYxZTU1ZGQ4Y2I1MmNlM2ZmOTFiMzkxN2FmMjZlMjRiNmIwODQ1CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAyMzoyNToyOCAyMDA3IC0wNDAwCgogICAgQ3JlYXRlIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLCBmaXggYnVnIHBhcnNpbmcgW10gZm9ybSBvZiBzZXQgdmFsdWVzLgoKICAgIFByZXZpb3VzbHkgZnRfYm9hcmRfc2V0dXAoKSB3YXMgY2FsbGVkIGJ5IGZkdF9jaG9zZW4oKSB3aGljaCB3YXMgbm90CiAgICByZWFsbHkgY29ycmVjdGx5IHN0cnVjdHVyZWQuICBUaGlzIHNwbGl0cyBmdF9ib2FyZF9zZXR1cCgpIG91dCBieSBjcmVhdGluZwogICAgYSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZC4KCiAgICBGaXggYSBidWcgd2hlbiBwYXJzaW5nIGZkdCBzZXQgY29tbWFuZCB2YWx1ZXMgd2hpY2ggaGF2ZSB0aGUgc3F1YXJlCiAgICBicmFja2V0IGZvcm0gWzAwIDExIDIyIDMzXSAtIHRoZSBsZW5ndGggd2FzIHVwZGF0ZWQgaW5jb3JyZWN0bHkgaW4gd2hlbgogICAgcGFyc2luZyB0aGF0IGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA2ZjM1ZGVkOWU4NTQ5MzU5NWUwZWI2NmE4MmI1MDJhOTUzMjZkMDQ5CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAyMDo1NTo1OCAyMDA3IC0wNDAwCgogICAgVGlnaHRlbiB1cCB0aGUgZXJyb3IgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBjNDU4NzRiMDVhYWU4OTdhNmMyOWQxYTk3ZDRiYjcwOGZjYTI3NTZjCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxOTo1MjoyMyAyMDA3IC0wNDAwCgogICAgQXN0aGV0aWMgaW1wcm92ZW1lbnRzOiBlcnJvciBtZXNzYWdlcyBhbmQgbGluZSBsZW5ndGhzLgoKICAgIFRpZ2h0ZW4gdXAgdGhlIGVycm9yIG1lc3NhZ2VzLCBzcGxpdCBvdmVybGVuZ3RoIGxpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMzVlYzM5OGYxNmUxN2RmNjAwZWRjMWIzOGMxZTllNjJjMTVjOWFhMQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBNYXkgMjUgMjI6MDg6NTcgMjAwNyAtMDQwMAoKICAgIEZpeCBmZHRfY2hvc2VuKCkgdG8gY2FsbCBmdF9ib2FyZF9zZXR1cCgpLCBjbGVhbiB1cCBsb25nIGxpbmVzLgoKICAgIFRoZSBmZHRfY2hvc2VuKCkgZnVuY3Rpb24gd2FzIGFkZGluZy9zZXRpbmcgc29tZSBwcm9wZXJ0aWVzIGFkLWhvYwogICAgICBpbXByb3Blcmx5IGFuZCBkdXBsaWNhdGVkIChwb29ybHkpIHdoYXQgd2FzIGRvbmUgaW4gZnRfYm9hcmRfc2V0dXAoKQoKICAgIENsZWFuIHVwIGxvbmcgbGluZXMgKHNldHRpbmcgcHJvcGVydGllcywgcHJpbnRpbmcgZXJyb3JzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDA2ZTE5YTA3NzAxYzk2OGYxNWQ3MmMwODNiNTg3MmExYTExYzdiMDEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gTWF5IDIxIDIzOjI3OjE2IDIwMDcgLTA0MDAKCiAgICBGb3IgZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCksIGhhbmRsZSB0aGUgcm9vdCBwYXRoIHByb3Blcmx5LgoKICAgIEFsc28gcmVtb3ZlcyB0aGUgc3BlY2lhbCBjYXNlIHJvb3QgcGF0aCBkZXRlY3Rpb24gaW4gY21kX2ZkdC5jIHNpbmNlIGl0CiAgICBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTY3NWVlNzIwOGFiOTY1ZDEzZWE4ZDgyNjJkNzdhYzQxNjBlZjU0OQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBNYXkgMTcgMjM6NTQ6MzYgMjAwNyAtMDQwMAoKICAgIEFkZCBmZHRfZmluZF9ub2RlX2J5X3R5cGUoKSBhbmQgZmR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlKCkgdG8gTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAxYTg2MTE2OWJjMzc1OGY5ZGUzYWVhZDYyYjA1ODczNmM2ODkxMjQ2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEp1biA2IDIyOjQ3OjU4IDIwMDcgLTA0MDAKCiAgICBSZXBsYWNlIGZkdF9ub2RlX29mZnNldCgpIHdpdGggZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCkuCgogICAgVGhlIG5ldyBuYW1lIG1hdGNoZXMgbW9yZSBjbG9zZWx5IHRoZSBrZXJuZWwncyBuYW1lLCB3aGljaCBpcyBhbHNvCiAgICBhIG11Y2ggYmV0dGVyIGRlc2NyaXB0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYWRkZDhjZTgzMDc4YzI1ZjBlY2E1ZjIzYWRiZGZjNjRjYTUwYTI0MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMjI6Mzk6NTkgMjAwNyAtMDQwMAoKICAgIEZpeCBjbWRfZmR0IGxpbmUgbGVuZ3RocywgcmVmYWN0b3IgY29kZS4KCiAgICBCcmVhayBsaW5lcyB0aGF0IHdlcmUgZ3JlYXRlciB0aGFuIDgwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLgogICAgTW92ZSB0aGUgZmR0IHByaW50IGFuZCBwcm9wZXJ0eSBwYXJzaW5nIGNvZGUgdG8gc2VwYXJhdGUgc3RhdGljIGZ1bmN0aW9ucwogICAgICB0byByZWR1Y2UgY29kaW5nIGNsdXR0ZXIgaW4gdGhlIGZkdF9jbWQgaGFuZGxpbmcgYm9keS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDI1MTE0MDMzYWIyMTc4ODgxMGM0OGJhNGRmMTAzYjY0OWRhMTIyM2IKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWF5IDEyIDA5OjQ3OjI1IDIwMDcgLTA0MDAKCiAgICBGRFQgY29tbWFuZCBpbXByb3ZlbWVudHMuCgogICAgRml4ICJmZHQgc2V0IiBzbyB0aGF0IGl0IHdpbGwgY3JlYXRlIGEgbm9uLWV4aXN0aW5nIHByb3BlcnR5LgogICAgQWRkICJmZHQgbWtub2RlIiB0byBjcmVhdGUgbm9kZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAzOGViNTA4ZThlODExZTJlNTc2MjhmNDQ1ZGUzYTI0YTIzYzdkODA0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1heSAxMiAwOTo0NTo0NiAyMDA3IC0wNDAwCgogICAgUmVvcmdhbml6ZSBhbmQgZml4IHByb2JsZW1zIChyZXR1cm5zKSBpbiB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBEbyAqTk9UKiByZXR1cm4gYWZ0ZXIgdGhlICJwb2ludCBvZiBubyByZXR1cm4iIGhhcyBiZWVuIHBhc3NlZC4KICAgICAgSWYgc29tZXRoaW5nIGdvZXMgd3JvbmcsIHRoZSBib2FyZCBtdXN0IGJlIHJlc2V0IGFmdGVyIHRoYXQgcG9pbnQuCiAgICBNb3ZlIHRoZSAiVHJhbnNmZXJyaW5nIGNvbnRyb2wgdG8gTGludXgiIGRlYnVnIG1lc3NhZ2UgYmFjayB0byB3aGVyZSBpdAogICAgICBiZWxvbmdzOiBqdXN0IGJlZm9yZSB0cmFuc2ZlcnJpbmcgY29udHJvbCB0byBsaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDg5Yzg3NTdkOGYyMTNjNDc3MDliZGM0ZWZlMDY5NTI2M2E2MDgwYTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgTWF5IDggMjE6Mjc6MzUgMjAwNyAtMDQwMAoKICAgIEZpeCBidWdzIGluIHRoZSBDT05GSUdfT0ZfTElCRkRUCgogICAgU3R1cGlkIGNvZGluZyBtaXN0YWtlcyAoaWRlbnRpZmllZCBieSBUaW11ciBUYWJpLCB0aGFua3MpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNmJlMDdjYzFjYTQ1ODI3OGM4NWVjZGJmMWEwNTM2Y2ZmNGM3MDFlYwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjI6NDc6MTUgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZmR0IG1vdmUgbGVuZ3RoIGhhbmRsaW5nLgoKICAgIE1ha2UgdGhlIGxlbmd0aCBwYXJhbWV0ZXIgb3B0aW9uYWw6IGlmIG5vdCBzcGVjaWZpZWQsIGRvIHRoZSBtb3ZlIHVzaW5nCiAgICB0aGUgY3VycmVudCBzaXplIHVuY2hhbmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGJiOTMwZTc2ZmVhNmNmODljYTJkOThlMmY3YzdhNjA0M2Q3OTMyN2QKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIyOjIzOjM2IDIwMDcgLTA0MDAKCiAgICBNaW5vciBjb2RlIGNsZWFuIHVwLgoKICAgIERlY2xhcmUgdGhlIHZhcmlhYmxlIGZkdCBwcm9wZXJseSBhcyBleHRlcm4uCiAgICBDYWxsIHRoZSAic2V0X2ZuIiBmdW5jdGlvbiBwb2ludGVyIHRoZSAic2hvcnQgd2F5IiB3aXRob3V0IHRoZSBmdWxsCiAgICAgIGRlcmVmZXJlbmNpbmcgc3ludGF4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYmEyNGUyYWMzYmRiNWM0ODlmM2M3ODdlNzU0MmI2NDc0YzRkNjVjNgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjE6MjQ6MjcgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZXJyb3IgbWVzc2FnZXMsIG1vcmUgaW5mb3JtYXRpdmUuCgogICAgUHJpbnQgbW9yZSB0aGFuIHRoZSByYXcgbGliZmR0IGVycm9yIG1lc3NhZ2Ugc3RyaW5ncy4gIFRoaXMgaXMgZXNwZWNpYWxseQogICAgdXNlZnVsIGZvciBjbHVpbmcgaW4gdGhlIHVzZXIgd2hlbiB0aGUgYm9vdG0gY29tbWFuZCBhYm9ydHMgZHVlIHRvCiAgICBibG9iIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgODA5NmIzYjhmNzcyYzE4OTRkZGVkYTlkYmNlZmY2YTg4MjY0NzNhNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMjI6NDY6NTMgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogQ29uZGl0aW9uYWxseSBjb21waWxlIGJhc2VkIG9uIENPTkZJR19PRl9MSUJGRFQKCiAgICBUaGlzIGlzIHRoZSB3YXkgdS1ib290IHJlZHVjZXMgY29uZmlndXJlZC1vdXQgY29kZS4gIEF0IFdvbGZnYW5nCiAgICBHcmFuZGVnZ2VyIGFuZCBXb2xmZ2FuZyBEZW5rJ3MgcmVxdWVzdCwgbWFrZSBsaWJmZHQgY29uZm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDkyM2VmZDI4NjQxMWVkMDUyZDllMDc0ZjU5Zjg5ODZkNjA4MTA2MWMKQXV0aG9yOiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTQ6NTQ6NDcgMjAwNyAtMDcwMAoKICAgIGFkZCBpbWFnZSBzaXplIGFuZCBkZXNjcmlwdG9ycyBmb3IgU3BhcnRhbiAzRSBGUEdBIGNoaXBzCgogICAgU3BhcnRhbiAzRSBpbWFnZSBzaXplcyB0YWtlbiBmcm9tIFRhYmxlIDEtNCBpbiBYaWxpbnggVUczMzIgKHYxLjEpCgogICAgU2lnbmVkLW9mZiBieTogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgoKY29tbWl0IGZiNTY1NzlmZmU3ZWYzMjc1YjcwMzZiYjdiOTI0ZTVhMGQzMmJkNzAKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE1OjM0OjQ4IDIwMDcgLTA1MDAKCiAgICBtYWtlIE1BS0VBTEwgbW9yZSBpbW11bmUgdG8gbWVyZ2UgY29uZmxpY3RzCgogICAgLi5ieSBwbGFjaW5nIGJvYXJkIGVudHJpZXMgb25lIHBlciBsaW5lLCBhcyBzdWdnZXN0ZWQgYnkgamRsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjYyODExNGVjNTY0Zjk2OWYzNGI1ZjcxMDVmYmQxNjhjYjhjOWMzZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTM6Mjg6MjUgMjAwNyAtMDUwMAoKICAgIFJFQURNRTogUmVtb3ZlIG91dGRhdGVkIGNwdSB0eXBlLCBib2FyZCB0eXBlLCBhbmQgTkFNRV9jb25maWcgbGlzdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5YmI1OTkxMmQyMWFhY2I1MDdlYjgxZmQyMWZiN2FmNjUwYzcwNmMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTU6NDg6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFN1cHByZXNzIHRoZSB3YXJuaW5nICdidXJzdGxlbicKCiAgICBzdXBwcmVzcyB0aGUgd2FybmluZyAnYnVyc3RsZW4nIG9mIHNwZF9zZHJhbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NDZiYmE2NDY1YTQ1YzYwNzQ2ZDRjYzE2MDJjZDA2YzE5NjBmMmQKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMTU6MTE6MDMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTQkM4NjQxRC4gQ29uZmlnIGZpbGVzLgoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODY0MUQgcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBBY2tlZC1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhYzI3MzI3MWQ1NzMyMWY5MDUwNWM3YTUxY2RiMWVmMjExM2I2MjgKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMTU6MTA6NTMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTQkM4NjQxRC4gIEJvYXJkIGZpbGVzLgoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODY0MUQgcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBBY2tlZC1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMyYzBhYjRhZmY4NjYyMmI4MzdhNDhhMGU1NjAzNTFmOWFmYWZiOTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMjA6MzQ6NTggMjAwNyArMDIwMAoKICAgIENvbmRpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNzRiMjEwOGUzMWZlMDliZDFjNWQyOTFjM2NmMzYwNTEwZDRmMTNlCkF1dGhvcjogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CkRhdGU6CUZyaSBBdWcgMTAgMjA6MjY6MTggMjAwNyArMDIwMAoKICAgIFtBUk1dIFRJIERhVmluY2kgc3VwcG9ydCwgaG9wZWZ1bGx5IGZpbmFsCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgRGFWaW5jaSBib2FyZHM6CiAgICAtIERWX0VWTQogICAgLSBTQ0hNT09HSUUKICAgIC0gU09OQVRBCgogICAgQ2hhbmdlczoKCiAgICAtIFNwbGl0IGludG8gc2VwYXJhdGUgYm9hcmQgZGlyZWN0b3JpZXMKICAgIC0gUmVtb3ZlZCBjaGFuZ2VzIHRvIE1URF9ERUJVRyAob3Igd2hhdGV2ZXIgaXQncyBjYWxsZWQpCiAgICAtIE5ldyBDT05GSUdfQ01EIHBhcnR5IGxpbmUgZm9sbG93ZWQKICAgIC0gU29tZSBjb3NtZXRpYyBmaXhlcywgY2xlYW51cCBldGMuCiAgICAtIFBhdGNoZXMgYWdhaW5zdCB0aGUgbGF0ZXN0IFUtQm9vdCB0cmVlIGFzIG9mIG5vdy4KICAgIC0gRml4ZWQgQ09ORklHX0NNRF9ORVQgaW4gbmV0IGZpbGVzLgogICAgLSBGaXhlZCBDT05GSUdfQ01EX0VFUFJPTSBmb3Igc2NobW9vZ2llLgogICAgLSBNYWRlIHN1cmUgaXQgY29tcGlsZXMgYW5kIHdvcmtzIChmb3JjZWVudigpIGxpbmsgcHJvYmxlbSkgb24gU0NITU9PR0lFIGFuZAogICAgICAgRFZfRVZNLiBDYW4ndCBjaGVjayBpZiBpdCB3b3JrcyBvbiBTT05BVEEsIGRvbid0IGhhdmUgYSBib2FyZCBhbnkgbW9yZSwKICAgICAgIGJ1dCBpdCBhdCBsZWFzdCBjb21waWxlcy4KCiAgICBIZXJlIGlzIGFuIGV4Y2VycHQgZnJvbSBzZXNzaW9uIGxvZyBvbiBTQ0hNT09HSUUuLi4KCiAgICBVLUJvb3QgMS4yLjAtZzZjMzNjNzg1LWRpcnR5IChBdWcgIDcgMjAwNyAtIDEzOjA3OjE3KQoKICAgIERSQU06ICAxMjggTUIKICAgIE5BTkQ6ICAxMjggTWlCCiAgICBJbjogICAgc2VyaWFsCiAgICBPdXQ6ICAgc2VyaWFsCiAgICBFcnI6ICAgc2VyaWFsCiAgICBBUk0gQ2xvY2sgOiAyOTdNSHoKICAgIEREUiBDbG9jayA6IDE2Mk1IegogICAgRVRIIFBIWSAgIDogRFA4Mzg0OCBAIDB4MDEKICAgIFUtQm9vdCA+IGlwcm9iZQogICAgVmFsaWQgY2hpcCBhZGRyZXNzZXM6IDFCIDM4IDNBIDNEIDNGIDUwIDVEIDZGCiAgICBVLUJvb3QgPiBwaW5nIDE5Mi4xNjguMjUzLjEwCiAgICBob3N0IDE5Mi4xNjguMjUzLjEwIGlzIGFsaXZlCiAgICBVLUJvb3QgPgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgogICAgQWNrZWQtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgogICAgQWNrZWQtYnk6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZTRkOTRmMWUzYzI5NjE0Mjg5NjdhMzNiNmZmMjUyMDU2ODM5MWIzCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NSAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGNsZWFudXAuCgogICAgRG8gbm90IGVuYWJsZSBub3JtYWwgZXJyb3JzIGNyZWF0ZWQgZHVyaW5nIHByb2JlIChtYXN0ZXIgYWJvcnQsIHBlcnIsCiAgICBhbmQgcGNpZSBJbnZhbGlkIENvbmZpZ3VyYXRpb24gYWNjZXNzKS4KCiAgICBBZGQgQ09ORklHX1BDSV9OT1NDQU4gYm9hcmQgb3B0aW9uIHRvIHByZXZlbnQgYnVzIHNjYW4uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTM2YjNlNjliNjY3YzNlYjlhNjFlY2U0ZTc4NjQ3ZDNmY2U5ZmMyYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDQgMjAwNyAtMDUwMAoKICAgIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGJhcnNfbnVtIGZpeAoKICAgIFBhc3NpbmcgYmFyc19udW09MCB0byBwY2lhdXRvX3NldHVwX2RldmljZSBzaG91bGQgYXNzaWduIG5vIGJhcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmMGIxODVlNThjYTBhZWM4YWUyYjJhODgwNGVjMGVmNThlZTIxZDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDYgMTc6Mzk6NDQgMjAwNyAtMDUwMAoKICAgIDg2NDFocGNuOiBEbyBjb3JyZWN0IHNpemVkIHBvaW50ZXIgbWF0aC4KCiAgICBXaGVuIEkgcmViYXNlZCBFZCdzIHBhdGNoIGFuZCBjbGVhbmVkIHVwIGEgZmV3IGNvbXBpbGF0aW9uCiAgICBwcm9ibGVtcywgSSBhcHBhcmVudGx5IHJlYmFzZWQgbXkgYnJhaW4gb24gY3JhY2sgZmlyc3QuCiAgICBGaXggdGhhdCBieSBkb2luZyAoY2hhciAqKSBzaXplZCBwb2ludGVyIG1hdGggYXMgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2ZjN2E3ZjViYjMyNzNjOTk1MTE3M2M3ODgwMDFkNDUxMThmMTQxZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMiAxNDo0MjoyMCAyMDA3IC0wNTAwCgogICAgY3B1Lzg2eHggZml4ZXMuCgogICAgUmVtb3ZlIHJldiAxIGZpeGVzLgogICAgQWx3YXlzIHNldCBQSUNHQ1JfTU9ERS4KICAgIEVuYWJsZSBtYWNoaW5lIGNoZWNrIGFuZCBwcm92aWRlIGJvYXJkIGNvbmZpZyBvcHRpb24KICAgIHRvIHNldCBhbmQgaGFuZGxlIFNvQyBlcnJvciBpbnRlcnJ1cHRzLgoKICAgIEluY2x1ZGUgTVNTU1IwIGluIGVycm9yIG1lc3NhZ2UuCgogICAgSXNvbGF0ZSBhIFJBTUJPT1QgYml0IG9mIGNvZGUgd2l0aCAjaWZkZWYgQ0ZHX1JBTUJPT1QuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzVkMjJmOTU3YTg1YTIyYmIzY2QxYWQwODRmYTU0MDQ2MjBkMWM0MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAxMDo0MjoyNSAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2E2ZDU2YzIwOTg5ZmUyNzM2MGFmZTc0M2JkMmE3YWQ0ZDc2ZTQ4ZgpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVRodSBBdWcgMiAxNzo0MjowOCAyMDA3ICswMjAwCgogICAgTWFrZSB1c2Ugb2YgZ2VuZXJpYyA2NGJpdCBkaXZpc2lvbiBpbiBuYW5kX3V0aWwuYwoKICAgIFVzZSBnZW5lcmljIDY0Yml0IGRpdmlzaW9uIGluIG5hbmRfdXRpbC5jLiBUaGlzIG1ha2VzIG5hbmRfdXRpbC5jCiAgICBpbmRlcGVuZGVudCBvZiBhbnkgdG9vbGNoYWluIDY0Yml0IGRpdmlzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IGY3YzA4NmU5NGU4Y2U5YWFkNzI2OGFmOTdmNzNhYTY4ODQ2ODZmMjcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgQXVnIDIgMTc6NDE6MTQgMjAwNyArMDIwMAoKICAgIE1vdmUgNjRiaXQgZGl2aXNpb24gZnJvbSBhdnIzMiB0byBnZW5lcmljIGxpYgoKICAgIE1vdmUgdGhlIDY0Yml0IGRpdmlzaW9uIGZyb20gbGliX2F2cjMyIHRvIGxpYl9nZW5lcmljLiBXaXRoIHRoaXMsIGFsbAogICAgYm9hcmRzIGNhbiBkb19kaXYvX19kaXY2NF8zMiBpZiBuZWVkZWQsIG5vdCBvbmx5IGF2ciBvbmUuIENvZGUgaXMgcHV0CiAgICB0byBsaWJfZ2VuZXJpYywgc28gbm8gbGFyZ2VyIG1lbW9yeSBmb290cHJpbnQgaWYgbm90IHVzZWQuIE5vIGNvZGUKICAgIG1vZGlmaWNhdGlvbnMuIFRoYW5rcyBmb3IgcHJvcG9zYWwgYnkgSMOldmFyZCBTa2lubmVtb2VuLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDE1N2NkYTRkMGMzZDU5MmNjYmIxOWJiZmMwN2Q5MjUxODk0ZjA4OTQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjMxOjIyIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U1IGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2ZTVkZTI2YzZlNzU4MGZhZjE2ZTg3NzQ1Y2Q0ODhiOTJiNDkyZDBjCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozMDozMyAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZTgzOTdmYzc4YzkzOTRkNzFkZTIzM2E0ZDgxMGZiYzkwNDdlNGM3NgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mzg6MjYgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IGNvbW1vbiBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgYWM5ODJlYTVhNGYyZjk5M2VmY2Y1MmRjYTEyMmY1YTU5ZGYwNDdkOApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjg6NDQgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IG1ha2UgcmVsYXRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMTM3ZmRkOWY0NzRlY2I4NTNlZmRhY2U1MjAwNTc2MzA4YzY3ZjE4ZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjg6MDMgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTUgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA3MTRiYzU1YjM1YjZmNmE2NWNjODc0MGEzODQyYTU0M2U4OGNkZWYyCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyNzoxNSAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDE4OTRkZDM4MTEyNGJkYmZiZGFlN2NmM2E2Y2E1MmE4ZWIxZjQ0MjEKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI1OjMxIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBSRUFETUVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2NDFjY2E5NTY5Y2UzNTFkZGIyODdmZDMzNDNkOGIxZGNiNTkxZGI0CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozNzo0MCAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSW5mcmFzdHJ1Y3R1cmUKCiAgICBUaGlzIHNlcmllcyBvZiBwYXRjaGVzIGFkZHMgc3VwcG9ydCBmb3IgMiBib2FyZHMgZnJvbSBOZXRzdGFsIE1hc2NoaW5lbi4KCiAgICBUaGUgSENVNCBoYXMgYSBQUEM0MDVHcHIgYW5kCiAgICB0aGUgSENVNSBoYXMgYSBQUEM0NDBFUFguCgogICAgVGhlIEhDVTQgaGFzIGEgc29tZWhvdyBjb21wbGljYXRlZCBmbGFzaCBzZXR1cCwgYXMgdGhlIGJvb3RlcHJvbSBpcwogICAgb25seSA4IGJpdHMgYW5kIHRoZSBDRkkgMTYgYml0cyB3aWRlLCB3aGljaCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSBhIG1vcmUKICAgIGVsZWdhbnQgc29sdXRpb24uCgogICAgVGhlIEhDVTUgaGFzIG9ubHkgYSBib290ZXByb20gYXMgdGhlIHdob2xlIGNvZGUgd2lsbCBiZSBkb3dubG9hZGVkIGZyb20gYQogICAgZGlmZmVyZW50IGJvYXJkIHdoaWNoIGhhcyBIRCwgQ0QtUk9NLCBldGMgYW5kIHdoZXJlIGFsbCBjb2RlIGlzIHN0b3JlZC4KCiAgICBUaGlzIGlzIG15IHRoaXJkIHRyeS4gSSBpbmNvcnBvcmF0ZWQgYWxsIHN1Z2dlc3Rpb25zIG1hZGUgYnkgV29sZmdhbmcgYW5kIFN0ZWZhbi4KICAgIFRoYW5rcyB0aGVtIGEgbG90LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgM2U0YzkwYzYyMzM2MThmYzE4MDZlNjNmZGU2OGRmNWYzZDZhMDE3MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAwODo0Mjo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IFBPU1QgY29uZmlndXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOWNiMjVkYTU2YWZlMThjZjVlNzA3MmE5MmE5ZDk4ZWE4YWYxZmQ0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgQXVnIDEwIDA4OjI1OjIyIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgcHBjNHh4IFVBUlQgUE9TVCBzdXBwb3J0IHdpdGhvdXQgZXh0ZXJuYWwgdWFydCBjbG9jayAobHdtb241KQoKICAgIFRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFVBUlQgUE9TVCBvbiBwcGM0NHgtYmFzZWQgYm9hcmRzIHdpdGggbm8KICAgIGV4dGVybmFsIHNlcmlhbCBjbG9ja3MgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTljMmZkYWI5MWJjNjMzZTQ2ZmI0MWRiYWE2MjlmODdjY2Y2ZTAwZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNiAxODoxODozNCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IElUWFtHUF0gTz1idWlsZGRpciBidWlsZHMKCiAgICBtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCBgL3dvcmsvd2QvdG1wL2JvYXJkL21wYzgzNDlpdHgvdS1ib290LmxkcycsIG5lZWRlZCBieSBgL3dvcmsvd2QvdG1wL3UtYm9vdCcuICBTdG9wLgoKICAgIEJvdGggdGhlIElUWCBhbmQgSVRYLUdQIGZhaWwgd2hlbiB5b3UgdXNlICJtYWtlIE89PHNvbWUgZGlyPiAuLi4iIG9yCiAgICAiQlVJTERfRElSPTxzb21lIGRpcj4gLi9NQUtFQUxMIC4uLiIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ3ZThiYzg0Njc1OWUwMzdiOGFmMGU1ZjljOWY5Y2ZhN2ExMDUwYzMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMSAxNTowMDo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29ycmVjdCB0aGUgUkVBRE1FIGZvciBERFIgRUNDCgogICAgVXBkYXRlIHRoZSBSRUFETUUgZm9yIEREUiBFQ0MsIGNoYW5nZSB0aGUgbmFtZQogICAgdG8gUkVBRE1FLm1wYzgzeHguZGRyZWNjLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhYWI4YzY3ZDJkZWZlZjczZGMyNmFiMDdmMGMzYWZkMWIwNWQwMTkKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMSAxNTowMDoxNSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29uc29saWRhdGUgdGhlIEVDQyBzdXBwb3J0IG9mIDgzeHgKCiAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZWQgc291cmNlIGNvZGUgb2YgZWNjIGNvbW1hbmQgb24gdGhlIDxib2FyZD4uYywKICAgIGZvciByZXVzZWQsIG1vdmUgdGhlc2UgY29kZSB0byBjcHUvbXBjODN4eCBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDM2NTc1YzU0NGNmMWI2OTY1NGQ4ZmIzMzRiZGE2OWM2ZmYzZGEzNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEF1ZyA0IDEzOjM3OjM5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBidXJzdCBsZW5ndGggZm9yIEREUjIgd2l0aCAzMiBiaXRzCgogICAgVGhlIGJ1cnN0IGxlbmd0aCBzaG91bGQgYmUgNCBmb3IgRERSMiB3aXRoIDMyIGJpdHMgYnVzCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYzI3NGM0ZTA1YjZkYzliMjRlZGM4YWE2MThiMDJmNjA3ZWU2ZWVkCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNTozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzIzRSBSREIKCiAgICBNUEM4MzIzRSBiYXNlZCBib2FyZCB3aXRoIDY0TUIgZml4ZWQgU0RSQU0sIDE2TUIgZmxhc2gsCiAgICBmaXZlIDEwLzEwMCBldGhlcm5ldCBwb3J0cyBjb25uZWN0ZWQgdmlhIGFuIElDUGx1cyBJUDE3NUMKICAgIHN3aXRjaCwgb25lIFBDSSBzbG90LCBhbmQgc2VyaWFsLiAgRmVhdHVyZXMgbm90IHN1cHBvcnRlZAogICAgaW4gdGhpcyBwYXRjaCBhcmUgU0QgY2FyZCBpbnRlcmZhY2UsIDIgVVNCIHBvcnRzLCBhbmQgdGhlCiAgICB0d28gcGhvbmUgcG9ydHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0M2Q5MTAwOWQ1NWZjNWIzZmY4Y2M5NDA1OTdhZjZjNmFhMWQzNTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjI4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXh1cCBnZW5lcmljIHBjaSBmb3IgbGliZmR0CgogICAgYWRkIGxpYmZkdCBzdXBwb3J0IHRvIHRoZSBnZW5lcmljIDgzeHggcGNpIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1N2FjN2E3YjM3MTA5MjQ1YjY5ZGI4MDgzOWViZWUyNjE3OTk2NmEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjIyIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggODM2MCBhbmQgY3B1IGZ1bmN0aW9ucyB0byB1cGRhdGUgZmR0IGJlaW5nIHBhc3NlZAoKICAgIC4uYW5kIG5vdCB0aGUgZ2xvYmFsIGZkdC4gUmVuYW1lIGxvY2FsIGZkdCB2YXJzIHRvIGJsb2Igc28gYXMgbm90IHRvCiAgICBiZSBjb25mdXNlZCB3aXRoIHRoZSBnbG9iYWwgdmFyIHdpdGggdGhlIHNhbWUgdGhyZWUtbGV0dGVyIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmU0MDQ0NTlhNmI3Mzk1NDE1YTU3YmIzNWU4Mzc3ZTNiMmI1YWNiCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjE6MzQ6MjQgMjAwNyAtMDQwMAoKICAgIG1wYzgzeHg6IEZpeCBlcnJvcnMgd2hlbiBDT05GSUdfT0ZfTElCRkRUIGlzIGVuYWJsZWQKCiAgICBTZXZlcmFsIG5vZGUgc3RyaW5ncyB3ZXJlIG5vdCBjb3JyZWN0ICh0cmFpbGluZyBzbGFzaGVzIGFuZCBwcm9wZXJ0aWVzCiAgICAgIGluIHRoZSBzdHJpbmdzKQogICAgQWRkZWQgc2V0dGluZyBvZiB0aGUgdGltZWJhc2UtZnJlcXVlbmN5LgogICAgSW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgYW5kIHVzZSBkZWJ1ZygpIGluc3RlYWQgb2YgcHJpbnRmKCkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZkMDJjOWJiYWMxNzUxYzVlMTkyOTRmMDAwMTAwYjQ4ZDQzYTkyMApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIxOjI3OjMwIDIwMDcgLTA0MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIGZkdF9ub2RlX29mZnNldCgpIHdpdGggZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCkuCgogICAgVGhlIG5ldyBuYW1lIG1hdGNoZXMgbW9yZSBjbG9zZWx5IHRoZSBrZXJuZWwncyBuYW1lLCB3aGljaCBpcyBhbHNvCiAgICBhIG11Y2ggYmV0dGVyIGRlc2NyaXB0aW9uLgoKICAgIFRoZXNlIGFyZSB0aGUgbXBjODN4eCBjaGFuZ2VzIG1hZGUgbmVjZXNzYXJ5IGJ5IHRoZSBmdW5jdGlvbiBuYW1lIGNoYW5nZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YmUzOWE2N2M5ZjhmZWY3MTA3ZjVkZjA5ZDY3MzAwNWYwNGQwOTYzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMDo0MTo1NiAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBkaXNwbGF5IG9mIHJlc2V0IHN0YXR1cwoKICAgIDgzeHggcHJvY2Vzc29yIGZhbWlseSBoYXMgbWFueSByZXNldCBzb3VyY2VzLCBzdWNoIGFzCiAgICBwb3dlciBvbiByZXNldCwgc29mdHdhcmUgaGFyZCByZXNldCwgc29mdHdhcmUgc29mdCByZXNldCwKICAgIEpUQUcsIGJ1cyBtb25pdG9yLCBzb2Z0d2FyZSB3YXRjaGRvZywgY2hlY2sgc3RvcCByZXNldCwKICAgIGV4dGVybmFsIGhhcmQgcmVzZXQsIGV4dGVybmFsIHNvZnR3YXJlIHJlc2V0LgogICAgc29tZXRpbWVzLCB0byBmaWd1cmUgb3V0IHRoZSBmYXVsdCBvZiBzeXN0ZW0sIHdlIG5lZWQgdG8KICAgIGtub3cgdGhlIGNhdXNlIG9mIHJlc2V0IGVhcmx5IGJlZm9yZSB0aGUgcHJvbXB0IG9mCiAgICB1LWJvb3QgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZjk2NThkNzA0OWJmOGM4ZThlMGEwNWRiZTVlOWY3ZTkxYWE1YTVkCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMDo0MTowNCAyMDA3ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBhbGlnbiBidWcgb2YgU0RNQSBidWZmZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCB1c2VyIG1hbnVhbCwgdGhlIFNETUEgdGVtcG9yYXJ5CiAgICBidWZmZXIgYmFzZSBhZGRyZXNzIG11c3QgYmUgNEtCIGFsaWduZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjZkYzJjMmRjNTFmOGI4OGJiOGUyMzFiYzgwY2Q5MmVhZTFkNjQ3NgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTM6MjE6MTIgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFJldmlzZSB0aGUgTVBDODM2MEVNRFMgcmVhZG1lIGRvYwoKICAgIFdoZW4gdGhlIHJldjIueCBzaWxpY29uIG1vdW50IG9uIHRoZSBNUEM4MzYwRU1EUyBiYW9yZCwKICAgIGFuZCBpZiB5b3UgYXJlIHVzaW5nIHRoZSB1LWJvb3QgdmVyc2lvbiBhZnRlciB0aGUgY29tbWl0CiAgICAzZmMwYmQxNTkxMDNiNTM2ZTFjNTRjNmY0NDU3YTA5YjNhYmE2NmNhLgogICAgdG8gbWFrZSB0aGUgZXRoZXJuZXQgaW50ZXJmYWNlIHVzYWJsZSwgd2UgaGF2ZSB0byBzZXR1cAogICAgdGhlIGp1bXBlcnMgY29ycmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3MzliYzk1Nzk3YWFjNGZlZmM0Yzc1YjU1YzdjNzhlNTlkM2VhOWMKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDMgMTM6NDY6MzIgMjAwNyAtMDUwMAoKICAgIEZTTCBJMkMgZHJpdmVyIHByb2dyYW1zIHRoZSB0d28gSTJDIGJ1c3NlcyBkaWZmZXJlbnRseQoKICAgIFRoZSBpMmNfaW5pdCgpIGZ1bmN0aW9uIGluIGZzbF9pMmMuYyBwcm9ncmFtcyB0aGUgdHdvIEkyQyBidXNzZXMgZGlmZmVyZW50bHkuCiAgICBUaGUgc2Vjb25kIEkyQyBidXMgaGFzIGl0cyBzbGF2ZSBhZGRyZXNzIHByb2dyYW1tZWQgaW5jb3JyZWN0bHkgYW5kIGlzCiAgICBtaXNzaW5nIGEgNS11cyBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZjMzZjZiNGQ2ZDYzNjkzZGQ5MjAwODA4YjI0MmRlMWI4NmNiOGU4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAzIDEzOjA0OjM0IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgU0NDUiBwcm9ncmFtbWluZyBpbiBjcHVfaW5pdF9mKCkgdG8gc3VwcG9ydCBhbGwgODN4eCBwcm9jZXNzb3JzCgogICAgVXBkYXRlIHRoZSBjcHVfaW5pdF9mKCkgZnVuY3Rpb24gaW4gY3B1L21wYzgzeHgvY3B1X2luaXQuYyB0byBwcm9ncmFtIHRoZQogICAgYml0ZmllbGRzIGZvciBhbGwgODN4eCBwcm9jZXNzb3JzLglUaGUgY29kZSB0byB1cGRhdGUgc29tZSBiaXRmaWVsZHMgd2FzCiAgICBjb21waWxlZCBvbmx5IG9uIHNvbWUgcHJvY2Vzc29ycy4gIE5vdywgdGhlIGJpdGZpZWxkcyBhcmUgcHJvZ3JhbW1lZCBhcyBsb25nCiAgICBhcyB0aGUgY29ycmVzcG9uZGluZyBDRkdfU0NDUiBvcHRpb24gaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgaGVhZGVyIGZpbGUuCiAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGJvYXJkIGhlYWRlciBmaWxlIHNob3VsZCBub3QgZGVmaW5lIGFueSBDRkdfU0NDUiBtYWNyb3MKICAgIGZvciBiaXRmaWVsZHMgdGhhdCBkb24ndCBleGlzdCBvbiB0aGF0IHByb2Nlc3Nvciwgb3RoZXJ3aXNlIHRoZSBTQ0NSIHdpbGwgYmUKICAgIHByb2dyYW1tZWQgaW5jb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTU0NjI2Njk5OWYwYjliNTEzNzI2MzY2MTQyMTFiODhkOTBmMGYyNQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglGcmkgSnVuIDIyIDEzOjA0OjIyIDIwMDcgKzAyMDAKCiAgICBUUU04MzR4OiBjbGVhbnVwIGNvbmZpZ3VyYXRvbgoKICAgIFJlbW92ZSBpcnJpdGF0aW5nICN1bmRlZiBERUJVRwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZDQ5N2U2YmYwZjViZjYzNzI5YjRhNDdiM2ZkNzg2ZDNjNzdhMWJjCkF1dGhvcjogZGF2aWQuc2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglNb24gSnVuIDE4IDA5OjA5OjUzIDIwMDcgLTA3MDAKCiAgICBNUEM4M3h4OiBGaXggbWFrZWZpbGUgdG8gZ2VuZXJhdGUgY29uZmlnLmggZmlsZSBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5CgogICAgTVBDODN4eDogRml4IHRoZSBNYWtlZmlsZSBjb25maWcgc2VjdGlvbnMgdG8gZ2VuZXJhdGUgdGhlIGluY2x1ZGUvY29uZmlnLmgKICAgIGZpbGUgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWRlZDAyNDJlNDM3MjU5MzY2NzkyZDUyYjdlOWQxZTE5MzFkOGZhNQpBdXRob3I6IExlZSBOaXBwZXIgPExlZS5OaXBwZXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxNCAyMDowNzozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIDgzNjAgc2lsaWNvbiByZXZpc2lvbiAyLjEKCiAgICBUaGlzIGNoYW5nZSBhZGRzIDgzNjAgc2lsaWNvbiByZXZpc2lvbiAyLjEgc3VwcG9ydCB0byB1LWJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjI4MDY0NjlhOGYyYjY5YzgyOWY0ZmQ1MzYxZmRlYmQwY2IwMWI0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEF1ZyA4IDA0OjE0OjI4IDIwMDcgLTA1MDAKCiAgICBUcmVhdCBwcGM2NCBob3N0IGFzIHBwYwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGRjNDI3OWIwOGZmODI0NzJiZWMyZTJjOTA4NTg2MDI0NTlmZWJlOApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOCAwOTowMTo0NiAyMDA3ICswODAwCgogICAgTWlub3IgZml4IGZvciBiaW9zIGVtdWxhdG9yIG1ha2VmaWxlCgogICAgQWRkICQob2JqKSB0byBMSUIgYXZvaWRpbmcgb2JqZWN0cyBiZSBidWlsdCBpbiB0aGUgc291cmNlIGRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2U5ODFkYzg1N2FkZmM4MDM2Y2EyZjZkNWQ1YTA2YzJhOGFhNzdkNgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOCAwODozMzoxMSAyMDA3ICswODAwCgogICAgQWRkIENPTkZJR19CSU9TRU1VIGRlZmluZSB0byBndWFyZCBhbGwgdGhlIGJpb3MgZW11bGF0b3IgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CgogICAgVGhpcyBwYXRjaCBmaXggdGhlIGNvbXBpbGUgaXNzdWUgb24gdGhlIGJvYXJkIHRoYXQgZGlkIG5vdCBlbmFibGUgdGhlIGJpb3MgZW11bGF0b3IKCmNvbW1pdCBlZDgxMDY0MzM1MjJmMmVhODkzM2U5ODA4MzQ2ODYwZDA2MWQ3NzMxCkF1dGhvcjogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTI6Mjc6MjUgMjAwNyAtMDUwMAoKICAgIHRzZWM6IGZpeCBtdWx0aXBsZSBQSFkgc3VwcG9ydAoKICAgIFRoZSBjaGFuZ2UgZW50aXRsZWQgIlJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3giCiAgICBicm9rZSBtdWx0aXBsZSBQSFkgc3VwcG9ydCBpbiB0c2VjLmMuICBUaGlzIGZpeGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkY2I4NGI3MjA4YWRlMGJiZWJiZWI1NmJlYzljMmM2NGY4YjJlZWRlCkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDA5OjA4OjE4IDIwMDcgLTA1MDAKCiAgICB0c2VjOiBBbGxvdyBUZW4gQml0IEludGVyZmFjZSBhZGRyZXNzIHRvIGJlIGNvbmZpZ3VyYWJsZQoKICAgIEFsbG93IHRoZSBhZGRyZXNzIG9mIHRoZSBUZW4gQml0IEludGVyZmFjZSAoVEJJKSB0byBiZSBjaGFuZ2VkIGluIHRoZQogICAgZXZlbnQgb2YgYSBjb25mbGljdCB3aXRoIGFub3RoZXIgZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+Cgpjb21taXQgM2JhNGMyZDY4ZjY1NDFkYjQ2NzdiNGFlYTEyMDcxZjU2ZTZmZjZlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyA4IDA5OjU0OjI2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDFkZTFmMGQzNzNlMDljNzgyZGVhNTU4Mzg1YTA2MjQ3MTExYmE1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDU6MTU6MTggMjAwNyAtMDUwMAoKICAgIFBvcnQgZW5hYmxlZCBmb3IgSTJDIHNpZ25hbHMgYW5kIGNoaXBzZWxlY3RzIHBvcnQgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWEzM2NlNjVhNGM1MWE2OTE5MGRkOGM0MDhmOWUxYzYyYTY2ZTk0ZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA0OjMxOjE4IDIwMDcgLTA1MDAKCiAgICBBZGRlZCBOQU5EIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWFmOWU0NDdiZWIzZTQ5ODgxOGVmOGFkMGI4YzE1OTdjZDUwNjE0OQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA0OjExOjIwIDIwMDcgLTA1MDAKCiAgICBBZGRlZCBJMkMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OWMwM2MxNzVkMjY4OTA5MzE3NmZhY2YxN2M1OGNlMmNiMzIwMDAxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NTg6NTIgMjAwNyAtMDUwMAoKICAgIENoYW5nZWQgQ0ZHX0NMSyB0byBnZC0+YnVzX2NsayBmb3IgQ0ZHX1RJTUVSX1BSRVNDQUxFUi4gQWRkZWQgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgZm9yIHRpbWUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZDFkNjZhZjU0ZDMwNWRlMjlkMGJiZjRhYThjOWU2Mzc1ZjdmNzMxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NTU6MjEgMjAwNyAtMDUwMAoKICAgIEFkZGVkIHVhcnRfZ3Bpb19jb25mKCkgaW4gc2VyaWFsX2luaXQoKSwgc2VwZXJhdGVkIHVhcnQgcG9ydCBjb25maWd1cmF0aW9uIGZyb20gY3B1X2luaXQoKSB0byB1YXJ0X2dwaW9fY29uZigpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmZGU4NGE0NGI3ZTU3NWVhODBmZTBlMmQ1YmUzYjZmNzNkMWU2MzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo0MzozMCAyMDA3IC0wNTAwCgogICAgTW92ZWQgc3luYygpIGZyb20gYm9hcmQgZmlsZSB0byBpbmNsdWRlL2FzbS1tNjhrL2lvLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWU3MzdkODQ3NmU3ZDZhNTk2ZDE2Y2FhZjZhMzg1M2E5YTExOTBhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjMwOjQ0IDIwMDcgLTA1MDAKCiAgICBEZWNsYXJlZCBhdHRyaWJ1dGVzIG9mIHZvaWQgX19taWlfaW5pdCh2b2lkKSBhcyBhbiBhbGlhcyBmb3IgaW50IG1paV9pbml0KHZvaWQpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5OThiZDM3ZWFkODVlOTM5NTM1NTk3MjA3MTBkM2IwNjg1YzgxZTYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzoxOToxMCAyMDA3IC0wNTAwCgogICAgUmVuYW1lZCBDT05GSUdfTUNGU0VSSUFMIHRvIENPTkZJR19NQ0ZVQVJUCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjNGMzNzIyYTM4ZDQwYjBjZjUzN2RkYWU3MmIwNGY0MDg4YjE5MGMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDcgMTY6MTc6MDYgMjAwNyArMDgwMAoKICAgIEFkZCBDT05GSUdfQklPU0VNVSBkZWZpbmUgdG8gZ3VhcmQgYWxsIHRoZSBiaW9zIGVtdWxhdG9yIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgY29tcGlsZSBpc3N1ZSBvbiB0aGUgYm9hcmQgdGhhdCBkaWQgbm90IGVuYWJsZSB0aGUgYmlvcyBlbXVsYXRvcgoKY29tbWl0IGJmMTA2MGVhNGY5ZWFhN2U3ZDE2NGE3MGE3ZDZmMjg5Mzk4ODIwNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDcgMTY6MDI6MTMgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGJyYWNlIGVycm9yIGluIGZzL2ZhdC9mYXQuYwogICAgW3BvaW50ZWQgb3V0IGJ5IFJvZGVyaWsgV2lsZGVuYnVyZ10KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcwNjcxNGQ5N2EwZDA4ZDU5ZWRhNGRlMjI2OGMzOWY1MDQ2ODgzMjkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzo0MTo1MyAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVtb3ZlIGN1dGUgY29kZQoKY29tbWl0IGY1MDBkOWZkZWI1NzYyODg2NTZkYWM0MjcwNTJhZDJjNWNhMGFkMWEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzozNToyNiAyMDA3ICswMjAwCgogICAgW0ZJWF0gRml4IHJvbWZzIGNvZGUKCmNvbW1pdCBhYjRiOTU2ZDMxNDNmOGY4MTc0MDg5MDUzZjVkZmFiYmIwNDc2MmIwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6MzE6NDkgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvZGluZyBzdHlsZSBjbGVhbnVwIC0gV29sZmdhbmcncyBzdWdnZXN0aW9ucwoKY29tbWl0IDZjMzNjNzg1NTdjYTZmOGRhNjhjMDFjZTMzZTI3ODY5NTE5N2QzZjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMjM6MjE6MDUgMjAwNyArMDIwMAoKICAgIEZpeGVkIHR5cG8gaW4gUkVBRE1FIChwb2ludGVkIG91dCBieSBNYXJ0aW4gSm9zdCkuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MzcyMjNhZmE2MWY2NDQ4MGRmMzFjZTQ0MGE5Y2IzODZkZjRhODE0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMjE6MTA6MTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQmFtYm9vIFJFQURNRSBkb2MvUkVBRE1FLmJhbWJvbwoKICAgIEFzIHN1Z2dlc3RlZCBieSBFdWdlbmUgTydCcmllbiA8RXVnZW5lLk8nQnJpZW5AYWR2YW50ZWNoYW10LmNvbT4sCiAgICBoZXJlIGFuIHVwZGF0ZWQgQmFtYm9vIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWM3ZTRiMDYyMTRkYjYxYmIyMWYxYmNiZTU3Yzk3NTE5NjY5YmFhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAwMjoxNzozNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMjE4MzhjYzdlYjE3ODM3MGZmNjJhYTA1OTIwYTU4MmUxMmFjMzIyCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTowMzoyMiAyMDA3ICswODAwCgogICAgUmVtb3ZlIHRoZSBiaW9zIGVtdWxhdG9yIGZyb20gTUFJIGJvYXJkLgoKICAgIFRoZSBiaW9zIGVtdWxhdG9yIGluIHRoZSBNQUkgYm9hcmQgY2FuIG5vdCBwYXNzIGNvbXBpbGUKICAgIGFuZCBoYXZlIGEgbG90IG9mIGNyYXAgaW4gaXQuIHJlbW92ZSBpdCBhbmQgd2lsbCBoYXZlIGEKICAgIGNsZWFuIGFuZCBzbWFsbCBiaW9zIGVtdWxhdG9yIGluIHRoZSBkcml2ZXJzIGRpcmVjdG9yeQogICAgd2hpY2ggY2FuIGJlIHVlc2VkIGZvciBldmVyeSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2MTgzMzI0MDliYjk2ZjQ0NDhkMTcxMjg5OTM2OWZjODBjMGI0ODkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDEzIDEyOjE0OjU5IDIwMDcgKzA4MDAKCiAgICBGaXggc29tZSBjb21waWxlIGlzc3VlcyBmb3IgTUFJIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGY0NjBhMWVlMTQ4YjY0OGVlMjQyYzMxNTc2NTAyODdkNDI5NjI2MApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTMgMTI6MTQ6NTggMjAwNyArMDgwMAoKICAgIENvbmZpZ3VyYXRpb25zIGZvciBBVEkgdmlkZW8gY2FyZCBCSU9TIGVtdWxhdG9yCgogICAgVGhpcyBwYXRjaCBhZGQgZGVmaW5pdGlvbiBvZiB0aGUgQklPUyBlbXVsYXRvciBhbmQgdGhlIEFUSSBmcmFtZWJ1ZmZlcgogICAgZHJpdmVyIGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlY2U5MmY4NTA1M2I4ZGY2MTNlZGNmMDViMjZhNDE2Y2JjM2Q2MjljCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDA4OjM0OjU2IDIwMDcgKzA4MDAKCiAgICBUaGlzIGlzIGEgQklPUyBlbXVsYXRvciwgcG9ydGluZyBmcm9tIFNjaVRlY2ggZm9yIHUtYm9vdCwgbWFpbmx5IGZvcgogICAgQVRJIHZpZGVvIGNhcmQgQklPUy4gYW5kIGNhbiBiZSB1c2VkIGZvciB4ODYgY29kZSBlbXVsYXRpb24gYnkgc29tZQogICAgbW9kaWZpY2F0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUwNzIxODhhY2FiZGUzMTc4ZmFjN2Y1YTU5NzE1MGU2ZTc0ZmQ0MGMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDYgMDg6MzM6MzMgMjAwNyArMDgwMAoKICAgIFRoaXMgaXMgYSBmcmFtZWJ1ZmZlciBkcml2ZXIgZm9yIEFUSSB2aWRlbyBjYXJkLCBjYW4gd29yayBmb3IgUENJOTIwMCwKICAgIFgzMDAsIFg3MDAsIFg4MDAgQVRJIHZpZGVvIGNhcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MjhiZTM4OWU2NWZkNDdmMzRiMzNjMjU5NjI3MWViNGRiNzUxYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMDE6MDE6NDkgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODA5MmZlZjRjMjliMzk1OTU4YmI2NDk2NDdkYTdlMzc3NTczMTUxNwpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPE1hcnRpbi5LcmF1c2VAdHFzLmRlPgpEYXRlOglUdWUgRGVjIDEyIDE0OjI2OjAxIDIwMDYgKzAxMDAKCiAgICBBZGQgZnVuY3Rpb25zIHRvIGxpc3Qgb2YgZXhwb3J0ZWQgZnVuY3Rpb25zCgogICAgQWRkaXRpb25hbGx5IGV4cG9ydCB0aGUgZm9sbG93aW5nIGZ1Y3Rpb25zICh0byBtYWtlIHRyYWJfY29uZmlnIGJ1aWxkIGFnYWluKToKICAgIC0gc2ltcGxlX3N0cnRvbCgpCiAgICAtIHN0cmNtcCgpCgogICAgQWxzbyBidW1wIHRoZSBBQkkgdmVyc2lvbiB0byByZWZsZWN0IHRoaXMgY2hhbmdlCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNjNjZWM1ODE0ZmFiNWQyYjFjODY5ODIzMjc0MzM4MDdhNWFjMDI0OQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMiAxNDowOTo0OSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4NjQxJ3MgUENJL1BDSS1FIGRyaXZlciBhIGNvbW1vbiBkcml2ZXIgZm9yIG1hbnkgRlNMIHBhcnRzLgoKICAgIEFsbCBvZiB0aGUgUENJL1BDSS1FeHByZXNzIGRyaXZlciBhbmQgaW5pdGlhbGl6YXRpb24gY29kZSB0aGF0CiAgICB3YXMgaW4gdGhlIE1QQzg2NDFIUENOIHBvcnQgaGFzIG5vdyBiZWVuIG1vdmVkIGludG8gdGhlIGNvbW1vbgogICAgZHJpdmVycy9mc2xfcGNpX2luaXQuYy4gIEluIGEgc3Vic2VxdWVudCBwYXRjaCwgdGhpcyB3aWxsIGJlCiAgICB1dGlsaXplZCBieSB0aGUgODV4eCBwb3J0cyBhcyB3ZWxsLgoKICAgIENvbW1vbiBQQ0ktRSBJTU1BUCByZWdpc3RlciBibG9ja3MgZm9yIEZTTCA4NXh4Lzg2eHggYXJlIGFkZGVkLgoKICAgIEFsc28gZW5hYmxlIHRoZSBzZWNvbmQgUENJLUV4cHJlc3MgY29udHJvbGxlciBvbiA4NjQxCiAgICBieSBnZXR0aW5nIGl0cyBCQVRTIGFuZCBDRkdfIHNldHVwIHJpZ2h0LgoKICAgIEZpeGVkIGEgdTE2IHZlbmRvciBjb21waWxlciB3YXJuaW5nIGluIEFIQ0kgZHJpdmVyIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTI3NGNhNGY2ZDY4ODMwZTdjOTE2Zjg5NzU2MWNmZjhjNDEwMWMzOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDIyOjMzOjA1IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKY29tbWl0IGFmODM3N2Q0ZWIzYTBhYzVhODMxODMwZDVjZTYzZmJmNjVmZWNiN2YKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNjoxMzozMSAyMDA3ICswMjAwCgogICAgW0ZJWF0gWGlsaW54IFVhcnRsaXRlIGRyaXZlcgogICAgQmVjYXVzZSBQUEM0MDUgY2FuIHVzZSBVQVJUTElURSBzZXJpYWwgaW50ZXJmYWNlIGFuZAogICAgTWljcm9ibGF6ZSBjYW4gdXNlIFVhcnQxNjU1MCBzZXJpYWwgaW50ZXJmYWNlIG5vdCBvbmx5IFVhcnRsaXRlLgoKY29tbWl0IDk4ODg5ZWRkNTBhYWRmODYyMDcxZWI1NjY0NzQ3YWQwZDU2OGEyMGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNTo1NDo1MyAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ2hhbmdlIGNvbmZpZ3VyYXRpb24gZm9yIFhVUFYyUCBNaWNyb2JsYXplIGJvYXJkCgpjb21taXQgNTM3MDkxYjRlZWQ5MzAyODY1ZDAzZmVmM2Y3MjEyYjRmZTVjZjI4ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE1OjUzOjUwIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZGVkIHN1cHBvcnQgZm9yIFhpbGlueCBFbWFjIGNvbW11bml0eSBkcml2ZXIKCmNvbW1pdCA4NmIxMTZiMWIxZTE2NWNhNDg0MGRhZWZlZDM2ZDJlM2I4NDYwMTczCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEF1ZyAzIDEyOjA4OjE2IDIwMDcgKzAyMDAKCiAgICBjbTFfcXAxIC0+IGNtNTIwMDogc2luZ2xlIFUtQm9vdCBpbWFnZSBmb3IgbW9kdWxlcyBmcm9tIHRoZSBjbTUyMDAgZmFtaWx5LgoKICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgbW9kdWxlcyBmcm9tIHRoZSBTY2hpbmRsZXIgY201MjAwIGZhbWlseSB0byB1c2UgYQogICAgc2luZ2xlIFUtQm9vdCBpbWFnZToKICAgIC0gcmVuYW1lIGNtMV9xcDEgdG8gY201MjAwCiAgICAtIGFkZCBydW4tdGltZSBtb2R1bGUgZGV0ZWN0aW9uCiAgICAtIHBhcmFtZXRyaXplIFNEUkFNIGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBtb2R1bGUgd2UgYXJlIHJ1bm5pbmcgb24KCiAgICBGZXcgbWlub3IsIGJvYXJkLXNwZWNpZmljIGZpeGVzIGluY2x1ZGVkIGluIHRoaXMgcGF0Y2g6CiAgICAtIGJldHRlciBNQUMgYWRkcmVzcyBoYW5kbGluZwogICAgLSB1cGRhdGVkIGRlZmF1bHQgZW52aXJvbm1lbnQgKCd1cGRhdGUnIGNvbW1hbmQgdXNlcyAre2ZpbGVzaXplfSBub3cpCiAgICAtIGltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIGluIHRoZSBhdXRvLXVwZGF0ZSBjb2RlCiAgICAtIGFsbG93IGJvb3RpbmcgVS1Cb290IGZyb20gUkFNIChDRkdfUkFNQk9PVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM3ZTcxN2ViYzJiMDQ0ZDdhNzEwNjI1NTJjOWRjMGY1NGVhOWI3NzkKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMyAwNDowNToyNSAyMDA3IC0wNTAwCgogICAgQWRkIE1hcnZlbGwgMTE0OSBQSFkgc3VwcG9ydCB0byB0aGUgVFNFQwoKY29tbWl0IGIxYjU0ZTM1MjAyOGVkMzcwYzNhYTk1ZDZmZGViOWQ2NGM1ZDJmODYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMjE6Mjc6NDYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2M2UyMjc2NGQyZjg2NTNmNjg4ODhjNjY3ZWI2NWIzOTk2YjUyNjgwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDEwOjExOjE4IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjbGVhbnVwIG9mIDxib2FyZD5fbmFuZCBidWlsZCBydWxlcy4KCmNvbW1pdCA5Y2E4ZDc5ZGUwOTZjNjViOWI5Yzg2NzI1OWIzZmY0Njg1Zjc3NWVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMDg6MzM6NTYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM5MjQwOTgxMjIwNmFjNjdhN2ZhN2FhZTI5ODUzOWE5YzM4MDRhNDYKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxODo1MTo0OCAyMDA3ICswMjAwCgogICAgW3BwYzQ0MFNQZV0gR3JhY2VmdWwgcmVjb3ZlcnkgZnJvbSBtYWNoaW5lIGNoZWNrIGR1cmluZyBQQ0llIGNvbmZpZ3VyYXRpb24KCiAgICBEdXJpbmcgY29uZmlnIHRyYW5zYWN0aW9ucyBvbiB0aGUgUENJZSBidXMgYW4gYXR0ZW1wdCB0byBzY2FuIGZvciBhCiAgICBub24tZXhpc3RlbnQgZGV2aWNlIGNhbiBsZWFkIHRvIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gd2l0aCBjZXJ0YWluCiAgICBwZXJpcGhlcmFsIGRldmljZXMuIEluIG9yZGVyIHRvIGF2b2lkIGNyYXNoaW5nIGluIHN1Y2ggc2NlbmFyaW9zIHRoZQogICAgaW5zdHJ1bWVudGVkIHZlcnNpb25zIG9mIHRoZSBjb25maWcgY3ljbGUgcmVhZCByb3V0aW5lcyBhcmUgaW50cm9kdWNlZCwgc28KICAgIHRoZSBleGNlcHRpb25zIGZpeHVwcyBmcmFtZXdvcmsgY2FuIGdyYWNlZnVsbHkgcmVjb3Zlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGRlYzk5NTU4YjllYTc1YTM3OTQwZDA3ZjQxYTM1NjVhNTBiNTRhZDEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSnVsIDMxIDE4OjE5OjU0IDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBTZXBhcmF0ZSBzZXR0aW5ncyBmb3IgUENJZSBidXMgbnVtYmVyaW5nIG9uIDQ0MFNQZSByZXYuQQoKICAgIFRoaXMgYnJpbmdzIGJhY2sgc2VwYXJhdGUgc2V0dGluZ3MgZm9yIFBDSWUgYnVzIG51bWJlcnMgZGVwZW5kaW5nIG9uIGNoaXAKICAgIHJldmlzaW9uLCB3aGljaCBnb3QgZWxpbWluYXRlZCBpbiAyYjM5M2IwZjBhZjg0MDJlZjQzYjI1YzE5NjhiZmQyOTcxNGRkZmZhCiAgICBjb21taXQuIDQ0MFNQZSByZXYuIEEgZG9lcyBOT1Qgd29yayBwcm9wZXJseSB3aXRoIHRoZSBzYW1lIHNldHRpbmdzIGFzIGZvcgogICAgdGhlIHJldi4gQiAobm8gZGV2aWNlcyBhcmUgc2VlbiBvbiB0aGUgYnVzIGR1cmluZyBlbnVtZXJhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjZGQ5MTdhNDNkYTZmYTdmYzhmNTRhM2NjOWY0MjBjZTVlY2YzMTk3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDAwOjQ4OjQ1IDIwMDcgKzAyMDAKCiAgICBGaXggYnVpbGQgZXJyb3JzIGFuZCB3YXJuaW5ncyAvIGNvZGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQyZjY4MDA2NjI3ZWRhNmNiNmM3ZjM2NGJkZGY2MjFkYmZkMmZjNjgKQXV0aG9yOiBFdWdlbmUgT0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTA6MjQ6NTYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQmFtYm9vIDQ0MEVQIHN1cHBvcnQKCiAgICBDaGFuZ2VkIHN0b3JhZ2UgdHlwZSBvZiBjZmdfc2ltdWxhdGVfc3BkX2VlcHJvbSB0byBjb25zdAogICAgQ2hhbmdlZCBzdG9yYWdlIHR5cGUgb2YgZ3Bpb190YWIgdG8gc3RhY2sgc3RvcmFnZQogICAgKENhbm5vdCBhY2Nlc3MgZ2xvYmFsIGRhdGEgZGVjbGFyYXRpb25zIGluIC5ic3MgdW50aWwgYWZlciBjb2RlIHJlbG9jYXRpb24pCgogICAgSW1wcm92ZWQgU0RSQU0gdGVzdHMgdG8gY2F0Y2ggcHJvYmxlbXMgd2hlcmUgZGF0YSBpcyBub3QgdW5pcXVlbHkgYWRkcmVzc2FibGUKICAgIChlLmcuIGluY29ycmVjdGx5IHByb2dyYW1tZWQgU0RSQU0gcm93IG9yIGNvbHVtbnMpCgogICAgQWRkZWQgQ09ORklHX1BST0dfU0RSQU1fVExCIHRvIHN1cHBvcnQgQmFtYm9vIFNJTU0vRElNTSBtb2R1bGVzCiAgICBGaXhlZCBBTTI5TFYzMjBEVCAoT3BDb2RlIEZsYXNoKSBzZWN0b3IgbWFwCgogICAgU2lnbmVkLW9mZi1ieTogRXVnZW5lIE9CcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVhOWY2YmNlMzgzY2M5ZmJjZGVlMjhiNTgzNjEwOWIxYTZkYmE1NzQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMzEgMDg6Mzc6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0MEVQeCBsd21vbjUgYm9hcmQgc3VwcG9ydAoKICAgIC0gQ2xlYXIgRUNDIHN0YXR1cyByZWdzIGFmdGVyIEVDQyBQT1NUIHRlc3QKICAgIC0gU2V0IGRjYnogZm9yIEVDQyBnZW5lcmF0aW9uIHdpdGggY2FjaGVzIGVuYWJsZWQgYXMgZGVmYXVsdAogICAgLSBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjdhNTI4ZmI0MTQzM2M0YzFlMmI1ZDZiZDNmZDhkNzg2MDZmYzcyNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAzMCAxMTowNDo1NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBPbmx5IHByaW50IEVDQyByZWxhdGVkIGluZm8gd2hlbiB0aGUgZXJyb3IgYmlzIGFyZSBzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTM2MjIwYTRiYWYxZjE4OGJhNjBmMTdlOWQwZjA0MzA2OWIxMzYyYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE2OjQ0OjMxIDIwMDcgKzAyMDAKCiAgICBuZXcgRlBHQSBpbWFnZSBmb3IgUExVNDA1IGJvYXJkCgogICAgbmV3IEZQR0EgaW1hZ2UgZm9yIFBMVTQwNSBib2FyZCB3aXRoIGltcHJvdmVkIENvbXBhY3RGbGFzaCB0aW1pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4OTkzZTU0YjZmMzk3OTczNzk0ZjNkNmY0N2QzYjNjMGM5OGRkNGY2CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNDo0Mzo1OSAyMDA3ICswMjAwCgogICAgW0FEUzUxMjFdIFN1cHBvcnQgZm9yIHRoZSBBRFM1MTIxIGJvYXJkCgogICAgVGhlIGZvbGxvd2luZyBNUEM1MTIxZSBzdWJzeXN0ZW1zIGFyZSBzdXBwb3J0ZWQ6CgogICAgLSBsb3ctbGV2ZWwgQ1BVIGluaXQKICAgIC0gTk9SIEJvb3QgRmxhc2ggKGNvbW1vbiBDRkkgZHJpdmVyKQogICAgLSBERFIgU0RSQU0KICAgIC0gRkVDCiAgICAtIEkyQwogICAgLSBXYXRjaGRvZwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+Cgpjb21taXQgMTg2M2NmYjdiMTAwYmEwZWUzNDAxNzk5NDU3YTAxZGMwNTg3NDVmOApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTQ6MjI6MDQgMjAwNyArMDIwMAoKICAgIFtQUENdIFJlbW92ZSB1bnVzZWQgTVNSX1VTRVIgZGVmaW5pdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQwMjRiYjcyZGQ4MTY5NWVjMDk5YjIxOTllZGEwZDI3YzYyM2U2MgpBdXRob3I6IEpvaG4gT3RrZW4gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KRGF0ZToJVGh1IEp1bCAyNiAxNzo0OToxMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3VwcG9ydCBmb3IgQU1DQyA0MDVFUCBUYWlodSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gT3RrZW4gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KCmNvbW1pdCBiNjYwOTFkZTZjNzM5MDYyMDMxMmMyNTAxZGIyM2Q4MzkxZTdjYWJiCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDI2IDE1OjA4OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogVXBkYXRlIExpbWUgaW5pdGlhbGl6YXRpb24KCiAgICBDaGFuZ2UgTGltZSBTRFJBTSBpbml0aWFsaXphdGlvbiB0byBub3cgc3VwcG9ydCAxMDBNSHogYW5kCiAgICAxMzNNSHogKGlmIGVuYWJsZWQpLiBBbHNvIHRoZSBmcmFtZWJ1ZmZlciBpcyBpbml0aWFsaXplZCB0bwogICAgZGlzcGxheSBhIGJsdWUgcmVjdGFuZ2xlIHdpdGggYSB3aGl0ZSBib3JkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlmMjRhODA4ZjE3ZmMwZjM3YjdmYjQ4MDVmNzM0NzQxMzM1Y2FlY2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMjQgMDk6NTI6NTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBTdXBwb3J0IGZvciAxMjggTUJ5dGUgTk9SIEZMQVNIIGFkZGVkCgogICAgVGhlIHVzZWQgSW50ZWwgTk9SIEZMQVNIIGNoaXBzIGhhdmUgaW50ZXJuYWxseSB0d28gZGllcywgYW5kIGFyZSBub3cKICAgIHRyZWF0ZWQgYXMgdHdvIHNlcGVyYXRlIGNoaXBzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWRmNWJkZTE3OWVjZmJkMGE5NjEzMGQxODk5NmE5NjUxOGI3ODVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDI0IDA3OjIwOjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBsd21vbjUgaW50ZXJydXB0IGNvbnRyb2xsZXIgc2V0dXAgKHBvbGFyaXR5LCB0cmlnZ2VyLi4uKQoKICAgIEFzIHN1Z2dlc3RlZCBieSBIYWthbiBFcnlpZ2l0LCBoZXJlIGFuIHVwZGF0ZWQgc2V0dXAgZm9yIHRoZSBsd21vbjUKICAgIGludGVycnVwdCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzFkOTZlYWM4MTMwYjUzYTkxZjkzY2QxMGM3MGZjYTBkYjE4ZDUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDIwIDE1OjAzOjQ0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgd2l0aCBkZWZhdWx0IEdQSU8gb3V0cHV0IHZhbHVlCgogICAgQXMgc3BvdHRlZCBieSBNYXR0aGlhcyBGdWNocywgdGhlIGRlZmF1bHQgb3V0cHV0IHZhbHVlcyBmb3IgYWxsIEdQSU8xCiAgICBvdXRwdXRzIHdlcmUgbm90IHNldHVwIGNvcnJlY3RseS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MzFlM2U4YjgzMWYzNTcwNTY0NDhmYTU3MzEzN2Q1ZmIzNzAwMGZkCkF1dGhvcjogUGF2ZWwgS29sZXNuaWtvdiA8Y29uY29yZEBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1bCAyMCAxNTowMzowMyAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIEVDQyBQT1NUIGZvciB0aGUgbHdtb241IGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIEVDQyBQb3N0IHRlc3QgZm9yIHRoZSBMd21vbjUgYm9hcmQgYmFzZWQKICAgIG9uIFBQQzQ0MEVQeCB0byBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogUGF2ZWwgS29sZXNuaWtvdiA8Y29uY29yZEBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjMzAyM2I5Zjk1ZDdhYzk1OWE3NjQ0NzFhNjUwMDEwNjJhZWNmNDEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSnVsIDE5IDE3OjEyOjI4IDIwMDcgKzAyMDAKCiAgICBGaXggYnJlYWthZ2Ugb2YgOHh4IGJvYXJkcyBmcm9tIHJlY2VudCBjb21taXQuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbmVnYXRpdmUgY29uc2VxdWVuY2VzIGZvciA4eHggb2YgdGhlIHJlY2VudAogICAgInBwYzR4eDogQ2xlYW4gdXAgNDQwIGV4Y2VwdGlvbnMgaGFuZGxpbmciIGNvbW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM4ODNmNmVhMzJkY2U5MWYwNzY3MGIzYWFmZWNmNmM5OWIxZTUzNDEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTM6MTE6MTIgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4NDhlYzg1OGY3NGVkNmRhYjA2ZmI2ZDVkZGM5MzNlMGExMzI4YmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDI6MTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJhNDlmYzE3ZDA5MDIwZTdlYmQ5NTM2Njk0ZDk5ZDIwZTQxOWZjYjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDE6MzggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQU1DQyBMdWFuIHVzZXMgdGhlIG5ldyBib2FyZHNwZWNpZmljIEREUjIgY29udHJvbGxlciBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjNmMTc0MjJhZWIwM2ZiODFhN2FjOGM3OGQyYjA1ZDA1YWE0Y2Y5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAwOjQzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFN1cHBvcnQgZm9yIFl1Y2NhIGJvYXJkIHdpdGggNDQwU1BlIFJldiBBIGFkZGVkIHRvIDQ0eF9zcGRfZGRyMi5jCgogICAgVGhlIG5ldyBib2FyZHNwZWNpZmljIEREUjIgY29udHJvbGxlciBjb25maWd1cmF0aW9uIGlzIHVzZWQgZm9yIHRoZSBZdWNjYQogICAgYm9hcmQuIE5vdyB0aGUgWXVjY2EgYm9hcmQgd2l0aCA0NDBTUGUgUmV2LiBBIGNoaXBzIGlzIGFsc28gc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZWQxNGFkZGY5N2M4Y2Q4ZjUzMWU5YWU3YjJkM2UyMjJmZmZkNTNlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDA5OjU3OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBuZXcgd2VhayBmdW5jdGlvbnMgdG8gc3VwcG9ydCBib2FyZHNwZWNpZmljIEREUjIgY29uZmlndXJhdGlvbgoKICAgIFRoZSBuZXcgIndlYWsiIGZ1bmN0aW9ucyBkZHJfd3JkdHIoKSBhbmQgZGRyX2Nsa3RyKCkgYXJlIGFkZGVkIHRvIGJldHRlcgogICAgc3VwcG9ydCBub24gZGVmYXVsdCwgYm9hcmRzcGVjaWZpYyBERFIoMikgY29udHJvbGxlciBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NzQzYTkyMDdhMzcwYjkwZjA5YjIwZWJkNjExNjdjODA2YjkzN2YzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDA4OjUzOjUxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCByZW1vdmVfdGxiKCkgZnVuY3Rpb24gdG8gcmVtb3ZlIGEgbWVtIGFyZWEgZnJvbSBUTEIgc2V0dXAKCiAgICBUaGUgbmV3IGZ1bmN0aW9uIHJlbW92ZV90bGIoKSBjYW4gYmUgdXNlZCB0byByZW1vdmUgdGhlIFRMQidzIHVzZWQgdG8KICAgIG1hcCBhIHNwZWNpZmljIG1lbW9yeSByZWdpb24uIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHRoZSBERFIoMikKICAgIHNldHVwIHJvdXRpbmVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUgU0RSQU0gYXJlYSB0ZW1wb3JhcmlseSBhcyBhIGNhY2hlZAogICAgYXJlYSAoZm9yIHNwZWVkdXAgb24gYXV0by1jYWxpYnJhdGlvbiBhbmQgRUNDIGdlbmVyYXRpb24pIGFuZCBsYXRlcgogICAgbmVlZCB0aGlzIGFyZWEgdW5jYWNoZWQgZm9yIG5vcm1hbCB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGMwYTljZGExYmRlMzcxMDY1MjA0NzZlZDQ4NmJkNjdlYjhkMzBhZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEp1bCAxNiAwMDozMTowNyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBTdXBwb3J0IGZvciBYaWxpbnggRW1hY0xpdGUgY29udHJvbGxlcgoKY29tbWl0IDNhNmNhYjg0NGNmNzRmNzY2MzlkNzk1ZTBiZTg3MTdlMDJjODZhZjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSnVsIDE0IDIyOjUxOjAyIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MjgwZjM1MmM4ZGEzM2IxZDdmYmY0NDg3Njg3MTdkOWUxNmZmOWExCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDEzOjExOjI4IDIwMDcgKzAyMDAKCiAgICBbRklYXSBzdXBwb3J0IGZvciBzaW1wbHkgbWVhc3VyaW5nIHRpbWUKCmNvbW1pdCA5MWJiNGNhNjY1ZDJlMGNmN2Y2MGM0YjViMzcwOTkwMjUwZWMwYzQzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDEyOjQxOjIzIDIwMDcgKzAyMDAKCiAgICBbRlNdIEFkZGVkIHN1cHBvcnQgZm9yIFJPTUZTCgpjb21taXQgMDExNTk1MzA3NzMxYTdhNjdhNzQ0NWQxMDdjMjc5ZDAzMWU4YWI5NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEp1bCAxNCAwMTowNjo1OCAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKY29tbWl0IDVhMmYxMDk4ZDgxYWQ1OGIzMDllNWU1NThkMDQ5MjY0MzE2NmE3OTkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMDA6MTg6NDggMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3VwcG9ydCB0aW1lIHdpdGhvdXQgdGltZXIKCmNvbW1pdCBhNDc2Y2EyYWMyMjE3ZGRkMDVhMmJmMGM1MTQwNzU4MTRiMTBhM2MwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDEzIDIxOjQzOjU1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSBwcm9ibGVtIHdpdGggZGlzYWJsZWQgQkFSUkVMIFNISUZURVIKCmNvbW1pdCA1NWUyNmFkNjIxMDdkMmYxNGY3NTdkZTNhZTBiMTRiOWFhN2FlZDk0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDEzIDIxOjQxOjQ0IDIwMDcgKzAyMDAKCiAgICBbRklYXSBjb3JyZWN0IGhlbHAgZm9yIHJzcHIKCmNvbW1pdCBmYWQ2MzQwNzE1NGY0NjI0NmNlODBkNTNhOWM2NjlhNDQzNjJhYzY3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVsIDEzIDA5OjU0OjE3IDIwMDcgKzAyMDAKCiAgICBtYWtlIHNob3dfYm9vdF9wcm9ncmVzcyAoKSB3ZWFrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDkwNzkwMjQ3MjM5MWI2Y2ExODc2ZWMzMDA2ODc1NjJlY2FmNDU5YjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTMgMDg6MjY6MDUgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBUaGUgRElBRyBMRURzIGFyZSBub3cgYmxpbmtpbmcsIGlmIGFuIGVycm9yIG9jY3VyCgkJLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBhMmUxYzcwOThjZjk1NzQzODZiMGM5Njg0MWRmYzhlYTVjYzkzNTc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEyIDE2OjMyOjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSByZWNlaXZlIGJ1ZmZlciBoYW5kbGluZyBpbiB0aGUgNHh4IGVtYWMgZHJpdmVyCgogICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBidWcgaW4gdGhlIHJlY2VpdmUgYnVmZmVyIGhhbmRsaW5nLCB0aGF0CiAgICBjb3VsZCBsZWFkIHRvIHByb2JsZW1zIHVwb24gaGlnaCBuZXR3b3JrIHRyYWZmaWMgKGJyb2FkY2FzdHMuLi4pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMzlmMDVlZTRkZDRjZmUwYjUwZjI1MWI1MzNkY2ViZTllNjdjMzYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMiAwMTo0NTozNCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgbWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YTU2YWYzYjUyMmJhNDdmYjMzYTNmZWU4NGQyM2JmMWU1NDI5NjU0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVuIDggMTY6NDE6MTggMjAwNyAtMDUwMAoKICAgIFJlbW92ZSBlcnJvbmVvdXMgZXJyYXRhIGNvZGUgZnJvbSBNYXJ2ZWwgODhFMTExMVMgZHJpdmVyCgogICAgVGhlIE1hcnZlbCA4OEUxMTExUyBkcml2ZXIgZm9yIHRoZSBUU0VDIHdhcyBjb3BpZWQgZnJvbSB0aGUKICAgIDg4RTExMDEgZHJpdmVyLCBhbmQgaW5jbHVkZWQgYSBmaXggZm9yIGFuIGVycmF0dW0gd2hpY2ggZG9lcyBub3QKICAgIGV4aXN0IG9uIHRoYXQgcGFydC4gIE5vdyBpdCBpcyByZW1vdmVkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4MmVmY2YyM2ZkMDM2NDdlMDFlMmZiZTI4YTdhMzYyMzkxNTZjYzAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNSAxNjozODo0NCAyMDA3IC0wNTAwCgogICAgRnJvbTogZXJhbiBsaWJlcnR5IDxlcmFuLmxpYmVydHlAZ21haWwuY29tPgoKICAgIGFkZHMgdGhlIHJlc2V0IHJlZ2lzdGVyIHRvIDg1eHggaW1tYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFcmFuIExpYmVydHkgPGVyYW4ubGliZXJ0eUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDNlYzBkOTQzYTA0NWJkYjk5ZTE1OWU3YmJjNzc0MzBlMDlmMTFkNwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAxMCAxNzo1MDowMSAyMDA3IC0wNTAwCgogICAgUG9saXNoZWQgdGhlIDg1eHggQURTIGNvbmZpZyBmaWxlcwoKICAgIE1hZGUgdGhlIGJvb3QgY29tbWFuZHMgdXNlIGRldmljZSB0cmVlcyBieSBkZWZhdWx0LgogICAgQWxzbyBtb3ZlZCB0aGUgcmFtZGlzayB0byAxMDAwMDAwIChJIHRoaW5rIHRoZSBwcmV2aW91cyBhZGRyZXNzCiAgICB3YXMgZ2V0dGluZyBvdmVycmlkZGVuIGR1cmluZyBib290KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmZiMzdiMzJkMWIwYjAzZjE4MDc3ZGJhNDljYzY2YTZlNzZmYTAzOApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTowMzozMiAyMDA3IC0wNTAwCgogICAgODU0NGRzOiBGaXggTWFrZWZpbGUgYWZ0ZXIgbW92aW5nIHBpeGlzIHRvIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBUaGUgT0JKVFJFRSAhPSBTUkNUUkVFIGJ1aWxkIHNjZW5hcmlvIHdhcyBicm9rZW4uCiAgICBUaGlzIGZpeGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJhM2NlZTQzYzNiNzFmYTViOGQ5MWRiMTlmMDUwNjc4NjUyOTBmM2UKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAwMDo1NDoyMCAyMDA3IC0wNTAwCgogICAgdHNlYzogRml4IFBIWSBjb2RlIHRvIG1hdGNoIGZpcnN0IGRyaXZlcgoKICAgIEphcnJvbGQgV2VuIG5vdGljZWQgdGhhdCB0aGUgZ2VuZXJpYyBQSFkgY29kZSBhbHdheXMgbWF0Y2hlcwogICAgdW5kZXIgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uICBDaGFuZ2UgaXQgc28gdGhlIGZpcnN0IG1hdGNoCiAgICB3aW5zLCBhbmQgKm9ubHkqIHVua25vd24gUEhZcyB0cmlnZ2VyIHRoZSBnZW5lcmljIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjY2MwOTFhYWM2MWEzOGNkOTk4ZDU3NWQ5MmY3MjMyZTI1NmQ2MzEyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDggMTc6Mjc6NDMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBDUE0gZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbiB0byA4NTYwIEFEUwoKICAgICogQWRkcyBjb2RlIHRvIG1vZGlmeSBDUE0gZnJlcXVlbmNpZXMKICAgICogQ2xlYW5zIHVwIHRoZSBjb25maWcgZmlsZSB0byAjZGVmaW5lIFRTRUMgYW5kIChmb3Igbm93KSAjdW5kZWYgRkNDCiAgICAqIEFkZHMgdGhlIE1JSSBjb21tYW5kIGZvciBhbGwgODU2MCBBRFMgY29uZmlndXJhdGlvbnMKICAgICogVXBkYXRlcyBjb25maWcgZmlsZSB0byBwcm92aWRlIGNvbnZlbmllbmNlIGNvbW1hbmRzIGZvciBib290aW5nCiAgICAgIHdpdGggYSBkZXZpY2UgdHJlZQoKICAgIFNpZ25lZC1vZmYtYnk6IFZpdGFseSBCb3JkdWcgPHZib3JkdWdAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NTA3ZDU2Y2NhZjdhYWUxYzQ3NDM0MmE5YTU1NDAxNjVjZDdlOWQ5CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDggMTc6MjM6MDIgMjAwNyAtMDUwMAoKICAgIEZpeCBNYXJ2ZWxsIDg4ZTExNDUgUEhZIGluaXQgY29kZQoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgTWFydmVsbCA4OGUxMTQ1IFBIWSBpbml0IGNvZGUgaW4gdGhlIFRTRUMgZHJpdmVyCiAgICB3aGVyZSB0aGUgcmVzZXQgd2FzIGJlaW5nIGRvbmUgYWZ0ZXIgdGhlIGVycmF0YSBjb2RlIGluc3RlYWQgb2YKICAgIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkYzIxMGRlYzViYWNlOThhNTBiNmJhOTA1MzQ3ODkwMDkxYTliYjAKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjE2IDIwMDcgLTA1MDAKCiAgICBBZGQgc2ltcGxlIGFnZW50L2VuZC1wb2ludCBjb25maWd1cmF0aW9uIGluIFBDSSBBdXRvQ29uZmlnIGZvciBQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOGI4NWYzYmE0Y2Q4OTMwZTBhMmZlYTIxMDBjODE1ZDY0MjAxNzY1CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjowOCAyMDA3IC0wNTAwCgogICAgcGNpYXV0byBzZXR1cCBicmlkZ2UKCiAgICBUaGUgUDJQIGJyaWRnZSBidXMgbnVtYmVycyBwcm9ncmFtbWVkIGludG8gdGhlIGRldmljZSBhcmUgcmVsYXRpdmUgdG8KICAgIGhvc2UtPmZpcnN0X2J1c25vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTcxZjQ5ZmE3MTcwMDRjYTQyNjhiNGUyNDA1N2VmYzdiZjlmOTg3YgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MDEgMjAwNyAtMDUwMAoKICAgIFN1cHBvcnQgUENJZSBleHRlbmRlZCBjb25maWcgcmVnaXN0ZXJzCgogICAgRlNMIFBDSWUgYmxvY2sgaGFzIGV4dGVuZGVkIGNmZyByZWdpc3RlcnMgaW4gdGhlIDEwMCBhbmQgNDAwIHJhbmdlLgogICAgRm9yIGV4YW1wbGUsIHRvIHJlYWQgdGhlIExUU1NNIHJlZ2lzdGVyOiBwY2kgZGlzcGxheSA8YnVzbj4uMCA0MDQgMQoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmE1ZmViMTI1ODFiYjI5MTJjZTMwMWU0ODY2YjcxZjg0NmU5ZmMwNwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTE6NDggMjAwNyAtMDUwMAoKICAgIE1pbm9yIGltcHJvdmVtZW50cyB0byBkcml2ZXJzL3BjaV9hdXRvLmMKCiAgICAtIE1ha2UgcGNpYXV0b197cHJlLHBvc3R9c2Nhbl9zZXR1cF9icmlkZ2Ugbm9uLXN0YXRpYwogICAgLSBBZGRlZCBwaHlzaWNhbCBhZGRyZXNzIGRpc3BsYXkgaW4gZGVidWcgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGU4MWFkZGFiN2JiNzRkMjBkZGY2ODFjZTliYWJjODgwYTgyOGVlCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MTozNSAyMDA3IC0wNTAwCgogICAgU3RhcnQgcGNpIGhvc2Ugc2NhbiBmcm9tIGhvc2UtPmN1cnJlbnRfYnVzbm8uCgogICAgRW5zdXJlIGhvc2UtPmN1cnJlbnRfYnVzbm8gaXMgbm90IGxlc3MgdGhhbiBmaXJzdF9idXNuby4gIFRoaXMgZml4ZXMKICAgIGJyb2tlbiBib2FyZCBjb2RlIHdoaWNoIGxlYXZlcyBjdXJyZW50X2J1c25vPTAgd2hlbiBmaXJzdF9idXNubyBpcwogICAgZ3JlYXRlciB0aGFuIDAgZm9yIHRoZSBjYXNlcyB3aXRoIG11bHRpcGxlIGNvbnRyb2xsZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg2NWIxZmI3ODQzYTA4YWQ0OWE2MzE5YTM2NDE1NzUyMjc2ZmY0OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAxMSAxMjoxMzo1MyAyMDA3ICswMjAwCgogICAgRml4IHNvbWUgY29tcGlsZSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXRlc3QgQ0ZHX0NNRF94eHggY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYTFkZjMwODkyNmE2ZjcwZTM1MDRjNTc1MTRlZjI3YWMzMWZkMTNhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAyMDoxMTowNyAyMDA3ICswMjAwCgogICAgQ00xLlFQMTogU3VwcG9ydCBmb3IgdGhlIFNjaGluZGxlciBDTTEuUVAxIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDk2ZTFkNzViZTgxOTNjYTc5ZTQyMTVhMzY4YmY5ZDdmMjM2MjQ1MGYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTEgMTg6Mzk6MTEgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBTaG93IG9uIHRoZSBESUFHIExFRHMsIGlmIHRoZSBTSEExIGNoZWNrIGZhaWxlZAoJCS0gbm93IHRoZSBGbGFzaCBTVCBNMjlXMDQwQiBpcyBzdXBwb3J0ZWQgKG5vdCB0ZXN0ZWQpCgkJLSBmaXggdGhlICJsZWQiIGNvbW1hbmQKCQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU5NTE0NzUxY2ZhNWNjZTYxZWE2OTlmYTBkM2ViMzc4OThhNWVlYjUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgOCAxMzo0NDoyNyAyMDA3ICswMjAwCgogICAgRml4IG1hbGxvYyBwcm9ibGVtIGludHJvZHVjZWQgd2l0aCB0aGUgcmVsb2NhdGlvbiBmaXh1cCBmb3IgdGhlIFBQQyBwbGF0Zm9ybQoKICAgIFRoZSByZWxvY2F0aW9uIGZpeHVwIGRpZG4ndCBoYW5kbGUgdGhlIG1hbGxvYyBwb2ludGVyIGluaXRpYWxpemF0aW9uCiAgICBjb3JyZWN0bHkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtLiBUZXN0ZWQgc3VjY2Vzc2Z1bGx5IG9uIDR4eC4KICAgIFRoZSByZWxvY2F0aW9uIGZpeHVwIHBhdGNoZXMgZm9yIDR4eCB3aWxsIGZvbGxvdyBzb29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGNhODc0ZGI2MjcxOGU0MTI1MzY1OWU2MGYzYTFkZTdlYjQxOGNlCkF1dGhvcjogVHNpQ2h1bmcgPHRjbGlld0BHb2t1Lihub25lKT4KRGF0ZToJVHVlIEp1bCAxMCAxNTo0NTo0MyAyMDA3IC0wNTAwCgogICAgQ2FjaGUgdXBkYXRlIGFuZCBhZGRlZCBDRkdfVU5JRllfQ0FDSEUKCiAgICBFbmFibGVkIGNhY2hlIGluIGNwdV9pbml0X2YoKSBmb3IgZmFzdGVyIGZsYXNoIHRvIG1lbSBhbGxvY2F0aW9uLiBVcGRhdGVkIGNhY2hlIGhhbmRsaW5nIGluIHN0YXJ0LlMuIEFwcGxpZWQgY2FjaGUgaW52YWxpZGF0ZSBpbiBmZWNfc2VuZCgpIGFuZCBmZWNfcmVjdigpLiBBZGRlZCBDRkdfVU5JRllfQ0FDSEUgZm9yIENGIFYzIG9ubHkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgPHRjbGlld0BHb2t1Lihub25lKT4KCmNvbW1pdCA1MmIwMTc2MDRhOGY0ZDRhNzk1ODgwZWY2ZTc4NjFkN2YyZjFiMDA1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MzY6MTYgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZS4gSW5jbHVkZSBkdGltZXJfaW50cl9zZXR1cCgpLiBDaGFuZ2VkIHRpbWVyIGRpdmlkZXIgdG8gZ2xvYmFsIGRlZmluZS4KCiAgICBJbmNsdWRlIGltbWFwLmggYW5kIHRpbWVyLmguIE1vdmVkIGR0aW1lciBpbnRlcnJ1cHQgc2V0dXAgdG8gZHRpbWVyX2ludHJfc2V0dXAoKSBmcm9tIGNwdS9tY2Y1MzJ4L2ludGVycnVwdHMuYy4gQ2hhbmdlZCAoQ0ZHX0NMSyAvMTAwMDAwMCkgLTEgPDwgOCB0byBDRkdfVElNRVJfUFJFU0NBTEVSCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVjZGMwN2M3ZWY4ZjA4ZWE1NWQzYzQ3ZWQ5MjIxZDkxYWE2ZDVmYWMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzozMToyNSAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlcwoKICAgIEluY2x1ZGUgaW1tYXAuaCBhbmQgcmVuYW1lZCBtY2ZydGMuaCB0byBydGMuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyODcwZTk4YWM4ZTU1NTNlOTE4N2IxMmE0N2U1ZjQ2YmFiYjUzOTkwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6Mjk6MjEgMjAwNyAtMDUwMAoKICAgIEFkZCBtY2ZmZWNfaW5pdGlhbGl6ZSgpCgogICAgQWRkZWQgbWNmZmVjX2luaXRpYWxpemUoKSBpbiBldGhfaW5pdGlhbGl6ZSgpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1YTI1YmZkMGM1MmY4YTNmYTEzNzIxNmJjOTRkMzJmOTBiZWRjNWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyNzo0MCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBjbGVhbiB1cAoKICAgIEluY2x1ZGUgaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwY2VlOWM2NjMxODYwMmM4NTZhODk5YWU1ZmE3NTc5Y2NiYTY0NDNhCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjM6MTUgMjAwNyAtMDUwMAoKICAgIE5ldyB1YXJ0IHN0cnVjdHVyZSBhbmQgZGVmaW5lcwoKICAgIFNlcGVyYXRlZCBmcm9tIG1jZnVhcnQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTBlNzlkZThkOTllOWM5ZDY5ZDYwYmZmZjlmMjRjMzM3MTY1OTAwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjI6MzEgMjAwNyAtMDUwMAoKICAgIE5ldyB0aW1lciBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMKCiAgICBTZXBlcmF0ZWQgZnJvbSBtY2Z0aW1lci5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwNGFjYjJlYmE0NzgyNDg5NDE3MjQwZWZmNzZlMjBlMTc2YWVjMTAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMTowOSAyMDA3IC0wNTAwCgogICAgUmVuYW1lIG1jZnJ0YyB0byBydGMKCiAgICBTaW5jZSBpdCBpcyBhbHJlYWR5IGluIG02OGsgZm9sZGVyLCB1bi1uZWNlc3NhcnkgdG8gcGFkIG1jZi4gUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHRvIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmJkODA2ZmU0ZmMyMzk1OGI4Zjc4Nzc4MTk5ZTdhNmUzZjhmNmFkNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjE3OjM2IDIwMDcgLTA1MDAKCiAgICBSZW5hbWUgbWNmc2VyaWFsLmMuIFVwZGF0ZSBpbmNsdWRlIGhlYWRlcgoKICAgIFJlbmFtZWQgbWNmc2VyaWFsLmMgdG8gbWNmdWFydC5jLiBNb2RpZmllZCBNYWtlZmlsZSBmb3IgbWNmdWFydC5vIGZyb20gbWNmc2VyaWFsLm8uIFJlcGxhY2UgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHRvIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjIyMDhmYmMyZWI5ZGUzZjQyODViZmFhMDIxYzZlYmFlMTZjOWIwZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjEzOjU4IDIwMDcgLTA1MDAKCiAgICBIZWFkZXIgZmlsZSB1cGRhdGUsIGNsZWFuIHVwIGFuZCBjYWNoZSBoYW5kbGluZwoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIEluY2x1ZGVkIGNhY2hlX2ludmFsaWQuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJlM2YyNWFlOTA4MmRhYTlmNWQxODFkYjQ1ZGZiYzJlNTJjZTBmOTcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxMDo0MCAyMDA3IC0wNTAwCgogICAgQ3JlYXRlIGludGVycnVwdHMuYyBhbmQgbW9kaWZ5IE1ha2VmaWxlCgogICAgaW50ZXJydXB0X2luaXQoKSBhbmQgZHRpbWVyX2ludHJfc2V0dXAoKSBhcmUgcGxhY2VkIGluIGludGVycnVwdHMuYy4gQWRkZWQgaW50ZXJydXB0cy5vIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZDEwNGYxZWQ2NTVlZGE1MGMwNmJhNjM2MjM3YTgzZWQ5NDNmMzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowNjo1NSAyMDA3IC0wNTAwCgogICAgRW5hYmxlIEljYWNoZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOWJmM2RlMzc3YjJiYWU3MGM5ODNjOWI5N2ZlYWU5MTQ5OTllNzM1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDU6MzEgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgc29tZSBjbGVhbiB1cAoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIFJlbW92ZWQgd2hpdGVzcGFjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg0YTAxNWI1MmVjODIwYTVhZTE3MzcxN2Q3ODUxNmRlNzMxYzg5YzIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowMzoyOCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBlbmFibGUgaWNhY2hlCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gRW5hYmxlZCBpY2FjaGVfZW5hYmxlKCkgaW4gY3B1X2luaXRfcigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YTE3ZTc1OWM3YThiNThlOTEwZGFmNTRkZjYxMWU5NGZjOGNhMDc0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDE6MjIgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgcmVtb3ZlZCBpbnRlcnJ1cHRfaW5pdCgpCgogICAgUmVwbGFjZSBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBSZW1vdmVkIGludGVycnVwdF9pbml0KCkgYW5kIHBsYWNlZCBpdCBpbiBpbnRlcnJ1cHRzLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2I2MzU0OTJjOTViZDBkNmUwOGY5M2Y2OTk4MjFjYmExZjYwMmE2NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU3OjQ2IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgZm9yIGZsYXNoLm8gYW5kIG1paS5vCgogICAgUmVtb3ZlZCBmbGFzaC5vIGFuZCBhZGRlZCBtaWkubwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNWRlZDI3NWQ4MzllNGZmNzlmNDE3MThkNTBhODM1ZDk4OWY1N2JjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTY6MTkgMjAwNyAtMDUwMAoKICAgIE1JSSBmdW5jdGlvbnMgY2FsbHMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQyN2M4MTQxMDQ1NjBlMjliZGExNDk1NWM2NzcwMzI0NWFhYWE1YjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1NDo0MiAyMDA3IC0wNTAwCgogICAgUmVtb3ZlZCBNSUkgZnVuY3Rpb25zIGFuZCByZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLgoKICAgIFRoZSByZW1vdmVkIE1JSSByb3V0aW5lcyB3aWxsIGJlIHBsYWNlZCBpbiBtaWkuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDFhNzkzZmRhMDljNjNkZjVhNDk2ZjA5ZGMxYzdjYjI2ZTY3NTFhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjUxOjA1IDIwMDcgLTA1MDAKCiAgICBEdXBsaWNhdGUgY29kZQoKICAgIFRoZXJlIGlzIGEgQ29tbW9uIEZsYXNoIEludGVyZmFjZSBEcml2ZXIgZXhpc3RlZC4gVG8gdXNlIHRoZSBDRkkgZHJpdmVyLCBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSBpbiBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI3NDQzNTRhODQzN2I4Zjc4ZGIxNzhlMzA2NjAyMTU2ODhiZmY1NzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0NjozOCAyMDA3IC0wNTAwCgogICAgU2VwZXJhdGUgb2xkIHN0cnVjdHVyZSBkZWZpbmVzIGFuZCBuZXcgc3RydWN0dXJlIGRlZmluZXMKCiAgICBSZW1vdmVkIG5ldyB1YXJ0IHN0cnVjdHVyZSBhbmQgZGVmaW5lcyB0byB1YXJ0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmJkNTg2MDhkYmNmZjg4OTBjYTlhMGM1OWU4NjFhYzI0ZjhiYjIzMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQ1OjAxIDIwMDcgLTA1MDAKCiAgICBTZXBlcmF0ZSBvbGQgc3RydWN0dXJlIGRlZmluZXMgYW5kIG5ldyBzdHJ1Y3R1cmUgZGVmaW5lcwoKICAgIE5ldyB0aW1lciBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMgd2lsbCBtb3ZlIHRvIG5ldyB0aW1lci5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhjZDVjZDZkZTRmZjkyZTAzOTc4MzM4ZWQ3YWViM2NlN2I3Yjk3ODQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0MjoyMyAyMDA3IC0wNTAwCgogICAgQ2xlYW4gdXAKCiAgICBSZW1vdmVkIHdoaXRlc3BhY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTE0ODcxZjU2NWRkOGJkMTEyMWU0YTNhYzE2NjVhNzkwZTIwYjhmMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQxOjI0IDIwMDcgLTA1MDAKCiAgICBDbGVhbiB1cAoKICAgIFJlcGxhY2VkIHdoaXRlc3BhY2Ugd2l0aCB0YWJzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4ZGJmZWFiYzdhZmZmZTMwNjA5YTQ0ODlmMTBjMjJjYjY3ZWY3ZGQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjozOTowNyAyMDA3IC0wNTAwCgogICAgQ3JlYXRlIG5ldyBoZWFkZXIgZmlsZSBhbmQgbW92ZSBwZXJpcGhlcmFscyBiYXNlIGFkZHJlc3MgZnJvbSBjb25maWdzIGZpbGUgdG8gbmV3IGhlYWRlciBmaWxlLgoKICAgIENyZWF0ZSBuZXcgaGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbW1hcF81eHh4LmggYW5kIG01eHh4LmggYW5kIHRvIHNoYXJlIGFtb25nIGRyaXZlcnMgd2l0aG91dCB1cGRhdGUgaW4gZHJpdmVyIGZpbGUgZWFjaCBwcm9jZXNzb3IgaXMgYWRkZWQuIE1vdmVkIHBlcmlwaGVyYWxzIGJhc2UgYWRkcmVzcyBhbmQgZGVmaW5lcyBmcm9tIGNvbmZpZ3MgZmlsZSB0byBpbW1hcC5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTI5NmUzMWM0NDExZjk2ZDljYjNkMmFmYzhmY2IwMDY4NjdhYmZhCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6MjQ6NTggMjAwNyAtMDUwMAoKICAgIFJldmVydCBmaWxlIG1vZGUKCiAgICBDaGFuZ2VkIE1BS0VBTEwgZmlsZSBtb2RlIHRvIGV4ZWN1dGFibGUsIHJlbW92ZWQgZXhlY3V0YWJsZSBmaWxlIG1vZGUgZnJvbSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiM2FmZjBjYjllY2YyMzZkN2U4YzkzNzYxZGQxZGFkZjY4MzdhNTgyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMToxOTo1MCAyMDA3IC0wNTAwCgogICAgZGlzay8gZG9jLyBsaWJfKi8gYW5kIHRvb2xzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGI1ZDg2ZjAyMTViY2I2YzI5MzUxMGM1MGViMDUwZTkyODgzYjdhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMToxMzoyMSAyMDA3IC0wNTAwCgogICAgZHJpdmVycy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjQwYTdmM2UzODg4YjQyYTQzNjc0YjA5OWU1NDcwMDIyYzhjNTQ0YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDc6NTYgMjAwNyAtMDUwMAoKICAgIGZzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MTBmMmU5YzI4YTljMTAxZTA5ZmExYjc4MTQzY2Y1ZjAwZWQxNTkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowNTowMiAyMDA3IC0wNTAwCgogICAgbmV0LzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MDI1MzE3ODgzNzYwNDZkYTIxMmFmZDE2NjFjZmZiNjJmM2RhYTFjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowMjo0NCAyMDA3IC0wNTAwCgogICAgY29tbW9uLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMzliNTc0MTU4MzhjNzNmYjBhMzdlY2E4NGRlM2M2OGJhOTkwNTg2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDo0ODoyMiAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2otel0qOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3YTMxODU0NWQ1N2FlZmE4NDQ3NTI0NjViOTRjN2UwOWEzZjI2ZDAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjM5OjEwIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bQS1aYS1pXSo6IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDY4YjYwYTBlYjdlNzNiMjQzY2E1NTM5OWYyYTdkZjc2ZTJjM2YzZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6Mjc6MzkgMjAwNyAtMDUwMAoKICAgIGNwdS8gcnRjLyBpbmNsdWRlLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDc5YTEzNmMzNTg4ODE0Nzg0NTYxZDZlNDg1Njk3MGVlODJkNmUyYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6MTI6MTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bcC16XSogKyBtaXNjOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmNWMwMTU3NzQwMGM3NGNjNWJhYzc0ZjQxZGQwZDNjNzlkZjYyM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjM4OjAyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2ctb10qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwZmY0Zjk5Yjg0YjY0ZWRjYTNmZDEwZGEzNjVlYzE0OTNiZTFjOTUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjI5OjAxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2EtZV0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGExYWEwYmI1MDJlMjVmZDU5OGI1ZTBjY2RmYjJjMTc0OTIxZDcxNGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjIyOjIzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1AtWl0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1OWUyZjY3MzYyMzJhMDhhY2NhODc4NWMyMDZlMmI0ZDljZDA3ZDcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjEwOjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0otT10qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDExNzk5NDM0YzVmZjE1YTYxMjU3N2JiMWFkMWY0ZWExYTA1OTVlNGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjAyOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0EtSV0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmZTgwZDc5YzVjNGU1MmQzNDEwYTdhYjRiODUxNWRhMDk1Y2RhYjMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjI6MDg6MzQgMjAwNyAtMDUwMAoKICAgIEZpbmFsbHkgcmV0aXJlIGNtZF9jb25mZGVmcy5oIGFuZCBDT05GSUdfQk9PVFBfTUFTSyEKCiAgICBBbGwgb2YgdGhlIGNob2ljZXMgZm9yIENPTkZJR19CT09UUF8gYXJlIG5vdyBkb2N1bWVudGVkIGluCiAgICB0aGUgUkVBRE1FIGZpbGUuICBZb3UgbXVzdCBub3cgaW5kaXZpZHVhbGx5IHNlbGVjdCBleGFjdGx5CiAgICB0aGUgc2V0IHRoYXQgeW91IHdhbnQgdXNpbmcgYSBzZXJpZXMgb2YKCSNkZWZpbmUgQ09ORklHX0JPT1RQXzx4PgogICAgc3RhdGVtZW50cyBpbiB0aGUgYm9hcmQgcG9ydCBjb25maWcgZmlsZXMgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDNiOGMxYTc0M2RjZDMxNjI1Yzk5ZTZhNDQ1OTBmMjA3ZWIwMDAyOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTo1NzozMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1ttLXpdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmQ5MGNlNTc1YjAyZDE4OWNiZjQ0M2M4NTMwOWJjZDAwMWFhMzkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjQ4OjI2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2EtbV0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM3ZDRiYjcwNTg2NjU5ZGVkZWYxNjU4Y2UxYmVkMDcxYmUwOThhZWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6Mzg6MDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bVC1aXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgyMjVlOGRkMTk1MGJkNmRiZjM1MDExZTQzNmRiN2Y0NzRjMTg3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTozMToyNCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tQLVNdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmUwNDRlNGVhNjQ0YjBlZjFjNDg2ZGFkYzFhNGMyNjY1YjQzNzRkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjI0OjE5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0gtTl0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkMmViZTFiM2VmMDA1NWM2NjFiYjFhMGQyNTJiZjI1MjM4MDA2OWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MTY6NTMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bQS1HXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU1ZjdmOGQ4M2YzNjAyMWFiMWYwZTNkNzM4ZjVkOGM4MDgzYTdlMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOToxMjozMCAyMDA3IC0wNTAwCgogICAgUmV0aXJlIENPTkZJR19DT01NQU5EUyBmaW5hbGx5LgogICAgU3RyaXAgb2xkIENGR19DTURfKiBzeW1ib2xzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1NTAxZjdkNzIwZmVkOTlhYjBiNDJjODNmNWRlYTUyODY4Y2UwMDcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MTA6MDMgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBSRUFETUUuKiB0byByZWZlcmVuY2UgbmV3IENPTkZJR19DTURfKiBuYW1lcyBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NDMxMjgzYzdlNmQ1NGFlMTgwZDQ2NmU1MWJmMmQ5NzQ3MWEwYWQ5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjA2OjAwIDIwMDcgLTA1MDAKCiAgICBjcHUvbSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ExZWQxZTFmOTIyYzQxOWJiNzFmN2RmNDk0OWQ3ODNhZGUzNjlmYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODo1NzoyMiAyMDA3IC0wNTAwCgogICAgY3B1L1s3YS1sbi16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWIzYWJjYmFiZDg0MDkyOGZiMWViNTEyMjExOGNhNDY2YjVlNTAxMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODo0NToxNiAyMDA3IC0wNTAwCgogICAgYm9hcmQvW3Etel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNmZTAwMTA5YTVmMTJkZTU1YjZlMjViMWY5OGRmYzI0YmM5MDkwYzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6Mzg6MzkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1ttLXBdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTA4YTRjZWZkOGE5NTNmYzY0OTU3NjUwNTA2YTAzNWU2ZTNkOWQxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjMxOjI4IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bZi1sXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzMDcyNjJmOGE5ZjNiNWM5ZTE1YTYwNjdlYWRjMTc0MDcxNDZmNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoyNDo1NSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2QtZV0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjZWMyZWI5M2UxMjY0MDAwMDk3MjkzMjhlNzk3ZjEyYmM5NGYxZmQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MTk6MDkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tBLVphLWNdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTkzODE0ZjJiZTBjOWNkYzMxMzNjZDU1MGIxNjdiOGE5ODgzMjhmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjEwOjUwIDIwMDcgLTA1MDAKCiAgICBydGMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY3MzUwNTY4ZjlkNDZlNjZjMjE4MjlmMzUxM2IzZGIwY2FlYjk0OGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MDU6MzggMjAwNyAtMDUwMAoKICAgIGxpYl97YXJtLGF2cjMyLGJsYWNrZmluLGdlbmVyaWMsaTM4Nn0vOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkZWY2YjM0ZjkxMGYwOGQ3ZWYwYTE0NjQ2ZGEwNjc3MTkyMzdjYTIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MDI6MTEgMjAwNyAtMDUwMAoKICAgIGxpYl97bTY4ayxtaWNyb2JsYXplLG1pcHMscHBjfS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGQ2MGQxMjIzYjk5YTg4YTcyMTZmM2UwNDFmZTQwNjM0YWQ0YzJiYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo1Njo1MCAyMDA3IC0wNTAwCgogICAgZnMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5MTg5OGJiYzUwNWFmZjNlMTJhODA3YWY4OGU3NmRhMThlZmI3ZWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NDY6MDkgMjAwNyAtMDUwMAoKICAgIHRvb2xzLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NDNkMWFiMjM5NjA5NTBiNTJlMGEyODAzYzJkM2VhNGM1NThmYTAxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjQ1OjE0IDIwMDcgLTA1MDAKCiAgICBuZXQvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiNTFjMGJmODhmOTVhMWJjYTY4MzI0YjAxMjZmOGVlZDhiNDMyNzMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6Mzk6NDIgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvW24tel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA3ZDM4YTE3ZTk2NGFlYzRjNzgyN2YwZWU5YTU4M2JjOGNjMWFkNmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MzA6MDEgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvW2EtbV0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkZTVjNjRkMTdjZjQ4MzRhYTdiNWMzNzNmMjg4YmM3ZGFkMjdiMjkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MjI6MzcgMjAwNyAtMDUwMAoKICAgIGRpc2svOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzOTIyMWM3NmM4ODIxNWJkNTVhZjgzYWQxNzRmYzMwZDE5NDBmOGYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MTU6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKICAgIE1vc3RseSByZW1vdmVkIGZyb20gY29tbWVudHMgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlZjIxOGY2ZmRmOGQ3NDdmNDU4OWRhNTI1MmIwMDRlN2QyYzI4NzYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDEwIDAwOjAxOjI4IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM4NjAzY2ZiZDQ1NzMzNzlhNjA3NmM5YzIwODU0NWJhMmJiZjAxOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgOSAxMTowMDoyNCAyMDA3ICswMjAwCgogICAgU21hbGwgY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGY5MmM3ZTdjOWE2Mjc1NWIxNDU3ZDNjNDZmOTNjOGMxZjZjMTlmYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDggMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBSZW1vdmUgdW51c2VkIENGR19OQU5EX0xFR0FDWSBkZWZpbmUKCiAgICBUaGVzZSBib2FyZHMgdG8gbm90IGhhdmUgTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiZDg0ZWU0YzIwMjBjM2E2ODYxZjRiYjJlN2VhMGZiNDlmODJlODAzCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowNiAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICAtY2xlYW51cAogICAgLXVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycyAoaW4vb3V0X2JlMzIoKSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBlMDlmN2FiNTc0OWMzNDVmOTI0ZGEyNzJiZWEwNTIxYTczYWY1YjExCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowNCAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIFRoaXMgcGF0Y2ggcHJlcGFyZXMgdGhlIG1pZ3JhdGlvbiBmcm9tIHRoZSBsZWdhY3kgTkFORCBkcml2ZXIKICAgIHRvIFUtQm9vdCdzIG5ldyBOQU5EIHN1YnN5c3RlbSBmb3IgZXNkIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjMzUxN2Y5MTlkMGY2MTY1MGNmMzAyN2ZkNGZhZjBmNjMxMTQyZjZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjEwOjA4IDIwMDcgLTA1MDAKCiAgICBjb21tb24vKiBub24tY21kKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZDliY2FhMzViZTY0ZmU0MWE0MjIzZmRiNmVjZGJhZDUyNDcwYjM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjA1OjM5IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1twLXhdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzc2ZmU0NzQyNWFmYzdkNWQ2NzBmZjA1Mzk4MjNjODVkNjVkOWM0MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODowMjoyMyAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9baS1uXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhYTI2ZGI0MTEzNjc5YjgwOTcwZmY0NDdkOTFjYzEwMjE3NzQyYTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTc6NTE6MzkgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2FmXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmMDc1ZWU5NmU1MmRkYTdiNmJjYTZjOTM3NTg4YWVhYWVjNWYyY2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTc6MDI6MDEgMjAwNyAtMDUwMAoKICAgIENsZWFyIHVwIGNvbmZ1c2lvbiBvdmVyIHRoZSBDTURfUE9TVCBhbmQgUE9TVF9ESUFHIG1lc3MuCgogICAgRm9yIHNvbWUgcmVhc29uLCBDT05GSUdfUE9TVCBwZXJtZWF0ZWQgYXMgQ09ORklHX0NNRF9QT1NUX0RJQUcKICAgIHdoZW4gaXQgcmVhbGx5IG1lYW5zIGp1c3QgQ09ORklHX0NNRF9ESUFHLglUaGVyZSBpcyBubyBDTURfUE9TVC4KICAgIENsZWFyIHRoaXMgbWVzcyB1cCBzb21lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjM2MzE0ODcxMDVhNTdhYjdjYmFkZmMyNmVmYmFmOTY3NjI3NTAxOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTo0NTowOCAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCBjbWRfY29uZmRlZnMuaCBpbmNsdWRlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjJkNGRhOTVlMjAwNDliNGRhYTFjMmEwMjJmNjFlOGE3MmYyZmI2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjQyOjU5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IENhdGNoIHNvbWUgQ09ORklHX0NNRF8qIGNvbnZlcnNpb24gc3RyYWdnbGVycy4KCiAgICBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBsd21vbjUuaCBib2FyZCBjb25maWcgZmlsZS4KICAgIEZpeCBDT05GSUdfQ01EXyogdHlwbyBicmFpbmRhbWFnZSBpbiBvbWFwMTUxMGlubi5oCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTU2MjkwMTY2MWJkNDI4ZjdlNWZlYjMzM2Y3OTYzNzJjYjgxMDE5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjMxOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW1RVVldaWVpdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZTdmNzgyZDViOGM2NGEwMTk1YzY4YzMxYTBhMTFkNGY2NDEzNTVlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjAyOjQ0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTlhMGY4ZjE1YzExZjMzNzk2N2FhMDYwMGFkNmU4YWYzMzAzN2Y1MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNToxMjo0MCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEyYWE5ZmQyM2Q3MjRiZDZhYjg4ZTFiYWEwZGIzNTEzM2EyNzMwM2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6NTU6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBRKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhY2YwMjY5Nzc5NDIyZjNlMTQ3ZDJkZGZiNDk5YzlmNmZmMTBhZDVlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjQ5OjQ0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTE4YTEwNjFhODYzMGNiNjc5OTVmZGY5OWFmZDNmYjUwZDFiMTg3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDoyMTo0MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtOT10qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzNTNlMTM5YmZhZDkwNTljNTRmNWIyNDIxZjFhMzA5MGUxNWEyZTIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6MTQ6MTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBNKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNDhmMjU4ZjI0MjUzNDMzZTRhMjMwMmEwYmJjZWI2NzQwYTY3MjQ2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDEzOjQ2OjE4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW0lKS0xdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YzRmNGRhOWJmYzlmOTQwM2Y1NGZjZTY3OGVkMDM2NGI3Yzg2YTZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDEwOjA5OjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgSCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjBhMDg3NmI1MTA2YjM0MjIwZTQ1OWMyMDhiYmY2NDgwNzMzMDZjMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMTowNDoyNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEYqIGFuZCBHKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkY2FhNzE1NjI4MjZhMjQ2NmU4OTRjODY4ZDEzMjUwOWRjZGE4NDQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIwOjU2OjA1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2MzMjI3ZjNjNzM3NTAyMzExYjI1YjcyMDg0NTczOTAxY2JiZjE3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMDo0MDo0MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEQqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5Y2Y3ZThlZTdlZjk0M2ZkZmU4NjZjZTI4NDEwYjBiZmJmNmEyNmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6NTI6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBDKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZThiMmE2ZTMzMjk4ZGNkYjEwYmRkYTQ4ZGIyNWU1M2MzMDg5ZWJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjMyOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDk4ZmY5YTIyODQ4NWJkNGI5ZjIzZDA2NmJhZGEyNjhmOWFkZDFkZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOToxMzo1MiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaW5jZSBBRFM4NjAuaCBpbmNsdWRlcyAiYm9hcmQvZmFkcy9mYWRzLmgiIHdpdGggcmFtaWZpY2F0aW9ucwogICAgb24gdGhlIENPTkZJR19DT01NQU5EIHRyZWF0bWVudCwgaXQgdG9vIGhhcyB0byBiZSBhZGp1c3RlZCB0bwogICAgZXhjbHVkZSBhbHJlYWR5IGNvbmZpZ3VyZWQgY29tbWFuZHMgaW4gdGhpcyBzYW1lIGNvbW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwZTAzODkzMmYyMmVlODBlYmQ1M2RlMzEyNTMxZTcwZTY1OTBhMmYKQXV0aG9yOiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgpEYXRlOglGcmkgSnVsIDYgMTQ6NTg6MzkgMjAwNyArMDIwMAoKICAgIFtOQU5EXSBCYWQgYmxvY2sgc2tpcHBpbmcgZm9yIGNvbW1hbmQgbmJvb3QKCiAgICBUaGUgb2xkIGltcGxlbWVudGF0aW9uIG9mIGNvbW1hbmQgbmJvb3QgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIHRoZSBpbWFnZSBmcm9tCiAgICBOQU5EIGZsYXNoIHdpdGggc2tpcHBpbmcgb2YgYmFkIGJsb2Nrcy4gVGhlIHBhdGNoIGltcGxlbWVudHMgYSBuZXcgdmVyc2lvbiBvZgogICAgdGhlIG5ib290IGNvbW1hbmQ6IGJ5IGNhbGxpbmcgbmJvb3QuamZmczIgZnJvbSB0aGUgdS1ib290IGNvbW1hbmQgbGluZSB0aGUKICAgIGNvbW1hbmQgd2lsbCBsb2FkIHRoZSBpbWFnZSBmcm9tIE5BTkQgZmxhc2ggd2l0aCByZXNwZWN0IHRvIGJhZCBibG9ja3MgKGJ5IHVzaW5nCiAgICBuYW5kX3JlYWRfb3B0cygpKS4gVGhpcyBpcyBzaW1pbGFyIHRvIGUuZy4gdGhlIE5BTkQgcmVhZCBjb21tYW5kOiAibmFuZAogICAgcmVhZC5qZmZzMiAuLi4iLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzM0MDQzZjYwMWE5MGFjNTNlNWVjYzg0NmZiYjczYTFlZjM4Y2IxZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDEyOjI2OjUxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgZGVmYXVsdCBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZDE4NzQzMGEwNTVkNjJmMTdjYTg0ZDc1ZTcyNDU0MzlkMWY3ZTc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMTE6NDg6MjQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBib2FyZAoKICAgIEFkZCB1bmxvY2s9eWVzIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGRlZmF1bHQgdmFyaWFibGVzIHRvIHVubG9jawogICAgdGhlIENGSSBmbGFzaCBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YjBhMTc0YTFlNmY1NWUxZjVhMWZiYjIyM2NkYWQ3NjQ1YTQ2NDZlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMDk6NDU6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBwcm9ibGVtIHdpdGggZ2V0L3NldGRjciBjb21tYW5kcyBpbnRyb2R1Y2VkIGJ5IGNmZyBwYXRjaGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxMTUyZjhjMjhkYjRhMjIwODdjMjFjNjE4YTNmN2JhYTQ4ZTlhNGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMDI6NTA6MTkgMjAwNyArMDIwMAoKICAgIENvZGUgY2xlYW51cCBhbmQgZGVmYXVsdCBjb25maWcgdXBkYXRlIGZvciBTVEMgR1AzIFNTQSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU0ZGJlMWIyMTVmNWM2YzQ2MmU3NjkwOWQyNDBiZDk2NDcyYjg0ZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDUgMTc6NTY6MjcgMjAwNyArMDIwMAoKICAgIEZpeGluZyBzb21lIHR5cG9zIGV0Yy4gaW50cm9kdWNlZCBtYWlubHkgYnkgY2ZnIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNmI0Njg0NTQ2ODA5Zjg5YzhiYWM3Mjg2M2NhNDliNWZkOGFjMGNkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCA1IDExOjEyOjE2IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCBkY2EzYjNkNmQ2Mzk2YjY3ZTVlODRhZjUzNDUyMTY0OTIzYzczNDQzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjQ2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW3Ytel0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjMThlYjk4MDRiNTI1ZjNlNGYzYmIzZDAxNGRkNjlhMjAwZDlmYTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MzggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyB0KiBhbmQgdSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDZkYTFlOTZiN2RiMTRmNGZjZDJjOTI1NDRlN2MwODYyMDI0YmM3NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzozMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkwY2MzZWI2ZDJiZTg1NmQ5ZGRkODE0MzZkZTljZjM0M2JjNmI1YzgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MjMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBxKiBhbmQgciogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZhMzQ1NjBkNTZhOWRmNWJjMmFlMjM1MjVkOTIyOTczNjEzNDc1NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoxNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHAqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1Y2IyMzA5MmE3ZDMxNDkwYTMzZDRlYzg3MTQ2OGI2M2JhYmZhM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MTMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBvKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjlhMmJmZDE0MjczNzAwM2E4ZmMzMmUxYjg2ZTFmMmMxODUwMjU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRjMTFhNTExOTYwZDQ5MGY3ZjAxZmZkNzQ2ZWRmZTYyNzdmOTliMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzowMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDliYmIxYzA4MjBjMWZiZDM4MTFhYjZlZTRiYTBmNmM2Zjc2YjI3ZTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBsKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYzIzNGMxMjlmYTA0ZmI5ZmEzMzUzMDkzMGU1Y2JjNjA4NGNkNDdhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjUxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaiogYW5kIGsqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkMmM2YmM0OTE5NjlmOGQ4ZmIzNGM4ZTMwZThiZWE3YTJhZjljMzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MzIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBpKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OGQ1ZDEwMmEyZjJlNjE5YzkyMDUwYjlhZWRiYjY5Njg5MTg1YmMwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjI1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzJlYjBlZmFlZDcwNDhhZmNjNjFmYzZmMDA4NWM0OTM5NGI1ZGMzNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoxOSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGcqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFiZWMzZDMwMDJkM2JiYmFlNmYyNDY4YTBmNzM3NmRiMTEyMGQzM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBlKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjk5OWJhMWIzMWViZTc4ZGQxNjM3NDM5NGE1NWQ3YzZlNWFhNmU0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjAzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzdlNGYyNGI4N2ZhMjU1YWU0NTZkMTkzYjdjZDIzYzE4ZGQxZDU2YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo1NiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhMjM1MWY5ZDFlODQxYmQwMGVhNmRhZDFlM2MxNmQwMjU5YWQyNjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBiKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjM2MWM5MTY2MTdhZmY3OWU2NDdiNDBmMGU0MzM2MWUwYmJhY2NmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjQyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjczMGNkYTgyZTM2MmRmNmEyMmY0YzU5YzBhOWI5N2U4ODViMTAxNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBtcGM1eHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDc5NGNmZWZlYWQ1ZmMxNzdjZjRmNDExNjRlODAzODJlOWM5NDg0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMToxNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIDUyMDAgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWYwZGY1MmFiNDllZWE0YTMwYzE1MDg3ZmQyN2Q1NGMxZDk0NmYyYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBTVHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODY2ZTMwODliZmM4MjZiYjRkYzc0NjM3ZjhhYWQ4N2EzYmFiNzlmYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDo1OCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBzYmMqIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2OTQ2OTBlMjg1YWNhYTM0OTIyZjU1ZjRiNWFlMDMwZGE2MGM1NWEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6NTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gVFFNIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjYzRjNDU4MzI5NzY1YjU4ZTU4NGExOTgyMWU3OTZiM2MxMGU5NzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6MjggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODJ4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZWE1NDk5YWZkYWJhMGFjZjYwOTIzZGQ5OTAwMWMzOTlkNGE3YzhlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjA2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDgzeHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjQ0ODk2MjE1YTA5YzYwZmE0MGNhZTkwNmY3ZWQyMDdiYmMyYzQ5MgpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBKdWwgNSAwODoxNzozNyAyMDA3ICswMjAwCgogICAgTWVyZ2VkIFBPU1QgZnJhbWV3b3JrIHdpdGggdGhlIGN1cnJlbnQgVE9ULgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgYjI0NjI5ZmEzNzcyMTRkNjNiYjQwZDEzNjBlMzU0YjZkM2U0YWY1NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjM6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg6IFJlbW92ZSBvbGQgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NjE3NWQ5NzY0ZGExMjliYjRmZDM0MWNkMjU1NGRjN2Q1NWY1YjJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMjo1NCAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NjhNRFMgdG8gTUFLRUFMTCA4NXh4IHRhcmdldC4KCiAgICBJdCB3YXMgbWlzc2luZyBmcm9tIHRoZSBvcmlnaW5hbCBwb3J0IHN1Ym1pc3Npb24uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyODM1ZTUxOGM5NjllNTEyNGJhMTE3NGVlZjNlODM3NWUxMmZhN2Q1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMjowOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4NXh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2YjMwNGFjMjA5MTY4OTUwNjA4OGE5YWU2N2Y2M2ZkNjMwMGNmMTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIxOjM3IDIwMDcgLTA1MDAKCiAgICBGaXggI2lmIHR5cG8gaW4gQ09ORklHX0NNRF8qIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNzgwYjgzMzE2ZDlhZjFmNjFkNzFjYzg4YjE5MTdiMzg3YjliOTk1CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJV2VkIEp1biAyNyAxODoxMTozOCAyMDA3ICswMjAwCgogICAgcmVzdWJtaXQ6IHBwYzR4eDogUmVtb3ZlIHNlcXVvaWEvc2VxdWlvYS5oLiBDbGVhbnVwIHBwYzQ0MC5oIGZvciBQUEM0NDBFUFgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+Cgpjb21taXQgMDRlNmMzOGI3NjZlYWEyZjMyODc1NjE1NjNjOWUyMTVlMGMzYTBkNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDEwOjA2OjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgYm9hcmQKCiAgICAtIEFkZCBvcHRpb25hbCBFQ0MgZ2VuZXJhdGlvbiByb3V0aW5lIHRvIHByZXNlcnZlIGV4aXN0aW5nCiAgICAgIFJBTSB2YWx1ZXMuIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgTGludXggbG9nLWJ1ZmZlciBzdXBwb3J0CiAgICAtIEFkZCBvcHRpb25hbCBERFIyIHNldHVwIHdpdGggQ0w9NAogICAgLSBHUElPNTAgbm90IHVzZWQgYW55bW9yZQogICAgLSBMaW1lIHJlZ2lzdGVyIHNldHVwIGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY4MTBhMzQ2NzdkYmM0NDYzMzRmNWU0NTFmMTY4MjQyNmRkMzNiNDkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDoxNzoyOCAyMDA3IC0wNjAwCgogICAgRml4IE1ha2VmaWxlIHRvIHVzZSAkKE1LQ09ORklHKSBtYWNybyBmb3IgYWxsIGJvYXJkIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDkwYjFiMmQ2OWI5Mzk2ZmYyZjAxMTY1ZWJjMTZjOWE1OTRlYjU5MjYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDoxNzoyOCAyMDA3IC0wNjAwCgogICAgRml4IE1ha2VmaWxlIHRvIHVzZSAkKE1LQ09ORklHKSBtYWNybyBmb3IgYWxsIGJvYXJkIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDo0OSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4M3h4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVhZjYxYjJmNGI4MzhhMDVmNzliZTI3NGYzZTVhNjZlZGQyZDljOTYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDo0NCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYzYTUyZmUwNTkyMzkzNWRiODY5ODVkYWY5NDM4ZTJmNzBhYzM5YWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDozOSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjR4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDozNCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjIwCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDZmNzU3NmIyMGVjZjBkMDQwYzNhYzNiMDMyYjVjYmM4NjBlMzhhOTAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoyOSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDM2NDljZDk5YmE4MTViNjYwMTg2ODczNTc2NTYwMmYwMGVmMzY5MmIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoyNCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjgyYjNiNjMwNGI2MjBlZjdlMjhiZmFhMWVhODg3YTJhZDJmYTMyNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjE5IDIwMDcgLTA2MDAKCiAgICBEb24ndCBzZXQgZ2QtPnJlbG9jX29mZiBpZiByZWxvY2F0aW9uIG9mIC5maXh1cCB3b3JrcyBjb3JyZWN0bHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZTFhNjE0NGMzMmRjN2RlNzNiY2RkMzM5OTVkZTAxNDhjYmQwYmQyOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjE0IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODN4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxN2UzMmZjMzkwOGJmNzA4OWQzZjE2ZmM4MmExYzNhZTY3NGRkNjViCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MDkgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYWY3ZDM4YjM5MzY5MGQ3ZWVhZjQxOGFjODVhMWU4MzFhNTBkNWZkMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjA0IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmOTRhM2FlY2ViYzQwY2EwOTM5YzdkNjZkMDEwMDA5Y2Y1MWJlOWUyCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NTkgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgzIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE3MWMwODRmM2FjN2ZlZGYxNDQ1MzdkYjJiMmRhNDczMjMwNjg4MzMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo1MyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDIgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjY3MGExNTQ2OGQxMzY1MjQxZDQwMDIyYjk0MDhlMTAwNDE4MWY1ZQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjQ4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMSBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwOTU1NWJkNDVhMDRjMGU1NGYxNzI1MjhkMjFiYzE4ODk2NTUwZDI4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NDMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjIwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVlZmI5OTJmMDQ2ZTUxMjI1YzkzZDUyZjgwZmVjYmU0MzNhYmQ3ODkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzozOCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDMgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDdjMTNkZmVmNjViMzE2NDdlNjlkOGI2MWRhYTFlZWM1OThhZGQxYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjMzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMiBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiNGY2NzUxM2E2MjRjZTg1ODY2YzY2YzU3NWJkMmQ5ZDc5NzdkN2YwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MjggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgxIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGI3ZDhlMDVmODY3NTI0OWI1ZjIwOGFhNzNiYWJlZWQzODRhNDUxOWQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoyMyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0MTZhMGI2ZDQwZjZlYmEzYTJmYzU0NzI1M2MxNmJkYTI4ZDkyMmY3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MTggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgzeHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWZjNTkxNzViOTI4ODNlZDVkMjY2NmEwNGU2YmM0OWU3MGE0YTM2NQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjEzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjYwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczN2Y5ZWIwMmQ3MzM1ZGYyYjNlNGQ3YTRkMzM0ODc4NGQxZGEyMDcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzowOCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5Yzc1N2I3ODlhNTlhODU1ZGI1N2I0NDhkZDgyNTMyOWM0ZTljNGEwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MDMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyMjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZDE4MWM5YTE1Y2Q0MTg2M2ZlMjQ4NDBkMTc4NDg0MjlmMjdkM2M4YwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMyOjU4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDI4N2FjOTI0YWRiNzI5MWJlYmU1MDg2NjUyYTM2MmEzMGFiMjhiMTMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMjo1MyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjNXh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDUyYjg3MDRkMDI0NWU1ODlmODZkNDYyZTllYzI1YWViN2VjYmJiZGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMDA6NDM6NTMgMjAwNyArMDIwMAoKICAgIEZpeCBhIGZldyBmaWxlIHBlcm1pc3Npb24gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3OGUwY2YyZGU3YmU3ZjFlYWVlYjYyMmViNjFmZDUwZTRkNWUyMDVjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDAwOjM4OjM4IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gUmVidWlsZCBDSEFOR0VMT0cgZmlsZS4KCmNvbW1pdCAyZjljMTllNDk2YWNiNmJiNTBkOTI5OWUxYWFiMzc3NjI1ZDQ4YzM4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzo0NCAyMDA3IC0wNTAwCgogICAgY29uZmlncy8gbXBjODZ4eDogUmV3cml0ZSBjb21tYW5kIGxpbmUgb3B0aW9ucyB1c2luZyBuZXcgQ09ORklHX0NNRC0qIHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjAyYWQzYjMzZDljZWVmODNkYmFiNDZiZTY4NjQ2ZDY0NWQ2MzdlZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MzkgMjAwNyAtMDUwMAoKICAgIFJFQURNRTogUmV3cml0ZSBjb21tYW5kIGxpbmUgY29uZmlnIHRvIHVzZSBDT05GSUdfQ01EXyogbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmEwNzRjZWM2OGU1YmFkNjBkNjMyMDZjMDUwOTc0ZTA4YWZkODA0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzozNCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS8gbm9uLWNvbmZpZzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWZjZjU0M2UwYjY2MjhjNzZmZjQ4NzA1YjFiMDU2NmJmZDExNTA3YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MjggMjAwNyAtMDUwMAoKICAgIHRvb2xzLyA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxMDdlYmUwZDM1MjQyMDg5NWFiNjliNzE1Njk3YmRlYmM4Y2FmNTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjIzIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bay16XSo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVlMzc4MDAzZDU5MmVhODI4ZWM2OWQ2ZGVmY2Q0ZGU3OTA5NmRkNWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjE5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bTWEtaV0qOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MzcxODQxMTRlYzljOWUwYWI5NGQ2NzEzNTM2MTI2MDczYmQyNDcyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoxNSAyMDA3IC0wNTAwCgogICAgY3B1LyBub24tbXBjKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjQ4MDcwZmU1ZmU0NDBkZmI1ZWU1MjY4YzkyMGRlNzBlNDhlYTMyNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MDggMjAwNyAtMDUwMAoKICAgIGNwdS9tcGMqLyA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjNTA1ZGIwYTBkYzFmNjcwYjEzY2UzYjRkM2ZiZjFlYzViM2NiZDIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjAzIDIwMDcgLTA1MDAKCiAgICBsaWJfKi86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczZjAzMjAyMWVjNWYxM2NkYThmYWE0ZTM0YjZkZTgwOTYwZWI4NmYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjU4IDIwMDcgLTA1MDAKCiAgICBsaWJfcHBjLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOThiNzkwMDNjMjFjMjU3ODIwNjAwMzI1NmRlNGU3ODFkNmIzNmNhOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NTMgMjAwNyAtMDUwMAoKICAgIHJ0Yy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlMjExNWFjYjZhODkyZDUzYTY4ODFiZjI1M2FlNDFkM2RmMzkxNTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjQ5IDIwMDcgLTA1MDAKCiAgICBuZXQvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NWNkYjliNzJjOTQ2NTVjNzMwOGI0NjRhMjY2NjA1N2MwYjI4NmUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjozNCAyMDA3IC0wNTAwCgogICAgZGlzay86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlMTA5YWU5ODI5NGE1Y2E3ZmY4NDhiNzY1MmM3YmZkNDAyM2E5NGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjIwIDIwMDcgLTA1MDAKCiAgICBmcy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1YmU0M2RlOTNmZjkwNWM0NjVlNTA5ZDQ1YTMxNjRlZjQ4ZDI2ZTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjEwIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjQ1Mzk2MGQ0ZmRiODdiMzk3MGQ5NjExOWI5MGRmMmVkMDI0ZmM0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MDUgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi8gbm9uLWNtZDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjVjNDUwYjQ3YTYyNjU5ZDUyMmNmYThmNGZhMWU0ZTVjNjBkY2NkMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6NTQgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2ktel0qIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTc2YWRjODE0MmMxZDk1NjM4NWExMDllMGI3MGY5MzE5ZWRlNGQ2NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6NDMgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2EtZl0qIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWM2M2IxMGI2MWZkNjgyMzhkNGMxNWMxY2QwNGMwYjM4MjI4ZTJjMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6MzQgMjAwNyAtMDUwMAoKICAgIEludHJvZHVjZSBpbml0aWFsIHZlcnNpb25zIG9mIG5ldyBDb21tYW5kIENvbmZpZyBmaWxlcy4KCiAgICBEZXJpdmUgdGhyZWUgbmV3IGZpbGVzIGZyb20gY21kX2NvbmZkZWZzLmg6Cgljb25maWdfYm9vdHAuaCAtIEhhcyBCT09UUCByZWxhdGVkIGNvbmZpZyBvcHRpb25zLCBub3QgY29tbWFuZHMKCWNvbmZpZ19jbWRfYWxsLmggLSBIYXMgYSBDT05GSUdfQ01EXyogZGVmaW5pdGlvbiBmb3IgZXZlcnkgY29tbWFuZAoJY29uZmlnX2NtZF9kZWZhdWx0LmggLSBIYXMgYSBDT05GSUdfQ01EXyogZGVmaW5pdGlvbiBmb3IgZGVmYXVsdCBjbWRzLgoKICAgIEZvciBub3csIGluY2x1ZGUgImNvbmZpZ19ib290cC5oIiBmb3IgY29tcGF0YWJpbGl0eSB1bnRpbCBhbGwKICAgIHVzZXJzIG9mIGl0IGRpcmVjdGx5IGluY2x1ZGUgaXQgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZjJhMDU4OTg2NTg5MDBkYzU3MTc3NjFlMjdhYmYyMDUyZTY3ZTEzCkF1dGhvcjogTXVzaHRhcSBLaGFuIDxtdXNodGFxa185MjFAeWFob28uY28uaW4+CkRhdGU6CVNhdCBKdW4gMzAgMTg6NTA6NDggMjAwNyArMDIwMAoKICAgIEZpeCBTLUFUQSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IG11c2h0YXEga2hhbiA8bXVzaHRhcWtfOTIxQHlhaG9vLmNvLmluPgoKY29tbWl0IGE1ZDcxZTI5MGYzNjczMjY5YmU4ZWVmYjRlYzQ0ZjUzNDEyZjk0NjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjUgMTk6MTE6MzcgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JZ2V0IHJpZCBvZiBDT05GSUdfUFBDNHh4X1VTRV9TUERfRERSX0lOSVRfSEFORwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGExYmQ2MjAwZWNjZDNhMDIwNDBhOTU1ZDVmNDNkM2VlMWZjOWY5M2IKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTc6MDM6MTMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUFBDNDQwRVB4IEVtaXQgRERSMCByZWdpc3RlcnMgb24gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQKCiAgICBUaGlzIHBhdGNoIHByaW50cyB0aGUgRERSIHN0YXR1cyByZWdpc3RlcnMgdXBvbiBtYWNoaW5lIGNoZWNrCiAgICBpbnRlcnJ1cHQgb24gdGhlIDQ0MEVQeC9HUnguIFRoaXMgY2FuIGJlIHVzZWZ1bCBlc3BlY2lhbGx5IHdoZW4KICAgIEVDQyBzdXBwb3J0IGlzIGVuYWJsZWQuCgogICAgSSBhZGRlZCBzb21lIHNtYWxsIGNoYW5nZXMgdG8gdGhlIG9yaWdpbmFsIHBhdGNoIGZyb20gTmlrbGF1cyB0bwogICAgbWFrZSBpdCBjb21waWxlIGNsZWFuLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MDcwMThmYjdmYWNlYjQyOWNlMGNiNDdiYWEyMDczNzQ2YjMzYTRlCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgpEYXRlOglNb24gSnVuIDI1IDE2OjUwOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBPPWJ1aWxkaXIgYnVpbGRzCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSB0byBhc3NlbWJsZSBjcHUvcHBjNHh4L3N0YXJ0LlMKICAgIGV4cGVyaWVuY2VkIGxhc3Qgd2VlayB3aGVyZSBidWlsZGluZyBmYWlsZWQgaGF2aW5nIHNwZWNpZmllZAogICAgTz0uLi9idWlsZC5zZXF1b2lhLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KCmNvbW1pdCA0NjZmZmYxYTdiYjVmZTc2NGEwNjQ1MDYyNmY2MDk4MjE5ZjQ0NmI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDI1IDE1OjU3OjM5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBwY2lfcHJlX2luaXQoKSBmb3IgNDA1IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgQ0ZHX1BDSV9QUkVfSU5JVCBvcHRpb24gY29tcGxldGVseSwgc2luY2UKICAgIGl0J3Mgbm90IG5lZWRlZCBhbnltb3JlIHdpdGggdGhlIHBhdGNoIGZyb20gTWF0dGhpYXMgRnVjaHMgd2l0aAogICAgdGhlICJ3ZWFrIiBwY2lfcHJlX2luaXQoKSBpbXBsZW1lbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYzNWM1MzE2NjIxM2MyNGE1YTBlMjM5MGVkODYxMTM2ZmY3Mzg3MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglTdW4gSnVuIDI0IDE3OjQxOjIxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1haW50ZW5hbmNlIHBhdGNoIGZvciBlc2QncyBDUENJNDA1IGRlcml2YXRzCgogICAgLWFkZCBwY2lfcHJlX2luaXQoKSBmb3IgcGNpIGludGVycnVwdCBmaXh1cCBjb2RlCiAgICAtZGlzYWJsZSBwaHkgc2xlZXAgbW9kZSB2aWEgcmVzZXRfcGh5KCkgZnVuY3Rpb24KICAgIC11c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMKICAgIC1jbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNWExYzlmZjBjNDQzMDViNTdjYjRkOGY5MzY5YmJhOTBiY2YwZTFmOApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglTdW4gSnVuIDI0IDE3OjIzOjQxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBwY2lfcHJlX2luaXQoKSBmb3IgNDA1IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBjYWxsaW5nIGEgcGxhdHRmb3JtIGRlcGVuZGFudAogICAgcGNpX3ByZV9pbml0KCkgZnVuY3Rpb24gZm9yIDQwNSBib2FyZHMuIFRoaXMgY2FuIGJlIHVzZWQgdG8KICAgIG1vdmUgdGhlIGN1cnJlbnQgcGNpXzQwNWdwX2ZpeHVwX2lycSgpIGZ1bmN0aW9uIGludG8gdGhlCiAgICBib2FyZCBjb2RlLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBtYWtlcyB0aGUgQ0ZHX1BDSV9QUkVfSU5JVCBkZWZpbmUgb2Jzb2xldGUuCiAgICBBIGRlZmF1bHQgZnVuY3Rpb24gd2l0aCAnd2VhaycgYXR0cmlidXRlIGlzIHVzZWQgd2hlbgogICAgYSBib2FyZCBzcGVjaWZpYyBwY2lfcHJlX2luaXQoKSBpcyBub3QgaW1wbGVtZW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMTYzNmQxYzg1MjljMDA2ZDEwNjI4N2NmYmMyMGNkMGEyNDZmZTFjYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMjM6NTk6MDAgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsa2UgY2xlYW51cDsgcmVidWlsZCBDSEFOR0VMT0cKCmNvbW1pdCAyZGM2NDQ1MWI0YzA4ZmZkNjE5MzcyYWJmZGMyNTA2YTJlMjM2M2I5CkF1dGhvcjogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIEFwciAxOCAxNDo1NToxOSAyMDA3ICswNDAwCgogICAgQWRhcHQgbG9nIGJ1ZmZlciBjb2RlIHRvIHN1cHBvcnQgTGludXggMi42CgogICAgQSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUsICJsb2d2ZXJzaW9uIiwgc2VsZWN0cyB0aGUgbG9nIGJ1ZmZlcgogICAgYmVoYXZpb3VyLiBJZiBpdCBpcyBub3Qgc2V0IG9yIHNldCB0byBhIHZhbHVlIG90aGVyIHRoYW4gMiwgdGhlbiB0aGUKICAgIG9sZCwgTGludXggMi40LjQsIGJlaGF2aW91ciBpcyBzZWxlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgogICAgLS0KCmNvbW1pdCBhMTFlMDY5NjVlYzkxMjcwYzUxODUzNDA3ZmYxMjYxZDNjNzQwMzg2CkF1dGhvcjogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIE1hciAyOCAxOTowNjoxOSAyMDA3ICswNDAwCgogICAgRXh0ZW5kIFBPU1Qgc3VwcG9ydCBmb3IgUFBDNDQwCgogICAgQWRkZWQgbWVtb3J5LCBDUFUsIFVBUlQsIEkyQyBhbmQgU1BSIFBPU1QgdGVzdHMgZm9yIFBQQzQ0MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgogICAgLS0KCmNvbW1pdCA1NjZhNDk0ZjU5MmFlM2IzYzA3ODVkOTBkNGUxYmE0NTU3NDg4MGM0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE5OjExOjU0IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCSAgICB1cGdyYWRlIHRoZSBQQ1M0NDBFUCBib2FyZDoKCQkgICAgLSBTaG93IG9uIHRoZSBTdGF0dXMgTEVEcywgc29tZSBTdGF0ZXMgb2YgdGhlIGJvYXJkLgoJCSAgICAtIEdldCB0aGUgTUFDIGFkZHJlc3NlcyBmcm9tIHRoZSBFRVByb20KCQkgICAgLSB1c2UgUFJFQk9PVAoJCSAgICAtIHVzZSB0aGUgQ0Ygb24gdGhlIGJvYXJkLgoJCSAgICAtIGNoZWNrIHRoZSBVLUJvb3QgaW1hZ2UgaW4gdGhlIEZsYXNoIHdpdGggYSBTSEExCgkJICAgICAgY2hlY2tzdW0uCgkJICAgIC0gdXNlIGR5bmFtaWMgVExCIGVudHJpZXMgZ2VuZXJhdGlvbiBmb3IgdGhlIFNEUkFNCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2ExZjVjODFiMGI5NTU3ODE3YTc4OWJlY2U4Mzk5MDU1ODFjMjIwNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxNjo1ODo0MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIGV4dGVuZGVkIHByb2dyYW1fdGxiKCkgZnVudGlvbgoKICAgIFRoZSByZWNlbnRseSBleHRlbmRlZCBwcm9ncmFtX3RsYigpIGZ1bmN0aW9uIGhhZCBhIHByb2JsZW0gd2hlbgogICAgbXVsdGlwbGUgVExCJ3MgaGFkIHRvIGJlIHNldHVwIChmb3IgZXhhbXBsZSB3aXRoIDUxMk1CIG9mIFNEUkFNKS4gVGhlCiAgICB2aXJ0dWFsIGFkZHJlc3Mgd2FzIG5vdCBpbmNyZW1lbnRlZC4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlCiAgICBhbmQgaXMgdGVzdGVkIG9uIEthdG1haSB3aXRoIDUxMk1CIFNEUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjAzMmU4ZjE0NzUxYTFhNzUxYjA5MjQwYTRmMWNmOWY4YTIwNzdmCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biAyMiAxNDo1ODowNCAyMDA3ICswMjAwCgogICAgW3BwY10gRml4IGJ1aWxkIGJyZWFrYWdlIGZvciBhbGwgbm9uLTR4eCBQb3dlclBDIHZhcmlhbnRzLgoKICAgIC0gYWRhcHQgdG8gdGhlIG1vcmUgZ2VuZXJpYyBFWENFUFRJT05fUFJPTE9HIGFuZCBDUklUX0VYQ0VQVElPTiBtYWNyb3MKICAgIC0gbWlub3IgNHh4IGNsZWFudXAKCmNvbW1pdCBkNjc3YjMyODU1ZjU3N2FlMjY5MGRjZDY0YTE3MmNkZDcwNmUwZmZjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgSnVuIDIyIDEwOjM0OjEyIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIGFkZCBuYW5kX2luaXQoKSBwcm90b3R5cGUgdG8gbmFuZC5oCgogICAgc2luY2UgbmFuZF9pbml0KCkgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGJ5IG90aGVyIHBhcnRzIG9mIHUtYm9vdCwgdGhlcmUKICAgIHNob3VsZCBiZSBhIHByb3RvdHlwZSBmb3IgaXQgaW4gbmFuZC5oCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzYjRjZmEzZDYyOWRmZjAyNjQzNjYyNjNjNWU5NGQ5YTUwYWQ4MGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDIwIDE4OjE0OjI0IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gUmVmcmVzaCBDSEFOR0VMT0cuCgpjb21taXQgYjNmOWVjODZlMzg4MjA3ZmQwM2RjZGY3YjE0NWI5ZWQwODBiZjAyNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNzoyMjo0NCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYm9vdHN0cmFwIGNvbW1hbmQgZm9yIEFNQ0MgU2VxdW9pYSAoNDQwRVB4KSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgYm9hcmQgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIEkyQyBib290c3RyYXAgRUVQUk9NCiAgICB2YWx1ZXMuIFJpZ2h0IG5vdyA1MzMgYW5kIDY2N01IeiBhcmUgc3VwcG9ydGVkIGZvciBib290aW5nIGVpdGhlciB2aWEgTk9SCiAgICBvciBOQU5EIEZMQVNILiBIZXJlIHRoZSB1c2FnZToKCiAgICA9PiBib290c3RyYXAgNTMzIG5vcgk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgNTMzTUh6IE5PUiBib290aW5nCiAgICA9PiBib290c3RyYXAgNjY3IG5hbmQJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDY2N01IeiBOTkFORCBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmOGEyNGNkZDMwMTUxNTA1Y2Y1N2JiZWU1Mjg5ZTkxYmY1M2JkMWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTY6NDI6MzEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEZpeCBwcm9ibGVtIHdpdGggTkFORCBib290aW5nIG9uIEFNQ0MgQWNhZGlhCgogICAgVGhlIGxhdGVzdCBjaGFuZ2VzIHNob3dlZCBhIHByb2JsZW0gd2l0aCB0aGUgbG9jYXRpb24gb2YgdGhlIE5BTkQtU1BMCiAgICBpbWFnZSBpbiB0aGUgT0NNIGFuZCB0aGUgaW5pdC1kYXRhIGFyZWEgKGluY2wuIGNhY2hlKS4gVGhpcyBwYXRjaAogICAgZml4ZXMgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NmJhOTllMzQxOTQzOTQwNTJkMjRjMDRkYzQwZDEyNjNkMjlhMjZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE2OjQwOjU4IDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBDaGFuZ2UgYm9hcmQvYW1jYy9hY2FkaWEvY3ByLmMgdG8gcGxsLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGU1ODVmMDJmODJjMTdjYzY2Y2QyMjlkYmYwZmQzMDY2YmJiZjY1OApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTggMTM6NTA6MTMgMjAwNyAtMDUwMAoKICAgIEFkZGVkIE01MzI5QUZFRSBhbmQgTTUzMjlCRkVFIFBsYXRmb3JtcwoKICAgIEFkZGVkIGJvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2YiwgY3B1L21jZjUzMngsIGRyaXZlcnMvbmV0LAogICAgZHJpdmVycy9zZXJpYWwsICBpbW1hcF81MzI5LmgsIG01MzI5LmgsIG1jZnJ0Yy5oLAogICAgaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgsIGxpYl9tNjhrL2ludGVycnVwdHMuYywgYW5kCiAgICBydGMvbWNmcnRjLmMKCiAgICBNb2RpZmllZCBDUkVESVRTLCBNQUtFRklMRSwgTWFrZWZpbGUsIFJFQURNRSwgY29tbW9uL2NtZF9iZGluZm8uYywKICAgIGNvbW1vbi9jbWRfbWlpLmMsIGluY2x1ZGUvYXNtLW02OGsvYnl0ZW9yZGVyLmgsIGluY2x1ZGUvYXNtLW02OGsvZmVjLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL2lvLmgsIGluY2x1ZGUvYXNtLW02OGsvbWNmdGltZXIuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvbWNmdWFydC5oLCBpbmNsdWRlL2FzbS1tNjhrL3B0cmFjZS5oLAogICAgaW5jbHVkZS9hc20tbTY4ay91LWJvb3QuaCwgbGliX202OGsvTWFrZWZpbGUsIGxpYl9tNjhrL2JvYXJkLmMsCiAgICBsaWJfbTY4ay90aW1lLmMsIG5ldC9ldGguYyBhbmQgcnRjL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwOTMxNzJmMDhkNmFmYjNmMzRkOGEyZjI2ZWUwZWU4NzQyNjFjZjI3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gSnVuIDE3IDE5OjA0OjExIDIwMDcgKzAyMDAKCiAgICBbZml4XSBlbWFpbCByZXBhcmF0aW9uCgpjb21taXQgMzY2NmFmZmZlN2JhZjg1OWM2YWUwY2UyYmViYmM4YWI3ZTUxMmRkYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEp1biAxNyAxOTowMzoyMSAyMDA3ICswMjAwCgogICAgW0ZJWF0gZml4IG1pY3JvYmxhemUgZmlsZSBwZXJtaXRpc3Npb24KCmNvbW1pdCBlNzM4NDZiN2NmMWUyOWFlNjM1YmY5YmI1NTcwMjY5NjYzZGYyZWU1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDExOjMzOjQxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBDaGFuZ2UgbHdtb241IHBvcnQgdG8gd29yayB3aXRoIHJlY2VudCA0NDAgZXhjZXB0aW9uIHJld29yawoKICAgIE5vdyBDT05GSUdfNDQwIGhhcyB0byBiZSBkZWZpbmVkIGluIGFsbCBQUEM0NDAgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZmEzNWNmMTJkOTE0ZDRjYWJhOTQyYWNkNWE2YzQ1ZjIxN2RlMzAyCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gMTUgMTE6MTk6MjggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW4gdXAgNDQwIGV4Y2VwdGlvbnMgaGFuZGxpbmcKCiAgICAtIEludHJvZHVjZWQgZGVkaWNhdGVkIHN3aXRjaGVzIGZvciBidWlsZGluZyA0NDAgYW5kIDQwNSBpbWFnZXMgcmVxdWlyZWQKICAgICAgZm9yIDQ0MC1zcGVjaWZpYyBtYWNoaW5lIGluc3RydWN0aW9ucyBsaWtlICdyZm1jaScgZXRjLgoKICAgIC0gRXhjZXB0aW9uIHZlY3RvcnMgbW92ZWQgdG8gdGhlIHByb3BlciBsb2NhdGlvbiAoX3N0YXJ0IG1vdmVkIGF3YXkgZnJvbQogICAgICB0aGUgY3JpdGljYWwgZXhjZXB0aW9uIGhhbmRsZXIgc3BhY2UsIHdoaWNoIGl0IG9jY3VwaWVkKQoKICAgIC0gQ3JpdGljYWxJbnB1dCBub3cgc2VydmljZWQgKHdpdGggZGVmYXVsdCBoYW5kbGVyKQoKICAgIC0gTWFjaGluZUNoZWNrIHByb3Blcmx5IHNlcnZpY2VkIChhZGRlZCBhIGRlZGljYXRlZCBoYW5kbGVyIGFuZCByZXR1cm4KICAgICAgc3Vicm91dGluZSkKCiAgICAtIE92ZXJhbGwgY2xlYW51cCBvZiBleGNlcHRpb25zIGRlY2xhcmVkIHdpdGggU1REX0VYQ0VQVElPTiBtYWNybyAodW51c2VkLAogICAgICB1bmhhbmRsZWQgYW5kIHRob3NlIG5vdCByZWxldmFudCBmb3IgNHh4IHdlcmUgZWxpbWluYXRlZCkKCiAgICAtIEVsaW1pbmF0ZWQgTGludXggbGVmdG92ZXJzLCByZW1vdmVkIGRlYWQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzY1ZmZiNzczZjVhM2NkNWFhOTRlYzc2YjZhMDUyNzZiOGNkNWIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDA4OjE4OjAxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBBZGQgaW5pdGlhbCBsd21vbjUgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBMaWViaGVyciBsd21vbjUgYm9hcmQgZXVxaXBwZWQKICAgIHdpdGggYW4gQU1DQyA0NDBFUHggUG93ZXJQQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODVmNzM3Mzc2ZDVmZjNkNWYwZDQ1YThiNjU3Njg2MzI2ZDE3NTMwNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAwNzozOTo0MyAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRXh0ZW5kIDQ0eCBHUElPIHNldHVwIHdpdGggZGVmYXVsdCBvdXRwdXQgc3RhdGUKCiAgICBUaGUgYm9hcmQgY29uZmlnIGFycmF5IENGR180NDBfR1BJT19UQUJMRSBmb3IgdGhlIHBwYzQ0MCBHUElPIHNldHVwCiAgICBpcyBleHRlbmRlZCB3aXRoIHRoZSBkZWZhdWx0IEdQSU8gb3V0cHV0IHN0YXRlIChsZXZlbCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRiY2EyMDg1MThlNWU3ZjAxYTY0MjA1ODhkMWNkNmU2MGRiNzRjMmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdW4gMTQgMTE6MTQ6MzIgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEV4dGVuZCBwcm9ncmFtX3RsYigpIHdpdGggdmlydHVhbCAmIHBoeXNpY2FsIGFkZHJlc3NlcwoKICAgIE5vdyBwcm9ncmFtX3RsYigpIGFsbG93cyB0byBwcm9ncmFtIGEgVExCIChvciBtdWx0aXBsZSkgd2l0aAogICAgZGlmZmVyZW50IHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Nlcy4gV2l0aCB0aGlzIGNoYW5nZSwgbm93IG9uZQogICAgcGh5c2ljYWwgcmVnaW9uIChlLmcuIFNEUkFNKSBjYW4gYmUgbWFwcGVkIDIgdGltZXMsIG9uY2Ugd2l0aCBjYWNoZXMKICAgIGRpYWJsZWQgYW5kIG9uY2Ugd2l0aCBjYWNoZXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTkxMjEyMWY3ZWQ4MDRlYTU4ZmQ2MmYzZjIzMGI1ZGNmYzM1N2Q4OApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDIzIDE5OjAyOjQxIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgJ3JlcGVhdGFibGUnIGF0dHJpYnV0ZSBvZiBzb21lIGNvbW1hbmRzIHRvIHNlbnNpYmxlIHZhbHVlcy4KCiAgICBNb3N0IHByb21pbmVudGx5IHRoaXMgY2hhbmdlcyAnZXJhc2UnIHRvIGJlIG5vbi1yZXBlYXRhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDVhZmIyMDIwOTNmNmEwMDE3OTdkYjkyY2Y2OTViOTNhNzBlYTlhYjQKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAyMyAxODo0Nzo0OCAyMDA3ICswMjAwCgogICAgRml4ICdydW4nIG5vdCB0byBjb250aW51ZSBhZnRlciBpbnRlcnJ1cHRlZCBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgOWI3NDY0YTJjODg2MTRlMTA2MWY1MDljNDg5MzBhM2QyNDBkMWEzNQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTU6MTQ6MjQgMjAwNyArMDIwMAoKICAgIFVTQjogVGhpcyBwYXRjaCBmaXggcmVhZGwgaW4gb2hjaSBzd2FwIHJlZyBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4Zjg0MTZmYWRhOWZhZjk0YjlhOTJmMjFmZTYwMDA2NDNjYjUyMWQ1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biA4IDE0OjUyOjIyIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBBZGQgRmxhdCBEZXZpY2UgVHJlZSBzdXBwb3J0LCB1cGRhdGUgZGVmYXVsdCBlbnYuIGFjY29yZGluZ2x5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MDQ1ZjMzYzAyM2Y2OTg2NjBhMmU0NWQxYjIxOTRjMDcxMWFiZWJjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1biA4IDEwOjI0OjU4IDIwMDcgKzAyMDAKCiAgICBGaXggY29uZmlnIHByb2JsZW1zIG9uIFNDMyBib2FyZDsgbWFrZSBpZGVfcmVzZXRfdGltZW91dCB3b3JrLgoKY29tbWl0IGZiYTNmYjA0NDliOGE1NDU0MmFlZDFlNzI5ZGU3NmU3ZjVhMmZmMWIKQXV0aG9yOiBCZW5vw650IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgpEYXRlOglGcmkgSnVuIDggMDk6NTU6MjQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gZml4IGdwaW8gc2V0dGluZyB3aGVuIHVzaW5nIENGR180NDBfR1BJT19UQUJMRQoKICAgIFNldCB0aGUgY29ycmVjdCB2YWx1ZSBpbiBHUElPeF9UQ1Igd2hlbiBjb25maWd1cmluZyB0aGUgZ3BpbwogICAgd2l0aCBDRkdfNDQwX0dQSU9fVEFCTEUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVub2l0IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY1MzllZGMwNzZjZmU1MmJmZjkxOWRkNTEyYmE4ZDdhZjBlMjIwOTIKQXV0aG9yOiBWYWRpbSBCZW5kZWJ1cnkgPHZiZW5kZWJAZ29vZ2xlLmNvbT4KRGF0ZToJVGh1IE1heSAyNCAxNTo1MjoyNSAyMDA3IC0wNzAwCgogICAgY29zbWV0aWMgY2hhbmdlcyB0byBiY201NzB4IGRyaXZlcgoKICAgIFRoaXMgaXMgYSBjb3NtZXRpYyBvbmx5IGNoYW5nZXMgc3VibWlzc2lvbi4KICAgIEl0IGFmZmVjdHMgZmlsZXMgcmVsZXZhbnQgdG8gYmNtNTcweCBkcml2ZXIuCiAgICB0aGUgY29tbWFuZHMgdXNlZCB0byBnZW5lcmF0ZSB0aGlzIGNoYW5nZSB3YXMKCiAgICBjZCBkcml2ZXJzCiAgICBMaW5kZW50IC1wY3MgLWw4MCAgYmNtNTcweC5jICAgYmNtNTcweF9sbS5oICAgYmNtNTcweF9tbS5oCXRpZ29uMy5jICB0aWdvbjMuaAoKICAgIFRoZSBCTVcgdGFyZ2V0ICh0aGUgb25seSBvbmUgdXNpbmcgdGhpcyBjaGlwIHNvIGZhcikgYnVpbGRzIGNsZWFubHksIHRoZQogICAgYGJlZm9yZSBhbmQgYWZ0ZXInIGdlbmVyYXRlZCBvYmplY3QgZmlsZXMgZm9yIGRyaXZlcnMvYmNtNTcweC5jIGFuZAogICAgZHJpdmVycy90aWdvbjMubyBhcmUgaWRlbnRpY2FsIGFzIHJlcG9ydGVkIGJ5IG9iamR1bXAgLWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWYWRpbSBCZW5kZWJ1cnkgPHZiZW5kZWJAZ29vZ2xlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDcyNTY3MWNjZDJjZDA0YzllYmM1MGM5ZTVhOTRkZDhjYmFkZTY2YjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTY6MjY6NTYgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwOyBnZW5lcmF0ZSBuZXcgQ0hBTkdFTE9HIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOWQ3NjNjMzVlMGI1NTY4ZWFmMGI4YWRiZjdhNjhjY2ZlN2ZhMjQzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQ0IDIwMDcgKzAyMDAKCiAgICBUUkFCLCBVU0I6IHVwZGF0ZSB0cmFiIGJvYXJkIGNvbmZpZ3VyYXRpb24gZm9yIHVzZSBvZiBnZW5lcmljIG9oY2kgZHJpdmVyCgpjb21taXQgZGFjZTQ1YWNkMWMxMzU3ZGFhOTMyMjA5OWQwN2M5YTllMDhiMDAyNApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0MyAyMDA3ICswMjAwCgogICAgVVNCOiBvaGNpIGZpeGVzIGFuZCBjbGVhbnVwIGZvciBwcGM0eHggYW5kIHlvc2VtaXRlIGJvYXJkLgoKY29tbWl0IDcyNjU3NTcwYjYxNjM1Yzc0ZmEwYzNmMGU5ZTdkMDY3MWE5ZDA4ZGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDMgMjAwNyArMDIwMAoKICAgIFVTQjogb2hjaSBmaXhlcyBhbmQgY2xlYW51cCBmb3IgbXBjNXh4eCBhbmQgSWNlQ3ViZSBib2FyZCBjb25maWcKCmNvbW1pdCBmYzQzYmU0NzhmMmFhMzdjZTM4YWNkODUzNTUwMzg4NjZlNDE2MmFmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjM1IDIwMDcgKzAyMDAKCiAgICBVU0IvT0hDSTogZW5kaWFubmVzcyBjbGVhbnVwIGluIHRoZSBnZW5lcmljIG9oY2kgZHJpdmVyCgpjb21taXQgYzQ0MGJmZTZkNmQ5MmQ2NjQ3OGE3ZTg0NDAyYjMxZjQ4NDEzNjE3YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQyOjEzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgQU1DQyBBY2FkaWEgKDQwNUVaKSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyBBY2FkaWEgZXZhbCBib2FyZC4KCiAgICBQbGVhc2UgbWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSBqdW1wZXIgSjcgdG8gcG9zaXRpb24gMi0zIHdoZW4gYm9vdGluZwogICAgZnJvbSBOT1IsIGFuZCB0byBwb3NpdGlvbiAxLTIgd2hlbiBib290aW5nIGZvciBOQU5ELgoKICAgIEkgYWxzbyBhZGRlZCBhIGJvYXJkIGNvbW1hbmQgdG8gY29uZmlndXJlIHRoZSBJMkMgYm9vdHN0cmFwIEVFUFJPTQogICAgdmFsdWVzLiBSaWdodCBub3cgb25seSAyNjdNSHogaXMgc3VwcG9ydCBmb3IgYm9vdGluZyBlaXRoZXIgdmlhIE5PUgogICAgb3IgTkFORCBGTEFTSC4gSGVyZSB0aGUgdXNhZ2U6CgogICAgPT4gYm9vdHN0cmFwIDI2NyBub3IJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDI2N01IeiBOT1IgYm9vdGluZwogICAgPT4gYm9vdHN0cmFwIDI2NyBuYW5kCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciAyNjdNSHogTk5BTkQgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxODEzNTEyNWY5MDk5NDhiODVkMWQ2ODgxYWI0YWMwZWZiNGExYzU4CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgRmlsZXMgaW5jbHVkZS9saW51eC9ieXRlb3JkZXIve2JpZyxsaXR0bGV9X2VuZGlhbi5oIGRlZmluZQogICAgX19CSUdfRU5ESUFOIGFuZCBfX0xJVFRMRV9FTkRJQU4uCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgYTgxZDFjMGI4NWIxM2U5ZDQ1ZjJkODdkZTk2YTUxYTZlMGVmMGY4MgpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgQWRkIFVTQiBQQ0ktT0hDSSwgVVNCIGtleWJvYXJkIGFuZCBldmVudCBwb2xsIHN1cHBvcnQgdG8gdGhlCiAgICBNUEM4NjQxSFBDTiBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkYWUxNGNlOGZiZGYzODAwMTdkYzU0ZjE3MjIxOGU3ZDJhY2M4ODkKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIFVTQiBQQ0ktT0hDSSwgaW50ZXJydXB0IHBpcGUgYW5kIHVzYiBldmVudCBwb2xsIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZGVkIFVTQiBQQ0ktT0hDSSBjaGlwcyBzdXBwb3J0LCBpbnRlcnJ1cHQgcGlwZSBzdXBwb3J0CiAgICBhbmQgdXNiIGV2ZW50IHBvbGwgc3VwcG9ydC4gRm9yIHN1cHBvcnRpbmcgdGhlIFVTQiBpbnRlcnJ1cHQgcGlwZSwgdGhlCiAgICBnbG9iZSB1cmJfcHJpdiBpcyBtb3ZlZCB0byBwdXJiIGluIGVkIHN0cnVjdC4gTm93LCB3ZSBjYW4gcHJvY2VzcwogICAgc2V2ZXJhbCB1cmJzIGF0IG9uZSB0aW1lLiBUaGUgaW50ZXJydXB0IHBpcGUgc3VwcG9ydCBjb2RlcyBhcmUgcG9ydGVkCiAgICBmcm9tIExpbnV4IGtlcm5lbCAyLjQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZGNmYWExYjAyMjY4YjI4OTllMzc0YjM1YWRmOTM2YzkxMWE0N2ViCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEzIDIwMDcgKzAyMDAKCiAgICBVU0IgZXZlbnQgcG9sbCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBldmVudCBwb2xsIHN1cHBvcnQsIHdoaWNoIGNvdWxkIGJlIHVzZWQgaW4gdXNia2JkCiAgICBhbmQgb3RoZXIgdXNiIGRldmljZXMgZHJpdmVyIHdoZW4gdGhlIGFzeW5jaHJvbm91cyBpbnRlcnJ1cHQKICAgIHByb2Nlc3NpbmcgaXMgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20KCmNvbW1pdCA5YTFkMDBmYTQ3YzFlMDVlM2ZkYjYwYjMzMjEzYWY0ZTE4ZDRjMThlCkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMiAyMDA3ICswMjAwCgogICAgSVNQMTE2eDogZGVsYXkgZm9yIGNyYXBweSBVU0Iga2V5cwoKICAgIFVzaW5nIHNvbWUgKHZlcnkpIHNsb3cgVVNCIGtleXMgY2F1c2UgdGhlIFVTQiBob3N0IGNvbnRyb2xsZXIgYnVmZmVycwogICAgYXJlIG5vdCByZWFkeSB0byBiZSByZWFkIGJ5IHRoZSBDUFUgc28gd2UgbmVlZCBhbiBleHRyYSBkZWxheSBiZWZvcmUKICAgIHJlYWRpbmcgdGhlIFVTQiBzdG9yYWdlIGRhdGEuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMDk0NDQxNDM2NzBjOWMyMjQzY2I3YWJhOWY3MGIzNzEzZDMzYmVkMQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMiAyMDA3ICswMjAwCgogICAgQ2hhbmdlIGR1cGxpY2F0ZSB1c2JfY3B1X2luaXRfZmFpbCB0byB1c2JfYm9hcmRfaW5pdF9mYWlsCgogICAgVGhhbmtzIHRvIExpZXcgVHNpIENodW5nIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPiBmb3IgcG9pbnRpbmcKICAgIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMzI5MjJjZGM0NzBmZGZkMzliZWEwYzFjNGY1ODJkM2ZiMzQwNDIxZQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNSAxMjozMDo1MiAyMDA3IC0wNTAwCgogICAgbXBjODY0MSBpbWFnZSBzaXplIGNsZWFudXAKCiAgICBlNjAwIGRvZXMgbm90IGhhdmUgYSBib290cGcgcmVzdHJpY3Rpb24uCiAgICBNb3ZlIHRoZSB2ZXJzaW9uIHN0cmluZyB0byBiZWdpbm5pbmcgb2YgaW1hZ2UgYXQgZmZmMDAwMDAuCiAgICBSZXNldHZlYy5TIGlzIG5vdCBuZWVkZWQuCiAgICBVcGRhdGUgZmxhc2ggY29weSBpbnN0cnVjdGlvbnMuCiAgICBBZGQgdGZ0cGZsYXNoIGVudiB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUzY2JlMWY5M2M1NzIyZjhlYmJhZDQ2OGUzMGMwNjlhMmI1MTEwOTcKQXV0aG9yOiBCZW5vw650IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgpEYXRlOglNb24gSnVuIDQgMDg6MzY6MDUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IHBwYzR4eCBib290c3RyYXAgbGV0dGVyIGRpc3BsYXllZCBvbiBzdGFydHVwCgogICAgVGhlIGF0dGFjaGVkIHBhdGNoIGlzIG1haW5seSBjb3NtZXRpYywgYWxsb3dpbmcgdS1ib290IHRvCiAgICBkaXNwbGF5IHRoZSBjb3JyZWN0IGJvb3RzdHJhcCBvcHRpb24gbGV0dGVyIGFjY29yZGluZyB0byB0aGUKICAgIGRhdGFzaGVldHMuCgogICAgVGhlIG9yaWdpbmFsIHBhdGNoIHdhcyBleHRlbmRlZCB3aXRoIDQwNUVaIHN1cHBvcnQgYnkgU3RlZmFuCiAgICBSb2VzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW5vaXQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWIxMzEzZmIyNzU4ZmZjZThiNjI0NDU3Zjc3N2Q4Y2M2NzA5NjA4ZApBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KRGF0ZToJV2VkIE1heSAyMyAxMjo0NToxOSAyMDA3ICswNDAwCgogICAgZml4IGNvbXBpbGF0aW9uIHByb2JsZW0gZm9yIG1wYzgzNDlpdHggQ0ZHX1JBTUJPT1QKCiAgICBDdXJyZW50IGluY2x1ZGUvY29uZmlncy9NUEM4MzQ5SVRYLmggZG9lcyBjb250YWluIHNvbWUgc3VwcG9ydCBmb3IgYnVpbGRpbmcKICAgIGltYWdlIHRoYXQgd2lsbCBiZSBzdGFydGVkIGZyb20gbWVtb3J5ICh3aXRob3V0IHB1dHRpbmcgaW4gaW50byBmbGFzaCkuCiAgICBJdCBjb3VsZCBiZSB0cmlnZ2VyZWQgYnkgYnVpbGRpbmcgd2l0aCBURVhUX0JBU0Ugc2V0IHRvIGEgbG93IHZhbHVlLgoKICAgIEhvd2V2ZXIsIHRoaXMgc3VwcG9ydCBpcyBpbmNvbXBsZXRlOiB1c2luZyBvZiBsb3cgVEVYVF9CQVNFIGNhdXNlcwogICAgZGVmaW5pbmcgY29uZmlndXJhdGlvbiBtYWNyb3MgaW4gaW5jb25zaXN0ZW50IHdheSwgd2hpY2ggbGF0ZXIgbGVhZHMKICAgIHRvIGNvbXBpbGF0aW9uIGVycm9ycy4gSW4gcGFydGljdWxhci4gZmxhc2ggc3VwcG9ydCBpcyBiZWluZyBkaXNhYmxlZCwKICAgIGJ1dCB0aGVuIGZsYXNoIHN0cnVjdHVyZXMgZ2V0IHJlZmVyZW5jZWQuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBsb3cgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1PZmYtQnk6IE5pa2l0YSBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhMzY0ZjA5NzBkZTQ5OTQ5ZDYzNWU2MGFjY2Y0NjNjNjQ0M2VmOGMKQXV0aG9yOiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CkRhdGU6CVdlZCBNYXkgMjMgMTI6NDU6MjUgMjAwNyArMDQwMAoKICAgIGFkZCBtaXNzaW5nICdjb25zb2xlJyB2YXIgdG8gZGVmYXVsdCBtcGM4MzQ5aXR4IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMThkMTU2ZWIzN2M5MGZhZGM4ZWM3YTgxYTNiODkxNzYxNjFmODViNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE2OjE4OjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtaXNzaW5nIGZpbGUgZm9yIEJhbWJvbyBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNTVhOTY0NzhhMDg4MWU2ZGE5NmNiYmJjZjM0OTUyZDZhM2IxYjRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6NTg6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVW5kbyBTZXF1b2lhIHBhdGNoIGZvciBkeW5hbWljIEVCQyBzcGVlZCBzdXBwb3J0IG9mIDgzTUh6CgogICAgVGhpcyBwYXRjaCB1bmRvZXMgdGhlIHBhdGNoIGJ5IEplZmYgTWFubiB3aXRoIGNvbW1pdC1pZCBhZGE0Njk3ZC4gQXMKICAgIHN1Z2dlc3RlZCBieSBBTUNDIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBkeW5hbWljYWxseSBjaGFuZ2UgdGhlIEVCQwogICAgc3BlZWQgYWZ0ZXIgYm9vdHVwLiBTbyB3ZSB1bmRvIHRoaXMgY2hhbmdlIHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlkOTA5NjA0M2U4ZjcxM2Q0YmYxNzQzZDMyZTE0NTllNmExMTY0NGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyOTowNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgU2VxdW9pYSBOQU5EIGJvb3Rpbmcgc3VwcG9ydCB3aXRoIEVDQwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZjk1OWM3ZDY2ODc1NjdjMzA4ZTM2NmU5NTgxZTFhNWFmZjVjYzViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6Mjc6MTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciBBTUNDIEJhbWJvbyAoNDQwRVApIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEJhbWJvbyBldmFsIGJvYXJkLgogICAgU2luY2UgdGhlIE5BTkQtU1BMIGJvb3QgaW1hZ2UgaXMgbGltaXRlZCB0byA0a2J5dGVzLCB0aGlzIHZlcnNpb24KICAgIG9ubHkgc3VwcG9ydHMgdGhlIG9uYm9hcmQgNjRNQnl0ZXMgb2YgRERSLiBUaGUgRElNTSBtb2R1bGVzIGNhbid0IGJlCiAgICBzdXBwb3J0ZWQsIHNpbmNlIHRoZSBzZXR1cCBjb2RlIGZvciBJMkMgRElNTSBhdXRvZGV0ZWN0aW9uIGFuZAogICAgY29uZmlndXJhdGlvbiBpcyB0b28gYmlnIGZvciB0aGlzIE5BTkQgYm9vdGxvYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDJiZTU2ZjUzYzhiMTA3ODY4ZTYxMjVjODUyNGFlODQyOTNlOTVhNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjIzOjA0IDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgRUNDIHN1cHBvcnQgdG8gTkFORCBib290aW5nIHN1cHBvcnQgaW4gbmFuZF9zcGwvbmFuZF9ib290LmMKCiAgICBUaGUgVS1Cb290IE5BTkQgYm9vdGluZyBzdXBwb3J0IGlzIG5vdyBleHRlbmRlZCB0byBzdXBwb3J0IEVDQwogICAgdXBvbiBsb2FkaW5nIG9mIHRoZSBOQU5EIFUtQm9vdCBpbWFnZS4KCiAgICBUZXN0ZWQgb24gQU1DQyBTZXF1b2lhICg0NDBFUHgpIGFuZCBCYW1ib28gKDQ0MEVQKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQ3MWRiMDdmYmI2NWE4NDFmZmM5ZjRmMTEyNTYyYjk0NTIzMGY5OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE5OjI5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFByZXBhcmUgQmFtYm9vIHBvcnQgZm9yIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSAibm9ybWFsIiBCYW1ib28gTk9SIGJvb3RpbmcgcG9ydCwgc28KICAgIHRoYXQgaXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBjb21pbmcgc29vbiBOQU5EIGJvb3RpbmcKICAgIEJhbWJvbyBwb3J0LgoKICAgIEl0IGFsc28gZW5hYmxlcyB0aGUgMm5kIE5BTkQgZmxhc2ggb24gdGhlIEJhbWJvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTNhZDAyMTAzZmI4YmU0MTM4YTk5MzdhOGFiOTFmY2RmZjdiNDk4NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE2OjU4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBpbl9iZTMyKCkgZnVuY3Rpb25zIGFuZCBmcmllbmRzIHRvIGxhdGVzdCBMaW51eCB2ZXJzaW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkxZGEwOWNmYmNlMGMxZGUwNWQ2ZDg0YWE4MzYzZDY2NmZhN2VhM2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxNToxMiAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIGhhcmR3YXJlIEVDQyBzdXBwb3J0IHRvIHRoZSBQUEM0eHggTkFORCBkcml2ZXIgbmRmYy5jCgogICAgVGhpcyBwYXRjaCBhZGRzIGhhcmR3YXJlIEVDQyBzdXBwb3J0IHRvIHRoZSBOREZDIGRyaXZlci4gSXQgYWxzbwogICAgY2hhbmdlcyB0aGUgcmVnaXN0ZXIgYWNjZXNzIGZyb20gdXNpbmcgdGhlICJzaW1wbGUiIGluMzIvb3V0MzIKICAgIGZ1bmN0aW9ucyB0byB0aGUgaW5fYmUzMi9vdXRfYmUzMiBmdW5jdGlvbnMsIHdoaWNoIG1ha2Ugc3VyZQogICAgdGhhdCB0aGUgYWNjZXNzIGlzIGNvcnJlY3RseSBzeW5jZWQuIFRoaXMgaXMgdGhlIG9ubHkgcmVjb21tZW5kZWQKICAgIGFjY2VzcyB0byBTb0MgcmVnaXN0ZXJzIGluIHRoZSBjdXJyZW50IExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTdiNWU4NjIyODdjY2E3NmYxOWRjZjhiNzQxZTYxYTdkMDY2MTdmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjEyOjE1IDIwMDcgKzAyMDAKCiAgICBOQU5EOiBVcGRhdGUgbmFuZF9lY2MuYyB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgbmFuZF9lY2MgY29kZSB0byB0aGUgbGF0ZXN0IExpbnV4IHZlcnNpb24uCiAgICBUaGUgbWFpbiByZWFzb24gZm9yIHRoaXMgaXMgdGhlIG1vcmUgY29tcGFjdCBjb2RlLiBUaGlzIG1ha2VzCiAgICBpdCBwb3NzaWJsZSB0byBpbmNsdWRlIHRoZSBFQ0MgY29kZSBpbnRvIHRoZSBOQU5EIGJvb3Rsb2FkZXIKICAgIGltYWdlIChOQU5EX1NQTCkgZm9yIFBQQzR4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDJkNDMyNzYwZDIxOTlkMGU4NTU4ZmRkOWQxNzg5YjgxMzFhYmNmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjA5OjUwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDQ0eCBERFIgZHJpdmVyIGNvZGUgY2xlYW51cCBhbmQgc21hbGwgZml4IGZvciBCYW1ib28KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTRiYmVkMjgwM2EyYWQwNTIxYzczNjJmNWQzZTA2NWY5OWFiYWVkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDEzOjQ1OjI0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBMdWFuIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgRUNDCgogICAgV2l0aCB0aGUgdXBkYXRlZCA0NHggRERSMiBkcml2ZXIgdGhlIEx1YW4gYm9hcmQgbm93IHN1cHBvcnRzCiAgICBFQ0MgZ2VuZXJhdGlvbiBhbmQgY2hlY2tpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcxODdkYjczNDkxYzhkZTBmYjU2ZWZiNWU1MTM0YmE1ZWM0NDMwODkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxMzo0NTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBBZGQgY29uZmlnIG9wdGlvbiBmb3IgMTgwIGRlZ3JlZSBhZHZhbmNlIGNsb2NrIGNvbnRyb2wgYXMgbmVlZGVkCiAgICBmb3IgdGhlIEFNQ0MgTHVhbiBldmFsIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZTE1Mjk4MzhhYmJmYWEzNWYxNGUzZmZiZWFhYmE2OTMxNTk0NzVmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAzMSAxNzoyMDowOSAyMDA3ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNUWCBHUDNTU0EgKHN0eHNzYSkgQm9hcmQgd2l0aCA0IE1pQiBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcwNDkyODhmYjFmMTZmMWIzMTcxNDAyMjZjZGViZDA3YmQ0MTYzOTUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjI2OjQ2IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBDb2RlIGNsZWFudXAsIGZpeCBvZiBhIHR5cG8gaW4gT0ZfU1RET1VUX1BBVEguCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0NTIwZmQ0ZDJjNDUwZGE0OTYzNzIxNmFhMGU1MzczOWI2MWM2MGFjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNjozNiAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIHN1cHBvcnQgZm9yIHJlZHVuZGFudCBlbnZpcm9ubWVudC4KCiAgICBFbmFibGUgcmVkdW5kYW50IGVudmlyb25tZW50LCBhZGQgYSBNVEQgcGFydGl0aW9uIGZvciBpdDsgYWxzbyBhZGQgZW52LgogICAgdmFyaWFibGUgY29tbWFuZCBmb3IgcGFzc2luZyBNVEQgcGFydGl0aW9ucyB0byB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTI2ZWFiZWVjMzE3NDZmMDZkMzA5MTAzNjkwODkyODA1Njk2ZTM0NApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDU6MTEgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IENoYW5nZSBtYXhpbXVtIGNvbnNvbGUgYnVmZmVyIHNpemUgZnJvbSAyNTYgdG8gMTAyNCBieXRlcy4KCiAgICBBbGxvdyBwYXNzaW5nIGxvbmdlciBjb21tYW5kIGxpbmUgdG8gdGhlIGtlcm5lbCAtIHVzZWZ1bCBlc3BlY2lhbGx5CiAgICBmb3IgcGFzc2luZyBNVEQgcGFydGl0aW9uIGxheW91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTE2MGI5NmY3MTQ4M2ExMTZkZTgxYzY4OTg1ZThlZTMwNmQzNjc2NApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDQ6MTggMjAwNyArMDIwMAoKICAgIEZpeDogQWRkIG1pc3NpbmcgTlVMTCB0ZXJtaW5hdGlvbiBpbiBzdHJpbmdzIGV4cGFuZGVkIGJ5IG1hY3JvcyBwYXJzZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDYzMGVjODRhZWY3MjI4ZmMxZGJmYjM4ZGVjNzg1NDE0MDNhNzg2Y2QKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjAzOjM3IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBVcGRhdGUgRUVQUk9NJ3MgcGFnZSB3cml0ZSBiaXRzIGFuZCB3cml0ZSBkZWxheS4KCiAgICBDaGFuZ2UgRUVQUk9NIGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBkYXRhc2hlZXQ6ICJUaGUgMjRDMDFBIGFuZCAyNEMwMkEKICAgIGhhdmUgYSBwYWdlIHdyaXRlIGNhcGFiaWxpdHkgb2YgdHdvIGJ5dGVzIiwgYW5kICJUaGlzIGRldmljZSBvZmZlcnMgZmFzdCAoMW1zKQogICAgYnl0ZSB3cml0ZSIuIEFkZCAzbXMgb2YgZXh0cmEgZGVsYXkuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGMwMDEyNWUwN2MxZWJjMTI1YmFiNDBlMWUxOGJjZWVkOGJlMGMxNjIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU4OjQ1IDIwMDcgKzAyMDAKCiAgICBNUEM1WFhYLCBNb3Rpb24tUFJPOiBGaXggUEhZIGluaXRpYWxpemF0aW9uIHByb2JsZW0uCgogICAgQWZ0ZXIgYmVpbmcgcmVzZXQgaW4gbXBjNXh4eF9mZWNfaW5pdF9waHkoKSwgUEhZIGdvZXMgaW50byBGWCBtb2RlLCBpbiB3aGljaAogICAgbmV0d29ya2luZyBkb2VzIG5vdCBmdW5jdGlvbi4gVGhpcyBjb21taXQgc3dpdGNoZXMgUEhZIHRvIFRYIG1vZGUgYnkgY2xlYXJpbmcKICAgIHRoZSBGWF9TRUwgYml0IG9mIE1vZGUgQ29udHJvbCBSZWdpc3Rlci4gSXQgYWxzbyByZXZlcnNlcyBjb21taXQKICAgIDAwODg2MWEyZjNlZjJjMDYyNzQ0ZDczMzc4N2M3ZTUzMGExYjg3NjEsIGkuZS4sIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5M2I3OGY1MzRhNmU3MDhiNGNmMWE0ZmZiNGQ4NDM4YzY3YTAwN2RiCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1NzoxNSAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIHN1cHBvcnQgZm9yIHRoZSB0ZW1wZXJhdHVyZSBzZW5zb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM3NWU2Mzk2MzBjYzEzMmRjMTljZDFlY2RhNTkyMmMwZGIwYmZiYmEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU1OjIzIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgZGlzcGxheWluZyBvZiBDUExEIHJldmlzaW9uIGluZm9ybWF0aW9uIGR1cmluZyBib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjOTk1MTJkNmJkMzk3M2YwMWNhMmZjNDg5NmQ4MjliNDZlNjhmMTUwCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1Mzo0MyAyMDA3ICswMjAwCgogICAgTVBDNXh4eDogQ2hhbmdlIG5hbWVzIG9mIGRlZmluZXMgcmVsYXRlZCB0byBJUEIgYW5kIFBDSSBjbG9ja3MuCgogICAgQm90aCBDRkdfUENJU1BFRURfNjYgYW5kIENGR19JUEJTUEVFRF8xMzMgYXJlIG1pc25hbWVkLCBhcyBkZWZpbmluZwogICAgdGhlbSBkb2VzIG5vdCBjYXVzZSBQQ0kgb3IgSVBCIGNsb2NrcyB0byBydW4gYXQgdGhlIHNwZWNpZmllZCBzcGVlZC4KICAgIEluc3RlYWQsIHRoZXkgY29uZmlndXJlIGRpdmlzb3JzIHVzZWQgdG8gY2FsY3VsYXRlIHNhaWQgY2xvY2tzLiBUaGlzCiAgICBwYXRjaCByZW5hbWVzIHRoZSBkZWZpbmVzIGFjY29yZGluZyB0byB0aGVpciByZWFsIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTExYzBiODVkYzM2NjRiYjNjMWU3ODExMzcxMTg3MzBjOGY2MTlhYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTE6NDggMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBMRUQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdlYmI0NDc5YjA3ZmYyOTRlYjRkNzZlNDIwNzUzYTAzNDlmN2M5M2IKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE1heSAyNCAxMjoxMjo0NyAyMDA3ICswMjAwCgogICAgW1BBVENIXVtOQU5EXSBEZWZpbmUgdGhlIFZlbmRvciBJZCBmb3IgTWljcm9uIE5BTkQgRmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNzU2ODk0NzIyYzg4OGQwOWE5ZmExZGY4MzIzNzUzNzcyZDNkY2NlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDI0IDA5OjQ5OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzbWFsbCA0MDVFWiBPQ00gaW5pdGlsaXphdGlvbiBidWcgaW4gc3RhcnQuUwoKICAgIEFzIHBvaW50ZWQgb3V0IGJ5IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBhY20ub3JnPiB0aGlzIHBhdGNoCiAgICBmaXhlcyBhIHNtYWxsIGJ1ZyBpbiB0aGUgNDA1RVogT0NNIGluaXRpYWxpemF0aW9uLiBUaGFua3MgZm9yCiAgICBzcG90dGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWQ0YTE3OTAxM2Q1OWE3NjQ0NjQ2MmUxZWIwYTk2OWZiYTYzZWI4MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAyNCAwODoyMjowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBBY2FkaWEgc3VwcG9ydCBmb3IgYm9hcmQgcmV2aXNpb24gMS4xCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBBY2FkaWEgKDQwNUVaKSBzdXBwb3J0IGZvciB0aGUgbmV3IDEuMSBib2FyZAogICAgcmV2aXNpb24uIEl0IGFsc28gYWRkcyBzdXBwb3J0IGZvciBOQU5EIEZMQVNIIHZpYSB0aGUgNHh4IE5ERkMuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGUganVtcGVyIEo3IG11c3QgYmUgaW4gcG9zaXRpb24gMi0zIGZvciB0aGlzCiAgICBOQU5EIHN1cHBvcnQuIFBvc2l0aW9uIDEtMiBpcyBmb3IgTkFORCBib290aW5nIG9ubHkuIE5BTkQgYm9vdGluZwogICAgc3VwcG9ydCB3aWxsIGZvbGxvdyBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODIyZDU1MzY1YmI1NTdlMDg0ZDBlMzM2MjVhNmRlZGNjODY2MTEwYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMjMgMTQ6MDk6NDYgMjAwNyAtMDUwMAoKICAgIEFkZCBMSVNUXzg2eHggTUFLRUFMTCB0YXJnZXQgZm9yIFBvd2VyUEMgYnVpbGRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWYwMDc3YWJkNjlmN2E3Yzc1NmE5MTViOTYxMDM3MzAyYmUzZTZmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMiAxMjo0ODowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVc2UgZG8geyAuLi4gfSB3aGlsZSAoMCkgZm9yIENQUiAmIFNEUiBhY2Nlc3MgbWFjcm9zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmM2RmYzEzOWE4MzhiMDg0MWMxNTFlZmUwMGFkNDdkYjIzNjZlNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjIgMTI6NDY6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIDQwNSBzdXBwb3J0IHRvIDR4eCBOQU5EIGRyaXZlciBuZGZjLmMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgNDA1IFBQQydzIHRvIHRoZSA0eHggTkFORCBkcml2ZXIKICAgIG5kZmMuYy4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIG5ldyBBTUNDIDQwNUVaLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMDYwM2Q3Njc2NzQyNmJlODAzZGFkZDRmYjY4OGI5N2ViNjk0ODFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWF5IDIxIDA3OjQxOjIyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIDQwNUVaIE9DTSBpbml0aWFsaXphdGlvbgoKICAgIEFzIHNwb3R0ZWQgYnkgQnJ1Y2UgQWRsZXIgdGhpcyBwYXRjaCBmaXhlcyBhbiBpbml0aWFsaXphdGlvbiBwcm9ibGVtCiAgICBmb3IgdGhlIDQwNUVaIE9DTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2UzYjk1NjkwNmViYTllNGFkNzkzMTU4MWVjZWRhYWQxMGVjY2NlOApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTY6NDc6MDMgMjAwNyArMDEwMAoKICAgIFJlZHVjZSBsaW5lIGxlbmd0aHMgdG8gODAgY2hhcmFjdGVycyBtYXguCgpjb21taXQgOTNlZjQ1YzlkZGZkZDlmYzE3YzRlNzRiZDhlMmYyNDU2NTgwZWI3MgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTQ6MzQ6MDcgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgMTQ0M2EzMTQ1N2Q2OGY3ZThmMGI5NDAzZTk4MzJlYzFlNzlkYzU5ZApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTQ6MzM6MTEgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgMjU1YTM1NzdjODQ4NzA2NDQxZGFlZTAxNzQ1NDNlZmUyMDVhNzdmOApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMTY6NTI6MTkgMjAwNyAtMDUwMAoKICAgIFJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3gKCiAgICBGb3IgYWxsIHByYWN0aWNhbCB1LWJvb3QgcHVycG9zZXMsIFRTRUNzIGRvbid0IGRpZmZlciB0aHJvdWdob3V0IHRoZQogICAgbXBjOFszNTZdeHggZmFtaWxpZXM7IHJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3guCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDEyNGMyNjAyYWUyZDRjNWQzZGJhMDViNDgyZDkxNTQ4MjQyZGU4CkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMTQ6NDk6MTIgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gY2F1c2UgbXkgTWljcm9ibGF6ZSBtZXJnZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IGFkYTQ2OTdkMDIzMGQ2ZGE1NTI4Njc3NzdmOThhNjdlYzNiYTI1NzkKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJV2VkIE1heSAxNiAxMzoyMzoxMCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBSdW4gbmV3IHNlcXVvaWEgYm9hcmRzIHdpdGggYW4gRUJDIHNwZWVkIG9mIDgzTUh6CgogICAgQmVjYXVzZSB0aGUgU2VxdW9pYSBib2FyZCBkb2VzIG5vdCBib290IHdpdGggYW4gRUJDIGZhc3RlciB0aGFuIDY2TUh6LAogICAgdGhlIGNsb2NrIGRpdmlkZXIgYXJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzLgoKICAgIFRoaXMgYWxsb3dzIGZvciBtYXhpbXVtIGNsb2NraW5nIHNwZWVkcyAgdG8gYmUgYWNoaWV2ZWQgb24gbmV3ZXIgYm9hcmRzLgogICAgU2VxdW9pYSBib2FyZHMgd2l0aCA2NjYuNjYgTUh6IHByb2Nlc3NvcnMgcmVxdWlyZSB0aGF0IHRoZSBFQkMgZGl2aWRlcgogICAgYmUgc2V0IHRvIDMgaW4gb3JkZXIgdG8gc3RhcnQgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzIGF0IGEgc2xvd2VyIEVCQwogICAgc3BlZWQuIEFmdGVyIHRoZSBpbml0aWFsIGJvb3QgcHJvY2VzcywgdGhlIGRpdmlkZXIgY2FuIGJlIHNldCBiYWNrIHRvIDIsCiAgICB3aGljaCB3aWxsIGNhdXNlIHRoZSBib2FyZHMgdG8gcnVuIGF0IDgzLjMzM01Iei4gVGhpcyBpcyBiYWNrd2FyZAogICAgY29tcGF0aWJsZSB3aXRoIGJvYXJkcyB3aXRoIDUzMy4zMyBNSHogcHJvY2Vzc29ycywgYXMgdGhlc2UgYm9hcmRzIHdpbGwKICAgIGFscmVhZHkgYmUgc2V0IHdpdGggYW4gRUJDIGRpdmlkZXIgb2YgMi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KCmNvbW1pdCBhNzY3NmVhNzczMmYzYzU5NjgwNTA3OWZlZDdlNWM5ZmFjNjUyY2ZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAwMToxNjo1MyAyMDA3ICswMjAwCgogICAgTWlub3IgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkNjJmNjRjYzIzYTk0MGVhZmU3MTJjNzc2YjMyNDllNDE2MDc1M2QxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAwMDoxMzozMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIENsZWFudXAsIG5ldyBDSEFOR0VMT0cKCmNvbW1pdCAzMTYyZWI4MzY5MDNjOGIyNDdmZGM3NDcwZGQzOWJmYTY5OTZmNDk1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAxNSAyMzozODowNSAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgNjZkOWRiZWMxY2MyN2Q2Mzk4ZWU2Y2Y4NDYzOWRiZTE0OTcxMjUxZQpBdXRob3I6IG11c2h0YXEga2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjIzOjAyIDIwMDcgKzA1MzAKCiAgICBBZGQgZHJpdmVyIGZvciBTLUFUQS1jb250cm9sbGVyIG9uIEludGVsIHByb2Nlc3NvcnMgd2l0aCBTb3V0aAogICAgQnJpZGdlLCBJQ0gtNSwgSUNILTYgYW5kIElDSC03LgoKICAgIEltcGxlbWVudGF0aW9uOgoKICAgIDEuIENvZGUgaXMgZGl2aWRlZCBpbiB0byB0d28gZmlsZXMuIEFsbCBmdW5jdGlvbnMsIHdoaWNoIGFyZQogICAgICAgY29udHJvbGxlciBzcGVjaWZpYyBhcmUga2VwdCBpbiAiZHJpdmVycy9hdGFfcGlpeC5jIiBmaWxlIGFuZAogICAgICAgZnVuY3Rpb25zLCB3aGljaCBhcmUgbm90IGNvbnRyb2xsZXIgc3BlY2lmaWMsIGFyZSBrZXB0IGluCiAgICAgICAiY29tbW9uL2NtZF9zYXRhLmMiIGZpbGUuCgogICAgMi4gUmVhZGluZyBhbmQgV3JpdGluZyBmcm9tIHRoZSBTLUFUQSBkcml2ZSBpcyBkb25lIHVzaW5nIFBJTyBtZXRob2QuCgogICAgMy4gRHJpdmVyIGNhbiBiZSBjb25maWd1cmVkIGZvciA0OC1iaXQgYWRkcmVzc2luZyBieSBkZWZpbmluZyBtYWNybwogICAgICAgQ09ORklHX0xCQTQ4LCBpZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGRyaXZlciB1c2VzIHRoZSAyOC1iaXQKICAgICAgIGFkZHJlc3NpbmcuCgogICAgNC4gUy1BVEEgcmVhZCBmdW5jdGlvbiBpcyBob29rZWQgdG8gdGhlIEZpbGUgc3lzdGVtLCBjb21tYW5kcyBsaWtlCiAgICAgICBleHQybHMgYW5kIGV4dDJsb2FkIGZpbGUgY2FuIGJlIHVzZWQuIFRoaXMgaGFzIGJlZW4gdGVzdGVkLgoKICAgIDUuIFUtQm9vdCBjb21tYW5kICJTQVRBX2luaXQiIGlzIGFkZGVkLCB3aGljaCBpbml0aWFsaXplcyB0aGUgUy1BVEEKICAgICAgIGNvbnRyb2xsZXIgYW5kIGlkZW50aWZpZXMgdGhlIFMtQVRBIGRyaXZlcyBjb25uZWN0ZWQgdG8gaXQuCgogICAgNi4gVS1Cb290IGNvbW1hbmQgInNhdGEiIGlzIGFkZGVkLCB3aGljaCBpcyB1c2VkIHRvIHJlYWQvd3JpdGUsIHByaW50CiAgICAgICBwYXJ0aXRpb24gdGFibGUgYW5kIGdldCBpbmZvIGFib3V0IHRoZSBkcml2ZXMgcHJlc2VudC4gVGhpcyBJIGhhdmUKICAgICAgIGltcGxlbWVudGVkIGluIHNhbWUgd2F5IGFzICJpZGUiIGNvbW1hbmQgaXMgaW1wbGVtZW50ZWQgaW4gVS1Cb290LgoKICAgIDcuIFRoaXMgZHJpdmVyIGlzIGZvciBTLUFUQSBpbiBuYXRpdmUgbW9kZS4KCiAgICA4LiBUaGlzIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBOYXRpdmUgY29tbWFuZCBxdWV1aW5nIGFuZAogICAgICAgSG90LXBsdWdnaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE11c2h0YXEgS2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgoKY29tbWl0IDY0NGU2ZmI0ZWI4YmU5MGVhMDRiYTM0YjY0M2E4YmYwMTlkNjgwZTAKQXV0aG9yOiBtdXNodGFxIGtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNTo1NzoyMiAyMDA3ICswNTMwCgogICAgRml4ZXMgYnVnIGNsZWFyaW5nIHRoZSBic3Mgc2VjdGlvbiBmb3IgaTM4NgoKICAgIEhpLAogICAgVGhlcmUgaXMgYSBidWcgaW4gdGhlIGNvZGUgb2YgY2xlYXJpbmcgdGhlIGJzcyBzZWN0aW9uIGZvciBwcm9jZXNzb3IKICAgIGkzODYuKEZpbGU6IGNwdS9pMzg2L3N0YXJ0LlMpCiAgICBJbiB0aGUgY29kZSwgYnNzX3N0YXJ0IGFkZHIgKHN0YXJ0aW5nIGFkZHIgb2YgYnNzIHNlY3Rpb24pIGlzIHB1dCBpbnRvCiAgICB0aGUgcmVnaXN0ZXIgJWVheCwgYnV0IHRoZSBjb2RlIHdoaWNoIGNsZWFycyB0aGUgYnNzIHNlY3Rpb24gcmVmZXJzIHRvCiAgICB0aGUgYWRkciBwb2ludGVkIGJ5ICVlZGkuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ1ZyBieSBwdXR0aW5nIGJzc19zdGFydCBpbnRvICVlZGkgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTXVzaHRhcSBLaGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+Cgpjb21taXQgYzMyNDNjZjdiNDkwMDU3Mjc3ZDYxYWNmZmU0YWQwOTQ2ZjllYjRhNApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTY6NDc6MjggMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBCQ001NDY0IFF1YWQgUGh5CgogICAgQWRkZWQgc3VwcG9ydCBmb3IgQnJvYWRjb20ncyBCQ001NDY0IFF1YWQgUGh5CgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAxYjMwNWJkYzc1NGM4NDY4ZTFkNWQ4NThmNWRjZjhhN2EwYTRiYjdhCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDA4OjEwOjU3IDIwMDcgKzA4MDAKCiAgICBTZWFyY2ggdGhlIGV4Y2VwdGlvbiB0YWJsZSB3aXRoIGxpbmVhciBhbGdvcml0aG0KCiAgICBTZWFyY2ggdGhlIGV4Y2VwdGlvbiB0YWJsZSB3aXRoIGxpbmVhciBhbGdvcml0aG0gaW5zdGVhZCBvZgogICAgYmlzZWN0aW5nIGFsZ29yaXRobS4KICAgIEJlY2F1c2UgdGhlIGV4Y2VwdGlvbiB0YWJsZSBtaWdodCBiZSB1bnNvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRmYWE1MGViODE5Njg2YmZiYTE5MjdlOGM1YjhhNzBhNGQ2NWZkMwpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXkgMTQgMTE6NDc6MzUgMjAwNyArMDgwMAoKICAgIEZpeCBjb21waWxhdGlvbiBpc3N1ZXMgb24gTUFDT1NYCgogICAgU2luZ2VkLW9mZi1ieTogTWFyYyBIb2ZmbWFuIDxNYXJjLkhvZmZtYW5AYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+Cgpjb21taXQgNTZmZDcxNjI5ODVjNDEyMzE3YmJmNzYzYTIyNWZiYTIzYzY0ZmQzMQpBdXRob3I6IFN0ZXBoZW4gV2lsbGlhbXMgPHN0ZXZlQGljYXJ1cy5jb20+CkRhdGU6CVR1ZSBNYXkgMTUgMDc6NTU6NDIgMjAwNyAtMDcwMAoKICAgIEZpeCBmb3IgY29tcGlsZSBvZiBKU0UgdGFyZ2V0CgogICAgVGhlIGF0dGFjaGVkIHBhdGNoIGZpeGVzIHRoZSBjb21waWxlIG9mIHRoZSBKU0UgYm9hcmQgaW4gdGhlCiAgICBkZW54IGdpdCBhcyBvZiAxNCBtYXkgMjAwNy4gSXQgaXMgYW4gZXh0cmVtZWx5IHNpbXBsZSBwYXRjaCwKICAgIGl0IGp1c3QgYWRkcyB0aGUgbWlzc2luZyBkZWZpbmUgb2YgQ0ZHX1NZU1RFTUFDRV9XSURUSC4KCiAgICAgRml4IHRvIGNvbXBpbGUgSlNFIGFnYWluc3QgMjAwNzA1MTQgZ2l0IG9mIHUtYm9vdAoKY29tbWl0IDY5ZGYzYzRkYTBjOTMwMTdjY2ViMjVhMzY2ZTc5NDU3MGJkMGVkOTgKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAcmFodXRlLihub25lKT4KRGF0ZToJU3VuIE1heSAxMyAyMTowMTowMyAyMDA3ICswOTAwCgogICAgc2g6IE1TNzc1MFNFIHN1cHBvcnQuCgogICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBIaXRhY2hpIE1TNzc1MFNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwYjEzNWNmYzJlNTI0ZGMyNDliNzUwNTdiNTVkZDRjYzA5ODQyZTI3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QHJhaHV0ZS4obm9uZSk+CkRhdGU6CVN1biBNYXkgMTMgMjA6NTg6MDAgMjAwNyArMDkwMAoKICAgIHNoOiBGaXJzdCBzdXBwb3J0IGNvZGUgb2YgU3VwZXJILgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2MTkzNjY2N2U4NmEyNTBhZTEyZmQyZGMxODlkMzU4OGYwYTU5ZTBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDExIDEyOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtdGNwci9tZmNwciBhY2Nlc3MgbWFjcm9zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0M2M0OGJkODQ2MDZjNDAyNWM4YTdjNzI2M2ZkYTQ2NWQ2ZTI4NGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2V0IGJkLT5iaV9wY2lfYnVzZnJlcSBvbiA0NDBFUHgvR1J4IHRvbwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZDk4YmE3NzBhN2VhZWZhMjljZTkyN2YzMWEwOTU2ZGY4NWJmNjUwCkF1dGhvcjogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1heSAxMCAxNjo1NTo1MiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBNVEQgYW5kIEpGRlMyIHN1cHBvcnQsIGFsc28gYWRkIGRlZmF1bHQgcGFydGl0aW9uCiAgICBkZWZpbml0aW9uLgoKY29tbWl0IDY1ZmI2YTY3NmU4MjFmOTU3MGEyYTM3NmRjMjA0YmY2MTFjZTVmODEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDI6NDQgMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgYm9hcmQgZGlyZWN0b3J5IGZvciBTTU40MgoKY29tbWl0IDE2MDEzMWJmOTY1Nzg1NDE5NjI2ZGY2YzM4ODcyOWZlMGI1OTc5OTIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDE6NTggMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgZmlsZXMgZm9yIHRoZSBTTU40MiBib2FyZAoKY29tbWl0IDVjNmQyYjVhNTAwZjhjNDk2NzBkZTg5MTAxNTBiNzhhNDFmNzgxZmMKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDA6MzQgMjAwNyArMDEwMAoKICAgIFJlbW92ZSB0aGUgZGVsZXRlZCBmaWxlcyBmb3IgdGhlIFNNTjQyIHBhdGNoCgpjb21taXQgYjBkOGY1YmYwZDIxNWFkYzk0MjRjYjIyOGIyNDg0ZGJmMDdmNzc2MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTozNzo1NiAyMDA3ICswMTAwCgogICAgTmV3IGJvYXJkIFNNTjQyIGJyYW5jaAoKY29tbWl0IDI5ZjNiZTBjYWYwNzk5Y2E2Yjg5ZGZkOTgyNGMxNTYxOWE1MDAwMGYKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTA6MjQ6MzggMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgYjg0Mjg5YjU5NTczMWU4ODUxZGY0NmU4OTM4NDVjYzEzMjJjOWI5YgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNDoxNzowNyAyMDA3IC0wNTAwCgogICAgODY0MWhwY246IEZpeCBNYWtlZmlsZSBhZnRlciBtb3ZpbmcgcGl4aXMgdG8gYm9hcmQvZnJlZXNjYWxlLgoKICAgIFRoZSBPQkpUUkVFICE9IFNSQ1RSRUUgYnVpbGQgc2NlbmFyaW8gd2FzIGJyb2tlbi4KICAgIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTY5ZjY2YzZlYmU4MmJiYmQxZGE3NjZiYzRlZGE0MGVjN2VlNWFmMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE1OjU3OjQzIDIwMDcgKzAyMDAKCiAgICBhZGQ6IHJlYWRpbmcgc3BlY2lhbCBwdXJwb3NlIHJlZ2lzdGVycwoKY29tbWl0IDFhNTBmMTY0YmViMDY1ZjM2MGZiZGRiNzYwMjk2MDdkNmIwOTk2OTgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDo1Mjo1MiAyMDA3ICswMjAwCgogICAgYWRkOiBNaWNyb2JsYXplIFY1IGV4Y2VwdGlvbiBoYW5kbGluZwoKY29tbWl0IGFiODc0ZDUwNDdlNWQzMGRiYzFlNTE3ZmYyNjA4M2VmZmZhOThlY2IKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDozOToxMSAyMDA3ICswMjAwCgogICAgYWRkOiBGU0wgY29udHJvbCByZWFkIGFuZCB3cml0ZQoKY29tbWl0IGRlMWRlMDJhN2NiZjA1ZTZiNjNlMGQ4ZmZjNjI0ZjEyNDkzZjZiYTMKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTM6MDU6NDQgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgc3VwcG9ydCBmb3IgSTJDLCBFRVBST00gYW5kIFJUQy4KCmNvbW1pdCBmYTVjMmJhMTIzYjFiZjg4NDU1YmZjMjFkYjVlNzg2Y2EwNDUwMjlkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDEwOjIzOjU2IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIEFUQSBzdXBwb3J0LiBBZGQgQ0YtYm9vdGluZyBjb21tYW5kcyB0byB0aGUgZGVmYXVsdAogICAgZW52aXJvbm1lbnQuCgpjb21taXQgMDYyNDFkNTBhM2FiMWIyMGEwYjA4YmFlZWFmZmNhYTIzYWU0YjgzOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAwOTozOToxMiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIENoYW5nZSBJUEIgY2xvY2sgZnJlcXVlbmN5IGZyb20gNTBNSHogdG8gMTAwTUh6LiBUaGlzCiAgICBlbGltaW5hdGVzIG5ldHdvcmtpbmcgcHJvYmxlbXMgaW4gTGludXggKHRpbWVvdXRzKS4KCmNvbW1pdCAxZjEzNjljMzRiNjI5YmU5NDcwMjY4NGQ0MWQzZmRkZjBmNjE5M2U3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjIxOjU3IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gRW5hYmxlIEZsYXQgRGV2aWNlIFRyZWUgc3VwcG9ydCBhbmQgbW9kaWZ5IGRlZmF1bHQgZW52aXJvbm1lbnQKICAgIHRvIGFsbG93IGJvb3Rpbmcgb2YgRkRULWV4cGVjdGluZyBrZXJuZWxzLgoKY29tbWl0IGZiMDVmNmRhMzVlYTFjMTVjNTUzYWJlNmYyM2Y2NTZiZjE4ZGM1ZGIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAyMzo1ODozMSAyMDA3ICswMjAwCgogICAgbmV3OiBVU0VfTVNSX0lOVFIgc3VwcG9ydAoKY29tbWl0IDAwODg2MWEyZjNlZjJjMDYyNzQ0ZDczMzc4N2M3ZTUzMGExYjg3NjEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gTWF5IDcgMjI6MzY6MTUgMjAwNyArMDIwMAoKICAgIFtNUEM1eHh4XSBUaGVyZSBhcmUgbmV0d29ya2luZyBwcm9ibGVtcyBvbiB0aGUgTW90aW9uLVBSTyBib2FyZCB3aXRoCiAgICBjdXJyZW50IFBIWSBpbml0YWxpemF0aW9uIGNvZGUgKHRmdHAgdGltZW91dHMgYWxsIHRoZSB0aW1lKS4gVGhpcyBjb21taXQKICAgIHRlbXBvcmFyaWx5IGRpc2FibGVzIFBIWSBpbml0YWxpemF0aW9uIHNlcXVlbmNlIHRvIG1ha2UgdGhlIG5ldHdvcmtpbmcKICAgIG9wZXJhdGlvbmFsLCB1bnRpbCBhIGZpeCBpcyBmb3VuZC4KCmNvbW1pdCBhYmNhOTAxODY5YzM3NjBiNmM1ZmVjYjgyNWRiNmMxZDkxYTc4YTkzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDIyOjEwOjM2IDIwMDcgKzAyMDAKCiAgICBHZXQgcmlkIG9mIGR1cGxpY2F0ZWQgZmlsZSAoc2VlIGluY2x1ZGUvY29uZmlncy9zYmM4NTYwLmggaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIwN2I3YjJjOWQ5NzUyZTBmNjQ3OGMzMGMyOWI3MDg3ZjZlNmNiYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MDc6MDggMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgZG9jL1JFQURNRS5TQkM4NTYwIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhN2JhYzdlOWI1N2JhOTQ4MDUxYmViMTllYzViZTNhNzVjZTc1MzgzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6NDM6MTAgMjAwNyArMDIwMAoKICAgIGZpeDogcmVhZCBhbmQgd3JpdGUgTVNSIC0gcmVwYWlyIG51bWJlciBvZiBwYXJhbWV0ZXJzCgpjb21taXQgMTkzYjRhM2JiM2FjYWRkZjc5OGRhOGRlMGRhMDVkOTRiYTg3NzRlZQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gTWF5IDcgMTk6NDI6NDkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gcHBjNHh4OiBGaXggQ09ORklHX1NZU19DTEtfRlJFUSBkZWZpbml0aW9uIGluIFNlcXVvaWEgY29uZmlnIGZpbGUKCiAgICBBICczJyBnb3QgY3V0IG9mZiBpbiB0aGUgZm9ybWF0dGluZyBvZiB0aGUgbGFzdCBwYXRjaCB0byBhdXRvbWF0aWNhbGx5CiAgICBjaGFuZ2UgdGhlIGNsb2NrIHNwZWVkIG9mIHRoZSBzeXN0ZW0gY2xvY2sgb24gc2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOWJmMWZiYWQ3ZjE5ZDVhMTIwYmU5YjFkYWYxMzZlMDUyZmNhYjM5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzM6NTEgMjAwNyArMDIwMAoKICAgIG5ldzogZnNsIGludGVycnVwdCBzdXBwb3J0CiAgICBGU0xfSGFzX2RhdGEgaXMgY29ubmVjdGVkIHRvIElOVEMuCgpjb21taXQgNzkyMDMyYmFhN2Q2MjVlMzRjOTgxYWI2ZGY1MjE5MTFiZDhkYzg2MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjMwOjEyIDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyCiAgICByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmM2YwMDFhMzQxZWYxODVkMGYxMzg0MWJlNWI1ZGMzMzk1YWFjYzMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MjU6MDggMjAwNyArMDIwMAoKICAgIGZpeDogcmVtb3ZlIGFzbSBjb2RlCgpjb21taXQgZmI3YzJkYmVmMDJjOWY2ZjhkN2IwNGVjNGMyYmZiOTE0MThiOWMwMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjEyOjQzIDIwMDcgKzAyMDAKCiAgICBmaXg6IGNsZWFuIGludGVycnVwdAoKY29tbWl0IDQyZWZlZDYxMzBjOGZjZjdkYTg4MTM4NWI1NDI3MDY1ZDI4MDE3NTcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoyMjoyNSAyMDA3ICswMjAwCgogICAgZml4OiBpbnRlcnJ1cHQgaGFuZGxlciBmb3IgbXVsdGlwbGUgc291cmNlcwoKY29tbWl0IDQ4ZmJkM2E0Y2RhYmJlYmMxZGViZDdlZWQ3M2MwMGMyY2FmOTE0ZjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoxMTowOSAyMDA3ICswMjAwCgogICAgbmV3OiBhZGQgd3JpdGluZyB0byBtc3IgcmVnaXN0ZXIKCmNvbW1pdCAzYTYxOWRkN2JlZDAzZThiNGQyMmEzOTExZjkwZmQxMmFmNTM3NmMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDE2OjQzOjU2IDIwMDcgKzAyMDAKCiAgICBGaXggYW4gYW5jaWVudCBDSEFOR0VMT0cgY29uZmxpY3QKCmNvbW1pdCBhYzRjZDU5ZDU5YzliZjNmODljYjdhMzQ0YWJmODE4NGQ2NzhmNTYyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTlkODdlMjcwN2RjYjI0OWY2YmI3ZjdmZjdlMDBhY2Q4Y2RhOWZkMgpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNGVjNWJkNTVlZDFmZmE5MWE3NzRhZjI5ODc2OTYyMWY0ZmJiMThjMQpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjc1OThhNDNmMmI0MjFhNzEzZDgxMzVlOThhNDJjMzdkOWViOWRmMApBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWZmZDQ1MWFmZWIwOGU1YmU3ZGRhZTY4MDQ4N2VjOTYyYjJiY2EyNQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViZDBhMGFlMDVhNDQ3NjljNGUyNzQ1OGFkNGU5ZjM0MzgyNTA0NDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZmYzUwZjliYjE5NDM0M2M2MzAzNTE3YTUxNzcwODQ1N2E1ZWI2YjgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBNYXkgNSAxODo1NDo0MiAyMDA3ICswMjAwCgogICAgbmV3OiBGU0wgYW5kIE1TUiBzdXBwb3J0ICMyCgpjb21taXQgZjdlMmUwZWIwNjY4MTM2MzA1Zjc4YmI5YzIxYmU3OWI0OGEzNDI0NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjI3OjE2IDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQKCmNvbW1pdCAyZjE1Mjc4YzJlYjkxMWM2NjhiNGZlNTYyMTMwYjc4Y2Y1NTRkMTM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjIzOjExIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGtlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ODVlYzg5YjY0OGE4OTlhMmYzMjM5M2ZkM2ZmZDlmNzIzNGM0NDAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjA1OjAyIDIwMDcgKzAyMDAKCiAgICBBZGQgU1RYIEdQMyBTU0EgYm9hcmQgdG8gTUFLRUFMTCBzY3JpcHQ7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NDk5NjQ1YjNmZTE3YTU0OGFmOWRmYzQ3OWNhNmUyNDU1ZjE3OWEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE3OjE1OjUwIDIwMDcgKzAyMDAKCiAgICBNYWtlICJmaWxlIiBjb21tYW5kIGhhcHB5IHdpdGggc29tZSBjb25maWcubWsgZmlsZXM7IHVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBlM2I4Yzc4YmMyNDg5YzI3YWUwMjA5ODZlZjBlYWNhNjg0ODY2Y2VmCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVNhdCBNYXkgNSAwODozMjoxNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBEZXRlY3QgaWYgdGhlIHN5c2NsayBvbiBTZXF1b2lhIGlzIDMzIG9yIDMzLjMzMyBNSHoKCiAgICBUaGUgQU1DQyBTZWNxdW9pYSBib2FyZCBoYXMgYmVlbiBjaGFuZ2VkIGluIGEgbmV3IHJldmlzaW9uIGZyb20gdXNpbmcgYQogICAgMzMuMDAwIE1IeiBjbG9jayB0byBhIDMzLjMzMyBNSHogc3lzdGVtIGNsb2NrLiBBIGJpdCBpbiB0aGUgQ1BMRAogICAgaW5kaWNhdGVzIHRoZSBkaWZmZXJlbmNlLiBUaGlzIHBhdGNoIHJlYWRzIHRoYXQgYml0IGFuZCB1c2VzIHRoZSBjb3JyZWN0CiAgICBjbG9jayBzcGVlZCBmb3IgdGhlIGJvYXJkLiBUaGlzIGNvZGUgaXMgYmFja3dhcmQgY29tcGF0YWJsZSB3aWxsIGFsbAogICAgcHJpb3IgYm9hcmRzLiBBbGwgcHJpb3IgYm9hcmRzIHdpbGwgYmUgcmVhZCBhcyAzMy4wMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjU0NGZmNjY1NmZjYTI2M2VkMWViZTM5ODk5YjZkOTVkYTY3YzhiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDA4OjI5OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFNlcXVvaWE6IFJlbW92ZSBjcHUvcHBjNHh4L3NwZWVkLmMgZnJvbSBOQU5EIGJvb3RpbmcKCiAgICBVc2luZyBjcHUvcHBjNHh4L3NwZWVkLmMgdG8gY2FsY3VsYXRlIHRoZSBidXMgZnJlcXVlbmN5IGlzIHRvbyBiaWcKICAgIGZvciB0aGUgNGsgTkFORCBib290IGltYWdlIHNvIGRlZmluZSBidXNfZnJlcXVlbmN5IHRvIDEzM01IeiBoZXJlCiAgICB3aGljaCBpcyBzYXZlIGZvciB0aGUgcmVmcmVzaCBjb3VudGVyIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjU1MGFiOTc2NDA1MzAwZjViMDdiZjI4OTA4MDA4NDBkMGFhMDVmCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTc5ODg2NTkwNTkzYmExZDY2N2M4NDBjYWE0OTQwYzYxNjM5ZjE4ZgpBdXRob3I6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CkRhdGU6CVNhdCBNYXkgNSAwNzowNDo0MiAyMDA3ICswMjAwCgogICAgTkFORDogV3JvbmcgY2FsY3VsYXRpb24gb2YgcGFnZSBudW1iZXIgaW4gbmFuZF9ibG9ja19iYWQoKQoKICAgIEluIGNhc2UgdGhhdCB0aGVyZSBpcyBubyBtZW1vcnkgYmFzZWQgYmFkIGJsb2NrIHRhYmxlIGF2YWlsYWJsZSB0aGUKICAgIGZ1bmN0aW9uIG5hbmRfYmxvY2tfY2hlY2tiYWQoKSBpbiBkcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jIHdpbGwgY2FsbAogICAgbmFuZF9ibG9ja19iYWQoKSBkaXJlY3RseS4gV2hlbiBwYXJhbWV0ZXIgJ2dldGNoaXAnIGlzIHNldCB0byB6ZXJvLAogICAgbmFuZF9ibG9ja19iYWQoKSB3aWxsIG5vdCByaWdodCBzaGlmdCB0aGUgb2Zmc2V0IHRvIGNhbGN1bGF0ZSB0aGUKICAgIGNvcnJlY3QgcGFnZSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ODc3ZDdkY2QxZWViZTYxYWE1ZDhiOGZmZTljMDQ4ZWE0MjZlNmY2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE1heSA0IDEwOjAyOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggaW5pdHJkIGxlbmd0aCBjb3JydXB0aW9uIGluIGJvb3RtIGNvbW1hbmQuCgogICAgV2hlbiB1c2luZyBGRFQgSW1hZ2VzLCB0aGUgbGVuZ3RoIG9mIGFuIGluaXRhbCByYW1kaXNrIHdhcwogICAgb3ZlcndyaXR0ZW4gKGJ1ZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4N2E0NDljOCwgMjIgQXVnIDIwMDYpLgoKICAgIFBhdGNoZXMgYnkgVGltdXIgVGFiaSAmIEpvaG5zIERhbmllbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA2OGFhYjY2MGJjMzkxMmI5MzBiZTU1NDBlNmIzZjNmZDZhZDNjOTYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDMgMTk6NDM6NTIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCB0cml2aWFsIGVycm9yIGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NGE4OWQ2Y2U4NTg0YjlmYzY0ZjRlODVkYTllY2FjM2NmYzJjMmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDMgMTY6MzQ6NDEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uIGZvciBTVFggR1AzU1NBIGJvYXJkOgoKICAgIEVuYWJsZSBodXNoIHNoZWxsLCBlbnZpcm9ubWVudCBpbiBmbGFzaCByYXRoZXIgaW4gRUVQUk9NLAogICAgbW9yZSB1c2VyLWZyaWVuZGx5IGRlZmF1bHQgZW52aXJvbm1lbnQsIGV0Yy4KICAgIFRoZSBzaW1wbGUgRUVQUk9NIGVudmlyb25tZW50IGNhbiBiZSBzZWxlY3RlZCBlYXNpbHkgaW4gdGhlIGJvYXJkCiAgICBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJjNmZiMTk5ZGM1NzU2ZmM3MmY0OWQxZjRkZTEwNWUwODkwNDlkNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI0IDE0OjM3OjQ5IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIFNUWCBHUDNTU0EgY29kZTsgZml4IGJ1aWxkIGFuZCBjb21waWxlIHByb2JsZW1zLgoKY29tbWl0IDM1MTcxZGMwNGUwMjhlY2FjYzIzYWQ5MTZhNjYyOTU0NzI1NTVkYmYKQXV0aG9yOiBEYW4gTWFsZWsgPGRhbkBlbWJlZGRlZGFsbGV5LmNvbT4KRGF0ZToJRnJpIEphbiA1IDA5OjE1OjM0IDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU1RYIEdQM1NTQSAoc3R4c3NhKSBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnkgRGFuIE1hbGVrLCA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgoKY29tbWl0IGYyMTM0ZjhlOWViMDA2YmRjZDcyOWU4OWYzMDljMDdiMmZhNDUxODAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjMxOjUzIDIwMDcgKzAyMDAKCiAgICBtYWNiOiBEb24ndCByZXN0YXJ0IGF1dG9uZWdvdGlhdGlvbiBpZiB3ZSBhbHJlYWR5IGhhdmUgbGluawoKICAgIFJld29yayBtYWNiX3BoeV9pbml0IHNvIHRoYXQgaXQgZG9lc24ndCBhdHRlbXB0IHRvIHJlLW5lZ290aWF0ZSBpZiB0aGUKICAgIGxpbmsgaXMgYWxyZWFkeSB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNGZjYjVkMzhiYzkwNzc5Y2Q5YTcxMGQ2MDcwMjA3NTk4NmYwZTI5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXkgMiAxMzoyMjozOCAyMDA3ICswMjAwCgogICAgbWFjYjogSW50cm9kdWNlIGEgZmV3IGJhcnJpZXJzIHdoZW4gZGVhbGluZyB3aXRoIERNQSBkZXNjcmlwdG9ycwoKICAgIFRoZXJlIHdlcmUgYSBmZXcgdGhlb3JldGljYWwgcG9zc2liaWxpdGllcyB0aGF0IHRoZSBjb21waWxlciBtaWdodAogICAgb3B0aW1pemUgYXdheSBETUEgZGVzY3JpcHRvciByZWFkcyBhbmQvb3Igd3JpdGVzIGFuZCB0aHVzIGNhdXNlCiAgICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMgd2l0aCB0aGUgaGFyZHdhcmUuIEluc2VydCBiYXJyaWVycyB3aGVyZQogICAgd2UgZGVwZW5kIG9uIHJlYWRzL3dyaXRlcyBhY3R1YWxseSBoaXR0aW5nIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmZmE2MjFhMGQxMmExY2NkODFjOTM2YzU2N2Y4OTE3YTIxMzc4N2E4CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjA4OjEzIDIwMDcgLTA2MDAKCiAgICBDbGVhbmVkIHVwIHNvbWUgODV4eCBQQ0kgYnVncwoKICAgICogQ2xlYW5lZCB1cCB0aGUgQ0RTIFBDSSBDb25maWcgVGFibGVzIGFuZCBhZGRlZCBOVUxMIGVudHJpZXMgdG8KICAgICAgdGhlIGVuZAogICAgKiBGaXhlZCBQQ0llIExBV0JBUiBhc3NpZ25lbXQgdG8gdXNlIHRoZSBjcHUtcmVsYXRpdmUgYWRkcmVzcwogICAgKiBGaXhlZCA4NXh4IFBDSSBjb2RlIHRvIGFzc2lnbiBwb3dhciByZWdpb24gc2l6ZXMgYmFzZWQgb24gdGhlCiAgICAgIGNvbmZpZyB2YWx1ZXMgKHJhdGhlciB0aGFuIGhhcmQtY29kaW5nIHRoZW0pCiAgICAqIEZpeGVkIHRoZSA4NTQ4IENEUyBQQ0kyIElPIHRvIG9uY2UgYWdhaW4gaGF2ZSAwIGFzIHRoZSBiYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjc0MzEwNTk4OGZjNDRkNWIwZDMwMzg4Yzc5MDYwNzgzNWFhZTdhNgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjo1NDoyNSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSA4NTY4IE1EUyBib2FyZAoKICAgIFRoaXMgaW5jbHVkZWQgc29tZSBjaGFuZ2VzIHRvIGNvbW1vbiBmaWxlczoKICAgICogQWRkIDg1NjggcHJvY2Vzc29yIFNWUiB0byB2YXJpb3VzIHBsYWNlcwogICAgKiBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgcWUgYnVzLWZyZXF1ZW5jeSB2YWx1ZSBpbiB0aGUgZHRzCiAgICAqIEFkZCB0aGUgODU2OE1EUyB0YXJnZXQgdG8gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmMWMyYjg0YmYyN2M4NTY1YmFkZGM4MmQxYWJiOTM3MDBkMTBlMmUKQXV0aG9yOiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MzQ6NDggMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0cmVhdGluZyB1bmtub3duIFBIWXMgYXMgZ2VuZXJpYyBQSFlzLgoKICAgIFdoZW4gYnJpbmdpbmcgdXAgdS1ib290IG9uIG5ldyBib2FyZHMsIFBIWSBzdXBwb3J0IHNvbWV0aW1lcyBnZXRzCiAgICBuZWdsZWN0ZWQuCU1vc3QgUEhZcyBkb24ndCByZWFsbHkgbmVlZCBhbnkgc3BlY2lhbCBzdXBwb3J0LAogICAgdGhvdWdoLiAgQnkgYWRkaW5nIGEgZ2VuZXJpYyBlbnRyeSB0aGF0IGFsd2F5cyBtYXRjaGVzIGlmIG5vdGhpbmcKICAgIGVsc2UgZG9lcywgd2UgY2FuIHByb3ZpZGUgc3VwcG9ydCBmb3IgInVuc3VwcG9ydGVkIiBQSFlzIGZvciB0aGUKICAgIHRzZWMuCgogICAgVGhlIGdlbmVyaWMgUEhZIGRyaXZlciBzdXBwb3J0cyBtb3N0IFBIWXMsIGluY2x1ZGluZyBnaWdhYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNzVhZjliZmQ4ZmZmMDQ5OWVmZGJiOTA2MDFjZWM1YTJhZmVmMTE3CkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDcgMTU6Mjg6MDQgMjAwNyAtMDYwMAoKICAgIENvbmRpdGlvbmFsaXplIDg2NDEgUmV2MS4wIE1DTSB3b3JrYXJvdW5kcwoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjY0NzAyYjdmYzhmOGRmMzlkMzFhZGQ3NzBkZjZlMzcyZjllOWNlMwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTM6NTk6NTAgMjAwNyAtMDUwMAoKICAgIEZpeCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gb24gTVBDODM0OUUtbUlUWAoKICAgIERlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMIGZvciB0aGUgTVBDODM0OUUtbUlUWCBhbmQgTVBDODM0OUUtbUlUWC1HUC4KICAgIFRoaXMgYWxsb3dzIGRkci0+c2RyYW1fY2xrX2NudGwgdG8gYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuICBUaGlzIGlzIG5lY2Vzc2FyeQogICAgb24gc29tZSBJVFggYm9hcmRzLCBub3RhYmx5IHRob3NlIHdpdGggYSByZXZpc2lvbiAzLjEgQ1BVLgoKICAgIEFsc28gY2hhbmdlIHNwZF9zZHJhbSgpIGluIGNwdS9tcGM4M3h4L3NwZF9zZHJhbS5jIHRvIG5vdCB3cml0ZSBhbnl0aGluZyBpbnRvCiAgICBkZHItPnNkcmFtX2Nsa19jbnRsIGlmIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgaXMgbm90IGRlZmluZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBNaWNoYWVsIEJlbmVkaWN0IDxNQmVuZWRpY3RAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGIyZDQzNGFlOWQwMTc4NzkzNmYzNGZlMTc1OWNmM2Q3NjI0YWUzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNToyNjoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogcmVwbGFjZSBlbGFib3JhdGUgYm9vdHRpbWUgdmVyYm9zaXR5IHdpdGggJ2Nsb2NrcycgY29tbWFuZAoKICAgIGFuZCBmaXggQ1BVOiB0byBhbGlnbiB3aXRoIEJvYXJkOiBkaXNwbGF5IHRleHQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMWFiODI2NjlkOTUyNTk5OGMzNGU4MDJhMTJjYWQ2NjI3MjNmMjJhCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDE2IDEzOjAyOjUzIDIwMDcgLTA1MDAKCiAgICBSZXdyb3RlIHBpY29zX3RvX2NsaygpIHRvIGF2b2lkIHJvdW5kaW5nIGVycm9ycy4KICAgIENsYXJpZmllZCB0aGF0IGNvbnZlcnNpb24gaXMgdG8gRFJBTSBjbG9ja3MgcmF0aGVyIHRoYW4gcGxhdGZvcm0gY2xvY2tzLgogICAgTWFkZSBmdW5jdGlvbiBzdGF0aWMgdG8gc3BkX3NkcmFtLmMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YjM5NTAxZDI4NzU0ZTcyNzI2Y2U3ZmIwMjMxMGU1NmRiZGYxMTZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gQXByIDI5IDE0OjEzOjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEJhbWJvbzogVXNlIGN1cnJlbnQgTkFORCBkcml2ZXIgYW5kICpub3QqIHRoZSBsZWdhY3kgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2NGFhNmE2YTQ2NmZjYjkyYmYzMmIxZDdkYmE3OWNkNzA5YjUyYzkKQXV0aG9yOiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDI5IDE0OjAxOjU0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggTVBDNTIwMEIgZnJvbSBNUEM1MjAwIGluIGJvb3QgbWVzc2FnZQoKICAgIE1QQzUyMDBCIHN5c3RlbXMgYXJlIGluY29ycmVjdGx5IHJlcG9ydGVkIGFzIE1QQzUyMDAgaW4gVS1Cb290IHN0YXJ0LXVwCiAgICBtZXNzYWdlLiBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3byB2YXJpYW50cywgYW5kIHByaW50IHByb3BlciBDUFUKICAgIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVjNWQzMjQyOTM1Y2YzNTQzYWYwMTE0MjYyNzQ5NDQzNDgzNGNmOTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI1IDEyOjM0OjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtaW5vciBmaXh1cHMgZm9yIDgzMTNyZGIgaW50cm9kdWN0aW9uCgpjb21taXQgYWRhNGQ0MDA5MWY2ZWQ0YTRmMDA0MGUwOGQyMGRiMjE5NjdlNGE2NwpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ0ODc2YTM4MGY1NzU2ZjU3NDEyY2FmNzRjMWQ2ZGMyMDFkZDc5NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIEFwciAyNCAyMzowMTowMiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBNVEQgcGFydGl0aW9uIHN1cHBvcnQsIEpGRlMyIHN1cHBvcnQKCmNvbW1pdCAzN2VkNmNkZDQxNTkxOTViZmFkNjhkOGEyMzdmNmFkZGE4ZjQ4MmNiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6MDM6NDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogc2V0dXAgNDQwRVB4L0dSeCBaTUlJL1JHTUlJIGJyaWRnZSBkZXBlbmRpbmcgb24gUEZDIHJlZ2lzdGVyIGNvbnRlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNjZlZDZjY2EzZjM0MGY3YThhMDZkOTI3MmFlMmVmOGU5NmYwMjczZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjozNzo0NyAyMDA3IC0wNTAwCgogICAgUmV3b3JrZWQgODV4eCBzcGVlZCBkZXRlY3Rpb24gY29kZQoKICAgIENoYW5nZWQgdGhlIGNvZGUgdG8gcmVhZCB0aGUgcmVnaXN0ZXJzIGFuZCBjYWxjdWxhdGUgdGhlIGNsb2NrCiAgICByYXRlcywgcmF0aGVyIHRoYW4gdXNpbmcgYSAic3dpdGNoIiBzdGF0ZW1lbnQuCgogICAgSWRlYSBmcm9tIEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxZjQ4MWNhNzA4ZWQ2YTU2YmY5YzQxMGUzMTkxZGJhZDU4MWM1NjUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDI6MjQ6MjggMjAwNyAtMDUwMAoKICAgIEVuYWJsZSA4NTQ0IHN1cHBvcnQKCiAgICAqIEFkZCBzdXBwb3J0IHRvIHRoZSBNYWtlZmlsZQogICAgKiBBZGQgODU0NCBjb25maWd1cmF0aW9uIHN1cHBvcnQgdG8gdGhlIHRzZWMgZHJpdmVyCiAgICAqIEFkZCA4NTQ0IFNWUiBudW1iZXJzIHRvIHByb2Nlc3Nvci5oCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQ4YzNhMjA5NmVhZmY4ZDdkZTg5ZDQ1ZTlhZjRkNGIwZDQ4NjhmZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMjoyNSAyMDA3IC0wNjAwCgogICAgU3VwcG9ydCAxRyBzaXplIG9uIDg1NDgKCiAgICBlNTAwdjIgYW5kIG5ld2VyIGNvcmVzIHN1cHBvcnQgMUcgcGFnZSBzaXplcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1Y2VmNjEyY2M2MDFkMmQxYzg5MGZiYmQ3Y2RjOTYwOWExODlhNDYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTc6MTE6MTYgMjAwNyAtMDYwMAoKICAgIENoYW5nZWQgQk9PS0VfUEFHRVNaX25HQiB0byBCT09LRV9QQUdFU1pfbkcKCiAgICBUaGUgb3RoZXIgcGFnZXN6IGNvbnN0YW50cyB1c2Ugb25lIGxldHRlciB0byBzcGVjaWZ5IG9yZGVyIG9mCiAgICBtYWduaXR1ZGUuCUFsc28gY2hhbmdlIHRoZSBvbmUgcmVmZXJlbmNlIHRvIGl0IGluIG1wYzg1NDhjZHMvaW5pdC5TCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmOWEzMThjZWExNDI3MmVkZDEwZDYzNzM5ZTJkMzI2YzkwZjQzMGUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTY6Mjg6NDYgMjAwNyAtMDYwMAoKICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgODU0OCByZXYxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTM0M2RiZjg1YmMwMzAzM2YyMTAyZDhlODU0MzU2N2MyYzFhZDJkMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEZlYiAyNCAwMToxNjo0NSAyMDA3IC0wNjAwCgogICAgVHdlYWsgRERSIEVDQyBlcnJvciBjb3VudGVyCgogICAgRW5hYmxlIHNpbmdsZS1iaXQgZXJyb3IgY291bnRlciB3aGVuIG1lbW9yeSB3YXMgY2xlYXJlZCBieSBkZHIgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1ZTdjN2E0NWUzZGQ5YzdjZTNlNzIyMzUyYmE2MGY4ZGYxYTdhNGIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDEyIDEzOjM0OjU1IDIwMDcgLTA2MDAKCiAgICA4NXh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwM2I4MWI0OGVlYzBhZDI0OWVjOTdhNGFlMTZjMzZmYTJlMDE0ZmY0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjQ0OjQ0IDIwMDcgLTA1MDAKCiAgICBTb21lIDg1eHggY3B1IGNsZWFudXBzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBUU1JbV0lTXSBjbGVhcmluZwogICAgKiBDbGVhbmVkIHVwIERNQSBpbml0aWFsaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNTFkNWQ5OTJlYWI4YzQ5N2IyNGM4MTZjNzNkYzFhZDhiZmZiNGViCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjMyOjIyIDIwMDcgLTA1MDAKCiAgICBBZGQgY3B1IHN1cHBvcnQgZm9yIHRoZSA4NTQ0CgogICAgUmVjb2duaXplIG5ldyBTVlIgdmFsdWVzLCBhbmQgYWRkIGEgZmV3IHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1ZDgzZDdmNGFjNjU3MjcxODJkOGRkYWY3YmE0MmZhNzRjZjY1YWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUxOjAyIDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIGJhc2ljIHBvcnQgYm9hcmQgZmlsZXMuCgogICAgQWRkIGJvYXJkIHBvcnQgdW5kZXIgbmV3IGJvYXJkL2ZyZWVzY2FsZSBkaXJlY3RvcnkKICAgIHN0cnVjdHVyZSBhbmQgcmV1c2UgZXhpc3RpbmcgUElYSVMgRlBHQSBzdXBwb3J0IHRoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjZGU0YjAwZmM3MzkzYjg5ZjM3OWQ4M2E5ZDQzNmRjYjEzMzRiZmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUwOjU3IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIG1haW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM2MmRkODMwNzdhYzA0YzAyOTZiY2EzZTgyNGVjMmZiM2Q0NGQ5ZDYKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgRGVjIDI3IDIyOjA3OjE1IDIwMDYgKzAzMDAKCiAgICBGaXggUENJIEkvTyBzcGFjZSBtYXBwaW5nIG9uIEZyZWVzY2FsZSBNUEM4NXgwQURTCgogICAgVGhlIFBDSSBJL08gc3BhY2UgbWFwcGluZyBmb3IgRnJlZXNjYWxlIE1QQzg1NDBBRFMgYm9hcmQgd2FzIGJyb2tlbiBieSBjb21taXQKICAgIDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMgd2hpY2ggZmFpbGVkIHRvIHVwZGF0ZSB0aGUgI2RlZmluZSdzCiAgICBkZXNjcmliaW5nIHRoZSBsb2NhbCBhZGRyZXNzIHdpbmRvdyB1c2VkIGZvciB0aGUgUENJIEkvTyBzcGFjZSBhY2Nlc3NlcyAtLSBmaXgKICAgIHRoaXMgYW5kIGNhcnJ5IG92ZXIgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIGludG8gdGhlIE1QQzg1NjBBRFMgY29kZSBzaW5jZSB0aGUKICAgIFBDSSBJL08gc3BhY2UgbWFwcGluZyB3YXMgYWxzbyBicm9rZW4gZm9yIHRoaXMgYm9hcmQgKGJ5IHRoZSBlYXJsaWVyIGNvbW1pdAogICAgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YykuCUFkZCB0aGUgY29tbWVudHMgY2xhcmlmeWluZyBob3cKICAgIHRoZSBQQ0kgSS9PIHNwYWNlIG11c3QgYmUgbWFwcGVkIHRvIGFsbCB0aGUgTVBDODV4eCBib2FyZCBjb25maWcuIGhlYWRlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KCiAgICAgYm9hcmQvbXBjODU0MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGJvYXJkL21wYzg1NjBhZHMvaW5pdC5TCSAgfCAgICA0ICsrLS0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oIHwgICAgNSArKy0tLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQxQ0RTLmggfCAgICAyICstCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oIHwgICAgOCArKysrLS0tLQogICAgIDYgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpjb21taXQgOTY2MjljYmFiZGI3MjdkNGE1ZTYyNTQyZGVlZmMwMWQ0OThkYjZkYwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgNSAxNjo0MjozMCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggZTUwMCB2MiBjb3JlIHJlc2V0IGJ1ZwoKICAgIFRoZSBmb2xsb3dpbmcgcGF0Y2ggZml4ZXMgdGhlIGU1MDAgdjIgY29yZSByZXNldCBidWcuCiAgICBGb3IgZTUwMCB2MiBjb3JlLCBhIG5ldyByZXNldCBjb250cm9sIHJlZ2lzdGVyIGlzIGFkZGVkIHRvIHJlc2V0IHRoZQogICAgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzI0N2E1YWNkNTgwMzJlNmNmMzNmNTI1YmMzOTIzYjQ2N2JhYzg4CkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAxMTowMTowMCAyMDA2ICswODAwCgogICAgdS1ib290OiB2MjogUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeW51Ym1lcgoKICAgIFJlbW92ZSB0aGUgZml4ZWQgVExCIGFuZCBMQVcgZW50cnkgbnVibWVyLiBVc2UgYWN0dWFsbHkgVExCIGFuZCBMQVcKICAgIGVudHJ5IG51bWJlciB0byBjb250cm9sIHRoZSBsb29wLiAgVGhpcyBjYW4gcmVkdWNlIHRoZSBwb3RlbnRpYWwgcmlzawogICAgZm9yIHRoZSA4NXh4IHByb2Nlc3NvciBpbmNyZWFzaW5nIGl0cyBUTEIgYWRuIExBVyBlbnRyeSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3dhcnRob3V0IEVkd2FyZCA8c3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGIxOTM0YmExMmZkNDA4ZmNjM2I4YmQ5ZjRiMDQ4NjRjNDJhNDJiZgpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTc6MDE6MDQgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnCgogICAgRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnLgogICAgV2hlbiBlbmFibGUgUENJLCB0c2VjLm8gc2hvdWxkIGJlIGFkZGVkIHRvIHUtYm9vdC5sZHMgdG8gbWFrZSB0c2VjIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczMzdiMjM3ZmZjNGFhZjFiOTQ2NzAyNGZlNDcyYTg4MGQ4NTI1OTgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDE1IDE0OjQzOjMxIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBDUFUyIGVycmF0YSBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhcHBseSB3b3JrYXJvdW5kIG9mIENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM5YjE4YzRmM2UwYjZkMGRjMDBmNGU2OGJhZDJkYTM3NjZjODVmMDkKQXV0aG9yOiBlYm9ueS56aHVAZnJlZXNjYWxlLmNvbSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTY6MjU6MTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRGlzYWJsZXMgTVBDODU0OENEUyAyVF9USU1JTkcgZm9yIEREUiBieSBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQxZmI3ZTBmMWVjOWI5MWJkYWUyNTY1YmFiNWYyZTNlZTE1MDM5YzcKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDE0IDE0OjE0OjU1IDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUyBib2FyZAoKICAgIEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUwogICAgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTZiOGEwNTQzMmYzNDZmMzY0OTM1MzVjODUzMjBiNzBlYzljN2MxYgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjU0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODMxM0VSREIgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWVhM2I2ZWFmZTYwNjI4NWFlNGQ1YzM3ODAyNjE1M2RkZTUzMjAwCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MjEgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBnZW5lcmljIFBDSSBzZXR1cCBjb2RlLgoKICAgIEJvYXJkIGNvZGUgY2FuIG5vdyByZXF1ZXN0IHRoZSBnZW5lcmljIHNldHVwIGNvZGUgcmF0aGVyIHRoYW4gaGF2aW5nIHRvCiAgICBjb3B5LWFuZC1wYXN0ZSBpdCBmb3IgdGhlbXNlbHZlcy4gIEJvYXJkcyBzaG91bGQgYmUgY29udmVydGVkIHRvIHVzZSB0aGlzCiAgICBvbmNlIHRoZXkncmUgdGVzdGVkIHdpdGggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M5OGU1MTkzZTkzZGY2YjliNjUxODUxZDU0YjYzOGE2MWViYjBlYQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIHNwZWVkLmMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGYyNTMyODNhMzJkOTFlMDY4NDRkN2Y4N2Y5YjMzZjRmNGZiY2U4ZgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIGdsb2JhbF9kYXRhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NWU3ZWY4OTdlNTQ1OTFlNjE1ZmMxYjQ1OGI3NGMyODZmZTFmYjA2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTYgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZSBQVlJfODN4eCB0byBQVlJfRTMwMEMxLTMsIGFuZCB1cGRhdGUgY2hlY2tjcHUoKS4KCiAgICBSYXRoZXIgdGhhbiBtaXNsZWFkaW5nbHkgZGVmaW5lIFBWUl84M3h4IGFzIHRoZSBzcGVjaWZpYyB0eXBlIG9mIDgzeHgKICAgIGJlaW5nIGJ1aWx0IGZvciwgdGhlIFBWUiBvZiBlYWNoIGNvcmUgcmV2aXNpb24gaXMgZGVmaW5lZC4gY2hlY2tjcHUoKSBub3cKICAgIHByaW50cyB0aGUgY29yZSB0aGF0IGl0IGRldGVjdHMsIHJhdGhlciB0aGFuIGFib3J0aW5nIGlmIGl0IGRvZXNuJ3QgZmluZAogICAgd2hhdCBpdCB0aGlua3MgaXQgd2FudHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTM1YjBjNDk1MGQ4NGNmOWUzYTllMzJiOTE2MTM1OTU2ZDFhYzYzNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBSZWNvZ25pemUgU1BSIHZhbHVlcyBmb3IgTVBDODMxMSBhbmQgTVBDODMxMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkODdjNTdiMjAxYjQ1NzJkMTZmMWI2NDI5OThmYWEwMGM5OTEyYjE2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzE6NTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCByZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgTVBDODMxeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZmM0YzcxYTE0M2JlODY2NmQ3MDgwM2ZiMjVhZTYwMzc5Yzk1NjIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIzIDE1OjM5OjU5IDIwMDcgKzAyMDAKCiAgICBGaXggZmlsZSBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM4MjU3OTg4YWJmZTc0ZDQ1OWNhMmFkNzQ4YjEwOWNhMDRlNGVmZTEKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gQXByIDIzIDE1OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEF2b2lkIGFzc2lnbmluZyBQQ0kgcmVzb3VyY2VzIGZyb20gemVybyBhZGRyZXNzCgogICAgSWYgYSBQQ0kgSURFIGNhcmQgaGFwcGVucyB0byBnZXQgYSB6ZXJvIGFkZHJlc3MgYXNzaWduZWQgdG8gaXQsIHRoZSBMaW51eCBJREUKICAgIGNvcmUgY29tcGxhaW5zIGFuZCBJREUgZHJpdmVycyBmYWlscyB0byB3b3JrLiAgQWxzbywgYXNzaWduaW5nIHplcm8gdG8gYSBCQVIKICAgIHdhcyBpbGxlZ2FsIGFjY29yZGluZyB0byBQQ0kgMi4xICh0aGUgbGF0ZXIgcmV2aXNpb25zIHNlZW0gdG8gaGF2ZSBleGNsdWRlZCB0aGUKICAgIHNlbnRlbmNlIGFib3V0ICIwIiBiZWluZyBjb25zaWRlcmVkIGFuIGludmFsaWQgYWRkcmVzcykgLS0gc28sIHVzZSBhIHJlYXNvbmFibGUKICAgIHN0YXJ0aW5nIHZhbHVlIG9mIDB4MTAwMCAodGhhdCdzIHdoYXQgdGhlIG1vc3QgTGludXggYXJjaHMgYXJlIHVzaW5nKS4KCiAgICBBbHRlcm5hdGl2ZWx5LCBvbmUgbWlnaHQgaGF2ZSBmaXhlZCB0aGUgY2FsbHMgdG8gcGNpX3NldF9yZWdpb24oKSBpbmRpdmlkdWFsbHkKICAgIChzb21lIGNvZGUgZXZlbiBzZWVtcyB0byBoYXZlIHRha2VuIGNhcmUgb2YgdGhpcyBpc3N1ZSkgYnV0IHRoYXQgd291bGQgaGF2ZQogICAgYmVlbiBhIGxvdCBtb3JlIHdvcmsuIDotKQoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFmYjkwM2EyZWI5NDM2YmFhOTI3MGNjYzBjMjcwODJkODY0OTdkODkKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNDowMDoxMSAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBzZXRlbnYoLi4uKSBjYW4gZGVsZXRlIGVudmlyb25tZW50YWx2YXJpYWJsZXMKCiAgICB1cGRhdGUgc2V0ZW52KCkgZnVuY3Rpb24gc28gdGhhdCBlbnRlcmluZyBhIE5VTEwgdmFsdWUgZm9yIHRoZQogICAgdmFyaWFibGUncyB2YWx1ZSB3aWxsIGRlbGV0ZSB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmYxMDRlNWNhYTc0N2Q1NjhlZmYyNmIzNjk1NjVhZjU3YzJmZmE2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gQXByIDIzIDEzOjU0OjI0IDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHVzZSB1bnNpZ25lZCBjaGFyIGluIHNtYzkxMTExIGRyaXZlciBmb3IgbWFjCgogICAgdGhlIHZfbWFjIHZhcmlhYmxlIGluIHRoZSBzbWM5MTExMSBkcml2ZXIgaXMgZGVjbGFyZWQgYXMgYSBzaWduZWQgY2hhciAuLi4KICAgIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gb25lIG9mIHRoZSBieXRlcyBpbiB0aGUgTUFDIGlzICJzaWduZWQiIGxpa2UgMHhFMAogICAgYmVjYXVzZSB3aGVuIGl0IGdldHMgcHJpbnRlZCBvdXQsIHlvdSBnZXQgYSBkaXNwbGF5IGxpa2U6CiAgICAweEZGRkZGRkUwIGFuZCB0aGF0J3Mgbm8gZ29vZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkOThjMDg4NWFkNjE3ZmNjZjIxZTdjMjZlZjhjYjcyOGZiZmIyNDU5CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gQXByIDIzIDEzOjEwOjUyIDIwMDcgKzAyMDAKCiAgICBVU0I6IChBbm90aGVyKSBkZWxheSBmb3IgY3JhcHB5IFVTQiBrZXlzLgoKICAgIFNvbWUgVVNCIGtleXMgYXJlIHNsb3cgaW4gZ2l2aW5nIGJhY2sgYW4gYW5zd2VyIHdoZW4gdGhlIFJvb3QgSFVCCiAgICBlbmFibGVzIHBvd2VyIGxpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDMyM2JmYThmNDM2ZGMzYmM1NzE4N2M5YjE0ODhiYzMxNDZmZjE1MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTI6MDA6MjIgMjAwNyArMDIwMAoKICAgIFJlbW92ZSBCT0FSRExJQlMgdXNhZ2UgY29tcGxldGVseQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMjU1NjQ0Mzg0MGYxMjcxNzBlNGJhYThiZGQ1YjU2NzAzOWY2YzM2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjA3OjIyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN5c3RlbUFDRSBzdXBwb3J0IGZvciBNaWNyb2JsYXplCgpjb21taXQgMDY0MzYzMWFhMTAzNmNkNzQ2YmY1ZDE1ZjVhMzRiYzdiYzAxZWE0ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMTowMjo0MCAyMDA3ICswMjAwCgogICAgMTZiaXQgcmVhZC93cml0ZSBsaXR0bGUgZW5kaWFuCgpjb21taXQgOWQxZDZhMzRkMjZjNTkzM2JjMDk3Y2U3M2M5MzQ4Zjk1NTczY2RkNApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMDo1MzozMSAyMDA3ICswMjAwCgogICAgQ2hhbmdlIE1MNDAxIHBhcmFtZXRlcnMgLSBYaWxpbnggQlNQCgpjb21taXQgMmUzNDNiOWE1N2YzMmUxYmQwOGMzNWM5OTc2OTEwMzMzZmI0ZTEzZApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDU6Mzc6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzg2NDFocGNuOiBGaXggTEFXIGFuZCBUTEIgc2V0dXAgdG8gdXNlIHRoZSBJT19QSFlTICNkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzljYjQ3MzkxZWViZWY4NWFjYWRiM2Y2OTYxZWY2YzU1Y2FjZTZhYwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDI6MzcgMjAwNyArMDgwMAoKICAgIEVuYWJsZSBMQVdzIGZvciBNUEM4NjQxIFBDSS1FeDIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmQ3ODUxY2UxZTFmMTQwNjY1YjUyMDAyNmFiZjEwNDI5NjhiMTEwMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MTI6MjYgMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg7IFdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZGJkZjI4YjhiZDg1NWE4NTMwZGMzMjkyZTQ5ODI1NzVhMTk3MDYwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMTozOCAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBtYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNGRhNWY3Njc1YmJiNDI3YzQ2OWUzZjQ1MDA2ZTAyN2I2ZTIxZGI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyMCAxNzo0MzoyOCAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncywgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjkyMzU2NWRiMTJhZjM0ZmQ1ZTAyZDM1NGVlNjVhOGM3OGFjNDYwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDEyOjAxOjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggYnJlYWthZ2Ugb2YgTkM2NTAgYm9hcmQgd2l0aCByZXNwZWN0IHRvIG5hbmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAzOWYyM2NkOTA5NDc2MzlhYzI3OGExOGZmMjc3ZWM3ODZiNWFjMTY3CkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTE6MTM6MTYgMjAwNyArMDIwMAoKICAgIFtSRkMgUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBmaXggT0ZfVEJDTEsgKHRpbWViYXNlLWZyZXF1ZW5jeSkgY2FsY3VsYXRpb24KCiAgICBHMiBjb3JlIHJlZmVyZW5jZSBtYW51YWwgc2F5cyBkZWNyZW1lbnRlciBhbmQgdGltZSBiYXNlCiAgICBhcmUgZGVjcmVhc2luZy9pbmNyZWFzaW5nIG9uY2UgZXZlcnkgNCBidXMgY2xvY2sgY3ljbGVzLgogICAgTGV0cyBmaXggaXQsIHNvIHRpbWUgaW4gTGludXggd29uJ3QgcnVuIHR3aWNlIGFzIGZhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzY1MWY4YmRiYmEwM2JiMGI0ZjI0MWUyZDJjNGNiNjViMjMwYmQ1NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBBcHIgMTkgMjM6MTQ6MzkgMjAwNyAtMDQwMAoKICAgIEZpeCBzZXJpb3VzIHBvaW50ZXIgYnVnIHdpdGggYm9vdG0gYW5kIHJlc2VydmUgbWFwLgoKICAgIFdoYXQgd2FzIHN1cHBvc2UgdG8gYmUgYSBzdGFjayB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgYXMgYSBwb2ludGVyLAogICAgICBvdmVyd3JpdGluZyByYW5kb20gbWVtb3J5LgogICAgQWxzbyBtb3ZlZCB0aGUgbGliZmR0LmEgcmVxdWlyZW1lbnQgaW50byB0aGUgbWFpbiBNYWtlZmlsZS4gIFRoYXQgaXMKICAgICAgVGhlIFUtQm9vdCBXYXkuCgpjb21taXQgZDIxNjg2MjYzNTc0ZTk1Y2IzZTllOWIwNDk2Zjk2OGIxYjg5N2ZkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAxOSAwOTo1Mzo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggY2hpcCBzZWxlY3QgdGltaW5nIGZvciBTeXNBQ0UgYWNjZXNzIG9uIEFNQ0MgS2F0bWFpCgogICAgUHJldmlvdXMgdmVyc2lvbnMgdXNlZCBmdWxsIHdhaXQgc3RhdGVzIGZvciB0aGUgY2hpcCBzZWxlY3QgIzEgd2hpY2gKICAgIGlzIGNvbm5lY3RlZCB0byB0aGUgWGlsaW5peCBTeXN0ZW1BQ0UgY29udHJvbGxlciBvbiB0aGUgQU1DQyBLYXRtYWkKICAgIGV2YWx1YXRpb24gYm9hcmQuIFRoaXMgbGVhZHMgdG8gcmVhbGx5IHNsb3cgYWNjZXNzIGFuZCB0aGVyZWZvcmUgbG93CiAgICBwZXJmb3JtYW5jZS4gVGhpcyBwYXRjaCBub3cgc2V0cyB1cCB0aGUgY2hpcCBzZWxlY3QgYSBsb3QgZmFzdGVyCiAgICByZXN1bHRpbmcgaW4gbXVjaCBiZXR0ZXIgcmVhZC93cml0ZSBwZXJmb3JtYW5jZSBvZiB0aGUgTGludXggZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNzgzNzgyOGQ4OTA4NDg3OWJlZTJmMmI4YzdjNjhkNDY5NTk0MGRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzo0OToyOSAyMDA3ICswMjAwCgogICAgQ2xlbmF1cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwOTRjNjM3OWUyZWY4YTRkMGNlYjU2NDBiMjRjYjBjOGQwNDQ0OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MjA6NTggMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhMjZlYzQ3MzJlZmQ3YTMwOGQwYmJjOTc3MTRjMWQ3NWVmMTE3M2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjA3OjI2IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnZW5kLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZjZjNzMyYWZmZWE5NjQ3NzYyZDI3YTQ2MTdhMmFlNjRjNTJkY2ViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNjoxNzo0NiAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGFkNGViNTU1NjcxZDk3Zjk2ZGM1NmVhYjU1MTAzYjFmODY4NzRiMDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE0OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBNQ0MyMDAgYm9hcmQ6IHJlbW92ZSB3YXJuaW5nIHdoaWNoIGlzIG9ic29sZXRlIGFmdGVyIFBTb0MgZmlybXdhcmUgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzc0N2EzZjAxMGIyYjE0NDJkZWMzZTg3MWM2OTc4OGI2MDE3YWFhZQpBdXRob3I6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgpEYXRlOglXZWQgQXByIDE4IDEyOjExOjA1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBkb2N1bWVudCB3YWtldXAgZnJvbSBsb3ctcG93ZXIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgoKY29tbWl0IGU2NzMyMjZmZjlkNmFhOTFiNDdjZWFjNzRiOGMxMzc3MGIwNmJiMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDc6NDcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFjYWRpYSB0byBub3Qgc2V0dXAgUExMIHdoZW4gYm9vdGluZyB2aWEgYm9vdHN0cmFwIEVFUFJPTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MGU2ZjQxY2YwOWZjOThmNmNjYjUxMGUxODNkNTNhYjg1NDZjZjJmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDEyOjA1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBvdXRwdXQgZm9yIGJvb3Ryb20gbG9jYXRpb24gdG8gNDA1RVogcG9ydHMKCiAgICBOb3cgNDA1RVogcG9ydHMgYWxzbyBzaG93IHVwb24gYm9vdHVwIGZyb20gd2hpY2ggYm9vdCBkZXZpY2UKICAgIHRoZXkgYXJlIGNvbmZpZ3VyZWQgdG8gYm9vdDoKCiAgICBVLUJvb3QgMS4yLjAtZ2QzODMyZThmLWRpcnR5IChBcHIgMTggMjAwNyAtIDA3OjQ3OjA1KQoKICAgIENQVTogICBBTUNDIFBvd2VyUEMgNDA1RVogUmV2LiBBIGF0IDE5OS45OTkgTUh6IChQTEI9MTMzLCBPUEI9NjYsIEVCQz02NiBNSHopCgkgICBCb290c3RyYXAgT3B0aW9uIEUgLSBCb290IFJPTSBMb2NhdGlvbiBFQkMgKDMyIGJpdHMpCgkgICAxNiBrQiBJLUNhY2hlIDE2IGtCIEQtQ2FjaGUKICAgIEJvYXJkOiBBY2FkaWEgLSBBTUNDIFBQQzQwNUVaIEV2YWx1YXRpb24gQm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWMwMGRmYjBiZjg5YzhjMjNlOGFmNWI1YmRmNDljZjY2ZDc2OWY4NQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBcHIgMTcgMTM6MzA6MzMgMjAwNyArMDEwMAoKICAgIE1vdmUgcHBlYXJzZSB0byBBUk0gYm9hcmQgbGlzdAogICAgQWRkIEtvbnN0YW50aW4gS2xldHNjaGtlIGZvciBzY2I5MzI4LgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBkMzgzMmU4ZmUxYjIxNGVjNjI0MjRlYWMzNmNmZGE5ZmM1NmQyMWIzCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MDA6MTMgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgVS1Cb290IHBhcnQgb2YgTGl0ZTUyMDBiIGxvdyBwb3dlciBtb2RlIHN1cHBvcnQuCiAgICBQdXRzIFNEUkFNIG91dCBvZiBzZWxmLXJlZnJlc2ggYW5kIHRyYW5zZmVycyBjb250cm9sIHRvCiAgICBhZGRyZXNzIHNhdmVkIGF0IHBoeXNpY2FsIDB4MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjM1YTUzZmM3YjBjNzlmY2ZlN2JkYzAxMTYzYzRiMzRhYWJhMTQ2MApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVN1biBBcHIgMTUgMTM6NTQ6MjYgMjAwNyAtMDQwMAoKICAgIEZpeCB0aGUgZnRfY3B1X3NldHVwKCkgcHJvcGVydHkgc2V0dGluZ3MuCgogICAgVXNlICJzZXR0ZXIiIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIGZsYWdzLCBjbGVhbmVyIGFuZCBtb3JlIGZsZXhpYmxlLgogICAgSXQgYWxzbyBmaXhlcyB0aGUgcHJvYmxlbSBub3RlZCBieSBUaW11ciBUYWJpIHRoYXQgdGhlIGV0aGVybmV0IE1BQwogICAgYWRkcmVzc2VzIHdlcmUgYWxsIGJlaW5nIHNldCBpbmNvcnJlY3RseSB0byB0aGUgc2FtZSBNQUMgYWRkcmVzcy4KCmNvbW1pdCBjMjhhYmI5YzYxNGY2NWNlMjA5NmNjNGE2NmZjODg2Yzc3ZDBlNWE0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAyMjo1MToyNCAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSB0aGUgYm9vdG0gY29tbWFuZCBmb3IgQ09ORklHX09GX0xJQkZEVAoKICAgIEluIGJvb3RtLCBjcmVhdGUgdGhlICIvY2hvc2VuIiBub2RlIG9ubHkgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgICAgIChiZXR0ZXIgbWF0Y2hlcyB0aGUgcHJldmlvdXMgYmVoYXZpb3IpLgogICAgVXBkYXRlIGZvciBwcm9wZXIgcmVzZXJ2ZWQgbWVtb3J5IG1hcCBoYW5kbGluZyBmb3IgaW5pdHJkLgoKY29tbWl0IDNmOWYwOGNmOTFjOGE2OTQ5YTVkNzhhMThiZDNkOGRmN2I4NmQ4ODgKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjQ2OjQxIDIwMDcgLTA0MDAKCiAgICBBZGQgc29tZSB1dGlsaXRpZXMgdG8gbWFuaXB1bGF0ZSB0aGUgcmVzZXJ2ZWQgbWVtb3J5IG1hcC4KCmNvbW1pdCA4MDQ4Y2RkNTZmMDRhNzU2ZWVlYTQ5NTFmNDAyYmY1Y2MzMzc4NWRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAyMToxNjo1NCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDhlNjg3NTE4M2NkY2E5MWMxMzQ0MDhkMTE5ZDRhYmNkNDhlZjY4NTYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Njo0NiAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBNTUMgc3VwcG9ydAoKICAgIFNldCB1cCB0aGUgcG9ydG11eCBmb3IgdGhlIE1NQyBpbnRlcmZhY2UgYW5kIGVuYWJsZSB0aGUgTU1DIGRyaXZlcgogICAgYWxvbmcgd2l0aCBzdXBwb3J0IGZvciBET1MgcGFydGl0aW9ucywgZXh0MiBhbmQgRkFUIGZpbGVzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZjMjZjOTdiYjZkZjQxYjRhOTU2NjJjMzQwNTRmZTkxMjM4N2JmMzgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzo1MyAyMDA2ICswMTAwCgogICAgQXRtZWwgTUNJIGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1DSSBjb250cm9sbGVyIChNTUMgaW50ZXJmYWNlKSBmb3IgQVQzMkFQIENQVXMuCgogICAgVGhlIEFUOTEgQVJNLWJhc2VkIENQVXMgdXNlIGJhc2ljYWxseSB0aGUgc2FtZSBoYXJkd2FyZSwgc28gaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzaGFyZSB0aGlzIGRyaXZlciwgYnV0IG5vIGVmZm9ydCBoYXMgYmVlbiBtYWRlIHNvIGZhci4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDVmZGFiMWVmNmExMGQwNDlhNTAwMjFhODZmMTIyNmY0NDRkOWI5ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU1OjM3IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbW1jaQoKICAgIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBtbWNpIHBpbnMsIGFzIHdlbGwgYXMKICAgIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgbW1jaSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdmYWMzZjY5ZTlmMDVjNWU1MzI2NjgxOTc2YzM1ZDEyOTMyNGM0ZGUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Mzo1NiAyMDA2ICswMTAwCgogICAgRW5hYmxlIHBhcnRpdGlvbiBzdXBwb3J0IHdpdGggTU1DCgogICAgSW5jbHVkZSBpbXBsZW1lbnRhdGlvbnMgb2YgaW5pdF9wYXJ0KCkgYW5kIGdldF9wYXJ0aXRpb25faW5mbygpIHdoZW4KICAgIENPTkZJR19NTUMgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDlhMjRmNDc3YTFlZDViYjBmNzQzNzdjOTg1ZDc1NGViYmZhNDQ4NzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNzoxNDozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBuZXR3b3JraW5nCgogICAgSW1wbGVtZW50IE1BQ0IgaW5pdGlhbGl6YXRpb24gZm9yIEFWUjMyIGFuZCBBVFNUSzEwMDAsIGFuZCB0dXJuCiAgICBldmVyeXRoaW5nIG9uLCBpbmNsdWRpbmcgdGhlIE1BQ0IgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVjMWZlMWZmZmZkMTc1MGE3ZTQ3ZTVhMmUyY2Q2MDBjMDBlNGYwMDkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzozNCAyMDA2ICswMTAwCgogICAgQXRtZWwgTUFDQiBldGhlcm5ldCBkcml2ZXIKCiAgICBEcml2ZXIgZm9yIHRoZSBBdG1lbCBNQUNCIG9uLWNoaXAgZXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBUaGlzIGRyaXZlciBoYXMgYmVlbiB0ZXN0ZWQgb24gdGhlIEFUU1RLMTAwMCBib2FyZCB3aXRoIGEgQVQzMkFQNzAwMAogICAgQ1BVLiBJdCBzaG91bGQgcHJvYmFibHkgd29yayBvbiBBVDkxU0FNOTI2eCBhcyB3ZWxsIHdpdGggc29tZSBtaW5vcgogICAgbW9kaWZpY2F0aW9ucy4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjRlYzljMmQ0M2Q4OTQ3MjliYjYzM2JmZGJkZmE5NWE5NjJjMTU1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE2OjU2OjE0IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbWFjYjAgYW5kIG1hY2IxCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1hY2IwIGFuZCBtYWNiMSBwaW5zLCBhcwogICAgd2VsbCBhcyBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIGNsb2NrIHJhdGUgb2YgdGhlIHZhcmlvdXMKICAgIGJ1c3NlcyB0aGUgbWFjYiBldGhlcm5ldCBjb250cm9sbGVycyBhcmUgY29ubmVjdGVkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQ1YWNiOTViMTZhMGE3NGM2NDM1MjQzNDJjMzQzN2U3NjU0MjZkMDUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNTozOToxNSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEltcGxlbWVudCBzaW1wbGUgRE1BIG1lbW9yeSBhbGxvY2F0b3IKCiAgICBJbXBsZW1lbnQgZG1hX2FsbG9jX2NvaGVyZW50KCkgd2hpY2ggcmV0dXJucyBjYWNoZS1hbGlnbmVkCiAgICB1bmNhY2hlYWJsZSBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTE5NzViMGZlYTc3M2M5ZTY4MWZlYThjZjMzNDk2NjlmMjc2ODVlZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjQ2OjAyIDIwMDYgKzAxMDAKCiAgICBJbXBvcnQgPGxpbnV4L21paS5oPiBmcm9tIHRoZSBMaW51eCBrZXJuZWwKCiAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIHlldCBhbm90aGVyIHNldCBvZiBNSUkgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKICAgIGluIHRoZSBtYWNiIGRyaXZlciwgaGVyZSdzIGEgY29tcGxldGUgc2V0IG9mIGRlZmluaXRpb25zIGZvciBldmVyeW9uZQogICAgdG8gdXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFiODA0YjIyOTU1NmE0ZDg2MmRhOTNjMGVjOTRlNzk0MTkzNjRiMmMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1hciAyMSAxOTo0NzozNiAyMDA3ICswMTAwCgogICAgQVZSMzI6IEluY2x1ZGUgbW9yZSBjb21tYW5kcyBmb3IgQVRTVEsxMDAwCgogICAgSW5jbHVkZSB0aGUgaW1pLCBpbWxzIGFuZCBqZmZzIGNvbW1hbmRzIHNldHMgYnkgZGVmYXVsdCBvbiBBVFNUSzEwMDAuCiAgICBBbHNvIGRlZmluZSBDT05GSUdfQk9PVEFSR1MgdG8gc29tZXRoaW5nIG1vcmUgdXNlZnVsLCBkZWZpbmUKICAgIENPTkZJR19CT09UQ09NTUFORCBhbmQgZW5hYmxlIGF1dG9ib290IGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWMwZGViNWFlM2VhMDE4OWYyZTA4YWMyOWVmMTMxNmYxZmI4NTQ4ZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ0OjQ4IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogUHJvdmlkZSBhIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQKCiAgICBDb3B5IHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzdGF0IGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxMmYwOTljMDgxNjdhN2E1MWFlZWU2MjNiYzE2ZGFmZDA4NDEyNzFjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBVc2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mIGJvYXJkX2luaXRfbWVtb3JpZXMoKQoKICAgIENvbmZvcm0gdG8gdGhlICJzdGFuZGFyZCIgaW50ZXJmYWNlIGFuZCB1c2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mCiAgICBib2FyZF9pbml0X21lbW9yaWVzKCkgb24gQVZSMzIuIFRoaXMgZW5hYmxlcyB1cyB0byBnZXQgcmlkIG9mIHRoZQogICAgc2RyYW1fc2l6ZSBtZW1iZXIgb2YgdGhlIGdsb2JhbF9kYXRhIHN0cnVjdCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFmNGYyMTIxYzI2ODUxODJlYjg3ZmE5YTliNzk5ZDE5MTczODdhMWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE5vdiAyMCAxNTo1MzoxMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlbG9jYXRlIHUtYm9vdCB0byBTRFJBTQoKICAgIFJlbG9jYXRlIHRoZSB1LWJvb3QgaW1hZ2UgaW50byBTRFJBTSBsaWtlIGV2ZXJ5b25lIGVsc2UgZG9lcy4gVGhpcwogICAgbWVhbnMgdGhhdCB3ZSBjYW4gaGFuZGxlIG11Y2ggbGFyZ2VyIC5kYXRhIGFuZCAuYnNzIHRoYW4gd2UgdXNlZCB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZjU0OGQzYzNlMmJiYzQwMjU4NzEzMTY3ODU5ZmZjMmNlOTlhOTAwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBOb3YgMTkgMTg6MDY6NTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBSZXNvdXJjZSBtYW5hZ2VtZW50IHJld3JpdGUKCiAgICBSZXdyaXRlIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IGNvZGUgKGkuZS4gSS9PIG1lbW9yeSwgY2xvY2sgZ2F0aW5nLAogICAgZ3Bpbykgc28gaXQgZG9lc24ndCBkZXBlbmQgb24gYW55IGdsb2JhbCBzdGF0ZS4gVGhpcyBpcyBuZWNlc3NhcnkKICAgIGJlY2F1c2UgdGhpcyBjb2RlIGlzIGhlYXZpbHkgdXNlZCBiZWZvcmUgcmVsb2NhdGlvbiB0byBSQU0sIHNvIHdlCiAgICBjYW4ndCB3cml0ZSB0byBhbnkgZ2xvYmFsIHZhcmlhYmxlcy4KCiAgICBBcyBhbiBhZGRlZCBib251cywgdGhpcyBtYWtlcyB1LWJvb3QncyBtZW1vcnkgZm9vdHByaW50IGEgYml0IHNtYWxsZXIsCiAgICBhbHRob3VnaCBzb21lIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbGVmdCBvdXQ7IGFsbCBjbG9ja3MgYXJlIGVuYWJsZWQKICAgIGFsbCB0aGUgdGltZSwgYW5kIHRoZXJlJ3Mgbm8gY2hlY2tpbmcgZm9yIGdwaW8gbGluZSBjb25mbGljdHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDNkMWUxMzY1Nzk2Y2QxNWQxNzI2ZThhNTFmZDhiNWJlNTBiMmZlOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE4OjAxOjEzIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQ2xlYW4gdXAgbWVtb3J5LW1hcC5oIGZvciBhdDMyYXA3MDAwCgogICAgQ29udmVydCBzcGFjZXMgdG8gdGFicyAobXVzdCBoYXZlIG1pc3NlZCB0aGlzIG9uZSBsYXN0IHRpbWUgYXJvdW5kKSwKICAgIHNvcnQgdGhlIGVudHJpZXMgYnkgYWRkcmVzcyBhbmQgZ3JvdXAgdGhlbSB0b2dldGhlciBieSBidXMKICAgIGNvbm5lY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyOGM2OTllZjY5ZjRiNmNkZjI1MmU0NzQ3YjdiNTkwMDI4YTg4OTgxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTc6MzI6MzEgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBCdWlsZCBwb3NpdGlvbi1pbmRlcGVuZGVudCB1LWJvb3QKCiAgICBBZGQgLWZQSUMgLW1uby1pbml0LWdvdCB0byB0aGUgYXZyMzItc3BlY2lmaWMgQ0ZMQUdTIHRvIG1ha2UgdS1ib290CiAgICBwb3NpdGlvbiBpbmRlcGVuZGVudC4gVGhpcyB3aWxsIG1ha2UgcmVsb2NhdGlvbiBhIGxvdCBlYXNpZXIuCgogICAgLW1uby1pbml0LWdvdCBtZWFucyB0aGF0IGdjYyBzaG91bGRuJ3QgZW1pdCBjb2RlIHRvIGxvYWQgdGhlIEdPVAogICAgYWRkcmVzcyBpbnRvIHI2IGluIGV2ZXJ5IGZ1bmN0aW9uIHByb2xvZ3VlLiBXZSBkbyBpdCBvbmNlIGFuZCBmb3IKICAgIGFsbCBpbiB0aGUgZWFybHkgc3RhcnR1cCBhc3NlbWJseSBjb2RlLCBzbyBlbmFibGluZyB0aGlzIG9wdGlvbgogICAgbWFrZXMgdS1ib290IGEgYml0IGZhc3RlciBhbmQgc21hbGxlci4KCiAgICBUaGUgYXNzZW1ibHkgcGFydHMgaGF2ZSBhbHdheXMgYmVlbiBwb3NpdGlvbi1pbmRlcGVuZGVudCwgc28gbm8gY29kZQogICAgY2hhbmdlcyBzaG91bGQgYmUgbmVjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDUzNzRiMzZkZTkxZDAwNmQxZGY5NTM2MjU5ZmE5ZjY2YjAxYWEzYWEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoyNDozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBhdnIzMi1saW51eC0gY3Jvc3MtY29tcGlsYXRpb24gcHJlZml4IGJ5IGRlZmF1bHQKCiAgICBJdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgd2hpY2ggdG9vbGNoYWluIHlvdSB1c2UgdG8gY29tcGlsZSB1LWJvb3QsCiAgICBidXQgdGhlIGF2cjMyLWxpbnV4IG9uZSBpcyBwcm9iYWJseSB3aGF0IG1vc3QgcGVvcGxlIGhhdmUgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4NDFiZWVkZGViZWNlMDAzOWU3MjRmYjI3ZjRkMWEzOWVlMWM2YjYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoxNTozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFNwbGl0IHN0YXJ0X3VfYm9vdCBpbnRvIGJvYXJkX2luaXRfZiBhbmQgYm9hcmRfaW5pdF9yCgogICAgU3BsaXQgdGhlIGF2cjMyIGluaXRpYWxpemF0aW9uIGNvZGUgaW50byBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUKICAgIHJlbG9jYXRpb24sIGJvYXJkX2luaXRfZiBhbmQgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgcmVsb2NhdGlvbiwKICAgIGJvYXJkX2luaXRfci4gRm9yIG5vdywgYm9hcmRfaW5pdF9mIHNpbXBseSBjYWxscyBib2FyZF9pbml0X3IKICAgIGF0IHRoZSBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzc0MDMwMDVjZmU2YmIxMzk2NGQ0NTBmNmE0OGEwYjBmMmY3MDE3ZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAwNToyNjo0OCAyMDA3ICswMjAwCgogICAgW0ZpeF0JU2V0IHRoZSBMRUQgc3RhdHVzIHJlZ2lzdGVyIG9uIHRoZSBVQzEwMSBmb3IgdGhlIExYVDk3MSBQSFkuCgkgICAgY2xlYXIgdGhlIERpc3BsYXkgYWZ0ZXIgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzg4Mjc1MWM3OGI3ZWNhYmZkNDliMGVmZjhkZTI3NjYxYzcxZjE2YwpBdXRob3I6IERlbmlzIFBldGVyIDxkLnBldGVyQG1wbC5jaD4KRGF0ZToJRnJpIEFwciAxMyAwOToxMzozMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggYnVncyBpbiBjbWRfaWRlLmMgYW5kIGNtZF9zY3NpLmMKCiAgICBGaXggYnVnIGludHJvZHVjZWQgYnkgIkZpeCBnZXRfcGFydGl0aW9uX2luZm8oKSBwYXJhbWV0ZXIgZXJyb3IgaW4gYWxsCiAgICBvdGhlciBjYWxscyIgZnJvbSAyMDA1LTAzLTA0IGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYywgd2hpY2ggcHJldmVudGVkCiAgICB0byB1c2UgZGlza2Jvb3Qgb3Igc2NzaWJvb3QgZm9ybSBhbm90aGVyIGRldmljZSB0aGFuIDAuCgogICAgU2lnbmVkLW9mZi1ieTogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgoKY29tbWl0IDBiOTQ1MDRkMjJlNzBmNTM3YzE3YTBkMzhjODdlZGI2ZTM3MDk3N2QKQXV0aG9yOiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgpEYXRlOglGcmkgQXByIDEzIDA4OjAyOjI0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCB1c2Ugb2YgInZvaWQgKiIgZm9yIGJsb2NrIGRldiByZWFkL3dyaXRlIGJ1ZmZlciBwb2ludGVycwoKICAgIFNpZ25lZC1vZi1ieTogR3JlZyBMb3BwIDxsb3BwQHBvYm94LmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmZiZjI2MWY4ZGYyOTRlNTg5Y2ZhZGViZWJlNTQ2OGUzYzBmMjllOQpBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDkgMTk6MDg6MjUgMjAwNyArMDgwMAoKICAgIEZpeCB0d28gYnVncyBmb3IgTVBDODN4eCBERFIyIGNvbnRyb2xsZXIgU1BEIEluaXQKCiAgICBUaGVyZSBhcmUgYSBmZXcgYnVncyBpbiB0aGUgY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMKICAgIHRoZSBmaXJzdCBidWcgaXMgdGhhdCB0aGUgcGljb3NfdG9fY2xrIHJvdXRpbmUgaW50cm9kdWNlcyBhIGh1Z2UKICAgIHJvdW5kaW5nIGVycm9yIGluIDgzeHguCiAgICB0aGUgc2Vjb25kIGJ1ZyBpcyB0aGF0IHRoZSBtb2RlIHJlZ2lzdGVyIHdyaXRlIHJlY292ZXJ5IGZpZWxkIGlzCiAgICB0V1ItMSwgbm90IHRXUiA+PiAxLgoKY29tbWl0IDJhZDNhYmEwMWQzN2I3MmU3Yzk1N2IwN2UxMDJmY2NkNjRmZTZkMTMKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJVGh1IEFwciAxMiAxNDoxNTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggaTJjIGRpdmlzb3IgY2FsY3VsYXJpb24gZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY2hhbmdlcyB0aGUgaTJjX2luaXQoLi4uKSBmdW5jdGlvbiB0byB1c2UgdGhlIGZ1bmN0aW9uCiAgICBnZXRfT1BCX2ZyZXEoKSByYXRoZXIgdGhhbiBjYWxjdWxhdGluZyB0aGUgT1BCIHNwZWVkIGJ5CiAgICBzeXNJbmZvLmZyZXFQTEIvc3lzSW5mby5wbGxPcGJEaXYuIFRoZSBnZXRfT1BCX2ZyZXEoKSBmdW5jdGlvbiBpcwogICAgc3BlY2lmaWMgcGVyIHByb2Nlc3Nvci4gVGhlIHByaW9yIG1ldGhvZCB3YXMgbm90IGFuZCBzbyB3YXMgY2FsY3VsYXRpbmcKICAgIHRoZSB3cm9uZyBzcGVlZCBmb3Igc29tZSBQUEM0eHggcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YzliYTkxOTM3NWRiOTc3YWFhZDkxNDZiZjMyMGM3YWZkMDdhZTdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyNTowMSAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTEwNTZkZDk4NjNlNmExYmMzNjNhZmJiZTE3NzVjNThjZDk2NzQxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTEgMTc6MjI6NTUgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBmb3IgU0MzIGJvYXJkCgogICAgKiBNYWtlIElERSB0aW1lb3V0IGNvbmZpZ3VyYWJsZSB0aHJvdWdoIGlkZV9yZXNldF90aW1lb3V0IHZhcmlhYmxlLgogICAgKiBVc2UgTmV3bGluZSBhcyAicGFzc3dvcmQiIHN0cmluZwogICAgKiBVc2UganVzdCBhIHNpbmdsZSBwYXJ0aXRpb24gaW4gTkFORCBmbGFzaAoKY29tbWl0IDNkOThiODU4MDBjODBkYzY4MjI3YzhmMTBiZjVjOTM0NTZkNmQwNTQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDIyIDEyOjM3OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgUElYSVMgRlBHQSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBNb3ZlIHRoZSA4NjQxSFBDTidzIFBJWElTIGNvZGUgdG8gdGhlIG5ldyBkaXJlY3RvcnkKICAgIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vIGFzIGl0IHdpbGwgYmUgc2hhcmVkIGJ5CiAgICBmdXR1cmUgYm9hcmRzIG5vdCBpbiB0aGUgc2FtZSBwcm9jZXNzb3IgZmFtaWx5LgoKICAgIFdyaXRlIGEgInBpeGlzX3Jlc2V0IiBjb21tYW5kIHRoYXQgdXRpbGl6ZXMgdGhlIEZQR0EKICAgIHJlc2V0IHNlcXVlbmNlciB0byBzdXBwb3J0IGFsdGVybmF0ZSBzb2Z0LXJlc2V0IG9wdGlvbnMKICAgIHN1Y2ggYXMgdXNpbmcgdGhlICJhbHRlcm5hdGUiIGZsYXNoIGJhbmssIGVuYWJsaW5nCiAgICB0aGUgd2F0Y2ggZG9nLCBvciBjaG9vc2luZyBkaWZmZXJlbnQgQ1BVIGZyZXF1ZW5jaWVzLgoKICAgIEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcGl4aXNfcmVzZXQgdG8gUkVBRE1FLm1wYzg2NDFocGNuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0ZGJiZDQwYzU4MzQ5YjY0ZjQzZmQzM2RiYjVjYTBhZGI2N2Q2NDIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTk6NDMgMjAwNyAtMDQwMAoKICAgIE1vdmVkIGZkdCBjb21tYW5kIHN1cHBvcnQgY29kZSB0byBmZHRfc3VwcG9ydC5jCgogICAgLi4uaW4gcHJlcGFyYXRpb24gZm9yIGltcHJvdmluZyB0aGUgYm9vdG0gY29tbWFuZCdzIGhhbmRsaW5nIG9mIGZkdCBibG9icy4KICAgIEFsc28gY2xlYW5lZCB1cCBzb21lIGNvZGluZyBzbG9wcGluZXNzLgoKY29tbWl0IDY2NzlmOTI5OTUzNGU0ODhhMTcxYTliYjhmOWJiODkxZGUyNDdhYWIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTc6MTQgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogTWFrZSBmZHRfY2hlY2tfaGVhZGVyKCkgcHVibGljCgogICAgQ2hhbmdlZCBfZmR0X2NoZWNrX2hlYWRlcigpIHRvIGZkdF9jaGVja19oZWFkZXIoKSBhbmQgbWFkZSBpdCBwYXJ0IG9mCiAgICB0aGUgaW50ZXJmYWNlIC0gaXQgaXMgYSB1c2VmdWwgcm91dGluZS4KCiAgICBBbHNvIGRpZCBzb21lIGFzdGhldGljcyBjbGVhbnVwIHRvIHRoZSBpbmNsdWRlIGZpbGVzIChoZWFkZXJzKS4KCmNvbW1pdCBjMDcwN2NlNjU2Nzc2NTBiNWNlYWIwNTAwZWU1MGFlNTE2OGFmZWYyCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjM0OjA2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBLaWxsIG9mZiBhIGJ1bmNoIG9mIGNvbW1vbiBsb2NhbCBwcm90b3R5cGVzCgpjb21taXQgN2I3ZTMwYWE2NGJiNjY1N2ExYmZkMzJmZGJkYmZlYjU2MWU2YTQ4ZApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMzowNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IGR5bmFtaWMgQ1BMQiBnZW5lcmF0aW9uIGlzc3VlCgpjb21taXQgMDQ0NWUzYTI2NDI1MWQ3NWIxYmU0NWVmNzEzYzcwNzI2YTI5NTJmMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMTo0NyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWluaW9yIGNsZWFudXAKCmNvbW1pdCAxNTVmZDc2NjU3Mzk4MTA5MGU2MzhiNDkzZDU4NTc1NjIxNTE4NjJlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjE4IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggY29weXJpZ2h0IGFuZCB1cGRhdGUgbGljZW5zZQoKY29tbWl0IDlmZDQzN2JiZDc1ZDI4MmY4OTllMWRhNTBiZTIwYTJiZjM4NDUwYmMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzA6MjUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBFTUFDIGRyaXZlciBpbml0aWFsaXphdGlvbgoKY29tbWl0IDg4OTI1NmU4NjA0ZTBjNjhkYjFkODY2ZDcyMDg5NGRmZmVkZTlkZjYKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6Mjk6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIGNhbGwgcmVhbCB0aGUgc3lzdGVtIHN5bmNocm9uaXplIGluc3RydWN0aW9uCgpjb21taXQgZTBkZjFjOTIxYjc4ODI4OTU2NGU0YzFlZTcxMjBhNmE5Y2QzYWIwNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOToxNyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gcmVtb3ZlIGFzbS9wYWdlLmggYXMgd2UgZG8gbm90IGFjdHVhbGx5IHVzZS93YW50IGFueSBvZiB0aGVzZSBkZWZpbml0aW9ucyBub3IgZG9lcyBhbnkgb3RoZXIgYXJjaCBpbmNsdWRlIGl0Cgpjb21taXQgZGZlZWFiMmNkNjgwZGYwNDdlNjhlNzIzYjI0NmFkZjZmMzNiYjU1NgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyODozNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF06IGZpeCBmbGFzaCB1bmFsaWduZWQgY29weSBpc3N1ZQoKY29tbWl0IDQ0M2ZlYjc0MDU4NGU0MDZlZmEyMDNhZjkwOWZlMjkyNjYwOGU4ZDUKQXV0aG9yOiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KRGF0ZToJV2VkIE1hciAyMSAwOTo1NTowMSAyMDA3ICswMzAwCgogICAgVXBkYXRlIHVzYWdlIG9mICduYycgaW4gUkVBRE1FLk5ldENvbnNvbGUKCiAgICBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCB1c2FnZSBvZiBOZXRDb25zb2xlIG9uIHN5c3RlbXMgd2hlcmUgdGhlIC1sIGFuZCAtcAogICAgc3dpdGNoZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDMxYzk4YTg4MjI4MDIxYjMxNGM4OWViYjgxMDRmYjY0NzNkYTQ0NzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDI6MDk6MzAgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDk0YWJkN2MwNTgzZWJlMDFlNzk5YjI1ZjQ1MTIwMWRlZWFhYjU1MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDE6NDk6MTUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgODIyYWYzNTFhZDJiYWJjN2Q5OTAzMzM2MWE1ZmNhY2QzMGY2YmM3OApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjE4IDIwMDcgKzAyMDAKCiAgICBTdXBwb3J0IGZvciB0aGUgUGhpbGlwcyBJU1AxMTZ4IEhDRCAoSG9zdCBDb250cm9sbGVyIERyaXZlcikKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+Cgpjb21taXQgZWRmNTg1MWJlNmMxN2MwMzFkNGY3MWRkNWIwYTEyMDQwYjdjNTBjOApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMyAxNDoyNzowOCAyMDA3ICswMjAwCgogICAgVVNCOiBjbGVhbnVwIG1vbmFoYW5zIHVzYiBzdXBwb3J0LiBSZW1vdmUgZGVhZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYTY1YzU3NjhlNTUzNzUzMGJkMTc4MGFmM2QzZmRkYzMxMTNhMTYzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyIDEwOjA5OjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBTeXNBQ0UgYWRkcmVzcyBvbiBLYXRtYWkKCiAgICBXaXRoIHRoaXMgbmV3IGJhc2UgYWRkcmVzcyBvZiB0aGUgWGlsaW54IFN5c3RlbUFDRSBjb250cm9sbGVyCiAgICB0aGUgTGludXggZHJpdmVyIHdpbGwgYmUgZWFzaWVyIHRvIGFkYXB0LCBzaW5jZSBpdCBjYW4gbm93IGJlCiAgICBtYXBwZWQgdmlhIHRoZSAibm9ybWFsIiBpb3JlbWFwKCkgY2FsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVhMDNjNGU4YzNhMjFjZTQzZDNmYWY0OGE2ZTZkNDc0YzhiZGY3MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTQ6MzA6NTMgMjAwNyAtMDQwMAoKICAgIEZpeCBzb21lIG1pbm9yIHdoaXRlc3BhY2UgdmlvbGF0aW9ucy4KCmNvbW1pdCAyMTNiZjhjODIyZGU4ZWVjYWY2OTg2MDY4NDQ2OWNkYWJhMmU5ZTZhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMzo1MSAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDIgb2YgMikKCiAgICBNb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlIHRvIHN1cHBvcnQgdGhlIG5ldyBmZHQgY29tbWFuZC4KCmNvbW1pdCA3ODFlMDllZTZlM2UzZTM5MmFiMzYyYzFmMGVmMTA2OGFkYzc2ZTNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMjoxMCAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDEgb2YgMikKCiAgICBUaGUgZmR0IGNvbW1hbmQgdXNlcyBEYXZpZCBHaWJzb24ncyBsaWJmZHQgbGlicmFyeSB0byBtYW5pcHVsYXRlIGFzIHdlbGwKICAgIGFzIHByaW50IHRoZSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUuICBUaGlzIHBhdGNoIGlzIHRoZSBuZXcgY29tbWFuZCwKICAgIHRoZSBzZWNvbmQgcGFydCBpcyB0aGUgbW9kaWZpY2F0aW9ucyB0byB0aGUgZXhpc3RpbmcgY29kZS4KCmNvbW1pdCAzYWYwZDU4N2Q5M2UwYmU1Zjk2ZTFiMzBmYTQxZTY2MmY4YjA4MDNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoxMzo0MyAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBFbmhhbmNlZCBhbmQgcHVibGlzaGVkIGZkdF9uZXh0X3RhZygpCgogICAgRW5oYW5jZWQgdGhlIGZvcm1lcmx5IHByaXZhdGUgZnVuY3Rpb24gX2ZkdF9uZXh0X3RhZygpIHRvIGFsbG93IHN0ZXBwaW5nCiAgICAgIHRocm91Z2ggdGhlIHRyZWUsIHVzZWQgdG8gcHJvZHVjZSBhIGh1bWFuLXJlYWRhYmxlIGR1bXAsIGFuZCBtYWRlCiAgICAgIGl0IHBhcnQgb2YgdGhlIHB1Ymxpc2hlZCBpbnRlcmZhY2UuCiAgICBBbHNvIGFkZGVkIHNvbWUgY29tbWVudHMuCgpjb21taXQgZmEzYTc0Y2VjNzNkZmQwNmE1YWUzNWE5YTMzNjgyMDAyNzNhYWE3MQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDU6MzkgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogQ3VzdG9taXphdGlvbnMgZm9yIHVzZSBieSB1LWJvb3QuCgogICAgQ2hhbmdlcyB0byBEYXZpZCBHaWJzb24ncyBvcmlnaW5hbCBzb3VyY2UgdG8gZml0IGludG8gdS1ib290J3MKICAgIGVudmlyb25tZW50LiAgTm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VzLgoKY29tbWl0IDM1NzQ4MTc3YzY0YTRhODNhMDAwNTdlOTNiYjMzZTQwMjc4YTJhOTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjAwOjU2IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgyIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCA3Y2Q1ZGEwZmU4NzdlNzE3MWE0Y2RkNDQ4ODBiY2U3ODMxMzI4NzFhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMTo1OTo1OSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBJbXBvcnQgbGliZmR0IHNvdXJjZSAoMSBvZiAyKQoKICAgIFRoaXMgYWRkcyB0aGUgYXBwbGljYWJsZSBsaWJmZHQgc291cmNlIGZpbGVzICh1bm1vZGlmaWVkKSBhbmQgYSBSRUFETUUKICAgIHRvIGV4cGxhaW4gd2hlcmUgdGhlIHNvdXJjZSBjYW1lIGZyb20uCgpjb21taXQgZGE2ZWJjMWJjMDgyY2JlM2I2YmJkZTA3OWNhZmUwOWY3ZWJiYWQ0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAxMzoxNjoyMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2F0bWFpIGJvb3RzdHJhcCBjb21tYW5kCgogICAgTm93IHRoZSBERFIyIGZyZXF1ZW5jeSBpcyBhbHNvIDIqUExCIGZyZXF1ZW5jeSB3aGVuIDE2Nk1IeiBQTEIKICAgIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYWJlZTc1NmE2NTMyOTg2NzI5NDc3YzNjYzFlYTE2ZWY4NTE3YWQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE1OjA2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEFkZGl0aW9uYWwgUkFNIGluZm9ybWF0aW9uIGlzIG5vdyBwcmludGVkIHVwb24gcG93ZXJ1cCwgbGlrZQogICAgRERSMiBmcmVxdWVuY3kgYW5kIENBUyBsYXRlbmN5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MDcyMzgwMzQzMWFjNzVjYWQwODU2OTA3ODllNDMzZDVhYjkxNzRlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ4OjM2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBZdWNjYSBjb25maWcgZmlsZSB0byBzdXBwb3J0IEVDQwoKICAgIFdpdGggdGhlIHVwZGF0ZWQgNDR4IEREUjIgZHJpdmVyIHRoZSBZdWNjYSBib2FyZCBub3cgc3VwcG9ydHMKICAgIEVDQyBnZW5lcmF0aW9uIGFuZCBjaGVja2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDkwZTU3MzBjNjc0YjIwZDcwOGI3ODNhMmM1ZmZkNzIwOGY4Mzg3MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NzozNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggImJvb3RzdHJhcCIgY29tbWFuZCBmb3IgS2F0bWFpIGJvYXJkCgogICAgVGhlIGJvYXJkIHNwZWNpZmljICJib290c3RyYXAiIGNvbW1hbmQgaXMgbm93IGZpeGVkIGFuZCBjYW4KICAgIGJlIHVzZWQgZm9yIHRoZSBBTUNDIEthdG1haSBib2FyZCB0byBjb25maWd1cmUgZGlmZmVyZW50CiAgICBDUFUvUExCL09QQiBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTRmNTQ3MDNjM2E3NzZlYzIzZTQyN2NhMmExNmUwYTc5YTVkNTBjMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NjowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBGaXggYSBidWcgaW4gdGhlIGF1dG8gY2FsaWJyYXRpb24gcm91dGluZS4gVGhpcyBkcml2ZXIgbm93IHJ1bnMKICAgIG1vcmUgcmVsaWFibGUgd2l0aCB0aGUgdGVzdGVkIG1vZHVsZXMuIEl0J3MgYWxzbyB0ZXN0ZWQgd2l0aAogICAgMTY3TUh6IFBMQiBmcmVxdWVuY3kgKDY2N01IeiBERFIyIGZyZXF1ZW5jeSkgb24gdGhlIEthdG1haS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQyY2QwOTdiZTFlN2FmZmU4MmY0MmFiM2RhMjIwOTU5YTY5OWU2NApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAzMCAyMjo1MjowOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBDbGVhbiBpbmNsdWRlIGRlcGVuZGVuY2UKCmNvbW1pdCA2ZjkzNDIxMGZiMjkzZmRlMmNmYjQyNTFjNmQ5NmZkYzU4YjZhOTA2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjQyOjQ1IDIwMDcgKzAyMDAKCiAgICBbQ0xFQU5dIFJlbW92ZSBpbmVmZmljaWVudCBTdXpha3UgY29kZQoKY29tbWl0IDQzMGYxYjBmOWE2NzBjMmYxM2VhYTUyZTY2YTEwZGI5NmRkMzY0N2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjggMTU6MDM6MTYgMjAwNyArMDIwMAoKICAgIE1lcmdlIHNvbWUgQU1DQyBtYWtlIHRhcmdldHMgdG8ga2VlcCB0aGUgdG9wLWxldmVsIE1ha2VmaWxlIHNtYWxsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGM3NWM5ZDg0MzA3YTlmMWNiZTFmZjBjNGQ4OTM3ZWUzYTk2NDc1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNDo1MjoxMiAyMDA3ICswMjAwCgogICAgaTJjOiBFbmFibGUgIm9sZCIgaTJjIGNvbW1hbmRzIGV2ZW4gd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBUaGUgIm9sZCIgaTJjIGNvbW1hbmRzIChpcHJvYmUsIGltZC4uLikgYXJlIG5vdyBjb21waWxlZCBpbiBhZ2FpbiwKICAgIGV2ZW4gd2hlbiB0aGUgaTJjIGNvbW1hbmQgdHJlZSBpcyBlbmFibGVkIHZpYSB0aGUgQ09ORklHX0kyQ19DTURfVFJFRQogICAgY29uZmlnIG9wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWRhMDQ4YWRmNDRiZWE1ZTNiOTQwODBkMDI5MDNjMmUzZmU3YWE0YQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1hciAyNyAwMDozMjoxNiAyMDA3ICswMjAwCgogICAgUEFUQ0g6IFJlc29sdmUgR1BMIGxpY2Vuc2UgcHJvYmxlbQoKY29tbWl0IGFlMDBiYjRiMjk0NGRjNjRhNDg1ZWQ3MmExOTc1NGIxMWFmN2MyMjMKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBNYXIgMjYgMTI6MDM6MzYgMjAwNyArMDIwMAoKICAgIFBYQTogcHhhMjd4IFVTQiBPSENJIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBhZTc5ZjYwNjc3YzIwODMyNjUzNTY0N2RjYmQ1YzNlYzQwZGJjYjBiCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAyNiAxMToyMTowNSAyMDA3ICswMjAwCgogICAgVVNCOiByZW1vdmUgdGhlIFMzQzI0WDBfbWVyZ2UgI2RlZmluZSwgd2hpY2ggd2FzIGludHJvZHVjZWQgd2hpbGUKICAgIG1lcmdpbmcgT0hDSSBkcml2ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTc5ODA0OTUyMmY1OTQwMTNhZWEyOTQ1N2Q0Njc5NDI5OGM2YWUxNQpBdXRob3I6IE1pY2hhbCBTaW1layA8cm9vdEBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXIgMjYgMDE6Mzk6MDcgMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIFhVUFYyUCBib2FyZAogICAgUmVzZXQgc3VwcG9ydAogICAgQlNQIGF1dG9jb25maWcgc3VwcG9ydAoKY29tbWl0IDBkOTc0ZDUyOTczNDk1MDRhMmRkZmEwOTMxNGJlNTczYjVkZjMyMGEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjQgMTU6NTc6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIDR4eCBHUElPIGZ1bmN0aW9ucwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzb21lIDR4eCBHUElPIGZ1bmN0aW9ucy4gSXQgYWxzbyBtb3ZlcyBzb21lIG9mIHRoZQogICAgY29tbW9uIGNvZGUgYW5kIGRlZmluZXMgaW50byBhIGNvbW1vbiA0eHggR1BJTyBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmRiNjMzNjU4YmJmMzY2YWIwYzhkYWQ3YTA3MjdlMWZiMmFlNmIxMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NTo1OCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTbWFsbCBTZXF1b2lhIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2NiODZmM2U0MGQyYTgwMzU2MTc3NDM0YTk5Zjc1YmM4YmFhOWNhZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo0NTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCA0MEVaL0FjYWRpYSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgYWxsIHRoZSBvcGVuIGlzc3VlIG9mIHRoZSBwcmVsaW1pbmFyeQogICAgQWNhZGlhIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYjFkZjgzNTE5MWQ4Y2U0YjgxZDVhZjQwZmE4ZTBmYmU3OGU5OTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDEyIDExOjAyOjIwIDIwMDYgLTA2MDAKCiAgICBGaXggODY0MUhQQ04gcHJvYmxlbSB3aXRoIGxkIHZlcnNpb24gMi4xNgoKICAgIChEb3Qgb3V0c2lkZSBzZWN0aW9ucyBwcm9ibGVtKS4KCiAgICBUaGlzIGZpeCBpcyBpbiB0aGUgc3Bpcml0IG9mIDgwN2Q1ZDczMTkzMzBlMzM2YWIzNGE1NjIzYzVlMGQ3M2I4N2Q1NDAuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTY0YTRkZDBkNGVmNWEwMzdmZWJhZWJmMWFhNDk0YjFhNzI5OTFjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM1OjU1IDIwMDYgLTA2MDAKCiAgICBTZXQgUmV2IDIueCA4Nnh4IFBJQyBpbiBtaXhlZCBtb2RlLgoKICAgIFByZXZlbnQgZmFsc2UgaW50ZXJydXB0IGZyb20gaGFuZ2luZyBMaW51eCBhcyBNU1JbRUVdIGlzIHNldAogICAgdG8gZW5hYmxlIGludGVycnVwdHMgYnkgY2hhbmdpbmcgdGhlIFBJQyBvdXQgb2YgdGhlIGRlZmF1bHQKICAgIHBhc3MgdGhyb3VnaCBtb2RlIGludG8gbWl4ZWQgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YTU4YTczY2ViMGE0MDU5YzQyZWY2NGNlZGJjMWE0NWUwYWFhMDBlCkF1dGhvcjogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjMyOjM1IDIwMDYgLTA2MDAKCiAgICBBZGQgZmxhc2ggY21kIGZ1bmN0aW9uIHRvIDg2NDFIUENOIHJhbWJvb3QKCiAgICBBbHNvIGZpeGVzIHNvbWUgY29tbW1hbmQgZm9yIDg2NDEgSFBDTiByYW1ib290IGNhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmNjY2VhY2MwNGIwMDlkOTIzYWZiN2MyNjE4OWJhMmY4YTJhNWQ0NgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAxMDozNDoxNCAyMDA2IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIDg2NDEgUmV2IDIgc2lsaWNvbi4KCiAgICBXaXRob3V0IHRoaXMgcGF0Y2gsIEkgYW0gdW5hYmxlIHRvIGdldCB0byB0aGUgcHJvbXB0IG9uIHJldiAyIHNpbGljb24uCiAgICBPbmx5IHNldCBkZHJpb292Y3IgZm9yIHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0PGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NGJhNDY0Yjk5MDAxZjhiZDFjNDU2YTFlOWQ1OTcyNjI1MmY3MDdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMiAwMDoxMzoxMiAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwIC8gcmUtaW5zZXJ0IHByZXZpb3VzIENvcHlyaWdodCBlbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmE4ZGZlMDgzNTlhMWI2NjM0MThiMmZhYTFkYTFkN2JjZTM0ZDMwMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMjM6MjY6MTUgMjAwNyArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGU2NjE1ZWNmNGVhZjRkZDUyNjk2OTM0YWVkOGY1YzY0NzRjZmQyODYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NTQ6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBpbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVmNDYxNGM5MzUwZDkzMzNlNTc1MTAwZmIyNTBhYWI3NzRkMDI1OApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NDE6NDYgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGZpeCBzbWFsbCBjbG9jayByb3V0aW5nIGJ1ZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTZjMGNjMWM4MjA4MWE0OTNhYjg3YzUxOTgwYjI4MzM2Y2UxYmNlOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxMzozOTo1NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgQU1DQyBBY2FkaWEgKDQwNUVaKSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIEFjYWRpYSBldmFsIGJvYXJkLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMDFiZDIxOGIwMGFmNzM0OTkzMzFhMWE3MDE2MjVhODUyY2QyODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM4OjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIFBQQzQwNUVaIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIDQwNUVaIFBQQy4gSXQgaXMgaW4KICAgIHByZXBhcmF0aW9uIGZvciB0aGUgQU1DQyBBY2FkaWEgYm9hcmQgc3VwcG9ydC4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgQWNhZGlhLzQwNUVaIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBiZXRhIHN0YWdlLgogICAgU3RpbGwgbG90J3Mgb2YgY2xlYW51cCBuZWVkZWQgYnV0IHdlIG5lZWQgYSBwcmVsaW1pbmFyeSByZWxlYXNlIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdlODJjYjJlMjg0YTg5M2RmNjY5M2YyYTEzMzdhYjJjNDdiZjZhMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAwODo0NToxNyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBUUU04MjcyOiBkb250IGNoYW5nZSB0aGUgYml0cyBnaXZlbiBmcm9tIHRoZSBIUkNXCgkJICAgICBmb3IgdGhlIFNJVU1DUiBhbmQgQkNSIFJlZ2lzdGVyLgoJCSAgICAgRml4IHRoZSBjYWxjdWxhdGlvbiBmb3IgdGhlIEVFcHJvbSBTaXplCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNjU0NTg5ODczZGJhZmNmMTA0ZGZmMTMzY2UwZDAzYTQ1MDZlOWNjMwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVR1ZSBNYXIgMjAgMTg6MTY6MjQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjU2MSBFWktJVCBib2FyZCBzdXBwb3J0Cgpjb21taXQgYTYxNTRmZDFjZmQwMjBmNmRhODUyN2UwMzY1YjEwMjBhMTFhNzFkMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMjI6NTU6NTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCAzODliNmJiNTBmNzQ1YmY1MDM4Y2UwMzAzMDBkOGE4NTEyZTk2Zjc5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAxOSAxMzoxMDowOCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlZCBQT1NUIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGU3MDliYmIyNjM2YjU2NzBhOGYyYjU3NWUxMzhlYjFmNTU3NzNmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjY6MTEgMjAwNyArMDgwMAoKICAgIFtQQVRDSF0gQWRkIGZsYXNoIGNoaXAgTTI5VzMyMEVUL0Igc3VwcG9ydAoKY29tbWl0IDI2YmY3ZGVjYTM2NGE1YjMzZjM5ZThmMTRkZGQzZjQwODEzNDUwMTUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDE5IDAxOjI0OjUyIDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBBZGQgQkY1Mzcgc3RhbXAgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDg0MjNlNWUzMWE3MjM1ZDA1YTQ4MjYyNzMxNWZiMTFkNDljMTdiZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTYgMjE6MTE6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgRWJvbnkgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzZkMTQ2NmY5MThiODgxY2RhMmQyNTkyNTQ3NjFlNzM4ODUwOTNjMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgTWFyIDEzIDEzOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHJlbmFtZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgJ2FkZGNvbicgdG8gJ2FkZGNvbnMnIGZvciBQQ0k0MDUKCSAgICBib2FyZHMgaW4gdGVybXMgb2YgdW5pZmljYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYTcwOTBiOTkzZDNkNGQyMjIxYWMzZjMzZTZjYjFkMWIyY2NjNmJmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMTY6MDU6NTUgMjAwNyArMDEwMAoKICAgIE1ha2UgU0MzIGJvYXJkIGJ1aWxkIHdpdGggJ21ha2UgTz0nOyB1c2UgJ2FkZGNvbnMnIGNvbnNpc3RlbnRseQogICAgKFNDMyBhbmQgSnVwaXRlciB1c2VkIHRvIHVzZSAnYWRkY29uJyBpbnN0ZWFkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIHdkQGRlbnguZGUKCmNvbW1pdCA4NTAyZTMwYTI4ZTQ5MmM3NTZlYTJkN2RmMGFjZTAyNjM4OGZjZTRiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDEzIDA5OjQwOjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHVwZGF0ZSBib2FyZCBjb25maWcgZm9yIGp1cGl0ZXIgQm9hcmQ6CgkgICAgYWRkZWQgSHVzaCBTaGVsbCwKCQkgIENPTkZJR19DTURMSU5FX0VESVRJTkcsCgkJICBDRkdfRU5WX0FERFJfUkVEVU5EIGFjdGl2YXRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDBkOTNkZTExNDQ5MzkwYTU5ODRiMDIzNmMzNjEyZTUwZjZkYmI3ZTgKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDEyOjExOjU1IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5vciBjbGVhbnVwCgpjb21taXQgYmZhNTc1NGE1ODQ3N2FjOTE3ZDIxNTI3Y2QwZjA3OWQ4N2NmMTg4ZQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMDE6NDI6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBCVUlMRF9ESVIgb3B0aW9uIG9mIE1BS0VBTEwgYnVpbGRpbmcgaXNzdWUKCmNvbW1pdCA4NDQwYmIxNDU4MWEyOTQzNzVjMzRiOTFiNDI1MTJmOTc1M2QxMTMwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMDoyNToxNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgY2ZjNjcxMTZhNzA2ZmQxOGI4ZjZhOWMxMWExNjc1M2M1NjI2ZDY4OQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0ODoyNCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXSBwYXJ0IDIKICAgIHRpbWVyIHN1cHBvcnQKICAgIGludGVycnVwdCBjb250cm9sbGVyIHN1cHBvcnQKICAgIGZsYXNoIHN1cHBvcnQKICAgIGV0aGVybmV0IHN1cHBvcnQKICAgIGNhY2hlIHN1cHBvcnQKICAgIGJvYXJkIGluZm9ybWF0aW9uIHN1cHBvcnQKICAgIGVudiBzdXBwb3J0CiAgICBib290aW5nIGltYWdlIHN1cHBvcnQKCiAgICBhZGRpbmcgc3VwcG9ydCBmb3IgWGlsaW54IE1MNDAxCgpjb21taXQgNzYzMTZhMzE4ZGU5MWY2MTg0ZTdjMjJhMTBlMDJkMjc1YWRlMjQ0MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0Mjo1OCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXQogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA4ZGIxM2Q2MzE1NzgxMWM4MzlkMTVhMzEzZDlmMmQyZjVmZDEwYWYzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciAxMCAyMzo0OToyOSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgZWYyNmEwOGZlZjkyOGI3YmMxMWFlMmMxMDllNjM4ZGMzYTAxNmQ5MQpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CUZyaSBNYXIgOSAxMzo0MDo1NiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSC0yLzJdIENvbW1vbiBmaWxlcyBjaGFuZ2VkIHRvIHN1cHBvcnQgYmY1MzMgcGxhdGZvcm0KCmNvbW1pdCAzZjA2MDZhZDBiNTYzOWY3ZjIyODQ4ZmU1YjQ1NzRlNzU0ZDA0NzBmCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjM4OjQ0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dUEFUQ0gtMS8yXTogUmVtb3ZlIG9ic29sZXRlIGJsYWNrZmluIHBvcnQgYW5kIGFkZCBiZjUzMyBwbGF0Zm9ybSBzdXBwb3J0Cgpjb21taXQgOTkyNDIzYWI0M2MyYmNmNmI3MDQ4NTNiZDAwYWY3NzQ1MDkxNWUyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIzOjAwOjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBmaWxlIG1vZGUgb2Ygc2VxdW9pYS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViOTJmNjEzNTU2ODAwZjc0ODM2NjZkYjA5ZDlhMjM3YWQ5MTFkNGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIyOjUyOjUxIDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwLgoKY29tbWl0IDhjZTE2ZjU1YzdiOTc1MmFmM2Q4YmVkODQ1MjFhZWM1MzM3ZTJkZTEKQXV0aG9yOiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgpEYXRlOglUaHUgTWFyIDggMDk6Mzk6NDggMjAwNyAtMDYwMAoKICAgIHBwYzR4eDogQ2xlYXIgU2VxdW9pYS9SYWluaWVyIHNlY3VyaXR5IGVuZ2luZSByZXNldCBiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBPdGtlbiBqb2huQHNvZnRhZHZhbmNlcy5jb20gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KCmNvbW1pdCA2NTBhMzMwZGQyNTM5MTMwYzhjMzI0NzkxZTJmOWY3NWFlZDc5ZDRlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNjo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGFkZCBzb21lIG1vcmUgU1BEIGVlcHJvbSBkZWNvZGluZyBmb3IgRERSMiBtb2R1bGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDlmYzcwMzI0Njg0MGM0YjI2OGRlYmY0OGMzMzRiYTU1YzU5N2RjMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBkaXNhYmxlIGZsYXQgaTJjIGNvbW1hbmRzIHdoZW4gQ09ORklHX0kyQ19DTURfVFJFRSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgY2VkNWI5MDI5MDQzMzk3MzQ4Y2RjODhlMGNmY2Q2YjFmNjI5MjUwYgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjM6MTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBhbGxvdyBDT05GSUdfSTJDX0NNRF9UUkVFIHdpdGhvdXQgQ09ORklHX0kyQ19NVUxUSV9CVVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOGE4ZWE1YzQ3NmQzNzAwNmZjN2Y4NWI3ZjkwMzE0Mjc5NWM4YjE0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMDozMiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1NQRF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjlmYzZhNTg1MmE2MzM1ODQwODgyZmEyMTExOTI1MDEwZWVhMWFiZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgTWFyIDcgMTU6MzI6MDEgMjAwNyArMDEwMAoKICAgIGZpeGVkIGV0aGVybmV0IHBoeSBjb25maWd1cmF0aW9uIGZvciBwbHU0MDUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3NjkxMDRjOTM1NjU5NGRlYjIwOTJlMjA0YTM5YzA1YjMzMjAyZDZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAyMTo0OToyNyAyMDA3ICswMTAwCgogICAgTWlub3IgY2xlYW51cAoKY29tbWl0IDAwY2RiNGNlNWUxYjQyMjQ4ZTdlNjUyMmFkMGRhMzQyMWI5ODhhZmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMzoxNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBMdWFuIDQ0MFNQIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIEx1YW4gbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgVGhpcyBwYXRjaCBhbHNvIGVuYWJsZXMgdGhlIGNhY2hlIGluIEZMQVNIIGZvciB0aGUgc3RhcnR1cAogICAgcGhhc2Ugb2YgVS1Cb290ICh3aGlsZSBydW5uaW5nIGZyb20gRkxBU0gpLiBBZnRlciByZWxvY2F0aW5nIHRvCiAgICBTRFJBTSB0aGUgY2FjaGUgaXMgZGlzYWJsZWQgYWdhaW4uIFRoaXMgd2lsbCBzcGVlZCB1cCB0aGUgYm9vdAogICAgcHJvY2VzcywgZXNwZWNpYWxseSB0aGUgU0RSQU0gc2V0dXAsIHNpbmNlIHRoZXJlIGFyZSBzb21lIGxvb3BzCiAgICBmb3IgbWVtb3J5IHRlc3RpbmcgKGF1dG8gY2FsaWJyYXRpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjVkZjQ3MzUxOTEwYTI5MzZjNzc0MWNmMTExODU1ODI5MjAwOTQzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MTA6MTggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgWXVjY2EgNDQwU1BlIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIFl1Y2NhIG5vdyB1c2VzIHRoZSBjb21tb24gNDQwU1AoZSkgRERSIFNQRCBjb2RlIGZvciBERFIKICAgIGluaXRpdGlhbGl6aXRpb24uIFRoaXMgaW5jbHVkZXMgRERSIGF1dG8gY2FsaWJyYXRpb24gYW5kIHN1cHBvcnQKICAgIGZvciBkaWZmZXJlbnQgRElNTSBtb2R1bGVzLCBpbnN0ZWFkIG9mIHRoZSBmaXhlZCBzZXR1cCB1c2VkIGluCiAgICB0aGUgZWFybGllciB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNzIxYTY4YTllYTkxZjFlNDk0NjQ5Y2U2OGIyNTc3MjYxZjU3OGUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDc6MTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogU21hbGwgQU1DQyBLYXRtYWkgNDQwU1BlIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjI5NDQ5NzQ3OWIxZGNhNmRkODYzMThiMmE5MTJmNzJmZWRlMGRmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDY6MDkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0MFNQLzQ0MFNQZSBERFIgU1BEIHNldHVwIGNvZGUgdG8gc3VwcG9ydCA0NDBTUAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mzg1MzE3OGJkMzZiY2E2ZjBmOGYxMzMxNDc2NjIwYzg0YTU4N2ZjCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA3IDEyOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBuZXQgLSBTdXBwb3J0IHBpbmcgcmVwbHkgd2hlbiBwcm9jZXNzaW5nIG5ldC1sb29wCgogICAgQWRkIElDTVBfRUNIT19SRVFVRVNUIHBhY2tldCBzdXBwb3J0IGJ5IHJlc3BvbmRpbmcgd2l0aCBhIElDTVBfRUNIT19SRVBMWS4KCiAgICBUaGlzIHBlcm1pdHMgdGhlIHBpbmcgY29tbWFuZCB0byB0ZXN0IHRoZSBwaHkgaW50ZXJmYWNlIHdoZW4gdGhlIHBoeQogICAgaXMgcHV0IGluIGxvb3BiYWNrIG1vZGUgKHR5cGljYWxseSBieSBzZXR0aW5nIHJlZ2lzdGVyIDAgYml0IDE0KS4KCiAgICBJdCBhbHNvIGFsbG93cyB0aGUgcG9ydCB0byByZXNwb25kIHRvIGFuIGV4dGVybmFsIHBpbmcgd2hlbiB1LWJvb3QgaXMKICAgIHByb2Nlc3Npbmcgc29tZSBvdGhlciBuZXQgY29tbWFuZCAoc3VjaCBhcyB0ZnRwKS4gIFRoaXMgaXMgdXNlZnVsIHdoZW4KICAgIHRmdHAgYXBwZWFycyB0byBoYW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBmYTFhZWYxNWJjZDQ3NzM2Njg3YmUxYWY1NDQ1MDZlOTBmYmE1NDVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6NDM6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgT2NvdGVhIGV2YWwgYm9hcmQKCiAgICBEZWZpbmUgQ09ORklHX1BST0dfU0RSQU1fVExCIHNvIHRoYXQgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUKICAgIEREUiBtZW1vcnkgYXJlIGR5bmFtaWNhbGx5IHByb2dyYW1tZWQgbWF0Y2hpbmcgdGhlIHRvdGFsIHNpemUKICAgIG9mIHRoZSBlcXVpcHBlZCBtZW1vcnkgKERJTU0gbW9kdWxlcykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUyZWJlNjk2ODE4OTM5ZTJiOTc0NjI4YmU5YzkyMWVhM2ZlOWRlMTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozOTozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggQU1DQyA0NHggU1BEIFNEUkFNIGluaXQgY29kZSB0byBzdXBwb3J0IDIgRElNTSdzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gdGhhdCBvY2N1cnMgd2hlbiAyIERJTU0ncyBhcmUKICAgIHVzZWQuIFRoaXMgcHJvYmxlbSB3YXMgZmlyc3Qgc3BvdHRlZCBhbmQgZml4ZWQgYnkgR2VyYWxkIEphY2tzb24KICAgIDxnZXJhbGQuamFja3NvbkByZWFvbml4c2VjdXJpdHkuY29tPiBidXQgdGhpcyBwYXRjaCBmaXhlcyB0aGUKICAgIHByb2JsZW0gaW4gYSBsaXR0bGUgbW9yZSBjbGV2ZXIgd2F5LgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHRoZSBuaWNlIGZ1bmN0aW9uYWxpdHkgdG8gZHluYW1pY2FsbHkKICAgIGNyZWF0ZSB0aGUgVExCIGVudHJpZXMgZm9yIHRoZSBTRFJBTSAodGxiLmMpLiBTbyB3ZSBzaG91bGQKICAgIG5ldmVyIHJ1biBpbnRvIHN1Y2ggcHJvYmxlbXMgd2l0aCB3cm9uZyAodG9vIHNob3J0KSBUTEIKICAgIGluaXRpYWxpemF0aW9uIGFnYWluIG9uIHRoZXNlIHBsYXRmb3Jtcy4KCiAgICBBcyB0aGlzIGZlYXR1cmUgaXMgbmV3IHRvIHRoZSAib2xkIiA0NHggU1BEIEREUiBkcml2ZXIsIGl0CiAgICBoYXMgdG8gYmUgZW5hYmxlZCB2aWEgdGhlIENPTkZJR19QUk9HX1NEUkFNX1RMQiBkZWZpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5MjE4NDMzOTgzNDE3YjlkZjA4Nzk3NmE3OWUzZjgwZGQ1ZTgzZDYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6MzM6NDQgMjAwNyArMDEwMAoKICAgIFVDMTAxOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA4ZDdlMjczMjIyMWJjMmQ2NGRmMTRmNzAwYzY0YzIzZTBhNGMzZGNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjoxOTo0NiAyMDA3ICswMTAwCgogICAgSE1JMTAwMTogZml4IGJ1aWxkIGVycm9yLCBjbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLgoKY29tbWl0IGFkNWJiNDUxYWRlNTUyYzQ0YmVmOTExOWQ5MDc5MjllYmMyYzEyNmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjA4OjQzIDIwMDcgKzAxMDAKCiAgICBSZXN0cnVjdHVyZSBQT1NUIGRpcmVjdG9yeSB0byBzdXBwb3J0IG9mIG90aGVyIENQVXMsIGJvYXJkcywgZXRjLgoKY29tbWl0IGE1Mjg0ZWZkMTI1OTY3Njc1YjJlOWM2ZWY3Yjk1ODMyMjY4YWQzNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjAxOjQ3IDIwMDcgKzAxMDAKCiAgICBGaXggSE9TVEFSQ0ggaGFuZGxpbmcuCiAgICBQYXRjaCBieSBNaWtlIEZyeXNpbmdlciwgTWFyIDA1IDIwMDcKCmNvbW1pdCAwN2I3YjAwMzdhYWM1MTAyOTM5OTE3ZDdjYmU1NjFiNWMwZDVhYTQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMDc6NDc6MDQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU3BlZWQgb3B0aW1pemF0aW9uIG9mIEFNQ0MgU2VxdW9pYS9SYWluaWVyIEREUjIgc2V0dXAKCiAgICBBcyBwcm92aWRlZCBieSB0aGUgQU1DQyBhcHBsaWNhdGlvbnMgdGVhbSwgdGhpcyBwYXRjaCBvcHRpbWl6ZXMgdGhlCiAgICBERFIyIHNldHVwIGZvciAxNjZNSHogYnVzIHNwZWVkLiBUaGUgdmFsdWVzIHByb3ZpZGVkIGFyZSBhbHNvIHNhdmUKICAgIHRvIHVzZSBvbiBhICJub3JtYWwiIDEzM01IeiBQTEIgYnVzIHN5c3RlbS4gT25seSB0aGUgcmVmcmVzaCBjb3VudGVyCiAgICBzZXR1cCBoYXMgdG8gYmUgYWRqdXN0ZWQgYXMgZG9uZSBpbiB0aGlzIHBhdGNoLgoKICAgIEZvciB0aGlzIHRoZSBOQU5EIGJvb3RpbmcgdmVyc2lvbiBoYWQgdG8gaW5jbHVkZSB0aGUgInNwZWVkLmMiIGZpbGUKICAgIGZyb20gdGhlIGNwdS9wcGM0eHggZGlyZWN0b3J5LiBXaXRoIHRoaXMgYWRkaXRpb24gdGhlIE5BTkQgU1BMIGltYWdlCiAgICB3aWxsIGp1c3QgZml0IGludG8gdGhlIDRrYnl0ZXMgb2YgcHJvZ3JhbSBzcGFjZS4gZ2NjIHZlcnNpb24gNC54IGFzCiAgICBwcm92aWRlZCB3aXRoIEVMREsgNC54IGlzIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGlzIG9wdGltaXplZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NDdkM2MzZWVkMGRhMWQxNTA1ZWVjYWJlMGIwZmFiOTZmOTU2ZTY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBNYXIgNCAwMTozNjowNSAyMDA3ICswMTAwCgogICAgU29tZSBjb2RlIGNsZWFudXAuCgpjb21taXQgNzgxZTAyNmM4YWE2ZjdlOWViNWYwZTcyY2M0ZDIwOTcxMjE5YjE0OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDA6MDI6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZnRfZ2V0X3Byb3AnIHdhcm5pbmdzCgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjNWJmMTNiMDIyODRjMzIwNGE3MjM1NjZhOWJhYjcwMGU1MDU5NjU5IGNvbW1pdCkKCmNvbW1pdCA0ZmVhYjRkZTdiZmMyY2IyZmVkMzZhZDc2ZjkzYzNhNjk2NTliYmFmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAyNyAyMzo1MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGNvbmZpZyBvZiBBcmJpdGVyLCBTeXN0ZW0gUHJpb3JpdHksIGFuZCBDbG9jayBNb2RlCgogICAgVGhlIGNvbmZpZyB2YWx1ZSBmb3I6CiAgICAqIENGR19BQ1JfUElQRV9ERVAKICAgICogQ0ZHX0FDUl9SUFRDTlQKICAgICogQ0ZHX1NQQ1JfVFNFQzFFUAogICAgKiBDRkdfU1BDUl9UU0VDMkVQCiAgICAqIENGR19TQ0NSX1RTRUMxQ00KICAgICogQ0ZHX1NDQ1JfVFNFQzJDTQoKICAgIFdlcmUgbm90IGJlaW5nIHVzZWQgd2hlbiBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlcgoKICAgIEFkZGVkOgogICAgKiBDRkdfU0NDUl9VU0JNUEhDTQogICAgKiBDRkdfU0NDUl9VU0JEUkNNCiAgICAqIENGR19TQ0NSX1BDSUNNCiAgICAqIENGR19TQ0NSX0VOQ0NNCgogICAgVG8gYWxsb3cgZnVsbCBjb25maWcgb2YgdGhlIFNDQ1IuCgogICAgQWxzbyByZW1vdmVkIHJhbmRvbSBDRkdfU0NDUiBzZXR0aW5ncyBpbiBNUEM4MzQ5RU1EUywgVFFNODM0eCwgYW5kIHNiYzgzNDkKICAgIHRoYXQgd2VyZSBqdXN0IGJvZ3VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDUxYjNjZjM3MWNkNDQxMDMwNDYwZWYxOWQzNmIyOTI0YzM2MWIxYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBGZWIgMjIgMjA6MDY6NTcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHVwZGF0ZSBbbG9jYWwtXW1hYy1hZGRyZXNzIHByb3BlcnRpZXMgb24gVUVDIGJhc2VkIGRldmljZXMKCiAgICA4MzYwIGFuZCA4MzJ4IHdlcmVuJ3QgdXBkYXRpbmcgdGhlaXIgW2xvY2FsLV1tYWMtYWRkcmVzcwogICAgcHJvcGVydGllcy4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFmNGY5MTJhY2JlNjA3NzZjNWUwMGRmMWVjOTQwOTRjZTY3Mjk1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTMgMTA6NDE6NDIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCB0aGlzIHBhdGNoCiAgICB1cGRhdGVzIGZ0cF9jcHVfc2V0dXAoKSB0byB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgaWYgaXQgZXhpc3RzLgogICAgVGhpcyBmdW5jdGlvbiBhbHJlYWR5IHVwZGF0ZXMgbG9jYWwtbWFjLWFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmQ3MWE3MWY1N2ZkNWQzOGIyN2FjMzg0OGU1MGQ3OTAzNjBhNTk4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxODo0MTowOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIGNvbW1hbmQgbGluZSBlZGl0aW5nIGJ5IGRlZmF1bHQKCmNvbW1pdCAzZmMwYmQxNTkxMDNiNTM2ZTFjNTRjNmY0NDU3YTA5YjNhYmE2NmNhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxOTo1MDo1MyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzCgogICAgRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzLiBUaGlzIHBhdGNoCiAgICBmaXhlcyBhIG5ldHdvcmtpbmcgdGltZW91dCBpc3N1ZSB3aXRoIE1QQzgzNjBFQSAoUmV2LjIpIFBCcy4KCiAgICBWZXJpZmllZCBvbiBSZXYuIDEuMSwgUmV2LiAxLjIsIGFuZCBSZXYuIDIuMCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNjE4NTNjZjI0NzJlMGI4YmNiZDEzMTQ2MWE5M2QxYzQ5ZmYwYzFmCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MTcgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBERFIyIGNvbnRyb2xsZXIgZml4ZWQvU1BEIEluaXQgZm9yIE1QQzgzeHgKCiAgICBUaGUgY29kZSBzdXBwbHkgZml4ZWQgYW5kIFNQRCBpbml0aWFsaXphdGlvbiBmb3IgTVBDODN4eCBERFIyIENvbnRyb2xsZXIuCiAgICBpdCBwYXNzIEREUi9ERFIyIGNvbXBsaWFuY2UgdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMTEwZjQwYmQxODBjNmI1NjAyNzY1ODliZWVkZjc1M2U5N2M0NmNlCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MDYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNjBFIHJldjIuMCBNRFMKCiAgICBNUEM4MzYwRSByZXYyLjAgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzYwRSByZXYyLjAgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZDE3MmMwZjBkODU5OThhMjU2YTk1Yjc0NTlhNTQwM2EzMDM4MGVkCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6MjY6NDQgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IGFuZCBib2FyZCBzcGVjaWZpYyBjb2RlIGZvciBNUEM4MzQ5RSByZXYzLjEgTURTCgogICAgTVBDODM0OUUgcmV2My4xIGhhdmUgbmV3IHNwcmlkcixhbmQgUFZSIHZhbHVlLAogICAgVGhlIE1EUyBib2FyZCBmb3IgTVBDODM0OUUgcmV2My4xIGhhcyAzMk0gYnl0ZXMgRmxhc2ggYW5kIDI1Nk0gRERSMiBESU1NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFhpZSBYaWFvYm88WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmY1ZjcwOWU1YzhlNDU2NGM0ZGZlZWNmZGYyMjc5MjQ0ZjljODNiCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8am9ha2ltLnRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVdlZCBKYW4gMzEgMTE6MDQ6MTkgMjAwNyArMDEwMAoKICAgIG1wYzgzeHg6IEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzIGluIGZzbF9pMmMuYwoKICAgIEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzLCBpMmNfd3JpdGUoMHg1MCwgMHgwMCwgMCwgTlVMTCwgMCkKICAgIHdoaWNoIGlzIHVzZWQgdG8gc2UgaWYgYW4gc2xhdmUgd2lsbCBBQ0sgYWZ0ZXIgcmVjZWl2aW5nIGl0cyBhZGRyZXNzLgoKICAgIENvcnJlY3QgaTJjIHByb2JpbmcgdG8gdXNlIHRoaXMgbWV0aG9kIGFzIHRoZSBvbGQgbWV0aG9kIGNvdWxkIHVwc2V0CiAgICBhIHNsYXZlIGFzIGl0IHdyb3RlIGEgZGF0YSBieXRlIHRvIGl0LgoKICAgIEFkZCBhIHNtYWxsIGRlbGF5IGluIGkyY19pbml0KCkgdG8gbGV0IHRoZSBjb250cm9sbGVyCiAgICBzaHV0ZG93biBhbnkgb25nb2luZyBJMkMgYWN0aXZpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgN2E3OGYxNDhkNmE3Mjk4ZTRmZmFjZTY4MGRjN2VhY2Q4NzdiMWFiYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzEgMTU6NTQ6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUCwgYSBzdHJpcHBlZC1kb3duIHZlcnNpb24gb2YgdGhlCiAgICBNUEM4MzQ5RS1tSVRYLiAgQm9udXMgZmVhdHVyZXMgaW5jbHVkZSBzdXBwb3J0IGZvciBsb3ctYm9vdCAoQk1TIGJpdCBpbgogICAgSFJDVyBpcyAwKSBmb3IgdGhlIElUWCBhbmQgYSBSRUFETUUgZm9yIHRoZSBJVFggYW5kIHRoZSBJVFgtR1AuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYWIxNjgwN2FkYWQzNTBmNjE4MDI0MzUwYzY5NTAxNjVjMjQ3YzcyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGVsZXRlIHNkcmFtX2luaXQoKSBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFRoZXJlIGlzIG5vIFNEUkFNIG9uIGFueSBvZiB0aGUgODM0OSBJVFggdmFyaWFudHMsIHNvIGZ1bmN0aW9uIHNkcmFtX2luaXQoKQogICAgbmV2ZXIgZG9lcyBhbnl0aGluZy4gIFRoaXMgcGF0Y2ggZGVsZXRlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4N2M4NTZlYjQxMWI5MzY1OTM3ZDBkNGI5YzIxZTQ2YWRiZTFjMTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE5IDEwOjQzOjI2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIExBVzEvMyBidWcKCiAgICBUaGUgcGF0Y2ggc29sdmVzIHRoZSBhbGlnbm1lbnQgcHJvYmxlbSBvZiB0aGUgbG9jYWwgYnVzIGFjY2VzcyB3aW5kb3dzIHRvCiAgICByZW5kZXIgYWNjZXNzaWJsZSB0aGUgbWVtb3J5IGJhbmsgYW5kIFBIWSByZWdpc3RlcnMgb2YgVVBDIDEgKHN0YXJ0aW5nIGF0CiAgICAweGY4MDEgMDAwMCkuIFdoYXQgd2UgYWN0dWFsbHkgZGlkIHdhcyB0byBhZGp1c3QgdGhlIHNpemVzIG9mIHRoZSBidXMKICAgIGFjY2VzcyB3aW5kb3dzIHNvIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgd291bGQgYmUgbWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IENoZXJlamkgTWFyaWFuIDxtYXJpYW4uY2hlcmVqaUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JpZGlzaCBTaGxvbWkgPGdyaWRpc2hAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTdjNGIzOTdkY2UyMzZhNzMxOGIzMDQ2NjdiZjg5ZTU5ZDA4YjE3YwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MzEgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGRvbid0IGhhbmcgaWYgd2F0Y2hkb2cgY29uZmlndXJlZCBvbiA4MzYwLCA4MzJ4CgogICAgZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBUaGUgd2F0Y2hkb2cgcHJvZ3JhbW1pbmcgbW9kZWwgaXMgdGhlIHNhbWUgYWNyb3NzIGFsbCA4M3h4IGRldmljZXM7CiAgICBtYWtlIHRoZSBjb2RlIHJlZmxlY3QgdGhhdC4KCmNvbW1pdCBiNzAwNDc0Nzg1NzBlMzcxY2U3MjIzYmUzNDJjZTk4YWZlYTBmN2Q2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNToyMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBsb2NhbC1tYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKY29tbWl0IDY3NTJlZDA4OGM3NWMyNmE4OWI3MGM0NmI3MzI2YTRjZDYwMTVmMjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjA0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgogICAgbWFrZSA4MzYwIGRlZmF1bHQgZW52aXJvbm1lbnQgZmR0IGJlIDgzNjAgKG5vdCA4MzQ5KQoKY29tbWl0IGEyODg5OWM5MTAwMjRhMDIyNjMzMWRmMDcyMDdiMTAzOGMzMDBjOTMKQXV0aG9yOiBFbWlsaWFuIE1lZHZlIDxFbWlsaWFuLk1lZHZlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBhbHRlcm5hdGluZyB0eCBlcnJvciAvIHR4IGJ1ZmZlciBub3QgcmVhZHkgYnVnIGluIFFFIFVFQwoKICAgIFRoZSBwcm9ibGVtIGlzIG5vdCBnY2M0IGJ1dCB0aGUgY29kZSBpdHNlbGYuIFRoZSBCRF9TVEFUVVMoKSBtYWNybyBjYW4ndAogICAgYmUgdXNlZCBmb3IgYnVzeS13YWl0aW5nIHNpbmNlIGl0IHN0cmlwcyB0aGUgJ3ZvbGF0aWxlJyBwcm9wZXJ0eSBmcm9tCiAgICB0aGUgYmQgdmFyaWFibGUuIGdjYzMgd2FzIHdvcmtpbmcgYnkgcHVyZSBsdWNrLgoKICAgIFRoaXMgaXMgYSBmb2xsb3cgb24gcGF0Y2ggdG8gIkZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUiCgpjb21taXQgM2U3OGEzMWNmZTNkMzAyMmY0NmY2N2ViODhlMTI4MWQ1Y2MyZWI4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKYW4gMzAgMTQ6MDg6MzAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ09ORklHX01QQzgzNDkgYW5kIHVzZSBDT05GSUdfTVBDODM0WCBpbnN0ZWFkCgogICAgVGhlIGNvZGUgdGhhdCBpcyBpZmRlZidkIHdpdGggQ09ORklHX01QQzgzNDkgaXMgYWN0dWFsbHkgYXBwbGljYWJsZSB0byBhbGwKICAgIE1QQzgzNFggY2xhc3MgcHJvY2Vzc29ycy4gIENoYW5nZSB0aGUgcHJvdGVjdGlvbnMgZnJvbSBDT05GSUdfTVBDODM0OSB0bwogICAgQ09ORklHX01QQzgzNFggc28gdGhleSBhcmUgbW9yZSBnZW5lcmljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWUyNDZkYzZjMTkzN2MyOTEwMTRlYWRkOTBiNmQ0OGM0MzhjN2NiMApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMjUgMTM6NDA6NTUgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBNUEM4MzJYRU1EUyBhbmQgc2JjODM0OSB0byBNQUtFQUxMCgpjb21taXQgNGRlY2Q4NGU4ZjA0Mjc5YzVjZmZmN2Y4ZTkwNzQ2NWVmOGQ4YTNmYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjQgMTc6MTg6MzcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHNvcnQgTWFrZWZpbGUgdGFyZ2V0cwoKICAgIHJlb3JkZXJlZCB0YXJnZXRzIGFscGhhYmV0aWNhbGx5Cgpjb21taXQgOTFlMjU3Njk3NzFjMTE2NGVkNjNmZmNhMGFkZDQ5ZjkzNGFlMzM0MwpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUdWUgSmFuIDE2IDExOjM4OjE0IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBVLUJvb3Qgc3VwcG9ydCBmb3IgV2luZCBSaXZlciBTQkM4MzQ5CgogICAgSSd2ZSByZWRvbmUgdGhlIFNCQzgzNDkgc3VwcG9ydCB0byBtYXRjaCBnaXQtY3VycmVudCwgd2hpY2gKICAgIGluY29ycG9yYXRlcyBhbGwgdGhlIE1QQzgzNHggdXBkYXRlcyBmcm9tIEZyZWVzY2FsZSBzaW5jZSB0aGUgMS4xLjYKICAgIHJlbGVhc2UsICBpbmNsdWRpbmcgdGhlIEREUiBjaGFuZ2VzLgoKICAgIEkndmUga2VwdCBhbGwgdGhlIFNCQzgzNDkgZmlsZXMgYXMgcGFyYWxsZWwgYXMgcG9zc2libGUgdG8gdGhlCiAgICBNUEM4MzQ5RU1EUyBvbmVzIGZvciBlYXNlIG9mIG1haW50ZW5hbmNlIGFuZCB0byBhbGxvdyBmb3IgZWFzeQogICAgaW5zcGVjdGlvbiBvZiB3aGF0IHdhcyBjaGFuZ2VkIHRvIHN1cHBvcnQgdGhpcyBib2FyZC4gIEhlbmNlIHRoZSBTQkM4MzQ5CiAgICBVLUJvb3QgaGFzIEZEVCBzdXBwb3J0IGFuZCBldmVyeXRoaW5nIGVsc2UgdGhhdCB0aGUgTVBDODM0OUVNRFMgaGFzLgoKICAgIEZvcnR1bmF0ZWx5IHRoZSBGcmVlc2NhbGUgdXBkYXRlcyBhZGRlZCBzdXBwb3J0IGZvciBib2FyZHMgdXNpbmcgQ1MwLAogICAgYnV0IEkgaGFkIHRvIGNoYW5nZSBzcGRfc2RyYW0uYyB0byBhbGxvdyBmb3IgYm9hcmQgc3BlY2lmaWMgc2V0dGluZ3MgZm9yCiAgICB0aGUgc2RyYW1fY2xrX2NudGwgKGl0IGlzL3dhcyBoYXJkIGNvZGVkIHRvIHplcm8sIGFuZCB0aGF0IHJlbWFpbnMgdGhlCiAgICBkZWZhdWx0IGlmIHRoZSBib2FyZCBkb2Vzbid0IHNwZWNpZnkgYSB2YWx1ZS4pCgogICAgSG9wZWZ1bGx5IHRoaXMgc2hvdWxkIGJlIG1lcmdlYWJsZSBhcy1pcyBhbmQgcmVxdWlyZSBubyB3aGl0ZXNwYWNlCiAgICBjbGVhbnVwcyBvciBzaW1pbGFyLCBidXQgaWYgc29tZXRoaW5nIGRvZXNuJ3QgbWVhc3VyZSB1cCB0aGVuIGxldCBtZQogICAga25vdyBhbmQgSSdsbCBmaXggaXQuCgogICAgVGhhbmtzLAogICAgUGF1bC4KCmNvbW1pdCAwNTAzMWRiNDU2YWIyMjdmM2UzNzUyZjM3YjliODEyYjY1YmI4M2FkCkF1dGhvcjogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgpEYXRlOglUaHUgRGVjIDE0IDE5OjAzOjIxIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgYSByZWR1bmRhbnQgc2VtaWNvbG9uIGluIG1wYzgzNDlpdHguYwoKICAgIEEgcmVkdW5kYW50IHNlbWljb2xvbiBleGlzdGVkIGluIG1wYzgzNDlpdHguYwogICAgc2hvdWxkIGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgoKY29tbWl0IGYzNWYzNTgyNDFjNTQ5YmUzZjc1Y2ZlMmVhYTY0MjkxNDI3NWI3YmEKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGdlcmFsZC52YW5iYXJlbkBjb21jYXN0Lm5ldD4KRGF0ZToJV2VkIERlYyA2IDIxOjIzOjU1IDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuCgogICAgUHV0IHRoZSB2ZXJzaW9uIChhbmQgbWFnaWMpIGFmdGVyIHRoZSBIUkNXLiAgVGhpcyBwdXRzIGl0IGluIGEgZml4ZWQKICAgIGxvY2F0aW9uIGluIGZsYXNoLCBub3QgYXQgdGhlIHN0YXJ0IG9mIGZsYXNoIGJ1dCBhcyBjbG9zZSBhcyB3ZSBjYW4gZ2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcnJ5IFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA0OGFlY2Q5NjkxNzFhNmU5OWE1NWZhZTA0OTMzODU3Nzg3ZjlhNWJkCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMjE6MTQ6NTEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgTVBDODMyWEVNRFMgYm9hcmQgcmVhZG1lCgogICAgQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0YzNhY2EzZjEzNThiMTEzZDMyMTVhZGI1NDMzYjE1NmU5OWY3MmIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMzoxNSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzJYRU1EUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgRFVBUlQsIEVUSDMvNCBhbmQgUENJIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwODAzMTNjMzIzMjJlMTVhYjVhMThlYjg5NmEyNTI4NThjNTcyODQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMTo1OCAyMDA2ICswODAwCgogICAgbXBjODN4eDogc3RyZWFtbGluZSB0aGUgODN4eCBpbW1yIGhlYWQgZmlsZQoKICAgIEZvciBiZXR0ZXIgZm9ybWF0IGFuZCBzdHlsZSwgSSBzdHJlYW1saW5lZCB0aGUgODN4eCBoZWFkIGZpbGVzLAogICAgaW5jbHVkaW5nIGltbWFwXzgzeHguaCBhbmQgbXBjODN4eC5oLiBJbiB0aGUgb2xkIGhlYWQgZmlsZXMsIDEpCiAgICBkdXBsaWNhdGVkIG1hY3JvIGRlZmluaXRpb24gYXBwZWFyIGluIHRoZSBib3RoIGZpbGVzOyAyKSB0aGUgc3RydWN0dXJlCiAgICBvZiBRRSBpbW1yIGlzIGR1cGxpY2F0ZWQgaW4gdGhlIGltbWFwXzgzeHguaCBhbmQgaW1tYXBfcWUuaDsgMykgVGhlCiAgICBtYWNybyBkZWZpbml0aW9uIHB1dCBpbnNpZGUgdGhlIGVhY2ggc3RydWN0dXJlLiBTbywgSSBjbGVhbmVkIHVwIHRoZQogICAgc3RydWN0dXJlIG9mIFFFIGltbXIgZnJvbSBpbW1hcF84M3h4LmgsIGRlbGV0ZWQgdGhlIGR1cGxpY2F0ZWQgc3R1ZmYgYW5kCiAgICBtb3ZlZCB0aGUgbWFjcm8gZGVmaW5pdGlvbiB0byBtcGM4M3h4LmgsIEp1c3QgbGlrZSBNUEM4MjYwLgoKICAgIENIQU5HRUxPRwoKICAgICpzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGQwMjQ5MmY0M2RiNTQwOGY1YWI5ZjgyM2IwYmE1Nzk2ZTI4ZWYwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDYgMTE6Mzg6MTcgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUKCiAgICBUaGUgcGF0Y2ggcHJldmVudHMgdGhlIEdDQyB0b29sIGNoYWluIGZyb20gc3RyaXBpbmcgdXNlZnVsIGNvZGUgZm9yCiAgICBvcHRpbWl6YXRpb24uIEl0IHdpbGwgbWFrZSBVRUMgZXRoZXJuZXQgZHJpdmVyIHdvcmthYmxlLCBPdGhlcndpc2UgdGhlCiAgICBVRUMgd2lsbCBmYWlsIGluIHR4IHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguIGJ1dCB0aGUgZHJpdmVyIGNhbiB3b3JrCiAgICB3aGVuIHVzaW5nIGdjYzMuNC4zLgoKICAgIENIQU5HRUxPRwoKICAgICpQcmV2ZW50IHRoZSBHQ0MgZnJvbSBzdHJpcGluZyBjb2RlIGZvciBvcHRpbWl6YXRpb24sIE90aGVyd2lzZSB0aGUgVUVDCiAgICB3aWxsIHR4IGZhaWxlZCB3aGVuIHlvdSBhcmUgdXNpbmcgZ2NjNC54LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmE1OGU0YzlhOWE5MTdjZTc5NWRkMTZkNGVjOGQ1MTVmOWY3YWEzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDIxOjExOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEthdG1haSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSByZWNlbnRseSBhZGRlZCBLYXRtYWkgYm9hcmQgc3VwcG9ydC4gVGhlIGJpZ2dlc3QKICAgIGNoYW5nZSBpcyB0aGUgc3VwcG9ydCBvZiBFQ0MgRElNTSBtb2R1bGVzIGluIHRoZSA0NDBTUChlKSBTUEQgRERSMgogICAgZHJpdmVyLgoKICAgIFBsZWFzZSBub3RlLCB0aGF0IHN0aWxsIHNvbWUgcHJvYmxlbXMgYXJlIGxlZnQgd2l0aCBzb21lIG1lbW9yeQogICAgY29uZmlndXJhdGlvbnMuIFNlZSB0aGUgZHJpdmVyIGZvciBtb3JlIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhjMTIwNDVhM2IwNmM1YjY2NzVkM2ZlMDJmYmM5ZjU0NTk4ODEyOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMSAwNzowMzoyNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1JUQ19CVVNfTlVNICYgQ0ZHX0RUVF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjYmM3MDM2NjQ4ZTQ2NTY5N2NhMjk4YmE1MWUwZTc2ZGRhMzUyYTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyOCAwMToyODo1MyAyMDA3ICswMTAwCgogICAgU0MzOiBmaXggdHlwbyBpbiBkZWZhdWx0IGVudmlyb25tZW50Cgpjb21taXQgZTM0NDU2OGIxYjQ2YWY4NWVjMzJkODE1NTg2ZjkxYmMxMTVkNjIyMwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBGZWIgMjcgMjA6MTU6MzAgMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRml4ZXMgZm9yIHVwZGF0ZSBwcm9jZWR1cmUKCiAgICAtIGZpeCBsb2dpYyBlcnJvciBpbiBpbWFnZSB0eXBlIGhhbmRsaW5nCiAgICAtIG1ha2Ugc3VyZSBmaWxlIHN5c3RlbSBpbWFnZXMgKGNyYW1mcyBldGMuKSBnZXQgc3RvcmVkIGluIGZsYXNoCiAgICAgIHdpdGggaW1hZ2UgaGVhZGVyIHN0cmlwcGVkIHNvIHRoZXkgY2FuIGJlIG1vdW50ZWQgdGhyb3VnaCBNVEQKCmNvbW1pdCA3NDM1NzExNDViMzcxODI3NTdkNGU2ODhhNzc4NjBiMzZlZTc3NTczCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjcgMTQ6MjY6MDQgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA2MzhkZDE0NThiYmRjMmE1NWQ0YjllMjVjNWM0ZTFmODM4YTVkYzcyCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxMjo0MDoxNiAyMDA3ICswMzAwCgogICAgTUNDMjAwIHVwZGF0ZSAtIGFkZCBMQ0QgUHJvZ3Jlc3MgSW5kaWNhdG9yCgpjb21taXQgNmM3Y2FjOGM0ZmNlMGVhMmJmOGUxNWVkODY1OGQ4Nzk3NDE1NWI0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMiAwNzo0MzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBnZXRfZGV2KCkgbm93IHVuY29uZGl0aW9uYWxseSB1c2VzIG1hbnVhbCByZWxvY2F0aW9uCgogICAgU2luY2UgdGhlIHJlbG9jYXRpb24gZml4IGlzIG5vdCBpbmNsdWRlZCB5ZXQgYW5kIHdlJ3JlIG5vdCBzdXJlIGhvdwogICAgaXQgd2lsbCBiZSBhZGRlZCwgdGhpcyBwYXRjaCByZW1vdmVzIGNvZGUgdGhhdCByZXF1aXJlZCByZWxvY2F0aW9uCiAgICB0byBiZSBmaXhlZCBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mjc0ZWMwYmQwMWQyZmViMmM3ZjA5NWViYTc4ZDQyZWEwMDk3OThiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQwOjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBzeXN0ZW1hY2UgZHJpdmVyIHRvIHNlbGVjdCA4ICYgMTZiaXQgbW9kZQoKICAgIEFzIHN1Z2dlc3RlZCBieSBHcmFudCBMaWtlbHkgdGhpcyBwYXRjaCBlbmFibGVzIHRoZSBYaWxpbnggU3lzdGVtQUNFCiAgICBkcml2ZXIgdG8gc2VsZWN0IDggb3IgMTZiaXQgbW9kZSB1cG9uIHN0YXJ0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhMTk3YjJmZTQ5ZDZmYTAzOTc4ZTYwYWYyMzk0ZWZlOWM3MGI1MjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIxIDE2OjUyOjMxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggdjNdIEFkZCBzeW5jIHRvIGVuc3VyZSBmbGFzaF93cml0ZV9jbWQgaXMgZnVsbHkgZmluaXNoZWQKCiAgICBTb21lIENQVXMgbGlrZSBQUEMsIEJMQUNLRklOIG5lZWQgc3luYygpIHRvIGVuc3VyZSBjZmkgZmxhc2ggd3JpdGUgY29tbWFuZAogICAgaXMgZnVsbHkgZmluaXNoZWQuIFRoZSBzeW5jKCkgaXMgZGVmaW5lZCBpbiBlYWNoIENQVSdzIGlvLmggZmlsZS4gRm9yCiAgICB0aG9zZSBDUFVzIHdoaWNoIGRvIG5vdCBuZWVkIHN5bmMgZm9yIG5vdywgYSBkdW1teSBzeW5jKCkgaXMgZGVmaW5lZCBpbgogICAgdGhlaXIgaW8uaCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGEwNDk5NWM3ZGM2NzcyMDEzYTlhMGRjNWM3NjdmMTkwYzQwMjQ3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyMSAxMzo0NDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggcHJvYmxlbSBpbiBzeXN0ZW1hY2UgZHJpdmVyIChhY2Vfd3JpdGV3IGluc3RlYWQgb2YgYWNlX3dyaXRlKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NTFiYjU3MTA3ZDc4OTc4YWUwOGU2OTdjM2RlYmE4MTZmNWJlMDkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEzOjIxOjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCByZWxvY2F0aW9uIHByb2JsZW0gd2l0aCAibmV3IiBnZXRfZGV2KCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbiBmb3IgYmxvY2sgZGV2aWNlcwogICAgaW50cm9kdWNlZCBieSBHcmFudCBMaWtlbHkgdG8gYmUgdXNlZCBvbiBzeXN0ZW1zIHRoYXQgc3RpbGwgc3VmZmVyCiAgICBmcm9tIHRoZSByZWxvY2F0aW9uIHByb2JsZW1zIChtYW51YWwgcmVsb2NhdGlvbiBuZWVkZSBiZWNhdXNlIG9mCiAgICBwcm9ibGVtcyB3aXRoIGxpbmtlciBzY3JpcHQpLgoKICAgIEhvcGVmdWxseSB3ZSBjYW4gcmVzb2x2ZSB0aGlzIHJlbG9jYXRpb24gaXNzdWUgc29vbiBmb3IgYWxsIHBsYXRmb3JtCiAgICBzbyB3ZSBkb24ndCBuZWVkIHRoaXMgYWRkaXRpb25hbCBjb2RlIGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ5M2UyMjEyZjk2MjY2OGIzZGNlMDkxZmY1ZWRjMzNmMjM0N2ZlMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFN5c3RlbUFDRSBkcml2ZXIgZm9yIDE2Yml0IGFjY2VzcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIHByb2JsZW1zIHdoZW4gdGhlIFhpbGlueCBTeXN0ZW1BQ0UgZHJpdmVyCiAgICBpcyB1c2VkIHdpdGggMTZiaXQgYWNjZXNzIG9uIGFuIGJpZyBlbmRpYW4gcGxhdGZvcm0gKGxpa2UgdGhlCiAgICBBTUNDIEthdG1haSkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3NGJiN2I4OGZlOWI0NjQ4ZTEyODhhMzg3YWYyZTMxMDE0YTcyZjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTU6NDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2xlYW4gdXAgS2F0bWFpICg0NDBTUGUpIGxpbmtlciBzY3JpcHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDc0NWFjYWExYTYwM2I2N2Y2YjliNzk3MDM2NWViYWRkN2Q2NTg2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1NzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgS2F0bWFpICg0NDBTUGUpIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjMDE4ZWNlMTNlZmZjNjg5ZTQ3NDc5ZWE5ZWJmMWM5OGE1MDdmNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1MToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzIGZvciBSVEMgJiBEVFQKCiAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHRvIHRoZSBkZXNpcmVkIEkyQyBidXMgd2hlbiB0aGUgZGF0ZS9kdHQKICAgIGNvbW1hbmRzIGFyZSBjYWxsZWQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlCiAgICBDRkdfUlRDX0JVU19OVU0gYW5kL29yIENGR19EVFRfQlVTX05VTSBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MDM3ZWQzYjYzOTIzY2ZjZWMyN2Y3ODRhODkwNTdjM2NiYWJjZWRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIDQ0MFNQKGUpIEREUjIgU1BEIERJTU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgRERSMiBjb250cm9sbGVyIHVzZWQgb24gdGhlCiAgICA0NDBTUCBhbmQgNDQwU1BlLiBJdCBpcyB0ZXN0ZWQgb24gdGhlIEthdG1haSAoNDQwU1BlKSBldmFsCiAgICBib2FyZCBhbmQgd29ya3MgZmluZSB3aXRoIHRoZSBmb2xsb3dpbmcgRElNTSBtb2R1bGVzOgoKICAgIC0gQ29yc2FpciBDTTJYNTEyLTU0MDBDNCAoNTEyTUJ5dGUgcGVyIERJTU0pCiAgICAtIEtpbmdzdG9uIFZhbHVlUkFNIEtWUjY2N0QyTjUvNTEyICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONUsyLzJHICgxR0J5dGUgcGVyIERJTU0pCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmQ4MzBjOTgzMDM3OTA0NWY1ZGFhOWY1NDJhYzFjOTkwYzcwMDY4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjM1OjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogU3BsaXQgNHh4IFNQRCBTRFJBTSBpbml0IHJvdXRpbmVzIGludG8gMiBmaWxlcwoKICAgIFNpbmNlIHRoZSBleGlzdGluZyA0eHggU1BEIFNEUkFNIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzIGZvciB0aGUKICAgIDQwNSBTRFJBTSBjb250cm9sbGVyIGFuZCB0aGUgNDQwIEREUiBjb250cm9sbGVyIGRvbid0IGhhdmUgbXVjaCBpbgogICAgY29tbW9uIHRoaXMgcGF0Y2ggc3BsaXRzIGJvdGggZHJpdmVycyBpbnRvIGRpZmZlcmVudCBmaWxlcy4KCiAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgNDQwIEREUjIgY29udHJvbGxlciBzdXBwb3J0ICg0NDBTUC9lKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzliMmQwYmIyZWFlMDk2MDI0NDhmN2E3Y2I1NjUzMGQyZjMxZTZjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDoyNzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgb24gdGhlIFBQQzR4eAogICAgcGxhdGZvcm1zLiBEZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlCiAgICB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCgogICAgSXQgYWxzbyBtZXJnZXMgdGhlIDQwNSBhbmQgNDQwIGkyYyBoZWFkZXIgZmlsZXMgaW50byBvbmUgY29tbW9uCiAgICBmaWxlIDR4eF9pMmMuaC4KCiAgICBBbHNvIHRoZSA0eHggaTJjIHJlc2V0IHByb2NlZHVyZSBpcyByZXdvcmtlZCBzaW5jZSBJIGV4cGVyaWVuY2VkCiAgICBzb21lIHByb2JsZW1zIHdpdGggdGhlIGZpcnN0IGFjY2VzcyBvbiB0aGUgNDQwU1BlIEthdG1haSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI4NjdhNzYyMzhmYjM4ZTk1MmMzNzg3MWIxNmQwZDdmZDYxYzk1ZgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTo0NSAyMDA3ICswMTAwCgogICAgW1BBVENIIDlfOV0gVXNlICJ2b2lkICoiIG5vdCAidW5zaWduZWQgbG9uZyAqIiBmb3IgYmxvY2sgZGV2IHJlYWRfd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgQmxvY2sgZGV2aWNlIHJlYWQvd3JpdGUgaXMgYW5vbnltb3VzIGRhdGE7IHRoZXJlIGlzIG5vIG5lZWQgdG8gdXNlIGEKICAgIHR5cGVkIHBvaW50ZXIuICB2b2lkICogaXMgZmluZS4gIEFsc28gYWRkIGEgaG9vayBmb3IgYmxvY2tfcmVhZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTM3NThmYTIwZTkzNWNjODdlZWIwNTE5ZWQzNjVkZjc1M2E2ZjI4OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozOCAyMDA3ICswMTAwCgogICAgW1BBVENIIDhfOV0gQWRkIGJsb2NrX3dyaXRlIGhvb2sgdG8gYmxvY2tfZGV2X2Rlc2NfdAoKICAgIFByZXBhcmF0aW9uIGZvciBmdXR1cmUgcGF0Y2hlcyB3aGljaCBzdXBwb3J0IGJsb2NrIGRldmljZSB3cml0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY0ODUyZWJlNmNhOTQ2YTUwOTY2N2ViNjhiZTQyMDI2ZjgzN2JlNzYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA3XzldIFJlcGxhY2UgYWNlX3JlYWR3X2FjZV93cml0ZWIgZnVuY3Rpb25zIHdpdGggbWFjcm9zCgogICAgUmVnaXN0ZXIgcmVhZC93cml0ZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHdyYXBwZWQgaW4gYSBmdWxsIGZ1bmN0aW9uLiAgVGhlCiAgICBwYXRjaCByZXBsYWNlcyB0aGVtIHdpdGggbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAzYThjZTlhZjZmY2I1NzQ0YTc4NTFiNDQ0MGMwNzY4OGFjYzQwODQ0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNl85XSBNb3ZlIGNvbW1vbl9jbWRfYWNlLmMgdG8gZHJpdmVyc19zeXN0ZW1hY2UuYwoKICAgIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBub3QgYSBjb21tYW5kOyBpdCBpcyBhIGRldmljZSBkcml2ZXIuICBQdXQgaXQgaW4KICAgIHRoZSBjb3JyZWN0IHBsYWNlLglUaGVyZSBhcmUgemVybyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaCwgaXQKICAgIG9ubHkgbW92ZXMgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk4NDYxOGYzZTc3OTRjNzgzZWM4ZDE1MTFlNzRjNmVlMmQ2OWJmZTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA1XzldIFdoaXRlc3BhY2UgZml4dXAgb24gY29tbW9uX2NtZF9hY2UuYyAodXNpbmcgTGluZGVudCkKCiAgICBUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIG9mIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGUgc3lzYWNlIGRyaXZlci4KICAgIE1heSBhcyB3ZWxsIHRha2UgdGhpcyBvcHBvcnR1bml0eSB0byBmaXh1cCB0aGUgaW5jb25zaXN0ZW50IHdoaXRlc3BhY2Ugc2luY2UKICAgIHRoaXMgZmlsZSBpcyBhYm91dCB0byB1bmRlcmdvIG1ham9yIGNoYW5nZXMgYW55d2F5LgoKICAgIFRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLiAgSXQgb25seSBjbGVhbnMgdXAgdGhlCiAgICB0aGUgd2hpdGVzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODBiYTk4MWQ5NDA0NzFmZTdlNTM5ZTY0ZmEzZDJiZDgwMDAyYmVkYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTowNyAyMDA3ICswMTAwCgogICAgW1BBVENIIDRfNF0gUmVtb3ZlIGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIGlzcHJpbnQoKSBpbiBmdF9idWlsZC5jCgogICAgaXNwcmludCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gY3R5cGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTVjNDI4MGQ3NTFjYTA3OGMyZmY1ODIyOGQyZjJiNDRjY2YwNjAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjAwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggM185XSBNb3ZlIGJ1ZmZlciBwcmludCBjb2RlIGZyb20gbWQgY29tbWFuZCB0byBjb21tb24gZnVuY3Rpb24KCiAgICBQcmludGluZyBhIGJ1ZmZlciBpcyBhIGRhcm4gdXNlZnVsIHRoaW5nLiAgTW92ZSB0aGUgYnVmZmVyIHByaW50IGNvZGUKICAgIGludG8gcHJpbnRfYnVmZmVyKCkgaW4gbGliX2dlbmVyaWMvCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk5YjBmMGZkM2ZiZjI1NzJhZTFhNzcyM2RkOTBjZmZjOGU4NTEzMGEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAyXzRdIFVzZSBjb25maWcuaCwgbm90IHhwYXJhbWV0ZXJzLmgsIGZvciB4aWxpbnggdGFyZ2V0cwoKICAgIENoYW5nZSB0aGUgeGlsaW54IGRldmljZSBkcml2ZXJzIGFuZCBib2FyZCBjb2RlIHRvIGluY2x1ZGUgY29uZmlnLmgKICAgIGluc3RlYWQgb2YgeHBhcmFtZXRlcnMuaCBkaXJlY3RseS4JY29uZmlnLmggYWx3YXlzIGluY2x1ZGVzIHRoZQogICAgY29ycmVjdCB4cGFyYW1ldGVycyBmaWxlLiAgVGhpcyBjaGFuZ2UgcmVkdWNlcyB0aGUgcG9zaWJpbGl0eSBvZgogICAgaW5jbHVkaW5nIHRoZSB3cm9uZyBmaWxlIHdoZW4gYWRkaW5nIGEgbmV3IHhpbGlueCBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNWRkOTdiMWIyMGU3NzdkMDU5YzdiMzg5ZmU5ZDcwY2QzZjgwYzcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAxXzRdIE1lcmdlIGNvbW1vbiBnZXRfZGV2KCkgcm91dGluZXMgZm9yIGJsb2NrIGRldmljZXMKCiAgICBFYWNoIG9mIHRoZSBmaWxlc3lzdGVtIGRyaXZlcnMgZHVwbGljYXRlIHRoZSBnZXRfZGV2IHJvdXRpbmUuICBUaGlzIGNoYW5nZQogICAgbWVyZ2VzIHRoZW0gaW50byBhIHNpbmdsZSBmdW5jdGlvbiBpbiBwYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjVmY2MzYzIwYjY1NTU0ZTk4YTE2NTU0MmMzNmVlMGM2MTBhMmQ4MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDIzOjA5OjUxIDIwMDcgKzAxMDAKCiAgICBNQ0MyMDA6IFNvZnR3YXJlIFVwZGF0ZXI6IGFsbG93IGJvdGggInJhbWRpc2siIGFuZCAiZmlsZXN5c3RlbSIgdHlwZXMKICAgIGFzIHJvb3QgZmlsZSBzeXN0ZW0gaW1hZ2VzLgoKY29tbWl0IDQ4OWM2OTZhZTcyMTEyMTg5NjFkMTU5ZTQzZTcyMmQ3NGMzNmZjYmMKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgRmViIDE0IDE0OjMwOjI4IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDA6IEV4dGVuc2lvbnMgdG8gU29mdHdhcmUgVXBkYXRlIE1lY2hhbmlzbQoKICAgIFVwZGF0ZSAvIGV4dGVuZCBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtIGZvciBNQ0MyMDAgYm9hcmQ6CgogICAgLSBBZGQgc3VwcG9ydCBmb3Igcm9vdGZzIGltYWdlIGFkZGVkLiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgICAgICJyb290ZnNfc3QiIGFuZCAicm9vdGZzX25kIiBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdAogICAgICB2YWx1ZXMgb2YgdGhlIGltYWdlIHN0YXJ0IGFuZCBlbmQuCiAgICAtIFJlbW92ZSBleGNlc3NpdmUga2V5IGNoZWNrIGNvZGUuCiAgICAtIENvZGUgY2xlYW51cC4KCmNvbW1pdCA0YmUyM2ExMmYyM2YxMzcyNjM0ZWRjMzIxNTEzN2IwOTc2OGI3OTQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDA4OjIzOjE1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhIEVCQyBjb25maWd1cmF0aW9uIChOT1IgRkxBU0gpCgogICAgQXMgc3BvdHRlZCBieSBNYXR0aGlhcyBGdWNocywgdGhlIFJFQURZIGlucHV0IHNob3VsZCBub3QgYmUKICAgIGVuYWJsZWQgZm9yIHRoZSBOT1IgRkxBU0ggb24gdGhlIFNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MDVlOTBiZjY3NmQ0ODEyM2FmZTU3MTlhODQ2ZDJiNTJiMjRhYWMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTYgMDc6NTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIGp1cGl0ZXIgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNDk3ZDAxMmU1YmUwMTk0ZTEwODQwNzNkMDA4MWViMWE4NDQ3OTZiMgpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxMiAxMzoxMTo1MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MjogcGF0Y2ggZnJvbSBTaWVtZW5zLgoKY29tbWl0IGIwYjFhOTIwYWViZWFkMGQ0NDE0NmU3MzY3NmFlOWQ4MGZmZmM4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBGZWIgMTAgMDg6NDk6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIG1pc3NpbmcgcDNteC5oIGZpbGUgdG8gcmVwb3NpdG9yeSAodXBzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1M2Q0YTQ5ODNmYjliM2FlNWY3YjJmMTBjNTk5YWNhMmIxYjQwMzRhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiA5IDEwOjQ1OjQyIDIwMDcgKzAxMDAKCiAgICBbTW90aW9uLVBST10gUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIE1vdGlvbi1QUk8gYm9hcmQuCgpjb21taXQgNWE3NTNmOThjNmEwMWJkMWM2MWE5YTNmOTVlODMyOWEzNWY2Mjk5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiA3IDE2OjUxOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBzb21lIEFNQ0MgNHh4IGJvYXJkIGNvbmZpZyBmaWxlcyAoc2V0IGluaXRyZF9oaWdoKQoKICAgIFNvbWUgYm9hcmRzIHRoYXQgY2FuIGhhdmUgbW9yZSB0aGFuIDc2OE1CeXRlcyBvZiBTRFJBTSBuZWVkIHRvCiAgICBzZXQgImluaXRyZF9oaWdoIiwgc28gdGhhdCB0aGUgaW5pdHJkIGNhbiBiZSBhY2Nlc3NlZCBieSB0aGUKICAgIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzM3MmNhNjgyMjc5MzBkMDNjZmZhNTQ4MzEwNTI0Y2FkNWI5NjczMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQ0OjIyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENvcnJlY3RseSBkaXNwbGF5IFBDSSBhcmJpdGVyIGVuLS9kaXNhYmxlZCBvbiBzb21lIDR4eCBib2FyZHMKCiAgICBQcmV2aW91c2x5IHRoZSBzdHJhcHBpbmcgRENSL1NEUiB3YXMgcmVhZCB0byBkZXRlcm1pbmUgaWYgdGhlIGludGVybmFsIFBDSQogICAgYXJiaXRlciBpcyBlbmFibGVkIG9yIG5vdC4gVGhpcyBzdHJhcHBpbmcgYml0IGNhbiBiZSBvdmVycmlkZGVuLCBzbyBub3cKICAgIHRoZSBjdXJyZW50IHN0YXR1cyBpcyByZWFkIGZyb20gdGhlIGNvcnJlY3QgRENSL1NEUiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmFhNTRmNjUxYTQyZDE5ODY3MzMxOGYwN2EyMGM4OWE0M2U0ZDE5NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQyOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBjb25maWd1cmF0aW9uIG91dHB1dCBvZiBTeWNhbW9yZSwgWWVsbG93c3RvbmUgJiBSYWluaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIzNzQ0ZDZiNWJmMTc1OTJlYjZhMGVmNGYzMThmNjA4OWY1NTk5M2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMSAxMzoyMjo0MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBSZW1vdmUgUENJLVBOUCBjb25maWd1cmF0aW9uIGZyb20gU2VxdW9pYS9SYWluaWVyIGNvbmZpZyBmaWxlCgogICAgV2hlbiBQQ0kgUE5QIGlzIGVuYWJsZWQgdGhlIHBjaSBwbnAgY29uZmlndXJhdGlvbiByb3V0aW5lIGlzIGNhbGxlZAogICAgd2hpY2ggc2V0cyB0aGUgUENJX0NBQ0hFX1NJWkVfTElORSB0byA4LiBUaGlzIHNlZW1zIHRvIGdlbmVyYXRlIHNvbWUKICAgIHByb2JsZW1zIHdpdGggc29tZSBQQ0kgY2FyZHMuIEZvciBub3cgZGlzYWJsZSB0aGUgUENJIFBOUCBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOTAyZmFkYWRlM2JlNzY1OTQ2N2U4ZDA3NDA0OGM2YjcwNjhmNWMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjU2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSA0NDBFUHgvNDQwR1J4IGNwdSBkZXRlY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVlYTI4N2IwMmE2OTQ1YzM5Nzc0MTBlMzY0YTg3OWRkMWE1NTVjOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozODowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgZXNkIGNwY2k1MjAwIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDhiN2QxZjBhYjdkN2M0ZmUzMTYwYmJmNzRhN2U5NjkwZDlmM2EzYWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6Mzc6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGVzZCBtZWNwNTIwMCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MWE0ZTVmZGE4YjYwMDQ0YWI5ZjQ2MDY5ZmExY2ZhMjZiZGQwN2ZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDEyOjM4OjUwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB1bm5lY2Nlc3NhcnkgeWVsbG93c3RvbmUgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTgwMjU5NGI2ZmExYjE2NjMwODgyMGMyNzZiOTZkYzBkN2NjNzMxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxNzowNjoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU2VxdW9pYSAoNDQwRVB4KSBjb25maWcgZmlsZQoKICAgIFRoZSBjb25maWcgZmlsZSBub3cgaGFuZGxlcyB0aGUgMm5kIHRhcmdldCwgdGhlIFJhaW5pZXIgKDQ0MEdSeCkKICAgIGV2YWx1YXRpb24gYm9hcmQgYmV0dGVyLiBBZGRpdGlvbmFsbHkgdGhlIFBQQyBpbnB1dCBjbG9jayB3YXMKICAgIGFkanVzdGVkIHRvIG1hdGNoIHRoZSBjb3JyZWN0IHZhbHVlIG9mIDMzLjAgTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MDAyMDBjNjdlNzNiODM3NTE0MThhYmU3ODE1ODQwZGNhOGZkNmNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA0OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIE1lcmdlIFlvc2VtaXRlICYgWWVsbG93c3RvbmUgYm9hcmQgcG9ydHMKCiAgICBOb3cgdGhlIEFNQ0MgZXZhbCBib2FyZHMgWW9zZW1pdGUgKDQ0MEVQKSBhbmQgWWVsbG93c3RvbmUgKDQ0MEdSKQogICAgc2hhcmUgb25lIGNvbmZpZyBmaWxlIGFuZCBhbGwgYm9hcmQgc3BlY2lmaWMgZmlsZXMuIFRoaXMgd2F5IHdlCiAgICBkb24ndCBoYXZlIHRvIG1haW50YWluIHR3byBkaWZmZXJlbnQgc2V0cyBvZiBmaWxlcyBmb3IgbmVhcmx5CiAgICBpZGVudGljYWwgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmJmNWVhZTMyMmY1ZjFmNjQyN2VjYzNhYzEzYTBjYjdkYmE4YWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE1OjAxOjQ5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNDUFUgZG9lc24ndCB1c2UgcmVkdW5kYW50IGVudmlyb25tZW50IGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MzA0NDMwZWQ2NDJlYThmYTE1YzllNWFmOTY1YWMyZTAzM2VlYzQ1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDEyOjUxOjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGFscHI6IFVwZGF0ZSBhbHByIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY4ZGI4NGYxMzJiMWUzMzVmMjBmOTYxMzhhMWYwOWVkOTdiMDg2NjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAwMDo1MDo0MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MiBTT0RJTU0gcG9ydCBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA2YmQyNDQ3ZWU0N2VlMjNjMThkMmIzYzdjY2Q1YTIwZjc2MjZmNWIzCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDI0IDEyOjE2OjU2IDIwMDcgKzAxMDAKCiAgICBBZGQgcG9ydCBmb3IgdGhlIGxwYzIyOTJzb2RpbW0gZXZhbHVhdGlvbiBib2FyZCBmcm9tIEVtYmVkZGVkQXJ0aXN0cwoKY29tbWl0IDJkYWYwNDZiYTYyN2Y4NWY0NDE5NTgxNTc3ODE0MDAzOTYzNjI0NGUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE3OjIyOjA2IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24gZGVmaW5pdGlvbi4KCmNvbW1pdCBmN2RiMzMxMDFmYmM5YzhmMGExMDczOGNlODcwMzQ4NzVhMTdhZWI5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoyMToxNCAyMDA3ICswMTAwCgogICAgW2lETVJdIEZsYXNoIGRyaXZlciBvbiBpbml0aWFsaXNhdGlvbiB3cml0ZS1wcm90ZWN0cyBzb21lIHNlY3RvcnMsCiAgICBjdXJyZW50bHkgc2VjdG9ycyAwLTMuIFNlY3RvciAzIGRvZXMgbm90IG5lZWQgdG8gYmUgcHJvdGVjdGVkLCB0aG91Z2gKICAgIChVLWJvb3Qgb2NjdXBpZXMgc2VjdG9ycyAwLTEgYW5kIHRoZSBlbnZpcm9ubWVudCBzZWN0b3IgMikuIFRoaXMgY29tbWl0CiAgICBmaXhlcyB0aGlzLCBpLmUuLCBvbmx5IHNlY3RvcnMgMC0yIGFyZSBwcm90ZWN0ZWQuCgpjb21taXQgMGVkNDdiYjExOWNkMmM0YzE2ZWRiMjU0ODc4OTE0OGY5ZTZkYzlkZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTQ6MTE6MjIgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBVc2luZyBNSUktcmVsYXRlZCBjb21tYW5kcyBvbiBpRFJNIGJvYXJkIGRvZXNuJ3Qgd29yayBub3cgKGUuZy4sCiAgICAibWlpIGRldmljZSIgcmVzdWx0cyBpbiAiVW5leHBlY3RlZCBleGNlcHRpb24iKS4gRml4aW5nIHRoaXMgcHJvcGVybHkKICAgIHJlcXVpcmVzIHNvbWUgY2xlYW4tdXAgaW4gdGhlIEZFQyBkcml2ZXJzIGluZnJhc3RydWN0dXJlIGZvciBDb2xkRmlyZSwgc28KICAgIHRoaXMgY29tbWl0IGRpc2FibGVzIE1JSSBjb21tYWRzIGZvciBub3cuCgpjb21taXQgMzYzZDFkOGY5Yzk5YjYzZGFlZjgxZjU5ODVjYWIzZmMwMGVkZGU1YwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTM6MjU6MjIgMjAwNyArMDEwMAoKICAgIFtDb2xkRmlyZSBNQ0Y1MjcxIGZhbWlseV0gQWRkIENQVSBkZXRlY3Rpb24gYmFzZWQgb24gdGhlIHZhbHVlIG9mIENoaXAKICAgIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyIChDSVIpLgoKY29tbWl0IGZkZWYzODg3NTg1MDY3NjVkNGQ2YTcxNTVjOGYxNTg0YzYzZmY1ODEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTM6MTk6MjEgMjAwNyArMDgwMAoKICAgIHVzZSAgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSBkZWZpbmUgaW5zdGVhZCBvZiBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9TV0FQCiAgICBUaGUgcGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPiBvbiBKYW4sIDE5LCAyMDA3CiAgICBmaXhlcyBjZmlfZHJpdmVyIGJ1ZyBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuIFRoZSBkZWZhdWx0IGNmaV9kcml2ZXIgY2FuIHN1cHBvcnQKICAgIG1wYzc0NDhocGMyIGJvYXJkLgoKY29tbWl0IGE0MDEyMzk2NjQ1NTMzYWVmMjE4MzU0ZWViYTc1NGRmZjBkZWFjZTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAyMzowODozOSAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGY1MzliN2JhN2Q3ZWY2ZGQxODdjODIwOTYwOTAwMWNiMWNkOTVlMzkKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTkgMTk6NTc6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU0MzIGJvYXJkOiBhZGRlZCBDRkdfQ01EX0FVVE9TQ1JJUFQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZDBiNmUxNDA4N2RkZDg3ODlmMjI0YTQ4ZTFkMzNmMmE1ZGY0ZDE2NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxODowNToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDRkk6IGRlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGZvciB0aGUgQ0ZJLUZsYXNoIGRyaXZlcgoJCSBpZiB5b3UgbXVzdCBzd2FwIHRoZSBieXRlcyBiZXR3ZWVuIHJlYWRpbmcvd3JpdGluZy4KCQkgKE5lZWRlZCBmb3IgdGhlIFNDMyBib2FyZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5ZDhkNWE1YmZiNjQ3NjhmMjlhMGNiNDdmYzM3Y2Q2ZjRjNDBlMjc2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDE2OjA1OjQ3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMDU3ZDc1OGUzZTg3NGNiZTdmMjQ3NDVkMGNjZThjMWNiNmMyMDdlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjU0OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBQM014IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQxNjdhMzZjMjllZTk0NmI3Mjc0NjVkYjVjMDE0NzQ2YTA4ZTk3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMTo0ODoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBUYWlzaGFuIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiNDgyMDcyNWU5ZmM0MDljNWNiYzhlODMwNTRhNmVkNTIyZDIxMTEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6Mjg6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4OiBDb21waWxlcndhcm5pbmdzIGZvciBTQzMgYm9hcmQuCgkJIFRoZSBFQkMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciBpcyBub3cgYnkgQ0ZHX0VCQ19DRkcgZGVmaW5hYmxlCgkJIEFkZGVkIEpGRlMyIHN1cHBvcnQgZm9yIHRoZSBTQzMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNWZiNjkyY2FlNTdkMTcxMGM4ZjUyYTQyN2NmN2YzOWEzNzM4M2ZjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMDoyNTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgQU1DQyBUYWlzaGFuIFBQQzQ0MEdYIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmQzZTAxMDcyMzVhYTBlNmE2ZGNiNzdmOTg4NDQ5NzI4MGJmODVhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDE4OjMwOjUwIDIwMDcgKzAxMDAKCiAgICBSYW5hbWUgc29saWRjYXJkMyBpbnRvIHNjMzsgYWRkIHJlZHVuZGFudCBlbnYgZm9yIHNjMwoKY29tbWl0IDFiYmJiZGQyMGZjZWM5OTMzNjk3MDAwZGNmNTVmZjc5NzI2MjI1OTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNiAxMjo0NjozNSAyMDA3ICswMTAwCgogICAgVXBkYXRlIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIFNvbGlkY2FyZDMKCmNvbW1pdCA1YTVjNTY5ODZhOWNjZjcxNjQyYzhiNjM3NGViMTg0ODdiMTVmZWNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSmFuIDE1IDA5OjQ2OjI5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCA0NDBTUGUgcmV2IEIgZGV0ZWN0aW9uIGZyb20gcHJldmlvdXMgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQ0M2QzMTQxMGM1NzFlZThmOTcwZGE4MTlhNDRkNjk4ZmRkNmIxZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxNCAxMzozNTozMSAyMDA3ICswMTAwCgoJW0ZJWF0gY29ycmVjdCBJMkMgV3JpdGVzIGZvciB0aGUgTE04MSBTZW5zb3IuCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGJiYTU0NTI4MzVmMTlhNjEyMDRlZGNkYTNhNTgxMTJmZDhlMjIwOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDExOjE3OjEwIDIwMDcgKzAxMDAKCiAgICBVbmRvIGNvbW1pdCAzMDMzZWJiMjogcmVzZXQgY29tbWFuZCBkb2VzIG5vdCB0YWtlIGFueSBhcmd1bWVudHMKCiAgICBIYWl5aW5nIFdhbmcncyBtb2RpZmljYXRpb24gdG8gdGhlIHJlc2V0IGNvbW1hbmQgd2FzIGJyb2tlbiwgdW5kbyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk1OTgxNzc4Y2ZmMDAzOGZkOTk0MTA0NGQ2YTNlZGE4MTBlMzMyNTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDg6MDE6MDMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MFNQKGUpIGNwdSByZXZpc2lvbnMKCiAgICBBbHNvIGRpc3BsYXkgZW5hYmxlZC9kaXNhYmxlZCBSQUlEIDYgc3VwcG9ydCBmb3IgNDQwU1AvNDQwU1BlIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3N2RkYzViOWFmYjMyNTI2MmZkODg3NTJiYTQzMGExZGRlZDFmMGM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjU2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZZWxsb3dzdG9uZSAoNDQwR1IpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmFkZmYzNjJjMmMwMTQxZmY4YTgxMGQ0MmE3ZTQ3OGY3NzkxMzBmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZb3NlbWl0ZSAoNDQwRVApIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMGI5ZWE4YzhhMjk0ZGU2YTUzNTBhZTYzODg3OWQyNGI1YjcwOWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU3OjUxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhNDNiYTE4ZTkxMDIwNmVmODA2M2U0YjIyZDI4MjYzMGJmZjNmZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTEgMTU6NDQ6NDQgMjAwNyArMDEwMAoKCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBTT0xJRENBUkQgSUlJIGJvYXJkIGZyb20gRXVyb2Rlc2lnbgoKCVNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZhYmFlZTQyNjIxYzA3ZTgxYTJjZDE4OWFkNDM2OGI1ZThjNTAyODAKQXV0aG9yOiBSZWluaGFyZCBUaGllcyA8UmVpbmhhcmQuVGhpZXNAd2ViLmRlPgpEYXRlOglXZWQgSmFuIDEwIDE0OjQxOjE0IDIwMDcgKzAxMDAKCiAgICBBZGp1c3RlZCBkZWZhdWx0IGVudmlyb25tZW50IGZvciBjYW01MjAwIGJvYXJkLgoKY29tbWl0IGJhYjVhOTBkNGNjYzFhNDZhODEyN2I4NjdmYTU5MDI4Y2M2MjNhZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAxNTozNTo1MiAyMDA3ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDc4N2ZhMTU4NjBhNTc4MzNlNTBiZDMwNTU1MDc5YTljZDRlNTE5YjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAwMToyODozOSAyMDA3ICswMTAwCgogICAgRml4IGF1dG9fdXBkYXRlIGZvciBNQ0MyMDAgYm9hcmQuCgogICAgVGhlIGludm9jYXRpb24gb2YgZG9fYXV0b191cGRhdGUoKSBpcyBtb3ZlZCB0byB0aGUgZW5kIG9mIHRoZQogICAgbWlzY19pbml0X3IoKSBmdW5jdGlvbiwgYWZ0ZXIgdGhlIGZsYXNoIG1hcHBpbmdzIGhhdmUgYmVlbgogICAgaW5pdGlhbGl6ZWQuIFBsZWFzZSBmaW5kIGF0dGFjaGVkIGEgcGF0Y2ggdGhhdCBpbXBsZW1lbnRzIHRoYXQKICAgIGNoYW5nZS4KCiAgICBBbHNvIGNvcnJlY3QgdGhlIGRlY29kaW5nIG9mIHRoZSBrZXlwYWQgc3RhdHVzLiBXaXRoIHRoaXMgdXBkYXRlLCB0aGUKICAgIGtleSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgdXBkYXRlIGlzIENvbHVtbiAyLCBSb3cgMi4KCmNvbW1pdCBkOTM4NGRlMmY1NzEwNDZlNzEwODFiYWUyMmI0OWUzZDVjYTJlM2Q1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiAxMCAwMDoyNjoxNSAyMDA3ICswMTAwCgogICAgQ0FNNTIwMCBmbGFzaCBkcml2ZXIgbW9kaWZpY2F0aW9uczoKICAgIC0gdXNlIENGSSBkcml2ZXIgKHJlcGxhY2VzIGN1c3RvbSBmbGFzaCBkcml2ZXIpIGZvciBtYWluICdjYW01MjAwJyB0YXJnZXQKICAgIC0gYWRkIHNlY29uZCBidWlsZCB0YXJnZXQgJ2NhbTUyMDBfbmlvc2ZsYXNoJyB3aGljaCBzdGlsbCB1c2VzIGN1c3RvbSBkcml2ZXIKCmNvbW1pdCA2N2ZlYTAyMmZhOTU3ZjU5NjUzYjUyMzhjNzQ5NmY4MGE2YjcwNDMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE2OjAyOjQ4IDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBjbGVhbnVwIG1lbW9yeSBjb250b2xsZXIgc2V0dXAKCmNvbW1pdCA4ZmMyMTAyZmFhMjM1OTNjODAzODE0MzdjMDlmNzc0NWExNGRlYjQwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggdGhlIGNwdSBzcGVlZCBzZXR1cCB0byB3b3JrIHdpdGggYWxsIGJvYXJkcy4KCmNvbW1pdCA5Mjk1YWNiNzc0ODFjZjA5OWVmOWI0MGUxZmEyZDE0NWIzYzc0OTBjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBhZGQgc3VwcG9ydCBmb3IgdGhlIEZNMThMMDggUmFtdHJvbiBGUkFNCgpjb21taXQgMzhjY2QyZmRmMzM2NGE1M2ZlODBlOWIzNjUzMDNlY2RhZmM5ZTIyMwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogdXBkYXRlIHRoZSBIUEkgcmVnaXN0ZXIgYWRkcmVzc2VzIHRvIHdvcmsgd2l0aCB0aGUgc2Vjb25kCiAgICBnZW5lcmF0aW9uIG9mIGhhcmR3YXJlCgpjb21taXQgNTkyMWU1MzEzZmMzZWFkZDQyNzcwYzJiOTliYWRkN2ZhZTVlY2YxZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIE1pc2NlbGxhbmlvdXMgc3BjMTkyMCByZWxhdGVkIGNsZWFudXBzCgpjb21taXQgZTRjMmQzN2FkYzhiYjFiZjY5ZGNmNjAwY2JjNmM3NWY5MTZhNjEyMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgU1BDMTkyMCBHTy9OT0dPIGxlZCBzaG91bGQgYmUgc2V0IHRvIGNvbG9yIHJlZCBpbiBVLUJvb3QKCmNvbW1pdCAwYmU2MjcyOGFhYzQ1OWJhMjY4ZDZkNzUyZWQ0OWVjMGUyYmM3MzQ4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBEUzMyMzEgUlRDCgpjb21taXQgODEzOTU2N2I2MGQ2Nzg1ODRiMDVmMDcxOGE2ODFmMjA0N2M1ZTE0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTEgMjAwNyArMDEwMAoKICAgIFNNQzEgdXNlcyBleHRlcm5hbCBDTEs0IGluc3RlYWQgb2YgQlJHIG9uIHNwYzE5MjAKCmNvbW1pdCBkOGQ5ZGUxYTAyZmJkODgwYjYxM2Q2MDcxNDNkMWY1NzM0MmFmZmM3CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgVXBkYXRlIHRoZSBTUEMxOTIwIENNQiBQTEQgZHJpdmVyCgpjb21taXQgM2YzNGY4NjkxNjI3NTBlNWU5OTlmZDE0MGY4ODRmNWRlOTUyYmNmZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCAvIGVuYWJsZSBJMkMgc3VwcG9ydCBvbiB0aGUgc3BjMTkyMCBib2FyZAoKY29tbWl0IGQyODcwN2RiY2UxZTlhYzIwMTdhZDA1MWRhNDEzM2JmMjJiNDIwNGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHRtczMyMDY3MXggaG9zdCBwb3J0IGludGVyZmFjZSAoSFBJKQoKY29tbWl0IGY0ZWI1NDUyOWJiMzY2NGMzYTU2MmU0ODhiNDYwZmUwNzVmNzlkNjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiA3IDAwOjEzOjExIDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciByZWxlYXNlIDEuMi4wCgpjb21taXQgZjA3YWU3YTlkYWVmMjdhM2QwMjEzYTRmM2ZlMzlkNTM0MjE3M2MwMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU4OjA5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIDQ0eDogRml4IHByb2JsZW0gd2l0aCBERFIgY29udHJvbGxlciBzZXR1cCAocmVmcmVzaCByYXRlKQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggYW4gaW5jb3JyZWN0IHNldHVwIGZvciB0aGUgcmVmcmVzaAogICAgdGltZXIgb2YgdGhlIDQ0eCBERFIgY29udHJvbGxlciBpbiB0aGUgZmlsZSBjcHUvcHBjNHh4L3NkcmFtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjE2YzFkYTk1NzdmMDZjNWZjMDg2NTFhNDA2NTUzNzQwN2RlNDYzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU2OjEzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTFBSIGJvYXJkIGZpbGVzCgogICAgVGhpcyB1cGRhdGUgYnJpbmdzIHRoZSBBTFBSIGJvYXJkIHN1cHBvcnQgdG8gdGhlIG5ld2VzdCB2ZXJzaW9uLgogICAgSXQgYWxzbyBmaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgTkFORCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNkMWQ5MzdmOTAyNTBhMzI5ODhjMzdiMmI0YWY4MzY0ZDI1ZGU4ZWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMTo0NjowNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcHJvYmxlbSB3aXRoIG9vYnNpemUgY2FsY3VsYXRpb24KCiAgICBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIEJyaWFuIEJyZWxzZm9yZCA8QnJpYW5fQnJlbHNmb3JkQGRlbGwuY29tPjoKCiAgICBUaGUgSHluaXggcGFydCByZXR1cm5zIGEgMHgxZCBpbiB0aGUgNHRoIElEIGJ5dGUuIFRoZSBTYW1zdW5nIHBhcnQKICAgIHJldHVybnMgYSAweDE1LiBJbiB0aGUgY29kZSBmcmFnbWVudCBiZWxvdyBiaXRzIFsxOjBdIGRldGVybWluZSB0aGUKICAgIHBhZ2Ugc2l6ZSwgaXQgaXMgQU5EZWQgdmlhICIoZXh0aWQgJiAweDMpIiB0aGVuIHNoaWZ0ZWQgb3V0LiBUaGUKICAgIG5leHQgZmllbGQgaXMgYWxzbyBBTkRlZCB3aXRoIDB4My4gSG93ZXZlciB0aGlzIGlzIGEgb25lIGJpdCBmaWVsZAogICAgYXMgZGVmaW5lZCBpbiB0aGUgSHluaXggYW5kIFNhbXN1bmcgcGFydHMgaW4gdGhlIDR0aCBJRCBieXRlIHRoYXQKICAgIGRldGVybWlucyB0aGUgb29ic2l6ZSwgbm90IGEgdHdvIGJpdCBmaWVsZC4gSXQgd29ya3Mgb24gU2Ftc3VuZyBhcwogICAgYml0c1szOjJdIGFyZSAwMS4gSG93ZXZlciBmb3IgdGhlIEh5bml4IHRoZXJlIGlzIGEgMTEgaW4gdGhlc2UgdHdvCiAgICBiaXRzLCBzbyB0aGUgb29iIHNpemUgZ2V0cyBtZXNzZWQgdXAuCgogICAgSSBjaGVja2VkIHRoZSBjb3JyZWN0IGxpbnV4IGNvZGUgYW5kIHRoZSBzdWdnZXN0ZWQgZml4IGZyb20gQnJpYW4gaXMKICAgIGFsc28gYXZhaWxhYmxlIGluIHRoZSBsaW51eCBuYW5kIG10ZCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3OGJjNDQzYWU1YTRhOGJhODc1OTA1ODdkNWUzNWJmNWE3ODdiMmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMDo0MDozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhciBQTEI0QTBfQUNSW1dSUF0gb24gU2VxdW9pYSAoNDQwRVB4KQoKICAgIFRoaXMgZml4IHdpbGwgbWFrZSB0aGUgTUFMIGJ1cnN0IGRpc2FibGluZyBwYXRjaCBmb3IgdGhlIExpbnV4CiAgICBFTUFDIGRyaXZlciBvYnNvbGV0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIzODg5ODM4MjgyYjYyMzdiNDAxNjY0ZjIyZGQyMmRmYmEyYzA2NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBERFIyIG9wdGltaXphdGlvbiBjb2RlIGZvciBTZXF1b2lhICg0NDBFUHgpIGJvYXJkCgogICAgVGhpcyBjb2RlIHdpbGwgb3B0aW1pemUgdGhlIEREUjIgY29udHJvbGxlciBzZXR1cCBvbiBhIGJvYXJkIHNwZWNpZmljCiAgICBiYXNpcy4KCiAgICBOb3RlOiBUaGlzIGNvZGUgZG9lc24ndCB3b3JrIHJpZ2h0IG5vdyBvbiB0aGUgTkFORCBib290aW5nIGltYWdlIGZvciB0aGUKICAgIFNlcXVvaWEgYm9hcmQsIHNpbmNlIGl0IGRvZXNuJ3QgZml0IGludG8gdGhlIDRrQnl0ZXMgZm9yIHRoZSBTUEwgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjZTRhY2JiNjgzOTg2MzRiOGQwMTFlZDdiYjBkMTIyNjljODQyMzAKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRGVjIDI4IDE5OjA4OjIxIDIwMDYgKzAxMDAKCiAgICBGZXcgVjM4QiBjaGFuZ2VzOgogICAgICAtIGZpeCBhIHR5cG8gaW4gVjM4QiBjb25maWcgZmlsZQogICAgICAtIG1vdmUgd2F0Y2hkb2cgaW5pdGlhbGlzYXRpb24gZWFybGllciBpbiB0aGUgYm9vdCBwcm9jZXNzCiAgICAgIC0gYWRkICJ3ZHQ9b2ZmIiB0byBkZWZhdWx0IGtlcm5lbCBjb21tYW5kIGxpbmUgKGRpc2FibGVzIGtlcm5lbCB3YXRjaGRvZykKCmNvbW1pdCA5MmViNzI5YmFkODc2NzI1YWVlYTkwOGQyYWRkYmEwODAwNjIwODQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMjcgMDE6MjY6MTMgMjAwNiArMDEwMAoKICAgIEZpeCBidWcgaW4gYWRhcHRpb24gb2YgU3RlZmFubyBCYWJpYydzIENGSSBkcml2ZXIgcGF0Y2guCgpjb21taXQgOWMwZjQyZWNmZTI1ZjdmZmNlOGVjN2E4MTVmMDM4NjRkNzIzZmZlMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gRGVjIDI0IDAxOjQyOjU3IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZDc4NGZkYjA1OTAwYWRhMzY4NmQ1Nzc4NzgzZTFmYjMyOGU5ZmI2NgpBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgRGVjIDEyIDAwOjIyOjQyIDIwMDYgKzAxMDAKCiAgICBGaXggY2ZpIGZhaWx1cmUgd2l0aCBTcGFuc2lvbiBGbGFzaCAoU3BhbnNpb24gRmxhc2ggRGV2aWNlcyBoYXZlIGEgZGlmZmVyZW50IG9mZnNldCB0byBnbyBpbnRvIENGSSBtb2RlKQoKY29tbWl0IDFiM2MzNjBjMjM1ZGM2ODRlYzA2YzJkNWYxODNmMGEyODJjZTQ1ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTQ6Mjk6NDAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRml4IHNlcXVvaWEgZmxhc2ggYXV0b2RldGVjdGlvbiAoZmluYWxseSBjb3JyZWN0KQoKICAgIE5vdyAzMk1CeXRlIGFuZCA2NE1CeXRlIEZMQVNIIGlzIGtub3cgdG8gd29yayBhbmQgb3RoZXIKICAgIGNvbmZpZ3VyYXRpb25zIHNob3VsZCB3b3JrIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODJlNTIzNmE4YjcxOTU0MzY0M2ZkMjZkNTgyNzkzOGFiMmI5NDgxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgRGVjIDIyIDEwOjMwOjI2IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgZmEyMzA0NDU2NDA5MWYwNWQ5Njk1YmViN2I1YjlhOTMxZTdmNDFhNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNzoxNzowMiAyMDA2ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFRRTTgyNzIgYm9hcmQgZnJvbSBUUQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZkZWRmM2Q0OWRkMTRjM2JmNTQxYzhlY2VlN2ZmYWFjNWYwZTFkNmMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjEgMTY6MTQ6NDggMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIHRoZSBVQzEwMSBib2FyZCBmcm9tIE1BTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjODRiYWQwZWY2MGU3MDU1YWIwYmQ0OWI5MzA2OTUwOWNlY2MzODJhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyOTo0MyAyMDA2ICswMTAwCgogICAgRml4IHRvIG1ha2UgdGhlIGJhdWRyYXRlIGNoYW5nZXMgaW1tZWRpYXRlIGZvciB0aGUgTUNGNTJ4MiBmYW1pbHkuCgpjb21taXQgZGFhNmU0MThiY2MwYzcxNzc1MmU4ZGU5MzljMjEzYzc5MDI4NjA5NgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBEZWMgMjAgMDA6Mjc6MzIgMjAwNiArMDEwMAoKICAgIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHRoZSBpRE1SIGJvYXJkIChDb2xkRmlyZSkuCgpjb21taXQgY2RiOTdhNjY3ODgyNmY4NWU3YzY5ZWFlNmExYzExM2QwMzRjOWIxMApBdXRob3I6IEFuZHJlaSBTYWZyb25vdiA8c2Fmcm9ub3ZAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgOCAxNjoyMzowOCAyMDA2ICswMTAwCgogICAgYXV0b21hdGljIHVwZGF0ZSBtZWNoYW5pc20KCmNvbW1pdCA5ZDI3YjNhMDY4NWZmOTlmYzQ3Nzk4M2YzMTVjMDRkNDlmNjU3YThhCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTY6NTkgMjAwNiArMDgwMAoKICAgIFNsaWdodCBjb2RlIGNsZWFuIHVwLgogICAgQWRkIGNvbW1lbnRzLCBkZWxldGUgZHVwbGljYXRlIGRlZmluZSBhbmQgcmVtb3ZlIHNwYWNlcy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZGJjZDY5ZTNlMjc3NmVhMzM0NTkwZDU3NjhlMzY5MmM1ZmFlNWMxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTQ6MjEgMjAwNiArMDgwMAoKICAgIEludHJvZHVjZSBQTExfQ0ZHWzA6NF0gdGFibGUgZm9yIHByb2Nlc3NvciA3NDQ4Lzc0NDdBLzc0NTUvNzQ1Ny4gVGhlIG9yaWdpbmFsCiAgICBtdWx0aXBsaWVyIHRhYmxlIGNhbiBub3QgcmVmZWN0IHRoZSByZWFsIFBMTCBjbG9jayBiZWhhdmlvciBvZiB0aGVzZQogICAgcHJvY2Vzc29ycy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBoYXJkd2FyZSBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxlZAogICAgaW5mb3JtYXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcgcHJvY2Vzc29ycy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZWZlMjBjOTU3OTAxMWQ5OTg3ZjYyZWQ3ZDM1ZWU4Y2RjMWNmMGUwCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6NDY6MjMgMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgc3RhdGljIE1BQyBhZGRyZXNzLCBpcCBhZGRyZXNzLCBzZXJ2ZXIgaXAsIG5ldG1hc2sgYW5kCiAgICBnYXRld2F5IGlwIGZvciBuZXR3b3JrIHNldHRpbmcuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYxMmM2MWNmMzFlZDczZDcyZGRmY2ZjNzEyYTg1NGEzYTE3N2FhZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE0OjMzOjA4IDIwMDYgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZSBtZW1vcnkgdGVzdCBjb2RlIGZvciBtcGM3NDRpaHBjMiBib2FyZC4KICAgIElmIGEgbWVtb3J5IHRlc3QgaXMgbmVlZGVkLCBwbGVhc2UgdXNlIHRoZSBmdW5jdGlvbnMgaW4KICAgIHBvc3QvbWVtb3J5LmMgb3IgbWVtdGVzdCBjb21tYW5kLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5YzFlZWVkN2RkMTkzZmE2NWZiMTk0NjU0MTMyMDQwZDQ5ZDRkM2EKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxOTowMToyNSAyMDA2ICswODAwCgogICAgRml4IHRoZSBleGNlcHRpb24gb2NjdXJpbmcgaW4gUkFNIHRhYmxlIHNlYXJjaCBpc3N1ZS4KICAgIFRoZSBvcmlnaW5hbCBzZWFyY2hfb25lX3RhYmxlKCkgZnVuY3Rpb24gY29kZSBjYW4gb25seSBwcm9jZXNzZXMgdGhlIHNlYXJjaAogICAgZm9yIHRoZSBleGNlcHRpb24gb2NjdXJyaW5nIGluIEZMQVNIL1JPTSwgYmVjYXVzZSB0aGUgZXhjZXB0aW9uIGFuZCBmaXh1cAogICAgdGFibGUgdXN1YWxseSBsb2NhdGUgaW4gRkxBU0guIElmIHRoZSBleGNlcHRpb24gYWRkcmVzcyBpcyBhbHNvIGluCiAgICBGTEFTSCwgaXQgd2lsbCBiZSBPSy4KICAgIElmIHRoZSBleGNlcHRpb24gb2NjdXJzIGluIFJBTSwgYWZ0ZXIgdGhlIHUtYm9vdCByZWxvY2F0aW9uLCBhCiAgICByZWxvY2F0aW9uIG9mZnNldCBzaG91bGQgYmUgYWRkZWQuCgogICAgY2xlYW4gdXAgdGhlIGNvZGUgaW4gY3B1Lzc0eHhfN3h4L2NwdS5jCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVlMzExMjE0ZTBkMjE2ZjkwNGZlZWEyNjk1OTlkMDkzNGJmNzFmMjMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxMTo0NzozNiAyMDA2ICswODAwCgogICAgQ2xlYW4gdXAgdGhlIGNvZGUgYWNjb3JkaW5nIHRvIGNvZGVzdHlsZToKICAgICgxKSByZW1vdmUgc29tZSBDKysgY29tbWVudHMuCiAgICAoMikgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgogICAgKDMpIHJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lLgogICAgKDQpIEluZGVudGF0aW9uIGJ5IHRhYmxlLgogICAgKDUpIHJlbW92ZSB7fSBpbiBvbmUgbGluZSBjb25kaXRpb24uCiAgICAoNikgYWRkIHNwYWNlIGJlZm9yZSAnKCcgaW4gZnVuY3Rpb24gY2FsbC4KICAgIFJlbW92ZSBzb21lIHdlaXJkIHByaW50ZiAoKSBvdXRwdXQuCiAgICBBZGQgbmVjZXNzYXJ5IGNvbW1lbnRzLgogICAgTW9kaWZpZWQgTWFrZWZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeS4KCmNvbW1pdCBkZDUyMGJmMzE0YzdhZGQ0MTgzYzUxOTE2OTIxODBmNTc2Zjk2YjYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMTg6MDI6MjAgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA4ZDlhODYxMGI4MjU2MzMxMTMyMjI3ZTllNjU4NWM2YmQ1NzQyNzg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMDE6NTQ6MDcgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCA3MjZlOTBhYWNmMGIxZWNiMGU3MDU1YmU1NzQ2MjJmYmUzZTQ1MGJhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgTm92IDI5IDE2OjIzOjQyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFtNUEM1Mnh4XSBVc2UgSVBCIGJ1cyBmcmVxdWVuY3kgZm9yIFNPQyBwZXJpcGhlcmFscwoKICAgIFRoZSBzb2Mgbm9kZSBvZiB0aGUgbXBjNTJ4eCBuZWVkcyB0byBiZSBsb2FkZWQgd2l0aCB0aGUgSVBCIGJ1cyBmcmVxdWVuY3ksCiAgICBub3QgdGhlIFhMQiBmcmVxdWVuY3kuCgogICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHRoZSBwcmV2aW91cyBwYXRjaGVzIGZvciBNUEM1Mnh4IGRldmljZSB0cmVlIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBTaWduZWQtb2ZmLWJ5OiBTeWx2YWluIE11bmF1dCA8dG50QDI0NnROdC5jb20+Cgpjb21taXQgMWVhYzJhNzE0MTdiNjY3NWIxMWFhY2U3MjEwMmEyZTdmZGU4ZjVjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxNTo0MjozNyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgUHJvZHJpdmUgUDNNNzUwICYgUDNNNzQ0OCAoUDNNeCkgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQM003NTAgKFBQQzc1MCAmIE1WNjQ0NjApCiAgICBhbmQgdGhlIFAzTTc0NDggKE1QQzc0NDggJiBNVjY0NDYwKSBQTUMgbW9kdWxlcy4gQm90aCBtb2R1bGVzIGFyZQogICAgcXVpdGUgc2ltaWxhciBhbmQgc2hhcmUgdGhlIHNhbWUgYm9hcmQgZGlyZWN0b3J5ICJwcm9kcml2ZS9wM214IgogICAgYW5kIHRoZSBzYW1lIGNvbmZpZyBmaWxlICJwM214LmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmRkNDY4MzJhZWI1NjlmNWUwNGIxZjIwZjY0MzE4NTI1YjY1MjVhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjUzOjE1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGNvbW1vbi9jbWRfZWxmLmM6IEVuYWJsZSBsb2FkYWRkciBhcyBwYXJhbWV0ZXIgaW4gYm9vdHZ4IGNvbW1hbmQKCiAgICBJbiB0aGUgYm9vdHZ4IGNvbW1hbmQgdGhlIGxvYWQgYWRkcmVzcyB3YXMgb25seSByZWFkIGZyb20gdGhlIGVudgogICAgdmFyaWFibGUgImxvYWRhZGRyIiBhbmQgbm90IG9wdGlvbmFsbHkgcGFzc2VkIGFzIHBhcmFtdGVyIGFzIGRlc2NyaWJlZAogICAgaW4gdGhlIGhlbHAuIFRoaXMgaXMgZml4ZWQgd2l0aCB0aGlzIHBhdGNoLiBUaGUgYmVoYXZpb3VyIGlzIG5vdyB0aGUKICAgIHNhbWUgYXMgaW4gdGhlIGJvb3RlbGYgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGUyNmYxMDc0YzNhYzFiZDhmZDA5NGYwZGM0YTFjNGEwYjE1YTU5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxMjowMzo1NyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBpbmNsdWRlL3BwYzQ0MC5oIG1pbm9yIGVycm9yIGFmZmVjdGluZyBpbnRlcnJ1cHRzCgogICAgRml4ZWQgaW5jbHVkZS9wcGM0NDAuYyBmb3IgVUlDIGFkZHJlc3MgQnVnCgogICAgQ29ycmVjdHMgYnVnIGFmZmVjdGluZyB0aGUgYWRkcmVzc2VzIGZvciB0aGUgdW5pdmVyc2FsIGludGVycnVwdAogICAgY29udHJvbGxlciBVSUMyIGFuZCBVSUMzIG9uIHRoZSBQUEM0NDAgRXB4LCBHUngsIGFuZCBTUEUgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTkzOWQ5Njk0NDNjY2YzMTZjYWIyYmYzMmFiMTAyN2Q0ZGI1YmExYQpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjI3IDIwMDYgLTA2MDAKCiAgICBNYWtlIGZzbC1pMmMgbm90IGNvbmZsaWN0IHdpdGggU09GVCBJMkMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0MTk4YmY3NjhmZGM5NThlM2MxYWZkMjQwNGU1MjYyMjA4ZTk4ZDcKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJVHVlIE5vdiAyOCAxNjoxNzoxOCAyMDA2IC0wNjAwCgogICAgRml4IEkyQyBtYXN0ZXIgYWRkcmVzcyBpbml0aWFsaXphdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmM2QwNDVlNTFjYThkY2M2Y2Y3NTk4MjcxNDA4NjFkNmFjMjVjMDQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjMxOjE5IDIwMDYgLTA2MDAKCiAgICBBc3NpZ24gbWFpbnRhaW5lcnMgZm9yIG1wYzgzNDllbWRzIGFuZCBtcGM4MzYwZW1kcwoKICAgIERhdmUgZm9yIG1wYzgzNjBlbWRzLCBhbmQgbWUgZm9yIG1wYzgzNDllbWRzLgoKY29tbWl0IDFhYTkzNGM4MWI3N2YyMDgwZDNjYTRiMjI2ZWFiNjdiMTdhMzM5NjEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjI4OjMzIDIwMDYgLTA2MDAKCiAgICBFbGltaW5hdGUgZ2NjIDQgJ3VzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZ3MgaW4gZHJpdmVycy9xZS91Y2NmLmMKCiAgICBnaXZlIGluaXRpYWwgdmFsdWVzIGZvciByZWdfbnVtLCBzaGlmdCwgcF9jbXh1Y3IgaW4gdWNjX3NldF9jbGtfc3JjCiAgICBzaW5jZSB0aGV5IGFyZSBwYXNzZWQgYnkgcmVmZXJlbmNlIHRvIHVjY19nZXRfY214dWNyX3JlZyBhbmQgYXNzaWduZWQuCgpjb21taXQgZTg1N2E1YmRiMzk1NGI4OTZjMDkyMGNiOWQ4ZDJiMWI5YzEwN2NlNQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMTI6MDk6MzUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IE1pc2NlbGxhbmVvdXMgY29kZSBzdHlsZSBmaXhlcwoKICAgIEltcGxlbWVudCB2YXJpb3VzIGNvZGUgc3R5bGUgZml4ZXMgYW5kIHNpbWlsYXIgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1OTU4MWM1NmFiNWQ2ZTAyMDdkZGFjM2IyYzFkNTVjYjM2ZWM3MDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTc6NTU6NDkgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRW5hYmxlIHRoZSBJY2VDdWJlL2xpdGU1MjAwIHZhcmlhbnRzIHRvIHBhc3MgYSBkZXZpY2UgdHJlZSB0byBMaW51eC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvZGUgYW5kIGNvbmZpZ3VyYXRpb24gbmVjZXNzYXJ5IHRvIGJvb3Qgd2l0aCBhbgogICAgYXJjaC9wb3dlcnBjIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNzMyZmFlYzk1YTgzY2I0NjhiNDg1MGFlODA3YzgzMDFkZGU4ZjZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDE2OjA5OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogNDQwU1AgUmV2LiBDIGRldGVjdGlvbiBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlN2YzZTlmZjAxZmJkN2ZhNzJlYjQyYTk2NzVmYmVkNmJjNDczNmIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDExOjA0OjQ1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwYXRjaCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4ZTNiMTRjMThlZDMyODhjZWVmOGQwODY5NDZkYmYzZGY2NGNjZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGY0YjYwMmVjNzUyNGEwMzJiZGYzYzZkMjhjN2Y1MjVhNGE2N2VhYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDIyOjUzOjUzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZjZlNDk1ZjU0Y2RiOGZlMzQwYjljMDNkZWFiNDBhZDc0NmQ1MmZhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzo0MzoyNSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHhfZW5ldC5jOiBDb3JyZWN0IHRoZSBzZXR0aW5nIG9mIHptaWlmZXIgcmVnaXN0ZXIKCiAgICBQYXRjaCBiZWxvdyBjb3JyZWN0cyB0aGUgc2V0dGluZyBvZiB0aGUgem1paWZlciByZWdpc3RlciwgaXQgd2FzCiAgICBvdmVyd3JpdHRpbmcgdGhlIHJlZ2lzdGVyIHJhdGhlciB0aGFuIE9SaW5nIHRoZSBzZXR0aW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOZWlsIFdpbHNvbiA8TldpbHNvbkBhaXJzcGFuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMWE3MjU0NTI5NjgwMGI3ZTIxOWY5MzEwNGFkNTgzNmYwMDAzZDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjM0OjEwIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFNlbGVjdCBOQU5EIGVtYmVkZGVkIGVudmlyb25tZW50IGZyb20gYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIFRoZSBjdXJyZW50IE5BTkQgQm9vdGxvYWRlciBzZXR1cCBmb3JjZXMgdGhlIGVudmlyb25tZW50CiAgICB2YXJpYWJsZXMgdG8gYmUgaW4gbGluZSB3aXRoIHRoZSBib290bG9hZGVyLiBUaGlzIGNoYW5nZQogICAgZW5hYmxlcyB0aGUgY29uZmlndXJhdGlvbiB0byBiZSBtYWRlIGluIHRoZSBib2FyZCBpbmNsdWRlCiAgICBmaWxlIGluc3RlYWQgc28gdGhhdCBpdCBjYW4gYmUgaW5kaXZpZHVhbGx5IGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTU3ODQ4NjI4NTdjM2MyMjE0NDk4ZGVmY2ZlZDg0ZmYxMzdmYjgxZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzoyMjoxOSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kX3dhaXQoKSB0aW1lb3V0IGZpeGVzCgogICAgVHdvIGZpeGVzIGZvciB0aGUgbmFuZF93YWl0KCkgZnVuY3Rpb24gaW4KICAgIGRyaXZlcnMvbmFuZC9uYW5kX2Jhc2UuYzoKCiAgICAxLiBVc2UgY29ycmVjdCB0aW1lb3V0cy4gVGhlIG9yaWdpbmFsIHRpbWVvdXRzIGluIExpbnV4CiAgICBzb3VyY2UgYXJlIDQwMG1zIGFuZCAyMG1zIG5vdCA0MHMgYW5kIDIwcwoKICAgIDIuIFJldHVybiBjb3JyZWN0IGVycm9yIHZhbHVlIGluIGNhc2Ugb2YgdGltZW91dC4gMCBpcwogICAgaW50ZXJwcmV0ZWQgYXMgT0suCgogICAgU2lnbmVkLW9mZi1ieTogUnVpIFNvdXNhIDxydWkuc291c2FAbGFwb3N0ZS5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGE1NTUzYjA5NWJmMDRmNGYxMDlhZDdlNTY1ZGFlM2FiYTQ3YjIzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzowNDowNiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBbGxvdyBDT05GSUdfT0ZfRkxBVF9UUkVFIHRvIGJvb3QgYSBub24tYXJjaC9wb3dlcnBjIGtlcm5lbAoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGFuIGFyY2gvcHBjIGtlcm5lbCB0byBiZSBib290ZWQgYnkganVzdCBwYXNzaW5nIDEgb3IgMgogICAgYXJndW1lbnRzIHRvIGJvb3RtLiAgSXQgcmVtb3ZlcyB0aGUgZ2V0ZW52KCJkaXNhYmxlX29mIikgdGVzdCB0aGF0IHVzZWQKICAgIHRvIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTM5OGUwMTg1OTM3ODJjNWZhN2QwNzQxOTU1ZmMxMjU2YjM0YzFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTU6MzI6NDIgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAxNzI5YjkyY2RlNTc1NDc2Njg0YmZmZTgxOWQwYjc3OTFiNTdiZmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjUyOjA0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlIChub3cgZm9yIHJlYWwpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjNWVlOGE5MmEwZTNjYTZmNzI3YWY3MWI4ZmQyMDY0NjBjN2FmZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDk6NTEgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogcmVtb3ZlIHVudXNlZCBib2FyZCBzcGVjaWZpYyBmbGFzaCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWY5NGQxNjJlMmI1ZjBlZGMyOGQ5ZmIxMTQ4MjUwMmM0NGQyMThlMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0ODo0MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHg6IEZpeCBwcm9ibGVtIHdpdGggYm9hcmQgc3BlY2lmaWMgcmVzZXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYzBjMmVjNzI1YWVjOTUyNGExNzdhNzdjZTc1NTU5ZTY0NGE5MzFhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ2OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB0ZXN0aW5nIDR4eCBlbmV0IFBIWSBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYzJjZTIyNjIwNjk1MTBmMzFjN2QzZmQ3ZWZkM2Q1OGI4YzBjMTQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjEyOjE3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBBTFBSIGJvYXJkIHN1cHBvcnQgKDQ0MEdYKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1OGI0ODU3NzY2OThjM2Q3MWVjNWEyMTVlMzkyMTIzYjRjMTVhZmEzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo1MToyMSAyMDA2ICswMTAwCgogICAgQWRkIGEgc21hbGwgUkVBRE1FIHdpdGggaW5mb3JtYXRpb24gb24gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIuCgpjb21taXQgYWUzYjc3MGU0ZWFlOGU5OGI2ZTllMjk2NjJlMThjNDdmZGYwMTcxZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDY6NDYgMjAwNiArMDEwMAoKICAgIEZpeCBzb21lIGVuZGlhbm5lc3MgaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCA3YjU5YjNjN2E4Y2UyZTRiNTY3YWJmOTljMWNkNjY3YmYzNWI5NDE4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0NDo1OCAyMDA2ICswMTAwCgogICAgSW50cm9kdWNlZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gQ09ORklHX1VTQl9PSENJX05FVyBpbiBvcmRlciB0byBiZSBhYmxlCiAgICB0byBjaG9vc2UgYmV0d2VlbiB0aGUgb2xkIGFuZCB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcnMuCgpjb21taXQgNTNlMzM2ZTlmZmM1MTAzNWJkYzRlNTg2NzYzMWIzMzc4NzYxYjRkZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDM6MDkgMjAwNiArMDEwMAoKICAgIE1vZGlmaWVkIHRoZSBtcGM1eHh4IGFuZCB0aGUgcHBjNHh4IGNwdSB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIKICAgIGFuZCBhZGFwdGVkIGJvYXJkIGNvbmZpZ3MgVFFNNTIwMCBhbmQgeW9zZW1pdGUgYWNjb3JkaW5nbHkuIFRoaXMgY29tbWl0CiAgICBhbHNvIG1ha2VzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByb290IGh1YiBwb3J0cyBjb25maWd1cmFibGUKICAgIChDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMpLgoKY29tbWl0IDc4ZDYyMGViYjU4NzFkMjUyMjcwZGVkZmFkNjBjNjU2ODk5M2I3ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBhdGxhcy5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIzIDIyOjU4OjU4IDIwMDYgKzAxMDAKCiAgICBVcGRhdGVzIGZvciBUUU01MjAwIG1vZHVsZXM6CiAgICAtIGZpeCBvZmYtYnktb25lIGVycm9yIGluIGJvYXJkL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jIGVycm9yIG1lc3NhZ2UKICAgIC0gc2ltcGxpZnkgInVkYXRlIiBkZWZpbml0aW9ucwoKY29tbWl0IDIwNTMyODMzMDRlZWRkZjI1MGQxMDllNjc5MWViNmZhNGNhZDE0ZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjIgMTM6MjA6NTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4IHN0YXJ0LlM6IEZpeCBmb3IgcHJvY2Vzc29yIGVycmF0YQoKICAgIEZpeGVkIGNwdS9wcGM0eHgvc3RhcnQuUyBmb3IgNDQwRVB4IEVycmF0YTogZnVydGhlciBjb3JyZWN0cyBQUEM0NDBFUHgKICAgIGVycmF0YSAxLjEyOiA0NDBfMzMgYnkgbW92aW5nIHBhdGNoIHVwIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGVmNjI1MTQwM2Y2Mzc4NDEwMDBlMGZlZjllODMyYWEwMTMzOTgyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyMCAyMDozOTo1MiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBTZXF1b2lhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgNjRNQnl0ZSBOT1IgRkxBU0gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTRiYmQ4ZGExNjRiOTc2ZDM4NjE2YmQ5YzY5YzVlODZlMTkzY2RmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDEwOjI4OjMwIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgMjYwNDIxYTIxZTkzNGE2OGQzMWZiNjEyNWIwZmJkMjYzMWE4Y2EyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxMyAxMzo1NToyNCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBDRkkgZHJpdmVyIEFNRCBDb21tYW5kIFNldCBUb3AgYm9vdCBnZW9tZXRyeSByZXZlcnNhbCwgZXRjLiBbVXBkYXRlZF0KCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgQU1EIGNvbW1hbmQgc2V0IFRvcCBCb290IGZsYXNoIGdlb21ldHJ5IHJldmVyc2FsCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgcmVhZGluZyBKRURFQyBNYW51ZmFjdHVyZXIgSUQgYW5kIERldmljZSBJRAogICAgICAgKiBBZGRzIHN1cHBvcnQgZm9yIGRpc3BsYXlpbmcgY29tbWFuZCBzZXQsIG1hbnVmYWN0dXJlciBpZCBhbmQKCSBkZXZpY2UgaWRzIChmbGluZm8pCiAgICAgICAqIE1ha2VzIGZsaW5mbyBvdXRwdXQgdG8gYmUgY29uc2lzdGVudCB3aGVuIENGR19GTEFTSF9FTVBUWV9JTkZPIGRlZmluZWQKICAgICAgICogUmVtb3ZlcyBvdXRkYXRlZCBjaGFuZ2UgaGlzdG9yeSAocmVmZXIgdG8gZ2l0IGxvZyBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbHVuYXkgT3JrdW4gPGxpc3RtZW1iZXJAb3JrdW4udXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjIxYjUxMWQ0YzUwNDA4ZjQ4NTNmNDZmMDZiNjAxMjcyMTk2MjIzZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gTm92IDEyIDIxOjEzOjIzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgY2UzZjFhNDBjNTA3YWZiYWIwNmM1ZWI1OGNjZGM2NzEzZWRhMzI0NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDg6MjIgMjAwNiArMDEwMAoKICAgIERpc2FibGUgdGhlIHdhdGNoZG9nIGluIHRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIFYzOEIgYm9hcmQuCgpjb21taXQgNDRhNDdlNmRiMjY5NDg0MTIxMWYxYzhmZGJhZmQzNjk5MmU5Y2QxYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDM6MDAgMjAwNiArMDEwMAoKICAgIENoYW5nZSB0aGUgR1BJTyBwaW4gbXVsdGlwbGV4aW5nIGNvbmZpZ3VyYXRpb24gZm9yIFYzOEIuIFRoZSBVU0IgR1BJTyBwaW4KICAgIGdyb3VwIGlzIGVuYWJsZWQgZm9yIFVTQiBlYXJsaWVyIChpbiBjcHVfaW5pdF9mKCkgaW5zdGVhZCBvZgogICAgdXNiX2xvd2xldmVsX2luaXQoKSkuCgpjb21taXQgOTE2NTBiM2U0ZGU2ODgwMzhkNGY3MTI3OWM0NDg1OGUzZTJjNjg3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDYgMTc6MDY6MzYgMjAwNiArMDEwMAoKICAgIFNlcXVlbnRpYWwgYWNjZXNzZXMgdG8gbm9uLWV4aXN0ZW50IG1lbW9yeSBtdXN0IGJlIHN5bmNocm9uaXplZCwKICAgIGF0IGxlYXN0IG9uIEcyIGNvcmVzLgoKICAgIFRoaXMgZml4ZXMgZ2V0X3JhbV9zaXplKCkgcHJvYmxlbXMgb24gTVBDNTIwMCBSZXYuIEIgYm9hcmRzLgoKY29tbWl0IGJlNWU2MTgxNWQ1YTFmYWMyOTBjZTljMGVmMDljYjZhOGU0Mjg4ZmEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MTU6MDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFVwZGF0ZSA4M3h4IHRvIHVzZSBmc2xfaTJjLmMKCiAgICBVcGRhdGUgdGhlIDgzeHggdHJlZSB0byB1c2UgSTJDIHN1cHBvcnQgaW4gZHJpdmVycy9mc2xfaTJjLmMuICBEZWxldGUKICAgIGNwdS9tcGM4M3h4L2kyYy5jLCBpbmNsdWRlL2FzbS1wcGMvaTJjLmgsIGFuZCBhbGwgcmVmZXJlbmNlcyB0byB0aG9zZSBmaWxlcy4KICAgIEFkZGVkIG11bHRpcGxlIEkyQyBidXMgc3VwcG9ydCB0byBmc2xfaTJjLmMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjM5ZDc0YjFjOTM3OTg0YmM1MTkwODNhOGU3ZGUzNzNhMzkwZjA2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjAwOjI4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIENGR19JTU1SQkFSIHdpdGggQ0ZHX0lNTVIKCiAgICBSZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUiwgc28gdGhhdCB0aGUgODN4eAogICAgdHJlZSBtYXRjaGVzIHRoZSBvdGhlciA4eHh4IHRyZWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjdmYjJlNzAzZWM5Njg4NTQxNDE2OTYyNzI0YWRmZjcwYTczMjJjYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTo0NzoxMSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTGluZGVudCBhbmQgY2xlYW4gdXAgY3B1L21wYzgzeHgvc3BlZWQuYwoKY29tbWl0IDkwZjMwYTcxMGEzYzYxOWI1NDA1ODYwYTY4NmM0ZGRmYzQ5NWQ0YjYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MDU6NTAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uCgogICAgVGhlIDgzNHggcmV2MS54IHNpbGljb24gaGFzIG9uZSBDUFU1IGVycmF0YS4KCiAgICBUaGUgaXNzdWUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZSBsb2NrZWQgd2l0aAogICAgSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGxvb2tzIGxpa2Ugbm8tb3AgaW5zdC4KCiAgICBUaGUgcmlnaHQgYmVoYXZpb3Igb2YgdGhlIGRhdGEgY2FjaGUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZQogICAgTG9ja2VkIHdpdGggSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGFsbG9jYXRlcwogICAgbmV3IHRhZ3MgaW4gY2FjaGUuCgogICAgVGhlIDgzNHggcmV2My4wIGFuZCBsYXRlciBhbmQgODM2MCBoYXZlIG5vdCB0aGlzIGJ1ZyBpbnNpZGUuCgogICAgU28sIHdoZW4gODM0eCByZXYzLjAvODM2MCBhcmUgd29ya2luZyB3aXRoIEVDQywgdGhlIGRjYnoKICAgIGluc3RydWN0aW9uIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIHRoZSBwcm9jZXNzb3Igd2lsbAogICAgY2hlY2tzdG9wIHJlc2V0LgoKICAgIEhvd2V2ZXIsIHRoZSA4MzR4IHJldjEueCBjYW4gd29yayB3aXRoIEVDQyB3aXRoIHRoZXNlIGNvZGUsCiAgICBiZWNhdXNlIHRoZSBzaWxsaWNvbiBoYXMgdGhpcyBjYWNoZSBidWcuIFRoZSBkY2J6IHdpbGwgbm90CiAgICBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZS4KICAgIFJlYWxseSwgaXQgaXMgdGhlIGZhdWx0IGNvZGUgcnVubmluZyBvbiBmYXVsdCBzaWxsaWNvbi4KCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uLiBJbnN0ZWFkIG9mCiAgICBDUFUgRlAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MuCgogICAgQ0hBTkdFTE9HOgogICAgKiBGaXggdGhlIGluY29ycmVjdCBkY2J6IG9wZXJhdGlvbiBpbnN0ZWFkIG9mIENQVSBGUAogICAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MgbWVtb3J5LiBPdGhlcndpc2UsIGl0CiAgICB3aWxsIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLCBUaGUgcHJvY2Vzc29yIHdpbGwgY2hlY2tzdG9wCiAgICByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMGI1NDJkNjc3M2E1YTFjYmNlNzc2OTFmMDA5YjA2ZDlhZWI1N2QKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MTA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBPRl9GTEFUX1RSRUUgYml0cyB0byA4M3h4IGJvYXJkcwoKICAgIGFkZCBmdF9wY2lfc2V0dXAsIE9GX0NQVSwgT0ZfU09DLCBPRl9UQkNMSywgYW5kCiAgICBTVERPVVRfUEFUSCBjb25maWd1cmF0aW9uIGJpdHMgdG8gbXBjODM0OWVtZHMsCiAgICBtcGM4MzQ5aXR4LCBhbmQgbXBjODM2MGVtZHMgYm9hcmQgY29kZS4KCiAgICByZWRvIGVudmlyb25tZW50IHRvIHVzZSBib290bSB3aXRoIHRoZSBmZHRhZGRyCiAgICBmb3IgYm9vdGluZyBBUkNIPXBvd2VycGMga2VybmVscyBieSBkZWZhdWx0LAogICAgYW5kIHByb3ZpZGUgZGVmYXVsdCBmZHRhZGRyIHZhbHVlcy4KCmNvbW1pdCA0ODA0MTM2NWIzNDIwNTg5YWQ0NjRlYmM3NzUyZTAwNTM1MzhiNzI5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAwOjA3OjI1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBjaGFuZ2UgZnQgY29kZSB0byBtb2RpZnkgbG9jYWwtbWFjLWFkZHJlc3MgcHJvcGVydHkKCiAgICBVcGRhdGUgODN4eCBPRiBjb2RlIHRvIHVwZGF0ZSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0aWVzCiAgICBmb3IgZXRoZXJuZXQgaW5zdGVhZCBvZiB0aGUgb2Jzb2xldGUgJ2FkZHJlc3MnIHByb3BlcnR5LgoKY29tbWl0IDljYTg4MGEyNTA4NzBhN2Q1NTc1NDI5MWI1NTkxZDJiNWZlODliNTQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDIxOjIzOjE2IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggZHVhbCBJMkMgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlJVFgsIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgTVBDODM2MEVNRFMKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhbiBpbXByb3ZlZCBJMkMgc2V0X3NwZWVkKCksIHdoaWNoIGhhbmRsZXMgYWxsIGNsb2NrCiAgICBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjNGI1NjIyY2UwNTBiNWVlMWUxNTRiOThkZjYzMGQ3Nzg2NjE2MzIKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjU0OjU5IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgdGhlIFJFQURNRS5tcGM4MzYwZW1kcwoKICAgIGFkZCBkb2MvUkVBRE1FLm1wYzgzNjBlbWRzIHRvIGFjY29tcGFueSB0aGUgbmV3IGJvYXJkIHN1cHBvcnQKCmNvbW1pdCA3NzM3ZDVjNjU4YzYwNmY5OTlkZmJlM2U4NmIwZmVkNDllNWM1MGVmCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjExOjE1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgUUUgZXRoZXJuZXQgc3VwcG9ydAoKICAgIHRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUVVJQ0MgRW5naW5lIGJhc2VkIFVDQyBnaWdhYml0IGV0aGVybmV0IGRldmljZS4KCmNvbW1pdCA1ZjgyMDQzOTRlMzliYmU4Y2Q5ZjA4YjhmOGQxNDViNmMwMWY3YzczCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDE5OjMzOjQ0IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODM2MEVNRFMgYmFzaWMgYm9hcmQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgRnJlZXNjYWxlIE1QQzgzNjBFTURTIGJvYXJkLgogICAgSW5jbHVkZXMgRERSLCBEVUFSVCwgTG9jYWwgQnVzLCBQQ0kuCgpjb21taXQgMjM4OTJlNDkzNTJkZTc0ZjdmYWMzNmZmOTBiYjFiZTE0M2QxOTVlMwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6MzA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUVVJQ0MgRW5naW5lIChRRSkgaW1tYXAgZmlsZQoKICAgIGNvbW1vbiBRRSBpbW1hcCBmaWxlLiAgQWxzbyByZXF1aXJlZCBmb3IgODM2MC4KCmNvbW1pdCBiNzAxNjUyYTQ5OTJiZGNjNjJmYjFhNjAzOGE4NWJlZWY5ZTU1ZGE0CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToyNTozOCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIDgzNjAgc3BlY2lmaWNzIHRvIDgzeHggaW1tYXAKCiAgICBNYWlubHkgYWRkIFFFIGRldmljZSBkZXBlbmRlbmNpZXMsIHdpdGggYXBwcm9wcmlhdGUgODM2MCBwcm90ZWN0aW9uLgogICAgTGluZGVudCBhbHNvIHJ1bi4KCmNvbW1pdCA5ODg4MzMzMjRhN2ZkYTQ4MmM4YWMzY2EyM2ViNTM5ZjgyMzJlNDA0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToxNDo0MSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IFBDSSwgVVNCLCBib290YXJncyBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkyMTQyMDAwMDE1ICJBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFggIDEvMiIKICAgICAgMikgRE5YIzIwMDYwOTIxNDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMi8yIgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZvciB0aGUgODM0OUUtbUlUWCwgZml4IHNvbWUgc2l6ZSB2YWx1ZXMgaW4gcGNpX2luaXRfYm9hcmQoKSwgZW5hYmxlCiAgICAgIHRoZSBjbG9jayBmb3IgdGhlIDJuZCBVU0IgYm9hcmQgKExpbnV4IGtlcm5lbCB3aWxsIGhhbmcgb3RoZXJ3aXNlKSwKICAgICAgYW5kIGZpeCB0aGUgQ09ORklHX0JPT1RBUkdTIG1hY3JvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmFkNmI1MTNiMzEwNzBiZDBjMDAzNzkyZWQxYzNlN2Y1ZDc0MDM1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6NDQ6NDIgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkwNzQyMDAwMDI0ICJBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzIgogICAgICAyKSBETlgjMjAwNjA5MDc0MjAwMDAzMyAiTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4IgogICAgICAzKSBETlgjMjAwNjA5MTI0MjAwMDA0MSAiQWRkaXRpb25hbCBNUEM4MzQ5IHN1cHBvcnQgZm9yIG11bHRpYnVzIGkyYyIKICAgICAgNCkgRE5YIzIwMDYwOTEyNDIwMDAwNzggIkFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zIgogICAgICA1KSBETlgjMjAwNjA5MTI0MjAwMDA2OSAiQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMiCgogICAgQ0hBTkdFTE9HOgoKICAgICogQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM0OUUtbUlUWCByZWZlcmVuY2UgZGVzaWduIHBsYXRmb3JtLgogICAgICBUaGUgc2Vjb25kIFRTRUMgKFZpdGVzc2UgNzM4NSBzd2l0Y2gpIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgzZGE2ZDliNDQ2Y2MxMjEyMzQ1NTg0NGFkMTE4N2UyMzc1NjI2ZgpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUdWUgU2VwIDEyIDEwOjE1OjUzIDIwMDYgLTA0MDAKCiAgICBBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjCgogICAgSGVsbG8sCgogICAgSGVyZSBpcyBhIHBhdGNoIGZvciBhIGZpbGUgdGhhdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3V0IG9mIGEgcHJldmlvdXMKICAgIGF0dGVtcHQuCgogICAgSXQgYWNjb21wYW5pZXMgdGhlIHBhdGNoIHdpdGggdGlja2V0IEROWCMyMDA2MDkwNzQyMDAwMDI0CgogICAgQ0hBTkdFTE9HOgoJICAgIENoYW5nZSBQQ0kgaW5pdGlhbGl6YXRpb24gdG8gdXNlIG5ldyBtdWx0aS1idXMgSTJDIEFQSS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYjI0ZjExOWQ2NzJiNzA5ZDE1M2ZmMmFjMDkxZDRhYTYzZWM2ODc3ZApBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTE6MDQgMjAwNiAtMDQwMAoKICAgIE11bHRpLWJ1cyBJMkMgaW1wbGVtZW50YXRpb24gb2YgTVBDODM0eAoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggaW1wbGVtZW50aW5nIG11bHRpcGxlIEkyQyBidXNlcyBvbiB0aGUgTVBDODM0eCBDUFUKICAgIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkIGluIHBhcnRpY3VsYXIuCiAgICBUaGlzIHBhdGNoIHJlcXVpcmVzIFBhdGNoIDEgKEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMpLgogICAgVGVzdGluZyB3YXMgcGVyZm9ybWVkIG9uIGEgNTMzTUh6IGJvYXJkLgoKICAgIC8qKiogTm90ZTogVGhpcyBwYXRjaCByZXBsYWNlcyB0aWNrZXQgRE5YIzIwMDYwODMwNDIwMDAwMjcgKioqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKICAgIENIQU5HRUxPRzoKCSAgICBJbXBsZW1lbnRlZCBkcml2ZXItbGV2ZWwgY29kZSB0byBzdXBwb3J0IHR3byBJMkMgYnVzZXMgb24gdGhlCiAgICBNUEM4MzR4IENQVSBmYW1pbHkgYW5kIHRoZSBNUEM4MzQ5RU1EUyBib2FyZC4gIEF2YWlsYWJsZSBJMkMgYnVzIHNwZWVkcwogICAgYXJlIDUwa0h6LCAxMDBrSHogYW5kIDQwMGtIeiBvbiBlYWNoIGJ1cy4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmI5OWFkNmQ4MjU3YmY4MjhmMTUwZDQwZjUwN2IzMGQ4MGE0YTdhZQpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTA6NTQgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMKCiAgICBIZWxsbywKCiAgICBBdHRhY2hlZCBpcyBhIHBhdGNoIHByb3ZpZGluZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMgYXQgdGhlCiAgICBjb21tYW5kIGxldmVsLiAgVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBwYXRjaCBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbgogICAgZm9yIHRoZSBNUEM4MzR4IENQVSBhbmQgTVBDODM0OUVNRFMgYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAxOCAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgT3ZlcnZpZXc6CgogICAgMS4gSW5jbHVkZSBuZXcgJ2kyYycgY29tbWFuZCAoYmFzZWQgb24gVVNCIGltcGxlbWVudGF0aW9uKSB1c2luZwogICAgQ09ORklHX0kyQ19DTURfVFJFRS4KCiAgICAyLiBBbGxvdyBtdWx0aXBsZSBidXNlcyBieSBkZWZpbmluZyBDT05GSUdfSTJDX01VTFRJX0JVUy4gIE5vdGUgdGhhdAogICAgdGhlIGNvbW1hbmRzIHRvIGNoYW5nZSBidXMgbnVtYmVyIGFuZCBzcGVlZCBhcmUgb25seSBhdmFpbGFibGUgdW5kZXIgdGhlCiAgICBuZXcgJ2kyYycgY29tbWFuZCBtZW50aW9uZWQgaW4gdGhlIGZpcnN0IGJ1bGxldC4KCiAgICAzLiBUaGUgb3B0aW9uIENGR19JMkNfTk9QUk9CRVMgaGFzIGJlZW4gZXhwYW5kZWQgdG8gd29yayBpbiBtdWx0aS1idXMKICAgIHN5c3RlbXMuICBXaGVuIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIHVzZWQsIHRoaXMgb3B0aW9uIHRha2VzIHRoZSBmb3JtCiAgICBvZiBhbiBhcnJheSBvZiBidXMtZGV2aWNlIHBhaXJzLiAgT3RoZXJ3aXNlLCBpdCBpcyBhbiBhcnJheSBvZiB1Y2hhci4KCiAgICBDSEFOR0VMT0c6CgkgICAgQWRkZWQgbmV3ICdpMmMnIG1hc3RlciBjb21tYW5kIGZvciBhbGwgSTJDIGludGVyYWN0aW9uLiAgVGhpcyBpcwogICAgY29uZGl0aW9uYWxseSBjb21waWxlZCB3aXRoIENPTkZJR19JMkNfQ01EX1RSRUUuICBOZXcgY29tbWFuZHMgYWRkZWQgZm9yCiAgICBzZXR0aW5nIEkyQyBidXMgc3BlZWQgYXMgd2VsbCBhcyBjaGFuZ2luZyB0aGUgYWN0aXZlIGJ1cyBpZiB0aGUgYm9hcmQKICAgIGhhcyBtb3JlIHRoYW4gb25lIChjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGgKICAgIENPTkZJR19JMkNfTVVMVElfQlVTKS4gIFVwZGF0ZWQgTk9QUk9CRSBsb2dpYyB0byBoYW5kbGUgbXVsdGlwbGUgYnVzZXMuCiAgICBVcGRhdGVkIFJFQURNRS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmVkODVjYWY4NzI3MTRlYmY1MzAxMzk2N2E2OTVjOWQ2M2FjZmM2OApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6MTM6MzYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciBFcnJhdGEgRERSNiBvbiBNUEMgODM0eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogRXJyYXRhIEREUjYsIHdoaWNoIGFmZmVjdHMgYWxsIGN1cnJlbnQgTVBDIDgzNHggcHJvY2Vzc29ycywgbGlzdHMgY2hhbmdlcwogICAgICByZXF1aXJlZCB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdmFyaW91cyB0eXBlcyBvZiBERFIgbWVtb3J5LiAgVGhpcwogICAgICBwYXRjaCBpbXBsZW1lbnRzIHRob3NlIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZmQ2ZTQ3MGY2Mzk4ODMwMDJjN2M1OWQ1NjI2OTBhNWNiMGY0ODY1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxODo0NToyMyAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogZml4IFRRTSBidWlsZCBieSBkZWZpbmluZyBhIENGR19GTEFTSF9TSVpFIGZvciBpdAoKY29tbWl0IDMxMDY4YjdjNGFiZWVmY2IyYzhmZDRmYmVjY2M4ZWM2YzZkMDQ3NWEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgZmxhc2ggbWVtb3J5IHNpemVzIG9uIDgzeHggc3lzdGVtcwoKICAgIENIQU5HRUxPRzoKCiAgICAqIE9uIDgzeHggc3lzdGVtcywgdXNlIHRoZSBDRkdfRkxBU0hfU0laRSBtYWNybyB0byBwcm9ncmFtIHRoZSBMQkMgbG9jYWwgYWNjZXNzCiAgICAgICB3aW5kb3cgcmVnaXN0ZXJzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgaGFyZC1jb2RlZCB2YWx1ZSBvZiA4TUIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmMzNGFlNjZlNzNmYTc4NDFkMWEwMDZkYzFiNWRjYmMxZjc4OTY1CkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozODoxMyAyMDA2ICswODAwCgogICAgbXBjODN4eDogVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvcwoKICAgIFVuaWZpZWQgVFFNODM0eCB2YXJpYWJsZSBuYW1lcyB3aXRoIDgzeHggYW5kIGNvbnNvbGlkYXRlZCBtYWNybwogICAgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA4MzYwIGFuZCBvdGhlciB1cGNvbWluZyA4M3h4IGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjZlZGE3ZjgwY2NjMTNkNjU4MDIwMjY4YzUwN2Q3MTczY2YyZThhYQpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTQ6NDE6MjEgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZWQgdG8gdW5pZmllZCBtcHg4M3h4IG5hbWVzIGFuZCBhZGRlZCBjb21tb24gODN4eCBjaGFuZ2VzCgogICAgSW5jb3Jwb3JhdGVkIHRoZSBjb21tb24gdW5pZmllZCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlIGNoYW5nZXMgaW4gcHJlcGFyYXRpb24KICAgIGZvciByZWxlYXNpbmcgbXBjODM2MCBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg5NGM0NmMyN2M2NDg5MWY5M2FjMDRlZGRlODZhOWZhOTc1OGQ5MgpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6MzY6MDIgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCBtaXNzaW5nIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcyBwY2kuYwoKICAgIE1ha2UgcGNpIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YTgxZmY3NDBiMjlkZWVhMWUyYWIwOGEzYzJhYzEzNmMyZTYyMTkKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM5OjQ5IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgUmVtb3ZlZCB1bnVzZWQgZmlsZSByZXNldHZlYy5TIGZvciBtcGM4M3h4IGNwdQoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0Zjg5OWZjNDY1YzNlNDRmMmI1NWVjYzcwNjE4ZjU2OTZmYzBkZGYKQXV0aG9yOiBOaWNrIFNwZW5jZSA8Tmljay5TcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IFNlcCAzMCAwMDozMjo1OSAyMDA2IC0wNzAwCgogICAgTkFORCBGbGFzaCB2ZXJpZnkgYWNyb3NzIGJsb2NrIGJvdW5kYXJpZXMKCiAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBhIHByb2JsZW0gd2hlbiBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzCiAgICBkZWZpbmVkCiAgICBhbmQgdGhlIHdyaXRlIGNyb3NzZXMgYSBibG9jayBib3VuZGFyeS4gVGhlIHBvaW50ZXIgdG8gdGhlIHZlcmlmaWNhdGlvbgogICAgYnVmZmVyIChidWZzdGFydCkgaXMgbm90IGJlaW5nIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc3RhcnRpbmcgb2YgdGhlCiAgICBuZXcKICAgIGJsb2NrIHNvIHRoZSB2ZXJpZmljYXRpb24gb2YgdGhlIHNlY29uZCBibG9jayBmYWlscy4KCiAgICBDSEFOR0VMT0c6CgogICAgKiBGaXggTkFORCBGTEFTSCBwYWdlIHZlcmlmaWNhdGlvbiBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKY29tbWl0IGY0ODRkYzc5MWEzOTMyNTM3MjEzYzQzYzY1NGNjMTI5NWM2NGI4NGMKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCA3IDA3OjM5OjQ2IDIwMDYgLTA3MDAKCiAgICBBZGRlZCBSR01JSSBzdXBwb3J0IHRvIHRoZSBUU0VDcyBhbmQgTWFydmVsbCA4ODExMTEgUGh5CgogICAgQWRkZWQgYSBwaHkgaW5pdGlhbGl6YXRpb24gdG8gYWRqdXN0IHRoZSBSR01JSSBSWCBhbmQgVFggdGltaW5nCiAgICBBbHdheXMgc2V0IHRoZSBSMTAwIGJpdCBpbiAxMDAgQmFzZVQgbW9kZSByZWdhcmRsZXNzIG9mIHRoZSBUU0VDIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ODMxYzhiOGE5Nzc5OWRhNzc5MjNkNmJiYjRjMjYwYzBkNDU1MjFjCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTM6MTA6MDAgMjAwNiArMDgwMAoKICAgIFJlbW92ZSBzb21lIHVudXNlZCBDRkcgZGVmaW5lLgogICAgdW5kZWYgQ0ZHX0RSQU1fVEVTVAoKY29tbWl0IDk5YzA5YzRkZWMzNGY3N2MyNDNiZjUxYmVhNTMyZTNmMzM5NDEwYWQKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzowNzozNiAyMDA2ICswODAwCgogICAgQ2hhbmdlIHRoZSBURVhUX0JBU0UgZnJvbSAweEZGRjAwMDAwIHRvIDB4RkYwMDAwMDAuCiAgICBCb3RoIHdvcmsuIDB4RkYwMDAwMDAgc2VlbXMgbW9yZSByZWFzb25hYmxlLgoKY29tbWl0IGM1OTIwMDQ0MzA3MjM1MzA0NGFhNGJmNzM3YTVhNjBmOWE5YWYyMzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyIDE1OjE1OjAxIDIwMDYgKzAxMDAKCiAgICBSZWxlYXNlIFUtQm9vdCAxLjEuNgoKY29tbWl0IGMxZmJlNDEwM2EwZDZjODk1N2Y5MTJhZjkwMmQ3MDViYTY3ODM2ZjIKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxNDo0OCAyMDA2ICswODAwCgogICAgVGhpcyBwYXRjaCBjb21lcyBmcm9tIFl1bGkncyBwb3N0ZWQgcGF0Y2ggb24gOC84LzIwMDYKICAgIHRpdGxlZCAiQ0ZJIERyaXZlciBMaXR0bGUtRW5kaWFuIHdyaXRlIElzc3VlIi4KCiAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL21lc3NhZ2UucGhwP21zZ19pZD0zNjMxMTk5OQoKICAgIElmIHRoYXQgcGF0Y2ggYXBwbGllZCwgcGxlYXNlIGRpc2NhcmQgdGhpcyBvbmUuCiAgICBVbnRpbCBub3cgLCBJIGRvIG5vdCBzZWUgaGlzIHBhdGNoIGlzIGFwcGxpZWQuIFNvIHBsZWFzZSBhcHBseSB0aGlzIG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdWxpIEJhcmNvaGVuIDx5dWxpQGFyYWJlbGxhc3cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4MjVmMTU4ZTQ0OWUxZTljZjc0YzA4ZTU3Mjk1NWUxMjIzOTRjOTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMjozMSAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgaTJjIHN1cHBvcnQuCgogICAgVGhlIGkyYyAgSW50ZXJmYWNlIHByb3ZpZGVzIGEgbWFzdGVyLW9ubHksIHNlcmlhbCBpbnRlcmZhY2UgdGhhdCBjYW4gYmUKICAgIHVzZWQgZm9yIGluaXRpYWxpemluZyBUc2kxMDgvVHNpMTA5IHJlZ2lzdGVycyBmcm9tIGFuIEVFUFJPTSBhZnRlciBhCiAgICBkZXZpY2UgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjI2ZTdkNmYwOWI5YTFhYzA3NGNkOTE4YzgxMjI1YTQ2ODliYmE4CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MTE6MDYgMjAwNiArMDgwMAoKICAgIFRzaTEwOCBvbiBjaGlwIHBjaSBjb250cm9sbGVyIHN1cHBvcnQuCgogICAgSWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgcmVhZCB3aWxsCiAgICBjYXVzZSBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uIHRvIHRoZSBwcm9jZXNzb3IuIFBDSSBlcnJvciBzaG91bGQKICAgIGFsc28gYmUgY2xlYXJlZCBhZnRlciB0aGUgcmVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxOTI3Y2VlOTc3MTI2ZTU0N2NlZWJhMjNlNGY5NzhmMzc3Y2ZiOGYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowODo1NSAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBvbiBjaGlwIEV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBUaGUgZm9sbG93aW5nIGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIEV0aGVybmV0IGNvbnRyb2xsZXI6CiAgICBUaGUgVHNpMTA4LzkgRXRoZXJuZXQgQ29udHJvbGxlciBjb25uZWN0cyBTd2l0Y2ggRmFicmljIHRvIHR3byBpbmRlcGVuZGVudAogICAgR2lnYWJpdCBFdGhlcm5ldCBwb3J0cyxFMCBhbmQgRTEuICBJdCB1c2VzIGEgc2luZ2xlIE1hbmFnZW1lbnQgaW50ZXJmYWNlCiAgICB0byBtYW5hZ2UgdGhlIHR3byBwaHlzaWNhbCBjb25uZWN0aW9uIGRldmljZXMgKFBIWXMpLiAgRWFjaCBFdGhlcm5ldCBwb3J0CiAgICBoYXMgaXRzIG93biBzdGF0aXN0aWNzIG1vbml0b3IgdGhhdCB0cmFja3MgYW5kIHJlcG9ydHMga2V5IGludGVyZmFjZQogICAgc3RhdGlzdGljcy4gIEVhY2ggcG9ydCBzdXBwb3J0cyBhIDI1Ni1lbnRyeSBoYXNoIHRhYmxlIGZvciBhZGRyZXNzCiAgICBmaWx0ZXJpbmcuCUluIGFkZGl0aW9uLCBlYWNoIHBvcnQgaXMgYnJpZGdlZCB0byB0aGUgU3dpdGNoIEZhYnJpYwogICAgdGhyb3VnaCBhIDItS2J5dGUgdHJhbnNtaXQgRklGTyBhbmQgYSA0LUtieXRlIFJlY2VpdmUgRklGTy4KCiAgICBFYWNoIEV0aGVybmV0IHBvcnQgYWxzbyBoYXMgYSBwYWlyIG9mIGludGVybmFsIEV0aGVybmV0IERNQSBjaGFubmVscyB0bwogICAgc3VwcG9ydCB0aGUgdHJhbnNtaXQgYW5kIHJlY2VpdmUgZGF0YSBmbG93cy4gIFRoZSBFdGhlcm5ldCBETUEgY2hhbm5lbHMKICAgIHVzZSBkZXNjcmlwdG9ycyBzZXQgdXAgaW4gbWVtb3J5LCB0aGUgbWVtb3J5IG1hcCBvZiB0aGUgZGV2aWNlLCBhbmQKICAgIGFjY2VzcyB2aWEgdGhlIFN3aXRjaCBGYWJyaWMuICBUaGUgRXRoZXJuZXQgQ29udHJvbGxlcj9zIERNQSBhcmJpdGVyCiAgICBoYW5kbGVzIGFyYml0cmF0aW9uIGZvciB0aGUgU3dpdGNoIEZhYnJpYy4JVGhlIENvbnRyb2xsZXIgYWxzbwogICAgaGFzIGEgcmVnaXN0ZXIgYnVzaW50ZXJmYWNlIGZvciByZWdpc3RlciBhY2Nlc3NlcyBhbmQgc3RhdHVzIG1vbml0b3IKICAgIGNvbnRyb2wuCgogICAgVGhlIFBNRCAoUGh5c2ljYWwgTWVkaWEgRGV2aWNlKSBpbnRlcmZhY2Ugb3BlcmF0ZXMgaW4gTUlJLCBHTUlJLCBvciBUQkkKICAgIG1vZGVzLiAgVGhlIE1JSSBtb2RlIGlzIHVzZWQgZm9yIGNvbm5lY3Rpbmcgd2l0aCAxMCBvciAxMDAgTWJpdC9zIFBNRHMuCiAgICBUaGUgR01JSSBhbmQgVEJJIG1vZGVzIGFyZSB1c2VkIHRvIGNvbm5lY3Qgd2l0aCBHaWdhYml0IFBNRHMuICBJbnRlcm5hbAogICAgZGF0YSBmbG93cyB0byBhbmQgZnJvbSB0aGUgRXRoZXJuZXQgQ29udHJvbGxlciB0aHJvdWdoIHRoZSBTd2l0Y2ggRmFicmljLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCB1c2VzIGl0cyB0cmFuc21pdCBhbmQgcmVjZWl2ZSBETUEgY2hhbm5lbHMgdG8gbWFuYWdlCiAgICBkYXRhIGZsb3dzIHRocm91Z2ggYnVmZmVyIGRlc2NyaXB0b3JzIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlCiAgICBzeXN0ZW0gKHRoZSBkZXNjcmlwdG9ycyBjYW4gZXhpc3QgYW55d2hlcmUgaW4gdGhlIHN5c3RlbSBtZW1vcnkgbWFwKS4KICAgIFRoZXNlIGRlc2NyaXB0b3JzIGFyZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBwb2ludCB0byBidWZmZXJzIGZpbGxlZAogICAgd2l0aCBkYXRhIHJlYWR5IHRvIHRyYW5zbWl0IG92ZXIgRXRoZXJuZXQsIG9yIHRoZXkgcG9pbnQgdG8gZW1wdHkKICAgIGJ1ZmZlcnMgcmVhZHkgdG8gcmVjZWl2ZSBkYXRhIGZyb20gRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OGFhMGMzNDI3ZjNlY2RlYjM0YWFiZmJiZTJkZDIzYjZhZDhmNDBlCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MDE6MzMgMjAwNiArMDgwMAoKICAgIFR1bmRyYSB0c2kxMDggaGVhZGVyIGZpbGUuCgogICAgVGhlIFR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uIChUdW5kcmEpIFRzaTEwOCBpcyBhIGhvc3QgYnJpZGdlIGZvcgogICAgUG93ZXJQQyBwcm9jZXNzb3JzIHRoYXQgb2ZmZXJzIG51bWVyb3VzIHN5c3RlbSBpbnRlcmNvbm5lY3Qgb3B0aW9ucyBmb3IKICAgIGVtYmVkZGVkIGFwcGxpY2F0aW9uIGRlc2lnbmVycy4gVGhlIFRzaTEwOCBjYW4gaW50ZXJjb25uZWN0IDYweCBvcgogICAgTVBYIHByb2Nlc3NvcnMgdG8gUENJL1ggcGVyaXBoZXJhbHMsIEREUjItNDAwIG1lbW9yeSwgR2lnYWJpdCBFdGhlcm5ldCwKICAgIGFuZCBGbGFzaC4gUHJvdmlkZWQgdGhlIG1hY3JvIGRlZmluZSBmb3IgdHNpMTA4IGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4N2M0ZGIwOTY5OWM2Yjg5MTc2YjMxMDA0YWZjYjgzZWIxNTg1ZDQ3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTk6MTUgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhpZ2ggbGV2ZWwgY29kZTp0c2kxMDggaW5pdCArIG1wYzc0NDhocGMyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjc4MDFiOGFiMTFjNjFiNTc3ZTQ1NzQyYTUxNWJiM2IyM2I4MDI0MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU3OjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgTWFrZSAsY29uZmlnLm1rIGFuZCBsaW5rIGZpbGUgZm9yIHRoZSBtcGM3NDQ4aHBjMiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NDExYzBjM2JiYzc5ZjliYThhZWY1ODI5NmE0MmQ4ZjlkOGEwYTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1NTowNCAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIFRoZSBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjI1YmI1ZGRiNTBiMjQzZjkzMTI2MmNhOGM0Njk1NjQwOTQ3MTkxNwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjUyOjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgbG93IGxldmVsIGFzc2VtYmxlIGxhbmd1YWdlIGluaXQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjNTI3ODNiM2QwMjRlMTUzYzQ5NzJiOTczMzJlMzE0YmMzYmRjNDYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo0OTo1MSAyMDA2ICswODAwCgogICAgR2VuZXJhbCBjb2RlIG1vZGlmaWNhdGlvbiBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydC4KICAgIDEuIEFkZCA3NDQ3QSBhbmQgNzQ0OCBwcm9jZXNzb3Igc3VwcG9ydC4KICAgIDIuIEFkZCB0aGUgZm9sbG93aW5nIGZsYWdzLgoKICAgIENGR19DT05GSUdfQlVTX0NMSyA6IElmIHRoZSA3NHh4IGJ1cyBmcmVxdWVuY3kgY2FuIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkKICAgIChzdWNoIGFzIGJ5IHN3aXRjaCBvbiBib2FyZCksIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIENGR19FWENFUFRJT05fQUZURVJfUkVMT0NBVEU6IElmIGFuIGV4Y2VwdGlvbiBvY2N1cnMgYWZ0ZXIgdGhlIHUtYm9vdAogICAgcmVsb2NhdGVzIHRvIFJBTSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTjogSWYgdGhlIHByaW50IG91dCBmdW5jdGlvbiB3aWxsIGNhdXNlIHRoZQogICAgc3lzdGVtIGhhbmcgaW4gZXhjZXB0aW9uLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBUaGVyZSBpcyBhIGRlc2lnbiBpc3N1ZSBmb3IgdHNpMTA4LzEwOSBwY2kgY29uZmlndXJlICByZWFkLiBXaGVuIHBjaSBzY2FuCiAgICB0aGUgc2xvdHMsIGlmIHRoZXJlIGlzIG5vIHBjaSBjYXJkLCB0aGUgdHNpMTA4Lzkgd2lsbCBjYXVzZSBhIG1hY2hpbmUKICAgIGNoZWNrIGV4Y2VwdGlvbiBmb3IgbXBjNzQ0OCBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTM2NmJmNDJmMjJkNjdlZmNlOGRhM2Y4YzQwYTQzZDRhM2MyNjk1CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MzQ6NDcgMjAwNiArMDgwMAoKICAgIEFkZCBSRUFETUUgZmlsZSBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjU3MjFiNWNlYzJiZTRiY2U3OWNmYWRlMTdlYzhmNmFhMWU2NzUyNgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMjowNDozOCAyMDA2ICswMTAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIE1hcmVsVjM4QiBib2FyZAogICAgIC0gYWRkIHdhdGNoZG9nIHN1cHBvcnQKICAgICAtIGVuYWJsZSBHUElPX1dLVVBfNyBwaW4gZm9yIGlucHV0CiAgICAgLSBjb2RlIGNsZWFudXAKCmNvbW1pdCBmZmExNTBiYzkwYzk0M2NhMjY1MTcwYmQxYmUzZjI5MzY3NGRkNWM3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjQ1OjQ2IDIwMDYgKzAxMDAKCiAgICAtIEZpeCBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgdXNlIG9mIEVMREsgNCB3aGVuIGNvbXBpbGluZyBmb3IgTWFyZWxWMzhCOgoJICAqIHJlbW92ZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyBldGhhZGRyLmMKCSAgKiBhZGp1c3QgbGlua2VyIHNjcmlwdCAoZml4ZXMgYSBjcmFzaCByZXN1bHRpbmcgZnJvbSBpbmNvcnJlY3QKCSAgZGVmaW5pdGlvbiBvZiBfX3VfYm9vdF9jbWRfc3RhcnQpCiAgICAtIFNvbWUgTWFyZWxWMzhCIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkYWU4MGYzY2FmOTc1NGE2ZGQzZGRmM2NmOTAzZDBjNDZjYmQ0Mzg1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjM4OjE2IDIwMDYgKzAxMDAKCiAgICAtIEFkZCBNUEM1WFhYIHJlZ2lzdGVyIGRlZmluaXRpb24gTVBDNVhYWF9XVV9HUElPX0RBVEFfSSBhbmQgY2hhbmdlIHRoZQogICAgICBNUEM1WFhYX1dVX0dQSU9fREFUQSBtYWNybyB0byBNUEM1WFhYX1dVX0dQSU9fREFUQV9PIChwZXIgTVBDNTIwMCBVc2VyJ3MKICAgICAgTWFudWFsKS4gUmVwbGFjZSB0aGUgdXNlcyBvZiBNUEM1WFhYX1dVX0dQSU9fREFUQSB3aXRoCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gZm9yIGFmZmVjdGVkIGJvYXJkcy4KCiAgICAtIEFkZCBkZWZpbnRpb25zIGZvciBzb21lIE1QQzVYWFggR1BJTyBwaW5zLgoKY29tbWl0IDgyZDljOWVjMjlhMWJlYzFiMDNiYTYxNjQyNWViYWVkMjMxMDcyYzgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6MzQ6MjkgMjAwNiArMDEwMAoKICAgIENoYW5nZWQgTWFyZWxWMzhCIGJvYXJkIG1ha2UgdGFyZ2V0IHRvIGxvd2VyY2FzZS4gQ29uZmlnIGZpbGUgY2xlYW51cC4KCmNvbW1pdCAxOTU0YmU2ZTljOTQyMWI0NWQwYTlkMDViMTAzNTZhY2M3NTYzMTUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjkgMDE6MDM6NTEgMjAwNiArMDIwMAoKICAgIEF1dG9tYXRpY2FsbHkgYWRqdXN0IEFSRkxBR1Mgc28gIm1ha2UgLXMiIGlzIHJlYWxseSBzaWxlbnQuCgpjb21taXQgZmFlNjg0ZTg5ODQ0ODU2MzgzYmRmMTAxNDQwODg5NTU3ZGYzZTZiMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNjo0NTowMCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBvbWFwOTI1LmM6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEyNjU1ODE1MDJhYjhlYThjMDhlOGVkYmU5YmY2NGZiZDYyZmQ3NzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTc6MTI6NTggMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gQWRkIHNvbWUgbWlzc2luZyBtYWNodHlwZXMgZm9yIG5ldHN0YXIgJiB2b2ljZWJsdWUgYm9hcmRzCgogICAgVXNlIE1BQ0hfVFlQRV9ORVRTVEFSIGFuZCBNQUNIX1RZUEVfVk9JQ0VCTFVFIGRlZmluZXMgaW5zdGVhZCBvZgogICAgbnVtYmVycyBpbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NTZmMDU0NDEwY2VmNTJkODY4ZmViMzMwMTY4YjJhNGM0MDkxMzI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE1OjU1OjUyIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIE5BTkQ6IFBhcnRpdGlvbiBuYW1lIHN1cHBvcnQgYWRkZWQgdG8gTkFORCBzdWJzeXN0ZW0KCiAgICBjaHBhcnQsIG5ib290IGFuZCBOQU5EIHN1YnN5c3RlbSByZWxhdGVkIGNvbW1hbmRzIG5vdyBhY2NlcHQgYWxzbyBwYXJ0aXRpb24KICAgIG5hbWUgdG8gc3BlY2lmeSBvZmZzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3YTY5YTE4YzJlY2ZkYTkwNDIzMWZkZjIzZTI1MjNlYTc3OTJlYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOTo0NCAyMDA2ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAyNzUxYTk1YWJkMWI5NjkxMTA4MWMzNTdlOTZhMTJmYTk3YjQwZGVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDI6Mjk6MTQgMjAwNiArMDIwMAoKICAgIEVuYWJsZSBjb21tYW5kbGluZSBlZGl0aW5nIGFuZCBodXNoIHNoZWxsIG9uIGFsbCBUUU0gYm9hcmRzLgoKY29tbWl0IDgwNzhmMWE1ZjYzYTczOWI4NTMzNDc4ZjZjMmI2MmZiMWUyZjc5ZDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyODowMiAyMDA2ICswMjAwCgogICAgUkVBRE1FIHNheXMgQ0ZHX0FVVE9fQ09NUExFVEUsIGJ1dCBvY2RlIHVzZXMgQ09ORklHX0FVVE9fQ09NUExFVEUKCmNvbW1pdCA0NzFhN2JlN2EwNDJlOTVlNDQwZjVkZTk2OWM5NzY1MjE0YWU4ZDZlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMToxNDozMiAyMDA2ICswMjAwCgogICAgQ2hlY2sgZm9yIGlsbGVnYWwgY2hhcmFjdGVyICc9JyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4KCiAgICBNYWtlIHN1cmUgdGhlIHN0cmluZyBwYXNzZWQgYXMgdmFyaWFibGUgbmFtZSBkb2VzIG5vdCBjb250YWluIGEgJz0nCiAgICBjaGFyYWN0ZXIuIFRoaXMgbm90IG9ubHkgcHJldmVudHMgdGhlIGNvbW1vbiBlcnJvciBvciB0eXBpbmcKICAgICJzZXRlbnYgZm9vPWJhciIgaW5zdGVhZCBvZiAic2V0ZW52IGZvbyBiYXIiLCBidXQgKG1vcmUgaW1wb3J0YW50bHkpCiAgICBhbHNvIGNsb3NlcyBhIGJhY2tkb29yIHdoaWNoIGFsbG93ZWQgdG8gZGVsZXRlIHdyaXRlLXByb3RlY3RlZAogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBmb3IgZXhhbXBsZSBieSB1c2luZyAic2V0ZW52IGV0aGFkZHI9Ii4KCmNvbW1pdCAxOTk3M2I2YWQ5ODYzYTU2ZjVjNWZiY2ZkOTBlMjBhYjI0OTBhMmMyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDA6Mzg6MzkgMjAwNiArMDIwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBlMTE4ODdhNzdkODEwNzc0MTZhMmQxYzVlMDM1NDkxNmZlZThjMDM0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTc6NTU6MzEgMjAwNiArMDIwMAoKICAgIERvbid0IHBhc3MgYW55IGRlYnVnIG9wdGlvbnMgZGlyZWN0bHkgdG8gdGhlIGFzc2VtYmxlcgoKICAgIFdoZW4gcGFzc2luZyB0aGUgLWcgb3B0aW9uIHRvIGdjYywgZ2NjIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBhCiAgICBzdWl0YWJsZSAtLWc8Zm9ybWF0PiBvcHRpb24gdG8gcGFzcyBvbiB0byB0aGUgYXNzZW1ibGVyLgogICAgVGh1cywgdGhlcmUncyBubyBwb2ludCBpbiBmb3JjaW5nIGEgc3BlY2lmaWMgZGVidWcgb3B0aW9uIG9uIHRoZQogICAgYXNzZW1ibGVyIHVzaW5nIHRoZSAtV2EgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGVhMDhmZjZlMTRmOWViYjhjMDdjZmE3OWM1MWVmNTQwZWIwODczOTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI3IDA3OjQ3OjIyIDIwMDYgLTA1MDAKCiAgICBNUEM4Nnh4OiBDbGVhbmVkIHVwIHVudXNlZCBhbmQgY29uZGl0aW9uYWxseSB1c2VkIGxvY2FsIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzODkzNmNkYWU0NmJmZDI2MjNmZjgzZjZjZTliNjE2ZDM2YWIwZjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAyNyAxMTo1NToyMSAyMDA2ICswMjAwCgogICAgRml4ICJhciIgZmxhZ3MgaW4gc29tZSBNYWtlZmlsZXMgdG8gYWxsb3cgZm9yIHNpbGVudCAibWFrZSAtcyIKCmNvbW1pdCA0NjUzZjkxYzEzZWQ1MWMyMWNjNGMzODU1NzQ1ZDY5YTNmYjE4MTdmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlciAobm93IGZvciByZWFsKTogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBiOTg1YjVkNmU0ZmI4OGY1MDhmN2FhMGYxMjZjMmUyN2FkYTJiOTk5CkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlcjogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyYjJhNDBiZWJiZjE4MjI1MDZlODBlNjMxZDcyNTNlNjBmMGUwZmU2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBPY3QgMjYgMTY6MjQ6MzEgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA1ZTNiMGJjMTlmMDdlZDI3N2Q4NTMyNGFkMDQyNzY0MmM4OTgxYmFmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTU6NDg6NTkgMjAwNiArMDIwMAoKICAgIEZpbmlzaCB1cCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwL0FUU1RLMTAwMiBib2FyZHMKCiAgICBBZGQgYXRzdGsxMDAyX2NvbmZpZyB0YXJnZXQgdG8gTWFrZWZpbGUgYW5kIG1vdmUgdGhlIEFWUjMyIHNlY3Rpb24KICAgIGRvd24gYmVsb3cgQmxhY2tmaW4gc28gdGhhdCBpdCBkb2Vzbid0IGVuZCB1cCBpbiB0aGUgbWlkZGxlIG9mCiAgICBNSVBTLgoKICAgIERyb3AgdGhlIGF1dG9nZW5lcmF0ZWQgbGlua2VyIHNjcmlwdCB0aGluZyBmb3Igbm93LiBXaWxsIGhhdmUgdG8KICAgIHJldmlzaXQgaG93IHRvIGhhbmRsZSBjaGlwcyB3aXRoIGRpZmZlcmVudCBmbGFzaCBhbmQgUkFNIGxheW91dAogICAgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzc2Zjk1MWE3NDdjZmI4N2JhODI2ZWY0NWI1YWVhODJkNWI1ZGJiNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjQgMjM6NDc6MzcgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIE11bHRpLUltYWdlIGZpbGVzIHRoYXQgY29udGFpbiBhIGRldmljZSB0cmVlCgogICAgSWYgYSBNdWx0aS1JbWFnZSBmaWxlIGNvbnRhaW5zIGEgdGhpcmQgaW1hZ2Ugd2UgdHJ5IHRvIHVzZSBpdCBhcyBhCiAgICBkZXZpY2UgdHJlZS4gIFRoZSBkZXZpY2UgdHJlZSBpbWFnZSBpcyBhc3N1bWVkIHRvIGJlIHVuY29tcHJlc3NlZCBpbiB0aGUKICAgIGltYWdlIGZpbGUuICBXZSBhdXRvbWF0aWNhbGx5IGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgZGV2aWNlIHRyZWUgaW4gbWVtb3J5CiAgICBhbmQgcHJvdmlkZSBhbiA4ayBwYWQgdG8gYWxsb3cgbW9yZSB0aGFuIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgZ3Jvd3RoLgoKICAgIEFkZGl0aW9uYWxseSwgYSBkZXZpY2UgdHJlZSB0aGF0IHdhcyBjb250YWluZWQgaW4gZmxhc2ggd2lsbCBub3cgYXV0b21hdGljYWxseQogICAgZ2V0IGNvcGllZCB0byBzeXN0ZW0gbWVtb3J5IGFzIHBhcnQgb2YgYm9vdC4gIFByZXZpb3VzbHkgYW4gZXJyb3Igd2FzCiAgICByZXBvcnRlZCBpZiBvbmUgdHJpZWQgdG8gYm9vdCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2M1MmM0Yjk0M2ZmNTJiYmU4Nzk2YTdlMmQzZTQ3NmNlYWYzZjUxMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMjE6MzU6NTUgMjAwNiArMDIwMAoKICAgIFN3aXRjaCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBDSEFOR0VMT0cgZmlsZS4KICAgICh1c2UgIm1ha2UgQ0hBTkdFTE9HIiB0byB1cGRhdGUgaXQgZnJvbSB0aW1lIHRvIHRpbWUpCgpjb21taXQgN2FkZTBjNjM0YTk3OWMzMmZhOTFhNzRlOGY1Nzc1ZjI0NjUxZmJlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxODowNjo0OCAyMDA2ICswMjAwCgogICAgRml4IGJ1ZyBpbiBQUEM0NDAgTkFORCBkcml2ZXIgY3B1L3BwYzR4eC9uZGZjLmMKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMjQgT2N0IDIwMDYKCmNvbW1pdCA4YWUzYjcxM2IyMjg2ZTBjMzIxM2I3ODAyMDYyZTRjMTU5OTAxMGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTc6MjQ6NTUgMjAwNiArMDIwMAoKICAgIE1lcmdlIHdpdGggL2hvbWUvd2QvZ2l0L3UtYm9vdC9tYXN0ZXIKCmNvbW1pdCA0N2E2OTg5YzEwNjg1ZDJhYjNlZmNmOTUyMjhjZTUwZDJhNDk2ZDNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTU6MzI6NTcgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cAoKY29tbWl0IDNhNzhlM2U3NWI2MzNlY2I2NDEzMTE0ZmZkMTFlMmYwMDBjNGYxMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo1MTozNiAyMDA2ICswMjAwCgogICAgTW92ZSBhdHN0azEwMDAgZmlsZXMgaW50byB2ZW5kb3Igc3BlY2lmaWMgZGlyZWN0b3J5LgogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAxMiBTZXAgMjAwNgoKY29tbWl0IDZjY2VjNDQ5MmU3NzQyOGZkNmVhZmQzZGZlOTRmYmRmMDhlOTFkMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo0MjozNyAyMDA2ICswMjAwCgogICAgQWRkIEFUU1RLMTAwMCBhbmQgQVRTVEsxMDAyIGJvYXJkIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMCB3aXRoIHRoZSBBVFNUSzEwMDIgQ1BVCiAgICBkYXVnaHRlcmJvYXJkLgoKICAgIEFUU1RLMTAwMCBpcyBhIGZ1bGwtZmVhdHVyZWQgZGV2ZWxvcG1lbnQgYm9hcmQgZm9yIEFUMzJBUCBDUFVzLiBJdAogICAgaGFzIHR3byBldGhlcm5ldCBwb3J0cywgYSBoaWdoIHF1YWxpdHkgUVZHQSBMQ0QgcGFuZWwsIGEgbG91ZHNwZWFrZXIsCiAgICBhbmQgY29ubmVjdG9ycyBmb3IgVVNBUlQsIFBTLzIsIFZHQSwgVVNCLCBNTUMvU0QgY2FyZHMgYW5kCiAgICBDb21wYWN0Rmxhc2ggY2FyZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoaXMgcGFnZToKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvdG9vbHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBUaGUgQVRTVEsxMDAyIGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgdGhlIEFUU1RLMTAwMCBzdXBwb3J0aW5nIHRoZQogICAgQVQzMkFQNzAwMCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGY5M2FlNzg4YzM2NDBmY2RlNWRiMzgzNDcxZDQ1NTQ4ZmY0MDYwZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDozMToyNCAyMDA2ICswMjAwCgogICAgQWRkIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbCBBVDMyIGFuZCBBVDkxIGNoaXBzCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBpcyBhIGZpcnN0IGF0dGVtcHQgYXQgY3JlYXRpbmcgYSBjb21tb24gc2VyaWFsIGRyaXZlciBmb3IgQXRtZWwKICAgIGNoaXBzLiBGb3Igbm93LCBpdCBzdXBwb3J0cyB0aGUgQVQzMkFQNzAwMCBBVlIzMiBjaGlwLCBidXQgaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzdXBwb3J0IEFUOTFSTTkyMDAgYW5kIG90aGVyIEFSTS1iYXNlZCBjaGlwcyB3aXRoIHNvbWUKICAgIG1pbm9yIG1vZGlmaWNhdGlvbnMuCgogICAgVGhlcmUncyBub3RoaW5nIGZ1bmRhbWVudGFsbHkgQVZSMzItc3BlY2lmaWMgaW4gdGhpcyBkcml2ZXIsIGJ1dCBpdAogICAgZG9lcyB1c2Ugc29tZSBmZWF0dXJlcyB3aGljaCBhcmUgY3VycmVudGx5IG9ubHkgZGVmaW5lZCBmb3IgdGhlCiAgICBBVDMyQVAgQ1BVIHBvcnQ6CiAgICAgICogcG1fZ2V0X2Nsb2NrX2ZyZXE6IE9idGFpbiB0aGUgY2xvY2sgZnJlcXVlbmN5IG9mIGEgZ2l2ZW4gZG9tYWluCiAgICAgICogZ2QtPmNvbnNvbGVfdWFydDogQSAic3RydWN0IGRldmljZSIgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dAoJcmVnaXN0ZXIgbWFwcGluZ3MsIGdwaW8gcmVzb3VyY2VzIGFuZCBjbG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZQoJVUFSVCBkZXZpY2UuCgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgZmVhdHVyZXMsIHBsZWFzZSBzZWUgdGhlICJBVDMyQVAKICAgIENQVSIgcGF0Y2guCgpjb21taXQgNzJhMDg3ZTA0NzA1YzI2Y2FkOTgyODc5ZWJkMDZiNTI4MWJmODI1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjI3OjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgQVQzMkFQIENQVSBhbmQgQVQzMkFQNzAwMCBTb0Mgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVQzMkFQIENQVSBmYW1pbHkgYW5kIHRoZSBBVDMyQVA3MDAwCiAgICBjaGlwLCB3aGljaCBpcyB0aGUgZmlyc3QgY2hpcCBpbXBsZW1lbnRpbmcgdGhlIEFWUjMyIGFyY2hpdGVjdHVyZS4KCiAgICBUaGUgQVQzMkFQIENQVSBjb3JlIGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBpbXBsZW1lbnRhdGlvbiBmZWF0dXJpbmcgYQogICAgNy1zdGFnZSBwaXBlbGluZSwgc2VwYXJhdGUgaW5zdHJ1Y3Rpb24tIGFuZCBkYXRhIGNhY2hlcywgYW5kIGEgTU1VLgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlICJBVlIzMiBBUCBUZWNobmljYWwgUmVmZXJlbmNlIjoKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcmVzb3VyY2VzL3Byb2RfZG9jdW1lbnRzL2RvYzMyMDAxLnBkZgoKICAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZSBBVDMyQVA3MDAwIGNoaXAgY29tZXMgd2l0aCBhIGxhcmdlIHNldCBvZgogICAgaW50ZWdyYXRlZCBwZXJpcGhlcmFscywgbWFueSBvZiB3aGljaCBhcmUgc2hhcmVkIHdpdGggdGhlIEFUOTEgc2VyaWVzCiAgICBvZiBBUk0tYmFzZWQgbWljcm9jb250cm9sbGVycyBmcm9tIEF0bWVsLiBGdWxsIGRhdGEgc2hlZXQgaXMKICAgIGF2YWlsYWJsZSBoZXJlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDMucGRmCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2I2NGZlZjMzYzY2YmU2NDg4MjZjMGZmOTc1ODI5OGVmMTNkMDYwNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjIxOjE2IDIwMDYgKzAyMDAKCiAgICBBZGQgQVZSMzIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgNiBTZXAgMjAwNiAxNjoyMzowMiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY29kZSBmb3IgdGhlIEF0bWVsIEFWUjMyCiAgICBhcmNoaXRlY3R1cmUuIFNlZSBkb2MvUkVBRE1FLkFWUjMyIGZvciBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJkYTJkOWE0NzY2MDYzYjk4NDhmM2EzNWFkNjAyNTQ5OWNmODcyNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NzozMyAyMDA2ICswMjAwCgogICAgVXNlIC1nIGluc3RlYWQgb2YgLWdzdGFicyBpbiBBRkxBR1NfREVCVUcKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMzAgQXVnIDIwMDYKCiAgICBJbiBjb25maWcubWssIC1XYSwtZ3N0YWJzIGlzIHVuY29uZGl0aW9uYWxseSBhcHBlbmRlZCB0byBBRkxBR1Mgbm8KICAgIG1hdHRlciB3aGF0IHRoZSB0YXJnZXQncyBwcmVmZXJyZWQgZGVidWdnaW5nIGZvcm1hdCBpcy4gVGhpcyBwYXRjaAogICAgc2ltcGx5IHJlcGxhY2VzIC1nc3RhYnMgd2l0aCAtZywgc28gdGhhdCB0aGUgZGVmYXVsdCBkZWJ1Z2dpbmcgZm9ybWF0CiAgICBmb3IgdGhlIGFyY2hpdGVjdHVyZSBpcyB1c2VkLgoKY29tbWl0IDk2NTgyOTg3MjE2OWMyOTk2MDIzODQwZDk4ZTFkODVhZDE0OGQ2MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NToxOCAyMDA2ICswMjAwCgogICAgRml4L3dvcmthcm91bmQgYnJva2VuIGRlcGVuZGVuY3kgaGFuZGxpbmcgd2l0aCBtYWtlIDMuODEKICAgIEJhc2VkIG9uIHBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMjkgQXVnIDIwMDYgMTE6MjA6MzkgKzAyMDAKCmNvbW1pdCA4MzE4ZmJmOGNjMzA0MThiNjIxZWE5ZjM5Yjg0YjRjMWEwOGYwMDNhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAyMyAyMjoxNzowNSAyMDA2ICswMjAwCgogICAgRml4IHNlcXVvaWEgc2VwYXJhdGUgb2JqZWN0IGRpcmVjb3J5IGJ1aWxkaW5nIHByb2JsZW1zLgoKY29tbWl0IDNkZmE5Y2ZkY2VlNzhiMzBkYTM0MzIzMThiMzI4MjFmZmFiZTk3NGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE3OjE2OjM1IDIwMDYgLTA1MDAKCiAgICBVc2UgZ2VuZXJpYyBJMkMgcmVnaXN0ZXIgYmxvY2sgb24gODV4eCBhbmQgODZ4eC4KCiAgICBSZXBsYWNlIHByaXZhdGUgSU1NQVAgSTJDIHN0cnVjdHVyZXMgd2l0aCBnZW5lcmljIHJlZyBibG9jawogICAgYW5kIGFsbG93IDg2eHggdG8gaGF2ZSBtdWx0aXBsZSBJMkMgZGV2aWNlIGJ1c3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1MDEyODI3ZGYxMWNhMGM5YmUxZGY1ZjhiMTUzZTE4OGRjMmZhN2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjU0OjM0IDIwMDYgLTA1MDAKCiAgICBGaXggY29tcGlsYXRpb24gd2FybmluZ3Mgb24gYSBmZXcgODV4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMDQ3NjcyNjg0Y2Y4NWNiNmY5NmExZmJjOTkzMTgwYWFhZjE5YTk5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyMCAxNTo1MDoxNSAyMDA2IC0wNTAwCgogICAgQ29udmVydGVkIGFsbCA4NXh4IGJvYXJkcyB0byB1c2UgYSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBJbnRyb2R1Y2VkIENPRklHX0ZTTF9JMkMgdG8gc2VsZWN0IHRoZSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBBbmQgcmVtb3ZlZCBoYXJkIGkyYyBwYXRoIGZyb20gYSBmZXcgdS1ib290LmxkcyBzY2lwdHMgdG9vLgogICAgTWlub3Igd2hpdGVzcGFjZSBjbGVhbnVwcyBhbG9uZyB0aGUgd2F5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQ0NWY2OWUzNjJiMDU4OTJjOWU5MmE3OTA3ZTU4MjA5OTU2MTJhYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTI6MDI6MjQgMjAwNiAtMDUwMAoKICAgIFJld3JpdGUgYSBzZXJpZXMgb2YgZ290byBzdGF0ZW1lbnRzIGFzIGEgc2VxdWVuY2VzIG9mCiAgICBjb25kaXRpb25hbCBleHByZXNzaW9ucyBpbnN0ZWFkLgoKICAgIFVzZSBjb25zaXN0ZW50IHJldHVybiBjb2RlIDAvLTEgZm9yIGdvb2QvYmFkIGluZGljYXRvcnMuCgogICAgSW5jbHVkZSBvbmUgZmV3ZXIgZmlsZSBpZiB0aGUgZHJpdmVyIGlzbid0IHVzZWQgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzIzN2MwMzNiMDJmZTI5NTg4MDQzNWYxZWI4MDgxOWEwYzk4NzUzMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MDI6MTYgMjAwNiAtMDUwMAoKICAgIE1vdmVkIGkyYyBkcml2ZXIgb3V0IG9mIGNwdS9tcGM4Nnh4L2kyYy5jIGludG8gZHJpdmVycy9mc2xfaTJjLmMKCiAgICBpbiBhbiBlZmZvcnQgdG8gYmVnaW4gdG8gdW5pZnkgdGhlIHVtcHRlZW4gRlNMIEkyQyBkcml2ZXJzIHRoYXQKICAgIGFyZSBhbGwgb3RoZXJ3aXNlIHZlcnkgc2ltaWxhci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzYTdmY2RmMzdmNmVhOTQyOWFlMDRjOWRmNjdmODkzMzY0Y2ZlNGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE5IDExOjMzOjUyIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjllMWY1YjllNmY5Y2U4MTBmNWU4YmYyOTYxYzk1NDJhNTg2NWMyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDE3IDA2OjE0OjMxIDIwMDYgKzAyMDAKCiAgICBBZGQgbW9uaXRvciBmdW5jdGlvbnMgZm9yIGluZGlyZWN0IGFjY2VzcyB0byBQUEM0NDAgRENSJ3MKICAgIFBhdGNoIGJ5IExlb25pZCBCYXJ5dWRpbiwgMTIgT2N0IDIwMDYKCmNvbW1pdCA1ZjMyNDlhMGExNjhlNDQ2YTRjYzk2NjliMmJjZTBiYzQ1NmYwYTA5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMyAxNjo0Nzo1MyAyMDA2IC0wNTAwCgogICAgRml4ZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIFJlbW92ZWQgc3B1cmlvdXMgTEFXQVIgdGhpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZWU5MGNiNzdlMDFkNmU4Y2NkMzdlMWJkOTY2Nzg1OTc4NzVjMzkxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxMiAxMDo0MjozNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUgZmlsZXMgYW5kIGxvY2FsIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWVhZjNhNWZmNDk2MGE0NmYzYTkwNjM1NjhiYTJhZjc4ODNmMDdjNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIE9jdCAxMCAwMDoyMzozMiAyMDA2IC0wNjAwCgogICAgRml4IHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZy4KCiAgICBXaGVuIENPTkZJR19PRl9GTEFHX1RSRUUgaXMgc2V0LCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIHRoYXQgJ2xlbicgaW4KICAgIGRvX2Jvb3RtX2xpbnV4KCkgbWF5IGJlIHVuaW5pdGlhbGl6ZWQuICBUaGVyZSBpcyBubyBwb3NzaWJpbGl0eSBpbiB0aGUKICAgIGN1cnJlbnQgY29kZSB0aGF0IGxlbiB3aWxsIGdldCB1c2VkIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGlzIGZpeCBmb2xsb3dzCiAgICB0aGUgZXhpc3RpbmcgY29udmVudGlvbiBvZiBzZXR0aW5nIGJvdGggbGVuIGFuZCBkYXRhIHRvIHplcm8gYXQgdGhlIHNhbWUKICAgIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNzZlYjg3YWFhNjAxZjcyOGY5YjhlNWU5Y2QyNzExYTY3ZjUyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDE1OjEzOjAxIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjY1MWJhYTM2NWU1NDQ3MjQ2YWFkNmE2MzNjY2Q2NjdjZjI0YTM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAxMSAxMDoxMDo0MyAyMDA2IC0wNTAwCgogICAgTW92ZSAiYXIiIGZsYWdzIHRvIGNvbmZpZy5tayB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDFmZDU2OTlhNGEyNGY1YzFkYWIxYjMyZjQ4MGJhY2UxZWJiOWZjM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE5OjAzIDIwMDYgLTA1MDAKCiAgICBDb2Rpbmcgc3R5bGUgY2hhbmdlcyB0byByZW1vdmUgbG9jYWwgdmFyaWJsZSBibG9ja3MKICAgIGFuZCByZWZvcm1hdCBhIGJpdCBuaWNlci4KCmNvbW1pdCA4YjI4M2RiYjNhMDhkMWI4ZDQwNmJjMTVmMTE5ZTA4MWIzZTI2MDZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzoxNjowNCAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDdiMzgyYjcxMjVmMjM5N2NjZTYzMjUzZGY2MmYxODNlM2RmYTI3NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE0OjQ1IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgZTEwMzkwZGRkNzM2YjBkYWQxNTI4ZWVjNGIwZmUzNWMwODI3MTM5YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDY6NTMgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCA4OTg3NWU5NmJhM2YwMjMxNTdiZjUwZDVmOGUzM2JmMjU0OTY0YTc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowMzo0MyAyMDA2IC0wNTAwCgogICAgUmFuIGxpbmRlbnQgYW5kIGNsZWFuZWQgdXAgd2hpdGVzcGFjZSBpc3N1ZXMuCiAgICBGb3JtYXQgZm9yIDgwLWNvbHVtbnMgdG9vLgoKY29tbWl0IDMzMzk2MWFlNzA5NWZjNjZkOGEwNDFmY2UxYWM5ZWU4NzNiMDlkODYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAyOjIyIDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBhbmQgODAtY29sIGlzc3Vlcy4KCmNvbW1pdCA1YzkxMmNiMWMzMTI2NmM2NmNhNTliMzZmOWI2Zjg3Mjk2NDIxZDc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzY6NTEgMjAwNiArMDIwMAoKICAgIENGR19OQU5EX1FVSUVUX1RFU1QgYWRkZWQgdG8gbm90IHdhcm4gdXBvbiBtaXNzaW5nIE5BTkQgZGV2aWNlCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNWJjNTI4ZmE0ZGE3NTFkNDcyMzk3YjMwODEzNzIzOGE2NDY1YWZkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjM1OjI1IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQUxQUiBjb2RlIChOQU5EIHN1cHBvcnQgd29ya2luZyBub3cpCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNzdkNTAzNDg0N2QzMjg3NTNiODBjNDZiODNmOTYwYTE0YTI2ZjQwZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjMzOjAzIDIwMDYgKzAyMDAKCiAgICBSZW1vdmUgY29tcGlsZSB3YXJuaW5ncyBpbiBmcGdhIGNvZGUKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmMzQ0Mzg2N2U5MGQyOTc5YTdkZDFjNjViMGQ1Mzc3NzdlMWY5ODUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzA6NTIgMjAwNiArMDIwMAoKICAgIEFkZCBDT05GSUdfQk9BUkRfUkVTRVQgdG8gY29uZmlndXJlIGJvYXJkIHNwZWNpZmljIHJlc2V0IGZ1bmN0aW9uCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgZjU1ZGYxODE4N2U3YTQ1Y2I3M2ZlYzQzNzBkMTIxMzVlNjY5MWFlMQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgU2VwIDI5IDA4OjIzOjEyIDIwMDYgKzAxMDAKCiAgICBGaXggbWlzc2luZyB0Q3ljbGUvbW9kZnJlcSBjYWxjdWxhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MjcyZGMyZjU4ZjI0NzNkODk5NWZjYzliOTE2NDQwY2ZiYTA4MGYwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjM1IDIwMDYgLTA1MDAKCiAgICBVcGRhdGVkIGNvbmZpZyBoZWFkZXJzIHRvIGFkZCBkZWZhdWx0IEZEVC1iYXNlZCBib290aW5nCgpjb21taXQgMDlmM2UwOWU5ZWJjZmE3OTE5Y2E4OTMxYTRiNTUwNGZhZGQxZjFkMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAxMyAxMDozNDoxOCAyMDA2IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGVUU0VDIDMgJiA0IG9uIDg1NDggQ0RTCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciB1c2luZyBlVFNFQyAzIGFuZCBlVFNFQyA0IG9uIHRoZSA4NTQ4IENEUy4KICAgICAgVGhpcyB3aWxsIG9ubHkgd29yayBvbiByZXYgMS4zIGJvYXJkcyAoYnV0IGRvZXNuJ3QgYnJlYWsgb2xkZXIgYm9hcmRzKQogICAgKiBDbGVhbmVkIHVwIHNvbWUgY29tbWVudHMgdG8gcmVmbGVjdCB0aGUgZXhwYW5kZWQgcm9sZSBvZiB0c2VjCiAgICAgIGluIG90aGVyIHN5c3RlbXMKCmNvbW1pdCAwODRkNjQ4YjEwOWM4OTg0ZjgzNjc0MDQzYzFhN2ZhMzg4NWVmODAxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjU2IDIwMDYgLTA1MDAKCiAgICBBZGRlZCBjb2RlIHRvIHN1cHBvcnQgMi42LjE4IFBDSSBjaGFuZ2VzIGluIHUtYm9vdAoKICAgICogQWRkZWQgY29kZSB0byBzd2l6emxlIHRoZSBJUlEgbWFwIGZvciB0aGUgUENJCgpjb21taXQgYWZiZGM2NDlmODc1MWU0ZjRmMWE2ZjUyN2VkZmUxMzk3NzNmMmMxNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTkgMDk6MzQ6MTAgMjAwNiAtMDUwMAoKICAgIE1vZGlmaWVkIG1ha2VmaWxlIGZvciBuZXcgYnVpbGQgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE0YmE2YTc5OGJlYjc1M2U3YTg2NDUwMDQxNGZjYzJkMTk4YjhiYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTQgMDg6NDA6MzYgMjAwNiAtMDUwMAoKICAgIEhhbmRsZSA4Nnh4IFNWUiB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBuZXcgUmVmZXJlbmNlIE1hbnVhbC4KICAgIEJvdGggODY0MSBhbmQgODY0MUQgaGF2ZSBTVlIgPT0gMHg4MDkwLCBhbmQgYXJlIGRpc3Rpbmd1aXNoZWQKICAgIGJ5IHRoZSBieXRlIGluIGJpdHMgMTYtMjMgaW5zdGVhZC4KICAgIFRoYW5rcyB0byBKYXNvbiBKaW4gZm9yIG5vdGljaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODhjOGY0OTIxZmM0N2ZiMGViMjM4NGIxNjU4NmYxYmQ3ZjI3NWJlNwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjggMTQ6MjU6MzEgMjAwNiArMDgwMAoKICAgIEZpeGVkIGFuIE9GLXRyZWUgb2ZmLWJ5LW9uZSBidWcgd2hlbiBhZGRpbmcgYSBuZXcgcHJvcGVydHkgbmFtZS4KICAgIFRoaXMgYnVnIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCBib290aW5nIHRvIHBhdXNlIGEgbG9uZyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQgY29tbWl0KQoKY29tbWl0IDliZmY3YTY5YTg4NWFkZWJiZDJiZDQ1OTkwNDk0ZWM0Y2Y5OThhMzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDExOjA1OjA5IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdHJhaWxpbmcgZW1wdHkgbGluZXMuCgpjb21taXQgY2Q2ZDczZDViODk1YTU5MzVhYzRmZGUwYTM1NjI4ODE0MmE1ODRlMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMDk6NDg6NDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBib2d1cyBtc3luYyBhbmQgdXNlIHZvbGF0aWxlIGFzbS4KCmNvbW1pdCA3NzhkNDUwNDljZTU5MjdiNjViM2ZmMWQ4ZTY2OTJiNjU0YmRkNDllCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwODoxNzoxNCAyMDA2IC0wNTAwCgogICAgQWRkIG15c2VsZiBhcyBtYWludGFpbmVyIGZvciBNUEM4NjQxSFBDTi4KCmNvbW1pdCAyZjE1Nzc2Y2NjNmRjMzIzNzdkOGJhOTY1MmI4ZjU4MDU5YzI3YzZkCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NTY3ODA2YjY3ZDBhZTgzNDkzYWE4ODIzYWQzYjZjOTE0ZjU4MWQ3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAyNSAxNDozODozNCAyMDA2IC0wNDAwCgogICAgQ2hhbmdlIHJhbWRpc2thZGRyIGFuZCBkdGJhZGRyCiAgICBSZW1vdmUgUEVYIGZsdWZmIGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYjc4NDIxZDlkYjQ5YzIxYTgyMWFmOGExOWMyMWMxZjdkZmIyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDEzOjMyOjQ1IDIwMDYgLTA1MDAKCiAgICAqIEFub3RoZXIgc21hbGwgZml4IGZvciBib290aW5nIHdpdGggZGlzYWJsZV9vZgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGE3Y2MwZjIxOTE4ZTZlY2YwN2VkNTcwNzVkNjdkZjJjNGExMjk5YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTE6MDQ6NDMgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgYW5kIGxpbmRlbnQgbmV3IEFIQ0kgZHJpdmVyLgoKY29tbWl0IGRhYmY5ZWY4YzEwYjRkZWFkNWVmMjEwNmVmNzQyYjFjMDZiNTQyZGUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTU6MTIgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIGRlZmluZSBhbmQgc2F0YSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbjxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NzgyYWM4MGIwMmYwZDAxYWZkMzA5ZTIyMDBkZDNjNzAzN2YyYmE0CkF1dGhvcjogSmluIFpoZW5neGlvbmcgPGphc29uQGJ1cy5hcC5mcmVlc2NhbGUubmV0PgpEYXRlOglXZWQgQXVnIDIzIDE5OjEwOjQ0IDIwMDYgKzA4MDAKCiAgICBBZGQgQUhDSSBzdXBwb3J0IHRvIHUtYm9vdAoKICAgIEFkZCBBSENJIHN1cHBvcnQgaW4gdS1ib290LCBlbmFibGUgdGhlIHNhdGEgZGlzayBjb250cm9sbGVycyB3aGljaAogICAgZm9sbG93aW5nIHRoZSBBSENJIHByb3RvY29sLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4ZWEyYWNmNWYxMzdjYWU5OTQxN2RmNGY1NzNkMDM2ZWUzODQ2NjgKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDE3OjU0OjMyIDIwMDYgKzA4MDAKCiAgICBBZGQgZHRiIGJvb3QtdXAgcGFyYW1ldGVyIHRvIGRlZmF1bHQgYm9vdCBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5Mzc3NWMyMDM2Yjk5YmFhMzkwZWE0MjVjNDc3MTg5NWJiYzYzYzQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjI2OjA4IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIGV2ZW4gbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IGFlNjI0MTY4NWNiY2YwYzc5YTM2MzY1MzBkMmNlYWIxZmIyOTFhOTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIG1vcmUgcG9vcmx5IGludHJvZHVjZWQgd2hpdGVzcGFjZS4KCmNvbW1pdCAyYzMzZThhMWM1MzViM2FlOTFjZjBiMjg0NDgwNjAwYmYzZjU3YzU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxNzo1NDowNSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDgwZTk1NWM3ZGQ5OGY0YjRmZDIzYzIxMTNjYWY3NWVkMmI3N2I1YjMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjI1OjI3IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCBmZmZmM2FlNTZmNTg0MmNhMzY3OWU0Y2U3OTIyYjgxOWE4N2FhZDlmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMjowNjoxOCAyMDA2IC0wNTAwCgogICAgR2VuZXJhbCBpbmRlbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cHMuCgpjb21taXQgNDFhMGU4YjMwNGQzZmY1NWZlMjdhMjMwNTA3YWFjNzk2ODQwMTZhYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTA6NDI6MjEgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgNWRlNjJjNDdhODYyOGIzZGE0ZDczZjdjMDcwMjdmMzJhMzM0MmQ0MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MzE6NTkgMjAwNiAtMDUwMAoKICAgIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YTQ0OWM4YWMzOTY0MjBjYjI0MjYwZjcxN2VhOWU2ZmFhODIwNDcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDA5OjIzOjU1IDIwMDYgLTA1MDAKCiAgICBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzVjMjk5YzM4MzY5ZDAxYWRkZDVlMDU0YjhhMTYyMTdiNzBmNGE4NgpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDY3MjU2Njc4ZjAwYzA5YjBhN2YxOWU4NjJlNWMxODQ3NTUzZDMxYmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDFjOGY2ZDhmYjAyOGYxNTYwOTRkMDVmMmQxNDI5OGU2NDc5MzY0YWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEyOjU1IDIwMDYgLTA0MDAKCiAgICBVbmxvY2sgY2FjaGUgYmVmb3JlIGtlcm5lbCBzdGFydHMgdXAgZm9yIE1QQzg2eHgKCmNvbW1pdCAwZDljY2M1NWVkZjlhN2YzYzViMmI2MjYzNTgwYTZlYThkNzAyYTA0CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMzoxNSAyMDA2IC0wNDAwCgogICAgQ29weSBHbG9iYWwgRGF0YSBQb2ludGVyIHRvIHIyOSBmb3IgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIKCmNvbW1pdCA4NmM4ZTE3ZjI1ZTk3MmE3ZTI3Mjk1MGEwNzM1ZmFkODRlMDgyYjg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMzo1OTo0NyAyMDA2IC0wNTAwCgogICAgKiBGaXggZGlzYWJsZV9vZiBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWM3NTFlOWFkYzg2ZTIyZmUzYjViNDdjZjI4MDYzNzliNTc1ZGI3CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMDo1NDowOSAyMDA2IC0wNTAwCgogICAgKiBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODk5NjIwYzJkNjZkNGVlZjNiMmEwMDM0ZDA2MmU3MWQ0NWQ4ODZjOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoyMjozNSAyMDA2ICswMjAwCgogICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIEFMUFIgYm9hcmQgZnJvbSBQcm9kcml2ZQogICAgTkFORCBuZWVkcyBzb21lIGFkZGl0aW9uYWwgdGVzdGluZwogICAgUGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIsIDE1IEF1ZyAyMDA2Cgpjb21taXQgZjBmZjQ2OTJmZjMzNzJkZWM1NTA3NGE4ZWI0NDQ5NDNhYjA5NWFiYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoxNTo1MSAyMDA2ICswMjAwCgogICAgQWRkIEZQR0EgQWx0ZXJhIEN5Y2xvbmUgMiBzdXBwb3J0CiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmZWNmMWM3ZTRkZTFiMjc3OWVkYzE4NzQyYjkxYzIyYmRjMzJiNjhiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxNCAxNTozMzozOCAyMDA2IC0wNTAwCgogICAgRml4IEJBVDAgdG8gYWN0dWFsbHkgYmUgY2FjaGVhYmxlLCBub24tZ3VhcmRlZCBhcyBkb2N1bWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBiYzgzNTU5ZGI1NzQ1NjgxOTA5ZmQ3MzgyYWU1MDk1NjdlMTE2ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNTozMjoxNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCBNUEM4NjQxSFBDTiBEVFMgc291cmNlIGZpbGUgZnJvbSBidWlsZC4KICAgIEl0IGlzIG5vIGxvbmdlciBsaW5rZWQgaW50byBVLUJvb3Q7IGl0cyBzb3VyY2VzIGFyZQogICAgbm93IGxvY2F0ZWQgaW4gdGhlIGtlcm5lbCB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzRjM2MwZTAxZGJmMWY4Y2MyYmQwOGRlOTJmMmI4OWJhODQ5MjFlYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDc6MDMgMjAwNiAtMDUwMAoKICAgICogU3dpdGNoZWQgZGVmYXVsdCBQQ0kgc3BlZWQgZm9yIDg1NDAgQURTIGJhY2sgdG8gMzNNSHoKCiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjZjNWUxMzczYjZlYTBiYjM3YTE4ZTRhZWVjZWMwMDYxM2QxY2QzOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG5hbWVzIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjFkZmZmZDhjMjZmOGVjZGQ2MzBhMGFlNGM4MzRlNzUxZTRlNDUyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4OGY5ZmU2NmI2NDI0N2U1YjZhMzg0MTBiYTMxNWNhMjU1OTZkMTYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3MDc0ZWQ5NjU1MzA5YjY0MjMxYmMyY2VlNjlmZTg1Mzk5ZjgwNTUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4IFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMGU2ZjU3ZjcxYjNjNGZkZDEzMDI4ZWIwM2MzZjNlOTE5MjZkZGEyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24gUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0ZTExNTU4YjgxMGVmMmNkZGZmZGY3YjlkODZiYzExMzA0NDE5NjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlMTYzODdkYjFkNGFhY2Q1YmYzNWNiNmQ3YzE5NDI3NjVjMDM0N2IKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NTVlNmZiMDczZjlkMDRmZTRhN2YwNmMxMDdlY2JhYzYzNDRkZGQ0CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZSBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgNTQ5OGQ5MDMxMmFhZDlmNmJkYmYwNDc5ODYwMjdjMzViMDNjZDE2MwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAwMjY3NzY4ZWRkYzVjYTdiYzE4NjViYzQwYzg2NjgyOWFjNWVmYmZlCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcyBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgOGZjOGJkMmNjNDc5YjZjZDE4OGZkZWRlNDAxMGUwZTA1Mjk3MGI4YQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDkgMTQ6MzM6NTAgMjAwNiArMDEwMAoKICAgIEFkZCBSYXBpZGlvIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjQxSFBDTgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxYTQxNGM3ZDFmYjBlYWM5MTI1OTJjZDk5NWIzMGM5ZjIzMDQ1YzkKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA4IDExOjMyOjQzIDIwMDYgKzAxMDAKCiAgICBGaXggY2FzbGF0IGNhbGN1bGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzA5ZDMwNzNlNzQxNTMyNzhlNzkwNGE3MDgxOWJiZWY3ZGY1MGUxYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxNjoxNzo1NiAyMDA2IC0wNTAwCgogICAgQ29udmVydCB0byBtYWMtYWRkcmVzcyBpbiBldGhlcm5ldCBub2Rlcy4KCmNvbW1pdCA3MTc0OGFmODMzY2ExMDE3ZWRmMTQxNWJlMzc2MzY2ZmYyOTM3ZDE3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAxMjo0MTozNSAyMDA2IC0wNDAwCgogICAgQ29ycmVjdCB0aGUgaXJxIHZhbHVlIG9mIERVQVJUMgoKY29tbWl0IDljYjNlODgxNmFlNGQ4NTRlN2RjMjIxMjhjM2VlYTNkNzBiYjk4MmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjQxIDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgdGhlIHNwYWNlIHNpemUgb2YgUEVYIElPIGluIFJFQURNRQoKY29tbWl0IDIzOWRiMzdjOTRmN2E5Mjk0MWM0NDY1ZmVjZWI4NjdjNjA5MjQxYzUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjE4IDIwMDYgLTA0MDAKCiAgICBNb3ZlIGdldF9ib2FyZF9zeXNfY2xrIHRvIGJvYXJkIGRpcmVjdG9yeQoKY29tbWl0IDQ5MjkwMGI5ODU0MzlmYmNlMWExMThhZmRlMWUzNWRlZjg3MGRiMDMKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwOTowMzo1NCAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHBvbGx1dGlvbgoKY29tbWl0IDUxNWFiOGE2MmU4NTc0ZTJiYWJjNmU4ZGNjNDM1NDRhZDIyMWM1YjIKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwODoxNjowNiAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHRpbWViYXNlCgpjb21taXQgYzg2MzYwYjgzMGYxZWVjZDdhNzIyMDg1NzVkZGU0ZjU3ODc5ZmFlYQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMDA6MDE6MzQgMjAwNiArMDgwMAoKICAgIEZpeGVkIE9GIGRldmljZSB0cmVlIG9mIG1wYzg2eHhocGNuIGJvYXJkLgoKICAgIFRoZSBjaGFuZ2VzIHdvcmtzIGluIHdpdGgga2VybmVsIGlycSBtYXBwaW5nIHJld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlYTNmMjhkMjg1OTQyYmYzZjdhYjMzOWNlODUxNzhkZWQ1NDQyMjUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDEyIDEwOjQ4OjA1IDIwMDYgLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBtYWMgYWRkcmVzc2VzIHRvIG9yIGZyb20gSUQgRUVQUk9NLgoKICAgIEFkZGVkIGNvZGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgTWFjIGFkZHJlc3NlcyB0by9mcm9tIElEIEVFUFJPTSgweDU3KS4KICAgIFdpdGggYXR0YWNoZWQgcGF0Y2gsIHdlIGNhbiB1c2UgY29tbWFuZCAibWFjL21hYyByZWFkL21hYyBzYXZlLyIKICAgIHRvIHJlYWQgYW5kIHdyaXRlIEVFUFJPTSB1bmRlciB1LWJvb3QgcHJvbXB0LgoKICAgIFUtYm9vdCB3aWxsIGNhbGN1bGF0ZSB0aGUgY2hlY2tzdW0gb2YgRUVQUk9NIHdoaWxlIGJvb3R1cCwKICAgIGlmIGl0IGlzIHJpZ2h0LCB0aGVuIHUtYm9vdCB3aWxsIGNoZWNrIHdoZXRoZXIgdGhlIG1hYyBhZGRyZXNzCiAgICBvZiBlVFNFQzAvMS8yLzMgaXMgYXZhaWxhbGJlIChub24temVybykuCgogICAgSWYgdGhlcmUgaXMgbWFjIGFkZHJlc3MgYXZhaWxhYmUgaW4gRUVQUk9NLCB1LWJvb3Qgd2lsbCB1c2UgaXQsCiAgICBvdGhlcmV3aXNlLCB1LWJvb3Qgd2lsbCB1c2UgdGhlIG1hYyBhZGRyZXNzIGRlZmluZWQgaW4KICAgIE1QQzg2NDFIUENOLmguIFRoaXMgbWF0Y2hlcyB0aGUgcmVxdWlyZW1lbnQgdG8gc2V0IHVuaXF1ZSBtYWMgYWRkcmVzcwogICAgZm9yIGVhY2ggVFNFQyBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjYjI4ZTc2MzQxNWUwZTRlNjZiMGY0NTg0MmQxNTU3YWUxOThlNWUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMTMgMTA6MzU6MTAgMjAwNiAtMDUwMAoKICAgIEZpeGVkIGluaXRyZCBpc3N1ZSBieSBkZWZpbmUgYmlnIFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNmNkMmExNzg1ZDc0ZWMzZDMwYTg2ZjFjYjM2MGJlOGRlNDc4MTUxCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA3IDEwOjAxOjQ1IDIwMDYgLTA1MDAKCiAgICBXZSBtYWRlIGEgdS1ib290IHBhdGNoIHRvIGZpeCB0aGUgaGFuZyB1cCBpc3N1ZQogICAgd2hlbiBib290aW5nIGZpbGVzeXN0ZW0gZnJvbSByYW1kaXNrLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODQzM2NjYzU4NTBlZTcwNTQ5YWYwYjJiYzViOTIwMzU1ZWY1Mzg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegogICAgKiBBZGRlZCBjb21tZW50cyBhbmQgYSBwcmludGYgdG8gd2FybiB0aGF0IFBDSS1YIHdvbid0CiAgICAgIHdvcmsgYXQgMzNNSHoKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU0YzJhMGViMGMzZTNmZmJmODI0ODAwMTg0ZWU0MmJkYzk5ZDViMTkKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjM1IDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIGEgYnVnIHdoZXJlIDg1NTUgUENJIGNvZGUgdXNlZCB0aGUgb2xkIHZhcmlhYmxlIGFuZAogICAgICBmdW5jdGlvbiBuYW1lcwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2JmYzdjZTc1NmI4OGViMjZlNTUzN2JjN2I2MjVjNDQ1YzZkY2ZhYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MTMgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgVklBIGNvbmZpZ3VyYXRpb24gdGFibGUKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA4NzQ1NDYwOWU0NzI5NTQ0M2FmNzkzYTI4MmNkZGNkOTFhNWY0OWMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNjM2YWFlYjZmZDUxNmE0NDJmYjYxMWJiZWVkZGYzMDc3YTY4N2ZiCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24KICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwYWJiYzZmZmZhMTE1NjkwMTA3Y2M5NDJjN2FiZjg0YmRjMDNhMWIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMKICAgICAgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwZDVmYTM1ZDAyZGYyMjU4MDU5M2JmMDAzOWFiMTczMzY3ZThlZjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMKICAgICAgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTdlOGIwY2I1YTBjNDlkYzE4MDA3NWI5NmRmMjk2YTg5M2JmMTQ2CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMKICAgICAgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZQogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgMWIzODBlYzIyNTY2NWU3Mzk1OTY3N2YzODkzZGM2NThjNTkyNWUwNQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA5OGE5YzRkNDY4YTk0MmEwOWViZTg5NzliZWM1MDgwMTdmM2U0NDYyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcwogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgZGEwMTJhYjY2MWZkNGFiMTY5ZGQ3YjliMzIyMDFhNGRmNjJjZjM0YQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAwODo0Mzo1NiAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIElkIHRvIHN5bWJvbGljIG5hbWUgZm9yIFJUTDgxMzkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjMDljZjNjMmJmYjhkNTRjNjU5Y2JiMzMyZjc5ZDA5NTA5ODJmZDAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjEwIDIwMDYgKzA4MDAKCiAgICBGaXggUlRMODEzOSBpbiBiaWcgZW5kaWFuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIHNpZ25lZC1vZmYtYnk6IFdlaSBaaGFuZyA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNmYjlhNTc5NDdmYzIwM2I5OWZlODFhYjA1NzhmNzI4NjI2MWY5ZgpBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MjMgMjAwNiArMDgwMAoKICAgIEZpeCBUc2VjIGJ1ZyB3aGVuIG5vIGxpbmsKCiAgICAgV2hlbiB0ZnRwIGEgbm9uLWV4aXN0IGZpbGUgZnJvbSB0aGUgdGZ0cCBzZXJ2ZXIsIHUtYm9vdCB3aWxsIGNoZWNrCiAgICAgdGhlIGxpbmsgb2YgYWxsIGV0aCBwb3J0LiBUaGUgb3JpZ2luYWwgZmlsZSB3aWxsIHJldHVybiB3cm9uZyBsaW5rCiAgICAgc3RhdGUgb24gdGhlIG5vIGxpbmsgcG9ydHMuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDIyYzJiOTc1MTRmYmZiMGUwM2JkOWM3MmIzNDQ1ZTRkYmQ1N2UyCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjowMiAyMDA2ICswODAwCgogICAgRml4IGJ1ZyBmb3IgaW9fYmFyIHNpemUgZHVyaW5nIHBjaSBzY2FuCgogICAgRHVyaW5nIHRoZSBwY2kgc2NhbiBwcm9jZXNzLCBTb21lIGRldmljZXMgcmV0dXJuIGJhcl9yZXBvbnNlIHdpdGggdGhlCiAgICBoaWdoZXN0IGJ5dGVzIDAsIHN1Y2ggYXMgdGhlIHBjaSBicmlkZ2UgaW4gdWxpMTU3NSByZXR1cm4gYmFyX3Jlc3BvbnNlCiAgICB3aXRoIDB4ZmZmZmZmLCBTbyB0aGUgYmFyX3NpemUgc2hvdWxkIGJlIG1hbnVhbGx5IHNldCB1bmRlciA2NEsuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYTdkYjljMzc3YmMyMzUzYTE3YmYxZDM4MWQ2NWE2YzQxODcyOGYwCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMTo1NCAyMDA2ICswODAwCgogICAgRW5hYmxlIFBDSUUxIGZvciBNUEM4NjQxSFBDTiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTlkNzBlM2E0N2FmZmI5YmFlMDQxYTJjYWVjZTdjZDUxNmUyMTNiMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gSnVuIDI2IDExOjA2OjAwIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNvZGUgY2xlYW51cAoKY29tbWl0IDY4NDYyM2NlOTJjNWZkMzJlN2RiMmQ2ZTAxNjk0NWE2N2M1ZmZhYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDIyIDA4OjUxOjQ2IDIwMDYgLTA1MDAKCiAgICBGaXggYnVnIGluIDg2NDFocGNuIHJlc2V0IGNvbW1hbmQgd2l0aCBubyBhcmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmU0MjlhNWRkYmYwZWJlMmQ5NDE3NGJhNThmY2ZjN2EyNDI4NWRjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyMCAxNzo0NzoxNSAyMDA2ICswODAwCgogICAgUmV3b3JrZWQgSVJRIG1hcHBpbmcgaW4gT0YtdHJlZS4KCmNvbW1pdCAwZTRjMmExN2NhMzQwMDFlZDM2ZDI1OWYxM2NiODhhZGE0NjExYThjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxNSAyMTozMzozNyAyMDA2IC0wNTAwCgogICAgRG8gbm90IGVuYWJsZSBhZGRyZXNzIHRyYW5zbGF0aW9uIG9uIHNlY29uZGFyeSBDUFVzLgogICAgRG8gbm90IHNldCB1cCBCQVRzIG9uIHNlY29uZGFyeSBDUFVzLiAgTGV0IExpbnV4IGRvIHRoZSBuYXN0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NmVkYTAyMjQ3MzM5NGFkOGYzNmI4NmYyYmRjOWI0Y2I4MTYyOTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1biAxNCAxODoxNDo1NiAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgMTZjOGQ1ZTc2YWUwZjc4ZjM5YTYwNjA4NTc0YWRmZTBmZWI5Y2M3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE3OjQ1OjUzIDIwMDYgKzAyMDAKCiAgICBWYXJpb3VzIFVTQiByZWxhdGVkIHBhdGNoZXMKICAgIC0gQWRkIHN1cHBvcnQgZm9yIG1wYzh4eCBVU0IgZGV2aWNlLgogICAgLSBBZGQgc3VwcG9ydCBmb3IgQ29tbW9uIERldmljZSBDbGFzcyAtIEFic3RyYWN0IENvbnRyb2wgTW9kZWwgVVNCIGNvbnNvbGUuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBmbG93IGNvbnRyb2wgaW4gVVNCIHNsYXZlIGRldmljZXMuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBnc2VyaWFsIGFuZCBjZGNfYWNtIHVzaW5nIGVudmlyb25tZW50LgogICAgLSBNaW5vciBjaGFuZ2VzIHRvIHVzYmRjb3JlX29tYXAxNTEwLmMgdXNiZGNvcmVfb21hcDE1MTAuaAogICAgLSBVcGRhdGUgdXNiY29yZSBzbGlnaHRseSB0byBlYXNlIGhvc3QgZW51bWVyYXRpb24uCiAgICAtIEZpeCBub24tcG9ydGFibGUgZW5kaWFuIHByb2JsZW1zIGluIHVzYmRjb3JlIGFuZCB1c2JkY29yZV9lcDAuCiAgICAtIEFkZCBBZGRlclVTQl9jb25maWcgYXMgYSBkZWZjb25maWcgdG8gZW5hYmxlIHVzYWdlIG9mIHRoZSBVU0IgY29uc29sZQogICAgICBieSBkZWZhdWx0IHdpdGggdGhlIEFkZGVyODd4IFUtQm9vdCBwb3J0LgogICAgUGF0Y2hlcyBieSBCcnlhbiBPJ0Rvbm9naHVlIDxib2Rvbm9naHVlQGNvZGVoZXJtaXQuaWU+LCAyOSBNYXkgMjAwNgoKY29tbWl0IDhlY2M5NzE2MThmNTYwMjlhZDk5ZDM1MTZmOGIyOTdhNmVkNTg5NzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTM6NTUgMjAwNiAtMDUwMAoKICAgIEZpeCBhIGdldF9ib2FyZF9zeXNfY2xrKCkgdXNlLWJlZm9yZS1kZWYgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGQ5YmY0ODU4ZmNhNWFhNGQ2NTFiMjgzMjcwZjc3ZGE3MmViYWRmZDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTI6NDkgMjAwNiAtMDUwMAoKICAgIEFsbG93IERUQyBwYXRoIHRvIGJlIHBhc3NlZCBpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGM4M2FlOWVhNmQ5M2FiYmU3NTFiZjhhMzM5NjIzNmEwODRlNTZmODcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDYgMTY6NTQ6MjkgMjAwNiAtMDQwMAoKICAgIE1vZGlmeSB0aGUgSVJRIG9mIERVQVJUMgoKY29tbWl0IGM5MzRmNjU1ZjlhZWNhNzBhNWM1Zjg4YjQ2NWQ5ZTlkNTdhOGQyMmUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEzOjU1OjM1IDIwMDYgLTA1MDAKCiAgICBSZXZpZXcgY2xlYW51cHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjU5NjVmYjk1Yjc3YTQ5ZjRlNmFmOTUyNDhlMGM4NDlmNGFmMDNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMjo0NDo0NCAyMDA2IC0wNTAwCgogICAgV2hpdGUgc3BhY2UgY2xlYW51cC4KICAgIFNvbWUgODAtY29sdW1uIGNsZWFudXBzLgogICAgQ29udmVydCBwcmludGYoKSB0byBwdXRzKCkgd2hlcmUgcG9zc2libGUuCiAgICBVc2UgI2luY2x1ZGUgInNwZF9zZHJhbS5oIiBhcyBuZWVkZWQuCiAgICBFbmhhbmNlZCByZXNldCBjb21tYW5kIHVzYWdlIG1lc3NhZ2UgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZDVjNWJlNTQ3NDQ1ZGQzYmQyZWI3MzY4ZDgwZGYwM2VhNDM3OTcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMTozOTozNCAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCB1bm5lZWRlZCBsb2NhbF9idXNfaW5pdCgpIGZyb20gODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDNkNzI5YzE2YzM5MmQyOTgyZDMyNjZiNjU5ZDMzM2M5Mjc2OTdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMToyNDoyOCAyMDA2IC0wNTAwCgogICAgTW92ZWQgbXBjODY0MWhwY25fYm9hcmRfcmVzZXQoKSBvdXQgb2YgY3B1LyBpbnRvIGJvYXJkLy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYTk0MWRlMDYwMzUwYWQxNTg3OGQ4MjE5ODI1ZjQ5NTBlOWJiOGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEwOjA3OjI4IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgZGVhZCBkZWJ1ZyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMTI2YWE3MGYxMGJhM2QyMGUwYTZmNGQzMjMyODI1MDUxM2I3Nzc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMTc6NDc6MDAgMjAwNiAtMDUwMAoKICAgIE1vdmUgbXBjODZ4eCBQSVhJUyBjb2RlIHRvIGJvYXJkIGRpcmVjdG9yeQoKICAgIEZpcnN0IGN1dCBhdCBtb3ZpbmcgdGhlIFBJWElTIHBsYXRmb3JtIGNvZGUgb3V0IG9mCiAgICB0aGUgODZ4eCBjcHUgZGlyZWN0b3J5IGFuZCBpbnRvIGJvYXJkL21wYzg2NDFocGNuCiAgICB3aGVyZSBpdCBiZWxvbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRmODNhMmZjZWYxYTY3MGM0NWZjNTg1MTE5ZGNjMWZlMDYyYzRhOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMzAgMTY6NTY6MTQgMjAwNiArMDIwMAoKICAgIFN1cHBvcnQgZ2VuZXJpYyBPSENJIHN1cHBvcnQgZm9yIHRoZSBzM2MyNHgwIGNwdS4KCmNvbW1pdCAzOGNlZTEyZGNmY2MyNTczNzFjOTAxYzdlMTNlNThlY2FiMGEzNWQ4CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAwOToxMDozMiAyMDA2IC0wNTAwCgogICAgSW1wcm92ZSAicmVzZXQiIGNvbW1hbmQncyBpbnRlcmFjdGlvbiB3aXRoIHdhdGNoZG9nLgoKCSJyZXNldCBhbHRiYW5rIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIT1VUIHdhdGNoIGRvZyB0aW1lciBlbmFibGVkCgkicmVzZXQgYWx0YmFuayB3ZCIgd2lsbCByZXNldCBhbm90aGVyIGJhbmsgV0lUSCB3YXRjaCBkb2cgZW5hYmxlZAoJImRpc3dkIiB3aWxsIGRpc2FibGUgd2F0Y2ggZG9nIGFmdGVyIHUtYm9vdCBib290cyB1cCBzdWNjZXNzZnVsbHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMjA1ZTVhNmRkYzg1MjhiMTFkYjllYjRkM2ZhMDIwOWQ5ZmNlMmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA4OjUxOjE5IDIwMDYgLTA1MDAKCiAgICBGaXggdHdvIFNEUkFNIHNldHVwIGJ1Z3MuCgoJRml4IEVDQyBzZXR1cCBidWcuCglFbmFibGUgMVQvMlQgYmFzZWQgb24gbnVtYmVyIG9mIERJTU1zIHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTFmZWM1MDE1MzM0ZGViMjAxMGUzNmNlMDBiYjExOGNjNTQyOWE1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoyNDo0OCAyMDA2IC0wNTAwCgogICAgQWRkIGZpcnN0IGRyYWZ0IG9mIHRoZSBNUEM4NjQxSFBDTiBkb2MvUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZWQ0NWQ2YzkzMGI1OTM5NzE4YTg3ZWUxMmUyNWNmOWEwNTk3OGQ0YQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMjYgMTA6MTM6MDQgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHBjaUA4MDAwIGJsb2NrLgogICAgVXBkYXRlZCBldGhlcm5ldCBpbnRlcnJ1cHQgbWFwcGluZ3MgKG1vdmVkIHVwIDQ4KS4KICAgIENsZWFuZWQgdXAgYSBmZXcgY29tbWVudHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDMzZWJiMjBmZDdjMzcyYzdiY2EzYzk5NTVhNDY5MmJiMjI0MGI3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDowMToxNiAyMDA2IC0wNTAwCgogICAgQWxsb3cgYXJncyBvbiByZXNldCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMzAxZjFhYTM4NGQwZWRjYWU2YTIyZmQ5YWRiOTMzYWQ3MTY5NWVjYwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTM6Mzg6MzUgMjAwNiArMDIwMAoKICAgIENoYW5nZWQgdGhlIG1wMnVzYiAoYXQ5MXJtOTIwMCkgYm9hcmQgdG8gdXNlIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVyLiBTb21lCiAgICBmaXhlcyB0byB0aGUgbGF0dGVyLgoKY29tbWl0IDI0ZTM3NjQ1ZTczNzhiMjBmYThmMjBlMjk5NmM4ZmI4ZTkwYzcwYzkKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIzIDEwOjMzOjExIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNsZWFudXAgZm9yIHRoZSBkZWx0YSBib2FyZCBhbmQgdGhlIGdlbmVyaWMgdXNiX29oY2kgZHJpdmVyLiBBZGRlZAogICAgQ0ZHX1VTQl9CT0FSRF9JTklUIGFuZCBDRkdfVVNCX0NQVV9JTklUIGZvciBlbmFibGluZyBib2FyZCBhbmQgY3B1IHNwZWNpZmljCiAgICBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cCBob29rcyByZXNwZWN0aXZlbHkuCgpjb21taXQgM2UzMjZlY2U5ZWJhODE4NGY1ZDQ4YWE0ZmI4Nzc2MGE4ZjZmMGYxMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMjIgMTY6MzM6NTQgMjAwNiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0Igc3RvcmFnZSBzdXBwb3J0IGZvciB0aGUgZGVsdGEgYm9hcmQuIFRoaXMgaXMgdGhlIGZpcnN0CiAgICBib2FyZCB0byBtYWtlIHVzZSBvZiBhIGdlbmVyaWMgT0hDSSBkcml2ZXIsIHRoYXQgY2FsbHMgaG9va3MgZm9yIGJvYXJkCiAgICBkZXBlbmRhbnQgaW5pdGlhbGl6YXRpb24uCgpjb21taXQgMTRlMzcwODFmZjNjYWM3ZWJlNmU5MzgzNjUyMzQyOTg1M2I2YjI5MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6Mjg6MzkgMjAwNiAtMDUwMAoKICAgIENoYW5nZSBhcmJpdHJhdGlvbiB0byByb3VuZC1yb2JpbiBmb3IgU01QIGxpbnV4LgoKY29tbWl0IDlhNjU1ODc2ZTU5OTViZTgwZjQ5MDU0ZTI1MDk1MDBlODcxZTRkM2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjI2OjM0IDIwMDYgLTA1MDAKCiAgICBFbmFibGUgZHVhbCBERFIgY29udHJvbGxlcnMgYW5kIGludGVybGVhdmluZy4KCmNvbW1pdCA1ODZkMWQ1YWJkM2U1MjVmMWUxZDliODFlNWE2MWE0ZGE2YjJmYTNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyMjo0NCAyMDA2IC0wNTAwCgogICAgVXBkYXRlIDg2eHggYWRkcmVzcyBtYXAgYW5kIExBV0JBUnMuCgpjb21taXQgY2NjY2U1ZDA1ODFiYjBiYTQ2MDI3OTlhNGI1MTEyZTU4ZDE1NzljYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MTQ6MTUgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBMMiBDYWNoZSBpbnZhbGlkYXRlIHBvbGxpbmcuCgpjb21taXQgZjM1ZWM2OGZiMDY2Y2VjMGUzNjI5NGJmZTA3ZGVjMmQ0ZThhZDNhOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTI6MzM6MDkgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSAybmQgQ1BVIGFuZCBJMkMuCgpjb21taXQgYmY2OTBkY2I1MTJkMzRjNGZjZWVjMGViMWU1YzBlODhhOWRiNWQ1NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgMTUgMDc6MjY6NTYgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZSBpbnRlcnJ1cHQgbWFwcGluZy4KCmNvbW1pdCA2Y2ZlYTMzNDc3YjA0YjYzZWQ0NzM4NmVkMTYyOTUyOTQ4NGMzM2JhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozODowNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIElOSVRfUkFNX0xPQ0sgY2FjaGUgdHdpZGRsaW5nLgogICAgQ29ycmVjdGx5IHRyYWNrcyByMjkgYXMgZ2xvYmFsIGRhdGEgcG9pbnRlciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNGRkMzE3YjU4YzEyNmEyYTdlNzNmNDc2NGVjYzFhN2M5N2Y4NzZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozMzowNyAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZsYXNoLmMgZmlsZS4KCmNvbW1pdCAxOGI2YzhjZDhhZjZjYzdmMzUxODBjZWRjNGFkYjMyMzZjYzFhMWI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA5IDA4OjIzOjQ5IDIwMDYgLTA1MDAKCiAgICBHZXQgTVBDODY0MUhQQ04gZmxhc2ggaW1hZ2VzIHdvcmtpbmcuCgoJRW5hYmxlIHRoZSBDRkkgZHJpdmVyLgoJUmVtb3ZlIGJvZ3VzIExBV0JBUjcgY3J1ZnQuCglVc2UgY29ycmVjdCBURVhUX0JBU0UsIEZpeHVwIGxvYWQgc2NyaXB0LgoJRW5hYmxlIFNQRCBFRVBST00gZHVyaW5nIEREUiBzZXR1cC4KCVVzZSBnZW5lcmljIFJGQyAxOTE4IElQIGFkZHJlc3NlcyBieSBkZWZhdWx0LgoKY29tbWl0IDVjOWVmYjM2YTZiNTQzMTQyM2Y1Mjg4OGEwZTNiNGI1MTVmZTdlY2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI3IDEwOjE1OjE2IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHdoaXRlc3BhY2VzIGFuZCBzdHlsZSBpc3N1ZXMuCiAgICBSZW1vdmVkIC8vLXN0eWxlIGNvbW1lbnRzLgogICAgVXNlIDgwLWNvbHVtbiBsaW5lcy4KICAgIFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgogICAgUmVtb3ZlIGRlYWQgY29kZSBhbmQgZGVidWcgY3J1ZnQuCgpjb21taXQgYTIzMjBhNmJmODExM2EwOTU0NGM0MmQxNjBkMTBhYzY5ZDA0OWEwMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMDg6MjI6MzkgMjAwNiAtMDUwMAoKICAgIFJldmVydCBiYWQgUENJIHByZWZldGNoIGxpbWl0IGNoYW5nZS4KCmNvbW1pdCBkZWJiNzM1NGQxZWE0ZjY5NDE1NDgxOGRmNWU1YjUyM2Y1YzFjYzFkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyNiAxNzo1ODo1NiAyMDA2IC0wNTAwCgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciBNUEM4NjQxIEhQQ04gYm9hcmQuCg==